6 лет писал томными вечерами книгу по программированию. Рассказываю как собрал на неё деньги, с какими сложностями столкнулся и почему каждому разработчику стоит это сделать.
Разработчик
Мастер-класс по съемке и сшивке панорамных изображений
Введение
Сферическая панорама должна иметь охват 360° или полный круговой обзор по горизонтали и 180° по вертикали или обзор от нижней точки (так называемый надир) до верхней точки (зенит). Если охват будет меньше - такая панорама уже не будет сферической.
Для того, чтобы снять сферическую панораму, в теории сгодится даже самый простой компактный фотоаппарат или современный смартфон, но желательно иметь хороший фотоаппарат с режимом ручных настроек выдержки, диафрагмы и чувствительности, штатив и специальную панорамную головку, которая позволяет вращать и наклонять фотоаппарат вокруг нодальной точки (точка пересечения лучей в объективе).
Эта точка находится приблизительно в центральной части объектива (если точнее, то там, где находится диафрагма), но ее расположение у каждого объектива индивидуально.
У объективов с выдвигающимся далеко вперед линзоблоком (в народе такой конструктив имеет название "хобот") при изменении фокусного расстояния и у объективов с выраженным эффектом "focus breathing" (это явление, когда при наведении объектива на разные дистанции меняется угол его обзора), положение нодальной точки меняется для разных положений линзоблока.
Spore – игровая песочница с безграничным потенциалом
Игровая индустрия в погоне за прибылью основной упор делает на проекты, созданные в хорошо продающемся жанре, очень часто оставляя другие, особенно экспериментальные, за бортом. Но надо признать, что в этом правиле бывали и исключения, когда даже жадные капиталисты вроде Electronic Arts спонсировали создание такого самородка, как Spore. Правда при этом ЕА сама же его и угробила, но об этом чуть позже. А пока мне хотелось бы начать свой рассказ про это уникальное творение, созданное по инициативе одного из столпов игровой индустрии – Уилла Райта – и его студии Maxis.
Spore – это игровая песочница или симулятор бога, который в интерактивной форме не только покажет процесс эволюции различных форм жизни (пусть и с множеством условностей и упрощений), но и позволит геймеру принять участие в их развитии. Игра хорошо подойдет как взрослым, так и детям и сможет увлечь не только необычным сеттингом, но и интересным геймплеем.
События начинаются с того, что вы, будучи простым микроорганизмом, попадаете на планету с обломками метеорита и теперь должны развиваться, чтобы постепенно, шаг за шагом стать венцом эволюции, цивилизацией, что сможет покорить галактику!
Несмотря на выход в далёком 2008 году, Spore отлично сохранилась, даря удовольствие без каких-либо скидок на возраст и в наши дни, но несколько модификаций всё-таки могут улучшить и без того отличную игру, позволяя возвращаться к проекту в 2024 году с максимальным удовольствием. В конце статьи я расскажу об этом подробнее, а также приложу сборку для самостоятельного ознакомления.
Ответ на «Коротко о том, почему Rust лучше C/C++» или меня не бомбит
Собственно ответка на указанную статью.
Решил ответить на претензии автора. А так же рассказать, почему С\С++ именно такой какой есть. Почему приняты такие решения при его создании и развитии. Указать на явные недостатки Rust'а и его инфраструктуры. Язык не может существовать сам по себе. Он должен иметь не только токсичное сообщество, но и быть нужным работодателю.
Еще один электронный конструктор
Предлагаю вашему вниманию еще один вариант электронного конструктора, несложного для самостоятельного изготовления. Хотелось сделать нечто похожее на «Знаток» по степени наглядности, но с расширенными возможностями. В частности, в «Знатоке» очень не хватало возможности подключать микросхемы.
Попытка прямого копирования «Знатока» ни к чему дельному не привела, поскольку так и не удалось самостоятельно изготовить «пуговичные» разъемы. Вместо этого было решено использовать соединения на основе обычных винтов.
Ноутбуки с RISC-V-процессорами всё доступнее: Китай предлагает модель за $300. Что это за девайс?
Гаджеты с RISC-V-процессорами уже не редкость — некоторые компании, в основном из Китая, выпускают интересные модели. Теперь такого рода устройств стало ещё больше — китайская компания SpacemiT выпустила ноутбук, который базируется на 8-ядерном RISC-V-чипе K1. Есть и другие предложения, подробности — под катом.
RAG (Retrieval Augmented Generation) — простое и понятное объяснение
Краткое и понятное описание подхода RAG (Retrieval Augmented Generation) при работе с большими языковыми моделями.
Век поиска кратчайшего решения задачи о кратчайшем пути
TL;DR Очень подробный разбор алгоритмов решения задачи о кратчайшем пути от классики до двунаправленного А* и ALT с кодом и примерами на OSM
Люди пытались найти более быстрые способы передвижения на протяжении всей своей истории. Появление качественной дорожной системы в римской империи в своё время привело к её расцвету, но со временем выяснилось, что и в продуманных дорожных системах бывают забавные изъяны, как например в небезызвестной задаче о кёнигсбергских мостах, считающейся отправной точкой возникновения теории графов. Неудивительно и то, что с развитием вычислительной техники логистические задачи стали одними из первых, над которыми трудились первопроходцы компьютерных наук. Задача о кратчайшем пути -- одна из них, звучит достаточно просто: есть несколько городов и дорог, соединяющих пару городов между собой, мы хотим попасть из города А в город Б пройдя при этом минимальное расстояние. Первый системный подход к этой задаче был описан в работе Эгервари в 1931г., спустя 25 лет Эдсгер Дейкстра придумал алгоритм, который сейчас является частью любого уважающего себя базового курса алгоритмов на графах. На нём же, будем честны, заканчиваются знания о кратчайших путях у большинства профессиональных разработчиков, ибо сценариев, где реализации с википедии/stackoverflow будет не хватать, крайне мало.
Может показаться, что на самом деле просто не было существенного прогресса с 60х годов, так как Дейкстра предоставил почти асимптотически оптимальный алгоритм решения задачи. На самом деле нет, прогресс был и придумали много чего интересного, хоть и действительно с того времени фокус сместился на другие задачи. Приглашаю под кат если интересно узнать что такого напридумывали, что используется в современных логистических системах, почему меня огорчает отсутствие учёта флага единства в HOMM3 при расчёте пути, ну и наконец, что за мужики на картинке выше рядом с Дейкстрой?
Алгоритм пересечения полигонов
В этом посте мы разработаем алгоритм, позволяющий вычислять пересечение выпуклых полигонов. Так же на ряду с проверкой точки на принадлежность полигону мы рассмотрим метод пересечения выровненных по осям прямоугольников и функцию пересечения отрезков.
Что учесть если используешь SignalR и захочешь масштабировать .Net-приложение?
Все мы любим «магию», которую дает нам такой инструмент как SignalR и с удовольствием внедряем это в проекты.
Конечно, кто откажется от динамики, мгновенного отклика на действия и мигающих иконочек с подписью «что же делает система в данный момент и не стоит ли перезагрузить страницу чтобы клацнуть ее еще раз?» ?
Однако и тут есть пара подводных камней, с которым я с командой столкнулся на продакшне...
Создание простой Roblox игры без особого знания Lua
Если вы когда-либо мечтали создать свою собственную игру в Roblox, но не знаете с чего начать, то эта статья для вас. В этом руководстве я покажу вам, как создать игру в Roblox без базового знания программирования.
Прежде чем мы начнем, вам нужно зарегистрироваться на сайте roblox.com и загрузить Roblox Studio - инструмент, который позволяет создавать игры на платформе Roblox. После установки запустите программу и выберите пустой шаблон для создания новой игры.
На практике пробуем KAN – принципиально новую архитектуру нейросетей
На днях ученые из MIT показали альтернативу многослойному перцептрону (MLP). MLP с самого момента изобретения глубокого обучения лежит в основе всех нейросетей, какими мы их знаем сегодня. На его идее в том числе построены большие языковые модели и системы компьютерного зрения.
Однако теперь все может измениться. В KAN (Kolmogorov-Arnold Networks) исследователи реализовали перемещение функций активации с нейронов на ребра нейросети, и такой подход показал блестящие результаты.
Как потреблять API с ограничением по RPS в .NET приложениях
Однажды каждый C# программист получает на работе задачу по разработке интеграции с внешней системой, где ограничена максимальная частота запросов в секунду.
Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте.
Но теперь на Хабре есть эта статья, которая научит отправлять запросы из
HttpClient
так, чтобы не получать 429 Too Many Requests
.Алгоритм деления 2W-разрядных чисел с использованием операций с числами разрядностью W
На примере 32-битных целых чисел рассматривается масштабируемый алгоритм деления, использующий числа с двукратно меньшей (16 бит) разрядностью. Для иллюстрации работоспособности алгоритма приведен код тестового приложения на языке С++.
Фундамент AI: обратное распространение ошибки простыми словами
Что если бы я вам сказал, что без понимания того, что такое backpropagation (обратное распространение ошибки), вы никогда не сможете использовать AI эффективно? Тогда я бы, конечно, соврал. Знать такие детали не требуется для использования AI в прикладных задачах, но, тем не менее, это базовый фундамент ML/AI, и понимать, как все устроено, полезно, ну или как минимум, интересно.
Питер Норвиг: автор лучшего в мире учебника по ИИ
Питер Норвиг (Peter Norvig) — выдающийся учёный, один из отцов современной ИИ-разработки. После сингулярности ИИ точно оставит его в живых в знак благодарности.
Норвиг не только хороший программист, но и теоретик программирования, учёный и преподаватель, в длинном резюме перечислено 58 статей, а количество цитирований на сегодняшний день составляет 78 830.
Основное признание Норвиг получил как автор учебника «Искусственный интеллект: современный подход», который в наше время считается самым популярным учебником по ИИ в вузах. Эта фундаментальная работа претерпела уже четыре переиздания.
Как сделать pruning, чтобы потом не плакать
Обрезка нейросетей или же, если вникать в термины, pruning — то, что помогает уменьшить размер нашей модели без потери ее эффективности. Да, это далеко не новинка — в стэнфордских лекциях еще в 2017 году об этом говорили!
Идея проста: мы просто убираем из модели все, что нам не нужно. Как в магазине, когда решил экономить: если в корзине лежат лишние товары, то почему бы их не убрать? Так и здесь — мы убираем избыточные нейроны и связи, которые только занимают место, но не приносят особой пользы.
Принцип обрезки можно применять в разных ситуациях. Например, если у нас есть модель, которая обучена для распознавания ста классов объектов, а нам на самом деле нужно только десять, то почему бы не убрать те девяносто лишних? Это позволит нам сделать модель поменьше, но не менее эффективной. А если мы создаем модель с нуля, то обрезка может помочь нам сразу сделать ее компактнее и эффективнее.
Короче, pruning — это для тех, кто хочет сделать свои модели легче и быстрее без потери качества.
Кто реально угрожает C++ (нет, Rust, не ты)
Привет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.
Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?
Похоже, я придумал свой алгоритм поиска кратчайшего пути (upd: меня опередили...)
Всем привет! Я реализовал, похоже, собственный алгоритм поиска кратчайшего пути с отрицательными ребрами графа.
Почему собственный? Я искал подобное решение, но не нашел, возможно, оно уже было реализовано, просто плохо поискал. Жду Нобелевскую премию =)
Додумался я до него путем модификации классического Дейкстры. Прошу адекватно отнестись к содержимому, ибо это моя первая статья, и, возможно, я ничего не придумывал и, вообще, этот алгоритм не работает вовсе (но по многочисленным тестам он работает правильно).
Решение проблемы дымки на изображениях с использованием .NET: Простой и эффективный подход
Простое .NET решение для четких фото: избавьтесь от дымки или тумана на изображениях всего за несколько шагов!
Information
- Rating
- 5,152-nd
- Location
- Паттая, Чон Бури, Таиланд
- Date of birth
- Registered
- Activity