This document is a summary of how to do various tasks one runs into as a developer of Cirq. Note that all commands assume a Debian environment, and all commands (except the initial repository cloning command) assume your current working directory is the cirq repo root.
If you want to contribute changes to Cirq, you will instead want to fork the repository and submit pull requests from your fork.
Fork the Cirq repo (Fork button in upper right corner of repo page). Forking creates a new github repo at the location https://github.com/USERNAME/cirq where USERNAME is your github id.
Clone the fork you created to your local machine at the directory where you would like to store your local copy of the code, and cd into the newly created directory.
Add a remote called upstream to git. This remote will represent the main git repo for cirq (as opposed to the clone, which you just created, which will be the origin remote). This remote can be used to merge changes from Cirq's main repository into your local development copy.
To verify the remote, run git remote -v. You should see both the origin and upstream remotes.
You can check the branches that are on the upstream remote by running git remote -va or git branch -r. Most importantly you should see upstream/master listed.
Merge the upstream master into your local master so that it is up to date.
At this point your local git master should be synced with the master from the main cirq repo.
First clone the repository, if you have not already done so. See the previous section for instructions.
If you change protocol buffers you will need to regenerate the proto files, so you should install the protocol buffer compiler. Instructions for this can be found here.
Prepare a virtual environment including the dev tools (such as mypy).
Check that the tests pass.
(OPTIONAL) include your development copy of cirq in your python path.
or add it to the python path, but only in the virtualenv.
There are a few options for running continuous integration checks, varying from easy and fast to slow and reliable.
# Run all tests in the repository.
# Check all relevant files in the repository for lint.
# Typecheck all python files in the repository.
# Transpile to python 2 and run tests.
./check/pytest2  # Note: you must be in a python 2 virtual env to run this.
# Compute incremental coverage vs master (or a custom revision of your choice).
# Only run tests associated with files that have changed when diffed vs master (or a custom revision of your choice).
This script will create (temporary) virtual environments, do a fresh install of all relevant dependencies, transpile the python 2 code, and run all relevant checks within those clean environments. Note that creating the virtual environments takes time, and prevents some caching mechanisms from working, so continuous-integration/check.sh is significantly slower than the simpler check scripts. When using this script, you can run a subset of the checks using the --only flag. This flag value can be pylint, typecheck, pytest, pytest2, or incremental-coverage.
If you don't specify any arguments then the input directory will be the current working directory, the output directory will be python2.7-output within the current directory, and 3to2 will be invoked in the current environment.
The script fails with no effects if the output directory already exists.
r"""One line summary of method.
Notice that this docstring is an r-string, since the latex has backslashes.
And of course there's the standard sections.
ValueError: The value of `a` wasn't quite right.
The HTML output will go into the docs/_build directory.
Do a dry run with test pypi.
You must specify the EXPECTED_VERSION argument to match the version in cirq/_version.py, and it must contain the string dev. This is to prevent accidentally uploading the wrong version.
The script will append the current date and time to the expected version number before uploading to test pypi. It will print out the full version that it uploaded. Take not of this value.
The script will create fresh virtual environments, install cirq and its dependencies, check that code importing cirq executes, and run the tests over the installed code. It will do this for both python 2 and python 3. If everything goes smoothly, the script will finish by printing VERIFIED.
If everything goes smoothly, the script will finish by printing VERIFIED.
Set the version number in cirq/_version.py.
Development versions end with .dev or .dev#. For example, 0.0.4.dev500 is a development version of the release version 0.0.4. For a release, create a pull request turning #.#.#.dev* into #.#.# and a follow up pull request turning #.#.# into (#+1).#.#.dev.
Run dev_tools/packaging/produce-package.sh to produce pypi artifacts.
The output files will be placed in the directory dist/.
Describe major changes (especially breaking changes) in the summary. Make sure you point the tag being created at the one and only revision with the non-dev version number. Attach the package files you produced to the release.
python -c "import cirq; print(cirq.__version__)"


text:
A Policy Brief on Vocational and Technical Education in Turkey
Hilal Ayan Karabatman,
The importance of vocational and technical education (VTE) is increasing in response to the rapidly changing information, technology, production methods, and developments in every aspect of life. The only way to survive in this age and to compete with this challenge is to continuously develop comprehensive educational policies that relate to each other (MoNE, 2018). In this sense, VTE has a very central role in providing societies with the knowledge and skills that the 21st century requires (Çınar, Döngel, & Söğütlü, 2009). For this reason, in educational policy discussions, an area that requires as much attention as other areas of education is VTE. This paper aims to review the current problematic states of VTE in Turkey and make recommendations for improving it.
Keywords: Vocational education, technical education, education policy
[1]	Arkan, A. (2018). Mesleki Eğitimin Geleceği. İstanbul: SETAV. Retrieved from https://www.setav.org/mesleki-egitimin-gelecegi/
[2]	Arkan, A. (2019). Eğitim Zirvesi ve Meslek Eğitimi I. İstanbul: SETAV. Retrieved from https://www.setav.org/egitim-zirvesi-ve-meslek-egitimi-i/
[3]	Bagale, S. (2015). Technical education and vocational training for sustainable development. Journal of Training and Development, 1(1), 15-20.
[4]	Çınar, H., Döngel, N., & Söğütlü, C. (2009). A case study of technical and vocational education in Turkey. Procedia Social and Behavioral Sciences, 1, 160-167.
[5]	Diker Coşkun, Y. (2020). Eğitim izleme raporu 2020: Eğitimin içeriği. Eğitim Reformu Girişimi. Retrieved from https://www.egitimreformugirisimi.org/egitim-izleme-raporu-2020-egitimin-icerigi/
[6]	ETF (2018). Governance Arrangements for Vocational Education and Training in ETF Partner Countries: Analytical Overview 2012-2017. Turin: ETF. https://www.etf.europa.eu/sites/default/files/2019- 02/VET%20governance%20in%20ETF%20partner%20countries%202012-17.pdf.
[7]	Gelişli, Y., Beisenbayeva, L., Sultanbek, M. Z., & Ussenova, A. (2016). Vocational Education Systems in Turkey and The World: New Trends and Problems. International Journal on New Trends in Education and Their Implications, 7(3), 1-10.
[8]	Jeon, S. (2021). Four ways to strengthen teaching and leadership in vocational education and training. OECD Education and Skills Today. OECD Publishing. https://oecdedutoday.com/four-ways-strengthen-teaching-leadership-vocational-education-training-vet/
[9]	Milli^ Egˆitim Bakanlıgˆı (MEB). (2018). Tu¨rkiye'de mesleki ve teknik egˆitimin go¨ru¨nu¨mu¨. Egˆitim Analiz ve Degˆerlendirme Raporları Serisi No: 1. Ankara: MEB.
[10]	MoNE (2018). External quality assurance report for VET institutions, Education. Analysis and Evaluation Series, No. 2. Ankara: MoNE. http://mtegm.meb.gov.tr/meb_iys_dosyalar/2018_11/29122622_mesleki_ve_teknik_ ortaogretimde_kurumsal_dis_degerlendirme_raporu_web_29kasim_1.pdf.
[11]	MoNE (2018). Turkey's Education Vision 2023: Ankara: MoNE. https://2023vizyonu.meb.gov.tr/doc/2023_ VIZYON_ENG.pdf.
[12]	OECD (2010). Learning for Jobs. Synthesis Report of the OECD Reviews of Vocational Education and Training. Paris: OECD Publishing. Retrieved from https://www.oecd.org/education/skills-beyond-school/Learning%20for%20Jobs%20book.pdf
[13]	OECD (2015). OECD reviews of vocational education and training: Key massages and country summaries. Paris: OECD Publishing. Retrieved from https://www.oecd.org/education/skills-beyond-school/OECD_VET_Key_Messages_and_Country_Summaries_2015.pdf
[14]	OECD (2019). Education at a Glance 2019, Turkey. NICEV. Retrieved from http://www.nicev.org.tr/Education%20At%20A%20Glance%202019.pdf
[15]	OECD (2020). Education Policy Outlook: Turkey. OECD Publishing. Available at: www.oecd.org/education/policy-outlook/country-profile-Turkey-2020.pdf.
[16]	Özer, M. (2019). Background of problems in vocational education and training and its road map to solution in Turkey's education vision 2023. Yükseköğretim ve Bilim Dergisi, 9(1), 1–11.
[17]	Özer, M. (2019). Reconsidering the fundamental problems of vocational education and training in Turkey and proposed solutions for restructuring. I·stanbul U¨niversitesi Sosyoloji Dergisi, 39(2), 455-473. https://doi.org/10.26650/SJ.2019.39.2.0098
[18]	Özer, M., & Suna, H. E. (2019). Future of vocational and technical education in Turkey: Solid steps taken after Education Vision 2023. Journal of Education and Humanities, 10(20), 165–192.
[19]	Özer, M. (2020). The Contribution of the Strengthened Capacity of Vocational Education and Training System in Turkey to the Fight against Covid-19. Yükseköğretim Dergisi, 10(2), 134-140.
[20]	Özer, M. (2020). Türkiye'de mesleki eğitimde paradigma değişimi. Gazi Eğitim Fakültesi Dergisi, 40(2), 357-384.
[21]	Özer, M. (2021). A new step towards narrowing the achievement gap in Turkey: "1,000 schools in vocational education and training" project. Bartın University Journal of Faculty of Education, 10(1), 97-108. https://doi.org/10.1016/buefad.824697
[22]	Milli Eğitim Bakanlığı (MEB) (2018). 2023 Eğitim Vizyonu. Ankara: T.C. Milli Eğitim Bakanlığı, www.meb.gov.tr.
[23]	Ministry of National Education (MoNE) (2018). Outlook of Vocational and Technical Education in Turkey. Ankara: Turkish Ministry of National Education, www.meb.gov.tr.
[24]	TEDMEM (2021). 2020 egˆitim degˆerlendirme raporu. Degˆerlendirme Dizisi 7. Ankara: Tu¨rk Egˆitim Dernegˆi. Retrieved from https://tedmem.org/download/2020-egitim-degerlendirme-raporu?wpdmdl=3644&refresh=60e59c7110bf21625660529
@article{acperproISEC2021ID10, author={Karabatman, Hilal Ayan}, title={A Policy Brief on Vocational and Technical Education in Turkey}, journal={Academic Perspective Procedia}, eissn={2667-5862}, volume={4}, year=2021, pages={41-45}}
Karabatman, H.. (2021). A Policy Brief on Vocational and Technical Education in Turkey. Academic Perspective Procedia, 4 (3), 41-45. DOI: 10.33793/acperpro.04.03.10
%0 Academic Perspective Procedia (ACPERPRO) A Policy Brief on Vocational and Technical Education in Turkey% A Hilal Ayan Karabatman% T A Policy Brief on Vocational and Technical Education in Turkey% D 26.12.2021% J Academic Perspective Procedia (ACPERPRO)% P 41-45% V 4% N 3% R doi: 10.33793/acperpro.04.03.10% U 10.33793/acperpro.04.03.10

redpajama_set_name: RedPajamaCommonCrawl


It is worth noting that our hobby represents a true battle-field "stress-test" of different designs. Based on the breakage this weekend, I believe the Panzer II Aus.J's (T77 & T79) should be considered the most reliable tanks in the hobby, given that they were the only two tanks that exited the field of battle with full functionality and armament.
T001 (Tiger) - While masterfully operated by Sir Neil of Manchester, the Tiger had it's turret locked (most of the time) in the forward position because of a long-failed rotate motor. It is fully anticipated that T001 will be honorably discharged and retired (and sent to a nice tank retirement village).
Frank Notes: T001 has been officially retired as a primary weapon, but will continue to be loaned out to qualified battlers as a backup vehicle. Neil tried his best to beat it into the ground, but it ran the whole weekend with all systems working as they did before the battle!
T010 (Hetzer) - After 55 battles and who knows how many student frat parties, one of the motors finally had enough and turned into a brick. As these motors are no longer manufactured, looks like the Sommer factory needs to fire up and build the Sherman that has been in design for a couple years.
T026 (SU-100) - One of the more deadly tanks on the field now has electronic gremlins that caused lack of elevate/rotate for the weekend. This looks like a complete electronic overhaul or maybe a little duck-tape!
T039 (Comet) - Never before have we seen total and permanent failure when Marty displayed the internal broken magnets within one of the Comet motors. Luckily Marty took his tank commander knowledge and quickly established the mobil artillery brigade for foxes!
T040 (Cromwell) - After passing through the sound barrier one to many times, the Cromwell turret completely collapsed into five or six pieces. Nothing a little super glue/duck tape can't solve! We are taking up a collection and buying small sheets of aluminum for Steve to rebuild the mighty Cromwell.
T058 (Tiger) - While motor problems seem to plague the field and first thought to be the cause of T058 problems, it turned out to be a much easier chain slippage issue that brought the T058 off the field of battle. Unfortunately, the Windows OS control system isn't yet programmed to determine the real issue and continued to require reboot or blamed Apple for the failure!
T077 (Panzer II) - Worked like a champ. I will admit that once it got home for cleaning and maintenance, I was very close to losing my main drive wheel as it came lose from its bracket. This probably occurred during the victory spin-outs after being the first Fox to survive a Fox & Hound battle.
Editor's Note: Indeed T077 is a reliable and worthy adversary, but it really needs to work on it's video recording capabilities!
T079 (Panzer II) - Temperamental gun issues delayed a battle, but once the electronics were repaired, fellow Panzer II scored serious points during the weekend.
Details from John: As Paul mentioned, T-79 was having a marker problem. Was firing intermittently, and more than 1 ball was entering the gun tube. Changed out 9 volt to a fresher one, diassembled marker and found that the detent plastic frame had cracked. Luckily I had brought along another marker with the proper plate to exchange out. Tested all, was fine, install marker, intermittent problem resurfaces. Tear it down again, clean all parts thoroughly, replace spring, retest,okay, install, problem resurfaces later in the battle. After final battle on day 1, we track down problem to , the solenoid actuator pictured above. The pin above broke away from the bottom plate. Luckily Will had a replacement in another marker that I could borrow. We also found a broken wire which was cut out and reattached. Thanks Will.
T100 (Semovente) - Call Sign should be chopsaw for all the paint that exploded in the barrel! Designers were already developing the new & improved magazine feed after Day 1 morning battle.
Details from Frank: Despite the massivity of the Semovente (it's definitely a big dog), it has very little space above the gun for the magazine and feed. So, I tried something that *could* have worked, but it didn't. Over the winter that problem will be solved and the big dog will have a bite to go with it's bark.
RL001 (M20 Super Bazooka) - worked flawlessly in practice late Saturday, but fired only one shot in pre-battle practice Sunday morning. Mike replaced the marker with a spare and Bazooka Joe battled well all day in the hands of a rookie operator, running out of CO2 just before the end. John diagnosed a weak 9V battery in the original marker and supplied a new one which solved the problem.
RL002 (15 cm Nebelwerfer 41) - still in development but fired paintballs (not very far) from one tube and had functional traverse, elevation and fire controls. A small machine screw in the elevation pivot worked its way tight against the aluminum beam and caused the motor to break its mount just as the final battle was ending - lesson learned: use a washer and grease, and perhaps threadlocker or a longer screw with a locknut on the far side. The 3/16" hardboard used for the framing is not battleworthy in single layers and will be replaced with 1/8" aluminum plate.


Sympathetic reception is universally accorded here, and, indeed, throughout most of neutral Europe, to President Roosevelt's appeal to the Churches to synchronize their peace efforts and to the outline of Pope Pius XII of his conception of a just peace. In informed circles it is declared that the Allies' viewpoint on the peace question approximates pretty closely to the five postulates laid down by the Pope in his Christmas Eve address to the Cardinals which, it is assumed, will find general approval in the United States, too. . . .
In these circumstances, and especially because they consider that the war was forced upon them by action of the Third Reich, the Allies hold that the next move for peace must come not from them, but from the other side. They are not prepared to sheathe the sword while the objects for which they are fighting are unattained. For the Allies consider that an inconclusive peace would merely invite fresh aggressions at an early date.


2016-2017: Had a record of 23-4 finished 3rd at the WCWA National Tournament.
Was a 4x High School District Champion, 2X Regional Champion and finished her Senior year with a State Championship in wrestling at Dallas Skyline. Also, likes reading and running.
Good Luck Maria! Go Emmanuel!


text:
Home Economic Policy Realtors Say Worst Is Over: David Lereah Lives!
Realtors Say Worst Is Over: David Lereah Lives!
Arghhhhhhhhh! Come on folks, isn't it obvious that the National Association of Realtors (NAR) is in the business of selling houses? This means that when their "experts" give their assessment of the housing market, it comes with a certain bias. David Lereah, the former chief economist of the NAR has moved on to greener pastures, but it seems that the media are still treating statements from the NAR with the exact same lack of scrutiny as before. USA Today ran an AP story in which the only expert cited was Pat Combs, the president of the NAR and the vice-president of Coldwell Banker-AJS-Schmidt.


text:
PCMag Australia | News & Analysis | News
Massive Spambot Exposes 711 Million Email Addresses
31 Aug 2017, 3:15 a.m.
'For a sense of scale, that's almost one address for every single man, woman and child in all of Europe,' according to security researcher Troy Hunt.
More than 711 million email accounts have been exposed as part of a major spamming and malware operation, security researchers are warning.
As ZDNet reports, a researcher who goes by the handle Benkow recently discovered the credentials — including email addresses and associated passwords — on a spambot server hosted in the Netherlands. The spambot, called "Onliner," has been in use since 2016 to spread a banking Trojan called Ursnif, Benkow writes in a blog post.
Also included in the breach are about 80 million simple mail transfer protocol (SMTP) accounts, which "give the spammer a nice range of mail servers to send their messages from," according to security researcher Troy Hunt, who runs the breach notification site Have I Been Pwned, and has been working with Benkow to get the word out about the leak.
SEE ALSO: Save 20 Percent on Stellar Phoenix Windows Data Recovery
As ZDNet explains, those credentials allow the perpetrators to "send what appears to be legitimate email," bypassing spam filters.
Processing the largest list of data ever seen in @haveibeenpwned courtesy of a nasty spambot. I'm in there, you probably are too.
— Troy Hunt (@troyhunt) August 28, 2017
Hunt says his email address was exposed as part of the leak and warns his followers that their credentials are "probably there too."
To see if you've been affected, you can enter your email address into Have I Been Pwned. Or you can just change your passwords, sign up for a password manager, turn on two-factor authentication, and be extra cautious when opening emails.
In a blog post, Hunt says the spam list is the "largest single set of data" he's entered into Have I Been Pwned in its history. "Just for a sense of scale, that's almost one address for every single man, woman and child in all of Europe," Hunt writes. "It's a mind-boggling amount of data."
Hunt and Benkow are working with a "trusted source" in the Netherlands who has been communicating with law enforcement to get the spambot down as soon as possible, Hunt says.
The researchers say it's unclear where all the credentials came from, but suggested they may have been amassed from previous leaks, such as the LinkedIn breach and a Facebook phishing campaign.
"The unfortunate reality for all of us: our email addresses are a simple commodity that's shared and traded with reckless abandon, used by unscrupulous parties to bombard us with everything from Viagra offers to promises of Nigerian prince wealth," Hunt writes. "That, unfortunately, is life on the web today."
Save 20 Percent on Stellar Phoenix Windows Data Recovery
Backed by the UK, US Indicts More Russian Hackers
Going Off the Data-Collection Grid
Hacker Will Live Stream Attempt to Delete Zuckerberg's Facebook Page


text:
Q: D3 collapsible trees without flare.json I am trying to integrate a collapsible tree with a visualization tool :
http://bl.ocks.org/robschmuecker/7880033
Can someone please tell me how to make this code run without a flare.json file. I have the data in json format and I need to use that json output to make this code run. The code I have that converts a string into a json format is as follows:

This code converts the string into Json Format. Can someone please help me out in using this code instead of
treeJSON = d3.json("flare.json", function(error, treeData){}

and making the collapsible tree run. I would be very grateful if someone can assist me with this. Thank you :)
Best Regards
Mohd
<!DOCTYPE html>
<meta charset="utf-8">

A: Right now you have obj, which is already an object, similar to what treeData needs to be inside the callback to the d3.json function. You can take everything out of that function, converting from this:
d3.json("flare.json", function(error, treeData){
  //Do some stuff with treeData
})

to this:
var treeData = obj;
//Do some stuff with treeData;

Working fiddle: fiddle

redpajama_set_name: RedPajamaStackExchange


text:
Q: Displaying by DateTime.now - Silverlight WP7 Ok, So I want to display some attributes, but only if they have a start time of today's date.
Is there a way to use a wildcard for value? or List multiple values in a Where clause?
Here is an example.. I was thinking if I could pull the current time and then convert to string ( var time = DateTime.Now.ToString("yyyyMMddHHmmss");) I could use that var as a filter for the attribute. here ... where tv.Attribute("start").Value == time
EDIT **
I have updated to the code to make it a little clearer what I am after. As you can see below I am using a Where clause to display attributes under related to a specific "start" time.
Now this example won't work for me because first it need to be all listings over a 24 hour period not a specfic time as below and also because I want to dynamically display listings by DateTime.Now.
So, what I really need is a way to display the current day, but not specific time as a bool and use that in my boolean equation to display "start" attributes by current day.
            WebClient c = new WebClient();
            c.DownloadStringCompleted += new DownloadStringCompletedEventHandler(c_DownloadStringCompleted);
            c.DownloadStringAsync(new Uri("http://www.domain.com/source.xml"));
            progressBar1.IsIndeterminate = true;
            progressBar1.Visibility = Visibility.Visible;

        }

        void c_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            if (e.Error != null)
                return;

            var r = XDocument.Parse(e.Result);

            listBox2.ItemsSource = from tv in r.Root.Descendants("programme")
                                   where tv.Attribute("start").Value == "20110724190000 +1200"
                                   let channelE1 = tv.Attribute("channel")
                                   let startE1 = tv.Attribute("start")
                                   let nameEl = tv.Element("title")
                                   orderby tv.Attribute("start").Value ascending
                                   let urlEl = tv.Element("desc")

                                   select new TV1guide

                                   {
                                       DisplayName = nameEl == null ? null : nameEl.Value,
                                       ChannelName = channelE1 == null ? null : channelE1.Value,
                                       ChannelURL = urlEl == null ? null : urlEl.Value,
                                       StartTime = startE1 == null ? (DateTime?)null : DateTime.ParseExact(startE1.Value, "yyyyMMddHHmmss zzz", DateTimeFormatInfo.CurrentInfo, DateTimeStyles.AssumeLocal),

                                   };

            progressBar1.IsIndeterminate = false;
            progressBar1.Visibility = Visibility.Collapsed;

public class TV1guide
        {
            public string DisplayName { get; set; }
            public string ChannelURL { get; set; }
            public string ImageSource { get; set; }
            public DateTime? StartTime { get; set; }
            public DateTime? EndTime { get; set; }
            public string ChannelName { get; set; }

        }

    }

}

As well as this I have also tried what HiTech Magic suggested, but Im pretty sure the syntax is wrong.
                WebClient c = new WebClient();
                c.DownloadStringCompleted += new DownloadStringCompletedEventHandler(c_DownloadStringCompleted);
                c.DownloadStringAsync(new Uri("http://www.domain.com/source.xml"));
                progressBar1.IsIndeterminate = true;
                progressBar1.Visibility = Visibility.Visible;

            }

bool MyDateCheckingMethod( DateTime otherDate )
{
    // Is this today (ignoring time)?
    return otherDate.Date == DateTime.Now.Date;
}

void c_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
            {
                if (e.Error != null)
                    return;

                var r = XDocument.Parse(e.Result);

                listBox2.ItemsSource = from tv in r.Root.Descendants("programme")
                                       where MyDateCheckingMethod(tv.Attribute("start").Value)
                                       let channelE1 = tv.Attribute("channel")
                                       let startE1 = tv.Attribute("start")
                                       let nameEl = tv.Element("title")
                                       orderby tv.Attribute("start").Value ascending
                                       let urlEl = tv.Element("desc")

                                       select new TV1guide

                                       {
                                           DisplayName = nameEl == null ? null : nameEl.Value,
                                           ChannelName = channelE1 == null ? null : channelE1.Value,
                                           ChannelURL = urlEl == null ? null : urlEl.Value,
                                           StartTime = startE1 == null ? (DateTime?)null : DateTime.ParseExact(startE1.Value, "yyyyMMddHHmmss zzz", DateTimeFormatInfo.CurrentInfo, DateTimeStyles.AssumeLocal),

                                       };

                progressBar1.IsIndeterminate = false;
                progressBar1.Visibility = Visibility.Collapsed;

    public class TV1guide
            {
                public string DisplayName { get; set; }
                public string ChannelURL { get; set; }
                public string ImageSource { get; set; }
                public DateTime? StartTime { get; set; }
                public DateTime? EndTime { get; set; }
                public string ChannelName { get; set; }

            }

        }

    }

A: LINQ plays well with all C# functions, so it can be as simple as:
where MyListOfDates.Contains(tv.Attribute("start").Value)

and just put all the required dates into a List<DateTime> MyListOfDates
If you want to use some other comparison and not just a basic list, place the logic into a Method and call that e.g.:
where MyDateCheckingMethod(tv.Attribute("start").Value)

The "Date/Time" value you get from your XML parsing is actually a string in "yyyyMMddHHmmss K" format so your method might look like:
bool MyDateCheckingMethod(string dateString)
{
    DateTime otherDate = DateTime.ParseExact(dateString, "yyyyMMddHHmmss K", null);
    // Is this today (ignoring time)?
    return otherDate.Date == DateTime.Now.Date;
}


text:
Litovany is een Tsjechische gemeente in de regio Vysočina, en maakt deel uit van het district Třebíč.
Litovany telt 136 inwoners.

Gemeente in Třebíč

redpajama_set_name: RedPajamaWikipedia


CloverEats: Lalibela in New Haven | Clover Eats!
I really enjoy Ethiopian cuisine because of injera, the sour spongy bread that everything is served on. When we saw Lalibela, we had to try it out! We stopped by on a Saturday evening, so had the pleasant surprise of a pianist! "Ato Charles" plays every Saturday from 6:30-9:30 and is really fantastic!
It's a pleasant space, but there were only two waitresses serving the entire restaurant! They were moving very quickly, but things still ended up being pretty slow, and small details like water being unfilled and the injera not being warm when it came out. Other Ethiopian restaurants I've been to have maybe been a littler fancier, with hot towels provided before dinner and food being served on mesobs, the traditional woven basket tables.
We got the combination dish, a choice of four, which unfortunately doesn't allow you to get any lamb dishes or the very interesting Kitfo dish ("Ethiopian version of steak tartare" – beef, mitmita, purified butter, homemade cottage cheese). We instead got Doro Wot (chicken with butter, oniones, garlic, berbere) and Siga Wot (very similar, but with beef), both of which were flavorful and filling. We probably should have chosen different sauces/styles, but we just love the taste of berbere, a mixture of chili, garlic, ginger, and spices.
We were able to get my favorite, Tikel Gomen, which is cabbage and potatoes with garlic and spices. It's a dish that tastes almost pickled and so very much appeals to my love of all things sour. For our other vegetable, Yesimir Wot, again with the berbere sauce. Very tasty.
Overall, a great meal, if lacking in some service details. To my delight, they offer a lunch buffet, which sounds fantastic as it allows for sampling of a greater variety of dishes. There also is a food cart, which I've been to and am disappointed to report is nowhere near as good as the restaurant. Check Lalibela out on Yelp or at their website!