Pull to refresh
23
0
Николай @corristo

User

Send message

Репозиторий пакетов популярных игровых программ для Ubuntu

Reading time1 min
Views3.1K
Нашел в сети ресурс Playdeb с репозиторием сборок пакетов распространенных игр для Ubuntu Linux. Список игр на данном ресурсе полностью аналогичен списку игр с ресурса www.getdeb.net, но установка и обновление проще, т.к. позволяет установить игру в один клик(используя AptURL) и обновлять потом через репозиторий.
Раньше я такого ресурса не видел и думаю он многим «ленивым»(и не только ;-) ) геймерам будет полезен.

UPD. Топик перенес в Убунтариум.
Total votes 58: ↑54 and ↓4+50
Comments24

Теория кэша (часть вторая, практическая, дополненная)

Reading time7 min
Views6.7K
Это вторая, дополнительная (upd: дополненная), часть моей статьи посвященной кэшированию информации при веб-разработке. Первая имеет название Теория кэша.

UPD: После многочисленных коментариев я сильно переработал статью, внес в неё больше конкретики и примеров, а так же убрал спорные моменты (например, касательно memcached). Спасибо всем, за конструктивную критику.

В данной статье я попытаюсь описать практические стороны кэширования, ориентированные, прежде всего, на сайты и системы управления контентом. Сразу предупреждаю, это мое личное мнение, которое не претендует на истину в последней инстанции. Большинство терминологии — моё, вы можете использовать его, если считаете нужным на своё усмотрение. Конструктивная критика приветствуется.
Читать дальше →
Total votes 68: ↑54 and ↓14+40
Comments60

Пишем свой XML-парсер

Reading time9 min
Views71K

Предыстория


Решив запустить небольшой сервис на подаренном мне хостинге, оказалось, что там нету ни одного xml-парсера: ни SimpleXML, ни DOMXML, а только libxml и xml-rpc. Недолго думая, я решил написать свой. Мне требовался разбор не сложных rss-лент, поэтому хватило достаточно просто класса xml => array.[1]

Но для интересной статьи этого было явно не достаточно, поэтому сейчас мы напишем свою замену для SimpleXML. А заодно пробежимся по многим интересным возможностям PHP 5.

Постановка задачи


Доступ к элементам у нас будет осуществляться как доступ к свойствам класса, например $xml->element, а доступ к атрибутам элемента, как к массиву, те $xml->element['attr'], также реализуем проверку на существование атрибута при помощи isset() и итерацию по элементам при помощи foreach. И так, начнем.
Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments42

Подсчет количества найденных записей в PostgreSQL

Reading time3 min
Views43K
На работе в новом проекте используется СУБД PostgreSQL. Так как до сих пор я работал с MySQL, сейчас приходится изучать и открывать для себя Постгри. Первая проблема, которая меня заинтересовала — замена мускулевского SQL_CALC_FOUND_ROWS. При использовании этой константы в MySQL можно получить количество всех найденных по запросу записей, даже если запрос с limit'ом — это незаменимо при постраничном выводе поисковых результатов, когда используются «тяжелые» запросы.
Сходу готового решения найти не удалось. На форумах просто констатировали, что SQL_CALC_FOUND_ROWS в Постгри нет. Некоторые писали, что надо юзать count(*). И больше никакой информации. Но еще из MySQL мне было известно, что поиск с count()-запросом работает почти в 2 раза медленнее, чем с SQL_CALC_FOUND_ROWS. Я консультировался у тех, кто пользуется PostgreSQL, день мучал google и в результате получил 4 варианта замены SQL_CALC_FOUND_ROWS в PostgreSQL, один из которых вполне приемлимый по скорости.
Читать дальше: какие запросы и какая разница в скорости
Total votes 37: ↑35 and ↓2+33
Comments43

Еще один способ генерации PDF

Reading time8 min
Views20K
Где это может пригодиться? При необходимости генерации готовых к печати файлов в web-приложении по уже имеющемуся произвольному жесткому шаблону: сертификаты, бейджи, пропуски и прочее.

Почему PDF? Формат PDF позволяет создавать документы с целым рядом неоспоримых преимуществ: открытость, кроссплатформеность, распространенность и, что очень важно, точностью и неизменностью передачи данных по цепочке создание, просмотр и печать.

В чем соль? В использовании SVG файлов как шаблонов с возможностью подстановки необходимых полей с последующим преобразованием в PDF.

Какие преимущества? Возможность создания и быстрого редактирования очень сложных шаблонов в привычных векторных редакторах, таких как Adobe Illustrator, Corel Draw или Inkscape. Простота программирования и использование только бесплатных программных средств. Еще одним важным преимуществом является возможность прозрачно использовать UTF-8 для вставляемых текстов.

Что для этого надо? Для использования данного метода нужен выделенный сервер с возможностью установки своих приложений (Inkscape и GhostScript) и выполнением system-команд. При этом всё будет работать как на Windows платформе, так и на Linux.
Как это сделать
Total votes 32: ↑30 and ↓2+28
Comments25

Основы Hibernate

Reading time17 min
Views435K


Хочу начать со слов благодарности тому человеку, который мне вчера накинул кармы, позволив этим писать мне в персональный блог.

Долго думал, о чем же написать свой «первый» топик… Слово первый не зря взял в кавычки, так как первый топик на самом деле уже был, опыт был к сожалению неудачный — дело закончилось баном.  Решил больше не копипастить. Уверенности тому, что надо написать что-то свое, придал вот этот топик. Решил твердо — пусть это будет и редко, но буду писать сам.

Ну, едем дальше!

Совсем недавно, по роду свой деятельности, мне пришлось столкнуться с таким понятием как ORM — (англ. Object-relational mapping). В двух словах ORM — это отображение объектов какого-либо объектно-ориентированного языка в структуры реляционных баз данных. Именно объектов, таких, какие они есть, со всеми полями, значениями, отношениями м/у друг другом.
Читать дальше →
Total votes 64: ↑59 and ↓5+54
Comments112

Мультитач для всех

Reading time1 min
Views5.9K
… Ну или не совсем для всех.

Краткое описание действий по этой статье:
  • Находите свой ноутбук в этом списке
  • Устанавливаете из репозитрария или собираете synclient
  • Устанавливаете модули для перла: Time::HiRes и X11::GuiTest
  • Устанавливаете опцию «SHMConfig» в значение «on» в вашем конфиге xorg.conf для тачпада
  • Скачиваете и запускаете скрипт отсюда

Вот что должно получиться в итоге.
Total votes 29: ↑25 and ↓4+21
Comments28

Отладка PHP средствами Firebug

Reading time2 min
Views25K
FirePHP

Отладка PHP-скриптов определенно недостаточно освещена в интернете. Потому многие, очень многие довольствуются print_r-ками. Очевидный недостаток такого способа — нельзя отладить AJAX, SOAP-сервисы, генераторы картинок и вообще скрипты, не отдающие непосредственно HTML-документов.

Javascript-разработчики используют для отладки Firebug. Как я им всегда завидовал. Лепота — выделенная консоль, net-монитор, отладчик, и все это в любимом браузере.

Так вот, нашел такое расширение Firebug — FirePHP. Оно позволяет выводить информацию в консоль Firebug непосредственно из PHP. Делается это довольно простым вызовом:
Читать дальше →
Total votes 84: ↑76 and ↓8+68
Comments69

CodeIgniter русМоддинг

Reading time1 min
Views1.1K

Ну что, дорогие поджигатели кода. У меня есть небольшое предложение. Может и опоздал с ним. Но все же. Итак.
смотрю я на CI, смотрю. фреймворк канеша шикарный(со своими плюсами и минусами), но есть достаточно много мелких неприятых нюансов, которые авторы никак не поправят, хотя в багрипортах они пролетали. Чаще всего нас касается вопрос интернационализции (читай локализации под русь). Их наверняка интересуют проблемы важнее, чем запихивание кириллицы rawurlencode в строку адреса или отправку русских писем через встроенный мэйлер.
Кроме того я более чем уверен, что каждый из нас написал хоть один хелпер или какой нибудь мод, который оставил в своем дистрибутиве для дальнейших использований.
Что касается меня, то на моем счету не так уж их и много, мало я бы сказал. Еще я всегда добавляю .htaccess для перерисовки адресов и перенаправления на index.php. В конфиге меняю
$config['index_page'] = «index.php»; на
$config['index_page'] = "";
чтобы адрес был посимпатичнее.
Еще там пару фиксов для той же кириллицы, Editor хелпер, как обычно я думаю.
А что если собраться и замутить более-менее стабильный (на основе стабильного добаить что-то своё) дистрибутив и сопровождать его, интегрировать в новые офф-версии CI. Можно еще переводить ресурсы, библиотеки и прочее, занятся думаю найдется чем.
Что скажете?
Total votes 15: ↑11 and ↓4+7
Comments28

Создание простой MVC-системы на PHP 5

Reading time18 min
Views208K

Предисловие


В этом руководстве Вы узнаете, как построить простую систему по архитектуре MVC (Model-View-Controller, Модель-Отображение-Контроллер) на PHP 5.1 с использованием возможностей библиотеки SPL (Standard PHP Library, Стандартная Библиотека PHP).

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments116

Изучаем потоки, чанки и ищем конец

Reading time1 min
Views13K
Примечание: ниже перевод статьи «On Streaming, Chunking, and Finding the End», в которой авторы рассматривают процесс передачи информации по HTTP-соединению и возможности для ускорения этого процесса. Мои комментарии далее курсивом.

Два способа передачи



Как и в большинстве механизмов передачи данных, в HTTP существует два основных способа отправить сообщение: «все и сразу» или «по частям». Другими словами, в HTTP есть возможность отправлять данные до тех пор, пока еще есть хотя бы что-то, что можно отправить, либо отправить все данные как одну логическую единицу, указав предварительно ее размер.

Если вы занимаетесь веб-разработками достаточно продолжительное время, скорее всего, вы уже знаете, как работает сброс буфера (flush) на стороне сервера. Этот метод позволяет начать отправку части данных пользователю, в то время как скрипт может продолжать выполнять некоторые, достаточно медленные, действия (скажем, ресурсоемкий запрос к базе данных). Если вы уже применяли эту возможность, тогда вы, вероятно, использовали преимущества потокового (streaming) механизма, хотя могли и не знать всех деталей работы HTTP-протокола.

читать дальше на webo.in →
Total votes 36: ↑33 and ↓3+30
Comments24

Шаблоны Django. Наследование.

Reading time5 min
Views77K
Прочитал статью «Фрагментарное кэширование в MVC веб-фреймворках». Статья описывает проблему кеширования фрагмета отображения, а именно проблему полного разделения контроллера и отображения — контроллер отрабатывает полностью до вызова отображения. Если в отображении мы кешируем фрагмент, это ничего не меняет — контроллер-то уже отработал! В статье описан способ этого избежать: сделать запрос данных «ленивым».

Начав писать, как это должно быть сделано правильно, решил написать, как устроены шаблоны Django, чтобы не-джанговодам тоже было понятно.

Как это сделано в Django?

Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments43

Доклад по Python

Reading time1 min
Views14K
В докладе описаны основные возможности языка python.
Кратко, понятно, с примерами. Приведены некоторые сравнения с другими языками.
Этот доклад будет полезен начинающим программировать на python, а также тем, кто выбирает язык программирования для своей задачи.
Первая, вторая и третья части доклада.
Total votes 54: ↑52 and ↓2+50
Comments89

Introducing xdebug

Reading time9 min
Views46K
Эта статья первая из серии статей, описывающих xdebug, свободной библиотеки для разработчиков PHP. xdebug – это расширение для PHP, написанное Derick Rethans, одним из разработчиков языка PHP. В данной статье описывается как установить xdebug и рассказывается о его базовых возможностях. В последующих частях мы детальнее взглянем на главные возможности xdebug, а именно трассировку, профайлинг, отладку кода.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments60

StaticGenerator Pro

Reading time3 min
Views1.5K
Jared Kuolt создал небольшой скрипт кэширования для Django. Всем замечателен: и простотой и размером.

Но у скрипта StaticGenerator и nginx-конфига, приведенного Jared-ом, есть недостатки:
1) актуально только для сайтов без регистрации;
2) работа с ссылками только простого вида;
3) генерация только при изменении/добавлении контента и/или комментариев.

Я исправил эти недочеты, добавил кое-что интересное в скрипт, и получился StaticGenerator Pro.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments7

PHP Performance Series: Caching Techniques

Reading time6 min
Views11K
Кеширование промежуточного кода (Opcode Caching)
Кэширование кода это один из самых легких и эффективных путей увеличения производительности в PHP. Использовании данного вида кэширования позволит избавиться от большого количества неэффективностей, возникающих при процессе запуска выполнения кода. Кэширование кода сохраняет промежуточный код в памяти для того чтобы не компилировать PHP-код каждый раз при запуске файла.
Читать дальше →
Total votes 59: ↑50 and ↓9+41
Comments66

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity