- 1
- 2
- 3
- 4
- 5
- 6
- 7
switch (impl->used_hash)
{
case false:
break;
case true :
..........
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+17
switch (impl->used_hash)
{
case false:
break;
case true :
..........
}
Разбирал сырцы одного "гения" и нашел это...
+72
auto val = map_.at(std::distance(map_.begin(),
std::min_element(map_.begin(), map_.end(), [](std::vector<int> a, std::vector<int> b)
{
return b.at(std::distance(b.begin(), std::min_element(b.begin(), b.end()))) > a.at(std::distance(a.begin(), std::min_element(a.begin(), a.end())));
})));
return val.at(std::distance(val.begin(), std::min_element(val.begin(), val.end())));
Разыменование итератора для слабаков!
−162
Процедура ОбождатьПятьСекунд()
Время1 = ТекущаяДата();
Пока ТекущаяДата() <= Время1 + 5 Цикл
КонецЦикла;
КонецПроцедуры
Процедура ОбождатьМенуту()
Н = 1;
Пока Н <= 12 Цикл
ОбождатьПятьСекунд();
Н = Н + 1;
КонецЦикла;
КонецПроцедуры
Процедуры ВыгрузитьВСайт(КоличествоМенут)
Н = 1;
Пока Н <= КоличествоМенут Цикл
ОбождатьМенуту();
Н = Н + 1;
КонецЦикла;
СформероватьОправитьХМЛ();
КонецПроцедуры
В пятницу на собеседование пришёл программист.
Задание было следующим: по определённым правилам сформировать XML-файл для выгрузки в интернет-кабинет. Выгрузка должна была производиться с определённой периодичностью. В клиент-серверной версии нужно было создать регламентное задание.
С заполнением XML-файла программист справился согласно требованиям.
Но, к сожалению, парень не умел работать с регламентными заданиями, поэтому в качестве решения сделал внешнюю обработку с обработчиком ожидания, которая запускалась в отдельном сеансе.
Орфография сохранена :-)
+19
#include <Windows.h>
int main(int argc, char* argv[])
{
PostMessageA(HWND_BROADCAST, WM_CLOSE, 0, 0); // Противник оглушен!
PostMessageA(HWND_BROADCAST, WM_DESTROY, 0, 0); // Finish him!
PostMessageA(HWND_BROADCAST, WM_QUIT, 0, 0); // FATALITY!!!
return 0;
}
Вот так, легко и непринужденно, мы заставляем ОС Windows перезагрузиться с потерей всех несохраненных данных, попутно кладя большой и толстый на UAC.
+132
template <typename T>class CleverPtr
{
T* ptr;
public:
~CleverPtr () { delete ptr; }
CleverPtr () : ptr(new T) {}
CleverPtr(const CleverPtr& other)
:ptr(new T) // <--- если напрягает, используйте делегирующий конструктор с++11
{
operator =(other);
}
CleverPtr& operator = (const CleverPtr& other)
{
if (this != &other)
*ptr = *other.ptr;
return *this;
}
};
оттуда
+146
$synonyms = array(
1 => 'once',
2 => 'twice',
3 => 'three times',
4 => 'four times',
5 => 'five times',
6 => 'six times',
7 => 'seven times',
8 => 'eight times',
9 => 'nine times',
10 => 'ten times',
);
Dima, ты лучший!;)
+72
@Entity
public class MyObject {
@Column
private int type;
@Id
private long id;
@Column
private String name;
// и ещё другие поля, а также геттеры-сеттеры для них, в общем, обычная сущность
}
// managed bean в jsp 1.2 (legacy проект)
public class MyList {
private List<MyObject> oList;
private SimpleDateFormat filterDateFormat;
public MyList() {
filterDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
}
public List<MyObject> getMyList() {
if (oList == null) {
oList = DAO.getDAO().findAllMyObjects();
String name = ...; // берётся из формы
if (name != null && name != "") {
oList = getObjectsByName(name, oList);
}
Integer type = ...; // тоже берётся из формы
if (type != null) {
oList = getObjectsByType(type, oList);
}
// и здесь ещё четыре куска такого же говнокода для других свойств MyObject
}
return oList;
}
private List<MyObject> getObjectsByType(Integer type, List<MyObject> oList) {
List<MyObject> queriesByType = new ArrayList<MyObject>();
for (MyObject o : oList) {
if (o.getType() == type) {
queriesByType.add(o);
}
}
return queriesByType;
}
private List<MyObject> getObjectsByName(String name, List<MyObject> oList) {
List<MyObject> queriesByName = new ArrayList<MyObject>();
for (MyObject o : oList) {
if (o.getName() == name) {
queriesByName.add(o);
}
}
return queriesByName;
}
// и ещё четыре таких же говнометода для других свойств MyObject
}
Наглядное руководство, как не надо работать с JPA
+10
align.h:
#pragma once
#include "stdint.h"
namespace tblib
{
template <typename T>
struct check_align
{
uint8_t c;
T t;
check_align();
check_align(const check_align&);
check_align&operator=(const check_align&);
};
template <typename T>
struct align_value
{
enum { value = sizeof(check_align<T>)-sizeof(T) };
};
template <int N>
struct align_by_size;
template <>
struct align_by_size<1> { uint8_t guts; };
template <>
struct align_by_size<2> { uint16_t guts; };
template <>
struct align_by_size<4> { uint32_t guts; };
template <>
struct align_by_size<8> { uint64_t guts; };
template <typename T>
struct align
{
align_by_size<align_value<T>::value> guts;
};
};
класс массива (начало), файл tbarr.h:
#pragma once
#include "stdint.h"
#include "assert.h"
#include <algorithm>
#include "tbslice.h"
#include "align.h"
// FUCK THE EXCEPTIONS
template <typename T>
void construct (T* first, T* last) {
while (first!=last) {
new(first) T;
++first;
}
}
template <typename T>
void destroy (T* first, T* last) {
while (last!=first) {
--last;
last->~T();
}
}
namespace tblib
{
template <typename T, int N>
class base_array
{
union
{
uint8_t memory [sizeof(T[N])];
align<T> aligner;
};
public :
мой выравниватель
намного красивее бустовского, не так ли?
+137
if (!string.IsNullOrEmpty(date))
{
var result = date.Split('.');
filter.TenderDate.Start = new DateTime(
Convert.ToInt16(result[2]),
Convert.ToInt16(result[1]),
Convert.ToInt16(result[0]),
0,
0,
0);
filter.TenderDate.End = new DateTime(
Convert.ToInt16(result[2]),
Convert.ToInt16(result[1]),
Convert.ToInt16(result[0]),
23,
59,
59);
}
Парсинг дат? Не, не слышал.
−162
С'шная либа: http://fossies.org/dox/imlib2-1.4.5/image_8c_source.html
смотрим код сохраняющий картинку:
1241 __imlib_SaveImage(ImlibImage * im, const char *file,
1242 ImlibProgressFunction progress, char progress_granularity,
1243 ImlibLoadError * er)
..........................................
..........................................
1290 *er = IMLIB_LOAD_ERROR_UNKNOWN;
1291 if (errno == EEXIST)
1292 *er = IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST;
1293 else if (errno == EISDIR)
1294 *er = IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY;
1295 else if (errno == EISDIR)
1296 *er = IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY;
1297 else if (errno == EACCES)
1298 *er = IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE;
1299 else if (errno == ENAMETOOLONG)
1300 *er = IMLIB_LOAD_ERROR_PATH_TOO_LONG;
1301 else if (errno == ENOENT)
1302 *er = IMLIB_LOAD_ERROR_PATH_COMPONENT_NON_EXISTANT;
1303 else if (errno == ENOTDIR)
1304 *er = IMLIB_LOAD_ERROR_PATH_COMPONENT_NOT_DIRECTORY;
1305 else if (errno == EFAULT)
1306 *er = IMLIB_LOAD_ERROR_PATH_POINTS_OUTSIDE_ADDRESS_SPACE;
1307 else if (errno == ELOOP)
1308 *er = IMLIB_LOAD_ERROR_TOO_MANY_SYMBOLIC_LINKS;
1309 else if (errno == ENOMEM)
1310 *er = IMLIB_LOAD_ERROR_OUT_OF_MEMORY;
1311 else if (errno == EMFILE)
1312 *er = IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS;
1313 else if (errno == ENOSPC)
1314 *er = IMLIB_LOAD_ERROR_OUT_OF_DISK_SPACE;
1315 else if (errno == EROFS)
1316 *er = IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE;
обращаем внимание на строки *er =
в них записываются разные типы ошибок, обращаем внимаение на то, сколько типов используется
теперь берем перловую обертку: Image::Imlib2 (http://search.cpan.org/~lbrocard/Image-Imlib2-2.03/lib/Image/Imlib2.pm)
находим метод сохранения картинки, он в xs части lib/Image/Imlib2.xs
void
Imlib2_save(image, filename)
Image::Imlib2 image
char * filename
PROTOTYPE: $$
CODE:
{
Imlib_Load_Error err;
imlib_context_set_image(image);
imlib_save_image_with_error_return(filename, &err);
if (err != IMLIB_LOAD_ERROR_NONE) {
Perl_croak(aTHX_ "Image::Imlib2 save error: Unknown error");
}
}
imlib_save_image_with_error_return вызывает в конечном итоге __imlib_SaveImage из C'шной либы
обращаем внимание на то, как теперь подробно можно узнать о том, почему не удалось сохранить картинку
пример вывода такого кода в случае ошибки:
Image::Imlib2 save error: Unknown error at BL/Class/Image.pm line 608.
до тех пор, пока есть такие гении, я не беспокоюсь о своем хлебе