- 1
- 2
- 3
- 4
- 5
@echo off
:start
ping -n 1 <destination>
ping -n 90 127.0.0.1 > NUL 2>&1
GOTO startНашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+123
@echo off
:start
ping -n 1 <destination>
ping -n 90 127.0.0.1 > NUL 2>&1
GOTO start
            http://mybroadband.co.za/vb/showthread.php/122641-How-do-you-set-ping-interval
Попов жив.
        
−89
amount_in_cents = int(100 * amount)
            Поскольку все знают, что float нельзя использовать при работе с деньгами (ну там, ошибки округления), чуваки решили хранить все суммы в центах. Тогда они будут целыми числами. 
По такой формуле вычисляется сумма в центах, которую клиент должен заплатить за товар. 
Прикол в том, что если товар стоит 36.91 евро, то
* amount = 36.91
* 100 * amount = 3690.9999999999995
* int(100 * amount) = 3690
И клиент платит всего лишь 36.90!
        
−101
<div class="book-info">
                <strong class="book">${label}</strong>
                {{!if desc && desc != "None None"}}
                <span class="author">${desc}</span>
                {{!/if}}
            </div>
            Это кусочек из JQuery template. Ему на вход приходит JSON, сформированный в Python. 
Кто бы догадался, что означает это "None None"?
Да, это случай, когда имя и фамилия автора книги неизвестны. Вместо того, чтобы в классе Book сделать нормальный метод getAuthor, чуваки предпочли наговнякать такой вот IF в клиентской части.
        
+131
1
1
	
Имеется графический обозреватель картинок, где мини-изображения хранятся в ImageList, а выводятся ListView (поименованные графические файлы). При открытие папок с картинками (где большое количество картинок) возникает торможение отображения. Вся программа начинает тормозить, ожидая загрузки картинок в ListView. Чтобы избежать такого, я вынес загрузку ListBox в отдельный процесс Thread. В результате возникла другая проблема: при загрузке картинок, часть загружается просто черными квадратами. Как избавиться от этого неприятного эффекта?
Код выбора папки для дальнейшего просмотра содержимого:
procedure TForm1.DirectoryListBox1Change(Sender: TObject);
begin
  Form1.ListView1.Clear;
  Form1.ImageList1.Clear;
  NewThread:=TNewThread.Create(false);
  NewThread.FreeOnTerminate:=true;
  NewThread.Priority:=tpHighest;
  NewThread.Resume;
end;
Код отдельно выделенного процесса:
procedure TNewThread.Execute;
begin
  Form1.FillListView(form1.DirectoryListBox1.Directory , '*.jpg');
  Form1.FillListView(form1.DirectoryListBox1.Directory, '*.bmp');
end;
И наконец код обработки графических файлов с последующей загрузкой в ListBox:
procedure TForm1.fillListView(path: string; mask: string = '*.jpg');
var
  sr:  TSearchRec;
  img: TPicture;
  bmp: TBitmap;
  pic: TBitMap;
  x,y: integer;
begin
  img := TPicture.Create;
  bmp := TBitMap.Create;
  pic := TBitMap.Create;
  With Form1 do
  if FindFirst(path +'\'+mask, faAnyFile, sr) = 0 then
  begin
    repeat
      if (sr.Name<>'.') and (sr.Name<>'..') and (sr.Attr<>faDirectory) then
      //if (sr.Attr and $20) = $20 then
      begin
        try
          img.LoadFromFile(path +'\'+ sr.Name);
        except
          Continue;
        end;
        bmp.Assign(img.Graphic);
        x:=bmp.Width;
        y:=bmp.Height;
        pic.Width := ImageList1.Width;
        pic.Height:= ImageList1.Height;
        pic.Canvas.Brush.Color :=clWhite;
        pic.Canvas.FillRect(Canvas.ClipRect);
        pic.Canvas.StretchDraw(Rect(0,0,pic.Width, Round((pic.Height*y)/x)), bmp);
        ImageList1.Add(pic, nil);
        with ListView1.Items.Add do
        begin
          Caption := sr.Name;
          ImageIndex := ListView1.Items.Count-1;
        end;
      end;
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
  img.Free;
  bmp.Free;
  pic.Free;
end;
            Не сопротивляйся, смерть сладка.
http://hashcode.ru/questions/86688/delphi-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-listview-%D0%B2-%D0%B4%D0%B5%D0%BB%D1%84%D0%B8
        
+129
/*
 * 		Пример программы шифрующей данные симметрично по ключу.
 *
 *		Параметры командной строки:
 * 
 * /program_path [source file path] [destenation file path] [key] [type]
 * 
 *		[key] - кодовое слово длинной не более 255 символов.
 *		[key] - принимает два параметра cript и uncript (шифровать/расшифровать)
 * 
 *		Пример использования аргументов:
 * 
 * "/home/aleksandr/Рабочий стол/Крипт/s_cript" "/home/aleksandr/Рабочий стол/Крипт/simple_file_1.txt" "/home/aleksandr/Рабочий стол/Крипт/simple_file_2.txt" simplekey cript
 * "/home/aleksandr/Рабочий стол/Крипт/s_cript" "/home/aleksandr/Рабочий стол/Крипт/simple_file_2.txt" "/home/aleksandr/Рабочий стол/Крипт/simple_file_3.txt" simplekey uncript
 *
 * 		:P
 *  
 */
#include <stdio.h>
#include <limits.h>
#include <string.h>
void cript_uncript(FILE* src_fp, FILE* dst_fp, char* key_X, char* block, _Bool type)
{
	unsigned char i, real;
	
	while((real = fread(block, sizeof(char), UCHAR_MAX, src_fp)) > 0){
		for(i = 0; i < real; i++){
			if(type == 0)
				block[i] = block[i] + key_X[i];
			else if(type == 1)
				block[i] = block[i] - key_X[i];
		}
		
		fwrite(block, sizeof(char), real, dst_fp);
	}
}
void generate_key(char* key, char* key_X){
	unsigned char len, i, n = 0;
	
	len = strlen(key) - 1;
	
	for(i = 0; i < UCHAR_MAX; i++)	{
		key_X[i] = key[n];
		if(n++ == len) n = 0;
	}
}
int main(int argc, char* argv[]){
	FILE* src_fp;
	FILE* dst_fp;
	
	char key[UCHAR_MAX], block[UCHAR_MAX], key_X[UCHAR_MAX], s[UCHAR_MAX];
	char src_path[1024], dst_path[1024];
	
	if(argc < 4){
		puts("not enough arguments\n");
		return -1;
	}
	else{
		strcpy(src_path, argv[1]);
		strcpy(dst_path, argv[2]);
		strcpy(key, argv[3]);
		strcpy(s, argv[4]);
	}
	
	if((src_fp = fopen(src_path, "rb")) != NULL){
		if((dst_fp = fopen(dst_path, "wb")) != NULL){
			generate_key(key, key_X);
			
			if(strcmp(s, "cript") == 0)
				cript_uncript(src_fp, dst_fp, key_X, block, 0);
			if(strcmp(s, "uncript") == 0)
				cript_uncript(src_fp, dst_fp, key_X, block, 1);
		}
		else return -1;
		
		fclose(src_fp);
	}
	else return -1;
	
	fclose(dst_fp);Пример программы шифрующей данные симметрично по ключу
+122
#if defined(REG_R1) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R1,REG_R1)
#else
# define R1 (BaseReg->rR1)
#endif
#if defined(REG_R2) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R2,REG_R2)
#else
# define R2 (BaseReg->rR2)
#endif
#if defined(REG_R3) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R3,REG_R3)
#else
# define R3 (BaseReg->rR3)
#endif
#if defined(REG_R4) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R4,REG_R4)
#else
# define R4 (BaseReg->rR4)
#endif
#if defined(REG_R5) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R5,REG_R5)
#else
# define R5 (BaseReg->rR5)
#endif
#if defined(REG_R6) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R6,REG_R6)
#else
# define R6 (BaseReg->rR6)
#endif
#if defined(REG_R7) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R7,REG_R7)
#else
# define R7 (BaseReg->rR7)
#endif
...
            Исходник GHC
https://github.com/ghc/ghc/blob/master/includes/stg/Regs.h#L147
        
+125
slowCallPattern (P: P: P: P: P: P: _) = (fsLit "stg_ap_pppppp", 6)
slowCallPattern (P: P: P: P: P: _) = (fsLit "stg_ap_ppppp", 5)
slowCallPattern (P: P: P: P: _) = (fsLit "stg_ap_pppp", 4)
slowCallPattern (P: P: P: V: _) = (fsLit "stg_ap_pppv", 4)
slowCallPattern (P: P: P: _) = (fsLit "stg_ap_ppp", 3)
slowCallPattern (P: P: V: _) = (fsLit "stg_ap_ppv", 3)
slowCallPattern (P: P: _) = (fsLit "stg_ap_pp", 2)
slowCallPattern (P: V: _) = (fsLit "stg_ap_pv", 2)
slowCallPattern (P: _) = (fsLit "stg_ap_p", 1)
slowCallPattern (V: _) = (fsLit "stg_ap_v", 1)
slowCallPattern (N: _) = (fsLit "stg_ap_n", 1)
slowCallPattern (F: _) = (fsLit "stg_ap_f", 1)
slowCallPattern (D: _) = (fsLit "stg_ap_d", 1)
slowCallPattern (L: _) = (fsLit "stg_ap_l", 1)
slowCallPattern (V16: _) = (fsLit "stg_ap_v16", 1)
slowCallPattern [] = (fsLit "stg_ap_0", 0)
            Исходник GHC
https://github.com/ghc/ghc/blob/master/compiler/codeGen/StgCmmArgRep.hs#L120
        
+133
void mb_sim_pix(uchar* IN, uchar* OUT, int *WH, int *bSize, int *A, int *pSize, float *threshold){
	int pos = mb_calc_pos(A, WH, pSize);
	int nPos;
	int i, n;
	int B[2];
		
	for(n = 0; n < 4; n++){
		
		switch(n){
			case 0:
				B[0] = A[0] + 1;
				B[1] = A[1];
			
			case 1:
				B[0] = A[0];
				B[1] = A[1] - 1;
			
			case 2:
				B[0] = A[0];
				B[1] = A[1] + 1;
			
			case 3:
				B[0] = A[0] - 1;
				B[1] = A[1];
		}
		
		if(	B[0] >= 0 && B[0] < WH[0] &&
			B[1] >= 0 && B[1] < WH[1]){
			nPos = mb_calc_pos(B, WH, pSize);
			if(mb_val_pix(OUT, &nPos, pSize) == 0){
				if(mb_sim_pack(IN, &pos, &nPos, pSize) >= *threshold){
					for(i = 0; i < *pSize; i++) OUT[nPos + i] = IN[nPos + i];
					mb_sim_pix(IN, OUT, WH, bSize, B, pSize, threshold);
				}
			}
		}
	}
}Тоже самое через if работает, а через switch проваливается на значении 0 все итерации. Почему?
+75
int i, n;
for(n = 0; n < 3; n++)
{
   switch(n){
         case 0:
                n+=i;
         case 1:
                n-=i;
         case 2:
                n*=i;
   }
}
            Написал это, встал и хорошенько вымыл руки с мылом.
http://programmersforum.ru/showthread.php?t=241288
        
+12
struct c_test
{
  int value;
  
  c_test(void)
  {
    (void)new (this) c_test (10);
  }
  
  c_test(int v)
  {
    value = v;
  }
};