|
Подпишитесь на новости сайта по RSS
|
|
Главная страница
Здравствуйте!
Вы находитесь на сайте WebHamster.ru. Наш хомячок бегает по интернету в поисках интересной информации. Он собирает её по крупицам и аккуратно складывает здесь. А еще хомячок знает буквы, садится за свою маленькую пишущую машинку и сам пишет всякую ерунду. Он такой непоседа...
Новости
|
|
|
Периодически я выкладываю на своем сайте разную информацию о проектах, в которых я принимаю участие. Это позволяет мне иметь летопись моих айтишных разработок, которые были доведены до стадии продакшена, и немного успокаивает мое самолюбие: наверно, каждому программисту важно, чтобы его деятельность была хоть как-то заметна на просторах Всемирной паутины.
В настоящий момент я занимаюсь разработкой одного очень интересного проекта QrCall.org. Это онлайн-сервис, который позволяет вызывать или оповещать человека посредством QR-кода. В настоящий момент оповещения работают через следующие каналы связи:
- Прямым телефонным звонком (голосовой робот);
- Через Email;
- Через мессенджер Telegram.
Вот пара сценариев использования этого сервиса. Человек не хочет "светить" свой телефонный номер под стеклом машины. Однако он хочет иметь возможность вызова его к своей машине. Подключить у мобильного оператора второй телефонный номер, специально для машины? Как это банально... Дерзкое и неожиданное решение - оставить под стеклом QR-код, при наведении на который откроется страница сайта QrCall.org с кнопкой "Вызвать".
Важная особенность: в QR-коде нет номера телефона владельца, это просто случайно сгенерированный идентификатор. Тем самым достигается сохранность телефонного номера пользователя.
Второй сценарий - виртуальный домофон. Этот сервис предназначен для строений, в которых есть закрываемая входная дверь, но нет домофона. Вместо домофона можно вывесить QR-код, с помощью которого будет открываться Web-страница входа в здание, на которой, как и на обычном домофоне, можно ввести номер квартиры. Если хозяин квартиры подключен к данному виртуальному домофону, ему будут поступать уведомления по всем каналам связи.
Ниже показан набор скриншотов этого сайта:

А вот как выглядит личный кабинет:

Полный размер
В проекте приходится заниматься всеми технологиями, которые используются в разработке и продакшене: PHP, Laravel, PhpUnit, Bootstrap, Composer, Npm, MySQL, Git, Sip-телефония,Mailgun, API Telegram, интернет-эквайринг, бэкапы, SSL-сертификаты... По сути, пришлось выступить в роли создателя информационной системы из 32 таблиц, написав первую боевую версию за полтора месяца. Мне, как специалисту по C++, Qt, QML этот прыжок дался нелегко, но тем больше мне хочется показать, что в итоге получилось:

Я не знаю, выстрелит ли этот проект в дальнейшем, судьбы стартапов неисповедимы. Но как и я, так и заказчик, получили на этом проекте много бесценного опыта. При всех раскладах, это неоспоримый плюс.
|
|
|
|
Новость немного запоздалая, но опубликовать её таки нужно. Я не всегда пишу о своей работе только на своем сайте, иногда возникает необходимость публиковаться на сторонних ресурсах.
В середине лета я, по просьбе своего работодателя, написал статью о том, как разрабатывается наш новый проект QrCall.org. Этот проект релизует вызов и оповещение пользователей о разных событиях через различные каналы связи: Email, телефонию, Telegram; а чтобы достучаться до нужного человека, используется безопасный QR-код.
Нужно было сделать, так сказать, взгляд изнутри. Я предупредил, что статья может не понравиться, но работодатель проповедует принцип "даже плохой пиар - это хороший пиар", так что статья была опубликована как есть:
Бытие современного фуллстек-разработчика
Эта статья раскрывает подробности о том, как строится разработка нового проекта в небольших компаниях. Там очень много технических подробностей, много спорных моментов, душевные терзания о том, как совместить в одной голове C++ и PHP, в общем, есть всё, что нужно для запуска обсуждения. Статья была воспринята аудиторий Хабара положительно, лучшего невозможно было и желать.
Кто еще не успел насладиться моим эпистолярным стилем - бегите скорее читать.
|
|
|
|
Давно хотел написать, но что-то все не было времени. Сейчас исправляюсь.
Итак, с некоторых пор появился человек под ником gee12, который занимается Java-разработкой под платформу Android. Он написал Андроид-клиента MyTetroid (доступен в Google Play), работающего с базой данных менеджера накопления информации MyTetra.
Описание
В настоящий момент данная программа скорее демонстрационная, но в ней уже можно просматривать базу данных. Что самое интересное, товарищ gee12 заморочился, и сделал поддержку кастомной криптографии. Для этого он портировал библиотеку RC5Simple с C++ на Java. Благодаря этому имеется возможность просматривать как открытые, так и зашифрованные записи. С криптографией есть небольшие проблемы: похоже, что Java-библиотека не всегда корректно работает с некоторыми инициализирующими векторами, поэтому некоторые базы данных с зашифрованными ветками этот клиент не открывает. Однако эту проблему можно обойти, сделав перешифровку всей базы данных в самой MyTetra.
В настоящий момент актуальна версия MyTetroid 1.7. Программа распространяется под лицензией GPL v.3. Вот какие возможности она предоставляет:
- Древовидная структура веток, как в оригинальной программе
- Список записей в ветках и прикрепленных файлов к записям
- Просмотр (а не редактирование) содержимого записей
- Расшифровка закрытых веток, записей и файлов
- Открытие прикрепленных файлов и каталога записи
- Некоторые опциональные возможности:
- Выбор пути к хранилищу данных
- Хранение пароля локально на устройстве или спрашивать постоянно
- Выбор подсветки записей с файлами
- Формат отображения даты/времени создания записей
- Использование временного каталога для расшифровки файлов
- Запись логов в файл
Скриншоты
Главная страница приложения выглядит вот так:

Экран настроек выглядит так:

Экран просмотра содержимого записи:

Видно, что работа проделана большая, и автор MyTetra благодарит автора MyTetroid за его нелегкий труд.
Ссылки
Страница программы MyTetroid на сайте разработчика:
https://gee12.space/mytetroid/
Репозитарий на GitHub:
https://github.com/gee12/MyTetroid
Установка через Google Play:
https://play.google.com/store/apps/details?id=com.gee12.mytetroid
|
|
|
|
Уважаемые посетители сайта WebHamster.Ru и пользователи MyTetra Share! В настоящий момент у сервера хостинга iHor.ru, на котором размещен этот сайт, возникли какие-то необъяснимые проблемы. Да вчерашнего дня аптайм (время непрерывной работы) моего виртуального сервера составлял 332 суток. Но вчера сервер пришлось перезагрузить, однако это проблему не решило.
Вместо долей секунд, за которые ранее генерировались страницы на моем сайте, теперь страницы генерируются по пол-минуты, доходит и до минуты на одну страницу:
curl -w %{time_total}\\n http://webhamster.ru 25,342533
curl -s -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' -o /dev/null https://webhamster.ru
Lookup time: 0,004126 Connect time: 0,027547 PreXfer time: 0,103447 StartXfer time: 44,469446
Total time: 44,495544
Либо процесс завершается ошибкой:
504 Gateway Time-out
Нагрузки на CPU нет, память не забита, а вот на дисковый ввод-вывод, похоже, ввели ограничения:
# iostat Linux (webhamster.ru) 04/02/2019 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle 6.18 0.00 0.50 63.86 0.11 29.35
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn vda 12.18 72.00 81.41 6526729 7379664
Объемы дискового ввода-вывода на устройстве vda небольшие, но показатель iowait=63.86% говорит о том, что система только и занята тем что ожидает ввод-вывод.
Техподдержка вначале говорила, что проблем нет, зато на второй день прислала вот такой фееричный ответ:
Смените тариф на SSD и не будете испытывать таких проблем вероятней всего.
Затем пришло пояснение:
HDD диск не отличается большой скоростью и при близкой к полной заполнении ноды он будет работать так.
Похоже, ребята решили заняться оверселлингом, и стали впихивать в свое оборудование невпихуемое. И теперь работа сайта зависит от работы других неизвестных мне сайтов, крутящихся на той же ноде.
Я уже проходил через это у предыдущего хостера, и меня вынудили сменить хостинг. Тогда я перешел на iHor.ru, и три года мог нормально работать. Теперь, видимо, пришло время съезжать с iHor.ru. Будут некие неудобства, конечно, но что поделаешь. Хорошо, что оплата хостинга до мая, как раз за апрель надо решить куда переезжать.
|
|
|
|
Понадобилась мне книга по очередным изучаемым IT технологиям. Я не умею глубоко читать с экрана, поэтому приходится покупать бумажные книги. Зашел в местный магазин "Читай город", нашел книгу, офигел от цены и ушел.
Зашел на портал "Озон", и купил ту же книгу. Уцененную. С механическими повреждениями. За пол-цены. В кредит. С платежом 59 руб/мес.
У меня всё.
|
|
|
|
Очередная заметка в ЖЖ-стиле.
Новостью прошедшего февраля было сообщение о том, что мой прекрасный хостинг iHor.ru подвергся рейдерской атаке. Владельцы грамотно начали кричать об этом на весь интернет, и поэтому, похоже, обошлось.
Вот типичная новость об этом:
Провайдер «Айхор-хостинг» заявил о рейдерском захвате: сотрудникам заблокировали доступ и отключили электричество
Я, признаться, стреманулся тогда, и судорожно стал искать зарубежный хостинг с параметрами, похожими на те, которые предлагает Айхор. Из вменяемых оказался немецкий Fornex.com, который принимает рубли и имеет цены, адекватные российскому рынку. Я про него узнал еще в 2012 году, с тех пор периодически слежу за ним. У меня даже статья про него написана:
Выбор хостинга Fornex для размещения своих интернет-проектов
Но так как на Айхор у меня оплата не закончилась, я решил занять выжидательную позицию, и просто проверил бекапы сайта, которые ежедневно складываются скриптом в DropBox.
Даже не представляю, как владельцы сайтов смогли бы стряхнуть с Айхор остаток за неиспользованное время (ведь многие покупают хостинг на год и более), если б Айхор смогли подмять новые хозяева. И ведь никаких претензий к самому Айхор никогда не было: у них хорошая техподдержка, пару раз были неплохие скидочные акции. Аптайм высокий, об инфраструктурных работах педантично предреждают заранее. И при таком подходе к делу, из-за каких-то мутных посторонних людей, они вдруг становятся рисковым поставщиком услуг. Как-то это все неправильно.
|
|
|
|
На сайте WebHamster.ru я блюду традиции. Одна из таких традиций - это ежегодные отчеты о проделанной мною работе в области IT. В прошлом году был, например, такой отчет. В этом году я что-то сильно забегался, и сил и времени на составление годового отчета просто нет.
Но чтобы не нарушать традицию, я все равно публикую отчет, только не текстовый, а в формате видеоролика. И не про свои личные проекты, а про проект, которым весь 2018 год я занимался на работе. Для этого я подготовил видеоролик на Youtube:
Промышленная разработка на Qt и QML

Сразу оговорюсь: это НЕ обучающее видео. Это видео, в котором рассказывается о вполне конкретном проекте на Qt и QML, который собирается под Android и под Linux десктоп (так как единая кодовая база на языке C++). В видео рассказывается об особенностях работы Qt/QML-приложения в среде Android, с какими трудностями придется столкнуться во время разработки и как их можно решить (всё решаемо!).
А для гурманов в этом ролике есть еще и экономическая часть.
Но хочу сразу предупредить: я очень подробно и занудно говорю, и поэтому не каждый эстетствующий критик способен выдержать целый час моих потуг. Это видео для настоящих профессионалов.
Приятного просмотра!
|
|
|
|
"Код - это лучшая документация!" - так говорят недальновидные программисты, которые любят замыкать проекты на себе любимом, и искуственно делают себя самым незаменимым человеком в команде. В стане OpenSource тоже частенько происходят подобные процессы. Я же считаю, что такое положение вещей недопустимо, если заниматься выправлением цифровой вселенной в правильное, созидательное русло. Поэтому я всегда стараюсь писать простой код и не ленюсь сопровождать его комментариями. Но этого не всегда достаточно, когда проект разрастается.
Поэтому, для проекта MyTetra я потихоньку пишу документацию и различные обзоры функционала. Уже существуют статьи о настройке синхронизации через Интернет, описание формата хранения данных, описание опций командной строки, описания различных настроек подсистемы грячих клавиш. А сегодня опубликована новая статья:
Описание системы шифрования в MyTetra
Это описание очень долго существовало в закрытом виде в виде заметочек "чтобы не забыть как что с чем связано". Наконец-то у меня дошли руки собрать все воедино и сделать одну общую статью о всей подсистеме шифрования, используемой в MyTetra.
Существование такой статьи необходимо из-за того, что в MyTetra применяется не просто шифрование в лоб, по типу вот пароль, вот данные, шифруем! А сделаны различные дополнительные механизмы для проверки пароля при разных сценариях использования, плюс сделана реализация "запоминания пароля" для ленивых пользователей, что потребовало дополнительного усложнения системы шифрования и схемы хранения ключевых данных.
Рекомендуется к прочтению всем разработчикам, принимающих участие в проекте MyTetra.
|
|
|
|
Неделю назад на сервисе SurveyMonkey.com был организован опрос интернет-адитории о программах, называемых менеджерами заметок. Посетителям предлагалость ответить на следующие вопросы:
- Знаете ли вы, что такое менеджер заметок (PIM-менеджер) ?
- Как вы храните личные записи, телефоны, контакты, копии документов, постоянно используемую документацию и прочее?
- О каких менеджерах заметок вы знаете? (Знаете название, и как минимум, видели его интерфейс хотя бы на скриншотах)
- Если вы пользуетесь менеджером заметок, есть ли у вас к нему доверие?
- Боитесь ли вы, что в какой-то момент ваши данные в менеджере заметок исчезнут или будут заблокированы по какой-либо причине (технические проблемы, неуплата, завершение поддержки и разработки)?
- Готовы ли вы сделать общедоступными и опубликовать часть своих заметок, не относящиеся к личным данным? Например, статьи, рецепты, результаты разбирательства по сложному техническому вопросу, списки рекомендаций и прочее?
- Выставите важность работы со своими данными в различных сценариях использования
- Какого вида синхронизация данных вам нужна?
- Готовы ли вы платить за предоставляемые услуги?
- Важно ли вам, в каком формате хранятся ваши данные?
Я планировал, что в опросе будет участвовать максимальное число из доступного количества респондентов, а именно 100 человек (такое ограничение на бесплатном тарифе сайта SurveyMonkey.com). По факту, для накопления статистики дожидаться опроса 100 человек не имеет смысла, поэтому было решено остановиться на половине из планируемого количества (48 человек). На процентное распределение в вариантах ответов это сильно не влияет, а ознакомить аудиторию с результатами хочется.
Поэтому я закрыл опрос, и результаты разместил здесь:
Результаты опроса о менеджерах заметок
Думаю, что пользователям PIM-менеджера MyTetra и пользователям других менеджеров заметок будет интересно ознакомиться. Я выношу свою благодарность всем респондентам, принявшим участие в этом опросе.
|
|
|
|
Дорогие посетители сайта Webhamster.Ru!
В настоящий момент предоставилась возможность создать бесплатный опрос на площадке surveymonkey.com, чем я и воспользовался.
Мне давно хотелось собрать небольшую статистику о том, насколько много людей пользуются программами хранения заметок, как они ими пользуются, какие проблемы у них есть, чего им не хватает для полноценной работы.
Опрос предназначен для всех: для тех, кто уже пользуется каким-либо менеджером заметок, и для тех, кто только задумывается о том, как организовать хранение своих данных.
Страница опроса находится здесь:
Опрос об использовании программ для хранения заметок
На ответы, по оценке опросной системы, уйдет не более 5 минут. Всего будет опрошено 100 человек. После завершения опроса я сделаю сводку результатов и опубликую их.
Заранее благодарю за содействие всех, кто примет участие в опросе.
|
|
|