Как стать автором
Обновить
104
0.2
Рей @printf

Девочка-волшебница

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

Внутри поста деньги. Очередной JavaScript-конкурс

Время на прочтение4 мин
Количество просмотров9.4K
Привет, друзья. Тут речь пойдет о маленьких конкурсах JavaScript-программистов, которые проводит стартап Хола. Мне до сих пор кажется, что посетители Хабрахабра — самая целевая аудитория для таких конкурсов, особенно после разделения сайтов на МикроМозг и тот, другой сайт.

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

Еще в этом посте я постараюсь подытожить опыт, сын ошибок трудных: что уже делали, что получилось, и как с этим теперь жить дальше.

Про конкурс


Сразу самое интересное: условия конкурса.
Всенепременно читать дальше
Всего голосов 36: ↑23 и ↓13+10
Комментарии22

Пост о маленьких видеоиграх

Время на прочтение6 мин
Количество просмотров38K
Привет, друзья. В этом посте мне бы хотелось рассказать, как я писал маленькие HTML5-игры для конкурса js13k, какие подводные камни повстречались на этом тернистом пути, и что получилось в результате.

Подводные камни на тернистом пути
(Подводные камни на тернистом пути — это русло пересыхающей реки, например. Летом в нем растет всякая трава и другие вегетарианские штуки, а осенью начинаются дожди, и всё уходит под воду. Получается терновник вместе с подводными камнями, очень метафорично и травмоопасно.)

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

Но сначала 77 слов про js13k

Читать дальше, там самое интересное же
Всего голосов 96: ↑91 и ↓5+86
Комментарии19

Разгоняем JavaScript вместе (Внимание, конкурс!)

Время на прочтение2 мин
Количество просмотров20K
Привет, друзья.

Так получилось, что мы пишем разные высоконагруженные вещи на JS. В отличие от простых сценариев в браузере, оптимизация производительности JS на сервере (речь в основном о Node.js) – тема очень интересная практически. Думаю, присутствующим не надо объяснять, почему быстрый код лучше, чем медленный.

Вообще оптимизация – это далеко не только переписывание на Си или ассемблере «горячих» участков кода. В нашей команде дискуссия о том, как заставить скрипт работать шустрее – явление перманентное. А поскольку существуют объективные критерии оценки (бенчмарк и юнит-тесты), не допускающие патологической ситуации «о вкусах не спорят» – в результате действительно получается быстрый код, снижение нагрузки на сервер, процветание, радость.
Читать дальше →
Всего голосов 48: ↑31 и ↓17+14
Комментарии126

Readability своими руками

Время на прочтение5 мин
Количество просмотров23K
Поскольку побеждать Великий Китайский Роскомнадзор наша штука для обхода блокировок в интернете пока не особенно научилась, а рассказать что-нибудь странное про свою работу все равно хочется, расскажу про реимплементацию похожего на Readability алгоритма при помощи Node.js и Бэйцзинского технологического института.

Что это вообще такое


Readability — это радикальное продолжение идеи AdBlock убирать с веб-сайтов лишние элементы. Там, где AdBlock старается снести только самые бесполезные для пользователя вещи (в основном рекламу), Readability удаляет заодно скрипты, стили, навигацию и все остальное ненужное. Раньше такой вид страницы называли «версия для печати», хотя на самом-то деле текст предназначен для чтения (отсюда название Readability – «Удобочитаемость»).

Лирическое отступление про парсеры


Основная характеристика парсера сайтов, или других слабо структурированных форматов – это количество знаний о частных случаях использования формата в дикой природе.
Читать дальше, там самое интересное
Всего голосов 58: ↑53 и ↓5+48
Комментарии13

Задача за $500. Часть вторая, про деньги

Время на прочтение2 мин
Количество просмотров29K
В прошлом посте (tl;dr метод поиска сотрудников через конкурсы с денежными призами в интернете, а не по классической схеме «резюме, отдел кадров, работа») с первого комментария началось обсуждение рентабельности подхода, а именно – не слишком ли дорого такие поиски работников обойдутся. Постараюсь ответить на этот вопрос, ну и вообще рассказать, что получилось.

Напомню вкратце общие положения:

  • Всем желающим предложена задача на языке Си;
  • Программист, приславший хорошее решение с первого раза, получает $500, без каких-либо обязательств;
  • Со второго и более раза – $250;
  • Трудоустройство (в т.ч. удаленная работа) предлагается при наличии взаимной симпатии;
  • Никаких резюме, «холодных» рассылок через LinkedIn и т.п. фигни.
Читать дальше, там самое интересное
Всего голосов 68: ↑57 и ↓11+46
Комментарии113

Задача за $500. Как стартап программистов искал

Время на прочтение2 мин
Количество просмотров25K
Многие компании вовсе не стремятся что-то улучшить или поменять в своем отношении к найму сотрудников: срабатывает принцип хорошего админа «работает — не трогай», лень, уверенность в дедовских методах работы кадровиков (нужное подчеркнуть).

Вообще поиск разработчиков — тема достаточно сложная, отчасти из-за обилия противоречивой информации. Только на Хабре в хабе «HR» интересующийся вопросом читатель найдет массу вещей обо всем на свете.

В этом посте я не сделаю никаких душераздирающих выводов, мне просто хочется увеличить уровень энтропии рассказать о том, как находит хороших разработчиков маленький, но очень мультинациональный стартап, что из этого получается, а что не получается.
Читать дальше, там самое интересное
Всего голосов 59: ↑48 и ↓11+37
Комментарии74

Строковая интерполяция. Сказка-быль

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

Постановка задачи


Совершенно случайно я превратился из питониста в JS-разработчика, и на мою хрупкую детскую психику обрушился непосильный груз вещей, которых в JS нет. Например, нет удобного форматирования строк. На питоне можно написать:
'hello, %(thing)s' % {'thing': 'world'}

Или вот так:
'hello, {thing}'.format(**{'thing': 'world'})


Читать дальше, там интересно
Всего голосов 62: ↑50 и ↓12+38
Комментарии48

Связные списки в функциональном стиле

Время на прочтение2 мин
Количество просмотров20K
Рассмотрим вариант реализации связных списков через замыкания.

Для обозначения списков будем использовать нотацию, похожую на Haskell: x:xs, где x — начало списка (head), xs — продолжение (tail).



В качестве языка реализации я выбрал JavaScript.

Конструируем список

Читать дальше →
Всего голосов 44: ↑36 и ↓8+28
Комментарии24

Поиграть со шрифтами?

Время на прочтение2 мин
Количество просмотров8.1K
RandomizrЗдравствуйте, веб-дизайнеры Хабрахабра.

Вашему вниманию предлагается штука, в которой можно неистово играть шрифтами (и не только) — Web Design Randomizr. Она появилась случайно, задумывалась совершенно иначе, получилось что-то совсем третье, в общем, ничего примечательного.

Пример того, что она делает, видно на изображении справа, если оно загрузилось.
Читать дальше →
Всего голосов 63: ↑56 и ↓7+49
Комментарии48

Что не спрашивать на технических интервью

Время на прочтение2 мин
Количество просмотров5.4K
Никогда не требуйте от соискателя эзотерических знаний в какой-то определенной технологии. Нет абсолютно никакой связи между такими знаниями и тем, насколько эффективно человек будет работать в вашей команде.

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

Спрашивать эти вещи на собеседовании означает внушить соискателю, «я настоящий маньяк и неделю гуглил всю эту бессмысленную фигню только затем, чтобы поиздеваться над тобой и увидеть, как ты страдаешь».
Читать дальше →
Всего голосов 133: ↑105 и ↓28+77
Комментарии399

Разработчики Firefox опубликовали Roadmap на 2012 год

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

Ссылка на оригинал (Mozilla Wiki).

Первый квартал

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

Миграция с Google Chrome: Firefox уже поддерживает миграцию (экспорт пользовательских данных) с других популярных браузеров. Пришло время предоставить аналогичный функционал для пользователей Google Chrome.
Читать дальше →
Всего голосов 53: ↑46 и ↓7+39
Комментарии45

Рисуем графики (диаграммы) в Django

Время на прочтение5 мин
Количество просмотров34K
django-google-charts

Многие веб-разработчики время от времени сталкиваются с необходимостью визуализировать сравнительно большое количество данных при помощи диаграмм (далее я буду называть их графиками, хоть это и не совсем верно). Задача не нова, и в сети есть множество готовых решений: работающие на стороне сервера и на стороне клиента, использующие изображения, Canvas, SVG, Flash, Silverlight…

В этой статье я расскажу про django-google-charts и некоторые особенности использования Google Chart Tools для построения графиков на сайте под управлением Django.

Часто, когда нужно добавить график на страницу, разработчик идет по пути наименьшего сопротивления: копирует JavaScript из примера в интернете и как-нибудь выводит в него данные из приложения. Получается что-то наподобие:

var chart_data = [
    {% for row in chart_data %}
    [{{ row.0 }}, {{ row.1 }}],
    {% endfor %}
];

Почему это плохо?
Всего голосов 66: ↑61 и ↓5+56
Комментарии27

django-php: PHP в шаблонах Django

Время на прочтение1 мин
Количество просмотров10K
django-phpВ этом посте я расскажу, как подружить Django и PHP с помощью приложения django-php.

Нам понадобится бинарник php-cgi, установленный в системе. Проверить его наличие можно, введя в терминале

$ which php-cgi

Читать дальше →
Всего голосов 83: ↑59 и ↓24+35
Комментарии67

Тестирование проектов Django

Время на прочтение5 мин
Количество просмотров56K
В предыдущем посте мы бегло рассмотрели некоторые приемы тестирования кода на питоне. Все это применимо также и к Django-проектам, безусловно, но есть достаточное количество подводных камней и просто интересных штук, о которых я попробую рассказать.

Краткое содержание поста:
  1. тестирование веб-сайтов — это сложно и непонятно
  2. юнит-тесты в django
  3. тестовая БД и как с ней бороться
  4. smoke testing
  5. покрытие кода (code coverage)
Читать дальше →
Всего голосов 74: ↑70 и ↓4+66
Комментарии23

Тестирование. Начало

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

Привет. В этой серии постов я попробую рассказать про тестирование кода на питоне, в частности проектов django. Мы рассмотрим модульное тестирование (юнит-тесты), статический анализ кода и некоторые подводные камни тестирования веб-сайтов.

Вводную часть о пользе тестирования опустим — код, покрытый тестами, становится мягким и шелковистым, про это только ленивый еще не читал / писал.
Читать дальше →
Всего голосов 130: ↑119 и ↓11+108
Комментарии16

Веб-разработка на iPad

Время на прочтение2 мин
Количество просмотров29K
В этом посте мне хотелось бы пообщаться с вами на тему «пригоден ли айпад для создания контента». А поскольку сочинять музыку и рисовать картины я совсем не умею, мы сейчас попробуем создать веб-страничку на айпаде и выложить ее в интернет.



Инвентарь


Нам понадобится текстовый редактор (я выбрал Gusto, хотя можно было использовать, например, Textastic), графический редактор (установил на всякий случай сразу два: Adobe Photoshop Express и PhotoPad, оба бесплатные), приложение Яндекс.Фотки для загрузки картинок в интернет, и CSS3Machine — про нее расскажу прямо сейчас.

Далее в посте очень много изображений. Пользователи медленного, мобильного или дорогостоящего интернета могут испытывать дискомфорт и легкое головокружение.
Читать дальше →
Всего голосов 121: ↑100 и ↓21+79
Комментарии40

Brother DCP-330C: учимся экономить краску

Время на прочтение1 мин
Количество просмотров2.1K
Так получилось, что мне в руки попал означенный принтер. Хорошая, надо сказать, железка: недорогая, печатает вроде неплохо, на сайте производителя нашлись даже драйвера под Linux и вменяемая инструкция по их установке.

Обнаружился и один существенный недостаток: работа с расходными материалами. Устройство использует чернильные картриджи Innobella LC-57, коих четыре штуки (отдельно C, M, Y, K). Уровень краски определяется очень приблизительно, зачастую принтер сигнализирует о необходимости замены картриджа, когда израсходована едва половина чернил. Хуже того, если один из картриджей опустел или не установлен, устройство отказывается делать что-либо вообще.

Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии2

GROUP_CONCAT для Django ORM

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

Агрегатные функции в Django ORM — крутые. Это обстоятельство послужило поводом добавить еще одну =)

Далее речь пойдет о mysql-специфичной функции GROUP_CONCAT и волшебных розовых пони, как на картинке django-trunk.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии8

Информация

В рейтинге
2 437-й
Откуда
Кирибати
Зарегистрирован
Активность