text:
Insurrection: Two Years Later
HuffPost Senior Editor Andy Campbell explains why despite hundreds of prosecutions & arrests, after two years the spirit of the January 6th, 2021 Capitol riot is still very much alive.
A video of Tyre Nichols being killed by police is due to be released Friday. Even the police chief says what it shows is 'heinous' and 'inhumane.'
Tyre Nichols died after he was beaten by police at a traffic stop. Chief Cerelyn Davis said the footage shows a "disregard of basic human rights."
The request indicates an "active criminal investigation" by the Justice Department, a campaign finance lawyer told The Washington Post.
Fox NewsCriminal defense attorney and regular Fox News guest Brian Claypool was left utterly humiliated on Friday when he suggested there was no evidence that Paul Pelosi's attacker broke into his home—all despite the release of a security video showing exactly that.In fact, Fox News anchors had to air the actual footage of the break-in for Claypool, who had just appeared on the network the night before to discuss the impending release of the tapes.Debunking a slew of right-wing conspiracies abo
Donald Trump argues in wild court filing that New York can't sue the Trump Organization because it doesn't legally exist
'Trump Organization' is branding shorthand, so it can't be sued, the defendants said repeatedly in the lengthy court filing.
Georgia Governor Kemp Declares State of Emergency, Mobilizes National Guard over 'Cop City' Riots
Brian Kemp signed an emergency order Thursday declaring a state of emergency and mobilizing National Guard troops in response to "Cop City" riots.
It's unclear why they want him on the stand, but other Jan. 6 defendants have said they stormed the Capitol because they thought Trump wanted them to.
The conditions in Ukraine's prisoner of war camps – NV report
NV has visited one of the camps where Ukraine holds prisoners of war — soldiers of the Russian army, fighters from LNR/DNR quasi-formations and mercenaries of the notorious Wagner mercenary company. In this story, we'll you what their everyday life looks like, and the conditions of their detention.
7 killed in shooting at Jerusalem synagogue, suspect dead
Seven Israelis have been killed in a shooting at a synagogue in Jerusalem's Neve Yaakov neighborhood, according to Jerusalem District Police Commander Doron Turgeman. Ten others were wounded in the Friday night shooting, according to the Israeli Foreign Ministry. Responders confronted the suspect less than five minutes after the shooting was reported, according to Israeli police.
Plea deal expected for Sacramento-area defendant in Jan. 6 insurrection at U.S. Capitol
January 6 Rioter Who Pepper-Sprayed Officer Brian Sicknick Gets Seven-Year Prison Sentence
Biden's midterm report: President has failed to deliver on his promise to unite Americans
The Abilene Reporter-News
Julian Khater sentenced to 80 months in Capitol officer assault
CBS-Newyork
DC AG declines to charge mother of Ashli Babbitt, Jan. 6 protester killed by police


Marcel Auger, in Quebec City,Quebec, June 2010.
German officer parade bayonet, 1945.
Canadian Bayonet of Le Régiment de la Chaudière.
Marcel Auger, October 18th 1944.
"I don't know hold old he was but he seemed like an older man. He was sitting on a rock and was chewing on his wool blanket. He was chewing and looking at me like a wild animal ready to jump on its prey."
Please be advised that this veteran's personal experience includes elements of a graphic nature and may not be suitable for a younger viewer. I had to enlist because it was the draft. I stopped my studies once I reached my 9th year. I turned 18 in May '42. Before the army came calling, I wanted to join the air force, not the army. Unbeknownst to my mother, I enlisted in the air force on Buade street in Quebec, near the basilica. I told my mother that I had to report to the Lachine camp [Quebec] only two days before my departure. It was a bit hard on her and on me, as well. I knew that I wanted absolutely to enlist in the air force rather than the army. Finally, I had just as much difficulty in the air force because I was part of the ground team. Sometimes the army was even behind us. I enlisted on November the 2nd, 42. I started my gunner training in Fingal, Ontario [No. 4 Bombing and Gunnery School]. My first choice was to be a pilot but I hadn't received enough instruction to become one. There weren't many of us French Canadians in our squadron. There were maybe 1,200 men in the three squadrons. There were maybe twenty or so of us French Canadians, no more. So inevitably I, who wasn't English, learned English the hard way.
During the landing on Normandy on June 6, 1944, a few days before June 6, we noticed that our planes had been flying a lot. We were working almost 12-18 hours a day. We didn't know why. We found out that the landing had taken place on June 6, in the morning. When we started working in the morning, we learned that the men had landed in Normandy at six in the morning. We landed on the 8th [of June] with the advance party; the first who arrived in front. Before leaving, we had received a message from Eisenhower [Dwight D. Eisenhower, the commander of the Allied forces in Europe]; he was in charge of the landing. I still have the recording. I even have it in my suitcase here. He wished us luck, and it made us cry.
We loaded into the barge. There were sixty of us men in the barge. We had four trucks. I was in the first truck that was to land. The crossing [of the English Channel] was pretty easy. We weren't attacked by any submarines; we were too close to England and France. The submarines weren't venturing that close. Once we arrived in Normandy, it was a beautiful, sunny day. We began to hear the cannons before we had even arrived. We had beached on the shore. We couldn't land with the low tide. It was soft […] and our trucks would have gotten stuck like they did in 1942 in Dieppe [during the Anglo-Canadien raid on August 19th]. Their trucks had gotten stuck. We arrived towards 6:30-6:45 at night and we had to wait until 10:30 at night for the tide to rise. At that moment, there were two warships behind us that were launching shells at the German lines and the German lines were hitting back. Unfortunately, one of the shells hit one of our barges and wiped out in one shot all of the trucks and the sixty men housed inside. Everything gone. We saw it with our own eyes. Towards 10:45 [am], the tide had risen enough for us to get out. When we started exiting, we could see dead men floating in the water all around us. It wasn't easy. It was nice, clear day out but bombs were dropping and shells were falling on all sides.
On land, we followed the front line. We did the entire French countryside. The worst place was Caen. A battle you have surely heard about. I crossed through Caen with my truck, over the ruins of the town. We did the entire countryside; Caen, Villers-Bocage, [Falaise], Beauvais, we crossed through it all. We crossed over intoDouai [France], Belgium, at the beginning of September 1944, I believe. The same thing in Belgium; we did three or four places. During the liberation of the town of Brussels, since I was driving my truck and in Belgium the wheel is on the right and you drive on the right side of the road, I was close to the sidewalk. A woman climbed up onto my truck and asked if I was from Montreal. I told her that I was from Quebec. She told me that her husband was a Canadian she that she was from Montreal. She was Belgian but she had married a Canadian in '14-18 [during the First World War of 1914-1918]. Mrs. Raymond Massard was her name. She gave me her phone number and became my war godmother.
Holland was the worse place we went to. It was the winter, and it was very cold. It was snowing and people were poor. Children would dig through our garbage and eat what was good or what they thought was good. We had bread tipped in tea, imagine that. Mutton with fat afterwards. We ate a lot of mutton. That's what they ate. The wore clogs, both the children and adults. It was difficult in Holland, very, very difficult. It was cold, cold like our winters here. It was the end of the war. We thought that we would be coming back as soon as possible, but that was May 1945. I worked as part of the occupation until January 1946. I spent six months in Germany.
I would never advise my children to enlist in the war. I witnessed atrocities, especially at the Belsen-Bergen camp [Bergen-Belsen concentration camp], near Hanover [Germany]. While I was convalescing, I was a driver for a […] commander. We slept one night at the Belsen-Bergen [Bergen-Belsen] concentration camp. I have photos with my in my suitcase. One is of a pit with five or six thousand bodies. Those bodies, they took them from the barracks where there were compartments with three levels. Some of them were dead already. Some of them were injured and some of them were dying. They took all those poor people and put them in the pit. In one of the holes, you can see a woman. I have a photo of it. She had nice black hair and a hole in her thigh. One of guards told me how she got that hole in her thigh. The woman gave birth to a child at the camp. She was breastfeeding when one morning, an SS guard [Schutzstaffel, Nazi Party paramilitary organization] quartered it before her very eyes. She went crazy. She tried to run away and escape but she couldn't get through the barbed wire. They shot her. You can see that her body in the hole. It's a horrible memory. I saw another man, I don't know how old he was but he seemed like an older man. He was sitting on a rock and was chewing on his wool blanket. He was chewing and looking at me like a wild animal ready to jump on its prey. It's an image I will never forget. Never, never, never.


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Data;
using DlhSoft.Windows.Controls;
using System.Collections.ObjectModel;

namespace Demos.WPF.CSharp.GanttChartDataGrid.Recurrence
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            RecurrentGanttChartItem item1 = GanttChartDataGrid.Items[1] as RecurrentGanttChartItem;
            item1.Start = DateTime.Today.Add(TimeSpan.Parse("08:00:00"));
            item1.Finish = DateTime.Today.Add(TimeSpan.Parse("16:00:00"));
            // Set OccurrenceCount to indicate the number of occurrences that should be generated for the task.
            item1.OccurrenceCount = 4;
            RecurrentGanttChartItem item2 = GanttChartDataGrid.Items[2] as RecurrentGanttChartItem;
            item2.Start = DateTime.Today.AddDays(1).Add(TimeSpan.Parse("08:00:00"));
            item2.Finish = DateTime.Today.AddDays(2).Add(TimeSpan.Parse("16:00:00"));
            item2.OccurrenceCount = 3;
            RecurrentGanttChartItem item4 = GanttChartDataGrid.Items[4] as RecurrentGanttChartItem;
            item4.Start = DateTime.Today.Add(TimeSpan.Parse("08:00:00"));
            item4.Finish = DateTime.Today.AddDays(2).Add(TimeSpan.Parse("12:00:00"));
            item4.OccurrenceCount = int.MaxValue;
            RecurrentGanttChartItem item6 = GanttChartDataGrid.Items[6] as RecurrentGanttChartItem;
            item6.Start = DateTime.Today.Add(TimeSpan.Parse("08:00:00"));
            item6.Finish = DateTime.Today.AddDays(3).Add(TimeSpan.Parse("12:00:00"));
            // You may set OccurrenceCount to MaxValue to indicate that virtually unlimited occurrences should be generated.
            item6.OccurrenceCount = int.MaxValue;
            RecurrentGanttChartItem item7 = GanttChartDataGrid.Items[7] as RecurrentGanttChartItem;
            item7.Start = DateTime.Today.AddDays(4).Add(TimeSpan.Parse("08:00:00"));
            item7.Finish = DateTime.Today.AddDays(4).Add(TimeSpan.Parse("16:00:00"));
            // Set RecurrenceType to indicate the type of recurrence to use when generating occurrences for the task.
            item7.RecurrenceType = RecurrenceType.Daily;
            item7.OccurrenceCount = 2;

            // Component ApplyTemplate is called in order to complete loading of the user interface, after the main ApplyTemplate that initializes the custom theme, and using an asynchronous action to allow further constructor initializations if they exist (such as setting up the theme name to load).
            Dispatcher.BeginInvoke((Action)delegate
            {
                ApplyTemplate();

                // Apply template to be able to access the internal GanttChartView control.
                GanttChartDataGrid.ApplyTemplate();

                // Set up the internally managed occurrence item collection to be displayed in the chart area (instead of GanttChartDataGrid.Items).
                GanttChartDataGrid.GanttChartView.Items = ganttChartItemOccurrences;
                UpdateOccurrences();
            });
        }

        private string theme = "Generic-bright";
        public MainWindow(string theme) : this()
        {
            this.theme = theme;
            ApplyTemplate();
        }
        public override void OnApplyTemplate()
        {
            LoadTheme();
            base.OnApplyTemplate();
        }
        private void LoadTheme()
        {
            if (theme == null || theme == "Default" || theme == "Aero")
                return;
            var themeResourceDictionary = new ResourceDictionary { Source = new Uri("/" + GetType().Assembly.GetName().Name + ";component/Themes/" + theme + ".xaml", UriKind.Relative) };
            GanttChartDataGrid.Resources.MergedDictionaries.Add(themeResourceDictionary);
        }

        // Stores the internally generated task occurrences displayed in the GanttChartView control.
        private ObservableCollection<GanttChartItem> ganttChartItemOccurrences = new ObservableCollection<GanttChartItem>();

        private void GanttChartDataGrid_TimelinePageChanged(object sender, EventArgs e)
        {
            UpdateOccurrences();
        }

        private void GanttChartDataGrid_ItemPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName != "Start" && e.PropertyName != "Finish" && e.PropertyName != "RecurrenceType" && e.PropertyName != "OccurrenceCount")
                return;

            UpdateOccurrences();
        }

        // Update the managed occurrence item collection for all DataGrid items, according to the current timeline page displayed in the chart area, based on their recurrence settings.
        private void UpdateOccurrences()
        {
            foreach (GanttChartItem item in GanttChartDataGrid.Items)
                UpdateOccurrences(item as RecurrentGanttChartItem, false);
        }

        // Update the managed occurrence item collection for the specified recurrent item, according to the current timeline page displayed in the chart area, based on their recurrence settings.
        private void UpdateOccurrences(RecurrentGanttChartItem item, bool preserveExistingOccurrences)
        {
            if (item == null)
                return;

            if (!preserveExistingOccurrences)
            {
                List<GanttChartItem> occurrences = (from i in ganttChartItemOccurrences
                                                    where i.Tag == item
                                                    select i).ToList();
                foreach (GanttChartItem occurrence in occurrences)
                    ganttChartItemOccurrences.Remove(occurrence);
            }

            int existingOccurrenceCount = ganttChartItemOccurrences.Count(i => i.Tag == item);
            if (item.OccurrenceCount >= existingOccurrenceCount)
            {
                for (int i = existingOccurrenceCount; i < item.OccurrenceCount; i++)
                {
                    DateTime start = item.Start, finish = item.Finish;
                    switch (item.RecurrenceType)
                    {
                        case RecurrenceType.Daily:
                            start = start.AddDays(i);
                            finish = finish.AddDays(i);
                            break;
                        case RecurrenceType.Weekly:
                            start = start.AddDays(7 * i);
                            finish = finish.AddDays(7 * i);
                            break;
                        case RecurrenceType.Monthly:
                            start = start.AddMonths(i);
                            finish = finish.AddMonths(i);
                            break;
                        case RecurrenceType.Yearly:
                            start = start.AddYears(i);
                            finish = finish.AddYears(i);
                            break;
                    }

                    // Avoid creating occurrences that would fall after the current timeline page (i.e. in the far future).
                    if (start >= GanttChartDataGrid.TimelinePageFinish)
                        break;

                    // Create and link a new Gantt Chart occurrence to its DataGrid item using Tag and Content properties.
                    GanttChartItem occurrence = new GanttChartItem { Start = start, Finish = finish, CompletedFinish = start, Tag = item };
                    BindingOperations.SetBinding(occurrence, GanttChartItem.ContentProperty, new Binding("Content") { Source = item });
                    ganttChartItemOccurrences.Add(occurrence);

                    // After having the new occurrence initialized as an element within GanttChartView, bind its visibility and position properties to the linked item values, accordingly (use a delegate to postpone code for the rendering phase).
                    Dispatcher.BeginInvoke((Action)delegate
                    {
                        BindingOperations.SetBinding(occurrence, GanttChartItem.IsVisibleProperty, new Binding("IsVisible") { Source = item, Mode = BindingMode.OneWay });
                        BindingOperations.SetBinding(occurrence, GanttChartItem.DisplayRowIndexProperty, new Binding("ActualDisplayRowIndex") { Source = item });
                    });
                }
            }
            else
            {
                List<GanttChartItem> occurrences = (from i in ganttChartItemOccurrences
                                                    where i.Tag == item
                                                    select i).Skip(item.OccurrenceCount).ToList();
                foreach (GanttChartItem occurrence in occurrences)
                    ganttChartItemOccurrences.Remove(occurrence);
            }
        }
    }
}

redpajama_set_name: RedPajamaGithub


After 10 beta releases and 2 release candidates, Zap Calendar 3.0 has reached production status. Zap Calendar 3.0 supports Joomla versions 1.5, 1.6, 1.7 and the just released 2.5 version. It is available now to all current subscribers.
Zap Calendar 3.0 supports Joomla's ACL feature with Joomla versions 1.6 and above. It also comes with 3 new addons. The password plugin (standard and pro versions) provides a simple mechanism for requiring a password when adding or editing events to a calendar in the front-end. This is a simple alternative to creating ACL rules in Joomla 1.6 and above or Joomla 1.5 sites where ACL support is not available.
The month header plugin (standard and pro versions) provides one click access to any month in the current year. All month names are displayed in a horizontal line above the calendar for easy navigation between months. This plugin supports calendars starting on months other than January ( a school calendar, for example).
If only one time is specified, then a one hour meeting is assumed. If no time is specified, then an all day meeting is assumed. Events can also be created using the quick add feature found in Zap Calendar's back-end panel display.
Updated Photo Header plugin - You can now click on the photo to browse from month to month, similar to clicking on photos in Facebook to display the previous or next photo.
Zap Calendar 3.0 is now available for download to Zap Calendar subscribers at http://www.zcontent.net/zapstore . Has your subscription expired? No problem, just follow the same link, login to your account and renew your subscription.
After 10 beta releases, Zap Calendar 3.0 has finally reached the "Release Candidate" status. This is the final phase before the product production status. This release fixes numerous issues, include PHP 5.3 compatibility issues with several plugins. Zap Calendar 3.0 supports Joomla versions 1.5, 1.6, 1.7 and the just released 2.5 version. It is available now to all current subscribers.
This release includes the new password plugin, available to standard and pro subscriptions. This plugin provides a simple mechanism for requiring a password when adding or editing events on a calendar in the front-end. This is a simpler alternative to creating ACL rules in Joomla 1.6+ or for Joomla 1.5 sites where ACL support is not available.
If only one time is specified, then a one hour meeting is assumed. If no time is specified, then an all day meeting is assumed.
Create an event manager who can create and manage events but can not create or manage articles.
Create a special group of users who can create and/or edit events from the front-end.
Allow additional back-end users to maintain categories, locations and views.
Provide multiple access levels for front-end groups ( i.e. add and delete, add-only, add, edit and delete, etc).
Beta 9 is now available for download to Zap Calendar subscribers at http://www.zcontent.net/zapstore . Zap Calendar users can renew or upgrade their subscription of Zap Calendar at the same link.
We are pleased to announce the availability of the third beta release of version 3.0 of Zap Calendar. This release provides support for three versions of Joomla: versions 1.5, 1.6 and 1.7. It is available to all current Zap Calendar subscribers, which can be downloaded from the My ZApps page at the Zap Store on the Z Content website.
This is a beta release and has not been extensively tested. You should test the product in your environment to see if the beta version is suitable in your production site. Any issues found with this beta release should be posted to the Zap Calendar forum at the Z Content website.
What 3 Words Best Describe the Latest Version of Zap Calendar?
OK, that is a variation of a bad joke, but it does highlight the major feature of version 2.2 of Zap Calendar, which is expected to be released in April. The new location feature in 2.2 will allow you to group events by location and display a calendar of only those events at that location. By using Zap Calendar's powerful calendar view feature, you can choose what type of calendar to display for a location: monthly, weekly, upcoming and more. iCal and CSV imports make it easy to associate events to locations automatically by matching events with the same location text.
What else is new in version 2.2?
CSV import now recognizes date, time, duration, title, location and description fields. Meetings and all day event imports are now supported.
You can now edit repeating events, either singularly or as a group, from the front end. You can also either delete an entire repeating event series or a single event within the repeating series from the front end. This is similar to repeating event editing that has been available in the back end.
Two additional language translations are included. In addition to Spanish and Brazilian Portuguese, French and Swedish languages are now included.
Zap Category Controller (both module and plugin): You now have the option to display groups of categories in tree fashion (the tree is limited to one level of groups).
RSVP Plugin: The administrator or event owner can now edit a user's RSVP. Administrator only fields allow the event owner or administrator to add additional data to the RSVP.
MyRSVP Module - The administrator can create a report of a user's RSVP activity in the back end. The front end display can now be oriented horizontally or vertically.
For a complete list of features, read the change log posted in the forums.
Version 6.03 will correct this issue, which only affects the Z Weather component. All other files are unaffected.
Did you know Zap Calendar works with the iPad and iPhone (iTouch too)? In fact, this Zap Calendar feature has been available since the iPad's introduction. With Zap Calendar's full support of the iCal standard, you can synchronize events on a Zap Calendar enabled web site to your iPad or iPhone easily.
From the Safari browser, navigate to your Zap Calendar page. Click the subscribe option in the upper right corner (if you don't see it, you may need to enable the option in the calendar view settings). From the popup window, just select the Apple link and your iPad or iPhone will be synchronized with the calendar. Now, when an event is added, modified, or deleted in the calendar, your iPad or iPhone calendar will be automatically updated. How cool is that?
If you are on your iPad or iPhone now, you can try it now from the American History Calendar web site by clicking here.
Vote at extensions.joomla.org site - Visit the Zap Calendar listing by clicking here and vote for Zap Calendar. You can even write a review. We believe honest reviews from customers are very important and much more valuable to others when considering Zap Calendar than anything we can say about the product.
Like us on Facebook - Join the Z Content page on Facebook by clicking here, or go to the Z Content site and click the "Like" option in the upper left corner.
Follow us on Twitter - Follow us on Twitter by clicking here.