Strip firebug console api calls

Strip firebug console api calls

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

По приезду оказалось, что у заказчика фича не работает. Неприятно получилось, в общем.

Но радость ваша, мои дорогие читатели, была бы не полной, если бы я не сообщил вам, что там случилось и что я по этому поводу предпринял.

 Интересно?

Невпопад

Невпопад

Хочу в отпуск. Так хочу, что меня все раздражает.

GC в ruby в сто раз примитивнее того, что используется в jvm. Ц-ц-ц.

И еще меня начинает раздражать «мусорность» javascript. Я имею ввиду, что, в целом, многие ништяки из ФЯП можно реализовать и в javascript, но на java-подобный синтакс такие штуки не очень хорошо ложатся:

Чрезвычайно избыточный и непонятный с непривычки код, особенно в сравнении с аналогичным в ruby или python.

Перестановки

Перестановки

Дорогие мои марсиане. Сограждане. Я принял решение, и оно далось мне нелегко.

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

Во-первых, уже достаточно давно меня раздражает движок wordpress, на котором имеет несчастие крутиться этот несчастный блог. Долго полнилась чаша моего терпения, и наконец переполнилась.

Во-вторых, от многих из вас до меня доходят сигналы, что было бы неплохо как-то разделить статьи технического плана и посты «про остальное». И слова ваши доходили до моего сердца и наконец нашли в нем отклик.

В-третьих, меня уже давно не устраивает низкая посещаемость – почти все программисты (и особенно java/javascript программисты) общаются на англоязычных ресурсах. К слову сказать, все средства для ведения мультиязычного блога на wordpress откровенно убоги. Это, так сказать, еще одно «фи» в сторону wrordpress’a.

В общем, исходя из всего вышенаписанного, я думаю, что правильнее всего будет сделать следующее:

  • Разделить блог на две части: лытдыбр (под которую уже выделен отдельный блог по адресу http://ulizko.name) и т.н. «технические статьи», которые останутся по этому адресу.
  • Весь блог будет вестись на английском языке. Тому есть две причины: первая это та, что англоговорящих программистов (т.е. людей, которым интересен этот контент) в разы больше, чем русскоговорящих, а значит, я смогу делиться мыслями с гораздо большим количеством народа, что, откровенно говоря, меня заводит. И вторая – я смогу поднять свой уровень английского языка, что также лишним не будет. Будут ли доступны в том или ином виде тексты статей на русском – пока не знаю, сообщу дополнительно.
  • Будет проведен редизайн блога. Просто так, потому что мне того хочется.
  • Блог будет переведен на другую, самописную платформу. Как говорится, сделанное своими руками колесо – самое круглое колесо в мире! Опять же, есть несколько интересных задумок, которые очень и очень сложно реализовать на базе wordpress’a.

Что же требуется от вас, читателей?

  • Если вы читаете блог ради технических статей – стэй, как говорится, тюнд. Между постами будет нехилый перерыв, думаю, с месяц, но потом все наладится. Правда, будет уже на английском языке. И rss будет тот же.
  • А вот если вам нравятся все остальные посты, то вам нужно подписываться на rss от ulizko.name. Напоминаю, все посты, не относящиеся к IT, будут перенесены в http://ulizko.name.
manual written if

manual written if

Как многие из вас в курсе, на днях на хабре промелькнул топик «Как я гонял на клаве», от хабраюзера jahson. Примечателен этот топик вовсе не своим скриптом, а тем, что дал старт достаточно неприятной сваре, в ходе которой владелец и автор «Клавогонок», известный на хабре как artch, повел себя, на мой взгляд, не вполне адекватно. Это не говоря уж о том, что решать такие вопросы принято в личке, не привлекая общественное мнение (которое, к слову, катком прошлось по карме artch).

По мере того, как я читал обсуждение, мне все больше становилось жаль jahson’a, по мере сил отбивавшегося от нападок автора и присных. И в процессе этого сочуствования решил я поднять jahson’у карму, зайдя в его личку. Где увидел не только то, что он не особо нуждается в помощи, но и то, что он член «Российского крыла Web Standards Group».

Тут надо сделать отступление — я, вообще говоря, не знал о существовании такой организации, точнее, о существовании ее российского крыла, и немедленно заинтересовался. Набрав в гугле известное сочетание слов, я попал на страничку «Веб-стандарты — WSG-Россия». Интересно, можно ли еще попасть в ряды, или лавочка уже прикрыта? Судя по тому, что последние встречи проводились в 2007 году, то уже нет, но, если кто-то владеет более актуальной информацией, призываю его поделиться.

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

Отдельно хотелось бы упомянуть Дмитрия Барановского, который, к слову, присутствует и на хабре под псевдонимом… DmitryBaranovskiy (сюрприз!) и, по совместительству, является разработчиком Raphaël — JavaScript Library.

Читая его блог, я наткнулся на его пост «JavaScript Without „if“», и вспомнил, что у меня валяется в загашниках очень похожая штука:

Думаю, как это работает, очевидно, поэтому я хочу заострить внимание на другом: такая конструкция, по идее, должна работать достаточно быстро, так как доступ к свойствам объекта в javascript очень быстр. Правда, в таком случае мы платим памятью за скорость. И действительно, тесты в safari показывают, что этот код лишь чуть-чуть медленнее классической конструкции if… else. Про остальные браузеры ничего не могу сказать, так как всесторонним тестированием не занимался — да и не стоит оно того, это же чисто proof of concept.

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

По горячим следам: запись скринкаста

По горячим следам: запись скринкаста

 

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

 

 Интересно?

Букмарклеты

Букмарклеты

Всем привет, сегодня речь пойдет про использование букмарклета, или закладки для браузера.

Кто не знает, это такая штука, которую можно добавить в закладки (да, я сегодня дебютирую в роли Капитана Очевидность :) и, при нажатии на нее, произвести какой-нибудь эффект.

Примером может служить герой сегодняшней заметки, который расположен по адресу http://ulizko. com/demo/allthat/. Инструкция по применению:

  1. Перетащите ссылку «link» на панель закладок или щелкните по ней правой кнопкой мыши и выберите пункт меню «добавить в избранное».
  2. Зайдите на какой-нибудь сайт, вроде http://twitter. com, и нажмите на эту закладку (ну или на избранное).

Появится окошко, в которое можно ввести данные. Вообще, предполагается, что это будет интерфейс добавления желаний в вишлисты (предварительно созданные на каком-то сайте), настроить триггеры оповещений, и прочее. Есть даже какая-то валидация начального уровня. И налажен обмен данными с сервером — то есть, на любом домене к вам приходит список ваших вишлистов, а ваше новое желание с любого домена долетит на крыльях любви к вишлисту и уютно устроится в его объятьях1.

Но. Мы сегодня не об этом, а о том, как делать такие штуки в принципе.

 Интересно?

Перевод нормальных слов в код

Перевод нормальных слов в код

Так, сегодня пришло в голову, решил записать. Не то, чтобы это очень уж смешная штука была, но забавная. Особенно в конце плодотворного рабочего дня :)

for (var mate in addressBook) { 
    if (mate.blacklisted) { // Ко всем неприятным знакомым:
        if (calculateDistance(Home.getInstance().getLatitude(), 
          mate.getLatitude()) < 100) { // будете проходить мимо -
            continue; // проходите
        }
    }
}
И еще про синтаксис JavaScript

И еще про синтаксис JavaScript

Кто о чем, а вшивый о бане я о синтаксе в javascript.

Дело в том, что часто внутри функции нужно проверить, переданы ли правильные параметры и переданы ли вообще. Ну и вот один из самых коротких способов это сделать. Ничего фантастического тут нет, старый и проверенный способ. Кто может что сказать о достоинствах и недостатках этого метода?

function destroyTheWorld (when, byWhom) {
    if (!when||!byWhom) return 'fuck off';
};

Если кто не знает, оператор логического отрицания ! в JavaScript вернет true если ему передан false, '' (пустая строка), 0, null, undefined. Во всех остальных случаях оператор логического отрицания вернет false. На всякий случай, проиллюстрирую:

    !0 === !'' === !null === !undefined === !false === true;

Таким образом, если мы не передали никакого объекта или передали null, то функция завершит свою работу и вернет в качестве результата нехорошее слово.

Внимательные люди могут спросить – а что, если передать true? Функция завершит работу при вполне валидном параметре?
Я могу на это ответить примерно так: если вы передаете в функцию булевую переменную, то почти наверняка эта переменная – рычаг, т.е. в зависимости от нее меняется поведение функции. И обработка аргументов, таким образом, будет вестить несколько другая. Скажем, такая:

function shouldWeDestroyTheWorld (acceptance) {
    if (acceptance) {
        World.getInstance().destroy();
    } else {
        World.getInstance().armageddon = 'stopped';
        World.getInstance().destructionTimer.stop();
    }
}

И если вы опустите этот аргумент, то по эффекту это будет равнозначно передачи false.

Обзор книги: Том Питерс. «Основы. Тренды.»

Обзор книги: Том Питерс. «Основы. Тренды.»

Выполняя данное самому себе обещание — а именно, читать в день не меньше 50 страниц полезной книги, я вчера я дочитал книгу Тома Питерса «Основы. Тренды».

 Интересно?

В программисты бы пошел, пусть меня научат

В программисты бы пошел, пусть меня научат

Думаю, я стал программистом в основном потому, что в Нерюнгринской гимназии, в которой я учился, был компьютерный класс. И учительница по информатике разрешала ребятам оставаться после уроков и играть в Duke Nukem 3D, WarCraft 2 и прочие времяубивалки. Но разрешалось посещать кабинет информатики (и оставаться после уроков) только тем, кто посещал факультет информатики и решал на basic’e разные задачки — например, вывести числа от 1 до 256, раскрашенные в разные цвета спектра, и прочие чудовищно сложные и безумно полезные штуки.

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

А у вас, дорогие читатели, что повлияло на выбор будущей профессии?

Последние твиты