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

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

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

Автоматическое скачивание .torrent-файлов с трекеров

Время на прочтение2 мин
Количество просмотров5K
Мы с sofrus — большие любители сериалов. Не тех, которые «Рабыня Изаура» или «БТП», а современных типа «Побег» или «Хаус». Однажды, по пути из офиса к метро, мы общались на тему новых серий и sofrus предположил, что было бы очень здорово парсить RSS с популярных российских сериальных трекеров типа lostfilm или novafilm, и, затем, скачивать в автоматическом режиме. Мне очень приглянулась эта мысль, но я отложил ее до лучших времен.

Здесь автоматизированное решение проблемы для linux-платформ и клиента rTorrent
Всего голосов 81: ↑63 и ↓18+45
Комментарии87

Программируем Windows 7: Taskbar. Часть 9 – PeekBitmap

Время на прочтение3 мин
Количество просмотров988
Ранее я писал о возможности панели задач Windows 7 изменять preview для окна. Мы говорили о том, что в preview можно отображать как часть окна, так и собственное изображение. У Windows 7 есть такая приятная особенность, что если мы наведем курсор мыши на preview окна, то все остальные окна скроются, а выделенное окно будет отображаться. Выглядит это следующим образом.

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

Программируем Windows 7: Taskbar. Часть 10 (заключительная) – JumpLists

Время на прочтение4 мин
Количество просмотров2.1K
Одной из важнейших функций панели задач в Windows 7 являются Jump Lists. Jump lists отображаются, если выделить значок приложения в панели задач и нажать правую кнопку мыши. Если приложение использует функциональность JumpLists, то кроме стандартных действий (pin, close) появятся еще ряд дополнительных действий, которые облегчают нашу повседневную работу.

Этой функциональностью панели задач активно пользуются различные приложения. Например, Windows Media Player отображает опции переключения плейлистов. Internet Explorer и Windows Explorer содержат в jump lists с сылками на последние места, куда вы заходили. Windows Live Messanger отображает опции переключения состояния.

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

Программируем Windows 7: Taskbar. Часть 7 – ThumbnailClip

Время на прочтение2 мин
Количество просмотров783
Как мы уже видели, Windows 7 обладает удобной функциональностью по отображению preview окон приложений. При наведении мыши на значок окна в панели задач можно посмотреть уменьшенное представление окна за считанные секунды. Это очень удобно когда у пользователя открыто большое количество окон.

По умолчанию в этих preview отображается все содержимое окна. Однако, для некоторых приложений было бы гораздо удобнее показывать в preview не все содержимое окна, а только его часть. Такая функциональность также предусмотрена для панели задач Windows 7 и мы можем использовать ее для своих приложений. Давайте разберемся с этой возможностью панели задач Windows 7.

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

Программируем Windows 7: Taskbar. Часть 8 – IconicThumbnail

Время на прочтение3 мин
Количество просмотров920
Недавно я рассказал о том, каким образом можно влиять на preview окна в панели задач Windows 7. Тогда мы отображали только ту часть окна, которая наиболее важна для пользователя. Тем не менее в определенных ситуациях гораздо полезнее может быть отображение не части окна, а совершенно другая картинка, отображающая состояние приложения.
Читать дальше →
Всего голосов 57: ↑43 и ↓14+29
Комментарии13

Программируем Windows 7: Taskbar. Часть 6 – AppId

Время на прочтение1 мин
Количество просмотров1.5K
Недавно я писал о том, как можно организовать отображение вкладок для дочерних окон нашего приложения. В этом случае нам требовалось отобразить дочерние окна нашего приложения. Для этих целей мы пользовались классом CustomWindowManager.



Такого же эффекта можно добиться, если мы запустим несколько экземпляров одного и того же нашего приложения. В этом случае Windows 7 определит что это одно и то же приложение и сгруппирует окна в один значок.
Читать дальше →
Всего голосов 61: ↑45 и ↓16+29
Комментарии38

Программируем Windows 7: Taskbar. Часть 5 – CustomWindowsManager

Время на прочтение4 мин
Количество просмотров1.3K
Мы продолжаем изучать возможности панели задач в Windows 7. Наверняка все вы обратили внимание на то, что если одно и то же приложение запустить несколько раз, Windows 7 автоматически сгруппирует их в одну кнопку на панели задач. Кроме того при наведении на значок этого приложения панель задач покажет набор preview для этих окон.

Однако, мы видим, что такое же поведение реализовано для открытых вкладок в Internet Explorer 8. В этом случае фактически запущен один экземпляр IE8 (технические детали мы опустим) и много вкладок. В этом случае Internet Explorer отображает их в виде нескольких preview. В данном случае это очень полезно, т.к. прямо из панели задач можно сразу переключиться на нужную вкладку.

Читать дальше →
Всего голосов 79: ↑60 и ↓19+41
Комментарии34

Программируем Windows 7: Taskbar. Часть 3 – OverlayIcon

Время на прочтение2 мин
Количество просмотров1.2K
На этот раз мы поговорим о другой особенности панели задачи Windows 7 – OverlayIcon. Эта возможность исключительно полезна для приложений, которые обладают каким-то состоянием с точки зрения пользователя.

К таким приложениям можно отнести программы для обмена мгновенными сообщениями (IM). Например, Windows Live Messanger активно использует эту возможность. Например, если мы откроем WLM и будем изменять состояние, то можно увидеть как оно отображается на панели задач.



Читать дальше →
Всего голосов 76: ↑59 и ↓17+42
Комментарии48

Программируем Windows 7: Taskbar. Часть 4 – Custom OverlayIcon

Время на прочтение2 мин
Количество просмотров1.5K
Ранее я писал о том, как можно добавить значок состояния для вашего приложения в панели задач Windows 7. Мы рассматривали статические изображения для этих целей. Напомню, что для этого мы использовали метод SetTaskbarOverlayIcon, в параметрах которого передается ссылка на Icon.

Однако, один из читателей блога предложил другой сценарий, в котором на месте дополнительной иконки отображается какая-то информация. К примеру, это может быть текущая скорость закачки, если ваше ПО что-то загружает по сети.
Читать дальше →
Всего голосов 65: ↑52 и ↓13+39
Комментарии15

Программируем Windows 7: Taskbar. Часть 2 — ThumbButtons

Время на прочтение3 мин
Количество просмотров1.5K
Недавно я рассказывал о том, как в Windows 7 можно отображать прогресс выполнения операции прямо в панели задач Windows. На этот раз мы продолжим разговаривать про возможности Windows 7 для программиста и рассмотрим возможность добавления собственных кнопок управления в preview окна.

Читать дальше →
Всего голосов 100: ↑79 и ↓21+58
Комментарии47

Программируем Windows 7: Taskbar. Часть 1 — Progress Bar

Время на прочтение3 мин
Количество просмотров8K
Новая операционная система Windows 7 содержит большое количество нововведений и улучшений. Эти улучшения касаются безопасности, производительности, надежности и т.д. Серьезное внимание также уделено и пользовательскому интерфейсу. Для разработчиков ПО на платформе Windows новая ОС также представляет интерес, т.к. в ней содержатся элементы, на которые можно воздействовать программно. В течении нескольких постов мы поговорим об основных нововведениях и программной модели для них.

Читать дальше →
Всего голосов 122: ↑105 и ↓17+88
Комментарии75

Выборочное подключение USB-флешек в Windows XP

Время на прочтение2 мин
Количество просмотров42K
По роду своей деятельности (системное администрирование), приходится мне постоянно решать различные интересные задачи по управлению компьютерами и сетями.

Вот одна из них.

Дано:
  • Компьютер операторов производства (Windows XP SP2)
  • Одобренная начальством USB-флешка для переноса данных с промышленных компьютеров на компьютер операторов

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

Ход решения:
Читать дальше →
Всего голосов 158: ↑153 и ↓5+148
Комментарии85

Протоколы прикладного уровня: Jabber/XMPP часть1

Время на прочтение7 мин
Количество просмотров8.4K
Прочитав статью и испробовав команды, научимся
--Соединяться с Jabber сервером
--Логиниться
--Менять статусы
--Отправлять сообщения
--Отключаться

И все это на чистом XML

В принципе, можно статью назвать «Введение в XMPP» или типа того… Но суть не изменится
Приступим-же!
приступить...
Всего голосов 79: ↑75 и ↓4+71
Комментарии21

Система контроля доступа на cakePHP.

Время на прочтение9 мин
Количество просмотров1K
Как вы знаете существуют различные системы контроля доступа.
Некторые из них простые, реализованные только на основе сессий, другие же сложные, такие как ACL. Каждая из них имеет свои плюсы и минусы. Простые системы легки в понимании и в обращении, но при увеличении количества привелегий и необходимости их динамического изменения будут возникать и соотвествующие трудности, ACL же довольно громоздка, не столь гибка и сложна в понимании. Долгое время использовав обе системы, пришел к выводу, что нужно разработать свою систему контроля доступом, которая бы имела следующие возможности:
  • простота понимания и простота исполнения
  • динамическое сосздание групп\ролей и перемещение юзера по ролям\группам
  • юзер может состоять в любом количестве групп\ролей
  • легкое, быстрое и понятное изменение доступа
  • минимизация кода при использовании системы
  • мимнимизация размера таблиц связанных с контролем доступа
  • минимизация количества запросов к БД


Читая существующие топики о системах разделения доступа часто натыкался на коментарии: «Зачем городить огород, если есть ACL». Сразу же отвечу чем меня не устраивает ACL.
  • сложность понимания
  • юзер не может быть в нескольких группах одновременно
  • при необходимости ограничения доступа отдельныи юзерам сильно раздуваются таблички (необходимо хранить id каждого юзера )
  • сложность с перемещением юзеров по группам
  • отсутсвие кеширования
  • необходимость делать визуализацию для работы с группами и правами
  • своя тельняжка ближе к телу (в том смысле, что свой код легче потдерживать)


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

Чистим HTML-код при вставке текста из MS Word в HTML5 WYSIWYG редактор (contenteditable)

Время на прочтение5 мин
Количество просмотров24K
Здравствуйте!

При написании своего WYSIWYG редактора возникла проблема копирования текста из Ворда. Собственно проблем три:
  • Ворд вставляет много мусорного html кода, который необходимо чистить
  • Для представления списков Ворд почему-то использует параграфы вместо тегов UL и LI
  • Собственно как определить, что вставленный текст является вставленным из Ворда.

В общем, для решения этих проблем, был написан jquery-плагин, полный исходный код которого доступен в конце статьи. Пример использования:

$(‘#editor’). msword_html_filter();

Плагин вешается на событие keyup и проверяет, является ли исходный код внутри редактора вставленным из Ворда, если да, то запускается функция очистки. В результирующем html прибивается все что только можно – неразрывные пробелы, атрибуты style и align, теги span, все Mso-классы, пустые параграфы.

Детали реализации под катом.

UPD Демо на CodePen

Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии18

Масштабирование производительности PostgreSQL с помощью партицирования таблиц

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

Классический сценарий


Вы работаете над проектом, где транзакционные данные хранятся в базе данных. Затем вы развёртываете приложение в рабочей среде, и производительность великолепна! Запросы проходят шустро, и задержка при их вводе практически незаметна. Через несколько дней/недель/месяцев база данных становится всё больше и больше, и скорость запросов замедляется.

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

Администратор базы данных (DBA) посмотрит и проследит, чтобы база данных была оптимально настроена. Он предложит добавить определённые индексы, убрать логирование на отдельную партицию, подправить параметры движка базы данных и убедиться, что база данных здорова. Можно также добавить выделенных IOPS (Input/Output Operations Per second) на EBS диске, чтобы увеличить скорость дисковых партиций. Это даст вам выиграть время и даст возможность решить главную проблему.

Рано или поздно вы поймёте, что данные в вашей базе данных являются узким местом (botleneck).
В базах данных многих приложений важность информации уменьшается со временем. Если вы сможете придумать способ избавиться от этой информации, ваши запросы будут проходить быстрее, время создания бэкапов уменьшится, и вы сэкономите кучу места. Вы можете удалить эту информацию, однако тогда она пропадёт безвозвратно. Вы можете послать множество DELETE запросов, вызвав создание тонн логов, и использовать кучу ресурсов движка базы данных. Так как же мы избавимся от старой информации эффективно, но не потеряв её навсегда?
В примерах мы будем использовать PostgreSQL 9.2 на Engine Yard. Вам также нужен git для установки plsh.

Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии15

Ruby on Rails. Установка, настройка, начало работы

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

Зачем.


В этой маленькой статье, которую с удовольствием прочитал бы сам неделю назад, я попытался собрать все вещи, которые понадобились бы человеку, задумай он «с нуля» написать приложение на RoR. То есть не углубляясь ни в одну из областей, описать необходимый минимум действий, чтобы установить, настроить и написать своё первое приложение.Здесь собрано, как мне кажется, всё, что нужно и я надеюсь этот текст сэкономит кому-нибудь несколько часов поиска в интернете). Сам изучаю RoR вторую неделю, так что не судите строго).

Установка.


Просто и быстро ror ставится через rvm c rvm.io.

>\curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled


Запустить rvm:

>source /Путь_к_домашней_директории*/.rvm/scripts/rvm

*$HOME в дальнейшем.
После этого в $HOME/.bash_profile должна появиться строчка:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*


и при каждом открытии консоли rvm будет подгружаться, но у меня этого не случилось — пришлось ещё в $HOME/bashrc прописывать:

. ~/.bash_profile


Теперь всё точно должно быть хорошо.
Устанавливаем нужную(скорее всего это будет самая последняя) версию руби (сколько их и в чём отличие можно посмотреть здесь -http://www.ruby-lang.org).
>rvm install 1.9.3

Проверка на успешность создания
>ruby -v

должна вернуть более подробную информацию, вроде
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux].

В процессе установки я случайно установил несколько версий, что потом доставило некоторые неприятности). Посмотреть список установленных версий руби можно так:
>rvm list
Если версий несколько, то текущая будет помечена "=>", дефолтная — "*", а текущая и дефолтная — "=*". Поменять на нужную используемую версию можно так:
>rvm use ruby-1.9.2-p320 (любая нужная версия)

Чтобы поменять дефолтную версию руби пишем:
>rvm use ruby-1.9.2-p320 --default

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

Создание единого роутинга в офлайн и онлайн продуктах 2ГИС

Время на прочтение10 мин
Количество просмотров25K
Если кто ещё не знает, то 2ГИС — это бесплатный справочник организаций с картой города. И если про справочник уже написано много, то про карту и её возможности информации меньше. А рассказать есть чего. Например, про роутинг — почему мы не взяли существующие решения, а написали своё или зачем нужен единый алгоритм построения в разных продуктах.


Читать дальше →
Всего голосов 99: ↑93 и ↓6+87
Комментарии46

Онлайн редактор для Bootstrap— LayoutIt

Время на прочтение1 мин
Количество просмотров102K
Twitter Bootstrap становится всё популярнее и популярнее, многие используют его в своих проектах, думаю еще больше людей используют для прототипирования интерфейсов. Я не исключение. И вот сегодня утром наткнулся на интересный сервис — LayoutIt. По сути LayoutIt — это онлайн редактор для создания интерфейсов с использованием Bootstrap. Редактор представляет собой Drag & Drop интерфейс.

Читать дальше →
Всего голосов 74: ↑71 и ↓3+68
Комментарии33

Массовая почтовая рассылка через Exim или как не попасть в спам

Время на прочтение4 мин
Количество просмотров98K
Жизнь была прекрасна и все было в этом мире хорошо, пока почта с моего сайта не стала активно посылаться в спам практически всеми крупными почтовыми серверами. Особенно усердствовал в этом Gmail. Частенько меня принимали за спамера в Yandex, реже в mail.ru и rambler.
image
Исходя из совокупности представленных факторов стало понятно, что надо что-то делать с настройками своего почтового сервера Exim. Посмотреть, как это было сделано, приглашаю под хабракат.
Читать дальше →
Всего голосов 88: ↑80 и ↓8+72
Комментарии41

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность