1. Лучший говнокод

    В номинации:
    За время:
  2. Куча / Говнокод #24814

    +3

    1. 1
    2. 2
    Вопрос к патриарху. Ежели комар поочерёдно укусит близких родственников, то, стало быть, их кровь смешается в в его брюшке.
    Можно ли узреть в этом инцест, и какое наказание за это полагается?

    Как церковь смотрит на кровосмешение при комарином укусе?

    Konardyan, 25 Сентября 2018

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

    +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
    static {
        final Logger log = LoggerFactory.getLogger(ModulePeer.class);
        if (log.isDebugEnabled()) {
          final Map<String, Function<String, String>> source = new LinkedHashMap<>();
          source.put("LD_LIBRARY_PATH", System::getenv);
          source.put("java.library.path", System::getProperty);
          source.put("java.class.path", System::getProperty);
    
          final Map<String, Set<Path>> dump = source.entrySet().stream().collect(Collectors.toMap(e -> e
            .getKey(), e -> Optional.ofNullable(e.getValue().apply(e.getKey())).map(i -> Pattern
              .compile(Pattern.quote(System.getProperty("path.separator"))).splitAsStream(i)).orElse(
                Stream.empty()).map(n -> Paths.get(n).toAbsolutePath()) //
              .collect(Collectors.toCollection(TreeSet::new)), (u, v) -> {
                throw new IllegalStateException(String.format("Duplicate key %s", u));
              }, LinkedHashMap::new));
    
          log.info(dump.toString());
        }
    ...
    }

    Немного практики с манадами и лямбдами.

    javamaker, 25 Сентября 2018

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

    +2

    1. 1
    https://i.imgur.com/foJHCYt.jpg

    Новые винды теперь даже БСОД не могут полностью вывести полностью.
    Хотели сделать красивый нескучный bsod с грустным смайликом, а он теперь не выводится из-за всей этой красивости и нескучности. Оставили б старый bsod - была бы какая-то инфа о причинах самого бсода. Но зато тут теперь нескучный смайлик.

    То ли дело кернелпаник в прыщах, никаких тебе смайликов и чорная страшная консоль с непонятными циферками и буковками. Неюзерфрендли

    j123123, 24 Сентября 2018

    Комментарии (45)
  5. PHP / Говнокод #24811

    +1

    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
    /**
     * Cast an object into a different class.
     *
     * Currently this only supports casting DOWN the inheritance chain,
     * that is, an object may only be cast into a class if that class 
     * is a descendant of the object's current class.
     *
     * This is mostly to avoid potentially losing data by casting across
     * incompatable classes.
     *
     * @param object $object The object to cast.
     * @param string $class The class to cast the object into.
     * @return object
     */
    function cast($object, $class) {
    	if( !is_object($object) ) 
    		throw new InvalidArgumentException('$object must be an object.');
    	if( !is_string($class) )
    		throw new InvalidArgumentException('$class must be a string.');
    	if( !class_exists($class) )
    		throw new InvalidArgumentException(sprintf('Unknown class: %s.', $class));
    	if( !is_subclass_of($class, get_class($object)) ) 
    		throw new InvalidArgumentException(sprintf(
    			'%s is not a descendant of $object class: %s.',
    			$class, get_class($object)
    		));
    	/**
    	 * This is a beautifully ugly hack.
    	 *
    	 * First, we serialize our object, which turns it into a string, allowing
    	 * us to muck about with it using standard string manipulation methods.
    	 *
    	 * Then, we use preg_replace to change it's defined type to the class
    	 * we're casting it to, and then serialize the string back into an
    	 * object.
    	 */
    	return unserialize(
    		preg_replace(
    			'/^O:\d+:"[^"]++"/', 
    			'O:'.strlen($class).':"'.$class.'"',
    			serialize($object)
    		)
    	);
    }

    Это прекрасно.

    gost, 25 Сентября 2018

    Комментарии (6)
  6. Lua / Говнокод #24804

    +1

    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
    --Запрос в яндекс за спичером
    function thstart(text)
      
      local th = [[
      love.filesystem.remove("tmp.ogg");
      local str = ...
      local encodeURI = function(str)
    		if (str) then
    			str = string.gsub (str, "\n", "\r\n")
    			str = string.gsub (str, "([^%w ])",
    				function (c) return string.format ("%%%02X", string.byte(c)) end)
            str = string.gsub (str, " ", "+")
    	   end
    	   return str
      end
      str = encodeURI(str)
      local http = require("socket.http");
      body = http.request("https://tts.voicetech.yandex.net/generate?text="..str.."&format=mp3&lang=ru-RU&speaker=kolya&emotion=evil&key=069b6659-984b-4c5f-880e-aaedcfd84102&speed=0.8")
      if body then
        love.filesystem.write("tmp.mp3",body)
        love.thread.getChannel('im'):push("tmp.mp3")
      else
        love.thread.getChannel('im'):push("err")
      end
      --love.thread.getChannel('im'):push("err")
      ]]
      tred = nil
      tred = love.thread.newThread(th);  
      tred:start(text);
    end
    
    function thpop()
      local info = love.thread.getChannel( 'im' ):pop()
      if info then
        if info == "err" then
          return "err"
        else
          return info
        end
      end
      return nil
    end

    3oJIoTou_xyu, 24 Сентября 2018

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

    +1

    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
    struct A { 
      virtual int transmogrify();
    };
     
    struct B : A {
      int transmogrify() override { new(this) A; return 2; }
    };
     
    int A::transmogrify() { new(this) B; return 1; }
     
    static_assert(sizeof(B) == sizeof(A));
    
    int main() {
      A i;
      int n = i.transmogrify();
      // int m = i.transmogrify(); // undefined behavior
      int m = std::launder(&i)->transmogrify(); // OK
      assert(m + n == 3);
    }

    Yo dawg, we heard you like kostyli, so we put our kostyli into your kostyli, so that you can use kostyli to support our kostyli!

    https://en.cppreference.com/w/cpp/utility/launder

    А если серьезно, мне еще не удалось соорудить пример, чтоб код с std::launder и без него работали по разному.

    Elvenfighter, 24 Сентября 2018

    Комментарии (19)
  8. C++ / Говнокод #24802

    +1

    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
    #include <map>
    #include <stdio.h>
    #include <vector>
    using namespace std;
     
    int main() {
       map<string, int> karta;
       for (auto pituh : vector<string> {"foo", "bar", "foo"}) {
        	karta[pituh]++;
       }
       printf("foo: %d\nbar: %d\n", karta["foo"], karta["bar"]);
       return 0;
    }

    <?php

    $karta = [];
    foreach (["foo", "bar", "foo"] as $pituh) {
    if (!isset($karta[$pituh])) {
    $karta[$pituh] = 0;
    }
    $karta[$pituh]++;
    }
    echo "foo: {$karta['foo']}\nbar: {$karta['bar']}\n";


    Поэтому за что я?

    guestinxo, 24 Сентября 2018

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