1. C# / Говнокод #3116

    +111

    1. 1
    2. 2
    3. 3
    4. 4
    try {} finally {
             retVal = NativeMethods.CreateProcess ( /* ... */ );
            /* ... и дальше остальной код... */
    }

    Откопано в исходниках .NET 2.0 Framework, так реализуется Process.Start. Не очень понял замысла. Нашёл, что finally обязательно продолжит исполняться, если во время его исполнения на поток ВНЕЗАПНО вызван метод Abort. Т.е. если потоку, создающему процесс, сделать аборт, процесс всё равно упорно создаcтся и запустится (чистки памяти я не нашёл). В чём смысл? Так можно было бы тогда всякий код оборачивать в finally... Ящитаю, что это всё костыли вокруг говноархитектуры. Не зря в Яве Thread.stop сделали deprecated. А вы как считаете?

    cfdev, 27 Апреля 2010

    Комментарии (38)
  2. C++ / Говнокод #3115

    +924

    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
    // придерживаюсь оригинала как могу
    // код как был:
    
    static char message_buf[64000];  // must be actually 64K == 64<<10 == 65536
    
    class MessageHandler {
       // [...]
       char *header;         // point into the message_buf
       char *content;
       std::list<char *> tlvs; // pointers to the elements of the message
    };
    
    // я пожаловался - пообещали исправить в новой версии по ходу реализации новой фичи.
    
    // новый "усовершенствованый" код, с "поддержкой" многопоточности.
    
    static char message_buf[100][65000];  // 100 == max threads, buffer size now is much closer to the standard
    
    class MessageHandler {
       // [...]
       int threadId;             // index into the new message_buf[]
       char *header;          // point into the message_buf[threadId]
       char *content;
       std::vector<char *> tlvs; // same, but in std::vector because it is "faster"
    };

    вот так кодируют и совершенствуют код матерые шведские программистки.
    самое обидное что мой коллега почти все это пофиксил в оригинальной версии, но из-за важной фичи отказались мержить с новой версией и выкинули почти все его изменения.

    Dummy00001, 26 Апреля 2010

    Комментарии (24)
  3. C++ / Говнокод #3114

    +911

    1. 1
    case UP : o > 0 ? o-- : o = FIELD_SIZE - 1; break;

    Друг скинул в аську, попросил перевести в if-ную форму)))
    Не знаю где он это откопал)))

    k06a, 26 Апреля 2010

    Комментарии (29)
  4. Куча / Говнокод #3113

    +143

    1. 1
    !<>

    Просто очень короткий говнокод:
    Читается как не больше и не меньше.
    Конечно, выдумано, но тем не менее :)

    wvxvw, 26 Апреля 2010

    Комментарии (9)
  5. C++ / Говнокод #3112

    +144

    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
    58. 58
    59. 59
    60. 60
    61. 61
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    #define chislo int
    #define osnovnoe main
    #define nachalo {
    #define konec }
    #define chitaj scanf
    #define pishi printf
    #define CS ;
    #define verni return
    #define noleg 0
    #define strochechka string
    #define naruzhu <<
    #define vnutr >>
    #define vozmi cin
    #define daj cout
    #define esli if
    #define PISCS endl
    #define eshe &&
    #define cicle for
    #define poka while
    #define simvol char
    #define vozmis getchar()
    #define shlak EOF
    #define SPS '\n'
    #define vozmozhno ||
    #define eshe &&
    #define inache else
    chislo aasda[1000] CS
    chislo chistka()
    nachalo
    	chislo i CS
    	cicle(i=noleg CS i<1000 CS i++)
    		aasda[i]=noleg CS
    	verni aasda[noleg] CS
    konec
    chislo mnozh(chislo k)
    nachalo
    	chislo i CS
    	cicle(i=noleg+2 CS i<k CS i++)
    			esli(k%i==0) nachalo aasda[i]++ CS verni mnozh(k/i)+1 CS konec
    	aasda[k]++ CS
    	verni 1 CS
    konec
    chislo krutilka(chislo k)
    nachalo
    	esli(k==1) verni 1 CS
    	verni k*krutilka(k-1) CS
    konec
    chislo osnovnoe()
    nachalo
    	chislo colm, ppm=1, k, i CS
    	vozmi vnutr k CS
    	chistka() CS
    	colm=mnozh(k) CS
    	cicle(i=noleg CS i<=1000 CS i++)
    		esli(aasda[i]>0) ppm*=krutilka(aasda[i]) CS
    	daj naruzhu krutilka(colm)/ppm naruzhu PISCS CS				
    	verni noleg CS
    konec

    Так мы писали задачи на Турнире Архимеда=)

    Novi4oK, 26 Апреля 2010

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

    +165

    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
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    function month($n){
    	switch ($n) {
    		case  1: $m = "сiчнi"  ; break;
    		case  2: $m = "лютому"   ; break;    
    		case  3: $m = "березнi"; break;                                                            
    		case  4: $m = "квiтнi" ; break;
    		case  5: $m = "травнi" ; break;
    		case  6: $m = "червнi"  ; break;
    		case  7: $m = "липнi" ; break;
    		case  8: $m = "серпнi" ; break;
    		case  9: $m = "вереснi"; break;
    		case 10: $m = "жовтнi" ; break;
    		case 11: $m = "листопадi"; break;
    		case 12: $m = "груднi" ; break;
    	}
    return $m;
    }
    function month2($n)
    {
    switch ($n) 
    	{
    		case  1: $m = "сiчень"  ; break;
    		case  2: $m = "лютий"   ; break;    
    		case  3: $m = "березень"; break;                                                            
    		case  4: $m = "квiтень" ; break;
    		case  5: $m = "травень" ; break;
    		case  6: $m = "червень"  ; break;
    		case  7: $m = "липень" ; break;
    		case  8: $m = "серпень" ; break;
    		case  9: $m = "вересень"; break;
    		case 10: $m = "жовтень" ; break;
    		case 11: $m = "листопад"; break;
    		case 12: $m = "грудень" ; break;
    	}
    return $m;
    }
    /*... всяко разно ...*/
    if($month==1)$month="сiчнi";
    if($month==2)$month="лютому";
    if($month==3)$month="березнi";
    if($month==4)$month="квiтнi";
    if($month==5)$month="травнi";
    if($month==6)$month="червнi";
    if($month==7)$month="липнi";
    if($month==8)$month="серпнi";
    if($month==9)$month="вереснi";
    if($month==10)$month="жовтнi";
    if($month==11)$month="листопадi";
    if($month==12)$month="груднi";
    // дебажный комментарий тут был
    if($month1==1)$month1="сiчнi";
    if($month1==2)$month1="лютому";
    if($month1==3)$month1="березнi";
    if($month1==4)$month1="квiтнi";
    if($month1==5)$month1="травнi";
    if($month1==6)$month1="червнi";
    if($month1==7)$month1="липнi";
    if($month1==8)$month1="серпнi";
    if($month1==9)$month1="вереснi";
    if($month1==10)$month1="жовтнi";
    if($month1==11)$month1="листопадi";
    if($month1==12)$month1="груднi";
    /*...еще немного...*/
    if($month==1)$month1="сiчнi";
    if($month==2)$month1="лютому";
    if($month==3)$month1="березнi";
    if($month==4)$month1="квiтнi";
    if($month==5)$month1="травнi";
    if($month==6)$month1="червнi";
    if($month==7)$month1="липнi";
    if($month==8)$month1="серпнi";
    if($month==9)$month1="вереснi";
    if($month==10)$month1="жовтнi";
    if($month==11)$month1="листопадi";
    if($month==12)$month1="груднi";

    Werdn, 26 Апреля 2010

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

    +169

    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
    <div class="filterPanel" style="width:250px;">
    	<div class="filterComboBoxCaption">Диапазон времени:</div>
    	с: <select name="timeBeginFl" id="timeBeginFlId" style="width:80px;" onChange="javascript:resetTimes();">		
    		<option value="07:00:00" {if $object.timeBeginFl=="07:00:00"}selected{/if}>07:00</option>
    		<option value="07:30:00" {if $object.timeBeginFl=="07:30:00"}selected{/if}>07:30</option>
    		<option value="08:00:00" {if $object.timeBeginFl=="08:00:00"}selected{/if}>08:00</option>
    		<option value="08:30:00" {if $object.timeBeginFl=="08:30:00"}selected{/if}>08:30</option>
    		<!-- ещё N таких же строчек -->
    		<option value="05:00:00" {if $object.timeBeginFl=="05:00:00"}selected{/if}>05:00</option>
    		<option value="05:30:00" {if $object.timeBeginFl=="05:30:00"}selected{/if}>05:30</option>
    		<option value="06:00:00" {if $object.timeBeginFl=="06:00:00"}selected{/if}>06:00</option>
    		<option value="06:30:00" {if $object.timeBeginFl=="06:30:00"}selected{/if}>06:30</option>
    	</select>
    	по: <select name="timeEndFl" id="timeEndFlId" style="width:80px;">				
    		<option value="07:30:00" {if $object.timeEndFl=="07:30:00"}selected{/if}>07:30</option>
    		<option value="08:00:00" {if $object.timeEndFl=="08:00:00"}selected{/if}>08:00</option>
    		<option value="08:30:00" {if $object.timeEndFl=="08:30:00"}selected{/if}>08:30</option>
    		<option value="09:00:00" {if $object.timeEndFl=="09:00:00"}selected{/if}>09:00</option>
    		<!-- ещё N таких же строчек -->
    		<option value="05:00:00" {if $object.timeEndFl=="05:00:00"}selected{/if}>05:00</option>
    		<option value="05:30:00" {if $object.timeEndFl=="05:30:00"}selected{/if}>05:30</option>
    		<option value="06:00:00" {if $object.timeEndFl=="06:00:00"}selected{/if}>06:00</option>
    		<option value="06:30:00" {if $object.timeEndFl=="06:30:00"}selected{/if}>06:30</option>
    	</select>
    </div>

    Из шаблонов под Smarty.

    _shitCoder, 26 Апреля 2010

    Комментарии (3)
  8. Perl / Говнокод #3109

    −119

    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
    sub getMessages{
    local($mop,$pg,$all)=@_;
    
    if(!&db_query("select insurance_faq_main.id,date_format(insurance_faq_main.date,'%d.%m.%Y'),insurance_faq_main.name,insurance_faq_main.email,insurance_faq_main.www,insurance_faq_main.city,insurance_faq_main.message,insurance_faq_main.ip,answer from insurance_faq_main, insurance_faq_ans where insurance_faq_ans.idm=insurance_faq_main.id order by id desc limit ".$pg*$mop.",$mop")) {$body .= $db_message; return -1}
    
    $id;
    @date;
    @name;
    @email;
    @www;
    @city;
    @msg;
    @ip;
    @answer;
    
    for(local $i=0;defined($rows->[$i]);$i++)
        {
        $id[$i]=$rows->[$i]->[0];
        $date[$i]=$rows->[$i]->[1];
        $name[$i]=$rows->[$i]->[2];
        $email[$i]=$rows->[$i]->[3];
        $www[$i]=$rows->[$i]->[4];
        $city[$i]=$rows->[$i]->[5];
        $msg[$i]=$rows->[$i]->[6];
        $ip[$i]=$rows->[$i]->[7];
        $answer[$i]=$rows->[$i]->[8];
        }
    return $i;
    }

    Мужской способ возвращать результаты из функции

    Suor, 26 Апреля 2010

    Комментарии (7)
  9. VisualBasic / Говнокод #3108

    −86

    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
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    using System;
    using System.Web;
    using MaxPro;
    
    namespace HandlerFile
    {
    	public class FileHttpHandler : IHttpHandler
    	{
    		// Переопределяем метод ProcessRequest.
    		public void ProcessRequest(HttpContext context)
    		{
    			//var
    			Byte[] oImg;
    			Int32 iId=0;
    			Int32 iRemInt=0;
    			//var Zap
    			Int32 iNum=0;
    			Exception oErr;
    			Object[,] oZap=new Object[0,0];
    			//end var
    			if(All.IsInteger(context.Request.QueryString["iId"]))
    			{
    				iId=Convert.ToInt32(context.Request.QueryString["iId"]);
    				iNum=Ow.iZap1i("OneWindow.Procedure173","@iId",iId,out oZap,out oErr);
    			}
    			else if(All.IsInteger(context.Request.QueryString["iRemInt"]))
    			{
    				iId=Convert.ToInt32(context.Request.QueryString["iRemInt"]);
    				iNum=Ow.iZap1i("OneWindow.Procedure174","@iRemInt",iRemInt,out oZap,out oErr);
    			}
    			if(iNum>0)
    			{
    				oImg=(Byte[])oZap[0,0];
    				//генерация бинарного потока
    				/* Возможно пригодится, хотя ясности нет зачем,
    				 * но когда ie сбоит и не открывает файл, то это помогает, особенно ClearHeaders
    				 * Response.ClearContent()
    				 * Response.ClearHeaders()
    				 *///
    				context.Response.ContentEncoding=System.Text.Encoding.GetEncoding("UTF-8");
    				context.Response.Charset="UTF-8";
    				context.Request.ContentEncoding=System.Text.Encoding.UTF8;
    				switch (Convert.ToString(oZap[2,0]))
    				{
    					case "gif":
    						context.Response.ContentType="image/GIF";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "jpg":
    						context.Response.ContentType="image/JPEG";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "jpeg":
    						context.Response.ContentType="image/JPEG";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "bmp":
    						context.Response.ContentType="image/BMP";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "png":
    						context.Response.ContentType="image/PNG";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "txt":
    						context.Response.ContentType="text/plain";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "htm":
    						context.Response.ContentType="text/HTML";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "html":
    						context.Response.ContentType="text/HTML";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "xls":
    						context.Response.ContentType="application/vnd.ms-excel";
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "doc":
    						context.Response.ContentType="application/msword";
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "dot":
    						context.Response.ContentType="application/msword";
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "ppt":
    						context.Response.ContentType="application/vnd.ms-powerpoint";
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    					default:
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    				}
    				context.Response.OutputStream.Write(oImg,0,oImg.Length);
    			}
    		}

    а вам слабо? всё те же мос окна

    ursus, 26 Апреля 2010

    Комментарии (9)
  10. SQL / Говнокод #3107

    −863

    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
    SELECT 
        SQL_CALC_FOUND_ROWS id, 
        autor, 
    ...бла, бла, бла, ищо штук 15 дефолтных полей...
        tags, 
        perem_1, 
        perem_2, 
        perem_3, 
        perem_4, 
        perem_5, 
        perem_6, 
        perem_7, 
        perem_8, 
        perem_9, 
        perem_10, 
        perem_11, 
        perem_12, 
        perem_13, 
        perem_14, 
        perem_15, 
        perem_16, 
        perem_17, 
        perem_18, 
        perem_19, 
        perem_20, 
        perem_21, 
        perem_22, 
        poster, 
        screenshot_1, 
        screenshot_2, 
        screenshot_3, 
        screenshot_4
    FROM dle_post
    WHERE approve
    AND allow_main
    AND date < '2010-04-26 04:00:01'
    ORDER BY FIXED DESC , date DESC 
    LIMIT 0 , 6

    помните дети, долгое^W употребление LSD^W DLE вредит вашему здоровью
    ДЛЕ не способен разделять данные в разделах (видио: разрешение, длительность и тп.; игры: жанр, таблетка, сис.требования и тд...) и вот таким изящным способом дети употреблявшие LSD^W DLE решили свою проблему

    DrFreez, 25 Апреля 2010

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