1) эх ты, я хотел, чтобы они(neurocore и автор) сами нарыли выход из своих ошибочных заблуждений, в которых слишком уверены.
2) свапать необязательно.
только если критически важно сэкономить 0.5 деления.
3) ненамного эффективнее.
в цикле divisionGCD выполняется 3 сравнения вместо 1ого в gcd, но, поскольку, деление — долгая операция, то выигрыш gcd будет несколько процентов. зато по количеству текстового кода — на 1000%, а машинного — на 200%.
improvedDivisionGCD может быть эффективнее.
давайте так, весь код для бенчмарка в статье и комменте есть, соберите файлик, запустите с оптимизациями, и затем поделитесь с нами практическими выводами.
у меня на Винде нет последнего Swift-a.
никакого нет.
а в последних обычно лучше оптимизации.
Set, Stack, Deque, который вы показали — "ну, нахер"
mutable: есть immutable, который же и shared, передаете его куда-нибудь, RC надо поменять (addref/release), но у immutable это надо делать через извращения с cast-ами. с mutable из С++ это делается красиво и понятно.
версионность модулей на уровне импортов
import core.memory!2.0: memcpy; // юзаешь новые функции и "того" же модуля другой версии. нет головняка с std.experimental, который в будущем уйдет. нет name hell. да, фобос должен стать выборочным и скачиваемым. что делать с shared RT, когда все скачиваемо по отдельности?
2 лямбды одной стрелочкой все равно криво. лучше 2 лямбды 2 стрелочками. так более явно видно
() => { float acc;… return () => acc; } // я возвращаю лямбду из лямбды
fiber ну никак не помогает с async/await (слышал про vibe.d)
про бред с импортами: неочевидные правила перегрузок методов https://dlang.org/articles/hijack.html
есть A.fn( long ) и B.fn( real ), включаешь их в модуль C, в котором есть еще fn( string ) и на С.main() { fn( 123 ) } — ошибка "не могу 123 передать как стринг". WTF? вон же методы, хочешь long, хочешь real, "да тут ГТО можно сдавать!". я зря их писал что ли? странно это.
ну, и некоторые пишут код так, что в каждом методе импортируют все используемые сущности из других модулей по отдельности — куча импортов в методе, за которыми леса не видно.
импорт в шапке, как в C#, на весь остальной модуль, просто и понятно.
на этом закрою дискуссию, добавить больше нечего.
я юзаю D, но у меня есть к нему претензии.
юзал бы Go/Rust, к ним бы тоже были претензии.
а C#/Kotlin нра без претензий :)
https://youtu.be/TkNep5zHWNw?t=1489
о shared выступающий тоже упомянул
для shared переменных можно вызывать только shared методы, а это тупо удваивает количество кода, и никто их не пишет, т.е. от shared только головняк
еще
инициализация по умолчанию для всего "все нули", но для плавающих точек и символов NaN и '\xFF' соотвественно, но оба они не false. см ниже про bool
bool это int1 со всеми вытекающими
вместе с ним странный int promotion
enum Week: int { Mon,… Sun };
auto fn( bool v ) { }
auto fn( long v ) { }
fn( Week.Mon ); // fn( false ). WTF?
нет string interpolation; именованных параметров; встроенных кортежей (те что из либки не поддерживают деконструкцию); встроенных null-типов как int? с полезными к ним операторами !, ?., ??; нет стандартных асинков; ctRegex иногда дохнет вместе с компилятором, потому что ему не хватает 174GB памяти
про асинки. если асинки будут на goroutine-ах, то из них нельзя обращаться к глобальным переменным, потому что они лежат в TLS (если не shared). спорное решение пихать их в TLS
лямбда с { return } возвращает новую лямбду, а не просто значение
() => { float acc;… return acc; } возвращает float delegate(), а не просто вычисленный float. WTF?
как вернуть из непростой лямбды простое значение? ХЗ
в каждую функцию засовывают десяток импортов. потому что в перегружнных функциях рассматриваются вообще только локальные определения. опять головняк
нет версионности модулей, потому изобретают experimental модули, которые ты можешь заюзать, но в след релизе они могут уйти куда-то еще и импорты надо переделывать
в стандартной либке нет ни Set, ни Stack, ни Deque. есть массив и хэш-словарь. да, из них можно сделать нужное с ошибками и матами, но сразу их выдать нельзя что ли?
с nogc/betterC превращается в тыкву, потому что для nogc вообще ничего нет, кроме шаблонов: ни массивов/строк, ни словарей. с чем работать шаблонам и range-м?
есть const & immutable, но нет mutable. бредят RefCount, но как его делать?
в винде нельзя заюзать рантайм как дллку стандартным путем. если приложение состоит из EXE и DLL, то в приложении 2 рантайма и 2 помойщика. помойщиков можно смерджить стандартным же костылем. но в чем причина не костылить, а скомпилить shared runtime?
консервативный помойщик, который можно заменить доп.шагами в точный. но и он сканит весь data seg и иногда вылетает по нехватке памяти, потому что любой лонг в нем считает за возможный указатель. хотелось бы, чтобы сканил только реальные указатели, инфа о типах есть же
нет номеров ошибок, которые можно было бы погуглить, потому что текст ошибок меняется, и не всегда понятно, в чем именно ошибка
ошибки с шаблонами и mixin-ами выводят простыни текста, попробуй их пойми
диктатор не переводит DMD на LLVM, а потому его не колышат ни interop c С++, ни динамическая компиляция и встроенные скрипты, ни WASM
http://pixman.org/ с ассемблерными оптимизациями под ARMv6/NEON… даже если не скомпиляется, можно частично выдрать полезный код
Вроде как, Малинка поддерживает OpenGL
из вики > At least the VideoCoreIV-AG100-R found e.g. in the Raspberry Pi 1, 2 and 3, is documented to fully support OpenGL ES 2.0 and OpenVG 1.1. https://eltechs.com/how-to-enable-opengl-on-raspberry-pi/
Власти провинции Фрисландия в Нидерландах были вынуждены демонтировать музыкальное покрытие автомобильной дороги, установленное в местной деревне Йелсум. Поводом для этого стали массовые протесты местных жителей, которых мелодия поющей дороги, по их словам, сводила с ума.
Этот шум местные жители были вынуждены слушать круглосуточно. Забавно, что по соседству с деревней Йелсум расположена авиабаза Королевских ВВС Нидерландов, однако истребители летают лишь до 17:00, а какофония от дороги не прекращается даже ночью. По словам несчастных голландцев, постоянный шум мешал им спать и буквально сводил с ума. В итоге власти демонтировали поющую дорогу, которая не пролежала и четырёх дней.
если будете пользоваться Gram, то Telegram-у нужен будет ваш Passport, потому что Знай своего клиента, иначе Дуров пойдет за Винником.
В компании обещают, что Telegram не будет иметь доступа к личным данным пользователей. Они будут переходить непосредственно к получателю.
Меня больше волнует в каком виде Telegram будет раздавать наши паспорта: текстом "да, это он!" (т.е. вручную подтверждается личность с походом в какое-нибудь почтовое отделение) или солянка из скана, телефона и мыла… Потому что гладиолус GDPR. И я не хочу, чтобы у видео-салона "Рога и копыта" (или тот же "Fhloston Paradise" из были мои паспортные данные с фоткой, мылом и телефоном — зачем им оно и куда они это будут сливать?
На скриншоте показано, что некий сервис запрашивает мои личные данные, телефон и мыло. Абсолютному большинству всяких веб-сайтов нужно только мыло, которое я и так бы указал при входе или регистрации. Но вот сам интерфейс — сервис запросил личные данные и стрелка, которую никто в большинстве раскрывать не будет, а просто жмакать ОК (не все же параноики и продвинутые айтишники) — выглядит стремно. Т.е. лучше бы, если сервису нужно что-то помимо мыла, интерфейс изменить, чтобы пользователь явно подтвердил (проставил галочки как минимум), что он согласен отправить свой паспорт, вод./пенс.удостоверение и так далее этому сервису.
http://bormor.livejournal.com/114915.html
Представьте себе сказочную страну. В ней живут самые разнообразные существа: феи, гномы, гоблины, эльфы… ну кто там еще? Все, в общем, живут.
А потом появляется новая раса — назовем ее Бехолдеры. Ничем не примечательная, кроме одного мерзкого, просто-таки жуткого свойства: у них Дурной Глаз. На что ни посмотрят — испортят. Летит, например, фея, а Бехолдер на нее глянет — и вот уже нет никакой феи, порхает бабочка. Встретит Бехолдер в буреломе лешего — и хорошо еще, если в медведя взглядом превратит, а то ведь может и в корягу. Пройдет Бехолдер сквозь толпу великанов, и даже сам не поймет, откуда вокруг взялось столько причудливых скал. Залезет на болото — и ни одного гриндилоу не останется, только мерцают болотные огоньки. А всякие воздушные создания, которые послабже, и вовсе под его взглядом исчезают, исходят легким паром.
Только всякая ночная нечисть худо-бедно уцелела — на их темное счастье, Бехолдер ночью слеп как крот. Ну и часть дневных созданий поневоле ушла в ночь; кто-то в землю зарылся, кто-то в пещеры ушел — куда-нибудь, лишь бы не попадаться Бехолдерам на глаза.
И ведь никому эти Бехолдеры зла не желают! Просто воспитание у них такое. Пока они совсем маленькие, могут хоть в упор на кого угодно смотреть. А потом усваивают от взрослых их магию (взрослые Бехолдеры называют ее просто "правильным взглядом на жизнь") — и все, пиши пропало. Глянут, и наповал!
Словом, никого в сказочной стране не осталось. Одни люди.
скорость уже отлаженных алгоритмов на таблицах 50млн комбинаций/сек. а здесь 5к?
чем больше скорость, тем больше розыгрышей в монте-карло.
здесь, вроде как, не учитываются старшие карты.
у меня пара, у него пара — побеждает из нас тот, у кого старше оставшиеся карты, сначала первая, а если равны, то вторая и затем третья. таких комбинаций в холдеме 4824, а не просто пара, каре или стрит.
допустим, напишем на этом алгоритме подсказчик для неопытного игрока.
просто "у вас 2 пары" — это он сможет понять и сам через полчаса знакомства с правилами игры — пользы никакой.
а вот "у вас 2 пары. ваша комбинация выиграет X% игр против N игроков" — уже надо будет и монте-карло и точный учёт старших карт.
еще накину идей для статей на будущее :)
ресайзинг картинок на GPU: AMD/OpenCL, NVidia/OpenCL, NVidia/CUDA… можно будет добавить Vulkan и DX12
а OpenCL(возможно и Vulkan) можно еще и на CPU протестить, взяв SDK от Intel и от AMD
за несколько лет месячная лицения выросла с 25$ до 400$. при этом было добавлено "Qt Charts, Qt Data Visualization и Qt Virtual Keyboard и другие".
WTF? оно всем надо по такой цене? как-то жирно мажете, напоминает историю компании Turing и Мартин Шкрели, который полнял цену за лекарстов от ВИЧ на тыщи процентов
за 2016 год компания заработала 32 миллиона евро. в планах компании сейчас стоит цель достичь прибыли в 100 миллионов евро к 2021 году, потому сейчас идёт активный набор новых сотрудников
т.е. к 2021 лицензия вырастет еще в 3раза, а с учетом нового набора и аппетита в 6-10. еще раз WTF?
несколько раз в статье упоминали серые моменты. мне кажется, вся продажная стратегия Qt основана на сером и мало понятном лицензировании, потому что
Мало кто хочет рисковать своим бизнесом, когда текст лицензий попросту не совершенен
и непонятен
от любопытной критики к простому любопытству:
KDAB один из основных контрибуторов и создателей Qt 3D. вы делитесь с ними деньгами или ведете себя как жена в семье "что он заработал, это наши деньги, а что я заработала с наших потуг — это только моё"?
P.S.
мысли вслух: надо присмотреться к Tizen (особенно это актуально для DC)
зачем ограждать себя ДСП? сделали бы вид на океан, горы, лес
1) эх ты, я хотел, чтобы они(neurocore и автор) сами нарыли выход из своих ошибочных заблуждений, в которых слишком уверены.
2) свапать необязательно.
только если критически важно сэкономить 0.5 деления.
3) ненамного эффективнее.
в цикле divisionGCD выполняется 3 сравнения вместо 1ого в gcd, но, поскольку, деление — долгая операция, то выигрыш gcd будет несколько процентов. зато по количеству текстового кода — на 1000%, а машинного — на 200%.
improvedDivisionGCD может быть эффективнее.
чем же он плох то?
давайте так, весь код для бенчмарка в статье и комменте есть, соберите файлик, запустите с оптимизациями, и затем поделитесь с нами практическими выводами.
у меня на Винде нет последнего Swift-a.
никакого нет.
а в последних обычно лучше оптимизации.
готовы пояснить, почему именно эта рекурсия неопасна?
дизассемблерный код gcd
и можете ее замерить с @inlinable и без?
доп:
ваша рекурсивная реализация переворачивания односвязного списка опасна.
сможете настрочить безопасную рекурсию?
для собеседований лучше так:
нет кармы на плюсик
import core.memory!2.0: memcpy; // юзаешь новые функции и "того" же модуля другой версии. нет головняка с std.experimental, который в будущем уйдет. нет name hell. да, фобос должен стать выборочным и скачиваемым. что делать с shared RT, когда все скачиваемо по отдельности?
() => { float acc;… return () => acc; } // я возвращаю лямбду из лямбды
есть A.fn( long ) и B.fn( real ), включаешь их в модуль C, в котором есть еще fn( string ) и на С.main() { fn( 123 ) } — ошибка "не могу 123 передать как стринг". WTF? вон же методы, хочешь long, хочешь real, "да тут ГТО можно сдавать!". я зря их писал что ли? странно это.
ну, и некоторые пишут код так, что в каждом методе импортируют все используемые сущности из других модулей по отдельности — куча импортов в методе, за которыми леса не видно.
импорт в шапке, как в C#, на весь остальной модуль, просто и понятно.
на этом закрою дискуссию, добавить больше нечего.
я юзаю D, но у меня есть к нему претензии.
юзал бы Go/Rust, к ним бы тоже были претензии.
а C#/Kotlin нра без претензий :)
https://youtu.be/TkNep5zHWNw?t=1489
о shared выступающий тоже упомянул
для shared переменных можно вызывать только shared методы, а это тупо удваивает количество кода, и никто их не пишет, т.е. от shared только головняк
еще
enum Week: int { Mon,… Sun };
auto fn( bool v ) { }
auto fn( long v ) { }
fn( Week.Mon ); // fn( false ). WTF?
() => { float acc;… return acc; } возвращает float delegate(), а не просто вычисленный float. WTF?
как вернуть из непростой лямбды простое значение? ХЗ
http://pixman.org/ с ассемблерными оптимизациями под ARMv6/NEON… даже если не скомпиляется, можно частично выдрать полезный код
Вроде как, Малинка поддерживает OpenGL
из вики > At least the VideoCoreIV-AG100-R found e.g. in the Raspberry Pi 1, 2 and 3, is documented to fully support OpenGL ES 2.0 and OpenVG 1.1.
https://eltechs.com/how-to-enable-opengl-on-raspberry-pi/
если будете пользоваться Gram, то Telegram-у нужен будет ваш Passport, потому что Знай своего клиента, иначе Дуров пойдет за Винником.
Меня больше волнует в каком виде Telegram будет раздавать наши паспорта: текстом "да, это он!" (т.е. вручную подтверждается личность с походом в какое-нибудь почтовое отделение) или солянка из скана, телефона и мыла… Потому что
были мои паспортные данные с фоткой, мылом и телефоном — зачем им оно и куда они это будут сливать?
гладиолусGDPR. И я не хочу, чтобы у видео-салона "Рога и копыта" (или тот же "Fhloston Paradise" изНа скриншоте показано, что некий сервис запрашивает мои личные данные, телефон и мыло. Абсолютному большинству всяких веб-сайтов нужно только мыло, которое я и так бы указал при входе или регистрации. Но вот сам интерфейс — сервис запросил личные данные и стрелка, которую никто в большинстве раскрывать не будет, а просто жмакать ОК (не все же параноики и продвинутые айтишники) — выглядит стремно. Т.е. лучше бы, если сервису нужно что-то помимо мыла, интерфейс изменить, чтобы пользователь явно подтвердил (проставил галочки как минимум), что он согласен отправить свой паспорт, вод./пенс.удостоверение и так далее этому сервису.
можно еще почитать/написать про IOCP и Registered I/O в Windows (последнее в Win8+/2012+)
http://bormor.livejournal.com/114915.html
Представьте себе сказочную страну. В ней живут самые разнообразные существа: феи, гномы, гоблины, эльфы… ну кто там еще? Все, в общем, живут.
А потом появляется новая раса — назовем ее Бехолдеры. Ничем не примечательная, кроме одного мерзкого, просто-таки жуткого свойства: у них Дурной Глаз. На что ни посмотрят — испортят. Летит, например, фея, а Бехолдер на нее глянет — и вот уже нет никакой феи, порхает бабочка. Встретит Бехолдер в буреломе лешего — и хорошо еще, если в медведя взглядом превратит, а то ведь может и в корягу. Пройдет Бехолдер сквозь толпу великанов, и даже сам не поймет, откуда вокруг взялось столько причудливых скал. Залезет на болото — и ни одного гриндилоу не останется, только мерцают болотные огоньки. А всякие воздушные создания, которые послабже, и вовсе под его взглядом исчезают, исходят легким паром.
Только всякая ночная нечисть худо-бедно уцелела — на их темное счастье, Бехолдер ночью слеп как крот. Ну и часть дневных созданий поневоле ушла в ночь; кто-то в землю зарылся, кто-то в пещеры ушел — куда-нибудь, лишь бы не попадаться Бехолдерам на глаза.
И ведь никому эти Бехолдеры зла не желают! Просто воспитание у них такое. Пока они совсем маленькие, могут хоть в упор на кого угодно смотреть. А потом усваивают от взрослых их магию (взрослые Бехолдеры называют ее просто "правильным взглядом на жизнь") — и все, пиши пропало. Глянут, и наповал!
Словом, никого в сказочной стране не осталось. Одни люди.
хочу напомнить, народ покупает что-то на свои деньги, с которых УЖЕ уплачены все налоги в казну
http://krushelnitsky.narod.ru/progs/kv/
здесь. лабиринты похожи на оригинал, но есть и новые. можно убить несколько часов, а то и день.
сайт зарекламлен, чистая ссылка на EXE для PC http://krushelnitsky.narod.ru/progs/kv/zip/sk_kings_valley_2k_1_00.zip
чем больше скорость, тем больше розыгрышей в монте-карло.
у меня пара, у него пара — побеждает из нас тот, у кого старше оставшиеся карты, сначала первая, а если равны, то вторая и затем третья. таких комбинаций в холдеме 4824, а не просто пара, каре или стрит.
допустим, напишем на этом алгоритме подсказчик для неопытного игрока.
просто "у вас 2 пары" — это он сможет понять и сам через полчаса знакомства с правилами игры — пользы никакой.
а вот "у вас 2 пары. ваша комбинация выиграет X% игр против N игроков" — уже надо будет и монте-карло и точный учёт старших карт.
еще накину идей для статей на будущее :)
ресайзинг картинок на GPU: AMD/OpenCL, NVidia/OpenCL, NVidia/CUDA… можно будет добавить Vulkan и DX12
а OpenCL(возможно и Vulkan) можно еще и на CPU протестить, взяв SDK от Intel и от AMD
удалил: сам туплю
за несколько лет месячная лицения выросла с 25$ до 400$. при этом было добавлено "Qt Charts, Qt Data Visualization и Qt Virtual Keyboard и другие".
WTF? оно всем надо по такой цене? как-то жирно мажете, напоминает историю компании Turing и Мартин Шкрели, который полнял цену за лекарстов от ВИЧ на тыщи процентов
т.е. к 2021 лицензия вырастет еще в 3раза, а с учетом нового набора и аппетита в 6-10. еще раз WTF?
несколько раз в статье упоминали серые моменты. мне кажется, вся продажная стратегия Qt основана на сером и мало понятном лицензировании, потому что
и непонятен
KDAB один из основных контрибуторов и создателей Qt 3D. вы делитесь с ними деньгами или ведете себя как жена в семье "что он заработал, это наши деньги, а что я заработала с наших потуг — это только моё"?
P.S.
мысли вслух: надо присмотреться к Tizen (особенно это актуально для DC)
и ответил на него ссылкой http://graphics.stanford.edu/~seander/bithacks.html