Pull to refresh
8
0
Андрей Филиппов @sunburn

User

Send message

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

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

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


Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments7

Do not be evil

Reading time6 min
Views156K
Сегодня довольно непростой, но, очевидно, знаменательный день. Сегодня Яндексу пришлось пойти на шаг, который, как мне всегда хотелось верить, никогда не придётся делать.

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

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

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

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

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

Reading time42 min
Views265K


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

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

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

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


Лопатить пиксели
Total votes 190: ↑185 and ↓5+180
Comments86

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

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

Total votes 177: ↑154 and ↓23+131
Comments104

Эффективная обработка фотографий в Photoshop

Reading time6 min
Views146K
Эффективная обработка фотографий в Photoshop

Читая статьи о Photoshop, я часто удивляюсь тому, насколько многие авторы усложняют решение по сути простых задач по обработке. Этим страдают и многие «монументальные» писатели, например Дэн Маргулис. Но ему это простительно – его задача написать о всех тонкостях и нюансах процесса обработки, рассмотреть его со всех ракурсов и сторон. Хотя именно эта особенность подачи материала в его книгах отталкивает многих читателей.

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

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

Читать дальше →
Total votes 288: ↑244 and ↓44+200
Comments117

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

Reading time4 min
Views27K


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

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

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

Расследование внутри
Total votes 112: ↑110 and ↓2+108
Comments24

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

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

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

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

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

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

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

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

Читать дальше →
Total votes 164: ↑155 and ↓9+146
Comments64

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

Reading time3 min
Views5.2K
Всем доброго времени суток!

Введение


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

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

Reading time12 min
Views60K

Предисловие




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

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

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

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

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

Reading time8 min
Views37K


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

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

Reading time2 min
Views17K
Доброго времени суток, Хабр!

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

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

SITH - CSS3 Soft Image Transition on :Hover

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

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

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


Читать дальше →
Total votes 73: ↑67 and ↓6+61
Comments10

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

Reading time1 min
Views15K
image

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

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

Буду чрезвычайно рад любым замечаниям и пожеланиям к проекту.
Total votes 179: ↑178 and ↓1+177
Comments68

Pythonic

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

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

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

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

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

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

Reading time7 min
Views95K

Преамбула


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

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

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

Reading time7 min
Views28K

Preface


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


Читать дальше →
Total votes 53: ↑50 and ↓3+47
Comments17

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

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

Следуйте этим простым шагам:
Читать дальше →
Total votes 145: ↑132 and ↓13+119
Comments42
1

Information

Rating
Does not participate
Location
Тюмень, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity