text:
#include "SuperRun.h"

boost::property_tree::wptree settings;

enum COMMAND_TYPE
{
	COMMAND_GENERAL,
	COMMAND_BUILTIN,
	COMMAND_CRYPTO,
};

LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
	static bool repeat = false;
	if (nCode == HC_ACTION)
	{
		if (wParam == WM_KEYDOWN)
		{
			KBDLLHOOKSTRUCT *kbd = (KBDLLHOOKSTRUCT*)lParam;
			if (kbd->vkCode == 'R' && (GetAsyncKeyState(VK_LWIN) & KEY_PRESSED || GetAsyncKeyState(VK_RWIN) & KEY_PRESSED))
			{
				if (!repeat)
				{
					if (GetForegroundWindow() != hwnd)
					{
						::PostMessage(hwnd, WM_USER_SHOW, 0, 0);
					}
					else
					{
						::PostMessage(hwnd, WM_USER_HIDE, 0, 0);
					}
				}
				repeat = true;
				return 1;
			}
			if (kbd->vkCode == VK_UP || kbd->vkCode == VK_DOWN || kbd->vkCode == VK_ESCAPE || kbd->vkCode == VK_RETURN || kbd->vkCode==VK_TAB)
			{
				if (GetForegroundWindow() == hwnd)
				{
					::PostMessage(hwnd, WM_USER_KEYUP, kbd->vkCode, 0);
					return 1;
				}
			}
		}
		else
		{
			repeat = false;
		}
	}

	return CallNextHookEx(keyboard_hook, nCode, wParam, lParam);
}

class SuperRunUI :
	public ATL::CWindowImpl<SuperRunUI>
{
public:
	DECLARE_WND_CLASS(app_name)

	BEGIN_MSG_MAP(SuperRunUI)
		MSG_WM_CREATE(OnCreate)
		MSG_WM_TIMER(OnTimer)
		MSG_WM_ACTIVATE(OnActivate)
		MSG_WM_COMMAND(OnCommand)

		MESSAGE_HANDLER(WM_NCLBUTTONDOWN, OnNcLButtonDown)

		MESSAGE_HANDLER(WM_DESTROY, OnDestroy)

		MESSAGE_HANDLER(WM_USER_ACTIVE, OnUserActive)
		MESSAGE_HANDLER(WM_USER_SHOW, OnUserShow)
		MESSAGE_HANDLER(WM_USER_HIDE, OnUserHide)
		MESSAGE_HANDLER(WM_USER_KEYUP, OnUserKeyUp)
		MESSAGE_HANDLER(WM_USER_ADDDIR, OnUserAddDir)
	END_MSG_MAP()

	void ScanWatchThread(const scanner_directory &scanner)
	{
		std::wstring fullpath = ExpandEnvironmentPath(scanner.path);
		if (PathIsRelative(fullpath.c_str()))
		{
			wchar_t absolute[MAX_PATH] = { 0 };
			PathCombine(absolute, GetAppPath().wstring().c_str(), fullpath.c_str());
			fullpath = absolute;
		}
		HANDLE ready_event = ::CreateEvent(NULL, FALSE, FALSE, NULL);
		boost::thread t = boost::thread(WatchDirectory, &run_list, fullpath, scanner.level, exit_event, ready_event);
		::WaitForSingleObject(ready_event, INFINITE);

		ScanDirectory(&run_list, fullpath, scanner.level, exit_event);

		t.join();
	}

	void InitFont()
	{
		LOGFONT lf = { 0 };
		NONCLIENTMETRICS ncm = { sizeof(NONCLIENTMETRICS) };
		SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, false);
		lf = ncm.lfMessageFont;

		ATLVERIFY(font.CreateFontIndirect(&lf));
	}

	LRESULT OnUserActive(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		return OnUserShow(uMsg, wParam, lParam, bHandled);
	}

	LRESULT OnUserShow(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
		ShowWindow(SW_SHOW);
		SetForegroundWindow(m_hWnd);

		Sleep(100);

		POINT pt;
		GetCursorPos(&pt);

		RECT rect;
		GetWindowRect(&rect);

		SetCursorPos(rect.left + 10, rect.top + 10);

		INPUT input[1];
		memset(input, 0, sizeof(input));

		input[0].type = INPUT_MOUSE;

		input[0].mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
		SendInput(1, input, sizeof(INPUT));

		input[0].mi.dwFlags = MOUSEEVENTF_LEFTUP;
		SendInput(1, input, sizeof(INPUT));

		SetCursorPos(pt.x, pt.y);

		ShowWindowUI();
		return 0;
	}

	LRESULT OnUserHide(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		HideWindow();
		return 0;
	}

	LRESULT OnUserKeyUp(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
		switch (wParam)
		{
		case VK_UP:
			if (GetFocus() == edit)
			{
				if (list.GetCurSel() <= 0)
				{
					list.SetCurSel(list.GetCount() - 1);
				}
				else
				{
					list.SetCurSel(list.GetCurSel() - 1);
				}
			}
			break;
		case VK_DOWN:
			if (GetFocus() == edit)
			{
				if (list.GetCurSel() >= list.GetCount() - 1)
				{
					list.SetCurSel(0);
				}
				else
				{
					list.SetCurSel(list.GetCurSel() + 1);
				}
			}
			break;
		case VK_ESCAPE:
			if (edit.GetWindowTextLengthW())
			{
				//编辑框不为空
				edit.SetWindowTextW(L"");
			}
			else
			{
				HideWindow();
			}
			break;

		case VK_RETURN:
			RunList(list.GetCurSel() != LB_ERR);
			break;
		}
		return 1;
	}

	LRESULT OnCreate(LPCREATESTRUCT lpCreateStruct)
	{
		is_show = false;
		hwnd = m_hWnd;

		WM_USER_ACTIVE = ::RegisterWindowMessage(unique_guid);

		run_list.Load(index_config);

		exit_event = ::CreateEvent(NULL, TRUE, FALSE, NULL);

		for (auto scanner : builtin_directory)
		{
			group.add_thread(new boost::thread(&SuperRunUI::ScanWatchThread, this, scanner));
		}

		try{
			for (auto scan : settings.get_child(L"scan_directory"))
			{
				scanner_directory scanner = {};

				size_t index = 0;
				for (auto item : scan.second)
				{
					switch (index)
					{
					case 0:
						scanner.path = item.second.get_value<std::wstring>();
						break;
					case 1:
						scanner.level = item.second.get_value<uint32_t>();
						break;
					}
					index++;
				}
				group.add_thread(new boost::thread(&SuperRunUI::ScanWatchThread, this, scanner));
			}
		}
		catch (...)
		{
			boost::property_tree::wptree scan_directory;
			settings.put_child(L"scan_directory", scan_directory);
		}

		try{
			for (auto scan : settings.get_child(L"hotkey"))
			{
			}
		}
		catch (...)
		{
			boost::property_tree::wptree hotkey;
			boost::property_tree::wptree key;

			key.put(L"", L"Left Windows+R");
			hotkey.push_back(std::make_pair(L"", key));

			settings.put_child(L"hotkey", hotkey);
		}

		InitFont();
		CenterWindow();

		RECT rect;
		GetWindowRect(&rect);
		rect.bottom -= rect.top;
		rect.top -= rect.top;
		SetWindowPos(NULL, &rect, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);

		RECT pos = { 0, 0, 390, 18 };
		edit.Create(m_hWnd, pos, L"", WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL);
		edit.SetFont(font);

		pos = { 0, 20, 395, 400-30 };
		list.Create(m_hWnd, pos, L"", WS_CHILD | WS_VSCROLL | WS_VISIBLE | LBS_NOINTEGRALHEIGHT | LBS_NOTIFY);
		list.SetFont(font);
		list.SetItemHeight(NULL, 24);

		keyboard_hook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, instance, 0);

		SetTimer(0, 200);

		if (settings.get<bool>(L"first_run", true))
		{
			settings.put(L"first_run", false);
			ShowBalloon();
		}

		return 0;
	}

	void ShowBalloon()
	{
		memset(&nid, 0, sizeof(nid));
		nid.cbSize = sizeof(NOTIFYICONDATA);
		nid.uID = 100;
		nid.hWnd = hwnd;
		nid.dwInfoFlags = NIIF_INFO;
		nid.uFlags = NIF_ICON | NIF_TIP | NIF_INFO;
		nid.hIcon = LoadIcon(instance, L"APPICON");
		wcscpy_s(nid.szInfoTitle, _countof(nid.szInfoTitle), i18n::GetString(L"tray_title").c_str());
		wcscpy_s(nid.szInfo, _countof(nid.szInfo), i18n::GetString(L"tray_info").c_str());
		wcscpy_s(nid.szTip, _countof(nid.szTip), i18n::GetString(L"name").c_str());
		Shell_NotifyIcon(NIM_ADD, &nid);
		Shell_NotifyIcon(NIM_DELETE, &nid);
	}

	void OnTimer(UINT_PTR nIDEvent)
	{
		switch (nIDEvent)
		{
		case 0:
			if (IsWindowVisible() && current_type==COMMAND_GENERAL && run_list.hasChanged())
			{
				UpdateList();
			}
			break;
		}
		return;
	}

	void OnActivate(UINT nState, BOOL bMinimized, CWindow wndOther)
	{
		if (nState == WA_INACTIVE)
		{
			HideWindow();
		}
	}

	LRESULT OnNcLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
		return 1;
	}

	LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
		UnhookWindowsHook(WH_KEYBOARD_LL, LowLevelKeyboardProc);
		SetEvent(exit_event);
		group.join_all();
		run_list.Save(index_config);
		::PostQuitMessage(0);
		return 0;
	}

	template <class MatchList, class Function>
	void ShowEdit(MatchList &match_list, Function f)
	{
		rank_list_command.clear();

		for (auto &run : match_list)
		{
			f(run);
		}

		rank_list_command.sort([](const rank_list & a, const rank_list & b) {
			return a.rank>b.rank;
		});

		list.ResetContent();
		for (const rank_list &run : rank_list_command)
		{
			int index = list.GetCount();

			list.AddString(run.name.c_str());
			list.SetItemDataPtr(index, (void*)run.command.c_str());
		}

		list.SetCurSel(0);
	}

	void OnEdit(const std::wstring &search)
	{
		if (search[0] == '!')
		{
			current_type = COMMAND_BUILTIN;

			ShowEdit(get_builtin_command_list(hwnd), [search, this](const builtin_command_name &run) {
				if (double rank = ranker(search.c_str() + 1, run.name))
				{
					rank_list_command.push_back({ run.name, run.command, rank });
				}
			});
		}
		else
		{
			current_type = COMMAND_GENERAL;

			uint32_t total = run_list.get_total();
			ShowEdit(run_list.get(), [search, this, total](const super_run &run) {
				if (double rank = ranker(search, run.description))
				{
					rank += 1.0*run.count/total;
					rank_list_command.push_back({ run.name, run.fullpath, rank });
				}
			});
		}
	}

	void OnCommand(UINT uNotifyCode, int nID, CWindow wndCtl)
	{
		if (wndCtl == edit)
		{
			if (uNotifyCode == EN_CHANGE && is_show)
			{
				//文本框有改变
				UpdateList();
			}
		}
		else if (wndCtl == list )
		{
			if (uNotifyCode == LBN_SELCHANGE && is_show)
			{
				//鼠标点击了一项列表
				RunList(true);
			}
		}
	}

	void UpdateList()
	{
		CString search;
		edit.GetWindowText(search);
		std::wstring lower_search = search;
		boost::algorithm::to_lower(lower_search);
		OnEdit(remove_spaces(lower_search));
	}

	void RunListCommand(bool have_choice, std::wstring command)
	{
		switch (current_type)
		{
		case COMMAND_GENERAL:
			RunGeneral(have_choice, command.c_str());
			break;
		case COMMAND_BUILTIN:
			RunBuiltin(have_choice, command.c_str());
			break;
		}
	}
	void RunList(bool have_choice)
	{
		std::wstring command;

		if (have_choice)
		{
			//列表中有选择
			int index = list.GetCurSel();
			const void * data = list.GetItemDataPtr(index);
			command = std::wstring((const wchar_t *)data);
		}
		else
		{
			//列表为空
			CString text;
			edit.GetWindowText(text);
			command = text;
		}

		HideWindow();

		RunListCommand(have_choice, command);
		//group.add_thread(new boost::thread(&SuperRunUI::RunListCommand, this, have_choice, command));
	}

	void RunGeneral(bool have_choice, const wchar_t * command)
	{
		//判断是否是注册表
		if (!have_choice && boost::istarts_with(command, L"HKEY_"))
		{
			HKEY hKey;
			if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Regedit"), 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS)
			{
				RegSetValueEx(hKey, L"LastKey", 0, REG_SZ, (LPBYTE)command, _tcslen(command)*sizeof(TCHAR));
				RegCloseKey(hKey);
			}
			command = L"regedit";
		}

		SHELLEXECUTEINFO ShExecInfo = { 0 };
		ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
		ShExecInfo.lpFile = command;
		ShExecInfo.nShow = SW_SHOW;

		std::wstring argv = command;
		std::wstring lpFile;
		std::wstring lpParameters;
		if (!have_choice)
		{
			std::size_t space = argv.find(L" ");
			if (space != std::wstring::npos)
			{
				lpFile = argv.substr(0, space);
				lpParameters = argv.substr(space + 1);
				ShExecInfo.lpFile = lpFile.c_str();
				ShExecInfo.lpParameters = lpParameters.c_str();
			}
		}

		if (ShellExecuteEx(&ShExecInfo))
		{
			if (have_choice)
			{
				run_list.AddCount(command);
			}
		}

	}

	void RunBuiltin(bool have_choice, const wchar_t * command)
	{
		if (!have_choice) return;
		for (auto &builtin_command : builtin_command_list)
		{
			if (builtin_command.command == command)
			{
				builtin_command.function(hwnd);
				return;
			}
		}
	}

	LRESULT OnUserAddDir(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
		std::wstring directory = std::wstring((const wchar_t *)wParam);
		boost::filesystem::wpath path(directory);

		boost::system::error_code ec;
		if (!boost::filesystem::is_directory(path, ec))
		{
			return 0;
		}

		if (path.wstring().find(GetAppPath().wstring()) != std::wstring::npos)
		{
			wchar_t relative_path[MAX_PATH];
			PathRelativePathTo(relative_path, GetAppPath().wstring().c_str(), FILE_ATTRIBUTE_DIRECTORY, directory.c_str(), FILE_ATTRIBUTE_DIRECTORY);
			directory = relative_path;
		}

		boost::property_tree::wptree scan_directory = settings.get_child(L"scan_directory");

		bool alreay_add = false;
		for (auto scan : scan_directory)
		{
			size_t index = 0;
			for (auto item : scan.second)
			{
				switch (index)
				{
				case 0:
					if (item.second.get_value<std::wstring>() == directory)
					{
						alreay_add = true;
						break;
					}
					break;
				}
				index++;
			}
		}
		if (!alreay_add)
		{
			boost::property_tree::wptree item;
			boost::property_tree::wptree child1, child2;

			child1.put(L"", directory);
			child2.put(L"", 3);
			item.push_back(std::make_pair(L"", child1));
			item.push_back(std::make_pair(L"", child2));

			scan_directory.push_back(std::make_pair(L"", item));
			settings.put_child(L"scan_directory", scan_directory);

			scanner_directory scanner = { directory, 3 };
			group.add_thread(new boost::thread(&SuperRunUI::ScanWatchThread, this, scanner));
		}
		return 0;
	}

	void HideWindow()
	{
		is_show = false;
		list.ResetContent();
		edit.SetWindowTextW(L"");
		ShowWindow(SW_HIDE);
	}

	void ShowWindowUI()
	{
		is_show = true;
		edit.SetFocus();
		UpdateList();
	}
protected:
	CEdit edit;
	CFont font;
	CListBox list;
	boost::thread_group group;
	HANDLE exit_event;

	int WM_USER_ACTIVE;

	super_run_list run_list;

	int current_type;
	bool is_show;

	std::list<rank_list> rank_list_command;

	NOTIFYICONDATA nid;
};

int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPTSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
	i18n::Init();

	//检查操作系统
	BOOL bIsWow64 = FALSE;
	IsWow64Process(GetCurrentProcess(), &bIsWow64);
	if (bIsWow64)
	{
		return TipsBox(i18n::GetString(L"platform_error").c_str(), MB_ICONWARNING);
	}

	// 检查单例,并且唤出界面
	int WM_USER_ACTIVE = ::RegisterWindowMessage(unique_guid);
	HANDLE mutex = CreateMutex(NULL, TRUE, unique_guid);
	if (GetLastError() == ERROR_ALREADY_EXISTS)
	{
		PostMessage(HWND_BROADCAST, WM_USER_ACTIVE, 3, 0);
		CloseHandle(mutex);
		return 0;
	}

	SimpleUpdater::Check("http://tools.shuax.com/getchrome", R"(data={"branch":"Stable","arch":"x86"})");

	InitCommonControls();

	LoadFromFile(settings, GetDataPath(settings_config).c_str());

	hotkey_init();

	instance = hInstance;

	SuperRunUI UI;
	if (!UI.Create(NULL, CRect(0, 0, 400, 400), i18n::GetString(L"title").c_str(), WS_CAPTION, WS_EX_COMPOSITED | WS_EX_TOOLWINDOW | WS_EX_TOPMOST))
	{
		return 0;
	}
	//UI.ShowWindow(nCmdShow);

	WTL::CMessageLoop msgLoop;
	int ret = msgLoop.Run();

	SaveToFile(settings, GetDataPath(settings_config).c_str());
	return ret;
}

redpajama_set_name: RedPajamaGithub


text:
The Rise of the Plutocrats
Why have Americans been so tolerant of the rising gulf between rich and poor?
By Chrystia Freeland
Chrystia Freeland
Digital Editor, Thomson Reuters Chrystia Freeland is the digital editor of Thomson Reuters, following years of service at the Financial Times both in New York and London. She was the deputy editor of Canada's The Globe and Mail newspaper and has reported for the Financial Times, The Economist and the Washington Post. Her book Plutocrats: […]
Alexis de Tocqueville World BankBill ClintonBranko MilanovicChrystia Freelandcivilizationclassless societyde Tocquevilleelitesincome inequalityLarry Katzplutocratspovertypoverty alleviationReagan Revolutionsocialismsuper-richU.S financial institutionsWall StreetWashington think tanksyachts
Branko Milanovic is an economist at the World Bank. He first became interested in income inequality studying for his doctorate in the 1980s in his native Yugoslavia. At the time, he discovered the subject was officially viewed as a "sensitive" subject in his home country — which meant one the ruling regime didn't want its scholars to look at too closely.
That wasn't a huge surprise. After all, the central ideological promise of socialism was to deliver a classless society.
But when Milanovic moved to Washington, D.C., the capital city of the country that serves as the citadel of capitalism, he discovered a curious thing.
Americans were happy to celebrate their super-rich and, at least sometimes, worry about their poor. But putting those two conversations together and talking about economic inequality was pretty much taboo.
"I was once told by the head of a prestigious think tank in Washington that the think tank's board was very unlikely to fund any work that had income or wealth inequality in its title," Milanovic, who wears a beard and has a receding hairline and teddy bear build, explained in a recent book.
"Yes, they would finance anything to do with poverty alleviation, but inequality was an altogether different matter."
"Why?" he asked. "Because 'my' concern with the poverty of some people actually projects me in a very nice, warm glow: I am ready to use my money to help them. Charity is a good thing — a lot of egos are boosted by it and many ethical points earned even when only tiny amounts are given to the poor. But inequality is different: Every mention of it raises in fact the issue of the appropriateness or legitimacy of my income."
The point isn't that the members of the super-elite in the United States are reluctant to display their wealth. That is, after all, at least part of the purpose of yachts, couture, vast homes and high-profile, big-buck philanthropy.
But when the discussion shifts from celebratory to analytical, the super-elite does get nervous. One Wall Street Democrat, who has held big jobs in Washington and at some top U.S. financial institutions, told me President Obama had alienated the business community by speaking about "the rich."
It would be best not to refer to income differences at all, the banker said. But if the president couldn't avoid singling out the country's top earners, he should call them "affluent." Naming them as "rich," he told me, sounded divisive — something the rich don't want to be.
Striking a similar tone, Bill Clinton, in his 2011 book, Back to Work, faulted Obama for how he talks about those at the top.
"I didn't attack them for their success," President Clinton wrote, attributing to that softer touch his greater success in getting those at the top to accept higher taxes.
Look more closely at the data, though, as University of California, Berkeley economist Emmanuel Saez did, and it turns out that Obama is well justified in his views. Average Americans have reason to doubt that there is an economic comeback for them.
That's because for 99% of Americans, incomes increased by a mere 0.2% during the tepid recovery of 2009-10. Meanwhile, the incomes of the top 1% jumped by 11.6%. It was definitely a recovery — for the 1%. [Saez's analysis is here (PDF).]
This is not a uniquely American story, though. In fact, there is a similar story behind the boom in the emerging markets. For all the luxury the Ambani brothers and others are basking in, the "India Shining" of the urban middle class has left untouched hundreds of millions of peasants living at subsistence levels, as the Bharatiya Janata Party discovered to its dismay when it sought re-election on the strength of that slogan.
Likewise, China's booming coastal elite is a world apart from the roughly half of the population who still live in villages in the country's vast hinterland.
As is so often the case when analyzing the United States, that early 19th-century French sage of American customs, Alexis de Tocqueville, came up with a far more useful and truthful insight than what the rich protester piped into President Obama's ears.
If one looks closely at what has happened to the world since the beginning of society, it is easy to see that equality is prevalent only at the historical poles of civilization. Savages are equal because they are equally weak and ignorant. Very civilized men can all become equal because they all have at their disposal similar means of attaining comfort and happiness. Between these two extremes is found inequality of condition, wealth, knowledge — the power of the few, the poverty, ignorance and weakness of the rest.
But haven't we reached that Tocquevillian plateau of all of us being "very civilized men" (yes, men!)? Shouldn't we therefore all share in the gains? Until the late 1970s, the United States, the world's poster child of capitalism, certainly did so.
The great postwar expansion was also the period of what economists have dubbed the Great Compression. Inequality shrank — and most Americans came to think of themselves as middle class. This was also the era when, in the words of Harvard economist Larry Katz, "Americans grew together."
That seemed to be the natural shape of industrial capitalism. Even the Reagan Revolution rode on the coattails of this paradigm — trickle-down economics, after all, emphasizes the trickle.
But in the late 1970s, things started to change. The income of the middle class in the United States started to stagnate and those at the top began to pull away from everyone else.
And while this shift remains most pronounced in the United States, it would be a delusion to believe it is restricted to that country. Already by the start of the 21st century, surging income inequality had become a worldwide phenomenon, visible in most of the developed Western economies as well as in the rising emerging markets.
Editor's note: This article is adapted from Plutocrats: The Rise of the New Global Super-Rich and the Fall of Everyone Else by Chrystia Freeland. Reprinted by arrangement with The Penguin Press, a member of Penguin Group (USA), Inc. Copyright © 2012 by Chrystia Freeland.
What's Next for the WTO?
Americans were happy to celebrate their super-rich and, at least sometimes, worry about their poor. But putting those two conversations together was taboo.
For 99% of Americans, incomes rose by a mere 0.2% in the 2009-10 recovery, while the top 1%'s jumped 11.6%. It was definitely a recovery — for the 1%.
One Wall Street Democrat told me President Obama had alienated the business community by speaking about "the rich."
From Economic Growth to Human Growth

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Converting code from keras to tf.keras causes problems I am learning machine translation in Keras using the code from this article.  The article's code works fine on GPU and CPU as-is.
Now I want to take advantage of Google Colab TPUs.  The code doesn't TPU-ify as-is, I need to move in a TF direction.
Following a Fashion MNIST notbook for TPUs, I use the Keras layer in Tensorflow rather than the other way around.  Before getting to the TPU part, I am doing this conversion to see if it still runs on GPU. This means mainly changing this function, from:
from keras.models import Sequential
from keras.layers import LSTM
from keras.layers import Dense
from keras.layers import Embedding
from keras.layers import RepeatVector
from keras.layers import TimeDistributed
# define NMT model
def define_model(src_vocab, tar_vocab, src_timesteps, tar_timesteps, n_units):
    model = Sequential()
    model.add(Embedding(src_vocab, n_units, input_length=src_timesteps, mask_zero=True))
    model.add(LSTM(n_units))
    model.add(RepeatVector(tar_timesteps))
    model.add(LSTM(n_units, return_sequences=True))
    model.add(TimeDistributed(Dense(tar_vocab, activation='softmax')))
    return model

to:
import tensorflow as tf
# define NMT model
def define_model(src_vocab, tar_vocab, src_timesteps, tar_timesteps, n_units):
    model = tf.keras.models.Sequential()
    model.add(tf.keras.layers.Embedding(src_vocab, n_units, input_length=src_timesteps, mask_zero=True))
    model.add(tf.keras.layers.LSTM(n_units))
    model.add(tf.keras.layers.RepeatVector(tar_timesteps))
    model.add(tf.keras.layers.LSTM(n_units, return_sequences=True))
    model.add(tf.keras.layers.TimeDistributed(tf.keras.layers.Dense(tar_vocab, activation='softmax')))
    return model

Then I do
model = define_model(swh_vocab_size, eng_vocab_size, swh_length, eng_length, 256)
model.compile(optimizer='adam', loss='categorical_crossentropy')
model.fit(trainX, trainY, epochs=1, batch_size=64, validation_data=(testX, testY), callbacks=[checkpoint], verbose=2)

However this results in a complaint when I run fit:
lib\site-packages\tensorflow\python\ops\gradients_impl.py:112: UserWarning: Converting sparse IndexedSlices to a dense Tensor of unknown shape. This may consume a large amount of memory.
  "Converting sparse IndexedSlices to a dense Tensor of unknown shape. "

Then during the fit inside the GPU it fails on a BLAS load as follows:
InternalError: Blas GEMM launch failed : a.shape=(64, 256), b.shape=(256, 256), m=64, n=256, k=256
     [[{{node lstm/while/MatMul}} = MatMul[T=DT_FLOAT, _class=["loc:@training/Adam/gradients/lstm/while/strided_slice_grad/StridedSliceGrad"], transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:GPU:0"](lstm/while/TensorArrayReadV3, lstm/while/strided_slice)]]
     [[{{node loss/time_distributed_loss/broadcast_weights/assert_broadcastable/AssertGuard/Assert/Switch/_175}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_2728_...ert/Switch", tensor_type=DT_BOOL, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

This is prior to conversion to TPU model.  I'm just trying to make sure things still run on CPU and GPU before getting to final TPU conversion.  They don't. Any thoughts on why I can't get this far?

A: I'm thinking some of this may have to do with careful Anaconda Python install on Windows.  Here is I think the correct sequence (assuming as in my case that you have CUDA 9.0 and cuDNN installed already):
Install a version of Visual Studio that matches the one used to build tensorflow, per this question.  Add path
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC

to PATH.
And this: run vcvarsall in script before running Python.  Then:

*

*Start a CMD window using Run As Administrator.  This is crucial.

*conda create --name myenv

*conda activate myenv

*conda install tensorflow-gpu

*conda install mingw

*conda install libpython

*conda install mkl-service

I will mark this correct later after some more testing.  Steps 3 and 4 come from this question and concept of starting from scratch and strictly using conda install rather than pip install from this question.

redpajama_set_name: RedPajamaStackExchange


text:
China relations
Confucius Institutes 'on way out' from Australian unis
Robert BoltonEducation editor
Aug 27, 2020 – 3.52pm
Confucius Institutes on Australian universities are "on their way out", according to China watcher Salvatore Babones, but identifying joint research projects that undermine Australia's interests will be difficult since "every organisation in China is ultimately a government organisation".
Writing in the August edition of the US journal Foreign Policy, professor Babones, who teaches sociology at The University of Sydney, said: "Confucius Institutes are not so much designed to indoctrinate the students who take their courses as to influence the administrators of the universities that host them.
Salvatore Babones: "Rising totalitarianism in China has turned the tables on Western universities." Steven Siewert
"Rising totalitarianism in China has turned the tables on Western universities: instead of spearheading the liberalisation of China, they are uncomfortably vulnerable to Chinese pressure in the opposite direction.
"As difficult and dismaying it may be for everyone involved to admit it, it's time to cut the cord. As an evil regime gets even worse, at some point engagement becomes no longer acceptable."
Professor Babones, author of American Tianxia : Chinese Money, American Power and the End of History, told The Australian Financial Review Confucius Institutes had become a public relations liability for universities and were now "seen as something to be ashamed about".
It was not clear how the government's proposed veto legislation would affect research. Most research was funded by institutes such as the Australian Research Council and National Health and Medical Research Council.
"We don't know whether the government is interested in all research contracts or only those where the Australian partner receives funding from China," he said.
Either way, all Chinese organisations were ultimately government organisations.
On Wednesday the federal government brought university research projects under the scrutiny of the Department of Foreign Affairs, given the concern about the potential for Beijing to poach intellectual property or exert influence covertly.
In November, guidelines were drawn up between the universities and the Education Minister to supervise shared research. But within less than a year, relations have deteriorated to a point where the "Guidelines to Counter Foreign Interference" did not go far enough.
Swinburne University professor John Fitzgerald, who writes extensively on Australia's relationship with China, said some universities had been taking their obligations under the guidelines very seriously and were working to maintain linkages with China while mitigating risk.
"But not all of them have been as proactive as the government would like, which is one factor leading to Wednesday's tightening of supervision arrangements.
"For those universities which have engaged with the government, the fact that others have not must be very frustrating."
Universities Australia, which represents all 39 public universities, said it was important to "strike the right balance between national security and the research collaboration which is driving so many advances in knowledge – including the search for a COVID-19 vaccine".
The biggest stories in business, markets and politics and why they matter.
Need to know. Our daily reporting, in your inbox.
Robert Bolton is the Education editor. He covers primary and secondary education, universities and training. Connect with Robert on Twitter. Email Robert at rbolton@afr.com
Latest In Health & education


UNIES has opened its Regional Office - Asia in Singapore on 18th December 2018. The Regional Office's mission is to embark on collaboration exercises with higher learning institutions throughout Asia, offering academic programs at all levels.
UNIES Education Bangladesh Ltd. has set-up a new office and lecture hall in the prestigious business district of Dhaka, offering professional programmes to all its students under a comfortable learning environment.
Warsaw Management University, represented by the Rector Prof. dr hab. Paweł Czarnecki, MBA, Dr h.c., and UNIES have signed a long-term agreement for collaboration in academic activities in October 2018. UNIES will constitutes an International graduate school associated to WMU, to deliver undergraduate and postgraduate programmes of studies in international market.
We are proudly presenting our collaboration with the Swiss School of Management (SSM) in Rome, Italy. The SSM is a private Management School, which is accredited by the well known International Assembly for Collegiate Business Education (IACBE). The educational offer is consists of Bachelor, Master and doctoral programmes. SSM is located in the historical centre of Rome an premises the campus of Washington University since over 16 years. Signing of contracts with Founding President Massimiliano Bracalé, PhD, of SSM and Dr. h.c. Jovan Didier (UNIES).
Grand opening for the start of the first MBA class in collaboration with Euraka-Exklusiv. Euraka-Exklusiv is a School recognized by German Government for Professioinal Education in the field of Health Care Management and Nursing. Beforehand Euraka-Exklusiv was successfully audited regarding UNIES Quality Management System and became accredited Education and Training Centre of UNIES Education Group to perform MBA classes which are recognized by the Polish University Katowice School of Economics (GWSH).
Visitation of the production line of automotive company SEAT in Martorell near Barcelona (Spain).
UNIES Malaysia, in collaboration with Koperasi Anak Sains MARA Berhad (ASMARA), conducted a 5 days seminar on Strategic Leadership and Entrepreneurship for its MBA students in Barcelona. The programme concluded with an industrial visit to SEAT Motors at Martorell, Barcelona, organized by UNIES Education Group.
The Euraka-Exklusiv Pflegefachschulen gGmbH and UNIES Education Group have signed a collaboration contract in April 2018. It is the objective to offer MBA courses in Health Education (Gesundheitspädagogik) in German language at the Campus of Euraka-Exklusiv in Delitzsch near Leipzig. Signing contract with Founding President Thomas Heimpold and Academic Director Dr. Sylvia Oh with Dr. h.c. Jovan Didier (UNIES).
Grand Opening of the new semester at the Katowice School of Economics. More then hundred participants and authorities from the whole of Poland and abroad have come to the inauguration ceremony 2017. Freshman were sworn in to the principals of academic behaviour and colleagues were honored for outstanding achievements.
We are proudly presenting our collaboration with the Górnoslaska Wyzsza Szkola Handlowa (Katowice School of Economics). The KSE is a private University in southwestern Poland and the center of the Silesian Metropolis. The educational offer is consists of 12 fields of knowledge at first (Bachelor) and second (Master) cycle programmes. Moreover, KSE conducts doctoral seminars and is awarded with the right to confer the doctoral title in economics studies in the subject area of management. Signing of contracts with Professor Dr. Krzysztof Szaflarski, Rector of KSE and Dr. h.c. Jovan Didier (UNIES Chairman).
UNIES Malaysia organized a 7 days' high-performance seminar on Strategic Management and Leadership to students from Malaysia and Indonesia. Lectures, workshops and industrial visits to Ford Motor Company in Cologne and RWE Power Plant in Leverkusen provided additional learning mileage to all students.
In collaboration with the University´s close partner, the StadMind Institute of Management and Development the University has constituted its Research Centre in Kerkrade and officially registered its UNIES StatMind Foundation (USF) in the Netherlands.
20 senior managers and corporate professionals, organized by UNIES Malaysia, attended the MBA seminar on Strategic Management at Kerkrade, The Netherlands. The seminar, being first part of their MBA studies, was further enriched with company visits and invited guest speakers, thus delivering a week of total experience to be remembered.
With special guest Emeritus Prof. Datuk Dr. Mydin Sheriff, Professor Dr. Ravindran Pathmanathan, Professor Dr. Klaus Oestreicher and Dr. Mike Mulder.
Welcome to the Opening Ceremony at University Campus in Tbilisi. In addition to all our returning students and staff member, we also warmly welcome all of our new Freshman to our academic community and new staff. For the new term we wish all our students a lots of success and hope that your time here will be enjoyable and rewarding.
Kazimieras Simonavičius University is a private university in Vilnius, Lithuania licensed by the Ministry of Education and Science of the Republic of Lithuania, VABL on August 26, 2003. KSU offers several Bachelor and Master courses oriented toward business and law. KSU is internationaly well connected and is member of Erasmus+.
We welcome the International College of Hospitality Management in Nepal (ICHM) as a Training and Education Centre of UNIES and as a member of our University Group. On the right side you find the welcome message of the Provost of UNIES to students and applicants of ICHM.
www.unies.eu | Copyright 2017. All rights reserved.


with houses teethering on cliffs.
as our young men and women, dressed in tradition's best, hop in and out.
where one wrong movement would lead to disaster.
with comprehensive differences in warmth and sizes.
(but what is food compared to the latest fashion).
Subbing identity for brands, a living, breathing advertisement.
who in years of election give huge contributions to charity and churches.
to a God that does not live within them.
in throngs, to see the magic show.
convincing ourselves of strengh in our shaky faith.
then you do not see God.
off household appliances and medicines.
Mean those meant to fix meant for a fix.
He's hanging on a shoestring.
The diluted blood in his veins ran cold.
His relief from pain became his pain.
mother would cry,"...it's my fault!"
Silent father would whisper,"..it's my fault."
Lalnunsanga currently lives in Shillong and is pursuing his doctorate at NEHU.
have always liked this poem. the staccato one-two-three-four rhythm that echoes the bamboo snap, interposed with the critique on Mizo society- nice!
You summed it all up very nicely, ku2. I'd say this poem is a classic as far as Mizo poetry in English goes. Keep up the good work, Sanga!
I loved this poem when I came across it in a magazine. I am definitely a fan of this poet...!!


When and how it happened that you decided to become District Director?
It was a few years ago, when I was in the middle of my first Division Director's term, I looked ahead and realized that it would probably be mutually beneficial – for the organization and for myself, if I considered to take the role in the so called District Trio. The District Trio consists of the Club Growth Director (CGD), Program Quality Director (PQD) and District Director (DD). This small team leads the whole District Leadership Team, supervises all activities in the District and is fully responsible for its results. Typically, although not necessarily, you go through the CGD and PQD roles to become the District Director. And, given the fact that after your term as a DD, you spend one year as the Immediate Past District Director and in this role you have a number of responsibilities, it is a four-year commitment. And once you are in, and if you are serious about it, you don't want to resign in the middle. So it requires careful consideration, some open and honest discussions at home with your family and careful planning. But thenit's totally worth the effort. In fact what you learn is to lead an organization which is a different thing to leading a team. In such roles you actually lead teams to a common goal, a common vision. It's very challenging and it's very rewarding once it works.
What is your vision for upcoming year?
We are a new District. It means that we can do things exactly as we used to in the old structures or we can find ways to do things better, smarter and more adjusted to the needs of our District. So first of all, with the Team I want to create an operating model for our District-a set of rules which will help us run the organization in our part of the World and make lives of our successors easier. At the same time, from day one we started to realize the District Mission: to build new clubs and support all clubs in achieving excellence. Our target is to help clubs achieve a good membership base, which is at least 30 members per club and to provide much more trainings for Club and District Officers, to raise awareness and foster cooperation. My vision is that at the end of the year, all our clubs, including new clubs, will be strong or very strong which will help us be among the best Districts in the World, maybe even number one!
It helps me develop my skills and build on my talents. Gallup's Strenghts Finder says that my top three talents are: strategic approach, communication and arranging resources to achieve goals. All of these are very much present in any of the leadership roles in Toastmasters and the more I get involved in this, the more I can use my talents and build my skills on them. And, well, one thing that makes me go one extra mile even in hard times is when I see people discover their strengths, develop and start using their potential and they start help others grow. In such moments I am just happy. And there's a lot of such moments in Toastmasters. That's what's in it for me!
How your Toastmasters experience impacted your professional career?
Very, very much – to the extent that I wouldn't have predicted if you had asked me in the beginning of the journey. Not only can I do any business presentation in a way that exceeds typical corporate standards, not only can I be much more convincing and persuasive when it comes to presenting my case to the stakeholders, not only am I able to prepare and chair an effective meeting, but there's much more. The feedback I give, the teams I lead, the attitude I have – there's so much of it that has its source in Toastmasters. Every now and then, I realize that I am able to achieve something because I learned it in Toastmasters. In the meantime, I was admitted to the Professional Speakers Association in Poland where I help promoting high standards in public communication. And I keep learning. All the time. The best thing is that in the current role I can effectively use my skills I developed in my professional career, as a financial controller and process manager, ultimately for the benefit of the members in our district.
What are your passions except of Toastmasters?
I have three: my lovely family, who supports me all the way through my journey, sport, which helps me keep mental and physical balance and music, which supports my creativity.
Do you have any advice for someone who would like to handle this role in the future?
Three things, like everything in Toastmasters. First, always remember it's all about people. It's not about your goals and ambitions, it's not about you. It's people who will invite you to take charge and will want and be ready to set off for the journey with you. So you need to know these people, you need to try to understand them, you need to open to them and accept them as they are, whatever happens. It may sometimes be difficult, but here comes the second part: you need to be assertive. What I mean by this, you can't take everything personally. The more responsibility you have, the more often you will be a side of the conflict or you will be invited to mediate in the conflict. Never let such situations bring you down. Handle them professionally using the Toastmasters values as guidance and treat each of such difficult situations as a learning opportunity. And third thing: find yourself a mentor. It does not have to be someone in your club, but it should be someone who is or was where you want to be in future. Talk with them, ask them questions, share your views and listen. Having good mentors is extremely important not only in Toastmasters, but in life in general.
Great thoughts Piotr and it's a pleasure to work in your extended team.


This fanedit improves on the original movie by removing the annoying interview scenes and by adding in some of the deleted scenes.
To remove the documentary style interviews and incorporate some of the deleted scenes.
I'm a huge Charlie Kaufman fan so I didn't want to mess with this too much. I never liked the interview segments – they should've been left in the bonus features – and I really liked some of the deleted scenes. Nothing too drastic, but a preferred version of the movie, for me at least. I tried my best to clean up the deleted scenes with vdub. They don't look perfect, but they're as good as I could get them.
deleted scenes feel fine, so good work there. the interview segments are really not missed. great execution. …but entertainment of this film cannot really be saved, lol.


External parasitic. Excellent residual power.
External parasitic without restriction in beef cattle and 48 hours withdrawal period in dairy cattle.
Etión 40g %, excipient q.s. 100 g.
Control and treatment of infestation caused by horn fly in beef and dairy bovines.
Apply one tag per animal. Replace the tags every 4 months. Once this period has elapsed, it is recommended to remove same in order to avoid eventual appearance of resistant populations, as the flies would be exposed to sub-lethal doses. Apply the tags using an application pincers/clamp which must be disinfected with an antiseptic solution previous to each use.
No restriction exists in beef cattle.
Withdrawal period in dairy cattle for Argentina: 48 hours.


This year we take as our theme one of the most sacred and well-trafficked of cyclist thoroughfares, the Portsmouth Road, known universally to men and women of the wheel as the Ripley Road, for the 23-mile jaunt from London to Ripley was for no fewer than 20,000 cyclists their annual Whit Sunday destination.
From London to Ripley on Sundays of yore the road was clotted with young swains and damsels, scortchers and potterers both, coursing over the gravel which for the cyclists was otherwise untrammeled except by the occasional coach or oxcart.
Our ride, too, will be along the Ripley Road, past lovely Lake Ripley.
Half along scenic crushed limestone trail, exploring the fauna and flora of meadow and moor, and half on macadamized road surface down many a byway of the country shires where we shall become acquainted with the colourful and curious habits of the local rustics. Along the way we pass through the bustling metropolises of London and Cambridge.
We keep to the fore the motto that as an army marches on its stomach, so doth a cycling party pedal on its. And so, along the path, we'll stop for a classic drum-up of tea and what have you. By sacred vow upon the Union Jack on John Bull's belly, it'll be a ride you won't want to miss!
off the Ripley Road, Britain.
For the story of the Ripley Road in pdf format, click on the image above.


We're happy to let you know that the attendance module is now available on the application.
This optional module can now be selected as a calculator in the Company settings. With the attendance module, you can now input daily time-ins, time-outs and leave types for each employee. This fine grained input allows you to have a deeper understanding times and leave calculation in your organization.
We'll be introducing more reports and trends graphs relating to attendance in the near future.
This entry was posted on Monday, November 9th, 2009 at 2:55 pm	and is filed under General. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.


Google have released a software toolkit for creating on-line courses called "Google Course Builder". There is a demonstration course using the software "Power Searching with Google", so I signed up to see what a Google course looks like.
I received an invitation to join the course and found a very plain looking web page, much in the style of the Google search page. The page has a very simple menu with: Announcements, Course, Forum and My Profile. Also on the page is a photograph of a person sitting in from of a computer. This appears to be a still taken from a video and may well be the teacher, but there is no caption, making it very impersonal (contrary to what I have learned about on-line pedagogy).
Starting with "My Profile" I was surprised to find this did not contain a place to put a description of me, which other on-line courses have. Apart from my name and e-mail address, this just as details of the course I am enrolled in.
"Announcement" confusingly had two different welcome messages. One message invited me to take a pre-class assessment before the "first class". The use of the term "class" was confusing, as I would normally think of this being for a real-time event (as far as I know the course has not real time events). The other message had an overview of the course. I don't know which message was first, as they did not have the time of posting on them.
The pre-class assessment presented some difficulties as the text overlapped on my Firefox 15.0.1 browser. This is not as bad as Blogger (which is now unusable on Firefox) and I was able to fill in the pre assessment test. The test used multiple choice and text boxes much like other e-leaning courses. One surprise was that there were no results after filling in the test, just a "thank you" and instruction to start the first class.
Attempting to join the forum resulted in the error message: "You must be a member of this group to view and participate in it." This is difficult to understand given I am enrolled in the course and so should have access to the forum. It is not clear if this is just a Google Group, or part of the course.
Class 1 is, naturally enough an "Introduction". There are six topics (about right for a course module), each with one activity. However, there is then just a video frame and no more explanation. Clicking on "next" I expected to find the content of the introduction, but instead this skipped to the first activity. To get the text of the lesson I have to go back and click on "Text Version". This produced a page of well formatted HTML text. At this point I found the name of the presenter and other details which were missing from the home page. Also a "Slides" button opened a PDF document with slides in it.
This approach of having three different documents, with the course outline, text notes and slides allows for maximum flexibility, but is cumbersome. The slides could have been incorporated in the same document with the text notes. It was also surprising to see some spelling mistakes in the notes, such as "avaialble".
Overall the Google online course breaks no new ground, being like many on-line courses from the last decade. This plain format is efficient and easy to use. But it is surprising that Google have not produced a more polished looking product.


This is EVOLG's original-jacquard knit collection. This is great for both women's and men's are fashion trend setter. Our special inner-brushed fabric which a nap has been raised by a process using circular brushes gives you extra comfort, soft touch and wormth. you wear it once with the outstanding heat retention performance and wearing comfort. Once you wear this glove, you will for in love with them.


text:
Q: Python: Reading a hex number from JSON and passing to a library When I assign variable like hex_no = 0x67 and pass this over to the library that I want, it works fine.  However, if I retrieve 0x67 from a JSON file, its type is a string and I don't know how to change it to a the same format as this line does hex_no = 0x67.  When reading from json, how do i get it into the same format?
This is sample of the json file
{
    "measurement"  : "pressure",
    "i2c_address" : "0x67",
    "device_type": "N"
}

A: When you pass 0x67 or any other hexadecimal number to that library that you want, you're actually passing an integer. You can check this by doing:
>>> type(0x67)
<class 'int'>

Therefore, what you need is to convert the hexadecimal representation of that number (i.e, the string), to the integer number per se. You can do it by using the int class, passing 16 as the base argument to its constructor.
num = int('0x67', 16)

A: You can use the following:
int(hex_no, 16)

See the docs for int and its base argument.
If you wanted it as a string, wrap it in hex().


text:
American Airlines reports strong third quarter earnings
American Airlines has reported third-quarter pre-tax income of $557 million.
Net income for the period at the carrier stood at $425 million.
Excluding net special items, both pre-tax income and net income rose more than 15 per cent year-over-year to $835 million and $630 million respectively.
Third-quarter earnings were $0.96 per diluted share.
Excluding net special items, earnings per share grew 20 per cent year-over-year to $1.42 per diluted share.
"We are pleased to report an earnings increase of 15 per cent and earnings per share growth of 20 per cent for the third quarter, excluding net special items," said American Airlines chief executive, Doug Parker.
"However, we know that our results should have been better.
"Our third quarter was impacted by the continued grounding of the Boeing 737 Max and the operational challenges resulting from ongoing labour contract negotiations.
"These challenges affected our customers, our shareholders and our team members, who we thank for their hard work and perseverance."
American reported a record third-quarter revenue of $11.9 billion.
The carrier also reported third-quarter total revenue per available seat mile of 15.71 cents, an increase of two per cent year-over-year.
"We are taking decisive action to correct this performance and are excited about our prospects for 2020 and beyond.
"As we look forward, we are committed to restoring operational excellence, growing efficiently and profitably, and generating significant free cash flow for our investors," concluded Parker.
Shares in American rose four per cent following the release of the results, to stand at $29.4.
Phinda Mountain Lodge reopens with new look in South Africa
WTTC partners with Aruba for biometric travel trial
American Airlines welcomes Boeing 737 Max back to service
American Airlines rolls out comprehensive domestic Covid-19 testing
Montana appointed treasurer with American Airlines
Heathrow commissions report into pre-flight testing
British Airways partners with American for Covid-19 testing trial
American Airlines to launch VeriFLY to customers
American expands pre-flight Covid-19 testing
American Airlines reports huge loss for third quarter


text:
Q: Xcode Localization: Keep translation in sync with Storyboard Here's our localization workflow:

*

*Build stuff in interface builder

*Export project for localization

*Translator looks at xliff files and applies translations for new strings (Only new untranslated strings)

*Import xliff into project

This works fine for building new stuff. But if the developer changes the text in a label in storyboard that has already been translated, he will have to remember to delete the translation for that label, so the translater sees that string as untranslated. If the developer forgets to delete that translation, the translation will be wrong, which is a very hard error to find.
When code is localized like this:
var testString = NSLocalizedString("Some text in english", comment: "just a test string")

The string ("Some text in english") defines the key in the xliff-file, which means that if the string is changed, then the exported xliff file will automatically have a new string that needs to be translated.
I've tried to solve the problem with xcode's "export for localization..." function, with genstrings, and with BartyCrounch, but all methods seems to use the UI Element's Object ID as a key for the .strings-files. Which means it won't react to changes in the actual string.
The only solution I've found so far, is to set every string that need translation in the storyboards in code via a IBOutlet, but this is a quite comprehensive solution.
Do you know any tools or methods that solve this problem?

A: I tried what you said and understood what you meant. I think the solution is straightforward.
First, I added a new button in storyboard, named it "Test". Then I translated it in Chinese, imported the translation. Changed "Test" to "GoGo" and exported the translation again. The xliff part was changed from
<trans-unit id="jso-qF-Z1t.title">
        <source>Test</source>
        <target>测试</target>
        <note>Class = "NSButtonCell"; title = "Test"; ObjectID = "jso-qF-Z1t";</note>
</trans-unit>

to
<trans-unit id="jso-qF-Z1t.title">
        <source>GoGo</source>
        <target>测试</target>
        <note>Class = "NSButtonCell"; title = "GoGo"; ObjectID = "jso-qF-Z1t";</note>
</trans-unit>

What to do next
I don't know if there is a ready-tool for this. But you can use Git as it can always find the diffs.
Steps:

*

*add you translation folder to git

*commit current files

*export new translations from Xcode

*look at diffs with git

As you can see in the picture, git already shows what changes, that is where you should translate again.


text:
The Pooch Paintings of Mike McCartney
By Patty Williamson, Peninsula Pulse – October 29th, 2021
McCartney created this version of Mount Rushmore. Submitted.
It would be an insult to most people to say their work had gone to the dogs, but for Mike McCartney, it's not only true, but a succinct description of his truly remarkable career.
He and his wife, DeDe, met in high school art classes in Buffalo Grove, Illinois; were married in 1979; and moved to Door County, where she had spent time with her grandfather, Ernie Jackson, and was also related to the Witalisons, Bundas and Felhofers.
Mike went to work at Bay Shipbuilding, but on the weekends, he often loaded an easel into his old fishing boat and headed down to Potawatomi State Park to draw caricatures of people for $4 each.
"There used to be a little bar there called The Moorings that hung them on the wall," he said.
Over a beer at that bar or another, McCartney and a friend lamented the fact that cute bar napkins seemed to be a lost art, and when he was laid off temporarily at the shipyard, a contact with Wisconsin Tissue Mills led to a time filler for a while. "There's still a case of them around somewhere – 25 designs," McCartney said with a laugh.
McCartney draws a special subject at a dog show. Submitted.
Later, in the testing and planning departments at Peterson Builders, he was recruited to paint colorful shark jaws on the sides of rescue ships, like those on British Spitfire planes during WWII.
"I loved the camaraderie at the shipyards," he said, "and still enjoy seeing guys I knew there around town."
McCartney worked in the shipyards most of the time from 1982 until 1991, although his art sidelines were expanding. In 1985, he and his sister, Lori, attended a cartoonists' seminar in California.
"The first person I spotted was Charles Schulz in a circle with a dozen or so other great cartoonists, like the guys who drew Garfield, Frank and Ernest, and Miss Peach," he said. "And I thought, 'I want to be in that circle someday.' I spent most of the day with Schulz. He looked through my entire portfolio and even had lunch and dinner with me. He actually did a sketch for my sister, but I just got an autograph."
Their mother, Nancy McCartney, raised and showed Great Danes, and for her birthday and Mother's Day, her son created cards featuring funny dogs.
"Her friends with dogs liked them, too, and I started making notecards to sell," McCartney said. "The cards were so successful that in 1994, we created plastic travel mugs featuring 75 different dog caricatures. The minimum the manufacturer would make of each design was 500. We were totally unprepared.
"When the giant semi pulled up with more than 1,200 cases of mugs – 38,500 of them – we had to scramble to rent four storage units. To find a particular mug, we had to shift boxes around, like a Rubik's Cube. But we finally sold most of them, and the rest were donated to dog-rescue missions throughout the U.S."
Nancy McCartney showed her Great Danes all over the country and had been urging her son to join her to do caricatures.
This is one of the T-shirts McCartney has designed for Sevastopol's Destination Imagination Global Finals teams. Submitted.
"I assumed she meant drawing dog owners," he said, "but she meant dogs, and she was right. It was a leap of faith, but in 1991, DeDe and I and the kids – Butch, 10, and Stevi Lee, 5 – packed up every Friday and headed to Houston or Denver or somewhere else, and I sketched dogs for two days before driving home like crazy with the kids asleep in the back so Butch could get to school at Sevastopol on Monday."
For 10 years, while driving to two big dog shows a month, they continued to develop dog-themed items: T shirts, sweatshirts, glass cutting boards, welcome mats, mouse pads, tote bags, signs, pillowcases and canvas wall art. A special attraction for dog-show customers was being able to look through the huge books of 8,000 dog caricatures and have DeDe and the kids print their choice – from the huge inventory the McCartneys hauled to every show – on a shirt right on the spot.
After a decade, they cut the travel to five major shows a year: in New York, Pennsylvania, Texas, Kentucky and Illinois. By then, McCartney was producing so many items that it took a day and a half to set up the booth and his drawing area, and they filled three pages of the R.C. Steele Company's catalog of pet products, mailed every month to 2 million customers. Fax orders poured in.
"I was riding a big wave," McCartney said. "We were going like gangbusters with a bunch of teenagers and two women helping with production in the daytime and another woman on the second shift. Then Steele sold their business to PetSmart, which was only interested in acquiring their customer base.
"For a time, PetSmart indicated they might also want to carry all my dog items, but I would have needed to add barcodes to everything. My gut feeling told me not to get excited, and as it turned out, that connection never happened. It was a blessing in disguise, because if it had, I'd have become a full-time manufacturer with no time to draw. So, instead of riding a wave, I was back to riding a ripple."
However, by 2002, that ripple had made its way to St. Louis, where Purina, the world's largest pet-food manufacturer, hired McCartney to draw a dog calendar. He's just finished calendar #21, the 2022 edition, featuring caricatures of 130 breeds in 250 poses.
McCartney has been producing the illustrations for Purina's annual calendar for years. Submitted.
"Drawing is easy," he said. "I just let the pencil dance. The hard part is finding a new theme for each page. As always, DeDe is my inspiration and my best critic."
McCartney starts each calendar in March and intends to spend no more than two weeks drawing each month's art within the calendar, but the work often runs way overtime. Two of the 2022 months, for example, took eight weeks each.
McCartney is extremely proud of the American Kennel Club's invitation to participate in Dog NY, a fundraiser for search-and-rescue dogs like those that died from working at the Twin Towers site during the days following 9/11. Purina purchased his patriotic design "Paws for Peace" – on one of the 300 dog statues displayed around New York City in 2002 – at auction, and it's on permanent display in its corporate headquarters in St. Louis.
DeDe continues to serve as McCartney's inspiration while operating Madison Avenue Market in Sturgeon Bay. Butch combines wedding photography with catching "personality" photos of dogs, often for the Wausau Humane Society; and Stevi Lee is a designer at Google, leading a creative team designing user-experience products for Google Search.
Might McCartney now be included in that circle that surrounded Charles Schulz? Lots of people would say so. And might he retire someday?
"I guess I might," he said, "but I'll never stop letting my pencil dance!"
Mike McCartney: A Dog's Best Friend
Pet Talk: Pumpkin Puree for Your Pooch
McCartney and Company
Smaller Paintings by Ekholm on Display


text:
Phoebe Dynevor age, height and Is Phoebe related to Sally Dynevor?
By Ebenezer Jones April 6, 2022
Phoebe Dynevor is a 26 year old actress from England who is involved in television and Film industry. Her other name is Harriet.
Phoebe started acting from infancy when she appeared in the British series called Waterloo road.
She is most recognized for her appearances in the Netflix smash film Bridgerton. Phoebe is also renowned for her roles in Prisoner's Wives, Dickensian, Younger, Monroe, and The Musketeers.
She is extremely active on social media and has a sizable fan base.
Is Phoebe Dynevor actually British?
Yes, Phoebe Dynevor is a British actress born in Manchester, England in 1995.
Is Phoebe related to Sally Dynevor?
Yes, Phoebe Dynevor is the daughter Sally Dynevor (aka Sally Webster in Corrie).
Phoebe Dynevor age
Born on 17th April 1995, her age is 26 years as of 2022. She was born and brought up in Trafford, Greater Manchester, England.
Phoebe Dynevor comes from an English family with strong ties to the entertainment industry
She has a younger brother named Samuel Dynevor and a younger sister named Harriet Dynevor.
Are Phoebe Dynevor and Rege Jean friends?
Regé-Jean claimed in a recent interview with Access Hollywood that he and Phoebe were close but only romantic on-screen.
Is Phoebe Dynevor leaving Bridgerton Season 2?
Season two, like the second volume of the novel series, centered on Anthony Bridgerton's search for love. Despite the fact that season two was all about him, Dynevor reappeared for a brief appearance. Her character would periodically appear to offer love advise to Anthony, played by Jonathan Bailey.
Who is Phoebe Dynevor's mother?
Her mother's name is Sally Dynevor, and she is well known for playing Sally Webster in Coronation Street.
Who are Phoebe Dynevor's parents?
Tim Dynevor is her father's name, and Sally Dynevor is her mother's name. Her father is a scriptwriter, while her mother is best known for portraying Sally Webster in Coronation Street.
phoebe dynevor height
She stands 5 feet 5 inches tall and weighs 54 kilograms. Her brown hair is complemented by her captivating blue eyes.
Phoebe Dynevor Pete Davidson
Pete Davidson and Phoebe Dynevor are no longer together. After approximately five months together, the Saturday Night Live comic, 27, and Bridgerton actor, 26, have called it quits.
Who is Phoebe Dynevor dating?
Phoebe Dynevor isn't in a serious relationship. Until now, there had been no reports of her dating anyone.
BridgertonPhoebe Dynevor


text:
Hand of Fate gameplay video - Dealing with Bandits
By Griffin McElroy@griffinmcelroy Jul 14, 2014, 3:00pm EDT
Share All sharing options for: Hand of Fate gameplay video - Dealing with Bandits
Hand of Fate landed on Steam Early Access last week, and like many games that have utilized that launch method, it's not quite finished. Still, its combination of ideas from the deckbuilding, dungeon-crawling and action-RPG genres are a fascinating experiment to dabble in. For a glimpse of how Hand of Fate operates, check out the gameplay video posted above.
Hand of Fate is also slated to launch on PlayStation 4 and PlayStation Vita, though no release dates for those versions have been announced.


text:
Ann Eliza(beth) Sears (F)
Child of Ann Eliza(beth) Sears and George Gilson Bundy
George M. Bundy+ b. 27 Mar 1858
George M. Bundy (M)
George M. Bundy Said to have died 1882 in Denver. His wife, Mae/Mary, had two daughters AFTER he died. First MAY have been his, as she was born 6-7 months later (but WHEN might he have come back to VT to help in that matter? The 2nd, not likely his, though I need more info on exaclty when she was born. Blanche is name of daughter b. 6-7 months later, and Menta was the latter-born.
He was born on 27 March 1858 at Hyde Park, Lamoille County, Vermont, USA. He was the son of George Gilson Bundy and Ann Eliza(beth) Sears.
Child of George M. Bundy and Mary (Mae) Shedd
Mina Mae Bundy+ b. c 1879
Mary (Mae) Shedd (F)
Mary (Mae) Shedd was born on 11 May 1857 at New York, USA. She was the daughter of Abel B. Shedd and Marcia (Marsha? Fisk?) Fish.
Child of Mary (Mae) Shedd and George M. Bundy
Mina Mae Bundy (F)
Mina Mae Bundy was born circa 1879 at Hyde Park, Lamoille County, Vermont, USA. She was the daughter of George M. Bundy and Mary (Mae) Shedd.
Child of Mina Mae Bundy and Francis Gillen , Sr.
Francis James 'June' Gillen+ (living)
Francis Gillen , Sr. (M)
Child of Francis Gillen , Sr. and Mina Mae Bundy
Francis James 'June' Gillen (M)
Francis James 'June' Gillen is the son of Francis Gillen , Sr. and Mina Mae Bundy.
Child of Francis James 'June' Gillen and Evelyn Grant
Patricia Ann Gillen+ (living)
Evelyn Grant (F)
Child of Evelyn Grant and Francis James 'June' Gillen
Patricia Ann Gillen (F)
Patricia Ann Gillen is the daughter of Francis James 'June' Gillen and Evelyn Grant.
Child of Patricia Ann Gillen and George Eldridge Wells
Tammy Wells (living)
George Eldridge Wells (M)
Child of George Eldridge Wells and Patricia Ann Gillen
Mr. Bourgault (M)
Tammy Wells (F)
Tammy Wells is the daughter of George Eldridge Wells and Patricia Ann Gillen.
Mr. Grube (M)
Abel B. Shedd (M)
Abel B. Shedd was born in 1819 at Vermont, USA.
Child of Abel B. Shedd and Marcia (Marsha? Fisk?) Fish
Mary (Mae) Shedd+ b. 11 May 1857
Marcia (Marsha? Fisk?) Fish (F)
Marcia (Marsha? Fisk?) Fish was born in 1827 at Vermont, USA.
Child of Marcia (Marsha? Fisk?) Fish and Abel B. Shedd
Silence Dale (F)
Silence Dale was born circa 1780 at Bridgewater, Worcester County, Massachusetts, USA. She was the daughter of Mr. Dale and Mercie UNKNOWN.
Child of Silence Dale and William Hayden , Jr.
Susannah Hayden+ b. 1810
William Hayden , Jr. (M)
William Hayden , Jr. was born on 23 March 1782 at Braintree, Norfolk County, Massachusetts, USA. He was the son of William Hayden , Sr. and Anne Spear. William Hayden , Jr. died in 1846 at New York, USA.
Child of William Hayden , Jr. and Silence Dale
Mr. Dale (M)
Child of Mr. Dale and Mercie UNKNOWN
Silence Dale+ b. c 1780
Mercie UNKNOWN (F)
Child of Mercie UNKNOWN and Mr. Dale
William Hayden , Sr. (M)
William Hayden , Sr. was born in 1738 at Braintree, Norfolk County, Massachusetts, USA.
Child of William Hayden , Sr. and Anne Spear
William Hayden , Jr.+ b. 23 Mar 1782, d. 1846
Anne Spear (F)
Anne Spear was born on 25 October 1739 at Braintree, Norfolk County, Massachusetts, USA.
Child of Anne Spear and William Hayden , Sr.
James Bundy (M)
James Bundy married Millicent Pierce in 1794.
Children of James Bundy and Millicent Pierce
Sally Bundy b. 15 Aug 1794
Millicent Bundy b. 1 May 1796
James Bundy b. 12 Apr 1798
Fanny Bundy b. 1800
Loren (Toun) Bundy+ b. bt 1803 - 1808
Michael Gilson Bundy+ b. 1805
Millicent Pierce (F)
Millicent Pierce married James Bundy in 1794.
Children of Millicent Pierce and James Bundy
Sally Bundy (F)
Sally Bundy was born on 15 August 1794 at Hardwick, Caledonia County, Vermont, USA. She was the daughter of James Bundy and Millicent Pierce.
Millicent Bundy (F)
b. 1 May 1796
Millicent Bundy was born on 1 May 1796 at Hardwick, Caledonia County, Vermont, USA. She was the daughter of James Bundy and Millicent Pierce.
James Bundy was born on 12 April 1798 at Hardwick, Caledonia County, Vermont, USA. He was the son of James Bundy and Millicent Pierce.
Fanny Bundy (F)
Fanny Bundy was born in 1800 at Hardwick, Caledonia County, Vermont, USA. She was the daughter of James Bundy and Millicent Pierce.
Loren (Toun) Bundy (M)
b. between 1803 and 1808
Loren (Toun) Bundy was born between 1803 and 1808 at Hardwick, Caledonia County, Vermont, USA. He was the son of James Bundy and Millicent Pierce.
Children of Loren (Toun) Bundy and Fidelia Paine
Clora (Flora) Bundy b. c 1837
Carrie Bundy b. c 1839
Viola L. Bundy b. c 1842
Harriet Fidelia (or Fidelia Harriet) Bundy b. c 1846
Fidelia Paine (F)
Fidelia Paine was born circa 1808 at New Hampshire, USA. She died between 1850 and 1860 at Vermont, USA.
Children of Fidelia Paine and Loren (Toun) Bundy
Clora (Flora) Bundy (F)
Clora (Flora) Bundy was born circa 1837 at Vermont, USA. She was the daughter of Loren (Toun) Bundy and Fidelia Paine.
Carrie Bundy (F)
Carrie Bundy was born circa 1839 at Vermont, USA. She was the daughter of Loren (Toun) Bundy and Fidelia Paine.
Viola L. Bundy (F)
Her married name was Hendee. Viola L. Bundy was born circa 1842 at Vermont, USA. She was the daughter of Loren (Toun) Bundy and Fidelia Paine. Viola L. Bundy married George Whitman Hendee, son of Jehiel Preston Hendee and Rebecca Ferrin, on 23 December 1863.
Harriet Fidelia (or Fidelia Harriet) Bundy (F)
Harriet Fidelia (or Fidelia Harriet) Bundy was born circa 1846 at Vermont, USA. She was the daughter of Loren (Toun) Bundy and Fidelia Paine.
George Whitman Hendee (M)
b. 30 November 1832, d. 6 December 1906
George Whitman Hendee Was Governor of Vermont in 1870. He was born on 30 November 1832 at Stowe, Lamoille County, Vermont, USA. He was the son of Jehiel Preston Hendee and Rebecca Ferrin. George Whitman Hendee married Millissa Redding, daughter of Stevens Redding and Caroline Johnson, on 17 November 1855. George Whitman Hendee married Viola L. Bundy, daughter of Loren (Toun) Bundy and Fidelia Paine, on 23 December 1863. George Whitman Hendee was buried in 1906 at Pleasant View Cemetery, Morristown, Lamoille County, Vermont, USA. He died on 6 December 1906 at Vermont, USA, at age 74.
Jehiel Preston Hendee (M)
Jehiel Preston Hendee is the son of Roswell Hendee and Hopey Terrill.
Child of Jehiel Preston Hendee and Rebecca Ferrin
George Whitman Hendee b. 30 Nov 1832, d. 6 Dec 1906
Rebecca Ferrin (F)
Rebecca Ferrin is the daughter of John Ferrin and Hannah Jacobs.
Child of Rebecca Ferrin and Jehiel Preston Hendee
Mary Louise Watts (F)
Rebecca UNKNOWN (F)
John Ferrin (M)
Child of John Ferrin and Hannah Jacobs
Rebecca Ferrin+ (living)
Hannah Jacobs (F)
Child of Hannah Jacobs and John Ferrin
Roswell Hendee (M)
Child of Roswell Hendee and Hopey Terrill
Jehiel Preston Hendee+ (living)
Hopey Terrill (F)
Child of Hopey Terrill and Roswell Hendee
Millissa Redding (F)
Millissa Redding was the daughter of Stevens Redding and Caroline Johnson. Her married name was Hendee. Millissa Redding married George Whitman Hendee, son of Jehiel Preston Hendee and Rebecca Ferrin, on 17 November 1855. Millissa Redding died in 1861.
Stevens Redding (M)
Child of Stevens Redding and Caroline Johnson
Millissa Redding d. 1861
Caroline Johnson (F)
Child of Caroline Johnson and Stevens Redding
Hannah Brisco (F)
b. 25 February 1743 or 1744, d. 23 April 1803
Her married name was Root. Hannah Brisco One of the children of Hannah and Levi was William Brisco Root, b. 1774, Strafford, VT. She was born on 25 February 1743 or 1744 at Woburn, Middlesex County, Massachusetts, USA. She was the daughter of William (Briscoe\Briscow) Brisco and Dinah Cutting. Hannah Brisco married Levi Root on 30 January 1770 at Orange County, Vermont, USA. Hannah Brisco was buried in 1803 at Kibling Cemetery, Strafford, Orange County, Vermont, USA. She died on 23 April 1803 at Strafford, Orange County, Vermont, USA.
Child of Hannah Brisco and Levi Root
William Brisco Root+ b. 3 May 1774
Levi Root (M)
b. 14 September 1740, d. 23 August 1820
Levi Root Children of Levi and Hannah, from genealogical database of Sue (Root) Waterman:
Levi Root b: 7 APR 1772 in Strafford, Orange County, Vermont
William Brisco Root b: 3 MAY 1774 in Strafford, Orange Co., Vermont
Orning 'Ornon' Root b: 29 MAR 1776 in Strafford, Orange County, Vermont
Hannah Root b: 5 APR 1778 in Strafford, Vermont
Cyrus Root b: 25 SEP 1780 in Strafford, Vermont
King Root b: 24 AUG 1782 in Strafford, Vermont
Richard Root b: 1784 in Stafford, Orange Co., Vermont
Molly Root b: 1786 in Strafford, Orange Co., Vermont. He was born on 14 September 1740 at Hebron, Tolland County, Connecticut, USA; Perhaps b. 1748? According to burial informatino, he was 72 when he died in 1820, that would make his birth year @1748. He married Hannah Brisco, daughter of William (Briscoe\Briscow) Brisco and Dinah Cutting, on 30 January 1770 at Orange County, Vermont, USA. Levi Root was buried in 1820 at Kibling Cemetery, Strafford, Orange, Vermont, USA; When buried, aged 72, Revolutionary War soldier (comments from Kibling Cemetery research). He died on 23 August 1820 at age 79.
Child of Levi Root and Hannah Brisco
James Cutting (M)
James Cutting Children of James and Mary, according to Karen Landry:
Dinah CUTTING b: 21 Jun 1718
Jonathan CUTTING b: 12 Jan 1688
David CUTTING b: 12 Jan 1688
Hezekiah CUTTING b: 17 Feb 1689. He was born on 26 January 1648 at Watertown, Middlesex County, Massachusetts, USA.
Child of James Cutting and Mary Nobles
Dinah Cutting+ b. 21 Jun 1718, d. 26 Aug 1797
Mary Nobles (F)
Child of Mary Nobles and James Cutting
Hamilton West (M)
Hamilton West Likely born in Troy, Vermont. Only one by exact name in 1850 is in Lenox, Madison Co, NY, son of Lucius West, and appears with him in later records. Similary, only Hamilton b. @1847, VT in 1850 census was a Hamilton Robinson, son of Elijah Robinson (Methodist Minister). However, he also appears in later records of the Robinson family. IF Hamilton WAS enumerated in 1850 Census year, it was NOT as Hamilton! He was born circa 1847 at Vermont, USA. He was the son of Erastus West and Maria Marsh.
Isaac Chamberlin (M)
b. 14 April 1784, d. 25 July 1863
Isaac Chamberlin Children of Isaac and Polly:
Stephen Harriman Chamberlin: b. October 23, 1807 , in Strafford, Orange Co., VT.
George Clinton Chamberlin: b. April 29, 1809 , in Strafford, Orange Co., VT.
Caroline Chamberlin: b. August 27. 1810, in Strafford, Orange Co., VT.
Mary Chamberlin: b. abt. 1818, in Lisbon , Harmony Twp,, Clark Co., OH.
Walter Norton Chamberlin: b. May 28, 1823 , in Lisbon , Harmony Twp., Clark Co., OH.
Sarah C. Chamberlin: b. 1825, in Lisbon , Harmony Twp,, Clark Co., OH. He was born on 14 April 1784 at Strafford, Orange County, Vermont, USA. He was the son of Elias Chamberlin and Elizabeth 'Betsy' (Mary) Gillet. Isaac Chamberlin married Polly Harriman, daughter of Stephen Harriman and Lucy Story, on 6 June 1805 at Tunbridge, Orange County, Vermont, USA. Isaac Chamberlin died on 25 July 1863 at Lisbon, Harmony Township, Clark County, Ohio, USA, at age 79.


In 2011, Oregon's real GDP grew by 4.7 percent, which ranks 2nd best among all states, trailing only North Dakota. The two graphs below illustrate real GDP growth in Oregon and the US and also Oregon's growth ranking among all states over the 1998-2011 period. Note that a ranking of 1 is the best or strongest growth.
The above is calculated in terms of total real GDP, however a similar pattern emerges when calculating the changes on a per capita basis. Oregon's real per capita GDP growth of 3.8 percent in 2011 ranks 3rd best, while the state's growth of 9.5 percent in 2010 ranked the highest among all states and DC.
In terms of industry level detail, as seen in the table below, Oregon's growth was led by durable goods manufacturing in both 2010 and 2011. The table shows annual growth by industry for both 2010 and 2011.
Finally, the last graph illustrates all states' growth in real GDP for 2011.
One final thought. This data is all history at this point. We knew Oregon would bounce back in terms of GDP during the recovery given our underlying industry structure. This has largely come to pass and the state experienced ok employment and wage gains last year. The challenge, as always, is translating this GDP growth into local income.
UPDATE: Based on some further discussions, I thought the following graph my be a useful addition. This shows Oregon's per capita GDP ranking on a 5 year and 10 year growth basis. During the early 1980s Oregon ranked the worst in the country (believable), during the late 1990s following the tech ramp up, Oregon ranked the best (believable) and then during the 2000s, Oregon's growth ranked in the top half or top 15 of all states (again, I'd argue, believable).


text:
Bauma 2013 channel
Latest news from exhibitors
Liebherr-LTR 1220 extends the Range of Telescopic Crawler Cranes
by Liebherr
The 2013 Bauma will be the first trade fair appearance of the new telescopic crawler crane LTR 1220. Liebherr is extending its telescopic crawler crane product range by this 220-tonner.
The new LTR 1220 offers a maximum load capacity of 220 tonnes and a telescopic boom 60 metres long, which means it out distances any telescopic crawler cranes offered by the competition both with regard to load capacity and boom length. The Liebherr series of telescopic crawler cranes now consists of the LTR 1060 with a maximum load capacity of 60 tonnes, the 100-tonner LTR 1100, the new LTR 1220, and the 1,200-tonne LTR 11200 heavy lift crane with the narrow crawler travel gear, which can travel fully equipped on narrow trackways and so making it the ideal choice, for example, for economical operations in the windfarm sector.
High flexibility and good off-road capability
The LTR 1220 combines the advantages of a telescopic crane with those of a crawler crane. The crawler travel gear provides excellent off-road capacity and superb manoeuvrability, as well as allowing the crane to travel under full load. The advantages of a telescopic crane over a lattice boom crane are the short set-up times, easier transport, and the variability of the boom system. The telescopic boom is extended or retracted fully automatically and rapidly to the desired length, allowing it, for example, to pass easily beneath obstacles. The LTR 1220 also provides the advantage that heavy loads can be telescoped with the boom, which in principle is not possible with lattice boom cranes.
And because a crawler crane, unlike a mobile crane, does not need to be supported, it can be rapidly set up on site and can go into action immediately.
Long boom, high performance, wide range of applications
In terms of design, the 60 metre telescopic boom is derived from the tried and trusted LTM 1220-5.2 mobile crane, and with the Liebherr Telematik telescoping system it can be extended fully automatically to the desired length. The telescopic boom can be extended by a biparted swing-away jib, 12.2 to 22.2 metres long, which can be lengthened still further by means of two 7-metre lattice sections. As well as this, a 7-metre lattice section is also available, which is fitted between the telescopic boom and the swing-away jib, in order to raise the connection point of the jib, capable of being luffed by up to 45°. As an option, the swing-away jib can also be adjusted hydraulically. Under full load, the jib can be moved between 0° and 45°. Operators of the LTM 1220-5.2 mobile crane can also use existing equipment elements on the new 220-tonne telescopic crawler crane.
The travel gear of the LTR 1220 can be hydraulically telescoped out from the crawler carrier width of 4.5 metres to the intermediate width of 5.88 metres or the maximum width of 7.25 metres. Load tables are provided in the LICCON control system for all three crawler widths. On uneven ground the LTR 1220 can even operate with side inclination angles of up to 4°, likewise secured by the LICCON control system.
The new 220-tonne Liebherr telescopic crawler crane is powered by a seven-cylinder in-line Diesel engine, which provides a capacity of 230 kW/312 HP and torque of 1300 Nm. The hoist gears provide a high cable pull of 105 kN, which means rapid operational sequences can be ensured.
One main area of use for the LTR 1220 telescopic crawler crane is the installation of prefabricated components. With an erection jib 3.4 metres long and the second hoist gear, installation work can be carried out in two-hook operation. As well as this, it is ideally suited as an auxiliary crane in the installation of windpower systems, and for the handling of windpower components. The new LTR 1220 also provides major advantages on long-term construction sites in the energy sector or on infrastructure projects.
Economical transport and assembly
The basic machine, with crawler carriers one metre wide, weighs in at about 90 tonnes and has a minimum overall width of 5.01 metres. Without crawler carriers, the unit weighs about 54 tonnes, including the jack-up cylinders and the transverse beams, and is only 3 metres wide and 3.2 metres high. By removing the transverse beams, the weight can be reduced still further, to about 47 tonnes, which means that economical transport is guaranteed even in areas with restrictive weight regulations. The crane is capable of assembling itself. The basic unit is driven to the site on a low-loader, and then supports itself on the jack-up cylinders. Central ballast, transverse beams, crawler carriers, and superstructure ballast are installed without any need for an auxiliary crane.
The 1,000 mm wide crawler tracks are fitted as standard with two-bar crawler shoes. Two suspended blocks, each weighing 10 tonnes, are secured to the crawler centre section to serve as central ballast, and maximum ballast on the slew superstructure is 70 tonnes.
Modern crane control system with remote operation
The LTR 1220 makes use of the new Liebherr LICCON2 crane control system. In comparison with the previous system, this offers even greater operating ease and convenience, thanks to additional application possibilities. For set-up functions, a mobile multifunctional operating and display unit is provided, the Bluetooth-Terminal, "BTT". This allows, among other things, for the actuation of the jack-up cylinder and the adjustment of the track width of the crawler carriers to be adjusted quickly and very conveniently.
The new LICCON2 Liebherr mobile crane control system also offers the possibility of a simple, and therefore economical, extension to complete radio remote control of the crane. All that is needed in the crane, apart from the appropriate software, is a console with two master switches, into which the existing BTT is plugged. The console can also be used for other cranes with LICCON2 control and which are programmed for radio remote control.
With the remote control on the LTR 1220, as well as the complete operation of all the crane movements, the crawler chassis travel can also be controlled. The unrestricted view of the crane and the load mean that safety and convenience of operation can now be improved even further.
Wolfgang Beringer
Telephone: +49 7391 502-3663
Fax: +49 7391 502-3403
E-mail: Wolfgang.Beringer@Liebherr.com
Internet: www.Liebherr.com


text:
Ubisoft Restores Some of Those Deactivated Far Cry 4 Keys
By Steven Bogos Legacy Author February 4, 2015
Good news! If you've played your copy of Far Cry 4 in some capacity, Ubisoft will restore the key.
Last month, we ran a story about Ubisoft deactivating a bunch of Far Cry 4 CD Keys that turned out to be purchased using stolen credit cards, and then re-sold to third party retailers. Widely regarded as a "dick move", the real losers in this scenario were the customers, who had no way of knowing that the keys they were buying were stolen. Well now there's some good news, as Ubisoft has graciously decided to re-activate any deactivated copies of the game that have been played in some way.
"After further investigation into the matter of keys that were fraudulently purchased on EA's Origin store, we are reinstating keys for consumers who already had successfully activated and started playing the games," an Ubisoft representative told Game Informer. "Any remaining fraudulently obtained and resold keys have been deactivated."
"We are working with EA to prevent situations like this from happening again, and we will continue to deactivate keys that are found to be fraudulently obtained and resold," the representative continued. "We strongly recommend that players purchase keys and downloadable games only from the Uplay shop or trusted retailers."
So, if you had your key yanked from you after already having booted up the game, you can probably expect it to be re-instated in the near future, but if you'd bought a key and hadn't gotten around to playing the game yet, you're out of luck.
It's nice to see Ubisoft come to its senses on this one, though it may be another case of "too little, too late".
Source: Game Informer
Mika and the Witch's Mountain Brings Kiki's Delivery Service-Like Gameplay to Kickstarter
Amnesia: The Bunker Locks Down May Release Date for Its Sandbox Horror


Paul Carpenter Associates, Inc. (PCA) provides noise monitoring services backed by decades of experience. PCA is proud to serve its clients and surrounding communities while conducting each monitoring assignment with integrity.
At the core of PCA's renowned noise monitoring services are its field monitoring staff and Noise Control Officers (NCOs) who, after undertaking a comprehensive training program, are highly proficient in the deployment of advanced noise monitoring equipment, including appropriate positioning and spatial awareness, knowledge of applicable noise codes and ordinances, propensity for safety, and communal empathy in order to complete projects with reliable and accurate results.
PCA also provides support services for highway-related noise monitoring projects which includes traffic volume and vehicle classification counts as well as speed data collection. Further, PCA's exemplary IT staff develops project-specific data management tools for organizing and efficiently processing large data sets.


text:
Hendrick Automotive Group
RETAIL (NON-INTERNET/MOBILE) | Auto
hendrickauto.com
About Hendrick Automotive Group
Hendrick Automotive Group is the private automotive dealership group, provides new and pre-owned vehicles, financing, warranties, automobile parts, accessories, service and body repair. It is based in Charlotte, North Carolina.
Hendrick Automotive Group Headquarter Location
6000 Monroe Road
Charlotte, North Carolina, 28212,
Latest Hendrick Automotive Group News
Lockout hurts Braves' chance to cash in on championship
JC Thu., Dec. 30, 2021timer4 min. read JOIN THE CONVERSATION CHICAGO (AP) — World Series champions for the first time in 26 years, the Atlanta Braves were all set to cash in. With young stars like Ronald Acuña Jr., to go along with a swanky ballpark and surrounding entertainment district, they had everything in place. Then a storm rolled in, and they had to pull a tarp over some of their party plans. Perhaps no team was hurt more than Atlanta when Major League Baseball locked out its players on Dec. 2. The move put the start of the 2022 season in jeopardy and scrubbed Acuña and company from the Braves' business plans — for now. The afterglow of a championship, especially the end of a drought like the one Atlanta experienced , is traditionally quite lucrative for teams, going beyond merchandise and ticket sales to strengthening relationships with partners and finalizing new sponsorship deals. But baseball's labor strife increases the difficulty for the Braves when it comes to making the most of the opportunity. "A lot of it is kind of using that moment to grow your fan base and just elevate the way people think about your organization and perceive it," said Brian Gainor, the vice president of innovation for 4FRONT, a sports marketing firm. Messages were left by the AP seeking comment from Atlanta. There was no response, but the franchise has been keeping some heady company since the final out of its fourth World Series title. The Braves hosted Chelsea FC from soccer's Premier League in a meeting of champions in early December. Mascots from each club palled around on the field at Truist Park and posed for pictures with The Commissioner's Trophy and Chelsea's 2021 Champions League trophy. "Wouldn't have been a trip to Atlanta without visiting the champs," Chelsea FC tweeted from its U.S. account. It was a savvy business connection for each club. Chelsea has more than 100 million followers combined on its social media channels, while Atlanta has a multistate following in the U.S. — particularly in the South — that dates to the days when its games were broadcast on TBS. The stop was part of a tour for the Champions League trophy that also included "The Late Show with Stephen Colbert," New York's Empire State Building, a Chicago Bulls home game and Space Center Houston — part of Chelsea's effort to turn its title into substantive business growth. "U.S. fans love winners. They love U.S. winners. They love international winners. Same with international fans," Gainor said. "So it really is the best opportunity you're ever going to have to capture the attention of fans around the world, but you've got to have a plan there to monetize those fans." The best teams start planning for championships long before they win it all, Gainor said, and they take a multiyear approach that rallies every part of the organization to the effort. Communication, both internally and externally, also is key. Hendrick Automotive Group attributed dramatic increases in its website traffic to its sponsorship of Kyle Larson, culminating with his first NASCAR Cup Series championship in November. The success prompted the company to activate or increase its marketing efforts in some U.S. markets. "Kyle's able to give us that point of differentiation from the other dealer groups of, 'Hey, this is a reason to give Hendrick a consideration,'" said Brian Johnson, vice president of marketing at Hendrick Automotive Group. "And we're just really scratching the surface. ... This was kind of Year 1. We didn't really get going on the program until June or July." Whenever baseball finalizes a new labor deal, Atlanta — like all champions over the past couple years — will have to contend with COVID-19 when it comes to its business plans for its title. Social media content and experiential marketing are two effective monetary drivers for newly crowned teams, but access to players has been tightly controlled because of the pandemic. "The challenge that you have with all your content right now is the ability to be with your players and film your players and create content with your players because of the protocols that are in place," Tampa Bay Lightning CEO Steve Griggs told the AP. Tampa Bay won the Stanley Cup each of the past two years. But it played the 2020 playoffs in a bubble in Canada, and Amalie Arena was mostly empty for much of last season because of pandemic restrictions. When it comes to the Lightning's recent business success, Griggs said it's hard to separate what comes from their consecutive titles and what is a result of their previous work with sponsors. "A number of those partners came on board and wanted to spend their dollars with us not just because we won the championship, but because of how we treated our existing partners during the pandemic in both (of) these challenging seasons," Griggs said. The pandemic has forced some teams to take a more creative approach, especially with their content. With restrictions on player access, they have turned their focus to their fans and communities. They also have been holding virtual events. "It forced them to create a new playbook or go about things in a new way," Gainor said. "If it wasn't for COVID, a lot of teams would still be celebrating championships doing things the way that they've always done it." ___ ___ SHARE:
Larson out front as face of Hendrick charitable initiatives
Penske, Hendrick tops in online reputation study
Used Car Market Size to Worth Around US$ 2,120.5 Bn by 2027
Work Truck Solutions Expands Relationship with Hendrick Automotive Group
Hendrick Automotive Group Web Traffic
Page Views per User (PVPU)
Page Views per Million (PVPM)
Reach per Million (RPM)
Hendrick Automotive Group Rank


text:
Iran Aseman Airlines Flight 746 was a Fokker F-28 flight of Iran Aseman Airlines operating on the Isfahan–Tehran route in Iran. The flight crashed near the town of Natanz on October 12, 1994, killing all the passengers and crew members.

Crash
On 12 October 1994, the flight took off from the Isfahan International Airport destination to Mehrabad International Airport with 59 passengers and seven crew on board. About 35 minutes after take off, both engines lost power and shut down due to contaminated fuel. The aircraft went into an uncontrolled descent; and 47 seconds later Flight 746 crashed into the side of a mountain and exploded. The wreckage was found over an area of  near the town of Natanz. All 59 passengers and 7 crew died in the crash.

References

External links

 ()

Aviation accidents and incidents in 1994
Accidents and incidents involving the Fokker F28
Aviation accidents and incidents in Iran
Airliner accidents and incidents caused by engine failure
History of Isfahan Province
1994 in Iran
October 1994 events in Asia

redpajama_set_name: RedPajamaWikipedia


text:
An N64 classic 20 years later: The Making of Turok Dinosaur Hunter
By Anthony John Agnello 28 February 2017
(Image credit: Acclaim)
Turok: Dinosaur Hunter was released on Nintendo 64 20 years ago this week, and it remains an emblematic if not widely played game for the classic console. As one of the very first N64 games announced back in '94, Turok was both highly anticipated and deeply weird. A cutting edge first-person shooter on a home console (excitement!) based on a 1950s comic book series acquired by a second rate comic publisher in the early '90s (weird!). After two decades, lead designer David Dienstbier is looks back on the difficult, experimental nature of making an N64 game like Turok.
Anthony John Agnello
I've been playing games since I turned four in 1986, been writing about them since 1987, and writing about them professionally since 2008. My wife and I live in New York City. Chrono Trigger is my favorite game ever made, Hum's Downward is Heavenward is my favorite album, and I regularly find myself singing "You Won't See Me" by The Beatles in awkward situations.


We've added a new authentication option to your Scaledrone channels. The new option is half-way between the current no-authentication and full-authentication options.
The new authentication option requires users to authenticate themselves for publishing messages yet allows them to subscribe to data streams freely, without needing to authenticate. This is a perfect fit when you are using Scaledrone for one-way data streaming.
To enable the new authentication option go to your channel settings page and choose Require authentication for publishing.


Have you heard about the annual Low-Carb Cruise that our host Jimmy Moore helps organize each year as the preeminent event for the low-carb community? They just completed their eleventh one in 2018 with lots of incredible guest speakers who are the leading voices for carbohydrate restriction and ketogenic diets, including people like Dave Feldman, Dr. Eric Westman, Dr. Steve Phinney, Tom Naughton, Dr. Ken Berry, Dr. Ann Childers, and many more! Today's featured lecture is from Nutritional Therapy Practitioner, Certified Personal Trainer, and real food advocate Shawn Mynar from Well-Belly.com.


If you are considering turning back the clock with facelift, you have likely thought about the possibility of scarring. Some scarring after any cosmetic surgical procedure is inevitable. But as long as you work with a qualified surgeon and take proper care after your procedure, your scars should heal and become nearly invisible. Here, Dr.