-
Лучший говнокод
- В номинации:
-
- За время:
-
-
0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
> https://habr.com/ru/post/518308/
> Мне надоело, что индустрия зависит от прихоти создателей языков программирования. Сообществу нужно больше власти
> В языках вечно не хватает чего-то простого — лямбда-функций,
> именованных объединений, кастомных примитивных типов. Я лезу
> в обсуждения на Stack Overflow, в Github и вижу, как разрабы жалуются
> — им не хватает того же, чего и мне. Но обсуждения почти всегда
> заканчиваются одинаково: нужная фича не появится, потому что
> главный дизайнер языка и члены его команды нужной ее не считают.
Именно поэтому я за Си. Хорошо что есть крестопарашная помойка, в которую дизайнеры языка добавляют всякую хуйню по желанию каждого встречного и поперечного. Если б такого не было, всю эту поебень пытались бы пропихнуть в Си. Так что от крестопараши определенно есть какая-то польза.
j123123,
09 Сентября 2020
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
// sorry, I don't want to use any JS templater
// so I'll concatenate html as strings, which is the worst practice
// but my IntelliJ IDEA highlights html in strings well :)
// and I write this code just4fun
//
// but to respect production I'll leave here something that will never be fixed
// TODO: rewrite in Angular.js
//
// done!
// ...
// u still read this spaghetti?
let evaluate = (s) => {
completion = [];
hist = [];
let tokens = s.split(' ').filter((s) => s !== '');
if (!tokens[0]) return;
histfile.push(s);
if (tokens[0] === 'clear') clear();
else if (tokens[0] === 'aplay') aplay();
else if (tokens[0] === 'man') try {
template(tokens.slice(0, 2).join('_'))();
} catch {
stdout('No manual entry for <span class="red">' + tokens[1] + '</span>')
}
Сайт-визитка на plain js для подкаста в виде эмулятора терминала с пасхалками
https://deveeps.prost.host/
vistefan,
19 Февраля 2020
-
−3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
1)
const
OUT_OF_BOUNDS:TPoint=(X:-1; Y:-1);
var
INT_OUT_OF_BOUNDS:Integer absolute OUT_OF_BOUNDS;
TargetForm.Perform(WM_LBUTTONUP,0,INT_OUT_OF_BOUNDS);
2)
const
ZERO_ZERO:TPoint=(X:0; Y:0);
var
INT_ZERO_ZERO:Integer absolute ZERO_ZERO;
TargetForm.Perform(WM_LBUTTONUP,0,INT_ZERO_ZERO);
3)
TargetForm.Perform(WM_LBUTTONUP,0,0);
Болею. Стояла задача воспроизвести системное меню. Но оказалось, что при клике на элемент фейкового системного меню, форме не посылается WM_LBUTTONUP и кнопка-иконка не перекрашивается в ненажатый вид. Решил перформить WM_LBUTTONUP прямо при клике, но туда нужно передавать координаты мышки куда был совершён клик в High(lParam) и Low(lParam). Сначала хотел передавать -1;-1 но подумал что передавать туда $FFFFFFFF как-то некрасиво, а прямое приведение типов а-ля Integer(Point(-1,-1)) оно у меня хавать не захотело, и поэтому красоты ради наговнокодил первый вариант кода. Потом подумал, а что если там только положительные значения, будет же 65535;65535 непорядок, лучше буду передавать нули. Впихнуть туда просто 0 сразу в голову не пришло (болею же, башка квадратная) и наговнокодил второй вариант.
Потом, конечно же, написал всё по нормальному.
KOTOM,
07 Января 2020
-
−16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
https://habr.com/ru/company/alfa/blog/447416/
Тестирование от профессионалов показало, что одинарные кавычки в "PHP" быстрее двойных; а, между тем,
именно по одинарным кавычкам я всегда и тёк (двойные вечно казались мусором). Всегда, после того, как я
машинально-нервически производил в чужом коде замену двойных кавычек на одинарные после мамкиных
дипломатов влажных "Курсов PHP за две недели", замечал, что код начинает работать значительно быстрее.
Поэтому я за "PHP" - в нём задачи оптимизации работы сайтов решаются проще пареного хуя.
SteadfastTinCock,
09 Июля 2019
-
−2
- 1
- 2
- 3
- 4
1) Логинимся в почту mail.ru в другом городе.
2) Приходит письмо безопасности, что выполнен подозрительный вход в ваш аккаунт.
3) Сразу же удаляем письмо.
4) Какой багор )))
AHCKuJlbHblu_nemyx,
17 Июня 2019
-
0
- 1
return f() <= x->size() ? true:false;
Классика?
syoma,
20 Февраля 2018
-
0
- 1
https://pastebin.com/pk5bB1Y4
Я вам покушать принес. Задача кратко и четко объяснить человеку, почему лучше обмазаться дотнетом чем винапи. Пока решил написать группе что следующий факультатив (на котором я должен разбирать их портянки) отменяется, а там что-нибудь придумаю. Две крайности - (new EchoServer).start() и вот это, что ты будешь делать.
Fluttie,
18 Октября 2017
-
+2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
// p2.cpp : Defines the entry point for the console application.
// Язык Visual C++ 7.0
// Консольное приложение
// 13.07.2016
#include "stdafx.h"
#include <conio.h>
int aa (int, int, int);
void ab (int);
int _tmain(int argc, _TCHAR* argv[])
{
int a, b, c, d, e;
int f;
for (a = 0; a < 4; a++)
for (b = 0; b < 4; b++)
for (c = 0; c < 4; c++)
for (d = 0; d < 4; d++)
for (e = 0; e < 4; e++)
{
f = aa (1, a, 2);
f = aa (f, b, 3);
f = aa (f, c, 4);
f = aa (f, d, 5);
f = aa (f, e, 6);
if (f == 35)
{
printf ("((((1 "); ab (a);
printf ("2) "); ab (b);
printf ("3) "); ab (c);
printf ("4) "); ab (d);
printf ("5) "); ab (e);
printf ("6 = 35.\n");
}
}
getch ();
return 0;
}
int aa (int a, int b, int c)
{
switch (b)
{
case 0: return a + c;
case 1: return a - c;
case 2: return a * c;
case 3: return a / c;
}
return 0;
}
void ab (int a)
{
switch (a)
{
case 0: printf ("+ "); break;
case 1: printf ("- "); break;
case 2: printf ("* "); break;
case 3: printf ("/ "); break;
}
}
Задача: В написанном выражении ((((1 ? 2) ? 3) ? 4) ? 5) ? 6 вместо каждого знака ? вставить знак одного из четырёх арифметических действий: +, -, *, / так, чтобы результат вычислений равнялся 35.
FrontlineReporter,
13 Июля 2016
-
+2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
template <typename T, typename ...Args>
std::future<T> looped_thread::add_task(std::function<T(Args...)> func, Args ...args) {
std::packaged_task<T()> task(std::bind(func,args...));
std::future<T> fut = task.get_future();
std::lock_guard<std::mutex> lock(_mutex);
/*std::queue<std::function<void()>>*/ _tasks.push(/*std::packaged_task<T()> -> std::function<void()> ??*/);
/*std::condition_variable*/ _cv.notify_one();
return std::move(fut);
}
Задача: написать собственный пул потоков с блекджеком и шлюхами
Подзадача: реализовать метод, добавляющий функтор в очередь команд и возвращающий std::future
Что не так: std::packaged_task не конвертируется в std::future. Он не копируется, а поэтому:
а. его нельзя передать через std::bind;
б. при захвате через с++14 lambda capture expressions (аля
auto f = [t = std::move(task)](){/**/};
) мы получаем t типа const std::packaged_task (мб это особенность mingw, конечно, но один фиг работать должно везде). Ни выполнить, ни мувнуть, ни скопировать. mutable в спецификации лямбды не помогает
в. Примерно все те же самые проблемы возникают при попытке обернуть packaged_task в unique_ptr
г. если чуть-чуть погуглить, можно найти кучу страшных решений через виртуальные методы, наследование, оборачивание packaged_task в shared_ptr и пр. Например: https://rsdn.ru/forum/cpp/5824551.all
Но есть куда более простое и изящное решение. Угадаете?
Antervis,
12 Мая 2016
-
+2
- 1
https://habrahabr.ru/post/280121/
RestAPI в 2016 году. Отсосите, любители фреймворков и оттестированных библиотек
loki90,
24 Марта 2016