Есть у меня простая табличка в ORACLE, в которой есть 2 поля: ИД и BLOB (картинка в PNG). Понадобилось отображать эту картинку на клиенте (Delphi XE3). Погуглив, нашел подходящий вариант, доработал под себя и вот что получилось:
вівторок, 27 грудня 2016 р.
субота, 27 серпня 2016 р.
Raspberry Pi, датчик движения и отправка смс через Twilio
Появилось свободное время, которое я решил потратить на Raspberry Pi. Пару месяцев назад, я уже пробовал фиксировать движение с помощью датчика, подключенного к малине. О проблеме, которая возникла в тот момент я написал в блоге. Сейчас, я решил продолжить развивать эту тему и прикрутить смс оповещение в момент срабатывания датчика. Погуглив, я нашел сайт Twilio, который предоставляет бесплатный вариант отправки смс на верифицированный номер.
Далее я зарегистрировался на сайте, прошел верификацию своего номера, получил триальный номер Twilio и закачал пакет для работы с Twilio:
Также в интернете нашел пример работы с Twilio, который соединил вместе с кодом для работы с датчиком, внес кое-какие свои корректировки и вот что получилось:
Смс приходит следующего вида:
Sent from your Twilio trial account
- Some movement. Time: 2016-08-27 16:34:09
Фото процесса:
Далее я зарегистрировался на сайте, прошел верификацию своего номера, получил триальный номер Twilio и закачал пакет для работы с Twilio:
sudo pip3 install twilio Также в интернете нашел пример работы с Twilio, который соединил вместе с кодом для работы с датчиком, внес кое-какие свои корректировки и вот что получилось:
Смс приходит следующего вида:
Sent from your Twilio trial account
- Some movement. Time: 2016-08-27 16:34:09
Фото процесса:
понеділок, 22 серпня 2016 р.
Pythonchallenge №10
Продолжаю изучать Python и пробую выполнять задачки с его помощью. На этот раз сайт pythonchallenge.com задание номер 10.
Суть задания заключается в нахождении длины 30-го элемента списка. Также даны начальные элементы последовательности, которую надо продолжить:
Понять алгоритм, по которому строится список мне помог гугл и википедия: https://en.wikipedia.org/wiki/Look-and-say_sequence
В википедии, я обратил внимание на вот этот абзац:
"No digits other than 1, 2, and 3 appear in the sequence..."
и согласно этому ограничению написал свой алгоритм решения этой задачи:
Суть задания заключается в нахождении длины 30-го элемента списка. Также даны начальные элементы последовательности, которую надо продолжить:
a = [1, 11, 21, 1211, 111221,
Понять алгоритм, по которому строится список мне помог гугл и википедия: https://en.wikipedia.org/wiki/Look-and-say_sequence
В википедии, я обратил внимание на вот этот абзац:
"No digits other than 1, 2, and 3 appear in the sequence..."
и согласно этому ограничению написал свой алгоритм решения этой задачи:
середа, 17 серпня 2016 р.
Projecteuler проблема №5
Недавно начал изучать Python и нашел интересный сайт с задачками, которые пробую решать с помощью Python.
Решил выложить свой вариант решения проблемы №5:
По поводу сайта https://projecteuler.net/problem=N: для перехода к новому заданию меняем N на номер "проблемы"
Решил выложить свой вариант решения проблемы №5:
По поводу сайта https://projecteuler.net/problem=N: для перехода к новому заданию меняем N на номер "проблемы"
неділя, 31 липня 2016 р.
Как убрать метод ввода РУС-US в windows 10
У меня данная проблема проявилась при удаленном подключении к моему рабочему компьютеру. Вот как она выглядит:
Добавляя и удаляя разные языки в панели инструментов ни к чему не привели. Погуглив я нашел вот такое решение:
В регистре, в [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] добавить ключ "IgnoreRemoteKeyboardLayout"=dword:00000001
Добавляя и удаляя разные языки в панели инструментов ни к чему не привели. Погуглив я нашел вот такое решение:
В регистре, в [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] добавить ключ "IgnoreRemoteKeyboardLayout"=dword:00000001
середа, 30 березня 2016 р.
Определяем блокирующие сессии
Запрос не мой. Помогает, если не могу скомпилировать пакет - находим блокирующую сессию и киляем ее. Вылаживаю, что бы был под рукой.
select distinct orakill from (
select
/*+ ordered */
w1.sid waiting_session,
h1.sid holding_session,
w.kgllktype lock_or_pin,
w.kgllkhdl address,
(
select 'ALTER SYSTEM DISCONNECT SESSION ''' || s.SID || ',' || s.SERIAL# || ''' IMMEDIATE;' sqll1
from v$session s , v$process p
where s.PADDR=p.ADDR and s.sid = h1.sid
) orakill,
decode (h.kgllkmod, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 'Unknown' ) mode_held,
decode (w.kgllkreq, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 'Unknown' ) mode_requested
from dba_kgllock w,
dba_kgllock h,
v$session w1,
v$session h1
where ( ( (h.kgllkmod != 0)
and (h.kgllkmod != 1)
and ((h.kgllkreq = 0)
or (h.kgllkreq = 1)) )
and ( ((w.kgllkmod = 0)
or (w.kgllkmod = 1))
and ((w.kgllkreq != 0)
and (w.kgllkreq != 1)) ) )
and w.kgllktype = h.kgllktype
and w.kgllkhdl = h.kgllkhdl
and w.kgllkuse = w1.saddr
and h.kgllkuse = h1.saddr
)
select distinct orakill from (
select
/*+ ordered */
w1.sid waiting_session,
h1.sid holding_session,
w.kgllktype lock_or_pin,
w.kgllkhdl address,
(
select 'ALTER SYSTEM DISCONNECT SESSION ''' || s.SID || ',' || s.SERIAL# || ''' IMMEDIATE;' sqll1
from v$session s , v$process p
where s.PADDR=p.ADDR and s.sid = h1.sid
) orakill,
decode (h.kgllkmod, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 'Unknown' ) mode_held,
decode (w.kgllkreq, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 'Unknown' ) mode_requested
from dba_kgllock w,
dba_kgllock h,
v$session w1,
v$session h1
where ( ( (h.kgllkmod != 0)
and (h.kgllkmod != 1)
and ((h.kgllkreq = 0)
or (h.kgllkreq = 1)) )
and ( ((w.kgllkmod = 0)
or (w.kgllkmod = 1))
and ((w.kgllkreq != 0)
and (w.kgllkreq != 1)) ) )
and w.kgllktype = h.kgllktype
and w.kgllkhdl = h.kgllkhdl
and w.kgllkuse = w1.saddr
and h.kgllkuse = h1.saddr
)
Пересоздание отключенного триггера включает его
Сегодня столкнулись с проблемой - начала выполняться лишняя проверка. Оказалось, что проверка выполнялась в триггере, который уже очень давно был disable, а сейчас он enable. Посмотрели по логам: один из наших программистов внес изменения в функцию и решил везде, где вызывается эта функция внести те же изменения. Поиск всех мест вызовов он проводил через поиск в PL/SQL Developer. Наш триггер тоже попал в результаты поиска. Проблема только в том, что в окне поиска PL/SQL Developer не пишется, что триггер отключен. И вот, он открыл на редактирование триггер с формы поиска, внес корректировки и нажал F8 (компил). После этого триггер стал enable.
По-умолчанию триггеры создаются сразу включенными. Только после создания их статус можно поменять через ALTER TRIGGER. Начиная с 11 версии Оракла можно явно, при создании, задавать в каком статусе будет создан этот триггер.
Наш триггер начинался с текста:
CREATE OR REPLACE TRIGGER ...
И оказывается, что при REPLACE также происходит включение триггера.
По-умолчанию триггеры создаются сразу включенными. Только после создания их статус можно поменять через ALTER TRIGGER. Начиная с 11 версии Оракла можно явно, при создании, задавать в каком статусе будет создан этот триггер.
Наш триггер начинался с текста:
CREATE OR REPLACE TRIGGER ...
И оказывается, что при REPLACE также происходит включение триггера.
Підписатися на:
Дописи (Atom)

