2016-08-28

Marmot and flowers


The flowers were already there. Marmot tasted some. That's how marmots appreciate flowers.

2016-08-16

Рамочки, скобки и кубиклы

Уж как мы когда-то смеялись над любовью UI дизайнеров к рамочкам и зонам, что почти и не заметили, как рамочек и зон не стало вообще. Современные дизайнеры отделяют элементы пустым пространством, их любовь к пустому пространству уступает только нелюбви к информационной насыщенности и легко превышает размеры экранов, благо виртуальное пространство за экраном не ограничено, а его прокрутка стала теперь основной операцией. Разное количество экранной пустоты группирует элементы, визуальное представление которых сведено к минимуму, к слову или иероглифу, никак не различая их типов, которые теперь определяются по контексту.

В языках программирования, где вместо рамочек были скобки, такая же тенденция. Старая идея о свободном форматировании, когда пробелы не важны, но супер-важны скобки и пунктуация, в современных языках заменилась на использование пробела, как важного синтаксического элемента. Из казалось бы уже стандарного С-подобного синтаксиса новое поколение выкидывает все скобки, заменяя их любимым теперь пробелом. Явное различение типов тоже убираются даже из языков со строгой статической типизацией. Типы теперь понятны по контексту. Python, Ruby, Coffee-script, SWIFT, продолжайте список сами.

Новому поколению дизайнеров и программистов тесно в узких экранных рамках, скобках, кубиклах и офисах. Убрать все перегородки и знаки различия! Даешь пустое пространство! В конце концов, объекты вселенной тоже разделены только разным количеством пустоты. Ну и бог с ними!

2016-07-20

Russian

В результате обещания писать только на американском, мотивация писать упала в ноль. Проблема в том, что в английском я не могу выражать полутона, интонации, эмоции. И писать на нем мне скучно. Я думал, что практика языка добавит мотивации, но оказалось, что нет, не добавила. Так что оставлю за собой право писать здесь на любом языке, а сам блог - попыткой не забыть русский.

Появилась идея бросить копировать в Live Journal. Старый скрипт, который копировал из Blogger работает только под Windows, и это последний скрипт, из за которого я запускаю вручную виртуальную машину с Windows XP. Все остальное работает автоматически. Читать в LJ кому-нибудь важно и если да, то почему?

2016-05-23

Disabling Windows 10 automatic upgrade

If you are wondering how to disable it, there is a KB article:

https://support.microsoft.com/en-us/kb/3080351
To block the upgrade to Windows 10 through Windows Update, specify the following registry value:

Subkey: HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
DWORD value: DisableOSUpgrade = 1

Also there is a "Never10" app with some technical details.

I haven't tried myself any of it (as I only use server version of Windows), but colleagues claim that it works.

2016-05-19

bnr.js

As I mentioned already, I use node.js for scripting. The same scripts work on OsX, Linux and Windows. Also, its fast, stable enough and somehow interesting. Microsoft is investing into it too: new VS Code editor is written on node.js.

So, besides many build scripts, sync scripts and other scripts my home computing relies on, I wrote this simple one, which someone may find useful. It generates comment headers like that:

//# Comment ---------------------------------------
//                                             #
//   ###                                       #
//  #   #   ###   ## #   ## #    ###   ####   #####
//  #      #   #  # # #  # # #  #   #  #   #   #
//  #      #   #  # # #  # # #  #####  #   #   #
//  #      #   #  # # #  # # #  #      #   #   #
//  #   #  #   #  # # #  # # #  #      #   #   #
//   ###    ###   # # #  # # #   ####  #   #    ###

The script detects a special line, starting with "//#" and extends (or replaces) the following comment section with the same "banner"-style text. You can process source files, it will update all the comments in them. Original text will be saved under ".sav" extension.

Why would you need that? If you are using an editor which shows small preview of entire file, like Sublime or recent Visual Studio, you can actually read that banner in that small preview. So, if you work with long files, its easier to navigate between code sections just scrolling the preview up to the readable marker.

Also, you can make a different form of banner, like on screenshot, which only works when you have Unicode fonts with block characters, like on Mac computers. Windows fonts do not have this range, usually, but, there is a free font "DejaVu Sans Mono", which displays that Unicode range correctly. In this case you have 2x2 block pixels per character, so the text is twice more compact.

The script can be downloaded here. Obviously you would need node.js to run it.

Usage:
  • node bnr.js [ -a | -u | -n ] [-0 | -1 | -2 | -3 | -4 ] -f file.c file.h -- replace comments in two files
  • node bnr.js [ -a | -u | -n ] [-0 | -1 | -2 | -3 | -4 ] text -- print text
  • node bnr.js [ -a | -u | -n ] [-0 | -1 | -2 | -3 | -4 ] -- print character set
Options:
  • -a -- Ascii mode, '#' per pixel
  • -u -- Unicode block mode
  • -n -- remove banners from comments
  • -0 -- default font (my old "Forecast")
  • -1..4 -- other fonts

2016-05-11

Chehalis-Western Trail



Chehalis-Western Trail is a result of yet another relatively recent rail-to-trail conversion, where its used to be "Chehalis Western Railroad". The trail name is misleading a little, it is not close to Chehalis town, but rather to Lacey, north of Olympia.

The trail is 22 miles, but it is connected to 15 mile Yelm-Tenino Trail. On west side it ends at Woodard Bay, a quiet and peaceful place.

In Lacey we couldn't miss a bakery and a cup of tea.



"Scotch broom" is non-native and considered invasive here, but I like it, its so colorful. Without it the place would be occupied by blackberry anyway.



What I like about that trail is it goes on nice green areas, not along a highway, as often. We rode 52 miles that day.



2016-05-04

~~~

I need to improve my English writing skills and start actually thinking in English. It appears, that like computer, our mind has two indexes: from a word to a meaning and from a meaning to a word. Like SQL relations or hash-tables are unidirectional, so is our mind. If you are reading text understanding all the words, it doesn't mean that you will be able to find all these words when speaking. You will need to fill reverse indexes by exercise.

I've installed Text Customizer Chrome extension and added the following rule:
  • replace regular expression "[А-Яа-я]+" by "~".

It replaces all Russian words by "~". I can see that the text is in Russian, but I don't see the text itself. Good. I'll use it for a while to avoid distraction by Cyrillic on screen. It immediately returns thinking back to a bitten path.

Also I'm not going to write in Russian in that blog for a while. Sorry for that. Maybe I'll try writing in English.

2016-04-17

Nick Pitera

Нравится мне это видео. И голос у Nick Pitera приятный, хотя и необычный. Когда он поет в два своих голоса, мужской и женский, получается дуэт, но очень синхронно, два разных человека не могут петь настолько синхронно, мне кажется.

Nick работает аниматором в Pixar, пение - хобби. Известность приобрел после серии роликов на Youtube под названием "One man...", в которых исполнял и мужские и женские партии.

2016-03-27

Delicate Arch



Arches National Park - фантастическое место. Порталы в иные миры.

Нижнее фото - традиционная точка съемки, а верхнее снято точно с обратной стороны, со скалы, видимой через арку на нижнем фото.

2016-03-01

Web 2016

Сайты стали невообразимо тяжелые. Мой iPad стал уже практически бесполезным для чтения сайтов: не хватает памяти.

Когда-то я выбирал кафетерий для ланча просматривая сайт со списком меню. Сейчас это уже почти невозможно. Специально только-что померил: заглавная страница внутреннего сайта Dining со всякими ненужными ссылками и стоковыми картинками "мы пахали" грузится 20 секунд, делая 310 соединений, загружая 1M данных. Страничка меню одного кафетерия, простая и текстовая, грузится 12 секунд, делая 165 соединений. При этом грузятся тонны json и javascript, образующие тот Office 365, на котором все это и построено. Один кафетерий посмотреть можно, найти что-то перебирая десяток - терпения уже не хватает.

Заглавная страница этого блога в Blogger грузится три секунды, делая 110 соединений, загружая 200K, большая часть из которых - что-то гугловское, внутреннее устройство платформы. Но основная часть грузится за первую секунду, и сайт доступен сразу, а остатки догружаются в фоне.

Фейсбук - порядка 170 запросов, 300K данных, грузится за 5 сек, и потом продолжает делать запросы, увеличивая объем загружаемых данных до мегабайт.

Заглавная страница tolkov.com грузится 0.7 сек, 22 запроса, 37K данных.

Я посмотрел на разные известные сайты, параметры 100-200 запросов, единицы секунд загрузки, единицы мегабайт данных, занимая в памяти порядка 300M - сейчас примерно на всех сайтах, за редким исключением.

Значения меньшие на порядок дают старые технологии, простой HTML, без новых навороченных фреймворков. Но главное, маленькие сайты - результат работы одного человека, типа меня. Сотни человек пишут много кода, требуют тяжелых фреймворков для согласования их активностей. Примерно то же, впрочем, справедливо и для программирования вообще.

Я недавно попробовал Visual Studio 2015, оказывается система уже медленнее, чем клавиатура. Курсор в редакторе не успевает бежать вниз с обычной скоростью, если держать кнопку со стрелкой, затыкается на каждой третьей строчке. Выделить большой блок текста курсором, что всегда было простой задачей, становится испытанием нервной системы. В результате вернулся в VS2008, глючный, но терпимый. Молодые коллеги ничего такого не замечают, пользуются новой VS вовсю. То ли выделяют текст мышкой, то ли у них нервная система устойчивее. И на Dining они тоже не заглядывают, идут толпой в ближайший кафетерий. Вероятно, желудок устойчивее тоже.

2016-02-22

Discovery Park, Seattle


Давно не были в этом парке. Первый раз приехали туда в 2000 году, в первый год пребывания в штатах. А потом было как-то недосуг. А тут вдруг оказалось, что удобно путешествовать по Сиэтлу на велосипеде, значительно удобнее, чем на машине.

За эти годы военный городок расформировали и исторические домики (первая фотка) продали за жуткие деньги желающим. Маяк, похоже, на реставрации. Сверху пролетели военные истребители, не иначе, готовятся к традиционному весеннему воздушному шоу. Последняя фотка - домики прилегающего к парку богатенького района "Магнолия".

Погода стоит совсем весенняя, цветы распускаются, деревья зеленеют. Зима у нас в Сиэтле дождливая, но не долгая. Что интересно, местная растительность, кроме тех, которые вечнозеленые, клены, например, не торопится зеленеть, знает про прихоти местной погоды. А южные растения зеленеют вовсю.

2016-02-03

Короткие волны



Первый радиоприемник был куплен папой еще до моего рождения. Это была "Балтика", c американскими лампами и громкоговорителем с электромагнитом. К нему прилагался проигрыватель грамофонных пластинок, а так же толстая инструкция, популярное введение в радиотехнику, с принципами работы радио, с картинками как делать антенну и заземление.

Я полюбил эту штуку с раннего детства, любил крутить диск настройки, слушать эфир, наполненный голосами на разных языках, непонятной морзянкой и загадочными шумами. Для меня тогда это было некоторое окно в мир, неоспоримое доказательство, что этот мир существует, вот его звуки. Как окружающая действительность ни пыталась ограничить мир окружающей обыденностью, можно было включить приемник и глядя на светящуюся шкалу и зеленый дрожащий огонек "магического глаза", пробежаться по странам и континентам. Я помнил где какие станции, где они на шкале, и саму шкалу помнил почти наизусть, по памяти переводя метры в мегагерцы.

Вот эта шкала:



Позже у меня были и другие радиоприемники, но они такой ностальгии не вызывают.



Став постарше я стал слушать "вражеские голоса", которые были интересны, как альтернативный источник информации, примерно как Интернет сейчас. Я не любил иммигрантскую "Свободу" за ее антисоветский пропагандизм, "Голос Америки" за высокомерность, предпочитая строгую и информативную "BBC". Не то, чтобы я был каким нибудь диссидентом, многого я вообще тогда не понимал. Просто хотелось быть частью мира, а не улицы. Мне нравился информационный и аналитичный стиль подачи новостей, вместо пустопорожней пропаганды программы "Время". Из советских программ я слушал в основном радиоспектакли по всяким книжкам.

В 90-е я купил карманный Tecsun. Хороший приемник, служил мне верой и правдой на всех турбазах, утоляя жгучий информационный голод. Его я взял с собой в штаты. До сих пор работает, хотя регулятор громкости немного стерся.

В штатах, в самом начале, я попробовал послушать этот Tecsun и с удивлением обнаружил, что на SW (коротких волнах) нет почти ничего. Я тогда списал это на низкую чувствительность. Кроме того, я не понимал тогда англиский достаточно хорошо, чтобы слушать быструю речь среди шумов и помех, поэтому положил приемник в шкаф и забыл про него.

И вот, в новогодние праздники мне снова захотелось радио, крутить диск настройки, смотреть на индикатор, находить далекие станции, ощутить присутствие мировой цивилизации, а не окружающей обыденности. Я поехал во Fry's и купил Grundig. C цифровым синтезатором частоты, непрерывным SW диапазоном, возможностью принимать SSB.

Ну что я могу сказать... За эти годы SW умер окончательно. Пустота. Шумы. Цивилизация радио сгинула и ушла в свои виртуально-телефонные глубины. На одной единственной частоте озабоченный голос ежедневно несет какую-то религиозную ахинею. И все. Остальное заполнено ровным шумом.

Зато FM полон музыки и рекламы, а MW - рекламы и новостей. Ну и ладно. Будем слушать местное. А весной попробую протянуть длинную антенну, может Австралию поймаю. Или оставлю Grundig музейным предметом ушедшей эпохи радио, раз Балтику не удалось привезти.

P.S. На этом сайте можно посмотреть частоты и местоположение SW станций: http://www.short-wave.info/

P.P.S. Бывают коротковолновые адаптеры для компьютеров, на принципе "software radio". Интересным свойством является возможность записи широкой полосы эфира, из которой уже потом обработкой сигнала можно выделить отдельные станции.