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

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

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

Буферы и окна: подробности о тайне ssh и цикла чтения while

Время на прочтение7 мин
Количество просмотров8.9K
Если вы когда-нибудь пробовали воспользоваться в цикле чтения while командой ssh, или, точно так же, командами ffmpeg или mplayer, это значит, что вы сталкивались с неожиданным поведением такого цикла: он, после первой итерации, таинственным образом прекращал работать!



Решение этой проблемы, в случае с ssh, заключается в использовании конструкций ssh -n или ssh < /dev/null, на которые мгновенно «ругается» ShellCheck (тут можно посмотреть на результаты анализа кода с этими конструкциями). На этом можно было бы и остановиться, ведь проблема решена, но мы этого делать не будем. Лучше — детально разберём причины этой проблемы.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+51
Комментарии3

Развеиваем мифы об управлении памятью в JVM

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

В серии статей я хочу опровергнуть заблуждения, связанные с управлением памятью, и глубже рассмотреть её устройство в некоторых современных языках программирования — Java, Kotlin, Scala, Groovy и Clojure. Надеюсь, эта статья поможет вам разобраться, что происходит под капотом этих языков. Сначала мы рассмотрим управление памятью в виртуальной машине Java (JVM), которая используется в Java, Kotlin, Scala, Clojure, Groovy и других языках. В первой статье я рассказал и разнице между стеком и кучей, что полезно для понимания этой статьи.
Читать дальше →
Всего голосов 19: ↑15 и ↓4+22
Комментарии11

Floppinux — Linux, умещенный на дискету

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

Новость по этому поводу уже была, время подавать и сам перевод. В своем руководстве Кристиан подробно излагает каждый шаг процесса создания дистрибутива и его записи на дискету формата 3.5". В конечном итоге работает такой дистрибутив даже на старых ПК с i486DX и вполне может выполнять скомпилированные приложения.
Всего голосов 52: ↑46 и ↓6+55
Комментарии40

Внутри материнской платы: анализ технологий, лежащих в основе компонентов ПК

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

Сейчас уже едва ли не у каждого дома, на работе или на учебе есть свой настольный ПК. Кто-то использует его для составления налоговых деклараций, кто-то для гейминга, а кто-то и сам собирает компьютеры. Но насколько хорошо вы знакомы с компонентами, что находятся внутри ПК? Возьмем, к примеру, скромную материнскую плату: она ​​сидит себе там, внутри, тихо поддерживает все в рабочем состоянии и редко получает столько же внимания, как, скажем, процессор или видеокарта.

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

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

Как я продавал свой маленький проект

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


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

Хотя это просто хобби, меня заинтересовала возможность продажи таких крошечных Интернет-проектов.

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

В этом посте я расскажу, как продал свой последний проект Earlyname.
Читать дальше →
Всего голосов 35: ↑29 и ↓6+33
Комментарии18

Наблюдения за переключениями между сотовыми вышками

Время на прочтение4 мин
Количество просмотров24K
Одна из моих любимых книг — High Performance Browser Networking Ильи Григорика от 2013 года. В ней можно найти не только разумные советы, но и потрясающие истории из жизни.

46% заряда аккумулятора тратится на передачу 0,2% байтов


Когда пользователь сервиса Pandora проигрывает песню, весь файл передаётся одним куском, и это правильно – передавай сразу столько данных, сколько можешь, а потом держи радио выключенным как можно дольше.

Однако после этой передачи приложение каждую минуту отсылает пинги для периодического анализа аудитории. И что в итоге? Эти пинги занимают 0,2% от общих переданных данных, потребляя при этом 46% всей энергии, использованной приложением!

Илья Григорик, High Performance Browser Networking

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

Какой предел у предсказателя ветвлений? Проверили на x86 и M1

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

Некоторое время назад я смотрел на высоконагруженную часть кода и обратил внимание на это:

if (debug) {
    log("...");
}

И тут я задумался. Это — часть цикла, от которого требуется высокая производительность, но этот фрагмент выглядит как пустая трата времени, ведь мы никогда не устанавливаем флаг отладки. Нормально ли иметь в коде условные операторы, которые никогда не выполняются? Уверен, это влияет на производительность программы…
Читать дальше →
Всего голосов 113: ↑111 и ↓2+149
Комментарии91

Введение в транзакционную память от Мориса Херлихи

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

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

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

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

Обзор 98 одноплатных компьютеров. Часть 1

Время на прочтение14 мин
Количество просмотров137K
Часть 1
Часть 2
Часть 3
Часть 4

От переводчика: Предлагаю вашему вниманию перевод отчёта по одноплатным компьютерам, который был опубликован на сайте LinuxGizmos.com. В отчёт включены краткие описания 98 плат стоимостью до 200 долларов. В отчёте такие платы называют «хакерскими», чтобы подчеркнуть их пригодность для различного творчества.
Так как объем информации весьма велик, я разбил перевод на несколько частей.

Также хочу предупредить, что под катом очень много картинок!

Итак, часть 1.



КДПВ

В течение последнего года, LinuxGizmos сообщал о дюжинах новых одноплатных компьютерах с открытыми спецификациями, дружественных к разработчикам и «хакерам», на которых можно запустить Linux и Android. Мы добавили их в наш каталог вместе со старыми платами. Платы, попавшие в наш обзор, стоят меньше 200 долларов без учёта пересылки, доступны для доставки в июле этого года, и удовлетворяют нашим (весьма гибким) критериям открытости.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии34

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

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

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

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

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

Предупреждение. Для усвоения информации в полном объёме требуется несколько недель.
Читать дальше →
Всего голосов 84: ↑75 и ↓9+97
Комментарии125

CAT-интерфейс для трансивера «Радио-76»

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

В предыдущей публикации о трансивере «Радио-76» упоминалось о синтезаторе частоты с CAT-интерфейсом. В этой статье тема CAT-интерфейса будет раскрыта подробней.

CAT-интерфейс (Computer Aided Transceiver) предназначен для управления частотой, видами модуляции и другими функциями радиостанции с помощью компьютера.

В сети есть множество описаний радиолюбительских синтезаторов на базе Si5351, но в массе своей CAT они не поддерживают. Данная публикация этот пробел должна восполнить.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+57
Комментарии11

Как спасти разбитую читалку, если у вас прямые руки

Время на прочтение9 мин
Количество просмотров16K
Статей о том, как подключить дисплей на электронных чернилах к Arduino, STM32, ESP32 и т.д. (нужное подчеркнуть) на этом ресурсе более чем достаточно, и я не стану утомлять читателя очередным погодным информером. Речь пойдет о том, как в хозяйстве можно использовать электронную книгу, ставшую жертвой комбинации четвертой фундаментальной силой природы – гравитации и седалищной мышцы Человека Разумного. Хе-хе. 

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

Для простоты рассмотрим, как устроен один чернильный «пиксель». В наиболее распространённом случае, это прозрачная сфера микронных размеров, наполненная неким подобием силиконового масла. В ней плавает некоторое количество частиц черного и белого цвета, имеющих разноименные заряды. И нет, это не электроны с протонами. Как правило частицы представляют собой полимер, обладающий электретными свойствами, то есть они способны долговременно удерживать электрический заряд со всеми вытекающими отсюда свойствами. То есть они будут соответственно себя вести в электрическом поле – заряженные частички будут испытывать силу притяжения или отталкивания от обкладок конденсатора с соответствующими зарядами. Ниже, я проиллюстрировал эту магию:

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

Если у вас нет плюсов

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

Мой друг Алексей ищет работу и ходит на собеседования. После которых интересуется, как бы я ответил на некоторые из заданных вопросов.

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

Хотите немного развлечься? Вопрос лёгкий. Надеюсь, вы попытаетесь ответить на него самостоятельно, прежде чем читать дальше. Итак:

"Сложить два целых числа (от 1 до 99) без использования оператора 'плюс'. Дайте пять разных ответов"

Как думаете, сколько там ответов?
Всего голосов 48: ↑42 и ↓6+43
Комментарии131

Липкие сессии для самых маленьких [Часть 1]

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

Липкие сессии (Sticky-session) — это особый вид балансировки нагрузки, при которой трафик поступает на один определенный сервер группы. Как правило, перед группой серверов находится балансировщик нагрузки (Nginx, HAProxy), который и устанавливает правила распределения трафика на доступные сервера.

В первой части цикла мы посмотрим как создавать липкие сессии с помощью Nginx. Во второй же части разберем создание подобной балансировки средствами Kubernetes.

Вляпаться
Всего голосов 29: ↑29 и ↓0+29
Комментарии10

Embedded Linux в двух словах. Первое

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

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

Платформой послужит плата BeagleBone Black с процессором производства Техасских Инструментов AM3358 и ядром Arm Cortex-A8, и, чтобы не плодить мигающие светодиодами мануалы, основной задачей устройства будет отправка смайлов в топовый чат, широко известного в узких кругах, сайта,  в соответствии с командами от смайл-пульта. Впрочем, без мигания светодиодами тоже не обошлось.

Читать далее
Всего голосов 34: ↑32 и ↓2+43
Комментарии15

Несколько сетей для энтузиастов

Время на прочтение29 мин
Количество просмотров31K
Несмотря на обилие материала в сети, в том числе на русском, в том числе на Хабре, в комментариях к публикациям периодически можно встретить удивление открывшимся фактам в обсуждении. Поэтому я решил написать короткую обзорную статью, перечислив в ней сети, в которых может участвовать любой желающий.

Фактически эта публикация краткий дайджест статей на Хабре о технических хобби, в основном, на грани IT, программирования и радиолюбительства.

И первым в списке станет популярный Народный мониторинг.


The Hitchhiker's Guide to the Habr
Всего голосов 56: ↑55 и ↓1+54
Комментарии65

Определяем направление на аэропорт с помощью RTL-SDR и GNU Radio

Время на прочтение4 мин
Количество просмотров18K
Привет, Хабр!

В настоящее время существует не так уж много стандартов связи, которые с одной стороны, любопытны и интересны, с другой стороны, их описание не занимает 500 страниц в формате PDF. Одним из таких, несложных для декодирования, является сигнал VHF Omni-directional Radio Beacon (VOR), используемый в аэронавигации.


VOR Beacon (с) wikimedia.org

Для начала вопрос читателям — как сформировать сигнал так, чтобы с помощью ненаправленной приемной антенны можно было определять направление? Ответ под катом.
Читать дальше →
Всего голосов 70: ↑70 и ↓0+70
Комментарии49

Изучаем распространение радиосигналов в ионосфере с помощью SDR

Время на прочтение6 мин
Количество просмотров9.1K
Привет, Хабр.

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



Я покажу как с помощью SDR-приемника и 50 строк кода на Python получить визуализацию сигналов радиостанций с точностью до долей герца, и увидеть довольно-таки любопытные атмосферные эффекты.

Продолжение под катом.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии18

Как данные передаются по радио?

Время на прочтение5 мин
Количество просмотров51K
Привет, Хабр.

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



Попробуем разобраться, без формул и максимально просто, как можно передать данные из точки «А» в точку «В».
Читать дальше →
Всего голосов 49: ↑48 и ↓1+67
Комментарии34

Личный сервер shadowsocks за 10 минут без затрат

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

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

Приятной особенностью такого метода развёртывания shadowsocks является то, что он не требует больших технических познаний. И настройка клиентов shadowsocks крайне проста: вся конфигурация происходит сканированием QR-кода или одной URL-строкой.

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

Информация

В рейтинге
3 150-й
Зарегистрирован
Активность