Как стать автором
Обновить
37
0
SkyCat @SkyCat

ИТ

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

PHPStamp — честная генерация DOCX документов из шаблона

Время на прочтение2 мин
Количество просмотров27K
Это еще одна попытка реализовать стабильный, полноценный шаблонизатор офисных документов, основанных на XML, пользуясь стандартными для PHP средствами DOMDocument и XSL.

Задача состояла именно в генерации шаблона для многократного использования, который не придется править вручную или прибегать к сторонним программам для его доработки.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии15

Как выбрать алгоритм для адресного фильтра

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

Довольно часто на Хабре появляются статьи с новыми алгоритмами автоматического разбора адресов, записанных одной строкой. Кроме этого, услуги по обработке адресов предоставляют различные it-компании. В статье мы расскажем как использовать свою адресную базу для выбора алгоритма автоматического разбора адресов, и на что стоит обратить внимание при тестировании и разработке алгоритмов адресных фильтров.

Эта статья для всех, кто хранит данные клиентов и хочет решить одну из следующих задач:
  1. убедиться, что адрес существует, чтобы не отправить посылку или письмо в никуда;
  2. разбить адрес на компоненты, чтобы понять, где идут лучше продажи;
  3. дополнить адрес недостающей информацией, чтобы оптимизировать план работы курьеров;
  4. стандартизовать адреса, чтобы найти дублирующие записи одного и того же клиента;
  5. актуализировать и привести адреса к формату справочника, чтобы пройти проверки регуляторов.

Задача автоматического разбора почтовых адресов кажется довольно простой на первый взгляд — бери да сопоставляй адресному справочнику (например, ФИАСу) слова из входной строки. Но все, кто за неё берутся, утопают в большом количестве особенностей адресов…
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии19

Автоматическое подключение сетевых МФУ с возможностью сканирования [Часть 1]

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

HP LaserJet 1522, 1536, 3052/3055, 300/400 Color...


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



Разбором драйвера я занимался уже около полутора лет назад, в то время интернет на эту тему был совершенно пуст. Сейчас быстро погуглил по теперь уже известным мне ключевым словам утилит и нашел немного разрозненной информации. Несмотря на это, я решил. что собранная в одно место информация все равно не помешает, при том, что в этом посте она более полная.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии35

Query Builder библиотека для работы с SphinxQL

Время на прочтение2 мин
Количество просмотров12K
Одна из самых важных задач стоящих при разработке сайта, это реализация полнотекстового поиска. Один из популярных и простых вариантов реализации, это использование Sphinx. На хабре уже есть посвящённые ему статьи, но не заслуженно не упомянута библиотека Query Builder. Это я и постараюсь исправить.

image
Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии5

Кратко об идеальном 7-и портовом USB 3.0 хабе ORICO

Время на прочтение2 мин
Количество просмотров227K
Давно ко мне не попадало железо, настолько соответствующее моим представлениям об идеале, что об этом хотелось написать на хабр. Речь пойдет о 7-и портовом USB 3.0 хабе ORICO. Чуть ранее я писал, что получается когда китайцы по привычке делают копии — сегодня мы увидим, что может получится, когда китайцы делают оригинальный продукт. И то, как хорошо все получилось — удивляет и немного пугает (в том плане, что бизнес-модель «разрабатываем на западе — делаем в Китае» может подойти к концу). Забегая вперед, фотография:

Подробности и внутренности...
Всего голосов 115: ↑111 и ↓4+107
Комментарии142

post from somewhere -> vkontakte

Время на прочтение1 мин
Количество просмотров2K
Многострадальная синхронизация во вконтакте не давала мне спать ночами.
У меня есть несколько сайтов, RSS которых мне бы хотелось транслировать в тематические группы вконтакте.

Гуглежка вывела меня на сайт twitterfeed.com, который умеет транслировать мой rss в твиттер.
Но не во вконтакте.

Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии21

Простая автоматизация резервного копирования под Windows

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

Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии22

Чертовски хороший плеер

Время на прочтение7 мин
Количество просмотров29K
   Я люблю музыку почти в любом ее проявлении – начиная от множества музыкальных жанров, заканчивая желанием выбить какую-нибудь мелодию тапком на полу. И часто для меня не столько важен «теплый ламповый звук», сколько сама музыка (ну или слова в песнях) – потому без плеера я, пожалуй, бываю только дома.



   Долгое время плеер Cowon S9 был одним из моих любимых гаджетов — устраивал практически всем. Помимо эстетически приятного внешнего вида, у него было большое время автономной работы (за 50 часов), большой цветной экран, удобнейшее управление и бескомпромиссный звук, который является одним из главных козырей устройств от Cowon.
Читать дальше →
Всего голосов 114: ↑78 и ↓36+42
Комментарии150

Устраняем шум на встроенных звуковых картах

Время на прочтение1 мин
Количество просмотров390K
Не секрет что многие жалуются на то что слышат как работает их комп при использовании встроенного в материнку звука. Слышно как перемещается мышь, как прокручиваются страницы, как ползают черви по винчестеру… :) Отключение различных входов звуковой карты (LineIn, Microphone, CD In) не помогает или помогает но не полностью. Недавно я столкнулся с этой проблемой аж на 2-х компьютерах за которыми слушаю музыку. Решение для XP и Windows 7 под катом.
Читать дальше →
Всего голосов 106: ↑73 и ↓33+40
Комментарии117

Загрузка в YouTube с вашего сайта

Время на прочтение1 мин
Количество просмотров2.7K
YouTube Direct — инструмент, с помощью которого с вашего сайта посетители смогут добавлять свои материалы в YouTube.


Что хорошего может предложить этот сервис:
  • все бесплатно — работа с open-source YouTube API
  • возможность свободной настройки интерфейса
  • пользователи загружают видео на YouTube, не уходя с вашего сайта
  • можно загружать не только видео, но и фото материалы
  • вы модерируете то, что загружается с вашего сайта (без этой опции сервис, наверное, и не смог бы существовать)
  • в YouTube рядом с видео будет ссылка на сайт, с которого оно было загружено

Платформа изначально была ориентирована на взаимодействие СМИ с репортерами-любителями, но, думаю, есть еще много интересных способов ее использования.
Подробнее можно прочитать на странице проекта.
Всего голосов 71: ↑66 и ↓5+61
Комментарии22

FAQ по программированию под Android от новичка, и для новичков

Время на прочтение16 мин
Количество просмотров158K
Предисловие к FAQ.

Программирование является моим хобби уже давно (правда на других языках и платформах), но до андроида руки дотянулись совсем недавно. Прошло несколько этапов, прежде чем я добрался до написания программ.
Сначала была пара месяцев посвященных Java, на сайте с «Сгибателем».
После, долгие попытки подружится с Eclipse, закончившиеся побегом на Android Studio.
На данный момент выпущено 7 программ и две находятся в разработке.
Данная подборка возникла как попытка структурирования и оптимизации полученной в процессе информации.
Заранее извиняюсь за возможно некорректную терминологию – так как практикую обучение через создание, и в теоретической части есть пробелы.

Надеюсь, что приведенные примеры окажутся полезными.
Читать дальше →
Всего голосов 114: ↑98 и ↓16+82
Комментарии23

Centos5.5 Nginx 0.8.33 + PHP5.3.1(fpm) + MySQL5.5.0(phpmyadmin) — полная настройка для начинающих — 1 часть

Время на прочтение12 мин
Количество просмотров5.4K
Centos5.5 Nginx 0.8.33 + PHP5.3.1(fpm) + MySQL5.5.0(phpmyadmin)

Недавно мой знакомый купил ВПС, и конечно же ему захотелось развернуть полноценный сервер, плюс учитывая начальные ресурсы: 768Мб памяти и 2 ядра выделеных на его контейнер, сервер должен быть не прожорливым и быстрым, на нем будет крутиться blog. Решил поставить nginx, и php+php-fpm. Думаю nginx описывать не буду, как и php+php-fpm обзоры можно найти на хабре. Вот только вся соль проблемы в том, что он хотел поставить все правильно, как в учебнике. Заглянул по форумам, перегуглил весь интернет, но так и не нашел правильного пацанского мануала. Везде только основные моменты настроек и установки сервера. Так не пойдет, сказал он и пришел ко мне. Одна голова хорошо, но пиво в двоем пить лучше!
Стали составлять план, что нам нужно для работы.

! Данный пост предназначен только для начинающих, для тех кто не имеет опыта в установке и настройке сервера. Вам будет понятно на примере что и где и как установить, и потом углубившись в мануалы и вооружившись напильником, сделать все конкретно под ваши задачи.
Как минимум для начала работы нужно:
Putty — the.earth.li/~sgtatham/putty/latest/x86/putty.exe — SSH client

Centos 5.5 — последяя будет уже стоять на серваке.
Nginx 0.8.33 — можно выбрать и старший релиз или стабильный.
PHP 5.3.1 — думаю проблем с ней не будет.
MySQL 5.5.0 — база!
php-fpm патч
suhosin-patch
libevent-1.4.13-stable

и далее все остальные пакеты которые понадобятся для компиляции и работы сервера:
gcc gcc-c++ libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libmcrypt libmcrypt-devel pcre-devel

Поехали...
Всего голосов 40: ↑25 и ↓15+10
Комментарии28

Open Atrium — collaborating по-друпаловски

Время на прочтение2 мин
Количество просмотров2K
Изучая рынок систем управления проектами стало любопытно, а есть ли какой-то подобный модуль и у всеми нами любимой Drupal. Оказалось что есть, и не просто модуль а готовая полноценная сборка, правда пока что альфа.
Open Atrium в себя вмещает:
  • Atrium Blog — позволяет вам общаться со своей командой и остальными пользователями.
  • Atrium Documents — управляйте статьями и аттачами вместе со своей групой
  • Atrium Calendar — делитесь своими событиями и встречами с группой
  • Atrium Case Tracker — система тикетов
  • Atrium Dashboard
  • Atrium Intranet
  • Atrium Profile
  • Atrium Shoutbox — интратвиттер
  • Spaces blog


Обо всём этом прошу под кат.
Читать дальше →
Всего голосов 14: ↑10 и ↓4+6
Комментарии12

Google Fusion Tables API

Время на прочтение1 мин
Количество просмотров3.7K
Google как всегда показал, что у него ещё много удивительных инструментов и сервисов. И самое главное — он постоянно делятся ими с людьми. На этот раз, для нас, он сделал API для такого сервиса, как Google Fusion Tables. Теперь вы можете выгружать данные из своих БД и визуализировать их в этом замечательном инструменте.

Вот небольшой ролик, про возможности данного сервиса:



Официальный пост в блоге Google
Google Fusion Tables API
Google Fusion Tables
Всего голосов 53: ↑46 и ↓7+39
Комментарии27

Автоматизация прокси-сервера SQUID

Время на прочтение4 мин
Количество просмотров5.8K
Данный пост не претендует на новизну, я привожу пример из реальной жизни. Сам не являюсь знатоком Bash & PHP языков. Скорее всего, можно еще более упростить и улучшить данную инструкцию.
По работе понадобилось автоматизировать процесс обновления баз и упростить изменение файлов запретов для SquidGuard. В сжатые сроки и в силу своих знаний я реализовал данную задачу таким образом…
Интересно? Тогда под кат.
Всего голосов 12: ↑7 и ↓5+2
Комментарии3

Собственный youtube

Время на прочтение3 мин
Количество просмотров3.1K
В Сети развелось довольно много видеохостингов типа youtube. Вот и одному провинциальному провайдеру захотелось у себя сделать такую вещь. С какой-то стороны — правильно, ибо почти у всех провайдеров в небольших городах толстые внутренние каналы (10-100-1000 мегабит) и тонкие внешние (5-10-20 мегабит), так что надо стремиться к тому, чтобы внутри было как можно больше популярных ресурсов — хотя бы для оптимизации загрузки внешнего канала, если не для привлечения клиентов.

Задача поставлена, сумма оговорена — надо делать. Вариант «писать свое» отметается сразу — долго, нудно, да и программистом я себя не считаю. Хотя, если хочется, то никто не мешает: проигрывание клипов — JW Player, загрузка файлов — на любимом языке реализуется без вопросов, перекодирование видео — зависит от выбранной платформы (mencoder есть где угодно). Но я не люблю изобретать велосипеды, а предпочитаю использовать готовые решения, так что пошел в гугл. Поиск принес несколько вариантов, как бесплатных, так и платных (от 10 евро и выше), но для начала решил попробовать самый популярный из бесплатных вариантов — phpmotion.

Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии21

Автоматический отстрел граберов или как избежать автоматического сграбления сайта

Время на прочтение2 мин
Количество просмотров1.1K
Я администратор доски объявлений и видимо усилия по поддержанию уникального контента (TBD – тема отдельного типика) не проходят зря т.к. я заметил нехорошую тенденцию к сграблению объявлений через RSS ленту, разбор html-страниц сайта т.е. контент серым личностям нравиться.

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

Первый и действенный метод борьбы – посмотреть в ping IP сайта, ворующего контент и заблокировать его, что помогало только первое время. Но иногда мне просто нехватало времени на выявление «воришек», да и некоторые сайты стали добавлять использование прокси-серверов.

Как настоящий программист я принялся искать автоматизированное решение и быстро нашел его. Достаточно вспомнить, что одним из важнейших различий вэб-сервера и компьютера пользователя в сети Интернет является наличие у сервера открытых портов, обслуживаемых HTTP/SMTP/POP-серверами. Т.е. если недопускать копирование контента с IP имеющих открытые наружу порты, то это будет хорошее препятствие.

Чтобы начать выявлять серых личностей и их сайты оказалось достаточно такого PHP-кода:

//$ip – это может быть $_SERVER["REMOTE_ADDR"] и $_SERVER["HTTP_X_FORWARDED_FOR"]
$fp = @fsockopen($ip, 80, $errno, $errstr, 1);
if( $fp !== FALSE )
{
//тут логируем, что данный IP имеет открытый HTTP-порт т.е. вероятно это сервер
}


Следует обратить внимание, что поле HTTP_X_FORWARDED_FOR устанавлиается в случае, если пользователь ходит через обычный прокси. Но это поле может быть и подделкой, поэтому нужно проверять IP как указанное в HTTP_X_FORWARDED_FOR, так и в REMOTE_ADDR.

Поскольку на доске объявлений происходит установка сессии для каждого посетителя, то проверка выполнялась только на 2-м хите для каждого уникального IP.

Пробный запуск скрипта на 1 сутки показал высокую эффективность – 4 сайта-грабителя были выявлены и обезврежены. Отловлено IP с открытым 80-м портов – более 2000! Поэтому для анализа IP использовался WHOIS сервис любезно предоставленный nic.ru и еще один скрипт. Ну что-же, у них защиты от автоматических сканеров нет и хорошо ;)

Теперь все, кто находятся в моем бан-листе получают текст объявления вроде «Данное объявление было незаконно скопировано с сайта xxxx, что является нарушением авторских и смежных прав. Пожалуйста, не пользуйтесь сайтами ворующими контент т.к. такие сайты могут использоваться для распространения скрытых вредоносных программ, а также могут собирать конфиденциальную информацию о вас.» ;)

Однако не стоит просто блокировать все IP имеюшие открытые наружу порты. Оказывается существуют домашние сети, где по 80-му порту открывается статистика прокси-сервиса (да, каждому гостю!), где детально перечислен список любимых сайтов этой аудитории с количеством хитов/Мб и кто сколько тянул…

Дополнительная информация:
  1. Для анализа хождений через прокси-сервера следует анализировать порты – 8080, 1080, 3126.
  2. Поиск дубликатов (имею премиум, личное мнение – сервис очень часто не прав) — http://www.copyscape.com/


Прошу Ваши идеи и комментарии в тред!
Всего голосов 34: ↑30 и ↓4+26
Комментарии29

Заполнение пустого пространства плавающими блоками. Разбор 2-ух примеров реализации. От Яндекса и от студии Лебедева.

Время на прочтение1 мин
Количество просмотров737
Недавно столкнулся с проблемой реализации плавающих блоков в одном интернет магазине. Суть в том, что товары выводятся в виде блоков. По задумке количество блоков по горизонтали должно меняться в зависимости от разрешения экрана. Использовать float в тупую не удалось из-за не фиксированой высоты блоков.
Немного погуглив я ничего не нашел. Зато вспомнил, что видел подобное на Яндексе и в магазине студии Лебедева.
Сообственно я выкладываю сюда для ознакомления то, что вы и сами можете найти в указанных источниках. Все, что я сделал это почистил от лишнего кода. Если-бы я нашел подобный пост раньше это сэкономило-бы мне время.

смотрим...
Всего голосов 23: ↑20 и ↓3+17
Комментарии18

Опыт настройки nginx на Debian

Время на прочтение5 мин
Количество просмотров4.8K
Вчерашний вечер я посвятил возне с http-сервером nginx в качестве фронтэнда к apache. Как известно, nginx — легковесный надежный HTTP-сервер, написанный Игорем Сысоевым (сотрудником Rambler). Он отлично подходит для выдачи статических страниц, особенно под нагрузкой. Обычно настраивается связка nginx+apache, в которой nginx обслуживает все входящие на сервер запросы, статические файлы отдает своими силами, а запросы на динамическое содержимое проксирует на apache.

Так вот, по настройке работы данной пары в связке в Интернете есть море статей, в том числе на русском, и об этом писать смысла нет. А расскажу я вам лучше о тех нюансах, с которыми вчера столкнулся при настройке nginx на работу в нужном ладе, и заодно покажу и прокомментирую свою конфигурацию этого сервера.

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

Интернет-магазин. Начало работы

Время на прочтение8 мин
Количество просмотров19K
Привет, хабранарод!
Писал я давно когда-то про osCommerce небольшую статейку, меня даже просили выложить свою сборку. Если кому она до сих пор нужна — у меня осталась, могу куда-нить положить. Но, наевшись с ОСК, решили написать свою систему. При помощи CakePHP. Об этом хорошо поведал товарищ neudor, с которым на пару мы это дело разрабатывали. В данный момент он несколько отошел от работы с магазином, поэтому я выхватываю у него эстафетную палочку вести цикл статей, посвещенный разработке ПО для интернет-магазина, а также непосредственно организации самой работы, службы доставки, регистрации, налогах. В общем полный FAQ «от и до» — что ждет начинающего предпринимателя, если он решится открыть полностью легальный бизнес в России, с выкладкой затрат в денежном и временном эквиваленте. Итак, сегодня я расскажу о стороне вопроса, не касающейся технической реализации…
Читать дальше →
Всего голосов 66: ↑64 и ↓2+62
Комментарии61

Информация

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