понеділок, 8 серпня 2022 р.

Винятки Java

'''Виняткова ситуація''' або просто '''виняток''' (англ. exception) – це аварійний стан, який відбувається саме під час виконання програми. Прикладом є — ділення на нуль, помилки читання з файлу та мережі тощо. Іншими словами – це помилки які можуть виникнути при виконанні програми. В ряді мов програмування необхідно заздалегідь передбачити можливість тієї чи іншої помилки і передбачити шлях її обробки. В java для цього передбачений спеціальний механізм винятків.

Винятки в java
Виняток в java – це об'єкт, який описує виняткову (тобто, помилкову) ситуацію, що відбулась в певному місці коду. Коли така ситуація виникає створюється об'єкт, який передається («вкидається») в метод, в якому виникла помилка. Далі в методі даний виняток може оброблятися, або бути переданий ще кудись для обробки.

Розглянемо для прикладу наступну програму '''DivZero.java'''
public class DivZero {
    public static void main(String[] args) {
        int my = 0;
        int medium = 44 / my;
        System.out.println("medium=" + medium);
    }
}
Як бачимо в програмі присутнє ділення на нуль. При компіляції ми не отримаємо помилок. Проте, після запуску програми, отримаємо наступне:

понеділок, 1 серпня 2022 р.

HashMap

HashMap розширює AbstractMap та реалізує інтерфейс Map. Клас не додає власних методів. Клас використовує хеш таблиці для зберігання зіставлення. HashMap не гарантує порядок елементів.

HashMap має наступні конструктори:

HashMap( )

HashMap(Map<? extends K, ? extends V> m)

HashMap(int capacity)

HashMap(int capacity, float fillRatio)

Перший створює HashMap по замовчуванню. Другий створює хеш зіставлення використовуючи елементи m. Третій задає ємність хеш зіставлення. Четвертий задає ємність(по замовчуванню 16) та коефіцієнт заповнення (по замовчуванню 0.75).


понеділок, 15 листопада 2021 р.

Інструкція Switch (Java)

Інструкція if/else може бути доволі громіздкою, якщо необхідно здійснити множинний вибір з багатьох альтернатив. Тож як і в С/C++ в java існує інструкція switch, яка здійснити вибір з багатьох варіантів. Щоправда вона дещо незграбна і деякі програмісти вважають за краще уникати її використання.

Наприклад, якщо Ви організовуєте певне меню і пропонуєте користувачу вибрати, номер конкретного пункту, то можна використати наступний код:
Scanner in = new Scanner(System.in);
System.out.print("Select an option (1, 2, 3, 4) ");
int choice = in.nextInt();
switch (choice) {
     case 1:
         . . .
         break;
     case 2:
         . . .
         break;
     case 3:
         . . .
         break;
     case 4:
         . . .
         break;
     default:
         // bad input
         . . .
         break;
}

суботу, 7 листопада 2020 р.

Прокрастинація (Джейн Б. Бурка, Ленора М.Юен)

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

Перша половина книги читалась доволі важко, зате друга, яка була присвячена більше методикам боротьби з прокрастинацією, прочиталась, як то кажуть, "на одному подиху".

З порад, які мені запам'ятались це:
- розбити роботу на дрібні етапи
- працюємо зосередившись на поточному етапі;
- якщо важко знайти час чи немає натхнення чи втомлені, то ставимо за мету попрацювати хоча б 15 хвилин, що краще ніж нічого;
 
Автори також розглядають те, як правильно ставити собі ціль, як навчитись планувати свою роботу і контролювати час. Даються також поради про те, як жити чи працювати з прокрастинатором, як з ним поводитись. Розглянено питання прокрастинації через потрапляння в нове соціальне або культурне середовище (що може трапитись, наприклад, при еміграції).

суботу, 27 червня 2020 р.

Програмування для дітей. Створюй відеоігри за допомогою скретч

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

Хто не в курсі Scratch - це проста візуальна мова програмування. За допомогою комбінації блоків ви можете створити власну відеогру.

Саме середовище розробки знаходиться за адресою https://scratch.mit.edu/. Проте є і офлайн версія, яку можна встановити на комп'ютері чи планшеті. Щоправда книжка передбачає натиснення на клавіші клавіатурі, тому для розробки на планшеті дещо не підходить оскільки там свої особливості розробки ігор, хоча після освоєння книги, можна попробувати зробити щось і на планшеті.

Ось так виглядає невеликий фрагмент програми:

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

Всі фрагменти коду поступово вводяться і роз'яснюються. Вкінці кожного розділу наводиться повний код відеоігри.

Однозначно, якщо хочете провести корисно час з дитиною, то ця книжка для вас. Якщо ніколи не займалися програмування, то і для дорослої людини це буде доволі цікаво.

неділю, 21 червня 2020 р.

"Усе замахало, але надія є" Марк Менсон

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

Можливо ви прагнете створити свою релігію(ідеологію)? Може вас не задовільняють пануючі в суспільстві ідеологія і ви хочете впровадити свою з купою нових догм для новонавернених? Ця книга саме для вас. Для тих хто хоче творити нові проєкти. Автор надає відповідні рекомендації щодо бази релігії/ідеології і захисних механізмів для уникнення відходу новонавернених, при спробах критики ваших ідей. Варто звернути увагу на те, як захищаються різні релігійні люди від критики, а також різні прихильники конспірологічних теорій. У них завжди знайдуться залізобетонні, на їхню думку, аргументи проти ваших нападок.

Автор звертає увагу на новітню релігію - науку, яка без сумніву є чи не найкращою з релігій, оскільки наука здатна до змін і модифікацій, на відміну від традиційних релігій.

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

Згадує також автор про сучасне споживацьке суспільство і успіхи маркетологів в нав'язуванні людям товарів і послуг, а разом з цим і постає питання "фальшивої свободи".

Автор не обходить стороною також демократію, яка звичайно не є ідеальним устроєм, але як казав Черчилль "решта устроїв ще гірші". Автор вказує на те, що люди перестають цінити демократію і те, що вона дала. Люди виступають за свободу підприємництва, але не хочуть платити податки, щоб підтримувати судову систему, хочуть мати свободу самовираження, але не хочуть чути те що їх образить і т.п. Занепад демократії на думку автора може призвести нас до повернення релігійних (ідеологічних) війн. Можливо правий був Платон, що суспільство циклічне, воно коливається між демократією і тиранією.

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

В книзі згадуються багато цікавих історичних подій. В цілому книга доволі цікава і головне легко читається. Перекладачі спробували наблизити переклад до українців замінивши деякі несуттєві для книги прізвища та назви установ більш знайомими українцям. Так, наприклад, згадується Василь Верестюк та "Пузата хата" :).

суботу, 9 травня 2020 р.

Android бібліотеки для побудови графіків (діаграм)

Задались питанням «Як побудувати графік (діаграму) у Android програмі?». Для цього існує вже ряд розроблених бібліотек для Android Java розробників. З тих, що я знайшов, більш менш пристойними є: SciChart, AndroidCharts, AChartEngine, AndroidPlot, GraphView, MPAndroidChart. Останні дві є найбільш популярними. Існують також дуже простенькі невеличкі бібліотеки, які зосереджуються на малюванні одного якогось графіку, найчастіше лінійного.

SciChart – платна багатоплатформна бібліотека для WPF, iOS, Android, Xamarin. Розробники стверджують, що вони зосереджуються на швидкості і високопродуктивності їхньої бібліотеки. Дозволяє будувати доволі складні динамічні графіки. Наявний непоганий посібник (Tutorial) для Android розробників. Проте дана бібліотека є платна і коштує від 850 до 3000 доларів США на одного розробника в рік.
SciChart library, example, Android Graph, Plot
Приклад програми з використанням SciChart