Как стать автором
Обновить
0
0
Alexey Ogibin @oneiroid

Пользователь

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

Skype повернулся лицом к людям?

Время на прочтение2 мин
Количество просмотров56K
Не столь давно Skype открыл для всех Skype for Web (beta).

Официально API (пока) не оглашено, и, вероятно, будет еще изменяться.

Но! Можно забыть мучения со Skype4Com, пляски со Skype4Py, попрощаться со skype-open-source, выкинуть в корзину чтение SQLite'ом из профиля пользователя и т.п.

Итак, с чего начать написание своего клиента/бота —
Читать дальше →
Всего голосов 67: ↑52 и ↓15+37
Комментарии90

Основы программирования под Android на примере игры Судоку

Время на прочтение6 мин
Количество просмотров375K
В статье описаны основные трудности создания приложений под Android.
Рассматриваются базовые понятия программирования Android.
Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
Осторожно много скриншотов.

Читать дальше →
Всего голосов 137: ↑131 и ↓6+125
Комментарии48

Android-приложение для дистанционного управления Canon DSLR

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


Благодаря программе DSLR Controller появилась возможность управлять камерой Canon EOS напрямую с Android-устройства (2.3.3+). Подключив USB-кабель, вы получаете на экране планшета предпросмотр (около 15 fps) и все кнопки управления. Можно даже выбирать точки для фокусировки пальцем (!) на тачскрине.
Читать дальше →
Всего голосов 51: ↑45 и ↓6+39
Комментарии104

Обзор российских интернет-лейблов

Время на прочтение4 мин
Количество просмотров34K
Интернет-лейбл — это сетевой аналог оффлайнового музыкального издательства. Если изначально традиционные рекорд-лейблы занимаются дистрибуцией музыкального контента, раскруткой коллективов и исполнителей в реальном мире, то интернет-лейблы ведут ту же работу в сети. В связи с тяжелым положением традиционной музыкальной индустрии, когда даже титаны музыкального бизнеса вынуждены сильно рисковать при выпуске новых релизов, в последнее время рекорд-лейблы стараются работать с коллективами, которые наверняка отработают вложенные средства. В культурном плане эта ситуация достаточно плачевна — ведь сейчас даже не совсем андерграундные коллективы не могут надеяться на издание, и в прокат идут только стопроцентно успешные коммерческие проекты.

Как известно, причиной тому интернет — и он же предлагает новые пути распространения музыки. Уже с начала нулевых в Америке и Европе появляются новые схемы — когда релизы не выпускаются на CD, а публикуются только виртуально, и группы и исполнители раскручиваются через интернет. Скопировав подход традиционных-рекорд лейблов и перенеся его в сеть, появились так называемые net-labels или, по-русски, интернет-лейблы, или сетевые лейблы, или mp3-лейблы.

Что же такое вообще рекорд-лейбл? Во-первых, это организация, которая занимается распространением не любой музыки, а какого-то определенного формата или даже узкого специфического направления. Есть продюсер, или несколько, которые занимаются отбором музыки, и хороший лейбл обязательно имеет свое лицо и звук. Некоторые релизы слушают только потому что их издал лейбл 4AD, к примеру. Во-вторых, лейбл занимается защитой авторских прав. В случае с интернет лейблами защита авторских прав ограничивается только публикацией контента под свободной лицензией, но отбор музыки может быть довольно серьезным. Лейблу выгодно, чтобы люди слушали именно его музыку, он занимается промоушеном — может устраивать концерты, распространяет информацию о релизах в сети, и так далее и тому подобное.

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

Отличие интернет-лейбла от таких площадок по распространению музыки, как soundkey.ru или kroogi.ru очевиднее. Такие порталы просто предлагают любому разместить у них музыку и получать за нее вознаграждение. Ни отбором, ни защитой прав, ни раскруткой они не занимаются. Проще говоря, лейбл — это издательство, а soundkey.ru и kroogi.ru — это магазины.

Еще пара слов и 7 российских интернет-лейблов, заслуживающих вашего внимания.
Всего голосов 44: ↑40 и ↓4+36
Комментарии48

Чем опасен rebase, или как получилось, что 2*3=5

Время на прочтение2 мин
Количество просмотров94K
Однажды старший программист Антон искал причину очередного бага в очень важном проекте компании:
git bisect start
git bisect bad
git bisect good
…

В компании использовали rebase, история коммитов была линейной, и поиск по ней доставлял Антону одно удовольствие.
— Ага, нашел. Ну конечно: в коде написано «2*3=5», ещё бы оно работало с этим бредом! Какой @#$%^ это написал?
Читать дальше →
Всего голосов 123: ↑108 и ↓15+93
Комментарии148

Git Rebase: руководство по использованию

Время на прочтение8 мин
Количество просмотров812K
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

Теория


Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


Читать дальше →
Всего голосов 122: ↑121 и ↓1+120
Комментарии169

«Загадочные отступы» между инлайн-элементами

Время на прочтение15 мин
Количество просмотров30K
Каждому, даже самому «молодому» верстальщику известны неприятности (проблемы) с интервалом между элементами, пробелами, которые вставляются между словами. Эти пробелы часто мешают нам при вёрстке того или иного блока. Избавиться от них бывает не так-то просто, а зачастую эти межсловные расстояния и вовсе ставят нас перед выбором, выбором способа решения данной проблемы.

В этой статье мы попытаемся понять, что же из себя представляют эти загадочные "Отступы", что это за звери и с чем их едят. Так же рассмотрим, что такое inline-block, и почему после себя он ставит эти непонятные интервалы. Ну, и, самое главное, мы увидим несколько универсальных решений данного вопроса и, конечно же, обсудим все их стороны.
Читать дальше →
Всего голосов 127: ↑123 и ↓4+119
Комментарии141

JavaScript F.A.Q: Часть 2

Время на прочтение14 мин
Количество просмотров76K
image

Около 2-х месяцев назад я и TheShock собирали вопросы по JavaScript в теме FAQ по JavaScript: задавайте вопросы. Первая часть, те вопросы, которые достались мне, появилась буквально через несколько дней JavaScript F.A.Q: Часть 1, а вот вторая часть все не выходит и не выходит. TheShock сейчас переезжает в другую страну и поэтому ему не до ответов. Он попросил меня ответить на его часть. Итак вторая часть ответов — те вопросы, которые достались тоже мне.
Читать дальше →
Всего голосов 185: ↑180 и ↓5+175
Комментарии100

Семантика для CSS селекторов и комбинаторов

Время на прочтение5 мин
Количество просмотров47K
Синтаксис CSS несложен, и для понимания его совсем не нужно иметь степень доктора в области IT. Однако, это один из немногих популярных языков, который не является логичным в самом прямом смысле этого слова. В отличие от других языков веб-программирования, таких как JavaScript и PHP, в CSS проблемы не решаются с помощью обычной логики. Алгоритмы типа «если X, то сделать Y, в противном случае сделать Z» или «выбрать все Y, затем сделать с ними X» не могут быть осуществлены в таком языке, как CSS. Проще говоря, это язык, созданный для оформления, язык для дизайнеров, а не девелоперов. Некоторые из опытных программистов, с которыми я работал, именно по этой причине тратили много усилий на то, чтобы освоить CSS.

Обучение CSS начинается с классов и ID, а также с использования . и # для непосредственного обозначения элементов. Этого достаточно чтобы построить полнофункциональный веб-сайт, но это не достаточно гибкое решение в случае полной смены дизайна. Давайте взглянем на альтернативный подход к управлению такими труднодоступными элементами.
Читать дальше →
Всего голосов 74: ↑67 и ↓7+60
Комментарии47

Плагин для «живых» форм

Время на прочтение4 мин
Количество просмотров15K
Статья посвящена плагину, который упрощающает жизнь client-side программиста.

При заполнении формы случается так, что учитывая введенные данные, форму нужно менять (прятать и показывать поля). Простейший пример: при заказе доставки товара пользователь выбрал «самовывоз», значит поля про адрес доставки можно спрятать, зато было бы здорово показать карту проезда для самовывоза.

И что дальше

Часто такая логика остается без реализации, однако если вы заботитесь о своих пользователях, то делать это нужно.

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

Второй подход это писать «портянки» javascript'а который всю эту логику реализует на стороне клиента. Особенно грустно писать «каскадную» логику типа «если ввели a в поле A, показать B, если ввели c в поле B, то показать D. Если в A ввели что-то другое, спрятать B, а потом D».

Оба варианта нельзя назвать удобными. Прежде всего потому что логика реализуется императивным стилем вместо уместного для таких случаев декларативного. Но выход есть!
Читать дальше →
Всего голосов 114: ↑112 и ↓2+110
Комментарии67

HTML 5 в Internet Explorer

Время на прочтение3 мин
Количество просмотров57K
image

Вкратце: как заставить новые теги из HTML 5 работать в Internet Explorer.

Любой веб-разработчик смотря на HTML 5 плачет от счастья, которое наконец-то пришло в наш дом. Для большинства функций (такие как WebGL, многопоточность и веб-сокеты) придётся ждать поддержки от браузеров (а в самых правильных эти возможности уже есть), но новые удобные теги мы можем использовать уже сейчас.

Однако Internet Explorer (даже последней, 8-ой версии) и тут сумел споткнуться — новые теги вне HTML 4 он просто не замечает — на них нельзя повесить стили.

В IE проблем даже две — отдельно нужно включать поддержку HTML 5 тегов в обычном документе, и отдельно в содержимом, которое добавляется динамически (например, через AJAX).
Читать дальше →
Всего голосов 107: ↑88 и ↓19+69
Комментарии66

Не строим с нуля. Теперь у Вас есть шаблон для верстки HTML5

Время на прочтение2 мин
Количество просмотров17K
Любовь к HTML5 продолжает вдохновлять Поля Айриша. Во-первых, он подарил нам Modernizr, а сейчас он объединился с Divya Manian для создания шаблона HTML5, который использует передовые техники, чтобы Вы могли начать использовать его в своей практике.

Он, в сущности, является хорошей отправной точкой, состоящей из HTML и CSS, предлагающим также и структуру папок, которая работает. Но созданным с учётом многих лет передового опыта профессионалов в разработке клиентской части. Загляните в исходные тексты, чтобы почувствовать, что находится внутри. А если вы думаете, что этого слишком много, просто удалите лишнее.
Читать дальше →
Всего голосов 157: ↑146 и ↓11+135
Комментарии48

CMS своими руками. Теория велосипедостроения

Время на прочтение8 мин
Количество просмотров25K
Как много веселых ребят
И все делают велосипед.
А один из них как-нибудь утром
Придумает порох.
Виктор Цой.

image

Сначала я хотел написать в раздел «Я пиарюсь» статью о том какой я молодец и какую замечательную штуку сделал но, немного поискав в сети, я без удивления обнаружил, что я совсем не единственный в своем роде. Тогда я решил пойти от обратного: наверное, практически каждый Веб-программист хотя бы раз в своей жизни пытается написать полноценную CMS. При этом, в процессе проектирования (а это процесс, зачастую, наступает уже во время написания кода) у разработчика непременно возникают вопросы. С этими вопросами он обращается к поисковикам и попадает на сайты тех, кто по подобным граблям уже прошествовал.

Итак, я стал смотреть, по каким же запросам попадают ко мне начинающие «разработчики велосипедов», и постарался осветить некоторые вещи, которые для меня самого были неочевидны в начале работ.

Ну-с, показывайте ваши синяки...
Всего голосов 168: ↑147 и ↓21+126
Комментарии208

XPath наглядно

Время на прочтение1 мин
Количество просмотров60K
XPath является одним из ключевых моментов на дороге к пониманию XSLT. И на первых порах хочется получить какой-нибудь простой способ поэкспериментировать с ним, чтобы в деталях разобраться, как он работает. Способа такого, впрочем, не наблюдается. Приходится или качать совсем не бесплатные XML/XSLT редакторы, или довольствоваться статичными картинками с zvon.org. Может быть, я плохо искал. Но с моей колокольни все обстоит именно так. И когда передо мной в очередной раз встала задача «Объяснить XSLT», в голове и родилась идея крохотного сервиса. После того, как все заработало, было решено выкатить его для всеобщего пользования: наверняка не я один сталкивался с похожими проблемами.
Читать дальше →
Всего голосов 100: ↑93 и ↓7+86
Комментарии35

Грабли при верстке HTML писем

Время на прочтение3 мин
Количество просмотров104K
Довольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.

Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Читать дальше →
Всего голосов 282: ↑273 и ↓9+264
Комментарии77

Tableless justification или inline-blocks revisited

Время на прочтение6 мин
Количество просмотров6.8K
Все давно знают про кроссбраузерную реализацию инлайн-блоков, но не все знают, что данная реализация не такая уж и кроссбраузерная и полная, как кажется. Что, как и почему рассмотрим на простом примере: сделаем меню, пункты которого равномерно распределены по всей ширине экрана.
Читать дальше →
Всего голосов 57: ↑53 и ↓4+49
Комментарии66

Разбираемся с Notifications API

Время на прочтение2 мин
Количество просмотров7.3K
Продолжаю серию переводов статей сайта html5rocks. Мы уже говорили про то, как внедрять шрифты, как работать с видео, сегодня мы поговорим про то как делать всплывающие сообщения в браузере с помощью Notifications API. Работает оно к сожалению пока только в Хроме, но есть уже начальная версия спецификации. Под катом подробности.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии9

HTML5 Prefetching — Предварительная загрузка документов

Время на прочтение2 мин
Количество просмотров8.2K
Аж в 2003 году Mozilla представила новый механизм для оптимизации загрузки страниц. И существует большой шанс, что технология войдет в HTML5.

Суть же метода в том, что на любой странице браузеру можно указать документы (страница, файл стилей, картинка), которые в скором времени могут понадобиться пользователю. И он заранее их закэширует.
Узнать, как использовать prefetching
Всего голосов 45: ↑41 и ↓4+37
Комментарии36

Разметка. Transitional vs Strict

Время на прочтение4 мин
Количество просмотров7.2K
Речь в статье пойдет о такой, казалось бы изжеваной и изъезженой теме, как валидация веб-документа по одной из DTD-схем, которые в свою очередь определяются с помощью DOCTYPE.

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

В последнее время, многие редакторы и CMS'ки автоматически проставляют DOCTYPE для документа, что само по себе является прорывом, но к сожалению этого недостаточно, так как зачастую это именно Transitional схема. Начинающие разработчики не уделяют этому должного внимания, а зачастую вобще не подозревают что у них есть выбор.
Читать дальше →
Всего голосов 150: ↑142 и ↓8+134
Комментарии119
12 ...
8

Информация

В рейтинге
Не участвует
Откуда
Рамат-Ган, Тель-Авив, Израиль
Дата рождения
Зарегистрирован
Активность