Search
Write a publication
Pull to refresh
17
0
Ilia Agafonov @Tairesh

Backend Developer

Send message

Ещё семь фич HTML5, о которых вы могли не знать

Reading time3 min
Views89K
Доброго времени суток!

Все мы достаточно наслышаны об HTML5 и его возможностях. Например, элементы audio и video, которые у всех на слуху. Но несмотря на это, существует парочка тегов, о которых знают далеко не все, и о которых не знал я до недавнего времени. Итак, вот чем я хочу с вами поделиться.
Читать дальше →

Пишем эмулятор Кубика Рубика

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

Кубик будет в 3D и его можно будет вращать мышкой, а переворачивать грани можно, кликая мышкой по стрелкам. При том стрелки появляются у ближайшей к зрителю грани.


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

RSS-агрегатор с вконтакте и твиттером

Reading time1 min
Views15K
Я являюсь активным пользователем Google Reader, все новости узнаю от него же, и новость о его закрытии не могла пройти мимо. Посмотрев альтернативны и open source проекты, я не смог найти для себя привычный и подходящий.
Прикинув по времени я подумал, что смогу написать такой агрегатор сам, оставив основные функции и удобство использования Google Reader.

Встречайте myreader.info:

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

Главы IT-компаний просят правительство США принять новые правила иммиграционной политики

Reading time2 min
Views52K
Около полугода назад исполнительный вице-президент Microsoft признался перед журналистами, что его компания ощущает нехватку высококвалифицированных специалистов до такой степени, что готова лоббировать интересы иммигрантов перед правительством США и самостоятельно обеспечить финансирование грин-карт для потенциальных сотрудников своей компании.

Теперь же это заведомо неспешное дело приняло новый и более солидный оборот — под письмом Бараку Обаме и Палате представителей, которое просит власти США ускорить принятие и реализацию иммиграционной реформы, подписалось более сотни руководителей крупнейших IT-компаний. Как минимум, такие имена как Эрик Шмидт, Пол Оттелини, Марк Цукерберг и Марисса Мейер подчеркивают уровень компаний, готовых лоббировать непростое политическое решение.
Узнать подробности

Рекомендательная система: полезные задачи текстмайнинга

Reading time4 min
Views14K
Я продолжаю цикл статей по применению текстмайнинг-методов для решения различных задач, возникающих в рекомендательной системе веб-страниц. Сегодня я расскажу о двух задачах: автоматическое определение категорий для страниц из RSS-лент и поиск дубликатов и плагиата среди веб-страниц. Итак, по порядку.

Автоматическое определение категорий для веб-страниц из RSS-лент


Обычная схема добавления веб-страниц (вернее, ссылок на них) в Surfingbird такова: при добавлении новой ссылки пользователь должен указать до трёх категорий, к которым принадлежит эта ссылка. Понятно, что в такой ситуации задача автоматического определения категорий не стоит. Однако, кроме ручного добавления, ссылки попадают в базу и из RSS-потоков, которые предоставляют многие популярные сайты. Поскольку ссылок, поступающих через RSS-потоки, очень много, зачастую модераторы (а в этом случае именно они вынуждены проставлять категории) просто не справляются с таким объёмом. Возникает задача создания интеллектуальной системы автоматической классификации по категориям. Для ряда сайтов (например, lenta.ru или sueta.ru) категории можно вытащить непосредственно из rss-xml и вручную привязать к нашим внутренним категориям:

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

Перестаньте учить английские слова

Reading time4 min
Views464K
Шесть советов тем, кто хочет выучить язык и переводить.

Иллюстрация с сайта speakoutitalian.com

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

Мой первый совет и главное, что стоит запомнить из заметки — бросьте запоминать слова. Учите грамматику.

Это ещё зачем?

Вертикальная черта, затем ноль

Reading time3 min
Views41K
Заголовок, выраженный словами, понадобился только для поисковой находимости. Но речь пойдёт о роли символьной конструкции «|0» в JavaScript.

Впервые на неё я обратил внимание, когда переводил FAQ про asm.js и читал спецификации этого подмножества языка JavaScript. Там «|0» служит, например, для указания типа значения, возвращаемого из функции: увидели «|0» после значения — значит, перед нами знаковое целое.

Вдругорядь я заметил конструкцию «|0» в примере кода на Гитхабе, где происходило преобразование к целому числу результата деления на 1024².

Тогда глаза мои открылись, и я увидел прекрасные возможности:

( 3|0 ) === 3;       // целые числа не изменяет
( 3.3|0 ) === 3;     // у дробных чисел отбрасывает дробную часть
( 3.8|0 ) === 3;     // не округляет, а именно отбрасывает дробную часть
( -3.3|0 ) === -3;   // в том числе и у отрицательных дробных чисел
( -3.8|0 ) === -3;   // у которых Math.floor(-3.3) == Math.floor(-3.8) == -4
( "3"|0 ) === 3;     // строки с числами преобразуются к целым числам
( "3.8"|0 ) === 3;   // при этом опять же отбрасывается дробная часть
( "-3.8"|0 ) === -3; // в том числе и у отрицательных дробных чисел
( NaN|0 ) === 0;     // NaN приводится к нулю
( Infinity|0 ) === 0;     // приведение к нулю происходит и с бесконечностью,
( -Infinity|0 ) === 0;    // и с минус бесконечностью,
( null|0 ) === 0;         // и с null,
( (void 0)|0 ) === 0;     // и с undefined,
( []|0 ) === 0;           // и с пустым массивом,
( [3]|0 ) === 3;          // но массив с одним числом приводится к числу,
( [-3.8]|0 ) === -3;      // в том числе с отбрасыванием дробной части,
( [" -3.8 "]|0 ) === -3;  // и в том числе с извлечением чисел из строк,
( [-3.8, 22]|0 ) === 0    // но массив с несколькими числами вновь зануляется
( {}|0 ) === 0;                // к нулю также приводится пустой объект
( {'2':'3'}|0 ) === 0;         // или не пустой
( (function(){})|0 ) === 0;    // к нулю также приводится пустая функция
( (function(){ return 3;})|0 ) === 0;    // или не пустая

Итак, во-первых, перед нами удобное средство отбрасывания дробной части.

  • По отношению к отрицательным числам оно полезно тем, что дробное число превращается не в ближайшее меньшее целое число (возрастая по модулю), как это случилось бы после «Math.floor()», а в ближайшее меньшее по модулю целое число (возрастая по значению). Нередко именно это и требуется.
     
  • По отношению к положительным числам оно полезно уж тем одним, что конструкция «|0» более чем на порядок короче по сравнению с «Math.floor()». Поэтому она может и должна вызывать у разработчиков привыкание не меньшее, чем та принятая в jQuery запись «$()», о которой я говорил четыре дня назад, что с неё никто добровольно не перейдёт обратно на «document.getElementsByClassName()», например.

Во-вторых, перед нами удобное средство преобразования различных типов к целым числам.

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

Обзор и установка The Game Closure DevKit в Ubuntu

Reading time2 min
Views5.7K
Неосвещённым событием на Хабрахабре стал выход The Game Closure DevKit. Это игровой движок, использующий Javascript и технологии HTML5 для создания Web, iOS и Android приложений.
GC Devkit обладает интерфейсом для наблюдения объектов в запущенном приложении, при этом разработка на Javascript позволяет использовать среду отладки браузера. GC бесплатен даже для коммерческого использования, а код открыт под двойной лицензией GPLv3 и Game Closure Free License (GCFL). Основные особенности можно увидеть в видеоролике, размещённом на официальном сайте GC:


Вкусно, не правда ли? Давайте попробуем поставить Devkit на Ubuntu.
Читать дальше →

Загадка выпадающего списка «Амазона»

Reading time2 min
Views192K
Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



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

Flat UI — бесплатный набор плоских элементов веб-интерфейса [обновлено]

Reading time1 min
Views85K
Компания Designmodo, специализирующаяся на разработке веб-интерфейсов, опубликовала на Гитхабе довольно внушительный набор модных сегодня плоских элементов интерфейса — меню, кнопок, слайдеров, переключателей, чекбоксов, иконок и многого другого. Плоский дизайн интерфейсов активно продвигает Microsoft, и он всё чаще и чаще встречается в сети.

Можно спорить о преимуществах и недостатках такого дизайна, но игнорировать его нельзя — мода есть мода, так что этому набору наверняка найдётся место в колллекции большинства веб-дизайнеров. Кроме файлов изображений и стилей, набор включает шрифт Lato польского дизайнера Лукаша Джеджича и подобранные дизайнерами образцы цветовых сочетаний. Демо Flat-UI можно посмотреть здесь.

UPD: в данный момент доступ к репозиторию Flat UI закрыт по требованию компании LayerVault, которая считает, что Designmodo нарушила её авторские права. В Designmodo отрицают какое-либо заимствование и утверждают, что Flat UI — полностью оригинальная разработка.
Читать дальше →

5 секретов хорошего интерфейса. Личный опыт

Reading time18 min
Views32K
Последние несколько лет я плотно занимаюсь разработкой интерфейсов для разнообразнейших устройств – от банальных смартфонов и планшетов, до приложений под smartTV и некоторых эзотерических устройств вроде приставок для трансляции музыки через телевизор.


Один из упоминаемых в статье интерфейсов

Признаюсь честно – я плохой теоретик. Кажется, я, так и не осилил до конца ни одной книги по разработке или дизайну интерфейса и практически не читаю блогов популярных евангелистов от юзабилити. Но, возможно, для вас в этом есть и положительная сторона – у меня сформировался свой набор правил, которыми я пользуюсь для создания интерфейса.

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

Я люблю читать про интерфейсы.

Браузерный TTD: закрытое тестирование сетевой игры

Reading time1 min
Views5.9K
Всем доброго времени суток. Особенно любителям игры Transport Tycoon Deluxe. Напомню, что я занимаюсь портированием OpenTTD на JS и в последние время работал над портированием сетевой части игры. Сейчас промежуточные сборки позволяют играть по сети на одном игровом сервере. На данный момент сервер может принять до 255 игроков, а в одной игровой сессии может быть созданно до 15 компаний. Компанией может управлять как один, так и несколько человек (бекэнд — обычный OpenTTD сервер). Что бы не ударить в грязь лицом, я бы хотел провести закрытое тестирование.
Читать дальше →

Крупнейший регистратор доменных имён Godaddy заблокировал userapi.com

Reading time1 min
Views54K
Сегодня, примерно в 21:00 по МСК, стал недоступен домен userapi.com, благодаря чему сайт vk.com стал знатно подвисать.

Поскольку большая часть скриптов социальной сети находились на поддоменах st*.userapi.com, разработчики перенесли все на домен vk.me.

Официальных ответов администрации пока не последовало.

UPD:
Сейчас вообще творится неведомая чертовщина: то все переезжает на vk.me, то на vkontakte.ru, а то на vk.com
Ждем стабилизации.

UPD #2:
Интернет издание Цукерберг Позвонит выяснило:

Первый интерфейс «мозг-мозг» (пока у крыс)

Reading time2 min
Views87K


Мигель Николелис и Михаил Лебедев с коллегами из отдела нейробиологи университета Дьюка (США) опубликовали научную работу с описанием первого в мире интерфейса для передачи сигналов из мозга в мозг через интернет.
Читать дальше →

Try jQuery — новый интерактивный самоучитель по jQuery

Reading time2 min
Views72K
Раньше я как-то не стремился глубоко изучать jQuery, поскольку работаю в основном с back-end. Однако самоучитель TRYjQuery, ссылка на который пришла в недавнем письме от CodeSchool, вызвал интерес с первых кадров.

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

Фабрика виджетов jQuery UI

Reading time9 min
Views57K
Все jQuery UI виджеты создаются на простой основе — Фабрике Виджетов. Она обеспечивает гибкую основу для создания сложных, структурированных плагинов с совместимым API. С её помощью можно создавать не только плагины jQuery UI, но и любые объектно-ориентированные компоненты, не изобретая велосипедов. Она не зависит от других компонентов jQuery UI, наоборот, большая часть компонентов UI зависит от неё.

Что это?


Фабрика виджетов это метод глобального объекта jQuery —
jQuery.widget

[Опровергнуто] Посылки без отчества не отдаем, или о новых правилах почты России

Reading time2 min
Views197K
Почта России неожиданно серьезно осложнила и без того нелегкую жизнь получателем международных отправлений. Оказывается, с февраля на всех без исключения почтовых отправлениях, получаемых россиянами, должно присутствовать полное ФИО, включая отчество. Проще говоря — если в паспорте у вас есть отчество, то и на посылке оно должно присутствовать, иначе получить его вы не сможете.
Все нормально, посылки без отчества получать можно. Информация — в обновлении в конце топика.

Такая практика уже около года действует для отправлений, отправляемых внутри страны — без указания полного ФИО отправление не принимали к пересылке, но сейчас такие правила стали действовать и в отношении международных малых пакетов.
К сожалению, мне не удалось пока получить номер приказа, который устанавливает эти правила, но в наличии правил может убедиться каждый — позвонив на горячую линию почты России(8-800-2005-888).
А что делать?

Использование событий в jQuery плагинах

Reading time5 min
Views8.5K
Основной целью данной статьи является: показать различия между традиционной реализацией jQuery плагина и реализацией с применением событий. В статье будет: о традиционной реализации jQuery плагина, о работе с событиями в jQuery, и попытка заменить методы или callback-функции плагина событиями.

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

Создаем автарки в браузере с помощью вебкамеры

Reading time4 min
Views9.1K

Здравствуйте. Не так давно на одном из веб-проектов, мне понадобилась возможность получить фото с веб-камеры. Через некоторое время, на другом проекте, появилась такая же необходимость, и опять же замаячил на горизонте третий проект, с похожей функциональностью. Дабы не ходить каждый раз на html5 Rocks, и смотреть, «как там и чего», решил написать плагин.
Собственно, в данной статье я хочу представить результат своего труда: html5-webcam-avatar — jquery плагин для создания аватарок с веб-камеры.

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

Инновационный браслет MYO от Thalmic Labs

Reading time1 min
Views194K


Сегодня на выставке Mobile World Congress в Барселоне компания Thalmic Labs представила свою новую разработку — браслет для руки, с помощью которого можно управлять различными электронными устройствами. После просмотра видео кажется, что мы уже попали в будущее, а Leap устарел еще до появления в продаже…
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Backend Developer
Senior
From 4,000 €
Docker
SQL
Linux
PostgreSQL
Git
MySQL
PHP
Yii framework
Symfony
RabbitMQ