неділя, 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

четвер, 7 травня 2020 р.

FileChooser (FilePicker) in Android Program

Якщо необхідно реалізувати вибір файлів у вашій Android програмі, то додати до своєї програми так званий FileChooser або ж його ще називають FilePicker можна декількома способами. Можна використати стандартні засоби API Android, а можна скористатися сторонніми бібліотеками, яких зараз є доволі багато.

Передусім можна використати стандартний Intent.ACTION_GET_CONTENT. Для цього достатньо додати в обробник події натиснення кнопки наступні рядки:
Intent myFileIntent=new Intent(Intent.ACTION_GET_CONTENT);
myFileIntent.setType("*/*");
startActivityForResult(myFileIntent,10);
Також необхідно замістити (@Override) метод OnActivityResult і додати в ньому:
if (requestCode == 10 && resultCode == RESULT_OK) {
    String path=data.getData().getPath();
    textView.setText(path);
}
В результаті після натиснення кнопки з’явиться стандартна активність, яка дозволяє вибрати звідки вибирати файли і навіть, які засоби встановлені у системі використати. Наявні елементи можуть відрізнятися в залежності від конфігурації системи Android.

На моєму мобільному це виглядає так:
ACTION_GET_CONTENT, FileChooser Android
Інший варіант реалізувати вибір файлів є підключення сторонньої бібліотеки до Андроїда. Я опробував дві бібліотеки.

Material FilePicker ('com.nbsp:library:1.8') Детальніше тут.

Як її застосовувати також наведено на цьому відео:

Дана бібліотека дозволяє створити простий FileChooser в Android. Проте особисто мені сподобалась інша бібліотека, яка має більше можливостей щодо налаштувань, більше функцій та кращий зовнішній вигляд.

Це Android-FileBrowser-FilePicker ('com.adityak:browsemyfiles:1.9'). Детальніше тут.

Якщо необхідний FileChooser/FilePicker, то додаємо в gradle:
implementation 'com.adityak:browsemyfiles:1.9'
В обробник події кнопки для реалізації множинного вибору:
Intent i2 = new Intent(getApplicationContext(), FileChooser.class);
i2.putExtra(Constants.SELECTION_MODE, Constants.SELECTION_MODES.MULTIPLE_SELECTION.ordinal());
startActivityForResult(i2, PICK_FILE_REQUEST);
А у заміщеному (@Override) методі OnActivityResult додаємо:
if (requestCode == PICK_FILE_REQUEST && data!=null) {
      if (resultCode == RESULT_OK) {
          ArrayList selectedFiles  = data.getParcelableArrayListExtra(Constants.SELECTED_ITEMS);
      }
}
Результат тестування усіх трьох способі наведено на наступному відео:

Початковий код розміщено тут: https://github.com/volodimirg/TestFileChooser. Дивіться код MainActivity. У Manifest було додано лише дозвіл доступу до зовнішнього сховища даних.

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

Дивіться також: