Как стать автором
Обновить
4
0
Роман @svistkovr

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

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

Как посчитать количество звёзд на фото?

Время на прочтение 4 мин
Количество просмотров 5.9K

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

Узнать!
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 12

Ускоряем pow

Время на прочтение 7 мин
Количество просмотров 26K

В этой статье я хочу поделиться несколькими нестандартными алгоритмами для быстрого возведения числа в степень, а также продемонстрировать их реализацию и сравнить их быстродействие в C++, C# и Java.

Сравнить точность алгоритмов можно прямо сейчас на этой странице.

В конце будет краткая памятка по тому, где и когда лучше применять какой из методов. При правильном выборе можно добиться увеличения скорости вычислений в 5 раз при погрешности ~1%, а иногда и вовсе без неё.

Ускорь мои степени!
Всего голосов 52: ↑52 и ↓0 +52
Комментарии 40

Проверка числа на простоту

Время на прочтение 2 мин
Количество просмотров 10K

Простых чисел бесконечное множество. В интернете в свободном доступе можно найти таблицы простых чисел до 21 000 000. Существующие методы проверки чисел на простоту очень сложны, не универсальны, поэтому мной разработан еще один способ проверки числа на простоту для чисел больше 10.

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

Пусть А – натуральное число, тогда

A=X*Y,

где Х и Y – натуральные числа.

Мы знаем, что простые числа не четные, и все числа, заканчивающиеся на 5 и 0 кратны пяти, значит, простые числа всегда заканчиваются на 1, 3, 7, 9. Выберем из таблицы умножения примеры, в которых последняя цифра произведения равна 1 или 3 или 7 или 9 (смотрим рисунок).

Читать далее
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 26

Программирование троичного вычислителя: играем с эмулятором

Время на прочтение 6 мин
Количество просмотров 9.1K

Как я и говорил, я потихоньку строю очень простой, но функциональный и при этом бескомпромиссно троичный вычислитель, основанный на сбалансированной троичной системе счисления. В этой статье я описываю эмулятор моего вычислителя, который мне поможет в отладке железа. Если вам интересно, не стесняйтесь писать под него программы, я их обязательно запущу на настоящем железе как только оно будет готово! Это очень просто, Триадор понимает обычный очень примитивный императивный язык, схожий с ассемблером или brainfuck :)



— Жуткий кошмар! Нули и единицы повсюду. И кажется, я видел двойку.
— Это просто сон, Бендер. Двоек не бывает.

И ведь это не шутка, в моём троичном вычислителе действительно нет двоек! Следите за мини-сериалом о постройке моего вычислителя на ютубе, а пока железо зреет, давайте разбираться с архитектурой и писать под неё первые программы!

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

Как наблюдать Луну и планеты

Время на прочтение 12 мин
Количество просмотров 27K
Наблюдение за Луной и планетами очень интересно. Наблюдению планет не мешает световая засветка и их можно наблюдать прям из города. Для наблюдения планет не требуются окуляры с большим полем зрения. Даже недорогие окуляры Плёссла могут обеспечить продуктивный результат визуальных наблюдений.

image

Юпитер, Сатурн и Марс являются, пожалуй, самыми доступными планетами, для астрономических наблюдений. Я до сих пор помню трепет и удивление от первого взгляда на Сатурн, который я увидел более 20 лет назад, в 80мм «Большом Школьном Рефракторе». Однако часто поступают сообщения от начинающих любителей, о первых наблюдениях, в частности Юпитера и Марса, в которых присутствует доля разочарования. «Я просто вижу шар света без деталей», или «Я вижу маленький диск, на котором не могу полностью сфокусироваться». «Мой телескоп неисправен?» Именно дня начинающих любителей астрономии может быть полезной данная статья. В ней подробно описываются тонкости и особенности визуальных наблюдений планет Солнечной системы.
Читать дальше →
Всего голосов 50: ↑47 и ↓3 +44
Комментарии 49

Цикл уроков по SDL 2.0: урок 5 — Нарезка листа спрайтов

Время на прочтение 5 мин
Количество просмотров 4.5K
image

От переводчика:

Это продолжение серии переводов туториалов от Twinklebear, в оригинале доступных тут. Перевод отчасти вольный и может содержать незначительные поправки или дополнения от переводчика. Перевод первых двух уроков — за авторством InvalidPointer, а третьего и четвертого — за k1-801.


Список уроков:


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

Android Camera2 API от чайника

Время на прочтение 32 мин
Количество просмотров 51K


Не так давно я возился со своей роботележкой, пытаясь водрузить на нее ANDROID смартфон. Моей, то есть его задачей, было сделать тележку эволюционно продвинутой. Чтобы она, так сказать, чувствовала мир его сенсорами, смотрела его глазом (камерой), слышала микрофоном и ругалась по громкой связи. Ресурсов AVR, понятное дело, на это уже не хватало и поэтому бывший на телеге микроконтроллер переехал на уровень ниже, куда-то в район спинного мозга управлять моторчиками и разными безусловными рефлексами.

Но странное дело, когда я начал писать приложение для смартфона, нехорошая IDE ANDROID STUDIO стала постоянно зачеркивать мой код и называть его устаревшим.

camera = Camera.open();

Особенно, как вы видите, в тех частях, где я пытался работать с камерой. Это было очень обидно, потому что я прочитал в интернете и усвоил множество уроков работы с андроидом и камерой здесь, здесь, здесь и даже здесь. Там ничего не зачеркивалось. И называлось заурядно Camera API. Все там было просто и логично. Но Google упрямо толкал меня к какому-то Сamera2 API.

Я туда посмотрел и просто опупел от количества разных коллбэков, билдеров, хэндлеров и луперов на каждую строчку демонстрационного кода. Было совершенно непонятно с какой стороны к этому подступиться, если ты обычный любитель, а не android developer. Причем в сети даже на сегодня статей на тему Сamera2 API чуть, хотя вышло это обновление вроде как, аж четыре года назад. Но всё что я нашел, это статью в Хакере в 2016, пост в трех частях от украинских братьев того же года, двойной пост на Хабре в 2017 и статью Understanding Camera2 от японского мегагика Томоаки Имаи. И это я ещё имею в виду какую-то структурированную и оформленную информацию, а не раскиданные в интернете обрывки кода типа, «смотрите, как я могу» и простыни в стиле, «посмотрите код плиз, у меня ничего не работает».

А теперь, если вам всё ещё интересно зачем мне потребовалось пилить свой пост на эту тему
уже в 2019, то добро пожаловать под кат.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 21

Установка sdl2 на основные дистрибутивы

Время на прочтение 3 мин
Количество просмотров 27K
Здравствуй, Хабр. Недавно наткнулся на новый цикл статей по sdl2, но без процедуры установки. Вроде ничего сложного, но если интересно, то давайте вместе пройдемся по граблям, которые могут нас ожидать. Я проведу установку для xcode10 на macOS 10.14.5, code::blocks на Ubuntu 18.04 и Visual Studio 2019 Windows 10. Можно, конечно, было бы использовать clion. Одна ide на всех системах, но мне по какой-то причине не нравится их продукт. Ничего личного, просто кодинг.
Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Комментарии 5

Уроки по SDL 2: Урок 1 — привет, SDL 2

Время на прочтение 3 мин
Количество просмотров 37K
Всем привет! Решил вот посмотреть на SDL 2, но на русском ничего толкового не нашел. Решил написать свое, питаясь вдохновением отсюда.

Установку SDL 2 я пропущу, а начну сразу с написания программ, итак:

Ваше первое окно



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

OS1: примитивное ядро на Rust для x86. Часть 2. VGA, GDT, IDT

Время на прочтение 15 мин
Количество просмотров 9K

Первая часть


Первая статья еще не успела остыть, а я решил не держать вас в интриге и написать продолжение.


Итак, в предыдущей статье мы поговорили о линковке, загрузке файла ядра и первичной инициализации. Я дал несколько полезных ссылок, рассказал, как размещается загруженное ядро в памяти, как соотносятся виртуальные и физические адреса при загрузке, а так же как включить поддержку механизма страниц. В последнюю очередь управление перешло в функцию kmain моего ядра, написанного на Rust. Пришло время двигаться дальше и узнать, насколько глубока кроличья нора!


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

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

Пишем операционную систему на Rust. Реализация страничной памяти (новый вариант)

Время на прочтение 29 мин
Количество просмотров 7.6K
В этой статье разберёмся, как реализовать поддержку страничной памяти в нашем ядре. Сначала изучим различные методы, чтобы фреймы физической таблицы страниц стали доступны ядру, и обсудим их преимущества и недостатки. Затем реализуем функцию преобразования адресов и функцию создания нового сопоставления.

Этот цикл статей опубликован выложен на GitHub. Если у вас какие-то вопросы или проблемы, открывайте там соответствующий тикет. Все исходники для статьи лежат в этой ветке.

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

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

Цикл уроков по SDL 2.0: урок 3 — Библиотеки-расширения SDL

Время на прочтение 6 мин
Количество просмотров 16K
SDL2

От переводчика:

Я продолжаю заброшенную серию переводов туториалов от Twinklebear, в оригинале доступных тут, с разрешения переводчика предыдущих уроков серии InvalidPointer. Первые два урока серии переводов в списке — за его авторством, 5 и 6 перевёл AndrewChe. Перевод отчасти вольный и может содержать незначительные поправки или дополнения от переводчика.

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

Йода из Кремниевой долины

Время на прочтение 9 мин
Количество просмотров 45K

Дональд Кнут, мастер алгоритмов, размышляет над 50 годами работы над своим главным творением, книгой «Искусство программирования», которую не прекращает дополнять



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

Уже полвека стэнфордский специалист по информатике Дональд Кнут, немного напоминающий Йоду – хотя ростом он 193 см и носит очки – занимает доминирующее положение духовного учителя в области алгоритмов.
Всего голосов 89: ↑86 и ↓3 +83
Комментарии 53

Эксперименты с нейроинтерфейсами на JavaScript

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


Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 4

tig — улучшаем продуктивность работы с git

Время на прочтение 3 мин
Количество просмотров 43K

Всем привет! Хочу рассказать о консольной утилите, которая значительно увеличила мою продуктивность работы с Git, и, надеюсь, ускорит и вашу также. Называется она tig и была написана канадским программистом Джонасом Фонсека (Jonas Fonseca) ещё в далёком 2006-м году, но по настоящий день она активно развивается и поддерживается в великолепном состоянии. Я хочу показать её функционал (внимание, есть относительно тяжелые gif-ки внутри) и поделиться самыми удобными способами использования.


Читать дальше →
Всего голосов 107: ↑105 и ↓2 +103
Комментарии 47

Брет Виктор: Несколько слов о Дугласе Энгельбарте

Время на прочтение 4 мин
Количество просмотров 5.2K
image
Люди часто сравнивают работу Энгельбарта с современными технологиями, но это неправильно. Забудьте про сегодня, просто подумайте о том, что он делал, с точки зрения его целей.

Дуглас Энгельбарт умер сегодня (July 3, 2013). Его труды всегда было очень сложно интерпретировать и объяснять.

Многие эксперты, к сожалению, часто упускают суть его работы, потому что они рассматривают всё как техническую задачу. Энгельбарт посвятил свою жизнь проблемам человечества, технологии были лишь частью их решения. Когда я читаю интервью экспертов с Энгельбартом, я представляю, как они брали бы интервью у Джорджа Оруэлла, задавая глубокие вопросы про его пишущую машинку.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 22

Муравейник или крепость? Строю дом по цене квартиры. 3 часть. Электроснабжение

Время на прочтение 8 мин
Количество просмотров 29K
Часть 1. Строительство
Часть 2. Отопление
Часть 4. Комфорт дома и гаджеты.

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

Всего голосов 55: ↑48 и ↓7 +41
Комментарии 210

File management done wrong — Часть 1: Родом из 90х

Время на прочтение 5 мин
Количество просмотров 10K

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


Посмотрите на этот скриншот и подумайте что изменилось за последние 20 лет.


image


Основные вводные утверждения:


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

Мейнстримные файловые менеджеры не могут этого, вообще они сосут по всем 3 пунктам. Вот почему:


  1. Дизайнерам нет дела до того что они дизайнят, они не пользуются продуктом. Они просто делают свою работу.
  2. Их боссам нет дела до дизайна. А должно быть?
  3. Обычные пользователи не замечают "мелкие" недостатки. Они просто пользуются.
Читать дальше →
Всего голосов 61: ↑31 и ↓30 +1
Комментарии 165

Как писать на Objective-C в 2018 году. Часть 1

Время на прочтение 10 мин
Количество просмотров 27K

Большинство iOS-проектов частично или полностью переходят на Swift. Swift — замечательный язык, и за ним будущее разработки под iOS. Но язык нераздельно связан с инструментарием, а в инструментарии Swift есть недостатки.


В компиляторе Swift по-прежнему находятся баги, которые приводят к его падению или генерации неправильного кода. У Swift нет стабильного ABI. И, что очень важно, проекты на Swift собираются слишком долго.


В связи с этим существующим проектам может быть выгоднее продолжать разработку на Objective-C. А Objective-C уже не тот, что был раньше!


В этом цикле статей мы покажем полезные возможности и улучшения Objective-C, с которыми писать код становится намного приятнее. Каждый, кто пишет на Objective-C, найдет для себя что-нибудь интересное.


Читать дальше →
Всего голосов 37: ↑34 и ↓3 +31
Комментарии 49

Нейросеть для разработчиков C++

Время на прочтение 7 мин
Количество просмотров 49K
Всем привет.

Написал библиотеку для обучения нейронной сети. Кому интересно, прошу.
Читать дальше →
Всего голосов 54: ↑51 и ↓3 +48
Комментарии 30

Информация

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