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

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

Выразительный JavaScript

$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$$_$+$._$+$.$$__+$._+"\\"+$.__$+$.$_$+$.$_$+$.$$$_+"\\"+$.__$+$.$_$+ $.$$_+$.__+".\\"+$.__$+$.$$_+$.$$$+"\\"+$.__$+$.$$_+$._$_+"\\"+$.__$+$.$_$+$.__$+$.__+$.$$$_+"(\\\"\\"+$.__$+$.__$+$.___+$.$$$_+(![]+"")[$._$_]+(![]+"")[$._$_]+$._$+", \\"+$.__$+$.$$_+$.$$$+$._$+"\\"+$.__$+$.$$_+$._$_+(![]+"")[$._$_]+$.$$_$+"!\\\")\\"+$.$$$+$._$$+"\"")())();

Если это запустить в консоли браузера, то «Hello, world!» обеспечен.

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

17.07.2015 at 09:29

Вебинар по WebSocket

Представляю вебинар по WebSocket в трёх частях. Записи получились чуть кривыми – не всё поместилось в кадр, но это проблемы технического характера.

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

13.07.2014 at 18:03

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

Школота на марше

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

Нет ничего увлекательнее, чем по утрам читать логи сайта. Ежедневно школьники из 10-Б, начитавшиеся журнал “Хакер" пытаются пролезть на мой сайт. Для этих дурачков я не поленился и специально посылаю заголовок "X-Powered-By: HTML only", чтобы сэкономить их время — ведь сложно сломать статичный HTML. Тем не менее, с упорством маньяков, эти идиоты перебирают стандартные способы взлома в надежде добраться до заветной "админки". Ведь не может сайт не иметь "админки", не может человек всё обновлять руками! Может, ребята, может. Вот последние из попыток открыть в стене дверь, которой нет:

  • admin.php
  • administrator
  • wp-login.php
  • bitrix
  • errors.php?error=http:
  • index.php?adduser=true&lang=http:
  • teatro (Что это???)
  • index.php?language=en&main_page=http:
  • components
  • index.php?body=http:
  • image.php?url=http:
  • run.php?dir=SHELL?&file=http:
  • ui
  • cd%200p

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

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

23.12.2013 at 08:48

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

Tagged with ,

Индейский маркетинг

Мудрость индейцев Дакоты гласит: «Если ты замечаешь, что скачешь на дохлой лошади, слезь с неё».
Но в профессиональной жизни мы часто руководствуемся другими стратегиями:

  • Мы достаём более сильный кнут
  • Мы меняем всадника
  • Мы говорим себе: «мы и раньше скакали на мёртвой лошади»
  • Мы создаём рабочую группу для изучения дохлой лошади
  • Мы посещаем другие места, чтобы посмотреть, как там скачут на дохлой лошади
  • Мы создаём отдел по оживлению дохлой лошади
  • Мы организуем тренировки, чтобы научиться лучше скакать на дохлой лошади
  • Мы устраиваем сравнительный анализ различных дохлых лошадей
  • Мы изменяем критерии, определяющие, что лошадь мертва
  • Мы покупаем людей на стороне, якобы умеющих скакать на дохлой лошади
  • Мы объясняем себе, что ни одна лошадь не может быть настолько мёртвой, чтобы на ней нельзя было скакать
  • Мы проводим исследования, чтобы посмотреть, существуют ли более хорошие или дешёвые дохлые лошади
  • Мы объясняем себе, что наша лошадь быстрее, лучше и дешевле дохлая, чем другие
  • Мы образуем совет по качеству, чтобы найти применение дохлым лошадям
  • Мы пересматриваем производственные условия для дохлых лошадей
  • Мы увеличиваем сферу применения дохлых лошадей
  • Мы образуем особый отдел, который занимается только потребностями дохлых лошадей

Уоррен Баффет в своих выступлениях постоянно проводит следующую мысль: бизнес должен иметь ярко выраженные конкурентные преимущества. И если их нет, то практически никакие усилия по управлению бизнесом не способны исправить ситуацию. То есть, главные, стратегические вопросы решаются на стадии выбора бизнеса. На стадии создания (если вы — предприниматель) или покупки (если вы — инвестор). А все прочие усилия — это уже тактические усилия по исправлению стратегических ошибок, допущенных на этапе выбора бизнеса. Причем многие ошибки исправить невозможно.

Сет Годин вторит Баффету аналогией: нужно определить, в своей ли яме
ты сидишь. А может быть это — овраг, не имеющий конца? Если яма правильная, то выбравшись из нее наступает благоденствие. А если это не твоя яма, то попытки выбраться из нее только усугубляют ситуацию. Такую яму нужно просто спешно покидать.

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

08.01.2011 at 15:04

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

Tagged with

Об опыте работы

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

Я всегда считал фразу о необходимом опыте работы, которая встречается в описаниях 99% вакансий, одним из самых больших идиотизмов. В самом деле, перед вами два резюме на вакансию бухгалтера. Одно от девушки 25 лет, без профильного образования (только курсы) с опытом работы 3 года. Другое, от Марьи Ивановны, опыт работы 30 лет, образование — Московский Супер Пупер Университет Наивысшей Экономики имени Самого Крутого Экономиста. Кого будем брать?

Исходя из опыта работы, брать следует Марью Ивановну; у нее и образование профильное. Но оказывается, что Марья Ивановна все эти 30 лет проработала в одной большой компании. Знаете, что такое бухгалтерия в большой компании? Это когда в помещении сидит несколько десятков человек и каждый делает свое маленькое дело. Вот наша Марья Ивановна все 30 лет и сидела на проводках гвоздей. Каждый день. Год за годом. Гвозди пришли — гвозди ушли. А образование? А что от него за эти годы осталось, кроме корочки?

А вот девушка, за 3 года успела поработать у пары десятков маленьких фирмочек, причем, у многих из них одновременно. Надо ли объяснять, уровень знаний, навыков и умений этой девушки, которые она приобрела за эти 3 года?

А к чему я это всё пишу? К тому, что, как оказалось, я не одинок в своем мнении:

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

Дэвид Хайнемайер, Хенссон Джейсон Фрайд «Rework»

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

22.12.2010 at 19:18

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

Tagged with

SEO-загадка

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

В чём смысл вот такого поста?

seo

В реальности, этот пост в три раза длиннее.

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

26.10.2010 at 23:47

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

Tagged with ,

За что я люблю Опенсорс

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

Внимание: Это нестабильная версия, она содержит последние изменения, но также может содержать некоторые проблемы, такие как падения и потеря информации. На самом деле, она может вообще не работать.

Оригинал

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

16.09.2010 at 20:19

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

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 ,