- 1
- 2
- 3
Кококо
"Microsoft" купил "GitHub"
Кококо
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Кококо
"Microsoft" купил "GitHub"
Кококо
0
Серьёзный вопрос к местным игроделам:
А есть ли какое-нибудь универсальное исследование, которое говорит, как должны быть устроены формулки в rpg/mmorpg?
Типа что номер уровня должен зависеть как корень степени 2.8 от количества exp, hp -- линейно от str и int, а дамаг -- как среднее геометрическое дамага перса и дамага его оружия.
Пробовал гуглить/читать геймдев -- нашёл только пространственные рассуждения "начни делать хоть как-то, а потом с помощью говна и палок отбалансируй".
P.S. Да, я хочу написать игру и сидеть в неё играть.
+2
https://habr.com/post/358974/
"Как обновление Rust 1.26 ускорило мой код в три с лишним раза"
Яркий пример того, как человек не понимает как работает его код.
И кое-то говорит, что Си - говно
−2
https://hsto.org/webt/ho/0r/ms/ho0rms80hfva2hnwlptdhoz4ysy.png
https://habr.com/company/rambler-co/blog/358762/
Всё что можно, какие есть технологии и базы данных, захуярили в одну схему. Не хватает только "PHP" для полной картины.
−5
Эмуляторы
Объясните пожалуйста, почему пишут эмуляторы всяких там GBA, но нет ни одного транслятора в самодостаточную программу? И почему все заботься о том, что бы эмулятор работал с такой же скоростью, как и настоящий процессор?
0
...
F = fun(S) ->
ets:give_away(Table, NewOwner),
S
end,
sys:replace_state(OldOwner, F)
...
Паттерн steal
+1
// https://github.com/Navadvipa-Chandra-das/prabhupada_calendar/blob/master/source/Prabhupada_convert.d
bool день_ли_это;
Тип_строки вид_строки;
Класс_Хитрый_накопитель Хитрый_накопитель = new Класс_Хитрый_накопитель( !Нужно_ли_удалять_пустые_дни, !Нужно_ли_удалять_пустые_дни_окончания_поста, Выходной_файл );
// цикл не простой, а с меткой "цикл"
цикл: while ( ( строка = Входной_файл.readln() ) !is null ) {
if ( Нужно_ли_удалять_служебные_строки ) {
if ( строка.length < 3 )
// чудо, а не возможность! Можно делать любые переходы и вылеты из множества вложенных циклов!
continue цикл;
служебная_строка = matchFirst( строка, выражение_служебная_строка );
if ( служебная_строка.captures.length > 0 )
continue цикл;
}
день_месяца = matchFirst( строка, выражение_день );
день_ли_это = день_месяца.captures.length > 0;
if ( день_ли_это ) {
вид_строки = Тип_строки.День;
if ( Нужна_ли_табуляция ) {
строка = "\t"c ~ день_месяца.captures[ 1 ] ~ "\t"c ~ день_месяца.captures[ 2 ] ~ "\t"c ~ день_месяца.captures[ 3 ] ~
"\t"c ~ день_месяца.captures[ 4 ] ~ "\t"c ~ день_месяца.captures[ 6 ].stripRight() ~ "\t"c ~ день_месяца.captures[ 7 ] ~
"\t"c ~ день_месяца.captures[ 8 ] ~ "\t"c ~ день_месяца.captures[ 10 ];
// обрабатываем "звездочку" поста
if ( день_месяца.captures[ 11 ].indexOf( '*' ) != -1 )
строка ~= "\t*"c;
строка ~= "\n";
}
// Удаляем, при желании комментрий к Экадаши - подходит для поста и не додходит для поста. Все равно есть еще символ звездочка и
// строка с именем Экадаши и явным упоминанием о посте!
if ( Нужно_ли_удалять_комментарий_Экадаши ) {
строка = replaceFirst( строка, выражение_для_чистки_комментария_Экадаши, ""c );
}
} else {
проверка_месяца = matchFirst( строка, выражение_месяц_ли_это );
if ( проверка_месяца.captures.length > 0 ) {
вид_строки = Тип_строки.Месяц;
// Просто удаляем цепочку начальных пробелов в строках месяца, если готовим табуляцию
if ( Нужна_ли_табуляция )
строка = replaceFirst( строка, выражение_цепочка_пробелов_в_начале_строки, ""c );
} else {
// Заменяем цепочку пробелов вначале строки на один единственный символ табуляции для праздников, но только если нужна табуляция
пробелы_в_начале_строки = matchFirst( строка, выражение_цепочка_пробелов_в_начале_строки );
if ( пробелы_в_начале_строки.captures.length > 0 ) {
окончание_поста = matchFirst( строка, выражение_окончание_поста );
if ( окончание_поста.captures.length > 0 )
вид_строки = Тип_строки.Окончание_поста;
else
вид_строки = Тип_строки.Праздник;
if ( Нужна_ли_табуляция )
строка = replaceFirst( строка, выражение_цепочка_пробелов_в_начале_строки, "\t"c );
} else
вид_строки = Тип_строки.Солнце;
}
}
// Удаляем строки из тире и GCal, но только если нужна табуляци. В книге они не нужны.
// Можно указать номер версии программы GCal в колонтитулах книги при желании
if ( Нужна_ли_табуляция ) {
if ( вид_строки == Тип_строки.Месяц )
строка = replaceAll( строка, выражение_для_чистки_Месяца, ""c );
if ( вид_строки == Тип_строки.Солнце )
строка = replaceAll( строка, выражение_для_чистки_Солнца, ""c );
}
// Переводим сначала фразы. Длительная операция, так как переводятся все имеющиеся фразы, не зависимо от того, встречаются ли они в строке или нет
foreach ( ref фраза; фразы )
строка = replaceAll( строка, regex( фраза ), _Словарь_фраз[ фраза ] );
// Переводим слова. Быстрее, так как переводятся только те слова, которые встречаются в данной конкретной строке
слова = std.regex.split( строка, выражение_разделитель );
// сортируем, чтобы короткие слова не позаменялись в более длинных словах внутри
// Вдохнули поглубже! Такого чуда я еще не видел! Не иначе как mixin в действии!
слова.sort!( "a.length > b.length" );
foreach ( ref слово; слова )
if ( слово.length > 0 )
строка = replaceAll!( Чудо_слов )( строка, regex( слово ) );
Хитрый_накопитель.В_копилку( строка, вид_строки );
}
// Пропихнем в файл последнюю строку
Хитрый_накопитель.В_копилку( ""c, Тип_строки.День );
window.showMessageBox( UIString.fromId( "ЧЕСТЬ_ИМЕЮ_ДОЛОЖИТЬ"c ),
UIString.fromId( "ЗАДАНИЕ_ВЫПОЛНЕНО!"c ) );
}
Кришнаит, пишущий на языке D в стиле 1С
−2
Золотце
https://lj.rossia.org/users/sadkov/103320.html?nc=55
OpenGL - говно опенсурсное
Попытался реализовать getPixel и putPixel на OpenGL, в результате получение одного пикселя занимает болшьшую часть времени выполнения программы. Другие люди тоже жалуются на тормознутость функций OpenGL, вроде glDrawPixels и glReadPixels
https://stackoverflow.com/questions/39821850/why-is-glreadpixels-so-slow-and-are-there-any-alternative
https://stackoverflow.com/questions/36534933/gldrawpixels-vs-textures-to-draw-a-2d-buffer-in-opengl
>glDrawPixels is known to be very slow
Зачем вообще нужно все это 3d ускорение? В DOS все было идеально:
((uint8_t*)(0xB8000))[y*320+x] = pixel
почему нельзя современным программам предоставить такой 0xB8000 адрес и пару регистров вывода? Зачем все эти ритуалы? И да, MMU и protected mode значительно замедляют доступ к памяти, посему современный DOS работал бы на порядок быстрей Windows/Linux. Протекция памяти оправдана только на этапе разработки программы, а для release билда ее лучше отключить, чтобы иметь прямой доступ к реальной памяти.
И я не одинок в негодовании:
https://stackoverflow.com/questions/39430404/drawing-pixels-in-opengl
>I'm using integrated GPU (Intel HD graphics 4000), as far as I know CPU and GPU share the same memory so why is it that I need to download? Why is it impossible to get a pointer?
Начинаю думать, что Unabomber был прав во всем - надо к чертям взорвать офисы мразотных бюрократов из Khronos Group.
−6
Бомбёж по поводу Telegram
Вот что бы там не говорили про право на тайну переписку, а у него есть важное ограничение, о котором все забыли: если человек подозревается в преступлении, то государство имеет полное моральное и юридическое право читать его переписку. А вот Пашка Дуров об этом не знает, либо знает, но намеренно это игнорирует, а потом тысячи глупых хомячков бросают из окон самолётики и обвиняют РКН. Я вот полностью поддерживаю международное уголовное преследование Пашки за пособничество терроризму.
−6
https://github.com/syn2cat/pidor