13 Октября 2017 17:20

Node.js + oracledb на Ubuntu

JavaScript Oracle Linux

Начнем с того, что у нас есть уже установленный 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 для того, чтоб они были доступны под суперпользователем.

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

23 Июня 2017 12:01

Добавление SubjectSignTool в КриптоПро ЭЦП Browser plug-in

Про работу JavaScript КриптоПро

КриптоПро


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

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

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

18 Января 2011 17:16

Кроссдоменная авторизация

Про работу JavaScript PHP

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

А вот что касается реализации, то тут есть масса мнений и способов, достаточно спросить гугля по фразе "кроссдоменная авторизация" и почитать длинные дискуссии. Для себя я вижу 2 варианта реализации этой моды: одно простое и красивое, но с ограничениями, другое более сложное и не такое изящное, но более свободное.

О спецификации Cross-Origin Resource Sharing речь пока не идет, поскольку она еще нигде не поддерживается.

Начнем с простого и красивого решения.

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

03 Декабря 2009 16:54

Вызов JavaScript функции из Flash для чайников :)

JavaScript Flash

Происходит это все от задач: надо сделать рекламный банер на флеше с кнопкой закрыть.

Реализация: Делаем флеш-ролик, помещаем в DIV, при нажатии на закрыть прячем DIV (если существует более простой или правильный способ рад буду узнать). Прятать DIV будем естественно жаваскриптом, для этого нужно чтоб наш ролик вызывал javascript-овую функцию в документе.

Для этого во флеше создаем кнопку закрыть, идем в ActionScript и там пишем:

on(release)
{
  
import flash.external.ExternalInterface;
ExternalInterface.call("myFunction");  

}

Благодаря этому при нажатии кнопки будет вызываться функция myFunction из документа :)

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

06 Апреля 2009 17:14

Ошибка "операция прервана" в MS Internet Explorer 6 и 7

Про работу В мемориз JavaScript

Сегодня столкнулся с сабжем в wordpress. Оказалось причиной вроде как явился плагин LightBox 2, но проблема (по крайней мере на моем компе) плавающая т.е. возникает не всегда.

После копания в гугле вяснилось, что мокрософт знает о существовании проблемы "Internet Explorer cannot open the Internet site http://.com. Operation aborted.". Проблема возникает если "This problem occurs because a child container HTML element contains script that tries to modify the parent container element of the child container. The script tries to modify the parent container element by using either the innerHTML method or the appendChild method.". А если по русски "Возникает это, потому что дочерний контейнер содержит скрипт, изменяющий родительский контейнер.".

На мокрософте в качестве багфикса предлагют обновиться до IE 8 или править скрипты. Вот пример кривого скрипта (вызывающего ошибку и ИЕ):

<html>
  <body>
  <div>
  <script type="text/Javascript">
  document.body.innerHTML+="sample text";
  </script>
  </div>
  </body>
</html>

И вот пример как нужно правильно:  

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

Фильтр