неділя, 14 вересня 2014 р.

Нотатки по книзі "Країна Моксель, або Московія"

Книгу варто прочитати, але не варто сприймати усе написане як доведений факт. Багато тез потребують уточнення, якщо не спростування, за допомогою справжнього наукового метода.
Для себе цікавими та вартими подальшого вивчення фактами мені видалися такі:

  • У 1246–1247 рр. Плано Карпіні, посол Папи Римского, подорожуючи до Монголії спостерігачем на чергові вибори Великого Хана, проїжджав і наші місця. http://uk.wikipedia.org/wiki/Джованні_Да_Плано_Карпіні
    У 1253–1254 рр. Віллем де Рубрук, чинець, у якості посла короля Франції, їздив через Судак і ставку Батия (Воронезька обл.) до Монголії. http://uk.wikipedia.org/wiki/Віллем_Рубрук
    Обидва залишили багато цікавих свідчень про ті часи, у тому числі про народ "Моксель", що живе у північних краях Золотої Орди і не є, нібито, слов’янським. Треба прочитати твори обох (є в англ. варіантах).
  • Ілья Муромец - народний російський богатир - виявляється, не був руським, а був як раз муромцем, тобто представником фіномовного народу "мурома", яке й дало назву місту Муром. Власне, в самих казках про те, що він з міста і не згадується. Тобто варіант, що він руський з міста Мурома, можна не розглядати. Насправді він був не Муромцем, а Моровцем, з містечка Морівськ на Десні між Києвом і Черніговом. Трохи плутанини тут https://uk.wikipedia.org/wiki/Ілля_Муромець
    Додам від себе, що є така меншина "тверські фіни". Читав про них, як про один з репресованих народів СРСР. Подивіться, де місто Твєрь. І вони туди не переїхали, вони там корінні. Білінський згадує також про народ "вепси" у тому ж зв’язку.
  • Александр Невський, виявляється, ніякого стосунку до Неви не мав, бо був молодший, ніж пише офіційна версія, і все дитинство провів у Орді в заручниках, де став названим братом майбутнього хана Сартака, що потім дозволило йому "просунутись по службі", стати Великим Ханом Князем Володимиро-Суздальського Улуса Князівства, і з татарською ордою проводити перепис Суздальської землі, Твері, Новгорода Великого та Пскова. А неправдиве прізвисько йому Катерина вигадала.
  • Москва заснована у 1272 сином Александра, Данилом. Саме під цим роком вона вперше з’являється у документах. І документи ці - дані загального перепису Монгольської Імперії.
  • Московська держава платила данину Кримському Хану як правонаступнику Золотої Орди до 1700 р.:
    «18 августа 1700 года в Москве сожжен был «преизрядный фейерверк»: царь Петр Алексеевич праздновал турецкий мир, приобретение Азова, уничтожение обязанности посылать поминки (т.е. постоянную дань! — В.Б.) в Крым».[313]
  • Катерина Велика створила спеціальну комісію з переписування історії Московської держави: "Комиссию для составления записок о древней истории, преимущественно России" под начальством и наблюдением графа А.П. Шувалова". І з німецькою ретельністю впродовж 20 років повідшукувала та повиймала усі літописи з усіх можливих місць, де вони могли зберегтися. Комісія всі їх вивчила, написала узгоджений, затверджений варіант, відомий нам сьогодні, а оригінали - знищила. Нищили навіть книги, що лише опосередковано торкалися історичних відомостей. Наприклад: "Указом от 11 февраля 1793 года Императрица повелела сжечь 18656 экземпляров книг, которые были найдены в домах и лавках Николая Ивановича Новикова. И среди них: «Правила христианской жизни», «Краткое начертание географии», «Геометрию», энциклопедические словари, книги по медицине и так далее."
  •  До Катерини, звісно, ще за Петра, була спроба написати науково обґрунтовану історію Московії (Петро ж був європейцем врешті решт). Товариш Петра I — Татіщєв Василій Нікітич, що жив з 1686 по 1750 роки, написав твір "Історія", який мав за джерела ще цілі в той час літописи. Август Людвиг Шлецер, що допомагав авторові працювати над книгою, бачив справжні списки Нестора. Але за Катерини усі примірники цієї "Історії" кудись зникли.

 Отака от історія...

четвер, 21 серпня 2014 р.

Нова класифікація критичності дефектів (в картинках)

Мабуть кожен помічав, що Severity - важливість чи "суворість" дефектів в системах відстеження, застаріла і неоднозначна. То що ж насправді означає важливість "1, 2, 3 або 4"?
TestSheepNZ пропонує нову ієрархію:

  1. OMFG або Ппц!
  2. WTF або "Що за нах?"
  3. Uh? або Хм
  4. Meh або Таке...
Нова класифікація вимагає не тільки нові назви, але й візуалізацію.
 

Severity 1. Ппц!

Це гаплик! До того ж і страховка в бардачку... :-Е

Severity 2. "Що за нах?"

Є все, що треба, але з місця не рушить.


Severity 3. Хм

Може воно й поїде, але це не те, що я очікував.

Severity 4. Таке..

Ну, це, звичайно, дратує. Хотілося б це усунути, але їхати не заважає.




Перекладено звідси:
англ. http://testsheepnz.blogspot.com/2014/07/a-new-defect-severity-hierarchy.html
пол. http://www.testerzy.pl/baza-wiedzy/klasyfikacja-krytycznosc-defektow

вівторок, 28 лютого 2012 р.

Звіт з Selenium Camp 2012

Спершу мушу сказати, що ця, друга, конференція була набагато цікавіша за першу, а якість доповідей була вельми висока. Серед доповідачів було 4 з 9 основних комітерів Selenium'а. 
Цього разу Selenium Camp проходив у відомому київському хмарочосі "Парус", що правда на другому поверсі, тому це, в принципі, байдуже.


Виступи були організовані на 3х сценах: А - велика, В - по-менше, С - невелика загородка у холі. Дивіться детальніше тут: http://seleniumcamp.com/
Колись потім організатори обіцяли викласти відео всіх виступів. А поки що пропоную свої враження від тих, на яких був особисто присутній.
До речі, шукайте цих авторів у твіттері, якщо вам цікаво.


The road to a standard
 David Burns 
Це один з координаторів проекту. Доповідь була про те, що WebDriver має бути включений у стандарт для бровзерів. Вони у Mozilla вже впилюють АПІ у ФФ, майже домовилися з Оперою та Гуглом, а Майкрософт і Еппл їх ігнорують. Тим не менш, вже у червні можуть розпочатися перемовини з W3C. 
Тобто скоро для того, щоб твоя саморобка вважалася "веб-бровзером", вона буде повинна підтримувати WebDriver API. Побажаємо всього найкращого їм у цій справі.
Дійсно насмішила тут секція питань. Майже всі питання задавали прості бидло авто-тестери, що були обурені тим, що ними зарепорчені баги досі ніхто не фіксить! На що, звісно, отримали відповідь: Хочете, щоб було пофікшено - фіксіть! (Це була перша доповідь, мабуть, люди ще не зрозуміли, чому сюди прийшли.)

Selenium in the life of day-to-day testing. Practical aspects.

Руслан Стражник 
Чувак розповів, що у них є Jenkins, і що треба користати SauceLabs. Успіхів йому! Може й собі до цього доростемо колись.

TDD c помощью функциональных тестов на WebDriver

Мікалай Аліменко́ў
Тут було продемонстровано чудовий приклад "ТДД ін екшон"!
Основні моменти такі:
  • для початку написання тесту треба мати лише Дані та Локатори;
  • дані беруться від продакт-овнера;
  • про локатори команда домовляється заздалегідь, сам пан Мікалай радить знаходити елементи так:
    • форми за id,
    • кнопки за ім’ям (name),
    • лінки за текстом.
  • Автоматизація роботи в вашому IDE - важливий чинник. Радив всякі плагіни для автостворення класів-заглушок, кемел-кейс 2 нормал текст та ін.
В цілому - дуже динамічна та вражаюча доповідь, видно натреновану майстерність. Одразу захотілося піти до них в XP Injection на якийсь тренінг. Ледве втримався :-)

Новая жизнь WebDriver и PHP. Путь от разработки фреймворка до организации производственного процесса.

Хлопці, виходячи з виробничої необхідності, зробили те саме, що зараз намагаємося ми у себе: зробили власне АПІ для пхп через JSON Wire Protocol. До речі, хтось десь підслухав Девіда Бьорнса особисту думку про пхп та чому досі не має супортних байндінгів для WebDriver'а; з неї ясно видно що їх ніколи не буде :-)
Ну і звісно ж... "Чувак розповів, що у них є Jenkins, і що треба користати SauceLabs. Успіхів йому!"

Selenium против AJAX

Цей пан - один з головних контриб’юторів. Було більше схоже на практичний клас. Я цілу сторінку занотував :-) . На початку ми зрозуміли, що робота з AJAX та JS - це здебільшого пошук елементів у динамічній DOM та очікування на появу або зміну параметрів елементів. Тому щодо цього декілька практичних порад:
  • Щоб не чекати повного завантаження сторінки, варто використовувати асинхронний режим для бровзера. Дуже актульно для моїх сайтів зі 100500 банерами айаксо-флешевими, що змушують тести чекати по 5хв і падати з помилками. Наразі асинхронний режим доступний тільки у Firefox - вмикається створенням профілю з налаштуванням "unstable", та у HtmlUnit - вмикається наслідуванням від стандартного класу та перезаписуванням у ньому параметра (не встиг записати якого, знайду потім).
  • WebDriver не може клікнути по елементу, якого не видно. Відноситься до всіх варіантів невидимості: властивісті, перекритий іншим елементом, знаходиться за межами вікна.
  • Якщо у вас щось не знаходиться, чи не клікається, чи ще якогось трясця - ставте затримку 200мс!
  • ІЕ дуже часто-густо змінює DOM. Причому можуть змінюватися навіть ті її частини, що, здавалося б, до активних ніяким боком не відносяться.
  • Витримки та очікування треба вибирати уважно, правильно ставлячи умову чекання.
  • Щоб зробити всі очікування безумовними: driver.manage().timeouts().implicitlyWait(10,TimeUnits.SECONDS);
  • Найнадійніший спосіб перехоплення аляртів - будь-де чекати на UnhandledAlertException.
  • Клік може губитися, якщо обробник кліку високо по DOM від самого елемента, по якому клікнули. Тому для надійності краще клікати саме по тому елементу, де і є обробник цього кліку.
  • Synthesized Events can be turned on through Firefox profile (тут я не знаю про що йдеться, геть не пам’ятаю, що малося на увазі...)

Cool tricks with Selenium

Цей чувак давненько полишив нашу Неньку, та й презентацію почав-бо російською, але після 3х речень перейшов на англійську. Працює в Групоні, вони йому з Чикаго навіть відрядження у самий Київ на конференцію оплатили.
Розповідав теж про всякі вигадки та прийоми.
  • Щоб чекати на закінчення усіх скриптів, використовуйте "if JQueryActive = 0 ..."
  • фотати екран можна легко за допомогою  "getScreenShotAs"
  • можна знімати відео проходження тесту за допомогою навіть не дуже довгого скриптика для ffmpeg (чувак сказав, що у нього тільки на Лінуксі получилось)
  • Іноді варто зробити лог-ін через URL, щоб зайвий раз по сторінках не клацати. Тобто дані автентифікації загорнути у get-запит.
  • Щоб швиденько і в усіх тестах завантажувати файли, можна налаштувати, щоб воно це робило автоматично, через профілі.
  • Headless tests - 2 times faster.
  • Щоб запускати тести паралельно, не забудь мати для кожного тесту окремі: БД, екран, незалежність тестів один від одного.
І під кінець Діма приголомшив усіх, запустивши тест з WebDriver на iPhone! 
Пообіцяв тренуватися та для Андроїда теж запустити :-)
Коли вийде все відео докладів, це раджу переглянути! Було дійсно цікаво, доповідач отримав неймовірну кількість "Дякую"-папірців.

WebDriver Internals

Останнім виступав ще один євангеліст-селеніумовод, цей чувак написав все що є на Ruby для Selenium'a.
Особливо нічого не можу розповісти про його виступ, просто скажу, що у легкому, не напруженому оточенні за якихось 20хв ми створили повністю підтримувану на всіх рівнях функцію розгортання вікна на весь екран. 
Чувак теж звав писати патчі. Так що, друзі, світле майбутнє не за горами, якщо ви почнете допомагати такому корисному проектові :-)


субота, 5 лютого 2011 р.

Украинизмы из "Хождение за три моря Афанасия Никитина"

"«Хождение за три моря» тверского купца XV в. Афанасия Никитина — бесспорно, один из наиболее замечательных памятников древнерусской литературы. Важнейшей особенностью этого памятника следует считать его совершенно неофициальный характер — это записки русского человека, попавшего на чужбину, не имевшие определенного адресата..."
http://lib.pushkinskijdom.ru/Default.aspx?tabid=5068
Хорошая библиотека с возможностью читать перевод на современный русский одновременно с оригиналом. Всем рекомендую.
Тут выбрал слова и обороты в "ХОЖЕНИИ ЗА ТРИ МОРЯ АФАНАСИЯ МИКИТИНА СЫНА", вошедшие в литературную норму украинского языка и не вошедшие в норму русского языка.

И тут есми взял первый Великъ день Великдень
пошел есми за море Индѣйское по Велице дни  чередование к - ц (скорее всего калька с церковно-славянского, но возможно и нет)
А жонки ходят голова не покрыта, а сосцы голы; а паропки да девочки ходят наги до семи лѣт, сором не покрыт. паропки - парубки
Вино же у них чинят в великых орѣхех чинити = делать; великий  -  в смысле большой (слова "большой" вообще нет в тексте)
В Ындѣйской земли гости ся ставят по подворьем, а ѣсти варят на гости господарыни, и постелю стелют на гости господарыни, и спят с гостми. Сикиш илиресен ду шитель бересин, сикиш илимесь екъ житель берсен, достур аврат чектур, а сикиш муфут; а любят бѣлых людей. подворье, господарыня. (и транслит фарси символизирует)
Да о вѣрѣ же о их распытах все, и оны сказывают: вѣруем въ Адама, а буты, кажуть, то есть Адамъ и род его весь. распитах - прошедшая форма распитать - розпитати; кажуть.
Индѣяне же не ѣдят никоторого же мяса, ни яловичины, ни боранины, ни курятины, ни рыбы, ни свинины яловичина
Индѣяне же вола зовут отцем, а корову материю. А каломъ их пекут хлѣбы и ѣству варят собѣ, а попелом тѣмъ мажут ся по лицу, и по челу, и по всему тѣлу знамя. В недѣлю же да в понедѣлник едят однова днем. попел=попіл;
недѣля=неділя
Первый же Велик день взял есми в Каинѣ, а другый Велик день въ Чебокару  в Маздраньской землѣ, третей Велик день в Гурмызе, четвертый Велик день взял есми в Ындѣе з бесермены в Бедерѣ; ту же много плаках по вѣре кристьяньской. другый - другий
И брат султанов, а тот седит на кровати на золотой, да над ним терем оксамитен, да маковица золота съ яхонты, да несут его 20 человѣкъ. оксамит
А в Севастий губѣ да в Гурзыньской землѣ добро обилно всѣм. Да Турская земля обилна велми. Да в Волоской землѣ обилно и дешево все съѣстное. Да и Подолская земля обилна всѣм. А Русь ** еръ тангрыд сакласын; олло сакла, худо сакла! Бу даниада муну кибить ерь ектуръ; нечикь Урус ери бегляри[89] акой тугиль: Урусь ерь абоданъ болсынъ; растъ кам даретъ. Олло, худо, Богъ, данъиры.** ... ** А Русь Бог да сохранит! Боже, сохрани ее! Господи, храни ее! На этом свете нет страны, подобной ей, хотя эмиры Русской земли несправедливы. Да устроится Русская земля и да будет в ней справедливость! Боже, Боже, Боже, Боже!**
Божиею благодатию зло ся не учинило. (по карпатски)
Идох же по морю вѣтром 10 дни, доидох до Вонады, и ту нас срѣтили великый вѣтръ полунощный, възврати нас къ Трапизону, и стояли есмя в Платанѣ 15 дний, вѣтру велику и злу бывшу. полунощный

понеділок, 20 грудня 2010 р.

Перша моя програма Python 3

Перша моя программа на пітоні (до то го ж 3к).
Робив по завданню гри: Puzzle - Hoppity


# coding: utf-8
FileName = input("File name: ")
file = open(FileName, "r", encoding="utf-8")
                #довго не міг догнати, у чому справа, 
f = file.read() #поки цей рядок не написав
k = enumerate(f)
a = ''
for i, line in k:
    a += line
print(" %s " % a)
try:
    number = int(a)
    print('%i' % number)
except: print("%s is not an integer." % a)

#puzzle itself:

for i in range(1,number+1): #The given end point is never part of the generated list
    if (i % 15) < 1:
        print('Hop')
    elif (i % 3) < 1:
        print('Hoppity')
    elif (i % 5) < 1:
        print('Hophop')




Використані джерела:

Программирование и научные вычисления на языке Python (правда тут десь для Python 2.6)
Форум Python Questions and Answers
Доки docs.python.org/py3k
Dive Into Python 3