Pull to refresh
0
0
Ivan Marchenko @Cranberry

Software Engineer

Send message

В России плохо жить, даже если ты разраб. Но я все равно отказываюсь от релокейта

Reading time 6 min
Views 106K


Несколько лет назад я читал на Хабре про скандал разраба Алексея Адамовского с компанией Xored. Липкий кейс, компания не заплатила человеку деньги, и для меня сразу стал очевиден главный враг в этой истории. Непонятно было другое. Адамовского наняли работать в новосибирском офисе компании, а он очень хотел поработать в пражском. За те же деньги. Кое-как уговорил их и уехал туда. В целом его право, но меня тогда очень задело другое — неужели человек настолько ненавидит жить в РФ, что готов смотаться отсюда на любых условиях?
Читать дальше →
Total votes 354: ↑260 and ↓94 +166
Comments 1181
Все началось с того, что я создал аккаунт на микростоке и начал набивать его фотографиями из своего большого домашнего архива, где отсортированными от дублей и брака хранились несколько десятков тысяч снимков. Жареным запахло практически сразу — и тогда я постучался за советом к тем, кто живет микростоками уже как минимум лет десять.
Под катом — уроки, выученные новичком, и советы двух «старичков»
Total votes 34: ↑33 and ↓1 +32
Comments 12

Про рынок ИТ в России по-честному

Reading time 16 min
Views 158K
В последние несколько лет мои переживания по поводу российского рынка ИТ только усиливались. Все началось с кризиса рубля 2014 года (а может, и раньше), и с тех пор меня не покидает ощущение, что многие российские компании, особенно провинциальные, завязали себе глаза, заткнули ватой уши и все еще пытаются сделать вид, что ничего не происходит. Я много общался с разными компаниями, с HR, с разработчиками, и составил список неутешительных тезисов о том, что представляет собой как программистский рынок, так и культура разработки в целом, ведь это вещи взаимосвязанные. По моим субъективным оценкам, эти тезисы справедливы для ~60% российских компаний, хотя, казалось бы, те другие 40% компаний, которые мы знаем и любим, должны были заставить задуматься. Но я очень подозреваю, что это эти 60% просто надеются на русский “авось”, и подвергаются так называемой willful blindness, а иногда и намеренно мутят воду. Итак, по-честному, что же происходит?

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

Дисклеймер 2. В статье приводится собирательный образ. Вряд ли стоит ожидать, что есть стопроцентное совпадение хотя бы с одной компанией. Те или иные черты могут встречаться там или здесь; важно не то, что есть какие-то конкретные компании с этими проблемами. Важно то, что сами по себе проблемы существуют, и о них надо говорить.
Читать дальше →
Total votes 281: ↑250 and ↓31 +219
Comments 1833

Руководство по Node.js, часть 7: асинхронное программирование

Reading time 14 min
Views 47K
Сегодня, в переводе седьмой части руководства по Node.js, мы поговорим об асинхронном программировании, рассмотрим такие вопросы, как использование коллбэков, промисов и конструкции async/await, обсудим работу с событиями.



Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 31

Замыкания в JavaScript для начинающих

Reading time 8 min
Views 86K
Замыкания — это одна из фундаментальных концепций JavaScript, вызывающая сложности у многих новичков, знать и понимать которую должен каждый JS-программист. Хорошо разобравшись с замыканиями, вы сможете писать более качественный, эффективный и чистый код. А это, в свою очередь, будет способствовать вашему профессиональному росту.

Материал, перевод которого мы публикуем сегодня, посвящён рассказу о внутренних механизмах замыканий и о том, как они работают в JavaScript-программах.

Читать дальше →
Total votes 29: ↑25 and ↓4 +21
Comments 54

7 советов о том, как получить больше от Google AdWords

Reading time 4 min
Views 1.7K
image

Всем известно, что службы контекстной рекламы, такие как Google AdWords, основываются на принципах аукциона. Но на самом деле все не так просто. Повышение вашего показателя качества (Quality Score) означает, что вы будете тратить меньше, а получать больше посетителей на ваш сайт.

Допустим, что ваш Google AdWords бюджет составляет 50 000$ в год. Вы конкурируете с гораздо более крупными компаниями, имеющими рекламные бюджеты гораздо выше вашего. Зачастую это означает, что они могут купить гораздо больше ключевых слов из тех, которые вам нужны, чем вы.

Но это не всегда так.
Читать дальше →
Total votes 45: ↑35 and ↓10 +25
Comments 14

Трафик из Яндекс.Директ: грузите посетителей по центу

Reading time 5 min
Views 41K

Можно ли приводить много заинтересованных посетителей из Директа по 30 копеек за посетителя? Можно и нужно, особенно, если ваш ресурс только встает на ноги и нужно быстро и недорого привести на сайт заинтересованных людей.

Это – пошаговое руководство для тех, кто хочет знать, каким боком из Яндекс Директ (на вполне законных, между прочим, основаниях) привлекать недорогой трафик по 0.01 у.е или 30 копеек за переход.
Читать дальше →
Total votes 122: ↑116 and ↓6 +110
Comments 59

N+1 полезных книг о бизнесе

Reading time 9 min
Views 229K
В топике блиц-обзор книг, которые будут полезны IT-специалистам, бизнесменам и тем, кто собирается открыть своё дело. Рядом с каждой — короткие пояснения, почему и зачем стоит прочесть.

Отобраны лучшие 10% из примерно 200 прочитанных книг о маркетинге, продажах и всем связанном — самые «пробивные» вещи, которые помогут вам не тратить время на всякий шлак, а сразу начать с главного.

В конце — суммация книг, которые хабровчане рекомендуют в комментариях помимо основного списка.

Читать дальше →
Total votes 148: ↑137 and ↓11 +126
Comments 131

Вы разработчик? Так почему вы до сих пор на кого-то работаете?

Reading time 8 min
Views 11K
Как разработчик, вы сидите на золотой жиле. Вы осознаете это?

Нет, серьезно, на @#$% золотой жиле! Никогда в истории не существовало возможностей так легко создать что-то с нуля, с маленьким или отсутствующим начальным капиталом и маркетинговой моделью, ограниченной только вашим воображением.

Подумайте о крупнейших сайтах, которые вы постоянно посещаете: Facebook, Twitter, Flickr, Foursquare, или даже Google — все они были созданы разработчиками, у которых была лишь идея. Было ли это легко? Черт, нет. Но это могло быть сделано только в наше время. Так, черт побери, почему вы просиживаете день за днем, работая на кого-то?
Читать дальше →
Total votes 306: ↑232 and ↓74 +158
Comments 214

IT факультет Стэнфорда — мои впечатления

Reading time 4 min
Views 27K
В далеком 2006-ом году я, в течении полутора месяцев, работал на факультете компьютерных наук (Computer Science Department — cs.stanford.edu) в Стэнфордском университете (Stanford University). Стэнфорд является одним из лучших университетов США и всего мира, а факультет компьютерных наук заслуженно считается кузницей кадров для Кремниевой долины. Из него вышли основатели основатели Sun, Yahoo, Google и многих других небезысвестных ИТ компаний. Кстати, с основателями гугла Сергеем Брином и Ларри Пейджем произошла занимательная история. Изначально поисковый движок находился на поддомене университетского сайта, но когда его трафик превысил половину всего трафика университета, основателей Гугл мягко попросили перенести их поисковую систему с чего и началось их независимое плавание. В общем, университет произвел на меня неизгладимое впечатление, поэтому хоть и с запазданием, хочу поделиться фотографиями и своим мнением.

Читать дальше →
Total votes 99: ↑95 and ↓4 +91
Comments 48

Целебное зелье для IE5+ или IE7.js

Reading time 2 min
Views 7.1K
Разбирая код очередного проекта внутри тега head наткнулся на интересный код:

<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta3)/IE9.js"></script>
<![endif]-->

Только одно слово «IE9» меня пустило в замешательство. Первое что пришло мне в голову — это то, что при помощи этого .js кода браузеры под печальным клеймом Internet Explorer можно заставить работать используя свойства многообещающего IE9. Больше всего я ожидал что будут доступны свойства CSS3.0, но не тут-то было!
Читать дальше →
Total votes 159: ↑125 and ↓34 +91
Comments 73

Common Errors in English Usage

Reading time 1 min
Views 4.8K
Знание английского для ИТ специалиста — это одно из важнейших профессиональных качеств. Поэтому процесс изучения английского языка должен быть непрерывным. Для изучения рекомендую сайт Common Errors in English Usage, где собрано много типичных ошибок использования различных слов и выражений.
Читать дальше →
Total votes 124: ↑113 and ↓11 +102
Comments 59

30 комплектов иконок в стиле минимализм

Reading time 1 min
Views 47K
image

Минимализм — стиль в дизайне, характеризующийся лаконичностью выразительных средств, простотой, точностью и ясностью композиции. Отвергая классические приемы творчества и традиционные художественные материалы, минималисты используют промышленные и природные материалы простых геометрических форм, нейтральных цветов (черный, серый) и малых объемов.
Эти значки идеально подходят для проектов, которые направлены на контент и типографику.
Читать дальше →
Total votes 171: ↑160 and ↓11 +149
Comments 41

Как учат информатике в Европе (и в Чехии в частности)

Reading time 8 min
Views 67K
Введение

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

Поскольку я обучалась только в одном университете (хотя и общалась со студентами разных ВУЗов из разных стран), то рассказать я могу только про него. Впрочем, система почти всех европейских высших учебных заведений примерно одинаковая. Так что я надеюсь, что этот топик поможет интересующимся составить общее представление как оно все там работает.

Читать дальше →
Total votes 184: ↑174 and ↓10 +164
Comments 260

Создаём тему для Drupal. Часть 2

Reading time 6 min
Views 10K
imageЧасть 1

Препроцессы


Препроцессы нужны для того, чтобы определить, какие переменные будут доступны в шаблонах. Препроцессы мы будем складывать в sites/all/themes/mytheme/preprocess. Создадим файлы preprocess-page.inc — для страницы, preprocess-node.inc — для контента, preprocess-header.inc — для шапки, preprocess-footer.inc — для подвала, preprocess-region.inc — для регионов, preprocess-block.inc — для блоков, preprocess-comment.inc — для комментариев. Также мы можем создавать файлы типа preprocess-node-story.inc для обработки материала типа story или preprocess-block-user.inc для блока user. Это позволяет обрабатывать отдельно разные типы содержимого сайта. В основном в препроцессах я определял классы для разных регионов сайта.
Читать дальше →
Total votes 51: ↑44 and ↓7 +37
Comments 9

Eclipse Tips #1

Reading time 1 min
Views 4.4K
imageПопробую начать новую рубрику, в которой буду рассказывать о трюках и хитростях при работе с Eclipse, программируя на Java. Сегодняшний разговор будет о расширения, которые, на мой взгляд, помогут Вам в разработке.
Подробнее...
Total votes 55: ↑47 and ↓8 +39
Comments 79

Учись говорить

Reading time 3 min
Views 25K
В предыдущей статье я написал несколько советов, которые как мне кажется, могут помочь правильно задавать вопросы. Советы универсальны и подходят также для отвечающего, и для обучающего.

Однако, есть тонкость: пусть вы сформулировали все в голове очень точно, правильно подобрали слова. Осталось сказать. И вот тут то часто кроется коварный враг — наш, как говорят профессионалы ораторского искусства, речевой аппарат.

Признайтесь себе, только не лукавьте: бывали ли у вас случаи, когда какой-нибудь «лохоманагер» со школьной скамьи пренебрежительно отзывался о вас как о скованном, нелюдимом человеке или «умнике» себе на уме? Да кто он такой? Что он может — только языком молоть… Стоп!

Читать дальше →
Total votes 125: ↑118 and ↓7 +111
Comments 76

Как стать успешным фрилансером

Reading time 12 min
Views 34K
Это статья о работе фрилансеров. Сам я много раз выступал как в роли заказчика, так и в роли исполнителя работ; наш аккаунт на free-lance.ru занимает 5 место в рубрике "сайты под ключ", хотя ему всего 9 месяцев (пока писал, сместился на 6-ое место).
Хочу поделиться с вами некоторыми соображениями об успешном фрилансе.

1. Правильное взаимодействие с заказчиком – половина успеха.

Грамотное общение с заказчиком – это половина успеха проекта. Помните, недостаточно быть хорошим программистом или дизайнером, чтобы быть успешным фрилансером. Вы еще и менеджер. Много зависит от того, как вы сумеете продать свои услуги, как будете общаться с заказчиком в процессе выполнения работы.
Заказчика в основном интересуют три вещи: адекватность исполнителя, его опыт (портфолио) и цена. Чуть менее – сроки работ.
Показать то, что вы вполне адекватный человек, с которым можно работать – это самое легкое из этого списка. О некоторых простых вещах при общении многие фрилансеры забывают. Не выставляйте заказчика дураком, даже если он действительно совершенно не разбирается в вопросе. Не дайте почувствовать ему себя ламером. Объясните ему суть вопроса без использования узкопрофессиональных терминов, посоветуйте лучший вариант реализации. При общении не используйте сленг, обращайтесь к заказчику на «вы», пишите без грамматических ошибок. Особенно актуально, когда вы говорите с потенциальным клиентом — вы ничего о нем не знаете. Может он старше вас в два раза и обращение «привет» его коробит.

Покажите похожие проекты, если такие имеются. Это сильно повышает шансы на то, что заказчик выберет вас. Называйте адекватные сроки, не занижайте их в угоду заказчику. Рассчитывайте свою загруженность, сможете ли реально уложиться в срок. Лучше планировать с запасом, так как часто возникают непредвиденные обстоятельства – друг позвал в гости, заболели, интернет вырубился.

Каждый заказчик хочет заплатить поменьше, получить побольше. Это нормальное желание каждого клиента и покупателя. Но все имеет свою стоимость. И не каждый это понимает, пытаясь сильно сбить цену. Держите свою планку. Можно сделать небольшую скидку, но если заказчик хочет сбросить цену вдвое – значит, это просто не ваш клиент. Цените свой труд. У заказчика может быть масса надуманных причин, с помощью которых он станет просить изменить цену. Самые популярные:
Сейчас я у меня только эти деньги на проект, но в будущем у меня будет много денежных заказов для вас. Когда-нибудь, может быть. Это не повод снижать цену.
Давайте вы поработаете за % от прибыли будущего проекта. А заказчик тогда вообще зачем нужен?
Мой начальник выделил определенный бюджет, я бы рад заплатить больше, но не могу. Практически любой бюджет можно пересмотреть. Нет? Но тогда это проблема заказчика.
А у Васи Пупкина дешевле. Что же вы тогда не заказываете у него?

Читать дальше →
Total votes 104: ↑73 and ↓31 +42
Comments 117

nginx, ещё раз про кэширование

Reading time 3 min
Views 14K
Иногда скорость роста проекта несколько выше чем скорость оптимизации веб-приложения или приобретение более мощного оборудования под backend.

Наиболее простая схема «распараллеливания» нагрузки — вынос основной нагрузки на несколько frontend. Раньше приходилось мучиться (или наслаждаться, кому как) с webdav'ами, кластерными ФС и прочими хитростями чтобы обеспечить актуальную информацию, так было до тех пор, пока не появился nginx, а точнее proxy_store и proxy_cache в нём.

Читать дальше →
Total votes 53: ↑49 and ↓4 +45
Comments 27

Ошибки конфигурирования nginx (или как правильно писать рерайты)

Reading time 4 min
Views 98K
Привет, хабралюди!

По долгу службы приходится работать с веб-разработчиками, которые иногда пишут свои скрипты с рерайтами, которые им приходится адаптировать для nginx. Мне же приходится разгребать то, что там написано.

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

Ошибка номер 1, самая фатальная.
Total votes 92: ↑88 and ↓4 +84
Comments 56
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity