Годы испытательного срока
Новые подробности о компании Apple опубликовал в одном из интервью Адам Лащински (Adam Lashinsky), автор книги Inside Apple… По его словам, инженеры разного уровня подготовки, и обладающие разным опытом, подвергаются многократным собеседованиям в несколько этапов. Период интервью порой длится до 9 месяцев…
Также, инженеры могут годами работать над продуктами и проектами, которые оказываются фальшивыми, ненастоящими. Такая проверка проводится с единственной целью — изучить характер и честность новичков, а также их лояльность к новому работодателю. Если за годы испытательного срока информация о якобы революционном продукте не попадет в прессу, то таким сотрудникам можно доверять
Пишет «Макрадар». Годы испытательго срока, только вдумайтесь! Каково это в один прекрасный момент узнать, что то, куда ты вкладывал душу несколько лет, никому не нужно и это был «испытательный срок»?
Эй, Эпл, эй, Эпл?
Если вам кажется, что это видео насмешка над Виндоуз, то с моей точки зрения всё иначе. Автор (невольно, так я думаю), подчеркнул тут одну из особенностей «Мака» — при загрузке тот сначала показывает скриншот последнего состояния рабочего стола.
Принято считать, что для среднего пользователя это создаёт иллюзию более быстрой загрузки системы. Не знаю, меня это раздражает.
Мне приходится шевелить курсором, чтобы понять действительно ли система уже загрузилась или только «притворяется», ещё плохо, что на часах неправильное время, а заряд аккумулятора не имеет ничего общего с реальностью.
В общем, в видео именно это и показано — «Виндоуз» несколько раз окликает «Мак», прежде чем тот отвечает.
%u → UTF-8
Столкнулся сегодня с задачей — надо сконвертировать пришедшую из JavaScript строку (в ней символы Юникода в виде «%uXXXX»)
echo json_decode(str_replace('%u', '\\u', json_encode($str_from_javascript)));ПХП и Винда
Порядка полугода назад разговаривали
А тут, на днях, нужно было продумать
По задумке внешний клиент дёргает «ручку» у сервиса, получает некий идентификатор и ждёт до поры до времени. Работа сервиса же
Функция не заработала правильно ни с «Апачем», ни с «Энжиникс», в комментариях пользователей к документации есть одинокий комментарий
Note that register_shutdown_function() does not work under Apache on Windows platforms. Your shutdown function will be called, but the connection will not close until the processing is complete. Zend tells me that this is due to a difference between Apache for *nix and Apache for Windows.
Похоже с тех пор ничего не изменилось. Ну хорошо, я вспомнил, что в последние ПХП входит патч
Решили не перебирать больше решения, а сразу перейти на запуск отдельного фонового процесса. Оказалось и это не тривиально сделать. Под «Виндой» нужно это делать следующим образом:
$commandline = 'start /b тут-программа-которую-надо-запустить';
pclose(popen($commandline, 'r'));Сплошные приключения.
Fantastic Contraption
Подсел на

А в распоряжении у вас три колеса, одно не имеет собственного привода, два других движутся в разные стороны (одно по часовой, другое — против), если
Переключатся между инструментами можно мышкой или горячими клавишами (поводите по инструментам, там они подписаны). На моих скриншотах некоторое количество спойлеров, так что зажмурьтесь, но зато можно быстро понять основную идею.
У игры есть продолжение (на том же сайте), правда я ещё и первую часть не прошёл, застрял на уровне «Труба», пока даже идей свежих нет.
В комментариях ещё больше спойлеров!
Об отношении к детям в прежние века
Статья в ЖЖ в двух частях ([1], [2]), запомнилась, особенно:
Детоубийство уже осуждается, но только убийство законных детей. Именно повсеместное убийство незаконнорождённых младенцев породило миф о том, что «в старые добрые времена мораль была выше, и незаконнорождённых детей, если верить переписям, почти не было». Совершенно верно, не было — их просто убивали. По этой же причине, а не потому, что люди были чище и лучше, не было детских приютов: до детей, гибнущих на улицах, просто никому не было дела.
В копилку аргументов против романтизации прошлого.
[1] http://budurada.livejournal.com/118682.html [2] http://budurada.livejournal.com/119224.html
Как добавить ПХП в список шеллов в Автоматоре
Илья написал статью про то как писать службу в «Маке» на ПХП. Есть способ проще, достаточно добавить ПХП в список шелов в Автоматоре и писать скрипты прямо на нём, без вызова bash.
Можно сделать всё по инструкции по ссылке или просто запустить вот такой скрипт в «Терминале»:
sudo sed -iE "/^<\\/idict>/,$ c\
$(echo H4sIAPOBM08CA4WQvQ6CMBSFZ3iKO2CAwfQBqEwyuDiAcRFjai3QiNDcVhNjfHcrEpSBuH3n3P+bO/\
Qs7jG5aiRH2RBVKUreTu7mDj1Jbjr6ZDEs9TfqUIbIenaoNiibMp4jJT2OA7OxT8lQPfTXHKUy/yZ4tWwELMCqS1\
CUwugg2yxX6zCMJkYXLQrGKwi8Q5ak2yTd+faUm78HpsGzGMIDBK/aTkTwnFzVcv+TH1C11CZ2X1wmkt1LAQAA| base64 -D | gzip -d)" \
/System/Library/Automator/Run\ Shell\ Script.action/Contents/Resources/Shells.plistПосле запуска надо перезапустить «Автоматор» и в нём появится новый шелл:

GMT+?
Премьер Владимир Путин, баллотирующийся в президенты, снова заговорил о том, чтобы отказаться от летнего времени зимой, которое установил президент Дмитрий Медведев… «Это не фетиш
какой-то. К этому можно вернуться. Давайте без суеты все это сделаем, давайте вернемся еще раз. Со специалистами посоветуемся, с экспертами посоветуемся и общественностью в широком смысле этого слова», — сказал Путин на встрече со своими доверенными лицами.
Пишет «Газета.Ру». Готовы ещё раз обновлять прошивку на всех ваших гаджетах, серверах и прочем?
Низкотемпературные ртутные термометры
Оказывается существуют низкотемпературные ртутные термометры. Там не совсем ртуть, правда, а сплав:
Амальгама таллия (содержащая около 8.5% Tl) остается в жидком состоянии при температуре до минус 60°C (ртуть замерзает при минус 38.8°C). Сплав используют (либо использовали в прошлом) в жидкостных затворах, переключателях, термометрах, работающих в условиях сильного холода, а также при экспериментах с низкими температурами.
Как обойти баг со сложными селекторами CSS3 в «Вебките»
В «Вебките» (а значит в «Хроме» и «Сафари») есть баг с поддержкой сложных селекторов CSS3. Насколько мне рассказывали, это даже не баг, а сознательное решение. Относится он к сложным селекторам, связанным с «:target», «:checked» и ещё некоторым. Смысл в том, что у браузера как будто нет внутренних проверок на то, что условия поменялись (изменился элемент, на который должен указывать «:target», например) и надо переприменить селекторы к элементам.
Оказывается есть способ «подтолкнуть» браузер к этой проверке. Достаточно сделать пустую анимацию на нужном элементе. Вероятно это снижает производительность, так что осторожно, но зато работает:
section {
-webkit-animation: 0.1s hack infinite;
}
@-webkit-keyframes hack {
from {margin: 0; padding: 0;}
to {margin: 0; padding: 0;}
}Теперь в теге «section» эти сложные селекторы будут срабатывать.
Казань ✈ Москва ✈ Челябинск ✈ Казань
25, 26 и 27 февраля буду в Челябинске, на конференции UWDC.
Наркоман штоле?

В Шереметьеве, в туалете аэропорта увидел ампулу, спрятанную в крайней кабинке, догадался открыть дверку канализации рядом, там оказался спрятанный шприц.
Что такое икота
Оказывается, генератор ритма, ответственный за икоту, ничего по своей сути не отличается от соответствующего генератора, имеющегося у амфимбий. И не только у взрослых амфимбий, но и у их личинок — головастиков, которые используют для дыхания как лёгкие, так и жабры. У головастиков этот генератор включается тогда, когда они дышат жабрами.
В этом случае им необходимо закачивать воду в глотку и прокачивать её сквозь жаберные щели наружу, но вода при этом не должна попадать в лёгкие. Чтобы не допустить проникновения в лёгкие воды, дыхательные щели перекрываются — за счёт того, что сжимается ведущие в лёгкие щель…
Сходство между нашей икотой и жаберным дыханием головастиков столько велико, что многие исследователи полагают, что оба эти явления суть варианты одной и той же реакции.
Нил Шубин. «Внутренняя рыба. История человеческого тела с древнейших времён до наших дней».
Где еда?

Я больше всего «Аэрофлотом» летаю. С тех пор как там почти перестали кормить (на рейсах из Казани в Москву и обратно дают маленький бутерброд и сок), я оставляю «Аэрофлоту» послания
Послания вытыкиваются зубочисткой, стюардессы обычно им очень радуются.
К сожалению, на рейсах «Эс севена» послания оставить не удаётся, там только сок дают.
Казань 🚘 Лениногорск 🚘 Казань
На выходных (18 и 19 февраля) буду в Лениногорске.
Бинарные данные в XML
На «Хабре» статья вышла, в ней есть интересный и обоснованный вывод:
Этот пример имеет практическое значение, т. к. в случае, если используются
XML-файлы, которые содержат бинарные вставки и затем упаковываются (GZIP, DEFLATE и т. п.) для экономии трафика, то на самом деле выгоднее эти вставки делатьне в Base64-кодировке, а в HEX, что может противоречить интуиции.
Кроме того, в ней проливается свет на сжатие
HTTPS может использоваться не только для защиты, но и для сжатия данных. Протоколы SSLv3 и TLS дают возможность договорится сторонам об использовании сжатия при установке соединения. Такой способ выглядит привлекательней метода
с «Content-Encoding:gzip/deflate». Во первых, сжимаются все данные (включая заголовки), идущие в обе стороны. Во вторых, при сжатии может учитываться история запросов/ответов, что повышает эффективность сжатия.
Рекомендую статью к прочтению полность, тем более она небольшая.
Сахар? Песок!
Каждому, наверное, такое знакомо — есть
У меня одна из таких вещей — «песок». Я спрашиваю в магазинах «сахар», так как считаю, что правильно так и меня раздражает, когда мне предлагают рафинад и потом возмущаются, что я не попросил «песок».
100% процентов продавцов, у которых я
Рафинад — это как раз изменённое, отличное от обычного «агрегатное состояние» сахара. Это как я бы спросил в кафе нет ли у них льда
Я понимаю, что у человечества есть причины класть в чай песок, но делать ничего с этим не хочу, в моём мире общечеловеческий песок называется сахаром, а песок на пляже валяется.
Немного статистики
С 2008 года я потратил 19961 рубль 72 копейки на покупку программ.
Что такое с Mail.app?
Я, в качестве основного почтового клиента в «Маке» использую Mail.app. Всё достаточно неплохо, но иногда это приложение сходит с ума (я пока не понял в каких случаях) и портит мне кодировку писем (см. скриншот). Неужели за столько лет существования этой программы только у меня возникает эта проблема, раз её ещё не поправили? Или, может, есть

Банкоматы «Ак Барс Банка»
У меня зарплатная карточка «Ак Барс Банка», он вряд ли известен за пределами нашей республики, но в Татарстане широко распространён. Этот банк входит в организацию «Объединённая расчётная система», в которую входят ещё несколько банков, в банкоматах которых карты «Ак Барса» обслуживаются на льготных условиях.
Список
# coding: utf-8
import urllib
import re
import sys
import codecs
from itertools import ifilter
# Чтобы при перенаправлении в файл была кодировка UTF-8
sys.stdin = codecs.getreader('utf-8')(sys.stdin)
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
# Конфигурация
ORS_URL = 'http://ors.ru/cashpoints/print.asp'
ORS_CITY = u'Казань'
ORS_REGION = u'Республика Татарстан'
# Данные для оправления через POST
postdata = urllib.urlencode({
'CITY': ORS_CITY.encode('cp1251'),
'REGION': ORS_REGION.encode('cp1251'),
'CURRENCY': 'RUR',
'OPERATION': 'cash-out',
})
content = urllib.urlopen(ORS_URL, postdata).read().decode('cp1251')
# Ищем все ячейки таблицы и выбираем каждую вторую из шести
tds = re.finditer('<td[^>]*>(.+?)</td>', content, re.S | re.I)
tds = ifilter(lambda x: x[0] % 6 == 1, enumerate(tds))
# Берём только уникальные значения и рубим лишние символы
for x in set(x[1].group(1) for x in tds):
print(x.replace(' ', ' '))Выводится список банков (регион и город задаётся в коде в очевидном месте), например, на настоящий момент список выглядит вот так:
ОАО Банк ЗЕНИТ
ОАО "РГС Банк"
АКБ "Абсолют Банк" (ЗАО)
Быстробанк ОАО
ОАО "АК БАРС" БАНК
АКБ "РОСБАНК" (ОАО)
НОМОС-БАНК (ОАО)
АКБ МБРР (ОАО)
ЗАО АИБ "Ипотека-Инвест"
ОАО "АИКБ "Татфондбанк"
АКБ "БТА-Казань" (ОАО)
КБ "Юниаструм Банк" (ООО)
ОАО АКБ «Авангард»
ОАО КБ "Восточный"
Ни-ни-ни
Да, сегодня в Японии шуточный день кошки (не официальный пока еще праздник, к сожалению).
2-22 читается как«ни-ни-ни», то есть«мяу-мяу»
Из твита @japanreports. Вообще интересный твитер, например, там есть ссылка на сногсшибательный ролик про то как японцы лес валят. Там у них
Какие программы я купил с 2008
Я тут приводил статистику по купленным программам за последние четыре года, в комментарях попросили «огласить список». Не знаю как это сделать, но давайте попробуем посмотреть на что я тратил более 500 рублей.
В 2008 году я купил набор из трёх программ для Windows Mobile (тогда у меня HTC X7500 был): Resco Keyboard, Resco File Commander, Resco Photo Album за 1124,74 р. Главном образом тогда меня интересовали первые две, первая — хорошая наэкранная клавиатура, второй — менеджер файлов.
В том же году я купил набор программ SPB: Spb Plus, Spb Weather, Spb Shell за 831,6, со скидкой 20%. Это набор украшательств для той же Windows Mobile. Тормозило жутко, это всё, что я помню.
Далее я покупал i2Reader для «Айфона», это уже для жены, у неё тогда «Айфон» был.
Далее идут программы только под «Мак».
В том же году оплатил новую версию «Макос» («Лев»), купил за 908,8, так же приобрёл за 607,13 Powerpack для программы Alfred (аналог Spotlight). Powerpack позволяет писать плагины и даёт дополнительные возможности. Пользуюсь.
В конце года купил «Pixelmator», графический редактор, месяц его использовал в триальном режиме, как раз скидка была, вот, купил. Хорошая штука, пользуюсь постоянно. Примерно тогда же попробовал и купил «Tower», графический клиент для git. Время от времени пользуюсь, доволен. Pixelmator cтоил 926,89 р, Tower — 2005,08.
В этом году всего две покупки — купил Pages и Numbers за 1276,74 (это аналоги Word и Excel, только «Эпл» делала), вторая покупка меньше 500 рублей, но тоже упомяну — купил две лицензии на Boom (себе и жене), за 280,82. Это небольшая программулина позволяет увеличить звук на «Маке», плюс добавляет эквалайзер. Использую всё это постоянно.
Чуть не забыл. Спрашивали покупал ли я
MakeCorner, новый процесс инсталяции
У меня есть проект MakeCorner — бесчеловечная (потому что запускается из командной строки) программа для скругления уголков. Я несколько раз писал про неё, поэтому буду предполагать, что все заинтересованные лица в курсе что это такое и зачем.
Я переделал установку, теперь она стала намного проще (по крайней мере под «МакОс»).
Загадочный баг в ПХП
Во всех современных интерпретаторов вёдра багов, я обычно и внимания на них не обращаю, но свежезаведённый баг в ПХП
bolk@Bolk ~ $ php -r 'var_dump(0x0 + 2); var_dump(0x0+2); var_dump(0x0 +10);'
int(2)
int(4)
int(26)Как видно, ПХП (у меня на 5.3.8 работает) считает сложение с шестадцатеричным нулём (обязательно слева и обязательно без пробела перед вторым слагаемым)
С чем связано пока непонятно, я посмотрел какие токены выдаёт интерпретатор на парсинге, ничего подозрительного не увидел.
Добавлено позднее: с минусом тоже работает. Например «0x0 -10» даёт -26.
Добавлено ещё позднее: разобрался что это за интересная операция.
Буква «ё» в гидронимах и топонимах
Мне непонятно почему так любят опускать букву «ё» в различных названиях, даже неважно чего, хотя в заголовке у меня «гидронимы и топонимы». Понятно, что когда пишут «елка» имеют ввиду зелёное, хвойное тотемное новогоднее дерево, а не нечто, образованное от глагола «есть».

На выезде из Казани есть река Мёша, на знаке (фотографировал в темноте, поэтому фото так себе), как видите, написано «р. Меша». Как не абориген должен догадаться, что это должно читаться «Мёша», я не понимаю. Таких примеров я только в родном Татарстане несколько штук знаю.
Или на картах «Яндекса» обозначена улица Константина Царева, я про эту вселенскую несправедливость знаю, потому что на ней жил.
Почему люди настолько не любят эту букву — загадка.
Смартфоны vs. телефоны
Время от времени в разговоре об очередном смартфоне
Проблема в терминологии. Надо вообще перестать называть смартфоны «телефонами», это другой класс устройств, в принципе. С функциями, которые не всем нужны. Если вам нужен пылесос, не стоит покупать музыкальный центр, только на том основании, что он тоже умеет громко шуметь.
Мне телефон не нужен. Ни чтобы звонить,
Перестаньте в разговоре со мной путать одно с другим, пожалуйста.
МюЭсКюЭль
Забавная заметка на «Словомании» про то как должен бы читаться «MySQL»:
Как известно, популярная СУБД MySQL была названа в честь старшей дочери разработчика Майкла Видениуса (а MariaDB и MaxDB — в честь его младшей дочери и сына, соответственно). Если набрать в поиске how to pronounce mysql, то мы получим, в основном, обсуждения двух вариантов — «майэскьюэл» и «майсиквел», из которых первый считается более официальным.
Однако дочь Монти зовут не Май, а Мю. Это то же самое имя, что и у малышки Мю (Lilla My)
из муми-троллей. Выходит, что пуристы должны произносить«Мю-Эс-Кью-Эл».
Bolt — автоматическое обновление конфигурации «Апача» на «Маке»
Добавил новую программу в свои «Игры с шелом», назвал «Болт», она следит за изменением папки, куда у вас на «Маке»
Запускать нужно так (из командной строки):
sudo тутполныйпуть/bolt.sh &Потом ввести пароль администратора. Если затем в папке с сайтами создать, например «site1», то в браузере сразу можно набирать «http://site1», он уже будет открываться. Программа умеет убирать за собой (после перезагрузки компьютера, например).
Скачать можно с «Гитхаба».
Заплет Вэйв
FireDrop разработала технологию «заплетов», сочетающую атрибуты электронной почты и веба. Пользователь отправляет один заплет нескольким адресатам, которые могут просматривать его при помощи наиболее современных программ электронной почты. Но, в отличие от обычных «одноразовых» электронных сообщений, заплеты не требуют повторных писем, а автоматически обновляются, когда на них отвечают.
Например, сотрудники офиса, выбирая наиболее удобное время для совещания, могут разослать календарный заплет, в котором каждый указывает предпочтительное для него время. Брокерская фирма может каждое утро рассылать клиентам портфели акций, графики на которых будут отражать результаты последующих торгов. А газета может ежедневно распространять новости, заменяя их в течение дня, хотя в почтовый ящик подписчика доставляется только одно сообщение.
Статья «Новый вид электронной почты» от 14 марта 2000 года. Ничего не напоминает? Мне — «Гугл Вэйв».
Новое Исаково
Потихоньку буду продолжать писать заметки о том как продвигается исследование истории моей семьи.
Судя по имеющимся у меня сведениями, один из моих прадедов родился в селе Новое Исаково Бугульминского района. К сожалению, в запросе в Национальный Архив Республики Татарстан я был невнимателен и написал «Исхаково», что стоило мне двух месяцев ожидания, пока работники архива не проверили это неправильное название и не написали мне, что такого села не существовало.
Из этой истории я делаю вывод, что очень важно знать как точно назывался населённый пункт в этот период, так как его всё равно будут искать в справочнике, что занимает весьма значительное время. В справочнике несколько сотен страниц (я скачал парочку таких), старая орфография и неизвестно какого качества его скан в Архиве (если они не шлют запрос
Себе на заметку, какая дальше должна быть последовательность действий на будущее.
Для начала неплохо бы найти
Из «Википедии» несложно узнать, что Бугульма (рассматриваемое мною село находится в Бугульминском районе) с 1850 года находилась в Самарской губернии, которую на протяжении 1918—1920 гг. постепенно разделили между другими регионами. Это мне подходит — у меня прадед родился после 1850, но до революции.
Дальше идём на сайт «Корни и Крылья» и в списке населённых пунктов Самарской губернии находим Аверьяновку в Бузулукском уезде и Исаково Новое в Бугульминском уезде.
Так как название «Новое Исаково» более новое, я предполагаю, что именно оно мне и нужно. Но неплохо бы и убедиться, что
Для этого качаем книгу «Списокъ населенныхъ мѣст Самарской губерніи» 1900 года выпуска, на странице 203 которой видим деревню Новое Исаково, находящуюся около
Тот же населённый пункт указан на странице 112 книги «Списокъ населенных мѣст Самарской губерніи по свѣдѣніям 1889 года», только там написано «сельцо», указано 244 версты (260 км) от Самары, 29 дворов, 50 мужчин и 112 женщин.
По обоим источникам вышло, что Новое Исаково находилось в Спасской волости Бугульминского уезда Самарской губернии, о чём я написал в повторном письме в Национальный Архив. Надеюсь на этот раз ответ будет быстрее.
Ошибки и ОБД «Мемориал»

В ходе Великой Отечественной Войны, подозреваю как и в ходе любой другой, не было времени аккуратно заполнять бумаги, потому в них хватает путаницы, особенно это касается бумаг начала войны.
Поэтому в военных архивах не следует искать точные совпадения, нужно расчитывать на то, что будут ошибки. Например, в архиве ОБД «Мемориал» (это архив военных потерь) три раза встречается мой дед, только в одном месте неправильно указан год рождения и срезано отчество, в другом случае — имя написано с ошибкой («Федр»).
Ребята, оцифровывающие военный архив не исправляют эти данные и правильно делают. Откуда им знать, что за «Ник.» скрывается «Николаевич», а не «Никифорович», а человека действительно по паспорту звали не «Федр» (мало ли странных имён, да и в паспорте могли с ошибкой написать).
Поэтому будете искать, пользуйтесь возможностью указать только часть имени и отчества, я искал по «Старостин Ф* Н*», «Мемориал» поддерживает такой синтаксис, тут символ „*“ означает «любое количество символов».