- 1
- 2
gl.drawArrays(gl.QUADS, 0, 4);
// WebGL рисует черный экран с четырьмя точками.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 168
+167
gl.drawArrays(gl.QUADS, 0, 4);
// WebGL рисует черный экран с четырьмя точками.
bormand vs WebGL. Акт второй.
Как оказалось, в OpenGL ES выпилили GL_QUADS и GL_POLYGON.
Но т.к. в js несуществующее поле это null, а null это 0, а 0 это GL_POINTS, то рисуются 4 точки ;)
+133
// bormand: Ну что, затестим шейдер в WebGL...
int iter = 0;
while (iter < 1000 && length(z) < 2.0) {
z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;
iter++;
}
// compileShader: 'while' : This type of loop is not allowed
// bormand: WTF?! В обычном OpenGL же работало, ну ок...
int iter = 0;
for (; iter < 1000; iter++) {
if (length(z) < 2.0)
break;
z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;
}
// compileShader: 'for' : Missing init declaration
// bormand: Да что за херня!?
for (iter = 0; iter < 1000; iter++) {
// compileShader: 'for' : Invalid init declaration
// bormand: Подавись, сука!
int iters = -1;
for (int iter = 0; iter < 1000; iter++) {
if (length(z) < 2.0) {
iters = iter;
break;
}
z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;
}
// compileShader: ok.
bormand vs WebGL
+34
class cxx_query {
elements operator()(const std::string &css_query);
void operator()(std::function<void()> callback);
http_request get(const std::string &url);
// ...
} $;
#define function []
$(function() {
$.get(some_url, function(const std::string &data) {
$("#result").html(data);
});
});
+83
// java.io.FilterOutputStream
public void close() throws IOException {
try {
flush();
} catch (IOException ignored) {
}
out.close();
}
// тестовый код
try (OutputStream os = new BufferedOutputStream(new FileOutputStream("/tmp/little_virtual_fs/1.txt"))) {
byte[] buf = new byte[2028544];
os.write(buf, 0, 2028544); // максимальный размер файла, который влезает на нашу фс
os.write(buf, 0, 5); // и еще немножко
//os.flush();
}
А сейчас, на арене нашего цирка - очередная жабопроблема!
Как думаете, каков результат выполнения тестовой программы?
Запишет 2028549 байт? Хрен там, места маловато.
Выдаст IOException на write()? Хрен там, буферизация.
Выдаст IOException на close()? Хрен там, его сожрала реализация FilterOutputStream.
Результат: файл не дописался, исключения нет.
Решение: всегда дергать flush() перед close() самому или не юзать буферизованный поток.
+72
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHMD5ANDTRIPLEDES");
PBEKeySpec spec = new PBEKeySpec(password, salt, 1024, 128);
SecretKey key = factory.generateSecret(spec);
hexdump(key.getEncoded());
http://ideone.com/bVElQG
Не, ну я все понимаю, PKCS #5 1.5 аля PBE, MD5 и DES не считаются безопасными алгоритмами... но не настолько же...
−130
[Embed(source="../../assets/dtmf/dtmf-0.mp3")]
[Bindable]
public var dtmf0 : Class;
// ...еще десяток звуков ...
[Embed(source="../../assets/dtmf/dtmf-star.mp3")]
[Bindable]
public var dtmfstar : Class;
private function clickHandler(key : String) : void {
var dtmf : Object = {
"0": dtmf0, "1": dtmf1, "2": dtmf2,
"3": dtmf3, "4": dtmf4, "5": dtmf5,
"6": dtmf6, "7": dtmf7, "8": dtmf8,
"9": dtmf9, "*": dtmfstar, "#": dtmfhash
};
var sound : Sound = new dtmf[key]() as Sound;
sound.play();
dispatchEvent(new DataEvent('dialpadKey', false, false, key));
}
Как говорится, от пыхи и от флеша не зарекаются... Вот и мне пришлось на пару-тройку дней связаться с флешем флексом.
Вот такой вот код я высрал написал сегодня ;)
+139
// drivers/usb/serial/cp210x.c
static void cp210x_close(struct usb_serial_port *port)
{
usb_serial_generic_close(port);
cp210x_set_config_single(port, CP210X_IFC_ENABLE, UART_DISABLE);
}
Дело было так.
На прошлой неделе, по просьбе одного знакомого, я сел писать прошивку для attiny2313, которая должна принять по RS-232 строчку и исполнить соответствующую команду. Потратив несколько минут на раскур даташита, а именно главы, посвященной USART, я набросал тупейший код на сях, залил его на чип, и затестил через миником. Все работало нормально, ничто не предвещало беды...
Но когда я попробовал послать команду через echo, меня ждал облом. Она не выполнилась. На 10 раз проверил код - все ок, в миникоме пашет идеально, через echo - куй. Под виндой та же ересь. Чем отличается echo от миникома? Правильно, тем, что оно отправляет символы подряд, без пауз. Контроллер тактировался от внутренного генератора, поэтому я подумал, что оный хреново откалиброван, и что надо бы его настроить... Вечер ушел на написание прошивки для калибровки... Оказалось, что частота действительно уплыла на 2% от расчетной, что некритично. Ну да пофиг, откалибровался до +-0.5%. Запустил echo - куй. Послал все нахрен, и пошел спать...
(Продолжение в комменте ниже)
+10
int ScriptArrow;
...
// проверим а есть ли в натуре скрипт по этому указателю
try
{
RunScript = (Script*)ScriptArrow;
RunScript->Script.ArrVar.count();
}
catch (...)
{
RunScript = NULL;
}
Проверка, в натуре. Авторский комментарий сохранен :)
−98
rows = db.query_all("select id, command from всякие-заджойненные-таблички")
foreach row in rows:
if row[1] == command:
return row[0]
return None
Высрал сегодня на работе. Пока пых не трогал - такого говна не писал ;)
+22
printf("Куда все подевались? Ни одного коммента за два дня...\n");