balu: (Default)
Вовтужуся зараз з опитуванням заліза. Опитує Arduino Pro Mini. Це ота маленька плата з червоним вогником і купою проводів.

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

Тепер по Ардуїнці. Скажу наперед, мені сподобалось попри бридкий С++ на якому там все пишеться. Ця крихітка, що менша за половину сірникової коробки, дозволяє зробити чимало корисного: нескладне управляння верстатом, умнодім і т.і. Апаратна платформа там продумана і вдала. І коштує копійки. Що не сподобалось. Як це часто буває, гарні залізячники є поганими програмістами. Програмувати фірмовими засобами — це біль. На щастя, існує така штука, як PlatformIO. Це набір утиліт командного рядка, які беруть на себе всю основну роботу по прошивці Ардуїнки. І вони прикручуються куди хочеш. У правій частині редактора коду видно, як я прикрутив їх. Це, власне, і всі налаштування редактору, які я робив.

Нема проблем прикрутити їх і до іншого редактора. До речі, автори PlatformIO зробили годну IDE на базі Visual Studio Code.

Наразі ідеальне поєднання Ардуїнки і якогось мікрокомп’ютера на кшталт Raspberry PI. Ардуїнка взаємодіє з датчиками чи виконавчими механізмами, а Raspberry бере на себе складні обчислення, інтерфейс і т.і.



balu: (Default)
Довгий час, та й зараз, Java мала проблеми з приємним користувацьким інтерфейсом. Проблему вирішували за допомогою різних бібліотек, але все було досить сумно. Розробники Intellij Idea перші розв'язали цю проблему в і зараз вона виглядає доволі няшно. А сьогодні я знайшов бібліотеку, яка дозволяє зробити красивий сучасний інтерфейс. Ловіть FlatLaf.
balu: (Default)
Набрів тут на сабжову статтю. Тут мається на увазі, щось на кшталт gdb, що дозволяє покрокове відслідковування. В статті правильно говориться про проектування, втім не розкриваються деталі. Більшість функцій можна зробити короткими, десь до 20-ти рядків з невеликою, кількістю параметрів, як правило не більше трьох. Мінімізувати кількість галуджень максимум до трьох-чотирьох. До цього мене привчив Lisp, де ти матимеш проблеми, якщо не будеш дотримуватись цих правил. А також, де це можливо або не занадто дорого, юніт-тести. Вказана структура сильно полегшує їх написання.
balu: (Default)
Як я нещодавно писав, одним з плюсів використання emacs є org-mode. Область його використання давно вийшла за межі планувальника. Так, більше 80% нескладних текстів я пишу саме в org. Текстові процесори на кшталт Word я не люблю через постійні проблеми з форматуванням. Кожному, хто робив складні чи великі таблиці, вставляв картинки чи, не приведи Боже, формули, це добре відомо. Для таких цілей  LaTeX набагато краще. Як виявилося, org-mode теж підходить для складних текстів, тут трохи більше про це.
Для тих, хто ще не пробував працювати з org-mode можна почати звідси.


balu: (Default)
Мало хто любить emacs. Дійсно, редактор, як на сьогодні, так собі. VS Code в цій якості реально кращий. Але я люблю його не як редактор, Emacs - це, в першу чергу, cередовище для роботи з текстовою інформацією яке забезпечене поєднанням дуже потужної мови програмування (elisp з REPL), доволі зручного редактора (який в деяких випадках може бути IDE), eshell який поєднує звичайний shell з elisp-ом. Поєднання саме цих якостей і дає прорив у функціональності.
І, нарешті, org. Я використовую його не стільки як власний органайзер, скільки як частину проекту. Ось, наприклад, я тестую регулярні вирази. Якби regex101 прекрасєн. Але у org-файлові зібрана і колекція регекспів для проекту, від простого до складного на різні випадки, і колекція зразків, яка постійно поповнюється.
Або потрібно ручками створити якийсь спеціалізований режим зі своїми заморочками. В emacs це не тільки просто, він провокує на це. Якби я ваяв якусь, навіть примітивну аплікуху, то це зайняло б кілька робочих днів. А на emacs - кілька годин з тестуванням і покращенням у процесі роботи.

Я слоупок тому, що довго не бачив саме цього поєднання. Але використовуючи саме ці можливості, у мене виходить працювати продуктивніше, ніж java+idea. І таке було, що відпрацьовував якісь прототипи саме на elisp.
balu: (Default)
Гвідо устал, Гвідо уходить.
Через тонкі відмінності між := та =.
От, власне, через велику кількість таких тонких відмінностей, розмазаних по всій мові, я й перестав використовувати python.
Справа у тому, що тримати в голові всю цю купу нюансів може тільки "програміст на". А у мене з цим не склалося, я займався автоматикою (C, LabView), опердєнь (Delphi, Free Pascal, python, java, SQL, свої DSL), автоматизацією всякого серверного лайна (bash, python, emacs lisp), трохи мобайл (java). При таких раскладах на перший план виходе не пам'ятати 100500 нюансів, а простота інструменту і ясність намірів, які ти цим інструментом зможеш передати. І перевага надається інструментам, де прорив  у функціональності досягається за рахунок невеликої кількості удачно скомбінованих ідей, на противагу насичення мови новими фічами. Останній підхід веде до того, що спільнота не в змозі асимілювати накопичені фічі. Python, десь до 2.5 чи 2.6, і був такою удачною мовою з вдалою комбінацією кількох гарних ідей, а вже потім пустився у всі тяжкіє. Як на мене, він і досі тримаєься на інерції 2-ї гілки.


balu: (Default)
Народ зазвичай постить фотачкі їжі. Я теж люблю їжу, вона смачна. А ще я люблю свою роботу, тому запощу робочу обстановку.
На скрінові моє робоче середовище - Ubuntu Mate у класичній двопанельній конфігурації. На верхній панельці ярлички для вогнелиса (якого треба на щось міняти), emacs (улюблене середовище для програмування), віндовий IBExpert (так, деякі віндові програми можуть працювати у Linux), NetBeans (для java, яку я не люблю), VirtualBox, одна з власних розробок, XTerm (улюблена консолька), qpdfview та AndroidStudio. Нижня показує запущені програми. Зазвичай я не бачу панельок бо по F11 усі вікна перемикаються у повноекраний режим.
Перемикання мов у мене по CapsLock - для англійської, а Shift+CapsLock для української.
Зараз відкрито emacs. Для серйозних проектів на java я використовую NetBeans, а от для чогось маленького, експериментів якихось вистачає і emacs - він вміє багато того, що повинна вміти IDE, але він набагато шустріший, ергономічніший і його легко підлаштувати під себе. Є ще кілька ніш, під які я кращих альтернатив не знайшов. Одна з них - ecb (браузер кода). Я використовую його саме у такому варіанті, але є ще кілька. Найбільша кіллер-фіча ecb - це розумне вікно компіляції: воно вміє збільшуватися тоді, коли це необхідно, тримаючи твого улюбленого розміра весь інший час. Ще одна кілер-фіча - eshell. Це поєднання системної командної оболонки і інтерпретатора lisp. Останній я постійно використовую у якості калькулятора чи для разових задач.
Кольорова схема emacs для моїх очей оптимальна і підібрана за багато років. Нажаль, у інших середовищах воно якось не те.
(повноекранне зображення)



balu: (Default)
У Canonical проблеми, передбачувані ще 5 років тому. Схоже, скоро доведеться змінювати дистрибутив. А жаль, Ubuntu, хоча й страждала фігнею, але, в цілому, є лінуксом з людським обличчям.
balu: (Default)
Переїхав, вдома і на роботі, на поточний LTS. Попередня, 32-х розрядна система, протрималась у мене більше 5-ти років. Тепер використовую 64 розрядну Ubuntu Mate. Дуже сподобалася нова фіча - вигляд головного меню: можна вибрати класичний варіант, варіант із SUSE або LinuxMint. Нажаль з авторів Mate погані рекламщики бо штука дуже зручна, а вони не кричать про неї на всіх кутках. Отже головний плюс Юніті - поєднання командного рядка та меню перекрито.
До речі, Mate оновився до 1.10 і там багато смачного, тож чекаю на бекпорт.
balu: (memories)
Час від часу є потреба зберегти контент веб-сторінки. Найпоширеніша практика для цього - робити скріншоти. Але цей спосіб має ряд недоліків:
  • якщо тексту багато то потрібно зробити кілька скріншотів
  • зі скріншотів неможливо зробити копіпаст.
Проте давно винайдений кращій спосіб: використвувати вебархів. Прямо на головній сторінці сервісу введіть адресу сторінки і вона збережеться у тому вигляді, у якому вона є на момент завантаження.
Побочний ефект такого способу збереження у тому, що сервіс робить неможливим видалення викладенної, а потім знищенної інформації і невілює звинувачення у підробці скріншотів.
Проти є і недоліки: якщо сайт видає контент тільки після авторизації (наприклад "одногласники") сервіс не зможете зберегти контент. Також всі ваші збереження будуть недоступні якщо у вас проблеми з доступом до Інтернету, керівництво вашої країни заблокувало доступ до цього сайту, або сайт припинить своє існування. Хоча можна використовувати різні веб-архіви. Хоча, як на мене найкраще, комбінувати практику збереження.
Нижче посилання до подібних сервісів:
archive.org (найзручніший, як на мене)
peeep.us
UK Web Archive
Більше про подібні сервіси ви можете дізнатися з Вікіпедії.
balu: (Wrinkle Meat)
Поскольку Java такой язык, что требует себе навороченную IDE решил попробовать сабж на небольшом проектике, который занял 2 недели. Недостатки:

  • По сравнению с NetBeans перегружен настройками. Из-за этого то, что есть ищется долго и быстро забывается, как делать. Да и не факт, что найдешь "сокровище". Так, я долго курил маны, чтоб разобраться, как сделать, чтоб структура проекта и структура конкретного модуля отображались одно под другим. Хотя, говорят, студия еще хуже.

  • Идея тормозная. По ходу оно пересоздает все class-файлы во время каждого запуска. Из-за этого промежуток времени между переконпелять и запустить довольно долгий. NetBeans запускает быстрее.

  • Лишние движения, когда у тебя несколько конфигураций запуска: каждый раз надо подтверждать в случае использования хоткея.. Может я невнимательно смотрел, но где настраивается запуск по умолчанию я не нашел. В NetBeans достаточно просто переключить конфигурацию.

  • Неудобный подвижный нижний буфер по сравнению с емаксовским.

  • Изменения в коде показываются в графическом режиме, а не выхлопом diff, что неудобно. В NetBeans на выбор графическое или текстовое представление.

  • Работа с   VCS в целом лучше, чем в NetBeans, есть пара удачных моментов, но в целом нефонтан. Удобнее работать прямо из консоли.

  • Не удалось найти, как по хоткею переключиться во встроенный эмулятор терминала, так что толку от него мало.

  • Не удалось в генераторе документации настроить работу с нелатинскими символами. В NetBeans все работает из коробки.

  • Убрали кнопку сохраненя. Теперь все изменения записываются автоматически и автоматически же ведется история. Задумка неплохая, мне бы больше понравилось, чтоб история автоматом писалась по событию сохранения.

  • Шрефты и темы ... В NetBeans несколько лучше, но им обоим далеко до emacs.

Что понравилось:

  • Анонимные классы визуально отображаются, как анонимные методы (лямбды). Ни emacs-овские плагины, ни NetBeans такого не умеют.

  • Внешний вид. Не знаю, как под Win, а под Linux смотреть очень приятно. Надо будет выдрать тему.

  • Настройка сборки несколько запутана, но настроить можно много чего. В NetBeans это вообще из GUI не настраивается.

Некоторые итоги.

  • утилиты java для сборки мне не потравились: там сплошной xml и отдуплиться по нему глаззами очень тяжело. Задумался о старом-добром Makefile.

  • работа с VCS, ИМХО, неудобна. Например, emacs-овский плагин для mercurial удобней.

  • emacs эргономичней. Придется еще пробовать, что есть из java плагинов.

balu: (Gene Kranz Луна - она вот там)
это набор инструментов для разработки на Common Lisp под IOS Android. Разработчики уверяют, что полученный код быстрее, чем Java/Dalvik.
balu: (Gene Kranz. Запарка.)
Что я не люблю в Python, так это то, что всегда нужно помнить, что он может сыграть такую злую шутку:
In [1]: 36.80*100
Out[1]: 3679.9999999999995

In [2]: 3.80*100
Out[2]: 380.0

И, что потом возможна такая ситуация:
In [3]: int(36.80*100)
Out[3]: 3679

В JVM, кстати, та же фигня. Вроде бы и хорошие инструменты, а такая вот фигня всю обедню портит нехило. В то же время:
Ocaml:
print_float (36.8 *. 100.0);;
3680.
CLISP
[1]> (* 36.8 100)
3680.0
[2]> (* 3.8 100)
380.0
balu: (Gene Kranz Луна - она вот там)
По наводке [livejournal.com profile] aceler узнал о ElementaryOs - очередном велосипеде форке Ubuntu из которого выкинули мерзкий Unity, понаписали немало своих приложений и заточили гуй под MacOS. Выглядеть, в следующем релизе оно должно примерно так*. Не занаю, насколько они сделают торт, но полезный выхлоп уже есть - тема Elementary для третьегнома. После NewLooks (не очень удачный закос под Clearlooks) и уродских убунтушных тем с ней, наконец-то, можно спокойно работать.
Короче, возьму на карандаш.


* - Кому интересно есть еще перевод на хабре.
balu: (Gene Kranz. Запарка.)
Ну собственно:
Кое-что стало лучше: на моем ноутбуке нормально заработал тачпад. Unity для широковорматника (у меня это и ноут, и основной монитор) несколько удобнее классического Gnome2. Убрали уродский Evolution из умолчальной поставки. Пожалуй, это все, что я могу хорошего сказать об этом выпуске.
Теперь плохое:
  • самый большой минус: и Unity, и Gnome3 с какой-то укурки взъелись на системный трей. В итоге в третьегноме его вообще убрали, а в Unity сделали только для избранных приложений, куда, нужные мне Pidgin и Stardict не попали. И в третьегноме, и в Unity эта проблема решается. Но основной проблемой является то, что это вообще потребовались решать. Причем, решать то, что раньше работало в стандартной поставке. Я не понимаю, на что эти укурки расчитывают: мак-вендоюзер сразу выкинет систему без нормальной области уведомлений, пользователь предыдущих версий прикрутит, но начнет подумывать куда б свалить.
  • Новая убунта стала прожорлива к памяти. В первую очередь, прожорливы Firefox и Compiz*. Такшта придется память докупать. Для сравнения - 10.04 жрала 150 Мб после долгой работы. А Unity через час работы сама- по-себе отжирает порядка 700 Мб. Есть менее прожорливый режим Unity 2D - Unity без перделок, но там проблемы с отображением Pidgin-а в трее, потому не вариант. Справедливости ради, надо сказать, что Gnome3 на этот счет гораздо лучше, а в режиме без свистелок и перделок он весьма экономичен. Но третьегоном, в любых его инкарнациях, надо отдельно доставлять.
  • Настройка Unity это песня - несколько сторонних утилит с частично пересекающимся функционалом и неадекватным dconf-tools. И все это надо доставлять - в стандартной поставке сие не предусмотрено. Да и вообще, многие вещи, которые были простыми, стали сложными и черезжопными. Увы.
  • Отсуствие тем: в стандартной поставке их только 2 для Unity и одна, уродская, для третьегонома. Где ты, старый, добрый ClearLooks?
Итого: сильно испортили то, что было, а нового до ума не довели. Вышло ни Богу свечка, ни черту кочерга. Я сижу на Ubuntu с 5.04. До 10.04 это был хороший и добротный дистрибутив. А теперь, похоже, он повторит судьбу Delphi. По крайней мере то, что я вижу, иначе чем хаотичным метанием назвать сложно. Очень похоже на то, что было с Delphi после 5-й версии.
Так что альтернативы ищутся.

* - Compiz обеспечивает свистелки и перделки.

mkv 2 avi

Jun. 15th, 2012 09:25 am
balu: (Default)
Для всей папки с mkv:
for f in *.mkv; do mencoder "$f"  -oac mp3lame  -ovc copy -o "avi/${f%.mkv}.avi"; done
balu: (Слава краснокожим)
Кустомизабельность ее очеееееееееееень человечна. Например, кнопки окон выставляются вправо таким вот человечным способом:
gconftool -s /apps/met>gconftool -s /apps/met>gconftool -s /apps/metacity/general/button_layout -t string menu:minimize,maximize,close
А "Открыть в программе..." или "Приложение по умолчанию" меняется еще более дружественно, например, для замены LibreOffice на OpenOffice.org нужно:
  1. cp /usr/share/applications/libreoffice-startcenter.desktop ~/.local/share/applications/openoffice-startcenter.desktop
  2. gedit /home/miha/.local/share/applications/openoffice-startcenter.desktop
  3. поправить конфиг (выделено то, что менял):
    [Desktop Entry]
    Version=1.0
    Terminal=false
    Icon=libreoffice-startcenter
    Type=Application
    Categories=Office;X-Red-Hat-Base;X-SuSE-Core-Office;X-MandrivaLinux-Office-Other;
    Exec=soffice %U
    MimeType=application/vnd.openofficeorg.extension;
    Name=OpenOffice.org
    GenericName=OpenOffice.org
    GenericName[en]=OpenOffice.org
via 1, 2

И за отсуствие нормальных тем (читай ClearLooks) отдельный луч поноса.
balu: (Слава краснокожим)
на 32-х разрадку. Легаси заглючило. Зато памяти меньше жрать стало. В двое. И все-таки 10,04 мне нравился больше, да.
balu: (Gene Kranz. Запарка.)
причем, на 64-х разрядку. С Unity уже смирился, тем более, что оно не такое уже и говно. Естественно, потребовался некоторый напильник:
Для начала выкинул надоедливый конверт:
# apt-get remove --purge indicator-messages
Потом разобрался с областью сообщений:
# apt-get install dconf-tools
$ dconf-editor И в немDesktop -> Unity -> Panel и в списке systray-whitelist дописал то, что нужно, в моем случае 'Pidgin'.
Впрочем, оказалось, что для этого дела можно использовать и коммандную строку:
$ gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'hp-systray', 'scp-dbus-service', 'pidgin']"
balu: (Gene Kranz. Запарка.)
но временами она меня радует. Недавно порадовала либка для обработки опций коммандной строки args4j. На данный момент эта библиотечка самая простая в использовании вещь из всех мной перепробованных и не тянет за собойь никаких зависимостей.

Profile

balu: (Default)
от. Михайло

June 2025

S M T W T F S
1234567
8 91011121314
15161718192021
22232425262728
2930     

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 16th, 2025 02:29 am
Powered by Dreamwidth Studios