Pull to refresh
@smurav read-only

User

  • Posts
  • Comments

Фриланс-разработка электроники. Что, Как и Зачем?

RUVDS.comFreelanceManufacture and development of electronicsDIY

▍Как все начиналось


Начну немного издалека, чтобы было понятно с чего все изначально началось.

Электронику я люблю с детства, родители военные и они же инженеры привили любовь не только к морзянке, но и к электронике. За что им отдельное спасибо.

После окончания ВУЗа, работаю по сей день ведущим инженером на одной из атомных станций. Работа веселая и ответственная, но дома надо чем-то занять вечера, не пиво же пить и лежать у телевизора. Для поддержания на должном уровне своей квалификации освоил Ардуино, Attiny, STM, ESP32. Вспомнил давно забытую Java и C++. Освоил заново Easyeda, Altium, Eagle. Свободно работаю во многих программах CAD моделирования. Теоретически я подготовлен хорошо, но нужна была практика в электронике и желательно по очень высоким стандартам.
Читать дальше →
Total votes 99: ↑92 and ↓7 +85
Views19.7K
Comments 126

News

Show more

Гексагональные тайловые миры

Game developmentAlgorithmsGodot
Tutorial

Тайловость в играх – очень распространенное явление, особенно в играх инди сегмента. Чаще всего используют квадратные тайлы – в них проще всего задать необходимые данные, будь то карта уровня или инвентарь. Однако на квадратных и прямоугольных формах возможности подобной системы не ограничиваются.

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

Читать далее
Total votes 80: ↑80 and ↓0 +80
Views14.7K
Comments 12

Практическое руководство по анонимности в онлайне

VDSina.ruInformation SecurityCryptographySoftwareCryptocurrencies

Направленная антенна для удалённого доступа к публичному Wi-Fi

Обеспечить собственную безопасность (анонимность) в онлайне — тяжкий труд, требующий массивного объёма знаний. Даже лучшие профессионалы не всегда справляются.

Но это возможно.

Предупреждение. Для усвоения информации в полном объёме требуется несколько недель.
Читать дальше →
Total votes 115: ↑106 and ↓9 +97
Views73.3K
Comments 118

6 хитростей Python, о которых никто не рассказывает новичкам

RUVDS.comPythonProgramming
Translation
В наши дни Python — это самый популярный в мире язык программирования. Одна из причин этого кроется в том, что разработчики с удовольствием пишут на Python. Это выгодно отличает Python от других языков.

Python завоёвывает сердца новичков и опытных программистов простотой синтаксиса, огромным количеством библиотек, лёгкостью и быстротой изучения языка.



Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о 6 хитростях Python, о которых обычно никто ничего не рассказывает.

Код примеров можно найти в GitHub-репозитории, ссылку на который автор статьи выдаёт тем, кто подписался на рассылку проекта worldindev.ck.page.
Читать дальше →
Total votes 69: ↑46 and ↓23 +23
Views27.6K
Comments 24

Знакомьтесь, pass

МаклаудGitData storageLifehacks for geeks
Translation


Я много лет искал подходящую мне хранилку паролей и недавно наткнулся на Pass на HackerNews. Идея хранить пароли в git-репозитории может выглядеть странно, но в целом это неплохая идея, потому что:

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

Я использую -c чтобы копировать/вставлять пароли. Есть расширение для браузера, но копипейст лично мне удобнее. Проблемы синхронизации с телефоном и всеми linux-дейвайсами тоже не стоит (потому что это всего лишь git).

Делюсь с вами переводом приветственной странички Pass.



Управление паролями должно быть простым и следовать философии Unix. Используя pass, каждый Ваш пароль находится внутри зашифрованного файла gpg, имя которого совпадает с именем ресурса или веб сайта к которому данный пароль привязан. Эти зашифрованные файлы могут быть организованы в удобные иерархии папок, скопированы с носителя на носитель и, в общем, обработаны с помощью любых утилит управления файлами командной строки.

С pass управлять отдельными файлами паролей становится крайне просто. Все пароли хранятся в ~ / .password-store, а pass предоставляет несколько удобных команд для добавления, редактирования, генерации и получения паролей. Это очень короткий и простой Shell скрипт. Он способен временно помещать пароли в буфер обмена и отслеживать изменения паролей с помощью git.
Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Views13.4K
Comments 54

Прогнозирование временных рядов с помощью рекуррентных нейронных сетей

PythonMachine learningTensorFlow
Translation
Tutorial
Удалённый режим работы на фоне всеобщей самоизоляции может привести к весьма дурным последствиям. И эмоциональное выгорание – это ещё куда ни шло: там ведь и до крыши недалеко. В этой связи, как и многие, попробовал «успокоить» себя выделением времени на другие занятия – и начал переводить наиболее интересные статьи с английского языка на русский: «Даёшь машинлёрнинг в массы!».) Нужно воздать должное: здорово отвлекает. Если у вас есть предложения как по смысловому наполнению, так и по переводу данного текста для русскоязычного читателя, присоединяйтесь к обсуждению.

image
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views25.2K
Comments 4

Выдерни шнур, выдави стекло

ДомКликDatabase AdministrationDevOps

Инструкция по диагностике проблем в работе баз данных в случае аварии.

Привет. У каждого на работе иногда случаются «чёрные» дни. Для меня такими днями являются аварии в работе сервисов, приводящие к недоступности систем для конечных пользователей. По счастью, такое происходит нечасто, но каждый такой случай заставляет меня долго рефлексировать над вопросами «что мы сделали не так».

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

Чтобы в следующий раз диагностика и устранение причин аварии происходили быстрее, мы совместно с DevOps-инженером Алексеем Поповым решили написать «план эвакуации при пожаре»: пошаговую инструкцию, которую можно было бы использовать для быстрого исследования инцидента.

Последняя проблема касалась работы базы данных и взаимодействия web-приложения с базой. Поэтому инструкция касается диагностики именно базы данных. Также хочу отметить, что эта схема — не истина в последней инстанции, а всего лишь наш опыт, перенесенный на «бумагу». Мы намеренно не стали включать слишком «экзотические» причины аварии, поскольку схема становится слишком громоздкой и нечитаемой.

Я буду признателен за комментарии и описания аналогичных проблем, которые происходили у вас.

Читать далее
Total votes 33: ↑33 and ↓0 +33
Views5.8K
Comments 3

Кватернионы. Решение одной навигационной задачи

Global Positioning SystemsAlgorithmsMatlab
Sandbox

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

Читать далее
Total votes 28: ↑28 and ↓0 +28
Views6.2K
Comments 5

Поддержка токенов PKCS#11 с ГОСТ-криптографией в Python. Часть III — Обёртка PyKCS11

Information SecurityCryptographyPythonC++ООP
image Подошло время рассказать как была добавлена поддержка российской криптографии в проект PyKCS11. Всё началось с того, что мне на глаза попалась переписка разработчика проекта PyKCS11 с потенциальными потребителями по поводу возможной поддержки алгоритмов ГОСТ Р 34.10-2012 в нём. В этой переписке автор PkCS11 сказал, что не собирается включать поддержку российских криптоалгоритмов до тех пор, пока они не будут стандартизованы.
Ту же самую мысль он выразил и мне, когда я предложил ему это сделать. И не просто сделать, а выслал соответствующий программный код:
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views1.4K
Comments 0

Как я нашел в публичном доступе исходники нескольких сервисов ФНС

Information SecurityAbnormal programmingResearch and forecasts in IT

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

Читать далее
Total votes 294: ↑286 and ↓8 +278
Views92.9K
Comments 183

Об одном способе защиты исходников Python-программы

Python
Sandbox
Tutorial

Как всё начиналось


Однажды мне пришлось участвовать в разработке одного небольшого проекта для научных расчётов, который разрабатывался на языке программирования Python. Изначально Python был выбран как удобный и гибкий язык для экспериментов, визуализации, быстрого прототипирования и разработки алгоритмов, но в дальнейшем стал основным языком разработки проекта. Надо заметить, что проект был хоть и не большим, но довольно насыщенным технически. Для обеспечения требуемой функциональности, в проекте широко применялись алгоритмы теории графов, математическая оптимизация, линейная алгебра и статистика. Также использовались декораторы, метаклассы и инструменты интроспекции. В процессе разработки пришлось использовать сторонние математические пакеты и библиотеки, например, такие как numpy и scipy, а также многие другие.

Со временем стало ясно, что переписывать проект на компилируемом языке слишком затратно по времени и ресурсам. Скорость работы и потребление памяти не являлись критичными показателями в данном случае и были вполне приемлемыми и достаточными. Поэтому было принято решение оставить всё как есть, и продолжить разработку и поддержку проекта на языке Python. К тому же, документация по большей части уже была написана с использованием Sphinx.

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

Здесь сразу обозначилась новая проблема: как защитить исходные коды нашей Python-библиотеки? Может быть, в ином случае никто бы не стал этим заниматься, я бы уж точно, но в библиотеке были реализованы некоторые ноу-хау, и руководители проекта не хотели, чтобы данные наработки попали к конкурентам. Так как я был одним из исполнителей, мне пришлось озаботиться данной проблемой. Далее я постараюсь рассказать об основной идее, что из этого вышло, и как нам удалось скрыть Python-исходники от лишних глаз.
Читать дальше →
Total votes 82: ↑71 and ↓11 +60
Views66.1K
Comments 41

Active/Passive PostgreSQL Cluster с использованием Pacemaker, Corosync

PostgreSQL
image

Описание

В данной статье рассматривается пример настройки Active/Passive кластера для PostgreSQL с использованием Pacemaker, Corosync. В качестве дисковой подсистемы рассматривается диск от системы хранения данных (CSV). Решение напоминает Windows Failover Cluster от Microsoft.

Технические подробности:
Версия операционной системы — CentOS 7.1
Версия пакета pacemaker — 1.1.13-10
Версия пакета pcs — 0.9.143
Версия PostgreSQL — 9.4.6
В качестве серверов(2шт) — железные сервера 2*12 CPU/ 94GB memory
В качестве CSV(Cluster Shared Volume) — массив класса Mid-Range Hitachi RAID 1+0


Подготовка узлов кластера

Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Views18.7K
Comments 24

IPMI ― обзор технологии

SelectelServer Administration

Чтобы удаленно управлять состоянием серверной платформы, системные администраторы и инженеры пользуются технологией IPMI, которая значительно упрощает им жизнь. Теперь не надо каждый раз бежать к серверу, чтобы нажать на кнопку перезагрузки ― своевременно реагировать на критические неполадки можно сидя дома в уютном кресле. В этой статье рассмотрим основные компоненты IPMI и детали работы технологии.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Views69.9K
Comments 20

Командную строку фотографа-линуксоида — на пенсию!

Programming
Sandbox
Tutorial
Я увлекаюсь фотографией ещё со Смены-8М. Тогда были длительные ожидания пятницы или субботы (печать обычно шла в ночь на выходные), а перед этим оочень долгие ожидания фотоплёнки, химикатов, фотобумаги (ибо дефицит). Теперь же я вырос, стал большим и ленивым. Моя мыльница почти всегда со мной: либо в рюкзаке, либо где-то в кармане. Фотографирую всё, что вызвало интерес. При этом за день может быть одна фотография (шёл с работы), а может быть сразу много (целенаправленно вышел на прогулку). И если с целенаправленным случаем я скорее всего по приходу домой фотографии солью и разберу, то в единичных случаях я забуду и потом окажется что надо рассортировать фотографии сделанные в десяток разных дней. В последнее время выбираться целенаправленно получалось всё меньше, поэтому росло количество одиночных фотографий. И вот в один из таких дней, вдохновившись прошлогодней статьёй, я решил упростить себе хобби. Поскольку на компьютере стоит Linux (openSUSE 12.1), то нерешаемых проблем быть не должно — подумал я. А захотелось мне чтоб оно само копировало и чтоб никуда тыкать не нужно было. Ну, а поскольку я ненастоящий линуксоид (первый и последний скрипт был на третьем курсе 0x0C лет назад), сразу скажу — не всё получилось.
Читать дальше →
Total votes 34: ↑28 and ↓6 +22
Views15.5K
Comments 17

Миллион домашних фотографий: наводим порядок

PythonProgrammingImage processingMedia managementSoftware

После покупки цифрового фотоаппарата и рождения детей стало появляться большое количество фотографий, а учитывая, что жена с фотоаппаратом почти не расставалась и старалась запечатлеть все «важные» детские моменты, фотографий стало появляться ОЧЕНЬ много.

Пришло время навести порядок.
Total votes 34: ↑34 and ↓0 +34
Views22.2K
Comments 116

Гибриды побеждают или холивары дорого

High performanceJavaApacheC#DevOps

Мотивом для написания данной статьи послужил тот факт, что на habr.com участилось появление материалов маркетингового характера про Apache Kafka. А также тот факт, что из статей складывается впечатление что пишут их немного далекие от реального использования люди — это конечно же только впечатление, но почему-то в большинстве своем статьи обязательно содержат сравнение Apache Kafka с RabbitMQ, причем не в пользу последнего. Что самое интересное — читая подобные статьи управленцы без технического бэкграунда начинают тратить деньги на внутренние исследования, чтобы ведущие разработчики и технические директора выбрали одно из решений. Так как я очень жадный/домовитый, а также так как я сторонник тезиса "В споре НЕ рождается истина" предлагаю вам ознакомится с другим подходом — почти без сравнения разных брокеров.

Читать дальше →
Total votes 44: ↑37 and ↓7 +30
Views10.8K
Comments 73

Лучшее в мире видео-объяснение нейронных сетей, глубокого обучения, градиентного спуска и обратного распространения

Image processingMachine learningStudying in ITPopular scienceArtificial Intelligence
image

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

Из комментариев к прошлым публикациям мне стало понятно, что есть большое количество людей, кто не знает про канал, поэтому хочу поделиться четырьмя видео (+ русские субтитры и дубляж) и сэкономить время школьникам, родителям и учителям, чтобы они могли иметь быстрый доступ к самому интересному и качественному объяснению одной из самых важных тем современности.
Читать дальше →
Total votes 65: ↑61 and ↓4 +57
Views42K
Comments 24

Как пропускать и одновременно присутствовать на лекции или «за меня учится Python бот»

PythonProgramming
Sandbox

Я имею самый обычный рабочий график: 5/2, 8ч/день. В настоящий момент удаленно учусь в аспирантуре (коронавирус, все дела) и единственный день, когда я могу вдоволь почувствовать себя человеком-соседом и поделать что-то по дому, – это суббота. Как вы понимаете, здесь что-то пошло не так и вместо обещанных будничных пар, которые должны были проходить по вечерам после работы, нам утрамбовали всю субботу. Но дела ведь себя не переделают, поэтому решено было написать на python простого бота-кликера, который мог бы заходить на пару, стартовать запись экрана со звуком, ожидать окончания пары, выключать записть и выходить с пары.

Читать далее
Total votes 37: ↑33 and ↓4 +29
Views17K
Comments 25

Анатомия GNU/Linux

Configuring LinuxOpen sourceSystem administration*nix
Sandbox

Какое-то время назад на Хабре была небольшая волна постов на тему «Почему я [не] выбрал Linux». Как порядочный фанатик я стриггерился, однако решил, что продуктивнее что-нибудь рассказать о своей любимой системе, чем ломать копии в комментариях.

У меня сложилось впечатление, что многие пользователи GNU/Linux слабо представляют, из чего сделана эта операционная система, поэтому утверждают, что она сляпана из попавшихся под руку кусков. В то же время, архитектура большинства дистрибутивов является устоявшейся и регламентируется рядом стандартов, включая стандарт графического окружения freedesktop.org и Linux Standard Base, расширяющий стандарты Unix. Мне при знакомстве с GNU/Linux несколько лет назад для погружения не хватало простой анатомической карты типичного дистрибутива, поэтому я попробую рассказать об этом сам.

Читать далее
Total votes 161: ↑161 and ↓0 +161
Views61.2K
Comments 137

Information

Rating
Does not participate
Registered
Activity