1. Assembler / Говнокод #15415

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    global _start
    
    section .text
    
    _start:
    
    	mov	eax, 0b10010100101100110111110110111110
    	;  эти битики будут выведены на печать
    	
    	mov	ecx, 0b00011000000110000001100000011000
    	; Четыре недозаполненных ascii кодов символов '0' или '1', в который из флага переноса заталкивается битик 0 или 1
    
    	%rep 8
    	mov	ebx, ecx
    	%rep    3
    		shr	eax, 1 ; Захавываем битик в флаг переноса
    		rcl	ebx, 1 ; Запихиваем из флага переноса в недозаполненные ascii коды
    		rol	ebx, 7 ; Проматываем на следующий кусок
    	%endrep
    	shr	eax, 1
    	rcl	ebx, 1 ; На последней стадии все то же самое, только проматывать уже не надо
    
    	push ebx ; Теперь все битики всунуты, пихнем содержимое регистра в стек
    	%endrep
    
    
        
    	mov	eax, 04h ; write()
    	mov	ebx, 01h ; stdout
    	mov	ecx, esp ; распечатаем из стека
    	mov	edx, 32  ; 32 символа
    	int	80h
    	
    	mov	eax, 01h ; exit()
    	xor	ebx, ebx ; errno
    	int	80h

    NASM Linux x86
    Суть - вывести содержимое регистра в двоичной системе счисления
    Можно было вместо этой мути использовать CMOVC ( Move if carry (CF=1) ) или еще что-нибудь такое придумать, есть же еще BT, BTS, глаза разбегаются
    ...вообще хрен его знает, какой-то упоротый этот x86 ассемблер, надо бы AVR осваивать, там регистров побольше

    j123123, 10 Марта 2014

    Комментарии (6)
  2. JavaScript / Говнокод #15413

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    //CSS Анимация 1 
    function hideConv(){
    	//добавляем класс содержащий св-ва конца анмиации
    	$("#mail").addClass("animated200ms");
    	$("#mail").css("opacity","0");	
    	//определяем объект анимации
    	var elem=document.getElementById("mail");
    	//вешаем прослушиватель завершения анимации
    	elem.addEventListener('transitionend', function(event) {
    		event.stopImmediatePropagation();
    		//ф-ия выполняемая после завершения анимации 1
    		showConv();
    	},false);	
    }
    
    //CSS Анимация 2 
      function showConv(){
    	
    	//копируем содержимое объекта анимации
    	var m = $("#mail").html();
    	//удаляем объект анимации на ***
    	$("#mail").remove();
    	//вставляем его снова *** 
    	$(".сontacts").append("<div id='mail' class='animated200ms' style='opacity: 0;'></div>");
    	$("#mail").append(m);
    	
    	
    	//не можем отловить событие завершения анимации 2 - делаем таймаут и надеемся что анимация успела выполнится 
    	$("#mail").css("opacity",0);
    	tv = setTimeout(function()
    	{
    		$("#mail").css("opacity",1);
    	},500);
    	
    	
    	//не можем отловить событие завершения анимации 3 - делаем таймаут и надеемся что анимация успела выполнится 
    	time_var = setTimeout(function()
    	{
    		$("#mail").removeClass("animated200ms");
    		openMail();
    	}, 3500);
      }

    Задача: выполнить цепочку анимации на CSS: анимация-1, анимация-2, анимация-3. Каждая следующая анимация должна запускаться по завершению предыдущей. Смотрим и улыбаемся.
    Работу выполнил фрилансер: https://www.fl.ru/users/nDc/ за 900руб.

    agency-it, 10 Марта 2014

    Комментарии (10)
  3. Python / Говнокод #15411

    −87

    1. 1
    from time import time as time

    В своё время поймал себя на писанине такого кода на Python for s60

    SanchO-SEK, 10 Марта 2014

    Комментарии (11)
  4. Си / Говнокод #15406

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    static char months [] = "JanFebMarAprMayJunJulAugSepOctNovDecGlk";
    static char dows [] = "SunMonTueWedThuFriSatEar";
    
    
    int dd [] =
    {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    
    void gen_http_date (char date_buffer[29], int time) {
      int day, mon, year, hour, min, sec, xd, i, dow;
      if (time < 0) time = 0;
      sec = time % 60;
      time /= 60;
      min = time % 60;
      time /= 60;
      hour = time % 24;
      time /= 24;
      dow = (time + 4) % 7;
      xd = time % (365 * 3 + 366);
      time /= (365 * 3 + 366);
      year = time * 4 + 1970;
      if (xd >= 365) {
        year++;
        xd -= 365;
        if (xd >= 365) {
          year++;
          xd -= 365;
          if (xd >= 366) {
            year++;
            xd -= 366;
          }
        }
      }
      if (year & 3) {
        dd[1] = 28;
      } else {
        dd[1] = 29;
      }
    
      for (i = 0; i < 12; i++) {
        if (xd < dd[i]) {
          break;
        }
        xd -= dd[i];
      }
    
      day = xd + 1;
      mon = i;
      assert (day >= 1 && day <= 31 && mon >=0 && mon <= 11 &&
          year >= 1970 && year <= 2039);
    
      sprintf (date_buffer, "%.3s, %.2d %.3s %d %.2d:%.2d:%.2d GM",
          dows + dow * 3, day, months + mon * 3, year,
          hour, min, sec);
      date_buffer[28] = 'T';
    }

    Делать имена месяцев и дни недели одной сишной строкой, чтобы потом выводить оттуда по три символа через sprintf, считая оффсет умножением на 3 т.к. имена месяцев и дней недели влазят в три символа
    https://github.com/vk-com/kphp-kdb/blob/ce1ac4fbde2d3b546936ad07d6a748958f6d2198/net/net-http-server.c#L664

    http://roem.ru/2013/07/20/kphp76561/
    >ВКонтактовские "олимпиадники"-чемпионы ACM разработали крайне интересную высоконагруженным сайтам технологию.

    Хреновые какие-то олимпиадники попались, раз неосилили http://ideone.com/IfvBgi

    j123123, 09 Марта 2014

    Комментарии (81)
  5. ActionScript / Говнокод #15403

    −123

    1. 1
    2. 2
    3. 3
    4. 4
    var player:c2Player = world.getPlayer();
    var block:c2Block = world.getBlock(player);
    
    player.x = (player.xpos - block.xpos)*(player.angle + block.angle * Math.cos(player.angle/180*Math.PI)*(10-10+1-1+0);

    Оригинальная и полезная формула.

    Bletraut, 09 Марта 2014

    Комментарии (28)
  6. PHP / Говнокод #15402

    +123

    1. 1
    Mage::run();

    С этого места начинается боль и мучения.

    DrugMan, 09 Марта 2014

    Комментарии (11)
  7. PHP / Говнокод #15401

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <?php
    
     $dataProvider = new CActiveDataProvider('User', array(
                'criteria'=>array(
                    'condition' => 'id = ' . $id,
                ),
            ));
    
    $regdata = $dataProvider->getData();
    if (is_array($regdata)) $regdata = current($regdata);
    //....
    $this->redirect(Yii::app()->createUrl('user/profile'));

    Как не стоит писать на Yii

    JiLiZART, 09 Марта 2014

    Комментарии (1)
  8. Куча / Говнокод #15397

    +130

    1. 1
    DECLARE (A, B INIT ((5)0,(5)1)) DIM (0:9) FLOAT;

    LispGovno, 08 Марта 2014

    Комментарии (23)
  9. PHP / Говнокод #15395

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php
    function get_md5($filename){
    return md5_file($filename)
    }
    echo "get_md5($_POST)";
    ?>

    Только начал php, посоветуйте литературу Х)

    VityaPW, 08 Марта 2014

    Комментарии (16)
  10. C++ / Говнокод #15393

    +37

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    int hamming(int i, int j, vector<state>& net) //returns Hamming distance between i and j nodes
    {
    	int res = 0;
    	if (net[i].nodes[0] != net[j].nodes[0])
    	{
    		res++;
    	}
    	if (net[i].nodes[1] != net[j].nodes[1])
    	{
    		res++;
    	}
    	if (net[i].nodes[2] != net[j].nodes[2])
    	{
    		res++;
    	}
    	if (net[i].nodes[3] != net[j].nodes[3])
    	{
    		res++;
    	}
    	if (net[i].nodes[4] != net[j].nodes[4])
    	{
    		res++;
    	}
    	if (net[i].nodes[5] != net[j].nodes[5])
    	{
    		res++;
    	}
    	if (net[i].nodes[6] != net[j].nodes[6])
    	{
    		res++;
    	}
    	if (net[i].nodes[7] != net[j].nodes[7])
    	{
    		res++;
    	}
    	if (net[i].nodes[8] != net[j].nodes[8])
    	{
    		res++;
    	}
    	if (net[i].nodes[9] != net[j].nodes[9])
    	{
    		res++;
    	}
    	if (net[i].nodes[10] != net[j].nodes[10])
    	{
    		res++;
    	}
    	if (net[i].nodes[11] != net[j].nodes[11])
    	{
    		res++;
    	}
    	if (net[i].nodes[12] != net[j].nodes[12])
    	{
    		res++;
    	}
    	return res;
    }

    Человеку срочно нужно узнать про существование циклов.

    galarr, 08 Марта 2014

    Комментарии (9)