Как стать автором
Обновить
0
0

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

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

Что делает компьютерный код в голливудских фильмах

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


Британский программист и писатель Джон Грэм-Камминг (John Graham-Cumming) открыл познавательный блог Movie Code, посвящённый использованию компьютерного кода в голливудских фильмах. На сайте собирают кадры из фильмов и объясняют, откуда взят код и что конкретно он делает в реальности. Не секрет, что режиссёры часто подбирают код совершенно произвольным образом, иногда получается очень смешно.

Например, вверху показан кадр из боевика «Штурм Белого дома», где режиссёры использовали код нескольких open source программ, которые написаны в 2007-2008 годах для демонстрации Raw Sockets с целью инъекции пакетов. Свой код в официальном трейлере опознал специалист по информационной безопасности с сайта SecurityTube.net.
Читать дальше →
Всего голосов 136: ↑105 и ↓31+74
Комментарии36

Создание «API-Centric» Web Application на PHP

Время на прочтение13 мин
Количество просмотров11K
Что такое “API-Centric” Web Application?
Это веб приложение которое большая часть функционала реализуется через API. Например: если вы авторизовываетесь, то вы отправляете свои данные через функции API, а API уже возвращает результат success или же ошибку. Другой характеристикой API является то что API не зависит от состояния пользователя.

Зачем это нужно ?
Как веб разработчики мы видим, что технологии развиваются каждый день. И все знают, что люди используют не только браузеры на pc, но и android, apple, windows phone и прочие гаджеты для доступа в интернет к своим любимым сайтам.

Так причём же тут API ?
Одним из преимуществ создания api-centric приложения это помощь в построении функциональности, которая может быть использована на любом другом девайсе, будь это браузер, мобильник, планшет или даже десктопное приложение. Все, что нужно сделать, это создать API, таким образом, чтобы все эти устройства могли взаимодействовать с ним.

Читать дальше →
Всего голосов 73: ↑52 и ↓21+31
Комментарии31

Создание превью изображений на клиенте: борьба с прожорливыми браузерами

Время на прочтение8 мин
Количество просмотров34K
Всем привет! Сегодня задача у нас следующая: необходимо создать интерфейс для загрузки картинок, который бы генерировал перед загрузкой превьюшки небольшого формата. На данный момент HTML5 вовсю шествует по планете, и, казалось бы, как это реализовать должно быть предельно ясно. Есть несколько русскоязычных статей на эту тему (вот, например). Но тут есть одно но. В рассматриваемом там подходе не уделено никакого внимания расходу памяти браузером. А расход может доходить до гигантских размеров. Разумеется, если загружать одновременно не более 5-10 картинок небольшого формата, то все остается в пределах нормы; но наш интерфейс должен позволять загружать сразу много изображений формата не меньше, чем у современных фотоаппаратов-мыльниц. И вот тогда-то свободная память начинает таять на глазах.
Постараемся вернуть украденную память
Всего голосов 99: ↑93 и ↓6+87
Комментарии34

Portable Network Javascript

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

Приукрасим забытое старое


Для начала — небольшая картинка в качестве эпиграфа. Продолжение — под катом.

image
Читать дальше →
Всего голосов 116: ↑94 и ↓22+72
Комментарии34

Как сверстать веб-страницу. Часть 1

Время на прочтение13 мин
Количество просмотров1.2M
Уважаемый читатель, этой статьей я открываю цикл статей, посвященных вёрстке.
В первой части будет описано, как это сделать с помощью стандартных средств на чистом HTML и CSS. В последующих частях рассмотрим как сделать тоже самое, но с помощью современных фреймворков и CMS.

Часть 1. Верстка стандартными средствами


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

Итак, давайте приступим. В качестве нашего подопытного мы возьмем бесплатный psd шаблон Corporate Blue от студии Pcklaboratory.
Читать дальше →
Всего голосов 155: ↑120 и ↓35+85
Комментарии110

Еще раз об обфускации JavaScript или сказ о том, как я обфускатор писал. Часть 1

Время на прочтение3 мин
Количество просмотров14K
Возникла тут задача, написать код на php, который принимает js-код и обфусцирует его по самое не балуй. После курения гугла и хабра (в том числе, как правильно подсказывает monolithed, вот этой статьи) я приступил к работе. Как и следовало, я начал того, что запустил консоль JS в хроме и начал пытаться получать строки из месива символов, вот что получилось (с пояснениями):
(![]+[])

«false»
[] — пустой массив
! — операция логическое НЕ, особенность js (и не только), в том, что при булевых операциях если операнд равен 0, false, undefined, null, '' (пустой строке), то он приводится к false. Во всех остальных случаях — к true. (спасибо oshibka404 за поправки)
То есть (![]) = false
+ — операция сложения и объединения строк, если оба операнда числа, то произойдет сложения, иначе это будет объединение строк с приведением типов. Кстати, тут есть особая магия типов, но это позже.
Читать дальше →
Всего голосов 44: ↑34 и ↓10+24
Комментарии37

IndexedDB — безлимитное хранение данных

Время на прочтение7 мин
Количество просмотров16K
Добрый день, уважаемое сообщество.
Для тех, кто не в курсе, что такое IndexedDB и с чем его едят, можно почитать здесь.

А мы идем далее.

Безлимит


В конторе в которой я работаю появилась необходимость использования индексированной локальной базы данных на стороне клиента и выбор сразу пал на IndexedDB.

Но как всегда есть одно «НО», это самое «НО» — ограничение размера БД на машине пользователя в размере 5 МБ, что отнюдь нас не устраивало. Так как данная технология планировалась использоваться в админке нашего проекта и все юзеры использовали в качестве дефолтного браузера Google Chrome, то было принято решение поиска обхода того самого ограничение через расширение-прокси. Перелопатив много инфы мы пришли к выводу, что ограничение на размер БД можно убрать использовав специальные флаги в манифесте нашего расширения:
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии5

Кроссдоменный postMessage или как браузеры поддерживают стандарты

Время на прочтение3 мин
Количество просмотров17K
Во время прикручивания облачных хранилищ к скрипту для бэкапа, встала необходимость использовать OAuth 2 авторизацию, для использования с разными облачными API. В принципе с самой авторизацией никаких сложностей не возникло, но проблема возникла в немного неожиданном месте.

Учитывая аудиторию использующую софтину, было решено отказаться от поддержки древних браузеров, и всё затачивалась под современные браузеры, использующие HTML5, которые казалось бы уже вполне неплохо и одинаково поддерживают страндарты.

Но, не тут-то было…
Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии4

Tips & tricks for MySQL Developers. Работа с SQL

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

Эта статья задумана мной как сборник некоторых интересных моментов по использованию и оптимизации SQL запросов в БД MySQL, на мой взгляд, плохо освещенных в интернете. Так, из статьи вы узнаете о конструкции with rollup, и о том, как переписать подзапросы in и not in на join'ы, а так же обновление и удаление данных в нескольких таблицах — одним запросом, и многое другое. Начнем по порядку.
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии28

Руководство по WebKit-атрибуту srcset в тэге img

Время на прочтение3 мин
Количество просмотров48K
Свободный движок WebKit теперь поддерживает srcset атрибут изображений, IMG элементов (официальная спецификация от W3C). Это позволяет вам, как разработчику, использовать картинки с высоким разрешением для пользователей использующих ретина-дисплей без ущерба для остальных пользователей. Также важно отметить о наличие изящного решения для браузеров, которые еще не поддерживают данный функционал.

Обратите внимание, в необходимости использовать последние ночные сборки WebKit.

Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии61

Самые быстрые настройки для PHP-скриптов

Время на прочтение7 мин
Количество просмотров35K
Наверное, все, кто сталкивался с разработкой более или менее серьезных приложений, знают, что выбор формата хранения настроек скрипта или приложения — достаточно ответственное дело. Конфиги должны быть легко читаемыми, легко модифицируемыми, легко переносимыми, и так далее — список можно продолжать и продолжать.

Так как серверные PHP-скрипты выполняются, бывает, много раз в секунду, скорость загрузки конфигов — достаточно важный параметр. Хотя ему, порой, уделяется не очень много внимания. Давайте сравним различные варианты хранения настроек для PHP-скриптов с точки зрения скорости их работы. Ну и коснемся вкратце их удобства.
Читать дальше →
Всего голосов 112: ↑93 и ↓19+74
Комментарии192

Хранение деревьев в базе данных. Часть первая, теоретическая

Время на прочтение4 мин
Количество просмотров130K
Полгода назад написал бандл ClosureTable для фреймворка Laravel 3. Поводом для написания стала вот эта замечательная презентация Билла Карвина о способах хранения и обработки иерархических данных в MySQL с использованием PHP.

Итак. Существует несколько шаблонов проектирования баз данных для хранения и обработки иерархических структур:
  • Adjacency List («список смежности»)
  • Materialized Path («материализованный путь»)
  • Nested Sets («вложенные множества»)
  • Closure Table («таблица связей»)

Читать дальше →
Всего голосов 47: ↑41 и ↓6+35
Комментарии66

Разбор регулярных выражений

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


Хочу просто поделиться недавно найденным сервисом для работы с регулярными выражениями. Да, это еще один сервис. Но у него есть особенность — он позволяет не только составлять регулярные выражения, но и помогает разбирать уже написанные — эдакий regexp-декомпилятор.
Сервис называется Regex101.

Читать дальше →
Всего голосов 99: ↑94 и ↓5+89
Комментарии53

MVC на примере CodeIgniter

Время на прочтение3 мин
Количество просмотров11K
На официальном сайте есть видео где рассказывается о создании блога. Там рассказано о применении только представления и контроллера, модель опускается и остается на самостоятельное изучение. Далее попытаюсь рассказать, как использовать полную модель MVC на примере вывода записей в блоге.
Читать дальше →
Всего голосов 6: ↑4 и ↓2+2
Комментарии19

Long Polling от А до Я своими руками

Время на прочтение5 мин
Количество просмотров55K
Как реализовать long polling с помощью Nginx и Javascript в сети достаточно много материала. Но полного руководства я ещё не встречал. То возникают проблемы с компиляцией модуля под Nginx, то в браузере вертится иконка загрузки при long poll запросах. Под катом, полный материал как же все таки это сделать правильно.
Читать дальше →
Всего голосов 73: ↑69 и ↓4+65
Комментарии34

Кроссбраузерная кастомизация системного скроллбара

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


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

Под катом можно узнать, как в ближайшее время будет работать скролл в 2ГИС Онлайн.
Подробности
Всего голосов 127: ↑116 и ↓11+105
Комментарии132

Основные ошибки при разработке адаптивного дизайна

Время на прочтение2 мин
Количество просмотров52K
Адаптивные дизайн становится все популярнее, сегодня это уже не просто модная новая технология. Ниже собраны самые частые ошибки, допускаемые при разработке адаптивного сайта, своеобразный чек-лист.



Скрывать контент


Не стоит прятать части сайта только потому, что они не помещаются на экране мобильного устройства. Мобильные пользователю хотят видеть тот же контент и функционал, что и пользователи десктопов. Нужно проектировать интерфейс так, чтобы по возможности помещалось все.
Читать дальше →
Всего голосов 65: ↑57 и ↓8+49
Комментарии45

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность