Как стать автором
Обновить
0
0

.NET, Embedded

Отправить сообщение

Как я восстановил данные после форматирования, создания разделов и установки системы на «не том» жестком диске

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

Здесь будет история о том, как я восстановил файлы и каталоги с жёсткого диска, который превратился в неразмеченную область, был частично отформатирован, разбит на новые разделы, на один из которых и была установлена новая система Linux. Если вам всё ещё интересно, вэлком под кат.
Читать дальше →
Всего голосов 95: ↑91 и ↓4+116
Комментарии100

Как я провалил 5 хобби-проектов за 6 лет и заработал 0 долларов

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

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

Planetoid (2015-2016 годы)


Всё началось с игры. Все любят игры, правда? Представьте, каково это — писать собственную! Это было бы так увлекательно!

В 2015 году мы вместе с моим другом решили создать мобильную игру на iOS: Planetoid. Если вкратце, это была основанная на графах стратегия, в которой игрок должен захватить все планеты, стреляя снарядами. Вот видео того, как она выглядела:


На её создание мы потратили больше года, работая по вечерам и в выходные. Мы всё сделали сами: дизайн, музыку, уровни и т.п. Наконец, мы выпустили её в ноябре 2016 года как платное приложение. К сожалению, людям не захотелось за неё платить. За два месяца не было ни одной продажи.
Читать дальше →
Всего голосов 34: ↑29 и ↓5+38
Комментарии59

Как устроены мобильные номера. Давайте разберемся

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

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

Если вы занимаетесь программированием на vue.js, то вот вам ссылка на компонент, который включает различные input поля в том числе для номеров телефонов. Мне кажется данный компонент может сильно облегчить вам жизнь, ниже ссылка на github и гифка как работает одно из полей. На этом по вступлению все, дальше только по теме.

https://github.com/fakt309/inputv

ЧИТАТЬ
Всего голосов 96: ↑81 и ↓15+97
Комментарии151

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

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

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

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

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

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

Сам себе РКН или родительский контроль с MikroTik (ч.1)

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

Подготовленный ранее цикл статей, посвященный организации безопасности сетей, построенных на оборудовании MikroTik, вызвал определенный интерес у сообщества. В процессе обсуждения представленного материала стало понятно, что у некоторых пользователей подобное оборудование установлено дома (не удивительно, ведь сама простая модель стоит всего 1500 рублей), в связи с чем решено подготовить отдельный материал, посвященный возможностям RouterOS по организации родительского контроля. Поговорим о различных подходах, настройках, сопрягаемых решениях, касающихся предметной области.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+45
Комментарии98

Модификация ядра Linux: добавляем новые системные вызовы

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

В этой статье мы научимся изменять ядро Linux, добавим собственные уникальные системные вызовы и в завершении соберем ядро с новой функциональностью.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+51
Комментарии9

Как симулировать плохую сеть под Linux, macOS и Windows

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

Clumsy 0.2

Все распределённые системы — базы данных, мобильные приложения, корпративные SaaS и так далее — следует разрабатывать с учётом сбоев. Например, компания Stripe во время тестов убивала случайные инстансы — и смотрела, что произойдёт. Компания Netflix рандомно уничтожала инстансы прямо в продакшне с помощью программы Chaos Monkey (проект Simian Army).

Симуляция сбоев — необходимое средство тестирования. Проблема в том, что ситуации не делятся только на чёрное и белое, Есть огромная «серая» зона, где сбои явно не выражены, а проявляются в плохих условиях сети: ненадёжное соединение, узкий канал, потери пакетов, высокая задержка, дубликаты пакетов и так далее.
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии6

Работа с фоновыми задачами в Android 12: переезжаем с foreground service на expedited jobs

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

С релизом Android 12 приложения, где новая версия операционки будет указана в targetSdkVersion, получат запрет на запуск foreground-сервисов в бэкграунде. В качестве альтернативы Google предлагает WorkManager, который с появлением expedited jobs станет предпочтительным вариантом для запуска высокоприоритетных фоновых задач. 

О нём и пойдёт речь в статье — под катом обсудим новые возможности инструмента, подключим его к приложению и реализуем миграцию с foreground-сервиса.

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

Jetpack Compose — как легко построить UI на Android

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

В июле этого года вместе с Android Studio Arctic Fox вышла одна из долгожданных библиотек — Jetpack Compose. Она позволяет создавать пользовательский интерфейс в декларативном стиле и обещает быть революцией в построении UI.

Разбираемся, так ли это на самом деле, какие у библиотеки преимущества и недостатки. Подробности — в статье.

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

Трояны и бэкдоры в кнопочных мобильных телефонах российской розницы

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

Немалое количество простых кнопочных телефонов, присутствующих в российских магазинах, содержат нежелательные недокументированные функции. Они могут совершать автоматическую отправку СМС-сообщений или выходить в интернет для передачи факта покупки и использования телефона (передавая IMEI телефона и IMSI SIM-карт). Встречаются модели со встроенным трояном, отправляющим платные СМС-сообщения на короткие номера, текст которого загружается с сервера, также бывают устройства с настоящим бэкдором, пересылающим входящие СМС-сообщения на сервер злоумышленников.
Статья описывает детали вредоносных функций и способы их обнаружения.

Читать далее
Всего голосов 429: ↑428 и ↓1+579
Комментарии371

Об исторической неточности средневековых градостроительных симуляторов

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

Введение


Так как в эти сложные времена многие из нас работают из дома, можно предположить, что в компьютерные игры начало играть больше людей. Градостроительный симулятор — жанр компьютерных игр, в которых игрок проектирует город, добывает ресурсы, создаёт производственные цепочки и обеспечивает развитие поселения. Градостроительные симуляторы очень похожи на стратегические игры, они тоже вознаграждают за терпение и стратегическое планирование. В этой статье я рассмотрю один из поджанров этого типа игр — средневековый градостроительный симулятор, и объясню, насколько этот игровой жанр соответствует нашим знаниям о планировке средневековых поселений.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+37
Комментарии26

Разработка 64-битного графического UEFI-приложения в Visual Studio

Время на прочтение9 мин
Количество просмотров18K
Зимой в блоге RUVDS было несколько статей о написании загрузчиков для «классического» BIOS, в т.ч. симпатичная графическая демка, целиком помещающаяся в загрузочном секторе и работающая в VGA-режиме 320×200. Комментаторы справедливо отмечали, что в наступившем 2021 г. нет смысла осваивать это лютое легаси;
а вот статей про “Hello, World” на UEFI да с графикой действительно не хватает. Больше того — я таких вообще не припомню.» (MinimumLaw)
Под катом мы пошагово перепишем ту бутсекторную демку под UEFI, и она будет работать в полноцветном видеорежиме с высоким разрешением. С другой стороны, вместо 512 байт она будет занимать несколько десятков КБ.

Всего голосов 80: ↑80 и ↓0+80
Комментарии7

Самодельный дымоуловитель для пайки

Время на прочтение7 мин
Количество просмотров20K
Мы уже публиковали перевод статьи, посвящённой дымоуловителю для пайки. В том материале речь шла о датчике, основанном на Arduino, который автоматически включает дымоуловитель при извлечении паяльника из держателя. А сегодня речь пойдёт о самостоятельном изготовлении дымоуловителя.

Самодельный дымоуловитель для пайки

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

Хороший дымоуловитель можно и купить, но стоить он будет более $70. Я, узнав об этом, сделал такое устройство сам, использовав 120-миллиметровый компьютерный вентилятор и корпус, напечатанный на 3D-принтере.
Читать дальше →
Всего голосов 32: ↑22 и ↓10+21
Комментарии41

Как сделать ОС для микроконтроллера

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

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

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

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

Meshtastic – оперативно-тактический радиочат без сотовой связи и интернета. Часть 1. Знакомство

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

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

Meshtastic — это проект, который позволяет построить свою частную радиосеть с очень большим временем автономной работы, используя недорогие радио модули LoRa и экономичные микроконтроллеры серии ESP32.

Радиомодем связаны с вашим смартфоном по сети Bluetooth. Для некоторых сценариев использования смартфон вообще не требуется.

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

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

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

Спаси себя сам и вокруг спасутся многие
Всего голосов 56: ↑56 и ↓0+56
Комментарии114

Современные Unix программы

Время на прочтение3 мин
Количество просмотров26K
Наше внимание привлёк один интересный репозиторий, который называется Modern Unix. В нём собраны, в основном, современные альтернативы классическим Unix-командам. Всего там имеется почти три десятка описаний таких команд. Надеемся, вы найдёте среди них что-то такое, что вам пригодится.


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

Реализации кэша в C# .NET

Время на прочтение8 мин
Количество просмотров42K
Привет, Хабр! В преддверии старта курса «C# ASP.NET Core разработчик», подготовили перевод интересного материала о реализации кэша в C#. Приятного прочтения.




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

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

Кэширование отлично подходит для данных, которые изменяются нечасто. Или, в идеале, не меняются никогда. Данные, которые изменяются постоянно, например, текущее время, не должны кэшироваться, иначе вы рискуете получить неправильные результаты.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии2

Бессерверный статический сайт с помощью IPFS

Время на прочтение5 мин
Количество просмотров27K
TL;DR: IPFS позволяет хостить статические сайты распределённо, доступ к которым можно осуществлять через публичные кеширующие гейты (прозрачные реверс-прокси) в интернете, без необходимости устанавливать программу посетителю. Такие сайты можно раздавать без маршрутизируемого («белого») статического IP-адреса (будет работать за NAT), они остаются работоспособными при кратковременном (несколько часов) отсутствии раздающих, за счет кеша на гейтах. К гейтам по желанию можно привязать свой домен, причём добавить DNS-записи можно на несколько гейтов одновременно, для повышения надёжности и балансировки нагрузки. Сайт могут скачать другие пользователи IPFS и помочь с раздачей.
IPFS отлично подходит для статических блогов, простых сайтов, файловых архивов (в качестве замены Bittorrent), а также просто для единовременной передачи больших файлов без предварительной загрузки их на какой-либо сервис.

Что такое IPFS?

IPFS — децентрализованная пиринговая система передачи файлов, по принципу работы похожая на BitTorrent, но с возможностью доступа через HTTP, для Web. Все скачиваемые пользователем файлы временно кешируются IPFS-демоном и раздаются другим пользователям, запрашивающим их. Важные файлы можно «прикрепить» (pin) к IPFS-демону, тогда они не исчезнут из кеша.
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии32

Выявляем процессы с дисковой активностью в Linux

Время на прочтение13 мин
Количество просмотров80K
TL;DR: статья рассказывает об удобном, быстром и надежном способе определения Linux-программ, записывающих данные на диск, что помогает в выявлении большой или аномально частой нагрузки на дисковую подсистему, а также позволяет оценить накладные расходы файловой системы. Это особенно актуально для SSD в ПК, EMMC и Flash-памяти в одноплатных компьютерах.
В ходе написания статьи обнаружилось, что запись нескольких килобайт данных на файловую систему BTRFS приводит к записи 3 мегабайт реальных данных на диск.

Введение

«Ой, ерунда, ячейки памяти на современных SSD выйдут из строя через десятки лет обычного использования, не стоит об этом беспокоиться, и уж тем более переносить swap, виртуальные машины и папку профиля браузера на HDD» — типичный ответ на вопрос о надежности твердотельных накопителей c гарантированными ≈150 TBW. Если прикинуть, сколько типичное ПО может писать данных, то кажется, что 10-20 ГБ в сутки — уже большая цифра, пусть будет максимум 40 ГБ, куда уж больше. При таких цифрах ответ вполне разумен — нужно 10 лет, чтобы достичь гарантированных значений по количеству перезаписи ячеек, при 40 ГБ записанных данных ежедневно.
Однако за 6 лет я пользуюсь уже третьим SSD: у первого вышел из строя контроллер, а второй начал перемещать данные между ячейками несколько раз в день, что оборачивалось 30-секундными задержками в обслуживании записи.

После 7 месяцев использования нового SSD я решил проверить количество записанных данных, как их сообщает сам диск через SMART.
19.7 ТБ.
Всего за 7 месяцев я использовал 13% от гарантированного количества записанных данных, притом, что он настроен в соответствии с рекомендациями по выравниваю разделов и настройке ФС, swap у меня почти не используется, диски виртуальных машин размещены на HDD!
Читать дальше →
Всего голосов 119: ↑117 и ↓2+115
Комментарии90

Создание прекрасных приложений с помощью Xamarin.Forms

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

Есть вопрос, который мне постоянно задают в Твиттере: как создавать приложения с крутым дизайном с помощью Xamarin.Forms? Это отличный вопрос, ведь любой может создавать красивые приложения, немного вдохновившись и поработав над стилем. Я не дизайнер и не претендую на звание дизайнера, но есть много отличных источников вдохновения для дизайна приложений, включая Dribbble, Uplabs и другие. Эти дизайны от талантливых людей со всего мира могут повлиять на внешний вид ваших собственных приложений.

Подробнее под катом!

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

Информация

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