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

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

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

Рекурсивные (Иерархические) запросы в PostgreSQL

Время на прочтение7 мин
Количество просмотров70K
Вслед за Ораклом со своим ‘connet by prior ‘ все остальные СУБД вводят свои реализации иерархических запросов (ИЗ). Хотелось бы рассказать широкой аудитории как это сделано в PostgreSQL.
читать далее
Всего голосов 48: ↑46 и ↓2+44
Комментарии10

Пример разработки небольшого python+PyQt4 приложения для учетной системы

Время на прочтение4 мин
Количество просмотров15K
Часто приходится разрабатывать приложения для корпоративной системы которые должны были функционировать еще вчера, не требующие строго соответствия корпоративным стандартам. Такими приложениями могут представлять cms к сайтам, gui для сервисов под *nix системы просто приложением учетной системы. Разработка приложений подобного рода на скриптовых языках есть тема! обычно оптимальна с точки зрения скорости выполнения. Под катом пример реализации приложения на python+PyQt4, функции приложения парсинг и загрузка данных из xls файлов…
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии24

Создание расширения FireFox для начинающих

Время на прочтение8 мин
Количество просмотров48K
В данной статье представлена пошаговая инструкция по разработке простейшего расширения для FireFox.
Это частичный перевод оригинальной статьи.

Это не моя статья, а моего друга (его мыльце: templar8@gmail.com). Он очень хочет попасть на Хабр. У меня самого не хватает кармы для инвайта.
Текст статьи
Всего голосов 104: ↑94 и ↓10+84
Комментарии33

Универсальная система мониторинга Zabbix — введение

Время на прочтение4 мин
Количество просмотров423K
LogoВ любой сети, где есть больше, чем один сервер, очень полезно бывает иметь перед глазами полную картину происходящего. В крупных сетях, где количество хостов переваливает за несколько десятков, следить за каждым в отдельности — непосильная задача для администраторов. Для облегчения задачи наблюдения применяются системы мониторинга, и я расскажу об одной из них, которой на Хабре не посвящено ни одной полноценной статьи.

И так, встречайте: Zabbix.
И что он из себя представляет?
Всего голосов 47: ↑40 и ↓7+33
Комментарии74

Следующая задачка: ограничение скорости

Время на прочтение1 мин
Количество просмотров11K
У вас есть маршрутизатор. На нем 2 интерфейса fastethernet. Администраторы, настраивавшие его до вас, в целях экономии интерфейсов и физической пропускной способности настроили его довольно странно:
— На каждом интерфейсе есть 2 подинтерфейса (vlan 10,100 на f0/0 и vlan 20,200 на f0/1)
— Vlan 10 и 20 смотрят на провайдеров (сети 192.168.10.1/24, 192.168.20.1/24)
— Vlan 100 и 200 смотрят в локальные сети (10.100.100.1/24 и 10.200.200.1/24)

image
Читать дальше →
Всего голосов 44: ↑36 и ↓8+28
Комментарии19

Квантификаторы в регулярных выражениях

Время на прочтение8 мин
Количество просмотров76K
imageРегулярные выражения — это арифметика для алгоритмов. Они доступны во многих языках программирования, редакторах и настройках приложений. Как и сложение с умножением они просты в использовании.
Но для правильного и эффективного использования regexp-ов нужно понимание того, как они работают. Я постараюсь описать принцип работы регулярных выражений, покажу в каких случаях бывают проблемы и как их решать.

В продолжение общих советов.
Читать дальше →
Всего голосов 113: ↑109 и ↓4+105
Комментарии40

Эссе о валидации данных

Время на прочтение8 мин
Количество просмотров30K
В заметке «Можно ли делить на 0,01 ?» на сайте тестировщиков я написал, что при тестировании нужно проверять согласованность валидаторов входных данных с логикой обработки этих данных приложением. Но из комментариев к этой заметке я понял, что для понимания того, как надо тестировать валидацию данных, надо понимать, как она должна работать, что можно считать правильным, а что нет. Поэтому я написал об этом отдельную статью. В ней рассматривается три вопроса: 1) зачем вообще нужна валидация данных, и 2) где и когда может выполняться валидация данных, 3) какие бывают разновидности проверок. Ну и конечно продемонстрировано, как всё это выглядит на живых примерах. А может быть мои рассуждения окажутся интересны не только тестировщикам, но и разработчикам.
Читать дальше →
Всего голосов 44: ↑37 и ↓7+30
Комментарии3

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

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

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

В любой моей базе я создаю в схеме «public» определенный набор вот таких облегчающих мне жизнь функций. В этом топике я хочу поделиться ими. Приглашаю всех также поделиться в комментариях своими наработками.
Читать дальше →
Всего голосов 42: ↑37 и ↓5+32
Комментарии23

Быстрое определение местоположения по ip в postgresql

Время на прочтение3 мин
Количество просмотров14K
В этом топике я хочу рассказать о задаче, очень часто встречающейся в веб-проектах — определение местоположения по ip-адресу. Начну с того, что для того, чтобы определить местоположение пользователя — нужна некая geoip база. Приведу здесь два популярных бесплатных варианта:
IpGeoBase — очень хорошая бесплатная база, но, к сожалению, только по российским ip-адресам.
MaxMind — огромная база по ip-адресам всех стран. Предоставляют бесплатную lite-версию базы. Точность базы по российским ip-адресам не настолько хороша, как у IpGeoBase. Также предоставляют некое API для работы со своей базой, которое позволяет производить выборки очень быстро.

Допустим вы скачали эти базы и залили их в таблицы вашей БД Postgresql (сама закачка — несколько out of scope, если у кого-то возникнет желание — я могу в будущем рассказать о том, что такое команда COPY и с чем ее едят). В общем случае вы получите таблицу такой структуры:

startip endip location_id
2130706433 2130706433 1

Здесь:
startip — это начало блока ip-адресов в формате long
endip — конец блока ip-адресов в формате long
location_id — идентификатор локации (город, регион, страна и т.д., maxmind даже координаты содержит).

Задачу поставили. Теперь рассмотрим как ее решать.
Всего голосов 47: ↑41 и ↓6+35
Комментарии29

Получение id добавленной записи в PostgeSQL

Время на прочтение1 мин
Количество просмотров60K
Каким бы супер-пупер спецом вы не были — в процессе разработки эпизодически попадаются интересные и удобные вещи о которых, казалось бы, давно бы пора знать, но все никак не складывалось. Этакий ништячок, найдя который хочется воскликнуть: «Эврика!». Вот таким ништячком для меня стал элемент синтаксиса INSERT в PostgreSQL, которым я и хочу поделиться с вами.

Ситуация: После добавления записи в базу нужно получить id этой самой свеже-вставленной записи.
Решение на PostgreSQL: INSERT… RETURNING id где id — это PRIMARY_KEY в таблице.

Просто и элегантно, не правда ли?
Читать дальше →
Всего голосов 51: ↑29 и ↓22+7
Комментарии36

IP SLA + Embedded Event Manager

Время на прочтение5 мин
Количество просмотров21K
Представьте задачу — есть офис, подключенный к 2м различным интернет-провайдерам посредством маршрутизатора от Cisco и вам необходимо обеспечить резервирование сервиса.

Вариантов решения может быть несколько (2 статических маршрута по умолчанию, динамическая маршрутизация, etc.), но всегда есть ограничения для их использования. Например, 2 статических маршрута по умолчанию будут выполнять поставленную задачу только в случае падения line protocol на интерфейсе в сторону провайдера.

Решение c использованием IP SLA и EEM
Всего голосов 4: ↑4 и ↓0+4
Комментарии11

Задачка с ASA. Задачка давалась на Cisco Challenge Cisco Expo 2009

Время на прочтение1 мин
Количество просмотров6.3K
Самостоятельно её не решил никто из соревновавшихся. Попробуйте и вы ваши силы :)

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

image

Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии30

Настройка SSH в Cisco

Время на прочтение1 мин
Количество просмотров281K
image

Задача:

Настроить SSH в Cisco. Сделать SSH средой по умолчанию для терминальных линий.

Решение:

1. cisco> enable
2. cisco# clock set 17:10:00 28 Aug 2009
3. cisco# configure terminal
Читать дальше →
Всего голосов 3: ↑1 и ↓2-1
Комментарии19

DNS Amplification (DNS усиление)

Время на прочтение6 мин
Количество просмотров93K
Не так давно столкнулся с проблемой (и ее решением) учитывая актуальность этой темы в последнее время, а также то, сколько людей сейчас страдают от этой беды, решил объединить информацию в одну статью. Может быть кому-то еще она будет полезной.
image

Начало



Пару недель назад я заметил странную активность, направленную на мой DNS-сервер. Сразу скажу, что использую шлюз на Linux, соответственно там установлен DNS-сервер bind. Активность заключалась в том, что на порт 53 (DNS) моего сервера сыпалось по несколько UDP пакетов в секунду с различных IP-адресов:

10:41:42.163334 IP 89.149.221.182.52264 > MY_IP.53: 22912+ NS?. (17)
10:41:42.163807 IP MY_IP.53 > 89.149.221.182.52264: 22912 Refused- 0/0/0 (17)
Читать дальше →
Всего голосов 179: ↑179 и ↓0+179
Комментарии61

Защищаемся от HTTP DDoS и прочих Хабраэффектов

Время на прочтение5 мин
Количество просмотров10K
Простой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему.
Читать дальше →
Всего голосов 160: ↑152 и ↓8+144
Комментарии55

Классы типов, монады

Время на прочтение15 мин
Количество просмотров13K
Темой сегодняшней статьи будут классы типов, некоторые стандартные из них, синтаксический сахар с их использованием и класс монад.
Классы привносят динамический полиморфизм, как и интерфейсы в традиционных императивных языках, а также могут быть использованы как замены отсутствующей в Хаскеле перегрузки функций.
Я расскажу, как определить класс типов, его экземпляры (instance) и как это всё устроено внутри.

Предыдущие статьи:
Типы данных, паттернг матчинг и функции
Основы
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии24

А зачем Вам CMS?

Время на прочтение2 мин
Количество просмотров7.4K
Привет, Хабрик!

Побудило написать этот топик полемика возникшая в Персональном холиваре и продолжилось в Почему я не люблю российские коммерческие CMS. С автором этих топиков я во многом согласен, но всё же сравнивать CMS по длине пиписьки, по работе с шаблонами и по классам, плагинам, кастамизации считаю неверным.

Первоначально, до разработки какого-либо комерческого программного обеспечения разработчик должен (по идее) спросить у себя «Какую пользу принесёт покупка моего ПО?».
Читать дальше →
Всего голосов 52: ↑32 и ↓20+12
Комментарии15

Информация

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