Преамбула

Уявіть собі, що ви — огр, чи троль, або інша міфічна істота великих розмірів та брутальної вроди. Раніше люди вас боялися, а ви розважалися по вечорах, гуляючи по тракту і лякаючи всіх, хто зустрінеться. Особливо апетитних дамочок могли і з'їсти. Але сучасні люди вас не бояться — замість кричати і розбігатися, вони дістають фотокамери та телефони й намагаються зробити з вами селфі. З якихось пір вони взагалі почали називати вас Шреком, після чого ви намагаєтеся не показуватися їм на очі.

То-ж, замість тинятися по закутках, ви тепер проводите вечір у своїй норі, дістаєте із торби планшета і товстим та брудним пальцем намагаєтеся набрати на екранній клавіатурі слово porn, проте потрапляти в потрібні літери у вас виходить погано. Роздратований, ви йдете до магазину здавати планшета і отримати назад свої гроші, проте язикатий продавець-консультант у яскравій жилетці переконує вас, що у них є саме те, що вам потрібно! Ви обіцяєте з'їсти продавця, якщо це виявиться не так і несете додому іншу коробку, дещо більшу, з якої дістаєте планшет. Як? Ви-ж щойно занесли планшета, а вам знову його впарили!

Прикидаючи, з якого місця краще починати поїдати худого студента-продавця, ви розумієте, що перед вами не зовсім планшет — розміри явно великуваті, це скоріш за все монітор. Але навіщо вам монітор, якщо його ні до чого підключити? Ви пакуєте пристрій назад в коробку, роздумуючи, на яких дровах будете живцем смажити продавця, проте помічаєте, що це не зовсім монітор — на задній панелі щось забагато роз'ємів і якесь потовщення.

Своїм товстим пальцем ви натискаєте кнопку увімкнення і на екрані з'являється логотип, а, згодом, плитки на зеленому фоні. О, то це моноблочний комп'ютер! Проте як-же він увімкнуся, якщо блок живлення лишився лежати в коробці? Може це все-ж планшет? З цими думками ви витрушуєте із коробки блок живлення, інструкцію та бездротові мишку і клавіатуру.

Отже, сьогодні ми оглядаємо Acer Aspire Z3-600 – моноблок із функціями планшета та монітора. Лінійка для масштабу, логарифмічна — яка є в господарстві.

Фото 1. Загальний вигляд пристрою. Зверху веб-камера та датчики освітлення, знизу панель динаміків і кнопка Start.

Загальний вигляд

Півтора місяці тому я писав про курси Prometheus, де я взявся вивчати мову сценаріїв Python і що я там такий успішний. Так ось, в цю суботу було опубліковане останнє, екзаменаційне завдання і я його виконав, тепер чекаю на генерацію електронного сертифікату — наскільки я зрозумів, то буде посилання, за яким красивими літерами буде написано про те, що я такий молодець.

До останнього завдання відсіялися люди, які не вміють читати і шукати інформацію самостійно. Самі курси, за враженнями учасників, схожі до інструкції "Як намалювати сову?". Крок перший — малюємо два кола, крок другий — малюємо решту сови. В тім, є форум, де можна було задавати свої ламерські запитання і бути посланим на гугл. Бувало, що і по справі підказували.

Ах так, мало не забув — курс програмування на Prometheus нікуди не дівається, а залишається доступним для тих, хто вирішить опанувати його пізніше.

Так ось, екзаменаційне завдання стосувалося проходження лабіринту роботом. План і розміри невідомі, десь там лежить артефакт — перстень Цзунь-Си, що можна знайти. Тестовий лабіринт може бути як і простий, так і багатозв'язний і, навіть, з коридорами, ширшими за одну клітинку. Робот вміє повертатися і наосліп їхати вперед, стикаючись з перешкодами.

Моя програма вийшла:

  • Рекурсивною. Більше того, в кожному виклику копія робота тиражується в чотири екземпляри, кожен з яких посилається вперед, назад, вліво та вправо. Можна було-б назад не роботи, адже ми звідти прийшли, проте в одному із тестових прикладів робот стартує мордою в стінку.
  • Я в курсі, що можна написати без рекурсії.
  • Щоб обмежити рекурсію, робот запам'ятовує відносні координати всіх відвіданих точок і більше в них не сунеться жодною із своїх копій.
  • Для тестування свого коду, я мусив візуалізувати лабіринт, що очевидно.
  • В Python незвична для мене політика областей видимості, а я до цього програмував на Pascal, то-ж мені не вдалося повернути копію робота, яка знайшла артефакт, в первинну точку виклику. Тому я приробив милицю у вигляді запису правильних ходів і потім, за допомогою простого циклу, відтворюю всі ходи над оригінальною копією робота, що передається в мою підпрограму у вигляді об'єкта.
  • Ну а раз у мене є запис ходів, плюс наявні засоби візуалізації, тому можна запросто показати правильний шлях у вигляді анімації. Зазначу, що шлях не найкоротший.
Анімація робота

А під катом мій бидлокод. Точніше, перша частина — викладача курсів, як задана умова, а вже далі — мій розв'язок.

Сучасна наука стала занадто меркантильною — вчені думають не стільки про відкриття, як про гранти. В результаті цього величезні кошти тратяться на обчислювальні кластери та монструозні лабораторні установки типу Великого Адронного. Вигадуються нові теорії, заперечуються старі, а толку з цього мало — СНІД так і не подолали, позаземне життя не знайшли, навіть машину часу не побудували. Натомість, вчені на весь світ трубили, що вони отримали — і то, вони в цьому не впевнені на 100%, бозон Хіггса. І що — його навіть вдома можна отримати, дуже просто — я розкажу вам як.

Отже, зіштовхуєте ви дві елементарні частинки з однаковими енергіясм і отримуєте одну — з вдвічі більшою енергією. Зіштовхуєте її із іще однією такою-ж — маєте тепер елементарну частинку з вчетверо більшою енергією. Ну і продовжуєте до отримання бозона Хіггса. Кому цікаво — під катом можна потренуватися.

Взявся я за допомогою Python вирішувати якісь практичні задачі. Зокрема, вирішив замінити невеличкий bash-скрипт, написаний моїм товаришем три роки тому, за допомогою якого я формую HTML-код для блогу із порожніми абзацами та фотографіями із поточної теки, куди залишається просто вписати текст. Код маленький, має такий вигляд:

Тобто, цей код зчитує всі файли із вказаним в ньому розширенням із поточної директорії і для кожного файлу формує рядок із HTML-кодом. Варто зазначити, що скрипт строго заточений під мої потреби, тому вам навряд чи згодиться. Він прекрасно працює, проте мене не у всьому задовольняє. А раз я взявся за Python так чому-б не наваяти щось своє — з блекджеком та шльондрами. І я наваяв.

Я вже писав, що у мого телефона Lenovo проблеми вирішуються самі собою, варто тільки почекати, доки маленькі китайські трудівники зваяють чергове оновлення прошивки. Так, оновлення іще приходять, хоча не так часто. Минулого разу полагодився Bluetooth, тепер вони пофіксили фірмову утиліту безпеки SecureIt, перейменувавши його у Security. Я вважав його непотребом, бо, не зважаючи на гарний інтерфейс та інтеграцію з телефонною книгою та СМС-сховищем, програма не приймала короткі номери до чорного списку, а спам, як відомо, приходить саме з них. Тому я пробував ставити сторонні програми — але одні із них не розраховані на Android 4.4, інші — не працювали належним чином. Тому я закинув питання антиспаму в довгу шухляду.

Вчора і сьогодні про мене згадали працівники нашого зарплатного ***-банку, які хотіли розвести мене на бабло, прикриваючись словами "вигідні умови" та "пільговий період". Іще мене хоче розвести на бабло мобільний оператор зі словами "ви майже виграли мільйон", чи якось так. Це змусило мене витягнути із довгої шухляди питання антиспаму і тут я виявив, що після останнього оновлення прошивки, програма Security почала приймати короткі номери до чорного списку. Більше того, незадовго після виявлення, воно успішно захавало чергову СМС, що викликало в мене вагон радості. Тепер чекаємо, доки працьовиті китайські ручки запрограмують блокування "іменних" номерів без цифр.

Fuck you Kyivstar

Інші дописи по темі:

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

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

Отже, за рекомендаціями, я спрямував свій погляд на книгу Марка Лутца, як на кращу книгу про Python. Паперовий варіант четвертого видання російською мовою коштує 1233 гривні, електронний англомовний варіант другого видання на Гугл Макулатурі коштує 149 гривень 27 копійок.

Відкриваю я тирену копію і починаю гортати. З 6 по 17 сторінку "Про автора" (всього сторінок 1280), 17-39 — передмова, 39-77 сторінки — уведення, де розповідається, що таке мова Python, чому вона така гарна, що її використовують в Google, NASA, Intel та інші великі організації. Аж із 77 сторінки автор згадав, що він пише книгу про програмування на Python і взявся розповідати про середовище інтерпретатора Python, про те, як у ньому запускати програми різними способами. Аж до 119 сторінки, де автор згадав, що книга називається "Вивчаємо Python" і почав писати безпосередньо про мову програмування Python — частина ІІ книги присвячена типам даних, включно з динамічною типізацією — аж до 321 сторінки, де отримані знання можна, нарешті, реалізувати у написанні програм, бо в тільки в частині ІІІ автор пожалів читача і написав про інструкції та синтаксис.

Можна скачати книгу Гвідо Россумського, який є автором мови Python, і, здається, ця книга, навіть, безкоштовна. Більше того — вона втричі менші за обсягом, а суть починається вже на 19-й сторінці — враховуючи, що зміст книги знаходиться на початку і замає вісім сторінок, то з 11-ї. Проте вона видана іще 2001 року і є застарілою. Так що шукаю щось сучасне і змістовне.

Як я сам користуюся вільним програмним забезпеченням — все гаразд, все працює, все задовольняє. Як тільки хочу показати комусь, чи, тим більше, даю спробувати — відразу вилазить купа збоїв та недоробок і думаєш — навіщо ти їм показав той глючний Лінукс?

У нас на соціальній педагогіці, на заочному, навчаються священники — при чому, цього року на першому курсі аж цілий митрополит з ними. Група досить активна, цікавиться навчанням, в тому числі і інформаційними технологіями — з ними найкраще працювати із усіх заочників. Ось, на тижні, в мене було з ними дві пари — на першу я їм видав практичне завдання, а, поки вони його робили, дістав із сумки ноутбука, підключив до проектора і думав, коли залишиться час, познайомити їх, як недорого дотримуватися заповіді "Не вкради". Та-й Linux сумісний із бородою. Але тут почалися сюрпризи — і, мимоволі, пригадував байки з інтернету про те, що Linux — це сатанинська система, бо там chmod 666, дітовбивство та демони, а Windows — православна, бо там служби та іконки.

По перше, при підключенні проектора до VGA ноутбука, система починала безбожно гальмувати. Можна, в принципі, через HDMI, проте проектор висить під стелею, а подовжувача на цей інтерфейс у мене немає. Спробував перемкнутися із дискретної на вбудовану відеокартку, після перезавантаження взагалі лишився без графіки. Зніс заводські драйвери на Radeon, запустилися вільні, чи то MESA — навіть і не глянув. Проектор усе одно призводить до гальмування. Підключив монітор із викладацького комп'ютера — не гальмує, проте система не бажає виставляти на нього роздільну здатність 1366х768, як у ноутбучного екрана, хоча під Windows він на такій роздільній здатності працює. А при різних роздільних здатностях інтерфейс KDE не масштабується — не зручно показувати.

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

Треба, якось, спробувати попідключати до ноутбука через різні інтерфейси свій настільний монітор — але щось мені здається, що там усе гладко запрацює — бо, по перше, це вдома, а, по друге, монітор і ноутбук від Dell. Я от подумав, може собі бороду відростити. І, так, на фото зліва — не священник.

Не перемикайтеся.

Важлива місія — нести божественне світло знань простим смертним, чим і зайнялися альтруїстичні викладачі із КПІ, Могилянки, Шевченка та деяких інших ВУЗів. Мова піде про проект Prometheus — безкоштовні онлайн-курси для всіх охочих.

Власне, я зареєструвався на три із них — Основи програмування з Python, Основи мережевої безпеки і Захист прав споживача. Один, той що про Python, уже розпочався і я хочу поділитися деякими враженнями. Зазначу, що я програмую мовою Pascal і трішки пробував вивчати Python самостійно, проте покинув і думаю, що курси будуть каталізатором щоб продовжити.

  • Матеріал, поки, дається дуже легко — за три заняття успішність 100%. Тести + автоматизована перевірка написаних програм по типу ejudge — автоматика порівнює шаблонні результати із тим, що видає ваша програма.
  • Взагалі, курс розроблений для людей, які не програмували до цього ніколи — в першій лекції викладач розповідає про те, що таке програмований автомат і машина фон Неймана.
  • Власне, змістове наповнення — модуль, що складається з відеолекції + текстовий матеріал з ілюстраціями. Виходить раз на тиждень. Всього модулів вісім.
  • Викладач — веб-розробник, за сумісництвом викладає в КПІ, чи навпаки. Взагалі, з моєї професійної точки зору, є зауваження до викладу матеріалу, зокрема, по послідовності, проте курси безкоштовні, проводяться вперше, так що все ідеально.
  • Тепер про студентів, чи то курсантів. Треба було влаштовувати якийсь вступний іспит на здатність навчатися. Зокрема, чукча не читач, чукча письменник і обговорення завалені горами однакових питань, ніхто не скролить вниз. Та і питання, відповіді на які є в лекції і шукати не треба, не рідкість.
  • Ще дуже часті запитання із заголовком Я НАПИСАВ ПРАВИЛЬНУ ПРОГРАМУ!!!! ВАШ САЙТ ЇЇ НЕ ПРИЙМАЄ!!! ДОПОМОЖІТЬ!!!!!!111один.
  • Я безсовісно вкинув в обговорення тему "А правда, що пайтонщики їдять дітей?", проте мало хто зрозумів жарт, приплели політику, типу бандеровці їдять російських немовлят під соусом "Турчин".
  • Курси працюють на платформі Open edX, можна скачати, поставити собі і організувати власні курси із преферансом та поетесами, проте платформа досить тяжка і потрібен нормальний сервер, щоб її ганяти, вимоги навіть більші, ніж у Moodle.

Отже, як пройду, то напишу іще. Не перемикайтеся.

Знайшов, що за допомогою спеціальних модулів, легко перетворити свій Drupal на провайдер OpenID. Тепер я зможу залишати свої коментарі в ЖЖ, не маючи там журналу.

Нарешті дійшли руки до Друпала, доробив нову тему оформлення, старався довго. Можете видавати копняки.

Із зробленого:

Відключив модуль Google +1, ті кнопки все одно ніхто не натискає.

Тема зберігає нормальний вигляд навіть якщо вікно браузера утиснути до ширини 700 пікселів — можна дивитися навіть на дешевих планшетах.

Оформив цитати. Достатньо написати тег <cite></cite>, він сам стане таким оформленим, як ви його бачите зараз. Хоча, є думка дооформити графічними елементами.
  • Трішки переробив випадаюче меню — тепер воно згруповане, щоб відвідувачу не треба було далеко вести мишкою.
  • Зробив виділені виноски з тексту.
  • Сама тема полегшена в плані кольорів, світло-сірий із вкрапленням життєрадісного оранжевого.
  • Максимальна ширина шаблону — 960 пікселів, ширина контенту при цьому — 920. Відповідно, можна кидати картинки до 900 пікселів в ширину, зараз у мене 800. Але я іще подумаю, може і залишу як є.
  • Знизу сторінки переходи на інші сторінки, виконані у вигляді вкладок замість квадратиків. Мені подобається, сьогодні придумав це випадково.
  • Зауваження можу прийняти в найближчий час — поки не забув, що я і до чого понаписував у CSS. Взагалі, там чорт ногу зломить, хоча він і простіший за попередню тему Squares.
  • Для порівняння — знімок екрану із старої теми. /files/misc/squares_screenshot.png

Надалі плани грандіозні:

  • Витягнути сюди самі цікаві дописи з ЖЖ, зроблені до жовтня 2011 року.
  • Витягнути важливі малюнки із сховища ЖЖ.
  • Звалити з ЖЖ, що я збираюся зробити з жовтня 2011 року. Тих, хто там залишився, читатиму через RSS.

Поки все, не перемикайтеся.

Сторінки