Pull to refresh
14
0
Алексей Козулин @jinxal

User

Send message

HTML5 Audio и Game Development: баги браузеров, проблемы и их решения, идеи

Reading time6 min
Views11K
В топике я расскажу о нюансах использования тега <audio> в разных браузерах при разработке игр, о проблемах, с которыми я столкнулся и о том, как их решить. Объяснение будет идти паралельно с написанием обертки для удобной работы.
Читать дальше →
Total votes 74: ↑64 and ↓10+54
Comments85

Пишем своё первое приложение на Android

Reading time10 min
Views1.8M

Предисловие


Цель данного поста — с одной стороны поделиться своим успешным опытом старта разработки приложений на платформе Android и с другой стороны поспособствовать развитию рынка софта для этой замечательной и бурно растущей платформы за счёт (без ложной скромности скажу) возможно Вас, прочитавших данный пост. В сети, конечно, можно найти материалы на тему разработки приложения «чуть сложнее, чем helloworld», но как правило они разрозненные и в них не описываются различные мелкие подводные камешки. В данном посте мы рассмотрим полный цикл разработки приложения, начиная с чистого компьютера до готового apk-файла. Под катом скрины.
Читать дальше →
Total votes 138: ↑123 and ↓15+108
Comments99

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

Reading time8 min
Views37K


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

Тюнинг nginx

Reading time8 min
Views97K
Статья написана по материалам моего доклада на CodeCamp 2009.

Для многих из нас настает тот долгожданный день, когда аудитория сайта начинает стремительно расти. Каждое утро мы, затая дыхание, смотрим на графики google analitycs и расплываемся в улыбке, когда взят рубеж в очередную тысячу посетителей в день. Как правило, рост посещаемости не совпадает с ростом технической базы и сайт начинает тормозить. Тут в игру вступает сисадмин...

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

Читать дальше →
Total votes 102: ↑100 and ↓2+98
Comments69

Оформление изображений на CSS3

Reading time8 min
Views70K
При использовании свойств box-shadow или border-radius непосредственно на изображении, браузеры могут некорректно отображать заданные нами CSS стили, из-за чего внешний вид блока будет существенно отличаться от задуманного. Однако если использовать изображение в качестве фона, то этой проблемы можно запросто избежать. Из статьи вы узнаете, как с помощью jQuery сделать идеально закругленные углы у изображений, а так же какие еще способы оформления возможны с помощью таких свойств как box-shadow, border-radius и transition.
Читать дальше →
Total votes 253: ↑245 and ↓8+237
Comments51

Как сделать конкурс так, чтобы в нём участвовало больше 2 человек

Reading time6 min
Views39K
Думаю, почти все тут помнят недавний конкурс за MS-планшет, который призвал к жизни кучу мертворожденных топиков и вызвал некоторое бурление. Это было пример того, как можно сделать популярно, активно, динамично, но не в тему. Проблема в том, что иногда даже так сделать не получается.

Если вы сами проводили конкурсы и всё было ок — не читайте топик. Если где-то ждал облом — добро пожаловать под кат.

Читать дальше →
Total votes 110: ↑102 and ↓8+94
Comments21

Шортики — короткие и смешные, или как мы готовили сайт к Хабраэффекту

Reading time7 min
Views3.2K


Намба 0: Вступление

Однажды, задумчиво листая башорг, я вдруг понял, что большинство цитат довольно длинные и очень часто их просто лень читать. В наш век всеобщей спешки — на это уходит много времени. Таким образом родился новый формат: Шортики (от английского слова Short — короткий). Шортик — это короткая (из одного-двух предложений) шутка, жестко ограниченная 255 символами (чтобы не повадно было).

Как раз в этот момент я хотел подучить программирование и искал несложную задачу. Сайт я накидал довольно быстро — за пару вечеров, рассказал о нем коллегам по работе и паре знакомых в IRC, и собирался уже о нем забыть, как вдруг обнаружил, что за два дня сайт посетило 500 человек, из которых чуть ли не треть подписалась на RSS. Стало понятно, что концепция людям понравилась. Немного прилизав сайт внешне, я решился показать его Хабрасообществу — Шортики — короткие и смешные, прошу любить и жаловать.

P.S. Учитывая то, что это не совсем стартап (проект пока некоммерческий, да и «стартап» — слишком громкое слово для моей поделки), приобретенная за годы пребывания на сайте хабрасовесть не позволила мне написать нетехническую статью. Поэтому, под катом вас ждет занимательная история о том, как мы готовили Шортики к Хабраэффекту.

Читать дальше →
Total votes 230: ↑193 and ↓37+156
Comments205

Замыкания и объекты JavaScript. Переизобретаем интерпретатор

Reading time12 min
Views25K
Обычно концепции или парадигмы программирования объясняют либо описательно — «разжёвывая» новые идеи простыми словами, либо метафорически — уподобляя их хорошо знакомым аудитории предметам и понятиям. Но ни первый, ни второй способ не дает такого точного и полного представления о предмете, как взгляд с точки зрения низкоуровневой реализации.

Когда в изучении языка доходишь до нетривиальных вещей, бывает полезно сместить уровень абстракции, чтобы понять, как на самом деле всё устроено. Ведь, по большому счету, любые конструкции языков сколь угодно высокого уровня сводятся к старому доброму машинному коду. Писать в объектно-ориентированном или функциональном стиле можно и на чистом C, и даже на ассемблере. Грубо говоря, любой высокоуровневый язык — это зафиксированный на уровне компилятора или интерпретатора набор синтаксических карамелек и шоколадок. Повышение уровня абстракции позволяет писать более сложные программы с меньшими усилиями, но вот понять в начале пути, что конкретно имеется в виду под наследованием или замыканием, как это всё работает и почему, гораздо легче, разобравшись, каким образом всё это реализовано.

JavaScript, как никакой другой язык, нуждается в именно таком объяснении. Функциональная природа, скрытая за Си-подобным синтаксисом, и непривычная прототипная модель наследования поначалу сильно сбивают с толку. Давайте мысленно понизим уровень JavaScript до простого процедурного, наподобие Си. Отталкиваясь от этого «недоязыка», переизобретем функциональное и объектно-ориентированное программирование.
Читать дальше →
Total votes 114: ↑113 and ↓1+112
Comments30

Масштабируемые JavaScript приложения

Reading time22 min
Views40K
Более месяца назад в статье FAQ по JavaScript: задавайте вопросы был задан вопрос «Подскажите примеры хорошего подхода организации JS кода к сайту на достаточно высоком уровне. Как можно узнать подробнее практики реализации например gmail?».

Пришло время ответить на данный вопрос. Я немного затянул т.к. хотел рассказать доклад на одноименную тему на Я.Субботнике. Доклад был очень коротким многие важные моменты пришлось выкинуть. Статья — более-менее полная версия.

Эта статья о том, как сделать крупное веб-приложение расширяемым и поддерживаемым: архитектура, подходы, правила.
Читать дальше →
Total votes 206: ↑202 and ↓4+198
Comments108

Индикатор прогресса с помощью HTML5 Canvas

Reading time6 min
Views7.3K
Привет, Хабр!
Всё больше статей появляется про Canvas, и это не может не радовать. Основы, будем надеяться, уже изучены, а мне хотелось бы поделиться примером возможного практического использования canvas, а именно создать анимированный индикатор прогресса.

Для нетерпеливых результаты эксперимента можно посмотреть здесь: http://pastehtml.com/view/1d7z824.html, а также скриншот конечного результата:


Прогресс-бар получился довольно простой, но в то же время в стиле веб 2.0 — закругленный (конечно же!), с элементами глубины и объема: то есть тенями и градиентами.

За подробностями прошу под кат.
Приступить к созданию
Total votes 93: ↑88 and ↓5+83
Comments58

Анимированные баннеры на Javascript — это просто*

Reading time7 min
Views20K
*) На самом деле все равно сложно, но зато проще, чем было раньше.

История началась с постановки задачи: нужно сделать анимированный баннер с примерно тридцатью объектами средствами HTML+javascript за один день. За день, конечно, баннер сделан не был, а был сделан за два усилиями трех человекодней. После выполнения задания осталась библиотека пакетной анимации, которую я назвал Scenario. О её доработанной версии я и хочу рассказать.

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

Запуск сценария из любого места предельно прост:

var newScenario = [...];
$.scenario(newScenario, {
    complete: function(time) {
        alert('Готово!');
    }
});

Осталось только разобраться, что писать вместо трех точек в примере :)
Читать дальше →
Total votes 163: ↑158 and ↓5+153
Comments65

Как жить счастливо и при этом платить налоги

Reading time6 min
Views45K

Страшная правда


Вы не платите налоги, потому что это сложно, непонятно и вообще неприятно? Это правда. У каждого стартапа есть своя, часто довольно безумная миссия. У нас, стартапа «Эльба», она при этом еще и очень простая — сделать так, чтобы вы не боялись налогов и бухгалтерии и при этом продолжили оставаться самим собой — человеком, который хочет заниматься своим делом и зарабатывать.

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

Не удивляйтесь, если вы уже видели точно такой же пост в пятницу, тогда мы просто не разобрались, но не хочется лишать аудиторию контента и вот мы публикуем его сегодня.
Читать дальше →
Total votes 150: ↑128 and ↓22+106
Comments211

Хабраиндекс для статей по программированию под Android

Reading time2 min
Views94K
Читать дальше →
Total votes 220: ↑204 and ↓16+188
Comments43

Видео с HighLoad++: Петр Зайцев — Диагностика и исправление проблем производительности MySQL

Reading time1 min
Views9.4K
Добрый день,

Вот и последний обещанный видеодоклад с HighLoad:

Петр Зайцев — Диагностика и исправление проблем производительности MySQL

Часть 1 (30:56): video.mail.ru/corp/miftahetdinova/5/6.html

Часть 2 (28:35): video.mail.ru/corp/miftahetdinova/5/7.html

Часть 3 (28:33): video.mail.ru/corp/miftahetdinova/5/8.html

Часть 4 (28:29): video.mail.ru/corp/miftahetdinova/5/9.html

Часть 5 (28:13): video.mail.ru/corp/miftahetdinova/5/10.html

Часть 6 (28:10): video.mail.ru/corp/miftahetdinova/5/11.html

Часть 7 (28:13): video.mail.ru/corp/miftahetdinova/5/12.html

Часть 8 (22:50): video.mail.ru/corp/miftahetdinova/5/13.html

Часть 9 (16:01): video.mail.ru/corp/miftahetdinova/5/14.html

Часть 10 (15:02): video.mail.ru/corp/miftahetdinova/5/15.html

Также мы постараемся до конца года выложить доклады с HighLoad++ в Power Point.

Хорошего вам дня!

UPD. Уважаемые хабраюзеры! Мы хотим еще раз извиниться за невысокое качество видео, которое, тем не менее, решили выложить, т.к. знали, что темы HighLoad-a для вас крайне важны и интересны и наряду с негативным фидбеком получили очень много позитива, благодарностей и просьб продолжать выкладку докладов.

Завтра, 29 декабря, как мы уже обещали, на «Хабре» также будут выложены презентации всех докладов в PPT. В хорошем качестве ;)

Спасибо за терпение и фидбек!
Total votes 69: ↑45 and ↓24+21
Comments35

5 галочек: чеклист юзабилити

Reading time6 min
Views30K
Мы выделили 5 основных пунктов, по которым можно определить юзабилити сайта. Список спорный и в основном касается продающих сайтов. И да, эти пять пунктов — среднее арифметическое опыта, полученного при обработке заявок на конкурс «Юзабельный вебпроект». Думаете, мы раздали слонов и забыли?


оригинал картинки

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

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

Сразу оговоримся, что мы не оцениваем юзабилити в вакууме, нам важно, чтобы сайт работал, т.е. «продавал». Товары, услуги, идеи — не важно. Речь может идти о бесплатном веб-сервисе, для которого транзакцией станет регистрация посетителя.
Читать дальше →
Total votes 147: ↑131 and ↓16+115
Comments101

Управляем голосом или правильный посыл

Reading time3 min
Views36K
Продолжаю маленькими порциями выдавать то, что знаю про скрытые резервы каждого человека.

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

Мало того, говорящий может реально напрягаться, даже почти кричать, а все равно сзади его могут не услышать. От чего это происходит?

Как правило, из-за неумения банально управлять своими связками и глоткой (гусары!) Есть 2 типичные ошибки:

1. Стараясь сказать громко, чтобы все услышали, человек сильно напрягает связки. А что такое связки? Правильно, мышцы, которые буквально сжимают горло! Чтож мы имеем? Сильное напряжение легких, глотки, рта и… сдавленный, визгливый голос. Красиво, правда?

2. Человек старается говорить громко, но все равно посылает звук себе под нос! Как будто надо оглушить какого-то рядомсидящего слушателя. И всем как-то неловко.

Что же с этим можно сделать?
Читать дальше →
Total votes 72: ↑62 and ↓10+52
Comments37

Программист и рисование

Reading time5 min
Views13K


Нужно ли программисту уметь рисовать? Я подумал это довольно-таки интересная тема, под катом рассуждения о том нужно ли это вообще + урок рисования кота для полных новичков от программиста.

Читать дальше →
Total votes 158: ↑129 and ↓29+100
Comments74

Тестируем ERP систему. Часть 1

Reading time8 min
Views14K
За последние полгода я натестировался ERP систем по полной программе. Участвовал в обзоре российского рынка ERP систем. Интересные вещи всплывали, признаюсь я вам. И ладно, если бы эти интересности всплыли, если бы я во время обзора представлялся от имени редакции издания, которое этот обзор и проводило. Но мы намеренно сделали так, что представлялся я от имени совершенно реального клиента. То есть побывал в шкуре самого натурального клиента и увидел все своими глазами. Подробности обзора рассказывать не буду, их можно будет почитать на страницах издания (как выйдет обзор, выложу пост). Вывод прост – надо быть готовым к тому, что тебя будут пытаться «немножко обмануть». Попробую дать некоторые рекомендации, чтобы этого не случилось.

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

Ну, во-первых, не надо думать, что этот вопрос можно решить за пару часов. На качественное тестирование и изучение продукта в сопровождении представителя уходит 6-10 часов. У меня.
Читать дальше →
Total votes 67: ↑59 and ↓8+51
Comments58

Несколько фишек для изучающих английский язык

Reading time1 min
Views48K
1. Анонимные чаты: omegle.com, chatroulette.com
2. Сайты-помощники: kwiz.me, kimir.org, englishtips.org
3. Подкастинг: eslpod.com, effortlessenglish.com, npr.podcast.com, businessenglishpod.com,
4. Качаем фильмы/сериалы, затем субтитры к ним. Просматривать можно с замедлением в VLC плеере чтобы лучше переваривать. Еще рекомендую комик шоу, например Important Things with Demetri Martin — не пожалеете.
5. В скайпе ищем каких нибудь индусов со статусом SkypeMe и не стенсняясь знакомимся.
6. При прочтении какой-то книги или просмотра фильма неплохо бы подготовится таким образом: берем текст, устанавливаем длину слова и частоту употребления в тексте и запускаем, например, этот скрипт (PHP): pastebin.com/m7672c2a9
В итоге имеем дайджест слов большинство из которых вы уже знаете но остальные стоит подучить. И когда вы будете смотреть фильм или читать книгу вы автоматом поймете это слово.
7. Произношение слов — ставим в Google.translate режим Русский->English и в поле текста пишем английское слово — оно без перевода встанет справа вместе с флэшкой которое произносит слово. Также forvo.com, howjsay.com
8. Социальные сервисы ответов:
answers.yahoo.com, vark.com
9. Социальные сети для изучения языка:
livemocha.com, lingq.com, italki.com
10. Остальное:
nytimes.com, ecenglish.com, urbandictionary.com
allengl.narod.ru/top/phvTOP170.htm

Надеюсь каждый нашел для себя что-то полезное:)
Total votes 190: ↑171 and ↓19+152
Comments114

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity