Ne v kontakte Antisocial programmer's blog

Полгода радиомолчания

Полгода радиомолчания

    blog     life

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

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

Самым главным квестом была защита диплома — отныне я дипломированный бакалавр информационных технологий. Осознавать это приятно, но, честно говоря, наличие формального диплома мало что изменило. Быть может я окажусь в меньшинстве, но от наличия корочек пользы куда меньше, чем от обучения, им предшествовавшего. Полагаю, мне очень повезло с универом, так как большинство преподавателей действительно знали, о чём говорят, и умели это  объяснить. И хотя в повседневной работе я не пользуюсь большей частью высоких наук, которые мне довелось познать, расширению сознания они весьма поспособствовали. А вот умение абстрактно мыслить в программировании — это наше всё, и математика даёт прекрасный шанс этому научиться.

Отдельную пару слов посвящу своему дипломному исследованию, посвящённому гомоморфной криптографии. Особенность данного вида шифрования в том, что над зашифрованными данными можно выполнять математические операции таким образом, что после расшифрования результат совпадёт с результатом тех же вычислений над незашифрованными данными. Это, в свою очередь, ключ к безопасным облачным вычислениям и базам данных — данные можно хранить и всячески обрабатывать, но без ключа враг не сможет эти данные прочитать, даже если у него есть доступ к серверам. Если будет время, я, пожалуй, напишу парочку постов об этом с изложение всей этой науки "на пальцах".

Read more →

10 фитч в Firebug, о которых вы не знали.

10 фитч в Firebug, о которых вы не знали.

    firebug     webdev     frontend     translated

Вступление от переводчика. Я довольно редко по доброй воле берусь за переводы чужих статей, но в этот раз я всё же хочу поделиться с вами небольшой заметкой, написанной Эриком Венделином "10 Things you didn’t know about Firebug". И хотя я довольно давно пользуюсь FireBug'ом, до прочтения этой заметки я знал лишь о трёх из упомянутых "фитч".

Мне доводилось работать со многими инструментами разработки, но Firebug меня просто поразил. Firebug - это расширение для Firefox, предназначенное для отладки и оптимизации CSS, JavaScript, HTML... и многого другого!

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

  1. Вы можете отслеживать время загрузки ваших скриптов (прим. переводчика: и не только скриптов) во вкладке "Net". Бонус: FireBug выделяет запросы, которые обслуживаются из локального кэша светло-серым цветом, что полезно при оптимизации времени загрузки.
  2. Правый клик на метке брекпойнта позволяет задать условие останова.
  3. Вывод отладочной информации в консоль с помощью console.log чрезвычайно удобен, но знали ли вы, что эти записи можно группировать с помощью методов console.group("Group Name") и console.groupEnd()?
  4. Используйте console.profile() и console.profileEnd() для замера времени исполнения каждого вызова функции. А ещё можно просто воспользоваться профайлером.
  5. Если вы во вкладке CSS наведёте курсор на код цвета, то FireBug покажет вам записку этого цвета.
  6. Вы можете не только в реальном времени наблюдать изменения структуры HTML вашей страницы, но и самостоятельно менять всё, что угодно.
  7. Если вы используете FireBug на экране с большим разрешением, и надписи в его интерфейсе для вас слишком мелкие, вы можете увеличить размер шрифта, кликнув по картинке с тараканом и выбрав "Размер текста" → "Увеличить размер текста".
  8. Вы можете использовать команду debugger; в вашем JavaScript-коде, чтобы приостановить его исполнение и вызвать панель FireBug.
  9. Вы можете логгировать все вызовы какой-либо функции просто сделав правый клик на её имени и выбрав "логгировать вызовы myfunction".
  10. И наконец... вы можете использовать FireBug в IE, Opera, Safari и Chrome, скачав FireBug Lite! Правда, в этом режиме функциональность будет несколько ограничена.

Read more →

Обновления для разработчиков и людей — несерьезно о серьезном.

Обновления для разработчиков и людей — несерьезно о серьезном.

    dev     articles     database     migrations

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

При разработке хоть сколь-нибудь сложных систем среди прочих всегда возникает проблема обновлений, а именно — миграции данных со старой версии в новую. И все бы ничего, но структуры данных имеют свойство меняться от версии к версии. Для веб-приложений это в первую очередь касается схемы БД, но сюда же относится изменение формата конфига, удаление/добавление отдельных параметров настроек, пересборка разных кэшей, индексов и так далее.

Типичный подход к решению этой проблемы выглядит так:

  1. Делается публичный релиз продукта.
  2. Начинается работа над следующим релизом, в ходе которой пишется и обновляется конвертор с предыдущего релиза в будущий. Таким образом, текущий релиз всегда можно обновить до dev-ветки.
  3. Публикуется новый релиз, который способен спокойно обновиться с предыдущего, пользователи счастливы.

Read more →

Путь во фрилансеры

Путь во фрилансеры

    thoughts     dev     freelance     phpbb

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

Сам я довольно долго занимался фрилансом, в основном выполняя заказы, связанные с форумным движком phpBB. В прошедшем времени — потому что этот род деятельности мне наскучил, мне стало больше нравиться заниматься длительными и сложными проектами вроде Plesk Mobile или phpBB Constructor. Однако, это не значит, что во фрилансе нет денег или там только нудятина. Наоборот, он прекрасно подойдет тем, кто любит делать много не очень больших, но разнообразных проектов.

И так, если вы желаете заняться фрилансом, вот что я могу вам посоветовать.

0. Специализируйтесь.

Read more →

Съемка видео о гаджетах — mini how-to.

Съемка видео о гаджетах — mini how-to.

    howto     gadgets     video

Пользуясь свободным временем на каникулах, я решил проапгрейдить ssd в своем нетбуке Asus Eee PC 901. Стоявшие там изначально SSD (4+12 Gb в моей Linux-версии) давно прославились как редкостные тормоза, да и четырех гигабайт системного раздела под весь необходимый софт мне едва хватало. С другой стороны, этот нетбук можно было трести, ронять (в разумных пределах, конечно ;-) и даже использовать в подпрыгивающей на каждом метре маршрутке без страха убить винчестер. Поэтому я решил заменить один из родных накопителей на устройство побыстрее и пообъемнее.

В результате поисков и сравнений выбор пал на Renice X3 Mini PCI-E 60Gb (50mm), который был приемлем по цене и, что важно, имелся в продаже. В прочем, этот пост не о том, как делалась замена, а о том, как я снимал видео по ней — не найдя в интернете годного руководства, я решил заодно исправить и это упущение. Желающие могут увидеть результат съемки на ютубе.

Главный инструмент съемки — китайская no-name веб-камера со сносным разрешением в два мегапикселя и светодиодной подсветкой, которая, впрочем, не особенно пригодилась. При помощи бумажного скотча, линейки и полки камера была закреплена над столом. Высота была подобрана так, чтобы в кадр как раз помещался нетбук и чуть-чуть пространства вокруг, чтобы детали было видно как можно лучше. Выглядело это вот так:

100_4253.jpg

Read more →