- 1
- 2
- 3
- 4
- 5
// добавляем новые ссылки
for i := 0 to ATags.Count - 1 do
begin
// так мне кажется лучше
Application.ProcessMessages;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
// добавляем новые ссылки
for i := 0 to ATags.Count - 1 do
begin
// так мне кажется лучше
Application.ProcessMessages;
кому или чему лучше кроме тебя, автор ?
rotoeb # 0
xoodoo # 0
Perevedi_na_PHP # 0 ⇈
guest # 0
Desktop # 0 ⇈
CBuHOKYP # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
Ну а в делфи выбора тупо не было.
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
там даже до осинок и апельсинок вот такая хуйня была
https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.backgroundworker
попижжена из
https://docs.oracle.com/javase/7/docs/api/javax/swing/SwingWorker.html
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
MAPTbIwKA # 0 ⇈
или это геймлуп?
bormand # 0
MAPTbIwKA # 0 ⇈
bormand # 0 ⇈
Заблочить UI прогрессбаром (чтобы юзер никуда не тыкнул) и дёргать ProcessMessages (чтобы не висело) на порядок проще.
guest # 0 ⇈
Это какая-то блин кооперативная многозадачность почти: чуть-чуть посчитал что-то, процесснул меседжи, еще чуть-чуть посчитал..
bormand # 0 ⇈
Скорее эмуляция старой доброй однозадачной системы. Когда можно было просто нарисовать юзеру прогрессбар с кнопочкой отмены и заняться расчётами, периодически проверяя мышку с клавой.
guest # 0 ⇈
Mohandas_Gandhi # 0 ⇈
Блядь, как всё сложно.
bormand # 0 ⇈
Mohandas_Gandhi # 0 ⇈
bormand # 0 ⇈
Mohandas_Gandhi # 0 ⇈
bormand # 0 ⇈
bormand # 0 ⇈
- послать сигнал снаружи через соотв. пин процессора
- кинуть IPI через APIC (но во времена DOS его не было)
Mohandas_Gandhi # 0 ⇈
Во времена «четвёрок» и первых «пней» «DOS» ещё активно использовали.
bormand # 0 ⇈
CHayT # 0 ⇈
Лол, ты мне напомнил очень смешное предсказание создателя OCaml [1]:
Самая мякотка:
> Shared-memory multiprocessors have
never really "taken off", at least in the general public. For large
parallel computations, clusters (distributed-memory systems) are the
norm. For desktop use, monoprocessors are plenty fast. Even if you
have a 4-processor SMP machine, it isn't clear whether you should
write your program using shared memory or using message passing -- the
latter is slightly more expensive, but scales to clusters...
> What about hyperthreading? Well, I believe it's the last convulsive
movement of SMP's corpse 🙂 We'll see how it goes market-wise. At
any rate, the speedups announced for hyperthreading in the Pentium 4
are below a factor of 1.5; probably not enough to offset the overhead
of making the OCaml runtime system thread-safe.
[1] https://groups.google.com/forum/?_escaped_fragment_=msg/fa.caml/0CN8LIYDX0Y/xMsXNbB5csoJ
Mohandas_Gandhi # 0 ⇈
CHayT # 0 ⇈
bormand # 0 ⇈
CHayT # 0 ⇈
guest # 0 ⇈
Mohandas_Gandhi # 0 ⇈
gost # 0 ⇈
CHayT # 0 ⇈
guest # 0 ⇈
of making the OCaml runtime system thread-safe.
У гиловцев примерно такой же аргумент: поддержите мне норальную многопоточность не уронив скорость и не усложнив код
bormand # 0 ⇈
(запрещённой на территории с++ организации)
Не усложнив скорость и не уронив код.
guest # 0 ⇈
Вообще это аргумент Гвидо был. Но ведь GIL есть не только в cPython, но и в MRI. Возможно, Мац думает так же.
Оба языка появились, когда большинство компов были однопроцессорными, и смысла в параллельно работающих тредах не имали
CHayT # 0 ⇈
> не уронив скорость
^___~
bormand # 0 ⇈
CHayT # 0 ⇈
MAPTbIwKA # 0 ⇈
https://stackoverflow.com/questions/41565219/why-can-using-slots-make-attribute-access-faster
Какая вообще самая быстрая скриптуха сейчас? JS с JITом?
gost # 0 ⇈
Именно поэтому я за «Numba».
MAPTbIwKA # 0 ⇈
но джитится, понятное дело, далеко не всё)
guest # 0 ⇈
Дос не переключал, и думал, что он работает с 8259.
Это конечно не давало ему возможности использовать SMP (и еще таймеры какие-то), но досу было похуй
bormand # 0 ⇈
MAPTbIwKA # 0 ⇈
Емнип, там нужно поставить в памяти спец трамплин, и послать IPI другим ядрам. Они проснутся, полезут в трамплин, ну и дальше куда он их направит
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
А IOPIC сдюжит?
bormand # 0 ⇈
guest # 0 ⇈
А еще нужно, чтобы дос случайно не затер какие-то структуры.. защищенному режиму вообещ нужен первый мегабайт?
bormand # 0 ⇈
Нет. Можно всё повыше закинуть. Ну кроме трамплинов в реалмод и обратно, если они нужны.
Mohandas_Gandhi # 0 ⇈
bormand # 0 ⇈
Код по запуску второго ядра у меня где-то был. А вот флешки с досом, к сожалению, нету.
Mohandas_Gandhi # 0 ⇈
guest # 0 ⇈
а вот идея держать два ядра в разных режимах -- этолул, я такого еще не видел
bormand # 0 ⇈
guest # 0 ⇈
я впервые увидел мать с двумя сокетами в 2002 где-то году, кажется это была мать под пень OverDrive (помнишь его?)
А много позже я увидел тему на форуме про "как писать под два процессора? нужно два main()?"
bormand # 0 ⇈
guest # 0 ⇈
Mohandas_Gandhi # 0 ⇈
MAPTbIwKA # 0 ⇈
Mohandas_Gandhi # 0 ⇈
MAPTbIwKA # 0 ⇈
Нон коммент не точный, так что не нагуглить
bormand # 0 ⇈
defecate-plusplus # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
MAPTbIwKA # 0 ⇈
https://cateee.net/lkddb/web-lkddb/LOGO.html ?
Это параметр CONFIG_LOGO ядра, угу
Ну вот ща на виртуалке врубил 12 (больше не могу), получил 12 пингвинов))
Так что может и покажет
Mohandas_Gandhi # 0 ⇈
https://www.gamedev.ru/code/forum/?id=19939
Тот самый код на второй странице.
guest # 0 ⇈
Mohandas_Gandhi # 0 ⇈
Mohandas_Gandhi # 0 ⇈
Mohandas_Gandhi # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
Советую прочитать первые пять-шесть страниц минимум, там очень крутые комменты
CHayT # 0 ⇈
bormand # 0 ⇈
CHayT # 0 ⇈
guest # 0 ⇈
А если они разные, то это нарушение ODR, и UB:(
bormand # 0 ⇈
На других экранах ты можешь другой код написать при желании.
guest # 0 ⇈
bormand # 0 ⇈
bormand # 0 ⇈
Геймдев - очень скучное занятие, походу.
guest # 0 ⇈
Например, в одном мейне я установил переменную в шареной памяти, и чтобы она была видна в другом, нужно чтобы строчка была ниже.
Я иногда переводами строк добиваю второй мейн, чтобы он совпадал.. Один раз случайно включил в редакторе soft wrap, длинные строчки перенеслись, и код сломался(
bormand # 0 ⇈
DypHuu_niBEHb # 0 ⇈
но там нужно название функции по короче выбрать, иначе не пролезет. Потому в сишке такие короткие названия обычно?
bormand # 0 ⇈
MAKAKA # 0 ⇈
Вот стек же может на разных архитектурах в разную сторону расти, и байтордер может быть разный.
Если я пишу под Sparc, то у меня код вверх идет, или в бок?
bormand # 0 ⇈
MAKAKA # 0 ⇈
А потом под 64 пришлось переделывать
думаю, препроцессор использовать, чтобы он эти переносы строк встапвлял
CHayT # 0 ⇈
Пиксельные шейдеры на Piet программируют, в MS Paint.
guest # 0 ⇈
xoodoo # 0
То приложение, из которого процитирован этот фрагмент говнокода, просто напичкано асинхронными событиями, базирующихся в том числе и на оконных сообщениях основной нити, и бездумное впендюривание в свой цикл такой огульной обработки может повлечь (и по факту влечет) за собой нарушение ожидаемой последовательности их обработки.
Сам же по себе Application.ProcessMessages не есть проблема, если он используется по уму, осознанно и только там где без него действительно сложно обойтись по объективным причинам
Эти причины говнокодеру и следовало хотя бы кратко изложить ув комменте вместо своего школотного "кажется"
rotoeb # 0 ⇈
xoodoo # 0 ⇈
Рекомендую не рекомендовать.
guest # 0 ⇈
rotoeb # 0 ⇈
guest # 0 ⇈
Типов данных нет в языке Fort. Компиляции нет в языке Bash. И в TCL. Но в TCL, к сожалению, есть типы данных. Целых три.
CBuHOKYP # 0 ⇈
Процессмессагес можно смело юзать, не забывая блокировать контролы, иначе возможен повторный вход в обработчики.
Можно было сделать так:
После чего форма начинает корректно реагировать на закрытие. Правда, больше ничего с ней сделать нельзя. И тем не менее, это не говнокод.
MAPTbIwKA # 0
heavyweight это нативное окошко операционки, которое получает от нее события, и перенаправляет их в джаву.
Внимательный читатель сразу доагадется, чего не учли авторы компонента:
https://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseWheelEvent.html#getWheelRotation()
https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-mousewheel (wParam)
rotoeb # 0
CHayT # 0 ⇈
rotoeb # 0 ⇈
CHayT # 0 ⇈
Асинхронный код выглядит как обычный код, а не целебный обмаз колбэками.
> и для чего конкретно он подойдёт?
Для любого сетевого кода
bormand # 0 ⇈
guest # 0 ⇈
CHayT # 0 ⇈
[1] http://yaws.hyber.org/dynamic.yaws
rotoeb # 0 ⇈
gost # 0 ⇈
rotoeb # 0 ⇈
guest # 0 ⇈
rotoeb # 0 ⇈
gost # 0 ⇈
rotoeb # 0 ⇈
CHayT # 0 ⇈
rotoeb # 0 ⇈
CHayT # 0 ⇈
bormand # 0 ⇈
CHayT # 0 ⇈
guest # 0 ⇈
ну да, там же вроде такой аргумент и был: "мы не можем ждать, что к нам придут С++ программмисты, нам нужен язык для быдла"
алсо
а разве за заход программиста на живой сервер не отрезают руку?
CHayT # 0 ⇈
Если анальные логи ведутся и формально допуск к данным одобрен, то не отрезают. Девопс культура, мать её.
guest # 0 ⇈
bormand # 0 ⇈
rotoeb # 0 ⇈
CHayT # 0 ⇈
bormand # 0 ⇈
CHayT # 0 ⇈
gost # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
Они ломают куски кода, и смотрят -- упадут-ли тесты
Если не упали, значит тесты -- говно
guest # 0 ⇈
Он не сложный, и по идее ПХП программисту не должно быть с ним тяжко.
rotoeb # 0 ⇈
guest # 0 ⇈
Go линкуется статически, и получается огроооомный файл. Но один.
Например yourproject.exe.
Ты просто запускаешь его, и течешь.
guest # 0 ⇈
rotoeb # 0 ⇈
guest # 0 ⇈
Виртуальные методы через указатель в целом медленнее по понятным причинам, но например в Java все методы виртуальные, и ты всё равно получаешь invokevirtual даже если у тебя класс закрытый и не может иметь детей
bormand # 0 ⇈
gost # 0 ⇈
rotoeb # 0 ⇈
guest # 0 ⇈
хотя C# приятный, да
guest # 0 ⇈
там много ваших
rotoeb # 0 ⇈
guest # 0 ⇈
https://gorails.com/forum/create-little-parse-data-formatting-and-counting-project
guest # 0 ⇈
Если я обращусь тебе с советом как мне лучше покончить собой, ты мне расскажешь как, или попытаешься отговорить?
guest # 0 ⇈
bormand # 0 ⇈
Ты про масштабирование серверов?
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
Jawaharlal_Nehru # 0 ⇈
guest # 0 ⇈