aleksandr ● ru - блог http://aleksandr.ru/blog/ Последние 10 постов блога Mon, 16 Oct 2017 23:35:13 +0300 ru-ru Triage CMS.7 Тай чили вок в домашних условиях http://aleksandr.ru/blog/tay_chili_vok_v_domashnih_usloviyah/ http://aleksandr.ru/blog/tay_chili_vok_v_domashnih_usloviyah/#comments Mon, 16 Oct 2017 23:35:13 +0300 http://aleksandr.ru/blog/tay_chili_vok_v_domashnih_usloviyah/ Очередной вечер в холостяцком стиле дома послужил причиной кухонного креатива, который оказался на удивление удачен, а также позабавил моих друзей.


Итак рецепт как приготовить тай чили вок в домашних условиях.

Читать дальше

]]>
Node.js + oracledb на Ubuntu http://aleksandr.ru/blog/node_js___oracledb_na_ubuntu/ http://aleksandr.ru/blog/node_js___oracledb_na_ubuntu/#comments Fri, 13 Oct 2017 17:20:43 +0300 http://aleksandr.ru/blog/node_js___oracledb_na_ubuntu/ Начнем с того, что у нас есть уже установленный Oracle Instant Client и SDK на Ubuntu, процесс его установки описывать не буду тк все это давно описано. Итак, мы хотим подружить наш новомодный Node.js с ораклом. Для этого нам потребуется фирменный node-oracledb - a Node.js driver for Oracle Database.

Скорее всего команда

npm install oracledb

закончится ошибкой, потому, что как обычно это бывает с ораклом, не хватает переменных окружения. В моем случае Oracle Instant Client установлен в /opt/Oracle/instantclient_11_2, поэтому все буду описывать относительного этого пути. SDK расположен в /opt/Oracle/instantclient_11_2/sdk.

Идем в /etc/profile.d/oracle.sh, который вы создали при установке клиента, и добавляем в него OCI_LIB_DIR и OCI_INC_DIR, таки образом, чтоб получилось что-то вроде моего:

export PATH=/opt/Oracle/instantclient_11_2:$PATH
export LD_LIBRARY_PATH=/opt/Oracle/instantclient_11_2:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.UTF8
export ORACLE_HOME=/opt/Oracle/instantclient_11_2
export TNS_ADMIN=/opt/Oracle
export SQLPATH=/opt/Oracle/instantclient_11_2
export OCI_LIB_DIR=$ORACLE_HOME
export OCI_INC_DIR=$ORACLE_HOME/sdk/include

Так же можно прописать нужные переменные в /root/.bashrc для того, чтоб они были доступны под суперпользователем.

Читать дальше

]]>
Veto files в Samba http://aleksandr.ru/blog/veto_files_v_samba/ http://aleksandr.ru/blog/veto_files_v_samba/#comments Tue, 12 Sep 2017 00:08:54 +0300 http://aleksandr.ru/blog/veto_files_v_samba/ или как не дать маку и другим клиентам писать назойливые .DS_Store и Thumbs.db на файловый сервер.

Решается все достаточно просто - для этого существует директива veto files в конфиге самбы, она может быть установлена глобально или отдельно на каждую шару, вот пример из моего конфига:

veto files = /._*/.DS_Store/.T*/Thumbs.db
delete veto files = yes

И после рестарта самбы рекомендуется зачистить сервер от такого рода файлов командой

find /path/to/samba/shares \( -name ._* -or -name .DS_Store -or -name .T* -or -name Thumbs.db \) -delete

После этого проблема закрыта.

Справочный материал:

PS Так же на стороне мака можно запретить создание подобного рода файлов на сетевых носителях и прочих примонтированных устройствах командой

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Но по отзывам это применимо не ко всем Mac OS, из быстро-гуглинга так и не понял у кого работает, а у кого нет, но официальный саппорт apple рекомендует именно такой способ.

Читать дальше

]]>
Бабблс-бургерс http://aleksandr.ru/blog/babbls_burgers/ http://aleksandr.ru/blog/babbls_burgers/#comments Mon, 07 Aug 2017 13:03:29 +0300 http://aleksandr.ru/blog/babbls_burgers/ Готовим специальные котлеты на углях


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

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

Готовим салат. Мелко нарезаем огурцы и помидоры, перемешиваем с майонезом (или другим белым соусом, например, можно использовать чесночный). Так же можно использовать приправу для тако.

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

Блюдо готово к употреблению, можно подавать на стол.

Готовое блюдо

Читать дальше

]]>
Cretan Village или как я побывал в Греции http://aleksandr.ru/blog/cretan_village_ili_kak_ya_pobival_v_grecii/ http://aleksandr.ru/blog/cretan_village_ili_kak_ya_pobival_v_grecii/#comments Sun, 30 Jul 2017 22:28:37 +0300 http://aleksandr.ru/blog/cretan_village_ili_kak_ya_pobival_v_grecii/ Вот такой вид открывается лежа на кровати в отеле)

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

Но сначала о первом впечатлении. Греция встретила нас красивейшей посадкой на заходе солнца в маленьком аэропорту города Ираклиона, который расположен прямо на берегу моря. Через примерно полтора-два часа пути на автобусе, объехав множество отелей и когда уже капитально стемнело, мы таки добрались до своего.

Читать дальше

]]>
Авторизация, аутентификация и идентификация http://aleksandr.ru/blog/avtorizaciya__autentifikaciya_i_identifikaciya/ http://aleksandr.ru/blog/avtorizaciya__autentifikaciya_i_identifikaciya/#comments Thu, 06 Jul 2017 13:10:28 +0300 http://aleksandr.ru/blog/avtorizaciya__autentifikaciya_i_identifikaciya/ Авторизация будущего

Такие, казалось бы, схожие и одновременно разные понятия, которые часто путают. Чтоб не путаться самому, решил записать.

Идентификация

Идентификация (от латинского identifico — отождествлять): присвоение субъектам и объектам идентификатора и / или сравнение идентификатора с перечнем присвоенных идентификаторов. Например, представление человека по имени отчеству - это идентификация.

Аутентификация

Аутентификация (от греческого: αυθεντικός ; реальный или подлинный): подтверждение подлинности чего-либо или кого либо. Например, предъявление паспорта - это подтверждение подлинности заявленного имени отчества.

Авторизация

Авторизация является функцией определения прав доступа к ресурсам и управления этим доступом. Авторизация — это не то же самое что идентификация и аутентификация: идентификация — это называние лицом себя системе; аутентификация — это установление соответствия лица названному им идентификатору; а авторизация — предоставление этому лицу возможностей в соответствие с положенными ему правами или проверка наличия прав при попытке выполнить какое-либо действие. Например, авторизацией являются лицензии на осуществление определенной деятельности.

Читать дальше

]]>
Декодируем \x## последовательности в строке http://aleksandr.ru/blog/dekodiruem__x___posledovatelnosti_v_stroke/ http://aleksandr.ru/blog/dekodiruem__x___posledovatelnosti_v_stroke/#comments Fri, 30 Jun 2017 17:49:00 +0300 http://aleksandr.ru/blog/dekodiruem__x___posledovatelnosti_v_stroke/ Получая данные из unix консоли, в результате exec() и других вызовов, не латинские символы обычно экранируются с помощью \x##, где ## - это шестнадцатеричный код символа, но совсем не UTF8.

Например при получении текста сертификата средствами OpenSSL вместо русских будет что-то вроде этого:

C=RU, L=\xD0\x9C\xD0\xBE\xD1\x81\xD0\xBA\xD0\xB2\xD0\xB0,

Для того чтоб перевести это к читаемому виду в в консоли надо сделать:

<ваша команда> | sed 's@+@ @g;s@%@\\x@g' | xargs -0 printf '%b'

А для PHP вот такой код (на всякий случай, перед x стоит 4 обратных слеша):

preg_replace_callback('/\\\\x([0-9A-F]{2})/', function($a){ return pack('H*', $a[1]); }, $your_string);

В результате получаем русский текст:

C=RU, L=Москва,

Читать дальше

]]>
Добавление SubjectSignTool в КриптоПро ЭЦП Browser plug-in http://aleksandr.ru/blog/dobavlenie_subjectsigntool_v_kriptopro_ecp_browser_plug_in/ http://aleksandr.ru/blog/dobavlenie_subjectsigntool_v_kriptopro_ecp_browser_plug_in/#comments Fri, 23 Jun 2017 12:01:16 +0300 http://aleksandr.ru/blog/dobavlenie_subjectsigntool_v_kriptopro_ecp_browser_plug_in/ КриптоПро


Пишу, как говорится, о наболевшем, я от всей души ненавижу создателей браузерного плагина crypto-pro, но об этом в PS, а теперь к делу. В процессе формирования запроса на сертификат (CSR) силами cadesplugin нам нужно добавить в него расширение SubjectSignTool (OID.1.2.643.100.111) со значением в виде строки (UTF8String).

На первый взгляд все кажется не сложно: создать объект X509Enrollment.CObjectId и инициализировать его значением, создать объект X509Enrollment.CX509Extension и инициализировать его созданным OID и нужной строкой с правильным EncodingType. Сделать это правда придется два раза, для синхронного и асинхронного режима, но об этом тоже в PS. На практике все не так просто, и приходится погружаться в низкоуровневое кодирование ASN.1.

Читать дальше

]]>
Башня http://aleksandr.ru/blog/bashnya/ http://aleksandr.ru/blog/bashnya/#comments Tue, 13 Jun 2017 14:59:49 +0300 http://aleksandr.ru/blog/bashnya/ Обычно, в большинстве случаев, содержимое определяет форму, но иногда, достаточно редко, содержимое подбирается под привлекательную форму. Так случилось и в этот раз, проходя в магазине мимо стеклянного клоша на деревянной подставке, он показался мне забавной безделицей, которую и применить-то особо некуда. Позже я стал замечать эти предметы обихода в фильмах, обычно про старину, и в них всегда находилось что-то причудливое, а вовсе не банальные искусственные цветочки, как в магазине. Так родилась идея сделать собственную диковинку под стеклом.

С диковинкой определился быстро, как раз форма определила, что лучшим содержимым будет модельная водонапорная башня в масштабе 1/87. Выбор такого рода построек был не велик и с конкретным строением быстро определился. Естественно, построить просто домик под стеклом казалось слишком просто, и поэтому было решено сделать внутреннее освещение, а снаружи - некоторое подобие жизни людей. Получилось вот это:

IMG_20170612_222133.jpg

Читать дальше

]]>
Мой гид по Абхазии http://aleksandr.ru/blog/moy_gid_po_abhazii/ http://aleksandr.ru/blog/moy_gid_po_abhazii/#comments Wed, 03 May 2017 11:36:50 +0300 http://aleksandr.ru/blog/moy_gid_po_abhazii/ Абхазия

Этой весной мне довелось провести неделю отпуска в замечательной стране - Абхазии. Поскольку дело было не в сезон, то отдых получился очень спокойный, почти без суеты. Не смотря на то, что львиную долю дохода Абхазии составляет туризм, страна не особо "заточена" под туристов и ровно поэтому я постараюсь рассказать свой мини-гид с координатами и ценами. Официальной валютой Абхазии является российский рубль, это добавляет удобства путешественникам.

Для начала как добраться. Проще всего взять билет на самолет до Сочи и из аэропорта на автобусе или такси добраться до границы. Автобусы останавливаются прямо у здания аэропорта, до границы идет автобус 173 на КПП Псоу. Если же вы с разбегу проскочили остановку и вышли на парковку, там вас встретят услужливые таксисты предлагая доехать за разные суммы, но реальная цена такси до границы - 400 руб., на всякий случай можно уточнить, что нужна пешеходная граница. Дорога занимает примерно пол часа.

Граница России и Абхазии проходит по реке Псоу, нейтральная полоса - это мост через горную реку. Переход границы не представляет из себя ничего особенного, идем со своим российским паспортом и показываем его на входе на КПП, на таможне, попутно рассказывая цель визита в Абхазию, и на выходе с КПП. Самой длительной частью является российская таможня, которая в зависимости от очереди может занять до получаса.

Выйдя с КПП нас встречает площадь с маршрутками во все концы Абхазии. Проезд до столицы, города Сухума, стоит 200 руб. и занимает порядка 2 часов. Надо отметить, что Абхазия ведет дневной образ жизни, поэтому чем ближе к темному времени суток - тем меньше будет маршруток на площади, и тем больше шансов попасть на поездку на такси за несколько тысяч. Дорога идет по побережью и достаточно живописна.

В принципе, попадая в Абхазию, создается ощущение, что попал в 90-е годы в Россию: основной транспорт - маршрутки, основная торговля на рынках и в палатках, все расчеты за наличные, мало где принимают карты и не всегда это работает.

Читать дальше

]]>