Pull to refresh
37
0
SkyCat @SkyCat

ИТ

Send message

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

Reading time2 min
Views27K
Это еще одна попытка реализовать стабильный, полноценный шаблонизатор офисных документов, основанных на XML, пользуясь стандартными для PHP средствами DOMDocument и XSL.

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

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

Reading time8 min
Views19K

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

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

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

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

Reading time8 min
Views169K

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


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



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

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

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

image
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments5

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

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

Подробности и внутренности...
Total votes 115: ↑111 and ↓4+107
Comments142

post from somewhere -> vkontakte

Reading time1 min
Views2K
Многострадальная синхронизация во вконтакте не давала мне спать ночами.
У меня есть несколько сайтов, RSS которых мне бы хотелось транслировать в тематические группы вконтакте.

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

Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments21

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

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

Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments22

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

Reading time7 min
Views29K
   Я люблю музыку почти в любом ее проявлении – начиная от множества музыкальных жанров, заканчивая желанием выбить какую-нибудь мелодию тапком на полу. И часто для меня не столько важен «теплый ламповый звук», сколько сама музыка (ну или слова в песнях) – потому без плеера я, пожалуй, бываю только дома.



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

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

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

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

Reading time1 min
Views2.7K
YouTube Direct — инструмент, с помощью которого с вашего сайта посетители смогут добавлять свои материалы в YouTube.


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

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

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

Reading time16 min
Views158K
Предисловие к FAQ.

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

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

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

Reading time12 min
Views5.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

Поехали...
Total votes 40: ↑25 and ↓15+10
Comments28

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

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


Обо всём этом прошу под кат.
Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments12

Google Fusion Tables API

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

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



Официальный пост в блоге Google
Google Fusion Tables API
Google Fusion Tables
Total votes 53: ↑46 and ↓7+39
Comments27

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

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

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

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

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

Читать дальше →
Total votes 22: ↑16 and ↓6+10
Comments21

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

Reading time2 min
Views1.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/


Прошу Ваши идеи и комментарии в тред!
Total votes 34: ↑30 and ↓4+26
Comments29

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

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

смотрим...
Total votes 23: ↑20 and ↓3+17
Comments18

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

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

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

Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments13

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

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

Information

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