?

Log in

No account? Create an account

okyl's Journal

Wednesday, October 3, 2012

2:04PM - Чистка диска на винде

Толковая тулза, значительно упрощающую чистку засранного диска на виндовой машине. TreeSize Free v2.7 
http://www.jam-software.com/treesize_free/

2:01PM - шелл для вспомогательных устройств

XBMC Media Center - отличный шелл для вспомогательных устройств на базе старых ноутов или аналогов raspberry pi

Saturday, May 26, 2012

2:19AM - Get focus by PID (win)

ActivatePID.bat
[code]

@echo Off
if {%1}=={} @echo Syntax: ActivatePID PID&goto :EOF
if exist "%TEMP%\ActivatePID.vbs" goto :doit
@echo dim  objArguments, pid>"%TEMP%\ActivatePID.vbs"
@echo Set WshShell = CreateObject("WScript.Shell")>>"%TEMP%\ActivatePID.vbs"
@echo Set objArguments = Wscript.Arguments>>"%TEMP%\ActivatePID.vbs"
@echo pid = objArguments(0)>>"%TEMP%\ActivatePID.vbs"
@echo WshShell.AppActivate pid>>"%TEMP%\ActivatePID.vbs"
:doit
cscript //nologo "%TEMP%\ActivatePID.vbs" %1


now run: ActivatePID.bat 100500

Thursday, April 5, 2012

9:29PM - Генерация openssl сертификатов

1. Качаем последний openssl для винды http://www.openssl.org/related/binaries.html
2. Инсталим openssl
3. Прописываем pathes до openssl.exe и openssl.conf
4. Батником генерим сертификаты
5. test.cer, test.csr, test.key подкладываем веб-серверу в соответствующем формате
6. Самоподписной сертификат авторити центра ca.cer скармливаем браузеру с максимальным уровнем доверия

[Код батника]

cd с:\
set SSLFOLDER=certs
set CERTDOMAIN=certificate.com
set MYDOMAIN=mydomain.com
rem Create folders
md %SSLFOLDER%
cd %SSLFOLDER%
md key
md csr
md cer
md crl
md p12
type nul > database.txt
echo 01 > serial.txt
rem Create openssl.conf
echo [ ca ] >> openssl.conf
echo default_ca      = CA_default # The default ca section >> openssl.conf
echo [ CA_default ] >> openssl.conf
echo database       = database.txt# index file. >> openssl.conf
echo new_certs_dir  = cer         # new certs dir >> openssl.conf
echo certificate    = cer/ca.cer  # The CA cert >> openssl.conf
echo serial         = serial.txt  # serial no file >> openssl.conf
echo private_key    = key/ca.key  # CA private key >> openssl.conf
echo RANDFILE       = rand.txt    # random number file >> openssl.conf
echo default_days   = 365         # how long to certify for >> openssl.conf
echo default_crl_days= 30         # how long before next CRL >> openssl.conf
echo default_md     = md5         # md to use >> openssl.conf
echo policy         = policy_any  # default policy >> openssl.conf
echo email_in_dn    = no          # Don't add the email into cert DN >> openssl.conf
echo [ policy_any ] >> openssl.conf
echo countryName            = supplied >> openssl.conf
echo stateOrProvinceName    = optional >> openssl.conf
echo organizationName       = optional >> openssl.conf 
echo organizationalUnitName = optional >> openssl.conf
echo commonName             = supplied >> openssl.conf
echo emailAddress           = optional >> openssl.conf
echo [ req ] >> openssl.conf
echo distinguished_name     = req_distinguished_name >> openssl.conf
echo attributes             = req_attributes >> openssl.conf
echo [ req_distinguished_name ] >> openssl.conf
echo countryName                    = Country Name (2 letter code) >> openssl.conf
echo countryName_default            = AU >> openssl.conf
echo countryName_min                = 2 >> openssl.conf
echo countryName_max                = 2 >> openssl.conf
echo localityName                   = Locality Name (eg, city) >> openssl.conf
echo organizationalUnitName         = Organizational Unit Name (eg, section) >> openssl.conf
echo commonName                     = Common Name (eg, YOUR name) >> openssl.conf
echo commonName_max                 = 64 >> openssl.conf
echo emailAddress                   = Email Address >> openssl.conf
echo emailAddress_max               = 40 >> openssl.conf
echo [ req_attributes ] >> openssl.conf
echo challengePassword              = A challenge password >> openssl.conf
echo challengePassword_min          = 4 >> openssl.conf
echo challengePassword_max          = 20 >> openssl.conf
rem Generate CA
openssl genrsa -des3 -out key/ca.key 1024
openssl req -config openssl.conf -new -x509 -days 365 -key key/ca.key -out cer/ca.cer -subj "/C=RU/ST=Russia/L=Moscow/O=Certification Ltd./OU=CA/CN=%CERTDOMAIN%"
openssl ca -config openssl.conf -gencrl -out crl/ca.crl
openssl pkcs12 -export -in cer/ca.cer -inkey key/ca.key -out p12/ca.p12
rem Generate Test
openssl.exe req -config openssl.conf -new -newkey rsa:1024 -keyout key/test.key -nodes -out csr/test.csr -subj "/C=RU/ST=Russia/L=Moscow/O=MyCompany/OU=IT Departament/CN=%MYDOMAIN%"
openssl ca -policy policy_any -config openssl.conf -in csr/test.csr -days 360 -out cer/test.cer
openssl pkcs12 -export -out p12/test.p12 -in cer/test.cer -inkey key/test.key



Для апгрейда экстеншинов ФФ прописываем ключи:
"app.update.cert.requireBuiltIn", false
"extensions.install.requireBuiltInCerts", false
"extensions.update.requireBuiltInCerts", false

Tuesday, January 10, 2012

2:03PM - Javascript Char Codes (Key Codes)

Javascript Char Codes (Key Codes)

Key Code
backspace 8
tab 9
enter 13
shift 16
ctrl 17
alt 18
pause/break 19
caps lock 20
escape 27
page up 33
page down 34
end 35
home 36
left arrow 37
up arrow 38
right arrow 39
down arrow 40
insert 45
delete 46
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
a 65
b 66
c 67
d 68

Key Code
e 69
f 70
g 71
h 72
i 73
j 74
k 75
l 76
m 77
n 78
o 79
p 80
q 81
r 82
s 83
t 84
u 85
v 86
w 87
x 88
y 89
z 90
left window key 91
right window key 92
select key 93
numpad 0 96
numpad 1 97
numpad 2 98
numpad 3 99
numpad 4 100
numpad 5 101
numpad 6 102
numpad 7 103

Key Code
numpad 8 104
numpad 9 105
multiply 106
add 107
subtract 109
decimal point 110
divide 111
f1 112
f2 113
f3 114
f4 115
f5 116
f6 117
f7 118
f8 119
f9 120
f10 121
f11 122
f12 123
num lock 144
scroll lock 145
semi-colon 186
equal sign 187
comma 188
dash 189
period 190
forward slash 191
grave accent 192
open bracket 219
back slash 220
close braket 221
single quote 222

12:41PM - How to close a tab and open a new tab using Selenium RC

Alternatively, try firing a Ctrl+T event to open a new tab:
selenium.keyDownNative("17");
selenium.keyPressNative("84");
selenium.keyUpNative("17");


and Ctrl+W to close the tab:
selenium.keyDownNative("17");
selenium.keyPressNative("87");
selenium.keyUpNative("17");

Monday, January 9, 2012

2:05AM - boot usb

http://unetbootin.sourceforge.net/
http://netbootcd.tuxfamily.org/

Wednesday, January 4, 2012

6:57PM - мультикаст трек

http://plclub.ru/index.php?name=Pages&pid=18
http://www.webpagescreenshot.info/img/849850-14201215542PM

Tuesday, January 3, 2012

8:41PM - How to create Firefox profile for your Selenium?

How to create Firefox profile for your Selenium?

Make sure all your firefox instance are closed
Click Start>Run
Type “firefox.exe -ProfileManager -no-remote”
Select “Create Profile” (i.e. selenium)
Click “Next”
Enter new profile name
Select a directory folder to store your new profile
Click “Finish”
Select “Don’t ask at startup”
Click “Start Firefox” and configure settings based on suggestion below***
Set Profile back to “default” (enable you to use your previous settings on your browser)
Add -firefoxProfileTemplate command line option as you start the Selenium Server
java -jar selenium-server.jar -firefoxProfileTemplate “

Friday, October 14, 2011

2:28PM - Сервера для вин приложений

самые дешевые вин впс по 4.95
https://www.atelra.com/vps/index.php?os=win&type=eco

Tuesday, October 11, 2011

5:21PM - Чем эмулировать низкую скорость интернета

http://www.dallaway.com/sloppy/
Firefox Throttle plugin
Wondershaper
YSlow

Saturday, August 20, 2011

12:31AM - Размышления о том, как правильно спрашивать, чтобы получать ответы

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

Основная причина в том, что у людей, которые спрашивают и у людей, которые отвечают отличаются «картины мира», т.е. разные взгляды на одни и теже вещи. Картина мира – способ восприятия и интерпретации событий и явлений [1]. К примеру, если вопрос задает разработчик, он задает вопросы с точки зрения решаемой им конкретной задачи (важной для него, но мелкой в с точки зрения системы в целом), архитектор после прочтения вопроса, может ответить на него с точки зрения архитектуры системы в целом, а аналитик на этот же вопрос — с точки зрения требований и в терминалогии сферы проекта. То есть задавая один и тот же вопрос людям с разными сферами деятельности мы можем получить разные ответы. Они не будут неправильными, просто они будут отражать разное видение одного и того же объекта/ситуации (иными словами – «картины мира»). Надо сказать, что картины мира у всех людей в принципе различаются.
Простой жизненный пример: спросите у соседа справа, что для него значит «хороший разработчик» и возможно Вы получите ответ, который с Вашим представлением никак не совпадает.
Таким образом, прежде, чем задать вопрос, необходимо позаботиться о его смысловом содержании(предмете вопроса).
Предмет вопроса — это концептуальное видение объекта, определяемое исследователем и отражающее его сущностное содержание [2]. Соотвественно смысловое содержание вопроса – это выражение предмета вопроса. Именно смысловое содержание вопроса сильно зависит от взгляда на вещи. Поэтому задавая вопрос, необходимо помнить постое правило: «какой вопрос – такой ответ».

Так же стоит помнить, что существуют следующие типы вопросов:

1. Закрытые вопросы – вопросы на которые можно дать однозначный ответы Да/Нет. Пример: Допускается ли использовать в рамках проекта .NET?
2. Открытые вопросы – вопросы на которых нет однозначного ответа и нам важно услышать от собеседника его мнение и взгляды по предмету вопроса. Пример: Какое будет Ваше мнение об использовании .NET в рамках проекта?
3. Наводящие вопросы – вопросы, сформулированные так, чтобы подсказать собеседнику ожидаемый от него ответ. Пример: В настоящий момент Ваши сервера работают под управлением MS Windows Server 2008, мы можем реализовать функиональность на Java или .Net. Какое будет Ваше решение?
4. Контрольные вопросы — вопросы цель которых проверить, что вы достигли понимания предмета вопроса. К примеру: Я правильно понял, что мы будем реализовывать проект с помощью .NET?

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

1. Прежде чем задать вопрос, необходимо для себя четко определить предмет задаваемого вопроса(сформулировать его содержание). Иначе говоря то, о чем вы хотите спросить и что ожидаете услышать в ответ. Таким образом вы сможете заранее определить, кто сможет ответить на Ваш вопрос.
2. Исходите из того, что картины мира людей разные и один и тот же вопрос может быть понят по разному. Поэтому прежде чем его задать, постарайтесь хотя бы вкратце обрисовать собеседнику ваше видение ситуации ( «картину мира»). Благодаря этому вы сможете синхронизировать ваши взгляды на предмет вопроса. Так же помните, что иногда возникает необходимо уточнить терминологию, используемую Вами при изложении предмета вопроса, потому что одни и теже термины могут быть поняты собеседниками по-разному или не поняты в принципе.
3. Избегайте избыточного использования «закрытых вопросов. Зачастую у людей, к которым адресован такой вопрос,
нет однозначного ответа и/или им нужна дополнительная информация, чтобы принять решение. Злоупотребление данным типом вопросов ведет к созданию напряженной атмосферы при коммуникации, так как у партнера может сложиться впечатление, что его допрашивают. Закрытые вопросы лучше всего использовать для подведения итогов в качестве контрольных вопросов.
4. Если у Вас есть несколько вариантов решения проблемы, но Вы затрудняетесь в выборе одного из них, то сначала опишите проблему, опишите возможные варианты решения с их плюсами и минусами и задайте вопрос, какое из предложенных решений можно использовать. При такой постановке вопроса, вы предоставляете информацию для принятия решения и одновременно ограничиваете возможные варианты ответа. Как правило, для человека проще выбрать что-то из уже готовых вариантов, чем дать ответ на абстрактный вопрос « а как надо?».
5. Если вам необходимо задать вопрос, в ответ на который Вы ожидаете, что вам расскажут некие подробности о предмете вопроса, то воспользуйтесь стратегией «от общего к частному». Задавая сначала общий вопрос, затем уточняя детали. А не наоборот, иначе начиная с детальных вопросов, можно упустить главное – что именно надо сделать или что именно вы пытаетесь решить. При этом лучше начинать с открытых вопросов, затем плавно преходя к уточняющим и подводя итоги закрытыми вопросами.
6. Если Вы чувствуете, что собеседник Вас не понял или полученный ответ не совсем понятен Вам, используете уточняющие вопросы, которые позволят синхронизировать взгляды на предмет вопроса ваши и собеседника. К примеру:
— Мы планируем в рамках проекта использовать .NET. Устроит ли вас этот вариант?
— С точки зрения ведения нашего бизнеса, нам главное обеспечить производительность приложения.
— Мы правильно поняли, что при условии если будет обеспечена производительность приложения мы можем использовать .NET?

с хабра http://habrahabr.ru/blogs/pm/126669/

Wednesday, April 13, 2011

9:54AM - Нетбук 1024*600 > 1024*768

На нетбуках используется разрешение 1024*600, но в отдельных программах не видно всех элементов и требуется хотя бы стандартное 1024*768. Для самсунговских нетбуков есть тул - Easy Resolution Manager, который позволяет переключать разрешение экрана с 1024*600 на 1024*768. Так как реально невозможно втиснуть в экран дополнительные пиксели, разрешение 1024*768 достигается путём "удвоения" отдельных пикселей. Выглядит плохо, зато позволяет решить задачу, где требуется разрешение хотя бы 1024*768.

Friday, March 11, 2011

2:31PM - Материалы с msqaday 2011

Выложили видео с msqaday. Скорее всего оно там долго не пролежит, а так как я часто возвращаюсь к пройденному материалу, перезалил копию себе.
Видео: http://video.yandex.ru/users/a--a--d/collection/2/
Слайды докладчиков: http://pics.livejournal.com/okyl/

Thursday, March 10, 2011

1:30PM - TeamViewer для удаленной помощи и совместной работы

Понравился TeamViewer для удаленной помощи и совместной работы.

Чтобы открыть с другим человеком шаренную сессию достаточно:
1. ссылку http://www.teamviewer.com/download/TeamViewerQS_ru.exe для запуска
2. назвать показываемый 9-ти значный цифровой ID и 4-х значный цифровой ID.
И все!

Циферки экономят время и нервы при передаче этих данных по телефону. Платформы: вынь, линь, мак, айшмел, андроша. Стандартный пак аудио-видео, VPN, файл-экчендж. Никакой ёбли с файрволлами, блоканными портами прова, NAT'ом портов роутера или adsl-мопеда. Все быстро, четко и без лишнего гемора.

Tuesday, February 22, 2011

1:05PM - онлайн трансляция MS Quality Assurance Day

 Конференция посвящена Software Quality Assurance в целом, то есть тому, как разрабатывать качественное ПО, какие процессы, методы и инструменты нужны для создания качественного, а значит более надежного, удобного и функционального ПО.

http://www.microsoft.com/ru-ru/events/msqadays/index.html
В записи будет выложена позже.

Wednesday, February 16, 2011

3:19PM - Анонимные сети

Ants P2P http://antsp2p.sourceforge.net/
BitBlinder http://www.bitblinder.com/
Filetopia http://www.filetopia.org/
Freenet http://freenetproject.org/
GNUnet https://gnunet.org/
Gnutella http://www.the-gdf.org/ http://www.gnutelliums.com/
Gnutella2 http://g2.trillinux.org/
Invisible Internet Project http://www.i2p2.de/
Manolito http://www.manolito.com/
MUTE http://mute-net.sourceforge.net/
Netsukuku http://netsukuku.freaknet.org/
Nodezilla http://www.nodezilla.net/
RShare/StealthNet http://rshare.de/ https://www.stealthnet.de/
SKad (OpenKAD) http://www21.atwiki.jp/botubotubotubotu/
Turtle http://www.turtle4privacy.org/
WASTE http://waste.sourceforge.net/

11:33AM - Стационарные проксики

Хороший такой сервис http://www.proxybonanza.com/
8 полностью анонимных стационарных амерских проксей, 3 гига трафа в мес. за 6 баксов.

Понравился плагин для фф (подгрузка списков прокси, включение/выключение/смена прокси одним кликом)
http://blog.proxybonanza.com/category/addons/

Sunday, February 13, 2011

1:32AM - Унылые интерфейсы

Унылые интерфейсы - это такие интерфейсы, которыми не пользуются их создатели.

Пример такого интерфейса, где смена пароля происходит по следующему сценарию (реальный сценарий смены пароль в моем банк-клиенте):
 1. Пользователю, т.е. мне необходимо сменить пароль.
 2. Жму "сменить пароль" перехожу на страницу с формочкой где требуется ввести старый пароль и два раза новый, а также каптчу. Вспомогательной информации о требованиях к паролям естественно нету.
 3. Ввожу старый пароль, придумываю новый пароль, 2 раза его ввожу, рассматриваю каптчу и ввожу ее. Нажимаю "Отправить".
 4. Данные отправились, страница обновилась, появилось сообщение "Пароль должен быть не менее 8 символов". При этом естественно поля "Старый пароль" и 2 поля "Новый пароль" очистились.
 5. Окей, придумываю новый более длинный пароль, заполняю заново все поля и нажимаю "Отправить".
6. На этот раз система сообщает "Пароль должен содержать минимум 2 цифры". Ну что же не буду отступать.
7. Ввожу старый пароль, придумываю новый пароль содержащий 2 цифры, 2 раза его ввожу, рассматриваю каптчу и ввожу ее. Нажимаю "Отправить".
8. Новое сообщение системы радует "Пароль должен содержать как минимум 1 символ верхнего регистра."
9. Ввожу старый пароль, придумываю новый пароль содержащий на этот раз и 1 символ верхнего регистра, 2 раза его ввожу, рассматриваю каптчу и ввожу ее. Нажимаю "Отправить".
10. Получаю сообщение "Пароль успешно изменен". Сложный и запутанный квест "Смени пароль" пройден.

Создатели системы решили поиграть в заботу о безопасности пользователя и сделали жесткое правило на пароли, которое требует длину более 8 символов, 2 цифры и 1 символ верхнего регистра. Очевидно, чтобы снизить количество случаев воровства или подбора паролей и снижения обращений пользователей в связи с этим в службу поддержки.

Пользователи конечно получили более высокий уровень безопаности, но вместе с этим получили 4 ряда граблей. Итого вместо пяти простых действий из заполнения 4-х полей и подтверждения отправки данных, необходимо пройти это как минимум 4 раза.

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

Хороший вариант решения  - это валидатор на AJAX Javascript, который будет подсказывать по ходу ввода пароля. Очень бодро реализовано на gmail. Пользователь перестает трахаться повторным вводом одной и той же информации, снижается количество запросов на сервер.

Чтобы делать хороший продукт, нужно пользоваться им самому - "Eat your own dog food".

Wednesday, February 9, 2011

12:25PM - Почему отключаю анимацию при веб-серфинге.

 Купил книжку. Интересную.

Например, новый роман Акунина.

Наливаю себе сочку вишневого, сажусь в кресло, расслабляюсь предвкушая несколько часов кайфа от чтения.

Открываю книжку и читаю: "Наш корреспондент, вот уже вторую неделю находящийся при русской Дунайской армии, сообщает, что вчерашним приказом ..."

Но что за фигня?

На полях страниц что-то начинает шевелиться. Моргает. Скачет. Катается.

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

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

Еще через двадцать страниц, яростно вскакиваю, выливаю сок, наливаю водки.

Интеллектуальное пиршество загублено сволочами-рекламщиками.

Navigate: (Previous 20 entries)