1. JavaScript / Говнокод #23475

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public do(action: 'un' | 're'): void {
        const result = (<any>this._appApi.app.documentManager.current)[action + 'do']();
        if (!result.success) this._toastService.error(result.errorMessage, `Ошибка ${action}do`);
    }
    
     <button (click)="do('un')" title="Отменить"><i class="material-icons md-36">undo</i></button>
     <button (click)="do('re')" title="Повторить"><i class="material-icons md-36">redo</i></button>

    mazhuravlev, 01 Ноября 2017

    Комментарии (51)
  2. bash / Говнокод #23474

    +1

    1. 1
    Кегдан вернулся, давайте радоваться вместе!

    d_fomenok, 01 Ноября 2017

    Комментарии (3)
  3. Ruby / Говнокод #23473

    0

    1. 1
    2. 2
    3. 3
    def self
      self
    end

    irb(main):002:0> self
    => main
    irb(main):003:0> self.self
    => main
    irb(main):004:0> # уииииииииииииииииииииииииииииииии
    irb(main):005:0* self.self.self.self.self.self.self.self.self.self.self.self.self.self.self.self.self
    => main

    Stallman, 01 Ноября 2017

    Комментарии (5)
  4. Ruby / Говнокод #23472

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    # как надо укуриться чтобы придумать такой синтаксис? вам не кажется что стрелочка немного не там?
    my_sum = -> (arg1, arg2) {arg1 + arg2}
    
    # тем более что это полный алиас
    my_sum = lambda {|arg1, arg2| arg1 + arg2}
    # нафига?!

    SemaReal, 01 Ноября 2017

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

    0

    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
    internal class Log
    	{
    		public static void WriteLine(string methodName, UpdateFile file, Exception e, LogType type = LogType.Success)
    		{
    			using (FileStream fileStream = new FileStream(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\patch.log", FileMode.OpenOrCreate))
    			{
    				using (StreamReader streamReader = new StreamReader(fileStream))
    				{
    					using (StreamWriter streamWriter = new StreamWriter(fileStream))
    					{
    						streamWriter.WriteLine(string.Format("Launcher | {0} | {1} | {2} | {3} | {4}", new object[]
    						{
    							type,
    							methodName,
    							file.FullPath,
    							e,
    							DateTime.Now
    						}), streamReader.ReadToEnd().Length);
    					}
    				}
    			}
    		}
    
    ...

    Как получить размер файла? Правильно, надо прочитать его в память и взять размер данных из памяти :facepalm:
    Зачем получать размер файла, даже не спрашивайте ))

    Источник: hxxp://promo.riseofrunes.com/InstLauncher.zip (C#, декомпилятор).

    luxtau, 31 Октября 2017

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

    0

    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
    void DevToolsHttpHandler::OnJsonRequest(
        int connection_id,
        const net::HttpServerRequestInfo& info) {
      // Trim /json
      std::string path = info.path.substr(5);
    
      // Trim fragment and query
      std::string query;
      size_t query_pos = path.find("?");
      if (query_pos != std::string::npos) {
        query = path.substr(query_pos + 1);
        path = path.substr(0, query_pos);
      }
    
      size_t fragment_pos = path.find("#");
      if (fragment_pos != std::string::npos)
        path = path.substr(0, fragment_pos);
    
      std::string command;
      std::string target_id;
      if (!ParseJsonPath(path, &command, &target_id)) {
        SendJson(connection_id,
                 net::HTTP_NOT_FOUND,
                 NULL,
                 "Malformed query: " + info.path);
        return;
      }
      ...
      100500 строк типичного ЦПП бреда
    }

    https://cs.chromium.org/chromium/src/content/browser/devtools/devtools_http_handler.cc?l=487


    Суровые разработчики гуглобраузера настолько суровы, что УРЛ парсят вручную, не используя утилитные функции.

    А вообще, в коде который относится к инструментам разработчика в гуглобраузере все прекрасно, чего стоит только вот это говно:
    https://cs.chromium.org/chromium/src/third_party/WebKit/Source/devtools/scripts/build/generate_protocol_externs.py

    wvxvw, 31 Октября 2017

    Комментарии (0)
  7. Ruby / Говнокод #23469

    +6

    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
    Ruby programmers are very particular about how their for-loops are written and will declare you a bad programmer for simply using this one construct wrong. 
    They went so far as to break the for-each version of looping so that there are problems with using it, forcing you to conform to their culture. Heed my warning that
     you should always use .each and never for-each for fear of being forever branded bad and shunned. Yes, it is as ridiculous as it sounds.
    
    # запишут в пидарасы
    for i in (1..10)
      puts i
    end
    
    # зауважают
    (1..10).each do |i|
      puts i
    end

    SemaReal, 31 Октября 2017

    Комментарии (13)
  8. Ruby / Говнокод #23468

    0

    1. 1
    2. 2
    3. 3
    and is the same as && but with lower precedence. They both use short-circuit evaluation.
    
    WARNING: and even has lower precedence than = so you'll want to avoid and always

    SemaReal, 31 Октября 2017

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

    0

    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
    function string_cleaner($data, array $opts) //1: Массив или строка, 2: Только массив
    	{
    		
    		if (empty($opts))
    		{
    			$opts['null_byte'] = TRUE;
    		}
    		
    		$null_byte = ($opts['null_byte'] == 'off')
    			? FALSE
    			: TRUE;
    		
    		$opts_allowed = ['trim', 'htmlspecialchars', 'strip_tags', 'addslashes', 'htmlentities'];
    		
    		$opts = array_intersect_key($opts, array_flip($opts_allowed));
    		
    		if(is_array($data))
    		{
    			foreach($data as $key => &$value)
    			{
    				if(is_array($value))
    				{
    					string_cleaner($value, $opts);
    				}
    				
    				if ($null_byte)
    				{
    					$value = str_replace(chr(0), '', $value);
    				}
    				
    				if(is_array($opts))
    				{
    					foreach($opts as $clear_func => $clear_func_params)
    					{
    						$value = (!$clear_func_params) ? $clear_func($value) : $clear_func($value, $clear_func_params);
    					}
    				}
    			}
    		}
    		else
    		{
    			if ($null_byte)
    			{
    				$data = str_replace(chr(0), '', $data);
    			}
    			
    			if(is_array($opts))
    			{
    				foreach($opts as $clear_func => $clear_func_params)
    				{
    					$data = $value = (!$clear_func_params) ? $clear_func($data) : $clear_func($data, $clear_func_params);
    				}
    			}
    		}
    		
    		return $data;
    		
    	}
    
    {...}
    
    	$server['get'] = string_cleaner($_GET, ['trim'=>' ', 'htmlentities'=>'', 'strip_tags'=>'', 'addslashes'=>'']);

    Для сука ленивых

    Intention, 30 Октября 2017

    Комментарии (30)
  10. PHP / Говнокод #23466

    −2

    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
    <?php
    
    for($a = 1;$a <= 1;$a++){
        echo "$a";
        for ($b = 2 ;$b <= 2;$b++){
            echo "<br /> $b";
            for ($c = 3 ;$c <= 3;$c++){
                echo "$c";
                for ($d = 4;$d <= 4;$d++){
                    echo "<br/> $d";
                    for ($e = 5;$e <= 5;$e++){
                        echo "$e";
                        for($f = 6;$f <= 6;$f++){
                            echo "$f";
                            for ($j = 7;$j <= 7;$j++){
                                echo "<br />$j";
                                for ($h = 8;$h <=8;$h++)
                                echo "$h";
                                for ($i = 9;$i <= 9;$i++){
                                    echo "$i";
                                    for ($k = 10;$k <= 10;$k++){
                                        echo "$k";
                                        for ($l = 11;$l <= 11;$l++){
                                            echo "<br />$l";
                                            for ($m = 12;$m <= 12;$m++){
                                                echo "$m";
                                                for ($n = 13;$n <= 13;$n++){
                                                    echo "$n";
                                                    for ($o = 14;$o <= 14;$o++){
                                                        echo "$o";
                                                        for ($p = 15;$p <= 15;$p++){
                                                            echo "$p";
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    talibana, 30 Октября 2017

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