Как стать автором
Обновить
30
0
Андрей @napster

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

Отправить сообщение

Пост счастья — Jabber на своём сервере за 10 минут

Время на прочтение2 мин
Количество просмотров11K
Публикую в персональный блог — потому что тут не будет подробного описания, инструкций и прочего.

Это просто пост счастья человека, открывшего для себя Jabber с другой стороны.

Суть в том, что мне понадобился свой Jabber-сервер на Debian с https-соединением для параноидального общения из офиса по ICQ.

С прошлых экспериментов помнил, что Jabber-сервер — штука сложная, хитрая и не всегда податливая без чтения мануалов.

Но в этот раз я решил начать не с eJabberd и прочего, а с imageOpenFire.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии10

HFS — маленький и удобный HTTP-файл сервер

Время на прочтение1 мин
Количество просмотров15K
Пробежался поиском по хабру и удивился тому, что об этой программе никто не упоминал, хотя про тот же Dropbox неоднократно писали.

Итак, встречайте — HFS. Программа, которая позволяет в два клика поднять собственный HTTP-файл сервер, расшарить файлы и выдать ссылку на скачку другу.

Чем хорош такой подход? Тем, что не надо ничего никуда заливать — файлы скачиваются прямо с вас. Тем же он, правда, и плох — работать будет только в случае, если компьютер включен и имеет доступ к сети (желательно, не через GPRS :)

Существует возможность настройки прав доступа как по IP, так и через учетные записи. Плюс — возможность заливки файлов (аналогично — файлы заливаются сразу к вам на компьютер).

Веб-интерфейс достаточно приятен глазу. Программа работает как под винду, так и под линукс через Wine.

Из минусов — вроде как требуется внешний IP (статика или динамика), однако я не проверял возможность работы без него. А так — штука дико удобная, особенно когда расшаренная папка содержит файлы, которые постоянно изменяются. Хотя, фанаты Dropbox не оценят.
Всего голосов 15: ↑7 и ↓8-1
Комментарии16

Геотаргетинг в Яндекс и Google

Время на прочтение2 мин
Количество просмотров1.3K
Два самых крупных игрока поискового рынка в России практически одновременно ввели геотаргетинг.

Google подошел к вопросу крайне аккуратно, что позволило не оттолкнуть пользователей:

1) Он ввел подсказки характерные только для конкретного региона.
Читать дальше →
Всего голосов 57: ↑48 и ↓9+39
Комментарии39

Транзакции InnoDB

Время на прочтение4 мин
Количество просмотров4.4K
InnoDB это транзакционный, реляционный движок работающий на основе MySQL сервера. Начиная с 2001 года он поставляется в стандартной сборке, а с версии 5.1 может устанавливаться в качестве плагина (без необходимости перекомпилировать ядро сервера). Синтаксис очень простой.
START TRANSACTION;
...
COMMIT; -- или же ROLLBACK; если что-то пошло в логике не так

Про определение


Определение транзакционности и реляционности значат во-первых значат полноценную связанность таблиц через FK и как следствие — целостность данных при удалении рядов. С MyIsam как известно приходилось вручную удалять связанные данные в нескольких таблицах, в InnoDB — каскадное удаление одним запросом. Во-вторых поскольку для БД немыслимы параллельные версии данных как в SVN и некому эти версии объединять в одну ветку, но при этом необходима параллельная работа нескольких процессов (пользователей) с одними данными, то в качестве решения становится транзакции.
Очередь из запросов-автомобилей теперь пополняется атомарной транзакцией-автобусом. Естественно это плохо, поскольку чем длиней и дольше выполняется транзакция тем больше параллельных процессов будут ждать его. Для ускорения работы создаются остановки — типы и уровни блокировки данных. Для InnoDB по умолчанию это блокирование на уровне строки (по PK), тогда как в MyIsam атомарная операция блокирует всю таблицу.

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии2

МТС, Мегафон и Билайн запускают общий мессенжер

Время на прочтение1 мин
Количество просмотров581
Большая тройка российских операторов сотовой связи запускает совместный сервис IM под названием «Чат».



Оставив за кормой сам факт удивительного взаимодействия прямых конкурентов, сосредоточимся на самом сервисе.
Читать дальше →
Всего голосов 24: ↑18 и ↓6+12
Комментарии36

Формирование Excel-документов средствами PHP

Время на прочтение4 мин
Количество просмотров3.3K
Возможность создания Excel-документов в общих чертах уже была описана на Хабре, но полной информации из этих статей мне получить не удалось. Пришлось заняться собственными изысканиями, результатами которых я хотел бы с Вами поделиться. Данная статья будет полезна и новичкам, и профессионалам, столкнувшимся с проблемой динамического формирования Excel-документов.
Это всего лишь первая часть серии статей, которыми хотелось бы поделиться с общественностью. В последующих статьях будут более подробно рассмотрены некоторые способы и нюансы выгрузки xls-файлов.

Ну, поехали...
Всего голосов 18: ↑16 и ↓2+14
Комментарии24

Уведомление о новых письмах в jabber

Время на прочтение2 мин
Количество просмотров647
В gtalk есть приятная опция оповещения пользователся о новых письмах, но поскольку я пользуюсь другим jabber-сервером, подумалось, что было бы удобно замутить такую фичу и себе. Может я конечно плохо смотрел, и в gmail есть такая возможность, но я её не нашел и написал небольшой скриптик, который повесил в cron. И теперь он радостно меня оповещает о новых письмах каждые 15 минут, если конечно таковые письма имеются.

Для работы с jabber использовал библиотеку XMPPHP.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии9

Склеивание PDF-документов средствами PHP

Время на прочтение2 мин
Количество просмотров4.2K
Заказчиком была поставлена задача — вконец PDF-документа, который создается с помощью класса TCPDF, нужно присоединить сканы тоже в PDF-формате.

Поиск решения постоянно приводил к необходимости использования какой-нибудь утилитки (например Pdftk), которую нужно было устанавливать со всеми вытекающими. А т.к. хостинг был обычный, то установка дополнительного софта довольно проблематична. В общем, было необходимо решение, которое в идеале просто расширяет функционал TCPDF (FPDF), ну или, в любом случае, полностью реализовано на PHP.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии1

В Google App Engine убраны некоторые ограничения

Время на прочтение1 мин
Количество просмотров408
Google сняла некоторые ограничения в своем cloud-хостинге:
  1. Убрано ограничение на тяжелые запросы (было — не больше 2-х в минуту).
  2. Лимит времени генерации ответа увеличен с 10 до 30 секунд.
  3. Увеличен максимальный размер запроса/ответа с 1 до 10 Мбайт. Также до 10 Мбайт увеличен лимит кода и статических файлов, которые можно выгрузить на хостинг.

Источник: Google App Engine Blog
Всего голосов 7: ↑6 и ↓1+5
Комментарии1

Google, Yahoo и Microsoft начали использование Canonical URL

Время на прочтение1 мин
Количество просмотров474
Google, Yahoo и Microsoft объединили усилия в направлении избавления своего поискового индекса от дублируемого контента.

Для справки: дублируемый контент — страницы с одинаковым содержанием доступные по разным URL-адресам.

Так вот, Google, Yahoo и Live Search начали поддержку «нового» HTML-тега:
<link rel="canonical" href="http://example.com/products" />

При добавлении данного тега разные URL-адреса с одним и тем же содержимым, к примеру:
http://example.com/products?trackingid=feed
http://example.com/products?sessionid=hgjkeor2
http://example.com/products?printable=yes&trackingid=footer

будут считаться второстепенными и их поисковой вес, а так же они сами не будут учитываться при ранжировании основной (указанное в теге) страницы в выдачи поисковых систем.

Тем самым они предлагают webmaster'ам добавлять данный тег в html-код в случае если архитектура их web-сайтов порождает возможность доступа к одной и той же странице по разным URL-адресам. И помогают им избежать наложения санкций из-за дублированного содержания.

Информация об этом теге от самих поисковиков: Google Webmaster Blog, Yahoo Search Blog, Live Search Blog

P.s. очень вольный перевод и мой первый пост на «сами знаете где» =)
Всего голосов 33: ↑32 и ↓1+31
Комментарии6

AJAX + XML + XSLT или новый взгяд на AJAX

Время на прочтение5 мин
Количество просмотров792
Года полтора назад встала проблема в динамическом генерировании HTML кода. Отстраивать HTML посредством DOM слишком громоздко и код получается большой, подгружать сгенерированный HTML на сервере, не очень красивое и харкодное решение.
Было принято решение искать альтернативный способ генерации HTML.
И оно было найдено: AJAX + XML + XSLT.
НА стороне сервера лежит XSLT шаблон, скрипт который генерирует XML (или XML файл). НА стороне клиента посредством AJAX загружается XML и XSLT и преобразуется в HTML
Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии11

Цели и Средства

Время на прочтение4 мин
Количество просмотров602
Недавние обсуждения про файловый менеджер, про ожидания от бренда, про продажу софта «бывшего в употреблении», а так же про многочисленные стартапы, в которых во главе угла стоит ее величество Монетизация, натолкнуло на размышления.

Каждая вещь в любой момент может быть или целью, или средством. Соответственно, выбор, чем считать ту или иную вещь, у нас есть в любой момент.

Продолжение топика — Идеальная «Web-разработка» или путь от идеи до готового проекта

Так что же цель, а что средство?
Всего голосов 58: ↑50 и ↓8+42
Комментарии60

Разгони свой сайт. Электронные версии

Время на прочтение1 мин
Количество просмотров699
Сегодня закончилась эпопея с выкладыванием электронных версий книги «Разгони свой сайт», их доступно аж три пять шесть:
  1. PDF-версия, аналогичная ушедшему в типографию макету книги (даже немного лучше за счет исправленных опечаток). Идеально подходит для чтения на ПК или самиздата.
  2. FB2-версия (формат Fiction Book). Просили владельцы наладонников для чтения — вроде форматом остались довольны.
  3. CHM-версия. Незаменима в качестве руководства, которое всегда под рукой. Очень удобно искать нужный материал.
  4. HTML-версия. Уж этот-то формат сложно испортить :) Спасибо laik216.
  5. Онлайн-версия. Просто копия HTML-версии, расположенная на сервере.
  6. WOL-версия. Для владельцев lBook V8, спасибо msa
Все версии (последней редакции — 1.4) выложены на сайте книги. Здесь прямых ссылок не будет: мало ли что поменяется, чтобы в нескольких местах не править.

Если кто-то переформатирует текущие форматы в какой-либо другой и захочет поделиться этим с общественностью — напишите, пожалуйста, в комментариях. Обязательно добавлю эту версию на сайт.

Если кто-то возьмется перегнать CHM в человеческие (=красивые внешне и валидные внутри) HTML-страницы — буду крайне признателен.

P.S. судя по логам, книгу скачали уже более 3000 4000 человек

P.P.S. Судя по отзывам, CHM (и не только) кривоват. Если кто-нибудь знает, как его переконвертировать в нормальный файл — напишите, пожалуйста, в комментариях. На сайте доступны и прошлые версии PDF, которые отличаются некоторым количеством опечаток — нужно 1.4 заменить на 1.2.

P.P.P.S. PDF-версия перевыложена (1.4.1)
Всего голосов 59: ↑54 и ↓5+49
Комментарии102

Паттерны проектирования для человеков.

Время на прочтение4 мин
Количество просмотров30K
Была задача в максимально короткие сроки (зачет нужно было сдавать) человеку далекому от программирования объяснить паттерны на самом простом уровне.
В результате баланса простоты изъяснения и адекватности, образовалась эта шпаргалка.
Просьба оценить эту самую адекватность и простоту.
Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии23

Набор PHP-функции для создания user-friendly интерфейса на русском языке

Время на прочтение7 мин
Количество просмотров1.4K
Почти в каждом своем проекте я использую набор функций, которые делают сайт чуточку приятнее для глаза и удобнее для восприятия. Эти функции я частично позаимствовал в разных местах и частично написал сам. Наверняка, многие используют подобные, но я решил все же поделиться — возможно, кому-то они будут полезны.

Они умеют склонять существительные по числовому признаку, выводить дату с нормальными русскими названиями месяцев и выводить дату в удобочитаемом человекопонятном виде (вчера, позавчера, 2 дня 3 часа и 2 минуты назад, через 1 год и 2 месяца и т.д.).

Использовать их можно примерно так:
<acrnonym title="<?php print r_date($timestamp'j M Y в H:i'false); ?>"><?php print human_date($timestamp2false);?></acronym>
<acrnonym title="<?php print r_date($timestamp'j M Y в H:i'); ?>"><?php print human_date($timestamp);?></acronym>


Это вернет примерно такой результат:
<acrnonym title="2 января 2009 в 23:39">1 день назад</acronym>
<acrnonym title="2 января в 23:39">Вчера</acronym>

(Хабр обрезает тег <acronym>)

И вот так:
<?php
$count 
10;
printf('%d %s'$countdeclension($count, array('комментарий''комментария''комментариев')));
?>


Это вернет:
10 комментариев

Читать дальше →
Всего голосов 59: ↑49 и ↓10+39
Комментарии26

Создаем архив на «лету» с помощью класса «Create ZIP File»

Время на прочтение1 мин
Количество просмотров1.7K
image
Class Create ZIP File
Очень интересный класс который формирует полноценную работу с ZIP архивами
Читать дальше →
Всего голосов 37: ↑17 и ↓20-3
Комментарии17

Структура технического задания

Время на прочтение2 мин
Количество просмотров6.7K
Вопросы, которыми я задавался при написании технического задания на разработку сайта, как его сделать максимально простым и понятным для заказчика, но при этом ограничить и максимально документировать возможности будущего продукта (сайта). Пришлось просмотреть множество различных примеров, способов подачи ТЗ, просмотрел — теперь делюсь своими идеями и домыслами.

Читать дальше →
Всего голосов 15: ↑11 и ↓4+7
Комментарии10

Попытка реализации многопоточности в PHP

Время на прочтение7 мин
Количество просмотров666
Задача была в след: Нужно было получить координаты для множества городов и регионов.
Т.к. координат было куча возникло решение в многопоточности.

Плюсы: одновременное выполнение нескольких запросов к серверу.
Минусы: если запускать свой скрипт, то надо указывать url к скрипту, т.е. на локале не всегда будет работать.
Читать дальше →
Всего голосов 11: ↑5 и ↓6-1
Комментарии23

Потоковая обработка видео при помощи lighttpd/nginx, Mplayer(Mencoder), Ruby, Flvtool2

Время на прочтение3 мин
Количество просмотров3.8K
Как только на сайте или портале появляется необходимость в видео-сервисе, сразу же перед разработчиками встает вопрос о конвертации загружаемых пользователями ресурса видео-файлов в понятный браузеру формат флеш-видео.

Исследование данной проблемы нашло отражение в следующей статье.

Этапы внедрения потокового видео:
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии27

Обзор технологии Amazon Elastic Compute Cloud (Beta)

Время на прочтение3 мин
Количество просмотров1.9K

Немного теории.


Amazon представил новый сервис который в данный момент находится в стадии тестирования.
Это ни что иное как своего рода хостинг 2.0.
Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Днепропетровская обл., Украина
Дата рождения
Зарегистрирован
Активность