Программирование на shell: использование read через конвеер

Не смотря на разнообразие различных языков некоторые задачи традиционно проще и быстрее решить используя возможности стандартного shell. Но даже использование этих возможностей требует понимания того, что происходит "внутри".

Забивание гвоздей микроскопом

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

Хроники пикирующего бомбардировщика или распределённое нагрузочное тестирование

Как могли заметить наши постоянные посетители неделю назад, 22 сентября на наш сайт была осуществлена DDoS атака. В результате мы смогли провести нагрузочное тестирование нашего сервера и выявить слабые места в конфигурации.

Установка UCEMS на MS SQL Server 2008 Express

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

Установка Oracle Database 11g Release 2 в окружении Oracle Solaris Cluster

Исходная задача - создать базу данных Oracle версии 11.2.0.3 в среде Oracle Solaris Cluster с использованием ASM для хранения файлов данных. При этом необходимо обеспечить три окружения: основное, резервное и тестовое.

Клонирование корневого пула ZFS

Иногда возникает задача склонировать боевую систему без ее остановки и оттестировать на ней ту или иную процедуру (в моем случае - это процедура LiveUpgrade). К счастью, с приходом ZFS снапшоты файловой системы стали простыми и удобными в использовании, а значит и создать клона нам будет несложно.

Три замечательные книги по программированию

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

GlassFish, кластер и Ext-плагин для Liferay

Ext-плагины - это модули, позволяющие произвольным образом изменять функциональность Liferay, переопределяя классы и файлы конфигурации. От рассмотренных в предыдущих заметках hook-плагинов они отличаются тем, что, с одной стороны, практически не ограничивают наши возможности изменять портал (можно переопределить любые классы и конфиги), но, с другой стороны, далеко не так удобны в плане развёртывания и администрирования.

Модификация интегрированного в Liferay портлета с помощью hook-плагина

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

RHEL6, Apache2, mod_auth_ntlm_winbind и KeepAlive

  Вы лежите в кровати и пытаетесь заснуть, Близкий Вам человек периодически спрашивает Вас - "Ты спишь?" Вот этот "ты спишь ?" и есть KeepAlive пакет. (C) Google вопросы и ответы   Задача: прозрачно аутентифицировать пользователей при доступе к Apache2.

Включение Web интерфейса на коммутаторах Quidway от Huawei.

Получив новые коммутаторы Huawey Quidway S3328TP-EI захотелось посмотреть Web интерфейс устройства. Но команда которая должна включать http сервер возвращает ошибку   <Quidway_S3328>system-view Enter system view, return user view with Ctrl+Z.

Пишем hook-плагин, исправляющий локализацию Liferay Portal

В одной из предыдущих заметок я рассказывал о том, как исправить локализацию Liferay Portal. У описанного там способа есть один существенный недостаток - надо распаковывать war-файл портала и модифицировать его содержимое (либо собирать портал из исходников).

ICEfaces 2 и JSF 2 в действии

В этой статье я расскажу об использовании Icefaces 2 После того, как мы подключили ICEfaces 2 (см.  "Введение в ICEfaces 2.0") приступим к работе с самим фреймворком на примере небольшого приложения.

Научиться курить, или работаем с событиями календаря Liferay.

Как говорил великий писатель Марк Твен, "Нет ничего проще, чем бросить курить! Я делал это сотню раз!" . Писатель подчеркивал «лекгость» освобождения от этой, безусловно пагубной привычки, но ничего не говорил о том как можно к ней пристраститься заново.

Ликбез по консольному интерфейсу XenServer

Недавно познакомился с технолологиями виртуализации рабочих столов компании Citrix и в частности на тестовом стенде запустил связку XenDesktop и XenServer. Вообще говоря, стандартным средством администрирования XenServer является графическая утилита XenCenter, однако во-первых она существует только под Windows, во-вторых во время установки она полезла обновлять .

Создание сервисов в Liferay Portal

Как известно, множество возможностей, предоставляемых Liferay Portal, доступны через сервисы. Недавно передо мной возникла задача написать Liferay-сервис, используемый несколькими портлетами. В данной статье я хочу рассмотреть основы создания сервисов для Liferay с использованием Service Builder.

Аннотации, блондинки и ожидание Любви

После 16 лет каждый программист мечтает о большой любви. Дни становятся пустыми и длинными, а ночи беспокойными. Когда же придет Она? Неужели я всю жизнь буду вынужден провести в одиночестве за этим дурацким компьютером?! И конечно он мечтает о том, как встретит Ее, как пригласит на свидание, как они будут гулять по темным улицам или в заброшенном старинном парке, он будет Eе держать за руку, и … (о нет как же это мучительно сладко представлять!) они поцелуются.

Администрирование SCSI-резерваций в окружении Sun/Oracle Cluster 3.X

Как известно, механизм SCSI-резерваций (SCSI-2 Reservations, SCSI-3 Persistent Reservations, Persistent Group Reservations Emulation (PGRE)) используется в Sun/Oracle Cluster 3.X для организации работы кворума и резервированием общих для узлов кластера дисковых устройств или томов ("fencing").

Особенности загрузки ОС Solaris на UEFI-системе.

Казалось бы что может быть проще, как установка ОС Solaris 10 на обычный и ничем не выделяющийся одно-юнитовый x86 сервер, пусть даже это и IBM ? Но и здесь можно найти повод для пляски с бубном. При подготовке "платформы" для последующей установки кластера в первую очередь были проинсталлированы 2 будущие ноды, сконфигурирован массив, созданы и выделелены  дисковые тома.

Конфигурация транспортной сети Oracle Cluster 3.3 на адаптерах сторонних производителей

Задача инсталляции Oracle Cluster 3.3 на "неродное" для компании Sun/Oracle, но входяшее в Hardware Compatibility List (HCL) OS Solaris серверное оборудование IBM, как оказалось, может иметь неожиданные подводные камни.

Автоматическая загрузка Oracle Solaris на серверах Sun SPARC® Enterprise MX000

Столкнулся с проблемой автоматической загрузки Soraris на серверах M-серии от SUN/Oracle. Как известно, поведение домена при старте, а именно, будет ли грузится Solaris либо домен останется в "ok promt" ожидать действий администратора, зависит не только от переменной OBP - "auto-boot?" (если auto-boot? true - грузится Solaris, если auto-boot? false - остаёмся в "ok promt"), но и от переменной задающей режим работы домена - "Autoboot".

The rake of the 32k subdirectory limit или переходим на ext4

В очередной раз при выполнении простейшей задачи наступил на ГРАБЛИ, на этот раз в ограничения ext3 (впрочем как и ufs, veritas file system) в 32000 подкаталогов в одном каталоге (сопровождается ошибкой вида mkdir: cannot create directory `.

Настройка сети в RHEL при клонировании виртуальных машин

Виртуальные машины - безусловно удобное средство для пробы какого-нибудь программного продукта. Однако если он еще и распределенный, как в моем случае - Sun Grid Engine - требуется несколько виртуальных машин, и естественно хотелось бы клонировать их из одной проинсталлированной.

Делаем ProgressBar для gzip на Python

Как известно, замечательные утилитки типа gzip или tar настолько брутальны, что выводят о статусе распаковки на консоль ровно 0 байт информации (ну кроме ошибок разумеется :-) ). И когда распаковываешь архив в 15 гигабайт со вкуснятиной, хотелось бы все таки знать - когда же оно распакуется, поэтому я написал небольшой скрипт на python, "решающий" эту проблему.

Введение в ICEfaces 2.0

В этой статье я расскажу об Icefaces 2 ICEFaces 2 является JSF framework-ом, расширяющим возможности JSF 2, распространяется бесплатно (базовая версия) и имеет открытые исходные коды. Основное использование данной библиотеки - это, конечно, набор ее компонентов.

Материалы по семинару "Архитектура ZFS"

Уже во второй раз в рамках курса SI-365-S10 - Solaris 10 Operating System Internals я прочитал семинар, посвященный архитектуре новой файловой системы Solaris - ZFS. К сожалению в первой ревизии учебника ZFS рассказывался недостаточно полно (во второй материал добавили, но не срастили с первой частью =) ).

Создание скриптов компоновщика ld

Мой студенческий проект в проедшем семестре был связан с разработкой под микроконтроллеры семейства Cortex M3 (архитектура ARMv7M). В отличие от x86 систем с общим адресным пространством и большой оперативной памятью (причем учитывая прогресс Grub'а в последнее время, достаточно просто сделать multi-boot совместимый образ, все остальное за нас сделает grub), в микроконтроллерах нужно распихивать данные между Flash и RAM явно посредством компоновщика.

Время жизни http-сессии в Liferay

Пост самому себе на заметку :)  Сабж в портале конфигурируется весьма нетривиальным образом. Казалось бы, во всех веб-приложениях на Java время жизни http-сессии задаётся в дескрипторе развёртывания (WEB-INF/web.

Liferay 6 и SyntaxHighlighter

Год назад я уже писал о решении задачи интеграции плагина SyntaxHighlighter в состав Liferay Portal. За это время успела выйти новая версия портала - Liferay 6, в силу чего задача вновь стала актуальной.

Локализация JSF 1.2 + ICEfaces 1.8.2 сообщений

Если вы хотите локализовать стандартные сообщения JSF 1.2 и ICEfaces 1.8.2, то вам пригодится этот код. Его надо добавить в ваш messages.properties #------------------------------------------------------------------------------- # JSF #------------------------------------------------------------------------------- javax.

JDBC Connection Pool (GlassFish + Oracle)

В сегодняшней статье я расскажу про использование Connection Pool в java для работы с БД (на примере работы с функциями Oracle). Для работы с БД необходима коннекция. Но когда у нас есть большое приложение и много запросов, то открывать и закрывать коннекции перед каждым запросом довольно трудоемкая задача для системы, на которую уходит порядка нескольких секунд, когда сам запрос может выполняться меньше 1 сек.

Пишем простой сборщик статистики на Python

Совсем недавно передо мной встала задача тюнинга среды моделирования (MPI-приложение) на сервере T5140. Так как потоков на сервере много и они все виртуальные, определиться сходу насколько потоков должно параллелиться приложение оказалось несколько затруднительно :-) К тому же необходимо было сразу оценить где возникает "затык".

Запрос внешних данных в asterisk 1.6

До тех пока правила маршрутизации звонка статичны всё решается достаточно просто. Но вот когда появляется желание переключить входящий звонок на номер, который надо получить из внешнего источника информации, такого как LDAP или СУБД, начинается всё самое интересное.

Создаем собственный Cross-Reference на OpenGrok в GlassFish

Cross-Reference (сокращенно xref) - это экземпляр документа, в котором установлены ссылки между синонимичными понятиями (вольный перевод определения в англоязычной википедии). В контексте программирования это позволяет представить различные единицы трансляции (c-файлы, заголовочные файлы) в виде набора HTML-документов с гиперссылками на различные лексемы языка - например вызов функции является гиперссылкой на ее тело, а использование литерала на его значение.

Материалы с доклада на JavaOne / Oracle Develop 2011

Спасибо всем слушателям моего вчерашнего доклада на московском JavaOne / Oracle Develop 2011! Очень порадовал интерес, проявленный слушателями к теме, несмотря даже на достаточно позднее время доклада (перед самым закрытием конференции).

Первая попытка использования dedup в ZFS

После очередного обновления части моих BSD-шных систем я получил ZFS версии 28, в котором среди прочих вкусностей была обещана дедупликация. Так как среди людей, которые еще не делают резервное копирование, и людей, которые его уже делают, я отношусь ко вторым, то возникло естественное желание попытаться использовать дедупликацию для резервных копий.

Исправляем локализацию Liferay Portal

К сожалению, перевод Liferay Portal на русский язык "из коробки" оставляет желать лучшего - многие элементы интерфейса и сообщения переведены с ошибками, а некоторые не переведены совсем. К тому же, зачастую хочется изменить перевод элементов интерфейса, даже если он не содержит фактических ошибок.

Начало работы с Java Persistence API

Любое корпоративное приложение имеет в своем составе уровень хранения (Persistence layer). Java Persistence API (JPA) предоставляет разработчикам набор инструментов, позволяющих решать задачи по работе с хранимыми данными и ORM.

thread safe crypt()

При переносе своих старых CGI скриптов на FastCGI с многопоточной обработкой запросов у меня внезапно возникла необходимость в вызове crypt(3). Собственно проблема в crypt() заключается в том, что эта функция сохраняет результат криптования в некотором фиксированном буфере, указатель на который и возвращается функцией.

Маленькие хитрости OpenSolaris

У меня уже более полутора лет в качестве домашнего NAS работает машинка, на которой работает OpenSolaris, поэтому  спешу поделиться некоторыми маленькими секретами.   Смотрим S.M.A.R.T. дисков   Как известно, smartmontools не поддерживает OpenSolaris, и вызывая smartctl для SATA диска с большой долей вероятности будем видеть следующее сообщение:       ####################################################################### ATA command routine ata_command_interface() NOT IMPLEMENTED under Solaris.

Материалы с доклада на JavaTechDay 2011

Спасибо всем слушателям моего доклада на JavaTechDay 2011 за интерес к теме и хорошие вопросы! В этом посте, как и обещал, выкладываю материалы с доклада - презентацию и примеры проектов портлетов для Liferay Portal на базе ICEFaces 2.

"Банк-клиент" из под Wine

Возникла необходимость воспользоваться системой банк-клиент (в составе InterPRO+оболочка) предоставляемой одним Санкт-Петербургским банком. Конечно же, никого не удивит тот факт, что данное ПО требует ОС Windows и служба тех.

SPARC + монитор + монитор

 Допустим, одного монитора уже не хватает. Набрав соответствующее число видео-выходов воткнуть два "телевизора" дело не хитрое. Но по умолчанию мы получим на каждом утройстве свой независимый FrameBuffer.

SPARC + монитор

Подключение SPARC сервера к монитору или KVM - вещь безусловно нужная, правда крайне редко, а точнее чуть-чуть чаще, чем никогда. Однако случаи бывают разные, поэтому поглядим как это реализовать.В отличие от x86-тых, спарковые сервера рождаются без видео-выходов.

glassfish + jail = love

Озадачился тут я переносом одного (догадайтесь какого) сайта, использующего glassfish, с временного сервера на постоянный. И естественным образом, возникло желание немного поотделять его от других задач и собственно основной системы, а, так как на сервере используется FreeBSD, выбор естественным образом пал на jail-ы, существующие в FreeBSD со времён 4-ой версии оной.

Ограничение скорости с помощью утилиты TC

Потребовалось мне как то ограничить пользователей по скорости выхода в интернет. В моем распоряжении был роутер на linux машине. Первое что пришло на ум — это прокси-сервер, но он не полностью удовлетворял потребностям, так как ограничивал только web-трафик и пользователи программками типа DC забивали весь канал.

Liferay 6 и портлеты на PHP

Как известно, Liferay Portal поддерживает возможность развёртывания портлетов, написанных на языках программирования, отличных от Java. В частности, есть возможность создания портлетов на PHP. В теории, всё просто: берём наш PHP-код, упаковываем его в zip-архив и развёртываем на портале аналогично обычныму war-файлу портлета - либо через веб-интерфейс, либо копированием в директорию автоматического развёртывания портала.

Очистка логов транзакций postgresql

Столкнулся как с проблемой что не стартует postgresql ругаясь на отсутствуе одного из файлов в директории pg_xlog. Как выяснилось, человек отвечающий за сервер отреагировал на сообщения nagios о заканчивающемся свободном месте и выяснив кто его "поедает", удалил несколько файлов из каталога pg_xlog. Оживить сервер postgresql получилось следующими шагами.

Установка и настройка Roundcube в gentoo linux

Roundcube -- это webmail-клиент для служб IMAP с поддержкой безопасных SSL-соединений и с возможностью использования в качестве адресной книги LDAP. Для хранения пользовательских данных использует СУБД – предлагается на выбор MySQL или PostgreSQL.

Порт BigBlueButton для FreeBSD

BigBlueButton представляет собой кросс-платформенное решение для организации интерактивных веб-конференций, изначально предназначенное для использования в сфере образования. С помощью этого инструмента преподаватели могут организовывать эффективное обучение через Интернет.

BigBlueButton и FreeSWITCH

Начиная с версии 0.71 BigBlueButton в качестве сервера конференций "из-коробки" использует FreeSWITCH. Как и ранее, весь комплекс поставляется в виде виртуального окружения на базе Ubuntu Linux. Разработчики BigBlueButton обещают существенное улучшение качества звука при переходе на FreeSWITCH.

История одного сервера

Началось всё в сентябре 2009, когда у меня возникло желание установить FreeBSD на сервер SunFire V215. После изучения соответствующей документации было определено, что FreeBSD работает на SunFire V210, но вот про V215 ничего не обещалось.

BigBlueButton и MySQL

Продолжая серию заметок про дивный в яблоках BigBlueButton, хочу поделиться новыми новыми проблемами. По гениальному замыслу разработчиков BigBlueButton, сервер баз данных необходим для сохранения информации о запланированных конференциях.
RSS (Открывает новое окно)(Открывает новое окно)
thumbnail Marina Pashnina
Записи: 26
Дата: 24.04.24
thumbnail Лоликонщик Отбитый
Записи: 1
Дата: 13.04.24
thumbnail Romo Fedoroff
Записи: 30
Дата: 11.04.24
thumbnail Антон Семёнович Макаренко
Записи: 2
Дата: 26.03.24
thumbnail Тимофей Перцев
Записи: 28
Дата: 05.02.24
thumbnail Dmitry Afanasiev
Записи: 59
Дата: 29.12.23
thumbnail Денис Серянкин
Записи: 2
Дата: 18.12.23
thumbnail Danil Khanalainen
Записи: 2
Дата: 30.11.23
thumbnail Дмитрий Сазонов
Записи: 59
Дата: 19.11.23
thumbnail Anna Ershova
Записи: 2
Дата: 30.10.23
thumbnail Erik Karapetyan
Записи: 12
Дата: 09.09.23
thumbnail Pavel Danilov
Записи: 12
Дата: 09.09.23
thumbnail Dmitry Sheshukov
Записи: 13
Дата: 31.08.23
thumbnail Алексей Егошин
Записи: 10
Дата: 09.08.23
thumbnail Nikolay Emchenko
Записи: 16
Дата: 22.06.23
thumbnail Maxim Zhukov
Записи: 152
Дата: 20.06.23
thumbnail Vladislav Sivirin
Записи: 1
Дата: 22.05.23
thumbnail Vadim Kholoshnia
Записи: 1
Дата: 17.04.23
thumbnail Andrei Maksimov
Записи: 19
Дата: 21.03.23
thumbnail И Горь
Записи: 27
Дата: 20.02.23
thumbnail Alexey Weiss
Записи: 13
Дата: 08.02.23
thumbnail Dmitry Komarov
Записи: 2
Дата: 02.06.22
thumbnail Semyon Gruzdev
Записи: 1
Дата: 17.11.21
thumbnail Victor Scherbakov
Записи: 3
Дата: 03.09.21
thumbnail Ivan Kayukov
Записи: 10
Дата: 17.08.21
thumbnail Alexander Zhermal
Записи: 8
Дата: 16.04.21
thumbnail Daria Zuban
Записи: 2
Дата: 29.12.20
thumbnail Alexander Yarkeev
Записи: 42
Дата: 23.12.20
thumbnail Alexey Pismak
Записи: 2
Дата: 09.12.20
thumbnail Evgenij Tsopa
Записи: 51
Дата: 05.10.20
thumbnail Александр Исаев
Записи: 5
Дата: 15.09.20
thumbnail Александр Пашнин
Записи: 25
Дата: 10.09.20
thumbnail Danil Sinitskiy
Записи: 3
Дата: 02.09.20
thumbnail Александра Пирс
Записи: 27
Дата: 01.04.20
thumbnail Valeriy Urrievich Kireev
Записи: 26
Дата: 15.01.20
thumbnail Vladimir Nikolaev
Записи: 14
Дата: 30.12.19
thumbnail Ivan Uskov
Записи: 23
Дата: 16.12.19
thumbnail Андрей Дьяков
Записи: 25
Дата: 27.06.19
thumbnail Sergey Zhmylove
Записи: 45
Дата: 14.03.18
thumbnail Lev Koznov
Записи: 18
Дата: 14.07.17
thumbnail Никита Валерьевич Акентьев
Записи: 1
Дата: 29.06.17
thumbnail DEADBEEF
Записи: 1
Дата: 16.01.17
thumbnail Никита Патрахин
Записи: 2
Дата: 15.08.16
thumbnail Vladimir Berlev
Записи: 3
Дата: 26.11.15
thumbnail Sergey Klyaus
Записи: 58
Дата: 21.06.15
thumbnail Олег Олегович Кулаченко
Записи: 1
Дата: 28.01.15
thumbnail Pakhom Golynga
Записи: 20
Дата: 03.03.14
thumbnail Vladislav Sovinskiy
Записи: 11
Дата: 10.01.14
thumbnail Илья Валентинович Перминов
Записи: 19
Дата: 04.09.13
thumbnail Konstantin Borzov
Записи: 7
Дата: 20.06.13
thumbnail Anthony Dmitriev
Записи: 4
Дата: 19.02.13
thumbnail Nicolay Smirnov
Записи: 6
Дата: 02.05.12
thumbnail Alexander Deiter
Записи: 16
Дата: 08.09.11
thumbnail Serge Klimenkov
Записи: 8
Дата: 26.07.11
thumbnail Roman Ambrosenko
Записи: 3
Дата: 18.01.11
thumbnail Sergey Shilin
Записи: 9
Дата: 05.11.10
thumbnail Ruslan F. Isbarov
Записи: 1
Дата: 31.03.10
thumbnail Алексей Сергеевич Лемешев
Записи: 1
Дата: 22.03.10