Pull to refresh
1
0
Send message

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля

Level of difficultyMedium
Reading time17 min
Views73K
image

К огромному сожалению, старые смартфоны всё чаще и чаще находят своё пристанище в мусорном баке. К прошлым, надежным «друзьям» действует исключительно потребительское отношение — чуть устарел и сразу выкинули, словно это ненужный мусор. И ведь люди даже не хотят попытаться придумать какое-либо применение гаджетам прошлых лет! Отчасти, это вина корпораций — Google намеренно тормозит и добивает довольно шустрые девайсы. Отчасти — вина программистов, которые преследуют исключительно бизнес-задачи и не думают об оптимизации приложений совсем. В один день я почувствовал себя Тайлером Дёрденом от мира IT и решил бросить вызов проприетарщине: написать свою прошивку для уже существующего смартфона с нуля. А дабы задачка была ещё интереснее, я выбрал очень распространенную и дешевую модель из 2012 года — Fly IQ245 (цена на барахолках — 200-300 рублей). Кроме того, у этого телефона есть сразу несколько внешних шин, к которым можно подключить компьютер или микроконтроллер, что даёт возможность использовать его в качестве ультрадешевого одноплатника для DIY-проектов. Получилось ли у меня реализовать свои хотелки? Читайте в статье!
Читать дальше →
Total votes 204: ↑202 and ↓2+246
Comments137

Разбираем HTTP/2 по байтам

Level of difficultyMedium
Reading time24 min
Views30K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

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

Одноплатный компьютер с 3G «за косарь». Что Orange Pi предлагает по цене ящика пива?

Level of difficultyMedium
Reading time9 min
Views21K
image

Каждый год выпускается с десяток новых моделей одноплатных компьютеров. Свежие девайсы представляют как старые и уважаемые фирмы по типу Raspberry Pi, Orange Pi или Banana Pi, так и относительные новички на рынке — Repka Pi, или, например, Lctech Pi. Одноплатники работают на достаточно большом парке железа: кто-то использует чипы AllWinner, кто-то Amlogic, кто-то Broadcom, а кто-то… мобильные! Пару лет назад Orange Pi отличились выпуском нескольких одноплатников на базе чипсетов очень бюджетных мобильников 2013-2015 годов — 2G IoT и 3G IoT. На данный момент, выпуск 3G IoT завершен, а компания предлагает купить абсолютно новый одноплатник с 3G, Bluetooth, Wi-Fi, GPS, поддержкой Linux и Android всего за 1.000 рублей (500 само устройство и 500 доставка). На что оно способно и стоит ли его брать — узнаем в статье!
Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments85

Интеграция рекламы в Android-приложение: Yandex Mobile Ads Vs. Google AdMob

Level of difficultyMedium
Reading time13 min
Views9.8K

Привет, Хабр! Меня зовут Александр, я Android-разработчик в IT-компании SimbirSoft. В конце 2022 года на одном из проектов мы с командой столкнулись с трудностями в работе мобильной рекламы — тогда у нас была подключена сеть AdMob от Google. Приходилось искать много обходных путей для продолжения монетизации приложения. Поэтому решили мигрировать на платформу, с которой не будет проблем из-за санкций. Коллеги-аналитики взялись изучить доступные платформы. 

Я поделюсь результатами этой работы и совместными выводами. Но главным образом разберу процесс интеграции Google AdMob и Yandex SDK, их плюсы и минусы, шаги интеграции, и расскажу, почему мы выбрали Yandex SDK. 

Сегодня использовать зарубежные решения не столько сложно, сколько бессмысленно, если пользователи находятся в России. Многие провайдеры уходят из страны и отказываются выплачивать доход от рекламы, бизнес теряет деньги. Статья будет полезна Android-разработчикам, которые столкнулись с выбором SDK.

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

Пишем на Python как на Rust

Level of difficultyMedium
Reading time17 min
Views30K

Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.

Читать далее
Total votes 88: ↑83 and ↓5+94
Comments42

Какого провайдера VPS выбрать для собственного сервера в 2023 году. Платим за всё российской картой

Level of difficultyEasy
Reading time7 min
Views193K

Иметь свой VPS для VPN довольно выгодно. Нет ограничений по количеству клиентов, можно обеспечить VPN подключением всех своих родных, друзей и знакомых. При этом можно за это платить 160-300 рублей в месяц. И если общедоступные VPN вовсю банятся по DNS и IP, то личные VPN пока что избегают этой участи.

Минусы есть, это администрирование сервера и отсутствие разнообразия географии.

Для VPN нужен зарубежный сервер, а с зарубежными сервисами в России уже больше года есть проблемы с оплатой. Но есть российские компании, которые предоставляют зарубежные сервера и при этом им можно платить с помощью российской карточки.
Я зарегистрировался в дюжине провайдеров, до покупки VPS дошёл у пяти. А после тестов остались только трое.

Читать далее
Total votes 61: ↑61 and ↓0+61
Comments198

Как сделать простой UPS для NAS

Level of difficultyMedium
Reading time11 min
Views23K

Как известно, большинство UPS подключаются между розеткой 220В и NAS. При этом ничто не мешает разместить UPS внутри корпуса NAS или хотя бы позаботиться об этом заранее.

Рассмотрим вариант дизайна такого UPS, который можно разместить внутри корпуса для тех NAS, которые для работы требуют только одного напряжения питания 12В.

Всё ещё хочешь собрать UPS?
Total votes 66: ↑65 and ↓1+80
Comments89

Железный отладчик для ZX Spectrum

Reading time7 min
Views9.3K

До текущего момента, отладка С кода для ZX Spectrum была возможна только в некоторых эмуляторах. В предыдущей статье описан процесс написания отладчика, который использовал цепочку gdb-клиент (z88dk) <-> gdb-протокол <-> gdbserver (эмулятор Fuse).

В этой статье описан процесс написания "железного" отладчика для ZX Spectrum, то есть такого, в котором и непосредственно целевой код и код отладчика выполняет один и тот же z80. Как и в случае с эмулятором, используется сетевой протокол gdb, для этого требуется сетевой адаптер Spectranet, который постепенно собирает вокруг себя значительное (англоязычное) сообщество.

Также в статье описана реализация "точек останова" — механизма, без которого не может обойтись ни один отладчик.

LOAD "" CODE 32768
Total votes 53: ↑53 and ↓0+53
Comments12

Киргизия: интернет без цензуры, величественные горы и парадокс водителей

Reading time19 min
Views71K

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

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

Читать далее
Total votes 157: ↑148 and ↓9+186
Comments155

Как оплатить VPN без Visa и Mastercard

Reading time2 min
Views77K

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

Читать далее
Total votes 23: ↑17 and ↓6+21
Comments124

Ventoy — мультизагрузка образов OS с преферансом и куртизанками

Reading time23 min
Views194K
Привет Хабр!

Существует несколько программ с графическим интерфейсом, предназначенных для создания Live USB-дисков.

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


Проект начатый китайским разработчиком longpanda примерно полтора года назад, в марте 2020-го, успел набрать популярность и уже включён в состав репозиториев некоторых дистрибутивов linux. И неспроста.

Давайте посмотрим почему...
Total votes 84: ↑84 and ↓0+84
Comments49

Минимизация файла ELF – попробуем в 2021?

Reading time18 min
Views10K

Экспериментальный проект по максимальному уменьшению ELF-файла с программой Hello, World! под целевую систему Linux x64 с помощью NASM. В предыдущем опыте начала 2000-х удалось добиться размера рабочего файла в 45 байтов, но с тех пор ядро сильно изменилось. Каков же будет минимальный жизнеспособный ELF в 2021?
Читать дальше →
Total votes 51: ↑50 and ↓1+77
Comments10

Необычный дуалбут: ноутбук с «двойным дном»

Reading time15 min
Views81K

Не так давно на Habr Q&A я наткнулся на интересный вопрос — как сделать, чтобы два жестких диска не видели друг друга? Чтобы вирус, попав на одну систему, никоим образом не мог заразить другую. В ответах предлагали достаточно стандартные способы — использовать полнодисковое шифрование, отключить диск в диспетчере устройств и даже поставить переключатель на питание. Но что если взглянуть на задачу совершенно с другого угла и сделать всё средствами самого HDD? Да-да, сегодня мы снова погружаемся в пучины модификации прошивок и реверс-инжиниринга!
Узнать подробности
Total votes 274: ↑270 and ↓4+353
Comments122

Bitcoin in a nutshell — Cryptography

Reading time12 min
Views117K
Одна из причин, почему Bitcoin продолжает привлекать столько внимания — это его исключительная «математичность». Сатоши Накамото удалось создать систему, которая способна функционировать при полном отсутствии доверия между ее участниками. Все взаимодействия основаны на строгой математике, никакого человеческого фактора — вот в чем была революционность идеи, а не в одноранговой сети, как многие думают. Поэтому первую главу я решил посвятить именно математическим основам Bitcoin.

Ниже я постараюсь объяснить вам самые базовые вещи — эллиптические кривые, ECC, приватные / публичные ключи и так далее. По возможности я буду иллюстрировать свои слова примерами кода, преимущественно на Python 2.7, если что-то непонятно — спрашивайте в комментариях.

intro
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments10

Bitcoin in a nutshell — Protocol

Reading time9 min
Views36K

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


Ниже я объясню, каким образом формируется транзакция, покажу как она подписывается и продемонстрирую механизм общения между нодами.


meme

Читать дальше →
Total votes 26: ↑20 and ↓6+14
Comments3

Bitcoin in a nutshell — Transaction

Reading time9 min
Views76K

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


Когда мы имеем дело с финансовой системой на основе блокчейна, то процесс денежного перевода выглядит совершенно иначе. В Bitcoin не существует никакой общей таблицы вида <адрес, баланс>, ровно как и не существует регулятора, который бы эту таблицу редактировал. В этой статье я покажу, что из себя представляет транзакция в Bitcoin, как она строится, и объясню, зачем же внутри Bitcoin добавлен свой язык программирования, про который все слышали, но никто не видел.


meme

Читать дальше →
Total votes 39: ↑33 and ↓6+27
Comments10

Bitcoin in a nutshell — Mining

Reading time14 min
Views85K

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


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


mining_meme

Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments13

Bitcoin in a nutshell — Blockchain

Reading time6 min
Views78K

Blockchain — это технология, на базе которой построен Bitcoin. И если пару лет назад вся слава доставлась криптовалюте, то сегодня все чаще можно слышать смелые фразы вроде: "Forget Bitcoin, Long Live Blockchain". Активно развиваются платформы вроде Ethereum, IPFS или Overstock, которые рассматривают блокчейн не как инструмент для создания еще одной платежной системы, а как совершенно обособленную технологию, сравнимую по своей инновационности разве что с Интернетом.


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


meme

Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments2

Перевод статьи «В защиту Ричарда Столлмана»

Reading time17 min
Views24K

Два года назад, в результате клеветнической кампании в оруэлловском духе, проведённой жёлтой прессой по указке производителей проприетарного программного обеспечения, известный мыслепреступник Ричард М. Столлман (РМС) был ложно обвинён в одобрении изнасилований. Его 36 лет борьбы за Ваши цифровые права оказались отменены. Кампания по дискредитации была настолько свирепой, что он уволился с поста президента Фонда Свободного Программного Обеспечения. Фонд СПО ничего не сделал для того, чтобы отстоять и защитить его. Но это можете сделать Вы!


21 марта 2021г. Ричард Столлман был принят обратно в совет директоров Фонда СПО. В ответ СМИ развернули новую кампанию по его дискредитации. Была создана петиция, призывающая к насильственному выдворению как РМС, так и всего совета директоров Фонда СПО. РМС был ложно обвинён в сексизме, трансфобии, эйблизме и куче других вещей, чтобы его опорочить. Не слушайте эту ложь. Политические заметки Ричарда Столлмана и его статьи выражают позицию человека, твёрдо борющегося против любых форм дискриминации!


В ответ мы, Движение за свободное программное обеспечение, организовали свою петицию. Мы хотим, чтобы РМС остался на своём посту, а Фонд СПО не отступил. Мы призываем Фонд СПО защитить честь Ричарда Столлмана и его наследие. Ричард Столлман — живой человек, чьё право на свободу слова было грубо ущемлено.


Мы должны громко и чётко обозначить Фонду СПО свою поддержку пострадавшего.


Если Вы поддерживаете Свободное программное обеспечение, верите в свободу слова, свободу ассоциаций и социальную справедливость (настоящую социальную справедливость, при которой к человеку относятся с уважением, а не «отменяют» из-за его убеждений), подпишитесь здесь:


https://rms-support-letter.github.io/

Читать дальше →
Total votes 108: ↑101 and ↓7+129
Comments142

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

Reading time4 min
Views101K

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

Читать далее
Total votes 223: ↑215 and ↓8+278
Comments193
1
23 ...

Information

Rating
Does not participate
Registered
Activity