Search
Write a publication
Pull to refresh
85
0
Сергей Арсеничев @Arsenichev

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

Send message

Почему программисты работают по ночам

Reading time3 min
Views108K
Мозг шимпанзе в лондонском музее наукиСогласно поговорке, программисты — это устройства, преобразующие кофеин в код.

Если спросить первого попавшегося программиста, когда он наиболее продуктивен, — скорее всего, он назовёт ночь. Кто-то пораньше, кто-то попозже. Популярен вариант встать в 4 утра и сделать работу до начала дневной суматохи. А некоторые предпочитают ложиться в 4 утра.

Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?

Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.

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

Сканирование по сети – это просто

Reading time7 min
Views184K
Эта статья «для чайников» о том, как настроить сканирование изображений по сети с помощью роутера Asus WL-500gpv2, МФУ Samsung SCX-4220 и Windows. С картинками.
Рассказывать буду на примере прошивки OpenWrt Backfire 10.03.1-rc5. От знаменитой прошивки Олега она отличается возможностью более детальной настройки программного обеспечения и возможностью управления пакетами из веб-интерфейса.
Cписок совместимого с прошивкой оборудования тут.
Эта инструкция скорее всего подойдет к любом у роутеру из этой таблицы, у которого не менее 8мб флеш-памяти и не менее 32мб оперативной.
Читать дальше →

Быстрый переезд с Google Translate API v1 на Bing Translate API

Reading time4 min
Views36K
Итак, позавчера Корпорация Добра все-таки закрыла свой бесплатный Translate API. Автор до последнего момента надеялся, что они образумятся и не станут уподобляться остальным так поступать. Поэтому не чесался и ничего не делал. Но вот гром грянул. И в CMS одного небольшого 3-х язычного проекта отвалился переводчик. Не страшно, но неприятно — раньше админ на форме редактирования контента 1 щелчком мыши переводил все поля еще на 2 языка. Переводчик я написал по своей милости, потратил на это минут 20 и не взял за это ни копейки. Тем не менее, клиент звонит, грозится физической расправой над любимым хомячком, просит, опять угрожает. Пришлось закрывать баш и искать альтернативы.

Под катом список (4 варианта, никаких откровений / открытий) чего нашел автор, а также рецепт Javascript-перевода от Bing.
Читать дальше →

Сетевая игра в NES (Dendy) реализованная на Flash P2P

Reading time2 min
Views28K
image

С момента запуска nesbox.com прошло уже более полутора лет, все это время меня не покидала идея сделать игру для двоих через интернет. Если интересно, как мы пришли к рабочему варианту, добро пожаловать под кат.
Читать далее...

Создание API

Reading time3 min
Views3.9K
Несколько недель назад, мы публично выпустили Gauges API. Несмотря на уже существующий Gauges, было не мало работы во время написания API. Необходимо подробно разобраться с деталями.

1. Пишите документацию во время создания API

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

2. Будьте постоянным

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

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

Замена массивов на хеши означала то, что нам нужно пространство имен (namespace) для массивов с ключами. Далее мы заметили, что не все имело свое пространство имен. И снова, мы придумали правило. В этом случае, все объекты верхнего уровня должны иметь пространство имен, но детям этих объектов или наборам нескольких объектов не обязательны пространства имен.
{users:[{user:{...}}, {user:{...}}]} // нет
{users:[{...}, {...}]} // да
{username: 'jnunemaker'} // нет
{user: {username:'jnunemaker'}} // да

Ну вы поняли. Постоянство ― важно. Всегда следует придерживаться одного формата.
Читать дальше →

HTML5 Canvas Map — реализация картографического движка

Reading time3 min
Views19K
В рамках большого интерактивного веб-ориентированного проекта (подробнее о котором возможно в другом посте) я занимаюсь разработкой картографического движка, реализованного на HTML5 CANVAS. Его разработка дошла до стадии беты и, с одобрения моего руководства, появилось желание продемонстрировать данные карты широкой публике.

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

Решение проблемы авторизации на форумах phpBB 3.0.X через Loginza

Reading time2 min
Views2.4K
imageДрузья, недавно потребовалось установить на форум авторизацию через социальные сети. Из всех плагинов, что удалось найти по требованиям подошел только плагин Loginza. Для тех, кто не знает:

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

Почитав немного про него, я очень обрадовался — то что надо. Установка на локальной машине прошла чуть ли не в 1 клик, все работало просто идеально. Но после переноса на реально работающий сервер, по каким-то причинам слетела авторизация и регистрация. При попытке зайти в систему форум говорил, что пользователь опознан, но при следующем переходе на форум авторизация слетала. Посидев пару часиков и покопавшись в коде, я нашел причину проблемы.
Читать дальше →

Паттерн Visitor. Продвинутое использование

Reading time7 min
Views49K
Здравствуйте, дорогие хабравчане!

Я хочу поделиться с вами своим опытом использования паттерна проектирования visitor и его интересной модификацией, которую я назвал upcast visitor. К сожалению, непросто придумать простой короткий пример и описать как все работает, также эта статья может показаться сложной для начинающих, тем не менее я постараюсь максимально упростить задачу. Примеры кода приведены на языке С++ и обязательны к прочтению. Без понимания кода вникнуть в суть статьи будет затруднительно.

Предыстория


Представьте, что мы проектируем 2D игру, в которой фрукты падают с дерева, по пути ударяясь о ветки. Цель игры — поймать все фрукты, двигая корзину под деревом.
Строим следующую диаграмму классов:
Читать дальше →

Несколько полезных сервисов

Reading time2 min
Views126K
Хочу поделиться ссылками на несколько полезных сервисов. Некоторые из них помогут сэкономить время, другие — сделают за Вас незнакомую/нелюбимую работу. Список разбит по категориям, чтобы было легче ориентироваться.

Сервисы опросов
userreport.com (добавил Romanych)
simpoll.ru
webanketa.com (добавил mihass)

Кнопки постинга в социальные сети
Кнопка от Яндекса
addthis.com (добавил UksusoFF)
share42.com
Читать дальше →

Валидация HTML-форм и расширение функциональности

Reading time4 min
Views15K
Валидации HTML-форм уделяют очень мало внимания. Например, даже на habrahabr.ru пока я регистрировался и входил на сайт несколько раз мне выдавалось сообщение об ошибке: то код протекции ввел неправильно, то в логине указал email вместо логина. А еще бывает пользователи ошибаются с количеством цифр в номере телефона или реквизитах организации, путают русскую букву «с» с английской, при копировании и вставке в Windows лишнии пробелы добавляются к данным.

Конечно, все это не смертельно. Но было бы крайне удобно, чтобы данные проверялись еще до отправки на сервере. Особенно CAPTCHA, ибо ее часто вводишь с ошибкой.

Для решения данной проблемы были несколько способов: HTML5, jQuery Validate, zForms.ru и еще ряд менее известных библиотек. Но все эти способы имели свои недостатки: HTML5 поддерживается не всеми браузерами и не имеет опции не отправлять незаполненные поля, задать сообщение о несоответствии регулярному выражению, ограничить список допустимых символов для ввода в поле, возможности склеивать поля, посылать значения чекбоксов в формате csv или суммы значений.
Читать дальше →

Тултипы на CSS3 и HTML5

Reading time2 min
Views73K
В связи с тем, что на Хабрахабре не нашёл я описания данного простого и в то же время удобного способа создания простых «тултипов» — всплывающих подсказок, я решил о нём написать.
В данном методе не будет использоваться JS, мы довольствуемся лишь CSS3 и HTML5.



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

Почему ИТшнику стоит стать ИПшником и почему не стоит регистрировать ООО

Reading time7 min
Views86K
В этой статье даются ответы на нижеследующие вопросы, основываясь на личном опыте и опыте коллег.

1. Почему стоит начать работать «в белую»
2. Почему на начальном этапе ИП лучше ООО
3. Что делать, если партнёров несколько

Если вы – начинающий или уже опытный фрилансер и подумываете о работе «в белую», но ещё точно не определились с вопросами «Стоит ли оно того?» и «ИП или ООО?», вэлком
под кат

Бюджетная маркерная доска

Reading time2 min
Views130K
Что такое маркерная доска и с чем ее есть, наверное, в курсе уже все. И этот пост — о варианте самодельной доски. Сделать такую штуку в нашем офисе меня сподвиг офис Яндекса, с их стенами, обклеенными пленкой, по которой можно писать маркером. Не прошло и месяца, как я решил
исполнить желание...

Эмуляция интерфейса iPhone с помощью CSS

Reading time1 min
Views3K
UiUiKit Некоторое время назад мне потребовалось «красиво» оформить логи бесед в жаббире. Поскольку рисовать я не умею вовсе, я обратился за подмогой к мирозданию. Поиск по готовым решениям открыл для меня малоизвестную, но, безусловно, заслуживающую внимания библиотечку. Строго говоря, это не библиотека. Это тщательно написанная и выверенная каскадная таблица стилей, позволяющая имитировать iPhone-интерфейс в браузерах.
Координатные данные проекта UiUiKit (Universal iPhone UI Kit):

Оригинально библиотека заточена под web-приложения именно для iPhone, поэтому всякий CSS3+ ограничивается указанием свойств только для webkit'а. Я пропатчил CSS директивами для остальных и развернул демонстрационную страничку, чтобы можно было сразу потыкать в элементы интерфейса.
Выглядит симпатично (на картинке в начале топика — скриншот моего браузера). Приятного использования!

DIY предусилитель в A классе. Клон Lehmann BCL

Reading time3 min
Views72K
image

Приветствую! После покупки наушников стал назревать вопрос о качественном усилении для них и я стал выбирать подходящие варианты, заводские решения отбросил сразу, по причине завышенной цены и достаточно дешевой элементной базы. Выбор пал на DIY варианты. Потом стал необходим предусилитель для усилителя мощности и я принялся за сборку. Мой выбор остановился на клоне Lehmann BCL, оригинальная версия достаточно известна, обладает достойным звуком, большое количество людей на заграничных форумах повторили эту конструкцию. Но усилитель очень чувствителен к качеству элементной базы, поэтому компоненты были использованы самые лучшие, до каких только смог дотянуться. Весь усилитель собран из деталей купленных на ebay. Прошу меня простить, но некоторые фото немного устарели, под ними я напишу что изменилось на сегодняшний день, начнем!
Читать дальше →

Яндекс OAuth авторизация в iOS

Reading time4 min
Views6.8K
Для вызовов API Яндекса приложению нужен токен. Получить его можно двумя способами. Первый способ самый простой — спрашиваем у пользоватея его логин и пароль и делаем POST-запрос на oauth.yandex.ru/token. Но есть пара проблем: пользователь может не захотеть доверить свой пароль от учетной записи стороннему приложению, да и сам Яндекс не рекомендует так делать. Второй немного более сложный в реализации способ и является предметом топика — OAuth авторизация.
Читать дальше →

Индикатор выполнения на CSS3

Reading time2 min
Views3.8K
Сегодня мы будем воссоздавать прогресс-бар из программы установки Adobe Flash Player средствами CSS3, используя градиенты и тени.



Под хабракатом весь код и ссылка на рабочий пример.
Читать дальше →

«Рамблер» объединяет контакты пользователей

Reading time2 min
Views23K
Друзья!

Сегодня объединенная компания «Афиши» и «Рамблера» запустила в публичное beta-тестирование коммуникатор «Рамблер-Контакты». Новый продукт объединяет контакты из различных интернет-сервисов и предоставляет все возможности для общения — в одном приложении.

«Рамблер-Контакты» позволяют пользователю общаться через единый интерфейс с друзьями из различных социальных сетей и мессенджеров. Сегодня это «ВКонтакте», Facebook, ICQ, Mail.ru «Агент», Google Talk, «Я.Онлайн», QIP, Jabber. Не важно, на какой аккаунт или сервис было отправлено сообщение. Если пользователь подключил свои учетные записи к «Рамблер-Контактам», то сможет всегда оставаться на связи.

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

Как эффективно использовать онлайн консультант? (Часть 3)

Reading time7 min
Views2.1K

Очень многие пользователи, установившие онлайн консультант на свой сайт, не получают желаемую отдачу от этого инструмента. Более того, некоторые “фиксируют” уход посетителей со своего сайта после попытки консультанта завязать диалог посредством чата. В этой статье я попытаюсь дать практические советы по эффективному использованию “живого чата”.


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

Обзор систем онлайн-консультирования (часть 1)

Reading time8 min
Views2.2K
Большинство статей в Рунете, посвященных онлайн-консультированию, носят либо чисто рекламный характер, либо выхватывают лишь небольшую толику возможностей этих систем и практически совершенно не дают точки опоры в выборе оптимального консультанта для ваших нужд, будь вы ИТ-директор крупной компании, владелец интернет-магазина или частный предприниматель, желающий увеличить продажи, через свой сайт. В итоге, приходится устанавливать каждую систему, пробовать многочисленные “клоны”, тратить время и, в результате, разочаровываться в веб-консалтинге, как в инструменте. Данная серия статей задумана неким гидом по технологиям, на которых построены все существующие системы онлайн-консультирования их возможностям и цене. Прочтя этот обзор, вы сможете ориентироваться в том потоке систем, которые сейчас представлены на рынке и, я надеюсь, подобрать именно тот продукт, который удовлетворяет вашим потребностям. Как и все авторы, я не претендую на объективность и все же я старался максимально подробно поделиться той информацией, которой обладаю сам на момент написания статьи. Перед прочтением желательно все же знать хоть что-то об интернет ))), браузерах, иметь понятие о сервере и подобных системах.
Итак, начнем сначала...

Information

Rating
Does not participate
Location
Брянск, Брянская обл., Россия
Registered
Activity