- 1
15000 гет!
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+352
15000 гет!
Багровые войны гетам не помеха.
+1345
# Далее перечислены все флаги, с помощью которых выбирается то или иное поведение различных копий сайтов.
#
# INSTANCE_SPECIFIC_DJANGO_DEBUG
# В какое значение установить DEBUG переменную Джанго (желтые страницы с ошибками 500).
# True - показывать желтые страницы (для копий программистов)
# False - не показывать (вместо этого показаь 500.html шаблон) - для боевой копии
#
# INSTANCE_SPECIFIC_DJANGO_DEBUG_STATIC
# Надо ли в Урл Паттернс Джанги добавить media и static и обслуживать их Джангой
# True - да, используется для копии сайта программистов
# False - нет, используется для демонстрационной и боевой копии
# (там nginx обрабатывает статику и STATIC_URL в этом случае будет такой чтобы указывать на nginx)
# Все копии программистов. Что значает эта секция см. комменты чуть выше.
if INSTANCE_ROOT.startswith('/var/www/elin_800'):
INSTANCE_SPECIFIC_DJANGO_DEBUG = True
INSTANCE_SPECIFIC_DJANGO_DEBUG_STATIC = True
# Демонстрационная копия. Что значает эта секция см. комменты чуть выше.
elif INSTANCE_ROOT == '/var/www/dev.example.ru':
INSTANCE_SPECIFIC_DJANGO_DEBUG = False
INSTANCE_SPECIFIC_DJANGO_DEBUG_STATIC = False
Файл настроек джанги, доставшийся мне от аутсорсера
+2009
KeyFactory keyFactory = new KeyFactory();
KeyObj keyObj = keyFactory.getKeyObj(wParam);
keyObj.doStuff();
class VK_F11 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class VK_F12 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class KeyFactory {
public KeyObj getKeyObj(int param) {
switch(param) {
case VK_F11:
return new VK_F11();
case VK_F12:
return new VK_F12();
}
throw new KeyNotFoundException("Key " + param + " was not found!");
}
}
Казалось бы, что может быть проще работы с GPIO?
+2591
KeyFactory keyFactory = new KeyFactory();
KeyObj keyObj = keyFactory.getKeyObj(wParam);
keyObj.doStuff();
class VK_F11 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class VK_F12 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class KeyFactory {
public KeyObj getKeyObj(int param) {
switch(param) {
case VK_F11:
return new VK_F11();
case VK_F12:
return new VK_F12();
}
throw new KeyNotFoundException("Key " + param + " was not found!");
}
}
Казалось бы, что может быть проще работы с GPIO?
+1514
[151] ns-flow-pair-entry(n,c) ::= ns-flow-pair-yaml-key-entry(n,c)
| c-ns-flow-map-empty-key-entry(n,c)
| c-ns-flow-pair-json-key-entry(n,c)
[152] ns-flow-pair-yaml-key-entry(n,c) ::= ns-s-implicit-yaml-key(flow-key)
c-ns-flow-map-separate-value(n,c)
[153] c-ns-flow-pair-json-key-entry(n,c) ::= c-s-implicit-json-key(flow-key)
c-ns-flow-map-adjacent-value(n,c)
[154] ns-s-implicit-yaml-key(c) ::= ns-flow-yaml-node(n/a,c) s-separate-in-line?
/* At most 1024 characters altogether */
[155] c-s-implicit-json-key(c) ::= c-flow-json-node(n/a,c) s-separate-in-line?
/* At most 1024 characters altogether */
If the “?” indicator is omitted, parsing needs to see past the implicit key to recognize it as such. To limit the amount of lookahead required, the “:” indicator must appear at most 1024 Unicode characters beyond the start of the key. In addition, the key is restricted to a single line.
Note that YAML allows arbitrary nodes to be used as keys. In particular, a key may be a sequence or a mapping. Thus, without the above restrictions, practical one-pass parsing would have been impossible to implement.
Столкнулся, значит, с проблемой. ЙАМЛ парсер для Го не может распарсить даже примеры из спецификации.
Заглянул в исходники - ад и погибель. Копипаста сишного кода из libyaml с косметическими изменениями. Функции по 200+ строк с кучей ифов, регулярками и т.п. Решил заглянуть в спецификацию в надежде, что может можно самому как-то... в спецификации - ад и погибель. Копипаста с грамматическими ошибками, и тьма их. Ну а как дошел до этого места, так сразу и понял, что тут уже делать больше нечего.
+452
const CHANGE_TYPE_ADD = 'add';//add elem in groups
const CHANGE_TYPE_CHANGE = 'change';//add elem
const CHANGE_TYPE_RECHANGE = 'rechange';//edit elem
const CHANGE_TYPE_EDIT = 'edit';//delete element from groups
const CHANGE_TYPE_DEL = 'del';//delete element
Кручу-верчу, запутать хочу
−256
var handler = new HttpClientHandler
{
Proxy = usingProxy ? new WebProxy(proxyURI) : null,
UseProxy = usingProxy,
UseCookies = true,
CookieContainer = new CookieContainer()
};
if (session != null)
{
handler.CookieContainer.Add(new Uri(URL), new Cookie("PHPSESSID", session));
}
using (var client = new HttpClient(handler))
{
var content = new FormUrlEncodedContent(postParams);
var responseTask = client.PostAsync(url, content);
responseTask.Wait();
var responseStringTask = responseTask.Result.Content.ReadAsStringAsync();
responseStringTask.Wait();
var cookies = handler.CookieContainer.GetCookies(new Uri(URL));
session = cookies["PHPSESSID"].Value;
return responseStringTask.Result;
}
Синхронный асинхронный код.
−320
string Char2Hex(char ch)
{
StringWriter w = new StringWriter();
w.Write("\\u{0:x4}", (int)ch);
return w.ToString();
}
+366
var organizations =
test.ExtensionInformation.Cast<object>()
.Select(ext => ext as GenericPair<string, string>)
.Where(pair => pair.first == "{$idSenderOrganization}")
.Where(pair =>
{
int o_O;
return int.TryParse(pair.second, out o_O);
})
.Select(_ => int.Parse(_.second));
+262
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define e if
#define h while
#define s return
#define v NULL
#define r else
#define u case
#define C switch
#define D for
#define L0 typedef
#define L int
L0 char S;L0 S*Z;L0 Z*U;L0 double N;
L0 struct Q{L Z;union{N b;S c;}M;struct Q*w;struct Q*q;}Q;
Q*K(L w){Q*n=(Q*)malloc(sizeof(Q));e(v==n)exit(1);n->Z=w;s n;}
void A(Z g,U t){h(' '==*g)g++;*t=g;}
Q*V(Z g,U t){Q*n=K(2);n->M.b=strtod(g,t);s n;}
Q*I(Z g,U t){e('+'!=*g)s v;Q*n=K(1);n->M.c='+';++*t;s n;}
Q*W(Z g,U t){e('x'!=*g)s v;Q*n=K(20);g++;e(*g<'0'||*g>'9'){n->M.b=1;*t=g;}r{n->M.b=strtod(g,t);e(*t==g)n->M.b=1;}s n;}
Q*J(Z g,U t){Q*n,*p=v;h(*g){A(g,&g);Q*l=V(g,&g);A(g,&g);Q*m=W(g,&g);Q*o;e(v==m)o=l;r{o=K(1);o->M.c='*';o->w=l;o->q=m;}e(v==p)n=o;r{p->w=n;p->q=o;n=p;}A(g,&g);p=I(g,&g);e(v==p){*t=g;s n;}}}
Q**E(Z g){L n=1,i;Z t=g;h(*t){e(';'==*t)n++;t++;}Q**R=(Q**)malloc((n+1)*sizeof(Q*));e(v==R)s v;D(i=0;i<n;++i){R[i]=J(g,&g);e(*g!=';'&&*g!=0)s v;e(v==R[i])s v;g++;}R[n]=v;s R;}
N P(Q*I,N a){C(I->Z){u 1:C(I->M.c){u '+':s P(I->w,a)+P(I->q,a);u '*':s P(I->w,a)*P(I->q,a);u '/':s P(I->w,a)/P(I->q,a);u '-':s P(I->w,a)-P(I->q,a);}u 2:s I->M.b;u 20:s pow(a,I->M.b);}}
N O(Q*I){N x=0,y=1,z=2,Z=P(I,x),X=P(I, y),H=P(I,z),j=1e-10;L i;D(i=0;i<100&&fabs(z-y)>j&&fabs(x-y)>j&&fabs(X)>j;i++){e(Z*X<0){z=y;H=X;}r e(H*X<0){x=y;Z=X;}r{N d=z-x;x=x-d;z=z+d;Z=P(I,x);X=P(I,y);}y=(z+x)/2;X=P(I,y);}s y;}
Z B(Q**A){L n=0,i,j,d=0;D(;A[n]!=v;n++);Z M=(Z)malloc(n*10+1);e(v==M)s v;D(i=0;A[i]!=v;i++)D(j=0;j<10;j++){
M[i*10+j-d]=(S)fmod(12.51*O(A[i])+j*17,256);
e(!M[i*10+j-d])d++;}M[n*10-d]=0;s M;}
L T(Z g,Z M){Z k=M;h(*g){*g++^=*k++;e(!*k)k=M;}s(0);}
L main(void){
Q**n=E("2.0x5+6.2x2+7;0.3x6.1+6x5+1");
L i;
Z k=B(n);
S w[]={-91,-35,97,113,89,37,113,32,28,-10,124,67,93,32,123,70,63,-19,-71,-123,-114,45,109,64,96,57,13,7,-91,0};
T(w,k);
printf("%s\n",w);
}