Бувають програми, без яких можна обійтися. Але, якщо звикнути до їх можливостей, то робота за ком’ютером стає набагато зручнішою. Наприклад, використання клавіатури для певних дій — це не просто зручно, це економія часу. Щоденна і щогодинна.
В моєму комп’ютері три мови набору тексту, відповідно в будь-який час можна погратися в лотерею: натиснути Atl+Shift і, не дивлячись на мовний індикатор, вгадати — яка зараз мова обрана акутуальною. Як було б зручно, якщо б натиснути всліпу одну клавішу і бути на 100% впевненим, яку мову обрав. Натиснув іншу клавішу – починаєш писати, не перевіряючи, що декларує мовний індикатор.
Ще один приклад — слухаємо музику і тут треба вимкнути звук. Або хтось зайшов або телефонує. Якщо у вас мультимедійна клавіатура, то на ній є відповідні кнопки. Або можна крутити ручку гучності на колонках, якщо вони поруч. Інакше треба зловити мишку. Мишкою зловити в правому нижньому куті екрану значок динаміка, натиснути на нього, а потім ще раз зловити мишкою значок виключення динаміків. А чи не багато дій для тривіальної задачі? Але ж на це все іде час, невже не можна якось зручніше?!
Третій приклад. Припустим, ви — вчитель. І вам, по роботі необхідно багато листуватися з учнями. Наприклад, під час дистанційного навчання. Не буде ж дуже гарним, якщо ви напишете учню в листі лише фразу «Списав, зараза!» «А які альтернативні версії ви розглядали?». Як правило, згідно етикету, треба спочатку привітатися, а у фіналі повідомлення — попрощатися. Як було б чудово, якщо б хтось, замість вас зайнявся всіма цими формальними вітаннями-прощаннями, тим самим економивши вам час.
І, як не дивно, всі ці три реальні задачі можна вирішити єдиною невеликою програмою — AutoHotkey. Програма реально невеличка. В пам’яті займає менше двох мегабайт, і вирішує не лише ці три, а значно більше задач. Завдяки власній скриптовій мові, розробленій для роботи з клавіатурними скороченнями і гарячими клавішами автори AutoHotkey зробили неймовірно круту штуку. До речі, автори програми — Chris Mallett і Steve Gray, офіційний сайт — autohotkey.com , код можна скомпілювати самому, все необхідне — на GitHub.
Переходимо до практики. Програма, до речі, відома, в мережі купа форумів, на яких вам можуть підказати, як зробити те, що вам треба. Скриптова мова AutoHotkey — велика, сі-подібна, можна писати цілі твори. Я ж покажу розв’язання саме цих трьох задач, тобто, як я вирішив те, що було потрібно саме мені.
Як скачати програму, писати не бачу сенсу. Отже самостійно скачуємо і встановлюємо програму AutoHotkey. Сам скрипт пишемо в звичайний текстовий файл з розширенням *.ahk
Тобто, ми створюємо єдиний файл, наприклад main.ahk і розміщуємо його в теку автозавантаження. І це все. При запуску комп’ютера, запуститься AutoHotkey, відкриє цей файл і буде користуватися. Під час роботи, до речі, можна завершити роботу AutoHotkey і запускати знову, це зручно поки ви будете відлагоджувати свій скрипт. Для тих, кому потрібно, в комплекті є конвертер, що дозволяє конвертувати .ahk в *.exe файли.
Вирішуємо першу задачу — як встановити включення певної мови введення натисканням однієї єдиної клавіши.
Ця дія потребує виконання проміжних дій. Необхідно визначити ідентифікатор локалі для кожної мови, що встановлена на ваш комп’ютер, використавши скрипт від YMP з сірого форуму.
Скачуємо скрипт – це файл f11.ahk
Скачали? Запускаємо. Далі — стандартними засобами Windows включаємо мову, наприклад, англійську. І натискаємо на клавіатурі клавішу F11. У вікні, що відкриється, буде виведено ідентифікатор локалі для англійської мови. Ось, як у мене:
Запишіть цей ідентифікатор. Переключаємо на українську і знову визначаємо і записуємо ідентифікатор локалі, тепер вже для української.
Бачимо, що ідентифікатор визначився від’ємним. Але враховуючи, що все працює, нехай так все буде. Для свого комп’ютера я ще визначив ідентифікатор для російської мови.
Отже, у мене три мови встановлено, відповідно, всі три ідентифікатора визначено. І скрипт у файлі f11.ahk більше не потрібен.
Створюємо головний скрипт. Нехай він зветься main.ahk
І в ньому прописуємо переключення мов.
Я для себе визначив так: для включення англійської використовую лівий Ctrl, для включення української – правий Ctrl, для включення російської — CapsLock. Якщо мені колись буде треба CapsLock (особисто мені — нечасто), то його можна включити за допомогою Shift+CapsLock.
Ось як це просто виглядає у файлі main.ahk :
~LControl:: SendMessage, 0x50,, 0x4090409,, A ; english
~RControl:: SendMessage, 0x50,, -0xF57FBDE,, A ; українська
CapsLock:: SendMessage, 0x50,, 0x4190419,, A ; русский
Переходимо до другого акту вистави — керування гучністю звуку, в даному випадку я керую загальною гучністю за допомогою мною обраних комбінацій Ctrl+Home і Ctrl+End :
^Home::Send {Volume_Up 2}
^End::Send {Volume_Down 2}
Як бачите, я збільшую і зменшую гучність з кроком в 2, треба повільніше — поміняйте крок на 1. Якщо хочете більший крок — також не проблема, змінюйте параметр.
Ну і останнє — автозаміна. При чому можна використати багаторядкову автозаміну, розділяючи рядки символами «`n»
Так як я мало користуюсь трикрапкою, то я визначив для себе автозаміну так: якщо я напишу послідовність букви і двох крапок, програма замінить цю послідовність на певний текст Наприклад - «д..» - це буде «Добрий день!»
Або «у..» - буде замінюватися двома рядками — в першому слово «Удачі!», а в другому — підпис.
Ну і кожен може наробити собі автозамін і гарячих клавіш як саме йому буде потрібно.
Ось, що вийшло у мене у файлі main.ahk:
~LControl:: SendMessage, 0x50,, 0x4090409,, A ; english
~RControl:: SendMessage, 0x50,, -0xF57FBDE,, A ; українська
CapsLock:: SendMessage, 0x50,, 0x4190419,, A ; русский
^Home::Send {Volume_Up 2}
^End::Send {Volume_Down 2}
::д..::Добрий день!
::в..::Всього найкращого,`nАнатолій Анатолійович
::у..::Успіхів{!}`nАнатолій Анатолійович
Можете скачати мій файл і погратися, а потім виправити на свої значення і скопіювати у теку «Автозавантаження».
Певний час піде, звичайно, щоб звикнути до нових можливостей. Але коли звикнути — то вже не відтягнути за вуха. Тим більше, розробники продовжують розвивати AutoHotkey, остання версія вийшла 17 липня 2020 року, підтримується Windows 10, програма безкоштовна.
Успіхів!
Анатолій Анатолійович
:)
Дана стаття має прикладну ціль, розрахована на бажаючих чесно вчити і чесно вчитися, не включає об’ємний вступ і довгий список посилань. Все наведене є моєю власною траєкторією навчання, яку я пропоную своїм учням. Проблема дистанційного опрацювання теми програмування — різноманітність власного обладнання учнів. Іноді в учня лише смартфон.
Як правило, програмувати на компі – зручніше. Але програмувати повністю на смартфоні – можливо.
Нам бажано:
— об’єднання учнів і вчителя в Google Classroom (чудово, якщо Google Workspace) або в іншу безкоштовну систему взаємодії учнів і вчителя (популярні системи підтримують роботу на смартфонах).
Нам потрібно:
— реєстрація учнів на сайті Repl.it, на якому учні будуть писати і безкоштовно зберігати свої програми (підтримується і Python, в тому числі з модулем Turtle), а вчитель прямо на цьому ж сайті ці програми може і перевірити. Все працює на комп’ютерах, планшетах і смартфонах.
Організація роботи в Google Classrom або іншій системі учнівсько-вчительської взаємодії виходить за межі даної статті. Розберемося з Repl.it.
Реєстрація на Repl.it, написання коду, відправка вчителю посилання на свою програму.
Відомий сайті Repl.it дає можливість писати і запускати код більше як 50 мовами програмування прямо з браузера, при чому це може бути браузер як комп’ютера так і смартфону. Якщо треба швидко перевірити код, можна зайти на сайт, обрати мову, скопіювати код у відповідне вікно і запустити його на виконання. В нашому випадку учню буде зручно зберігати коди своїх програм, а для цього потрібно зареєструватися на сайті. Під час реєстрації і роботи сайт може пропонувати платні або додаткові сервіси. Тут краще за все скористатися правилом для розумних: «якщо вам щось пропонують, а ви не дуже розумієте що саме — відмовляйтесь».
А щодо реєстрації, то давайте пройдемо цей шлях від імені учня покроково і детально, щоб було зрозуміло і малим і дорослим.
Переходимо на сайт Repl.it (відкриється в новому вікні).
В одному вікні ви будете читати цю інструкцію, а в сусідньому, на сайті Repl.it — реєструватися.
На головній сторінці сайту Repl.it натискаємо кнопку «Sign up»:
На наступній сторінці вам потрібно придумати собі username з латинських букв і цифр, без пробілів і крапок (від 5 до 15 символів), вказати адресу електронної пошти (можете вказати шкільну корпоративну), придумати пароль. Не забудьте записати username та пароль або сфотографувати екран або зробити скріншот, якщо ви працюєте зі смартфону. Якщо username, що ви придумали, вже зайнятий, придумайте собі інший.
На наступній сторінці вам запропонують підтвердити свій email:
Натисніть на посилання і перейдіть в вашу поштову службу. Там вас буде чекати лист від сайту Repl.it
Відкрийте листа і перейдіть за посиланням:
Нас перенаправить на сайт Repl.it.
На цьому реєстрацію завершено.
Але ви не втомились, продовжуємо :) . Обираємо мову програмування, для чого обираємо в меню зліва «Languages» (1), в рядку пишемо, що нам треба, припустим, python (2), а серед запропонованих варіантів обираємо той, що треба. Там є і звичний Python, але в нашому прикладі ми обираємо Python з підтримкою Turtle (3).
Наступним кроком система запропонує створити repl, тобто нашу програму, а для цього нам потрібно придумати і написати назву. Припустим наша перша програма буде малювати одне коло і буде називатися Коло1. До речі – назви програм можуть бути українською. Пишем назву і натискаємо кнопку «Create repl» :
Відкриється вікно, в якому нарешті можна писати код :) В лівій частині вікна (якщо працювати з комп’ютера) ми пишемо код (1), далі натискаємо кнопку «Run» (2) і в правій частині вікна бачимо результат – намальоване коло.
Для початку ви можете ознайомитися з функціями модуля Turtle у відповідному довіднику: http://pletyvo.in.ua/python/turtle.pdf З довідника можна копіювати приклади і пробувати код на сайті Repl.it Для вставлення на сайт Repl.it коду можна скористатися стандартною комбінацією Ctrl+V
Щоб побачити список ваших програм, тобто список ваших repls, потрібно натиснути на три лінії в лівому верхньому куті і обрати «My repls»:
Для створення нової програми, тобто, нового repl, натисніть кнопку «+New repl»:
Отже, ми вже вміємо створювати свої repl, тобто свої програми. До речі, вчителю можна відправити код програми, наприклад, через Google Classroom. Тобто, можна відлагодити свій код, скопіювати його з Repl.it і вставити у вікно відповіді, наприклад, Google Clarssroom.
Або можна відправити посилання на свій repl. Наступним нашим завданням буде саме навчитися робити посилання на свій repl, який можна буде відправити вчителю на перевірку. Чим цей варіант кращий? Вчитель може перейти за посиланням і запустити код учня, тим самим його перевірити. Чим цей варіант певною мірою гірший? Учень може продовжувати правити свій код вже після того, як здав вчителю. У деяких випадках треба це враховувати. Для створення посилання відкриваємо потрібний repl і натискаємо кнопку «Share»:
У вікні, що відкриється, бачимо кнопку «Copy repl link»:
Натискаємо на кнопку «Copy repl link» і посилання скопійовано в буфер обміну. Відповідно, ми можемо відправити вчителю це посилання на перевірку через Google Classroom або іншу систему, що ви використовуєте для навчання.
Ну і дуже важлива деталь. Все це працює не лише на комп'ютері, а і в браузері смартфона. Ось як виглядає цей самий repl на екрані смартфона.
Тут і код можна переглянути (1) і кнопка запуска програми є в наявності (2) і, головне, код можна запустити безпосередньо з браузера смартфона і побачити результат у вкладці «Output»:
Відповідно, код можна і писати і виконувати і на комп’ютері і за допомогою лише смартфону. Програмувати можна як у класичному Python, так і з використанням модуля Turtle, який достатньо успішно і візуально формує розуміння конструкцій мови програмування. Ось Turtle + список + цикл в смартфоні:
Код:
from turtle import *
speed(0)
pensize(7)
colors = ['red', 'green', 'blue', 'indigo', 'orange']
for x in colors:
color(x)
circle(50)
right(72)
А ще важливо, що сайт Repl.it буде зберігати коди програм. Щоб знову зайти на сайт, необхідно скористатись посиланням на кнопці «Log in»:
Звичайно, запропоноване поєднання систем навчання і Repl.it не може виключити списування та інші прояви академічної недоброчесності, але, повертаючись до концепції, описаної на початку статті, все це розраховано на бажаючих чесно вчити і чесно вчитися.
Анатолій Анатолійович