-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+25189
- 1
- 2
- 3
- 4
Обратил внимание, что сток превратился в обычное обсуждение в чате.
Все читают всех, оффтопят, и похер в каком треде. А также когда я проверяю новые сообщения, хожу в телеграм, потом на хуз.
Поэтому создал бота в телеге, который фактически повторяет функционал стока + можно оставлять комменты (конечно же они будут от guest8).
По-моему получилось охуенно.
http://t.me/GovnokodBot
- посылаются посты и комменты
- работает отправка и редактирование
- если кто-то постит ссылку на картинку или youtube, телега автоматически отображает превью - удобно
- нужно использовать bbcode
- markdown -> bbcode - в TODO
guest8,
20 Мая 2019
-
+2591
- 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
KeyFactory keyFactory = new KeyFactory();
KeyObj keyObj = keyFactory.getKeyObj(wParam);
keyObj.doStuff();
class VK_F11 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class VK_F12 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class KeyFactory {
public KeyObj getKeyObj(int param) {
switch(param) {
case VK_F11:
return new VK_F11();
case VK_F12:
return new VK_F12();
}
throw new KeyNotFoundException("Key " + param + " was not found!");
}
}
Казалось бы, что может быть проще работы с GPIO?
CYB3R,
19 Августа 2016
-
+2424
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
// Most profiles should run only on one loader (they don't coordinate multiple instances,
// and do not test performance).
// We explicitly specify that some profiles should run on multiple loaders:
singleLoader := true
switch params.Config.Foo.Profile.Name() {
case (*foo_config.ProfileIO).Name(nil):
singleLoader = false
}
if singleLoader {
// Setting TargetLoaders to a single random loader.
}
Вот думаем подарить человеку книжку про судоку, а то творческую натуру негде применить.
wvxvw,
24 Августа 2016
-
+2302
- 1
- 2
- 3
- 4
- 5
http://govnokod.ru/20924
Запрашиваемая страница не найдена!
Возможно, её и не было никогда
http://dump.bitcheese.net/files/pimarut/%D0%93%D0%BE%D0%B2%D0%BD%D0%BE%D0%BA%D0%BE%D0%B4_%2320924_%E2%80%94_C___%E2%80%94_%D0%93%D0%BE%D0%B2%D0%BD%D0%BE%D0%BA%D0%BE%D0%B4.%D1%80%D1%83.html
но бекап я сделал, так что хуй вам. Я требую продолжения банкета.
j123123,
24 Августа 2016
-
+2009
- 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
KeyFactory keyFactory = new KeyFactory();
KeyObj keyObj = keyFactory.getKeyObj(wParam);
keyObj.doStuff();
class VK_F11 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class VK_F12 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class KeyFactory {
public KeyObj getKeyObj(int param) {
switch(param) {
case VK_F11:
return new VK_F11();
case VK_F12:
return new VK_F12();
}
throw new KeyNotFoundException("Key " + param + " was not found!");
}
}
Казалось бы, что может быть проще работы с GPIO?
CYB3R,
19 Августа 2016
-
+2004
- 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
// ==UserScript==
// @name GK refine
// @version 0.1
// @description opens comments on govnokod.ru... etc
// @match http://govnokod.ru/*
// @match http://www.govnokod.ru/*
// @grant none
// ==/UserScript==
// Показывает в стоке "new" около нового комментария
// и пишет, сколько времени назад его оставили
(function(){
if(location.pathname != '/comments') return;
var key = 'fcd0d66f-9ff0-4827-82f1-e183dc1ab98c-last-time';
var lastTime = localStorage[key] ? +localStorage[key] : 0;
var now = new Date();
$('abbr.published').each(function(){
var d = + new Date($(this).attr('title'));
$(this).text(((now-d) / 1000 / 60).toFixed(2) + 'm');
if(d > lastTime) $(this).after('<span style="color: red">NEW </span>');
});
localStorage[key] = +now;
})();
// Открывает скрытые комменты
$("div.entry-comment-hidden").removeClass('entry-comment-hidden');
Смотрю, а багры в стоке комментарий подменяют, чтобы пользователи не видели, где новый багор, а где старый.
Я только сейчас это понял потому, что у меня около непросмотренного в стоке пишется "NEW" уже несколько месяцев.
Запилил потому, что даже без багров не помнил, что открыл, а что нет. А тут в тему будет для тех, у кого платного аккаунта нет.
1024--,
21 Августа 2016
-
+2000
- 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
unsigned int get_spoofed() {
char spa[21];
int a, b, c, d;
srand(time(0));
random_ct = rand();
random_num = ((random_ct % 254) + 1);
a = random_num;
random_ct = rand();
random_num = ((random_ct % 254) + 1);
b = random_num;
random_ct = rand();
random_num = ((random_ct % 254) + 1);
c = random_num;
random_ct = rand();
random_num = ((random_ct % 254) + 1);
d = random_num;
snprintf(spa, sizeof(spa), "%d.%d.%d.%d", a, b, c, d);
return ((unsigned int)host2ip(spa));
}
Ддосбот для роутеров https://github.com/eurialo/lightaidra/blob/master/source/utils.c
nyaknyan,
20 Августа 2016
-
+1873
- 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
function translate_a_name_of_the_winter_to_the_foreign_language(language: String): String;
begin
if language = 'авестийский' Result := 'zimō'
else if language = 'белорусский' Result := 'зіма'
else if language = 'болгарский' Result := 'зима'
else if language = 'верхнелужицкий' Result := 'zyma'
else if language = 'греческий' Result := 'χειμώνας'
else if language = 'древнепрусский' Result := 'semo'
else if language = 'латинский' Result := 'hiems'
else if language = 'латышский' Result := 'ziema'
else if language = 'литовский' Result := 'žiema'
else if language = 'македонский' Result := 'зима'
else if language = 'нижнелужицкий' Result := 'zyma'
else if language = 'осетинский' Result := 'зымӕг'
else if language = 'польский' Result := 'zima'
else if language = 'русский' Result := 'зима'
else if language = 'санскрит' Result := 'hima'
else if language = 'сербский' Result := 'зима'
else if language = 'словацкий' Result := 'zima'
else if language = 'словенский' Result := 'zima'
else if language = 'талышский' Result := 'зымыстон'
else if language = 'таджикский' Result := 'зимистон'
else if language = 'украинский' Result := 'зима'
else if language = 'хорватский' Result := 'zima'
else if language = 'чешский' Result := 'zima'
end;
Из одного очень серьёзного проекта.
Amayak_Akopyan,
20 Августа 2016
-
+1514
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
[151] ns-flow-pair-entry(n,c) ::= ns-flow-pair-yaml-key-entry(n,c)
| c-ns-flow-map-empty-key-entry(n,c)
| c-ns-flow-pair-json-key-entry(n,c)
[152] ns-flow-pair-yaml-key-entry(n,c) ::= ns-s-implicit-yaml-key(flow-key)
c-ns-flow-map-separate-value(n,c)
[153] c-ns-flow-pair-json-key-entry(n,c) ::= c-s-implicit-json-key(flow-key)
c-ns-flow-map-adjacent-value(n,c)
[154] ns-s-implicit-yaml-key(c) ::= ns-flow-yaml-node(n/a,c) s-separate-in-line?
/* At most 1024 characters altogether */
[155] c-s-implicit-json-key(c) ::= c-flow-json-node(n/a,c) s-separate-in-line?
/* At most 1024 characters altogether */
If the “?” indicator is omitted, parsing needs to see past the implicit key to recognize it as such. To limit the amount of lookahead required, the “:” indicator must appear at most 1024 Unicode characters beyond the start of the key. In addition, the key is restricted to a single line.
Note that YAML allows arbitrary nodes to be used as keys. In particular, a key may be a sequence or a mapping. Thus, without the above restrictions, practical one-pass parsing would have been impossible to implement.
Столкнулся, значит, с проблемой. ЙАМЛ парсер для Го не может распарсить даже примеры из спецификации.
Заглянул в исходники - ад и погибель. Копипаста сишного кода из libyaml с косметическими изменениями. Функции по 200+ строк с кучей ифов, регулярками и т.п. Решил заглянуть в спецификацию в надежде, что может можно самому как-то... в спецификации - ад и погибель. Копипаста с грамматическими ошибками, и тьма их. Ну а как дошел до этого места, так сразу и понял, что тут уже делать больше нечего.
wvxvw,
19 Августа 2016
-
+1429.9
- 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
bool IsBukva(char symbol)
{
switch(symbol)
{
case'a':return 1;break;
case'b':return 1;break;
case'c':return 1;break;
case'd':return 1;break;
case'e':return 1;break;
case'f':return 1;break;
case'g':return 1;break;
case'h':return 1;break;
case'i':return 1;break;
case'j':return 1;break;
case'k':return 1;break;
case'l':return 1;break;
case'm':return 1;break;
case'n':return 1;break;
case'o':return 1;break;
case'p':return 1;break;
case'q':return 1;break;
case'r':return 1;break;
case's':return 1;break;
case't':return 1;break;
case'u':return 1;break;
case'v':return 1;break;
case'w':return 1;break;
case'x':return 1;break;
case'y':return 1;break;
case'z':return 1;break;
case'A':return 1;break;
case'B':return 1;break;
case'C':return 1;break;
case'D':return 1;break;
case'E':return 1;break;
case'F':return 1;break;
case'G':return 1;break;
case'H':return 1;break;
case'I':return 1;break;
case'J':return 1;break;
case'K':return 1;break;
case'L':return 1;break;
case'M':return 1;break;
case'N':return 1;break;
case'O':return 1;break;
case'P':return 1;break;
case'Q':return 1;break;
case'R':return 1;break;
case'S':return 1;break;
case'T':return 1;break;
case'U':return 1;break;
case'V':return 1;break;
case'W':return 1;break;
case'X':return 1;break;
case'Y':return 1;break;
case'Z':return 1;break;
default:return 0;
}
}
Женский вариант проверки символа на букву.
Оригинал тут: http://forum.vingrad.ru/forum/topic-240593.html
guest,
17 Декабря 2008