- 1
- 2
Минск 2
Встреча говнокодеров.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+4
Минск 2
Встреча говнокодеров.
#1: https://govnokod.ru/25937 https://govnokod.xyz/_25937
+1
struct Test
{
Array<int> intArray;
int fixedIntArray[3];
bool booleanVal;
float flt;
Array<string> stringArray;
ADD_REFLECTION(Test, intArray, fixedIntArray, booleanVal, flt, stringArray);
};
struct SuperTest
{
Array<string> strArr;
int foo;
string str;
Array<short> vals;
double dbl;
Test tests[3];
ushort bar;
ADD_REFLECTION(SuperTest, strArr, foo, str, vals, dbl, tests, bar);
};
int main()
{
StringView structText = R"({
.strArr = {"str1", "ergvwr", "brt"},
.foo = 5,
.str = "gammaker",
.vals = {-4, 66, 432, -95},
.dbl = 3.1415926535897932384626433832795,
{
{
.fixedIntArray = {9, 4, 85},
.stringArray = {"test 0 A", "test 0 B", "test 0 C"},
.booleanVal = true,
.intArray = {43, 54, 36, 76},
.flt = 1.23456,
.flt = 2.34567
},
{
.intArray = {},
.fixedIntArray = {3655456, 234, 3},
.booleanVal = false,
.flt = 2.718281828,
.stringArray = {"test 1 A", "test 1 B"}
},
{
.intArray = {1531, 1253, 16, 634, 236462363},
.fixedIntArray = {9435, 435, 8355},
.booleanVal = false,
.flt = 123.65,
.stringArray = {"test 2 A", "test 2 B", "test 2 C", "test 2 D"}
}
},
.bar = 1025
})";
Data::TextDeserializer deserializer(Data::DataLanguageParams::CStructInitializer, structText);
SuperTest test = deserializer.Deserialize<SuperTest>();
char charBuf[5000];
Data::TextSerializer serializer(Data::DataLanguageParams::Json, Data::TextSerializerParams::Verbose, ArrayRange<char>(charBuf, 5000));
serializer.NestingLevel=-1;
serializer.Serialize(test);
Console.PrintLine(serializer.GetString());
Data::DataLanguageParams rusML;
rusML.RequireFieldAssignments = false;
rusML.AddFieldNameAfterAssignment = false;
rusML.LeftAssignmentOperator = "равно";
rusML.FieldSeparator = " следующее поле";
rusML.LeftFieldNameBeginQuote = null;
rusML.LeftFieldNameEndQuote = null;
rusML.RightFieldNameBeginQuote = null;
rusML.RightFieldNameEndQuote = null;
rusML.StructInstanceOpen = "начало структуры";
rusML.StructInstanceClose = " структура кончилась";
rusML.OneLineCommentBegin = "комментарий:";
rusML.StringQuote="\"";
rusML.CharQuotes = "";
rusML.ArrayOpen = " массив начался ";
rusML.ArrayClose = " кончился массив ";
rusML.ArrayElementSeparator = " дальше";
rusML.FalseTrueNames[0] = "нет";
rusML.FalseTrueNames[0] = "да";
rusML.DecimalSeparator = ',';
serializer = Data::TextSerializer(rusML, Data::TextSerializerParams::Verbose, ArrayRange<char>(charBuf, 5000));
serializer.NestingLevel=-1;
serializer.Serialize(test);
Console.PrintLine(serializer.GetString());
return 0;
}
Сделал автоматический сериализатор с кучей параметров, используя которые можно описать JSON, инициализаторы C'шных и D'шных структур, подмножество XML или какой-нибудь свой кастомный формат. Здесь показана десериализация сишного инициализатора с designated initializers, который почему-то не добавили в C++. Затем полученная структура сериализуется в JSON (его описание в моём хидере, и здесь не приведено), а затем в придуманный мной ради прикола язык разметки rusML, описание которого можно видеть в коде.
Выводит (табы порезались):
{
"strArr" : ["str1", "ergvwr", "brt"],
"foo" : 5,
"str" : "gammaker",
"vals" : [-4, 66, 432, -95],
"dbl" : 3.141592653589789,
"tests" : [
{
"intArray" : [43, 54, 36, 76],
"fixedIntArray" : [9, 4, 85],
"booleanVal" : true,
"flt" : 2.3456699,
"stringArray" : ["test 0 A", "test 0 B", "test 0 C"]
},
{
"intArray" : [],
"fixedIntArray" : [3655456, 234, 3],
"booleanVal" : false,
"flt" : 2.7182817,
"stringArray" : ["test 1 A", "test 1 B"]
},
{
"intArray" : [1531, 1253, 16, 634, 236462363],
"fixedIntArray" : [9435, 435, 8355],
"booleanVal" : false,
"flt" : 123.6499938,
"stringArray" : ["test 2 A", "test 2 B", "test 2 C", "test 2 D"]
}
],
"bar" : 1025
}
начало структуры
strArr равно массив начался "str1" дальше "ergvwr" дальше "brt" кончился массив следующее поле
foo равно 5 следующее поле
str равно "gammaker" следующее поле
vals равно массив начался -4 дальше 66 дальше 432 дальше -95 кончился массив следующее поле
...
+75
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) throws Exception {
Class cache = Integer.class.getDeclaredClasses()[0];
Field c = cache.getDeclaredField("cache");
c.setAccessible(true);
Integer[] array = (Integer[]) c.get(cache);
array[132] = array[133];
System.out.printf("%d",2 + 2);
}
}
Джаважды джва равно пять
http://ideone.com/1Ap0wW
+115
count c l = length $ filter (c==) l
main = do
l <- getLine
let
f = count '(' l
s = count ')' l
in
print $ f s (f==s)
Посоны, как смешивать монадический код и не монадический?
http://ideone.com/yRGDk
Чистый код let in не хочет в монду.
+206
... else document.write("Ваш браузер не поддерживает JavaScript<br>");
просто нет слов :)
+3
Тред в котором я после обновления rt ядра на обычное нереалтаймовое чиню связку jack2, jack2-dbus и pulseaudio-jack
Задача в том, чтобы корректно стартовал jack_control start, показывался pulseaudio-jack-sink и можно было прокинуть звук из па приложений в джек.
На данный момент утрачена возможность старта, какая-то хуйня с правами или чем-то таким. Юзер у меня задобавлен в группы audio и realtime, для него
написаны какие-то повышенные привилегии. С rt-ядром это работало. Сейчас хуй знает почему, но запущенный от юзера QJackCtl не имеет доступа к
сокетам джек-сервера в /dev/shm, которые все root root.
+10
#ifdef _MSC_VER
template<typename> using void_t = void;
__if_exists(void_t<int>) {}
#endif
Эти строчки превратят Visual Studio 2015 в блокнот с подсветкой синтаксиса.
Для максимального эффекта их следует поместить в stdafx.h или любой другой повсеместно используемый заголовок.
Предположительно, на более старых студиях будет тот же эффект, но я не проверял.
+139
#define LIFMT(X) (long int) (X)
Всё тот же квантовохимический пакет. Что характерно, от обычных кастов дальше никто не отказывается.
+146
huiX5uiPH5;;P5;@@5HH4XPPDXDPhuiX5fiTГ
Было запощено в 11315, но, мне кажется, что этот ГК заслуживает отдельного топика.
Когда-то давно пытался на ассемблере включить видеорежим 320x200x256 (13h) и порисовать. Но XP сменив режим потеряла управление. Помог только ребут. В тот день, матерясь на MS, я и решил написать эту строчку так, чтобы ее можно было вводить с помощью обычного блокнота на любой машине...
Системные требования: Windows XP
Текст набирается в кодировке CP1251. Файл должен иметь расширение COM.
+81
if (f.mColor != null) {
int c = -1;
if (f.mColor.equalsIgnoreCase("aqua")) {
c = 0x00FFFF;
} else if (f.mColor.equalsIgnoreCase("black")) {
c = 0x000000;
} else if (f.mColor.equalsIgnoreCase("blue")) {
c = 0x0000FF;
} else if (f.mColor.equalsIgnoreCase("fuchsia")) {
c = 0xFF00FF;
} else if (f.mColor.equalsIgnoreCase("green")) {
c = 0x008000;
} else if (f.mColor.equalsIgnoreCase("grey")) {
c = 0x808080;
} else if (f.mColor.equalsIgnoreCase("lime")) {
c = 0x00FF00;
} else if (f.mColor.equalsIgnoreCase("maroon")) {
c = 0x800000;
} else if (f.mColor.equalsIgnoreCase("navy")) {
c = 0x000080;
} else if (f.mColor.equalsIgnoreCase("olive")) {
c = 0x808000;
} else if (f.mColor.equalsIgnoreCase("purple")) {
c = 0x800080;
} else if (f.mColor.equalsIgnoreCase("red")) {
c = 0xFF0000;
} else if (f.mColor.equalsIgnoreCase("silver")) {
c = 0xC0C0C0;
} else if (f.mColor.equalsIgnoreCase("teal")) {
c = 0x008080;
} else if (f.mColor.equalsIgnoreCase("white")) {
c = 0xFFFFFF;
} else if (f.mColor.equalsIgnoreCase("yellow")) {
c = 0xFFFF00;
} else {
try {
c = XmlUtils.convertValueToInt(f.mColor, -1);
} catch (NumberFormatException nfe) {
// Can't understand the color, so just drop it.
}
}
Исходники Android 1.5, Html.java:636 .
Неудивительно, что Html.fromHtml() тормозит так, что юзать для списков вообще нельзя, даже один раз.