Search
Write a publication
Pull to refresh
7
0
Send message

Версионная миграция структуры базы данных: основные подходы

Reading time15 min
Views139K
Проблемы контроля версий баз данных и миграций между версиями уже не раз поднимались как на Хабре (1, 2, 3 и др.), так и в Интернете (преимущественно, англоязычном).

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

Ветки в SVN

Reading time4 min
Views29K
Особенностью современной веб разработки является полное отсутствие планирования при создании, поддержке и выкатке проектов. Это приводит к ситуации, что достаточно часто параллельно выполняется несколько разных задач и сроки их выкатки в production никак не соотносятся. А значит традиционный подход с созданием релизов не годится.

На помощь нам приходит механизм создания веток в системах контроля версий, VCS (в нашем случае это Subversion). Ветки это разные варианты одного документа или проекта, с общей историей изменений до точки ветвления и с разными — после неё.
Читать дальше →

БД Oracle для программиста

Reading time9 min
Views97K
Нужно ли программисту прикладных приложений понимать как работает БД? Том Кайт, признанный специалист Oracle, автор знаменитой колонки asktom, в своей книге «Oracle для профессионалов. Архитектура и основные особенности.» настаивает, что это просто необходимо. Даже если в вашей команде есть грамотный администратор, знание того, как работает СУБД Oracle поможет вам лучше понимать друг друга и эффективней взаимодействовать, не говоря уже о случае, когда такого специалиста у вас нет. В данном топике я упомяну об основных вещах, понимание которых позволит грамотно работать с БД Oracle и использовать некоторые её особенности с большой отдачей для вашего приложения. Если же вы уже прочитали вышеупомянутую книгу Тома Кайта, то можете просто исползовать эту статью в качестве памятки. Одно замечание — книжку я читал давно, и тогда еще последней версией БД Oracle была 9i, курсы по администрированию я тоже проходил по девятке, так что, если в десятке и выше что-то поменялось и добавилось, то не обессудьте. Хотя я пишу о довольно фундаментальных вещах, которые вряд ли сильно поменяись.
Читать дальше →

Класс-клиент goo.gl и настройка API

Reading time4 min
Views36K
UPD: репозиторий теперь на Гитхабе.

Здравствуйте, коллеги!

Помню, в свое время меня очень обрадовала новость, что у гугловской сокращалки урлов появились официальные API. В то время я как раз разрабатывал приложение, которому часто требовалось сокращать ссылки новостных лент. Я как раз прикручивал bit.ly, но испытал соблазн попробовать новый сервис от Гугла. Воспользовавшись документацией, я за несколько часов набросал базовый функционал и встроил скрипт в проект.

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

Основные возможности и особенности класса от конкурентов:
Читать дальше →

DHCP по VLAN на коммутаторах Cisco

Reading time3 min
Views143K
В данной статье хочу рассказать об очень удобной, по моему мнению, схеме IP-адресации в сети с и использованием VLAN.
В примере конфигурации будем использовать следующую схему:
image
Читать дальше →

О современном мобильном интернете глазами очевидца

Reading time6 min
Views6K
Многие жители Хабрахабра смотрят на мобильный интернет свысока, будто это детский WWW, а в нем нет ничего интересного. Типичные стереотипы по отношению к нему я увидел в статье «Создание сайтов для мобильных устройств — руководство по быстрому старту». Удивительно, как люди могут писать о чем-то статью, не посещая мобильные сайты и не поняв его изнутри. Устаревшие тенденции, где типичный моб. сайт — это черно-белые страницы, 15 кб графики и несерьезность идей давно прошли уже в 2007 году.

Попытаемся объяснить, что же собой являет мобильный сайт сейчас.

Телефоны не вечные, и имеют тенденцию ломаться и обновляться, поэтому вы вряд ли найдете старые телефоны без поддержки HTML и CSS и с экраном, меньше чем 128×160, обычный размер экрана — 240×320 и больше. Многие сайты, если их открыть через компьютер, будут отлично выглядеть — отсутствие горизонтальной прокрутки, больших баннеров и всплывающей рекламы, мгновенная прорисовка страницы, поэтому даже сейчас я не могу отказаться от удобства телефонных сайтов.

Теперь рассмотрим особенности данных сайтов более подробно.
Читать дальше →

Вариант удаленного доступа к корпоративной сети предприятия посредством VPN с разграничением доступа к внутренним ресурсам и аутентификацией в AD

Reading time3 min
Views59K
Часто (если не всегда) перед ИТ отделом рано или поздно встает задача организации удаленного доступа в сеть предприятия, например командированным сотрудниками или попросту заболевшим. Решать эту задачу можно по-разному. Я хочу рассказать об одном из решений реально используемом в нашем холдинге. Отличается это решение от многих других тремя основными вещами:

  1. На стороне удаленного пользователя требуется минимум настройки — используются все стандартные приложения и возможности ОС Windows;
  2. Удаленный пользователь работает на сервере терминалов, что обеспечивает его необходимой средой для выполнения своих должностных обязанностей
  3. Очень гибкое управление доступом к внутренним ресурсам компании (обеспечивается TMG\ISA файрволом согласно доменной аутентификации)


Если вам это интересно, добро пожаловать под кат
Читать дальше →

Текст любой ценой: Miette

Reading time3 min
Views2.9K
Да, вы не ошиблись, и это не дежавю. Вы наверняка когда-то (если завсегдатай) видели этот топик. С тех пор прошло много времени, а мне продолжают ходить письма с вопросами и просьбами о совете на тему чтения текстовой информации из бинарных форматов данных. А это значит, что тема до сих пор актуальна, интересна для программирующей общественности.

За этот год (а ведь и вправду прошло больше года) я поменял место работы и занимаюсь совершенно другими вещами и давно уже не программирую (много не программирую, если быть точным) на PHP. Новый проект обязал меня совершенствоваться в python'е (и ощутить его силу), поэтому однажды воскресным вечером было решено переписать и, главное, улучшить некоторые из своих библиотек для чтения текста. Сегодня я представлю на суд публики молодой opensource-проект Miette («вкусняшка», если переводить с французского), который призван (в каком-никаком будущем) читать файлы пакета Microsoft Office.

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

Естественно python во многом отличается от PHP и, на мой взгляд, имеет несколько больший функционал, поэтому и принцип построения библиотек в проекте несколько другой, нежели старая «поделка» на PHP. В данном случае было решено запретить себе, как разработчику и заказчику в одном лице, загружать какие-либо большие блоки в память. Мьетт читает данные постепенно, по требованию, как это делает сам Word. Это делает его легковесным и нетребовательным к оперативной памяти. В будущем, я постараюсь пройти исходные profiler'ем и найти узкие горлышка, которые стоит оптимизировать дальше.

Идём дальше?
Читать дальше →

Настройка и оптимизация MySQL сервера

Reading time9 min
Views317K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →

Настройка Active/Passive PostgreSQL Cluster с использованием Pacemaker, Corosync, и DRBD (CentOS 5,5)

Reading time16 min
Views29K
В этой статье объясняется, как настроить Active/Passive кластера PostgreSQL, с использованием Pacemaker, Corosync и DRBD.
Подготовлено Рафаэль Марангони, из команды BRLink Servidor Linux
Читать дальше →

Memcached и PHP ликбез

Reading time6 min
Views227K
В интернете достаточно много информации на данную тему, но, несмотря на это, многие обходят её стороной. Цель данного поста, разъяснить на пальцах основы взаимодействия с Memcached.
Читать дальше

How To настроки репликации в MySQL с использованием шифрования SSL на Debian Lenny

Reading time7 min
Views14K
Это руководство описывает, как настроить репликацию базы данных в MySQL с использованием SSL соединение для шифрования.
MySQL репликация синхронизирует базу данных, что позволяет иметь точную копию БД на другом сервере. Все обновления БД на главном сервере автоматически реплицируются на другой сервер, что позволяет защитить базу от аппаратных сбоев. В этой статье будет показано, как реализовать репликации БД exampledb с сервера server1.example.com(ip адресом 192.168.0.100) на сервер server2.example.com(ip адресом 192.168.0.101) с использованием SSL соединения
Читать дальше →

Yii — что за зверь?

Reading time1 min
Views4K

Что это?


Yii (акроним фразы yes, it is) — высокопроизводительный компонентно-ориентированный PHP фреймворк наилучшим образом подходящий для масштабируемых веб-приложений. Yii появился с широким набором возможностей, включая MVC, DAO/ActiveRecord, I18N/L10N, поддержку AJAX на основе jQuery, управление доступом на основе ролей, генерация рутинного кода (scaffolding), проверку ввода, виджеты, события, темы оформления, веб-сервисы и еще много чего. Написанный на чистом ООП, Yii является простым в использовании, а также чрезвычайно гибким и расширяемым.
чуть больше

Настройка и масштабирование PostgreSQL

Reading time1 min
Views4.3K
Написал небольшой мануал по настройке и масштабированию PostgreSQL. Сподвигло меня на это то, что материала по этой теме мало, он устарел или его просто нет.

Скачать можно здесь:
http://github.com/le0pard/postgresql_book/raw/master/postgresql.pdf
Исходники:
http://github.com/le0pard/postgresql_book/

Страница:
http://postgresql.leopard.in.ua/

Cisco Config Cleaner. Бета-тестирование

Reading time1 min
Views2.9K
Друзья!

Мы обкатываем на нашем сайте новую идею, а именно проверку конфигурационных файлов cisco IOS на согласованность и непротиворечивость. На данный момент мы реализовали функционал для выявления «мусорных» списков доступа, а также выявление таких опасных «хвостов», как привязка списка доступа без самого списка.

Вкратце расскажу, зачем это может быть нужно:
Читать дальше →

Выборка произвольных записей в MySQL

Reading time4 min
Views108K
Есть вроде бы обычные задачи, которые можно решить сразу и не задумываясь, но при интенсивном использовании таких решений возникают проблемы, причем не маленькие. Об одной из таких задач я и хочу рассказать.
Почитать интересную статью

Cisco: Порядок обработки пакетов «в сложных конфигурациях»

Reading time1 min
Views12K
Регулярно сталкиваюсь с проблемой вспомнить, в какой последовательности
идет обработка пакета в Cisco, соответственно также регулярно ищу сей документ.

Может быть будет полезен кому-то кроме меня:

Пакет Inside−to−Outside
  1. if IPSec then check input access list
  2. decryption − for CET (Cisco EncryptionTechnology) or IPSec
  3. check input access list
  4. check input rate limits
  5. input accounting
  6. policy routing
  7. routing
  8. redirect to web cache
  9. NAT inside to outside (local to global translation)
  10. crypto (check map and mark for encryption)
  11. check output access list
  12. inspect (Context−based Access Control (CBAC))
  13. TCP intercept
  14. encryption
  15. queueing


Пакет Outside−to−Inside
  1. if IPSec then check input access list
  2. decryption − for CET or IPSec
  3. check input access list
  4. check input rate limits
  5. input accounting
  6. NAT outside to inside (global to local translation)
  7. policy routing
  8. routing
  9. redirect to web cache
  10. crypto (check map and mark for encryption)
  11. check output access list
  12. inspect CBAC
  13. TCP intercept
  14. encryption
  15. queueing


Извлечено из Cisco Document ID: 6209

Защищаем SSH от брутфорса на любом порту

Reading time3 min
Views116K
Сегодня меня заинтересовал опрос надо ли перевешивать SSH на нестандартный порт. Сам опрос не так интересен как способ автора zivot_je_cudo защищать SSH от подбора пароля: после неверной попытки подключения блокировать новые попытки в течение 20 секунд. Задержка, видимо, выбрана эмпирически, исходя их двух противположных пожеланий: чтобы не заблокировать в случае опечатки себя надолго, и в тоже время усложнить жизнь подбиральщика. Я хочу поделиться своим способом противодействия брут-форсу, который применяю уже несколько лет. Он имеет два преимущества:
— дает мне больше попыток для набора правильного пароля
— но при этом блокирует брутфорсеров «навечно».

Как можно достичь этих двух противоположных целей?
Читать дальше →

Курс молодого бойца cisco: защищаем периметр маршрутизатором

Reading time4 min
Views64K
Не претендуя на полноту изложения, попробую описать технологии, которыми можно воспользоваться для защиты периметра.

Рассматривать будем IOS с firewall feature set. Этот набор возможностей, как правило, есть во всех IOSах (в которых есть шифрование), кроме самого базового.

Итак, пусть на границе нашей сети стоит машрутизатор cisco, который и призван обеспечивать безопасность наших внутренних ресурсов.

Защищаем трафик.
Читать дальше →

Information

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