text:
Officials Blast Contractor For Delaying Long Beach Island Dune Restoration Project
Filed Under:Dune Restoration Project, Dune Restoration Stalled, Levon Putney, Long Beach Island
Nearly 13 miles of beaches and dunes on Long Beach Island are being restored. (credit: Levon Putney/WCBS 880)
LONG BEACH ISLAND, N.J. (CBSNewYork) — A stalled restoration project is raising concerns from officials about the damage potential storms could have on Long Beach Island without the proper dunes to protect the beaches.
As WCBS 880's Levon Putney reported, the Army Corps of Engineers said contractor Great Lakes Dredge and Dock Company needs its equipment for other projects, but will be back in April to finish by the May deadline.
"Yea, we're not buying into that because there is work to be done here," said Department of Environmental Protection spokesman Larry Hajna.
Hajna said the deal for the stalled work on Long Beach Island is between the contractor and the Army Corps of Engineers.
"We don't have a contractual hammer that we can use but we're using the political hammer," said Hajna.
Now, federal, state and local lawmakers are criticizing the move.
"And we feel that it just shows a disregard for the importance of protecting property," Hajna said.
The $128 million project aims to restore 13 miles of beaches and dunes on Long Beach Island.


Searching for a first class, professional and punctual Estonian to English or English to Estonian translation? Welcome to Translating-Interpreting.co.uk.
Our team of talented Estonian translators will take care of all your Estonian translation needs, offering you a cost effective one-stop translation solution.
With a no-nonsense straightforward approach, we guarantee top-flight, fast and accurate translations. We simply give you your Estonian translation how you want it and when you want it.
Our team of Estonian translators are at the apex of their industry and strive for customer satisfaction.
In short, we can translate anything that is written. We deal with anything from English to Estonian or from Estonian to English. This is the ultimate A-Z translation service.
Our translators deal with a range of materials including letters, brochures, handbooks, articles, manuals, guides, contracts, novels and much more. We are also leaders in assisting companies going global through our Website Translation, Newsletter Translation and Email Translation services.
In addition, our respected Estonian translators specialise in the translation of legal, engineering, marketing, business, IT and academic documents.
Translating-Interpreting.co.uk translators work exclusively into their native languages, i.e. for an English to Estonian translation only a native Estonian would be used. Why do we do this? Simple - it ensures your translation is accurate, fluid and culturally appropriate. We only want to give our clients first class work.
Simply stated, for all your Estonian translation needs, Translating-Interpreting.co.uk are the company you can depend on. We think you will agree.
For an Estonian translation quote please simply contact us to discuss your needs.
Estonian is the official language of Estonia. Within Estonia Russian is also widely spoken.
Dialects of Estonian include Tallinn (Reval), Tartu (Dorpat), Mulgi, Vôru (Werro), Seto (Setu). These dialects can be grouped into three: North-eastern Coastal Estonian (between Tallinn and Narva), North Estonian (island, western, central, and eastern dialects), and South Estonian (Mulgi, Tartu, Vôru). Vôru, Setu (a subdialect of Vôru), and Island are clearly distinct from standard Estonian.
All the other dialects are assimilated into standard Estonian.


Lately, we dedicate special days to everything from pie to knives to strange music, and New York's 92nd Street Y had a very simple idea: a day dedicated to giving.
If a different community organization had come up with the idea, it may have remained a local phenomenon, but the 92nd Street Y has powerful friends and a storied tradition. The program came to the attention of the United Nations Foundation, and a partnership was born, ultimately bringing together more than 2,600 organizations, resulting in a 53% increase in online donations relative to the same period the previous year.
That was 2012. This year, more than 8,300 organizations participated, and the total amount raised through online donations nearly doubled, from $11 to $21 million, thanks in no small part to tech philanthropists.
Part of the reason for the increase may have been the matching gifts, which are not included in the totals, but helped spur donations. The largest came from Facebook co-founder Dustin Muskovitz's Good Ventures Foundation, which announced a $5 million matching gift to GiveDirectly. Former AOL CEO and Chairman Steve Case made a $75,000 matching gift for funds raised by organizations supported by the Case Foundation, a challenge that was met by their grantees in just 25 minutes; Crowdrise, an organization that sits at the intersection of tech and philanthropy, also pledged $75,000 in matching gifts and prizes for participating non-profits.
Perhaps even more important than the matching gifts though was what tech companies and foundations have done to promote the event. Google was promoting it on their homepage, and hosted a Googe+ Giving Tuesday hangout. Twitter users made #GivingTuesday a trending topic globally, Instagram was flooded with Giving Tuesday #unselfies, and organizations such as the Gates Foundation and Mashable heavily promoted the event.
This year's Giving Tuesday also had many more international participants, indicating that Giving Tuesday is going global. At a certain point, however, more charities observing the event and raising funds means more competition, and to offset this effect, more organizations like Good Ventures will need to step up and offer greater incentives donation if Giving Tuesday's trend is to continue upward.


text:
Giftocracy
Giftocracy by Michael Tetteh
Nearly thirty years ago, in a tiny, impoverished Ghanaian village, a young boy dreamed of becoming a professional soccer player and competing against European powerhouse Manchester United. He ate soccer, slept soccer, and breathed soccer. Despite being told that he wasn't good enough to become a professional soccer player, his dream was realized in 2011 after being drafted by Seattle Sounders FC and competing against Manchester United, in front of 67,000 fans. At twenty-three years old, Michael Tetteh had realized his childhood dream.
Then late one night, an encounter caused him to give up the single thing that had defined his entire life—soccer. In one moment, he surrendered to a new vision and stepped into the unknown. Was he crazy—or brave?
Giftocracy takes you on an inspiring journey of self-discovery with author Michael Tetteh. Powerful lessons from real-life experiences, along with thoughts from trusted influential and transformational leaders (including Myles Munroe, John C. Maxwell and Zig Ziglar), will lead you to a new awareness.
Become empowered! You can transform and transcend the opinions, conditions, and circumstances of your life. Discover the gift trapped within you…and share it with the world.
A life of significance is possible and it's not far from where you are today.
Giftocracy is about realizing the gift inside you holds the key to your successful future.
Giftocracy offers a solution for anyone who feels stuck. And the surprising answer doesn't exist in a new job, a different marriage, or a change of scenery.
Michael Tetteh guides you to discover, develop and refine your gift as dreams you once gave up on reemerge and your true potential surfaces.
Michael Tetteh (Tet-tay) was born in the Volta Region of Ghana. His gift for soccer was noticeable from a young age, playing for the Right to Dream Academy in Ghana at the age of 10. He left Ghana for Santa Barbara, California when he reached high school.
In 2011, Michael played for the University of California Santa Barbara when he was signed to a contract with Adidas. The Seattle Sounders FC selected Michael in the first round of the Major League Soccer draft that year.
After two years Michael knew that his true gift was coaching and teaching- helping others realize their greatness- so he retired from playing professional soccer.
Michael founded One Kingdom Foundation in 2011, a nonprofit organization that develops the character of the next generation of African leaders.
"Giftocracy- Awakening the Seeds of Greatness" is Michael's first book.
Michael is a speaker and certified John C. Maxwell leadership coach.
He lives in Seattle with his wife Kristen.
©2014-2016 Michael Tetteh

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Why is there latency with ORMLite when I print results? I'm using ORMLite but when I do prints after deletes for exemple I still see the deleted lines, for exemple:
demandesDao = db.getDemandesDao();
final List<Demandes> demandes = demandesDao.queryForAll();
DeleteBuilder<Demandes,Integer> deleteBuilder = demandesDao.deleteBuilder();
deleteBuilder.where().eq("contactWebId", 15515);
deleteBuilder.delete();

System.out.println(demandes);

A:
I'm using ORMLite but when I do prints after deletes for example I still see the deleted lines

That's correct.  The DeleteBuilder only removes rows from the database.  Any local collections that you have already queried for are not affected.  In your case, your demandes list was queried before the delete was performed.  If you run another queryForAll() method, you should see that the rows have been removed from the database.

redpajama_set_name: RedPajamaStackExchange


text:
Aarti Naik is an angel for slum girls
July 17, 2017 EP Staff Social Media 0
Humans of Bombay
Aarti Naik is not a much-celebrated name in India's education sector, but she will be. Aarti, hails from Malad, a slum area in Mumbai, has created history by establishing Sakhi, a non-governmental organisation, which provides education to the girls in slum areas. SAKHI's major objective is to provide learning space for girls.
The mission is aimed specifically at those girls who are living and learning in difficult situations, so that they have an opportunity to receive quality education in a secure environment.
SAKHI's daily educational activities enable slum girls to build basic literacy and numeracy skills within their community. The availability of basic English textbooks has improved their vocabulary levels tremendously and they are able to read and write effectively, while continuing to attend school and improving their learning further. Aarti Naik recently shared her story on Humans of Bombay Facebook page. Here's the Facebook post:
"I grew up in a slum in Malad. Studying there was very difficult, because girls weren't expected to do anything major with their lives…becoming a home maker was the only way. I repeatedly asked my father to enroll me in classes that would help me clear my 10th standard board exams, but we couldn't afford it. Despite trying to understand these concepts myself, I couldn't keep up with Science or Math and I failed. My parents were intact happy that I failed…they said I should stay at home and learn how to cook and manage a home, but I was more determined than ever to reappear for my exams and continue my education.
We couldn't afford the fees for a reattempt, and my father refused to let me go out of the house to work so I found a middle way— I started making necklaces and friendship bands from home to save money for my education. I would wake up really early, finish my house work, work hard to sell these bands and then study until the early hours of the morning…that was my routine for years.
I earned only 9 rupees a day for my labour – I saved up all that money and after 4 years, I could finally reappear and pass my 10th boards. I was delighted but it also pinched me to know that there were other girls, just like me who would probably give up after the first attempt. I wanted to educate myself more, so that I could make a real difference and I enrolled myself into an undergrad programme in sociology from from Yashwantrao Chavan Maharashtra Open University.
During this time, I kept going to the girls from my slum, trying to analyse why and how they would fail — I realised that their basics were so weak that it was impossible for them to clear higher classes.
In 2008, after I finished my fellowship , I decided to start 'Sakhi' — educational classes for primary school girls. I started off with 5 young girls…I remember going to each other houses, begging their parents to let them attend. I taught them how to read, write and communicate better. From 5 girls, I grew to 75 and I had to hire a hall to conduct my classes. Mind you, all these classes are free, but I've been lucky to have some kind sponsors who fund this entire project! In 2010, I started a library with English books for these girls and In 2013, an international grant helped us set up our first Girls Learning Centre in the slum.
Since then, I've received multiple awards, I've been featured in a number of articles but my biggest victory is my girls — over 100 of them now have big dreams. Just the other day, they all wrote a speech for me — thanking me for being their 'Sakhi' and Ive never been happier — it was all in perfect English with no grammatical mistakes!"
Education Post
Humans of Bombay. SAKHI
About EP Staff	3489 Articles
Quick news, analysis, and opinions on education related events
MSDE celebrates second anniversary of Skill India mission
Bitcoin study: Period of exclusivity encourages early adopters
Teachers must make their lectures more interactive by involving as much student participation as possible The education industry in India …
1,065+ get job offers, 3,892+ candidates shortlisted: This survey brings cheer to the employment market
Artificial Intelligence has come out as the most demanded subject in 2019


text:
Tall Bireh   ()  is a town in Akkar Governorate, Lebanon.

The population  is mostly Alawite.

History
In 1838, Eli Smith noted  the village as Tell el-Biry,  located north of esh-Sheikh Mohammed. The  inhabitants were Alawites.

References

Bibliography

External links
Tall Bireh, Localiban

Populated places in Akkar District
Alawite communities in Lebanon

redpajama_set_name: RedPajamaWikipedia


Conn-Selmer Alto Saxophones come supplied with a hard case and excellent Eugene Rousseau mouthpiece. Rousseau ebonite mouthpieces offer a level of quality not seen on other student saxes. The excellent response and intonation of these mouthpieces complement Conn-Selmer saxes perfectly.


text:
using ElectronicObserver.Data;
using ElectronicObserver.Data.Battle;
using ElectronicObserver.Observer;
using ElectronicObserver.Resource;
using ElectronicObserver.Resource.Record;
using ElectronicObserver.Utility.Data;
using ElectronicObserver.Window.Control;
using ElectronicObserver.Window.Dialog;
using ElectronicObserver.Window.Support;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;

namespace ElectronicObserver.Window
{

	public partial class FormCompass : DockContent
	{

		private class TableEnemyMemberControl : IDisposable
		{

			public ImageLabel ShipName;
			public ShipStatusEquipment Equipments;

			public FormCompass Parent;
			public ToolTip ToolTipInfo;

			public TableEnemyMemberControl(FormCompass parent)
			{

				#region Initialize

				Parent = parent;
				ToolTipInfo = parent.ToolTipInfo;

				ShipName = new ImageLabel
				{
					Anchor = AnchorStyles.Left,
					ForeColor = parent.MainFontColor,
					ImageAlign = ContentAlignment.MiddleCenter,
					Padding = new Padding(2, 2, 2, 2),
					Margin = new Padding(2, 0, 2, 1),
					AutoEllipsis = true,
					AutoSize = true,
					Cursor = Cursors.Help
				};
				ShipName.MouseClick += ShipName_MouseClick;

				Equipments = new ShipStatusEquipment();
				Equipments.SuspendLayout();
				Equipments.Anchor = AnchorStyles.Left;
				Equipments.Padding = new Padding(0, 1, 0, 2);
				Equipments.Margin = new Padding(2, 0, 2, 0);
				Equipments.AutoSize = true;
				Equipments.ResumeLayout();

				ConfigurationChanged();

				#endregion

			}

			public TableEnemyMemberControl(FormCompass parent, TableLayoutPanel table, int row)
				: this(parent)
			{

				AddToTable(table, row);
			}

			public void AddToTable(TableLayoutPanel table, int row)
			{

				table.Controls.Add(ShipName, 0, row);
				table.Controls.Add(Equipments, 1, row);

			}

			public void Update(int shipID)
			{
				var slot = shipID != -1 ? KCDatabase.Instance.MasterShips[shipID].DefaultSlot : null;
				Update(shipID, slot?.ToArray());
			}

			public void Update(int shipID, int[] slot)
			{

				ShipName.Tag = shipID;

				if (shipID == -1)
				{
					//なし
					ShipName.Text = "-";
					ShipName.ForeColor = Utility.Configuration.Config.UI.ForeColor;
					Equipments.Visible = false;
					ToolTipInfo.SetToolTip(ShipName, null);
					ToolTipInfo.SetToolTip(Equipments, null);

				}
				else
				{

					ShipDataMaster ship = KCDatabase.Instance.MasterShips[shipID];

					ShipName.Text = ship.Name;
					ShipName.ForeColor = ship.GetShipNameColor();
					ToolTipInfo.SetToolTip(ShipName, GetShipString(shipID, slot));

					Equipments.SetSlotList(shipID, slot);
					Equipments.Visible = true;
					ToolTipInfo.SetToolTip(Equipments, GetEquipmentString(shipID, slot));
				}

			}

			public void UpdateEquipmentToolTip(int shipID, int[] slot, int level, int hp, int firepower, int torpedo, int aa, int armor)
			{

				ToolTipInfo.SetToolTip(ShipName, GetShipString(shipID, slot, level, hp, firepower, torpedo, aa, armor));
			}

			void ShipName_MouseClick(object sender, MouseEventArgs e)
			{

				if ((e.Button & System.Windows.Forms.MouseButtons.Right) != 0)
				{
					int shipID = ShipName.Tag as int? ?? -1;

					if (shipID != -1)
						new DialogAlbumMasterShip(shipID).Show(Parent);
				}

			}

			public void ConfigurationChanged()
			{
				ShipName.Font = Utility.Configuration.Config.UI.JapFont;
				Equipments.Font = Utility.Configuration.Config.UI.JapFont2;

				ShipName.MaximumSize = new Size(Utility.Configuration.Config.FormCompass.MaxShipNameWidth, int.MaxValue);
			}

			public void Dispose()
			{
				ShipName.Dispose();
				Equipments.Dispose();
			}
		}

		private class TableEnemyCandidateControl
		{

			public ImageLabel[] ShipNames;
			public ImageLabel Formation;
			public ImageLabel AirSuperiority;

			public FormCompass Parent;
			public ToolTip ToolTipInfo;

			public TableEnemyCandidateControl(FormCompass parent)
			{

				#region Initialize

				Parent = parent;
				ToolTipInfo = parent.ToolTipInfo;

				ShipNames = new ImageLabel[6];
				for (int i = 0; i < ShipNames.Length; i++)
				{
					ShipNames[i] = InitializeImageLabel();
					ShipNames[i].Cursor = Cursors.Help;
					ShipNames[i].MouseClick += TableEnemyCandidateControl_MouseClick;
				}

				Formation = InitializeImageLabel();
				Formation.Anchor = AnchorStyles.None;
				/*
				Formation.ImageAlign = ContentAlignment.MiddleLeft;
				Formation.ImageList = ResourceManager.Instance.Icons;
				Formation.ImageIndex = -1;
				*/

				AirSuperiority = InitializeImageLabel();
				AirSuperiority.Anchor = AnchorStyles.Right;
				AirSuperiority.ImageAlign = ContentAlignment.MiddleLeft;
				AirSuperiority.ImageList = ResourceManager.Instance.Equipments;
				AirSuperiority.ImageIndex = (int)ResourceManager.EquipmentContent.CarrierBasedFighter;

				ConfigurationChanged();

				#endregion

			}

			private ImageLabel InitializeImageLabel()
			{
				var label = new ImageLabel
				{
					Anchor = AnchorStyles.Left,
					ForeColor = Parent.MainFontColor,
					ImageAlign = ContentAlignment.MiddleCenter,
					Padding = new Padding(0, 1, 0, 1),
					Margin = new Padding(4, 0, 4, 1),
					AutoEllipsis = true,
					AutoSize = true
				};

				return label;
			}

			public TableEnemyCandidateControl(FormCompass parent, TableLayoutPanel table, int column)
				: this(parent)
			{

				AddToTable(table, column);
			}

			public void AddToTable(TableLayoutPanel table, int column)
			{

				table.ColumnCount = Math.Max(table.ColumnCount, column + 1);
				table.RowCount = Math.Max(table.RowCount, 8);

				for (int i = 0; i < 6; i++)
					table.Controls.Add(ShipNames[i], column, i);
				table.Controls.Add(Formation, column, 6);
				table.Controls.Add(AirSuperiority, column, 7);

			}

			public void ConfigurationChanged()
			{
				for (int i = 0; i < ShipNames.Length; i++)
					ShipNames[i].Font = Utility.Configuration.Config.UI.JapFont;
				Formation.Font = Parent.MainFont;
				AirSuperiority.Font = Utility.Configuration.Config.UI.JapFont;

				var maxSize = new Size(Utility.Configuration.Config.FormCompass.MaxShipNameWidth, int.MaxValue);
				foreach (var label in ShipNames)
					label.MaximumSize = maxSize;
				Formation.MaximumSize = maxSize;
				AirSuperiority.MaximumSize = maxSize;
			}

			public void Update(EnemyFleetRecord.EnemyFleetElement fleet)
			{

				if (fleet == null)
				{
					for (int i = 0; i < 6; i++)
						ShipNames[i].Visible = false;
					Formation.Visible = false;
					AirSuperiority.Visible = false;
					ToolTipInfo.SetToolTip(AirSuperiority, null);

					return;
				}

				for (int i = 0; i < 6; i++)
				{

					var ship = KCDatabase.Instance.MasterShips[fleet.FleetMember[i]];

					// カッコカリ 上のとマージするといいかもしれない

					if (ship == null)
					{
						// nothing
						ShipNames[i].Text = "-";
						ShipNames[i].ForeColor = Utility.Configuration.Config.UI.ForeColor;
						ShipNames[i].Tag = -1;
						ShipNames[i].Cursor = Cursors.Default;
						ToolTipInfo.SetToolTip(ShipNames[i], null);

					}
					else
					{

						ShipNames[i].Text = ship.Name;
						ShipNames[i].ForeColor = ship.GetShipNameColor();
						ShipNames[i].Tag = ship.ShipID;
						ShipNames[i].Cursor = Cursors.Help;
						ToolTipInfo.SetToolTip(ShipNames[i], GetShipString(ship.ShipID, ship.DefaultSlot?.ToArray()));
					}

					ShipNames[i].Visible = true;

				}

				Formation.Text = Constants.GetFormationShort(fleet.Formation);
				Formation.ForeColor = Utility.Configuration.Config.UI.ForeColor;
				//Formation.ImageIndex = (int)ResourceManager.IconContent.BattleFormationEnemyLineAhead + fleet.Formation - 1;
				Formation.Visible = true;

				{
					int air = Calculator.GetAirSuperiority(fleet.FleetMember);
					AirSuperiority.Text = air.ToString();
					AirSuperiority.ForeColor = Utility.Configuration.Config.UI.ForeColor;
					ToolTipInfo.SetToolTip(AirSuperiority, GetAirSuperiorityString(air));
					AirSuperiority.Visible = true;
				}

			}

			void TableEnemyCandidateControl_MouseClick(object sender, MouseEventArgs e)
			{

				if ((e.Button & System.Windows.Forms.MouseButtons.Right) != 0)
				{
					int shipID = ((ImageLabel)sender).Tag as int? ?? -1;

					if (shipID != -1)
						new DialogAlbumMasterShip(shipID).Show(Parent);
				}
			}

		}

		#region ***Control method

		private static string GetShipString(int shipID, int[] slot)
		{

			ShipDataMaster ship = KCDatabase.Instance.MasterShips[shipID];
			if (ship == null) return null;

			return GetShipString(shipID, slot, -1, ship.HPMin, ship.FirepowerMax, ship.TorpedoMax, ship.AAMax, ship.ArmorMax,
				 ship.ASW != null && !ship.ASW.IsMaximumDefault ? ship.ASW.Maximum : -1,
				 ship.Evasion != null && !ship.Evasion.IsMaximumDefault ? ship.Evasion.Maximum : -1,
				 ship.LOS != null && !ship.LOS.IsMaximumDefault ? ship.LOS.Maximum : -1,
				 ship.LuckMin);
		}

		private static string GetShipString(int shipID, int[] slot, int level, int hp, int firepower, int torpedo, int aa, int armor)
		{
			ShipDataMaster ship = KCDatabase.Instance.MasterShips[shipID];
			if (ship == null) return null;

			return GetShipString(shipID, slot, level, hp, firepower, torpedo, aa, armor,
				ship.ASW != null && ship.ASW.IsAvailable ? ship.ASW.GetParameter(level) : -1,
				ship.Evasion != null && ship.Evasion.IsAvailable ? ship.Evasion.GetParameter(level) : -1,
				ship.LOS != null && ship.LOS.IsAvailable ? ship.LOS.GetParameter(level) : -1,
				level > 99 ? Math.Min(ship.LuckMin + 3, ship.LuckMax) : ship.LuckMin);
		}

		private static string GetShipString(int shipID, int[] slot, int level, int hp, int firepower, int torpedo, int aa, int armor, int asw, int evasion, int los, int luck)
		{

			ShipDataMaster ship = KCDatabase.Instance.MasterShips[shipID];
			if (ship == null) return null;

			int firepower_c = firepower;
			int torpedo_c = torpedo;
			int aa_c = aa;
			int armor_c = armor;
			int asw_c = asw;
			int evasion_c = evasion;
			int los_c = los;
			int luck_c = luck;
			int range = ship.Range;

			asw = Math.Max(asw, 0);
			evasion = Math.Max(evasion, 0);
			los = Math.Max(los, 0);

			if (slot != null)
			{
				int count = slot.Length;
				for (int i = 0; i < count; i++)
				{
					EquipmentDataMaster eq = KCDatabase.Instance.MasterEquipments[slot[i]];
					if (eq == null) continue;

					firepower += eq.Firepower;
					torpedo += eq.Torpedo;
					aa += eq.AA;
					armor += eq.Armor;
					asw += eq.ASW;
					evasion += eq.Evasion;
					los += eq.LOS;
					luck += eq.Luck;
					range = Math.Max(range, eq.Range);
				}
			}

			var sb = new StringBuilder();

			sb.Append(ship.ShipTypeName).Append(" ").AppendLine(ship.NameWithClass);
			if (level > 0)
				sb.Append("Lv. ").Append(level.ToString());
			sb.Append(" (ID: ").Append(shipID).AppendLine(")");

			sb.Append("耐久 : ").Append(hp).AppendLine();

			sb.Append("火力 : ").Append(firepower_c);
			if (firepower_c != firepower)
				sb.Append("/").Append(firepower);
			sb.AppendLine();

			sb.Append("雷装 : ").Append(torpedo_c);
			if (torpedo_c != torpedo)
				sb.Append("/").Append(torpedo);
			sb.AppendLine();

			sb.Append("对空 : ").Append(aa_c);
			if (aa_c != aa)
				sb.Append("/").Append(aa);
			sb.AppendLine();

			sb.Append("装甲 : ").Append(armor_c);
			if (armor_c != armor)
				sb.Append("/").Append(armor);
			sb.AppendLine();

			sb.Append("对潜 : ");
			if (asw_c < 0) sb.Append("???");
			else sb.Append(asw_c);
			if (asw_c != asw)
				sb.Append("/").Append(asw);
			sb.AppendLine();

			sb.Append("回避 : ");
			if (evasion_c < 0) sb.Append("???");
			else sb.Append(evasion_c);
			if (evasion_c != evasion)
				sb.Append("/").Append(evasion);
			sb.AppendLine();

			sb.Append("索敌 : ");
			if (los_c < 0) sb.Append("???");
			else sb.Append(los_c);
			if (los_c != los)
				sb.Append("/").Append(los);
			sb.AppendLine();

			sb.Append("运 : ").Append(luck_c);
			if (luck_c != luck)
				sb.Append("/").Append(luck);
			sb.AppendLine();

			sb.AppendFormat("射程 : {0} / 速度 : {1}\r\n( 右键点击打开图鉴 )\r\n",
				Constants.GetRange(range),
				Constants.GetSpeed(ship.Speed));

			return sb.ToString();

		}

		private static string GetEquipmentString(int shipID, int[] slot)
		{
			StringBuilder sb = new StringBuilder();
			ShipDataMaster ship = KCDatabase.Instance.MasterShips[shipID];

			if (ship == null || slot == null) return null;

			for (int i = 0; i < slot.Length; i++)
			{
				var eq = KCDatabase.Instance.MasterEquipments[slot[i]];
				if (eq != null)
					sb.AppendFormat("[{0}] {1}\r\n", ship.Aircraft[i], eq.Name);
			}

			sb.AppendFormat("\r\n昼战 : {0}\r\n夜战 : {1}\r\n",
				Constants.GetDayAttackKind(Calculator.GetDayAttackKind(slot, ship.ShipID, -1)),
				Constants.GetNightAttackKind(Calculator.GetNightAttackKind(slot, ship.ShipID, -1)));

			{
				int aacutin = Calculator.GetAACutinKind(shipID, slot);
				if (aacutin != 0)
				{
					sb.AppendFormat("对空 : {0}\r\n", Constants.GetAACutinKind(aacutin));
				}
			}
			{
				int airsup = Calculator.GetAirSuperiority(slot, ship.Aircraft.ToArray());
				if (airsup > 0)
				{
					sb.AppendFormat("制空战力 : {0}\r\n", airsup);
				}
			}

			return sb.ToString();
		}

		private static string GetAirSuperiorityString(int air)
		{
			if (air > 0)
			{
				return string.Format("确保 : {0}\r\n优势 : {1}\r\n均势: {2}\r\n劣势: {3}\r\n",
							(int)(air * 3.0),
							(int)Math.Ceiling(air * 1.5),
							(int)(air / 1.5 + 1),
							(int)(air / 3.0 + 1));
			}
			return null;
		}

		#endregion

		public Font MainFont { get; set; }
		public Font SubFont { get; set; }
		public Color MainFontColor { get; set; }
		public Color SubFontColor { get; set; }

		private TableEnemyMemberControl[] ControlMembers;
		private TableEnemyCandidateControl[] ControlCandidates;

		private int _candidatesDisplayCount;

		/// <summary>
		/// 次に遭遇する敵艦隊候補
		/// </summary>
		private List<EnemyFleetRecord.EnemyFleetElement> _enemyFleetCandidate = null;

		/// <summary>
		/// 表示中の敵艦隊候補のインデックス
		/// </summary>
		private int _enemyFleetCandidateIndex = 0;

		public FormCompass(FormMain parent)
		{
			InitializeComponent();

			MainFontColor = Color.FromArgb(0x00, 0x00, 0x00);
			SubFontColor = Color.FromArgb(0x88, 0x88, 0x88);

			ControlHelper.SetDoubleBuffered(BasePanel);
			ControlHelper.SetDoubleBuffered(TableEnemyFleet);
			ControlHelper.SetDoubleBuffered(TableEnemyMember);

			TableEnemyMember.SuspendLayout();
			ControlMembers = new TableEnemyMemberControl[6];
			for (int i = 0; i < ControlMembers.Length; i++)
			{
				ControlMembers[i] = new TableEnemyMemberControl(this, TableEnemyMember, i);
			}
			TableEnemyMember.ResumeLayout();

			TableEnemyCandidate.SuspendLayout();
			ControlCandidates = new TableEnemyCandidateControl[6];
			for (int i = 0; i < ControlCandidates.Length; i++)
			{
				ControlCandidates[i] = new TableEnemyCandidateControl(this, TableEnemyCandidate, i);
			}
			TableEnemyCandidate.ResumeLayout();

			//BasePanel.SetFlowBreak( TextMapArea, true );
			BasePanel.SetFlowBreak(TextDestination, true);
			//BasePanel.SetFlowBreak( TextEventKind, true );
			BasePanel.SetFlowBreak(TextEventDetail, true);

			TextDestination.ImageList = ResourceManager.Instance.Equipments;
			TextEventKind.ImageList = ResourceManager.Instance.Equipments;
			TextEventDetail.ImageList = ResourceManager.Instance.Equipments;
			TextFormation.ImageList = ResourceManager.Instance.Icons;
			TextAirSuperiority.ImageList = ResourceManager.Instance.Equipments;
			TextAirSuperiority.ImageIndex = (int)ResourceManager.EquipmentContent.CarrierBasedFighter;

			ConfigurationChanged();

			Icon = ResourceManager.ImageToIcon(ResourceManager.Instance.Icons.Images[(int)ResourceManager.IconContent.FormCompass]);

		}

		private void FormCompass_Load(object sender, EventArgs e)
		{

			BasePanel.Visible = false;

			APIObserver o = APIObserver.Instance;

			o["api_port/port"].ResponseReceived += Updated;
			o["api_req_map/start"].ResponseReceived += Updated;
			o["api_req_map/next"].ResponseReceived += Updated;
			o["api_req_member/get_practice_enemyinfo"].ResponseReceived += Updated;

			o["api_req_sortie/battle"].ResponseReceived += BattleStarted;
			o["api_req_battle_midnight/sp_midnight"].ResponseReceived += BattleStarted;
			o["api_req_sortie/night_to_day"].ResponseReceived += BattleStarted;
			o["api_req_sortie/airbattle"].ResponseReceived += BattleStarted;
			o["api_req_sortie/ld_airbattle"].ResponseReceived += BattleStarted;
			o["api_req_combined_battle/battle"].ResponseReceived += BattleStarted;
			o["api_req_combined_battle/sp_midnight"].ResponseReceived += BattleStarted;
			o["api_req_combined_battle/airbattle"].ResponseReceived += BattleStarted;
			o["api_req_combined_battle/battle_water"].ResponseReceived += BattleStarted;
			o["api_req_combined_battle/ld_airbattle"].ResponseReceived += BattleStarted;
			o["api_req_combined_battle/ec_battle"].ResponseReceived += BattleStarted;
			o["api_req_combined_battle/each_battle"].ResponseReceived += BattleStarted;
			o["api_req_combined_battle/each_battle_water"].ResponseReceived += BattleStarted;
			o["api_req_combined_battle/ec_night_to_day"].ResponseReceived += BattleStarted;
			o["api_req_practice/battle"].ResponseReceived += BattleStarted;

			Utility.Configuration.Instance.ConfigurationChanged += ConfigurationChanged;
		}

		private void Updated(string apiname, dynamic data)
		{

			Func<int, Color> getColorFromEventKind = (int kind) =>
			{
				switch (kind)
				{
					case 0:
					case 1:
					default:    //昼夜戦・その他
						return Utility.Configuration.Config.UI.ForeColor;
					case 2:
					case 3:     //夜戦・夜昼戦
						return Utility.Configuration.Config.UI.Compass_ColorTextEventKind3;
					case 4:     //航空戦
					case 6:     //長距離空襲戦
						return Utility.Configuration.Config.UI.Compass_ColorTextEventKind6;
					case 5:     // 敵連合
						return Utility.Configuration.Config.UI.Compass_ColorTextEventKind5;
					case 7:		// 夜昼戦(対連合艦隊)
						return Utility.Configuration.Config.UI.Compass_ColorTextEventKind3;
				}
			};

			if (apiname == "api_port/port")
			{

				BasePanel.Visible = false;

			}
			else if (apiname == "api_req_member/get_practice_enemyinfo")
			{

				TextMapArea.Text = "演习";
				TextDestination.Text = string.Format("{0} {1}", data.api_nickname, Constants.GetAdmiralRank((int)data.api_rank));
				TextDestination.Font = Utility.Configuration.Config.UI.JapFont;
				TextDestination.ImageAlign = ContentAlignment.MiddleCenter;
				TextDestination.ImageIndex = -1;
				ToolTipInfo.SetToolTip(TextDestination, null);
				TextEventKind.Text = data.api_cmt;
				TextEventKind.ForeColor = getColorFromEventKind(0);
				TextEventKind.ImageAlign = ContentAlignment.MiddleCenter;
				TextEventKind.ImageIndex = -1;
				TextEventKind.Font = Utility.Configuration.Config.UI.JapFont;
				ToolTipInfo.SetToolTip(TextEventKind, null);
				TextEventDetail.Text = string.Format("Lv. {0} / {1} exp.", data.api_level, data.api_experience[0]);
				TextEventDetail.Font = Utility.Configuration.Config.UI.JapFont;
				TextEventDetail.ImageAlign = ContentAlignment.MiddleCenter;
				TextEventDetail.ImageIndex = -1;
				ToolTipInfo.SetToolTip(TextEventDetail, null);
				TextEnemyFleetName.Text = data.api_deckname;
				TextEnemyFleetName.Font = Utility.Configuration.Config.UI.JapFont;

			}
			else
			{

				CompassData compass = KCDatabase.Instance.Battle.Compass;

				BasePanel.SuspendLayout();
				PanelEnemyFleet.Visible = false;
				PanelEnemyCandidate.Visible = false;

				_enemyFleetCandidate = null;
				_enemyFleetCandidateIndex = -1;

				TextMapArea.Text = string.Format("出击海域 : {0}-{1}{2}", compass.MapAreaID, compass.MapInfoID,
					compass.MapInfo.EventDifficulty > 0 ? " [" + Constants.GetDifficulty(compass.MapInfo.EventDifficulty, compass.MapAreaID) + "]" : "");
				{
					var mapinfo = compass.MapInfo;

					if (mapinfo.IsCleared)
					{
						ToolTipInfo.SetToolTip(TextMapArea, null);

					}
					else if (mapinfo.RequiredDefeatedCount != -1)
					{
						ToolTipInfo.SetToolTip(TextMapArea, string.Format("击破 : {0} / {1} 次", mapinfo.CurrentDefeatedCount, mapinfo.RequiredDefeatedCount));

					}
					else if (mapinfo.MapHPMax > 0)
					{
						int current = compass.MapHPCurrent > 0 ? compass.MapHPCurrent : mapinfo.MapHPCurrent;
						int max = compass.MapHPMax > 0 ? compass.MapHPMax : mapinfo.MapHPMax;

						ToolTipInfo.SetToolTip(TextMapArea, string.Format("{0}: {1} / {2}", mapinfo.GaugeType == 3 ? "TP" : "HP", current, max));

					}
					else
					{
						ToolTipInfo.SetToolTip(TextMapArea, null);
					}
				}

				TextDestination.Text = string.Format("下一航路 : {0}{1}", compass.Destination, (compass.IsEndPoint ? " ( 终点 )" : ""));
				TextDestination.Font = Utility.Configuration.Config.UI.MainFont;
				if (compass.LaunchedRecon != 0)
				{
					TextDestination.ImageAlign = ContentAlignment.MiddleRight;
					TextDestination.ImageIndex = (int)ResourceManager.EquipmentContent.Seaplane;

					string tiptext;
					switch (compass.CommentID)
					{
						case 1:
							tiptext = "发现敌舰队!";
							break;
						case 2:
							tiptext = "发现攻击目标!";
							break;
						case 3:
							tiptext = "針路哨戒!";
							break;
						default:
							tiptext = "索敌机离舰!";
							break;
					}
					ToolTipInfo.SetToolTip(TextDestination, tiptext);

				}
				else
				{
					TextDestination.ImageAlign = ContentAlignment.MiddleCenter;
					TextDestination.ImageIndex = -1;
					ToolTipInfo.SetToolTip(TextDestination, null);
				}

				//とりあえずリセット
				TextEventDetail.ImageAlign = ContentAlignment.MiddleCenter;
				TextEventDetail.ImageIndex = -1;
				ToolTipInfo.SetToolTip(TextEventDetail, null);

				TextEventKind.ForeColor = getColorFromEventKind(0);

				{
					string eventkind = Constants.GetMapEventID(compass.EventID);

					switch (compass.EventID)
					{

						case 0:     //初期位置
						case 1:     //不明
							TextEventDetail.Text = "どうしてこうなった";
							break;

						case 2:     //資源
						case 8:     //船団護衛成功
							TextEventDetail.Text = GetMaterialInfo(compass);
							TextEventDetail.Font = Utility.Configuration.Config.UI.MainFont;
							break;

						case 3:     //渦潮
							{
								int materialmax = KCDatabase.Instance.Fleet.Fleets.Values
									.Where(f => f != null && f.IsInSortie)
									.SelectMany(f => f.MembersWithoutEscaped)
									.Max(s =>
									{
										if (s == null) return 0;
										switch (compass.WhirlpoolItemID)
										{
											case 1:
												return s.Fuel;
											case 2:
												return s.Ammo;
											default:
												return 0;
										}
									});

								TextEventDetail.Text = string.Format("{0} x {1} ({2:p0})",
									Constants.GetMaterialName(compass.WhirlpoolItemID),
									compass.WhirlpoolItemAmount,
									(double)compass.WhirlpoolItemAmount / Math.Max(materialmax, 1));
								TextEventDetail.Font = Utility.Configuration.Config.UI.MainFont;

							}
							break;

						case 4:     //通常戦闘
							if (compass.EventKind >= 2)
							{
								eventkind += "/" + Constants.GetMapEventKind(compass.EventKind);

								TextEventKind.ForeColor = getColorFromEventKind(compass.EventKind);
							}
							UpdateEnemyFleet();
							break;

						case 5:     //ボス戦闘
							TextEventKind.ForeColor = Utility.Configuration.Config.UI.Color_Red;

							if (compass.EventKind >= 2)
							{
								eventkind += "/" + Constants.GetMapEventKind(compass.EventKind);
							}
							UpdateEnemyFleet();
							break;

						case 6:     //気のせいだった
							switch (compass.EventKind)
							{

								case 0:     //気のせいだった
								default:
									break;
								case 1:
									eventkind = "不见敌影";
									break;
								case 2:
									eventkind = "能动分歧";
									break;
								case 3:
									eventkind = "平稳的海面";
									break;
								case 4:
									eventkind = "平稳的海峡";
									break;
								case 5:
									eventkind = "需要提高警惕";
									break;
								case 6:
									eventkind = "安静的海洋";
									break;
								case 7:
									eventkind = "游击部队进击中";
									break;
								case 8:
									eventkind = "对潜警戒进击中";
									break;
								case 9:
									eventkind = "栗田舰队突入";
									break;
							}
							if (compass.RouteChoices != null) {
								TextEventDetail.Text = string.Join("/", compass.RouteChoices);
								TextEventDetail.Font = Utility.Configuration.Config.UI.MainFont;
							} else {
								TextEventDetail.Text = "";
							}

							break;

						case 7:     //航空戦or航空偵察
							TextEventKind.ForeColor = getColorFromEventKind(compass.EventKind);

							switch (compass.EventKind)
							{
								case 0:     //航空偵察
									eventkind = "航空侦察";

									switch (compass.AirReconnaissanceResult)
									{
										case 0:
										default:
											TextEventDetail.Text = "失败";
											TextEventDetail.Font = Utility.Configuration.Config.UI.MainFont;
											break;
										case 1:
											TextEventDetail.Text = "成功";
											TextEventDetail.Font = Utility.Configuration.Config.UI.MainFont;
											break;
										case 2:
											TextEventDetail.Text = "大成功";
											TextEventDetail.Font = Utility.Configuration.Config.UI.MainFont;
											break;
									}

									switch (compass.AirReconnaissancePlane)
									{
										case 0:
										default:
											TextEventDetail.ImageAlign = ContentAlignment.MiddleCenter;
											TextEventDetail.ImageIndex = -1;
											break;
										case 1:
											TextEventDetail.ImageAlign = ContentAlignment.MiddleLeft;
											TextEventDetail.ImageIndex = (int)ResourceManager.EquipmentContent.FlyingBoat;
											break;
										case 2:
											TextEventDetail.ImageAlign = ContentAlignment.MiddleLeft;
											TextEventDetail.ImageIndex = (int)ResourceManager.EquipmentContent.Seaplane;
											break;
									}

									if (compass.GetItems.Any())
									{
										TextEventDetail.Text += " " + GetMaterialInfo(compass);
										TextEventDetail.Font = Utility.Configuration.Config.UI.MainFont;
									}

									break;

								case 4:     //航空戦
								default:
									UpdateEnemyFleet();
									break;
							}
							break;

						case 9:     //揚陸地点
							TextEventDetail.Text = "";
							break;

						default:
							TextEventDetail.Text = "";
							break;

					}
					TextEventKind.Text = eventkind;
					TextEventKind.Font = Utility.Configuration.Config.UI.MainFont;
				}

				if (compass.HasAirRaid)
				{
					TextEventKind.ImageAlign = ContentAlignment.MiddleRight;
					TextEventKind.ImageIndex = (int)ResourceManager.EquipmentContent.CarrierBasedBomber;
					ToolTipInfo.SetToolTip(TextEventKind, "空袭 - " + Constants.GetAirRaidDamage(compass.AirRaidDamageKind));
				}
				else
				{
					TextEventKind.ImageAlign = ContentAlignment.MiddleCenter;
					TextEventKind.ImageIndex = -1;
					ToolTipInfo.SetToolTip(TextEventKind, null);
				}

				BasePanel.ResumeLayout();

				BasePanel.Visible = true;
			}

		}

		private string GetMaterialInfo(CompassData compass)
		{

			var strs = new LinkedList<string>();

			foreach (var item in compass.GetItems)
			{

				string itemName;

				if (item.ItemID == 4)
				{
					itemName = Constants.GetMaterialName(item.Metadata);

				}
				else
				{
					var itemMaster = KCDatabase.Instance.MasterUseItems[item.Metadata];
					if (itemMaster != null)
						itemName = itemMaster.Name;
					else
						itemName = "謎のアイテム";
				}

				strs.AddLast(itemName + " x " + item.Amount);
			}

			if (!strs.Any())
			{
				return "( 无 )";

			}
			else
			{
				return string.Join(", ", strs);
			}
		}

		private void BattleStarted(string apiname, dynamic data)
		{
			UpdateEnemyFleetInstant(apiname.Contains("practice"));
		}

		private void UpdateEnemyFleet()
		{

			CompassData compass = KCDatabase.Instance.Battle.Compass;

			_enemyFleetCandidate = RecordManager.Instance.EnemyFleet.Record.Values.Where(
				r =>
					r.MapAreaID == compass.MapAreaID &&
					r.MapInfoID == compass.MapInfoID &&
					r.CellID == compass.Destination &&
					r.Difficulty == compass.MapInfo.EventDifficulty
				).ToList();
			_enemyFleetCandidateIndex = 0;

			if (_enemyFleetCandidate.Count == 0)
			{
				TextEventDetail.Text = "( 尚无敌舰队候选 )";
				TextEventDetail.Font = Utility.Configuration.Config.UI.MainFont;
				TextEnemyFleetName.Text = "( 敌舰队名不明 )";
				TextEnemyFleetName.Font = Utility.Configuration.Config.UI.MainFont;

				TableEnemyCandidate.Visible = false;

			}
			else
			{
				_enemyFleetCandidate.Sort((a, b) =>
				{
					for (int i = 0; i < a.FleetMember.Length; i++)
					{
						int diff = a.FleetMember[i] - b.FleetMember[i];
						if (diff != 0)
							return diff;
					}
					return a.Formation - b.Formation;
				});

				NextEnemyFleetCandidate(0);
			}

			PanelEnemyFleet.Visible = false;

		}

		private void UpdateEnemyFleetInstant(bool isPractice = false)
		{

			BattleManager bm = KCDatabase.Instance.Battle;
			BattleData bd = bm.FirstBattle;

			int[] enemies = bd.Initial.EnemyMembers;
			int[][] slots = bd.Initial.EnemySlots;
			int[] levels = bd.Initial.EnemyLevels;
			int[][] parameters = bd.Initial.EnemyParameters;
			int[] hps = bd.Initial.EnemyMaxHPs;

			_enemyFleetCandidate = null;
			_enemyFleetCandidateIndex = -1;

			if (!bm.IsPractice)
			{
				var efcurrent = EnemyFleetRecord.EnemyFleetElement.CreateFromCurrentState();
				var efrecord = RecordManager.Instance.EnemyFleet[efcurrent.FleetID];
				if (efrecord != null)
				{
					TextEnemyFleetName.Text = efrecord.FleetName;
					TextEnemyFleetName.Font = Utility.Configuration.Config.UI.JapFont;
					TextEventDetail.Text = "Exp: " + efrecord.ExpShip;
				}
				ToolTipInfo.SetToolTip(TextEventDetail, "敌舰队 ID: " + efcurrent.FleetID.ToString("x16"));
			}

			TextFormation.Text = Constants.GetFormationShort((int)bd.Searching.FormationEnemy);
			//TextFormation.ImageIndex = (int)ResourceManager.IconContent.BattleFormationEnemyLineAhead + bd.Searching.FormationEnemy - 1;
			TextFormation.Visible = true;
			{
				int air = Calculator.GetAirSuperiority(enemies, slots);
				TextAirSuperiority.Text = isPractice ?
					air.ToString() + " ~ " + Calculator.GetAirSuperiorityAtMaxLevel(enemies, slots).ToString() :
					air.ToString();
				ToolTipInfo.SetToolTip(TextAirSuperiority, GetAirSuperiorityString(isPractice ? 0 : air));
				TextAirSuperiority.Visible = true;
			}

			TableEnemyMember.SuspendLayout();
			for (int i = 0; i < ControlMembers.Length; i++)
			{
				int shipID = enemies[i];
				ControlMembers[i].Update(shipID, shipID != -1 ? slots[i] : null);

				if (shipID != -1)
					ControlMembers[i].UpdateEquipmentToolTip(shipID, slots[i], levels[i], hps[i], parameters[i][0], parameters[i][1], parameters[i][2], parameters[i][3]);
			}
			TableEnemyMember.ResumeLayout();
			TableEnemyMember.Visible = true;

			PanelEnemyFleet.Visible = true;

			PanelEnemyCandidate.Visible = false;

			BasePanel.Visible = true;           //checkme

		}

		private void TextEnemyFleetName_MouseDown(object sender, MouseEventArgs e)
		{

			if (e.Button == System.Windows.Forms.MouseButtons.Left)
				NextEnemyFleetCandidate();
			else if (e.Button == System.Windows.Forms.MouseButtons.Right)
				NextEnemyFleetCandidate(-_candidatesDisplayCount);
		}

		private void NextEnemyFleetCandidate()
		{
			NextEnemyFleetCandidate(_candidatesDisplayCount);
		}

		private void NextEnemyFleetCandidate(int offset)
		{

			if (_enemyFleetCandidate != null && _enemyFleetCandidate.Count != 0)
			{

				_enemyFleetCandidateIndex += offset;
				if (_enemyFleetCandidateIndex < 0)
					_enemyFleetCandidateIndex = (_enemyFleetCandidate.Count - 1) - (_enemyFleetCandidate.Count - 1) % _candidatesDisplayCount;
				else if (_enemyFleetCandidateIndex >= _enemyFleetCandidate.Count)
					_enemyFleetCandidateIndex = 0;

				var candidate = _enemyFleetCandidate[_enemyFleetCandidateIndex];

				TextEventDetail.Text = TextEnemyFleetName.Text = candidate.FleetName;
				TextEventDetail.Font = TextEnemyFleetName.Font = Utility.Configuration.Config.UI.JapFont;

				if (_enemyFleetCandidate.Count > _candidatesDisplayCount)
				{
					TextEventDetail.Text += " ▼";
					ToolTipInfo.SetToolTip(TextEventDetail, string.Format("候选 : {0} / {1}\r\n( 点击鼠标左右键翻页 )\r\n", _enemyFleetCandidateIndex + 1, _enemyFleetCandidate.Count));
				}
				else
				{
					ToolTipInfo.SetToolTip(TextEventDetail, string.Format("候选 : {0}\r\n", _enemyFleetCandidate.Count));
				}

				TableEnemyCandidate.SuspendLayout();
				for (int i = 0; i < ControlCandidates.Length; i++)
				{
					if (i + _enemyFleetCandidateIndex >= _enemyFleetCandidate.Count || i >= _candidatesDisplayCount)
					{
						ControlCandidates[i].Update(null);
						continue;
					}

					ControlCandidates[i].Update(_enemyFleetCandidate[i + _enemyFleetCandidateIndex]);
				}
				TableEnemyCandidate.ResumeLayout();
				TableEnemyCandidate.Visible = true;

				PanelEnemyCandidate.Visible = true;

			}
		}

		void ConfigurationChanged()
		{

			Font = PanelEnemyFleet.Font = MainFont = Utility.Configuration.Config.UI.MainFont;
			SubFont = Utility.Configuration.Config.UI.SubFont;

			TextMapArea.Font =
			TextDestination.Font =
			TextEventKind.Font =
			TextEventDetail.Font = Font;

			BasePanel.AutoScroll = Utility.Configuration.Config.FormCompass.IsScrollable;

			_candidatesDisplayCount = Utility.Configuration.Config.FormCompass.CandidateDisplayCount;
			_enemyFleetCandidateIndex = 0;
			if (PanelEnemyCandidate.Visible)
				NextEnemyFleetCandidate(0);

			if (ControlMembers != null)
			{
				TableEnemyMember.SuspendLayout();

				TableEnemyMember.Location = new Point(TableEnemyMember.Location.X, TableEnemyFleet.Bottom + 6);

				bool flag = Utility.Configuration.Config.FormFleet.ShowAircraft;
				for (int i = 0; i < ControlMembers.Length; i++)
				{
					ControlMembers[i].Equipments.ShowAircraft = flag;
					ControlMembers[i].ConfigurationChanged();
				}

				ControlHelper.SetTableRowStyles(TableEnemyMember, ControlHelper.GetDefaultRowStyle());
				TableEnemyMember.ResumeLayout();
			}

			if (ControlCandidates != null)
			{
				TableEnemyCandidate.SuspendLayout();

				for (int i = 0; i < ControlCandidates.Length; i++)
					ControlCandidates[i].ConfigurationChanged();

				ControlHelper.SetTableRowStyles(TableEnemyCandidate, new RowStyle(SizeType.AutoSize));
				ControlHelper.SetTableColumnStyles(TableEnemyCandidate, ControlHelper.GetDefaultColumnStyle());
				TableEnemyCandidate.ResumeLayout();
			}
		}

		protected override string GetPersistString()
		{
			return "Compass";
		}

		private void TableEnemyMember_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
		{
			e.Graphics.DrawLine(Utility.Configuration.Config.UI.SubBackColorPen, e.CellBounds.X, e.CellBounds.Bottom - 1, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);
		}

		private void TableEnemyCandidateMember_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
		{

			if (_enemyFleetCandidate == null || _enemyFleetCandidateIndex + e.Column >= _enemyFleetCandidate.Count)
				return;

			if (e.Column != (Utility.Configuration.Config.FormCompass.CandidateDisplayCount - 1)) {
				e.Graphics.DrawLine(Utility.Configuration.Config.UI.SubBackColorPen, e.CellBounds.Right - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);
				if (e.Row == 5) e.Graphics.DrawLine(Utility.Configuration.Config.UI.SubBackColorPen, e.CellBounds.X, e.CellBounds.Bottom - 1, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);
			} else if (e.Row == 5) {
				e.Graphics.DrawLine(Utility.Configuration.Config.UI.SubBackColorPen, e.CellBounds.X, e.CellBounds.Bottom - 1, e.CellBounds.Right - 2, e.CellBounds.Bottom - 1);
			}
		}

	}

}

redpajama_set_name: RedPajamaGithub


I'm 20 years old, born and raised in Vancouver, BC. I'm currently studying English Literature at SFU. I have a strong passion for music and enjoy playing the guitar or piano and also singing. My life has been completely changed for the better by incorporating fitness into my life and most recently yoga. My ambition is to become a Naturopathic Doctor and help others discover holistic approaches to their health.
*disclaimer* I am not a personal trainer, dietician or healthcare professional. But I do enjoy giving advice and sharing my perspectives.


Capot aero BN SPORTS - ADDICTION - pour carrosserie MAZDA RX7 (66159) de la marque ABC HOBBY.
BN Sports Body Kit designed by Addition RC to fit the Mazda RX-7 body (66157/66159).
Rocket Bunny Body Kit designed by Addition RC to fit the ABC Hobby Mazda RX-7 body (66157/66159).


"Wine and Chocolate" experience - Famille Rambier - Vins en Pic Saint-Loup, Vallée du Rhône.
5 AOP Languedoc Pic Saint-Loup wines with 5 best chocolate.
A wine and chocolate chord … what wine with which chocolate? Or which chocolate with which wine?
And of course, a guided tour of our facilities will be proposed … Let yourself be tempted!


text:
Au Canada, le jour du drapeau (), nommé officiellement le jour du drapeau national du Canada (National Flag of Canada Day), célébré chaque année le , commémore l'adoption du drapeau du Canada à cette date en 1965. La journée est marquée par des cérémonies publiques et des programmes éducatifs dans les écoles. Ce jour n'est pas férié, bien qu'il y ait eu des discussions à propos d'une telle possibilité.

Histoire

L'actuel drapeau a remplacé le Red Ensign canadien, qui avait été, avec diverses modifications successives, en utilisation classique comme le drapeau national canadien depuis 1868. Sous la direction du premier ministre Lester B. Pearson, des résolutions recommandant le nouveau drapeau ont été adoptées par la Chambre des communes le , et par le Sénat deux jours plus tard.

Le drapeau, conçu par George Stanley, a été proclamé par Élisabeth II, la reine du Canada, le , et a pris effet « le, à partir du et après le » .

Le jour du drapeau national du Canada a été créé en 1996 par un décret du gouverneur général Roméo LeBlanc, à l'initiative du premier ministre Jean Chrétien.

Notes et références

Drapeau du Canada
Fête au Canada
Fête de février
15 février


text:
Newsroom News Breaking Comics Tags RSS
adventure games Latest news and info
Latest Important Breaking News Tags
Details on Sherlock Holmes Chapter One; Length, Open World, New Mechanics
Christian Pieniazek, 07 January 2021, 13:46
Frogwares has revealed a number of details about its new game, Sherlock Holmes: Chapter One. Thanks to that we got to know its length and learned something about new gameplay solutions.
Controversial Attempt to Censor Sense: A Cyberpunk Ghost Story; Publisher Denies
Milosz Szubert, 04 January 2021, 21:39
The representatives of Top Hat Studios informed that in the past months they have received a lot of unpleasant messages criticizing Sense: A Cyberpunk Ghost Story. They stressed, however, that they didn't give in and on January 7 the title will be released, uncensored, on Nintendo Switch.
New Info on Know by Heart From Pathologic Devs
Adrian Werner, 30 December 2020, 14:36
The team at Ice-Pick Lodge, known from the Pathologic series, revealed new details and first materials from Know by heart. We also learned the game's system requirements.
Machinarium Devs Announced New Game
Michael Kulakowski, 15 December 2020, 21:51
The Czech studio Amanita Design, known for Machinarium, Botanicula and Chuchel, presented its next project. It is Happy Game, an adventure game with elements of horror, which will appear in the first half of 2021.
Road 96 is an Armospheric Procedural Adventure Game With Thousands of Possible Endings
Paul Wozniak, 11 December 2020, 19:19
Independent studio DigixArt presented its new production - Road 96. This title will be an adventure game focusing on an escape from a totalitarian state, based on procedurally generated events.
Beautiful Adventure Game Season Announced for PS5 and PC
Scavengers Studio used The Game Awards to present Season, a charming adventure about documenting a dying world, coming to PC and PS5.
Gone Home Devs Present Open Roads
The TGA 2020 revealed the adventure game Open Roads, which the creators of Gone Home and Tacoma are working on. The game will feature actresses Kaitlyn Dever and Keri Russell, among others.
First Reviews: Call of the Sea - Good Adventure Game With Ton of Puzzles
Karol Laska , 08 December 2020, 19:26
Out of the Blue's debut work, Call of the Sea, has received positive reviews from critics around the world. It is described as a title created for lovers of original puzzles.
Rumor: The Wolf Among Us 2 on The Game Awards 2020
Frozen, 07 December 2020, 13:50
According to unofficial information, The Wolf Among Us 2, a sequel to Telltale Games' iconic title based on the comic book series titled Fables, will be one of the games presented during the stream of The Game Awards 2020.
First Reviews: Twin Mirror - Life is Strange Devs Fail to Deliver
From the reviews of Twin Mirror emerges a picture of a game that is interesting, but burdened with numerous problems that prevent it from fully realizing its potential.
Sam & Max: Save the World Remaster Later This Year
Musiol, 10 November 2020, 14:48
Sam & Max: Save the World returns after thirteen years. Former Telltale Games employees assembled and decided to refresh one of the best games of the no longer existing studio.
New Horror Game From Until Dawn Devs on Mysterious Trailer
Agnes Adamus, 02 November 2020, 22:28
The creators of Until Dawn, Supermassive Games, have announced the next edition of The Dark Pictures Anthology, titled House of Ashes. At the end of the previous installment, we were shown a short trailer of the new game. The title is to debut in 2021.
Anniversary Collector's Set of Monkey Island Games for $160
Adrian Werner, 20 October 2020, 14:04
At the end of the month Limited Run Games will release a boxed collection of five installments of the Monkey Island series, complete with many gadgets for the fans.
Bugsnax Becomes Another PS5 Launch Title
Bart Swiatek, 09 October 2020, 15:19
Bugsnax will be released on November 12, with the initial launch of PlayStation 5, and we've also got to know the actors whose voices we will hear in the game.
Prologue of Syberia The World Before Available for Free
Paul Wozniak, 08 October 2020, 21:38
Steam has just featured the prologue of the new installment of the iconic adventure game series Syberia. Users of the platform can play it for free.
First Screenshots From I, the Inquisitor
Jacob Blazewicz, 25 September 2020, 21:44
Developers at The Dust have published an announcement about their upcoming game I, The Inquisitor. The team also shared the first screenshots from their work, which will take us to the world known from books by Polish fantasy writer Jacek Piekara.
Life is Strange 2 Episode 1 Available for Free
Karol Laska , 17 September 2020, 22:46
Square Enix has released the first episode of Life is Strange 2 for free. The title can be tested from 9 AM PT on PC, PS4 and XONE.
Myst Remake Announced Along With System Requirements
Adrian Werner, 17 September 2020, 15:30
Studio Cyan has announced a remake of the classic adventure game Myst. The game will be available on PC and Oculus Quest. In case of PC version it will be possible to have fun without the VR device. The system requirements were also revealed.
Twin Mirror, New Game From Life is Strange Devs Gets Release Date
Bart Woldanski, 15 September 2020, 19:11
We got to know the release date of Twin Mirror, a new adventure game from DONTNOD, the creators of Life is Strange. A new trailer was also released.
Horror Game The Dark Pictures: Little Hope on Long Gameplay
Paul Wozniak, 28 August 2020, 21:20
At the on-going GamesCom fair, the first gameplay from The Dark Pictures: Little Hope, the new horror game from Until Dawn, was presented.
12 minutes Gets New Trailer, Starring Hollywood's Big Names
Karol Laska , 27 August 2020, 21:19
Annapurna Interactive released the next trailer of its interactive adventure, 12 Minutes. The voices of the characters will be provided by well-known American actors.
Sam & Max - Return of Classic Series Announced
Adrian Werner, 27 August 2020, 20:36
During GamesCom Opening Night Live 2020, it was announced that a new installment of the classic adventure game series Sam & Max is being created.
Aftermath of Detroit: Become Human's Successful Steam Launch
Milosz Szubert, 05 August 2020, 14:23
Quanitc Dream has boasted that its latest game, Detroit: Become Human, has sold 5 million copies worldwide on PC and PlayStation 4. It happened exactly a month after the title's debut on Steam.
Larry Laffer Will be Charming Women in New Game
Crazy Bunch has just announced another game in a series of popular adventure game series - Leisure Suit Larry. The new installment, Wet Dreams Dry Twice, will launch later this year. This title can already be pre-ordered.
Trailer and Release Date of New Game by Life is Strange Devs
Adrian Werner, 23 July 2020, 18:38
Xbox Games Showcase showed a new trailer of the adveture game Tell Me Why and revealed the release date of the first episode.
First Reviews: Creaks - Adventure Game From Machinarium Devs Looks Good
Michael Kulakowski, 22 July 2020, 22:42
Creaks, the new 2D adventure game by the creators of Machinarium, has just launched on PC, PlayStation 4, Nintendo Switch and Xbox One. The gane has met with an extremely warm reception from critics, gaining high scores in first reviews.
Monument Valley Devs Announce New Game, Also on PC and Consoles
Agnes Adamus, 20 July 2020, 22:37
Studio ustwo (responsible for the creation of Monument Valley), announced a new game - Alba: A Wildlife Adventure. On this occasion a short trailer was presented. The title is to hit the market this winter on PCs, Apple devices and unspecified consoles.
Release Date of Creaks - New Adventure Game by Machinarium Devs
Paul Wozniak, 14 July 2020, 22:02
Amanita Design (devs of, among others, well received Machinarium) announced today the release date of the upcoming Creaks adventure game. We will play in the title later, this month.
The Dark Pictures Little Hope - Release Date of Horror Game From Until Dawn Devs
Supermassive Games announced the release date of the adventure horror game The Dark Pictures: Little Hope. A new trailer of the game was also released.
The Walking Dead Series and Other Adventure Games in New Humble Bundle
The Humble Store is now selling the Humble Summer Adventure Games Bundle package. The package includes such titles as The Walking Dead: The Final Season, Oxenfree and The Wolf Among Us. All games are provided as Steam Keys.
Sequel of Pathologic 2 Being Made After All, Along With 3 Smaller Games
Ice-Pick Lodge announced that they are working on the continuation of Pathologic 2. The studio also has three smaller games planned.
Beyond a Steel Sky Release Date
Christian Pieniazek, 25 June 2020, 16:38
Beyond a Steel Sky, a sequel of the iconic Beneath a Steel Sky, has been released. Apple Arcade subscribers will be able to check the title soon, while PC players will wait for it a little longer.
Werewolf: The Apocalypse - Heart of the Forest Announced
Bart Woldanski, 14 June 2020, 15:22
Different Tales has announced a new game in the World of Darkness. Werewolf: The Apocalypse - Heart of the Forest, which is being developed by co-creators of The Witcher series. The first teaser has been released.
Cats and Robots on a Lovely Trailer of Stray
Jacob Blazewicz, 11 June 2020, 22:34
Annapurna Interactive has shown the trailer of Stray, a mysterious production for PlayStation 5. In the game, we'll control a cat, living in a world where humans are replaced by robots.
Heavy Rain, Beyond: Two Souls and Detroit: Become Human Coming to Steam
Bart Swiatek, 26 May 2020, 10:50
French studio Quantic Dream has announced that beginning with this June, its last three productions - Heavy Rain, Beyond: Two Souls and Detroit: Become Human - will be available on Steam.
Sherlock Holmes - Prequel Will Tell About Detective's Youth
Agnes Adamus, 25 May 2020, 20:57
Frogwares announced that they are working on a prequel to the series starring the brilliant detective, Sherlock Holmes: Chapter One. On this occasion, the first trailer of the game was presented, as well as an approximate release date, and target platforms.
Rumor: Tales From the Borderlands Redux - Details Revealed
Czarus, 17 May 2020, 20:42
A Reddit user claims to have news of upcoming projects of Telltale. These include information about the refreshed version of Tales From the Borderlands, which will be subtitled Redux, as well as about The Wolf Among Us 2 and another part of The Walking Dead.
Beyond: Two Souls' Steam Launch May be Imminent
A page for an unknown application, containing an image from Beyond: Two Souls, has appeared on Steam Database website. It is therefore likely that Quantic Dream's title will soon appear on Valve's platform.
Here's Latest Trailer of Next Horror Game From Until Dawn Devs
Pri, 15 April 2020, 14:37
A trailer of the latest title from Supermassive Games was published on YouTube - another part of the anthology started by Man of Medan. The Dark Pictures: Little Hope will be released on PC, Xbox One and PlayStation 4 this summer.
Vampire The Masquerade: Shadows of New York - New Vampire Story
Christian Pieniazek, 09 April 2020, 22:46
Draw Distance has announced its next work. We're talking about Vampire: The Masquerade - Shadows of New York, where we'll be back in New York from The World of Darkness universe to solve the mystery of the death of a local Anarchist leader as a member of the Lasombra clan.
Square Enix and Dontnod Released Demo of Life is Strange 2
Bart Swiatek, 27 March 2020, 11:53
Developer Dontnod Entertainment and publisher Square Enix have released a demo version of the adventure game Life is Strange 2. The demo can be downloaded on all platforms on which it was released - PC, PlayStation 4 and Xbox One.
First Episode of The Council Available For Free
Jacob Blazewicz, 25 March 2020, 21:28
Big Bad Wolf Studio decided to make the first episode of The Council's adventure available for free. The promotion will last until the end of March.
The Iconic Blade Runner Game Will Get an Upgrade
Christian Pieniazek, 12 March 2020, 22:16
The Blade Runner, a legendary adventure game, originally released more than twenty years ago, will be updated this year. Blade Runner: The Enhanced Edition is to differ from the original version mainly due to its enhanced graphics.
Beautiful Desolation - New Game From Cayne and Stasis Devs Coming This Month
Czarus, 14 February 2020, 13:45
Developers from The Brotherhood, creators of warmly-received horror adventure games Cayne and Stasis, do not stand idle. At the end of this month, Beautiful Desolation, a Kickstarter-funded isometric adventure game set in a post-apocalyptic world, will be released on Steam and GOG.
Rumor: Telltale Games Works on Tales from the Borderlands 2 and Poker Night 3
Konrad Serafinski, 06 February 2020, 11:59
According to the latest reports, Telltale Games is working on two unannounced titles. The first is the continuation of Tales from the Borderlands, and the second is Poker Night 3, which is to be announced during E3 2020.
Ninja Theory Announces Project: MARA and Talks About Hellblade 2
Jacob Blazewicz, 22 January 2020, 22:11
Ninja Theory Studio has announced Project: MARA - an experimental game whose aim is to faithfully present mental horror. By the way, the devs mentioned their plans for Helbllade II: Senua's Saga.
The Wolf Among Us 2 Has New Engine and Old Devs
The creators of The Wolf Among Us 2 resigned from the old technologies used by Telltale Games and opted for the Unreal Engine. In addition, we learned that the dev team includes the most important staff from the first part of the project.
The Iconic Adventure Game is Back - Blade Runner Available on GOG.com
The highly acclaimed 1997 adventure game Blade Runner, based on Philip K. Dick's prose and Ridley Scott's legendary film, was released for the first time in digital distribution thanks to the efforts of GOG.com.
The Wolf Among Us 2 Launch in 2021 at the Earliest
The CEO of Telltale Games revealed in an interview that The Wolf Among Us 2 will definitely not be released in 2020. The creators had to start working on the second part from the very beginning and they need more time to refine the game.
Detroit: Become Human Launches on PC Today
Konrad Serafinski, 12 December 2019, 10:43
Today, Detroit: Become Human, a port of a popular PS4 adventure game from Quantic Dream, will debut on PC. The game will be available only on Epic Games Store.
Last year only
Search also inside content
Join the gaming community


Colorado resort accused after fatal physical injury | Weddell & Haller, P.C.
On behalf of Weddell & Haller, P.C. posted in Workplace Accidents on Monday, September 22, 2014.
Working in an environment with life-threatening danger can often require proper training and a defined plan in case of an emergency. The Colorado Occupational Safety and Health Administration recently made the decision to cite a Colorado ski resort $14,000 for its involvement in a potentially preventable accident that resulted in an employee's death. The patroller lost his life outside of the ski resort when a routine avalanche training accident resulted and apparently caused his fatal physical injury.
A group of employees were engaged in avalanche training when the tragic accident took pace. Workers had been airlifted for their training to a location about 15 miles from the resort. The agency determined that the ski resort did not properly investigate the safety of the area before dispatching employees for exercises.
As an actual avalanche took place, workers may have been placed in a situation without backup support. Reports indicate that the ski resort failed to provide a method in which employees could contact the resort in the event of an emergency. Without contact, employees in the field would have no way of notifying first responders should an accident occur.
Officials noted that the ski resort may be liable for activities that were unauthorized beyond the ski resort property. The Colorado resort has reportedly contested the violations although the U.S. Forest Service had made the decision to move forward with a misdemeanor charge against the owner of the resort. A family that has lost a loved one from a preventable physical injury at work may seek guidance in pursuing all available workers' compensation benefits as a result of a fatal on-the-job accident.


For many years, PETA has campaigned against the use of animals in circuses and other forms of entertainment. Mondelez succumbed to PETA's demand and began working on a redesign in 2016. The colorful yellow and red boxes are now found on American grocery shelves, featuring the prominent "Barnum's Animals" lettering. The new design shows an elephant, giraffe, gorilla, and zebra wandering on a verdant grassland. In the distance, the outline of trees on the savannah can be seen.
PETA executive vice president Tracy Reiman said that the change reflects that Americans no longer tolerate the caging and restraining of wild animals by circuses. In a statement, Mondelez chief marketing officer Jason Levine said that the company saw the pressure from PETA as "another great opportunity to continue to keep this brand modern and contemporary." Mondelez is based in Illinois, which passed a statewide ban on circuses with elephants that went into effect in January. More than 80 US cities have fully or partially banned circuses with wild animals, according to Animal Defenders International.
Nabisco, a Mondelez subsidiary, has been baking Barnum's Animals crackers since 1902. While the company has redesigned its packaging in the past, it was done only in special editions. For example, it offered an endangered species collection in 1995 that raised money for the World Wildlife Fund, and later offered a zoo collection that raised money for the American Zoo and Aquarium Association.Designer Lilly Pulitzer came up with a pastel-colored box in 2010 that raised money for tiger conservation.
The animal crackers' namesake circus — Ringling Brothers and Barnum & Bailey — went out of business in 2017, largely because of pressure to remove elephants from its shows. It had been in business for 146 years.


text:
Posts Tagged 'writers'
Voices Around the World
I began this blog four years ago with modest ambition. Once a month I would pause from writing fiction or other work and weave disparate threads of the month's events and my thoughts together and share in this new form: the blog post. The posts have often had international themes and freedom of expression themes because work and life lead me to other areas of the world and because the freedom of the individual to write, speak and think is fundamental, especially for a writer.
By posting a monthly blog I also sought to join the 21st century in digital form, but the digital century is rushing so fast that a website with a blog post seems almost obsolete. (By next month I hope to have joined, or at least touched, the social media by also posting on an "author's page" on Facebook.) Whatever the medium, however, the message remains, and the connection of voices around the world has become transformative.
Each month notices of writers under threat come across my desk. I find myself studying the pictures of the writers when there are pictures, writing down their names, and when available, reading some of their work to make them real in my own mind and imagination and later to share their work, which governments hope to silence. Along with other members of PEN I write appeals on their behalf with no definitive measure of how effective these are, but over time the accumulation of protests from writers and others around the world does push open consciousness and prison doors.
In the past month, writers have been imprisoned with long sentences in China, Ethiopia and the Cameroons, had an expired sentence extended in Uzbekistan, been killed in Mexico, threatened with death in India, and released in Myanmar and Vietnam.
China remains the country with the most writers in long term imprisonment, including Nobel Laureate Liu Xiaobo, who's serving an 11-year sentence. In the past month, Chen Wei and Chen Xi have been sentenced to nine and ten years for "inciting subversion of state power," in part for essays and articles they wrote online criticizing the political system in China and praising the growth of civil society. Zhu Yufu was indicted this month on subversion for publishing a poem online last spring that urged people to gather to defend their freedoms.
In Ethiopia Elias Kifle, an editor of a US-based opposition website, was sentenced to life in prison in abstentia and two journalists who covered banned opposition groups were sentenced and are now serving 14-year terms.
In the Cameroons Enoh Meyonnesse, author and founding member of the Cameroon Writers Association, has been held in solitary confinement and complete darkness for thirty days and denied access to a lawyer and has been sentenced to the harshest conditions for at least another six months.
Muhammad Bekjanov, Uzbek journalist and editor of the now defunct opposition newspaper Erk, had completed his twelve-year prison term, but this month was given an additional five years.
In Mexico reporter Raul Regulo Garza Quirino was gunned down by a gang and became the first journalist in Mexico murdered in 2012. In the past five years over 37 journalists and writers have been killed in Mexico and at least eight disappeared. Most reported on corruption and organized crime.
In India this month Salman Rushdie pulled out of the Jaipur Literary Festival after he was warned by intelligence sources that members of Mumbai's criminal underworld had put a price on his head.
The redeeming news of the month comes from Myanmar, which still has an estimated 1000 political prisoners, including at least five writers, but the government has released poets, writers and journalists Win Maw, Zaw Thet Htwe, U Zeya and Nay Phone Latt and in late 2011 released Zarganar and lifted restrictions on Aung San Suu Kyi.
And in Vietnam blogger and university teacher Pham Minh Hoang was released, though numbers of writers remain in prison in Vietnam.
Each case has its own individual story, but all share the story of a writer writing what others feared and did not want read. Some cases are complicated by other circumstances, but many are surprisingly straight forward.
The case of Zhu Yufu began with the poem he wrote and posted at the time of the revolutions in the Middle East. The authorities took almost a year before they decided to prosecute him. Zhu's lawyer said Zhu had nothing to do with the online calls for "the Jasmine revolution" in China; those calls began on overseas Chinese websites.
Below is Zhu Yufu's poem "It's Time":
"It's time, people of China! It's time.
The Square belongs to everyone.
With your own two feet
It's time to head to the Square and make your choice.
A song belongs to everyone.
From your own throat
It's time to voice the song in your heart.
China belongs to everyone.
Of your own will
It's time to choose what China shall be.
–by Zhu Yufu (translated by A.E. Clark)
Posted in Blog and tagged Aung San Sui, Chen Wei, Chen Xi, China, Ethiopia, freedom of expression, India, Joanne Leedom-Ackerman, Kyi, Liu Xiaobo, Mexico, Myanmar, PEN, Salman Rushdie, the Cameroons, Uzbekistan, writers, Zhu Yufu


text:
Transforming the future
Gender diversity across our workforce has many tangible benefits, and we celebrate those women helping to 'transform the future' on International Women in Engineering Day this June.
Transforming the future means different things to different streams of engineers. At ExxonMobil Australia, engineers focus on long-term, global projects that will help meet the world's energy needs into the future.
One local engineer who has spent her career with ExxonMobil focused on this task is Altona Refinery Environmental Engineer Leia Evans. Since starting with the business as a Surveillance Engineer at Long Island Point Plant in 2008, she has held a variety of roles across ExxonMobil's operations in Australia and Papua New Guinea (PNG).
Leia said that she feels very fortunate to have had the opportunity to take the experiences she has had in her career so far and use them to help develop others.
"I spent the early years of my career in our Upstream Australian business, learning from people in an established business with strong leadership, technical expertise and world class systems.
"It was extremely rewarding to then take these experiences and step up into a role to help shape an emerging business in PNG, mentoring younger or less experienced engineers, operators and maintenance technicians," she said.
Leia noted that being a part of the first Liquefied Natural Gas (LNG) plant in PNG and the large impact that has had on PNG meant that living and working in the changing economic environment was a chance of a lifetime from a personal perspective, as well as in her career.
"I am proud to have been part of an organisation with a strong focus on empowering women through involvement in programs such as the Global Women in Management training, business coalition for women, scholarships programs and a strong WEN presence within the organisation. This in addition to the support to schools, hospitals and communities in the project affected areas to transform the future for PNG communities.
"On a personal level, I loved visiting local schools in PNG as part of the science ambassadors program, organising basic financial literacy training 'Money Minded' sponsored by our Women in Engineering Network (WEN) to further develop our employees and other volunteer activities," she said.
With a 2016 Australian study highlighting that only 16 percent of science, technology, engineering and mathematics (STEM) qualified people in Australia are female, encouraging the next generation of women to consider a career in engineering or related is all too important.
ExxonMobil Australia supports a range of education initiatives at primary, secondary and tertiary levels aimed at inspiring future generations to think about STEM as a career pathway, said Community Relations Manager Melanie Saliba.
"Through our wide range of local program which recognise the importance of STEM education, we are supporting the development of a passionate and highly skilled workforce that will help solve problems and create new opportunities into the future," she said.
Leia said that coming back to Australia, and in her role at Altona Refinery, she has a new-found appreciation for the established workforce, regulatory and economic environment in which we work in Australia.
"We have a strong workforce with 70 years of experience and network of contractors that allow us to responsively react to changes in our market and operations. I've enjoyed a truly global career with ExxonMobil across a range of engineering roles thus far, and I look forward to continuing our local focus on transforming the future," she concluded.


text:
Q: Solution to a linear system $x_1' = -ωx_2$
$x_2' = ωx_1$
Show that $y(t)=(\cos(ωt), \sin(ωt))$ is a solution and then find another solution z(t) such that $(y(t), z(t))$ are linearly independent and check the independence?
I don't fully understand how to show this is a solution.  (Why is sin and cos a solution?) and also how would i check the linear independence?
Any help much appreciated!

A: Hints:
If you wrote out the system as a matrix $A = \begin{bmatrix} 0 & -\omega \\ \omega & 0\end{bmatrix}$, you would find the eigenvalues $\pm i \omega$, but they are not asking you to do this (it was meant to explain - but skip it).
So, if you use the solution they provided, we have:
$y(t)= (x_1(t), x_2(t)) = (\cos(ωt), \sin(ωt))$
$x_1(t) = \cos (\omega t)$, and $x_2(t) = \sin (\omega t)$, show they satisfy each of those equations in the system (just compare both sides of the equation by taking derivatives).
Example: $x_1(t) = \cos(ωt)$, so, $x'_1(t) = -\omega \sin (\omega t) = -\omega x_2(t)$. Compare that to your first equation. See it?
You can do $x_2(t)$.
How do you show linear independence?


text:
Pachycare est un genre monotypique de passereaux de la famille des Acanthizidés. Il se trouve à l'état naturel en Papouasie.

Liste des espèces
Selon  :
 Pachycare flavogriseum (Meyer, AB, 1874) — Pachycare nain, Grosse-tête à front doré
 Pachycare flavogriseum flavogriseum (Meyer, AB, 1874)
 Pachycare flavogriseum lecroyae  & Prawiradilaga, 2010
 Pachycare flavogriseum randi Gilliard, 1961
 Pachycare flavogriseum subaurantium Rothschild & Hartert, 1911
 Pachycare flavogriseum subpallidum Hartert, 1930

Notes et références

Liens externes

Acanthizidae


- a female/male fan, especially one who is prone to creating shrines to a specific movie, owning more fandom-related clothes than normal ones, finding every excuse to insert their fandom of choice into normal conversations, and crying profusely every time she/he reads her/his favorite character's death scene.
Check out photos & descriptions from my ever-growing fandom collection, ft. collectables like books, Pop! Funkos, posters, and more!
Featuring interviews with fangirls like you! Fandom Connect! showcases their collections and their love for fandoms.


I've been looking at lots of mid-century 'fat lava' pieces recently… and a Sgrafo Modern item from my collection (pictured). I've also found myself quite taken again with one of my own pieces. There is something about the slightly lumpy off-putting texture of this vase that works really well with smooth furniture. It's supposed to look a bit like a mushroom!
Sketched a collection of items from the Sedgwick Museum, Cambridge at an evening event 'The Art of Pure Observation of Things'. Items include a Brachiopod, a sea urchin and copper ore.
OK I was not expecting to find my WordPress stats report very interesting, but hey! I was totally charmed by the WordPress report and also that people from 68 countries have viewed my blog, particularly from Brazil or the USA, where I have never been. Thank you to everyone for the support. May 2016 bring wondrous things to you.
So I've been putting all my energy into making my new place habitable…. Here are some of the first results! There is possibly more filler than actual plaster left on this wall and Dad did a great job with the sander. The carpets were a major milestone. The paint is an optical grey that I chose because it is very receding.
Work continues on this tapestry; I'm working copper coloured paint and thread onto a calico backdrop that I hand-painted in taupe and dyed with a pale blue wash.
On the landing window: A print by Robert Jones titled 'Edgelands' and one of my wobbly pots with winter branches.
A museum of found objects including discarded wheel rims hung from a river smoothed branch and a wood burner and local signage resting in a nook. Charcoal on paper.
River washed trees and surrounding hills. Watercolour on paper. It was so hot that I had to load the brush heavily with paint. The paint dried on the paper quickly leaving sharp edges.


text:
Steve Hargadon
The Learning Revolution Has Begun
Interviews/Podcast
Events/Speaking
The Hidden Power of the Library Pages (Our Employees, Not Our Books) + Post Pandemic Staff Development and Training
We've posted a new blog post from Dr. Steve Albrecht in our "Library Service, Safety, & Security" section of Library 2.0:
"The Hidden Power of the Pages (Our Employees, Not Our Books)"
[In] the Library World, consider an employee - often a part-timer, a student, or a retired person, paid at or near the bottom of our wage scale - who we ask to combine the skills of a receptionist and a security guard. Behold the Library Page.
We may position these staffers at various Circulation or Information Desks, to perform reception and service duties. But they're most often seen on the floor, shelving books, clearing work areas, cleaning up messes, walking amidst the stacks, and interacting with patrons. Some libraries assign security duties to Pages, asking them to handle disputes between patrons, intervene when staff members get accosted by certain patrons, manage problematic patron behaviors, escort those patrons out of the building, or call the police.
In short, Pages perform many of the same service and security duties as receptionists and security guards, often for far less pay and more painfully, with not much respect for their efforts.
Other recent blog posts are available here, including: "Forgiveness: How Libraries Can Host Programs on Restorative Practices - An Interview with Azim Khamisa," "Do Your Library Employees Have the "Spirit of Service?," "Library Civility: A Code for How We Treat Each Other," "The Code of Quality Service for Library Employees," "The North Vancouver Library Stabbing Attacks: Edged Weapons Awareness," "Managing the 'Champion Employee' at the Library: The Need for Management Courage," "Some Leadership Truths for Library Leaders," "Helping Library Patrons with Autism: Start with Understanding," "The Perils of the Parking Lot: Parts 1 and 2," "Schedule Regular Inspection Days," "The Need for a Library Vendor/Visitor Policy," and "Creating the Perfect Library Security Officer."
Other recent podcasts episodes from Dr. Albrecht include "Spirit of Service," "Library Civility: A Code for How We Treat Each Other," "The Code of Quality Service," "The Power of Surveys," "Working with Elected Officials," "A Guided Meditation for Stress Management and Relaxation," "Stop Apologizing for Library Security," "Let's Talk About Talking," and "Guns in Your Library." You can listen directly on the site or you should also be able to access the podcast in SoundCloud here or in your own podcast app using the RSS feed here.
Click here to let us know what topics you'd be particularly interested in having us cover in the Library 2.0 webinars, blog posts, and podcast series.
While Dr. Albrecht's twice-monthly podcast and blog posts are available for free, as are our regular mini-conferences and all the conference recordings, we also offer a series of paid webinars with Dr. Albrecht which are available for individual or group viewing. Next up is "Post-Pandemic Staff Development and Training" with Maurice Coleman on July 30th:
DR. STEVE ALBRECHT
Since 2000, Dr. Steve Albrecht has trained thousands of library employees in 25+ states, live and online, in service, safety, and security. His programs are fast, entertaining, and provide tools that can be put to use immediately in the library workspace with all types of patrons. In 2015, the ALA published his book, Library Security: Better Communication, Safer Facilities. He is currently writing the sequel, The Safe Library: Keeping Staff and Patrons Secure in a Changing World.
Steve holds a doctoral degree in Business Administration (D.B.A.), an M.A. in Security Management, a B.A. in English, and a B.S. in Psychology. He is board-certified in HR, security management, employee coaching, and threat assessment.
He has written 24 books on business, security, and leadership topics. He lives with seven dogs, two cats, and three chickens.
Posted by Steve Hargadon at 2:57 PM
I hate having to moderate comments, but have to do so because of spam... :(
Blog Archive January (2) December (4) November (8) October (14) September (13) August (12) July (9) June (8) May (6) April (4) March (10) February (8) January (5) December (7) November (9) October (9) September (11) August (9) July (15) June (16) May (22) April (24) March (11) February (2) January (4) December (1) November (2) October (4) September (4) August (4) July (2) June (3) May (2) April (3) March (1) February (4) January (4) December (2) November (4) October (3) September (2) August (1) June (1) May (4) April (6) March (4) February (3) January (4) December (2) November (6) October (4) September (3) August (1) June (2) May (3) April (5) March (7) February (6) January (4) December (5) November (6) October (3) September (5) August (3) July (2) June (1) May (4) April (3) March (5) February (8) January (6) December (1) November (7) October (2) September (8) August (10) July (23) June (26) May (30) April (15) March (8) February (8) January (7) December (3) November (8) October (6) September (7) August (5) July (7) June (5) May (5) April (8) March (7) February (6) January (5) December (3) November (8) October (10) September (8) August (7) July (6) June (4) May (7) April (9) March (11) February (10) January (10) December (7) November (6) October (8) September (17) August (15) July (6) June (7) May (8) April (13) March (13) February (12) January (11) December (7) November (8) October (12) September (15) August (10) July (12) June (13) May (15) April (16) March (13) February (23) January (16) December (8) November (13) October (15) September (9) August (23) July (15) June (5) May (15) April (16) March (24) February (13) January (9) December (25) November (12) October (7) September (13) August (9) July (6) June (10) May (4) April (5) March (2) February (9) January (10) December (16) November (5) October (11) September (3) July (8) June (11) May (5) April (5) March (4) February (2) January (2) December (4) November (7) October (14) September (7) August (7) July (6) June (6) May (7) April (10) March (6) February (10) January (7) December (10) November (4) October (11) September (5) August (9) July (3) June (14) May (6) April (11) March (7) February (14) January (1) December (1) November (1) October (3) September (3) July (1) May (2) February (1) July (1) May (1) April (1)
Important Posts + Links
The Game of School, 25 September 2019
The Serious and Historic Importance of Media Literacy, 1 November 2018
Modern Learning: Re-Discovering the Transformative Promise of Educational Technology [REPORT], October 2017
RE-ENVISIONED Interview, 9 April 2017
Education Quotes Series
ABC (Australia) Interview on Learning, 15 September 2015
Conditions of Learning, 27 August 2015
Shadows on the Wall - The Futility of Ed Reform, 26 May 2015
Questioning the Ed Reform Narratives - "Using Education to Serve the Individual," parts 1 & 2, 5 Feb 2015 interview with Alisa Gross for The Acclaim Blog.
Education and Control, 25 September 2014 recorded audio interview with Nick DiNardo on Meet Education Project
Escaping the Education Matrix, 8 January 2014 on Mind/Shift
A Global Education Declaration, 22 November 2013
My Beliefs, 16 May 2013
A Student Bill of Rights, 11 May 2013
Hacking at the Roots of the Learning Revolution, 19 December 2012
A "Tail" of Two Ed Tech Agendas, 4 March 2012
Encyclopedia Britannica Blog: Moving Toward Web 2.0 in K-12 Education, 22 October 2008
Web 2.0 Is the Future of Education, 4 March 2008
Blog Recognition
Brainscape Top 10 Education Tech Blogs
THE TECH EDVOCATE'S LIST OF 50 MUST-READ K-12 EDTECH BLOGS
50 Must Read K-12 EdTech Blogs - Edarabia
Popular Posts Last 30 Days
Web 2.0 Is the Future of Education
(Cross-posted from TechLearning ) A moment of extreme clarity became an obsession for me last week. A session that I had prepared for the ...
Virtual Reality and Learning: - Announcing the Mini-Conference and the Call for Proposals
Our first Library 2.022 mini-conference: " Virtual Reality and Learning: Leading the Way ," will be held online (and for free) on...
"Libraries as Community Anchors" Mini-Conference - Registrations and Call for Proposals Open
Our third Library 2.021 mini-conference: " Libraries as Community Anchors ," will be held online (and for free) on Thursday, Octo...
New Blog Post: "Solving Conflicts Between Library Employees: A Tool For Getting Along When No One Wants to Get Along"
We've posted a new blog post from Dr. Steve Albrecht in our " Library Service, Safety, & Security" section of Library 2.0...
The 2013 Reform Symposium This Week - Online, Free, and with Amazing Speakers and Presenters
The fourth annual Reform Symposium Free Online Conference (RSCON) starts this Friday, October 11th, running for three days and in conjun...
"If you are planning for a year, sow rice; if you are planning for a decade, plant trees; if you are planning for a lifetime, educate people." - Chinese proverb
I've been tying to put into words a feeling I've been having lately: that the cognitive dissonances of our current world have creat...
New Library 2.0 Webinar, "Diversity, Equality, and Inclusion in Your Library: How to Start Talking About DEI"
"Diversity, Equality, and Inclusion in Your Library: How to Start Talking About DEI" Part of a special Library 2.0 series in p...
New Library 2.0 Webinar: "Gangs in the Library: A Serious Security Issue" with Dr. Steve Albrecht
"Gangs in the Library: A Serious Security Issue" Part of a special Library 2.0 series with Dr. Steve Albrecht OVERVIEW : A...
"Many people, especially ignorant people, want to punish you for speaking the truth, for being correct, for being you. Never apologize for being correct, or for being years ahead of your time. If you're right and you know it, speak your mind. Speak your mind. Even if you are a minority of one, the truth is still the truth." - Mahatma Gandhi
There is reality, and then there are the stories or narratives that are told. Reality + motive = story. We see things through the lens ...
"One looks back with appreciation to the brilliant teachers, but with gratitude to those who touched our human feelings. The curriculum is so much necessary raw material, but warmth is a vital element for the growing plant and for the soul of the child." - Carl Jung
There is an exercise I like to do with people or groups. It starts with the question: "Can you remember a specific experience when y...
RSS Subscribe To
Future of Education Show
Parenting for Academic Success
Home Learning Summit
Learning Revolution Conference
REINVENTING.SCHOOL
How to Win at the Game of School - Online Workshops
Kind Endorsements
"It's true - @stevehargadon is a national treasure." @markjotter
"Steve is an amazing facilitator. He brings this wonderful combination of humility, hospitality and insight to conversations that matter in education."
-Bernard Bull
"Attracting over 10,000 information professionals each year from all around the world to discuss trends and interests in the Library 2.0 Virtual Conference series would not be possible without Steve's highly focused organizational skills, his creative thinking, his ability to connect people, and his infectious and motivating enjoyment for the work."
-Dr. Sandy Hirsh, Director of the San Jose State University School of Information and Co-Chair of the Library 2.0 Conferences
"The depth of your observations from last night is still resonating with me. I'm trying to think of another interview I've given where the questioner understood the material so well that he/she so regularly (and fluidly) went into new intellectual territory. I can't think of any. Pretty amazing. Thank you."
-David Shenk
"Steve is one of the most influential yet understated individuals in the world of Education. He gives thought leaders a widely attended global platform to voice their ideas to transform Education, and he does so with tremendous respect and intelligence."
-Charles Fadel
"Steve conducted the most in-depth interview I've ever been through and I enjoyed it to boot!"
-Doc Searls
"Steve is the Oprah of education."
-Monika Hardy's Students
"Steve is the 'white knight' of education reform."
-Michelle Cordy
"The nicest guy in ed tech."
-Rushton Hurley
"Steve is a national treasure."
-Leonard Waks
"Steve Hargadon is one of the most important change-makers of our time!"
-Connie Weber
"Steve is a connector. He is a bridge. He is a lifeline. He takes the lead. He gets things done. Quite simply, Steve Hargadon is a humble, kind, unsung hero who makes a difference in the lives of educators worldwide."
-Joyce Valenza
"Steve is a forge! The heat of the conversations he instigates and the amazing thinkers he interviews for The Future of Education, soften the metal of some of my most valued visions and reshape them into ideas that are better … that excite me … that make it hard for me to sleep. If we succeed in hacking education into something that is, once again, relevant, we will owe more to Steve Hargadon than we will ever know."
-David Warlick
"Steve Hargadon may be the most expert person in the country when it comes to organizing virtual events. It was fun to see how organizing a complex event with many speakers is properly done. If you haven't had a chance to see him in action, I recommend attending any one of the upcoming Library 2.0 conferences. I don't expect that virtual conferences will go out of style any time soon."
-Jim Lynch
"He is a man of incredible character and wisdom, and again, I am lucky to know him and work well with him."
-Lucy Gray
Conference 2.0
BOOKS CHANGE LIVES
Parenting 2.0 Workshop


Dental One takes pride in creating a healthy smile for you using Porcelain Veneers to enhance or change the look of your teeth.
Porcelain veneers are thin shells of porcelain that are bonded to the front of your tooth to improve the color and shape of the teeth. When teeth are chipped, misaligned or are beginning to wear, porcelain veneers are used to protect teeth from additional damage and while restoring or enhancing their original appearance.
Thanks to veneers, a complete smile is possible. Because veneers fit over the front of teeth, our Dental One Dentists can transform your smile with porcelain veneers to conceal any and all of the imperfections you may have. Veneers are also used to camouflage cosmetic problems on teeth that have a relatively correct natural size, shape, and alignment.
(403) 232-1152 to book your Porcelain Veneers consultation today!


We are able to cut most of the usual desk and cabinet keys to code using our computerized key cutting apparatus. In the unlikely event that a key we have is not able to be cut to code, we can order the key direct from the key manufacturer.
We can also copy broken/worn/damaged keys and provide a key repair service.
Our trained and experienced locksmiths can cut keys to the majority of locks with our computerised code cutting machine or conventionally by hand.
In the unlikely event that we cannot provide a key to code or cut one by hand we have access to the majority of suppliers and can usually obtain keys direct from them.
This list is by no means exhaustive, so if you have a key that you need a duplicate of, just call or visit us for more information.