Pull to refresh
0
0
Aleksandr @rooffall

Full-Stack JS Developer

Send message

Пишем безопасное браузерное расширение

Reading time25 min
Views18K


В отличие от распространенной "клиент-серверной" архитектуры, для децентрализованных приложений характерно:


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

Существует 2 относительно безопасных хранилища для ключей пользователей — хардверные кошельки и браузерные расширения. Хардверные кошельки в большинстве своем максимально безопасны, однако сложны в использовании и далеко не бесплатны, а вот браузерные расширения являются идеальным сочетанием безопасности и простоты в использовании, а еще могут быть совершенно бесплатны для конечных пользователей.


Учитывая все это, мы захотели сделать максимально безопасное расширение, которое упрощает разработку децентрализованных приложений, предоставляя простой API для работы с транзакциями и подписями.
Об этом опыте мы вам и расскажем ниже.


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

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2

10 полезных сайтов с 2D ресурсами для игр

Reading time3 min
Views461K


С развитием HTML5 и мобильных платформ 2D-игры возвращаются в моду. Заниматься такими проектами, будь то браузерные игры, игры на телефон или для ПК, стало легче благодаря таким инструментам, как Unity, и онлайн-ресурсам с игровыми ассетами. Ниже представлен список из 10 лучших сайтов с 2D-ресурсами для игр – как платными, так и бесплатными.

Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments2

Теория тестирования ПО просто и понятно

Reading time13 min
Views290K

Какие базовые знания нужны для понимания, что такое тестирование? Вот что будет рассматриваться в статье. Создавалась в помощь начинающим для подготовки к собеседованию

Читать далее
Total votes 13: ↑12 and ↓1+13
Comments10

Шпаргалка по техникам тест дизайна

Level of difficultyMedium
Reading time5 min
Views162K

Добро пожаловать!

Ежедневной задачей инженера по контролю качества (QA Engineer) является создание тест-кейсов для проверки требований продукта. В этой статье я собрал для вас техники проектирования тестов, которые помогут оптимизировать ваш набор тестов.

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments4

Чему разработчики ПО могут научиться у стоматологов

Level of difficultyMedium
Reading time6 min
Views11K

Для начала немного обо мне: я и практикующий дантист, и разработчик ПО. Со вторника по четверг я пишу код, а с пятницы по воскресенье принимаю пациентов. До того, как стать дантистом, я работал в таких компаниях, как Allstate Insurance, Lockheed Martin и ICS. Освоив обе эти профессии, я заметил, что разработчики ПО могут многому научиться у дантистов и наоборот. Я решил записать эти уроки в надежде, что они кому-то могут помочь. Это просто общие рекомендации — не стоит рассчитывать, что они идеально подходят для любой ситуации.
Читать дальше →
Total votes 49: ↑48 and ↓1+63
Comments37

Цикл статей: построение защищённого NAS, либо домашнего мини-сервера

Reading time2 min
Views64K


Статьи цикла:


  1. Обзор материалов и литературы по NAS. По предложениям пользователей ссылки на материалы будут сведены в отдельную статью.
  2. Выбор железа. Описан один из вариантов выбора железа и дан краткий обзор рынка домашних и офисных NAS систем.
  3. Установка ОС, на которой будет строиться NAS. В отдельной статье описано дополнение, позволяющее отказаться ото всех файловых систем, кроме ZFS.
  4. Проектирование поддерживающей инфраструктуры, которая будет лежать в основе всех сервисов NAS.
  5. Реализация поддерживающей инфраструктуры.
  6. Механизм аварийной удалённой разблокировки. Требуется для того, чтобы разблокировать систему, не имея к ней физического доступа.
  7. Повышение защищённости NAS. Исправление ошибок, допущенных в предыдущих статьях и описание Hardening процесса.
  8. Система контроля версий на базе Git. Установка Gitlab в контейнере.
  9. Система резервного копирования. От регламента до установки ПО, где в качестве примера используется UrBackup.
  10. Персональное облако. Обеспечивает хранение персональных файлов пользователя, обмен файлами между пользователями, а также интеграцию различных сервисов между собой.
  11. Сквозная аутентификация контейнеров.
  12. Управление файлами.
  13. Библиотека.
  14. Мультимедийная система 1: музыка.
  15. Мультимедийная система 2: медиа сервер.
  16. Фронтенд. Интерфейс, позволяющий быстро обращаться к сервисам.
  17. Заметки про управление контейнерами.
Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments141

Как приручить нейросеть и создать новогоднего Telegram-бота, который умеет «предсказывать» будущее

Reading time10 min
Views5.1K

Мне нравится создавать Telegram-ботов и экспериментировать с нейросетями, поэтому часто объединяю их в своих проектах. Коллеги заметили мое хобби и предложили разработать новогоднего гида Selectel, который будет генерировать персональные предсказания и советы на 2024 год для наших читателей.

Во время реализации спецпроекта я впервые столкнулся с ограничениями по маркетинговой части проекта. Как заставить ChatGPT придумывать разнообразные, но только положительные предсказания? Как не выйти за лимиты текстовой модели и Telegram? В этой статье делюсь ответами на вопросы и реакцией пользователей на проект.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments3

А закрыл ли я замок двери? Home assistant + Aqara и немного витухи

Reading time4 min
Views21K


Зачем всё это?


Привет дорогой читатель! Проверь, а закрыл ли ты входную дверь? Сходи, проверь ;). Дёрни ручку! Вдруг открыта? Если у Вас бывают навязчивые мысли о том, что Вы забыли закрыть дверь, то поздравляю у Вас ОКР Вам надо лечиться Вам будет полезен мой опыт доработки замка входной двери. Кроме шуток, данная доработка актуальна если: с Вами живут малолетние или великовозрастные дети, перегруженная(ый) работой программист(ка), которых невозможно постоянно контролировать; ситуация усугубляется если в Вашем подъезде иногда проходят митинги собутыльников со всего двора, которые очень будут рады унести что-нибудь из Вашей квартиры и хорошо если это пакеты с мусором.

Решение этой головной боли можно поручить умному дому. Читал, что аналогичную задачу реализовали даже с определением степени закрытости замка — учитывая глубину входа ригеля в ответную часть замка дверной коробки, но это всё сложно и требует специализированных знаний по схемотехнике, да и зачем эти трудности? KISS & YAGNI никто не отменял даже в таком деле!
Я решаю задачу самым простым и доступным мне способом из подручных материалов.
Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments81

Дизайн: ожидание vs реальность

Level of difficultyMedium
Reading time5 min
Views13K

Когда работа над визуальной частью проекта закончена, и все макеты готовы, приходит время передать их в разработку. А чтобы после “связи с движком” все осталось так же красиво как и в макете, необходимо добиться полной гармонии между дизайнером и разработчиком.

Читать далее
Total votes 2: ↑1 and ↓1+2
Comments4

«Помоги мне стать дизайнером»

Reading time11 min
Views4K

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

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

Нулевой шаг на пути становления дизайнером, заключается в понимании, что же такое дизайн, именно об этом я и расскажу.

Читать далее
Total votes 12: ↑8 and ↓4+10
Comments6

Какие бывают RFID протоколы и как их похекать с помощью Flipper Zero

Reading time12 min
Views134K
Flipper Zero RFID

Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19]

RFID – это технология для бесконтактных радио-меток, используемых повсюду: в домофонах, платежных картах, проездных, пропусках в офисы, для учета домашних животных, автомобилей и т.д. Есть два основных типа RFID меток, которые мы используем в обычной жизни: низкочастотные и высокочастотные.

  • Низкочастотные (Low Frequency: 125 кГц) — имеют большую дальность чтения. Небезопасные и тупые. Используются в примитивных системах контроля доступа: домофонах, офисных пропусках, абонементах в спортзал.
  • Высокочастотные (High Frequency: 13,56 МГц) — имеют меньшую дальность работы по сравнению с низкочастотными, и могут иметь сложные протоколы, средства шифрования, аутентификации, криптографии. Используются в бесконтактных банковских картах, проездных билетах, безопасных пропусках.

В статье мы сравним два основных типа RFID меток, разберем основные протоколы и научимся с ними работать с помощью Flipper Zero — читать, эмулировать, сохранять, перезаписывать. Я покажу как сохранить во Флиппер RFID-ключи от домофона, офиса, спортзала, и что Флиппер может прочитать из банковской карты.

Total votes 86: ↑86 and ↓0+86
Comments65

Руководство по программированию сокетов на Python. От введения до работающего примера

Reading time10 min
Views64K


К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Материалом делимся к старту курса по Fullstack-разработке на Python.
Посмотреть первую часть
Total votes 6: ↑4 and ↓2+4
Comments0

ООП в графических языках программирования. ч.2 МОП и ООП

Reading time6 min
Views13K

В первой части я попытался показать, что черная кошка ООП в темной комнате графических языков существует, даже если это не кошка, а полудохлый кот живодера Шредингера, который то есть, то его нет. Был показан пример реализации методологии объектно-ориентированного программирования, когда программа – это не код на языке С++ или Java, а диаграмма Simulink, SimInTech, SimulationX или SCADE Esterel, — любая графическая нотация описания алгоритма.


В рекламных материалах Мatlab Simulink часто используют термин МОП — Модельно Ориентированное Проектирование (Model-based design). Во многих текстах они подчёркивают, что графическая схема алгоритма это модель, что, конечно, верно. Однако в первоначальном определении МОП, модель – это прежде всего модель объекта, к которому разрабатывают систему управления, включая управляющее программное обеспечение. Подробнее методолгия МОП описана здесь. Таким образом, разрабатывая систему управления по методологии МОП можно и нужно использовать методологию ООП для разработки управляющего ПО. И что бы окончательно закрыть вопрос с моделями, вот вам картинка с отличиями одного от другого. Если все понятно, то можно дальше не читать.



Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments8

След в туалете

Reading time6 min
Views77K

Очень давно я занимался проектами внедрения ЕРП-систем, в роли техлида (тогда это называлось «технический руководитель проекта»). В Челябинской области много производственных предприятий, и часто приходилось ездить на переговоры в сопровождении очень опытной женщины-менеджера.

Однажды она сказала: приходя на предприятие, надо первым делом идти в туалет. Именно по туалету можно очень многое понять о руководстве и его отношении к бизнесу. В первую очередь – о том, мыслит ли оно долгосрочными перспективами, видит ли себя тут надолго, или просто рубит бабло по-быстрому. В те, ещё немножко бешеные годы, пожалуй, доля истины в «туалетном знакомстве» была.

Ритуал соблюдался строго. Менеджер приезжала на встречу и говорила, что сначала надо «припудрить носик». Посещала туалет, осматривала, формировала первичное мнение и шла на переговоры.

Недавно, совершенно случайно, я вспомнил об этой традиции. Старый друг пригласил меня посетить IT-компанию, в которой работает. Заявленная цель – помочь понять, что у них не так с развитием и стратегией. Перед выездом к нему я полез долить омывайки, и чутка изгваздался. Приехав, сначала посетил туалет.

И он меня поразил.

Читать далее
Total votes 193: ↑180 and ↓13+213
Comments93

Фасад для python библиотеки

Reading time7 min
Views8.4K

Для python существует множество различных библиотек, но часто бывает, что для конкретного проекта функционал какого-либо пакета - избыточен. В большинстве случаев необходимо вызывать лишь несколько постоянно повторяющихся методов, да и часть их аргументов не меняется от вызова к вызову.

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

На мой взгляд, неплохим выходом из ситуации служит использование объектно-ориентированного подхода, а именно написание некого класса "обвязки" с более простыми методами, инкапсулирующими в себе сложную логику обращения к оригинальной библиотеке.

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments7

Ваша карьера — лишь одна восьмая вашей жизни

Reading time6 min
Views10K

Карьерные советы - почти бесполезная вещь. С учетом 160 миллионов американцев, занимающих должности в тысячах организаций в сотнях индустрий, высказать что-то, что будет иметь практическую полезность для них всех, - невозможно на практике. Даже самые базовые советы зачастую оказываются слишком личными, чтобы получить повсеместное признание. Мне становится неловко, когда я слышу от успешных людей что-то вроде: "Просто последуйте моему примеру и сделайте эти три вещи". Автобиография - не совет. Учитывая, насколько плохо большинство людей понимает себя, все это даже нельзя назвать автобиографией.

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

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

Читать далее
Total votes 10: ↑6 and ↓4+3
Comments26

Мне 22 года и вот чему я научился за первые 90 дней работы над своим стартапом

Reading time11 min
Views13K
image 2019 год подходит к концу, так что я бы хотел немного порефлексировать и задокументировать хронику того, как мы создавали Freshpaint. Совпадение, но с начала нашей работы прошло где-то 90 дней, так что этот пост также можно рассматривать как «рефлексию о первых 90 днях».

Где-то в конце обучения в YCombinator (мы были участниками набора лета 2019) мы решили сделать пивот и превратиться из Perfalytics — Postgres-продукт, над которым мой кофаундер, Малис, работал изначально один, — во Freshpaint. На фоне этого я присоединился к компании на фулл-тайм как кофаундер (я до этого помогал ему как товарищ, и это я рекомендую делать каждому, кто работает в техе — помогать друзьям, ведь вы никогда не знаете, какие проекты добьются успеха и какие взаимоотношения станут гораздо лучше).

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

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

Вот несколько выводов, которые для меня особенно важны на данный момент.

1. Это офигеть как сложно!

Читать дальше →
Total votes 40: ↑10 and ↓30-17
Comments47

Жестокая трудовая реальность удалёнщика или как найти хорошую работу и не сойти с ума

Reading time9 min
Views47K

Я работаю удалёнщиком с 2019 года, когда о предстоящем пандемийном безумии ещё никто не подозревал. «Ха» - скажете Вы, глядя свысока событий, произошедших совсем недавно. Да, тогдашние мои проблемы не идут ни в какое сравнение с нынешней ситуацией, но именно тогда всё для меня и началось.

Для многих из нас смена работы и предстоящие собеседования повергают в небольшую панику. Иногда от самих интервью хочется навсегда бросить это IT. А я прошёл собеседований несколько десятков, если не сотен, и готов поделиться своим бесценным опытом.

Читать далее
Total votes 60: ↑50 and ↓10+53
Comments80

Что поможет вам стать программистом

Reading time22 min
Views24K

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

* Определить свою мотивацию, нишу и специализацию

* Нужно ли профильное высшее образование.

И еще больше десятка пунктов личного рецепта, не только для Java разработчиков... Надеюсь, что эти советы помогут вам стать востребованным и хорошо оплачиваемым специалистом!

Читать далее
Total votes 13: ↑10 and ↓3+11
Comments17

Калькулятор производства пластиковых корпусов для приборов

Reading time5 min
Views12K

Сейчас я расскажу, сколько будет стоить разработать и произвести пластиковый корпус для устройства, от 1 до 200 000 штук. Все максимально по делу — в сад лирику, только слайды цифры.

Поехали!
Total votes 56: ↑56 and ↓0+56
Comments109

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity