If a C programmer asks "do you want to see something cool?", run away.
--John Van Enk

Saturday, April 27, 2013

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

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

#1 - не могут у IT-шников в Украине быть такие зарплаты

меня очень умиляют люди которые постулируют такие тезисы и не понимают что:
  • есть "невидимая рука" рынка, и зарплаты будут расти пока рынок не прийдет в равновесное положение
  • никакие "сотрясания воздуха", картельные сговоры, лоббирование не помогут - человек предоставляющий IT услуги интегрирован в большинстве своем в глобальную IT индустрию которой в общем-то плевать на национальные границы отдельных государств, точно так же как то что IT-шник находится на територии отдельно взятого государства - не имеет никакого значения будет это Украина или там, скажем, Таиланд. Будут "давить", - персональные тракторы нынче дешевые, будут "договариваться" работодатели между собой - удаленная работа на компанию с другой юрисдикцией и т.д.
часто приводят примеры других профессий. приведу и я несколько примеров так сказать из личного опыта - то с чем столкнулся в процессе ремонта дома (не может быть у программиста такая ЗП говорите? ну-ну...):
  • хороший сантехник - спаять один узел системы отопления из полипропиленовых труб ~ 10$, временные затраты - 10-15 минут, почасовый рейт 40-60$ (я плюнул, пошел купил паяльник за 30$ и за пару вечеров сделал сам теплый пол и отопление в коридоре ) + имеет значение объем (небольшой объем часто отклоняют)
  • электрик - 15$ "точка" - минут 30 по времени (установка розетки) - без учета разводки проводов по дому и пробивки штроб - почасовый рейт 30$
  • кирпичная кладка - 1,5-2 грн кирпич, хороший каменщик за 8 часовой день может выложить порядка 1000 шт - почасовый рейт ~ 30$

ради интереса можете поинтересоваться сколько стоит  тепловой насос на 10-20 кВт с установкой (ну или на худой конец - ветроэнергетическая установка на 5 кВт) - я вот плюнул и сказал жене что если хочет эту штуку, то пусть вспоминает термогазодинамику и тепломассообмен и рассчитает ее сама :); - а все почему? - потому что высокий наукоемкий вес подобных разработок и спрос превышает предложение, вот рынок и пришел к равновесной цене (хотя вобщем-то расчитать лопасть ветряка в состоянии студент 3-го курса по заранее составленным методикам).
Вывод - не нравятся дорогие айтишники? - делайте сами дешевле (ну или радикально увеличивайте колличество айтишников на рынке - тогда он качнется в другую сторону)

#2 - 23-летние синйоры

Есть в украинской IT среде такой мем - 23-летние Senior Sofware Developers. А все почему? - находит аутсорсер клиента (или клиент находит аутсорсера), а тот ему и говорит:

- Мне нужен Senior Software Developer to blah-blah-blah
А аутсорсер ему такой:
- Это стоит xyz денех
Клиент:
- З@..бись, дайте два!
Аутсорсер:
- Ок, будет тебе 2.

... и начинает искать... Надо ли говорить что нормальные инжинеры уже давно расхватаны? где ж их взять-то синьйоров, тем более сразу 2х. И начинает Аутсорсер придумывать разные "схемы" из серии "А давай мы наймем джуниора или двух и продадим их как одного синьйора?" или "А давай мы возьмем мидла и тоже продадим его как синьйора (но платить будем как мидлу)" - дабл профит. Так и рождаются 23-летние синьйоры.

Вывод: Аутсорсеры, перестаньте обманывать своих клиентов и заниматься наебизнесом - вы же динозавры и вымрете рано или поздно так же как и они, если не эволюционируете в добрых и пушистых зверьков

Thursday, April 4, 2013

Opensource It!


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


Wednesday, April 3, 2013

Kharkiv Ruby Meetup, April 13th

Друзья из Ainstainer устраивают Ruby Drink-up. Фотки с предыдущих встреч можно посмотреть в Facebook.

Где: Харьков, Клуб «Пинтагон», ул. Данилевского, 26 («Слободская усадьба»)
Когда: 13 апреля 2013 (суббота), начало в 12:00
Пропуск: Вход бесплатный, по предварительной регистрации здесь.

 Приходите, я с большой вероятностью тоже там буду :)

Thursday, March 14, 2013

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

Google собирается закрыть Google Reader :(. Что-то мне подсказывает, что многим из вас это может быть не безразлично

Прежде чем переносить свои подписки в другие ридеры возможно стоит попытаться сохранить Google Reader. Подпишите петицию или эту, напишите пост в блог и попросите ваших читателей тоже подписать ее, в твиттере  и  И к стати да, Google Reader в трендах твиттера выше нового Папы Римского ))


Если твиттер мне природу заменил RSS то почему люди используют твиттер чтобы высказать свое мнение относительно закрытия ридера? К стати, хороший пост на Mashable.

Wednesday, January 30, 2013

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).

Thursday, January 24, 2013

Ruby Concurrency Notes

Ниже мои заметки (именно заметки, без претензии на пост) по тематике обозначенной выше - тезисно.

Похоже все согласны с тем что хорошие примеры concurency done right - это продукты вроде Erlang и Scala.

Версии Ruby и поддержка concurrency:
Concurrency models:
  1. Thread - тут все более менее понятно
  2. Fiber - cooperative scheduling, если один фибер закончил работу передает управление следующему
  3. Reactor pattern - IOC, сложнее для понимания, представлен в виде библиотек http://rubyeventmachine.com/ (libevent), https://github.com/celluloid/celluloid-io (libev). У первой есть свои gotchas (например behaviour после того как в одном из потоков threadpool бросается исключение), со второй пока что не приходилось работать. Есть https://github.com/igrigorik/em-synchrony - позволяет завернуть evented код в fibers и он будет выглядеть как обычный - не evented (оставаясь при этом evented) - некоторым нравится. Есть веб фреймворки (http://cramp.in/) и веб сервера (https://github.com/celluloid/reel, Thin, Goliath)
  4. Proactor pattern - что-то похожее есть в https://github.com/methodmissing/eio но чистой реализации не встречал. keep in mind
  5. Actor pattern - есть в rubinius via https://github.com/rubinius/rubinius-actor, есть celluloid.io (https://github.com/celluloid/celluloid). Celluloid интересен тем что под своей крышей https://github.com/celluloid объединяет несколько проектов каждый из которых интереснее предыдущих (https://github.com/celluloid/dcell, https://github.com/celluloid/reelhttps://github.com/celluloid/lattice). Если JRuby то можно использовать один из Java фреймворков вроде http://akka.io/http://rubyforge.org/projects/concurrent - keep in mind
  6. CSP/Pi Calculushttps://github.com/igrigorik/agent
  7. Software transactional memoryhttp://moonbase.rydia.net/software/ruby-stm/ruby-stm.git/
  8. Dataflowhttps://github.com/larrytheliquid/dataflow
Видео

Monday, January 21, 2013

пару мыслей об 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