Pull to refresh
9
Александр Яковлев @xescoderread⁠-⁠only

User

Send message

Дюжина дизайнерских косяков

Reading time6 min
Views139K


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

Спустя время я выделил несколько неочевидных вещей, на которые старался обращать внимание, и в большинстве случаев находил ошибки. Получился небольшой чеклист. Очень полезный как для самопроверки, так и для проверки чужого дизайна. Им с вами и спешу поделиться:
Читать дальше →

Снимаем постпродажный шок: короткий совет для интернет-магазинов

Reading time5 min
Views99K
Привет! Есть такая штука – постпродажный шок. Это когда человек купил что-то, отдал деньги, получил вещь в руки… и начинает лихорадочно думать, зачем он это сделал.

В крупных городах, где шоппинг развит, это не так актуально, как в регионах (где до кучи ещё и зарплаты несколько меньше). Поэтому у нас есть одна рекомендованная механика, которая помогает этот шок снимать.

Сейчас расскажу.
Читать дальше →

Как заставить себя работать?

Reading time6 min
Views420K
В понедельник утром за неделю до Нового Года этот вопрос, думаю, актуален для многих.

Есть куча статей на эту тему. Вот основные советы:
  • Начинайте с самой сложной задачи
  • Сделайте первый шаг — продолжать будет уже легче
  • Составьте план и неукоснительно ему следуйте
  • Занимайтесь любимым делом
  • Не отвлекайтесь

Всё просто. Закройте Хабр и приступайте к работе!

Только почему-то на меня все эти советы не действуют. Вроде правильные вещи люди говорят, но — не работает. Кстати, на тему «Почему не получается заставить себя работать?» тоже есть статьи. В них проблема описывается с точки зрения психологии и предлагаются решения вроде «избавьтесь от внутренних противоречий и страха перед неудачей». Наверное, если это сделать, то всё получится, но где найти эту волшебную кнопку «Избавиться от...»?
Читать дальше →

Про Vagrant, его плагины, и другие истории из жизни бродяг

Reading time4 min
Views49K
По моему мнению, большинству IT специалистов стоит использовать Vagrant. Кто не знает, что это такое – рекомендую начать с официального сайта. На Хабре так же было несколько обзоров вагранта, например Development Environment при помощи Vagrant и Chef и Создание новой виртуальной машины за одну минуту или «vagrant up!». В этой статье я более детально расскажу о «экосистеме» вагранта.

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

Извлечение 4096-битных ключей RSA с помощью микрофона

Reading time3 min
Views107K


Знаменитый криптограф Ади Шамир (буква “S” в аббревиатуре RSA) с коллегами вчера опубликовал научную работу под названием «Извлечение ключа RSA путём акустического криптоанализа с низкой частотой дискретизации» (RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis). За сложным названием скрывается исключительно доступный метод извлечения ключей RSA (в реализации GnuPG) с помощью обычного мобильного телефона или микрофона. Достаточно лишь положить телефон в 30 см от компьютера жертвы. Если использовать качественные микрофоны, то извлекать ключи можно с расстояния до 4 метров.
Читать дальше →

Ваши программисты работают в поте лица или просто ленятся?

Reading time4 min
Views99K
Когда люди выполняют физическую работу, легко оценить, насколько тяжело они трудятся. Видно, как они двигаются, потеют. Видны и результаты их работы: кирпичная стена растет, дыра в земле становится все больше. Одобрять и награждать за тяжелую работу — это фундаментальный человеческий инстинкт, одна из причин, по которой нам так нравятся силовые виды спорта. Но когда дело доходит до управления творческими или техническими сотрудниками, это инстинктивное восприятие тяжелой физической работы становится проблемой. Эффективные работники умственного труда часто не похожи на людей, которые тяжело работают.

В 2004 году я работал младшим разработчиком в большой команде отдела по биллингу и предоставлению услуг в компании кабельного телевидения. Как и все большие системы, эта состояла из нескольких относительно самостоятельных компонентов, над которыми работали отдельные сотрудники или небольшие группы. Системы цифрового и аналогового ТВ были почти полностью отделены друг от друга, с каждой из них работала своя команда.
Читать дальше →

История одного бэкдора

Reading time3 min
Views23K

Предыстория


Жил-был один старый-старый сайт. Родители от него отказались, и на втором десятке лет существования он попал к нам. Он представлял из себя джунгли PHP кода, разбросанного по папкам. Все это было написано в разное время, с использованием разных паттернкостылей, в разных кодировках (до 3ёх кодировок в пределах одного файла). MVC тогда, наверное, еще не было известно, да и о шаблонизаторах разработчики не слышали, так что не стоит удивляться внезапному
<? if (cond) { ?>
в HTML разметке. Я провел не один час в увлекательных поисках нужного
<? } ?>
Разработчики не забывали и про бэкапы: в корне можно было найти index.php, index_old.php, index.php.bak. Но несмотря ни на что, это чудо работало. А что работает — не трожь.

Завязка


Эта история началась, когда солнечным декабрьским утром специалист по продвижению с удивлением обнаружил ссылки на чужеродные сайты в футере. Немного покопавшись выяснилось 2 вещи:
  1. это сапа;
  2. заказчик недоумевает.

Читать дальше →

Tig — консольный GUI для Git

Reading time2 min
Views38K
Никогда не был фанатом gitk и пользовался им редко, предпочитая консоль и настроенные алиасы. Благодаря хабраюзеру grossws, я открыл для себя tig. Это то, чего мне не хватало. После месяца использования его в работе хочу поделиться находкой с вами.

Tig это консольный GUI(TUI) для Git, основанный на Ncurses.
Основные преимущества:

  • потрясающая скорость, 20,000 коммитов готовы к просмотру за четверть секунды
  • консольный
  • управление в vim стиле

Cкриншоты основных режимов и сравнение с gitk.
Читать дальше →

NodeSchool — интерактивные уроки по Node.Js

Reading time1 min
Views38K
image

Все мы знаем теоретический курс по node.js, недавно выпущенный Ильей Кантором. Отличный материал, свежий, полный и к тому же на русском. Но он теоретический, а нам-то хочется все потрогать, попробовать самим, получая реальный опыт. В этом нам поможет, недавно стартовавший, бесплатный проект NodeSchool.
Читать дальше →

Декодирование JPEG для чайников

Reading time9 min
Views282K

[FF D8]


Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:


Jpeg file in hex editor


Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла: Google favicon


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


Даже не зная, как происходит кодирование, мы уже можем кое-что извлечь из файла.


[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.


Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.

Читать дальше →

Изобретаем JPEG

Reading time28 min
Views178K

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →

Закончен новый модуль базы данных для PHPixie

Reading time3 min
Views7.2K
image
Сегодня я написал последний тест для версии 3.0 модуля доступа к БД для PHPixie. Когда я начал казалось что это займет всего несколько недель, но на самом деле все растянулось на где-то 2 месяца из-за огромного количества рефакторинга и переписывания сначала. Зато теперь мы имеем расширяемую библиотеку, которую можно использовать даже вне самого фреймворка (то есть если вас заставят писать на каком-то другом фреймворке или CMS вы сможете захватить свою любимую библиотеку с собой).

Я сделаю релиз после того как закончу модуль ORM и поправлю существующие модули для работы с новым API. Но если вам интересно вы можете заглянуть в ветку 3.0 на гитхабе (следует однако предупредить что документации там пока нет, она появится вместе с ORM). А теперь давайте посмотрим на новые возможности.
Читать дальше →

Видео-курс по JavaScript на русском языке

Reading time1 min
Views218K
Здравствуй, Хабр!

Представляю вам свой курс по JavaScript, недавно прошедний на Хекслете. Курс состоит из семи лекций общей продолжительностью около четырех часов.



Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).



Остальное – под катом.
Читать дальше →

Google Analytics. Осторожно боты

Reading time2 min
Views24K

Столкнулись с любопытной проблемой. На графике визитов видна интересная «ступенька». Мы обрадовались всплеску посещаемости. Но после анализа, выяснилось, что это боты.

Если погуглить на тему «Google analytics и боты», в основном утверждается что боты не влияют на показания статистики в GA. Посыл такой — аналитика использует JavaScript для отслеживания посетителей. Боты, существа примитивные, JavaScript выполнять не умеют, и аналитикой соответственно не учитываются.

Давайте разберемся в деталях.
Читать дальше →

Кубака. Два года из жизни лемура. Год 2012: Погружение

Reading time8 min
Views6.3K
qbaka
Привет, Хабр.

2 года назад два разработчика из Петербурга начали делать сервиc, который решает тривиальную, но вполне актуальную проблему: мониторинг JavaScript-ошибок в продакшене. Что из этого вышло и легко ли программисту стать стартапером постараемся рассказать в нашей истории. О менталитетах, двух долгих поездках в штаты, стартап-буллшите, интроверсии, победах и медном тазе, много ли денег $200K, почему iPad нужен чаще ноутбука и как получить год бесплатного хостинга.

Давайте знакомиться, нам есть что рассказать.
Читать дальше →

2GIS Dialer

Reading time3 min
Views45K
Время идет, а новые продукты 2ГИС всё не кончаются. Мы уже рассказывали о новом 2ГИС, новом дизайне и приложении для Blackberry 10. Настало время рассказать об ещё одном продукте из новой линейки.

На Хабре ни для кого не станет открытием, что на Android стандартный dialer (он же звонилка, он же номеронабиратель) можно заменить на любой другой. С ноября этим другим может стать дайлер от 2ГИС.

Читать дальше →

Новые исследования: как ещё связано SEO и социальные сигналы?

Reading time4 min
Views35K
Компания SearchMetrics, разрабатывающая аналитические программы для SEO, ежегодно исследует тысячи сайтов на первых страницах SERP по разным запросам, чтобы выявить закономерности попадания различных ресурсов в выдачи поисковых систем. А далее – определить важность тех или иных факторов при ранжировании этих площадок в Google. В 2013 году сайты, выпадающие на топовых страницах SERP, объединяют сильные социальные сигналы. Среди приблизительно 50 анализируемых факторов на первом месте по важности оказалось число +1 на Google+. Далее в списке идут: количество шеров на Facebook, количество и качество обратных ссылок (заметьте, только третье место), число друзей, лайков, комментариев на Facebook, активность на Pinterest и Twitter и т. д.

image

Читать дальше →

Общество телефонных зомби

Reading time3 min
Views137K
Многие знают, что я хакер. При этом многих удивляет, когда я говорю, что терпеть не могу технологии. Да, когда я произношу это, я слегка преувеличиваю. На самом деле, меня просто стало раздражать, каким образом технологии вторгаются в нашу жизнь.

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

Не поймите меня неправильно, технологии — это великая сила, которая помогла нам достичь удивительных высот (мы отправили людей на е***ую луну). Но это не мешает мне думать, что наши недавние изобретения скорее снизили качество нашей жизни, чем улучшили. Мы превратились в общество телефонных зомби, склонивших головы над светящимися экранами в бесконечном поглощении бесконечных объемов бесполезной информации.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity