-
+60.3
- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
std::string basic::_gettime(time_t t)
{
string res;
string tt;
//must be Wdy, DD-Mon-YYYY HH:MM:SS GMT
struct tm *tm_res;
tm_res=gmtime(&t);
switch(tm_res->tm_wday)
{
case 0:
res+="Sun";
break;
case 1:
res+="Mon";
break;
case 2:
res+="Tue";
break;
case 3:
res+="Wed";
break;
case 4:
res+="Thu";
break;
case 5:
res+="Fri";
break;
case 6:
res+="Sat";
break;
default:
throw "Internal error: cgi_app::_gettime(): Day num>6!";
}
res+=", ";
tt=itoa(tm_res->tm_mday);
if(tt.length()==1)
tt="0"+tt;
res+=tt;
res+="-";
switch(tm_res->tm_mon)
{
case 0:
res+="Jan";
break;
case 1:
res+="Feb";
break;
case 2:
res+="Mar";
break;
case 3:
res+="Apr";
break;
case 4:
res+="May";
break;
case 5:
res+="Jun";
break;
case 6:
res+="Jul";
break;
case 7:
res+="Aug";
break;
case 8:
res+="Sep";
break;
case 9:
res+="Oct";
break;
case 10:
res+="Nov";
break;
case 11:
res+="Dec";
break;
default:
throw "Internal error: cgi_app::_gettime(): Month num>11!";
}
res+="-";
tt=itoa(tm_res->tm_year+1900);
res+=tt;
res+=" ";
tt=itoa(tm_res->tm_hour);
if(tt.length()==1)
tt="0"+tt;
res+=tt;
res+=":";
tt=itoa(tm_res->tm_min);
if(tt.length()==1)
tt="0"+tt;
res+=tt;
res+=":";
tt=itoa(tm_res->tm_sec);
if(tt.length()==1)
tt="0"+tt;
res+=tt;
res+=" GMT";
}
Делаю класс для работы с CGI. Сначала хотел использовать какое-нибудь готовое решение, но ничего подходящего не нашел. По общей концепции понравилась библиотека "CGI C++ Library v0.30a". До тех пор, пока не посмотрел исходники более внимательно... Это функция, которая формирует строку для поля заголовка HTTP "Last-Modified".
Ez-Presso,
15 Ноября 2009
-
+51.8
- 1
- 2
- 3
- 4
- 5
- 6
if(p) {
if (p->m_String[0] == 0) {
strcpy("foo", p->m_String);
}
DrawText(hdc, p->m_String, strlen(p->m_String), &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}
и такие веселые куски попадаются в официальном примере написания плагинов на сайте Mozilla
пруф линк - http://mxr.mozilla.org/seamonkey/source/modules/plugin/samples/npruntime/plugin.cpp - строка 750
Coach,
13 Ноября 2009
-
+60.9
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
#if 0
n = NPN_GetStringIdentifier("prompt");
NPVariant vars[3];
STRINGZ_TO_NPVARIANT("foo", vars[0]);
STRINGZ_TO_NPVARIANT("bar", vars[1]);
STRINGZ_TO_NPVARIANT("foof", vars[2]);
NPN_Invoke(sWindowObj, n, vars, 3, &rval);
if (NPVARIANT_IS_STRING(rval)) {
printf ("prompt returned '%s'\n", NPVARIANT_TO_STRING(rval).utf8characters);
}
NPN_ReleaseVariantValue(&rval);
#endif
и это официальный пример написания плагина с сайта Mozilla
пруф линк - http://mxr.mozilla.org/seamonkey/source/modules/plugin/samples/npruntime/plugin.cpp - строка 564
Coach,
13 Ноября 2009
-
+73.2
- 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
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
/*
CANON D-SLR cameras core routine
Property of CANON INC. 1998-2010
v 1.0 made by Radja Tokamoto Goines
v 1.1 made by Dugwin Yakioto jr.
last changes: 10.11.2009
*/
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include "inc/tweakfocus.h"
#include "inc/radja_filters.h"
bool do_focus(lens, camera) {
double fp;
time_t t;
t = init_focus_timer(t);
do {
fp = measure_focus_point(lens);
move_focus(lens, fp)
if (timeout(t))
return false;
} while (!lens.is_focused());
if (!L_LensDetected(lens))
lens.adjust_focus(rand(10));
return true;
}
rawdata * scandata(matrix, lens, camera) {
rawdata *cr;
double noise, aberrations;
cr = create_cr(matrix);
read_exif_info(cr->exif, lens, camera);
prepare_everything(matrix, lens, camera);
if (!do_focus(lens, camera))
return NULL;
else
beep();
aberrations = pow(100 - lens.focallength, 2) * sqrt(2) + 10;
if (L_LensDetected(lens))
aberrations /= 2.0;
scan_sensor(cr, matrix, aberrations);
noise = matrix.iso / 100.0;
noise *= matrix.cropfactor;
if (camera.model == EOS1000D) {
noise *= 1.2;
wait_for_something();
}
if (camera.model != EOS7D)
wait_for_something();
if (lens.manufacture != CANON_LENS) {
corrupt_something(cr);
apply_random_filter(cr);
}
if (lens.model == EF_50_F1_4) {
noise /= 1.2;
apply_fcb(cr); //fucken cool bokeh
}
if (lens.model == CANON_L_17_40_F4) {
blur(cr, 0.8);
distort(cr, 40 - lens.focallength);
}
radja_filter(cr, 1.570796326794896619231321691641); //don't touch that!
if (is_eos1d_series(camera.model))
disable_all_spoiling(cr);
else
make_nice_colors(cr);
// finally...
apply_noise(cr, noise);
apply_barrel_distortion(cr, lens);
apply_pillow_distortion(cr, lens);
return cr;
}
http://habrahabr.ru/blogs/DSLR/74958/
Исходные тексты прошивки canon eos.
Многие, наверное, уже слышали, что на днях была взломана внутренняя сеть компании Canon и в числе прочего в сеть «утёк» кусок ядра исходных текстов прошивки камер серии EOS, который я имею честь эксклюзивно опубликовать на суд общественности.
Говночитатели без ЧЮ идут в *опу.
sbb,
11 Ноября 2009
-
+68.4
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
char rc;
...
bool ResourceManager()
{
static TResourceRC r;
...
delete r;
...
r=new TResourceRC(rc);
...
return true;
assert(false);
};
...
От предков проект достался. Я думал, чего он переодически необьяснимо глючит...
ResourceManager() - вызываеться регулярно в цикле.
Говногость,
11 Ноября 2009
-
+73.7
- 1
- 2
- 3
#include <math.h>
...
result = (thisCos ? cos : sin)(3.140);
Знакомый программист прислал из своего проекта.
Говногость,
10 Ноября 2009
-
+65.9
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
//какой-то .h-файл
namespace Error {
struct Put_error{
const char * Message;
Put_error(const char * e) { Message = e; }
};
...
//в каком-то методе в другом файле
string msg = "Error: cannot open input file " + string(fileInputName) + "\n";
throw Error::Put_error(msg.c_str());
Lexey,
03 Ноября 2009
-
+69.8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
vector<int> :: iterator itBegins = array.begin();
vector<int> :: iterator itEnds = array.end();
while(itBegins != itEnds)
{
pVec.pop_back();
it++;
}
Сей артефакт остался в коде ввиду лености переписывать его в 100 файлах сразу после удаления того, ради чего собственно затевался while(!pVec.empty()) ... прямо скажем - отлов ЭТОГО занял немало времени и нервов... тк на первый взгляд оно должно... а что ты видишь в этом коде, %юзернейм% ?
(исправленная версия XD )
Zeks,
02 Ноября 2009
-
+48.5
- 1
- 2
- 3
- 4
while(!pVec.empty())
{
pVec.pop_back();
}
Сей артефакт остался в коде ввиду лености переписывать его в 100 файлах сразу после удаления того, ради чего собственно затевался while(!pVec.empty()) ... прямо скажем - отлов ЭТОГО занял немало времени и нервов... тк на первый взгляд оно должно... а что ты видишь в этом коде, %юзернейм% ?
Zeks,
02 Ноября 2009
-
+50.7
- 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
namespace inter {
template<typename X>
struct tplClass {
private:
X _priv;
public:
tplClass(const X _generator) {
this->_priv = _generator;
return;
}
tplClass(const tplClass<int>& _a) {
this->_priv = _a.get();
return;
}
const X get(void) const {
return this->_priv;
}
};
template<typename X>
const tplClass<X> operator+(const tplClass<X>& _lha, const tplClass<X>& _rha) {
return tplClass<X>(_lha.get()+_rha.get());
}
}
int main(int argc, char* args[], char* envs[]) {
tplClass<int> a(5);
tplClass<double> b(3.1);
tplClass<double> c = a + b;
return 0;
}
1. Всё упрощено до невозможности. Описано только то, что необходимо для узрения говнокода.
2. Несмотря на то, что решение существует в очень известной книжке, я напоролся на говнокод лично, пока программу писал. Искал несколько дней проблему... Ну да... Бывает...
3. Говнокод заключается в том, что данный код не компилируется.
P.S. Если видите, что где-то есть дыра, то говорите, возможно я опечатался (злобная администрация исправить не даст), возможно в данном коде плюг опущен, возможно дыра у меня в голове. Конструктивная критика приветствуется.
P.P.S. Если вы решили просто написать, что (C++ == "говно") is true , то, пожалуйста, прошу вас как людей порядочных и воспитанных, имеющих совесть и ум, пройдите мимо. Если у вас нит ни ума, ни совести, ни порядочности, то можете писать про "естественную говнистость" C++, милости прошу.
interested,
30 Октября 2009