Игорь Борисов

Специалист: консультации, аудит, курсы, семинары, тренинги

Супер-пупер-мега вакансия

3 комментария

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

Требуется web-специалист
з/п от 40 000 до 70 000 руб.

Обязанности:
Изменение содержимого WEB сайтов компании
Поддержка и раскрутка WEB сайтов компании
WEB разработка
Ведение связанных с WEB задач

Требования:
Возраст — до 40 лет
Образование — техническое
Английский — Intermediate
Превосходные знания движка Битрикс
Уверенные знания программирования в WEB: PHP, JScriprt, ActionScript, CSS, HTML, ASP, Python, Ajax
Уверенные знания использования SQL для MySQL, MSSQL, PostgreSQL
Администрирование *nix систем с точки зрения задач по WEB, отличные знания языка bash
Понимание инструментов WEB дизайна: Flash, векторные и растровые редакторы
Опыт настройки серверов Apache, Nginx, IIS
Понимание принципов обеспечения безопасности в WEB и построения сетей
Понимание принципов SEO

Условия:
Работа в представительстве крупной иностранной компании (авто концерн)
Офис в шаговой доступности от м. Киевская, Спортивная
Молодой коллектив
Зарплата "белая"
Медицинская страховка

Written by Игорь Борисов

15.09.2010 at 12:16

Опубликовано в Мимоходом

Tagged with ,

Как перестать быть говнокодером

23 комментария

Мальчишки и девчонки, а также их родители, кодеры, программисты, разработчики и (да-да!) преподаватели (ака ИТ тренеры).

Когда вы пишите код, (а тем более, учите этому), то его надо писать не так, «чтобы щас работало и ладно», а так, чтобы он работал быстро, эффективно, был легко читаемым, понятным, легко изменяемым и дополняемым. Для этого надо, как минимум, понимать, как работает тот кусок кода, который вы пишите.

Иначе получится как у одного «опытного» программиста, который много лет писал for ( $i=0; $i < strlen ( $string ); $i++ ), а потом вдруг(!) узнал, что так писать не надо. То есть, человек однажды скопировал у кого-то этот кусок кода и бездумно везде использовал.

Если вы 10 лет пишите echo ’Hello world’ и ничего более, то это не значит, что вы супер-пупер-мега программист. Вы просто Вася Пупкин с 10-летним стажем написания этого самого хело ворлд.

И не надо думать, что это относится только к тем, кто пишет на «каких-нибудь скриптах». Вот пост ЖЖ-юзера cd-riper по этому поводу, который я почти целиком процитирую:

Классический пример, когда человек наивно полагает, что пишет на C++, а сам лишь на полшага ушел от старого доброго C


class cStateManager
{
  public:
    cStateManager();
    ~cStateManager();
    bool Push( void (*Function)(void* CallerPtr, Purpose Purp), void* CallerPtr = NULL);
    bool Pop( void* CallerPtr = NULL);
    bool PopAll( void* CallerPtr = NULL);
    bool Process( void* CallerPtr = NULL);
  private:
    sState* m_CurrentState;
};

Обратите внимание на то, что передается в метод Push. Почему регистрируется не метод класса? Почему тип передаваемого параметра void*? Как будет выглядеть код реализации такого колбэка?

Когда в C++ человек ломает типизацию, и решает все проблемы через void*, ему надо вырывать руки. И яйца, чтобы не плодил таких же гениев.
Уверен, в коде этого "гуру", который пытается чему-то учить других, вы найдете вызовы любимой функции сишников printf. И горы ручного вызова delete.

По-моему, для gamedev это просто классика — сишник, думающий, что пишет на плюсах.

зы. Про использование NULL я вообще молчу…
Обычно рядом легко находятся перлы типа
T *p = new T();
if (!p) …;
или
if (p) delete p;

Вывод из вышенаписанного: обязательно посещайте замечательный сайт govnokod.ru и смотрите, нет ли в их коллекции кода, который напоминает ваш.

И напоследок, ещё один шедевр от гуру с хрен-знает-сколько-летним опытом. Это типа тело функции на PHP:


$res =  my_query("SELECT * FROM catalog");
echo "<h1>Каталог товаров</h1>";
echo "<table border='1'><tr>";
$row = mysql_fetch_assoc($res);
foreach ($row as $key => $val) echo "<th>$key</th>";	
echo "</tr>";
		
mysql_data_seek($res, 0);
while ($row = mysql_fetch_assoc($res)) {
	echo "<tr>";
	foreach ($row as $key => $val) echo "<td>$val</td>";	
	echo "</tr>";
};
echo "</table>n";

Written by Игорь Борисов

31.08.2010 at 12:02

Предпринимательский миф

7 комментариев

Взяться за перо Начать стучать по клавишам меня заставила статья «Вы разработчик? Так почему вы до сих пор на кого-то работаете?», опубликованная на Хабре в разделе с громким названием «Учись Работать».

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

В самом деле, как вы смотрите на такое: «Вы всё ещё слушаете чужую музыку в чужом исполнении и платите за это деньги? Начните сами играть на скрипке и писать музыку! Сам себе хозяин и деньгами делиться ни с кем не надо.»

«Бред», — скажет любой нормальный человек и будет прав. Курс музыкальной школы по классу фортепиано занимает 7 лет, по классу аккордеона — 5. Плюс, надо иметь талант. Просто так нажимать кнопки можно и обезьяну научить. Тысячи людей ежегодно заканчивают музыкальную школу и лишь немногие из них становятся профессиональными музыкантами. Совсем малое количество заканчивает консерваторию и лишь единицы дают концерты на сцене Карнеги-холл.

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

И все понимают, что всё это касается и живописи, и литературы, и архитектуры и спорта, да чего угодно! Но только не предпринимательства. Там всё просто, захотел — стал. Учиться не надо — достаточно прочитать брошюрку «Бизнес. Просто как 2×2». Да и книг не надо, кто не умеет считать? Дебит-кредит, приход-расход, прибыль-убыток. А самое главное, не надо никакого таланта и призвания. Почитайте книги из серии «Как стать успешным предпринимателем». В них по косточкам разобраны биографии и действия Рокфеллера, Баффета, Гейтса; их образование, трудолюбие. Но нигде нет упоминания главного из того, что у них было (и есть) — таланта. Того, что даётся при рождении и даётся не каждому, совсем не многим.

Предпринимательство — это такое же искусство, как и музыка, и живопись, и спорт. И к занятию им предъявляются те же требования.

К тому же, некоторым в это сложно поверить, но есть люди, которым нравиться не руководить, а производить. Делать то, что они умеют делать в совершенстве и получать от этого удовольствие. Класть кирпичи, делать табуретки, писать код, печь пироги. Разговоры о том, что «когда у тебя будет свой бизнес, ты в любой момент, если захочешь, подойдёшь к верстаку и соберёшь табуретку» брехня. Не будет у человека на это времени.

А для тех, то всё-таки подумывает о том, чтобы открыть своё дело я рекомендую прочитать книгу Майкла Гербера «Малый бизнес: от иллюзий к успеху. Возвращение к мифу предпринимательства» (анг. Michael E. Gerber «The E-Myth Revisited: Why Most Small Businesses Don’t Work and What to Do About It»):

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

«Сейчас семь часов» — сказала она, вытирая слезы передником, словно угадав мои мысли. «Вы можете представить, что я нахожусь здесь с трех часов утра? И что я встала в два, чтобы все приготовить? И к тому времени, когда я выставлю пироги, открою магазин, обслужу покупателей, сделаю уборку, совершу необходимые покупки, пересчитаю выручку, схожу в банк, поужинаю, и приготовлю пироги к завтрашней выпечке, будет около десяти вечера? И в то время, когда любой нормальный человек сказал бы, что день закончился, я должна буду сесть, и придумать, как оплатить аренду за следующий месяц»!

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

Written by Игорь Борисов

29.08.2010 at 19:58

Опубликовано в Мимоходом

Tagged with ,

Оцениваем компанию по её вакансиям

3 комментария

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

Требуется главный веб-программист в компанию Digity Group. Москва

    Требования
        — обязательные знание PHP, MySQL, XML, HTML, CSS, JS, jQuery, основы ООП
        — приветствуются знания: ООП, паттерны программирования, MVC, построение высоконагруженных систем, Memcached, XML, Google API, Яндекс API, FaceBook API, ВКонтакте API
        — умение разбираться в чужом коде
        — навыки CSS верстки сайтов, кросс-браузерная верстка
    Условия
        — стабильная зарплата от 55 т.р.

Насчёт того, что в подобных вакансиях всё свалено в одну кучу (и жнец, и швец, и на дуде игрец), не писал только ленивый. Пример: «Если бы водителей нанимали как программистов». Справедливости ради стоит отметить, что этот пример, который я привожу, ещё не самый худший — в этом объявлении не упоминается десяток других языков и пяток самых разных СУБД.
Здесь стоит обратить внимание на слова, которые я выделил полужирным начертанием: главный в Москве с такими знаниями/умениями на такую зарплату.
Фраза «умение разбираться в чужом коде» в комментариях тоже не нуждается.

Я решил зайти на сайт компании и узнать, что же предлагает этот «профессиональный разработчик интернет решений»? Оттуда пахнуло 90-ми. Только вместо рабочего, копающего канаву (всё-таки в 21-м веке живём!) мне предложили посмотреть на синюю руку сквозь оптический прицел снайперской винтовки:

under-construction

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

P.S. А к фразе «высоконагруженные системы» у меня давно иммунитет и я её просто не замечаю. Если вы посещаете специализированные форумы, то обратите внимание, что каждый второй-третий участник упоминает эти самые «высоконагруженные системы». Обычно это звучит в следующем контексте:

— Как сделать xxx?
— Возьми yyy и попробуй через zzz.
— Это хорошо работает при низкой нагрузке. А как быть с высоконагруженными системами?

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

Written by Игорь Борисов

29.08.2010 at 07:31

Опубликовано в Мимоходом

Tagged with ,

Почему большинство людей не хотят работать и развиваться?

leave a comment »

Что происходит?

Что происходит? Уровень знаний сотрудников ИТ падает с каждым днем. Уже не редкость вопросы на семинарах от людей, с гордостью именующих себя «системными администраторами»: «А что такое AD? А как с ним работать?»

Что происходит? (продолжение)

Страна лентяев: почему в Москве живут одни лодыри

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

Written by Игорь Борисов

21.08.2010 at 07:51

Опубликовано в Информация

Tagged with , ,

Как проапгрейдить Windows 7 Starter до более старшей редакции на нетбуке

22 комментария

Исходные данные:
Нетбук (Acer, если кому интересно) с предустановленной ОС Windows™ 7 в редакции Starter (Начальная). Как и положено, сама ОС хранится не на DVD, а на скрытом разделе жёсткого диска, тем более, что CD/DVD привода у нетбука нет.

Цель:
Апгрейд ОС до более старшей редакции, в моём случае — до Ultimate (Максимальная).

Возможные решения:

  1. Использовать Windows Anytime Upgrade (WAU). Не работает. Доступно только в 13 странах мира и России среди них нет. Выдаётся сообщение «К сожалению, в настоящее время программа обновления WAU не доступна в вашей стране или регионе. Обратитесь к местному продавцу бла-бла-бла-далее-не-интересно».
  2. Поставить новую редакцию поверх старой. Не работает. Выдаётся сообщение о том, что данную версию проапгрейдить нельзя, воспользуйтесь Windows Anytime Upgrade. Уже смешно.
  3. Установить систему с нуля. Идиотов нет.
  4. Обратиться в поддержку Микрософт®, например, в social.answers.microsoft.com и в windows.microsoft.com. Бесполезно — будут предложены пункты 1, 2 и 3. Ничего удивительного. Там сидят ребята, перед которыми лежат списки с вопросами и «правильными» на них ответами. Эти ответы и вставляются в ответные сообщения методом «копи/пасте».
  5. Метод «четырех единиц», то есть обратиться ко всем до кого можно дотянуться. Результат тот же, что и в пункте 4. Не удивляйтесь, что друзья и знакомые сочтут вас за полного кретина и будут задавать вопросы типа «а поверх прогнать пробовал?». И даже, услышите сакральное «переставь венду».

Правильное решение:

На этом этапе нам потребуется полная версиия ОС необходимой для нас редакции в формате ISO — ведь CD/DVD привода у нас нет.
Далее, с сайта Микрософт® качаем приблуду «Windows 7 USB/DVD Download Tool», с помощью которой создаём загрузочную флэшку.
Далее,

  1. Запускаем regedit и ищем ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
  2. В ключе EditionID меняем имя редакции ОС на необходимую. У меня было «Starter», стало «Ultimate».
  3. В ключе ProductName меняем имя редакции ОС на необходимую. У меня было «Windows 7 Starter», стало «Windows 7 Ultimate».
  4. Для чистоты эксперимента я перегрузил машину. Возможно, этого делать не надо. Даже, скорее всего, не надо. Обратите внимание, что на экране приветствия и в свойствах системы будет по-прежнему значиться текущая редакция ОС. То есть, актуальная ОС опознаёт себя правильно и её не обманешь. Но нам этого и не надо, нам надо обмануть то, что будет инсталлироваться.
  5. Засовываем флэшку и далее следуем инструкциям. Если инсталляция не запускается автоматически, то открываем содержимое флэшки и запускаем setup.exe.

Предупреждение: На моей машине полный апгрейд занял 4 часа. Львиная доля времени пришлась на «Сбор файлов, параметров и программ» и «Перенос файлов, параметров и программ». Но у меня на машине 3 пользователя и много чего установлено. При одном пользователе и относительно чистой машине, время апгрейда, скорее всего, будет меньше.

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

 

Written by Игорь Борисов

15.08.2010 at 08:31

Опубликовано в Информация

Tagged with , , ,

Почему умирают стартапы?

leave a comment »

В самом деле, почему? Ну кто ж этого не знает?! Во-первых, жадные инвесторы, которые ну никак не хотят давать денег на наш супер-,пупер-мега проект, который вот-вот должен захватить весь мир. Во-вторых, тупые пользователи, которые «сами не знают, чего хочут» и, к тому же, у них руки кривые. В-третьих,… можете добавить сами, как в прочем и в-четвёртых, и в-сто четвёртых.

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

Вчера я обнаружил, что давненько не занимался поиском новых Twitter/Facebook клиентов на предмет, что нового в этой сфере появилось. Я периодически провожу такие исследования, так как всё, что есть на данный момент на рынке, не устраивает меня на 100%. Это кстати, касается и других продуктов — полезно, чтобы не отстать от жизни. Нашёл я заметку «30 сервисов объединяющих Фейсбук и Твиттер» и пошёл по списку.

Путешествуя таким образом, я вышел на проект стартап Mah Tweets.

morda

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

iconкоторое и запускаем. Ждём несколько секунд и …

error 

Должен сказать, что у меня стоит лицензионная ОС Windows™ 7 с включенным автоматическим обновлением. И такого, чтобы чего-то не хватало (тем более родного, микрософтовского) пока ещё не случалось. Это что же получается, товарищи из Микрософт®?! Вы выпустили что-то, на этом чём-то уже успели какой-то продукт сварганить, а моя система ещё не готова к его использованию? Ладно. Ведь, надеюсь, производитель продукта учёл подобный вариант развития событий и не оставит меня один на один с бедой. Смотрим на предыдущую картинку и видим: «Дополнительные сведения о данном обновлении системы можно получить, посетив этот узел». Обратите внимание — это не стандартная отмазка ОС Windows™ ведущая непонятно куда, а ссылка указанная самими авторами продукта, которая ведёт на www.mahtweets.com/help. Отлично! Сейчас зайдём, почитаем, может быть скачаем недостающее прямо на месте, установим программу и с её помощью обязательно отпишемся в Twitter о том, что мы думаем о Микрософт® и…

Для тех, кто ещё не перешёл по вышеуказанной ссылке (из-за лени или привычки такой нет — нажимать на всё, что нажимается), вот вам картинка:

help 

[Далее следует продолжительная пауза. Разглядывание адресной строки браузера — может в адресе ошибка?]
Ну хорошо. У них ведь есть форум или какой-нибудь другой фидбэк. Сейчас напишем, нам ответят и будет всем счастье. Да, форум есть. Стандартный. Зарегистрируйтесь, дождитесь письма, подтвердите, бла-бла-бла.

Не кажется ли вам, многоуважаемый All, что от меня требуется слишком много телодвижений для того, чтобы «просто посмотреть»? Вот и мне тоже кажется. Кто-нибудь будет возражать, если я скажу, что КГ и АМ? Вот и я так думаю.

Всем чмоки в этом чате и не будьте пингвинами.

Written by Игорь Борисов

13.08.2010 at 08:43

Опубликовано в Мимоходом

Tagged with