Monthly Archives: Серпень 2014

Windows performance counters

Публікується в рамках розгрібання чернеток. Тим хто не займається адмініструванням Windows буде зовсім не цікаво, проходьте далі…

Одного разу переді мною поставили задачу перевірити можливість отримання певних метрик загальною кількістю біля 200 штук для двох видів користувачів для трьох версій операційної системи. Я сміливо взявся за роботу, розваживши що якщо написати скрипт який в одному циклі проходиться по метриках, а в іншому – по хостах та користувачах, то це все можна зробити швидко. Але є одне але. :) Точність оцінювання необхідного часу сильно падає якщо ти чогось не знаєш, і ще більше падає якщо ти не знаєш що ти чогось не знаєш.

Наприклад я довго не міг зрозуміти чому не працює:

PS C:\Users\Administrator\Documents> Get-Counter '\Disk Read Bytes/sec'
Get-Counter : The specified counter path could not be interpreted.
    + CategoryInfo          : InvalidResult: (:) [Get-Counter], Exception
    + FullyQualifiedErrorId : CounterApiError,Microsoft.PowerShell.Commands.GetCounterCommand

А виявилось що performance counter повинен мати формат:

[\\<ComputerName>]\<CounterSet>[(<Instance>)]\<CounterName>

, де необов’язковим є лише ComputerName та іноді Instance, і в мене воно просить уточнити якого диска читання я хочу отримати. Наприклад:

PS C:\Users\Administrator\Documents> Get-Counter '\LogicalDisk(*)\Disk Read Bytes/sec'

Timestamp                 CounterSamples                                                                                      
---------                 --------------                                                                                      
29.04.2014 20:01:15       \\win-dl46o26fd8h\logicaldisk(harddiskvolume1)\disk read bytes/sec :                                
                          0                                                                                                   
                                                                                                                              
                          \\win-dl46o26fd8h\logicaldisk(c:)\disk read bytes/sec :                                             
                          8209,39607393418                                                                                    
                                                                                                                              
                          \\win-dl46o26fd8h\logicaldisk(_total)\disk read bytes/sec :                                         
                          8209,39607393418     

І кількість таких проблем виправляється лише постійною освітою, тому нею й займемось.

Get-Counter

Основне варте уваги джерело інформації яке я зміг викопати – Microsoft Technet на жаль. Ну але там теж щось пишуть, хоча й занудно.
Read more »

Проблема з програмістами, що “вище середнього”

Liaoning School by kattebelletje

Сьогодні попалася на очі досить таки цікава стаття, вирішив перекласти, оскільки давно вже нічого не публікував у блог. Звісно, речі описані там як би й очевидні, але в той же час зазвичай поки не ткнуть носом — цього не помічаєш. Коли у мене було всього три роки професійного досвіду програмування я теж було почав скочуватись в цю прірву, але я вчасно зав’язав 🙂

Примітка: тим хто читав або чув про чудову книжку “Pragmatic Thinking and Learning” деякі твердження можуть здатися протиріччям, але це не так. Поняття експерта там дещо ортогональне тому що описано тут, плюс там теж згадується про пастку “спочивання на лаврах”.

Оригінал: The Problem With ‘Above Average Programmers’
Автор: Dave Rodenbaugh


Швидко! Дайте відповідь на наступне питання не роздумуючи:

Як би ви оцінили ваші навички з програмування? (Нижче середнього, Середнє, Вище середнього)

Психологічні досліди проведені в різних групах показали, що більше 90% всіх програмістів вважають свої навички “Вище середнього”.

Як ви розумієте, так бути не може. Грубо кажучи, в групі зі 100 людей 50% вище середнього, а 50% — нижче. Цей ефект відомий в психології як “Ілюзія переваги”. Його спостерігали та задокументували у багатьох областях, і навіть знаючи про цей ефект ви ймовірно все одно дасте відповідь “Вище середнього”.

Сміху заради спробуйте спитати це у кожного знайомого вам програміста. Не питайте їх у групі, питайте один-на-один щоб отримати більш “чесну” відповідь. Ви отримаєте схожі результати навіть від людей, які не знають як запрограмувати щось дійсно нетривіальне (насправді це ефект Даннінга-Крюґера, але вони пов’язані). Це епідемія нашої професії.

А тепер уявіть на хвилинку, що ви і справді “вище середнього”. Просто мужик! Рок-зірка. Бог поміж смертних. Клави схиляються в реверансі, коли ви проходите поруч, а труби грають туш, коли ви комітите на Github.

Якщо ваші знання вище середнього, то ви експерт в тому що ви робите. Називати себе експертом дуже приємно — ви здобуваєте повагу, шану та престиж будучи ним.

Бути експертом означає що ви знаєте все про вашу область. На жаль, це часто означає, що ви станете ледачим. Це означає, що ви станете спочивати на лаврах і сидіти дупцею на м’якому дивані думаючи, що ви кращий за багатьох інших замість того, аби працювати над цим. Ваш досвід стане вашим тягарем, тому що ви перестанете хоч намагатись вчитись. Не сьогодні, але досить скоро.

Натомість, чому б не розглянути іншу можливість? Ви — середняк, або (боже збав!) нижче середнього. Окрім пораненої гідності, яку ви можливо будете переживати, подумайте про справжні переваги:

  • Припускаючи що ви не найвправніший, у вас є стимул стати ним
  • Припускаючи що ви не найрозумніший, у вас є можливість вчити щось нове
  • Припускаючи що ви не найкращий у своїй справі, ви будете працювати краще, щоб вдосконалити себе

Можливо ви чули про “розум початківця”? Короткий його зміст сказаний майстром Дзену з типовою лаконічністю коану:

В голові початківця є багато можливостей, в голові експерта є лише кілька.

Пастка самоназви себе “експертом” в розробці софту означає, що ви запираєте себе у певну мову (Java, Ruby, PHP), певну сферу (медичні пристрої, соціальні мережі, ігри), певну спеціалізацію (embedded, enterprise, тощо). Коли ви напрацюєте цей досвід, вас буде переслідувати страх помилки, коли ви вийдете за свою зону комфорту. Зі своїм золотим молотом досвіду все навкруги здаватиметься цвяхом. Ви не будете думати про викрутки та інші адекватні інструменти оскільки ви про них не знаєте, або не вмієте користуватись.

Саме тому починаючи новий software-проект ви часто дивуєтесь чому “досвідчені програмісти” не можуть взяти X, ви ж вивчили X всього за кілька днів. X може бути чим завгодно: замикання, об’єктно-орієнтоване програмування, фреймворк Ruby on Rails, програмування на Haskell. Врешті-решт, це не має ніякого значення, голова експерта забита застарілими знаннями. Голова початківця відкрита та вільна від перепон.

Коли ви експерт, вчитися важче. Тому бути “досвідченим програмістом” небезпечно.

Тож яка ж першочергова річ, яку можуть зробити програмісти? Почати з того, аби вважати свій рівень нижчим середнього. Вийти за зону комфорту. Бути “найсереднішим”.

Маестро ніколи не перестає вчитись, і ви не переставайте також.

Проблема з програмістами, що “вище середнього”

Liaoning School by kattebelletje

Сьогодні попалася на очі досить таки цікава стаття, вирішив перекласти, оскільки давно вже нічого не публікував у блог. Звісно, речі описані там як би й очевидні, але в той же час зазвичай поки не ткнуть носом — цього не помічаєш. Коли у мене було всього три роки професійного досвіду програмування я теж було почав скочуватись в цю прірву, але я вчасно зав’язав :)

Примітка: тим хто читав або чув про чудову книжку “Pragmatic Thinking and Learning” деякі твердження можуть здатися протиріччям, але це не так. Поняття експерта там дещо ортогональне тому що описано тут, плюс там теж згадується про пастку “спочивання на лаврах”.

Оригінал: The Problem With ‘Above Average Programmers’
Автор: Dave Rodenbaugh

Швидко! Дайте відповідь на наступне питання не роздумуючи:

Як би ви оцінили ваші навички з програмування? (Нижче середнього, Середнє, Вище середнього)

Психологічні досліди проведені в різних групах показали, що більше 90% всіх програмістів вважають свої навички “Вище середнього”.

Як ви розумієте, так бути не може. Грубо кажучи, в групі зі 100 людей 50% вище середнього, а 50% — нижче. Цей ефект відомий в психології як “Ілюзія переваги”. Його спостерігали та задокументували у багатьох областях, і навіть знаючи про цей ефект ви ймовірно все одно дасте відповідь “Вище середнього”.

Сміху заради спробуйте спитати це у кожного знайомого вам програміста. Не питайте їх у групі, питайте один-на-один щоб отримати більш “чесну” відповідь. Ви отримаєте схожі результати навіть від людей, які не знають як запрограмувати щось дійсно нетривіальне (насправді це ефект Даннінга-Крюґера, але вони пов’язані). Це епідемія нашої професії.

А тепер уявіть на хвилинку, що ви і справді “вище середнього”. Просто мужик! Рок-зірка. Бог поміж смертних. Клави схиляються в реверансі, коли ви проходите поруч, а труби грають туш, коли ви комітите на Github.

Якщо ваші знання вище середнього, то ви експерт в тому що ви робите. Називати себе експертом дуже приємно — ви здобуваєте повагу, шану та престиж будучи ним.

Бути експертом означає що ви знаєте все про вашу область. На жаль, це часто означає, що ви станете ледачим. Це означає, що ви станете спочивати на лаврах і сидіти дупцею на м’якому дивані думаючи, що ви кращий за багатьох інших замість того, аби працювати над цим. Ваш досвід стане вашим тягарем, тому що ви перестанете хоч намагатись вчитись. Не сьогодні, але досить скоро.

Натомість, чому б не розглянути іншу можливість? Ви — середняк, або (боже збав!) нижче середнього. Окрім пораненої гідності, яку ви можливо будете переживати, подумайте про справжні переваги:

  • Припускаючи що ви не найвправніший, у вас є стимул стати ним
  • Припускаючи що ви не найрозумніший, у вас є можливість вчити щось нове
  • Припускаючи що ви не найкращий у своїй справі, ви будете працювати краще, щоб вдосконалити себе

Можливо ви чули про “розум початківця”? Короткий його зміст сказаний майстром Дзену з типовою лаконічністю коану:

В голові початківця є багато можливостей, в голові експерта є лише кілька.

Пастка самоназви себе “експертом” в розробці софту означає, що ви запираєте себе у певну мову (Java, Ruby, PHP), певну сферу (медичні пристрої, соціальні мережі, ігри), певну спеціалізацію (embedded, enterprise, тощо). Коли ви напрацюєте цей досвід, вас буде переслідувати страх помилки, коли ви вийдете за свою зону комфорту. Зі своїм золотим молотом досвіду все навкруги здаватиметься цвяхом. Ви не будете думати про викрутки та інші адекватні інструменти оскільки ви про них не знаєте, або не вмієте користуватись.

Саме тому починаючи новий software-проект ви часто дивуєтесь чому “досвідчені програмісти” не можуть взяти X, ви ж вивчили X всього за кілька днів. X може бути чим завгодно: замикання, об’єктно-орієнтоване програмування, фреймворк Ruby on Rails, програмування на Haskell. Врешті-решт, це не має ніякого значення, голова експерта забита застарілими знаннями. Голова початківця відкрита та вільна від перепон.

Коли ви експерт, вчитися важче. Тому бути “досвідченим програмістом” небезпечно.

Тож яка ж першочергова річ, яку можуть зробити програмісти? Почати з того, аби вважати свій рівень нижчим середнього. Вийти за зону комфорту. Бути “найсереднішим”.

Маестро ніколи не перестає вчитись, і ви не переставайте також.

Вступ до PowerShell

Зробив на роботі доповідь по PowerShell:

І не переживайте, там з восьмої хвилини в конференції нарешті настає тиша. :)

Презентація зроблена на основі вікіпідручника з PowerShell, який порізано на слайди і показано за допомогою deck.js (хоча про технологію якось іншим разом).

Це приклад того як доповіді робити не варто. Не варто змішувати підручник і презентацію, на презентації повинен бути лише код, картинки і максимум одне-два слова тексту. І якщо все таки якийсь текст вже є – не можна його читати. Ваші слухачі грамотні все таки.

З іншого боку – краще зробити щось неідеально, ніж не зробити ідеально. :)

Є інший приклад: Александр Соловьев — Functional Reactive Programming & ClojureScript. Чувак не париться, лише 16 слайдів, видно що тема його вставила, але пояснити він її може заледве на пальцях. Проте я таки зрозумів що FRP – це як в Excel, і при цьому не заснув.

P.S. Наступна доповідь буде кращою. :)


Filed under: Кодерство, Конспекти Tagged: освіта, робота, windows

Заблоковано завантаження змішаного активного вмісту

З версії 23 (квітня 2013) Firefox забороняє завантаження змішаного активного вмісту, тобто ви не можете завантажувати на отримані через https сторінки скрипти (активний вміст) по http. Тому, якщо ви отримуєте таке повідомлення:

Заблоковано завантаження змішаного активного вмісту
"http://modernizr.com/downloads/modernizr-latest.js"

Треба якось захостити бібліотеку на сервері з https.

Або зайти на сторінку about:config і поставити налаштування security.mixed_content.block_active_content в false.


Filed under: Кодерство, Павутина Tagged: JavaScript

Визначити url в будь якому темпліті Django

Іноді нам потрібно отримати значення дійсного url прямо в темпліті з яким працюємо. Наприклад, якщо потрібно прямо на сторінці підсвітити якесь значення меню, чи вевести цей шлях деінде. Для цього Django має певний функціонал, про який йтиметься далі.

Розгортання Django з Apache, Virtualenv та mod_wsgi

Ото робили ви, робили свого проекта (бложика, як я, чи іншого якого) і раптом вирішили, що вже не хочеться вам бути суровим адміном локалхоста, а хочеться вам винести свій проект в Інтернет, щоб і інші могли помилуватися вашим геніальним творивом.

Використання власних шаблонів. Django Template Tags

Вирішив додати блогу новий функціонал: сайд-бар, а в нім доступ до помісячного архіву сайту. Власне, що тут казати? Вирішив - зробив!

Для реалізації цієї функції легше за все скористатися такою штукою, як Template tags.

The Python challenge. Для тих, хто полюбляє Python (0-4)

Мені дуже подобається мова програмування Python. Можливо, я знаю не так вже й багато, але з ним пов’язаний мій накращий і найдрайвовіший досвід вирішення проблем з допомогою пограмування. Для тих, хто вивчає, або вважає що вже й так добре знає Python існує ресурс The Python challenge. На ресурсі зібрані цікаві задачі, для вирішення яких можна скористатись будь яким засобом, але найкраще скористатись засобами Python.

Забігаючи наперед, скажу, що я всі 33 рівні не пройшов, але почавши проходити отримав задоволення і розминку для мізків. Далі розв’язки перших задач. Якщо хочете спробувати самі, краще не заглядайте, але якщо спробували і вийшло - поділіться враженнями.
 

The Python challenge. Для тих, хто полюбляє Python (5)

Продовжуємо розбирати задачі з The Python Challenge.