-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+83
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
// 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() самому или не юзать буферизованный поток.
bormand,
21 Декабря 2013
-
+166
- 1
if (substr(json_encode($row['list']), 0, 1) == '[') {
Такой вот аналог is_array()
Lowezar,
17 Декабря 2013
-
+13
- 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
typedef std::queue<Msg> Queue;
struct SharedQueue
{
private:
Queue m_queue;
boost::mutex m_mux;
boost::condition_variable m_condvar;
private:
struct is_empty
{
Queue& queue;
is_empty( Queue& q):
queue(q)
{
}
bool operator()() const
{
return !queue.empty();
}
};
public:
void push(const Msg& msg)
{
boost::mutex::scoped_lock lock(m_mux);
m_queue.push( msg);
m_condvar.notify_one();
}
bool try_pop( Msg& msg, Kind kind)
{
boost::system_time const timeout=boost::get_system_time()+ boost::posix_time::milliseconds( 30000);
boost::mutex::scoped_lock lock( m_mux);
if ( m_condvar.timed_wait( lock, timeout, is_empty( m_queue)))
{
if( !m_queue.empty() && m_queue.front().kind == kind)
{
msg = m_queue.front();
m_queue.pop();
return true;
}
}
return false;
}
};
Это ж пипец, дорогие товарищи...
blackhearted,
29 Ноября 2013
-
+130
- 1
List<KeyValuePair<string, string>> documentList = GetList();
использование списка пар ключ-значение вместо словаря (Dictionary<string, string>)
mozg_raka,
22 Ноября 2013
-
+80
TarasB,
13 Ноября 2013
-
+81
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
public boolean hasNext() {
if (vectorIndex == vector.size())
return false;
return true;
}
public Object next() {
try {
return new Double(vector.getElement(vectorIndex));
}
catch(OutOfBoundsException e) {
throw new RuntimeException(e);
}
finally {
vectorIndex++ ;
}
}
Такой вот итератор у начинающего жавера...
d3m0n1c,
14 Октября 2013
-
+159
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
var sym = new Array();
sym["a"]=0;sym["c"]=1;sym["d"]=2;sym["e"]=3;sym["f"]=4;sym["g"]=5;sym["h"]=6;sym["k"]=7;sym["l"]=8;sym["m"]=9;sym["n"]=10;sym["p"]=11;sym["q"]=12;sym["r"]=13;sym["s"]=14;sym["t"]=15;sym["u"]=16;sym["w"]=17;sym["x"]=18;sym["z"]=19;sym["2"]=20;sym["3"]=21;sym["4"]=22;sym["5"]=23;sym["6"]=24;sym["7"]=25;
function convertCode(field)
{
var code = $(field).val().toLowerCase();
var convertedCode = sym[code.charAt(0)];
for (var i = 1; i < code.length; i++)
convertedCode += "_" + sym[code.charAt(i)];
$(field).closest(".captcha-block").find("#captchaCode").val(convertedCode);
}
Я не осилил, что делает это говно? (Сбербанк-Онлайн)
Там еще кодировка win-1251 и тег <head> открывается на 30й строке кода. Нет, я не фанат обфускации, но КАК?!
CRRaD,
20 Августа 2013
-
+69
- 1
- 2
- 3
- 4
- 5
- 6
Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ.
Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!
Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.
Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ.
Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!
Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.
Stertor,
11 Июля 2013
-
+153
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
// проверка при дополнительных надстройках
if (
$this->struct[$num][$v]['changes'] && // если значение было изменено
array_key_exists($v, $this->values) && // и существуют альтернативно назначенные тип поля (select или radio)
isset( $this->values[$v]['vals'] ) && // и также существуют для них значения для значений...
!isset( $this->values[$v]['vals'][ $this->struct[$num][$v]['value'] ] ) // НО, пришедшее значение НЕ СООТВЕТСТВУЕТ
) {
$this->struct[$num][$v]['error'] = 'Неправильно указано значение';
}
Ёжкин кот. Вот чего он хотел этим сказать? И что мне теперь с этим делать теперь?
DoctorHouse,
19 Апреля 2013
-
+153
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
var currentTime = (new Date()).getTime();
var diff = currentTime - this.startTime;
var min = Math.floor(Math.floor(diff/1000)/60);
if (min < 10)
min = "0"+min;
var sec = Math.floor(diff/1000)%60;
if (sec < 10)
sec = "0"+sec;
this.timeLabel.setString("TIME " + min + ":" + sec);
Классика практически, моего творения. Как это можно сделать по-человечески на JS? Всякие jQuary не катят, ибо js встраиваемый.
krypt,
12 Марта 2013