Pull to refresh
105
0
Рей @printf

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

Send message

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

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

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

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

Про конкурс


Сразу самое интересное: условия конкурса.
Всенепременно читать дальше

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

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

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

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

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

Читать дальше, там самое интересное же

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

Reading time2 min
Views20K
Привет, друзья.

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

Reading time2 min
Views30K

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


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

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


Читать дальше, там интересно

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

Reading time2 min
Views20K
Рассмотрим вариант реализации связных списков через замыкания.

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



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

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

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

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

Reading time2 min
Views8.1K
RandomizrЗдравствуйте, веб-дизайнеры Хабрахабра.

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

Пример того, что она делает, видно на изображении справа, если оно загрузилось.
Читать дальше →

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

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

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

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

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

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

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

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

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

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

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

Reading time5 min
Views35K
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 %}
];

Почему это плохо?

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

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

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

$ which php-cgi

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

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

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

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

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

Reading time4 min
Views127K

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

Вводную часть о пользе тестирования опустим — код, покрытый тестами, становится мягким и шелковистым, про это только ленивый еще не читал / писал.
Читать дальше →

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

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



Инвентарь


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

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

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

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

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

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

GROUP_CONCAT для Django ORM

Reading time2 min
Views3.4K

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

Далее речь пойдет о mysql-специфичной функции GROUP_CONCAT и волшебных розовых пони, как на картинке django-trunk.
Читать дальше →

Information

Rating
Does not participate
Location
Кирибати
Registered
Activity