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

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

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

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть первая

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

О чем данный учебник


Данный учебник представляет собой что-то типа «штампа моей памяти» по языку SQL (DDL, DML), т.е. это информация, которая накопилась по ходу профессиональной деятельности и постоянно хранится в моей голове. Это для меня достаточный минимум, который применяется при работе с базами данных наиболее часто. Если встает необходимость применять более полные конструкции SQL, то я обычно обращаюсь за помощью в библиотеку MSDN расположенную в интернет. На мой взгляд, удержать все в голове очень сложно, да и нет особой необходимости в этом. Но знать основные конструкции очень полезно, т.к. они применимы практически в таком же виде во многих реляционных базах данных, таких как Oracle, MySQL, Firebird. Отличия в основном состоят в типах данных, которые могут отличаться в деталях. Основных конструкций языка SQL не так много, и при постоянной практике они быстро запоминаются. Например, для создания объектов (таблиц, ограничений, индексов и т.п.) достаточно иметь под рукой текстовый редактор среды (IDE) для работы с базой данных, и нет надобности изучать визуальный инструментарий заточенный для работы с конкретным типом баз данных (MS SQL, Oracle, MySQL, Firebird, …). Это удобно и тем, что весь текст находится перед глазами, и не нужно бегать по многочисленным вкладкам для того чтобы создать, например, индекс или ограничение. При постоянной работе с базой данных, создать, изменить, а особенно пересоздать объект при помощи скриптов получается в разы быстрее, чем если это делать в визуальном режиме. Так же в скриптовом режиме (соответственно, при должной аккуратности), проще задавать и контролировать правила наименования объектов (мое субъективное мнение). К тому же скрипты удобно использовать в случае, когда изменения, делаемые в одной базе данных (например, тестовой), необходимо перенести в таком же виде в другую базу (продуктивную).
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии18

[LibGDX] Создаем клон Flappy Bird — Zombie Bird

Время на прочтение127 мин
Количество просмотров198K
Доброго времени суток %username%. Не давно наткнулся на хороший туториал по созданию клона игры Flappy Bird используя LibGDX и этот туториал мне понравился своей простотой и детализацией.

Я отдаю себе отчет, что тема создания клонов данной игрушки изъела себя, но возможно кому-то пригодится еще один хороший туториал.

Туториал разбит на 12 дней, содержит множество картинок, полотен кода и исходный код разбит по дням. Кому интересно, добро пожаловать под кат.
Подробнее
Всего голосов 111: ↑102 и ↓9+93
Комментарии29

Простейшая 3D игра на libGDX под Android в 200 строк кода

Время на прочтение12 мин
Количество просмотров72K
Я преподаю в IT школе Samsung программирование под Android для школьников. Программа обучения охватывает множество разнообразных тем. В числе прочих предусмотрен один урок, знакомящий учеников с основами 3D-графики под Android. Стандартный учебный материал этого урока показался мне очень бесполезным по нескольким причинам:
  1. Используется голый OpenGL, а поскольку на практике в программировании игр чаще всего используются готовые движки, то это мало полезно для школьников в контексте их собственных проектов. Кто-то может возразить, что увидеть в деле чистый OpenGL полезно для понимания основ, но здесь вступает в дело 2-й недостаток.
  2. Урок очень непонятный. У типичного школьника, пусть и разбирающегося в программировании, нет достаточной базы, чтобы понимать многое из того, что описано в уроке (например матрицы многие пройдут только уже в ВУЗе).
  3. В конце урока мы приходим к результату — отрисовка 3-х треугольников средствами OpenGL. Это настолько далеко от реальной 3D-игры, что легко может отбить интерес у школьника.

Поэтому я решил подготовить свой урок, описывающий основы использования libGDX под Android, а раз я все равно готовлю этот материал, заодно разместить его здесь — на хабре. В этом уроке мы сделаем наипростейшую 3D игру под Android, скриншот которой вы можете видеть во вступлении к статье. Итак, интересующиеся, добро пожаловать под кат.

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

Кто занял канал?

Время на прочтение2 мин
Количество просмотров36K
По мотивам хитростей.

Часто бывает, что канал загружен, а кем — неизвестно. В этом случае помогает команда

sh ip cache flow

Читать дальше →
Всего голосов 21: ↑13 и ↓8+5
Комментарии13

Enhanced IP

Время на прочтение5 мин
Количество просмотров29K
Что это такое — 12.10.0.1.10.0.1.23. Нет, это не ссылка на ветку MIB протокола SNMP. Сегодня мы поговорим об Enhanced IP (далее EnIP).

Если трезво смотреть на мир, то транспортная сеть состоит из кучи «костылей», чего только стоят такие технологии как nat (во всех его видах) или virtual links в ospf. Прочитав драфт rfc , посвященный EnIP, я понял, что это очередной костыль. Но честно говоря идея мне понравилась. Ну, начнем.

Не буду говорить как тяжело сейчас живется и как мало у нас IPv4 адресов (это все и так уже слышали), а перейду непосредственно к технологии.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии42

VoIP + Cisco Packet Tracer

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


Работая с программой Cisco Packet Tracer, часто замечал в ней различные телефонные устройства, а также ПО на клиентских устройствах, при помощи которого, можно организовывать телефонные звонки. В связи с этим, возникла идея смакетировать сеть, состоящую из всех устройств данного симулятора (cisco packet tracer 6.2), которые могут звонить и принимать звонки. При написании данной статьи, возник вопрос: «Можно ли подготовиться к экзамену CCNA Voice, при помощи данной программы?». И на этот вопрос, я постараюсь ответить в данной статье.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

А был ли who на сервере?

Время на прочтение22 мин
Количество просмотров25K
Тяпница… тринадцатое… всё важное решили оставить на понедельник, а потому сделаю какую-нибудь гадость…
В связи с появивишимся на хабре пересказом статьи решил немного отбалансировать данное руководство. Скрыть своё посещение, конечно, не совсем тривиально, но особых сложностей это не составляет.
Итак, задача:
Войти на сервер, выполнить некие действия и «подмести» за собой.

Здесь и далее считаем, что никаких дополнительных инструментов слежения( за исключением «по умолчанию») в системе не используется и мы знаем пароль root'a.

С чем работаем:

# uname -ori
FreeBSD 10.0-RELEASE GENERIC

# `echo $SHELL` --version
tcsh 6.18.01 (Astron)

Описываемое ниже несколько диссонирует с упоминаемой выше статьей, т.к. оная в первую очередь ориентирована на Linux-пользователей, но общие принципы теже и после перехода во FreeBSD(c 9.0) на хранение данных в utmpx родство стало ближе.

Поехали…
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии15

Cisco ipsec tunnel без использования crypto map

Время на прочтение2 мин
Количество просмотров20K
При необходимости использовать защищенные туннели, и при желании сохранять конфигурацию минимальной, существует решение по организации cisco ipsec туннеля без использования crypto map.
Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии6

Оповещения Zabbix через sms используя GSM модем. Простая настройка

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


Zabbix сервер — это хорошо. Правильно настроенный, он мониторит серваки и необходимые мне узлы. В случае проблем на них он с радостью уведомляет меня по электронной почте. Не так давно выяснилось, что оба наших любимых провайдера (основной и резервный интернет каналы) решили не обеспечивать ИБП свое сетевое оборудование в здании. Поэтому когда вырубают электричество (а бывает такое!) Zabbix бы и рад разбудить веселым письмом, а никак! В общем, решил заморочиться уведомлением по sms. Именно через GSM модем чтобы не было зависимости от интернета.

Поискав по интернету варианты отправки sms Zabbix-ом, нашел варианты решения, но они показались мне длинными. Поэтому сделал по своему «на коленке». Постараюсь подробно описать не сложное рабочее решение и «грабли».
Читать дальше →
Всего голосов 26: ↑18 и ↓8+10
Комментарии18

Разноцветные терминалы

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


В этой публикации я расскажу о некоторых трюках, которые украсят будни любого системного администратора Linux (и не только). Все они связаны с переменной PS1 оболочки bash. Переменная PS1 определяет, как будет выглядеть приглашение для ввода новых команд. И каждый пользователь может переопределять её как пожелает, например, в файле ~/.bashrc (который выполняется при запуске bash и используется для в том числе для конфигурации).

Для начала рассмотрим простой вариант, мой любимый формат командной строки.
Читать дальше →
Всего голосов 48: ↑40 и ↓8+32
Комментарии46

SUID и безопасность

Время на прочтение8 мин
Количество просмотров23K
Предисловие. Некогда в июне 2001 года в журнале «Системный администратор» (Sys Admin Magazine, June 2001, Volume 10, Number 6) была опубликована статья Томаса Акина «Danger of SUID Shell Scripts», которая не теряет своей актуальности и сегодня. К сожалению, в конце лета 2007 года журнал перестал выходить. По неизвестным мне причинам сайт журнала также прекратил существование — точнее он сейчас переадресовывает посетителей на другой. Было бы здорово, если бы сайт просто «заморозили», сохранив архив всех накопившихся материалов, который бесспорно представил бы собой кладезь полезной практической информации для специалистов сферы ИТ. В Сети можно найти скудные копии статьи, о которой идет речь; у меня же нашелся бумажный вариант оригинала и я хочу представить вольный перевод с небольшим дополнением. Некоторые моменты статьи мне кажутся несколько глупыми (например, использование временных файлов), некоторые — непривычными (оболочки, которые использует автор), но в целом я уверен — в статье есть на что обратить внимание, взять на заметку и не забывать.

Опасность использования SUID в сценариях командной оболочки
Всего голосов 6: ↑4 и ↓2+2
Комментарии9

DHCP сервер на нескольких VLAN

Время на прочтение12 мин
Количество просмотров70K
Постановка задачи.

Под термином “клиент” будем понимать зону ответственности за совокупность сетевых устройств.

Требуется обеспечить доступ для нескольких сотен клиентов к неким общим ресурсам в таком режиме, чтобы:

  1. Каждый клиент не видел трафик остальных клиентов.
  2. Неисправности одного клиента (broadcast-storm, конфликты IP-адресов, не санкционированные DHCP-сервера клиента и т.п.) не должны влиять на работу как других клиентов, так и всей системы в целом.
  3. Каждый клиент не должен напрямую получать доступ к ресурсам других клиентов (хотя, как специальный случай, можно предусмотреть и разрешение данного трафика, но с его централизованным контролем и/или управлением ).
  4. Клиенты должны иметь возможность получения доступа к общим внешним ресурсам (которыми могут быть как отдельные сервера, так и сеть Интернет в целом).
  5. Общие ресурсы должны также иметь возможность доступа к ресурсам клиентов (конечно при условии, что известен общему ресурсу известен IP-адрес ресурса клиента).
  6. Адресное пространство для клиентов выделяется централизованно и его администрирование не должно быть чрезмерно сложным.

В качестве примеров практического применения можно назвать изоляцию локальных сетей отделов в крупной организации, организацию VoIP-связи или доступа в сеть Интернет для нескольких независимых потребителей и т.п.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии31

Мониторинг коммутаторов Cisco, D-Link, 3Com, Zyxel в системе Zabbix

Время на прочтение5 мин
Количество просмотров282K
Мониторинг — это один из столпов обеспечения высокой доступности ИТ-систем.
Как правило, системные администраторы при установке системы мониторинга в первую очередь настраивают ее на проверку параметров серверов и обнаружение недоступности сервисов, запущенных на этих серверах. Безусловно это приоритетная задача, но не стоит забывать и о другом оборудовании: ИБП, системах кондиционирования, сетевом оборудовании.

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

модная карта сети
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии35

Измерение пропускной способности Ethernet канала

Время на прочтение4 мин
Количество просмотров146K
Возникла задача измерить пропускную способность Ethernet канала и предоставить отчет, причем измерения нужно проводить 24 часа. Какими способами это можно сделать?

Чем


  • Сервис speedtest.net — измеряет ширину канала Интернет до некого сервера. Нам не подходит так как данный сервис меряет не конкретный канал связи, а всю линию до определенного сервера, так же измеряемый канал связи не имеет выхода в Интернет;
  • Скачать объемный файл из одного конца канала в другой. Не совсем подходит так как отсутствует необходимая точность измерения;
  • Iperf — клиент-серверная утилита, позволяющая проводить измерения заданное время с предоставлением простенького отчета. С ней мы сейчас и поработаем.

Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии24

Apache vs Nginx: практический взгляд

Время на прочтение12 мин
Количество просмотров373K
Apache vs Nginx

Введение


Apache и Nginx — 2 самых широко распространенных веб-сервера с открытым исходным кодом в мире. Вместе они обслуживают более 50% трафика во всем интернете. Оба решения способны работать с разнообразными рабочими нагрузками и взаимодействовать с другими приложениями для реализации полного веб-стека.

Несмотря на то, что у Apache и Nginx много схожих качеств, их нельзя рассматривать как полностью взаимозаменямые решения. Каждый из них имеет собственные преимущества и важно понимать какой веб-сервер выбрать в какой ситуации. В этой статье описано то, как каждый из этих веб-серверов ведет себя при различных условиях.
Читать дальше →
Всего голосов 89: ↑69 и ↓20+49
Комментарии184

Надёжный и безопасный Linux (наш ответ Чемберлену)

Время на прочтение8 мин
Количество просмотров20K
После прочтения на Хабре недавних статей, посвящённых теме безопасности линукс систем, у меня возникло желание поделиться своей точкой зрения на этот вопрос.
Статья в целом рассчитана на начинающих администраторов, поэтому в ней изложены очевидные для хорошего специалиста вещи. Ценные дополнения и замечания приветствуются.
Копи-пейст выдержки из конфиг файлов я почти не буду приводить по трём причинам:
  1. Это приведёт с излишнему разрастанию статьи
  2. Маны и гугл никто не отменял
  3. Пункт 2 очень полезен для развития специалиста


Итак, как повысить безопасность и надёжность сервера (да и рабочей станции) на базе линукс?

Читать дальше →
Всего голосов 86: ↑78 и ↓8+70
Комментарии59

Качество сетей передачи данных. Программные и аппаратные измерения

Время на прочтение10 мин
Количество просмотров79K
imageЯ бы хотел опубликовать цикл статей об измерениях характеристик систем связи и сетей передачи данных. Эта статья вводная и в ней будут затронуты лишь самые основы. В дальнейшем планирую более глубокое рассмотрение в стиле «как это сделано».

Покупая продукт или услугу мы часто оперируем таким понятием как качество. Что же такое качество? Если мы обратимся к словарю Ожегова, то там увидим следующее: «совокупность существенных признаков, свойств, особенностей, отличающих предмет или явление от других и придающих ему определенность». Перенося определение на область сетей связи, приходим к выводу, что нам требуется определить «существенные признаки, свойства и особенности», позволяющие однозначно определить отличие одной линии или сети связи от другой. Перечисление всех признаков и свойств обобщаются понятием «метрика». Когда кто-то говорит о метриках сетей связи, он имеет в виду те характеристики и свойства, которые позволят точно судить о системе связи в целом. Потребность в оценке качества лежит большей частью в экономической области, хотя и техническая её часть не менее интересна. Я же попробую балансировать между ними, чтобы раскрыть все самые интересные аспекты этой области знаний.

Всех заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии17

Тюним память и сетевой стек в Linux: история перевода высоконагруженных серверов на свежий дистрибутив

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

До недавнего времени в Одноклассниках в качестве основного Linux-дистрибутива использовался частично обновлённый OpenSuSE 10.2. Однако, поддерживать его становилось всё труднее, поэтому с прошлого года мы перешли к активной миграции на CentOS 7. На подготовительном этапе перехода для CentOS были отработаны все внутренние процедуры, подготовлены конфиги и политики настройки (мы используем CFEngine). Поэтому сейчас во многих случаях миграция с одного дистрибутива на другой заключается в установке ОС через kickstart и развёртывании приложения с помощью системы деплоя нашей разработки — всё остальное осуществляется без участия человека. Так происходит во многих случаях, хотя и не во всех.

Но с самыми большими проблемами мы столкнулись при миграции серверов раздачи видео. На их решение у нас ушло полгода.
Читать дальше →
Всего голосов 110: ↑104 и ↓6+98
Комментарии73

Asterisk. Начало

Время на прочтение10 мин
Количество просмотров159K
На написание этой статьи меня побудило практически полное отсутствие how-to по настройке Астериска, с понятными новичку примерами. В сети можно найти кучу информации по настройке IVR, по настройке авторизации SIP-пользователей через LDAP, мануалов по созданию HA-кластеров с Астерисками внутри, etc., но нет ни одной статьи о том, как завести его с нуля, да и еще с примерами. Практически везде предлагается сразу же использовать все возможности, которые предлагает Астериск, а если убрать часть функционала, предлагаемого в мануале, то в большинстве случаев это приведет к получению неработоспособной конструкции. Эта статья — результат хождения по граблям… чтения мануалов. Если вы находитесь в такой же ситуации, что и я пару лет назад — добро пожаловать под кат.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии40

Анализ SSL/TLS трафика в Wireshark

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


Как скрыть от посторонних конфиденциальную информацию?
Самое простое – зашифровать.
В Интернет и Интранет-сетях шифрацией данных управляет протокол SSL/TLS.
Солдат спит, служба идет.
Однако иногда возникает необходимость выполнить обратное – расшифровать перехваченный трафик.
Это может потребоваться как для отладки работы приложений, так и для проверки подозрительной сетевой активности.
Или в целях изучения работы SSL/TLS (очевидные, вредоносные цели не обсуждаются).

Как и при каких условиях можно расшифровать дамп SSL/TLS трафика в Wireshark?
Попробуем разобраться.

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

Информация

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