Рубрика «ruvds_статьи» - 12

Поделить нельзя — умножить или алгоритм быстрого деления по методу Ньютона-Рафсона - 1

Все мы в школе проходили деление «столбиком» — простой алгоритм, который несложно реализовать, вот только не очень быстрый. В прошлый раз мы рассматривали, как компилятор оптимизирует деление в случаях, когда делитель известен во время компиляции, но применение его напрямую, чтоб оптимизировать деление для делителей, определямых в run-time, невозможно: вычисление констант сдвига и умножения само по себе требует деления.

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

Интересные приёмы, взятые из исходников Android - 1

Интересные приёмы, взятые из исходников Android

В процессе чтения исходников Android SDK я замечал интересные механики и приёмы написания кода, какие-то из них до сих пор используются при создании новых библиотек, другие, напротив, заменены более логичными и понятными конструкциями. В этой статье я постараюсь перечислить всё, что смог заметить сам при изучении исходников Android'а. Сразу отмечу: эта статья не претендует на полноту материала и возможно вы нашли даже больше интересных моментов при чтении кода, ладно, погнали, короче!
Читать полностью »

Что будет, если скрестить конструирование компиляторов, DDD и Clean Architecture? Опыт HydraScript - 1

В этой статье я расскажу о двухлетнем эксперименте, проводимом над моим пет-проектом, интерпретатором ЯП HydraScript. Почему к разработке из области системного программирования были применены промышленные практики, и зачем конструированию компиляторов нужен Domain Driver Design с чистой архитектурой?

Исходники проекта Читать полностью »

В любом малом бизнесе есть процесс перешагивания из малого в средний или крупный. Ну или уютная самозанятость для предпенсионера. Например, для малого бизнеса достаточно 1–2–3–4, может, в край, 5 разработчиков. Эти люди могут взять отдельные направления и работать крайне эффективно. Как только их становится больше, начинают появляться внутренние коммуникативные издержки. То есть вклад следующего будет уже не 1/N, а размытым.

При не очень продуманном руководстве, где-то до 20–30 человек, можно и не особо заметить прироста эффективности в плане решения практических задач — и только после этого выйти на рост заново. С другой стороны, начиная примерно от 30 человек у вас появляется полная взаимозаменяемость и стабильность, что на малой команде просто невозможно.

Я сейчас очень упрощаю, конечно, но почувствовать бюрократию вы можете довольно легко и на других объёмах.

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

image Читать полностью »

Как я пришёл к пониманию основ создания Live-дистрибутивов Linux, решив починить свой старый SSD - 1


Был у меня старенький SSD объёмом 240 Гбайт от Kingston, который внезапно перестал работать, вообще перестал распознаваться в системе. Попробовал я подключить SSD к другому компьютеру, попробовал использовать как внешний диск, ничего не дало результата. Поэтому я купил новый, а этот разобрал.

Внешних признаков, указывающих на то, что SSD сгорел, я не заметил, а интуиция говорила: «Проблема программная». Выбрасывать диск не хотелось, поэтому он остался пылиться до «лучших» времён. И вот недавно захотелось попробовать его починить. К своему удивлению, я достаточно быстро нашёл необходимую статью на Хабре, где рассказывалось, как можно оживить SSD на том же контроллере, что и мой, отдельную тему на форуме Ru-Board, а также статью с подробной инструкцией, по ней я и восстановил свой SSD. Но кроме восстановленного SSD я еще приобрёл и закрепил знания по Linux, которые изложил в этой статье. Всем, кому интересно, добро пожаловать под кат.

Читать полностью »

Собираем бюджетный домашний NAS на 14 ТБ - 1

Начав заниматься фотографией, я быстро ощутил нехватку места на компьютере. Фотографии в RAW имеют большой вес, а про видео говорить ещё страшнее. Решение проблемы очень простое — собрать NAS.

О моём опыте сборки бюджетного NAS на 14 ТБ я напишу далее в статье.Читать полностью »

Простой лабораторный высоковольтный БП 1…10 кВ своими руками - 1


Универсальный регулируемый источник питания 1…10 кВ постоянного тока, из подножных материалов, для замены индукционной катушки [1] при работе с самодельными газоразрядными приборами. Блок питания (БП) имеет бортовой киловольтметр и миллиамперметр, а встроенный магазин балластных сопротивлений и переключающиеся шунты позволят использовать его как источник питания небольшого магниторазрядного высоковакуумного насоса или вакуумметра — т. н. ячейки Пеннинга. Читать полностью »

Журналы на кассетах. Электронная компьютерная пресса эпохи мезозоя - 1

В самом начале девяностых компьютерщикам было доступно не так уж много развлечений. Поиграть в игры, написать для души какую-нибудь программку, почитать на досуге электронные журналы вроде «Хакера»… Стоп. Настоящие олдфаги помнят, что это издание появилось на свет в 99-м, а электронным стало и вовсе в 2015-м, не так ли? А вот и не так! Электронные журналы разнообразной тематики (в том числе, и с упомянутым выше названием) зародились намного раньше, причём некоторые замшелые динозавры застали их ещё на кассетах.

Собственно, вспомнил я об этом историческом явлении, когда стал обладателем целых двух клонов ZX Spectrum, на которых подобную прессу из прошлого можно запросто прочитать и сегодня. Столь удивительное открытие, конечно же, заставило меня погрузиться в пучину воспоминаний о давно минувших временах…Читать полностью »

Практическое применение эффекта полного внутреннего отражения с потерями - 1

Картинка Quality House Life Store, ZHIQIAO Glowing Party Store, Youtube-канал «Techmoan»

Задумывались ли вы о том, что вокруг нас, в технике широко применяется интересное физическое явление, на базе которого вы и сами сможете собрать множество интересных самоделок?

И именно об этом и будет наш рассказ...Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js