Обновить
0
0
d1v3r @d1v3r

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

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

Nested Grids с помощью ExtJS 3.0

Время на прочтение6 мин
Просмотры3.2K

Введение



image

Суть проблемы, рассматриваемой в данной статье заключается в том, что Grid объекты библиотеки ExtJS не предназначены для использования в контексте вложенности. В общем случае, такая задача редко становится перед разработчиком. И все же, иногда, как, например, в моем случае, с ней приходится сталкиваться. Ниже я попытаюсь поделиться накопленным опытом, и, возможно, окажу тем самым кому-нибудь неоценимую помощь, на что искренне надеюсь :). Итак, в добрый путь…

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

IPv6 для P2P

Время на прочтение7 мин
Просмотры60K
IPv6 обычно ассоциируется с проблемой нехватки IPv4 адресов, о которой любит писать «желтая» пресса. Что со дня на день свободных адресов не останется и переход на IPv6 будет неизбежен. Скептики считают что проблема настолько же раздута, как в своё время «ошибка 2000», когда все боялись что после 1999 года наступит 1900 и случится техногенная катастрофа.

Для большинства пользователей, действительно, пользы от IPv6 никакой. Какая разница, например, что заголовки пакетов более удобны для маршрутизатора? Но для P2P проблема NAT (за счёт чего IPv4-адреса так ещё и не закончились) реальна, т.к. для связи peer-to-peer (даже чтобы переслать файл через Jabber или ICQ) нужно чтобы хотя бы один из участников был доступен снаружи, т.е. имел реальный IP-адрес или хотя бы пробросил себе порт. Некоторые провайдеры предоставляют внешний адрес за отдельную плату, у некоторых такой возможности нет, и именно для NAT-страдальцев будет больше всего полезно использование IPv6.

Также это будет полезно тем, у кого провайдер режет p2p-трафик. В России это (пока?) не так распространено, а за рубежом — далеко не редкость. IPv6 трафик (точнее, обёрнутый в обычные UDP пакеты) ими не режется. Еще это может помочь в ситуации, когда p2p-трафик блокируется корпоративным фаерволом, но настроить IPv6 через туннель можно.
Читать дальше →

Почему с нами остаются 90% клиентов

Время на прочтение2 мин
Просмотры18K
Это не шутка. 90% от числа позвонивших в нашу компанию остаются с нами и пользуются услугами нашей компании как минимум еще один раз. Я решил не мудрить с теорией и изложить основное тезисами. Уверен, кому-нибудь пригодится. Наш бизнес — такси, однако большинство «ноу-хау» применимы совершенно в любом бизнесе.
Читать дальше →

Perl и GUI. Взаимодействие приложений

Время на прочтение3 мин
Просмотры1.7K
Иногда возникает необходимость сделать обмен данными между приложениями (например выполнить какую-либо команду в Internet Explorer, Excel).
Платформа Microsoft Windows предоставляет нам несколько механизмов, это и OLE, COM и… DDE.

DDE был введен в 1987 году, позже была сетевая реализация NetDDE, и используется до сих пор.
Работать с DDE очень просто, не требуется подключать с CPAN дополнительные модули, все есть в tkkit.

Рассмотрим на примере двух приложений приёмника и отправителя.

image

Описание и код под хабракатом.

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

Как устроена смарт-карта

Время на прочтение3 мин
Просмотры35K
Долгое время работая со смарт-картами, я сам имел не очень чёткое представление об их внутренностях. Вот получив некий документ, описывающий структуру и схему работы смарт-карты делюсь этой информацией.
Читать дальше →

Образование для будущих ИТ-специалистов в России: ВМК МГУ

Время на прочтение7 мин
Просмотры73K
Многие слышали про успехи студентов СпбГУ ИТМО на олимпиадах мирового уровня. Эти успехи сделали этот ВУЗ очень популярным среди будущих потенциальных Айтишников. Поэтому теперь попасть туда довольно сложно, а в специальную группу олимпиадников, конечно, нереально, что логично. Однако не стоит забывать и про другой известный государственный университет страны — МГУ. Если СпбГУ ИТМО занял в 2008 году 1-ое место по программированию в мире, то МГУ получил серебряную медаль, заняв при этом 5-ое место, что тоже весьма неплохо. Факультет ВМК(Вычислительная математика и кибернетика) является вторым по популярности ИТ-факультетом в стране.(Фото здания) Так вот именно о нём и пойдёт речь. Давайте посмотрим на то, как готовят ИТ специалистов в одном из главных университетов страны на первом курсе изнутри. Не посчитайте, пожалуйста, за рекламу факультета.
Читать дальше →

Шлюз+шейпер для домашней сети на Ubuntu

Время на прочтение4 мин
Просмотры30K
Моя домашняя сеть разрослась до количества трех компьютеров. В связи с чем началась дележка: кто будет качать первым.
Иногда даже страничка в ФФ открывается по 2-3 минуты, так как на соседнем компе во всю качает торрент.
Советом системных администраторов (то есть мной) было принято решение создать шлюз c шейпером который будет динамически делить канал на всех.
Ну начнем
Читать дальше →

Мелочи, облегчающие жизнь

Время на прочтение3 мин
Просмотры20K
Postgresql, без сомнения, великолепная СУБД. Она обладает обширнейшими возможностями, отличной документации, и при всем при этом является бесплатной. Однако, всегда найдется что-то, чего пользователю не будет хватать. И в postgresql это легко исправляется, ведь он позволяет создавать функции на языках на любой вкус, будь то Plpgsql, Perl или даже Java.

Приведу пример. Мне всегда не хватало функции, получающей DDL выбранной таблицы. В oracle, например, вы можете воспользоваться для этого средствами пакета dbms_metadata. А вот в postgresql аналога почему-то нет. То есть можно конечно использовать pgdump, но это уже немного не то, мне хотелось бы иметь функцию бд. И так далее, думаю у каждого найдется несколько таких небольших «хотелок».

В любой моей базе я создаю в схеме «public» определенный набор вот таких облегчающих мне жизнь функций. В этом топике я хочу поделиться ими. Приглашаю всех также поделиться в комментариях своими наработками.
Читать дальше →

Вычисляем плохих ботов

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

Итак, ряд простых, но полезных советов

Использование Vim для редактирования простого текста

Время на прочтение5 мин
Просмотры20K
Про Vim сказано и написано более чем достаточно. Но большинство материалов представляют собой либо самые первоначальные сведения, либо же советы матерых профессионалов. В результате для того, чтобы приспособить редактор для решения стоящих перед пользователем задач, приходится перелопатить кучу мануалов. Перед осознанием масштаба необходимой работы, нужен нешуточный стимул, чтобы решиться на такое. И вполне может возникнуть резонный вопрос: а зачем мне это? Помимо того, что интересно «пощупать» редактор, о котором столько разговора, должно быть что-то еще?

Конкретно для меня стимулом явилась возникшая сложность при работе с переводами. Проблема заключалась в следующем: несмотря на разрешение экрана в 1920х1200 сделать так, чтобы оба текста располагались перед глазами, было практически невозможно. Да и дергаться мышью туда-сюда, управляясь с полосами прокрутки, запоминая положения текстовых фрагментов, довольно таки неудобно. Консольный текстовый редактор, управление которым осуществляется клавиатурой, представлялся для меня логичным решением. Оставалось только разобраться в нем и из огромного массива информации выбрать только то, что нужно.

Забегая вперед, скажу, что информацию пришлось собирать фактически по крупицам. Основное направление в использовании Vim в качестве редактора «для программистов» привело к тому, что вопросам обработки «простого» текста уделяется мало внимания. В конце-концов, с поставленной задачей, как мне кажется, удалось справиться.
Читать дальше →

Книга «Dive into HTML5» (в процессе написания)

Время на прочтение1 мин
Просмотры1.6K
Марк Пилгрим (Mark Pilgrim) начал написание новой книги в серии Dive into, в которую уже входят такие свободно доступные книги, как Dive Into Python, Dive Into Python 3, Dive Into Greasemonkey, Dive Into Accessibility и возможно еще какие-то (чувак очень продуктивный).

Еще в сентябре прошлого года под названием Dive into HTML5 началась публикация заметок This Week in HTML5 для блога WHATWG.

Теперь же Марк начал оформлять все в виде полноценной книги. На данный момент доступно 2 главы, в которых рассказано о способах определения доступных в браузере возможностей HTML5, а также глава о работе с элементом canvas.

Марк — 36 летний программист, писатель, блогер. Является приверженцем идеи свободного программного обеспечения, все его книги распространяются под лицензий GNU Free Documentation License, что однако не мешает ему сотрудничать с издательством O'Reilly, которое и публикует его книги в бумажном виде. С 2007 года работает в Google, а до этого трудился на компанию IBM.

Вышел Midnight Commander 4.7.0-pre3

Время на прочтение2 мин
Просмотры1.6K
Сегодня, после месяца прошедшего с выхода предыдущей версии, замечательного файлового менеджера под линукс (и не только:)), была опубликована новость о выходе mc 4.7.0-pre3.
Кроме исправления найденных ошибок и добавления новых :) (а как без этого?) в ней произошли следующие немаловажные изменения:
  • Появился механизм смены оформления (скины)
  • Появился механизм смены предопределенных быстрых клавиш

Теперь вы можете назначить практически любые сочетания в замен существующих, и сделать либо похожим на VIM либо на FAR…
Список изменений

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Время на прочтение16 мин
Просмотры40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...

Про амперсанд

Время на прочтение2 мин
Просмотры9.8K
Амперсанд является вещью присущей в основном латинской типографике, но тем не менее штука это красивая. В этом коротком очерке я расскажу о том, как можно использовать амперсанд на веб-страницах как в текстовой, так и в нарисованной (pre-rendered) форме.

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

Рассматриваем простейшие случаи раздачи интернета внутри офисной сети

Время на прочтение6 мин
Просмотры7.5K
Предисловие
В процессе работы иногда приходиться подключать клиентов либо уже с присутствующими машинами на FreeBSD (распространенный вариант – держат там рабочие файлошары на самбах) либо ставить им такое решение по запросу, для максимально удобного решение насущных проблем клиента. Статья рассчитана на читателя крайне слабо знакомого с FreeBSD. Думаю людям, что-то, понимающим эта статья будет крайне отвратительна – рекомендую дальше не читать и не травмировать себя.

image

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

Кактус у монитора или ускоренная установка cacti

Время на прочтение2 мин
Просмотры26K
Существует давнее убеждение, что кактус перед экраном спасает пользователя от губительного радиоактивного излучения, генерирующееся монитором.

image

Огромное число этих колючих растений красуется перед, на или около монитора миллионов пользователей по всей России. По количеству адептов «кактусизм» на равных соревнуется со многими религиозными конфессиями. Это не может не настораживать… ©

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

Тайна незанятого xl0 или получаем контроль над своей сетью

Время на прочтение9 мин
Просмотры5.8K
Как вы все помните, в конце предыдущего поста я обещал более подробно рассмотреть вкратце и максимально доступно следующие вопросы:

1. Настройка DHCP
2. Поднимаем свой DNS по минимуму
3. Съем статистики по интерфейсам при помощи snmp и отрисовывание красот в cacti
4. Лимитирование по трафику пользователей внутри сети
5. Ведение детальной статистики по тому, как куда и кем расходуется трафик
6. Настройка бекапа каналов в случае наличия еще одного провайдера (а о xl0 все и забыли)
7. Разруливание трафика между несколькими каналами средствами ipfw
image
Читать дальше →

XSS вконтакте

Время на прочтение2 мин
Просмотры9.4K

Предыстория (можно не читать)


Прихожу я сегодня домой и вижу в личке вконтакта 9 сообщений. Т.к. я не особо люблю и не часто посещаю этот ресурс — сие событие было странным. В сообщениях пользователи писали что от меня вконтакте рассылается спам. Плохо, но да ладно, сменил пароль и все… Хотя задумался: старый пароль — 12 символьный цифробуквенный, сбрутить почти нераельно. Комп кристально чист и не заразен… Так в чем же дело?
Читать дальше →

Однострочные программы на Perl

Время на прочтение7 мин
Просмотры40K

Введение


Я собираюсь рассказать об однострочных программах на Perl. Если вы овладете однострочным Perl`ом, то можете сэкономить кучу времени (я экономлю).

Цель поста — показать как Perl можно использовать заместо find, grep, awk, sed. В конце поста будет написано зачем это надо.
Читать дальше →

10 приемов, разрушающих хрупкую красоту кода

Время на прочтение19 мин
Просмотры103K
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

Переменные должны объявляться в начале логического блока, в котором они используются, а НЕ в начале функции или программы.


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

Информация

В рейтинге
Не участвует
Откуда
Камышин, Волгоградская обл., Россия
Зарегистрирован
Активность