Pull to refresh
106
0.6
Рей @printf

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

Send message

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

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

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

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

Про конкурс


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

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

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

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

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

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

Читать дальше, там самое интересное же
Total votes 96: ↑91 and ↓5 +86
Comments 19

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

Reading time 2 min
Views 20K
Привет, друзья.

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

Reading time 2 min
Views 30K

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


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

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


Читать дальше, там интересно
Total votes 62: ↑50 and ↓12 +38
Comments 48

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

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

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



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

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

Читать дальше →
Total votes 44: ↑36 and ↓8 +28
Comments 24

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

Reading time 2 min
Views 8K
RandomizrЗдравствуйте, веб-дизайнеры Хабрахабра.

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

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

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

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

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

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

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

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

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

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

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

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

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

Reading time 5 min
Views 32K
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 %}
];

Почему это плохо?
Total votes 66: ↑61 and ↓5 +56
Comments 27

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

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

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

$ which php-cgi

Читать дальше →
Total votes 83: ↑59 and ↓24 +35
Comments 67

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

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

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

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

Reading time 4 min
Views 123K

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

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

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

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



Инвентарь


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

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

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

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

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

Читать дальше →
Total votes 11: ↑8 and ↓3 +5
Comments 2

GROUP_CONCAT для Django ORM

Reading time 2 min
Views 3.2K

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

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

Information

Rating
1,475-th
Location
Кирибати
Registered
Activity