Как стать автором
Обновить
15
0
Отправить сообщение

Signum Explorer Telegram Bot — разработка open-source pet-project телеграм бота для блокчейна Signum

Время на прочтение 7 мин
Количество просмотров 4.5K
Кто про что, а я про телеграм бота…

Сейчас я работаю в компании Каруна на позиции старшего Go-разработчика. В свободное от работы время стараюсь смотреть по сторонам (нет — не в поиске работы, и да — это корпоративный блог, но пишу про пет-проект 🙂) и интересоваться разными областями IT, абсолютно отличными от того, чем ежедневно занимаюсь на работе.

Примерно полтора года назад я в качестве хобби занимался разработкой универсального телеграм бота для MQTT устройств, о чем уже рассказывал вот тут: (Не)очередной MQTT-телеграм-бот для IoT, а позже мой фокус внимания отошёл от темы IoT и сместился в сторону криптовалют, очень уж эта тема не давала мне покоя. На фоне прошлогоднего шума вокруг Chia захотелось вложить немного свободных средств в другой заинтересовавший меня альткоин и сделать что-нибудь полезное для комьюнити. В этой статье я делюсь исключительно техническими деталями реализации бота и намеренно опускаю любую маркетинговую информацию о блокчейне, дабы не разводить холивар про альткоины. И вас очень попрошу воздержаться!

Итак, задача:
  1. Иметь минимальный функционал эксплорера блокчейна прямо в телеграме: просматривать транзакции и статистику сети.
  2. Удобно отслеживать баланс нескольких кошельков и получать уведомления о поступлениях/списаниях с кошелька.
  3. Получать актуальную цену + график.
  4. Иметь калькулятор доходности майнинга.
  5. Иметь кран для активации новых кошельков.

На этом вроде бы и всё, поехали…
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 3

Серая зарплата — это плохо?

Время на прочтение 3 мин
Количество просмотров 63K

Пару лет назад я проходил на собеседование в подразделение IT в одной достаточно известной компании. Сам процесс проходил достаточно гладко. Я рассматривался на позицию разработчика и аналитика данных, который занимается хранилищами и следит за управленческой отчетностью. Мы очень быстро нашли общий язык и о сумме оклада договорились без проблем. Собеседование принимал сам директор IT подразделения, который услышав мой финансовый запрос, ответил "Без проблем. Просто говорите когда готовы выйти"

После чего я получил вопрос которого вообще не ожидал "А вы хотите серую зарплату или белую?", и предложили мне сумму на 30% больше, той что запросил, при условии если я выберу серую схему оплаты. Т.е. минимально допустимую сумму по МРОТ платить официально, а все остальное на руки, либо в конверте. Моя первая реакция вызвала отторжение и ответил "Белую! Ну а как же будущая пенсия, на которую хотелось бы верить, что буду получать"

После чего я получил риторический вопрос, который я сам себе задаю до сих пор "А точно ли вы аналитик?"

И после этого я очень сильно призадумался действительно ли есть смысл беспокоится о белой зарплате, и перечислять его в пенсионный фонд. Потому как человеку, который работал только в крупных компаниях и получал только белую ЗП, никогда даже и не задумывался что такое возможно.

Я сам себе задал вопрос действительно ли белая зарплата обеспечит мне комфортное будущее. Потому что живя в стране где курс валюты может упасть в два раза в любой момент, накопительной части далеко не факт что хватит даже на оплату счетов и предметы первой необходимости. И эта сложная формула накопления пенсионной части, в которой я даже погружаться не хочу, и с повышением пенсионного возраста заставляет задать себе вопрос "Может выбрать серую схему?". Ведь спасение утопающих, дело рук самих утопающих. И никто лучше меня не позаботится о моем будущем чем я сам.

Читать далее
Всего голосов 194: ↑151 и ↓43 +108
Комментарии 1238

Как и зачем я сдавал сертификацию Oracle — Java SE 11 Developer

Время на прочтение 5 мин
Количество просмотров 14K

Меня зовут Аксёнов Вячеслав и я бэкенд разработчик, пишу на Java/Kotlin, расскажу про то, как я сдавал сертификацию на знания Java SE 11 от Oracle. И какие нюансы я понял в процессе подготовки и сдаче.

Моя история
Всего голосов 18: ↑14 и ↓4 +10
Комментарии 22

Анализ трафика приложений на Android Emulator. Причем здесь Root?

Время на прочтение 7 мин
Количество просмотров 17K

Привет! Я думаю, что наберется немало людей, перед которыми стоят интересные задачи по работе с приложениями. Например - анализ трафика для, разумеется, тестирования этих самых приложений! Вам выпало нелегкое бремя - необходимо отдебажить продовую сборку чего-либо и вы начинаете свои поиски решений проблем. А проблем у вас на этом пути будет много. О том, как их можно решить я и пишу.

И как их решить?
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 6

Блюр объектов в реальном времени на видео с помощью canvas

Время на прочтение 7 мин
Количество просмотров 5.2K

Конфиденциальность это очень важная часть в современном мире. Снимая видео на своей телефон в общественном месте, не всегда, люди, которые попадают в кадр, будут довольны этим и можно получить "по жопке" за это. Для избежания этого лица рамывают или пикселизируются.

Сегодня я хочу поделиться реализацией такого блюра/пикселизации видео (изображения) в вебе.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 19

Как мы создали Web приложение для определения лиц и масок для Google Chrome (часть 2)

Время на прочтение 12 мин
Количество просмотров 3.1K
Определение лица и маски
В предыдущей статье я рассказывал о том, можно ли использовать машинное обучение (в частности определение лица и маски) в браузере, подходах к детекции и оптимизации всех процессов.
Сегодня я хочу рассказать о технических подробностях реализации.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 2

Датасет о мобильных приложениях

Время на прочтение 7 мин
Количество просмотров 2.6K

Моя основная работа связана с мобильной рекламой, и время от времени мне приходится работать с данными о мобильных приложениях. Я решил сделать некоторые данные общедоступными для тех, кто хочет попрактиковаться в построении моделей или получить представление о данных, которые можно собрать из открытых источников. В этой статье я представлю датасет и, используя его, построю одну модель.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Нетрадиционный анализ тональности текста: BERT vs CatBoost

Время на прочтение 6 мин
Количество просмотров 7.5K

Анализ тональности — это метод обработки естественного языка (NLP), используемый для определения того, являются ли данные(текст) положительными, отрицательными или нейтральными.

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

Хотя сентиментальный анализ стал чрезвычайно популярным в последнее время, работы над ним продолжаются с начала 2000-х годов. Традиционные методы машинного обучения, такие как наивный байесовский метод, логистическая регрессия и машины опорных векторов (SVM), широко используются для больших объемов, поскольку они хорошо масштабируются. На практике доказано, что методы глубокого обучения (DL) обеспечивают лучшую точность для различных задач NLP, включая анализ тональности; однако они, как правило, медленнее и дороже в обучении и использовании.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 2

Как развиваться в IT

Время на прочтение 5 мин
Количество просмотров 12K

Всем привет. Данная статья относится к тем специалистам, которые уже нашли свою нишу в области IT и работают здесь уже несколько лет. Данная статья относится к тем, кто пришел в IT не из профильного университета. Возможно, что Вы, как и я, пришли в IT закончив экономическое направление в ВУЗе. Данный тип людей имеет одну большую проблему: в голове есть только те знания, которые пришли с решением практических задач на работе. Не хватает системного подхода в образовании, а значит данные специалисты имеют ряд "белых пятен" в образовании.

Например, незнание простых алгоритмов, базовых структур данных.
Примеры в данной статье привожу для программистов, но смысл примеров подходит и для других направлений IT.

Читать далее
Всего голосов 21: ↑6 и ↓15 -9
Комментарии 68

Проблемы и нюансы при разработке под SmartTV с использованием React.js

Время на прочтение 4 мин
Количество просмотров 11K
Хочу поделиться опытом разработки приложения с просмотром видео контента для SmartTV (Tizen и WebOS) и с какими проблемами мы столкнулись.

На современных телевизорах, как мы знаем, можно устанавливать разные приложения, для облегчения работы с какими-то ресурсами и контентом. В большинстве случаев, эти приложения под капотом это обычный браузер, на теликах это Chromium.

Так как это браузер, то ничего нам не мешало использовать React.js для разработки, что повлияло на некоторые проблемы с производительностью.

Я не буду рассказывать о том, как именно нужно делать с примерами кода, я расскажу о нюансах и решениях, которые были приняты.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 19

Server Side Rendering для React App на Express.js

Время на прочтение 7 мин
Количество просмотров 43K
На написание этой статьи меня сподвигло отсутствие какого-либо более-менее полного мануала, как же сделать Server Side Rendering для React приложения.

Когда я столкнулся с этой проблемой, у меня было 2 варианта это сделать, либо Next.js фреймворк, либо используя Express.js.

На инвестигейт Next.js было потрачено около 100 часов, чтоб завести его для нашей готовой крупной OTT платформы, но проблем было настолько много, что мы от него отказались (по этому поводу напишу статью еще), остался выбор за малым, Express.js, про который я и хочу рассказать.

Полный код демо-примера, рассматриваемого в статье, тут.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 11

Производительность приложений, работающих с Video и Audio

Время на прочтение 5 мин
Количество просмотров 1.7K


В этой статье будут рассмотрены 3 практических вопроса, с которыми я столкнулся при разработке приложения.


  1. Как работать с Video и Audio с максимальной точностью.
  2. Как оптимально обрабатывать данные с такой скоростью.
  3. Как оптимально обрабатывать данные, приходящие по websocket.

Перед рассмотрением каждого вопроса, хочу дать немного контекста.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Мы создали Web приложение для определения лиц и масок для Google Chrome (часть 1)

Время на прочтение 9 мин
Количество просмотров 4.8K

Основная цель - обнаружение лица и маски в браузере, не используя бэкенд на Python. Это простое приложение WebApp / SPA, которое содержит только JS-код и может отправлять некоторые данные на серверную часть для следующей обработки. Но начальное обнаружение лица и маски выполняется на стороне браузера и никакой реализации Python для этого не требуется.

На данный момент приложение работает только в браузере Chrome.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 7

Расширение для Google Chrome: управляем скиллами друзей в LinkedIn

Время на прочтение 5 мин
Количество просмотров 2.5K

Статья пригодится для новичков которые давно мечтали создать свое расширение для Google Chrome, но до дела так и не доходило. Поэтому давайте считать, что время пришло, пишем расширение прямо сейчас.

Данное расширение позволяет прожимать подтверждения скиллов на странице друга или отменить подтверждения скиллов. Полезно когда вместо десятков нажатий на "плюсики" Вы нажимаете только на одну кнопку расширения.

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 1

Production Ready: 4 вопроса, которые важно задать перед созданием чек-листа

Время на прочтение 8 мин
Количество просмотров 3.5K

Мы просыпаемся, умываемся, чистим зубы, делаем зарядку, завтракаем и начинаем готовиться к полёту. Мы просыпаемся не потому, что прозвенел будильник, а потому, что прилетел алерт и сегодня ваша очередь дежурства. Выясняется, что в новом приложении задеплоенном в продакшн не были выставлены лимиты на выделение ресурсов в pod’е kubernetes и при росте нагрузки приложение изволило скушать всю память, как следствие к нему пришел ООМ, ну дальше вы знаете. 

Но как же так случилось, ведь в предыдущих проектах эти настройки везде были выставлены и казалось бы это очевидная вещь.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 1

Как перестать писать код для взаимодействия с бэкендом

Время на прочтение 12 мин
Количество просмотров 14K

Привет! Начну с главного - я лентяй. Я очень-очень ленивый разработчик. Мне приходится писать много кода - как для бэка, так и для фронта. И моя лень постоянно терзает меня, говоря: Ты мог бы не писать этот код, а ты пишешь... Так и живем.

Но что делать? Как можно избавиться от необходимости писать хотя бы часть кода?

Есть много подходов к решению этой проблемы. Давайте посмотрим на некоторые из них.

Ну давайте
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 16

Наша анонимность утрачена?

Время на прочтение 5 мин
Количество просмотров 13K

IT-технологии развиваются с каждым годом. Многие корпорации полным ходом развивают технологические подходы в области сбора и обработки полученной информации. Одним из таких подходов является использование баз данных цифровых отпечатков пользователей сети Интернет.

Отпечатки цифровых устройств или «цифровые портреты» применяются третьими лицами, не только для генерации рекламы, но и для мошенничества и «кражи личности». Пользователи сети сами того не подозревая отдают персональные и корпоративные данные, не только без согласия, но и без необходимого контроля. А Вы защищаете свой цифровой портрет?

Читать далее
Всего голосов 34: ↑21 и ↓13 +8
Комментарии 55

TypeScript: Раскладываем tsconfig по полочкам. Часть 2 — Всё про строгость

Время на прочтение 18 мин
Количество просмотров 33K

В данной статье я хочу предоставить переработанную и упорядоченную выжимку документации по настройке "флагов строгости" tsconfig.json. Статья будет полезна как тем, кто только начинает работать с TypeScript, так и тем кто уже давно работает, но при этом использует конфиг по умолчанию. Для разработчиков, которые хорошо ориентируются в вопросах строгости в TypeScript статья может открыть некоторые тонкости работы флагов и послужить шпаргалкой.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 5

Fiddler = удобный сниффер + прокси сервер

Время на прочтение 8 мин
Количество просмотров 114K

Привет. В данной статье расскажу как и зачем можно изменять HTTP пакеты при отправке на сервер и при получении ответов от сервера.
В статье много практических примеров.

Читать далее
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 19

Уровень обобщения базы данных

Время на прочтение 7 мин
Количество просмотров 7.7K
Несколько лет назад я попробовал сделать сайт на такой системе как MODx и мне понравилось, не смотря на опыт работы с другими CMS, а может и благодаря этому. Понравилась именно логика построения работы с ней, принципы структуры данных и многое другое, но в первую очередь, то, что фрилансеру нужно особенно часто – простота и скорость запуска проекта при высокой гибкости. Но, хотя MODx мне до сих пор по нраву, пост не совсем о ней и даже скорее совсем о другом.

Введение


На самом деле я рассматриваю эту cms только как пример, того что присутствует во многих и опенсурс, и коммерческих системах. Просто мне как фрилансеру до недавних пор приходилось работать почти всегда с разработкой сайтов по дешевле и побыстрее – может у других фрилансеров много «жирных» клиентов, я не знаю, у меня не было. Так вот такая ситуация привела к не плохому опыту работы на модыксе. Но открытие собственной компании и дальнейшее подтягивание клиентов с индивидуальными запросами, потребовало вспоминать и улучшать свой лвл в настоящем программировании и построении баз данных. И вот тут я и почувствовал какой-то дискомфорт, что ли, ну как минимум смущение при воспоминании структуры как MODx, так и некоторых других открытых систем. Далее поясняю подробнее, что именно показалось странным, но интересным.

image

Дело в том, что в MODx Revo основным понятием для построения структуры сайта являются ресурсы. Вот именно, там нет такого как, например, в том же Вордпрессе отдельно страницы сайта, отдельно записи блога. Все страницы и записи, и даже много чего еще реализуется через модель ресурсов сайта. На самом деле это удобно, особенно учитывая тот факт, что это cmf/cms, то есть система рассчитана на разработку совершенно разных сайтов и тематически и технически. Таким образом, за всей структурой сайта удобно следить в одной панели управления ресурсами. В общем, система ресурсов позволяет создавать и управлять следующими сущностями сайта (хотел было написать объектами, но в ООП это слово уже занято, так что пусть будет «сущности»):

• Обычные html-страницы;
• Разного рода категории и разделы блога или каталога;
• Товары и их категории;
• XML-документы, например, sitemap.xml для поисковых роботов;
• Текстовые документы, к примеру, robots.txt правильно сделать ресурсом, а не просто залить файлом;
• Json-страницы, которые лично я использую для того же аякс;
• Создать собственный формат текстового файла.

Постановка проблемы


Вот такое объединение множества различных «сущностей» сайта в объекте одной модели Resources и вызвало мой интерес. Разум философа зашевелился и начал выдавать множество предположений и вопросов.

Во-первых, я обратил внимание на пользователей, потому что они сделаны совершенно отдельно от ресурсов. Как бы на первый взгляд это логично, но с другой стороны, если начали такую пляску с объединением кучи всего, почему бы не сделать все до конца. Да-да, максимализм в деле. Тем более, что сделать пользователей как один из видов ресурсов не представляет большой проблемы. В случае с modx это по большей части реализуется с помощью плейсхолдеров, позволяющих расширить количество атрибутов ресурса, и «контекстов», дающих возможность выделять часть ресурсов по их назначению. Реализация же чего-то подобного на фреймворке (я имею ввиду php-фреймворки) или голой связке скриптов и реляционной базы данных совсем дело не сложное.

Во-вторых, совершенно отдельными моделями реализуются шаблоны и вся система представления и настройки сайта. Почему бы их тоже не объединить в одну модель, хотя бы чисто ради эксперимента. Чувствую летящие в меня помидоры.
Читать дальше →
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 5
1

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность