Как стать автором
Обновить
8
0
Андрей Филиппов @sunburn

Пользователь

Отправить сообщение

Пишем симулятор медленных соединений на Go

Время на прочтение6 мин
Количество просмотров16K
В этой статье я хочу показать, как просто в Go можно делать достаточно сложные вещи, и какую мощь в себе несут интерфейсы. Речь пойдет о симуляции медленного соединения — но, в отличие от популярных решений в виде правил для iptables, мы реализуем это на стороне кода — так, чтобы можно было легко использовать, к примеру, в тестах.

Ничего сложного тут не будет, и ради большей наглядности я записал ascii-анимации (с помощью сервиса asciinema), но, надеюсь, будет познавательно.


Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии7

Do not be evil

Время на прочтение6 мин
Количество просмотров157K
Сегодня довольно непростой, но, очевидно, знаменательный день. Сегодня Яндексу пришлось пойти на шаг, который, как мне всегда хотелось верить, никогда не придётся делать.

Мы обратились в регулирующий орган, ФАС, чтобы вернуть равноправные отношения на рынке мобильных устройств. Наше обращение — признание одного неприятного факта. У нас с вами есть все шансы попасть в мир, где только одна компания будет решать, кто получит возможность донести сервисы до людей и чем эти люди смогут пользоваться.

Мы всегда верили в конкуренцию и право выбора пользователя. Настолько, что даже в наших поисковых результатах с первых дней существования Яндекса стоят ссылки на другие популярные поисковики. Если честно, я всегда был уверен, что и Гугл верит в то же. Что это компания инженеров, производящих крутые продукты. Увы, сейчас очевидно, что помимо технической компании, которая когда-то считала своим лозунгом «Do not be evil», теперь есть и совсем другая – компания, контролируемая юристами и бизнесменами.

Android давно уже совсем не выглядит открытой OS. И уж точно не выглядит открытой политика конкуренции Google на этой платформе. Например, сейчас мы столкнулись с тем, что вендоры, чтобы продавать в России телефоны с сервисами Яндекса, должны отказаться от всех сервисов Google не только в России, но и во всех остальных странах. При этом правила получения GMS и Google Play для каждого из них могут измениться в любой момент.

Мы хотим, чтобы в открытой OS условия и лицензии были открыты и прозрачны для всех.
Читать дальше →
Всего голосов 462: ↑340 и ↓122+218
Комментарии1060

«Галоп пикселя — часть первая» — базовые понятия, этапы взросления, прикладные упражнения

Время на прочтение42 мин
Количество просмотров271K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)
«Галоп пикселя», часть VI — Анимация персонажей. Бег (линк)

Всем хорошо известно, как мейнстрим подстегивает появление публикаций, связанных с тем, что популярно «на этой неделе». Последние полгода я часто натыкался на статьи «знакомство с пиксель-артом». Начинались они, как правило, с перечисления возможностей определенного софта. Однако за вычетом вопроса выбора программы и беглого перечисления известных фактов ни на йоту не приближали читателя к пониманию того, как этот пиксель-арт готовить. Именно этим досадным упущением мне хотелось бы заняться на первых же страницах 2015-года.

В данной публикации мы не рассматриваем программы, но копаем нечто большее. Сами пиксели. От истоков, начав с четырехцветной CGA-эры, вплоть до эпохи ренессанса. В публикации мы не рассматриваем игры, не поем дифирамбы художникам прошлого (разве что самую малость), занимаясь именно процессом создания простейшего пиксель-арта. Данный материал будет интересен начинающим артистам и интересующимся. Статья практически не содержит теории, нудных умозаключений и представляет сторонний взгляд на мир пиксель-арта со стороны некоего самоучки, который предпочел открыть каждую из Америк самостоятельно, не оглядываясь на официальных, общепризнанных и задокументированных Колумбов. Статья снабжена обильным количеством поясняющих иллюстраций, примеров, и советов.

Материал разделен на несколько публикаций в виду объема текста и изображений. Каждая статья имеет свою степень сложности, однако, все из них наглядны и могут быть использованы как руководство к действию.


Лопатить пиксели
Всего голосов 190: ↑185 и ↓5+180
Комментарии86

Видеообзор GarageBand для iPad

Время на прочтение1 мин
Количество просмотров3.4K
Простенький обзор GarageBand для iPad от дилетанта. Прошу прощения за качество съемки, в камере нет ручной фокусировки. В двух словах — программа сказочная. Восторженные отзывы могу только поддерживать. Если пользоваться платным софтом, то он должен быть таким.

Всего голосов 177: ↑154 и ↓23+131
Комментарии104

GMABooster? Разгоняем?

Время на прочтение4 мин
Количество просмотров27K


Решился опубликовать результаты моего исследования программы GMABooster, которая была представлена хабражителям буквально вчера. Сразу скажу, анализ не был бы проведен столь быстро, если бы не совершенно незнакомый хабраюзер Werat, который удаленно тестировал из под админа мой код на своем Acer Aspire One a150 (отважился же человек).

Своим топиком мне хотелось бы подчеркнуть важность открытых продуктов, свободы обмена информации между людьми [а еще напомнить всем жалующимся и плачущим, что Хабр — торт!].

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

Расследование внутри
Всего голосов 112: ↑110 и ↓2+108
Комментарии24

Три минуты Снова и снова

Время на прочтение1 мин
Количество просмотров693
Создать по-настоящему оригинальный видеоклип в наше время очень непросто — уже какие только идеи не эксплуатировались. Однако режиссеру Деннис Лиу все-таки удалось быть новатором. Он снял клип на песню «Again & Again» инди-группы The Bird And The Bee на основе интерфейса MacOS X. Впрочем, лучше один раз увидеть:

Точный тайминг пересменки операционных систем на экране видео начинается рабочим столом OS X Tiger и заканчивается десктопом «Леопарда».
Время, потраченное Лиу на «съемки» и монтаж (около трех месяцев), а также ехидный комментарий «Никогда раньше не видел, чтобы „фотошоп“ запускался настолько быстро».
Всего голосов 70: ↑54 и ↓16+38
Комментарии78

Видео лекций всего курса первой Школы разработки интерфейсов Яндекса

Время на прочтение2 мин
Количество просмотров179K
Разработка интерфейсов — одно из важнейших направлений в Яндексе, сервисами которого пользуются миллионы людей. А ни один российский вуз, к сожалению, не готовит разработчиков интерфейсов. Все знания, которые необходимы современному верстальщику или фронтенд-программисту, приходится черпать из статей в интернете, книг, докладов на конференциях. Но зачастую этого бывает недостаточно. Почти каждого нового разработчика интерфейсов, которого мы принимали на работу, приходилось многому обучать.

За долгое время работы в Яндексе нам удалось систематизировать все наши знания и огромный опыт в создании фронтенда веб-сервисов. Результатом этого осмысления и длительной работы стала первая Школа разработки интерфейсов, занятие которой шли в московском офисе Яндекса. Вся практическая часть обучения проходила в реальных проектах Яндекса. Теоретическая же состояла из лекций, которые читали ведущие разработчики интерфейсов Яндекса: Сергей veged Бережной, Михаил mishanga Трошев, Алексей doochik Андросов, Михаил azproduction Давыдов и другие.

Выпускники первой Школы разработки интерфейсов Яндекса

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

Читать дальше →
Всего голосов 164: ↑155 и ↓9+146
Комментарии64

Использование связки Sinatra, mongodb и carrierwave, пишем простую фотогалерею

Время на прочтение3 мин
Количество просмотров5.2K
Всем доброго времени суток!

Введение


На написание этого поста меня сподвигло слишком малое количество материала о sinatra, и тем более о данной связке. Надеюсь для кого то этот пост будет полезен. Ниже я опишу как можно совместно использовать sinatra, mongodb и carrierwave, на примере создания простой фотогалереи. Для общения между sinatra и mongodb мы будем использовать отличный gem — mongoid. По умолчанию предполагается что у вас уже установлен ruby и mongodb. Приступим.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии12

Решение судоку с помощью веб-камеры в реальном времени

Время на прочтение12 мин
Количество просмотров60K

Предисловие




Это приложение может и не имело практической ценности, но опыта прибавило действительно много. Я бы хотел немного поразмышлять на тему компьютерного зрения. Эта область является одной из самых захватывающих в современных компьютерных вычислениях, и она очень сложна. Что легко и просто для человеческого мозга, то очень сложно для компьютера. Многие вещи до сих пор остаются невозможными с сегодняшним уровнем развития IT.

Программа написана с помощью низкоуровневого языка C++, потому что я действительно хотел понять, как же это все работает изнутри. Если вы тоже хотите начать изучение компьютерного зрения, то для этого пригодиться библиотека OpenCV. На CodeProject вы сможете найти несколько уроков по ней. Изображение с веб-камеры получается с помощью исходного кода Вадима Горбатенко (AviCap CodeProject).
Читать дальше →
Всего голосов 363: ↑360 и ↓3+357
Комментарии67

Сборка ffmpeg на CentOS 6.0 x64 для Web видео mp4, webm, ogv

Время на прочтение3 мин
Количество просмотров13K
Работая с одним проектом, столкнулся с необходимостью заливки видео на сервер (качественные ролики длительностью 2-3 минуты) с последующей репликаций их на S3 & дистрибьюцией через CouldFront. На хостинге стоит Centos 6.0 x64. ffmpeg который в дополнительных репозиториях к сожалению лохматой версии 6.1 и не включает в себя vp8 и иже с ним. Поэтому пришлось заниматься собственноручной сборкой. К сожалению пошарив по инету толкового гайда не нашел, поэтому почитав в округе на данную тему откатал для себя гайд на VirtualBox. Буду рад если кому-то пригодится. Библиотеки были выбраны последние на момент начала ноября.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии21

Анимация меню при помощи CSS3

Время на прочтение8 мин
Количество просмотров37K


В данной статье я хотел бы показать вам некоторые приёмы создания эффектов при помощи CSS3 на примере меню. Идея заключается в простой композиции элементов: иконки, основного названия и вторичного названия, которое будет анимировано при наведении курсора, используя только CSS-переходы и CSS-анимацию. Мы рассмотрим несколько различных эффектов для элементов.
Читать дальше →
Всего голосов 195: ↑188 и ↓7+181
Комментарии49

SITH — техника CSS3 для плавной смены изображения

Время на прочтение2 мин
Количество просмотров17K
Доброго времени суток, Хабр!

Хотел бы рассказать Вам, каким образом я добился плавной смены цветов иконок при наведении на них курсора. Подобная проблема часто встречается на Facebook. Если иконка представляет собой синий силуэт на белом фоне, то при наведении курсора оба цвета меняются местами, причём происходит это мгновенно и выглядит немного резко. Мои эстетические чувства были задеты, и я разработал своё решение.

Не встретив на просторах Интернета чего-либо подобного, я взял на себя ответственность назвать этот метод SITH (Soft Image Transition on :Hover) — плавный переход изображения при наведении.

SITH - CSS3 Soft Image Transition on :Hover

Под хабракатом Вы найдёте полное описание техники, весь код, несколько скриншотов и ссылку на демонстрационную версию.
Читать дальше →
Всего голосов 140: ↑119 и ↓21+98
Комментарии48

Обзор свежих материалов, июнь 2011

Время на прочтение11 мин
Количество просмотров1.2K
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-май 2011.


Читать дальше →
Всего голосов 73: ↑67 и ↓6+61
Комментарии10

GitHowTo — тур обучения гиту на русском

Время на прочтение1 мин
Количество просмотров15K
image

Спешу поделиться радостной новостью о запуске проекта GitHowTo — интерактивного тура-обучалки основам Git.

За основу были взяты идеи gitimmersion.com, но переведены на русский язык и немного изменены под реалии не-ruby разработки, поэтому спешите любить и жаловать — githowto.com!

Буду чрезвычайно рад любым замечаниям и пожеланиям к проекту.
Всего голосов 179: ↑178 и ↓1+177
Комментарии68

Pythonic

Время на прочтение7 мин
Количество просмотров37K
Итак, что же это значит, когда кто-либо говорит, что foo выглядит как pythonic? Что значит, когда кто-либо смотрит в наш код и говорит, что он unpythonic? Давайте попробуем разобраться.

В Python-сообществе существует неологизм pythonic, который можно трактовать по разному, но в общем случае он характеризует стиль кода. Поэтому утверждение, что какой-либо код является pythonic, равносильно утверждению, что он написан в соответствии с идиома Python’a. Аналогично, такое утверждение в отношении интерфейса, или какой-либо функциональности, означает, что он (она) согласуется с идиомами Python’a и хорошо вписывается в экосистему.

Напротив, метка unpythonic означает, что код представляет собой грубую попытку записать код какого-либо другого языка программирования в синтаксисе Python, а не идиоматическую трансформацию.

Понятие Pythonicity плотно связано с минималистической концепцией Python’a и уходом от принципа «существует много способов сделать это». Нечитабельный код, или непонятные идиомы – все это unpythonic.

При переходе от одного языка к другому, некоторые вещи должны быть «разучены». Что мы знаем из других языков программирования, что не будет к месту в Python’e?
Читать дальше →
Всего голосов 106: ↑99 и ↓7+92
Комментарии63

Unity — бесплатный кроссплатформенный 3D движок (и браузерный тоже)

Время на прочтение7 мин
Количество просмотров95K

Преамбула


Итак, сегодня я хотел бы рассказать вам о Unity (тем, кто ещё не знаком с ним, по крайней мере). Безусловно, на Хабре есть люди, которые знают, что это такое, но поиск выдаёт катастрофически малое количество топиков с упоминанием сабжа — два из них просто сообщают о новых версиях, один кратко презентует и ещё один посвящен всё-таки его использованию. «Непростительно, надо это исправить!», — подумал я, и решил написать краткий презентейшн с целью популяризации технологии. Если вы уже в теме — дальше можете не читать.

Честно говоря, когда я читал на википедии о бесплатном (по крайней мере, с вполне нормальной по функционалу фришной лицензией) 3d движке с нормальным IDE, встроенной нормальной физикой, аудио-движком и прямой реализацией сетевого мультиплеера на котором можно делать приложения для всего, кроме, пожалуй, nix'ов (поддерживаются и нормально работают Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360), я уже чуял подвох.
Читать дальше →
Всего голосов 92: ↑86 и ↓6+80
Комментарии121

Мультиплексированный ввод/вывод

Время на прочтение7 мин
Количество просмотров29K

Preface


В данной статье я бы хотел затронуть важные аспекты программирования приложений для web, которые должны обслуживать множество пользователей одновременно, а значит мы будем разбирать уже всем надоевший асинхронный ввод/вывод, мультиплексирование и т.п.
Преследуются следующие цели:
  1. Систематизировать материал по данному направлению, обсудить некоторые несостыковки в терминологии
  2. Полностью разобрать фундамент, на котором строятся приложения для обслуживания множество клиентов
  3. Выработать стратегию для будущего приложения на python которое должно обслуживать множество клиентов
  4. Создать четкую картину в голове (недаром говорят понимаешь — когда можешь объяснить)


Читать дальше →
Всего голосов 53: ↑50 и ↓3+47
Комментарии17

Zend_Auth + Zend_Acl

Время на прочтение3 мин
Количество просмотров2.9K
На днях засел за изучение Zend Framework. Решил сразу написать простенькую cms. Первым делом решил разобраться с аутентификацией и авторизацией.

И понеслось...
Всего голосов 38: ↑22 и ↓16+6
Комментарии37

Правило чтения по спирали

Время на прочтение6 мин
Количество просмотров15K
Техника, известная как «Чтение по спирали/по часовой стрелке» (“Clockwise/Spiral Rule”) позволяет любому программисту разобрать любое объявление языка Си.

Следуйте этим простым шагам:
Читать дальше →
Всего голосов 145: ↑132 и ↓13+119
Комментарии42

Ubuntu 9.10 и catalyst: исправляем медленное развёртывание окна

Время на прочтение1 мин
Количество просмотров936
В свежеустановленной ubuntu у счастливых^Wпользователей проприетарного драйвера от ati(catalyst), при включенных эффектах, очень долго разворачивается окно. Для исправления нужно поставить «иксы» с патчем nobackflill(отключается инициализация фона). Это легко сделать:
  1. В /etc/apt/sources.list добавить:
    deb ppa.launchpad.net/launchpad-weyland/xserver-nobackfill/ubuntu karmic main
  2. Выполнить:
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16E70E3E
    sudo aptitude update
    sudo aptitude upgrade
  3. Перезагрузить X сервер

на welinux.ru
Всего голосов 24: ↑18 и ↓6+12
Комментарии28
1

Информация

В рейтинге
Не участвует
Откуда
Тюмень, Тюменская обл. и Ханты-Мансийский АО, Россия
Дата рождения
Зарегистрирован
Активность