В этом топике уже поднимался вопрос о кодировках сервисов Google. Однако там речь шла о некорректности текстов соглашений. Я же в одном из своих проектов столкнулся с проблемами кодировок при работе с одним из API Google. Пикантность ситуации в том, что проблема возникла при работе с недокументированным API, и «палиться» в службе поддержки очень не хотелось. Поиск в сети решений не дал (варианты с «повторять пока не заработает» не принимались как серьезные). Как же мне удалось найти выход и решить всё самому?
Maxim W @maximw
backend developer
Полный набор пакетов для разработки с помощью NodeJS
5 min
53KНачал изучать NodeJS. Нигде не нашел актуальный стек мейнстримных библиотек (технологий) применяемых в node. Поэтому решил сам составить список.
+73
RealSync — односторонняя синхронизация исходников в реальном времени для веб-разработчиков
6 min
30K
RealSync — утилита для Windows, MacOS и Linux, позволяющая в реальном времени содержать на удаленном сервере точную копию файлов (например, скриптов на PHP, Python, Ruby и др.) из папки на вашем локальном компьютере, даже в условиях плохой связи, когда вы работаете из дома. Все изменения, производимые в локальной папке, попадают на сервер практически моментально (задержка около 0.2 с), независимо от того, сколько этих изменений и каким именно образом они были внесены (хоть через IDE, хоть через Блокнот или Far).
Главное отличие RealSync от аналогов — в том, что он крайне устойчив к нестабильности интернет-соединения, реконнектам и тайм-аутам. При этом используется SSH-соединение, доступ через которое конфигурируется автоматически при первом запуске утилиты (т.е. не нужно возиться с ключами — настройка производится в интерактивном режиме).

И зачем этот велосипед, когда есть Samba или Денвер или XAMPP?
+50
Эмиграция в Польшу как студент либо как фрилансер
11 min
195KПрокомментировав хорошую статью IT-эмиграция в самое сердце Европы, в Словакию я получил сразу же много писем по внутренней почте хабра с вопросами по этому поводу, и с просьбами рассказать подробнее. Увидев такой ажиотаж, решил что не будет лишним попробовать расписать подробно для широкой аудитории.
Так как я переезжал вместе с девушкой, которая ехала сюда учиться на магистратуру, то у меня есть возможность описать оба способа переезда, вместе с подводными камнями с которыми мы сталкивались. Таким образом статья разделена на 2 части — переезд фрилансера, и переезд на учебу.
Так как я переезжал вместе с девушкой, которая ехала сюда учиться на магистратуру, то у меня есть возможность описать оба способа переезда, вместе с подводными камнями с которыми мы сталкивались. Таким образом статья разделена на 2 части — переезд фрилансера, и переезд на учебу.
+64
High resolution patches — новая жизнь старых игр
4 min
141KДоброй пятницы, уважаемый хабр!
Думаю, многие хабравчане проводят какую-то часть своего досуга за компьютерными играми. И если дело касается игр последних лет, то проблем нет, лишь бы мощности компьютера хватало. Но со старыми играми всё не так просто.
Часто бывает, что игра просто не хочет запускаться на современных ОС и железе, или же работает некорректно (слишком быстро, графические артефакты и т.д.) Это печальная ситуация, но сейчас не о ней. Во-первых, популярные игры, как правило, написаны пряморуко худо-бедно, но работают. А во-вторых, это тема для отдельной объемной статьи.
Предположим, что ваша любимая игра все же запустилась. Сначала радости нет предела. Но только до тех пор, пока вы не обнаружите, что максимальное доступное разрешение — 1024х768, а то и вовсе 800х600. На современном мониторе это означает огромные элементы GUI игры, смазанную картинку, а если монитор широкоформатный — еще и сильно искаженные, «пузатые» пропорции. Некоторых фанатов такие мелочи, конечно же, не смущают. Но зачем отказывать себе в максимальном удовольствии от игры, если решить проблему не так уж и сложно?
Под катом — способ запустить с современным разрешением некоторые популярные игры начала 2000х.
Думаю, многие хабравчане проводят какую-то часть своего досуга за компьютерными играми. И если дело касается игр последних лет, то проблем нет, лишь бы мощности компьютера хватало. Но со старыми играми всё не так просто.
Часто бывает, что игра просто не хочет запускаться на современных ОС и железе, или же работает некорректно (слишком быстро, графические артефакты и т.д.) Это печальная ситуация, но сейчас не о ней. Во-первых, популярные игры, как правило,
Предположим, что ваша любимая игра все же запустилась. Сначала радости нет предела. Но только до тех пор, пока вы не обнаружите, что максимальное доступное разрешение — 1024х768, а то и вовсе 800х600. На современном мониторе это означает огромные элементы GUI игры, смазанную картинку, а если монитор широкоформатный — еще и сильно искаженные, «пузатые» пропорции. Некоторых фанатов такие мелочи, конечно же, не смущают. Но зачем отказывать себе в максимальном удовольствии от игры, если решить проблему не так уж и сложно?
Под катом — способ запустить с современным разрешением некоторые популярные игры начала 2000х.
+119
Попытка номер раз создать почти идеальный htaccess
14 min
250KTutorial
- Google выше ранжирует сайты, которые загружаются быстрее. - Если на eBay или Amazone увеличить время загрузки страниц на 9% они теряют 1% прибыли. - Сделать свой сайт быстрее, чтобы сэкономить на клиентском трафике и на числе обращений к серверу.
.htaccess — наш герой
Профессионалы знают, что такое htaccess.
Тем кто собираются уйти с народ.ру на php-хостинг только предстоит узнать, что это такое.
Те кто только что установил свои первые jooml'у или wordpress срочно должны узнать о нашем герое — htaccess
Зачем нам .htaccess ?
Представьте, что вы купили себе хостинг и кажется, почти обрели счастье. Но однажды (а может быть дважды, а может и трижды) ваш сайт перестает отвечать на запросы. Начинает медленно грузиться и вообще вести себя странно. А виртуальный хостинг это такая хитрая штука, что помимо вашего сайта на этом сервере находится ещё два десятка других сайтов. Все они разные по мощности, организованности и трафику. И когда ваш сосед по случайности, а может и умыслу запускает на своем хостинге сложные или избыточные в алгоритмах скрипты, это отзывается и на вас.
Или другой пример. Скажем ваш ресурс начинает набирать популярность, но переезжать на выделенный сервер ещё рано, а мощностей VPS уже не хватает. Вас очень может выручить htaccess.
А ещё htaccess может решить некоторые вопросы с безопасностью вашего сайта.
А ещё…
+55
MVC умер, пришло время MOVE
3 min
76KTranslation
MVC феноменальная идея. У вас есть модели, самостоятельные кусочки состояний, представления которые самостоятельные кусочки UI, и контроллеры которые самостоятельные кусочки… эм?
Я конечно не первый кто это замечает, но проблема с MVC в том что в контроллеры пихают слишком много кода.
Чтобы исправить это, я использую новый паттерн: MOVE. Models, Operations, Views и Events.
Что?
Я конечно не первый кто это замечает, но проблема с MVC в том что в контроллеры пихают слишком много кода.
Чтобы исправить это, я использую новый паттерн: MOVE. Models, Operations, Views и Events.
+35
О сортировке контента на основе оценок пользователей
4 min
17KНаписать этот пост меня привлекла эта статья. Многие ее помнят по вот этой картинке.
Статья затрагивает правильную тему, однако с точки зрения математики и здравого смысла она в корне не верна.

Статья затрагивает правильную тему, однако с точки зрения математики и здравого смысла она в корне не верна.
+101
phpDaemon — фреймворк асинхронных приложений
6 min
45KСегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самыйволшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
+84
Повышаем безопасность стека web-приложений (виртуализация LAMP, шаг 1/6)
5 min
11KНастройка доступа web-сервера Apache/Lighttpd/Nginx к файлам сетевой файловой системы (NFS)
Мы продолжаем переводить серию уроков о виртуализации и настройке LAMP сервера с сайта www.cyberciti.biz и переходим к первому практическому шагу — созданию сетевого хранилища файлов
Создание хранилищ общего сетевого доступа NFSv4.0 (Network File System) в ОС Linux и Unix не сильно отличается от создания иных общих сетевых ресурсов Apache/Lighttpd/Nginx. Для этого произведем следующие настройки нашего файлового сервера/VM vm05 с IP-адресом 192.168.1.14.
+16
Опыт привлечения клиентов на высококонкурентном рынке: история небольшой компании
4 min
2.9KРечь пойдет о компании, которая занимается обслуживанием компьютеров в Петербурге. Поскольку целевая аудитория этой услуги весьма далека от Хабрамира, я считаю, что хаб «Я пиарюсь» здесь не подойдет: основной смысл этого поста не в рекламе наших услуг, а в обсуждении стратегий продвижения новых компаний на старых рынках.
Статья не предназначена для профессионалов SEO, это – описания опыта с точки зрения руководства компании, а не SEO-специалиста.
Область работы нашей компании — обслуживание компьютеров и — с недавних пор — облачные решения (проще говоря, настройка private cloud — инфраструктуры быстрого развертывания виртуальных машин у заказчика). Несмотря на то, что еще три года назад на Хабре была дискуссия о сомнительной новизне первой из этих услуг, приглашение внешней компании для обслуживания ИТ-инфраструктуры практикуется в Санкт-Петербурге уже почти двадцать лет: я лично знаю людей, поднимавших такой бизнес с нуля в 90-е.
В уже упомянутой дискуссии справедливо отмечено, что ИТ-аутсорсинг охватывает несколько смежных областей, где обслуживание компьютеров и сети — лишь один скромный элемент. Остальные — это ведение отдельных бизнес-процессов или специализированных IT-подсистем или бизнес-приложений. Например, биллинга, процессинга, телефонии. Но сейчас я говорю только об обслуживании компьютеров и сетей.
Наша компания занялась этим бизнесом в 2007. То, что срабатывало в привлечении клиентов в реальной жизни, а не в теории, нас поначалу удивляло. Сегодня мы выносим наш опыт и наши выводы на ваш суд — может, эта статья кому-то сэкономит время на поиск эффективной тактики.
Статья не предназначена для профессионалов SEO, это – описания опыта с точки зрения руководства компании, а не SEO-специалиста.
Область работы нашей компании — обслуживание компьютеров и — с недавних пор — облачные решения (проще говоря, настройка private cloud — инфраструктуры быстрого развертывания виртуальных машин у заказчика). Несмотря на то, что еще три года назад на Хабре была дискуссия о сомнительной новизне первой из этих услуг, приглашение внешней компании для обслуживания ИТ-инфраструктуры практикуется в Санкт-Петербурге уже почти двадцать лет: я лично знаю людей, поднимавших такой бизнес с нуля в 90-е.
В уже упомянутой дискуссии справедливо отмечено, что ИТ-аутсорсинг охватывает несколько смежных областей, где обслуживание компьютеров и сети — лишь один скромный элемент. Остальные — это ведение отдельных бизнес-процессов или специализированных IT-подсистем или бизнес-приложений. Например, биллинга, процессинга, телефонии. Но сейчас я говорю только об обслуживании компьютеров и сетей.
Наша компания занялась этим бизнесом в 2007. То, что срабатывало в привлечении клиентов в реальной жизни, а не в теории, нас поначалу удивляло. Сегодня мы выносим наш опыт и наши выводы на ваш суд — может, эта статья кому-то сэкономит время на поиск эффективной тактики.
0
Работа по протоколу XMPP используя jquery
3 min
19K
Доброго времени суток!
Этот небольшой обзор, я бы хотел посвятить насущной для некоторых разработчиков проблеме по работе с jabber сервером через long polling соединение по протоколу BOSH.
+33
+293
Опрос о средствах управления
3 min
3.2KКакую систему ваша компания использует для управления проектами? В какой программе ведете учет продаж и прогнозирование финансов? Где систематизируете корпоративную базу знаний? Руководители постоянно находятся в выборе тех или иных инструментов, которые помогают наладить работу внутри компании. Этот выбор бывает сложным, и это очень большая ответственность. Интересно ли вам, какое решение приняли ваши коллеги и конкуренты? Нам очень интересно, и мы уверены, что эта информация была бы хорошим подспорьем в наших собственных поисках.

Поэтому CMS Magazine и Nimax проводят исследование. Мы хотим собрать исчерпывающий список программных продуктов, которые помогают организовывать работу компании веб-разработчика.

Поэтому CMS Magazine и Nimax проводят исследование. Мы хотим собрать исчерпывающий список программных продуктов, которые помогают организовывать работу компании веб-разработчика.
+27
Опыт эксплуатации MySQL Master-Master — как пережить аварию датацентра
6 min
83KВсем привет!
Сегодня поговорим о том, для каких задач на самом деле полезна MySQL Master-Master репликация, для каких — полностью бесполезна и вредна, какие мифы и заблуждения с ней связаны и какую практическую пользу можно быстро получить от данной технологии. Приведу конкретные примеры настройки и схемы архитектур.
Говорить о MySQL Master-Master репликации — в контекстах высокой доступности и производительности — модно, но, к сожалению, многие не понимают ее сути и связанных с технологией серьезных ограничений.
Начнем с того, что в классическом MySQL «настоящей» Master-Master репликации — пока нет :-) Но если постараться, можно все таки просто и быстро настроить эффективную схему выживания при отказе одного датацентра и получить свою долю счастья.

Сегодня поговорим о том, для каких задач на самом деле полезна MySQL Master-Master репликация, для каких — полностью бесполезна и вредна, какие мифы и заблуждения с ней связаны и какую практическую пользу можно быстро получить от данной технологии. Приведу конкретные примеры настройки и схемы архитектур.
Говорить о MySQL Master-Master репликации — в контекстах высокой доступности и производительности — модно, но, к сожалению, многие не понимают ее сути и связанных с технологией серьезных ограничений.
Начнем с того, что в классическом MySQL «настоящей» Master-Master репликации — пока нет :-) Но если постараться, можно все таки просто и быстро настроить эффективную схему выживания при отказе одного датацентра и получить свою долю счастья.

+60
Особенности обработки HTML-писем
3 min
42KЗдравствуйте, хабраюзеры!
Недавно довелось копаться с рассылкой писем в HTML-формате. Есть много статей, написанных на тему валидной вёрстки рассылок, однако здесь речь пойдёт не об этом. Известно, что у каждого почтовика есть свои особенности отображения HTML-письма. Меня заинтересовали эти особенности и различия в отображении письма на разных почтовиках.
Недавно довелось копаться с рассылкой писем в HTML-формате. Есть много статей, написанных на тему валидной вёрстки рассылок, однако здесь речь пойдёт не об этом. Известно, что у каждого почтовика есть свои особенности отображения HTML-письма. Меня заинтересовали эти особенности и различия в отображении письма на разных почтовиках.
+42
Минимакс на примере игры в зайца и волков
11 min
91K
+73
Icenium: кросс-платформенная облачная среда для создания мобильных приложений
2 min
11KTranslation
Icenium – это совершенно новая интегрированная облачная среда (integrated cloud environment — i-c-e — Icenium) для разработки мобильных приложений. Сервис, который является продуктом подразделения Telerik, только что вышел на стадию приватного бета-тестирования и находится в поиске разработчиков, желающих опробовать его. Первоначально Icenium фокусируется на создании iOS и Android приложений, а позже надеется перейти к другим мобильным платформам, и, в конце концов, к серверам и десктопам.


+4
Прогнозирование закупок: адская, но очень полезная математика
4 min
82KПредставьте двух героев: коммерсанта Александра и сисадмина Василия. Вася, как олицетворение среднестатистического клиента, каждый вечер заходит в магазин Саши (представителя розничной сети) и покупает пиво. Саша заказывает для него 7 бутылок пива в неделю. Иногда Вася остаётся работать с ночевкой и не выходит из серверной, а иногда – после работы берёт по две бутылки пива для себя и главбуха.

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

График спроса на пиво в зависимости от жизненных приключений Васи
Саша не может предсказать эти периоды, поэтому постоянно находится меж двух огней: либо купить больше товара, «заморозить» деньги и потратиться на его хранение, либо купить ровно по среднему спросу, рискуя в какой-то момент расстроить Васю и его друга бухгалтера отсутствием нужного количества пива.
+42
Greensock: анимация на JavaScript
3 min
101KНедавно я писал, что Greensock, прекрасная библиотека для скриптовой анимации на Flash, теперь поддерживает и JavaScript. В этой статье я продемонстрирую основы работы с GSAP v12 (beta). Результат будет примерно таким:

Сразу оговорюсь, что графику и идею для примера я взял из документации $fx(), ведь кто из нас откажется

Сразу оговорюсь, что графику и идею для примера я взял из документации $fx(), ведь кто из нас откажется
+76
Information
- Rating
- Does not participate
- Location
- Россия
- Registered
- Activity
Specialization
Specialist
Lead