User
Иннервация глаза: как устроена сеть управления зрением

Сегодня я расскажу про то, почему, когда вы наклоняете голову, глаз автоматически поворачивается на заданный угол с очень точной синхронизацией без потери объектов в фокусе. Ещё как мы, врачи, подключаем ток к нервам и «прозваниваем» цепь, чтобы понять, что всё работает. И про то, что будет, если участки этой цепи отрезать или повреждать.
Да простят меня коллеги-научники за упрощения и неканоническую терминологию.
Ну и ещё отвечаю на вопрос, когда удалять здоровый правый глаз, если у пациента серьёзная инфекция на левом.
Стоимость операций в тактах ЦП
Инфографика:

Когда нам нужно оптимизировать код, мы должны отпрофилировать его и упростить. Однако, иногда имеет смысл просто узнать приблизительную стоимость некоторых популярных операций, чтобы не делать с самого начала неэффективных вещей (и, надеюсь, не профилировать программу позже).
От песка к компьютеру. Часть 1. Атомы и транзисторы

Как заставить песок делать то, чего мы от него хотим?
Для большинства людей познания устройства компьютера оканчиваются на уровне его составных элементов — процессор, видеокарта, оперативная память… Но что именно происходит внутри этих чёрных прямоугольничков после подачи питания — магия. В этой статье (скорей всего, даже серии статей) я постараюсь простым языком объяснить, как же устроены эти таинственные прямоугольнички.
Бэкап с помощью Open Source решения — Bareos

Наличие актуального бэкапа под рукой является крайне важным моментом, потому как никто не застрахован от неприятных случаев, связанных с выходом из строя носителей, утери информации, случайного удаления и т.д. В таких ситуациях резервная копия сохранит не только нервы, но также избавит от возможных финансовых проблем, которые могут возникнуть из-за утери данных.
Как написать свой первый Linux device driver. Часть 3
В предыдущих статьях (один, два) мы определили понятие символьного устройства и написали простейший пример символьного драйвера. Последняя часть посвещена проверки его работоспособности. На Хабре уже есть примеры как можно протестировать драйвер, например: тык.
Я попытаюсь рассмотреть данный вопрос чуть подробнее, надеюсь, вам понравится.

Небольшая история о команде `yes` в Unix
echo
, которая печатает строку в stdout, и есть true
, которая ничего не делает, а только завершается с нулевым кодом.Среди множества простых Unix-команд спряталась команда
yes
. Если запустить её без аргументов, то вы получите бесконечный поток символов "y", каждый с новой строки:y
y
y
y
(...ну вы поняли мысль)
Хотя на первый взгляд команда кажется бессмысленной, но иногда она бывает полезной:
yes | sh boring_installation.sh
Когда-нибудь устанавливали программу, которая требует ввести "y" и нажать Enter для установки? Команда
yes
приходит на помощь! Она аккуратно выполнит эту задачу, так что можете не отвлекаться от просмотра Pootie Tang.Путь автоматизации: конкуренция с ИИ, избавление от рутины, безусловное базовое время
(c)
Как автоматизировать работу и никогда не работать? Прежде чем ответить на этот вопрос, спросите себя о другом: сколько времени вам нужно для счастья? Люди, которые не знают, чем занять вечер выходного дня, не нуждаются в автоматизации многих задач.
Сокращение рутины дает преимущество в конкурентной борьбе. Автоматизация «добывает» самый ценный ресурс на планете — время. Технический прогресс позволяет тратить время на то, что вам интересно: на решение интеллектуальных задач и, вероятно, более сложную работу, выполнение которой обеспечит больше возможностей для улучшения качества жизни.
Дальше — о том, что и как облегчает нам жизнь.
JTAG в каждый дом: полный доступ через USB

Бестиарий С++. Справочник по загадочным персонажам
В C++ в изобилии встречаются подводные камни, ловушки, оговорки и западни. В подземельях С++ скрываются многочисленные подозрительные персонажи. Хэллоуин — правильное время для встречи с некоторыми представителями этой многочисленной своры чудовищ.
Ядра атомов: в самом сердце материи

Рис. 1
Ядро атома получается крохотным, его радиус в 10 000–100 000 раз меньше всего атома. Каждое ядро содержит определённое количество протонов (обозначим его Z) и определённое количество нейтронов (обозначим его N), скреплённых вместе в виде шарика, по размеру не сильно превышающего сумму их размеров. Отметим, что протоны и нейтроны вместе часто называют «нуклонами», а Z+N часто называют A – общее количество нуклонов в ядре. Также Z, «атомное число» – количество электронов в атоме.
Типичное мультяшное изображение атома (рис. 1) чрезвычайно преувеличивает размер ядра, но более-менее правильно представляет ядро как небрежно соединённое скопление протонов и нейтронов.
Содержимое ядра
Откуда нам известно, что находится в ядре? Эти крохотные объекты просто охарактеризовать (и это было просто исторически) благодаря трём фактам природы.
Прекрасные чудовища математики

UPD: добавлен график функции.
Подобно своему создателю Карлу Вейерштрассу, это чудовище возникло из ниоткуда. Потратив четыре года учёбы в университете на кутежи и фехтование, Вейерштрасс выпустился из него с пустыми руками. В конце концов он взялся за преподавание и бо́льшую часть 1850-х был школьным учителем в Браунсберге. Ему была отвратительна жизнь в маленьком прусском городишке, он находил своё существование там одиноким. Единственной отдушиной для него стали математические задачи, над которыми он работал между уроками. Но ему не с кем было поговорить о математике, и у него не было технической библиотеки для обучения. Даже результатам его работ не удавалось покинуть пределов Браунберга. Вместо публикации в академических журналах, как это сделал бы университетский исследователь, Вейерштрасс добавлял их к школьным проспектам, пугая потенциальных учеников заумными уравнениями.
В конце концов Вейерштрасс отправил одну из своих статей в уважаемый «Журнал Крелле». Несмотря на то, что предыдущие статьи остались едва замеченными, эта вызвала огромный всплеск интереса. Вейерштрасс обнаружил способ работы с ужасным классом уравнений, известным как «абелевы функции». В статье было приведено краткое изложение его методов, но этого было достаточно, чтобы убедить математиков в наличии у автора уникального таланта. Не прошло и года, как Кёнигсбергский университет дал Вейерштрассу почётную докторскую степень, а вскоре после этого Берлинский университет предложил ему должность профессора. Несмотря на то, что Вейерштрасс проделал интеллектуальный аналог пути «из грязи в князи», многие из его старых привычек сохранились. Он редко публиковал статьи, предпочитая делиться своими работами со студентами. Но он был малопочтителен не только к процессу публикации: не пугали его и «священные коровы» математики.
Преодоление блокировки в ТТК (Транстелеком) при помощи pf
Итак, провайдер — ТТК Ульяновск (бывш. DARS Telecom), PPPoE-подключение с выделением внешнего IP на время сессии. Блокировка осуществляется заворачиванием заблокированных подсетей/хостов на свой DPI. DNS не подменяется.
Что каждый программист на C должен знать об Undefined Behavior. Часть 1/3
Часть 2
Часть 3
Люди иногда спрашивают, почему код, скомпиливанный в LLVM иногда генерирует сигналы SIGTRAP, когда оптимизация была включена. Покопавшись, они обнаруживают, что Clang сгенерировал инструкцию «ud2» (подразумевается код X86) — то же, что генерируется __builtin_trap(). В этой статье рассматривается несколько вопросов, касающихся неопределённого поведения кода на C и того, как LLVM его обрабатывает.

В этой статье (первой из трёх) мы попытаемся объяснить некоторые из этих вопросов, чтобы вы могли лучше понять связанные с ними компромиссы и сложности, и возможно, изучить немного больше тёмные стороны С. Мы выясним, что C не является «высокоуровневым ассемблером», как многие опытные программисты на C (особенно те, кто сфокусирован на низком уровне) предпочитают думать, и что C++ и Objective-C напрямую унаследовали множество таких проблем.
Как правильно оформить Open Source проект
В свободное и не свободное время[1] я развиваю несколько своих проектов на github, а также, по мере сил, участвую в жизни интересных для меня, как программиста, проектах.
Недавно один из коллег попросил консультацию: как выложить разработанную им библиотеку на github. Библиотека никак не связана с бизнес-логикой приложения компании, по сути это адаптер к некоему API, реализующему определённый стандарт. Помогая ему, я понял что вещи, интуитивно понятные и давно очевидные для меня, в этой области, совершенно неизвестны человеку делающему это впервые и далёкому от Open Source.
Я провел небольшое исследование и обнаружил что большинство публикаций по этой теме на habrahabr освещают тему участия (contributing), либо просто мотивируют каким-нибудь образом примкнуть к Open Source, но не дают исчерпывающей инструкции как правильно оформить свой проект. В целом в рунете, если верить Яндекс, тема освещена со стороны мотивации, этикета контрибуции и основ пользования github. Но не с точки зрения конкретных шагов, которые следует предпринять.
Так что из себя представляет стильный, модный, молодёжный Open Source проект в 201* году?
Как заварить чай по MQTT или доступная умная розетка с контролем температуры и тока
Зачем?
Даже в этом хабе наблюдается повышение интереса к IoT, по моему субъективному мнению это глобальная тенденция, выходящая далеко за рамки этого сайта. А значит стоит вставить и свои 5 копеек в развитие направления, тем более что давно крутилась мысль сделать узел для умного дома, который смог бы контролировать потребление любого прибора питающегося от сети 220В и давал возможность программировать логику управления в зависимости от параметров потребления, температуры, фазы луны и т.д. Существуют готовые решения, но часто в них что-то не устраивает, да и готовое это не наш метод если можно попробовать построить свой уникальный велосипед.

Параметры будущего велосипеда:
— Дешевое устройство из общедоступных компонентов.
— Контроль тока в цепи потребителя.
— Управление устройством по протоколу MQTT.
— Контроль температуры устройства.
— Два выносных датчика для контроля температуры потребителя.
— Индикация состояния на экране устройства.
— Аварийное отключения потребителя если температура или ток превысили задаваемые значения.
Где перспективно и адекватно использовать Python
В этой статье мы с вами обсудим тот перечень направлений Питона, который я выделяю наиболее перспективными для приложения своих сил и времени для молодых специалистов. Данный вывод делается на основе моего анализа – изучение областей и инструментов питона и сравнивать их эффективность с аналогами на других платформах.

Яндекс.Блиц. 12 алгоритмических задач отборочного раунда и их разборы
В конце сентября мы рассказывали, что решили попробовать провести контест, где желающие могут потренироваться в решении задач, максимально приближенных к «боевым». Так участники могут понять, какого формата задания получают разработчики на собеседованиях в Яндексе (этим интересуются очень многие), а самое главное — с чем они сталкиваются, работая над Поиском. Типичная задача на собеседовании — составить алгоритм, доказать его корректность, предложить пути оптимизации. Если человек разбирается в алгоритмах, то он быстро сумеет их реализовывать на любом доступном ему языке.
В Блице можно использовать Java, C++, C# или Python. Кроме того, участие в контесте дает возможность проверить свои знания. Если в итоге вы понимаете, что их стоит подтянуть, — это тоже результат. Кстати, тогда вам может пригодиться специализация на курсере «Алгоритмы и структуры данных», в создании которой Яндекс участвовал.
Давайте теперь разберем задачи, которые предлагались в отборочном раунде. У нас было несколько одинаковых по сложности вариантов, каждый из которых содержал по шесть задач. Мы разберем один набор задач полностью, а также наиболее интересные задачи из других наборов. К слову, из 1762 участников квалификационного раунда в финал прошли лишь 263. Так что задачи оказались не самыми простыми.
Пастильда: нишевый краудфандинг

Разрабатывать электронику для нас и профессия, и хобби, и способ самовыражения.
Поэтому в свободное время по ночам и в выходные мы работаем над внутренними проектами, один из которых недавно стал нашим первым собственным Коммерческим Продуктом. Вот как это было:
Information
- Rating
- Does not participate
- Registered
- Activity