Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode

Рыбацкие снасти из Китая

Сегодня наконец-то пришла моя рыбацкая посылка из Гонконга.

Посылка из Гонконга

А именно, сделал небольшой пробный заказ на китайском сайте focalprice.com.
До этого заказывал только на dealextreme.com.

Заказывал:

  1. Воблер
  2. Набор воблеров
  3. Набор виброхвостов
  4. Доставалку крючка из щучьей пасти

Шло около месяца, хотя я надеялся, что придет быстрее. Рыболовный сезон откроется не скоро, но тем не менее стоит учитывать. Отправили на следующий день после заказа — это, безусловно, плюс. В делекстриме бывает, что по две недели ждёшь отправки.

Read full post gblog_arrow_right

php Cacher

Опубликовал набор классов для кеширования:
http://github.com/valmat/Cacher
Опубликовано под лицензией
GPL v.3 (http://www.gnu.org/licenses/gpl.txt)
То есть свободно для использования и изменения. Разумеется, приветствуются любые исправления и дополнения.

Назначение

Мне нужен был очень простой, но в то же время мощный кеширующий модуль с понятной логикой. При этом он должен быть пригодным для работы на односерверном, но в то же время нагруженном проекте.

Read full post gblog_arrow_right

define vs const в PHP

Как известно, при разработке крупных веб-приложений помимо архитектуры постоянно приходится задумываться также и о производительности. Этим постом я хотел бы открыть серию публикаций по тестированию PHP на производительность.

Речь пойдет о сравнении способов хранения констант в приложении на PHP.
А именно сравниваются два подхода:

define('CONST1', 'val11');
define('CONST2', 'val12');
define('CONST2', 'val13');

и

class Consts {
    const CONST1 = 'val1';
    const CONST2 = 'val2';
    const CONST3 = 'val3';
}

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

Read full post gblog_arrow_right

PHP Counter

Выложил на github.com свой класс Counter.

В основном сделал это, чтобы потестить сам GitHub.

Адрес страницы на гитхабе: http://github.com/valmat/MC_Counter

Как использовать

Класс Counter — это образец реализации счетчика на memcache.

Можно построить другие реализации на общем интерфейсе.
Сохранение результатов применения значений счетчика осуществляется по заданному числу.
Можно реализовать сохранение по заданному интервалу времени.

  • Конструктор принимает три аргумента: ключ, имя слота и идентификатор для инициализации слота.
  • Для чего это сделано: инкремент счетчика должен быть очень быстрой операцией.
  • Не целесообразно тратить время и системные ресурсы на создание объектов, которые не будут использованы.
  • Поэтому передается только имя класса слота, который создается только в случае необходимости.
  • К таким случаям относится обмен данными между локальным и постоянным хранилищем счетчика.
  • Слоты необходимы, так как Counter не может знать о способе хранения данных в постоянном хранилище и путях доступа к ним.
  • Для предотвращения состояния гонки необходим механизм блокировок.
  • При наличии блокировки процессы, не получившие эксклюзивные права на получение данных, будут писать во временное хранилище, а процесс, установивший блокировку, по окончании своей работы инкрементирует счетчик данными из временного хранилища.
  • При сбросе данных в постоянное хранилище по условию достижения кратности значения счетчика ($this->Val % $this->upd_delim), блокировка не требуется, так как в этом случае (при достаточно большом значении $this->upd_delim) в текущий момент времени только один процесс приходит к необходимости сброса данных.

Пример использования

$cnt = new Counter('anykey', 'AnySlot', 15);
echo $cnt->increment();
echo $cnt->get();
echo $cnt->set(11);

Восстановление удалённых и повреждённых данных в Linux

Когда-то давно, лет десять назад, случалось мне отформатировать раздел жёсткого диска под Windows. На диске была важная информация, поэтому встала задача данные восстановить. Помню, путём продолжительного гугления были найдены несколько замечательных программ и кряков к ним. И данные были, хоть и частично, но восстановлены. Назывались эти программы, вроде бы, Easy Recovery, Recover4All и какая-то ещё.

И вот на днях мне принесли жёсткий диск с разделом, на который была установлена новая Windows поверх старой, и вся нужная владельцу информация была благополучно удалена.

Read full post gblog_arrow_right

Принтер Canon LBP 3200 в Ubuntu

К великому моему сожалению, принтер Canon LBP 3200 не заработал в Ubuntu 9.10 “из коробки”.

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

Мне удалось найти две адекватные ссылки:

Собственно, моя инструкция полностью написана, руководствуясь этими ссылками. К сожалению, обе они по отдельности результата не дали.

Все, что написано ниже, у меня дало положительный результат.

Read full post gblog_arrow_right

Установка LaTeX в Linux Ubuntu

Как утверждает Википедия, с 2006-го года пакет teTeX более не поддерживается, а вместо него поддерживается TeX Live. Его и ставим.

Инструкцию по установке подглядел здесь: http://linuxandfriends.com/2009/10/06/install-latex-in-ubuntu-linux/

Ставим:

sudo su
apt-get install texlive texlive-full texlive-fonts-recommended latex-beamer texlive-pictures texlive-latex-extra

texlive-full попросил достаточно много места на диске (около 700 МБ). Место у меня было, поэтому я его всё же установил, но, при необходимости, можно не устанавливать texlive-full, а установить только нужные пакеты, которые входят в texlive-full.

Read full post gblog_arrow_right

Рассказ о том, как я жесткий диск на ноуте менял

Был у меня, в общем-то, достаточный для работы жесткий диск объемом 250 ГБ, но не жилось мне спокойно, и захотелось мне поставить жесткий диск на 500 ГБ.

Сказано — сделано. Винт купил и поставил. Надо переносить систему. Переустановка ОС — это не наш путь, разумеется.

Далее будет описано, что я делал (и что не нужно было делать), а в конце — как всё-таки у меня получилось через одно место.

Итак, на моем старом винте было три раздела: ntfs, ext4 и swap.

Read full post gblog_arrow_right

Разборка HP ProBook 4710s: доступ к памяти

Решил я обновить свой ноутбук — увеличить память, да выяснилось, что на HP ProBook 4710s доступ к внутренностям организован не так, как у большинства других моделей, а совершенно через другое место. Поэтому выкладываю здесь инструкцию по открытию этого ноутбука.

Шаг 1:

Снимаем аккумулятор и откручиваем 5 болтов под ним:

Снятие аккумулятора и болтов

Болты под аккумулятором

Шаг 2:

Затем откручиваем 2 болта на задней части ноутбука:

Два болта на задней части

Read full post gblog_arrow_right