Программирование на 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 интегрировано множество стандартных портлетов практически на все случаи жизни, но не всегда их интерфейс устраивает нас как конечного пользователя. При этом, в большинстве таких случаев требуются только косметические изменения в стандартных портлетах, а их логика не требует модификации.

Материалы к докладу по DTrace в Москве

Кстати я написал небольшое пособие по DTrace и SystemTap: Инструменты динамической трассировки DTrace и SystemTap Как и обещал, выкладываю презентацию, посвященную DTrace, которую я прочитал в компании Ситроникс (http://www.

RHEL6, Apache2, mod_auth_ntlm_winbind и KeepAlive

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

Пишем 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".

Настройка сети в 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. Так как потоков на сервере много и они все виртуальные, определиться сходу насколько потоков должно параллелиться приложение оказалось несколько затруднительно :-) К тому же необходимо было сразу оценить где возникает "затык".

Используем Hibernate и JPA 2.0 в NetBeans

В прошлой статье цикла, посвященного ORM, мы рассмотрели основы разработки приложений с использованием JPA 2.0. В качестве Persistence Provider'а нами использовался EclipseLink, являющийся стандартной реализацией JPA 2.

Запрос внешних данных в 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 + монитор

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

glassfish + jail = love

Озадачился тут я переносом одного (догадайтесь какого) сайта, использующего glassfish, с временного сервера на постоянный. И естественным образом, возникло желание немного поотделять его от других задач и собственно основной системы, а, так как на сервере используется FreeBSD, выбор естественным образом пал на jail-ы, существующие в FreeBSD со времён 4-ой версии оной.
RSS (Opens New Window)(Opens New Window)
thumbnail Jonathan F. Keker
Posts: 1
Date: 5/7/24
thumbnail Alexey Weiss
Posts: 17
Date: 5/7/24
thumbnail Тимофей Перцев
Posts: 29
Date: 5/7/24
thumbnail Nikolay Emchenko
Posts: 16
Date: 5/6/24
thumbnail Romo Fedoroff
Posts: 31
Date: 5/5/24
thumbnail Никита Рогаленко
Posts: 1
Date: 5/3/24
thumbnail Алексей Егошин
Posts: 11
Date: 5/1/24
thumbnail Marina Pashnina
Posts: 26
Date: 4/24/24
thumbnail Dmitry Afanasiev
Posts: 59
Date: 12/29/23
thumbnail Денис Серянкин
Posts: 2
Date: 12/18/23
thumbnail Danil Khanalainen
Posts: 2
Date: 11/30/23
thumbnail Дмитрий Сазонов
Posts: 59
Date: 11/19/23
thumbnail Anna Ershova
Posts: 2
Date: 10/30/23
thumbnail Erik Karapetyan
Posts: 12
Date: 9/9/23
thumbnail Pavel Danilov
Posts: 12
Date: 9/9/23
thumbnail Dmitry Sheshukov
Posts: 13
Date: 8/31/23
thumbnail Maxim Zhukov
Posts: 152
Date: 6/20/23
thumbnail Vladislav Sivirin
Posts: 1
Date: 5/22/23
thumbnail Vadim Kholoshnia
Posts: 1
Date: 4/17/23
thumbnail Andrei Maksimov
Posts: 19
Date: 3/21/23
thumbnail И Горь
Posts: 27
Date: 2/20/23
thumbnail Dmitry Komarov
Posts: 2
Date: 6/2/22
thumbnail Semyon Gruzdev
Posts: 1
Date: 11/17/21
thumbnail Victor Scherbakov
Posts: 3
Date: 9/3/21
thumbnail Ivan Kayukov
Posts: 10
Date: 8/17/21
thumbnail Alexander Zhermal
Posts: 8
Date: 4/16/21
thumbnail Daria Zuban
Posts: 2
Date: 12/29/20
thumbnail Alexander Yarkeev
Posts: 42
Date: 12/23/20
thumbnail Alexey Pismak
Posts: 2
Date: 12/9/20
thumbnail Evgenij Tsopa
Posts: 51
Date: 10/5/20
thumbnail Александр Исаев
Posts: 5
Date: 9/15/20
thumbnail Александр Пашнин
Posts: 25
Date: 9/10/20
thumbnail Danil Sinitskiy
Posts: 3
Date: 9/2/20
thumbnail Александра Пирс
Posts: 27
Date: 4/1/20
thumbnail Valeriy Urrievich Kireev
Posts: 26
Date: 1/15/20
thumbnail Vladimir Nikolaev
Posts: 14
Date: 12/30/19
thumbnail Ivan Uskov
Posts: 23
Date: 12/16/19
thumbnail Андрей Дьяков
Posts: 25
Date: 6/27/19
thumbnail Sergey Zhmylove
Posts: 45
Date: 3/14/18
thumbnail Lev Koznov
Posts: 18
Date: 7/14/17
thumbnail DEADBEEF
Posts: 1
Date: 1/16/17
thumbnail Никита Патрахин
Posts: 2
Date: 8/15/16
thumbnail Vladimir Berlev
Posts: 3
Date: 11/26/15
thumbnail Sergey Klyaus
Posts: 58
Date: 6/21/15
thumbnail Pakhom Golynga
Posts: 20
Date: 3/3/14
thumbnail Vladislav Sovinskiy
Posts: 11
Date: 1/10/14
thumbnail Konstantin Borzov
Posts: 7
Date: 6/20/13
thumbnail Anthony Dmitriev
Posts: 4
Date: 2/19/13
thumbnail Nicolay Smirnov
Posts: 6
Date: 5/2/12
thumbnail Alexander Deiter
Posts: 16
Date: 9/8/11
thumbnail Serge Klimenkov
Posts: 8
Date: 7/26/11
thumbnail Roman Ambrosenko
Posts: 3
Date: 1/18/11
thumbnail Sergey Shilin
Posts: 9
Date: 11/5/10
thumbnail Ruslan F. Isbarov
Posts: 1
Date: 3/31/10