понедельник, 13 ноября 2017 г.

Chrome 60 или спасибо Google за месяц работы

В августе 2017 вышла очередная версия популярного браузера от Google.

В ней не было ничего примечательного, кроме незадокументированного отказа от использования синхронных AJAX-запросов.

То, о чем писали еще в 2012г., вдруг стало реальностью.
https://developers.google.com/web/updates/2012/01/Getting-Rid-of-Synchronous-XHRs

К сожалению, наше ПО широко использовало такие вызовы, так что пришлось глобально переделать клиентскую часть.

Например, у нас были методы по выставлению переменных, после которых запускались вызовы процессов - теперь приходится использовать callback и объединять методы в один.

После отказа от Java-плагинов и этого случая мы всерьез задумались над опасностью, которая зависла над нашими вьюверами, написанными на Flash. Go HTML5!

Мистика цифр

Та ситуация, когда руки сами тянутся сделать бэкап раздела...

Надо разобрать эту файловую помойку.

среда, 6 сентября 2017 г.

Устаревание паролей в Oracle ORA-28001



Вот что надо сделать, чтоб по умолчанию пароли не устаревали:
alter profile default limit password_life_time UNLIMITED;

Имя профиля можно узнать так:


SQL> select profile from DBA_USERS where username ='USER1'
  2  ;

PROFILE
------------------------------
DEFAULT




Симптомы:
SQL> conn user1/passwd
ERROR:
ORA-28001: the password has expired


Changing password for posc
New password:
Retype new password:
Password changed
Connected.

пятница, 26 мая 2017 г.

Конференция ESRI


https://www.esri-cis.ru/events/tumen2017/

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

среда, 24 мая 2017 г.

Выбор ноутбука 2017


Меня попросили сделать обзор ноутбуков, вот небольшой отчет.

Основное использование - замена настольному компьютеру, работа с картографическим ПО (Ocad), MS Office.

Размер - думаю, больше 15-16 дюймов нет смысла брать, слишком грамоздкий ноутбук будет. Меньше 14 дюймов тоже не рассматриваем, вес и компактность не нужны.
Производители - Asus, Lenovo, Dell, MSI, возможно HP (но у них много неудачных моделей). Sony и Apple, увы, недосягаемы по цене.
Оперативная память - DDR4 от 8Гб. Лучше, если останутся свободные порты для будущего апгрейда.
Жесткий диск - лучше SSD, он гораздо быстрее работает, пусть и меньше по объему. Всегда можно подключить внешний жесткий диск для хранения больших объемов данных.
Процессор - лучше Intel i5 или i7, они на сегодня самые энергоэффективные - греются меньше, чем AMD.
ОС - Windows
Наличие DVD - желательно, но не обязательно
Видеокарта - не принципиально, нет задачи устанавливать самые современные игры
Материала корпуса - конечно предпочтительней металлический
Клавиатура - нужно проследить, чтобы клавиши были расположены интуитивно понятно, была большая клавиша "Enter". Сегодня многие производители куда только не засовывают клавиши Del, Insert и навигационные стрелки - надо проверить, чтобы клавиатура была удобной. Например, в одном ПО для хронометража Insert играет большую роль, а вызывается через созетание функциональной клавиши Fn и Del на одном моем ноутбуке, что очень неудобно.
Ну и конечно нам не стоит переплачивать за все эти функции, поэтому если будет выбор из моделей за 40 000р и 60 000р, выберем 1 вариант. Но конечно психологический порог в 1000у.е. лучше не преодолевать.
Экран - сейчас лучше брать экраны с матрицей типа IPS, цветопередача гораздо лучше.

Подборка от Яндекс-маркета:
https://market.yandex.ru/catalog/54544/list?how=aprice&glfilter=5085109%3A12106317%2C12675467&glfilter=5085113%3A14~17&glfilter=5085123%3A12106809&glfilter=5085125%3A500~&glfilter=5085126%3A12106819%2C12106821&glfilter=5085139%3A1&glfilter=5085148%3A1&glfilter=6068613%3A12106928%2C12106930&glfilter=7893318%3A152863%2C153080%2C152722%2C152981%2C762076%2C152955&glfilter=10562516%3A8~&glfilter=13904377%3A13904409%2C13904406&local-offers-first=0&deliveryincluded=1&priceto=70000&onstock=0

Довольно неплохим выбором может быть Lenovo ThinkPad EdgeE570
https://www.notebookcheck-ru.com/Obzor-noutbuka-Lenovo-ThinkPad-Edge-E570-Core-i5-GTX-950M.196700.0.html

HP Pavilion 15-au101ur будет даже с 12Гб оперативной памяти
http://www.notik.ru/goods/48351.htm#tab4

Если убрать из требований быстрый диск SSD, можно немного сэкономить, да и выбор будет гораздо больше.
ASUS X550LD
ASUS X556

DELL Inspiron 5567
DELL Inspiron 5559
Lenovo IdeaPad 300
Lenovo V510
MSI GL62
HP ProBook 450
HP Pavilion 15
Ну а если смотреть на цену до 2000 у.е.
Lenovo IdeaPad Y-700
Lenovo ThinkPad Yoga 15

Asus ZenBookPro UX501

Dell XPS 15 9550

вторник, 23 мая 2017 г.

GlassFish4 - Location Header for CGI

Поддержка CGI есть у GlassFish, однако для нас было критично использовать переадресацию в скриптах через залоговок Location.

Оказывается поддержка этого заголовка просто пока отсутствует в сервлете для CGI...
И ничего не меняется за последние 3 года в исходниках, видимо CGI - это действительно устаревшая технология, по крайней мене для J2EE.

https://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/servlets/CGIServlet.html


''The CGI specification is located at http://cgi-spec.golux.com.

TODO:


  • Support for setting headers (for example, Location headers don't work)''

 
  
Что у нас с остальными серверами?
Надо отдать должное Oracle WebLogic (Куплен у BEA)- там это работает! Но исходников нет.

Wildfly (Он же JBoss) не поддерживает CGI вообще, к нему предлагают прикручивать сервлеты от Tomcat.

Но решение все же есть - используем JavaScript!

#!/bin/sh
#
echo "Content-Type: text/html"
echo ""

echo '<script type="text/javascript"> window.location.replace("http://ya.ru") </script>'

среда, 22 марта 2017 г.

self-signed SSL certificate & Firefox 31-33


Firefox версий 31-33 имели баг, запрещающий использовать самоподписанные сертификаты. Причем его исправили только со второй попытки, поэтому в 3 версиях он присутствовал как fixed.

  

Решается:

1. Обновлением FF - лучше в дистрибутив поновее FF положить

2. Прописываем в FF в about:config security.use_mozillapkix_verification=true

https://blog.dob.sk/2014/07/23/firefox-31-self-signed-certificate-sec_error_ca_cert_invalid/

forums.mozillazine.org/viewtopic.php?f=38&t=2884241


Самый лучший комменатрий:
Also shows up as unresolved for version 33 on https://www.mozilla.org/en-US/firefox/releases/ I am an administrator that deals with a wide variety of devices that have self-signed certificates that are only accessible from a LAN, and encounter this error daily. MOZILLA HAS DECIDED THAT IT KNOWS BETTER THAN ME WHETHER OR NOT TO ACCEPT A SECURITY CERTIFICATE WHICH ONLY EXISTS ON MY NETWORK! Now instead of having a sloppy work-around (v31,32) - it just no longer works (v33). After fighting with it a few hours today I have decided it is much easier to use Chrome (which lets me decide if a certificate is safe) as my default browser as this issue has plagued me thru 3 versions now (31,32,33) and is still not resolved.


генерация современного самоподписанного сертификата для Weblogic



-bash-4.1$ cd /data/petroviz

-bash-4.1$ cp ./user_projects/domains/pviz/security/DemoIdentity.jks ./user_projects/domains/pviz/security/DemoIdentity.jks.bak

-bash-4.1$ keytool -keystore ./user_projects/domains/pviz/security/DemoIdentity.jks -alias DemoIdentity -storepass DemoIdentityKeyStorePassPhrase -genkeypair -keyalg RSA -keysize 4096 -sigalg SHA1withRSA -keypass DemoIdentityPassPhrase -validity 3560
What is your first and last name?
  [Unknown]:  petrovision
What is the name of your organizational unit?
  [Unknown]:  PetroVision
What is the name of your organization?
  [Unknown]:  Geoleader
What is the name of your City or Locality?
  [Unknown]:  Tyumen
What is the name of your State or Province?
  [Unknown]:  Tyumen
What is the two-letter country code for this unit?
  [Unknown]:  RU
Is CN=petrovision, OU=PetroVision, O=Geoleader, L=Tyumen, ST=Tyumen, C=RU correct?
  [no]:  yes

среда, 1 февраля 2017 г.

Oracle - check last symbol in column

Задача:

Проверить, является ли последний символ значений из заданного столбца цифрой.

 решение для Oracle через regexp. 

 SELECT col,
       CASE
       WHEN col IS NULL THEN NULL
       ELSE CASE
         WHEN REGEXP_LIKE( substr(col, -1), '^[0-9]+$') THEN 'Numeric'
         ELSE 'Char'
         END
       END data_type
  FROM
  (select '23232a3s2' col from dual);