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

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

Send message

F3: маленький PHP-фреймворк с огромными возможностями

Reading time7 min
Views27K


Хочу представить вашему вниманию легковесный PHP-фреймворк, на который я недавно наткнулся и который сразу же полюбил.

Fat-Free чем-то похож на известный Ruby-фреймворк Sinatra. Автор Fat-Free помешан на минимализме и чистоте кода, что положительно отразилось на этом простом каркасе для разработки самых разнообразных приложений.

Fat-Free состоит из одного файла и весит всего 55KB. При этом фреймворк обладает таким функционалом: специфический и довольно удобный шаблонизатор, гибкое кеширование, автоматическая защита от спама, интегрированные средства для юнит тестов, профайлер кода.

Он настолько маленький и быстрый, что даже может использоваться для контроля траффика Web-сервера.

Это, также, единственный фреймворк, который защищает Ваше приложение от хотлинкинга и DoS атак.
Читать дальше →

Удачная модель ветвления для Git

Reading time10 min
Views1M
Перевод статьи Vincent Driessen: A successful Git branching model

В этой статье я представляю модель разработки, которую использую для всех моих проектов (как рабочих, так и частных) уже в течение года, и которая показала себя с хорошей стороны. Я давно собирался написать о ней, но до сих пор не находил свободного времени. Не буду рассказывать обо всех деталях проекта, коснусь лишь стратегии ветвления и управления релизами.



В качестве инструмента управления версиями всего исходного кода она использует Git.

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

Вёрстка c «Ушами»

Reading time2 min
Views9.3K
Очень часто фантазия человека, разрабатывающего макет сайта, не ограничивается шириной 1024px, при этом требуется, чтобы сайт выглядел достойно на всех разрешениях и соответствовал полёту мысли дизайнера.

Проблему можно представить графически так:
image

Задача вёрстки заключается в следующем:
  • — независимо от разрешения (размера она браузера), информативная часть сайта находилась посередине;
  • — справа и слева должны остаться графические блоки (уши), причём эти уши должны быть видны только при увеличенном размере экрана браузера, а при уменьшенном не уместившаяся часть должна прятаться (в идеале, чтобы ещё горизонтальной полосы прокрутки не было);;
  • — страница должна быть резиновой от 680px до 1000px.

Работает для FF3, FF4, IE8 и почти для Opera.
Читать дальше →

Реализация паттерна Observer средствами PHP 5.3

Reading time3 min
Views11K
Прочитав недавно нововведения PHP 5.3, я обратил внимание на несколько интересных особенностей, скомпоновав которые можно получить реализацию шаблона проектирования Observer, гораздо красивее, чем имеющиеся в pear и symfony, причём вся реализация займёт всего несколько строк кода.
Читать дальше →

Команда nice, или вежливые процессы

Reading time2 min
Views90K
Когда на компьютере достаточно процессорного времени на исполнение всех процессов, нет необходимости в выставлении приоритетов. Но когда необходимо параллельно запустить несколько процессов, каждый из которых использует всё доступное процессорное время, может очень пригодиться утилита nice.

Команда nice запускает программу с изменённым приоритетом для планироващика задач. Слово «nice» в английском языке обозначает, в частности, «вежливый». По этимологии этой команды процесс с большим значением nice — более вежлив к другим процессам, позволяя им использовать больше процессорного времени, поскольку он сам имеет меньший приоритет (и, следовательно, большее «значение вежливости» — niceness value).

Наибольший приоритет (и наименьшее значение nice) — −20. 19, либо 20 — наименьший приоритет, но это, с другой стороны, самые вежливые процессы.
Читать дальше →

Impact HTML5 Game Engine — движок на JS

Reading time1 min
Views19K
Просматривая обзоры инди-игрушек наткнулся на весьма интересный проект — Biolab Disaster (да поможет ему НЛО выдержать хабраэффект) — браузерный платформер на чистых HTML5 & JavaScript, навеивающий воспоминания о тех временах, когда каждую игру делали с душой.
Коротенькая и незатейливая игрушка крутится необычайно быстро и красиво, оставляя за собой приятное впечатление, активированные чекпоинты и маленькие кусочки врагов :)
Выполнена она на движке автора этой же игры, Impact HTML5 Game Engine, в качестве демонстрации его возможностей. Движок на данный момент все еще находится в состоянии разработки, но предлагает уведомить нас электронным письмом по официальному выходу в свет.
За новостями можно так же следить в блоге автора.

На закуску — видео с геймплеем, некоторыми моментами создания игры и редактором уровней — с комментариями автора.

(Благодаря видео можно узнать ссылку на официально еще не опубликованный, но вполне рабочий level editor)

Флеш становится все менее значимым, что не может не радовать.
Приятного пятничного ковыряния в коде ^_^

Как избавиться от пристрастия к синхронности

Reading time6 min
Views5.8K
При сравнении асинхронное программирование превосходит синхронное, как по потреблению памяти, так и по производительности. Мы знакомы с этим фактом уже годы. Если посмотреть на Django или Ruby on Rails, возможно два самых многообещающих веб-фреймворка, появившихся за последние несколько лет, оба написаны из расчета на синхронный стиль. Почему даже в 2010 году мы пишем программы, полагающиеся на синхронное программирование?

Причина, по которой мы застряли в синхронном программировании, двоякая. Во-первых, манера написания кода непосредственно для асинхронного поведения неудобна. Во-вторых, популярные и/или распространенные языки имеют недостаточно встроенных конструкций, требующихся для реализации менее прямолинейных походов к асинхронному программированию.
Дальше много текста

MySQL шпаргалки

Reading time3 min
Views827K
Часто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.

Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.

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

Grub Customizer програмулина для редактирования меню загрузчика GRUB2

Reading time1 min
Views67K
image

Grub Customizer — это новый менеджер настроек для GRUB2 на гуях. На данный момент он позволяет: переименовывать, переупорядочивать, удалять/добавлять и скрывать элементы меню выбора загрузчика.

Интересен еще и тот факт что даже после переустановки самого ГРУБа ваши изменения не исчезнут.

Grub Customizer доступен через Ubuntu PPA (Lucid и Maverick)

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

Кстати он также поддерживает BURG.

Лично проверил на Ubuntu 10.10 работает нормально, brick812,GamePad64 подтвердили работоспособность с BURG на ubuntu 10.04 и 10.10, спасибо им.

Шпаргалка: кеширование картинок, CSS и JS в NGINX

Reading time1 min
Views79K
Заметка для тех, кто не специалист в NGINX, а проблему нужно решить быстро.

Допустим, у вас на сервере стоит NGINX и вы хотите, чтобы вся статика кешировалась у клиента. В конфиге хоста NGINX пропишите это:

server {
listen 80;
server_name mysite.com;
...
# Задаем правила обработки статического контента (типов файлов можно поставить и больше)
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /path/to/document/root/; # Путь к корню вашего сайта
access_log off; # не пишем логи
expires 3d; # кешируем у клиента на 3 дня
}
}

Проверить можно в FireBug во вкладке NET: обновите страницу 2 раза и посмотрите код ответа. Если 200 ОК, то не работает. Если 304 Not Modified, то работает.

Неплохо ускоряет работу сайта.

Сборка и запуск HipHop-PHP

Reading time5 min
Views18K

Почти три недели назад был анонсирован новый проект от Facebook. Он называется HipHop-PHP.
Для широкой публики исходные коды стали доступны лишь сутки назад.

HipHop был создан для улучшения производительности Facebook. Он преобразует PHP код в C++ код и комплирует его с помощью g++. HipHop доступен под opensource лицензией.

В данной статье описан процесс сборки HipHop из исходных кодов и его использование.

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

Код Microsoft принят в виде официальных плагинов jQuery

Reading time1 min
Views2.3K
Некоторое время назад Microsoft начала тесно сотрудничать и с проектом jQuery и поставлять сообществу открытый код в виде полезных расширений. Всего было три таких расширения:Сегодня, Скотт Гатри (вице-президент подразделения по веб-разработке в Micosoft) анонсировал у себя в блоге новость о включении поставленного сообществу кода Microsoft в список официальных плагинов jQuery. Об этом сделан анонс и на официальном сайте jQuery.

В качестве официальных плагинов, эти три плагина являются частью проекта jQuery и поддерживаются командой разработчиков проекта. Вы можете загрузить плагины с официальной страницы jQuery на github уже сейчас: Документация по плагинам доступна на сайте jQuery http://api.jquery.com/.

Более того, плагин шаблонов будет включен в следующий релиз библиотеки jQuery 1.5 как ее составная часть (в jQuery.js).

Munin — мониторинг сети это просто!

Reading time3 min
Views112K

В жизни каждого системного администратора рано или поздно наступает момент, когда глаз и рук уже не хватает уследить за всеми серверами, то там, то там возникают какие-то проблемы, а для решения их очень хочется узнать что же было «до этого». И именно здесь на выручку приходят они — вел
икие и ужасные системы мониторинга. Долгое время я пользовался Nagios, и до сих пор, при всём удобстве, иначе как монстрообразным назвать не могу. В итоге реально использовались лишь 10% возможностей этой прекрасной системы. Всё изменилось, когда я наткнулся на Munin — прекрасное решение для мониторинга небольших сетей.
Обзор системы

Разработка web-приложений на языке Common Lisp (часть вторая)

Reading time5 min
Views4.2K
Данный обзор является небольшим путеводителем для тех, решился (или решается) доверить этому чудесному языку будущее своего стартапа. Несмотря на то, что основной акцент будет ставиться на web-разработке, я постараюсь осветить также и более общие темы, так или иначе связанные с Common Lisp. Материал почерпнут из собственного опыта разработки web-сервиса AlterMoby.

Вторая часть этого обзора будет посвящена базовому конфигурированию Lisp-среды. Будет описана установка простой Lisp-системы. Кроме того, вкратце рассмотрим систему управления зависимостями ASDF.
image
Читать дальше →

Еще несколько полезных плагинов

Reading time2 min
Views1.8K
За последний месяц, я написал уже два поста с обзорами плагинов jQuery (1 и 2). Надо сказать, что подобные статьи на английском языке появляются все чаще и чаще. Однако их содержание довольно быстро приедается. Галереи картинок, слайдеры, опять галереи картинок, многочисленные динамические меню и опять слайдеры. Мне не хочется описывать очередную порцию подобных плагинов. Поэтому сегодня я расскажу не о двадцати-тридцати как обычно, а только о семи важных на мой взгляд плагинах, о которых очень хотелось рассказать. Лучше меньше, да лучше.
Читать дальше →

Обзор нескольких новых плагинов jQuery

Reading time4 min
Views6.4K
Довольно часто я наступаю на одни и те же грабли. Стараясь выполнить какой-нибудь проект побыстрее, я с головой ухожу в реализацию необходимой функциональности. А через неделю, мне на глаза обязательно попадается описание библиотеки, фреймворка или плагина, воспользовавшись которыми, я мог бы выполнить свою часть работы в разы быстрее. В общем, сейчас я стараюсь быть в курсе готовых решений в интересующих меня областях. В последнее время мне часто приходится работать с javascript и поэтому, сейчас я уделяю особое внимание библиотеке jQuery и ее плагинам. Должен сказать, что упускать из виду такое разнообразие готовых решений просто нельзя. Данная статья сделана на основе обзора «50 Awesome New jQuery Plugins», который я прочитал пару дней назад.
Читать дальше →

Классификация данных методом опорных векторов

Reading time4 min
Views152K
Добрый день!

В данной статье я хочу рассказать о проблеме классификации данных методом опорных векторов (Support Vector Machine, SVM). Такая классификация имеет довольно широкое применение: от распознавания образов или создания спам-фильтров до вычисления распределения горячих аллюминиевых частиц в ракетных выхлопах.

Сначала несколько слов об исходной задаче. Задача классификации состоит в определении к какому классу из, как минимум, двух изначально известных относится данный объект. Обычно таким объектом является вектор в n-мерном вещественном пространстве . Координаты вектора описывают отдельные аттрибуты объекта. Например, цвет c, заданный в модели RGB, является вектором в трехмерном пространстве: c=(red, green, blue).

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

10 HTML5 примеров, чтобы вы забыли о Flash

Reading time1 min
Views60K
В последнее время Вы, наверное, много слышали о том, что Flash является умирающей технологией и о том, как она будет вскоре заменена на HTML5. Лично я считаю, что HTML5 будет постепенно заменять Flash лишь для некоторых вещей, но Flash всегда будет иметь место, особенно при разработке сложных игр и насыщенных интернет-приложений. Если вы еще не видите, что можно сделать с помощью HTML5, я ограничусь десятью примерами, чтобы показать некоторые из возможностей HTML5.

image

Так что же вы думаете – HTML5 заменит Flash?

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

Десять вещей, которые вы не ожидали от HTML/Javascript

Reading time1 min
Views4.7K
Пятнадцать лет назад трудно было представить, что когда-нибудь HTTP, HTML, CSS и Javascript станут основными технологиями для доступа к информации и заменят целые классы десктопных приложений. Например, вот десять примеров того, что сложно было ожидать от веб-технологий в 2010 году, но они это делают.

1. Интерактивный рендеринг физики ткани


2. Распознавание объектов на видео в реальном времени


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

Самый недооцененный язык в мире

Reading time5 min
Views8.7K
JavaScript logo
JavaScript, также известный как Mocha, или LiveScript, или JScript или ECMAScript один из самых популярных языков программирования. Фактически каждый персональный компьютер имеет его интерпретатор и активно им пользуется. JavaScript всецело обязан своей популярностью тому, что он стал основным скриптовым языком для веба.

Несмотря на его популярность, немногие знают, что JavaScript — это очень хороший объектно-ориентированный язык с множеством возможностей. Почему многие этого не понимают? Почему этот язык настолько не понят?

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

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity