Skip to main content

Posts

C++17 Books

Долго ждал обновления C++ Templates и наконец оно вышло -  C++ Templates: The Complete Guide 2nd Edition, Kindle Edition .  На сайте книги сказано что издание покрывает C++11, C++14 и C++17. Первое издание мне понравилось, пожалел что не прочел его до книги Александреску. Кроме того, Nicolai M. Josuttis работает над C++17 - The Complete Guide , которую обещает публиковать по частям на Leanpub .

О найме

В последнее время все популярнее становится разнообразные ИТ профессии и так как мне, так уж сложилось, больше приходилось собеседовать кандидатов чем собеседоваться самому то напишу ка я краткий список того что я ожидаю от кандидата на всех этапах - от резюме и до самого собеседования. Резюме Основная задача резюме - "продать" вас рекрутеру. Большинство рекрутеров не отстреливают в технологиях и легко могут перепутать Rust с REST (true story) и при просмотре резюме/профиля в Linkedin ориентируются на buzzwords. Если искомый buzzword найден (пусть будет React, full-stack) то дальше такое резюме/профиль пересылается кому-то из комманды в которую нужно нанять человека и кто понимает в технологиях. Если этот человек я - то я смотрю на наличие релевантного опыта с интересующими технологиями. Большинство рекрутеров почему-то считает что опыт измеряется годами. Я считаю что опыт измеряется колличеством траблов/челенджей которых пришлось разрешить на предыдущих проектах. Если ...

Интересности #1

Build a digital clock in Conway's Game of Life Статья  Let’s stop copying C  и ответ на нее  Let’s Stop Bashing C Where’s the Template?  - работая над модернизацией galib наткнулся на разные модели инстанцирования шаблонов, больше имеет исторический интерес, наверное. Наша Вселенная просто потрясающе большая, ум даже отказывается адекватно воспринимать подобные размеры.  humanity is not the only time technological intelligence has evolved SEI CERT C++ Coding Standard по объему больше чем книга  The Rust Programming Language   Читаю http://maxim.livejournal.com но не понимаю

c++ ecosystem pain points

Последние несколько месяцев я снова связан с разработкой на C++ (и C). Пришлось вспоминать подзабытые навыки и приобретать новые знания. Будучи причастным к ruby community последние несколько лет и немного к Go позволяет взглянуть на разработку на C++ несколько под иным углом. Основное наблюдение - большое колличество времени тратится не продуктивно.

Go, Ruby, C++, etc

Совсем разучился писать что-то кроме спецификаций :) Go Попробовал Golang в продакшене (в прошлом году). Поначалу было непривычно пока не грокнул golang way (ну или я так думаю что грокнул). Итого несколько sidekiq воркеров запускающихся по расписанию которые генерили репорты для HP ArcSight и неслабо нагружали сервер были заменены на streaming report generaion service написанный на Golang который работает 24/7/365 и потребляет ресурсов в десятки раз меньше. Помимо этого умеет обрабатывать ситуации вроде дисконнекта RabbitMQ или postgres. Выводы :

cmdlnzen

tl;dr: zsh + oh-my-zsh + tmux + tilda Долго искал консольный zen и похоже таки нашел около года назад, вспомнил что есть блго, где это можно написать :). Обычно в ходе работы мне было необходимо держать открытыми несколько консольных окон с разным безобразием вроде логов веб сервера и минимум одним запущенным шеллом для запуска разных задач. Ну и соответственно возникала необходимость постоянно переключаться между окнами, а Alt-Tab переключатель в XFCE "умнее" меня и в итоге вместо нужной мне консоли открывал то окно Firefox, то gvim, то консоль но "не ту" - приходилось смотреть на названия окон, гонять переключатель по второму кругу и т.п. Попытался как-то это все консольное имущество спихнуть на соседний рабочий стол - частично проблема решилась, но, опять таки, начальная "мышиная" возня с запуском, тайлингом в "ручном" режиме - все равно не то. Хотелось чтоб как в vim - табы и сплиты. Попробовал terminator - почти, но "не оно"...

2013 year in review & plans for 2014

Очередная попытка подвести итоги ушедшего года и попытаться поставить цели на следующий год. О работе В этом году, после поглощения компании-заказчика, закрылся проект, над которым я работал последние несколько лет и я уволился. Новую постоянную работу с ежедневными поездками в офис и прочими прелестями аутсорса решил не искать, тем более, что до этого у меня уже был определенный опыт консалтинга и фриланса. Решил попробовать этот путь - посмотрим куда он меня приведет, надеюсь к собственным проектам, идеи которых уже который год крутятся у меня в голове. О семье Сыну исполнился год, дочери 3, круто быть практически 24/7 рядом и видеть как они растут. Клиенты с пониманием относятся, когда они им в скайп-чат отправляют крякозяблики :). О гаджетах года В семье, наконец-то, поселилось 2 андроида у жены, после того как сын заслюнявил ее телефон так, что он сломался окончательно и бесповоротно. Учитывая предыдущий опыт, купили  Motorolla Defy Plus защищенный по IP67 и какую-т...

зарплаты программистов, 23-летние синьйоры и т.п.

Не такой уж редкий, но уж больно феерический срач на DOU - Зарплатные войны украинского аутсорсинга (в догонку к Зарплатная экономика и Статья Павла Обода ) - самое оно почитать в пятницу. Вот зачитался комментами и решил в 3 утра написать в блог касательно затронутых тем. #1 - не могут у IT-шников в Украине быть такие зарплаты меня очень умиляют люди которые постулируют такие тезисы и не понимают что: есть "невидимая рука" рынка, и зарплаты будут расти пока рынок не прийдет в равновесное положение никакие "сотрясания воздуха", картельные сговоры, лоббирование не помогут - человек предоставляющий IT услуги интегрирован в большинстве своем в глобальную IT индустрию которой в общем-то плевать на национальные границы отдельных государств, точно так же как то что IT-шник находится на територии отдельно взятого государства - не имеет никакого значения будет это Украина или там, скажем, Таиланд. Будут "давить", - персональные тракторы нынче дешевые, бу...

Opensource It!

Это какой-то opensource rage - Raven Software выложила на олдскульно-хардкорном ламповом SourceForge (когда-то были времена, когда за опенсорсом ходили не на социальный гитхаб а на sf.net) исходники Jedi Outcast и Jedi Academy . Всем приятного пятничного чтива )).

Kharkiv Ruby Meetup, April 13th

Друзья из Ainstainer устраивают Ruby Drink-up . Фотки с предыдущих встреч можно посмотреть в Facebook . Где: Харьков, Клуб «Пинтагон» , ул. Данилевского, 26 («Слободская усадьба») Когда: 13 апреля 2013 (суббота), начало в 12:00 Пропуск: Вход бесплатный, по предварительной регистрации здесь .  Приходите, я с большой вероятностью тоже там буду :)

#google is killing #reader -> take action #savegooglereader #keepgooglereader

Google собирается закрыть Google Reader :(. Что-то мне подсказывает, что многим из вас это может быть не безразлично Прежде чем переносить свои подписки в другие ридеры возможно стоит попытаться сохранить Google Reader. Подпишите петицию  или эту , напишите пост в блог и попросите ваших читателей тоже подписать ее, в твиттере  # savegooglereader  и  # keepgooglereader И к стати да, Google Reader в трендах твиттера выше нового Папы Римского )) Если твиттер мне природу заменил RSS то почему люди используют твиттер чтобы высказать свое мнение относительно закрытия ридера? К стати, хороший пост на Mashable .

MongoDB Gotchas Follow-Up

И пол года не прошло, дошли наконец руки написать продолжение эпопеи с Mongo . В общем на радостях, что получили прирост 30% на двух шардах решили мы это дело выкатить в стейджинг и потестить на реальном датасете. На реальном датасете прирост производительности равнялся 0%. Но т.к. новый монго уже вышел на тот момент, а распределение данных по шардам достаточно дорогостоящая операция, то решили задеплоить 2.2 на стейджинг и тоже погонять на живых данных. Изменить PATH в init.d скрипте дело не хитрое и деплоймент занял минут 5 вместе закачкой. Тестирование показало, что производительность осталась примерно на том же уровне. В общем javascript так и остался однопоточным и map(), reduce(), sort() так и выполняются в одном и том же потоке, не смотря на все чаяния и надежды ( http://docs.mongodb.org/manual/faq/concurrency/#faq-concurrency-operations-locks ).

Ruby Concurrency Notes

Ниже мои заметки (именно заметки, без претензии на пост) по тематике обозначенной выше - тезисно. Похоже все согласны с тем что хорошие примеры concurency done right - это продукты вроде Erlang и Scala. Версии Ruby и поддержка concurrency: JRuby 1.6+ (true concurrency via JVM) Ruby MRI 1.9.3 (native threads, GIL, примитивы - Thread, Fiber, Actor, GIL из-за This decision maybe makes us happy because we can run most of the extensions written in C without any modifications  - т.е. видимо эти C-extensions are not thread safe. Обещали Multi-VM в YARV для победы над GIL) Rubinius 2.0+ (true concurrency, no GIL, fine grained locks, примитивы - те же что и у MRI 1.9.3) Concurrency models: Thread - тут все более менее понятно Fiber  - cooperative scheduling, если один фибер закончил работу передает управление следующему Reactor pattern - IOC, сложнее для понимания, представлен в виде библиотек  http://rubyeventmachine.com/  ( libevent ),  https://githu...

пару мыслей об Ubuntu Phone

Возможно смарт с этой ОС на борту станет первым смартом, который я себе куплю, если это та же ОС с dm-crypt, GPG, openvpn, etc. До сих пор я все время отговаривал себя от покупки чего-то под управлением Android из-за security & privacy concerns. Современные смарты знают об их владельцах много, но не в состоянии эту информацию защитить от третьих лиц (продуктами Apple я не пользуюсь, насчет remote lock & remote wipe через iCloud нужно дополнительно уточнить). А так - зашифровал файловую систему и все - за сохранность данных можно не беспокоится (если успеешь выключить конечно, ну или хранить особо ценные данные на отдельном партишене, который подключать при необходимости), защищенные каналы коммуникации через GPG enabled email, IM OTR , защищенный канал через openvpn. Определенно на мой взгляд стоит того чтобы попробовать. P.S. а еще наверное туда можно BackTrack воткнуть, превратив ubuntu phone тем самым в hacker phone

happy 0xFF!

Всех причастных с Днем Программиста. Всем больше больших  и интересных задач ну и конечно же - изменить этот мир еще чуточку в лучшую сторону в следующем году :) P.S. В такой день среда считается за пятницу :)

MongoDB MapReduce & Sharding Gotchas

tl;dr: это б....дь п........ц Ну а те кто хочет прочесть историю печальную сию - ниже ее изложение. Итак, "посчастливилось" мне попробовать MongoDB в реальном проекте (больше такого счастья не хочется почему-то). Основа проекта - бэкенд который делает интенсивный data crunching и расчет различных метрик основываясь на данных, которые хранятся в монго. Ну а поскольку в версии 2.0.x монго единственный способ делать агрегацию данных (sum, avg, etc) - MapReduce то именно при помощи его все это и считается. Одна незадача - статистика роста количества входных данных показывает что если все оставить как есть и ничего не менять то в ближайшем будущем упремся в потолок - для подсчета статистики и метрик будет уходить более суток, что не приемлемо. Соответственно возникла задача все это оптимизировать/отмасштабировать чтобы "считалось быстрее" и "все были счастливы" (product owner и customer'ы). С этого и началась моя "эпопея", которой могут позав...

Declaration of Internet Freedom

Подписал Declaration of Internet Freedom . Свой голос поставил здесь . Это очень важно, особенно в свете мирового заговора   последних событий  (ненужное зачеркнуть) в ООН . DECLARATION W e stand for a free and open Internet. We support transparent and participatory processes for making Internet policy and the establishment of five basic principles: Expression:  Don't censor the Internet. Access:  Promote universal access to fast and affordable networks. Openness:  Keep the Internet an open network where everyone is free to connect, communicate, write, read, watch, speak, listen, learn, create and innovate. Innovation:  Protect the freedom to innovate and create without permission. Don’t block new technologies, and don’t punish innovators for their users' actions. Privacy:  Protect privacy and defend everyone’s ability to control how their data and devices are used.

Cypherpunks

Если вы еще не знали, то Джулиан Ассанж (да-да, тот самый основатель Wikileaks ) -  один из шифропанков - людей которые хотят чтобы ваши приватные данные и дальше оставались приватными не без помощи криптографии. Недавно на RT вышел эпизод в двух частях, посвященный этой тематике ( http://assange.rt.com/cypher-punks-episode-eight-pt1/  ,  http://assange.rt.com/cypherpunks-episode-eight-pt2/ ). Я в общем-то тоже шифрую жесткие диски (не потому что мне оно нужно, а потому что могу), потому эпизод и дискуссия показалась мне достаточно интересной. А на LWN тем временем обсуждают щекотливую тему распространения GPL кода в ракетах (милитари)  -  Assume that someone fires a cruise missile on you and that there is a GPL component in the cruise missile.

cat /dev/noise | grep signal

Вы все успеваете прочесть из того что попадает к вам в новостную ленту через гугл ридер, твиттер, фейсбук, etc.? А сколько из прочитанного стоило времени потраченного на прочтение? Я вот тоже не успеваю читать все, а прочитав что-то частенько жалею что потратил время впустую. Поэтому озадачившись этим вопросом некоторое время назад, я начал искать решение. Как обычно, оно оказалось старо как мир. Да, новостные рассылки - самое оно. Все началось с новостной рассылки Питера Купера потом питонистам и джанговодам возможно будут интересны любителям HackerNews ну и  DOU , конечно же (куда ж без него) Преимущество подобных списков рассылки в том, что кто-то фильтрует информацию вместо вас, а вы тем самым экономите свое время. Еще почитать: Smashing Magazine - Email Newsletters Worth Subscribing To

Месяц с Unity или "В Поисках Идеального Десктопа"

    tl;dr - sudo apt-get install xubuntu-desktop     Не так давно установил на рабочую машину последнюю версию Ubuntu (был повод - настройка full encrypted hdd через dm-crypt "на всякий случай", а случаи как известно бывают разные), однако я и не подозревал о тех радикальных новшествах, которыми меня встретит давно казавшийся привычным и родным десктоп. Я изначально не был в восторге от Unity еще на "стадии скриншотов", но так как в новой Ubuntu эта рабочая среда была по дефолту, то я, сказав себе "ладно, предположим что Canonical как и Apple действительно лучше меня знает о том, что мне действительно нужно" решил честно месяц проработать в этой среде, чтобы прочувствовать "все прелести этой жизни" все достоинства и недостатки ее на себе.     Скажу сразу - недостатки в моем случае перевесили :). Из достоинств нужно пожалуй отметить все те новшества, которые были внедрены с целью экономии вертикального пространства на экране, что навер...