Потрясающий город. Живой и зелёный. Сопки, острова и море вокруг просто ласкают взгляд, уставший от плоскости средней полосы. Гордо взмывают ввысь вантовые мосты. Чувствуется дыхание Азии. Совсем не таким я представлял наш рубежный город на Тихом океане и конец Транссиба. Но рельеф города, придающий ему столь неповторимый вид, и место расположения накладывают очень большие ограничения на градостроительную деятельность, развитие транспорта и систему водоснабжения. Во многом именно с ним связано превращение Владивостока в автомобильную столицу, бытовые неурядицы 1990-х гг. и значимость проведения саммита АТЭС в 2012 г. Но обо всём по порядку.
User
МК-61: история, эмуляция, устройство
Расцвет эпохи программируемых калькуляторов в нашей стране пришёлся на середину 80-х годов. Потом на смену относительно сытым и благополучным временам пришла эпоха бандитского капитализма, когда стране стало не до выпуска своей высокотехнологичной продукции бытового назначения, вот уже сменились поколения, но ностальгия по тем временам, когда мы бессонными ночами пытались сократить код программы хотя бы на пару байтов, чтобы уместить задуманную функцию, выискивали всё новые и новые недокументированные возможности, придумывая способы, как их можно использовать на практике, сочиняли целые циклы рассказов в качестве фона для наших игровых программ, не даёт забыть свой МК-61 со 105 байтами программной памяти. Поэтому хочу написать заметку о том, что собой представляли и как работали эти самые программируемые калькуляторы. Даже если эта тема сегодня периодически и поднимается, то не настолько часто, чтобы приесться уважаемому читателю, так что надеюсь поведать что-то новое.
Изобретение линзы Френеля: революция в маяках и спасение жизней до появления GPS
Сейчас, если вы потерялись в незнакомом городе или в лесу, вы быстро выйдете из ситуации при помощи GPS/Глонасс трекинга в том же смартфоне или другом гаджете. Конечно, если с покрытием или зарядкой всё нормально. Причём на суше у вас ещё попадаются ориентиры, которые упрощают жизнь.
Но если вы потерялись на море, то всё сложнее — перед вами только «синяя вечность», как пел Муслим Магомаев. Поэтому для морской навигации GPS стал настоящим прорывом. Теперь на кораблях действует система ECDIS, утверждённая международным сообществом и заменившая бумажные карты. Но 200 лет назад всё было не так радужно.
Представьте: глухая ночь, море штормит, и корабль пытается найти путь в гавань. Ни радаров, ни трекинга нет, а единственный ориентир — это свет маяка. Чем он сильнее, тем больше шансов у моряков не погибнуть, налетев на рифы, и безопасно добраться до пункта назначения. Именно поэтому изобретение линзы Френеля спасло сотни, если не тысячи жизней моряков задолго до GPS. Да и сейчас они используются в маяках по всему миру: только в США их 75 штук! Давайте посмотрим на историю этого удивительного открытия.
Изобретение неодимового магнита: как Масато Сагава и Джон Кроат изменили современный мир
Неодимовые магниты сейчас с отрывом самый распространённый тип постоянных магнитов, занимая порядка 95% всего мирового рынка. Правда, они не просто неодимовые — это сплав редкоземельного металла неодима, бора и железа (полная формула Nd2Fe14B).
Появление этой технологии в 80-х годах буквально перевернуло промышленность: начиная от приводов CD-проигрывателей или HDD накопителей, заканчивая серводвигателями, шаговыми двигателями и МРТ аппаратами. В ближайшие несколько лет ожидается, что объём продаж неодимовых магнитов перевалит за 20 млрд долларов в год, во многом за счёт массового перехода на электромобили.
В успехе неодимовых магнитов нет ничего странного: при небольшой стоимости и размере они обладают огромной коэрцитивной силой и остаточной намагниченностью. Кто покупал их в упаковках, знает, что отлепить неодимовые магниты друг от друга — не самая простая задача.
Но с историей их открытия не всё так однозначно, и об этом до сих пор идут споры. Давайте посмотрим, как два человека, работая на противоположных уголках Земли, совершили революцию независимо друг от друга.
Игра «Жизнь» в одном твите
Когда мне скучно, я прибегаю к одному из привычных способов расслабиться и получить удовольствие. Например, могу побаловать себя бокальчиком хорошего пива. Иногда в процессе дегустации мне на ум приходят разнообразные идеи, и мне становится сложно сдержаться: неминуемо я начинаю городить ещё один бесполезный, но весёлый проект.
В одно прекрасное воскресенье, потягивая пиво и размышляя о жизни, я вдруг подумал: а можно ли вместить JavaScript-реализацию игры «Жизнь» в один твит? И не смог устоять перед желанием попробовать свои силы.
Вселенной на самом деле может быть не 13,8, а 26,7 миллиарда лет
По крайней мере, благодаря телескопу Джеймса Уэбба, у нас есть этому определенные доказательства. Мы начали видеть галактики, которым гораздо больше лет, чем может быть объяснено стандартной космологической моделью. Они выглядят чересчур «современными». Но у некоторых ученых есть объяснение: мы неверно понимаем текущий возраст Вселенной. На самом деле она гораздо старше, чем мы думали раньше.
Ищем простые числа до триллиона за тридцать минут
Поиск простых чисел — популярная задача среди программистов, увлекающихся математикой. Самый известный алгоритм, придуманный, по-видимому, больше двух тысяч лет назад, — решето Эратосфена; в настоящее время существует бесчисленное множество его вариантов и оптимизаций.
Сегодня я хотел бы поделиться с вами различными вариантами реализации поиска простых чисел на языке C#, начиная с классических алгоритмов — решета Эратосфена, Сундарама и Аткина, и кончая различными оптимизациями (сегментация, факторизация). Особый упор я делал на простоту: самый быстрый из алгоритмов, который мне удалось получить, содержит 120 строк кода и ищет простые числа до триллиона меньше, чем за 30 минут, а до миллиарда — меньше, чем за секунду (это далеко от производительности лучших из существующих библиотек по поиску простых чисел, но эти библиотеки обычно содержат свыше 4000 строк кода).
В заключение мы применим самую быструю реализацию для поиска максимального расстояния между двумя соседними простыми числами до триллиона. Прежде чем заходить под кат, я предлагаю вам попытаться угадать ответ. Для сравнения, для простых чисел до 100 максимальное растояние равно 8 (между соседними простыми числами 89 и 97), а до тысячи — 20 (между 887 и 907).
Весь исходный код можно найти на гитхабе.
Визуализация реальных масштабов проклятия размерности
Представьте себе набор данных, состоящий из некоторого количества наблюдений. У каждого наблюдения имеется N признаков. Если преобразовать все эти признаки в их числовое представление, то можно будет сказать, что каждое из наблюдений — это точка в N‑мерном пространстве.
Если N — величина небольшая — взаимоотношения между точками будут именно такими, какими их можно представить на интуитивном уровне. Но иногда N достигает огромных значений. Это может произойти, например, когда множество признаков создают посредством прямого кодирования или чего‑то подобного. Для очень больших значений N наблюдения ведут себя так, как если бы они были бы представлены разреженными данными, или так, как если бы расстояния между ними были бы несколько больше, чем можно было бы ожидать.
Это — реальное явление. По мере роста N, при условии, что всё остальное не меняется, объём части N‑мерного пространства, содержащий наблюдения, тоже, в некотором смысле, увеличивается (или, как минимум, увеличивается количество степеней свободы). Увеличиваются и евклидовы расстояния между наблюдениями. Группа точек становится всё более разреженной структурой. Это — геометрическая база для такого понятия, как «проклятие размерности». Подобные изменения в данных влияют на поведение моделей и на приёмы работы, применяемые к наборам данных.
Многое может пойти не так, как ожидается в том случае, если число признаков очень велико. В ситуациях, когда признаков больше, чем наблюдений, обычно возникает переобучение моделей. В многомерном пространстве ухудшается эффективность любых методов, предусматривающих перебор данных (например — GridSearch), так как для того, чтобы уложиться в одни и те же линейные интервалы, нужно будет сделать больше попыток.
Simba: Симуляция десятков тысяч частиц в потенциале Леннарда-Джонса на чистом Python с GPU-ускорением
Добрый день, уважаемые хабровчане.
Примерно год назад я начал проект симулятора динамики частиц на Python, используя библиотеку Numba для проведения параллельных расчетов на видеокарте. Сейчас, добравшись до определенной вехи в его развитии, я решил открыть исходный код и выложить его на GitHub для всех, кому интересны подобного рода эксперименты.
Самостоятельно потыркать проект можно вот тут: https://github.com/r-aristov/simba-ps
В этой статье я кратко опишу суть проекта, пройдусь по прилагающимся к нему примерам и расскажу почему вообще начал работу над ним.
Технический долг захватил глобальную экономику
Термином «технический долг» обычно называют сокращённые или субоптимальные подходы в процессе разработки ПО. Проявляется он в виде неудачно спроектированного кода, устаревших компонентов и отсутствия документации. В то время, как правильно написанные код и документация служат бессрочно, компоненты и используемые подходы – нет. Программное обеспечение и его составляющие со временем могут становиться техническим долгом. Расцвет индустрии ПО пришёлся на далёкие 80-е годы, поэтому то, что мы сегодня начинаем сталкиваться с полностью устаревшими концепциями, процессами и системами, является относительно новым явлением.
Купи доску и мотор
Уже больше года назад я прочитал статью https://habr.com/ru/companies/first/articles/662570/. Судя по комментариям она вызвала много разных эмоций, но лично меня эта статья вдохновила на создание для себя такой штуки. От себя лично я благодарю автора за эту статью.
Опущу много подробностей и сразу скажу что остановился на покупной надувной доске и покупной мачте с подводным крылом.
Гидрофойлы: лететь по белому свету — лететь куда-то вдаль…
Последние несколько лет на многих водоемах у нас и в жарких странах можно увидеть особого типа доски для сёрфинга, получившие поистине взрывное распространение, которые как бы летят над водой, неся своего наездника над волнующимся морем. Это так называемые «гидрофойлы» или доски на подводных крыльях.
Анонимная сеть в 200 строк кода на Go
Реализации анонимных сетей всегда стремятся быть как можно проще, доступнее для понимания, как на теоретическом, так и на программном уровнях. Такие условия становятся необходимыми вследствие одного из основных принципов построения безопасных программ — чем проще объяснить, тем легче доказать. Но к сожалению теория часто может расходиться с практикой, и то, что легко объяснить в теории, может быть проблематично объяснять на коде.
Вследствие этого, можно сказать just-for-fun, у меня появился вопрос: можно ли реализовать анонимную сеть настолько малую, чтобы её программный код смог понять даже начинающий программист за короткое время?
Каково расстояние между «Будапештом» и «Бухарестом» или об отождествлении слов с помощью расстояния Левенштейна
Каждый из нас из школы помнит определение Евклидова расстояния между двумя точками на плоскости. С помощью расстояния Евклида можно вычислить расстояние между двумя точками на карте, например, между вашим местоположением и станцией метро. Но для пешехода в Нью-Йорке расстояние между двумя точками в городе будет отличаться от расстояния Евклида между двумя точками из-за невозможности передвигаться иначе, как по проезжим улицам, пересекающимся под прямыми углами. Такое расстояние так и называется: "расстояние городских кварталов" или манхэттенское расстояние. При любом способе расстояние характеризует меру близости точек. В сегодняшней статье мы расскажем о способах вычисления расстояния между двумя словами.
Разделяй и властвуй. Повышение эффективности алгоритмов. Часть 1
Да, мы привыкли, что перемножение двух байт, или двух LONG это операция, которая происходит за константное время и не требует какого то особого алгоритма. Даже в школе мы учили наизусть таблицу умножения, что позволяло нам за константное время получить любой результат умножения двух чисел размером от 1 до 10.
Но, что если нам надо перемножить два числа любой длины? Не LONG, не байт, не число от 1 до 10, а любые два числа, которое, имеют в общем случае длину n бит, а результат умножения может иметь длину 2n бит.
В школе все мы проходили алгоритм умножения "столбиком". отличный алгоритм, который нас выручал в докалькуляторную эру, позволяя умножать числа произвольной длины.
Давайте применим его к нашей задаче.
В двоичной системе все выглядит проще, чем то, чему нас учили в школе для десятичных чисел. Берем два числа x и y в двоичном представлении. Чтобы получить произведение, нам надо сложить несколько раз числа x сдвинутые влево на позиции всех ненулевых битов y.
Unihiker: одноплатник с экраном за $75. Что это за девайс и какие у него возможности
Одноплатные ПК крайне редко поставляются с экранами. Обычно дисплей приходится докупать. Но теперь появился необычный девайс, который представляет собой нечто вроде карманного компьютера уже из коробки. Самый его дорогой компонент — дисплей, поэтому разработчики стремились удешевить систему, чтобы удержать стоимость на отметке в $79. Соответственно, каких-то рекордов производительности от него ждать не приходится. Но все же это неплохой девайс, который может пригодиться многим из нас. Давайте посмотрим, что он из себя представляет.
Что делать, если человечество не сможет создать искуственный интеллект никогда?
Любая комбинация софтвера и цифрового хардвера - от микроконтроллера, двигающего дворники у автомобиля - до серверной фермы с много-много-ядерными процессорами, аппаратными ускорителями ML и ChatGPT - сводятся к конечному автомату с достаточно большим состоянием. Независимо от сложности и адаптивности программ.
Сводится ли к конечному автомату человеческий интеллект? К сожалению, у человеческого интеллекта есть атрибут, природа которого современной науке неизвестна и который никогда не наблюдался у конечных автоматов, например у арифмометра. Этот атрибут - ощущение собственного "я", self-awareness. Конечно вы можете сделать в программе переменную "я_чувствую_собственное_я" и присвоить ей true, а потом утверждать, что вы симулируете собственное "я", но это жульничество, а не технология.
Я вовсе не пытаюсь нагонять мистику или агитировать за бога. Self-awareness наверняка такой же физический феномен, как какая-нибудь термоядерная реакция. Но скажем древние греки не знали природы термоядерной реакции. Наверное, они вели диалоги типа "если ты не веришь, что Солнце - просто большой костер из дров, то значит ты веришь в сказки про Зевса и других богов?"
Что сейчас происходит с климатом: 3 больших WTF
По состоянию на 10 июня 2023 года мировые данные показали удивительное совпадение ряда драматических климатических явлений: сочетание многолетнего нагревания океана, вызванного энергетическим дисбалансом Земли, нагревание Антарктиды из-за увеличения площади непокрытого льдом океана, сдвигов ветров и нагревания поверхности из-за Эль-Ниньо, отсутствия пыли в Сахаре и ограничения на содержание серы в судовом топливе 2020 года в совокупности вызвали беспрецедентный нагрев поверхности океана.
Как выглядит край Вселенной?
Несмотря на всё, что мы узнали о нашей Вселенной, многие экзистенциальные вопросы до сих пор остаются без ответа. Мы не знаем, конечна или бесконечна наша Вселенная; мы знаем только, что её физический размер должен быть больше той части, которую мы можем наблюдать. Мы не знаем, охватывает ли наша Вселенная всё существующее, или это лишь одна из многих Вселенных, составляющих мультивселенную. И мы остаёмся в неведении относительно того, что произошло на самых ранних стадиях всего: в первую крошечную долю секунды горячего Большого взрыва, поскольку у нас нет доказательств, необходимых для надёжных и подтверждённых выводов.
Но в одном мы уверены точно: у Вселенной есть край. Только не в пространстве, а во времени. Поскольку горячий Большой взрыв произошёл в известное, конечное время в прошлом — 13,8 миллиарда лет назад, с неопределённостью менее 1% — существует «край» того, как далеко мы можем видеть. Даже при скорости света, предельной космической скорости, существует фундаментальный предел того, как далеко назад мы можем заглянуть. Чем дальше мы смотрим, тем дальше назад во времени мы заглядываем. И вот что мы видим, приближаясь к краю Вселенной.
Information
- Rating
- Does not participate
- Registered
- Activity