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

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

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

Скрипка — деревянный хайтек

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров7.3K
TL;DR: Расскажу о конструкции струнных смычковых инструментов на примере скрипки. Так как тема изобилует богатейшей мифологией, я постарался использовать проверенную информацию, совпадающую в разных источниках. Наглядно покажу детали конструкции на цифровой копии скрипки, которую создал сам.

Фото: Pedro França
Читать и смотреть
Всего голосов 45: ↑42 и ↓3+55
Комментарии54

Сложности с отображением иконок рабочего стола

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.2K

Последние три недели я работал над рефакторингом и исправлением легаси-кода (самые старые части которого были написаны в 2013 году), отвечающего за позиционирование иконок в KDE Plasma, а также сохранение и загрузку этих данных.

Вот мой запрос на внесение изменений: plasma-desktop: Refactor icon positioner saving and loading.

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

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

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

В итоге периодически кому-то нужно разгребать такую запутанную базу кода и подчищать её.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+45
Комментарии19

Как сварить метровые столбы стали или запитать рельсотрон (до 1 млн ампер и более)? Ответ: нужен диск Фарадея

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров21K
Картинка — YouTube-каналы Marb's lab, Science Exxience

Среди генераторов особняком стоит одно устройство, которое лежит в основе современных электрогенерирующих динамо-машин — так называемый диск Фарадея.

Несмотря на ряд недостатков, он обладает несколькими достаточно впечатляющими характеристиками:

  • крайне просто устроен, что позволяет проводить эксперименты по самостоятельной постройке такого устройства практически любому желающему;
  • сразу генерирует постоянный ток без каких-либо выпрямителей;
  • при достаточно малом выходном напряжении (может быть скорректировано, об этом ниже) может потенциально генерировать огромные токи (до миллиона ампер и более), что позволяет использовать его в качестве источника питания для мощной электросварки (сразу сваривающей даже бруски металла) и рельсотронов (над этим типом питания, в частности, работала американская DARPA), заменяя собой батарею конденсаторов.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+66
Комментарии75

Небезопасный Rust сложнее C

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров18K

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

В прошлом году я написал программу Photohash для индексации своего NAS и поиска дубликатов фото без использования хэширования, независимого от поворота изображения, и перцептивного хэширования. Чтобы полноценно задействовать все ядра процессора и диски, эта программа распределяет работу между воркерами, отвечающими за вычисления и ввод-вывод. Происходит это распределение по каналам, представляющим синхронизированные очереди задач.
Читать дальше →
Всего голосов 46: ↑43 и ↓3+56
Комментарии79

Lampwork — декоративная стеклодувная техника. Часть 2. Основные приёмы, работы заключительные

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.4K

Продолжим воодушевлять неравнодушных на интересные забавы в необычной области — горячее декоративное стеклоделие в пламени небольшой настольной горелки. Несмотря на открытый огонь, электропечь с высокой температурой и другое специфическое и на первый взгляд страшное, оборудование, барышни, а вотчина это в основном их, своими нежными пальчиками преотлично с ним управляются, а основы работы в упрощённой стеклодувной технике на стальной спице легко осваивают и дети с первого же занятия. Городские энтузиасты запросто оборудуют рабочее место и в квартирах, практика это отработанная. Крупных ваз и кувшинов при этом, увы, не получить, масштабы здесь скорее ювелирные, но и они позволят окунуться в восхитительный и волшебный мир пламени и цветного стекла — музыку во плоти.
Читать дальше →
Всего голосов 59: ↑58 и ↓1+79
Комментарии16

Советы по программированию, которые бы я дал себе 15 лет назад

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров32K


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

▍ Если ты (или твоя команда) постоянно стреляешь себе в ногу, то почини ружьё


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

Когда я занимался разработкой для iOS, то использовал CoreData и подписывался на изменения нескольких view. Обратный вызов подписки поступал в тот же поток, из которого было запущено изменение. Иногда это был основной поток, а иногда — фоновый. В разработке для iOS важно то, что вносить изменения в UI можно только в основном потоке, иначе приложение вылетит. Поэтому подписка могла работать нормально, но потом ломалась, когда кто-то запускал изменение из фонового потока или вы позже добавляли обновление UI.

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

Я решил это исправить. У меня ушло десять минут на внесение изменений в слое подписки, теперь подписчики вызывались в основном потоке, что позволило избавиться от целого класса сбоев и сняло с нас часть умственной нагрузки.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+59
Комментарии16

GPU для дата-центров

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.7K

Серверный узел с восемью GPU-ускорителями AMD Instinct MI325X (2,3 ТБ видеопамяти, 8×750 Вт)

Современные дата-центры уже не такие, как прежде. Раньше на типичный сервер поставили бы 144-ядерный CPU, много RAM и десяток HDD/SSD. Но теперь приоритеты меняются, в первую очередь из-за высокого спроса на машинное обучение (ML) и приложения LLM. Хотя аппетит к памяти только вырос, но процессоры нужны другие.

И крупным корпорациям, и маленьким компаниям нужно железо для обсчёта ИИ-приложений. Это GPU-ускорители, NPU (Neural Processing Unit) и TPU (Tensor Processing Unit), AI-чипы нового поколения. Нужны серверы с GPU. Открываются даже специализированные GPU-облака на растущем спросе.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+36
Комментарии1

Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: значения свойства display

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров10K


Привет, Хабр. Я продолжаю отвечать на вопросы из собеседований на должность фронтендера. Сегодня я отвечу на следующий вопрос: «В чём отличия между значениями block, inline, flex, inline-flex, grid и inline-grid для свойства display


Прошу внимания. Мой ответ будет основан на теории, которую я описал в статье «Зачем нужно использовать свойство display?». Прочитайте, пожалуйста, сначала её.


Последний технический момент. Во всех примерах я использую <body> в качестве родительского контейнера. На картинках он обозначен голубой пунктирной линией.


А теперь переходим к статье.

Читать дальше →
Всего голосов 42: ↑42 и ↓0+53
Комментарии3

Эффект Монреаля: почему языкам программирования нужен Царь стилей

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров10K

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

Пусть это будет мысленный эксперимент. Подыграйте мне. Если вы читали мою прошлую статью (англ.), то должны правильно предположить, что я бы предпочёл экспрессивный язык, ориентированный на профессионалов. Так и есть. Но в гибком языке программирования есть серьёзная проблема с масштабированием – слишком много стилей оформления кода и способов его написания. В итоге просто не обойтись без руководств по стилю, которые помогут сориентироваться в правильной реализации.

Какое подмножество C++ или Kotlin вы используете? Что вы предпочтёте: project.toml или requirements.txt? Теперь у вашего языка есть возможность поэтапной типизации с помощью аннотаций типов. Хотите ей воспользоваться? Как вы реализуете конкурентность: с помощью многопоточности, Tokio или std::async?

Чем более экспрессивный язык, тем сложнее всё становится. И здесь на сцену выходит Go. И речь не только о gofmt, но и о его стандартной библиотеке и согласованности. В Kotlin вам приходится гадать, что лучше использовать для ошибок: исключения или объекты Result? В случае же Go вам всё ясно – ищем err. Да, это многословно, но зато предсказуемо.

Экспрессивные языки прекрасны, но часто создают путаницу. Вы можете использовать богатый и комплексный язык, поддерживающий миллион способов реализации одного и того же. Именно это я хочу вам показать. Как же сохранить всю эту мощь, но уменьшить беспорядок? Как избежать возникновения 500 поддиалектов? Но прежде, чем переходить к решениям, обсудим Scala.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+54
Комментарии22

Хватит ли места на рынке D2D после прихода SpaceX?

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров4.9K
image

В марте 2024 года регулятор FCC согласовал нормативно-правовую базу для сервиса прямого спутникового доступа (Direct-to-Device, D2D) в США. SpaceX, использующий на правах сублизинга частоты сотового оператора T-Mobile, будут иметь вторичный приоритет. Такое правило закреплено в п. 4.4 Регламента радиосвязи ITU (non-protected/non-interference basis) — не создавать помех приоритетным сервисам, которым частоты в диапазоне были выделены ранее. Однако США стали первой страной, применившей его для D2D. Вероятно, вскоре их примеру последуют и другие страны. Использование сотовых частот даёт возможность подключить обычные устройства. Сначала это будут сообщения/сигнал SOS с координатами, потом добавится голос, а затем и передача данных на скоростях 2-4 Мбит/с. Пока D2D воспринимается как премиальный сервис (Apple iPhone и флагманы Huawei). Но приоритетным для него будут наименее развитые страны Африки и Азии, где на «границе сети» живут оставшиеся полмиллиарда абонентов, нуждающиеся в базовых услугах. И на этом рынке уже тесно и без SpaceX.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+41
Комментарии1

Паяем классическую педаль Marshall Bluesbreaker

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7.1K


Привет, Хабр! 62 года назад англичанин Джим Маршалл скопировал гитарный усилитель Fender Bassman из США. Британские лампы зазвучали совсем не так, как американские. Различие в характеристиках громкоговорителей также ощутимо повлияло на звук.

Так появился мировой стандарт перегруженного электрогитарного звучания, благодаря которому, получило своё развитие множество стилей рока и металла.

К тридцатилетнему юбилею своего первого культового комбоусилителя компания «Маршалл» выпустила транзисторную педаль, повторяющую его звучание. А сегодня я соберу свой экземпляр этой педали.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии12

На пути к самодельным радиолампам. Стекло: классификация, опознание, подготовка

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.8K

Минимально необходимое о стеклодувных подготовительных работах. В ключе кустарно-хоббийных экзерсисов, где стекло добывается по случаю, часто немаркированное, случается, что и в скверном состоянии от неправильного хранения, последний оплот неплохого легкоплавкого стекла — производство неоновой рекламы — пустили по миру светодиоды. Лабораторная посуда и приборы теперь изготавливаются из стекла импортного боросиликатного. Красивого, удобного и термостойкого, но и чрезвычайно дорогого и непременно требующего для своей обработки кислород. Тем не менее остатки старых трубок — заготовок для стеклодувного дела — всё ещё можно отыскать частным порядком.
Читать дальше →
Всего голосов 85: ↑85 и ↓0+85
Комментарии59

Графика древности: пятая волна. Sega Saturn и Sony PlayStation (часть 2/4)

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров15K

В предыдущей части мы начали знакомиться с игровыми консолями пятого поколения, настоящим некстгеном своего времени. Сам этот термин пошёл в массы именно тогда: только-только выходящим на рынок новым консолям был посвящён американский видеоигровой журнал Next Generation, позже переименованный в NextGen.

История успеха консолей пятого поколения началась в 1993 году с консоли 3DO, но настоящая битва за внимание геймеров была впереди. Пятое поколение не только определило саму форму современных игр, но и смену главных действующих лиц — компаний, задающих тренды.

Сегодня рассмотрим две главнейшие платформы поколения, Saturn от некогда великой, но начинающей стремительно терять полимеры Sega, и PlayStation от новичка в индустрии видеоигр — Sony. Заодно узнаем кое-что про концептуальное противостояние квадов и треугольников, а также про необычные сложности в реализации эффектов полупрозрачности.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+77
Комментарии19

Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: свойство display

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров16K


За свою карьеру у меня было достаточно много собеседований. Конечно, одной из основных тем вопросов была вёрстка. Немного похвалюсь. Не было вопроса, на который я не ответил.


Недавно у меня появилось желание снова проверить себя и показать сообществу свои ответы на самые популярные вопросы по вёрстке. Может же быть так, что мои ответы были неполными или некорректными. Если это так, то я научусь новому. А если всё хорошо, то они помогут другим людям в подготовке к собеседованию. Кажется, это в любом случае будет полезно.


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


Сегодня я дам ответ на следующий вопрос: «Зачем нужно использовать свойство display

Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии12

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории? Часть 2

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров22K

Продолжим наш рассказ о том, как странная компания нерядовых людей со стрёмными тараканами в голове сделали суперхит — и навсегда изменили всю индустрию геймдева. В прошлый раз мы оставили наших главных героев, Джона Кармака и Джона Ромеро, на пути в мрачный луизианский город Шривпорт. Их, как талантливых и перспективных разработчиков игр, ждала работа на компанию Softdisk. Вряд ли кто-то из них мог тогда представить, что всего через несколько лет они превратятся в живых классиков игровой индустрии — но первые образы и наброски будущего шедевра уже начинали клубиться в их головах. И некоторые черты Doom можно было заметить уже в их ранних творениях!

Все части цикла статей о создании DOOM:

Читать дальше →
Всего голосов 70: ↑68 и ↓2+87
Комментарии14

Сны разума: что общего у сновидений с работой нейросетей?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

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

Сны видят многие высокоорганизованные животные, далеко не только люди. Кошки и собаки нередко демонстрируют это очень наглядно для хозяев, дёргая во сне лапами и явно обозначая, что им снится что-то оживлённое. Увы, до сих пор учёные не сумели докопаться до достоверного объяснения причин, почему это происходит. Исследователи расходятся во мнениях относительно того, являются ли сновидения побочным эффектом иных функций мозга — или же они служат некой собственной, физиологически, психически и эволюционно обусловленной цели.
Читать дальше →
Всего голосов 33: ↑29 и ↓4+38
Комментарии7

Почему мы не торопимся применять новые технологии

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров15K
image

В комментариях к постам про разбор аварии (тут и тут) было развёрнутое обсуждение про новые технологии в ИБП, которые можно внедрить. Коротко — мы не будем внедрять ничего ультрасверхсовременного. Потому что лучшая версия для знакомства с софтом — это 2.4. В случае MS ещё хорошо, когда за цифрами написано что-то вроде SP2. Потому что если пробовать на себе все новые технологии, то это, конечно, дико интересно и прогрессивно, но мешает бизнесу. У нас дефицит свободного времени и рук. Вот, собственно, несколько прикладных историй, почему мы не торопимся нырять в новые технологии.

Пример с новым железом, на котором может строиться вся инфраструктура, думаю, знаком всем, поэтому начну не с него, а с холивара про IPv6 против IPv4.

Протокол v6 невероятно хорош. Его писали думающие люди, он снимает море проблем интернета, он реально крут. Адреса IPv6 практически бесплатные. Они не кончаются. В свою очередь, IPv4 стоят совершенно неприличных уже денег (это вторая статья в себестоимости виртуальной машины после железа), постоянно дорожают — и, что гораздо хуже, не всегда можно взять в аренду нужное их количество. Бывает, что к нам заезжает крупный клиент, мы хотим арендовать ещё 256 адресов v4 — и блок освобождается не через 15 минут, а через несколько дней. То есть нам надо постоянно ковыряться с тем, чтобы они были.

Но при этом IPv6 ещё хуже с точки зрения реального применения. Вообще, я лично не совсем понимаю, кому сейчас он нужен. Многие наши коллеги, кто пользуется, говорят просто: «В РФ v6 нет и не будет в ближайшее время, наверное». А специалисты по ИБ ещё категоричнее: «Я его просто отрубаю от греха подальше».
Читать дальше →
Всего голосов 59: ↑57 и ↓2+73
Комментарии42

Канал передачи 500 Кбит/с со стратостата

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров12K

Последние несколько месяцев я работал над системой связи для стратостата. И хотя в первую очередь мне бы хотелось поговорить о высокоскоростной передаче данных на Землю, в этой статье я задокументировал всё, над чем работал.
Читать дальше →
Всего голосов 66: ↑66 и ↓0+66
Комментарии54

Действующий процессор на 13 микросхемах стандартной логики

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров22K


Привет, Хабр! Для меня было просто невозможно пройти мимо этого схемотехнического чуда. Горстка деталей на небольшой двусторонней плате выполняет команды машинного языка и выводит результат в виде двоичного кода!

Действующая модель называется "TD4 CPU", является проектом с открытыми исходниками, реально работает и позволяет понять устройство и принцип работы процессора.
Читать дальше →
Всего голосов 85: ↑84 и ↓1+109
Комментарии54

Установка Gentoo на Playstation 3

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров12K

История Linux на PS3 довольно интересна. Если вы знакомы с историей PS3, то, вероятно, знаете, что Sony выпустила её в 2006 году с поддержкой возможности запуска других операционных систем при помощи функции под названием OtherOS. OtherOS позволяла пользователям устанавливать операционные системы наподобие Linux или FreeBSD во второй раздел жёсткого диска PS3.

В 2010 году Sony в прошивке 3.21 избавилась от поддержки OtherOS «из соображений безопасности». На самом деле это означало, что некоторые люди начали использовать эту функцию для глубокого изучения внутренностей PS3 и разбираться, как пиратить игры. Благодаря модифицированной прошивке, можно использовать OtherOS с современными прошивками; именно этим мы и займёмся.
Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии13
1
23 ...

Информация

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