- 1
- 2
- 3
- 4
- 5
- 6
do
{
...
} while (!stopEvent.WaitOne(1000, false));
// Вылетает с MissingMethodException, если не стоит SP1 к .NET Framework 3.5
//} while (!stopEvent.WaitOne(1000));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+111
do
{
...
} while (!stopEvent.WaitOne(1000, false));
// Вылетает с MissingMethodException, если не стоит SP1 к .NET Framework 3.5
//} while (!stopEvent.WaitOne(1000));
Как хорошо, что мощная и надежная технология .NET избавила нас от Dll Hell!
+152
var nav = null;
function init_dev_steps(step) {
this.step = step;
this.steps_glass = ge('dev_steps_s');
this.steps_glass_c = geByClass('content', this.steps_glass)[0];
this.steps_wrap = ge('dev_steps_c');
this.steps_content = geByClass('content', this.steps_wrap)[0];
this.anim = Fx.Transitions.sineInOut;
this.move = function(to_step) {
if (to_step == (this.moving ? this.m_to : this.step)) return;
var moving = true;
if (!this.moving) {
moving = false;
this.m_height = this.steps_wrap.offsetHeight - 2;
this.m_g = (this.step - 1) * 140;
this.m_c = (1 - this.step) * 540;
this.m_cur = this.step;
this.tick = 0;
var self = this;
this.moving = setInterval(function() {
self.m_time += 13;
if (self.anim_h) {
self.tick += 1;
if (self.tick == 3) {
if (self.m_time > self.h_time) {
self.m_height = self.m_to_height;
} else {
self.m_height = self.anim(self.m_time, self.m_from_height, self.m_to_height - self.m_from_height, self.h_time);
}
self.steps_wrap.style.height = self.m_height + 'px';
self.tick = 0;
}
if (self.m_time > self.h_time) {
self.m_g = self.m_to_g;
self.m_c = self.m_to_c;
self.anim_h = false;
self.anim_v = (self.m_to_height != self.m_height);
self.m_time -= self.h_time;
} else {
self.m_g = self.anim(self.m_time, self.m_from_g, self.m_to_g - self.m_from_g, self.h_time);
self.m_c = self.anim(self.m_time, self.m_from_c, self.m_to_c - self.m_from_c, self.h_time);
if (self.diff) self.steps_glass.style.width = self.anim(self.m_time, self.from, self.diff, self.h_time)+'px';
}
self.steps_content.style.marginLeft = self.m_c + 'px';
self.steps_glass.style.marginLeft = self.m_g + 'px';
self.steps_glass_c.style.marginLeft = (-self.m_g - 2) + 'px';
self.m_cur = Math.floor(self.m_g / 140) + 1;
}
if (!self.anim_h) {
self.step = self.m_to;
//hab.setHash('devstep' + this.step);
location.hash = 'devstep' + self.step;
self.steps_wrap.style.height = self.m_to_height + 'px';
clearInterval(self.moving);
self.moving = false;
if (self.step == 3 && ge('inv_password')) focus('inv_password');
}
}, 13);
}
...
+142
if(selected == 3){
if(count == 1){
displayIntResult(0);
}else{
if(count == 1){
displayIntResult(0);
}else{
// код
}
}
// код
}
Надо больше спать. Обнаружено после ночи кодинга
−92
Sub Ìàêðîñ1()
Sheets("Îò÷åò_Âêë.1_15-98").Select
For i = 0 To 25 Step 1
Sheets(Sheets.Count).Select
If i = 0 Then
Range("A:A, B:B").Select
ElseIf i = 1 Then
Range("A:A, C:C").Select
ElseIf i = 2 Then
Range("A:A, D:D").Select
ElseIf i = 3 Then
Range("A:A, E:E").Select
ElseIf i = 4 Then
Range("A:A, F:F").Select
ElseIf i = 5 Then
Range("A:A, G:G").Select
ElseIf i = 6 Then
Range("A:A, H:H").Select
ElseIf i = 7 Then
Range("A:A, I:I").Select
ElseIf i = 8 Then
Range("A:A, J:J").Select
ElseIf i = 9 Then
Range("A:A, K:K").Select
ElseIf i = 10 Then
Range("A:A, L:L").Select
ElseIf i = 11 Then
Range("A:A, M:M").Select
ElseIf i = 12 Then
Range("A:A, N:N").Select
ElseIf i = 13 Then
Range("A:A, O:O").Select
ElseIf i = 14 Then
Range("A:A, P:P").Select
ElseIf i = 15 Then
Range("A:A, Q:Q").Select
ElseIf i = 16 Then
Range("A:A, R:R").Select
ElseIf i = 17 Then
Range("A:A, S:S").Select
ElseIf i = 18 Then
Range("A:A, T:T").Select
ElseIf i = 19 Then
Range("A:A, U:U").Select
ElseIf i = 20 Then
Range("A:A, V:V").Select
ElseIf i = 21 Then
Range("A:A, W:W").Select
ElseIf i = 22 Then
Range("A:A, X:X").Select
ElseIf i = 23 Then
Range("A:A, Y:Y").Select
ElseIf i = 24 Then
Range("A:A, Z:Z").Select
ElseIf i = 25 Then
Range("A:A, AA:AA").Select
End If
Selection.Copy
Sheets.Add
Sheets(Sheets.Count - 1).Select
Columns("A:A").Select
ActiveSheet.Paste
Next i
End Sub
Макрос для копирования подряд расположенных столбцов на отдельные листы
+89
function uIsCommentAllowed($id_all)
{
$db = 'i_all';
$this->db->select('comment');
$this->db->where('id_all',$id_all);
$query = $this->db->get($db);
if ($query->num_rows() == 0) return false;
else
{
$row = $query->row();
if ($row->comment == 1) return true;
if ($row->comment == 1) return false;
}
return false;
}
Кто не видит где говно, показываю: if ($row->comment == 1) return true; if ($row->comment == 1) return false;
Теперь главный вопрос - почему на при тестировании данная ошибка не проявляется, и все вообще работает верно?
+99
import Text.Parsec
import Control.Monad
romanToArabic :: String -> Either ParseError Integer
romanToArabic = parse (genParser (Nothing : Nothing : map Just romans)) "" where
romans = [('M', 1000), ('D', 500), ('C', 100),
('L', 50), ('X', 10), ('V', 5), ('I', 1)]
genParser [_] = eof >> return 0
genParser (ten : five : one : rest) = state1 where
state1 = choice [on one state2, on five state3, next]
state2 = choice [on (sub2 five one) next, on (sub2 ten one) next,
on one state5, next]
state3 = choice [on one state4, next]
state4 = choice [on one state5, next]
state5 = choice [on one next, next]
next = genParser (one : rest)
on Nothing _ = fail ""
on (Just (ch, val)) nextNode = char ch >> nextNode >>= return . (+val)
sub2 = liftM2 $ \(ch1, val1) (ch2, val2) -> (ch1, val1-2*val2)
Кучка в ответ на http://govnokod.ru/9995#comment136058
> с другой стороны раз хаскель, то хотелось бы, например:
> *Main> romanToArabic "LC"
> Left (line 1, column 2):
> unexpected 'C'
> expecting "X", "IX", "IV", "V", "I" or end of input
−94
#*тут определение факториала*
fac_missing_end = factorial(100)/1000000000000000000000000
#there are 134 digits when you take off the zeroes at the end
sum_of_digits = 0
recent_digit = fac_missing_end%10
new_fac = fac_missing_end/10
sum_of_digits = sum_of_digits + recent_digit
recent_digit = new_fac%10
new_fac = new_fac/10
sum_of_digits = sum_of_digits + recent_digit
recent_digit = new_fac%10
new_fac = new_fac/10
sum_of_digits = sum_of_digits + recent_digit
recent_digit = new_fac%10
new_fac = new_fac/10
sum_of_digits = sum_of_digits + recent_digit
# еще пару десятков строк такого говна
print sum_of_digits
http://projecteuler.net/problem=20
http://projecteuler.net/thread=20;page=8
>This is ridiculous, but it worked instantaneously
Первый шаг к решению проблемы — признать что у тебя есть проблема.
+93
class Auth_Yadis_ParanoidHTTPFetcher extends Auth_Yadis_HTTPFetcher {
function get($url, $extra_headers = null)
{
/* неcущественное пропущено */
if (defined('CURLOPT_NOSIGNAL')) {
curl_setopt($c, CURLOPT_NOSIGNAL, true);
}
if (!$this->allowedURL($url)) {
Auth_OpenID::log("Fetching URL not allowed: %s",
$url);
return null;
}
curl_setopt($c, CURLOPT_WRITEFUNCTION,
array($this, "_writeData"));
curl_setopt($c, CURLOPT_HEADERFUNCTION,
array($this, "_writeHeader"));
if ($extra_headers) {
curl_setopt($c, CURLOPT_HTTPHEADER, $extra_headers);
}
$cv = curl_version();
if(is_array($cv)) {
$curl_user_agent = 'curl/'.$cv['version'];
} else {
$curl_user_agent = $cv;
}
curl_setopt($c, CURLOPT_USERAGENT,
Auth_OpenID_USER_AGENT.' '.$curl_user_agent);
curl_setopt($c, CURLOPT_TIMEOUT, $off);
curl_setopt($c, CURLOPT_URL, $url);
if (defined('Auth_OpenID_VERIFY_HOST')) {
// set SSL verification options only if Auth_OpenID_VERIFY_HOST
// is explicitly set, otherwise use system default.
if (Auth_OpenID_VERIFY_HOST) {
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
if (defined('Auth_OpenID_CAINFO')) {
curl_setopt($c, CURLOPT_CAINFO, Auth_OpenID_CAINFO);
}
} else {
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
}
}
curl_exec($c);
/* неинтересное пропущено */
}
function post($url, $body, $extra_headers = null)
{
if (!$this->canFetchURL($url)) {
return null;
}
$this->reset();
$c = curl_init();
if (defined('CURLOPT_NOSIGNAL')) {
curl_setopt($c, CURLOPT_NOSIGNAL, true);
}
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $body);
curl_setopt($c, CURLOPT_TIMEOUT, $this->timeout);
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_WRITEFUNCTION,
array($this, "_writeData"));
if (defined('Auth_OpenID_VERIFY_HOST')) {
// set SSL verification options only if Auth_OpenID_VERIFY_HOST
// is explicitly set, otherwise use system default.
if (Auth_OpenID_VERIFY_HOST) {
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
if (defined('Auth_OpenID_CAINFO')) {
curl_setopt($c, CURLOPT_CAINFO, Auth_OpenID_CAINFO);
}
} else {
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
}
}
curl_exec($c);
/* to be continued */
Фрагмент едва ли не самой популярной библиотеки OpenID, а именно клиентской части: http://janrain.com/openid-enabled/
Всё бы было хорошо, но залогиниться, используя лайвджорналовский опенайдишник, не получается. По форумам поползли слухи, что ЖЖ не полностью поддерживает протокол OpenID (хотя протокол разработал Фицпатрик, один из создателей LiveJournal); что он метод POST не поддерживает, поэтому его нужно менять на GET; предлагались совершенно безумные хаки, которые на самом деле не работают...
А ларчик просто открывался. Для поддержки ЖЖ достаточно в приведённый код добавить пару строк. Открыть спойлер или кто-нибудь угадает?
+160
function someFunction(t) {
var y="$('#elementID').find('input[type=\"text\"]:eq(", z=")').focus()", x=")').val()==''";
setTimeout("( "+y+"0"+x+" )? ( "+y+"0"+z+" ):( ( "+y+"1"+x+" )? ( "+y+"1"+z+" ):( "+y+"2"+z+" ) );", t);
}
это какое-то нечто
+92
function lz_UploadMount:boolean;
var del_l,i,j,k,ng,l,typ:integer;
pt:array[1..3]of integer;
begin
UpDiag:=0;
result:=true;
if I_AM_EMUL {or not I_AM_MAIN }then exit;
if Pult[1].Count+Pult[2].Count=0 then exit;
lg_UploadMount;
// exit;
UpDiag:=1;
result:=false;
__UPLOADING:=true;
try
if not JustC(21,[])then exit;
sleep(1000);
//if (Pult[1].Count>0)and(Pult[2].Count>0)then ng:=3 else ng:=1;
//if not JustC(25,[ng])then exit;;
if not JustC(22,[])then exit;;
{группы}
if (Pult[1].Count>0)and(Pult[2].Count>0)then ng:=2 else ng:=1;
for i:=1 to 2 do
begin
if Pult[i].Count=0 then continue;
k:=0;
for j:=1 to 3 do pt[j]:=MainShow.Params[j];
for j:=0 to Pult[i].Count-1 do
with TMotor(Pult[i][j])do
begin
k:=k+(1 shl (ConvertTP(TP)-1));
for L:=1 to 3 do if pt[L]>GParam(L)then pt[L]:=GParam(L);
end;
//маска
AddI(k);
//скорость
AddSpeed(round(pt[1]*KOREDV));
//ускорение разгона
//ускорение торможения
AddI((pt[2]shl 16)+pt[3]);
//номер джойстика
//функциональная клавиша
{Кнопка} {Джойстик}{повторы} {тип группы}
typ:=2;
AddI((i shl 6)+(i shl 3)+(1 shl 10)+typ);
end;
if not lz_Command(26,4,ng,[ng])then exit;;
CheckMountEffect;
{моторы}
lzData.Clear;
for i:=1 to 2 do
for j:=0 to Pult[i].Count-1 do
with TMotor(Pult[i][j])do
begin
if md_targ<0 then AddI((17 shl 16)+ConvertTP(TP))else AddI((18 shl 16)+ConvertTP(TP));
if md_targ<GetMotorInfo(TP,1)then del_l:=-1 else del_l:=1;
if md_targ<0 then
begin
AddI(-trunc(GParam(5)/KORED*65536));
AddI(-trunc(GParam(4)/KORED*65536));
end
else
begin
AddI(-trunc((md_targ+del_l/2)/KORED*65536));
AddSpeed(round(md_way*KOREDV));
end
end;
if not lz_Command(28,3,Pult[1].Count+Pult[2].Count,[Pult[1].Count+Pult[2].Count])then exit;
UpDiag:=2;
if not JustC(23,[])then exit;
(*EnterCriticalSection(csJoystick);
j_Changed:=true;
{J_Status[1]:=false;
J_Status[2]:=false;}
LastSign[1]:=-1;
LastSign[2]:=-1;
LeaveCriticalSection(csJoystick);*)
{if(Pult[1].Count>0)then if not JustC(36,[1,1])then exit;
if(Pult[2].Count>0)then if not JustC(36,[2,1])then exit;}
UpDiag:=0;
result:=true;
Uploaded:=true;
for i:=1 to 12 do
FirstGr[i]:=0;
finally
__UPLOADING:=false;
if Uploaded then WaitZero;
end;
end;
Случайно открыл свою первую рабочую программу. Забавно, как со временем меняется стиль программирования :)
В той что используется сейчас изменился протокол, так что прямого аналога нет, но примерно ту же функцию выполняет такой кусок:
----------------
procedure TMotion.GetTargetForPLC(M: TMotor; Mo: TNormalMotionData);
var
Conf: TMotorConfig;
ME: TElementMark;
I: Integer;
Ht, SP: Real;
begin
if not Uploaded then
exit;
Conf := PLCConf.Motor(M.MotorNumber);
ME := Mark.ElementByMotor(M.MotorNumber);
SP := Panel.GetValue(Speed);
// Проверка разрешений движения
if (Panel.GetStatus <> psGo) or (not Condition.CheckMotion) or FailedSafe or
(SP = 0) or (not ME.CheckMotion) then
Mo.CommandID := mcStop
else
Mo.CommandID := mcGo;
Mo.Accel := LimitVal(1, Conf.MotorTyp.ProgramToDrive(ktAccel,
Limits.GetParam(TAccelParam).Minimum));
Mo.Deccel := LimitVal(1, Conf.MotorTyp.ProgramToDrive(ktAccel,
Limits.GetParam(TDeccelParam).Minimum));
if SP >= 0 then
Ht := Effect.OutputTarget(M)
else
Ht := ME.GetTargetForPLC(false);
// M.StartPos.Value := 0.5;
if M.PositionType.InheritsFrom(TAngleWithTu rnsParam) then
Ht := M.HackCircleTarget(Ht);
Mo.Target := Conf.MotorTyp.ProgramToDrive(ktTarget, Ht);
Mo.Speed := Conf.MotorTyp.ProgramToDrive(ktSpeed, abs(SP)); { }{ }{ }
Mo.Time := 0;
if SP >= 0 then
Effect.ProcessCommand(M, Mo);
Mo.Mask := M.Children + [M.MotorNumber];
for I in Mo.Mask do
GetMotor(I).RawCommand := Mo;
end;
----------------