|
Подпишитесь на новости сайта по RSS
|
|
Главная страница
Здравствуйте!
Вы находитесь на сайте WebHamster.ru. Наш хомячок бегает по интернету в поисках интересной информации. Он собирает её по крупицам и аккуратно складывает здесь. А еще хомячок знает буквы, садится за свою маленькую пишущую машинку и сам пишет всякую ерунду. Он такой непоседа...
Новости
|
|
|
Менеджер накопления информации MyTetra в экспериментальной версии v.1.44.44 получил новый функицонал. В опции программы были добавлены следующие команды:
./mytetra --control --show
./mytetra --control --hide
./mytetra --control --addNoteDialog
Что это значит для пользователя? Это значит, что появился кроссплатформенный механизм для открытия окна MyTetra и для организации быстрого добавления записи по глобальным горячим клавишам.
Вот как это работает. В любой операционной системе есть программы настроек глобальных горячих клавиш. Привязав к одной глобальной комбинации вызов команды активации окна MyTetra, можно добиться того, что окно MyTetra появляется на экране. А если привязать к другой глобальной комбинации клавиш вызов команды открытия окна для добавляения записи, можно получить быстрое добавление звписи в базу MyTetra.
Чтобы подробнее понять, как происходит настройка глобальных горячих клавиш, требуется изучить в документации следующие разделы:
Желаю удачи!
|
|
|
|
Вслед за поддержкой ввода формул, в экспериментальной ветке MyTetra наконец-то появилась и заработала подсистема настройки горячих клавиш (версия v.1.44.39).
Ранее горячие клавиши были жестко прописаны в коде программы. Теперь схема горячих клавиш хранится в отдельном конфигурирующем файле shortcut.ini, который автоматически создается (если его нет) и располагается в рабочем каталоге программы. Выглядит этот файл примерно вот так:
[note] addNewAfter=Ctrl+Alt+M addNewBefore=Ctrl+Alt+J addNewToEnd=Ctrl+Alt+N block=Ctrl+Alt+B copy=Ctrl+Alt+C cut=Ctrl+Alt+X delete=Ctrl+Alt+R editField=Ctrl+Alt+E moveDn=Ctrl+Alt+Down moveUp=Ctrl+Alt+Up nextNote=Ctrl+Alt+Right paste=Ctrl+Alt+V previousNote=Ctrl+Alt+Left
[tree] collapseAllSubbranch=Ctrl+Shift+9 copyBranch=F3 cutBranch=Ctrl+F8 decryptBranch= delBranch=F8 editBranch=Shift+F6 encryptBranch= expandAllSubbranch=Ctrl+Shift+8 insBranch=F7 insSubbranch=Ctrl+F7 moveDownBranch=Ctrl+Shift+PgDown moveUpBranch=Ctrl+Shift+PgUp pasteBranch=F5 pasteSubbranch=Ctrl+F5 setIcon=Ctrl+Shift+O ...
В настоящее время MyTetra только считывает настроечный файл и применяет данную схему горячих клавиш. Пользовательского интерфейса настройки горячих клавиш пока нет, поэтому для настройки нужно редактировать файл shortcut.ini. Те, кто давно ждал горячих клавиш, могут начать ими пользоваться уже сейчас. В ближайшее время виджет настройки горячих клавиш появится в пользовательском интерфейсе.
|
|
|
|
На многих сайтах, посвященных заработку в сети, появляется один и тот же вопрос: почему сайт с хорошей посещаемостью приносит так мало дохода? Внятного ответа на него найти не удастся. Сразу же будут разговоры о том, что сделать чтобы доход подрос, но в обсуждении не будет самого главного: каковы первопричины того, что сайт приносит мало дохода.
Я, как владелец низкодоходного сайта с хорошей посещаемостью, прекрасно осознаю, почему для моего сайта доход от баннерной рекламы очень невысокий. Поэтому решил написать в виде статьи выжимку из того, что знаю. Кратко и по теме:
Ответ на вопрос: почему сайт с хорошей посещаемостью приносит так мало дохода?
Всем вебмастерам, которые находятся в таком же положении, как и я, давно уже следует понять эти простые истины. И не питать иллюзий по поводу возможного увеличения прибыли с сайта. Хотите зарабатывать в вебе - ломайте себя и занимайтесь той тематикой, в которой есть деньги. По-другому заработков не будет, какой бы прекрасный сайт у вас не был.
|
|
|
|
Долгое время PIM-менеджер MyTetra умел работать только с директориями, в пути к которым используются только латинские символы. Это обычная проблема для кроссплатформенных программ. Ноги у нее растут из того, что корпорация Microsoft в момент создания Windows-95 посчитала, что системная кодировка (которая используется, в частности, при работе с файлами и каталогами) может отличаться от кодировки консоли. И аукается это даже в Windows 10. Для русскоязычной версии Windows системная кодировка установлена как CP1251, а кодировка консоли CP866. Молодцы, что еще сказать.
Наконец, у меня дошли руки поразбираться с этим вопросом. В результате чего было написано две статьи:
Как в Qt узнать системную кодировку локали под Windows
Как в Qt работать с русскими именами файлов и директорий под Windows
А так же в ветке experimental PIM-Менеджера MyTetra появилось обновление кода, благодаря которому теперь MyTetra может:
- Запускаться из каталога, в пути которого есть национальные символы;
- Работать с каталогами данных, в пути которого встречаются национальные символы. Это особенно актуально для Windows-пользователей, которые используют русские буквы в своем логине, и устанавливают MyTetra в стандартном режиме (в этом режиме данные размещаются в каталоге пользователя, который и имеет русскоязычные символы в своем названии);
- Правильно отображать национальные символы в консольном логе, если включена опция логирования отладочных сообщений.
Работа проверена на русскоязычной Windows 7 с кодировками CP1251 (системная) + CP866 (консоль) и на Linux с кодировкой локали UTF-8.
Эта доработка будет включена в следующий крупный релиз.
|
|
|
|
Фремверк Qt настолько крутой, что позволяет собирать десктопные программы под Android. Да, на Android можно запускать Qt-программы, даже если они сделаны без использования QML. Вопрос в том, как эти программы отрисовываются и можно ли ими пользоваться.
В начале развития поддержки Android, специалисты Qt еще не знали, выстрелит ли их технология QML. Поэтому достаточно аккуратно пилили поддержку нативных десктоповых приложений в Android. После того, как на мобильной платформе плотно устаканился QML, на поддержку десктоповых приложений забили, и она сейчас существует просто как данность. Да, компиляция под ARMv7 работает, да, формы кое-как рисуются и... все!
К сожалению, у меня не осталось старых скриншотов, в которых MyTetra for Android выглядела более-менее приемлемо. Но сейчас, спустя несколько лет после предыдущих экспериментов, я снова решил посмотреть, на что похожа сборка под Android. Собрал последнюю актуальную версию MyTetra, и вот что увидел.
Запуск. Для начала вроде неплохо, окошечко с тоненькой рамочкой и тенью:

Далее следует вход в режим отрисовки дерева. Это уже страшно:

Панель поиска особенно уродлива. Куда-то исчезла кнопочка закрытия, чтобы не видеть её. Эта панель нас будет преследовать все время.
Выберем ветку, и можем просматривать список записей:

На панели кнопок, в Android-интерфейсе, появляется кнопка "Стрелка назад", с помощью которой можно вернуться в просмотру дерева.
Нажмем на запись в списке, и можно посмотреть саму запись:

Если кто не видит, то тут есть разделительная линия в один пиксель, которая позволяет увеличить/уменьшить высоту виджета поиска. Вопрос в том, как в этот пиксель попасть пальцем. Верхняя панель с тремя точками (вход в меню) почему-то время от времени пропадает. Видимо, какой-то старый баг, который никто не спешит устранять.
В общем, зрелище удручающее. Заманчиво иметь единую кодовую базу как под десктоп, так и под мобильную платформу. На практике же такой подход работает не очень.
Можно, конечно, причесать немного, и выпустить релиз "чтобы был". Если пользователю нужны не шашечки, а ехать, то можно и этим интерфейсом попользоваться. Но вопрос на самом деле не в интерфейсе, а в синхронизации базы. На десктопах можно синхрить файлы в директориях через Git, Svn, Dropbox, Yandex.диск и т.д. А под андроидом так не получится. Хотя, может быть есть какой-то сервис, о котором я не знаю, с полноценной синхронизацией каталогов под Android.
В общем, если есть что сказать, можно отписаться вот в этой теме нашего веселого форума: MyTetra v.1.43.x - Пожелания, вопросы, багрепорты.
|
|
|
|
Сегодня опубликовал статью, которую написал сам для себя, с целью не забыть куда надо тыкаться в интерфейсе Рекламной Сети Яндекса чтобы посмотреть баланс счета. Почему-то в РСЯ для такого простого действия надо выкрутить мОзги наизнанку.
Как посмотреть баланс заработанных средств вебмастеру в интерфейсе РСЯ
Плюсом, в конце данной статьи показаны суммы, которые зарабатываются этим сайтом в Яндексе. Кстати, я уже публиковал эпичный пятилетний финстрип по заработку в Google Adsence. Кратко можно сказать, что Гугол раза в три жаднее Яндекса. В любом случае речь идет об очень смешных суммах. Дети, которые бегают к ларькам и собирают с земли монетки, зарабатывают куда больше.
|
|
|
|
Случайно узнал удивительную новость о том, что в сентябрьском номере журнала Linux Format (английская версия) в разделе "Самое лучшее программное обеспечение с открытым исходным кодом на планете" появилась статья про мой PIM-менеджер MyTetra.

Сама статья написана в классическом буржуйском утилитарном стиле, и рассказывает о MyTetra в сравнении с ПО, основанном на Linux-библиотеке доступа к персональной информации Akonadi (фреймверк, используемый в KDE). Неожиданное сравнение, хотя почему бы и нет. Сама статья выглядит так:

Увеличить
Текст следующий:
MyTetra
Version: 1.43.27
Web: https:// github.com/xintrea/mytetra_dev
It’s like a Wordpad with power-ups and project management features.
We would love to write endless praise for Akonadi, if only it didn’t crash from time to time, so in the meantime there is still a demand for a solid, stable and well-designed personal information manager (PIM) for Linux. Before taking MyTetra for a review spin, we Googled for existing PIM apps and after a while discovered that MyTetra may be not instantly the best, but it has some special features to offer and generally looks very strong.
Good things spring out from the moment you use it. In our memory MyTetra is the first app that asks if you want to store its data in ~/.config (standard behaviour) or in the current directory (portable version). The latter lets you take your notes with you anywhere on a USB flash drive, for instance.
The main window resembles the famous CherryTree note-taking app, for which we had a sweet tutorial in LXF237. Basically, there are three panels: the left one for the notes tree, the upper one for the inbox-like table view, and the main area for working with your documents. MyTetra has outstanding rich text editing capabilities that don’t leave you hanging, because MyTetra has everything a word processor should have, and in this regard it clearly outperforms CalligraWords (formerly KWord), the only dedicated Qt-based word processor. MyTetra lets you select fonts, their sizes and styles, change indents with a ruler, work with tables and cells, format your text as a numbered list and do many more things. Everything is stored using the HTML format, and you can even edit the code right in the application, as if it was a web composer!
What is where in MyTetra...
1. The tree of your notes No matter how big your MyTetra library is, you always see the entire structure here, with all sibling and child items. 2. List of notes inside an item Each element of the tree can hold more than one note. You can check the entire list in this table view. 3. Documents with rich formatting It goes far beyond just playing with fonts. Tables and images are also supported! 4. See what you get Each note is an HTML document inside, and here you can see its rendered preview. 5. Search the knowledge base MyTetra diligently puts all your body texts, titles and tags into a searchable index.
Apart from being a cross-platform application, MyTetra can be used as an online encyclopedia if you upload your mytetra.xml and other data files to a remote host. The project website contains instructions about the required steps with GitHub and Bitbucket used as example hosts. The MyTetra download page offers a static build for those who don’t want to compile the code themselves.
Как хорошо иногда продвигать свое ПО в интернет-сообществах! Достаточно было назвать MyTetra "Самой нужной программой не свете", как эстафета была подхвачена, и теперь она самая лучшая на планете. Так и до Мультивселенной недолго добраться.
|
|
|
|
Процесс публикации Qt-программ никогда не был простым и однозначным. Все дело в том, что в Qt до сих пор нет готовых инструметов для подготовки релиза на разные операционные системы. Документация заявляет о наличии утилит windeployqt и macdeployqt, однако эти утилиты поставляются почему-то в исходниках и не доступны при обычной установке среды разработки. А такой утилиты как lindeployqt нет вообще как понятия. Как будто для Linux не нужно разруливать зависимости библиотек. А я всю разработку веду как раз под Linux.
Если же попробовать найти зависимости через команду ldd, то окажется, что она показывает не все необходимые библиотеки. В Qt давно уже переходят на модульную архитектуру, и с каждым релизом что-то меняют, поэтому для менедженга библиотек сделали их динамическое подключение. Приводит это к тому, что в таблице библиотечных функций бинарника просто нет дескрипторов тех функций, которые необходимы для работы. И если этих библиотек не будет, узнать об этом можно только если программа при каком-то действии перестанет работать. Дело осложняется еще и тем, что при такой ошибке в консоль даже не будет выведено собщение об ошибке с названием нужной библиотеки. Просто молча что-то не будет работать, или вся программа завершится.
Из-за этого, в предыдущей сборке PIM-менеджера MyTetra v.1.43.27 не были подключены все библиотеки печати. И печать из MyTetra просто не работала. Задним числом выяснилось, что недостаточно наличия libQt5PrintSupport, нужны еще библиотеки libcupsprintersupport.so для Linux и windowsprintersupport.dll для Windows.
Я бы мог сделать исправленную сборку, но решил, что смысла ее делать нет. Вместо этого сегодня сделан выпуск последней актуальной версии MyTetra v.1.44.31. Она отличается от предыдущего релиза только наличием поддержки формул. Эта поддержка еще будет дорабатываться в плане удобства (например, нужен предпросмотр формул). Но все остальное осталось так же как и в предыдущей версии, плюс добавилась поддержка печати.
Скачать новую версию можно, как всегда, на официальной странице MyTetra.
Примечание: Если кто не желает переустанавливать программу на новую версию, можно просто скопировать из архива каталог /printsupport, и печать заработает в предыдущей версии.
|
|
|
|
Это вторая часть статьи. Первая часть стать находится здесь: Год после увольнения из Росатома (Часть 1)
Фирма, в которой я удаленно работаю, занимается разработкой устройств высокоточной GNSS-навигации. Одно из развиваемых направлений - судовая гражданская навигация. Для навигационных устройств, которые выдают данные по протоколам BINR и NMEA2/3, требуется ПО, которое бы все эти измерения красиво показывало на мобильных устройствах.
Разработку я веду на C++ - фреймверке Qt с использованием QML. Это очень удобно, так как сразу получается бесплатная компиляция под десктоп 32/64 bit для Linux и Windows, и, что самое главное, под платформу Android. Мой код интегрируется с проприетарной библиотекой, которая обеспечивает парсинг NMEA и BINR протоколов, и которая до этого проекта существовала для нескольких embedded-платформ под 16/32 bit, плюс под Windows 32 bit компилировалась через какой-то древний Borland-компилятор. Да, в таком деле все время приходится работать с легаси. Зато, если понадобится, мы сможем сделать сборку хоть под микропроцессор Эльбрус, благо на последней выставке "ЭкспоЭлектроника-2018" уже появилась куча отечественных устройств на нем.
Недавно, сделав крупный релиз, я организовал проверку работы системы в "боевых" условиях на яхте:

В самом начале работы был нарисован оригинал-макет того, как должна выглядеть страница с навигационными датчиками:

В ходе работы были некоторые трансформации, в результате получилось вот такое Android-приложение с навигационным экраном. Практически, один-в-один, как заказывали:

Все стрелочки прикольно упруго двигаются, а цифровые счетчики "прокручиваются" как настоящие. Такое поведение можно отключить в настройках, но мне так больше нравится. Далее пришлось научиться работать из C++ со встроенными сенсорами мобильного устройства в ОС Android:

Встроенные сенсоры - это демонстрационная возможность. На самом деле настоящие навигационные данные передаются по сети по TCP-протоколу или берутся из файловых логов, если работает режим имитации. В планах передача данных по Bluetooth и USB/Com. Меню у приложения многоуровневое, и выглядит так:

Далее наметилась работа на поддержку картографии. Картография - это вообще отдельный большой мир. В новых релизах появилось окно, в котором отображаются слои Open Street Map и Open Sea Map. Конечно, это все демонстрационно, так как для реальной навигации должны использоваться профессиональные морские карты, но реализовано это будет позднее:

Для карт такой стиль экрана не очень подходит, так что видимо предстоит работа по переделыванию на планарный стиль, с картой во весь экран, без этих всех олдстайловых рамочек, кнопочек и счетчиков.
В общем, работа кипит.
* * *
Этим постом я сдержал обещание рассказать о том, как обустраивает свою жизнь программист после увольнения из "теплого" места. Я неимоверно рад, что в мире есть Интернет, благодаря которому такая деятельность как удаленная разработка вообще стала возможна. Да, иногда приходится ездить в командировки, но это лишний раз мобилизует, потому что к очередным испытаниям надо доводить проект по-максимому до вылизанного состояния.
Всем удачи.
|
|
|
|
В фервале 2017 года я опубликовал на Хабаре резонансную статью "Каково это — быть разработчиком в России, когда тебе сорок", а в сентябре уволился из болотной трясины из Росатома. Прошел год, наступил сентябрь 2018 года, и для тех, кто просил рассказать о том, что в итоге получилось, я пишу эту заметку.
В комментариях к вышеозначенной статье можно найти часть того, о чем будет рассказано далее. Но чтобы не рыскать по портянке из over 700 сообщений, все основные вещи я напишу здесь.
Итак. Увольнялся я в тот момент, когда "дошел до ручки", не имея новой работы. На тот момент я вел переговоры с буржуйскими рекрутами, с местными городскими производственными фирмами, искал работу в интернете на всяких HH-сайтах. В конечном итоге ни один из этих способов не сработал. Я сказал себе, что в крайнем случае влезу на фриланс-биржу и буду работать за еду.
Анализируя запросы, которые высказывали работодатели, я выделил два направления, в которых мог бы работать: программирование front/backoffice на PHP и разработки прикладного кода на C++. Роботодатели, которым требовались плюсовики, были в большинстве своем консервативны, и найти в этой сфере работу на удаленку я не мог, ибо все хотели работника в офис.
PHP выглядел более перспективным в плане удаленки, и я начал прокачивать свои навыки в программировании на фреймверке YII2. Прокачивать навыки я привык на реальных проектах, поэтому я начал восстанавливать свой давнишний многолетний pet-проект на PHP, чтобы оценить скорость разработки а заодно и понять, смогу ли я его тянуть параллельно с другими проектами, если таки его запущу. Вместе с этим я продолжал искать работу через интернет. В принципе, работа была, но это была скучная работа во всяких веб-студиях, в которых надо было допиливать уже запущенные типовые проекты, 90% из которых - это интернет-магазины. Бее...
К новому году стало понятно, что работу по своим запросам я найти не смогу. Деньги, которые я использовал как подушку, заканчивались. Неожиданно подоспел взлет биткоина, и мне хватило ума продать свои нольцелыххрендесятых битка на пике цены. Полученные деньги можно было растянуть на пару месяцев.
За все это время я успел наобщаться с разными работодателями, адекватными и не очень. Периодически выполнял тестовые задания, которые, такое впечатление, что давали "на отвяжись". Из-за одного неадекватного руководителя проекта, который успешно шифровался под адекватного человека (пока не дошло до конкретного дела) появился OpenSource проект MoveNoid. В этом тестовом задании я демонстрировал свои навыки по работе с C++, Qt, OpenCV, Box2d. И только после отправки тестового задания выяснилось, что ему нужен не C++ а C#, а про Linux он просто мечтал, а на деле нужна разработка под Windows. В общем, на рынке работы в области IT творился какой-то трындец. Или мне так везло, не знаю.
Понимая, что стандартными средствами найти работу невозможно, я попытался влезть туда, куда особенно и не звали. Неожиданно, но это принесло результат! Я позвонил в фирму, для которой сразу после публикации статьи (см. начало) я сделал один дизайн-проект на разработку ПО. Тогда этот проект тоже положили на полку. Я позвонил и просто напомнил о себе, и сказал, что готов приступить к реализации. Руководитель фирмы подумал, и решил начать проект. Вот так и появилась работа, которой сейчас я с удовольствием занимаюсь.
О самой работе рассказывается во второй части.
|
|
|