Данная заметка навряд ли будет интересна гуру в Оракле, поскольку они скорее всего уже в курсе этой особенности, хотя она и не так хорошо документирована, как хотелось бы. Данная заметка написана на собственном опыте миграции одной системы на более старшую версию и она адресована тем, кто работает с Ораклом не так давно, использует в своем проекте роли с аутентификацией и планирует миграцию своей системы на версии 10.2.0.5, 11.1.0.7 или 11.2.0.х.
Алексей @sharptop
User
Gitlab-CI
5 min
111KTutorial
Всем привет.
У нас не так много задач, которым необходим полноценный CI. Некоторое время мы использовали в качестве CI-сервиса Jenkins. Там всё довольно очевидно, он прост и гибок в настройке, имеет кучу плагинов, но пару раз мы столкнулись с OOM-убийцами агентов на слабых машинах и решили рассмотреть в качестве CI-сервиса Gitlab CI, потому что мы любим эксперименты и тем более в комментариях к нашей прошлой статье задавали такой вопрос.
+24
Кластер высокой доступности на postgresql 9.6 + repmgr + pgbouncer + haproxy + keepalived + контроль через telegram
32 min
57KTutorial
Recovery Mode
На сегодняшний день процедура реализации «failover» в Postgresql является одной из самых простых и интуитивно понятных. Для ее реализации необходимо определиться со сценариями файловера — это залог успешной работы кластера, протестировать его работу. В двух словах — настраивается репликация, чаще всего асинхронная, и в случае отказа текущего мастера, другая нода(standby) становится текущем «мастером», другие ноды standby начинают следовать за новым мастером.
На сегодняшний день repmgr поддерживает сценарий автоматического Failover — autofailover, что позволяет поддерживать кластер в рабочем состоянии после выхода из строя ноды-мастера без мгновенного вмешательства сотрудника, что немаловажно, так как не происходит большого падения UPTIME. Для уведомлений используем telegram.
Появилась необходимость в связи с развитием внутренних сервисов реализовать систему хранения БД на Postgresql + репликация + балансировка + failover(отказоустойчивость). Как всегда в интернете вроде бы что то и есть, но всё оно устаревшее или на практике не реализуемое в том виде, в котором оно представлено. Было решено представить данное решение, чтобы в будущем у специалистов, решивших реализовать подобную схему было представление как это делается, и чтобы новичкам было легко это реализовать следуя данной инструкции. Постарались описать все как можно подробней, вникнуть во все нюансы и особенности.
+39
Мобильная метеостанция на Arduino
10 min
15KНаверное, каждый кто начинает свое знакомство с Arduino, поморгав светодиодом и подключив кнопку, переходит к созданию своей метеостанции. Не исключением стал и я.
Ознакомившись с различными проектами в интернете, были составлены определенные требования. Устройство должно отображать время, температуру, давление и график его изменения. Также очень хотелось рассчитывать фазы луны и время восхода-захода солнца. А самым важным требованием было – мобильность. Создаваемая портативная метеостанция предполагалась использоваться в помощь для рыбалки, поэтому должна была иметь компактный размер и обладать определенной автономностью.
Ознакомившись с различными проектами в интернете, были составлены определенные требования. Устройство должно отображать время, температуру, давление и график его изменения. Также очень хотелось рассчитывать фазы луны и время восхода-захода солнца. А самым важным требованием было – мобильность. Создаваемая портативная метеостанция предполагалась использоваться в помощь для рыбалки, поэтому должна была иметь компактный размер и обладать определенной автономностью.
+18
Корпоративная АТС на базе Asterisk
18 min
78KRecovery Mode
Предпосылки
В жизни любой крупной развивающейся компании рано или поздно встаёт вопрос о расширении возможностей телефонной станции и переходе от классической телефонии к IP.
Далёкой весной 2011 и перед нашей компанией встал такой вопрос, т. к. внешние и внутренние линии требуют постоянного расширения, а количество портов на старом Panasonic KX-TA624 было задано статично и расширению не подлежало. Открытие офисов в других городах и внедрение единой службы по работе с клиентами в других городах так же подталкивало к качественным переменам.
Техническое задание
Конечный продукт должен иметь следующие характеристики:
1) иметь большое количество (в нашем случае не менее 100) внешних и внутренних линий и быть готовым к расширению;
2) уметь приветствовать пользователей в рабочее время и сообщать о том, что они позвонили в нерабочее время, когда никого нет на месте;
3) таймауты переадресации при не ответе/занятости/недоступности должны настраиваться индивидуально;
4) должны быть предусмотрены очереди. Очередь — группа номеров, распределение звонков внутри которой происходит по определенным правилам;
5) записывать лог сообщений (как текстовый, так и аудио);
6) иметь гибкую политику распределения прав на внешние звонки. Должны быть предусмотрены пользователи, которые могут звонить только на внутренние номера; на городские номера; на любые номера;
7) в зависимости от времени суток, звонить на тот или иной номер.
В жизни любой крупной развивающейся компании рано или поздно встаёт вопрос о расширении возможностей телефонной станции и переходе от классической телефонии к IP.
Далёкой весной 2011 и перед нашей компанией встал такой вопрос, т. к. внешние и внутренние линии требуют постоянного расширения, а количество портов на старом Panasonic KX-TA624 было задано статично и расширению не подлежало. Открытие офисов в других городах и внедрение единой службы по работе с клиентами в других городах так же подталкивало к качественным переменам.
Техническое задание
Конечный продукт должен иметь следующие характеристики:
1) иметь большое количество (в нашем случае не менее 100) внешних и внутренних линий и быть готовым к расширению;
2) уметь приветствовать пользователей в рабочее время и сообщать о том, что они позвонили в нерабочее время, когда никого нет на месте;
3) таймауты переадресации при не ответе/занятости/недоступности должны настраиваться индивидуально;
4) должны быть предусмотрены очереди. Очередь — группа номеров, распределение звонков внутри которой происходит по определенным правилам;
5) записывать лог сообщений (как текстовый, так и аудио);
6) иметь гибкую политику распределения прав на внешние звонки. Должны быть предусмотрены пользователи, которые могут звонить только на внутренние номера; на городские номера; на любые номера;
7) в зависимости от времени суток, звонить на тот или иной номер.
+20
Oracle join elimination
15 min
26KОптимизатор в Oracle может применять различные способы трансформации запросов для улучшения их производительности. Одним из таких способов является join elimination. В официальной документации Oracle Database SQL Tuning Guide об этом способе сказано достаточно мало, в отличие от других.
Приглашаю читателей под кат, чтобы поговорить об этом способе поподробнее.
Приглашаю читателей под кат, чтобы поговорить об этом способе поподробнее.
+13
Как перестать настраивать и начать жить или настройка Puppet в школьном классе на 25 компьютеров
7 min
29KМожно настраивать компьютеры по одному, но иногда их становится слишком много...
Так уж вышло, что я устроился преподавателем на один бесплатный курс для школьников по разработке под Android, спонсируемый одной крупной корпорацией, и, естественно, мне потребовалось осваивать соответствующую технику в количестве 25 ноутбуков, 25 планшетов, 2 стационарных компьютеров и сенсорной панели. До недавнего времени ноутбуки использовались с ОС Windows 8.1, но мало кого устраивала производительность и стабильность работы этой ОС при разработке в Eclipse и Android Studio. После одного года под Windows, наше руководство решило все ноутбуки перевести на Xubuntu 14.04, чтобы разрешить эти сложности. Был подготовлен образ, настроенный под конкретную модель ноутбуков, что у нас использовалась, и со всеми необходимыми программами. Накатил и работай. Одна беда — не было предусмотрено никакого решения для централизованного управления конфигурацией. На мой логичный вопрос по этому поводу был дан ответ, что внедрение подобной системы усложняет процедуру установки Linux на ноутбуки и, поскольку в образе уже все сделано как надо, никаких изменений после его установки вносить не понадобится. (ох уж эти оптимисты!)
Так уж вышло, что я устроился преподавателем на один бесплатный курс для школьников по разработке под Android, спонсируемый одной крупной корпорацией, и, естественно, мне потребовалось осваивать соответствующую технику в количестве 25 ноутбуков, 25 планшетов, 2 стационарных компьютеров и сенсорной панели. До недавнего времени ноутбуки использовались с ОС Windows 8.1, но мало кого устраивала производительность и стабильность работы этой ОС при разработке в Eclipse и Android Studio. После одного года под Windows, наше руководство решило все ноутбуки перевести на Xubuntu 14.04, чтобы разрешить эти сложности. Был подготовлен образ, настроенный под конкретную модель ноутбуков, что у нас использовалась, и со всеми необходимыми программами. Накатил и работай. Одна беда — не было предусмотрено никакого решения для централизованного управления конфигурацией. На мой логичный вопрос по этому поводу был дан ответ, что внедрение подобной системы усложняет процедуру установки Linux на ноутбуки и, поскольку в образе уже все сделано как надо, никаких изменений после его установки вносить не понадобится. (ох уж эти оптимисты!)
+20
Пишем голосовое IVR меню на языке TCL, с использованием Cisco IVR API
20 min
13KСегодня речь о голосовом меню (IVR) для маршрутизаторов Cisco, которое мы будем писать на языке TCL, и подключать на Cisco 3845.
Cisco начиная с версии IOS 12 поддерживает как VXML так и TCL скрипты для работы с голосовым меню. Однако, в отличии от VXML, скрипты на TCL имеют гораздо больше возможностей взаимодействия с Cisco IVR API. Так же существует возможность подключать гибридные IVR скрипты, со встроенными кусками VXML кода внутри TCL скрипта.
Все документы, связанные с IVR от Cisco, которые мне довелось получить можно скачать здесь.
Первое это FSM переходы.
Finite-State Machines — абстрактный автомат, число возможных внутренних состояний которого конечно.
Выглядит это примерно так:
Переходов таких может быть сколько угодно, и расположены они в конце TCL скрипта.
Давайте разберемся, что это вообще такое.
Общий синтаксис этой команды таков:
где:
array – это имя FSM массива.
CURRSTATE – имя текущего состояния, при котором получено событие curr_event.
act_proc – имя функции, которую необходимо выполнить при поступлении события curr_event.
NEXTSTATE – имя состояния, которое установится после выполнения act_proc.
Другими словами, FSM это маркер, по которому Cisco сравнивает полученное от API событие с curr_event и текущий статус с CURRSTATE, если в каком либо FSM переходе они описаны, вызывается процедура act_proc и состояние изменяется на NEXTSTATE.
Самое главное в этом — это то, что текущее событие и состояние сравниваются со всеми описанными FSM переходами одновременно. Т.е. для Cisco не имеет значения порядок, в котором расположены FSM переходы, все они обрабатываются асинхронно.
Итак, для начала давайте разберемся в азах
Cisco начиная с версии IOS 12 поддерживает как VXML так и TCL скрипты для работы с голосовым меню. Однако, в отличии от VXML, скрипты на TCL имеют гораздо больше возможностей взаимодействия с Cisco IVR API. Так же существует возможность подключать гибридные IVR скрипты, со встроенными кусками VXML кода внутри TCL скрипта.
Все документы, связанные с IVR от Cisco, которые мне довелось получить можно скачать здесь.
FSM
Первое это FSM переходы.
Finite-State Machines — абстрактный автомат, число возможных внутренних состояний которого конечно.
Выглядит это примерно так:
set ivr_fsm(CALLCOMES,ev_setup_indication) "act_Setup same_state"
Переходов таких может быть сколько угодно, и расположены они в конце TCL скрипта.
Давайте разберемся, что это вообще такое.
Общий синтаксис этой команды таков:
set array(CURRSTATE, curr_event) “act_proc NEXTSTATE”
где:
array – это имя FSM массива.
CURRSTATE – имя текущего состояния, при котором получено событие curr_event.
act_proc – имя функции, которую необходимо выполнить при поступлении события curr_event.
NEXTSTATE – имя состояния, которое установится после выполнения act_proc.
Другими словами, FSM это маркер, по которому Cisco сравнивает полученное от API событие с curr_event и текущий статус с CURRSTATE, если в каком либо FSM переходе они описаны, вызывается процедура act_proc и состояние изменяется на NEXTSTATE.
Самое главное в этом — это то, что текущее событие и состояние сравниваются со всеми описанными FSM переходами одновременно. Т.е. для Cisco не имеет значения порядок, в котором расположены FSM переходы, все они обрабатываются асинхронно.
+10
Загрузочный сервер — как загрузочная флешка, только сервер и по сети
12 min
454KЗагрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!
Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.
Вот такое меню встречает нашу команду инженеров при загрузке с PXE
Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.
Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.
Вот такое меню встречает нашу команду инженеров при загрузке с PXE
Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.
+135
Fly IQ4511 Tornado One Octa: «флагман», «премиум» или «просто смартфон»?
4 min
3KКак давно вы читали «Двенадцать стульев»? Помните, полное имя Великого Комбинатора? — Остап-Сулейман-Берта-Мария-Бендер-бей… К чему тут всякая «ильфопетровщина»? Да просто наш очередной гость имеет именно такое сложносочиненное название — Fly IQ4511 Tornado One Octa. Для пущей солидности еще можно добавить «Black»…
-1
Контроллер управления влажностью на Atmega328
8 min
78KНедавно столкнулся с тривиальной задачей — управление вытяжным вентилятором дома в ванной комнате.
Казалось бы чего проще, подключил его к выключателю света и готово. Но, время работы света непостоянно и может быть недостаточно для уменьшения влажности, хотя данную проблему можно решить установкой таймера. К тому же, моим близким очень не нравится работающий вентилятор при принятии водных процедур, так как он «создает холодный ветер».
Вторым очевидным решением было просто посадить вентилятор на отдельный выключатель и предоставить управление человеку. Но человеческий фактор таков, что вентилятор постоянно забывали включать, а если включали, то выключать. Эффективность работы вентилятора быстро стремилась к нулю.
Пришлось подключить к делу свое увлечение Arduino и несложными микроконтроллерами.
Казалось бы чего проще, подключил его к выключателю света и готово. Но, время работы света непостоянно и может быть недостаточно для уменьшения влажности, хотя данную проблему можно решить установкой таймера. К тому же, моим близким очень не нравится работающий вентилятор при принятии водных процедур, так как он «создает холодный ветер».
Вторым очевидным решением было просто посадить вентилятор на отдельный выключатель и предоставить управление человеку. Но человеческий фактор таков, что вентилятор постоянно забывали включать, а если включали, то выключать. Эффективность работы вентилятора быстро стремилась к нулю.
Пришлось подключить к делу свое увлечение Arduino и несложными микроконтроллерами.
+31
РОБОТ на базе: android, arduino, bluetooth. Рефлексный. Часть 2
21 min
112KВ прошлой статье РОБОТ на базе: android, arduino, bluetooth. Начало была предложена общая схема робота и представлена технология передачи и приема данных между андроидом и ардуино. А в ее завершении приведен список заказанных деталей и модулей. Детали получены (рис.1), комментарии учтены, приступим к созданию первого робота – рефлексного робота.
Рисунок 1
Рисунок 1
+39
От программирования к железу или «Почему оно не работает?».Ликбез
9 min
146KПривет Хабр. В последнее время среди программистов все больше стала набирать популярность цифровая электроника, появляются все новые платформы, позволяющие без каких либо особых знаний в электронике собирать различные устройства. Сам я начинал заниматься аналоговой электроникой, позже — цифровой и программированием. Многие же — наоборот — сначала программированием, а потом пытаются заниматься железом, при этом знания по части электроники практически нулевые и люди не знают/не понимают элементарных для олдфажного электронщика вещей. В данной статье я постараюсь затронуть наиболее важные на мой взгляд моменты, как по части проектирования схем, так и по части разводки плат. Надеюсь мои советы помогут миновать некоторые грабли
+136
Information
- Rating
- Does not participate
- Location
- Оренбургская обл., Россия
- Date of birth
- Registered
- Activity