to post messages and comments.

Qt проект, билд под андроед.
Используются SDK/NDK, Qt libraries, JDK/Gradle. Компилится 1 файл, линкуется, запускается gradle+android build, сканируются QML зависимости, что-то еще докапывается, снова gradle, получается ADB, деплоится через USB. Все hot (в кешах), несколько запусков. Userspace filesystems отсутствуют. Фоновые процессы минимальны (chrome/dropbox итд остановлены)

Linux + ZFS (все на ZFS) — 32 секунды
Mac OS + ZFS (все на ZFS, openzfs) — 41 секунда
Mac OS + HFS+ (все на HFS+) — 39 секунд
Mac OS + HFS+ (все на HFS+) + переключиться с закладочки с билд логом, минимизировать Qt Creator и не отсвечивать — 34 секунды.
Линукс ext4 с минимизацией отрисовки не пробовал.

Такие дела. Тест делался по мотивам тормозов макси в отрисовке ейного ГУЯ, для сравнения прочих перфомансов.

Щупаю язык Dart в целях как оно там Flutter все дела кросплатформенность, ко-ко-ко (2 платформы, ндя).

Dart как жаба совсем. После Kotlin-а ощущается мною как шаг назад. В отличие от жабы Async/await — есть! Всякие изоляты и мультитредовость еще не щупал. switch/case от С++ целиком 8)

Идейный плагин как-то фурычит, терпимо. Стандартную библиотеку не проиндексировал, найти наследников от Widget не смог. В evaluate/modify автокомплит работает только по полям, а по пропертям не может. Написал switch(), а он мне его возьми и подкрась моментом —
требует чтобы все кейсы из енума там прописал. Не отстал, пока не написал. Короче, проблемы первого мира у меня.

Релоад работает. Жосткий релоад тоже работает.

Я хочу написать десктопно-планшетную приблуду. Пробовал на гейбуке разные эмуляторы, уже упоминал. Остановился на Bluestacks — самый быстрый и приятный (родной SDK эмулятор тормозит 3 кадра в секунду). Минус Bluestacks — говно мамонта, даже настроек нету, HiRes не поддерживает. Афтары пишут: сорян, гейбук не в приоритете, венда наш фронтир. Зато честно. В отличие от также шустрого Andy (в нем Android 4.4) флуттер на Bluestacks поднялся и взлетел без проблем.

Жалко нету нативного десктопного таргета, но с методологией разработки (релоады) на девайсе/эмуляторе это менее важно.

Буду продолжать информировать.

Я замерял latency ввода клавиатуры гейбука на манер как делал афтор в матерьяле #2886434. Ну, скажем, что рендеринг страницы еще добавляет времени.

Короче, 7 кадров 120 FPS ~ 60 msec. +/- 16 мсек на рефреш — это встроенная клава + встроенный монитор гейбука.

А вот 4К моник (тоже 60FPS over DisplayPort) плюс механическая клава (CM Storm) дали реакцию 4 кадра, что составляет ~ 33 мсек +/- 16 мсек на рефреш.

Думаю, дело в клаве. Картинка, для удовольствия читателя, прилагается (встроенная клава+моник).

А если мерять в IDEA, там все 80 мсек по ощущениям 8(

Я запустил в live mode убунту на гейбуке со своим нищебродским 4К монитором, И ОНО НЕ ТОРМОЗИТ НА НЕМ как гей-ос тормозила! Да и вообще летает очень здорово, ИДЕЙка отрисовует как родная, интерфейс умножай, не умножай, одинаково летает.

Карочи, дуал-бут! Скорее дуал-бут! Все в сад!

И всё же: Wunderlist, MS To-Do, Todoist, Remember-the-milk, NirvanHQ, Trello, Google Keep, Any.Do, Doit.im...? Срочно нужен хороший инструмент для ведения дел, а здесь и там чего-то да не хватает. Чем вы лично пользуетесь для списков и планирования дел?

Я пока понял, что общие списки (что именно купить) и списки задач (надо что-то когда-то купить) для меня это разные вещи.

Наконец-то побаловал себя блютусной механической укороченной (без нумпада, и с нормальной раскладкой) клавой.

Минус у нее один, но стремный: иногда, раз в 20 минут, не доходит какая-то клавиша: нажатие там, или отжатие. При том, bluetooth/wifi interference, если шифи на 2.4ггц, и если скайп голосом, и если блютуц наушники при том доносят голос, то эфир засорен конкретно, и клава сразу начинает пропускать клавиши. Ну, до того это было по мыше заметно, что она изредка притормаживает, если эфир вблизи ноута засорен, но на мыше это не так фатально. На клаве это просто драма. Переключил шифи на 5Гц, стало приемлемо (раз в 20 минут, но бывает и реже).
Клава Varmilo VB87M.

Гик внутри меня плачет.

Одним из незаменимых фич IDEA для меня является история перемещений позиции курсора по файлам. В IDEA их две: можно идти в прошлое по местам изменений кода, а можно по местам, где ты был перед тем как нажал кнопку глобального перемещения (Ctrl+Home/End, перемещение в результате поиска, перемещение в результате перехода на подсвеченную ошибку итд).

Таким образом, нажав несколько раз, например, Ctrl+Alt+Left, побываем во всех местах, которые у нас в башке имеют еще горячий контекст, а нажав Ctrl+Alt+Right, в обратном порядке вернемся к текущему месту.

Существуют языки, которые по сравнению с жабкой требуют частой беготни: посмотреть на дефинишны/типы, вспомнить имя итд, то есть Хаскель. Я пробовал вспедальнуть на Leksah (под гей-осью оказалась неюзабельна), брал Atom (интеграция с ghc-mod какая-то есть, можно терпеть), Vim не пробовал, но раньше перед переходами приходилось маркировать позицию, eclipse-fp говорят, сдох, а вот для IDEA нашел intellij-haskell, которым щас и пользуюсь (подсказки не хуже чем в атоме + всякие этим стандартные ништяки).

Вот я как раз я в Атом не смог именно из-за отстутствия истории перемещений, уж очень это у меня в спинном мозгу.

А что в спинном мозгу у вас? Как в этих ваших емаксах (добавить свое) сбегать в начало файла, потом в середину, а потом вернуться в другую середину, есть такое? Или изобрели что-то иное?

Размышлял на тему русского правила "сам погибай, а товарища выручай" и что оно дает обществу.

Помимо формирования очевидного коллективистского (со всеми его плюсами) поведения, оно обладает еще некоторыми, возможно не очевидными эффектами (впрочем, это тоже плюсы колл. поведения, может быть).

Вот например, перед нами многочисленный враг, и в данный момент он больше наседает на товарища, а ты более свободен. Выбор "смыться или помочь", если ты коллективист, не стоит, но параллельно с ним, если ты выручаешь товарища то :

1) ты уже доброволец, а твой товарищ не добровольно попал в нагруженное место, а у добровольца больше возможностей по управлению ситуацией, т.к. он погружается в нагрузку по своему оптимальному маршруту.

2) когда ты не доброволец, а находишься в нагруженном месте по обстоятельствам, то тебе за себя страшно, а когда, наоборот, ты защищаешь кого-то, ты думаешь о нем, и тебе за себя не так страшно, и страх не сковывает тебя, и у тебя больше КПД.

Получается, вместо мощности 1+1 если товарища не выручать, имеем например 1+1.5, то есть прибавление к мощности на ровном месте. Далее, кстати, по нарастающей.

Это хорошее, полезное правило. Если есть дух.

Спонтанно выработал способ повышения продуктивности: берешь ноутбук и уходишь работать в ебеня, где нет электричества и никто не мешает, и там пытаешься всю работу сделать до того как батарея сядет. Каждая минута на счету, успеваешь овердохуя сделать. Скорее всего уже придумано до меня, не натыкался.

На последнем ICFPC нужно было писать AI (алгоритм) для бота PACMAN на функциональном языке, неважно каком, потому что то, на чём пишешь, нужно было затем скомпилировать в байткод лисп-машины. Было выбрано нехилое подмножество Java, был написан компилятор в нужный байткод и затем писался AI уже на Java, с женериками, функцией fold0, filter, лямбдами и подобной радостью.

Это был тот редкий момент, когда на жабе пишешь purely функционально.

И у меня оформилась, наконец, общая претензия к функциональному стилю.

Функциональный стиль заставляет придумывать множество идентификаторов или в противном случае писать многоэтажные выражения. Если писать функции — одно-пятистрочники, то это будут идентификаторы функций. А если писать функции 20-строчники, это это идентификаторы let-varibles или их аналогов. А если ты пишешь многоэтажные выражения, то не отладить нормально: не посмотреть в процессе промежуточные состояния.

А у меня фантазии не хватает эти идентификаторы сцуко придумывать. А потом не хватает склероза их вспоминать, или устаешь искать глазами что имел в виду . Банальный бытовой лисп поэтому меня бы просто разорвал на куски.

Да, я на обычной индустриальной жабе пишу функции на 3 экрана, бывает. Один FOR, за ним другой WHILE, комментарии над каждым. А когда не пишу большие ф-ии, то у меня короткие типовые имена методов в пространстве имен конкретного класса.

И кстати да, в нашей функциональной жабе работает autocomplete с привязкой к типам и женерикам (правда часто со скрипом!), и я почувствовал каково оно было бы на Хаскеле писать в нормальной IDE. Круто было бы на Хаскеле с нормальной IDE. Но проблема придумывания и вспоминания названий всё равно бы осталась.

Это наверное возрастное (?).

Всё остальное в функциональном стиле для меня хорошо. И немутабельность хороша, и чистота и грязнота. Ну а конкретно в функциональной жабе несколько напрягает разрастание сигнатур типов, естественно 8), даже в восьмерке, долгих ей лет. И еще неприятно прикалывает ошибка типа, на которую показывает IDEA, в третьем параметре какой-то функции которую я вызываю внутри лямбды внутри map, а всё потому что результат этого map присваивается переменной, тип которой уже написан слева и не сходится с результатом выражения справа. Я бы предпочитал чтобы IDEA ругалась, наоборот, только на тип переменной слева от знака присваивания (binding, whatever), если правая часть имеет осмысленный тип. Но может на правой части просто можно ругаться для них разнообразнее? Кто знает.

Ну, и ICFPC в этом году мы продули: писать AI для ботов клеточных игр никто достаточно хорошо не умеет, и особо не любит, не то что компиляторы или профайлеры результирующего кода.

Описываю здесь мой желаемый метод программирования под ИОС:

1. Ставишь на IOS (можно даже нерутованный) специальный интерпретатор Java (без JIT, потому что огороженность), который поддерживает JNI (для COCOA binding) поддерживает JDWP (отладку) и поддерживает hot code reload любым известным методом. НАЖИМАЕШЬ НА ЭКРАНЕ, запускаешь спецальный управляющий всем барахлом бинарничек, он слушает сеть.

2. В любимом IDE написал программу, НАЖИМАЕШЬ КНОПКУ, оно:

— Запускает на десктопе rsync или аналог и на устройство копирует структуру проекта (включая скомпилированные классы).
— Посылает из IDE по сети команду на устройство на запуск проекта на месте в интерпретаторе
— Коннектится по JDWP и позволяет отладить..
— в программе используются прямые вызовы Cocoa, а если совсем круто, то какой-нибудь абстрагирующий ui framework.
— тыкается пальцем в экран устройства — там работающая программа

3. Поменял текст программы в IDE, НАЖАЛ НА КНОПКУ:

— снова rsync (быстро-инкрементальный)
— по JDWP или другим образом (classloader, JREBEL) делается hot code reload (тоже быстро)
— по JDWP отладка продолжается (тоже быстро).
— тыкается пальцем в экран устройства — там работающая программа

4. Когда программа написана, используется подход типа RoboVM или XMLVM для создания из написанной Java выполняемого кода который можно выкладывать в маркет.

Это вам, ребята, реализуемая идея для стартапа.

Аналогично и для андроеда, только там не Cocoa, а Dalvik, чуть замороченнее будет, но можно компилять на десктопе прямо в дальвик-байткод и не париться особо.

Такие дела.

P.S. Лисп не предлагать 8)

И еще раз — секрет продуктивности в концентрации или даже медитации. linkedin.com При этом, пока я писал этот маленький псто, я отвлекся на твиттер и почту. На работе отвлекающие мелочи растягивают день, отнимают время. Выходит, значит, что с недостаточной мысленно погруженностью в задачу не получается должным образом разогнаться, а переключение между делами отнимает какой-то разгон. Наверное, это все в какой-то степени очевидно.

Возьмем избитый пример соцсетей как отвлекакашки. Иногда там бывает что-то интересное или познавательное. И иногда этими вещами очень хорошо заделываются рабочие «дыры», например пока ждешь минут по десять охлаждение или нагревание во время эксперимента и делать реально нечего — дать себе и смотреть на показания термоконтроллера. Я думал поудаляться из мест, излишне повышающих информационный шум, потому что я на них отвлекаюсь даже тогда, когда это не нужно — инстаграм и фейсбук уже пошли лесом. Твиттер несет в себе иногда интересные вещи, но он сам по себе устроен так, что получаешь небольшие обрывки информации. Что там интересного? Анонсы, ссылки на статьи (ссылка в начале поста тоже оттуда), напоминание о каких-то конференциях, юмор иногда, новости! В Вк некоторые предпочитают общаться больше, чем в оффлайне. Элакий приоритетный канал связи. Но это информационная площадка для некоторых вещей. В общем, есть свои плюсы у этих сервисов, и плюсы эти присущи им самим. А минусы присущи не им, а моей модели восприятия, реакции на каждое оповещение, в желании навести порядок в информационных потоках и не пропустить ничего важного!

Я проговариваю здесь вслух понятные вещи, чтобы обозначить момент. Берем волю в кулах, наводим дисциплину в голове и начинаем с малого — уборки в комнате :D Надо уметь расставлять приоритеты, а то я стал чувствовать себя воздушным шариком в урагане обмена информации. Внимание рассеивается на все вокруг. Надо в твиттере отписаться от всех бесполезно «шумящих» людей, либо завести список полезных аккаунтов. В Вк проверять только нужные новости и отпинываться от переписки. А как же джуйк? Надо, видимо, отправить ему OFF. Мысллить сюда удобно, но это антипод способа вдумчиво поразмыслить над тем, что написать, это быстрый и простой способ. Хотя сейчас я пишу это в саблайме и думаю, думаю... о том, что джуйк мог бы быть интересным своим сообществом. Посмотрим еще.

А теперь за дела.

В апреле сообщалось, что в Windows 8.1 появится кнопка «Пуск»...Отсутствие привычной кнопки породило массу критики среди пользователей ..системы.. Однако .. за кнопкой «Пуск» в Windows 8.1 не будет скрываться привычное меню. Вместо этого кнопка будет просто запускать экран «Пуск». Экран «Пуск» — второй объект массового недовольства...
cnews жжот. и microsoft тоже жжот.

(источник cnews.ru )

Продуктивность убивает креативность. К такому выводу пришел автор поста на blog.jayfields.com Чтобы быть продуктивными мы совмещаем несколько дел, загружаем мозг по полной. Наше свободное время мы тратим на чтение, но нам некогда обдумывать прочитанное. Мы потребляем контент, но не усваиваем его как следует. И пространства для идей как не бывало :( Кстати, смартфоны нам в этом большие помощники.
Мой опыт подтверждает сказанное. Надо бы подобрать себе информационную диету. Ушел гуглить :)

Вот тут гном3 и unity, не к ночи быть помянуты, в своих уставных документах педалируют фокусированность на задаче, неотвлечение от задачи, задаче-центричную работу итд..... для этого они удавили трей, покушаются запретить не-максимизированные окна, итд..

Ребята! 14-дюймовый монитор! В плане фокусированности на задаче дает сто очков вперед всем упомянутым нововведениям. Сижу и просто радуюсь!

"Я хотел стать продуктивнее, поэтому прочитал GTD (Getting Things Done, отличную книгу Девида Аллена). Я купил утилиты, которые рекомендовали другие GTDешники. Создал несколько списков, попробовал пару десятков разных программных и бумажных методик ведения этих списков. Каждый GTDешник знаком с этой проблемой. GTD, как и любая другая система продуктивности может стать очень сложной.
Сейчас мой совет себе прошлому таков: перестань усложнять. Продуктивность, как я вижу ее сейчас, это простая штука. Берешь самую важную задачу, которую хочешь сделать сегодня, избавляешься от всего, что тебя отвлекает и начинаешь работать. Даже список не нужен, хотя если он есть, и в нем записано, что еще нужно сделать, то ничего страшного. Пусть будет один список. Но не надо на нем зацикливаться. Просто бери одну задачу, и начинай работать."
habrahabr.ru
И это правда, а все эти GTD, списки ToDo, ежедневники, с постоянной мастурбацией на них — от лукавого.
PS. Just do it!

Ведем учет времени и затрат с Ora Time and Expense 1.1.14

Программы, контролирующие затраты времени, уже не раз описывались на этом блоге. Это и бесплатный оффлайновый ManicTime (обзор) для индивидуального пользователя, и платный сервис с настольным клиентом RescueTime (методы использования) для группы лиц. Сегодня речь пойдет о программе-таймере, контролирующей время выполнения конкретных проектов и затрат по ним – Ora Time and Expense — asjudc.com

Придумал, как повышать производительность труда.
1. Регистрируемся на rememberthemilk.com
2. Добавляем в места для напоминания свой jid.
3. Добавляем задания с названиями вроде «Делай проект, сука!» и ежедневную напоминалку к ним.
4. Добавляем в ростер [email protected] и вместо ника выставляем имя начальника/препода/военкома.
5. Успешно забываем.
6. ...
7. ПРОФИТ!

Итак, друзья, я теперь могу быстро оформить документ/мысль/тоду любой сложности и вложеннности. Причем под любой платформой wikidpad.sourceforge.net Из приятного: экспорт, всякие-разные иконки, автокомплит, история изменений, работает на пайтоне)) Весч, однозначно!