-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80




Форум на Исходниках.RU


Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://forum.sources.ru.
Данный дневник сформирован из открытого RSS-источника по адресу http://forum.sources.ru/yandex.php, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 19:26 + в цитатник
shm:
Цитата ЫукпШ @
А вот где у *nix множественное ожидание (ожидание множества объектов) - это Вопрос.

Его не сложно реализовать (https://github.com/neosmart/pevents/blob/ma...src/pevents.cpp - один из множества примеров), но будет не так эффективно. С другой стороны, если говорить WaitForMutlipleObject, то вещь это специфическая и для приложений с большой нагрузкой ввода-вывода малополезная (прежде всего сервера): там используются те же очереди на IOCP/epoll. Почему? Все просто: эта функция ограничена 64 объектами ожидания на поток (причем преодолеть это ограничение технически MS не может и на то есть объективные причины), что ставит крест на масштабируемости. Поэтому область ее применения все же не высоконагруженные приложения, где не так много объектов за которыми нужно следить, а в этом случае сложно увидеть разницу в производительности по сравнению с той же реализация на CV (ну проснутся потоки лишний раз и опять уснут, катастрофы нет).

Добавлено
Цитата
Его можно использовать для Win, *nix, микроконтроллеров
(на голом процессоре) и любых других системах.

Стандартная библиотека на голом железе работать не будет. И не все функции стандартной библиотеки явно реализованы в API всех целевых ОС компиляторов. Иногда для реализации тех или иных функций можно увидеть жуткие костыли. Поэтому аргумент мне непонятен.

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846727


Метки:  

Что делать с жунами

Пятница, 23 Апреля 2021 г. 18:01 + в цитатник
applegame:
Цитата Qraizer @
Кстати, а какие? Мне известны лишь обратные примеры.
Возможно ошибаюсь, но вроде именно он зарубил нормальный static if.

https://forum.sources.ru/index.php?showtopic=421266&view=findpost&p=3846726


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 17:52 + в цитатник
ЫукпШ:
Цитата shm @
И кстати, если модель синхронизации винды так прекрасна, то почему те же евенты не добавили в c++?

Это сразу можно объяснить.
Потому, что с++ - универсальный язык программирования.
Его можно использовать для Win, *nix, микроконтроллеров
(на голом процессоре) и любых других системах.
Конкретные объекты синхронихации - это принадлежность
системы. Реализация делается для конкретной системы.
---
А вот где у *nix множественное ожидание (ожидание множества объектов) - это Вопрос.
Лудить можно любые костыли, но системой то это не предусмотрено.

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846725


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 16:50 + в цитатник
scrambrella:
Цитата Qraizer @
А что там у QT со срезом по контейнеру? Он умеет заполнять диапазон, определённому мною как предикат?

В цикле пробежаться, реализовав предикат на if-ах. А как на STL и чем это круто?

Добавлено
Цитата Qraizer @
А мне вот понадобился ассоциативный массив с отображением на кортеж «нитка + фючерс с обещанием + композиция лямбд» по... та неважно, по какому ключу, пусть будет некий абстрактный class id . Ну-ка, набросай на QT, я посмотрю.

???
А если по-русски?

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846723


Метки:  

Что делать с жунами

Пятница, 23 Апреля 2021 г. 16:28 + в цитатник
kopilov:
Цитата Qraizer @
И на этом говне работает всё ныне используемое. :lool:

Просто оно перешло стадию компоста и приближается к стадии чернозёма ;)

https://forum.sources.ru/index.php?showtopic=421266&view=findpost&p=3846722


Метки:  

Что делать с жунами

Пятница, 23 Апреля 2021 г. 16:25 + в цитатник
Qraizer:
Цитата applegame @
При всем уважении, Страуструп придумал такое говно как С++.
И на этом говне работает всё ныне используемое. :lool: Не исключая Эликсиров, ДжаваМашин, ВебКитов, Андроидов и даже, о ужас, инди и триплА игр.

Добавлено
Цитата applegame @
А в комитете выступает как тормоз прогресса, блокируя современные тенденции ЯП.
Кстати, а какие? Мне известны лишь обратные примеры.

https://forum.sources.ru/index.php?showtopic=421266&view=findpost&p=3846721


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 16:02 + в цитатник
shm: И кстати, если модель синхронизации винды так прекрасна, то почему те же евенты не добавили в c++? Только не надо говорить, что "потому что их нет в ядре nix": там они тривиально реализуются на фьютексах. А причина, насколько я знаю, в том, что в комитете справедливо решили, что Event'ы очень часто порождают весьма не очевидные баги в синхронизации. Поэтому добавили CV.

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846720


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 15:54 + в цитатник
amk:
Цитата Alexandrietz @
Думаю, что людей, кроме Кнута, осиливших трехтомник, нет.
Если считать и то, что в интернете, то уже четырёхтомник.

Ничего сложного в трёхтомнике, что мешало юы нго освоить, не заметил. Ни при первом чтении (первое издание), ни при втором (последнее)

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846719


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 15:40 + в цитатник
shm:
Цитата Qraizer @
Попробуй реализовать простую модель "много писателей/много читателей" с приоритетом у писателей и взаимным неблокированием читателей.

Что есть "с приоритетом у писателей"? Эта фраза мне мало о чем говорит. И в чем практический смысл такого приоритета? Собственно, эффективную (без пробуждения всех читателей при записи) и простую (сопоставимую по сложности с CV) реализацию писателей-читателей (можно без приоритетов) на евентах я бы тоже хотел увидеть.
Цитата Qraizer @
На pthread запаришься программить условные переменные и как следствие отлаживать их на дидлоках

А какие с CV дедлоки? Там есть ложные пробуждения, но это не так страшно, как обратная ситуация с Event'ами. И cv в подавляющем случае хватает одной, чего не скажешь о event'а.
Цитата Qraizer @
, а SignalObjectAndWait() шутка иногда полезная ибо атомарная

Она нифига не атомарная на SMP системах, о чем у них и написано в документации. MS думают даже не на шаг вперед, а на пол шага. Оттуда и зоопарк фукций с разными приставками и суффиксами.
Цитата Qraizer @
И это я даже ещё не упомянул модель прав и аудита, без которой ни один ядерный объект, не исключая объекты синхронизации, не обходится и посредством которого высокопривилегированные процессы могут создавать правила взаимодействия процессов в разных сессиях и даже на разных рабочих станциях. Включая как физически разные компьютеры, так и разные WindowStation одного конкретного компьютера. И не надо тут про аналоги в правах доступа и допAPI системных процессов в лине, они и рядом не валялись по гибкости. Вы просто не умеете готовить безопасность в WinAPI. Это не наезд, это сожаление. Как жаль бывает человека, которому показали формулы в Экселе, но забыли рассказать о макросах.

Скольким разработчиков этот функционал нужен? 0.1% наберется?
Цитата Qraizer @
Но вообще, ты вот серьёзно думаешь, что WinAPI – это экспорт kernel32, user32 и gdi32? А как же advapi32?

Нет. Где я об этом писал?
Цитата Qraizer @
Ну, и как тут сравнивать с POSIX с его жалким man-ом, iOS, Андроидом и чем там ещё?

У POSIX можно открыть исходники и понять как оно реализована, что ни скажешь о API MS. Кстати, с документацией я тоже проблем не испытывал.
Цитата Qraizer @
Далекому будет понятно одно, недалёкому противоположное. Больше гибкости всегда лучше, чем меньше гибкости. Больше удобства всегда лучше, чем меньше удобства. Понятия гибкости и удобства антиколлинеарны и каждый сам для себя решает. Но они при этом неравноправны. Если гибкости недостаточно, ты ничего не сделаешь, чтобы это исправить, если недостаточно удобства, ты легко его себе сможешь обеспечить. Вывод? ИМХО риторический вопрос.

Да причем тут гибкость? Адекватно вообще пихать столько аргументов в одну функцию?

ЗЫ: я раньше тоже был сторонником WinApi. Пока серьезно не занялся осдевом (как хобби) и не понял внутренне устройство ОС. После этого мои взгляды резко изменились.

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846718


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 15:16 + в цитатник
Qraizer: Вот как перенесу всё, кроме первой страницы, в Холивары, вот там и флудите на здоровье. Но-таки отвечу, коли сам начал.
Цитата shm @
Не смог сдержаться. На мой взгляд WinAPI - это как раз таки пример как не надо делать api. Сравнить ту же модель синхронизации Event'ах и *nix CV: можно посмотреть различия на примере consumer-producer. А костыли вроде PulseEvent и SignalObjectAndWait откуда взялись? Именно из-за абсолютно кривой архитектуры. Правда со временем до MS это начало доходить и теперь даже futex'ы появились.
Этот API начала создавать IBM для своей (на пару с MS) OS/2 NT. Если уж конкретно за модель синхронизации, то я уже 15 лет утверждаю и буду продолжать это делать, что виндовая модель превосходна и никакая другая мною виденная ей не годится и в подмётки. pthread суть убожество по сравнению с той гибкостью, которая легко и просто позволяет создавать произвольнейшие алгоритмы управления взаимодействием между потоками на WinAPI. Попробуй реализовать простую модель "много писателей/много читателей" с приоритетом у писателей и взаимным неблокированием читателей. На pthread запаришься программить условные переменные и как следствие отлаживать их на дидлоках, на WinAPI обойдёшься четырьмя объектами синхронизации и парой/четвёркой API-вызовов на входе и выходе критической секции у каждого реципиента. Причём с высокой вероятностью без дидлоков, если не забудешь рекомендации Рихтера 15-летней выдержки. Хотя отладка всё ж может понадобиться. За PulseEvent() не скажу, никогда не пользовал, а SignalObjectAndWait() шутка иногда полезная ибо атомарная. Вы просто не умеете готовить синхронизацию.
И это я даже ещё не упомянул модель прав и аудита, без которой ни один ядерный объект, не исключая объекты синхронизации, не обходится и посредством которого высокопривилегированные процессы могут создавать правила взаимодействия процессов в разных сессиях и даже на разных рабочих станциях. Включая как физически разные компьютеры, так и разные WindowStation одного конкретного компьютера. И не надо тут про аналоги в правах доступа и допAPI системных процессов в лине, они и рядом не валялись по гибкости. Вы просто не умеете готовить безопасность в WinAPI. Это не наезд, это сожаление. Как жаль бывает человека, которому показали формулы в Экселе, но забыли рассказать о макросах.
Но вообще, ты вот серьёзно думаешь, что WinAPI – это экспорт kernel32, user32 и gdi32? А как же advapi32? А common controls? Shell? Multimedia? Где OLE с Automation? А что с DirectX? Та просто загляни на Programming reference for the Win32 API и не забудь, что это только ОC API, а помимо этого существует интегрированные в ОС .NET, PowerShell, WBS итд итп. Ну, и как тут сравнивать с POSIX с его жалким man-ом, iOS, Андроидом и чем там ещё?
Цитата shm @
Даже далекому от WinAPI человеку стоит просто взглянуть на ту же CreateWindowEx и все становится понятно.
Далекому будет понятно одно, недалёкому противоположное. Больше гибкости всегда лучше, чем меньше гибкости. Больше удобства всегда лучше, чем меньше удобства. Понятия гибкости и удобства антиколлинеарны и каждый сам для себя решает. Но они при этом неравноправны. Если гибкости недостаточно, ты ничего не сделаешь, чтобы это исправить, если недостаточно удобства, ты легко его себе сможешь обеспечить. Вывод? ИМХО риторический вопрос.

Добавлено
Цитата scrambrella @
В QT реализованы наиболее употребляемые контейнеры STL. В ряде случаев они более удобные. В QVector есть метод fill - заполнить заданным значением. В std::vector его нет.
Портирование с STL на QT осуществляется всего лишь заменой имени класса контейнера, так как есть дублирующие методы с названиями из STL.
Да ну. std::fill В языке с 1998 года. Работает с любым контейнером и не только контейнером, была бы пара итераторов. "Алгоритмы + структуры данных" ©. А что там у QT со срезом по контейнеру? Он умеет заполнять диапазон, определённому мною как предикат?
А мне вот понадобился ассоциативный массив с отображением на кортеж «нитка + фючерс с обещанием + композиция лямбд» по... та неважно, по какому ключу, пусть будет некий абстрактный class id . Ну-ка, набросай на QT, я посмотрю.

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846717


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 15:14 + в цитатник
scrambrella:
Цитата shm @
Не вижу никаких проблем работать под *nix в объектном стиле. Хотя api nix тоже далеко не идеально, но вот конкретно об этой проблеме слышу впервые. Тот же Qt как пример.

Писать нативные проги вместо QT это задротство. А ещё Жаба есть.

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846716


Метки:  

Интересные задачки

Пятница, 23 Апреля 2021 г. 12:53 + в цитатник
OpenGL:
Цитата ya2500 @
в таком случае, нет смысла слишком углубляться в хитрые методы сокращения перебора

В этой задаче вердикт TLE - очень частый. Несложно же даже на таком мелком лабиринте придумать конфигурацию с большим числом ящиков, которые ты можешь разместить на поле очень большим количеством способов. Так что нет, тут не просто перебор по всем позициям надо юзать, а как-то ещё отличать осмысленную позицию от бесмыссленной (ящик в углу, и не на точке, например).

Цитата ya2500 @
но остаётся крайне критичным быстрое распознание повторения позиции

Я бы zobrist hashing заюзал.

https://forum.sources.ru/index.php?showtopic=316466&view=findpost&p=3846712


Метки:  

Что делать с жунами

Пятница, 23 Апреля 2021 г. 12:12 + в цитатник
applegame:
Цитата D_KEY @
Так смысл-то какой в таком определении ИП?
Это не определение ИП, это ответ на твой бесмыссленный вопрос о смысле. :)
Цитата D_KEY @
И что? Ты опять пытаешь языки и парадигмы?
Что "и что?"? Это ответ на "это просто функция". Как то, что "это просто функция" опровергает сказаное мной? Вся программа может быть просто функцией, что дальше-то? Может ты уже перестанешь вешать ярлыки, а приступишь непосредственно к аргументации? :)
Цитата D_KEY @
Ну это ты молодец. Но это ничего не говорит о верности твоей демаркации.
Это был не аргумент в пользу демаркации, это было опровержение. Ты сделал предположение, что я скачусь к ФП если буду писать без мутабельности. Я опровергаю твое предположение примером выше и своей собственной практикой.
Цитата D_KEY @
Вообще строго говоря это бесполезно. Если твои инструкции не меняют память и не имеют побочных эффектов, то каким образом происходят вычисления и передаются результаты?
:facepalm: ФП тоже получается, по-твоему, бесполезно? Ты явно путаешь инструкции с исполнителем этих инструкций.
Цитата D_KEY @
Проблема в том, что это не имеет значения для данного кода.
Это имеет значение для парадигмы. И после этого ты меня обвиняешь в путании. Может ты считаешь что мой пример на D и корвиновский на Haskell написаны в одной и той же парадигме (ФП или ИП)?
Цитата D_KEY @
И если ты считаешь это последовательностью инструкций, а не абстрагируешься от этого, тогда тебе придется считать, что return занимается модификацией памяти для результата своего выполнения, например.
:facepalm: Что ты хочешь этим сказать? Что мой пример не императивен? Или может он бесполезен? Или может он имеет мутабельный стейт? Ты вроде на все три вопроса отвечаешь отрицательно, но продолжаешь с чем-то спорить. Давай уже аргументы, а не просто мутную демагогию.
Цитата D_KEY @
В общем, мне кажется, что ты путаешь языки и парадигмы, подходы и реализации.
Тебе явно кажется. Все строго наоборот, ты пытаешься смешать парадигмы, программы и исполнителей этих программ. Я же как раз таки пытаюсь абстрагироваться от всего, кроме непосредственно парадигмы.

https://forum.sources.ru/index.php?showtopic=421266&view=findpost&p=3846711


Метки:  

Что делать с жунами

Пятница, 23 Апреля 2021 г. 11:39 + в цитатник
D_KEY:
Цитата applegame @
Такой же как и в ФП: получение результата.

Так смысл-то какой в таком определении ИП?

Цитата
Программа на C/С++/D это тоже просто функция. Она даже может быть чистой, просто возвращая int в качестве результата.

И что? Ты опять пытаешь языки и парадигмы?

Цитата
Я обычно пишу в гибридном стиле и избегаю ненужной мутабельности

Ну это ты молодец. Но это ничего не говорит о верности твоей демаркации.

Цитата
В моих программах часто встречаются императивные куски без мутабельности.

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

Добавлено
Цитата applegame @
Тем, что в первом случае явно прописана последовательность действий. Очередной элемент будет проверен после предыдущего, и как только элемент будет найден последующие элементы не будут проверяться.

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

https://forum.sources.ru/index.php?showtopic=421266&view=findpost&p=3846708


Метки:  

Что делать с жунами

Пятница, 23 Апреля 2021 г. 10:57 + в цитатник
applegame:
Цитата korvin @
Бьорн Страуструп — «выксперт из интернета, теоретик»? Хаха
При всем уважении, Страуструп придумал такое говно как С++. А в комитете выступает как тормоз прогресса, блокируя современные тенденции ЯП. Так что я бы на твоем месте перестал аппелировать к авторитетам, и к Страуструпу в частности. По крайней мере в области программирования, где утверждения можно относительно легко проверить и доказать.
Это, конечно, никак не отменяет того, что Сирожа несет ересь и отрицает очевидное.

https://forum.sources.ru/index.php?showtopic=421266&view=findpost&p=3846707


Метки:  

Что делать с жунами

Пятница, 23 Апреля 2021 г. 10:49 + в цитатник
applegame:
Цитата korvin @
Это может быть как ФП, так и ИП, внезапно.
Внутри функции махровое ИП: цикл + ранний return. И никакого мутабельного состояния. Вывод: ИП без мутабельности возможно и полезно.
Цитата korvin @
— это композиция функций? ФП, значит?
Если забить на грязность main, то да: вполне себе ФП.
Цитата korvin @
Это общепринятое определение.
Ага, настолько же общепринятое как определение ООП с тремя китами. По мне так это определение императивности безнадежно устарело. Иммутабельность уже давно успешно живет в языках с поддержкой императивности. В некоторых иммутабельность вообще сделана по умолчанию.
Цитата D_KEY @
А почему? И какой толк от последовательности инструкций, если мы убираем изменение состояния?
Такой же как и в ФП: получение результата.
Цитата D_KEY @
Но это просто функция.
И что? Программа на C/С++/D это тоже просто функция. Она даже может быть чистой, просто возвращая int в качестве результата.
Цитата D_KEY @
Программу-то полноценную если ты начнешь писать без мутабельности, то не скатишься ли ты к функциональному стилю, по сути?
Я обычно пишу в гибридном стиле и избегаю ненужной мутабельности. В моих программах часто встречаются императивные куски без мутабельности. Elixir вообще не поддерживает мутабельность, но в нем полно императивщины.
Цитата korvin @
applegame, чем это:

    bool contains(T)(const T[] arr, const T e) pure {
    foreach(const x; arr) if(x == e) return true;
    return false;
    }

отличается от
    contains [] e = False
    contains (x:xs) e = x == e || contains xs e

?
Тем, что в первом случае явно прописана последовательность действий. Очередной элемент будет проверен после предыдущего, и как только элемент будет найден последующие элементы не будут проверяться.
А в хаскельном примере никакой последовательности действий нет. Сравнение может проводиться как угодно, хоть по отдельному потоку на каждый элемент. Порядок действий никак не прописан в этом примере и не имеет никакого значения.

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

Можно попытаться представить себе что функции выполняются за нулевое время, то бишь течение времени отсутствует как явление. Получится идеальный мир ФП.

https://forum.sources.ru/index.php?showtopic=421266&view=findpost&p=3846706


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 09:59 + в цитатник
shm: Не вижу никаких проблем работать под *nix в объектном стиле. Хотя api nix тоже далеко не идеально, но вот конкретно об этой проблеме слышу впервые. Тот же Qt как пример.

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846704


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 09:32 + в цитатник
ЫукпШ:
Цитата shm @
Не смог сдержаться. На мой взгляд WinAPI - это как раз таки пример как не надо делать api.

Сравнение было бы очень уместно.
я попробовал и Win, и Linuх.
Так вот, WinApi смастерили с учётом возможности
программирования с объектами, т.е. для C++.
А nix Api - это для C.
Почувствуйте разницу, она принципиальна.
Эта разница неизбежно проявится в производительности труда
и в общем качестве работ.

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846703


Метки:  

Что делать с жунами

Пятница, 23 Апреля 2021 г. 09:13 + в цитатник
sergioK:
Цитата korvin @
LinkedList в два раза менее производительный, чем ArrayDeque в качестве очереди. :facepalm:
Ты не «практик», ты — практикант. Максимум.

Ты не хами для начала, Это если не надо память реалацировать, и машина мощная ,
и частота входа/выхода данные большая,

Добавлено
Цитата korvin @
А LinkedList умножает память на 3.

на размер обьекта + 24байта
изучай

https://forum.sources.ru/index.php?showtopic=421266&view=findpost&p=3846701


Метки:  

Не поздно ли начать изучать С++?

Пятница, 23 Апреля 2021 г. 07:27 + в цитатник
MBo: Alexandrietz
Цитата
Думаю, что людей, кроме Кнута, осиливших трехтомник, нет.


Увы, даже он сам не осилил одно из упражнений.
Он его оценивал в 50 баллов, а когда Уайлс справился - изменил на 45.

https://forum.sources.ru/index.php?showtopic=421325&view=findpost&p=3846698


Метки:  

Поиск сообщений в rss_forum_sources_ru
Страницы: 2628 ... 2535 2534 [2533] 2532 2531 ..
.. 1 Календарь