Pull to refresh
47
11

Пользователь

Send message

Лучше IBM PC, дешевле Apple. История компьютера Tandy 1000

Level of difficultyEasy
Reading time9 min
Views8.6K


В одной из своих предыдущих публикаций я рассказал об удивительной истории корпорации Tandy, превратившейся из скромной кожевенной мастерской в известнейшего мирового производителя компьютеров. В комментариях читатели вспомнили и самую успешную модель этой компании — Tandy 1000, персоналку, о которой мечтал маленький Шелдон Купер из «Теории большого взрыва». Об этой необычной машине — сегодняшняя статья.
Читать дальше →
Total votes 69: ↑69 and ↓0+69
Comments13

Получаем JTAG на iPhone 15

Level of difficultyEasy
Reading time6 min
Views15K

Месяц назад Apple выпустила iPhone 15 — свой первый смартфон с разъёмом USB-C. Предыдущие полтора года я занимался аппаратным хакингом iPhone, например, мы выпустили опенсорсный последовательный JTAG-адаптер для iPhone под названием Tamarin Cable. Компания Apple наконец-то перешла на USB-C, поэтому мне стало любопытно, можно ли сделать что-то подобное с iPhone 15. Я купил по предзаказу этот телефон, пару печатных плат и набор электронных компонентов.

Прежде всего нужно сказать, что это не уязвимость и не jailbreak, я просто исследую USB-C в iPhone 15 и развлекаюсь со взломом оборудования.
Читать дальше →
Total votes 83: ↑83 and ↓0+83
Comments1

Дамп разделов TV-бокса на чипе RK3528

Level of difficultyMedium
Reading time10 min
Views18K

Заметил в продаже новенький TV-бокс H96 MAX M1 на чипсете Rockchip RK3528, с 4Гб памяти, новым 13-м Андроидом, и подозрительно дешевый. Зная, что на старых чипах Rockchip уже запускали Линукс, я решил заказать и попробовать.

Можете заметить разъёмы питания/USB/HDMI/AV... Как думаете, в чём подвох? Наверное на другом боку еще пара USB и слот для карты памяти, но нет - других разъёмов для вас нет. Сразу напишу - разработчикам такое покупать не стоит, это создаёт много проблем, но раз уж купил - то работаю с чем есть.

Для запуска Линукс первым делом надо получить оригинальный Device Tree, вытащив .dtb из boot или recovery раздела. Этим я и занялся. Rockchip устройств у меня еще не было и по отзывам у меня складывалось ощущение производителя, что не ставит палки в колёса разработчикам, но оказалось - это уже в прошлом.

Инструкции написаны для пользователей Линукс.

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

Прокачиваем вёрстку ARIA атрибутами. Атрибут aria-label

Level of difficultyEasy
Reading time8 min
Views8.2K


Cегодня я хочу рассказать про атрибут aria-label. В статье не будет заумных определений и бездумного копирования стандарта. Я хотел простым языком объяснить, какая польза от атрибута, а также передать свой практический опыт, чтобы вы могли его повторить. А получилось у меня или нет, решать вам.


Со вступительным словом всё. Давайте начнём!

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

Как начать работать с IPv6 там, где его нет (часть 2)

Level of difficultyMedium
Reading time8 min
Views9.7K

В настоящее время основным подходом к внедрению IPv6 является dual-stack, когда устройство одновременно настроено на функционирование обоих IP-протоколов. Это и понятно, ведь основная часть интернета работает на версии IPv4. Механизм 6to4 позволяет подключить ваше устройство IPv4 к брокеру, создав туннель в IPv6.

В первой части цикла статей показана настройка облачного маршрутизатора на routeros. В текущем материале продолжим раскручивать полученное решение, а затем перенесём соединение с брокером на Linux. Но сначала отдельно поговорим о сетевой безопасности подключаемого к IPv6 оборудования. Для понимания происходящих процессов рекомендуется ознакомиться с предыдущей статьёй, так как с целью исключения болтологии вводный материал повторяться не будет.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments25

Личный сайт — на каждом телефоне

Level of difficultyEasy
Reading time6 min
Views33K


На Хабре нередко встречаются статьи о том, как запустить веб-сервер на старом смартфоне. В принципе, здесь ничего сложного, тем более что современные телефоны — это мощнейшие компьютеры с многоядерными CPU и гигабайтами оперативной памяти. Даже на самом стареньком смартфоне больше памяти (встроенная флэш-память), чем на промышленном сервере 20-летней давности, который ставили на профессиональный хостинг.

На любой современный (даже старенький) смартфон можно поставить веб-сервер, если проделать некоторые манипуляции, то есть рутануть телефон или установить Termux.

Можно пойти дальше и использовать сайт как универсальную мобильную платформу для пиринговых приложений, в том числе мессенджера и файлохранилища. Сайт как визитка просто идентифицирует вас в пиринговой сети, которая работает без интернета.
Читать дальше →
Total votes 52: ↑50 and ↓2+71
Comments56

P2P-форум с нуля | от NAT hole punching до автономной и полностью децентрализованной сети

Level of difficultyMedium
Reading time32 min
Views16K

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

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

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

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

Как вы уже могли были догадаться, даже в реалиях, когда практически все устройства находятся за NATами, P2P реален. Когда вы являетесь участником bittorrent-раздачи, трансфер больших данных осуществляется напрямую. Как это работает? Поиск ответа на этот вопрос завёл меня в глубокие дебри, разгребая которые я написал оверлейную p2p-сеть, где трекерами являются сами её участники. Интересно? Тогда добро пожаловать под кат.
Читать дальше →
Total votes 76: ↑76 and ↓0+76
Comments25

Что понимают технологические компании и чего не понимают традиционные компании о разработчиках ПО

Level of difficultyEasy
Reading time10 min
Views12K

Я работал в разнообразных технологических компаниях: от «традиционных» центров программирования и консалтингов до инвестиционных банков и быстрорастущих технологических фирм. Также я общался с разработчиками ПО, работающими в стартапах, банковской сфере, автомобилестроении, big tech и в более «традиционных компаниях». В этой выборке была приличная доля компаний из Кремниевой долины и тех, которые находятся вне её.

Я заметил, что компании Кремниевой долины часто «схватывают» то, что их традиционные конкуренты не могут даже понять и реализовать на практике — особенно в Европе. Эти практики приводят к ускоренным инновациям на уровне компаний, более качественному профессиональному росту инженеров и просто к «оптимальности» в лучшем значении этого слова. В свою очередь, компании Кремниевой долины могут платить (и платят!) больше, и могут получить больше пользы от одного и того же человека.

В этой статье я буду использовать термин «компания в стиле Кремниевой долины», подразумевая современные компании, оптимально использующие каждого разработчика ПО и традиционно находящиеся в Кремниевой долине (хотя многие новые компании этого типа обосновываются уже не там). Такие компании сравнимы по КПД инженера с Meta* или Google. Они используют схожие методологии и часто могут привлекать персонал из других компаний «в стиле Кремниевой долины».
Читать дальше →
Total votes 43: ↑40 and ↓3+55
Comments19

Протоколы семейства TCP/IP. Теория и практика

Level of difficultyMedium
Reading time23 min
Views129K
image

В сети можно найти огромное количество материала о том, как функционируют сети на базе стека протоколов TCP/IP, а также как писать компьютерные программы с сетевыми возможностями. При рассмотрении компьютерных сетей часто углубляются в описание физических основ и структур данных, передаваемых по сети, а при рассмотрении сетевого программирования основное внимание уделяют интернет-сокетам.

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

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

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

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →
Total votes 82: ↑82 and ↓0+82
Comments5

Испытания 5 отечественных автомобильных аккумуляторов в корпусе D23. Часть 1: лечим разбалансировку

Level of difficultyEasy
Reading time9 min
Views15K

Привет, Хабр! Вы думали, что в новых аккумуляторных батареях не бывает разбалансировки? — Бывает, причем у большинства. И это не признак брака или подделки, а особенность технологии, которую необходимо учитывать.
Читать дальше →
Total votes 52: ↑52 and ↓0+52
Comments38

Извлечение текста из файлов PDF при помощи Python

Level of difficultyMedium
Reading time15 min
Views43K

▍ Введение


В эпоху больших языковых моделей (Large Language Model, LLM) и постоянно расширяющейся сферы их применений непрерывно растёт и важность текстовых данных.

Существует множество типов документов, содержащих подобные виды неструктурированной информации, от веб-статей и постов в блогах до рукописных писем и стихов. Однако существенная часть этих данных хранится и передаётся в формате PDF. В частности, выяснилось, что за каждый год в Outlook открывают более двух миллиардов PDF, а в Google Drive и электронной почте ежедневно сохраняют 73 миллионов новых файлов PDF (2).

Поэтому разработка более систематического способа обработки этих документов и извлечения из них информации позволит нам автоматизировать процесс и лучше понять этот обширный объём текстовых данных. И в выполнении этой задачи, разумеется, нашим лучшим другом будет Python.
Читать дальше →
Total votes 38: ↑37 and ↓1+53
Comments10

Катализаторы

Level of difficultyEasy
Reading time8 min
Views8.1K
Картинка Freepik

Весьма интересным явлением является использование катализаторов в химии, которое позволяет осуществлять протекание реакций, в ином случае неосуществимых или протекающих менее эффективно.
Читать дальше →
Total votes 42: ↑38 and ↓4+55
Comments42

Простой аналоговый синтезатор MFOS Noise Toaster

Level of difficultyEasy
Reading time10 min
Views5K

Привет, Хабр! Что может быть интереснее субтрактивного аналогового синтеза? Это, когда сначала получают прямоугольные или пилообразные импульсы звуковой частоты, богатые гармониками, а затем пропускают их через электронные фильтры с модулируемыми параметрами. Получаются удивительные космические звуки, которые мы помним по фильмам нашего детства.
 
Сегодня мы изучим основные принципы, по которым строят аналоговые синтезаторы, и послушаем, как они звучат, если их воплотить в электронной схеме.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments5

10 рекомендаций по VS Code для повышения продуктивности

Level of difficultyEasy
Reading time7 min
Views49K
Visual Studio Code остаётся наиболее предпочтительной IDE среди разработчиков. Причём этот редактор всё чаще используют именно начинающие программисты. Источник: survey.stackoverflow.co/2023

А вы знали, что 73% разработчиков по всему миру используют один редактор кода? Так и есть. Результаты проведённого в 2023 году опроса Stack Overflow показали, что VS Code является самой популярной средой разработки.

И мы все знаем почему — он очень крут!

Но в полной ли мере мы задействуем его потенциал? Текущая статья будет посвящена знакомству с некоторыми интересными возможностями VS Code, способными повысить продуктивность работы. К ним, помимо прочих, относятся локальный контроль исходного кода, анимация курсора и быстрое удаление строк. Использование этих возможностей поможет ускорить реализацию проектов разработки.
Читать дальше →
Total votes 77: ↑69 and ↓8+87
Comments83

Самые ностальгические мобильные игры. Часть 2: почему затонула Java и взлетели «сердитые птички»?

Level of difficultyEasy
Reading time6 min
Views9.9K

Сейчас мобильные игры — неотъемлемое явление современной жизни; тем удивительнее думать, что их история насчитывает лишь четверть века. В прошлой части мы рассказали о появлении первых мобильных игр и первых хитов из их числа: «змейке» от Nokia, Bounce и других. Теперь пора поговорить о том, как ранние мобильные игры прошли непростой путь от WAP-игр до Java и далее до первых игр для смартфонов, чьё многообразие может сравниться разве что с ассортиментом игр под PC и наиболее популярные приставки.
Читать дальше →
Total votes 28: ↑26 and ↓2+36
Comments28

Тестируем PCIe в новом Raspberry Pi 5

Level of difficultyEasy
Reading time9 min
Views31K

Если вы ещё не в курсе, то недавно было объявлено о выходе Raspberry Pi 5.

Я специально снял ролик, где разобрал всю аппаратную часть – что изменилось, что появилось и чего не стало. В этой статье я представлю вам спецификацию новой модели, расскажу о некоторых особенностях и о том, что выяснил в ходе тестирования её работы с десятком различных устройств PCIe.
Читать дальше →
Total votes 62: ↑61 and ↓1+90
Comments30

Оскар Толедо: потомственный волшебник

Level of difficultyEasy
Reading time7 min
Views10K

Семья Толедо (пригород Мехико) и разнообразная техника их кустарного производства, в том числе компьютер, 1980 год

Оскар Толедо — пятикратный победитель программистского конкурса IOCCC, (Международный конкурс обфусцированного кода на С). Он интересен не только сам по себе, но ещё в контексте своей семьи. Это уникальные люди, которые скромно живут в пригороде Мехико и вообще не стремятся к известности. 25 лет назад они написали свою ОС, браузер и кучу софта для него.

Оскар Толедо — просто продолжатель семейного дела, которое началось примерно в 70-е годы прошлого века.
Читать дальше →
Total votes 47: ↑45 and ↓2+62
Comments8

10 лучших практик логирования в Python

Level of difficultyEasy
Reading time19 min
Views33K

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

В этой статье мы рассмотрим лучшие практики логирования в Python. Следуя им, вы сможете обеспечить информативность, практичность и масштабируемость генерируемых логов. Давайте начнём!

Читать далее
Total votes 50: ↑49 and ↓1+70
Comments19

Памяти Кевина Митника — хакера, ломавшего ФБР, АНБ и Кремниевую долину. Часть 4: самый странный повод взломать военных

Level of difficultyEasy
Reading time7 min
Views24K

В прошлой статье мы рассказали о том, как провалились попытки Кевина Митника стать законопослушным гражданином, корпоративным айтишником и даже хорошим мужем. Грехи юности и слава опасного хакера преследовали его буквально по пятам — а затем к преследователям присоединились и детективы. Ну а наш герой плохо умел справляться со стрессом без того, чтобы что-нибудь не вскрывать и не ломать чьи-то сети just for fun. Кевин и его лучший друг Ленни не удержались от того, чтобы не потроллить следивших за ними агентов даже в условиях тотального контроля, — в результате чего вылетели из колледжа. Естественно, на этом они не остановились, что привело к весьма суровым последствиям.
Читать дальше →
Total votes 44: ↑41 and ↓3+56
Comments11

Компиляция моделей МО в С

Level of difficultyHard
Reading time28 min
Views5.4K

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

Недавно у меня состоялся приятный разговор с моим другом Крисом. Он познакомил меня с основами машинного обучения, когда я разбирал написанный Андреем Карпаты micrograd.

Для тех, кто не знает, micrograd – это небольшая реализация нейронной сети, написанная на чистом Python без библиотек, в которой вычислительными единицами выступают не векторы и матрицы, а скалярные величины.
Читать дальше →
Total votes 36: ↑35 and ↓1+52
Comments0

Information

Rating
614-th
Registered
Activity