Search
Write a publication
Pull to refresh
94
0
Александр Гладыш @agladysh

User

Send message

Debian пакет с собственными скриптами: «Сделай сам»

Reading time6 min
Views718
В продолжение темы пользователя dreadatour, написавшего набор скриптов для заливки скриншотов на сервис clip2net, я решил показать, как можно собрать DEB пакет с собственными скриптами. Сам уже давно использую эту практику, удобно, если надо поделиться с кем-то или же взять с собой «к соседу» набор собственных утилит и не мучаться с зависимостями, вспоминая, что же ты там используешь, чтобы оно заработало.

Я не очень люблю dpkg-buildpackage, так как придется возиться с MakeFile'ами, а в данном случае оно все просто не нужно, скрипты не компилируются, а просто должны оказаться на своих местах. Поэтому собирать будем «совсем руками». Заодно покажу что же такое DEB пакет вообще и расскажу о некоторых «костылях», которые с ним можно иногда сотворить.

Итак, приступим! Нам понадобятся:
date, tar, gunzip, vi (nano, ee, kate, gedit), ar

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

QQ: регистрируемся и устанавливаем секретные вопросы

Reading time2 min
Views111K

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

Итак, начнем.
Читать дальше →

Установка PhotoShop CS4 под Ubuntu 9.04 Jaunty

Reading time4 min
Views5.3K
Уважаемые коллеги, позвольте предложить вам мой первый пост на хабре — перевод публикации по установке Adobe PhotoShop CS4 под Ubuntu 9.04 Jaunty.

Немалое количество пользователей используют Adobe PhotoShop, и, похоже, CS4 работает (под Ubuntu — прим. пер.). Однако установка его нетривиальна, и требует выполнения некоторых действий: Нам потребуется скомпилировать пропатченную сборку Wine 1.1.25, после чего добавить еще связку утилит в систему.
Также не лишним будет напомнить, что вам потребуется легальная (либо триальная :) — прим. пер.) версия Adobe PhotoShop CS4.
Эта инструкция предназначена только для Ubuntu Jaunty (она может сработать и для других сборок, но я в этом сомневаюсь)
Читать дальше →

nginx, ещё раз про кэширование

Reading time3 min
Views14K
Иногда скорость роста проекта несколько выше чем скорость оптимизации веб-приложения или приобретение более мощного оборудования под backend.

Наиболее простая схема «распараллеливания» нагрузки — вынос основной нагрузки на несколько frontend. Раньше приходилось мучиться (или наслаждаться, кому как) с webdav'ами, кластерными ФС и прочими хитростями чтобы обеспечить актуальную информацию, так было до тех пор, пока не появился nginx, а точнее proxy_store и proxy_cache в нём.

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

Redis — высокопроизводительное хранилище данных

Reading time2 min
Views102K
Бодрый день, хаброчеловеки!

Что такое Redis?


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

Чем Redis отличается от существующих решений?


API для работы с Memcached (MemcacheDB) позволяет хранить массивы, но эти массивы будут сериализованы и сохранены как строки, таким образом атомарные операции над такими массивами не возможны.
Redis позволяет хранить как строки, так и массивы, к которым можно применять атомарные операции pop / push, делать выборки из таких массивов, выполнять сортировку элементов, получать объединения и пересечения массивов.

Производительность


110000 запросов SET в секунду, 81000 запросов GET в секунду на Linux-сервере начального уровня (тесты).

Высокая скорость работы Redis обеспечивается тем, что данные хранятся в оперативной памяти и сохраняются на диск либо через равные промежутки времени, либо при превышении определённого количества не сохранённых запросов. Из этого вытекает, что используя Redis, вы можете потерять результаты нескольких последних запросов, что вполне приемлимо для большинства веб-приложений, учитывая, что обращение к Redis по скорости сравнимо с обращением к оперативной памяти. Тем не менее, потерь можно избежать через избыточность — Redis поддерживает неблокирующую master-slave репликацию.

Sharding


Redis, как и Memcached, может работать как распределённое хранилище на многих физических серверах. Такой функционал реализуется в клиентских библиотеках, и к сожалению, «из коробки» этот функционал реализован пока только в Ruby API, однако это не мешает вам хешировать ключ самостоятельно и получать ID сервера, к которому с этим ключом обращаться.

API


API доступно для следующих языков:
  • Ruby
  • Python
  • PHP
  • Erlang
  • Tcl
  • Perl
  • Lua
  • Java


API для PHP доступно как в виде модуля, написанного на C, так и в виде PHP5 класса, который общается с Redis-сервером через сокеты, таким образом не требуется устанавливать модуль.
Кроме того существует PHP5 класс от отечественного разрабочика (с именем, заслуживающим доверия. Я серьёзно.) — IMemcacheClient. (Спасибо DYPA за наводку)

Перспективы развития


Разработка ведётся очень активно, комиты происходят почти каждый день, сейчас доступна версия Redis 0.900 (1.0 release candidate 1), которая очень скоро станет версией 1.0
В ближайшем будущем авторы обещают внедрить разные интересные фичи, в том числе и сжатие данных.

Лицензия и поддерживаемые платформы


Redis — написан на ANSI C и работает на большинстве POSIX-систем (Linux, MacOS X). Это бесплатное открытое ПО под BSD лицензией =)

Up: Rediska — удобный PHP-клиент для key-value базы Redis. Оф.сайт.

классический TCP сервер

Reading time4 min
Views46K
мой первый TCP Сервер был создан пару лет назад. Основой создания послужила книга Р.Стивенсона «Unix — Профессиональное программирование.» Есть несколько подходов к созданию TCP-серверов. В данном посте хочется рассказать про классический TCP сервер.

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

Верстка повторяющихся блоков

Reading time3 min
Views14K
Довольно часто при верстке сайта возникает необходимость размещать блоки одинаковой ширины, но разной высоты в контейнере с переменной шириной (читай резиновом). Плюс на этот список может применяться фильтр, который JS-ом скрывает или показывает элементы списка, при этом он не должен разрушать «строки», верстку, или образовывать дыры, поэтому решения на таблицах не катят сразу. Простейший пример — каталог товаров:


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

Gource — визуализируем историю работы над проектом

Reading time1 min
Views23K
Спешу рассказать хабрасообществу о, относительно новом, дьявольски завораживающем проекте Gource которое еще не упоминалось. Это приложение позволяет визуализировать историю изменений в системе контроля версии. Отрисовывает невероятно красиво при помощи OpenGL.


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

Добавление скриптинга в программу с помощью Lua

Reading time6 min
Views20K

Lua это мощный, быстрый, легкий, встраиваемый язык сценариев. С его помощью можно легко и быстро добавить поддержку скриптинга в вашу программу.
Это может понадобиться в тех случаях, когда вы хотите дать возможность пользователям производить самостоятельную донастройку (кастомизацию) вашей программы, когда вы не хотите перекомпилировать весь проект, при внесении каких-либо изменений в логику работы программы, либо хотите разделить работу над движком и работу над логикой между разработчиками (например, при написании игр).

В этой статье, с помощью простой программы, я хочу показать пример встраивания Lua в ваш проект.

Примеров программ, которые используют Lua достаточно много. Далеко не полный список программ, использующих Lua, можно посмотреть здесь Lua Wiki и здесь Wikipedia
Читать дальше →

GMate — набор полезных расширений для gedit

Reading time2 min
Views8.7K
image

Редактором по умолчанию в GNOME и, следовательно, Ubuntu является gedit. И в отличии от Блокнота в Windows он полезен :), однако выглядит он всё таки очень простым, даже после установки пакета gedit-plugins. Но на самом деле это довольно милый и хорошо расширяемый редактор, нужно просто добавить воды расширений.

GMate смотрит в сторону прекрасного TextMate из Mac OS X и содержит в себе подборку самых вкусных расширений, сниппетов, тем. Изначально, GMate создавался именно для Ruby-разработчиков, но пригодиться и для других разработчиков.

Если Вы любите GNOME и Ruby, то просто обязаны его поставить :).
Читать дальше →

Грустная статистика или никогда не надейтесь на фрилансеров

Reading time4 min
Views27K
Последние пять лет я активно занимаюсь фрилансом (это единственное место работы), года три из них так же веду свои проекты и, порой, выступаю в роли менеджера в проектах заказчиков. Так или иначе постоянно приходится нанимать людей «со стороны» для выполнения текущих задач. Этот пост я пишу не как фрилансер, а как работодаталь.

Присказка


Написать пост меня побудило вчерашнее осознание того, что нанятый мной флешер оказался таким же кретином, как и двое предыдущих. Задача состояла в том чтобы написать приложение для ВКонтакте на базе недавно анонсированного ЧатВдвоем. Казалось бы, простое дело, так как есть очень строгое ТЗ, детально описывающее все нюансы протокола. Тем не менее, первый нанятый флешер спустя четыре(!) недели сказал:
Нужна реальная причина? Сейчас я сбросил все проекты, т.к. переживаю кое-какой период

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

С третьим «замечательным человеком» после какой-то части работы, договорились, что после выплаты остатка, я получаю окончательные небольшие правки и, соответственно, исходники. Примерно с тех пор мне уже надоело слать письма без ответов и кричать «ау» в глубь протокола ICQ.
Далее сказка

В ядре Linux найдена серьезная уязвимость

Reading time1 min
Views2.7K
Во всех ядрах Linux'a версии 2.6.х найдена уязвимость позволяющая локальному юзеру выполнить свой код с root-привилегиями. Проблема эта вызвана из-за возможности разыменования NULL-указателя при выполнения определенных действий с пайпами.
В качестве метода защиты можно запретить маппинг страниц по нулевому адресу через установку в отличного от нуля значения переменной /proc/sys/vm/mmap_min_addr.
К счастью проблема исправлена в 2.6.32-rc6, а владельцы Red Hat Enterprise могут все исправить через обновление. Остальные линуксоиды ждите апдейта, или патч для ваших ядер

Список уязвимых ядер

Mac OS X в эмуляторе QEMU под Linux

Reading time2 min
Views27K
Здравствуйте хабровчане. Недавно понадобилось писать на Objective C под Mac OS X. Железо у меня не самое подходящее для всяких сборок, да и сидеть полностью в этой ОС религия не позволяет. Решил поставить Mac OS X в на виртуальную машину Qemu в Linux.
Читать дальше →

deb-пакет на коленке

Reading time3 min
Views12K
Задача: создать пакет для Debian для выливки демона/сайта на сервер.
Я никогда ранее не работал с deb-пакетами — так что решение может быть не оптимальным. Но оно работает и достаточно просто в использовании.
Читать дальше →
12 ...
8

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity