All streams
Search
Write a publication
Pull to refresh
152
0
Григорий @bfDeveloper

Программист на C++, D, Brainfuck

Send message
Это охренительно круто! Сходу понятно не всё, но интерполяция это интересно.
Вопрос не совсем по теме, но давно интересовал. А следует ли из гладкости однозначность представления каждого поворота? В общем случае точно нет, а что здесь? В углах 360 == 0, что иногда неудобно. Имеется в виду, например, такая задача: есть анимация вращения колеса, промежуточные кадры интерполируются по клбчевым, но при переходе через 360 мы интерполируем углы 359 и 0, получая резкий скачок на одном кадре. Понятно, что это легко решается на программном уровне, приводя всё в один отрезок, по сути оперируя углом по модулю 360, но всё же решается ли эта проблема более элегантно?
Ваш метод примеряется, только не с кадрами с разных телескопов, а с серией с одного. То есть берём 1000 кадров с одного и того же телескопа в примерно одинаковых условиях и стекируем. Все качественные любительские снимки так и сделаны. Поднять разрешающую способность стекирование позволяет очень слабо, скорее точнее приблизиться к теоретическому максимум телескопа, зато динамический диапазон поднимает многократно. Да и шум снижает. Это позволяет разглядывать очень тусклые объекты.
Хотя для повышения разрешения тоже применяется. Можете погуглить «вебкаминг планет», когда из видео с обычной вебкамеры получают качественные снимки Юпитера, Сатурна, Марса. И там снимают видео, потому что нужны тысячи и тысячи кадров.
P.S. Посмотрите на астрофоруме, там, кажется, кооперировались для совместного стекинга.
материнские платы чаще всего не поддерживают режим AHCI, а значит, режим «профилактики и самообслуживания» (TRIM) не будет работать.

Не правда, не укрепляйте мифы. Наличие AHCI вовсе не обязательно. TRIM — комманда ATA интерфейса, поэтому она может быть переслана контроллером даже в IDE режиме, даже контроллером, который не умеет AHCI. Я заводил TRIM на Win7 на материнке с мостом ICH9(не R). Да, это медленнее, но всёравно гораздо лучше HDD.
Справедливости ради отмечу, что под линуксом GDC действительно сгенерировал 10 мегабайт. Но gdc сейчас во многом отстаёт, вон и версия языка только 2.066.
Свежий LDC сгенерировал 645 килобайт. Много, но я не пытался ничего ужимать. Думаю, что тут как и у Rust пожмётся выкидыванием лишнего.
Не надо бросаться камнями в D, не проверив на хоть сколько-то актуальной версии. На Win7 64-bit с DMD 2.070.0 helloworld занимает 200 килобайт. Без ключей, без конфигов. Если заморочиться размером, то можно не отставать от C. Вот, например, helloworld в 438 байт: http://forum.dlang.org/thread/qcbicxrtmjmwiljsyhdf@forum.dlang.org
с lvalue gcc говорит, что
error: call of overloaded 'bar(int&)' is ambiguous
bar(a);
^

Потому что обе сигнатуры — одно и то же для перегрузок. То есть всё работает, но ошибка совсем не информативна.
P.S. Лучше воспользоваться не =delete, а static_assert (false, «lvalue is not supported»);
Божественно. Особенно радует, что это не экран шаблонного кода, а вполне вменяемые 2 строки. Удачно отделяется концепт с условием от определения самого метода. Всё таки даже без концептов С++11 силён.
Долго соображал над конструкцией typename = std::enable_if_t<...>. Я правильно понял, что это просто безымянный аргумент шаблона для using? А то на первый взгляд выглядит как специальный синтаксис.
С тем количеством динамики, которое заложено в JS и, соответственно, в TS, получится медленнее, чем V8. Не вижу потенциала для ускорения. V8 и так компилит всё, что возможно. Можно попробовать с потерей динамики, то есть в рамках абстракций TS, но не уверен, что это будет достаточно понятно, гибко и быстро.
Вот возможность писать плагины к ноде на D не помешала бы. Это и сейчас возможно, просто не удобно, много рутины на стыке C++ и D.
Вам не верят те, кто тоже компилировал свои проекты и сравнивал. Для веба действительно не так заметно, там больше libevent работает, но имеет смысл проводить более чистый эксперимент. В реальном коде будет что оптимизировать, и тогда выбор компилятора будет вносить существенный вклад.
И всё-таки хочется конкретных опций компилятора (inline, O3, nobounds-check вкл или выкл).
P.S. минус не мой, не подумайте.
Меня тоже вначале удивляло процедурно-функциональное API. Но если понять и принять идею, то фобос очень удобен. Особенно это касается диапазонов (ranges), которые однозначно лучше всего, что я видел в других языках. Может быть поначалу и непонятно, зато отличное соотношение удобство/производительность.
И кто же тут нытик? Вы осуждаете человека, рискующего жизнью, и сами ноете из-за одного минуса.
Справедливости ради, сейчас все используют ручку, потому что карандаш это небезопасно.Графитовая пыль проводит ток и может оседать в невероятных местах. Так что не зря разрабатывали ручку.
P.S. kekekeks опередил
Простите, а о чём пост? Космонавтика — тема гиктаймса. Просто ссылка на поставщика железок, работающих на марсе? Два абзаца текста, один из которых копипаст с вики, второй про рекламируемую технологию. Очень нехорошо эксплуатировать марсаход для привлечения людей в абсолютно пустую статью.
20-и кратный бинокль это перебор. В качестве обзорного бинокля используют 7 или 10 крат. Даже 10х сильно дрожит в руках и наблюдать сложновато. Важнее увеличения апертура, а точнее диаметр зрачка. Если взять бинокль 20х с апертурой 20, то вы вообще ничего не увидите, так как область обзора ничтожно мала, а линза 20мм собирает слишком мало света. Самое хорошее — 7х или 10х с апертурой 50. Шире 50/7 = 7 миллиметров зрачок глаза нигде не откроется, так что светосила будет максимальная. У меня 10х50, можно различить спутники Юпитера, красиво выглядит луна. Так же это хороший обзорный бинокль в пару к телескопу.
Спасибо за статью, позволю себе немного покритиковать код.
#define LN_ONE          16  // 00010000 клетка закрашена, но линия ч/з нее не проходит. для клеток с числом 1

Перестаньте объявлять константы дефайнами. В С++ есть const, который нормально живёт в неймспейсах, имеет нормальные области видимости и права доступа и вообще является хорошим стилем против плохого препроцессора.
Флаги лучше объявлять через операторы побитовго сдвига или через литералы
Разнообразные объединения флагов лучше писать через побитовое или, например:
const size_t TOP_LEFT = TOP | LEFT;

У вас случай посложнее, но всё равно прослеживается логика. Не зря же написаны эти комментарии с бинарным представлением. Гораздо лучше чтобы вместо объяснений был код с подобным уровнем пояснений.
Самые обыкновенные. 50 км проходит почти любой человек с первого раза, прогрессировать не так сложно. А вот супербатарейки у людей из рекордов: https://ru.wikipedia.org/wiki/Суточный_бег
Налегке с бутылкой воды и минимумом еды. По городу, а не пересечёнке, чтобы можно было в любой момент сойти с маршрута, магазины на всякий случай и тд. По факту больше 74 не ходил, но очень хочется в этом году добиться 100км за сутки.
Очень полезная фича. По Москве очень часто непонятно, как перейти железную дорогу, ТТК, МКАД и тд. Всегда, когда планировал длительные прогулки (50-80 км) это было основной головной болью. Возможно уже на этих выходных попробую на маршруте километров в 50.
пишите в саппорт, потом просите кого-то постарше. Мне отключили в мобильном, и при раздаче интернета с него в том числе.
http://code.dlang.org/packages/libhttp2
Модуль в активной разработке, сейчас идёт его интеграция в vibe.d.
Так что прямо сейчас http2 нет, но скоро будет.

Information

Rating
4,503-rd
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity