Search
Write a publication
Pull to refresh
43
0
Валерий Дмитриев @rotor

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

Send message

Видео-курс по JavaScript на русском языке

Reading time1 min
Views218K
Здравствуй, Хабр!

Представляю вам свой курс по JavaScript, недавно прошедний на Хекслете. Курс состоит из семи лекций общей продолжительностью около четырех часов.



Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).



Остальное – под катом.
Читать дальше →

Сериализация целочисленных массивов Judy в PHP

Reading time5 min
Views5.5K
Как известно, переменная в PHP это не только ценные данные, а целый контейнер zval. А массив таких переменных занимает в памяти чересчур много места.
В PHP есть реализация Judy массивов — быстрых, ассоциативных и потребляющих на порядок меньше памяти. Но, к сожалению, методов сериализации\десериализации для них не существует.
Читать дальше →

Симуляция океана на WebGL

Reading time1 min
Views51K
image

Небольшое красивое демо, выложенное Дэвидом Ли — посмотреть (обсуждение).



Большая часть «магии» сделана при помощи шейдеров GLSL на GPU, код на JavaScript с матрицами — необходимая заготовка для работы с 3D графикой. Алгоритм движения волн основан на методе, описанном Джерри Тессендорфом в статье «Симуляция волн океана», опубликованной на SIGGRAPH 2002 (по ссылке есть исходный код, который написан на С++); по теме можно почитать вот это.
Читать дальше →

Оптимизация Ubuntu (и прочих Linux-ов) под SSD

Reading time4 min
Views206K
Доброго времени суток всем читающим. В данной мини-статье мне хотелось бы собрать и рассмотреть основные моменты оптимизации работы (и, конечно, продления жизненного цикла ) твердотельных накопителей. Практически всю информацию можно легко найти в сети, но тут я попытаюсь упомянуть пару подводных камней.
Читать дальше →

Уязвимость в nginx — nginx security advisory (CVE-2013-4547)

Reading time2 min
Views29K
В nginx обнаружена (и уже исправлена) уязвимость.
Подробности здесь: mailman.nginx.org/pipermail/nginx-ru/2013-November/052575.html

Проблеме подвержены версии nginx 0.8.41 — 1.5.6.
Проблема исправлена в nginx 1.5.7, 1.4.4.
Для кастомных конфигураций доступен патч — nginx.org/download/patch.2013.space.txt

Особенно интересна вот эта часть:
а также возможность вызывать специальную обработку файла с пробелом на конце в конфигурации вида
location ~ \.php$ {
fastcgi_pass…
}

запросив файл как "/file \0.php".

Пример эксплуатации под катом

Продвинутая JavaScript отладка при помощи console.table()

Reading time2 min
Views43K
Вчера узнал об одной изящной возможности отладки в «Инструментах разработчика Chrome». На конференции "Web Developer Conference Compact" Маркус Росс (Marcus Ross — @zahlenhelfer) рассказывал о различных инструментах отладки, реализованных в Chrome, об одном из который я хочу рассказать.
Читать дальше →

PHP Console 3.0 — важнейшее обновление за 3 года

Reading time3 min
Views31K


Прошло 3 года с момента выхода первой версии, о которой вы могли читать в статье Как подружить PHP с консолью Google Chrome. За это время расширение набрало 43`000 активных пользователей, и, что не менее важно, в ноябре 2013 обновилось до версии 3.0. Несколько месяцев разработки, и получилась полностью переписанная, в несколько раз более функциональная версия.

Новый функционал PHP Console 3.0

  • Отладка PHP ошибок и исключений (было в v1.1)
  • Дамп переменных любого типа
  • Выполнение PHP кода удалённо
  • Защита соединения по паролю
  • Группировка данных отладки по URL запроса
  • Открытие файла-строки ошибки в вашей IDE по клику на кнопку в уведомлении
  • Копирование данных ошибки/дампа в буфер обмена(для тестеров)
  • Новый клиент-сервер протокол без ограничений на размер данных
  • Новая PHP библиотека на GitHub
  • Новый плагин для Yii
  • Новый плагин для Laravel
  • Новый плагин для Silex
  • Новый модуль для Drupal (спасибо @Chi-teck)
  • И многое другое...

В статье:

  • Скриншоты
  • Видео
  • Список функций Google Chrome расширения
  • Список функций PHP библиотеки
  • Голосование за портирование на другие языки

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

Pull request'ы на GitHub или Как мне внести изменения в чужой проект

Reading time6 min
Views523K
По просьбе tulskiy делаю вольный перевод частей официальной документации GitHub'а Fork A Repo и Send pull requests.

Итак, что же такое «запрос на включение (сделанных вами изменений)» (именно так я перевёл pull request)? В официальной документации гитхаба говорится следующее:
Pull request'ы позволяют вам рассказать другим о тех изменениях, которые вы разместили в своём GitHub-репозитории. Как только pull request отправлен, заинтересованные стороны рассматривают ваши изменения, обсуждают возможные правки или даже добавляют дополняющие коммиты, если нужно.

Говоря своим языком: Посылая pull request, вы говорите автору изначального репозитория (и всем заинтересованным лицам): «Смотрите, что я сделал, не хотите ли принять мои изменения и влить их в проект?»
Читать дальше, но теперь уже обо всём по порядку

OAuth на практике. Аутентификация и авторизация пользователей сайта через популярные социалки

Reading time14 min
Views347K
Думаю, не мне одному чрезвычайно надоели ресурсы, требующие регистрации по каждому поводу и без. С обязательной капчей, которая правильно введется только с пятого раза, с подтверждением по е-мейлу, которое обязательно свалится в спам и то — только через сутки. Придумывать каждый раз новую пару логин-пароль — забудется, вводить одно и то же на всех сайтах — небезопасно. Местами прокатывают пары вида «qwerty:qwerty» или «login:password», но, увы, далеко не везде. Надоело. Не счесть, сколько раз я, увидев надпись «только зарегистрированный пользователь может ****», просто кривился и закрывал вкладку, чтобы больше ни разу на этот сайт не заходить. Неужели администраторы ресурсов сами этого не понимают?
Читать дальше →

ABC-сортировка

Reading time6 min
Views48K

Данная разновидность поразрядной MSD-сортировки «заточена» для строк. Впрочем, алгоритм так назван отнюдь не за лексическую специализацию. Автор Аллен Бичик (Allen Beechick) выбрал название в честь себя любимого, ABCsort расшифровывается как Allen Beechick Character sort.

Сам по себе Бичик примечателен тем, что он не только программист, а ещё и целый магистр богословия. Заботы по упорядочиванию неотсортированных данных интересуют его только в рамках мирской профессии. Куда более уважаемого теолога волнует наведение порядка в хаосе современного общества, накануне Вознесения для истинно верующих и Страшного Суда для всех остальных.

Что касается алгоритма, то это единственно известная мне сортировка, за использование которой её изобретатель требует деньги.
Богоугодная сортировка за 88 у.е.

OAuth.io

Reading time1 min
Views17K
Доброго времени суток и с прошедшим Днем народного единства! Хочу рассказать об одном хорошем проекте — .


OAuth.io — это API (JavaScript, PhoneGap, iOS, Android, Flex) и сервис, который значительно упрощает взаимодействие более чем с 80-ю oAuth провайдерами (Facebook, Twitter, VK, GitHub, Dropbox, и др). Сервис работает по модели freemium: до 5000 соединений в месяц сервис бесплатный, при большем количестве вас ждут вполне демократичные цены. Стоит также сказать, что проект полностью открытый и вы сможете сами запустить у себя серверную часть «OAuth IO Daemon» (GitHub).

Как это работает на примере JavaScript

re2c — компилятор регулярных выражений

Reading time3 min
Views8.5K
Задача выделения из потока символов определенных лексем является весьма распространенной. Часто ее решают с помощью лексических анализаторов, конфигурируемых регулярными выражениями. Многие анализаторы построены по принципу генерации программного кода, который в свою очередь реализует логику регулярных выражений. Фактически, это компиляция языка регулярных выражений в код языка программирования.

Например, flex — это один из таких анализаторов. Старый, но проверенный годами.

Я много пользовался flex'ом, он имеет и плохие и хорошие стороны, но по большому счету, жаловаться не приходилось.

Но вчера наткнулся на интересный проект — re2c. По сути, на этой штуке можно писать лексические анализаторы прямо на коленке за несколько минут.

Подробности

Расширение для PHP или все будет в Zephir'e

Reading time2 min
Views25K
imageНаверное у каждого PHP разработчика (и не только PHP) есть мечта — написать своё расширение для PHP, которое по определению работает быстрее интерпретируемого кода, при этом не вникая в тонкости Zend Engine, а еще лучше — не зная C++. И вот близится тот день, когда мечта станет явью. Хочу вам рассказать об очень интересном языке программирования, который называется Zephir. Кому лень читать, проходите на сайт и следуйте инструкциям, а я расскажу о том, как написать свое расширение и о подводных камнях, которые встречаются на сием пути.
Читать дальше →

Как я выбирал легкий PHP фреймворк

Reading time4 min
Views101K
Frameworks
Для начала скажу что я очень большой любитель что-то попатчить и потвикать, даже если для этого нету особой необходимости. И вот недавно рассматривая статистику XCache на своем сервере я подумал что смог бы оптимизировать объем памяти который он тратит на опкеш (opcache) файлов различных фреймворков. Сделать это просто — переписать все используя только один, файлы которого были бы общими для всех сайтов, каких у меня порядка 20-ти, но в большинстве они довольно простенькие и особого труда их переписать мне бы не предоставило. И тут я начал поиск того самого фреймворка, который в идеале имел бы достаточно фич чтобы разработка была простой, и в тоже время был легким и быстрым. Вот те которые мне понравились и мои мысли о них.
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика (выпуск 6)

Reading time3 min
Views29K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Zephir — Ze(nd Engine) Ph(p) I(nt)r(mediate). Зефир — это компилируемый высокоуровневый язык программирования, предназначенный для написания PHP расширений без использования C. Проект от создателей Phalcon (скомпилированный PHP MVC Framework). О Zephir на Sitepoint
   

JSDB.IO — большая и качественная база нужных скриптов/библиотек/фреймворков на JavaScript. Все распределено по категориям: Animation, Application, Audio, Video, Games и др. Дабы собрать все популярные .js воедино добавлю еще три ссылки: Microjs (множество маленьких полезностей до 5кб), а еще jsdelivr и cdnjs, которые позволяют добавлять собственные скрипты.

Snap.svg — продукт от Adobe Webplatform. Недавно я рассказывал про "достойного конкурента Raphaël" и в комментариях оспоривали эту фразу из за отсутствия поддержки такого же множества браузеров. В разработке Snap участвует автор Raphaël — Дмитрий Барановский, а причина создания новой библиотеки для работы с SVG — невозможность поддерживать все возможности SVG в старых браузерах.

At.js — очень юзабельный скрипт для автозаполнения (в демо используется Emojify). А еще есть более функциональная библиотека для автозаполнения — Typehead от Twitter.
$('.atwho-inputor').atwho({
  at: "@", data: ["one", "two", "three"],
});

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

Как дешево напечатать книгу в Linux

Reading time3 min
Views26K
Думаю, почти каждый сталкивался с проблемой печати больших pdf файлов. Недавно и мне пришлось напечатать мануал в 600 страниц. Так как документ целиком состоит из текста не очень то хотелось печатать все 300 листов а4. В поисках решения наткнулся на статью от rapkasta.

Вот так я и набрел на замечательный пакет psutils, вот только способ брошюрирования меня не обрадовал. Слишком много работы. А мне ленивому хочется автоматики, вдруг в дальнейшем пригодится.
Читать дальше →

Ловля интернетов в глухой деревне с помощью 3G антенны

Reading time3 min
Views307K
Привет всем!

Не так давно я задался целью обеспечить интернетом жену, отдыхающую все лето с ребенком в деревне. Даже ответственно озаботился покупкой сим-карты для ее любимого айпадика (раньше как-то обходились wi-fi). Каково же было мое разочарование, когда по приезду в деревню я обнаружил почти полное отсутствие сигнала сотовой сети что на планшете, что на мобильных телефонах… Понятно — зря выкинул деньги на симку. Неделя моего пребывания в деревне ознаменовалась лазаньем по чердакам, крышам, просто по участку, уткнувшись в смартфон в надежде увидеть хотя бы GPRS. Все тщетно… Отбыл в Москву, мои остались в этой глухомани отдыхать от радиоволн.

По дороге домой обдумывал план решения проблемы. Необходимость в интернете у жены диктовалась даже не сколько развлекательными целями, сколько возможностью бесплатно переписываться по Viber и регулярно снабжать меня фотками дочурки (надо сказать, писать sms и mms из Тверской области в Москву недешево). Так же давало надежду знание того, что в другой деревне, в паре километров, интернет работал, причем довольно устойчиво и с почти полным индикатором сигнала. Значит где-то рядом с этой деревней есть базовая станция, снабжающая деревню устойчивым 3G сигналом. Судя по всему, складки местности или иные преграды мешают сигналу достигать нашего участка.

Решение придумалось конечно не новое и не оригинальное — и ежу понятно, что нужно вооружаться направленной 3G антенной. Тем более, у меня уже имелся некоторый опыт эксплуатации направленных антенн для ловли 4G в Москве. В голове, где-то на пыльных задворках, лежали воспоминания о курсе антенно-фидерных устройств, который нам целый семестр читали в институте. И благодаря этим знаниям я прекрасно понимал, что собирать такую антенну самостоятельно будет довольно трудозатратно и долго, решил покупать готовую.
Читать дальше →

CFD 3D: простой симулятор воды

Reading time12 min
Views65K




Введение


CFD (Computational fluid dynamics) — вычислительная гидродинамика.
Используется для моделирования разных процессов в жидкостях, а также разных типов жидкостей (например мёд, нефть — это все жидкости).

В данном посте рассматривается 2D симулятор обычной воды с открытой поверхностью и препятствиями (для 3D версии все аналогично + доступны исходники).
Поверхность воды представляет собой границу, отделяющую воду от воздуха.Это позволяет моделировать волны, падение капель и т.д.
Читать дальше →

Information

Rating
10,999-th
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity