Вот есть в России VK и Яндекс. Всё у них замечательно, молодцы вообще ребята: и предельно высокая посещаемость, и сложность инфраструктуры, и применяемые технологии, но в мире они не столь популярны. Вот и Китай у большинства любителей, из тех, чей взгляд устремлен в Калифорнию, где каждые 3 месяца появляется hitech-компания в миллиард долларов, в картине мира просто отсутствует. Эта страна во многих вопросах, где дело касается количества, необычная, постоянно ведь на слуху города Китая, метро, мосты, порты; так вот я тут — о массивных китайских сайтах. Сравнивать с DDOS как атакой глупо, та совсем разная и она не обыденность, но есть сайты где инфраструктура заточена для миллионов, хотя бы только поэтому они показались мне интересными.
Игорь Штельмах @WebPhd
User
Как жена может помочь в работе фрилансеру
5 min
81KTranslation

Учитывая современные технологии, почти любой может в наше время легко обучиться азам работы с веб-сайтом. Мой шестилетний племянник работает в WordPress. Более того, ваша жена не обязательно должна разбираться в программировании, она может помогать в выполнении простейших задач. В этой статье мы рассмотрим все плюсы вовлечения вашей жены в работу с веб-сайтом, как научить жену создать и поддерживать сайт и других различных задачах, которые могли бы так или иначе помочь вам. Ну, а прочитав эту статью, вы будете готовы привлечь жену к работе.
+34
Арсенал веб-дизайнера
2 min
162KВ интернете существует множество сайтов, помогающих веб-дизайнеру в работе: ресурсы с иконками, плюшками для фотошопа, UI-китами, шрифтами, вдохновляющими работами других дизайнеров и многим другим. В этой статье я постарался собрать самые полезные сайты для веб-дизайнеров.
Behance - работы лучших дизайнеров со всего мира

Большие и популярные сайты
Behance - работы лучших дизайнеров со всего мира

+85
Построение нейронных сетей в php используя FANN, пример реализации
5 min
83KПередо мной предстала задача анализа большого количества информации и выявления закономерностей. И первое, что пришло в голову — построить математическую модель с помощью нейронной сети.
Поскольку данные для анализа формируются в php и мне этот язык сейчас ближе всего, то искалась библиотека с интерфейсом для php. В связи с этим мне порекомендовали FANN (Fast Artificial Neural Network) — открытое программное обеспечение для построения сетей. У этого решения есть апи для 15 языков, так что почти каждый сможет выбрать что-то для себя.
Для примера возьмем задачу легкую, но недалекую от нашей реальности и от серьезных задач. Допустим есть 1000 документов, на 3-х разных языках. Пусть это будут французский, английский и польский. Наша задача научить нейронную сеть распознавать язык документа. Для этого мы используем самый простой частотный механизм. Но тем не менее его результаты неплохи. Его суть в том, что у каждого языка с разной частотой в тексте встречаются одни и те же символы. Мы подготавливаем 3 больших куска текста для каждого из языков (английский, французкий, польский), посчитаем для каждого символа частоты. Эти данные мы передадим в нейронную сеть, с указанием какой набор частот принадлежит каждому из языков. Дальше нейронная сеть все сделает сама.
Поскольку данные для анализа формируются в php и мне этот язык сейчас ближе всего, то искалась библиотека с интерфейсом для php. В связи с этим мне порекомендовали FANN (Fast Artificial Neural Network) — открытое программное обеспечение для построения сетей. У этого решения есть апи для 15 языков, так что почти каждый сможет выбрать что-то для себя.
Пример. Распознавание языка текста на странице
Для примера возьмем задачу легкую, но недалекую от нашей реальности и от серьезных задач. Допустим есть 1000 документов, на 3-х разных языках. Пусть это будут французский, английский и польский. Наша задача научить нейронную сеть распознавать язык документа. Для этого мы используем самый простой частотный механизм. Но тем не менее его результаты неплохи. Его суть в том, что у каждого языка с разной частотой в тексте встречаются одни и те же символы. Мы подготавливаем 3 больших куска текста для каждого из языков (английский, французкий, польский), посчитаем для каждого символа частоты. Эти данные мы передадим в нейронную сеть, с указанием какой набор частот принадлежит каждому из языков. Дальше нейронная сеть все сделает сама.
+28
Надежный код при высоких нагрузках
6 min
38K
При этом о надежности самого кода говорить как-то не принято, хотя в суровых условиях высоконагруженных проектов его качество приобретает особое значение. Вам нужен действительно «пуленепробиваемый» код, который будет работать корректно даже в случае большого количества одновременных запросов к одним и тем же данным. В этой статье представлен набор рекомендаций, которые могут помочь вам в написании такого кода.
+78
jQuery-сниппеты и плагины для iPad
6 min
26KПодборка простых jQuery-сниппетов и плагинов, которые помогут адаптировать сайт для отображения на iPad. Некоторые подойдут и для других тач-устройств.


+28
Карманный сервер MiniX, или обзор серверных технологий для Android
3 min
51KTutorial

На этот раз из MiniX мы будем делать не Интернет-розетку, а самый настоящий веб-сервер. Правда, маленький, но с полноценным php, python, bash, MySQL.
+42
Обзор систем кеширования в onPHP
5 min
9.4KДобрый день!
В этой статье мы расскажем о том, как мы работаем с кешем в plus1.wapstart.ru, какие проблемы у нас возникали и как мы решали некоторые частные случаи.
Для начала о терминологии.
Под «кешем» в этой статье я буду понимать какое-то быстрое хранилище, которое может использоваться, в том числе, и для кеширования. При этом хранилище должно обладать стандартизированным интерфейсом.
Сервер/хранилище — это какое-нибудь приложение, которое может хранить данные и давать к ним доступ по интерфейсу, который описан ниже. Например, этим приложением может быть memcached.
Мы используем фреймворк onPHP. В нем есть абстрактный класс CachePeer, от которого должны наследоваться все реализации кешей. Интерфейс любой реализации сводится к следующим методам.
В нашем мире существуют следующие реализации CachePeer (кликабельно)

В этой статье мы расскажем о том, как мы работаем с кешем в plus1.wapstart.ru, какие проблемы у нас возникали и как мы решали некоторые частные случаи.
Для начала о терминологии.
Под «кешем» в этой статье я буду понимать какое-то быстрое хранилище, которое может использоваться, в том числе, и для кеширования. При этом хранилище должно обладать стандартизированным интерфейсом.
Сервер/хранилище — это какое-нибудь приложение, которое может хранить данные и давать к ним доступ по интерфейсу, который описан ниже. Например, этим приложением может быть memcached.
Мы используем фреймворк onPHP. В нем есть абстрактный класс CachePeer, от которого должны наследоваться все реализации кешей. Интерфейс любой реализации сводится к следующим методам.
abstract public function get($key);
abstract public function delete($key);
abstract public function increment($key, $value);
abstract public function decrement($key, $value);
abstract protected function store(
$action, $key, $value, $expires = Cache::EXPIRES_MEDIUM
);
abstract public function append($key, $data);
В нашем мире существуют следующие реализации CachePeer (кликабельно)

+11
Lenovo IdeaPhone P700i: смартфон-долгожитель по разумной цене
6 min
110K
Если коротко, то я, привыкший тратить на мобильные устройства несколько бОльшие средства, в переходе на P700i изначально видел некоторый даунгрейд. Ну – экран поменьше, производительность пониже, и так далее. Не исключено, что такие же мысли будут приходить в голову многим будущим покупателям этого IdeaPhone. По итогам теста у меня совсем другие впечатления.
Благодаря 4-дюймовому дисплею телефон отлично лежит в руке. Производительности двуядерного процессора более чем достаточно для активного использования, с множеством запущенных программ и постоянным переключением между ними. И, что самое главное – благодаря емкой батарее и сравнительно экономичной платформе, P700i живет без зарядки дольше, чем любой другой смартфон на базе Android (и не только), из тех, что попадали мне в руки. А в некоторых дисциплинах аккумуляторного многоборья смартфон Lenovo показывает просто феноменальные результаты.
UPD. Смартфоны Lenovo уже можно приобрести в сети МВидео!
+44
LZW-сжатие строк на javascript и распаковка средствами PHP
2 min
14KБуквально вчера столкнулся с ситуацией, что не смог найти рабочих классов/модулей по сжатию/распаковке строк алгоритмом LZW. Точнее сказать: jsCompress-jsDecompress — работает. PhpCompress-PhpDecompress — работает. А вот jsCompress-PhpDecompress либо возвращает вообще что-то неведомое, либо пустую строку. Честно сказать не знаю, может такой проблемы с ANSI и нет, но вот с utf-8 она очень явно проявляется. Потратив несколько часов на решение проблемы я решил опубликовать готовые к работе функции на хабре.
+14
Легким движением руки планшет превращается в… дополнительный монитор
3 min
478KПривет тебе, внимательный хабрачитатель.
После публикации топика с фотографиями рабочих мест хабровчан, я всё таки дождался реакции на «пасхальное яйцо» в фотографии моегозахламленного рабочего места, а именно вопросов вида: «Что это за планшет с Windows и почему на нём такие мелкие иконки?»

Ответ подобен «смерти Кощеевой» — ведь планшет (обычный iPad 3Gen) в нашем случае выступает в роли дополнительного монитора, на котором в полноэкранном режиме запущена виртуальная машина с Windows 7, и работает всё это для полного счастья по Wi-Fi. Такой себе второй небольшой IPS-монитор с высоким разрешением.
О том, как быстро и просто научить ваш планшет/смартфон под управлением Android/iOS работать в качестве дополнительного беспроводного дисплея для Windows/Mac OS X можно прочесть далее.
После публикации топика с фотографиями рабочих мест хабровчан, я всё таки дождался реакции на «пасхальное яйцо» в фотографии моего

Ответ подобен «смерти Кощеевой» — ведь планшет (обычный iPad 3Gen) в нашем случае выступает в роли дополнительного монитора, на котором в полноэкранном режиме запущена виртуальная машина с Windows 7, и работает всё это для полного счастья по Wi-Fi. Такой себе второй небольшой IPS-монитор с высоким разрешением.
О том, как быстро и просто научить ваш планшет/смартфон под управлением Android/iOS работать в качестве дополнительного беспроводного дисплея для Windows/Mac OS X можно прочесть далее.
+104
Торговля знает, когда вы ждете ребенка
5 min
73KОднажды в магазин Target зашел мужчина и потребовал вызвать менеджера. В своих руках он сжимал огромную кипу купонов магазина, полученных его дочерью.
«Моя дочь получила это по почте! – прокричал он. – Она еще в школу ходит, а вы посылаете ей купоны на детскую одежду и памперсы? Да как вы смеете! Вы хотите таким способом побудить школьниц рожать?»
Менеджер посмотрел на пачку купонов на материнскую одежду, детскую мебель – действительно, они были адресованы дочери рассерженного мужчины. Менеджер принес свои извинения.
Через несколько дней он позвонил мужчине, чтобы еще раз извиниться. По телефону голос отца звучал растерянно. «Знаете, я серьезно поговорил с дочерью, и выяснилось, что в моем доме происходило то, о чем я совершенно не догадывался. Она рожает в августе. Примите мои извинения».
Как Target узнал, что дочь беременна до того, как об этом стало известно ее отцу? Ответ прост – благодаря системе прогнозирования беременности (pregnancy prediction system), разработанной аналитиком компании Эндрю Полом. Под катом – обо всем по порядку.
«Моя дочь получила это по почте! – прокричал он. – Она еще в школу ходит, а вы посылаете ей купоны на детскую одежду и памперсы? Да как вы смеете! Вы хотите таким способом побудить школьниц рожать?»
Менеджер посмотрел на пачку купонов на материнскую одежду, детскую мебель – действительно, они были адресованы дочери рассерженного мужчины. Менеджер принес свои извинения.
Через несколько дней он позвонил мужчине, чтобы еще раз извиниться. По телефону голос отца звучал растерянно. «Знаете, я серьезно поговорил с дочерью, и выяснилось, что в моем доме происходило то, о чем я совершенно не догадывался. Она рожает в августе. Примите мои извинения».
Как Target узнал, что дочь беременна до того, как об этом стало известно ее отцу? Ответ прост – благодаря системе прогнозирования беременности (pregnancy prediction system), разработанной аналитиком компании Эндрю Полом. Под катом – обо всем по порядку.
+111
Использование xslt-шаблонов в реальных проектах
7 min
33KВ статье вы не найдёте сравнительных тестов шаблонизаторов. Зато найдёте информацию об использовании xslt в качестве шаблонизатора на реальных проектах. Рассмотрены возможности именованных шаблонов, использование шаблонов-функций, справочников.
Обычно страница сайта состоит из нескольких общих блоков (меню, футер, ...) и контентной части, которую для общности будем называть основным блоком. Все эти блоки размещаются внутри некоторого индексного шаблона, который знает в каком месте какой блок отобразить: меню должно быть вверху, основной блок в центре, а футер внизу.
Получаем следующую структуру
Контроллер главной страницы кабинета пользователя работает следующим образом:
1. Структура проекта
Обычно страница сайта состоит из нескольких общих блоков (меню, футер, ...) и контентной части, которую для общности будем называть основным блоком. Все эти блоки размещаются внутри некоторого индексного шаблона, который знает в каком месте какой блок отобразить: меню должно быть вверху, основной блок в центре, а футер внизу.
Получаем следующую структуру
/themes - здесь раполагаются все шаблоны
/themes/index/main.xsl - индексный шаблон
/themes/models/user.xsl - именованные шаблоны, которые относятся к модели пользователя
/themes/inc/functions.xsl - именованные шаблоны-функции
/themes/blocks/footer.xsl - шаблон футера
/themes/blocks/menu.xsl - шаблон меню
/themes/cabinet/main.xsl - шаблон основного блока главной страницы кабинета пользователя
Контроллер главной страницы кабинета пользователя работает следующим образом:
- получает данные для основного блока, обрабатывает их с помощью /themes/cabinet/main.xsl и результат (готовый html) помещает в итоговый xml
- аналогично обрабатывает данные для других блоков (меню, футер) и результат помещает в xml
- итоговый xml, в котором находятся данные всех блоков, обрабатывает с помощью индексного шаблона /themes/index/main.xsl и результат отдаёт пользователю в виде html.
+14
Большая подборка уроков по созданию CSS-кнопок
2 min
84KВ этой подборке представлены уроки с наглядными примерами по созданию CSS-кнопок на любой вкус.
Fancy 3D Button with CSS3 [Демо | Подробности]

Fancy 3D Button with CSS3 [Демо | Подробности]

+69
Продуктивное использование PHPStorm
7 min
328KВ процессе использования IDE иногда случайно, иногда специально находятся полезные фишки, сочетания клавиш и прочие заложенные разработчиками приятные штуки, которые никогда не оседают в памяти без регулярного их использования и всячески ускользают при чтении мануалов.
Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
+114
Знакомство с SVG-графикой
3 min
305KTutorial
Этот пост — первый из серии статей о SVG (Scalable Vector Graphic), рассказывающий об основах векторной графики на сайте.

Векторная графика широко применяется в полиграфии. Для веб-сайтов существует SVG, которая согласно официальной спецификации на w3.org является языком для описания двумерной графики в XML. SVG включает в себя три типа объектов: фигуры, изображения и текст. SVG существует с 1999 года, а с 16 августа 2011 включена в рекомендации W3C. SVG сильно недооценена веб-разработчиками, хотя имеет несколько важных преимуществ.

Векторная графика широко применяется в полиграфии. Для веб-сайтов существует SVG, которая согласно официальной спецификации на w3.org является языком для описания двумерной графики в XML. SVG включает в себя три типа объектов: фигуры, изображения и текст. SVG существует с 1999 года, а с 16 августа 2011 включена в рекомендации W3C. SVG сильно недооценена веб-разработчиками, хотя имеет несколько важных преимуществ.
+70
Привлекательные экспериментальные плагины на JavaScript
2 min
49KTranslation
Вступление
Я безумно люблю различные эксперименты на JS. Они словно позволяют заглянуть нам в будущее, и посмотреть, каким захватывающим и футуристичным оно будет. Когда вы будете просматривать приведенную подборку, вы наверняка вспомните про еще недавнего короля — Adobe Flash, а затем осознаете, насколько быстро CSS и JavaScript лишили его трона. Современные браузеры позволяют нам использовать множество различных эффектов и анимаций без сильных тормозов. Однако слово «экспериментальный» подразумевает ряд ограничений, как например некорректное отображение в некоторых браузерах (IE), кроме того, подобные плагины будут, скорее, отличным концептуальным дополнением для персональных страниц, а не для использования в больших проектах.
Meny

Meny — трехмерное меню, которое помимо своей визуальной притягательности еще и экономит место на экране. При наведении (или свайпе на тачскрине, что важно), меню «выезжает» с отличным эффектом.
+116
Загрузка картинок в фоне. Модуль на JavaScript
4 min
9.6KНекоторое время назад я начал писать большой проект с высокой нагрузкой, в котором широко использовались возможности JavaScript. За это время пришлось переосмыслить многие вещи и столкнуться с необычными проблемами и различными уловками для их решения. Об одной из таких уловок и пойдет речь далее.
+25
Удобное встраивание RESTful API в проект
6 min
41KTutorial
Ни для кого не секрет, что наличие API идет на пользу любому проекту. Но часто, при ошибке в архитектуре системы или же добавлении его к готовому проекту, накладные расходы на поддержку и тестирование отнимают достаточно много времени.
Я хочу представить сообществу нашу реализацию RESTful архитектуры, без дублирования кода и с минимальными изменениями существующей бизнес-логики. Или Как добавить в проект API за пять минут?
Я хочу представить сообществу нашу реализацию RESTful архитектуры, без дублирования кода и с минимальными изменениями существующей бизнес-логики. Или Как добавить в проект API за пять минут?
+28
Фильтры для изображений с CSS Filter Effects
1 min
153KTutorial
В графических редакторах очень легко менять яркость или контраст изображений, применять различные фильтры. С недавних пор это можно делать и средствами CSS прямо на веб-страницах с помощью CSS Filter Effects.

Демонстрация / Скачать исходники / Спецификация Filter Effects 1.0

Демонстрация / Скачать исходники / Спецификация Filter Effects 1.0
+16
Information
- Rating
- Does not participate
- Location
- Винница, Винницкая обл., Украина
- Date of birth
- Registered
- Activity