Моя первая программа

Если не вспоминать рисующую черепашку на Logo, то свою первую программу я написал в 16 лет, в 10 классе на подготовительных курсах в ХНУРЭ (который тогда ещё был ХГТУРЭ — «государственный технический»). Это была программе на Паскале для Turbo Pascal 7.0. Она умела выполнять операции сложения, вычитания, умножения и деления над двумя числами, считывая их и символ операции из строки ввода. Иными словами, на ввод, к примеру, «2 + 2″ программа писала в вывод «4″.

Я не программировал (и даже никогда в руках не держал) никакие микрокалькуляторы, которые постоянно всплывают в подобных разговорах. До прихода на подкурсы я даже не подозревал, что собираюсь делать в жизни, и даже близко не представлял себе, что такое программирование. Зато к тому времени самостоятельно научился переустанавливать Винду, вдоль и поперёк прошёл «Фолаут 2″ и чуть-чуть начал любить математику.
Читать далее

Про iOS 7

Выскажусь, как iOS-разработчик по поводу вашего нытья насчёт редизайна. В целом: поноете и привыкнете.

Но вот что меня просто до глубины души в новом дизайне раздражает так это вдавленная иконка для «Почты». Вот посмотрите:

ios7f-620x469

Все иконки или выпуклые или плоские. Но, какого хрена, спрашивается «Mail» вдавлена?

Новый Свет 2013

На майские праздники побывали в Новом Свете. Николай II, последний в веренице провальных российских царей, побывавший тут в гостях у князя Голицына, после прогулки и отпивания местного шампанского по легенде сказал, что «увидел свою жизнь в новом свете». Отсюда и название.

ns_01
Читать далее

Кернес — плохой мэр. Работы на моём перекрёстке.

Если городскому голове Харькова Геннадию Кернесу приписывать все муниципиальные достижения (кому-то лампочку вкрутили, кому-то лавочку поставили, парк реконструировали), то давайте последовательно его же обвинять и в муниципальных провалах. Благо, за примерами далеко ходить не приходится. Вот сегодняшняя фотография перекрёстка «50 на 50″ возле моего дома.

IMG_2240 Читать далее

Апрельская битва за Харьков

Скептики, сомневавшиеся, что это распоряжением властей сегодня в центре города встало движение транспорта, посрамлены. Непонятно зачем, но это именно «хороший мэр» Геннадий Адольфович решил явить миру свою неадекватность, пытаясь испортить оппозиции митинг протеста.

Эта запись не о том, хорошая или плохая в Украине оппозиция. Эта запись не о том нравится ли харьковчанам, что их городской голова — неадекватный гопник из 90-х, обещающий ломать руки и ноги. Эта запись всего лишь констатирует факт, что Геннадий Адольфович Кернес, пользуясь своим положением, устроил в городе транспортный мини-апокалипсис. Если бы у гражданина Кернеса была хоть капля совести, то у данной записи были бы следующие тэги: безответственный, злоупотребление, в отставку, принёс извинения харьковчанам. Если бы мы к тому же жили в цивилизованной стране к ним бы добавилась ещё парочка: уголовное дело, от 5 до 10 лет. Я предлагаю каждому харьковчанину самостоятельно сделать вывод о том, можно ли после этого считать действующего мэра «хорошим».

Итак, хроника прогулки в районе митинга. Фотофакт: техника коммунального предприятия «Харьковводоканал» простаивает на улице Университетской, перекрывая подходы к митингу. Возможно, она бы пригодилась на перекрёстке проспектов 50-летия СССР и 50-летия ВЛКСМ, где с сентября прошлого года идёт ремонт «водопроводной перемычки», который по плану должен был завершиться ещё в ноябре?

IMG_2181

Читать далее

Счастливые гетры

Даньшина смеялась надо мной в воскресенье, когда я сказал, что на игру надену свои счастливые гетры. Чтоб вы понимали «счастливыми» их сделал тот факт, что из двух игр, которые я на тот момент сыграл в айти-лиге была одна победа (другие гетры) и одно поражение (те самые гетры). Но ещё смешней было бы Даньшиной, если бы она зашла с нами в раздевалку и увидела, как остальные ребята дружно сказали: «Не, эта комната — не счастливая,» — дружно пошли в другую, где была набита уже куча людей из команды соперников. Мы, кстати, проиграли. Хотя может дело в том, что нам с ещё одним игроком не хватило места в «счастливой» комнате…

Беспроигрышный формат, №3

Показавшееся мне интересным на этой неделе:

  1. The assault on universalism: how to destroy the welfare state — Интересные мысли про европейское (главным образом Британское) «социальное государство». Авторы приходят к выводам, что единственные кто выиграют от уничтожения welfare state — наиболее богатая часть населения, а бедные и средний класс только проиграют.
  2. Коррупция говорите? РосЯма говорите?.. Смотрите шире на вопрос дорог. — Антон Буслов о том, как строят и ремонтируют дороги с точки зрения техпроцесса, и как их действительно строят и ремонтируют в России. Почему именно так, и чем это грозит.
  3. «Ми двічі піднімали тарифи — люди мене не розстріляли», — Геннадій Мінаєв — Интервью с мером города Сумы. Также почитываю его фейсбук. На удивление адекватный человек. Я не уверен, что у Кернеса, которого вдруг начали считать хорошим мером, есть аналогичное видение того, как следует строить государственную политику, как развивать местное самоуправление, понимание того, как работает экономика. Он больше по переломам ног и умножению на ноль.

P.S. Это вообще интересно хоть кому-то?

Про «Игру престолов»

Река трезубецЗапись посвящается скорому старту третьего сезона «Игры престолов». Книгу я не читал, но в свой время был больши фанатом фентези. Вот недавно я узнал, что в географии Вестероса (материка, где происходят события книги и сериала) есть река Трезубец. Названа она так, как вы уже догадались, из-за того, что на карте эта река выглядит как трезубец: три речки сливаются примерно в одном месте.

Так вот что я собственно хочу сказать: это название — хрестоматийный пример халтуры в создании вымышленного мира. Вот как река могла получить такое название? Мне приходит в голову только один вариант: инопланетяне, изучают топологию материка, составляют подробные карты и дают местности на звание. «Погляди-ка,» — говорит один из них. — «Да ведь эта река похожа на трезубец, а у нас как раз не хватает оригинальных названий». Сказано-сделано, река названа, инопланетяне колонизируют планету, их потомки живут в этой местности тысячелетиями, забывают свои продвинутые технологии. Их язык или совсем не меняется, или они специально заботливо сохраняют в меняющемся языке изначальное значение названия несчастной речки. И вот спустя тысячелетия вечного фентезийного средневековья она по-прежнему называется так, как впервые увидел её инопланетный картограф.

Попробуйте-ка быстро сказать, что означают названия настоящих крупных рек. Возьмём нашу местность, чтобы исключить языковой барьер, тут ведь в конце концов жили наши предки. Днепр? Дон? Волга? Избавлю от похода в Википедию: не всегда точно известно даже, что именно эти слова означают. А когда известно, всё крайне прозаично: обычно они означают «река». В древности не было лоукост авиалиний, чтобы смотаться на пару дней в Барселону, поэтому большинство осёдлого населения знало только одну реку — ту, которая протекала у них под боком. И гугл мепс, чтобы изучить форму русла, тоже не было. А вы говорите: «трезубец».

Теперь собственно по поводу самого сериала — он очень хорош. Но слишком высоки шансы, что он не будет закончен. Джордж Мартин, автор книг, широко развернулся в своей суперпопулярной серии и не собирается так просто заканчивать. Поэтому вероятным видится исход, что к сериалу потеряют интерес раньше, чем даже будут закончены книги. А незаконченная история, пусть даже хорошая — это очень неприятно.

Беспроигрышный формат, №2

Показавшееся мне интересным на этой неделе:

  1. Bigger Than You Think: the Vatican and its Annexes - Про территорию Ватикана. Смешно про кусок 3 на 60 метров спорных территорий между Италией и Ватиканом.
  2. На что идут налоги, уплаченные украинцами — Идут в основном на пенсионное обеспечение, как ни странно.
  3. Tesla Is The New Apple — Про компанию «Тесла», занимающуюся электромобилями. Интересный факт: «Ford Model T» в 1908 проезжал 25 миль на 1 галлоне бензина, а в настоящее время средний новый американский автомобиль проезжает 20,8 миль на 1 галлоне. «Tesla Model S», кстати, уже сейчас может проехать почти 500 км без дозарядки.

Жизнь Пи

Жизнь ПиЖизнь Пи очень понравился. Один из лучших фильмов, которые я смотрел в последнее время. Мне говорили, что он «скучный», кажется, что вот-вот главный герой приплывёт на лодке и наконец начнётся сюжет, а лодка — это и есть весь сюжет. Поэтому я был несколько настроен против. Сюжет держит и не отпускает до самого конца. Это удивительно, учитывая, что в сухом остатке фильм в общем-то о том, как чувак плывёт через океан на спасательной шлюпке в компании тигра. В фильме много религии и философии, не похожих на религию и философию. Именно так, сложно объяснить точнее, надо посмотреть. Кому-то (например, президенту Обаме) померещилось «доказательство Бога» (правда, это Обама говорил про книгу, там наверняка другие акценты), кому-то «доказательство несостоятельности вегетарианства». Насчёт последнего соглашусь с Таней, что как раз наоборот: попадая на странный остров с толпами сурикатов, главный герой, несмотря на то, что долгое время вынуждено ел рыбу, остаётся верен себе и ест не сурикатов, а растительную пищу. А самая изюминка всего — когда кажется, что история уже закончена и всё понятно, неожиданный сюжетный ход ставит в конце истории жирный знак вопроса. В общем, один из тех фильмов, где чувствуется хорошая книжная история, которую сценаристы, режиссёр и актёры сумели не испортить.

Из забавных моментов: Жерар Депардье снялся в эпизодической роли хамовитого кока. После принятия гражданства Российской Федерации, ему есть где черпать вдохновение для подобных ролей.

Первая игра в Айти-Лиге

Мы нашей футбольной тусовкой играем в Айти-Лиге под название Juniors United. Я играю на привычной хоть и подзабытой позиции вратаря. В воскресенье сыграли первую игру. Проиграли 2:4, но в целом выступили на удивление хорошо.

В первой четверти матча на волнении пропустили два глупых гола. При чём первый я могу спасать: потеря мяча в середине поля, соперник выскакивал один на один, а я рановато выскочил из ворот и в итоге пустил в ближний, не успев накрыть. Второй — ошибка защита — перепасовка в задней линии, слабый пас поперёк превращается в суперудобную скидку под удар прессингующему сопернику, я не успеваю среагировать. Тут соперники, команда «Элис», посчитали что игра практически сделана. С лавки им кричат: «Они уже сдохли, еле бегают, надавите». В итоге оказывается, что сдохла как раз «Элис». До конца прервого тайма и половину второго они практически не атакуют, а мы отыгрываем два гола. Счёт 2:2, по-прежнему атакуем, но последняя четверть игры складывается не в нашу пользу. Мы уже подсели, «Элис» с более глубокой лавкой подсела меньше, и начинает убегать в опасные контры. Три выхода один на один, но, помня первый гол, я теперь не спешу с выходом и в итоге спасаю два из трёх (в третьем соперники лажают без моей помощи). У нас есть моменты, мы по-прежнем больше атакуем, хотя и не так много как в середине игры, мяч в чужие ворота не идёт. Последняя пятиминутка заканчивается фатально: два обидных гола с рикошетами. Первый — после удара где с 9-ти метров почти по центру. Удар я вижу, но после розыгрыша углового в штрафной куча народа, мяч цепляет своего и чужого, я, дёрнувшись на первый удар, всё же сначала достаю его, но не могу зафиксировать. Второй — розыгрыш аута с ударом, защитник пытается помешать, но в итоге я не вижу момент удара, и снова рикошет — мяч пролетает под перекладину прямо над головой, я выставляю руки, но успеваю только слегка зацепить кончиками пальцев.

Итог: счёт не совсем по игре. Однако, учитывая, что таким составом мы играем только второй раз, а также что у большинства нет турнирного опыта — внушает оптимизм. В прогнозе на сезон нам напрогнозировали борьбу за 7-е место (из 8-ми). Есть надежда, что таки поборемся :-)

Беспроигрышный формат, №1

Показавшееся мне интересным на этой неделе:

  1. Sense About Genetic Ancestry Testing (сама брошюра в пдфке) — Познавательно про сервисы исследования генетического наследства, предлагаемые коммерческими компаниями. Что они могут сказать, а что не могут. Спойлер: ничего толкового не могут. Но стоит прочитать просто ради некоторых интересные научных сведений из области генетики (например, когда жил самый недавний общий предок всех ныне живущих людей). Брошюра проекта «Sense About Science«. Там публикуют подобные обзоры, призванные популяризовать спокойное и взвешенное отношение к миру на основе научных данных и научного подхода.
  2. A ‘simple rule’ about migrants and benefits — Про Великобританию и эмигрантов. Тим Харфорд (автор книги «The Undercover Economist») в своём излюбленном формате дискуссии самого с собой комментирует заявление Дункана Смита, консерватора, главы «Department for Work and Pensions» (типа нашего Пенсионного фонда) о том, что эмигранты «проедают» социальные бенефиты. Это популистское заявление, характерное для правых, по словам Тима, противоречит данным исследования, проведённого в прошлом году самим же департаментом.
  3. Wealth Inequality in America — Ролик про неравномерность распределения богаства в США. Выложен давно, но я только сейчас увидел. По сути, это растянутое на несколько минут визуальное представлении статистики из этого исследования. Пускай коммунизм не работает, но это не значит, что пропорция распределения богатства должна быть настолько перекошена.

Про Аймакс и будущее кино

Побывал в Аймаксе и не был впечатлён. Такое же 3Д, как в обычном кинотеатре, разве что чуть больше ощущение глубины. При чём это был фильм «Оз», сделанный вроде бы специально для современных 3Д-залов. В общем, технология — не прорыв, а маленький шажок вперёд.

Что реально могло бы кардинально изменить кино, так это что-нибудь типа шлема виртуальной реальности. Чтобы можно было вертеть головой во всей стороны и видеть (и слышать) только кинокартинку, а не соседей по залу, смеющихся невпопад и отпускающих глупые шутки. Это направление развития кажется наиболее логичным. Зритель не «смотрит» фильм, то есть картинку пусть и с некоторой глубиной, а находится в самом фильме. Технологии для этого в принципе уже все есть. Не хватает инфраструктуры: фильм в производстве будет дорогой, а смотреть его будет негде. Но это исправимо.

Очередная перезагрузка

Все мои знакомые забили на свои блоги. Даже Даньшина и та пописывает крайне редко. Собственно, я тоже забил. И в ЖЖ-ленте у меня почти один сплошной Макс Кац. Забавно, что сначала люди ушли в твиттер или микробложили во вконтакте, кое-кто в фейсбуке. А сейчас всех захватил инстаграм. И что, опять-таки характерно, сначала хоть писали внятные комментарии к публикуемым фото, а теперь и просто фото достаточно. Моя шуточная теория — со временем вся активность в интернете упростится ещё больше: просто будут ставить лайки, потом лайки лайкам, затем лайки лайкам лайков и т. д.

Я, собственно, не для того, чтобы порицать пишу. Сам же такой. У меня, кто не знает, был старый ЖЖ со стихами, анархистскими агитками, желчью, рефлексией и совсем редко чем-то может хоть капельку интересным. Так вот я его сколько-то лет назад удалил, чтобы завести вот этот бложик. Тут я решил писать только интересное. Желательно потенциально интересное широкому кругу — типа какие-то полезные статьи, описание полезного опыта, как, например, мой бьющий рекорды популярности (271 просмотр в месяц!) пост про то, как разобрать старую, но популярную модель клавиатуры. (Интересный ещё тем, что я опечатался в «пермалинке», о чём горячо сожалею, но не исправляю, чтобы не сломать ссылку). Иногда, конечно, сюда прорывались и желчь с рефлексией. Я такие посты сейчас безжалостно поудалял.

Собственно, речь — как вы, наверное, уже догадались — об очередной перезагрузке блога. Никакой желчи и рефлексии (ок, в этом посте есть немного рефлексии, но это, обещаю, в последний раз). А также я не буду выдавливать из себя какие-то типа полезные статьи (особенно, по программированию). Будет просто себе блог и блог.

Всех целую.

P. S. Как дойдут руки сделаю редизайн.

Про плату за Интернет

Иногда, достаточно редко, у меня ненадолго пропадает Интернет. Тогда я вспоминаю, что не заплатил за этот месяц и срочно плачу. Не знаю случайность это или трюк хитрый трюк провайдеров. Но если провайдеры не практикуют подобное, то определённо стоит. Гораздо эффективнее и безболезненнее для абонента, чем просто отрубать после просрочки платежа. Ничто не раздражает больше, чем подход «робота» со стороны компании — срок прошёл, Интернет отрубился. Ладно бы ещё предупреждали, а то некоторые и таким не заморачиваются (да, я смотрю на тебя, Датагруп).

Футбольный трип в Киев

Только что вернулись из Киева с первого для нас матча Евро-2012 Украина — Швеция. Позитивное футбольное настроение настигло нас ещё в Харькове, и было многократно усилено. Поймите меня правильно: правы те, кто говорит про миллиардные распилы, посаженную Тимошенко и убийства собак, но это не повод отказаться от футбольного праздника. Особенно, если вам в принципе интересен футбол, как мне. Тем более, что поводов морщить нос вместо того, чтобы веселиться, всегда будет предостаточно.

Дорогу Харьков-Киев так и не доделали, но нам всё равно. Тренд сезона — жёлто-синий флажок на машине. Мы поздно спохватились, пришлось рисковать большим флагом, высовывая через окно.

Читать далее

Счастливый билет

Я не то чтобы верю во всякие приметы, если точнее, не верю вообще. Но очень люблю обращать внимание на цифры. Например, когда еду в метро и пялюсь в какую-нибудь рекламу на стене вагона, то мысленно складываю или перемножаю цифры указанного телефона в разных комбинациях, пытаясь найти какой-то интересный паттерн. Ну и, конечно, «счастливые» билеты в транспорте — это отдельная статья.

Среди харьковчан я встречал только «московский» способ определения «счастливости» билета. Это когда первые три цифры надо сложить с тремя последними и сравнить. А есть ещё «питерский» способ, когда складывают чётные цифры с нечётными. А для совсем гурманов, есть ещё вариант с квадратом — сумма цифр должна быть квадратом другого числа. Таких билетов, что характерно, даже больше, чем «московских» и «питерских». Подробности в Википедии.

Когда же попадается билет, вроде того как на картинке, когда цифры справа и слева повторяются (зеркально или нет), чувство глубокого удовлетворения преследует меня целый день. Сложно представить как я буду доволен, если мне когда-нибудь попадётся билет с шестью одинаковыми цифрами. Если бы я работал кондуктором, оставлял бы такие билеты себе :)

Париж и прочая Европа

Изматывающий, но весёлый автобусный тур с Таней и родителями по Европам с несколькими днями в Париже успешно завершился. Смотрим фоточки, фоточки.

Автобус выезжал из Львова, куда мы добирались на родительской машине.

Читать далее

Социальная защищённость, пенсионный фонд

История из жизни про ПФУ и, казалось бы, при чём здесь программирование. Будучи зарегистрированным физическим лицом-предпринимателем, я должен раз год сдавать отчёт в Пенсионный фонд Украины. В этом году я делал это самостоятельно через Интернет в электронном виде. Надо сказать, что для ФЛП на упрощённой системе налогообложения («единый налог») без наёмных рабочих, если при этом не платится каких-то дополнительных денег ПФУ сверх минимально установленной суммы, данный отчёт — не более чем бессмысленный перевод времени и бумаги. Рискну предположить, что это относится к большинству ФЛП. Единственная осмысленная информация, которая туда заносится в описанном случае, это вид применяемой налоговой системы и табличка рассчёта оплаченной суммы единого социального взноса помесячно (одинаковая для всех ФЛП на ЕН, если опять же ничего сверх минимального не доплачивать). Вот такая:

Обратите внимание на сумму в кружочке. Она неправильная. Поэтому мой отчёт не приняли, о чём меня уведомили смской (молодцы же). Как же так вышло? Очень просто. Отчёт я делал в программе «АРТ-звит», которая продуманно сама высчитала эту сумму за меня. Но как же она ошиблась? Всё дело в округлении, бро. Программа честно высчитала эти проценты, просуммировала и в конце округлила. А человеки сначала высчитывают проценты, потом округляют, а суммируют уже округлённое, что в общем-то правильно, ведь платил я уже округлённые суммы. Вот и закралась ошибка на целых 2 копейки, которая стоила государству интересно сколько времени работы клерка из ПФУ.

Не менее интересно, что же делать теперь, когда отчёт не принят. Очень просто, пересдать его можно только лично клерку, напечатав на бумаге. Сопроводив при этом письмом, содержание которого клерк мне пробурчала в трубку, сказав потом, что примера нет, и она мне только что всё «продиктовала». Суть письма кратко формулируется так: «Прошу принять исправленный отчёт и не применять ко мне штрафные санкции, потому что по закону в этом случае ко мне нельзя применять штрафные санкции». Не забыть ещё подписать у Капитана Очевидность.

Я далёк от того, чтобы люто негодовать по столь незначительному поводу. Благо, наша молодая демократия предоставляет множество гораздо более весомых поводов для негодования. Так что я просто рассказываю, а мораль уже придумайте сами.

P.S. В качестве бесплатной рекламы моих друзей из Таксера: их сервис считает сумму правильно :)

How To Install iOS Simulator 4.2 In Xcode 4.3.1

Recently released Apple iOS SDK 5.1 only includes iOS Simulators starting from version 4.3. However, ensuring your application works on iOS 4.2 might be a good idea, because this is the latest version officially available for iPhone 3G and iPod Touch 2G. It is probably fine to drop iOS 3.x support already (and, thus, original iPhone and iPod Touch 1st generation devices). At least many people suggest you do. But it might be little bit early to abandon iOS 4.2.

Unfortunately, Apple won’t agree. Latest iOS SDK 5.1 doesn’t have iOS Simulator 4.2 support and to make things even worse requires you to upgrade to Lion 10.7.3. Which in turn makes it difficult to install older SDKs. Though this may be possible, but I prefer no to mess things up by having a multiple versons of Xcode and iOS SDK around. There is a better solution. It is possible to add iOS Simulator 4.2 support to Xcode 4.3.1.

First, you need to find and download older SDK disk image: xcode_3.2.6_and_ios_sdk_4.3.dmg. Apple might still have it somewhere inside Member Area. If not it can be simply found with your favorite search engine. Actually, you only need file called iPhoneSimulatorSDK4_2.pkg. I had a luck finding it directly, so had no need to download the whole dmg. I am not giving any direct links here, since this might be illegal :) So if you downloaded the whole dmg, mount it. iPhoneSimulatorSDK4_2.pkg is inside the invisible Packages folder.

Now you need to install this package, but into some temporary folder. Double-click it and on destination disk screen click the disk. This will reveal the «Select folder…» button. Wait for installation to complete.

Now quit Xcode if you are running it. Then go to %Your Temporary Dir%/Platforms/iPhoneSimulator.platform/Developer/SDKs, and locate a folder named iPhoneSimulator4.2.sdk. Now open Xcode application bundle (it should be /Applications) and move iPhoneSimulator4.2.sdk to /Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs. Now you may delete the temporary folder.

Restart Xcode and if your project supports 4.2 (i.e. it has Deployment Target lower or equal to iOS 4.2) you may run it on iOS Simulator 4.2.

Credits:

  1. http://stackoverflow.com/questions/9342701/xcode-4-3-and-iphone-simulator-4-2
  2. http://apple.stackexchange.com/questions/31412/how-can-i-install-iphone-simulator-4-2-on-xcode-4-2

Гмейл

В интерфейсе gmail есть один, скажем так, нюанс, на который я уже второй раз попадаюсь. Из-за него я был вынужден включить функцию «отмены отправки письма».

Простая ситуация: мне пришло письмо, я переслал его содержимое третьему человеку. А теперь хочу ответить автору оригинального письма. Привычно открываю «цепочку» из входящих, внизу сразу есть удобное поле для ответа.

Только ответ этот отправится тому, кому это письмо было переслано, а не автору изначального письма. Я не уверен, было ли поведение старой версии интерфейса таким же, или эта проблема была добавлена уже в новой. Неприятно, когда-то кто-то читает письмо, которое ему не предназначалось.

Кэрнэс

В это трудно поверить, но в Харькове существуют люди, которые на полном серьёзе голосовали за «эффективного менеджера» Геннадия Кернеса. Хотя, конечно, проблемы наших городов более глубокие, чем просто выборы «правильного ящера». Вот, например, середина декабря, в Харьков пришёл обычный зимний ливень. Что это означает для простого харьковчанина живущего не совсем в самом центре? Значит это, что ему стоит пожалеть бедную городскую инфраструктуру (ну и себя конечно) и из дому лучше не выходить.

Вот, например, Салтовка, остановка на перекрёстке 50 на 50. Относительно недавно тут поставили прекрасный навес. Вот такой:

Что в нём особенного? Возможно, на фото это плохо видно, но дело в одном маленькой нюансе: асфальт заканчивается как раз перед навесом. То есть находится под ним можно только стоя в грязи. Такую непростую дилемму предлагают нам муниципальные службы: намокнуть или испачкать ноги.

Но это ещё мелочи, по сравнению с тем, как у нас ремонтируются дороги. Я не специалист в этих делах, не архитектор или кто-то там ещё. Но я не могу понять, как получилось так, что технология дренажа безвозвратно утеряна для наших городских дорог. Сливы, кажется, у нас вообще перестали делать. Закатали асфальт и ладно. Надо ли удивляться тому, что в дождь проезжие части улиц превращаются в реки. И чёрт бы с ними с пешеходами, но есть подозрения, что это не идёт на пользу и самому дорожному покрытию. Ну ладно, я понимаю, на прокладке дорог у нас воруют больше, чем реально тратят на строительство. Но какие-то дороги всё же строятся, объясните мне кто-нибудь, почему считается, что воду по ним можно просто пустить течь как есть, не задумываясь о её отведении?

Заплати и спи спокойно

Минуту здорового смеха сегодня обеспечила мне компания «Кредитэкспресс Украина». Это такие бездельники, которые призваны «выбивать» долги из нерадивых граждан. Далее краткая предыстория. Горячо любимая компания «Воля», которой я в общем-то доволен, из-за бардака в своей системе учёта, заключив договор об услугах кабельного и Интернета со мной, не разорвала аналогичный договор, который был заключён со старыми хозяевами квартиры. Пока я не преодолел лень и лично не явился в их офис со словами «чё за нах?», набежало 200 гривен. А ещё набежала «Кредитэкспресс Украина» с угрозами засудить, если я не заплачу. Угрозы они слали почтой из своего уютного Киева. Тот факт, что я давно решил с «Волей» все вопросы, их не остановил.

Я думал, что история уже замята, вот сегодня пришло письмо с «распиской» (!) о том, что их «инспектор» посетил мою квартиру в прошлый понедельник, но «должник» в лице старых хозяев квартиры отсутствовал. Вот так сюрприз. Зато весь день по данному адресу присутствовал я, но инспектора как-то не застал :) «Кредитэкспресс Украина» знает, что такой документ, как расписка (хотя вообще при чем здесь она?) должна быть написана от руки, поэтому набрана она рукописным шрифтом :) А ещё пишут, что «це не погроза уявними листами». А что же ещё? :) Вот такие дела:
Читать далее

Сон о вреде DRM

Провально рассказывать свои сны, но сегодня приснился поучительный. Снится мне, значит, нашествие зомби — что не редкость. Вирус, ходячие трупы жаждут сожрать мозги отстаткам выживших. И помимо прочего случается забавный эпизод — помню, как будто реально было. Выжившие, ну и я же понятно среди них, от зомбей отбиваются огнестрелом, чтобы и дальше быть выжившими. А со мной часто так во сне по-лузерски бывает, что у меня в руках оружие, я жму жму курок, а оно ни хрена не стреляет. Обычно без видимой причины, но вот в этот раз причина была заявлена. Были у нас, выживших, в основном «калаши», при чём не обычные, а напичканные электроникой (какая ирония для калаша-то!). Так вот эта электроника включала в себя модуль DRM, такую специальную штуку, которая по Интернету (!) связывалась с серверами производителя и проверяла легальный ли калаш, и можно ли пользователю из него стрелять. Ну а тут вирус, нашествие зомбей — Интернет, понятно, не работает, вот калаши и не стреляют. Успокаивало только, что в этот раз не у одного меня.

RIP Dennis Ritchie


I have just happened to know about Dennis Ritchie’s death. He was scientist and programmer. His work was the basis for the modern informational technologies world. IPhones and Androids, Mac OS X and Windows — this is a far incomplete list of things he contributed either directly or indirectly. Though he died on October 9th news of his death passed by me until today. It was drowned in a stream of sorrow for another deceased IT person Steve Jobs. I feel this is deeply unfair. The world has chosen to send their grief to pompous businessman who earned his billions on the work of modest scientists like Ritchie was. I choose to grieve about the former. Rest in piece, mister Dennis Ritchie.

Умер Деннис Ритчи

Только что узнал, что 9-го октября умер Деннис Ритчи, автор языка C, один из основных разработчиков Unix. Учёный и программист, чья работа лежит в основе современного мира информационных технологий. Айфоны и андроиды, макось и винда — далеко не полный список того, в разработку чего Ритчи прямо или косвенно сделал значительный вклад. Обидно, но, к сожалению, характерно, что новость о его смерти прошла даже мимо меня, утонув в потоке массовой скорби по Стиву Джобсу. Пафосный бизнесмен, зарабатывавший миллиарды, и скромный учёный, на работе которого зарабатывали миллиарды. Мир скорбит о первом, я — о втором.

Регистрация брака в ЗАГСе. Как есть и как должно быть.

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

Информация относится к РАГС Фрунзенского района города Харькова. В других местах, возможно, что-то происходит по-другому. Тем хуже, ведь гражданин всё-таки рассчитывает на некоторое однообразие в поведении клерков аналогичных учреждений. Кстати, ЗАГС — это старое название, правильное — РАГС (Регистрация актов гражданского состояния). То есть «пойти в РАГС», значит «пойти в регистрацию», что уже звучит немного тупо.

Как есть

  1. Жених или невеста приходят в РАГС (можно два раза в неделю по полдня в неудобное время). Стоят в очереди примерно 1 час, чтобы попасть в приёмную. Вместе с ними в очереди стоят, те, кому надо зарегистрировать ребёнка (это должно быть без очереди, но не все это знают, а клеркам всё равно), развестись, решить ещё какие-то подобные вопросы. Наконец, попав в приёмную, выбирают время, получают бланк заявления, 2 квитанции (одна из них — на символическую сумму меньше 1 гривны, так что банковская комиссия за оплату выходит больше самой оплаты!). Выходят из приёмной, заполняют заявление, идут оплачивать в банке квитанции.
  2. С заполненным заявлением и квитанцией снова протискиваются в приёмную. Клерки говорят, что можно без очереди, но разозлённых людей, стоящих под дверью битый час, это не волнует. В итоге, из-за вот этих «без очереди» через некоторое время после начала приёма у дверей образуется форменный хаос. Клеркам, само собой, всё равно.
  3. По какой-то необъяснимой формальной логикой причине необходимо явится ещё раз на неделе, на которую назначена роспись. Снова выстоять очередь (опять «можно без очереди», но злым людям и клеркам опять всё равно. Отдать паспорта или копии, взять опять квитанцию, опять заплатить и опять принести квитанцию, протиснувшись вне очереди. Ощадбанк, кстати говоря, поднял 8 гривен на моей свадьбе только за счёт комиссий.
  4. Наконец, явиться на роспись. Цветы, шампанское, плачащие мамы и папы.

Итого: 3 похода в РАГС, минимум 2 часа в очереди.
Читать далее

Неизвестная ошибка

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

Rebuild

Забавная пошаговая стратегия на тему выживания в пост-зомби-апокалиптическом мире. Тема заезжена, геймплей ничем не примечателен, но в сумме получается очень затягивающая игра. На Kongregate в неё уже сыграли 2,5 миллиона раз.

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

Городу можно дать название

Лидера выживших тоже можно как-то назвать

Вот такая вот весёлая казуалочка. Интересней чем любая «ферма» :)

How to disassemble Logitech Deluxe 250

logitech_deluxe_250_disassemble_hint
In case you need to disassemble Logitech Deluxe 250 PS/2 keyboard for some reason, that’s what you need to know (same applies to 350 model and probably some other vintage Logitech keyboards). Besides the large number of screws on the back, which are pretty simple to find and untwist, there are another 4 of them. Two screws are located under the small rubber legs on the back. You need to remove legs accurately and, yes, you will need to use glue to put them back. Two more screws are located under the keyboard buttons: one is somewhere around the Caps Lock and another one is under the Numpad «+» key. To remove the button, simply put the screwdriver under one and gently press until button is unhooked from the board.

I have published this simple hint like year ago in the Russian part of my blog and still I see a lot of people finding it useful. Let’s see whether it helps someone outside RUnet :)

Rozetka.ua в Харькове

Уважаемые пользователи сети Интернет! «Розетка» не моя, я просто разместил объяву. Телефон «Розетки» 0(800)503-808. Хватит звонить мне на мой личный номер, я не имею к «Розетке» ну абсолютно никакого отношения.

Эта запись на удивление популярна. Но информация в ней устарела. С тех пор расположение пункта выдачи в Харькове менялось несколько раз. Актуальную информацию ищите на сайте магазина. Запись ниже описывает реалии примерно начала 2011-го года, с тех пор многое могло поменятся. Запись остаётся здесь сугубо по историческим причинам :)

Существует два крупных всеукраинских Интернет-магазина электроники: «Розетка» и «Мобилак«. Может есть ещё кто-то настолько же крупный или даже крупнее — подробных исследований я не проводил. Но если вы зададитесь целью купить себе, скажем, некий mp3-плеер и погуглите на этот счёт, то обязательно натолкнётесь на один из них.

У «Розетки» конкретно в городе Харькове есть одна проблема — их пункт выдачи товара расположен в месте, которое крайне трудно найти, если точно не знать где оно находится. Правда, на их сайте указано, что можно заказать доставку через сторонние службы типа «Автолюкса» и «Нова Пошта». Для этого надо сделать полную предоплату: получить от них счёт-фактору и заплатить в банке. Но есть проблема: в этом случае вам никто не проверит товар на работоспособность. Курьерские службы — они и есть курьерские службы. Правда, в течение 14 дней вы сможете его вернуть — это право гарантирует вам закон «Про захист прав споживачів«.
Читать далее

Bash-fu. Выполнить для каждого файла в одну линию

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

for FILE in SOMEWHERE; do SOMETHING; done

Вот так, например, можно все wav-файлы в текущей директории конвертировать в CAF с кодеком IMA4 (полезно для iOS приложений). Работает под Маком с установлеными тулзами для разработки (нужна afconvert оттуда):

for FILE in *.wav; do afconvert "$FILE" "$(basename "$FILE" .wav).caf" -d ima4 -f caff -v; done

Pocketbook и их сервис

Как ни крути, а Покетбук всё-таки украинская компания, и сервис у них соответствующий. В то время как в официальном сервисе Самсунга, где я чинил монитор, мне пошли навстречу и согласились исправить в гарантийном талоне неправильную дату, сервисный центр компании Покетбук в городе Харькове отказался чинить по гарантии сломанную кнопку включения, мотивируя это тем, что её «слишком сильно нажимали, вот и отломалась». Я заплатил 50 гривен (!), но по-прежнему считаю, что если такой компонент как кнопка, ломается в результате выполнения своей единственной функции, то это недостаток конструкции, последствия которого компания обязана устранить за свой счёт. Кнопке не помешает быть рассчитанной на «слишком сильное нажатие», тем более, что я точно знаю — эту конкретную кнопку никто «слишком сильно» не нажимал. Особенной силы в руках ни я, ни Танька, которая ею в основном пользуется, не имеем.

Пытался довести свою точку зрения до сотрудников харьковского сервисного центра и звонил в Киев. Результата — ноль. Поэтому, если вы планируете прикупить Покетбук, подумайте несколько раз, я предупредил.

Зарегистрировался в IDP

JobsРегистрация в iPhone Developer Program для стран Третьего мира стала работать предельно просто. Чуваки с appdev.ru предлагают сделать всё за 300 баксов? На самом деле нужно всего 100 на любой нормальной Визе, которую принимают в западных магазинах. Только имя на ней должно в точности соответствовать имени эккаунта. Специалисты по транслитерации из OTPBank’а считают, что моё имя пишется Vitalii. Поэтому теперь меня так зовут и для Эпла.

Процесс регистрации предполагает отправку факса. PamFax в руки, там 3 факса бесплатно, а вам нужен один. Распечатываете форму, заполняете, фоткаете. Или даже не распечатываете, а прямо в фотошопе и заполняете. Кто там разберёт? Дядюшка Стив старается для вас, дорогие аутсорсеры. А вот дядя Витя Янукович не старается. Абсолютно легального способа вывести деньги из App Store, похоже, не существует. Если знаете — расскажите.

Реквием для Opera

Ни больше ни меньше, а прошла целая эпоха. Сегодня я отказался от браузера Opera в пользу Google Chrome. Здесь я остановлюсь, чтобы все смогли осознать сказанное.

xkcd: Perspective

Продолжим.
Читать далее

Что плохо в Universal Applications для iOS

С выходом iPad’а и 4-го iPhone нам приходится ломать голову над тем, как продлить жизнь наших старых проектов и на этих устройствах. Apple ставит своих разработчиков перед проблемой, от которой ранее их (нас) оберегала — это неоднородная среда выполнения. Если раньше было целых 3 модели телефонов, которые принципиально мало чем отличались друг от друга с точки зрения возможностей, предоставляемых разработчику. Даже разрешение экранов у них совпадало до пиксела. Теперь это совсем не так: iPad — это вообще устройство несколько другого рода, открывающее новые возможности. На 4-м iPhone тоже увеличили разрешение.

Всё это ведёт к тому, что приходиться в той или иной степени адаптировать программу под разные устройства. В хорошо спроектированной программе на UIKit, где святое триединство Model-View-Controller чётко соблюдено, переделать придётся только слой View и вероятно не обойдётся без изменений Controller’а. Но на самом деле это может затронуть и модель, например, если там, условно говоря, «хранятся» изображения, размер которых связан с разрешением экрана (так у нас в одном проекте). А если речь идёт об игровой программе, коих в аппсторе, мягко говоря, немало, то всё становится ещё сложнее: под каждое разрешение, скорее всего, есть отдельный немалый набор графических ресурсов. В связи с этим всем возникает два важных вопроса:

  1. Технический вопрос: Как теперь распространять программы: отдельные версии для отдельных устройств или один большой монстр для «всего»?
  2. Маркетинговый вопрос: Как бы сбить больше бабла с тех, кому нужна и iPad, и iPhone версия, при этом дав сэкономить тем, кому нужно «или-или»?

Читать далее

Балда для Pocketbook

На Новый год подарил Таньке Pocketbook 360, читалку книг на e-ink от отечественных производителей. Как фаната опенсорс меня в ней в первую очередь привлекла открытая (якобы) прошивка и доступный SDK. Затем поучаствовал в конкурсе по написанию игр под эту читалку. Выбрал игру «Балда». Игры в слова как-то очень логично смотрятся на устройстве для чтения книг, не так ли? Да и для динамичных игр с анимацией экран на «электронных чернилах» не слишком приспособлен. Вмешалась работа, не всё удалось реализовать, но кое-какую версию я всё же предоставил и даже за неё полагался приз в виде скидки на тот же самый Pocketbook, при чём при доработке программы обещали его увеличить. Приз мне так и не достался, пусть это будет на совести организаторов. На форуме другие участники писали, что надо было очень постоянно напоминать организаторам об обещанном, и приз-таки можно было выбить, но в моей личной идеальной картине мира подобные дела так не делаются.

А программу я таки доработал и теперь выкладываю версию 1.0.2. Надеюсь, владельцам Pocketbook будет полезна. Собственно, она позволяет играть в Балду. Играть можно против компьютера (3 уровня сложности) и друг против друга. Поддерживаются (теоретически) все модели Pocketbook с прошивкой начиная с версии 14. Модели 302 с сенсорным экраном у меня нет, поэтому проверить работоспособность не могу. Для этой модели реализовано отдельная модель управления (с учётом того, что там собственно тачскрин, а не кнопки), но опробована только на симуляторе.

Читать далее

ЧМ

Кстати, о Чемпионате Мира по дефолтному виду спорта. Не люблю слово «мундиаль», то же мне испанцы кругом. Но для начала бородатый анекдот:
- За кого на ЧМ будешь болеть?

- За наших, конечно!

- Это понятно, а потом?

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

Bash-fu. Объём виртуальной памяти, выделенной процессом

Потребовалось в баш-скрипте получить объём виртуальной памяти, выделенной процессом. Получилось так (через ps aux):

MEMORY_USED=`ps aux | awk -v pid="$PID" '{ if ($2 == pid) print $5 }'`

Где PID — идентификатор процесса.

Хороший сервис

good_serviceВот все пишут про плохой сервис. Я тоже бывает, но сейчас хочу вот просто так написать и про хороший. Сломался монитор Samsung у Таньки. Нашли гарантийку, вычитали, что 3 года на него даётся сервисного обслуживания (а этому как раз чуть болье 2-х с половиной), то есть бесплатной починке неисправностей не по вине клиента. Официальный сервисный центр компания «Нео» нашли на сайте Самсунга. Чуваки сработали оперативно, обещали смску от Самсунга, когда закончат. Я практически только успел прийти в офис переобуться и начать работать, как она пришла. Потом перезвонили ещё, что мол, да, приходите. Пришёл забрал. Все свидетели удивлены. Оказывается, могут же в нашей стране работать, если захотят.

Поломка, скажете, очевидно была типовая и легко устранимая. Отвечу: если бы хотя бы только пусть типовые и легко исполнимые вещи в нашей стране так делали, то и этого бы не слабо хватило.

Скучно получилось, в следующий раз про что-нибудь плохое напишу.

Красный день календаря

Как было установлено, ровно два дня назад, а именно 23 апреля, был пятилетний юбилей исторической встречи Лёши и Ани, имевшей в том числе для меня далеко идущие последствия :) Дата была установлена со 100%-й достоверностью, хотя и не сразу. Самым неточным в восстановлении хронологии был Сергей, которому казалось, что это случилось в пятницу. Аня утверждала, что всё случилось в субботу, так как у неё по субботам были коллоквиумы. Лёше тоже казалось, что это была суббота (без объяснения причин), но 16-е число. Итак, 16-е или 23-е как бы сказал нам календарь. Однако, правее всех оказалась Таня, собственно инициировавшая расследование и сразу назвавшая 23-е число.
Читать далее

Субботний субботник

В субботу убирали в Парке Победы (на викимапии совсем недавно он был обозван «парком влюблённых», fixed). Из-за дождя и прочих отмазок обстоятельств на мероприятии было всего 6 человек. С другой стороны, это целых 6 человек. В общем, убрать получилось примерно вот такую территорию (по клику ссылка на Яндекс-карты):

Убранная область в Парке Победы

Имена героев достойны быть перечисленными:

  1. Татьяна, организатор, идейный вдохновитель и спонсор (перчатки и пакеты).
  2. Лера, самая весёлая из присутствовавших
  3. Ксения, героично приехавшая на наш райчик издалека
  4. Миша, по-мужски много работал
  5. Аня, немного фотографировала
  6. И я, конечно

На качественный пиар мероприятия мы забили, поэтому фоткали на телефон: Читать далее

Полезная реклама

Не вся реклама одинаково вредна. У меня есть два примера рекламы, которая оказалась, напротив, полезна.

Во-первых, это реклама в выдаче Интернет-поисковика. Например, Google Adwords. Не раз, и не два именно в рекламных ссылках я находил полезную информацию для себя, релевантную тому, что я искал. Такая реклама обычно что-то продаёт, но ведь и я не против купить то, что мне нужно. Рекламные ссылки находятся в сторонке от выдачи, чуть подсвечены, чтобы формально обращать на себя внимание. Но это же выделение и подсказывает пользователю, что ссылки рекламные, а значит к их содержимому нужно отнестись соответственно. Не в том смысле, что оно не достойно внимания, а в том, что оно может с большей вероятностью оказаться не тем, что нужно.

Во-вторых, более конкретный пример. О ноутбуках ASUS серии UL я узнал на Хабре, популярном айтишном ресурсе. Не из дебильноватого флеш-баннера, как можно было подумать, а из интересного и полезного обзора. Автор этого обзора — сотрудник самой компании ASUS. Сильно ли он приврал насчёт продукта своей компании? Вопрос ирреллевантен. Обзор нейтрален и избегает давать оценки, приводя в основном факты. Ноутбук мне сейчас не нужен, однако эту модель я бы купил себе и посоветовал другим.

Что объединяет эти два случая? В первую очередь то, что рекламу я получил именно тогда, когда захотел, и именно о том, о чём захотел. Реклама не лезла мне в глаза и уши, не совала в руки какие-то совершенно ненужные вещи (женские прокладки, ага). Во-вторых, реклама была к месту. Обзор ноутбука находился на айтишном ресурсе, самое подходящее место, чтобы, собственно, опубликовать обзор ноутбука. Поисковик предложил мне рекламу, когда я собственно попросил его для меня что-то найти, и реклама эта опять же была связана с тем, что я искал.

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

А у вас есть другие примеры полезной рекламы?

Nerds overfocus

nerdsЯ не коммуникабелен. В том смысле, что не могу знакомится с новыми людьми, осваивать новые виды деятельности, связанные со знакомствами с новыми людьми, заниматься организацией чего бы то ни было, что требует общения с малознакомыми и незнакомыми людьми и т. п. Не буду говорить обо всех программистах, они слишком разные, но главное объяснение своей некоммуникабельности я некоторое время назад нашёл в книге “Microserfs” Дугласа Копленда (которая тем не менее заняла почётное место среди недочитанных мною). Суть мысли укладывается в фразе: “nerds overfocus”. В моей собственной вольной интерпретации это означает: «ботаны (предложите слово лучше) слишком концентрируются на чём-то одном».

Истину глаголит товарищ Дуглас. Сказано ровно про меня. Я всегда концентрируюсь на чём-то одном и в длинной перспективе и в короткой. Вы можете о чём-то разговаривать со мной и думать, что я вас слушаю, а я тем временем могу думать о том как лучше переписать логику работы с APNS на сервере, или например, что цифры телефонного номера вон с той рекламы, если их сложить, дают в сумме круглое число (честно, занимаюсь такими подсчётами постоянно). Знакомиться с новыми людьми — слишком много напрягов, сейчас я занят другим, как-нибудь потом. Это делает меня хорошим программистом, и это же делает меня хреновым парнем для общения.

А картинка к посту — первое что выдал Гугл на запрос “nerds overfocus”. Любите её.

Home, End, Page Up and Page Down in Terminal.app

Currently I am doing a lot of iPhone development. That`s the reason for using Mac OS X a lot. Just found a fix to annoying Terminal application issue. By default Home, End, Page Up and Page Down are working completely wrong there. It is not that hard to google a fine solution. For instance, I found one here. However, it was not great still, ’cause Home and End still failed under some circumstances. Fixed these with info in someone’s suggestion, so it is even works in vim.

So, you just need to go to «Keyboard» tab in app preferences. Find keys in long list there and change values to “send string to terminal:” with these strings:

Home \033[7~
End \033[4~
Page Up \033[5~
Page Down \033[6~

Suddenly, it works.

Home, End, Page Up и Page Down в Terminal.app

Делаю много iPhone девелопмента, брозерс. Из-за чего плотно сел на Мак ОС. Только что дошли руки починить тамошний Терминал. По умолчанию клавиши Home, End, Page Up и Page Down работают там совсем неправильно. Загуглить всё легко, но отчего-то я долгое время просто терпел. Вот здесь нашёл решение. Правда оно не очень крутое, Home и End всё равно фейлят. Но в первом комменте приводится 100% работающий вариант, что даже в vim всё работает как надо.

Короче, в настройках терминала для текущей тему выбираем вкладку “Keyboard”. В списке находим все нужные клавиши и меняем текущие значения на “send string to terminal:” с такими строками:

Home \033[7~
End \033[4~
Page Up \033[5~
Page Down \033[6~

Внезапно, всё работает.

О Бандере и выборах

Вчерашний день порадовал известием о присвоении Степану Бандере звания Героя Украины. В связи с чем у любого добропорядочного здравомыслящего гражданина Украины прилежного налогоплательщика возникает разумный вопрос к пока ещё действующему президенту: «Какого же хуя, сука ты cсыкливая, совершил этот поступок, сделал гармоничную ссылку, комплимент (это цитаты, если чё) именно сейчас, когда первый тур выборов позади и бездарно просран?» Вопрос риторический потому что ответ содержится в нём самом.

Этим важным и нужным для страны деянием Ющенко как бы подчеркнул полную провальность своего президенствования. Эти пять лет можно смело вычёркивать из украинской истории. Они не принесли ровно ничего. Сейчас наша страна готовится откатить всё на пять лет назад и выбрать Януковича. Самое печальное, что и об этом выборе страна через тот же срок точно так же пожалеет. Но перспективы донецкого Вити (на самом деле он, конечно, из Енакиево, я осведомлён) оставим пока футурологам. А вот Витя из Хорунживки определённо уже занял почётное место в топе самых бездарных украинских деятелей за всю историю. Пожалуй, при всём многочисленности и многообразии борцов за украинское самоопределение, только вновь награждённый Степан Бандера да Иван Мазепа, сурово смотрящий на нас с десюнчика, способны составить Витьку конкуренцию.

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

Лично меня на тему выборов волнует только один вопрос: если на сайт ЦВК поставить Google Ads, какую часть затрат на выборы можно было бы окупить?

Фельдман защищает свиней

Кто читает мой Твиттер, уже видели эту картинку. Комментировать её содержимое сложно — настолько оно за пределами адекватности. Можно только подшутить на любимую некоторыми товарищами тему: Фельдман → евреи → свиньи. Конкретную шутку придумайте сами.

Фельдман в защиту свиней

Я предлагаю в тысячный раз поднять вопрос о том, кто в этой чёртовой стране делает наружную рекламу. В надписи из двух слов «Харьков — Вперёд!…» мой глаз находит 3 (три) ошибки:

  1. Слово «Проснись» написано с прописной буквы. На то нет ни малейших оснований, разве что это имя собственное: типа, гражданин Проснись Иван Фёдорович.
  2. Тире между словами придаёт предложению смысл: Харьков — это проснись. Это очевидно не тот смысл, который в него вкладывают авторы. Вместо тире должна быть запятая, отделяющая обращение к Харькову.
  3. Многоточие после восклицательного знака должно сопрягаться с ним, то есть точек должно быть две плюс одна от восклицательного знака.

Я уже молчу про стилистическую ошибку с многоточием. Не могу понять, что за смысл вкладывают авторы в этот знак.

Уныло.

MySQL C++ Connector Fail

В текущем проекте возникла необходимость работать с MySQL базой данных из C++. Кроме базового API на «чистом»  C, разработчики MySQL (кому она там сейчас принадлежит?) предоставляют надстройки для различных языков программирования, называя их connector’ами. В их числе имеется и красивая высокоуровневая обвязка для C++. Хорошая альтернатива слабо предназначенному для непосредственного использования libmysqlclient, казалось бы.

Вскоре начались проблемы. Случайные вылеты, причинами которых были баги самого мерзкого характера: какая-то дрянь портила чужие области памяти. Потратив предварительно несколько часов, я так и не сумел сходу решить проблему. Уже тогда я подошёл вплотную к MySQL коннектору, но решил что столь явной проблемы (на максимально простом тест-кейсе) в официальной библиотеке быть просто не может, а значит проблема где-то раньше в моём коде. Потому решено было временно отложить решение (вылеты были регулярными, но не столь частыми) и сначала дописать функционал до определённого уровня, что и было проделано.

Пришло время второго захода. В ход пошли хитроизощрённые отладочные техники с hardware watchpoint’ами и утилитами для отслеживания выделения памяти. Снова несколько часов и снова вижу проблему в connector’е. Тут-то я наконец сосредоточенно погуглил и нагуглил письмо в mailing list MySQL, где описывалась похожая проблема. Автор письма потрудился залезть в исходники коннектора (что я уже было собирался делать) и обнаружил там серьёзные проблемы. Кому интересно, подробно могут почитать по ссылке, но суть в том, что там просто элементарная ошибка (и не одна) с освобождением памяти, которая приводит к самым неприятным последствиям.

В итоге, код работы с базой (благо, ещё не разросшийся) был переориентирован на использование сишной libmysqlclient и счастье наступило.

Мораль:

  1. Не используйте MySQL C++ Connector. Это какой-то вообще слабо поддерживаемый проект. Мало ли что там ещё за проблемы найдутся.
  2. Нельзя доверять третьесторонним библиотекам даже если они часть хорошо зарекомендовавших себя продуктов. Если бы не моё слепое доверие, времени на починку было бы потрачено в разы меньше.

UPD. Кстати, существует ещё mysql++. Не пробовал, но должно быть ок.

Разобрать чёртову клавиатуру

logitech_deluxe_250_disassemble_hintЕсли вам когда-нибудь, как мне вчера, понадобиться разобрать клавиатуру Logitech Deluxe 250 PS/2, то знайте, что помимо огромного количества шурупов, которые видны с задней стороны клавиатуры, имеются ещё 4: два — под резиновыми ножками снизу (ножки нужно аккуратно сковырнуть, а потом при обратной сборке придётся клеить обратно), а ещё два — в районе клавиш Caps Lock и «+» на дополнительной клавиатуре (крышечки клавиш надо снять).

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

UPD. Благодарные читатели сообщают, что модель 350 разбирается похожим образом. Только не надо снимать резиновые ножки (под ними пусто). Есть только 2 скрытых винта под кнопками (там же где и к 250-й).

Концерты, осень 2009

Осень — пора русрок-концертов в славном городе Х. Хоть плотность их проведения в этом году необычайно высока, я стараюсь успеть всюду. Предлагаю вашему вниманию свои впечатления о нескольких уже прошедших перформансах. Но прежде всего:

Несколько злых слов о ККЗ «Украина»

Примерно год я не был в кино-концертном зале «Украина», и год этот не пошёл кино-концертному залу на пользу. Рок-концерты по твёрдым убеждениям администрации — это нечто среднее между игрой КВН и футбольным матчем в лучших украинских традициях. От футбола администрация взяла человеконенавистнические схемы обеспечения «безопасности» (в кавычках, только в кавычках!). Хамовитые гоблины из охраны, с виду недавно вышедшие из мест лишения свободы, неплохо преуспевают в деле лишения свободы. Год прошёл, повадки охранников ККЗ не изменились. А игра КВН приходит в голову потому, что наблюдать концерт предлагается строго по команде «сидеть». Ведь когда наблюдаешь некое юмористическое действо, сидеть крайне важно, чтобы ненароком не упасть от смеха. Признаться Григорян и компания, а также Король с Шутом тоже любят пошутить и отжечь, но рок-концерт тем не менее остаётся рок-концертом, и администрации ККЗ «Украина», продолжающей жить в дремучем совке, я предлагаю усвоить тот непреложный факт, что рок-концерт предполагает в числе прочего обратную связь с залом. Зрители участвуют в происходящем на равных с музыкантами. Энергетика, все дела. А если им не дают этого делать, то это не рок-концерт, а игра КВН.

Читать далее

Программания 14

Конкурс прошел. Организаторы бухают, GlobalLogic подсчитывает сэкономленные деньги, а мы, простые программисты из команды «Яволидио», радуемся, что девятичасовая гонка наконец закончилась.

Анализирую произошедшее, прежде всего хочется отметить некоторую двойственность всего происходившего на конкурсе: с одной стороны как бы надо было спешить спешить, бегать, с другой — высокое место по времени не означает ровным счётом ничего. С одной стороны задачи были из серии так называемого «спортивного программирования», с другой — надо было как бы писать красиво и документировано, с третьей — всё это надо было делать ещё и очень быстро. Были сложные задания, на которые отводилось очень мало времени, были совсем лёгкие задачи (определить лежать ли три точки на одной прямой, lol), на которые времени выделялось слишком много. В итоге вышла полная неясность что, как и зачем.

В начале игры, пришло понимание, что C++ при всём своём величии — не самый лучший выбор для решения подобных задач. С другой стороны, написали на нём почти всё, наловчившись под конец. Только пару задач наш штатный вебдевелопер проделал на PHP, дав нам отдохнуть. Опыта олимпиад и вообще подобных конкурсов у нашей команды почти не было.

В середине игры возникло упорное желание бросить всё и пойти смотреть безнадёжный, как тогда казалось, слив сборной Украины в Днепропетровске. Игру продолжили только благодаря врождённой упорности нашего капитана.

В итоге, по времени, мы пришли четвёртыми, хотя реально и того быстрее, просто организаторы затупили в конце. В «поле» наблюдались многочисленные нарушения. Квест же пешеходный, если в команде достаточно человек можно разделиться: одни снимают текущий код, другие — садятся на хвост более успешной команде. Вот и получалось, что некоторые умудрялись пробежать полцентра города за 15 секунд. Организаторы пообещали раздать штрафов (бойтесь, heratoz ;)).

Доигрывал, одним глазом смотря футбол. На вопросе про ГКЧП я как раз сокрушался по поводу не забитого Шевой пенальти, за что был удостоен звания виновного в нефинишировании вторыми.

Бойтесь конкуренты: три ноутбука Леново и три внешних винчестера (экстраполируем призы за 2-е и 3-е места) будут нашими.

Металлург

metallurgВосхищаюсь Донецким Металлургом. Украинский клуб, обречённый быть вторым в городе, где имеется действующий обладатель Кубка УЕФА со своей Донбасс-Ареной, показывает, по-моему, замечательный футбол. Не осведомлён об имеющихся в распоряжении Металлурга финансов, судя по всему, они солидны, как для украинского середнячка, но в любом случае деньги в такой ситуации ещё не всё.

За поражение Металлурга в квалификации Лиги Европы мне, честно, было обидней даже, чем за родной Металлист. Земляки тупо просрали своё счастье не сумев, не захотев, не успев сыграться и заиграть. И сейчас всё никак не выйдут на уровень, соответствующий мощной поддержке финансовой и всякой другой, которую Металлист в Харькове имеет. Конечно, не всё так плохо, не подумайте, что я тут по чём зря поношу Металлист, просто констатирую факты, сам верю, что харьковчане заиграют.

Читать далее

Играй как в 1993? Нет, лучше как в 1997.

2009-09-28_entrenamiento_dinamo_kiev_011Да-да, всем небезразличным, конечно, известно, что сегодня состоится важнейший и интереснейший матч. Пацанчики с района могут бросить читать этот пост и вернуться себе в комментарии на football.ua сраться с «хохлами». Ну а мы посидим и ещё раз поностальгируем о великом разгроме Барсы 1997-го года. Однако, этот пост я пишу не для того, чтобы утомлять читателя подробностями того матча (надеюсь, забаненых в Гугле среди вас не найдётся), а для того, чтобы предложить взглянуть на предстоящую игру глазами Барсы. Они-то вспоминают совсем другой матч. Предлагаю вашему вниманию перевод статьи с официального сайта ФК Барселона о грядущем противостоянии.

Играй как в 1993

Барса и Динамо Киве встречаются сегодня на Камп Ноу с тем, чтобы повторить классическое противостояние с участием Круиффа и его Команды Мечты в 1993. Барса, которой необходима победа, должна будет добиться её без Анри.

Одной из самых выдающихся игр эры Команды Мечты было ставшее классикой противостояние 29 сентября 1993 года против киевского Динамо, ровно 16 лет назад. Во вторник, ФК Барселона сыграет свой второй матч на евроарене в этом сезоне, однако, обстоятельства на этот раз, крайне отличаются. В тот вечер команде необходимо было отыгрываться после гостевого поражения со счётом 3:1, чтобы пробиться в следующий этап розыгрыша. В этот раз ставки не столь высоки, но позволять себе расслабляться тоже не стоит. Ничья с Интером (0:0) в первом туре означает, что сегодня любой результат, кроме победного, значительно усложнит выход из группы.

Читать далее

Как купить нормальный ноутбук в Украине?

Ты понимаешь, что родился по неправильную сторону капитализма, когда… На самом деле, с завидной регулярностью. Ну вот, например, я хочу себе купить ноутбук. Мои основные требования к нему предельно просты: я хочу хорошую видеокарту и не хочу большой экран. Почему-то производители уверены, что если, блин, я плачу за видеокарту, то почему бы мне и не заплатить за 17-тидюймовую поебень. Уважаемые производители, я не знаю какие фокус-группы вы там собирали и маркетинговые исследования проводили, но мне нужен именно такой ноутбук. По простой причине: 90% времени я работаю с подключенным внешним монитором. Просто мне нравится, когда у меня всё с собой. Утром я встаю, кладу ноутбук в рюкзак и еду в офис, а вечером забираю его обратно домой. Мне никогда и в голову не придёт играть в игры на экране ноутбука (вы же ведь пытаетесь всучить мне 17-ку именно для этих целей, не так ли?). Я уже молчу о том, что хорошая видеокарта меня интересует в первую очередь не игр ради, а для комфортной работы, так уж вышло, что она связана с компьютерной графикой. Есть ещё ряд специфичных требований: например, видеокарта мне нужна nVidia, так как ATI/AMD не способна родить адекватные драйвера для Линукса, да и вообще всячески сосёт, хоть и открывает спецификации (а куда им деваться-то?).

И вот я нахожу внезапно ноутбук, который меня бы устроил. И что же? Купить его в Украине (за адекватные деньги) — задача непосильная. Купить его да ещё и выбрать подходящие опции — непосильная вдвойне. Я прошерстил все украинские онлайн и оффлайн магазины и максимум, что я нашёл, это модель G50V с худшей видеокартой, зато двумя жёсткими дисками (всего 640 гигабайт) за невменяемую цену в почти 2200 долларов, в то время как в российских онлайн-магазинах модель Vt с теми же 640 гигабайтами стоит порядка 1500 у.е. (!).

В этой чёртовой стране миллионы людей только тем и занимаются, что кому-то что-то перепродают. У нас экономика такая: всё что мы производим — это металлопрокат на старых советских металлургических комбинатах, жратву (чернозём же, хуле) и программное обеспечение руками специалистов, выученных на обломках старых советских технических вузов. Так продайте же мне нормальный ноутбук, чёрт возьми. Нет, я не хочу договариваться со знакомыми, которые «привезут мне из Штатов» палёное говно без гарантии, не хочу покупать такое же палёное говно на ебэях. Я просто хочу нормальный магазин, который продаст мне нормальный ноутбук за нормальные деньги.

К слову. Информация к размышлению: iPhone официально продаётся в осмеянной полунищей Молдове (пруфлинк), а ещё в таких развитых странах, как, например, Камерун и Гвинея (полный список). Попробуйте найти среди стран Украину.

P.S. Видимо куплю через знакомых в России. Украинские бизнесмены убейте себя.

MySQL C++ Connector Fail

In current project I need to connect to MySQL DB from C++ code. MySQL developers provide different connectors for varios languages, including C++ one. It seemed like a good alternative to libmysqlclient, which was hard for direct usage.

That proved to be a bad idea. Random crashes of the most annoying type: caused by corrupted memory. I spent several hours trying to figure out where the problem was with no success. At this point I started to suspect problems in C++ connector. However, decided that bugs of such kind were unprobable in official library. Because they happen on rather simple test case. I decided to take a break at that point and first complete some essential functionality (deadlines, you know). So I did.

On the second stage of hunting down the bug I armed with hardware watchpoints and memory allocation utilities. More hours of debugging and I was sure about MySQL connector problem. Googling revealed the message on MySQL mailing list. Message poster lurked into the connector sources (that was I was going to do) and found serious memory allocation problems there. If you are interested in details, follow the link above.

So, I had the code harshly rewritten to work with libmysqlclient and was happy, since everything had worked fine.

Conclusion:

  1. Do not use MySQL C++ Connector. That`s a weird poorly maintained project.
  2. Never trust 3rd party code, even if it seems to come from reliable source.

UPD. BTW, there is also mysql++. Had no chance to try out, but looks good.

Футболки к выборам

Актуальному времени — актуальная одежда. Специально к президентским выборам в Украине предлагаются следующие дизайны футболок. Покажи свою контркультурность, нестандартность и бунтарский дух. Следуй модным тенденциям. Только сегодня заказывай во всех пунктах печати на одежде в твоём городе.

Футболка к выборам. Вариант (А)

Кроме стандартного варианта (A), имеются и другие, соответствующие прочим правильным убеждениям.

Читать далее

Обсуждение проекта в картинках

Делаем проект на заказ. Игра, но не игра, а вроде как что-то типа промо. Заказчик хочет, чтобы вместо лица персонажа можно было ставить аватар из Фейсбука. Идея мягко говоря идиотская, что и демонстрируем:

Обсуждение. Часть 1

Читать далее

Hearts Of Iron III

Между прочим, через полторы недели (7 августа) выйдет продолжение одной из моих любимейших игр.

Помню нашу с Сергеем игру по сети за страны Оси (я за Германию, он — за Италию). Наши споры о разделе оккупированных Советских территорий доходили чуть ли не до серьёзных разборок. Экономика Италии слабее на старте, поэтому на роль лидера в нашем альянсе претендовал я, постоянно угрожаю своему союзнику танковым корпусом, расположенным в оккупированной Венгрии. Если вдруг что, я обещал, быстро оккупировать экономически развитый север Италии и занят Рим. Помнится, я втянул наш альянс в кучу сомнительных военных авантюр, приведших к масштабной войне на два фронта с Советами и Антантой, когда мы ещё не были к ней готовы. Сергей умело маневрировал хиленьким итальянским флотом, не давая союзникам спокойно чувствовать себя в Средиземноморье, и избегая в то же время решающего сражения, в котором, конечно, британский флот бы просто раздавил несчастные итальянские лодочки. А непобедимые немецкие танковые дивизии тем временем в клочья разрывали Восточный фронт. До конца, мы, правда, так и не доиграли.

Таких вот альтернативных историй я могу вспомнить море: и тотальную победу СССР с эпичным вторжением в Северную Америку, и Третий Рейх величиной с Евразию, и, наоборот, раздавленный Польшей (!) уже в 1938-м, и триумф Компартии Китая в гражданской войне (чёрт, в реальности так и было) и много чего ещё.

Читать далее

Футбольные поля заростают травой

Вместо эпиграфа: сегодня случайно подслушал один разговор между самыми простыми на вид обитателями Салтовки. Распивая пиво, один парень лет двадцати среднего роста с коротко стриженой головой, рассказывал другому: «Я реально расчехлил как в Героев играть, только когда мы ото тогда с вами начали рубиться, а до этого всё проигрывал».

Трава такая траваЭтими весной и летом я много времени провёл в прогулках по своему, как принято говорить, району. Парк Победы, школы, садики, дома. Обычный спальный район, наверное, как в любом постсоветском городе. Именно этим летом мне в глаза бросилась эта деталь — на школьных стадионах и просто дворовых футбольных полях выросла трава. Во времена моего детства это было невозможно: все площадки, где можно было с минимальным комфортом играть в футбол усердно вытаптывались толпами гоняющих мяч нас, детишек самого разного возраста. Сейчас эти площади пустуют. Я не помню, когда последний раз видел играющих в футбол детей, хотя часто проходил мимо подходящих мест в подходящее время. В другой части города, возле станции метро Научной на стадионе Университета радиоэлектроники  и на асфальтированном поле во дворе спорткомплекса «Вирта», где тоже иногда бываю, я действительно вижу иногда по воскресеньям небольшие компании детей, гоняющих мяч. Но стадион ХНУРЭ тоже заражён «травяной болезнью» — вытоптан только один участок поперёк большого поля, на большие же ворота играют, судя по обилию травы, крайне редко. А на вышеупомянутой асфальтовой площадке я, к слову, совсем немногим реже, чем футболистов, видел чернокожих студентов из близлежащих общаг, играющих в экзотичный для наших мест крикет.

Читать далее

Сайт Металлиста

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

upl-table

И когда же, наконец, разработчики сайта узнают об RSS?

В итоге, я решил не просто исходить желчью в своём блоге-который-никто-не-читает, а сообщить свои соображения ответственным за сайт. Емэйла я так сходу нужного на сайте не нашёл, решил воспользоваться имеющимся форумом. Регистрация была непростой (см. ниже), но я её преодолел и оставил нижеследующее сообщение: Читать далее

Как встать из-за компьютера

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

Авторская методика. Это реально работает! Последнюю неделю я не засиживался за компом позднее, чем до 12-ти. Попробуй, теперь спать по ночам возможно и для тебя.

Футбольная IT Лига 2009 в городе Харькове

Эта информация для Вас, если:

  1. Вы работаете в сфере информационных технологий или имеете соответствующее образование.
  2. Вы играете в футбол, не против поиграть в футбол или хотя бы просто интересуетесь футболом.
  3. Вы живёте в городе Харькове.

Суть: один мой знакомый организует осенью (сентябрь-октябрь) футбольный турнир для харьковских IT’шников. Собственно, вся информация есть на официальном сайте. Хочу только добавить следующее.

Во-первых, я участвую :-)

Во-вторых, поучаствовать можете и вы. Если вы работаете в более-менее крупной харьковской IT-компании, то с большой вероятностью её руководство получило официальное приглашение от организаторов на электронную почту. Требуйте информации у начальства :-) Если ничего никто не получал или вы, скажем, фрилансер или, к примеру, работаете IT-специалистом, но не в IT-компании, то вам нужно собрать команду (до 15-ти человек, разумный минимум — человек 8) и сделать предварительную заявку, написав организаторам (почта partorg@itleague.kharkov.ua). Если команду вам никак не собрать, но участвовать хочется, всё равно напишите организаторам, возможно, таких как вы желающих наберётся на целую команду.

В-третьих, мероприятие действительно того стоит. Соревноваться Вы будете не с затесавшимися в команды профессионалами из ПФЛ, а с такими же как Вы, программерами, сисадминами, дизайнерами и проджект-менеджерами. Организаторы обещают за этим уследить. Дух соревнования, все дела. Играть будем на ОСК «Металлист» (на комплексе мини-футбольных полей Детской академии). Судить будут профессиональные судьи, лечить профессиональные медики, играть профессиональные футболисты не будут. Цена вопроса: две с половиной штуки с команды смотрите на сайте.

Завершающее напутственное слово: иногда стоит вылезать из-за компьютера. Это я себе :-)

Унисекс

В прошлом году был я с друзьями на какой-то укрсучлитской тусовочке, проходившей в ХНУ им. Каразина. Жадан, Доний — все дела. Выступала там одна девочка-поэт из Белоруссии. Или это была не девочка — мы гадали всё выступление, но так к согласию и не пришли. Как-то получилось, что то ли мы пропустили её (его) представление, то ли по имени и фамилии пол тоже был не идентифицируем. Бывает же такое: черты лица вроде как тонкие женские, но не настолько, чтобы можно было утверждать, что у смазливого юноши таких не может быть. Косметики на лице нет, но и девушки ведь тоже не обязаны краситься. Грудь через футболку не видна, но футболка настолько мешковатая, что маленькая грудь видна и не будет. Штаны на нём (ней) не сильно мужские, конечно, салтовский гопник такие не наденет, но алексеевский эмо оденет и не такие. Голос звонкий, не грубый, может принадлежать как М так и Ж до 19-ти лет от роду, не прокурившим его за сараем школы любимого гетто. Стихотворения — на белорусском, но всё понятно, нейтральные стихотворения о чём-то глупом без личности автора. Да и кто сказал, что поэт обязан писать стихи от своего пола? «Ой не мажора я люблю, а политзаключённого», — пела не какая-нибудь Диана Арбенина, а вполне себе Сергей Чиграков. Вот так и остался загадкой его (её) пол. Так и было задумано, видимо.

Geek Clock Plasmoid

geek-clock-plasmoid-screen-01Некоторое время назад в Интернетах обсуждали забавные часы, где на циферблате вместо цифр были оригинальные подписи из области математики, физики и компьютерных наук. Вчера я в рамках любви к KDE 4, написал эмулирующих их плазмоид. «Написал» сказано громко, так как писать пришлось мало (взял код обычных часов :)), больше рисовать. В общем, все интересующиеся могут посетить страничку проекта или страничку на kde-look. С пакетами для разных дистрибутивов пока что плохо (пытаюсь подружиться с openSUSE Build Service), есть только PKGBUILD для моего любимого Arch Linux.

Исходники само собой прилагаются, собрать не так уж и трудно (если, конечно, у вас имеется cmake и devel-пакеты для KDE 4 ). Делается примерно так (в директории, куда предварительно распакованы исходники):

cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
sudo make install

iPhone SDK Hint: перемещение элементов в UITableView

UITableView можно настроить так, чтобы пользователь имел возможность менять элементы таблицы местами, перетаскивая их. Естественно, на эти перемещения программа должна реагировать, внося соответствующие изменения в структуры данных, отображаемых в таблице.

Как использовать этот функционал достаточно внятно описано в документации, но есть небольшой нюанс. Если просто задать:

cell.showsReorderControl = YES;

для каждой UITableViewCell (и предварительно выставить для таблицы свойство editing в YES), то ничего не измениться. Для того, чтобы у ячеек таблицы действительно появился контрол, позволяющий перетаскивание, необходимо у UITableViewDataSource определить следующие методы:

- (BOOL)tableView:(UITableView *)tableview canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
	return YES;	
}

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath 
	toIndexPath:(NSIndexPath *)toIndexPath {
	
}

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

О студенческом самоуправлении

По просьбе трудящихся восстанавливаю пост от 20 мая 2007 года из моего старого, подчищенного блога. Текст приводится без изменений. Комментарии не восстанавливаю.

В пятницу мне довелось принять участие в одном институтстком мероприятии, называемом «Отчётно-выборная конференция Студенческого сената». Действующий (и, как будет ясно из ниженаписанного, продолжающий действовать) глава Сената Евгений Сакало (также известный, как zurov) посоветовал не просто поприсутствовать, но и принять участие в конференции, как делегата от своей группы: «Ведь с пятого курса всё равно никто не придёт, хе-хе». Так и случилось, не считая одного моего высокопоставленного (то ли заместитель главы, то ли какой-то там секретарь всё того же Сената) одногруппника, я был единственный «студенческий самоуправленец» от своей группы. По студенческому (просроченному, кстати) милая девушка у входа в актовый зал выдала мне страшный документ салатового цвета — мандат, и предложила самому его заполнить, что я и сделал. В поле «номер» я, как-то на автомате вписал «666» (не оригинально, но забавно). Читать далее

Свой /etc/hosts для каждой wi-fi сети (через NetworkManager)

Условия задачи: имеется ноутбук, тягаемый туда-сюда, как и полагается ноутбуку. Есть пара основных мест, где он бывает: дом и работа. И там и сям он подключается к локальной сети через wi-fi. И там и сям имеются некие сервера, которые из оружающего мира видны через внешний IP, а из локальной сети только через локальный IP (порты форвардятся на роутере) по некой причине, которую я сам не до конца догоняю, но поделать с этим ничего нельзя. Если вы находясь в той же сети, что и сервер, попробуете зайти на него, используя его доменное имя, а не прямой локальный IP, то вас ждёт облом, ибо DNS выдаст вам внешний IP. Решение есть такое: прописать всем компам в локальной сети в файле hosts локальный айпишник для заданных доменных имён. Для стационарных компов это сделано и забыто, но как быть с упомянутым выше ноутом?

Решение: под Виндой я написал скрипт, которым вручную переключал hosts на нужную сеть (скрипт просто копировал заранее подготовленный файл). Но вот недавно я после полугодового перерыва, вновь окунулся в чудесный мир Линукс (об этом отдельно) и подумал, что переключать руками как-то западло. Читать далее

Терминатор 4

Терминатор 4 — ужасен. Можно не смотреть. Насыщенность событиями — как в одной серии дешёвого sci-fi сериала. Сюжет можно изложить в трёх предложениях, два из которых есть в анонсе. Голливудские сценаристы продолжают однообразно фантазировать на тему «сигналов», «компьютерных сетей» и прочих типа современных технологичных штучек, в которых ни черта не смыслят. Надоело уже, честное слово.

Резюме: третья часть была лучше, если она вам не понравилась, то на четвёртую даже не стоит тратить времени.

Интернет-карта в «Приват Банке»

Если вдруг кто-то ещё не в курсе, то «Приват Банк» — говно. «Приват Банк» должен умереть. «Приват Банк» — говно.

У меня вот завелся год назад их продукт «Интернет-карта». Так уж получилось.  Ей можно расплачиваться в Сети, ни разу не было, чтобы где-то ей не приняли. Как я её заводил — это отдельная история. Это заняло две недели, включая подключение системы «Приват 24» для управления счётом через Интернет. Последнее — не блажь, а необходимость, потому как другого способа следить за состоянием своего счёта на данной карте нет, ибо она виртуальная, то есть представляет собой всего лишь номер, записанный на картонке, и в банкомат его не сунешь. А между тем, чтобы подключить «Приват 24», нужно (сюрприз!) воспользоваться соответсвующим пунктом меню в банкомате. Но в Привате об этом не удосужились подумать, а следовательно клиент вынужден проворачивать весёлый финт с заведением ещё одной, уже реальной, карты, её подключать к «Приват 24», а затем добавлять интернет-карту к своему эккаунту. Всё вместе — это весёлый квест с участием сотрудников банка и службы техподдержки.

Читать далее

Quake Live

quake_live

Quake Live — клёвая штука, если кто не играл. Она с конца февраля находится в открытом бета-тестировании. Это практически тот же самый Quake 3 Arena, только MMO.

Сама игра — это как бы плагин к браузеру (Internet Explorer и Firefox), то есть надо этот плагин предварительно установить. Для FF по крайней мере так, под IE это, скорее всего работает как ActiveX компонент, то есть его сам IE и установит. Да-да, пока только Windows, но Mac OS X и Линукс на подходе.

После установки проходим 10-тиминутную «практику», на основании которой игра определит наш уровень навыков. После чего из списка доступных игр выбираем подходящую. При этом нам показывается уровень участвующих в ней игроков: насколько он выше или ниже нашего. Выбираем, жмём «Play» и играем.

Читать далее

Не содержит ГМО

С рамках подготовки к кризису, сажал сегодня картофель. Средство против колорадского жука (используется нами впервые) выглядит стрёмно, но по слухам крайне эффективно (фото кликабельно):

Стрёмная жидкость

А вот ГМО таки не содержит. Приятного аппетита:

Приятного аппетита

Иллюстрируем метафоры из песен

forever_young

Умка и Броневик — «Поздно пить таблетки» (видео).

Места для детей и инвалидов
Места для вечно молодых
Вход-выход — он же вдох и выдох
Подох — получай поддых

(альбом «Заначка»)

Det sjunde inseglet

seventhsealposterСегодня сходил в киноклуб родного ХНУРЭ. Там должна была быть какая-то комедия Вуди Аллена, но с ней чего-то не сложилось и смотрели «Седьмую печать» Ингмара Бергмана. Уже не помню почему, но недавно как раз хотел его посмотреть.

Послефильмовое обсуждение не сильно сложилось, зато сложилось обсуждение с Алексеем.

В первую очередь, главные герои напомнили героев любимого мной сериала «Рим» — кто не видел, тот лох рекомендую. Схожесть даже внешняя: оруженосец так вообще копия Тит Пуло. А вообще это сильный, хоть и простой образ людей прошедших через бессмысленную войну (война всегда бессмысленная: хоть за Родину, хоть за Гроб Господень). Эти люди видели смерть так близко, в таком количестве и разнообразии, что умирать разучились. Наш Данила Багров — из той же серии.

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

Такие люди в фильме это рыцарь Антониус Блок, переживающий кризис веры, и его оруженосец-атеист. Они прошли 10 лет Крестового похода, они уже сверхлюди. Или просто единственные Люди среди тёмного Средневековья, погрязшего в предрассудках и религиозном мракобесии.

И нет, Бергман не хотел показать, что семья бродячих артистов спаслась, потому что предпочли «семью» разборкам с вечностью. Они, блядь, спаслись, потому сверхчеловек Антониус спас их. Он сделал так, чтобы они, плоть от плоти обывательской средневековой глупости, жили, а он умер, проиграв смерти. Такова его сверхчеловеческая участь, но по-другому он не мог.

Англия vs Украина: впечатления

По результатам матча Англия-Украина критиковать мне почему-то хочется сборную Англии, которая никак не избавиться от своих «детских болезней». Хоть и взяли себе в тренеры сурового итальянского парня (опять не англичанин), творца успехов «Ромы» в третьем тысячелетии, толку, похоже, мало. Рискну предположить, что на ЧМ в Южной Африке англичане вновь ничего не покажут, а точнее: позорно сольют.
Читать далее

Крутой развод вКонтакте

С каким крутым разводом для вКонтакте сегодня встретился. Приходит личное сообщение:

приветик, Виталий помогай, голосуй за меня http://super-gold.ru/583316.html, очень прошу, я почти на первом месте, не верится даже)

Я подумал: ссылка вроде выглядит безобидно, чего бы и не заценить очередную глупость.

Жесть в том, что заходишь, а там и правда страничка, где мой друг-которому-сломали-эккаунт изображен на втором месте всего в 10-ти голосах от первого. Номер в конце ссылки «583316» — это его id в контакте. Если подставить другое id, к сожалению, говорит, что «Sorry, site is temporarily unavailable. Please try again later», а жаль, я было попытался увидеть себя на 2-м месте :) Голосовать, понятное дело, хитровыебано по SMS, при чём честно предупреждают, что цена 5 рублей (на самом деле, конечно, хз сколько).

Заявление типа «Не попадитесь!» не делаю — сами умные :) Интересно, сколько пацаны заработали? Скрин странички для потомков: Читать далее

Дурак для iPhone

Видео программы, которую я делал последние пару месяцев. Каминг, ну буквально, вери сун. Спешите видеть на своих айфонах. Русская локализация тоже будет. Мультиплейер по wi-fi до 4-х человек. Можно играть в «переводного» или классического «подкидного».

UPD. Старое видео удалили, ниже пара других, сделанных уже пользователями (да-да, игра уже вышла):

И ещё одно:
Читать далее

iPhone SDK: сборник подсказок

Вот уже полгода я занимаюсь разработкой под iPhone. За это время я недалеко вышел за пределы необходимого при написании OpenGL-игр и не стал большим знатоком Objective C, так как имею возможность писать всё на любимом C++. Тем не менее, регулярно попадались достаточно специфичные задачи. В этой записе собраны некоторые подсказки осваивающим платформу, да и мне самому на будущее, как некоторые из таких задач решать. Всего 5 пунктов.

1. Как обработать изменение ориентации устройства?

Задача: нужно обрабатывать изменения положения устройства в пространстве на предмет того, как сейчас пользователь держит его в руках. Вертикально, горизонтально, какой край сверху, а какой снизу? Читать далее

«Металлист»: перспективы и пустые ворота

Александр Горяинов (фото с официального сайта ФК Металлист)

Прошла вот уже почти неделя после вылета «Металлиста» из Кубка УЕФА. В качестве своего первого поста на футбольные темы, подведу запоздалые итоги.

Металл в Кубке УЕФА прыгнул выше головы — это несомненно. Динамо оказалось объективно сильнее — так и есть. Обо всём этом уже было сказано. Сезон для клуба был без преувеличения историческим. Для того, чтобы этот факт был подтверждён чем-то весомым (статистика достижений в Кубке УЕФА, хоть и впечатляет, но через время сотрётся в памяти) , сейчас Металлисту необходимо сконцентрироваться на достижении двух вполне реальных целей: Кубок Украины и второе место в чемпионате.

Кубок — трофей не суперпрестижный, но выигрывал его кроме Динамо и Шахтёра только Черноморец. Что касается ЧУ, то догнать Шахтёр за 9 туров реально, хотя и верится в это с трудом.

Неожиданно, оказалось, что у Металлиста помимо постоянных проблем с запасом полевых игроков, вернее, его отсутствием, есть проблема вратаря. Читать далее

Визуализаторы в Microsoft Visual C++

Microsoft Visual Studio я считаю лучшей из доступных IDE для разработки C++, которой в основном и занимаюсь. И это при том, что я являюсь идеологическим противником корпорации из Редмонда. Просто IDE для Линукса слабы. Вообще все решения в этой области, основанные на GCC провальны из-за дебаггера. Не знаю, то ли GDB настолько плох, то ли никто не в состоянии нормально встроить его в IDE, то ли он просто идеологически для этого не предназначен. Eclipse c CDT монструозен и тормознут. Vi или emacs с командной строкой и make, которое сразу же посоветует какой-нибудь Линукс-джедай, я лично осилить до того уровня производительности, что имею в MSVS, не в состоянии (а в состоянии ли вообще кто-то?). Впрочем, справедливости ради отмечу, что не сильно-то я и старался.

Альтернативные среды вроде Code::Blocks и Dev-Cpp, когда я последний раз смотрел, были в очень зачаточном состоянии. Вот сегодня скачал первую, собираюсь пересмотреть ещё раз — вдруг что-то изменилось. Но всё это тема для отдельного долгого разговора, перерастающего в холивар. А этот пост именно о Visual C++ и одной её полезной и практически не документированной фиче, на которую я недавно набрёл. Это — кастом визуализаторы (custom visualizers) для переменных — то, что разработчик видит в панельке Watch во время отладки программы. Вещь очень удобная и сильно облегчающая жизнь, если вы, например, как и я, любите писать «велосипеды» в виде собственных библиотек, или вообще часто используете какую-нибудь стабильную библиотеку/фреймворк/движок со своими, сложными для быстрого понимания as is в отладчике, типами данных.

Читать далее

Я и жестокий мир украинской IT-индустрии (часть 1)

Расскажу, как складывались мои отношения с IT-индустрией. Будет много лирических отступлений, на темы которые не касаются лично меня — это не расширенное резюме, а взгляд на окружавшую меня действительность: людей, компании, проекты. Будут названы реальные имена, озвучены, возможно, не самые лицеприятные для кого-то факты, некоторые из них могут оказаться домыслами, а высказанное мнение может быть крайне субъективным и не соответствовать Вашему. Извините.

Читать далее