1. Список говнокодов пользователя RomaShka

    Всего: 8

  2. Pascal / Говнокод #13247

    +69

    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
    while not recived do
         begin
           Application.ProcessMessages;
    //       do_log('Reciving CS response');
           p:=pos('</ROW>',ss);
           if p>1 then recived:=true else
           begin
           s := CS.Socket.ReadLn+#10#13;
    //       do_log(s);
           ss:=ss+s;
           end;
           if cs.Socket.ReadLnTimedout then cs.Socket.Close;
           if not cs.Connected then recived:=true;
         end;
        do_log('RECIVING done ');
        cs.Free;
        ss:=UTF8ToStrSmart(ss);
        do_log(ss);

    HTTP 1.1
    отправляет запрос, получает ответ в XML
    Вы видите условие выхода из цикла?
    я нет.
    параллельный трид отсчитывает 3 секунды и принудительно закрывает сокет. с учетом keep-alive это дает полтора года мозго..6ли
    аутсорс фрилансерам он такой...

    RomaShka, 27 Июня 2013

    Комментарии (11)
  3. SQL / Говнокод #11244

    −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
    select a, trim(both ',' from max(SYS_CONNECT_BY_PATH(b, ',')))bb from (
      select count(1) over (partition by a order by /* Важно:*/ a,b /*!*/)rn, a, b from (
    
        select a, b from (
          select 1 a, 'a' b from dual union all
          select 1 a, 'b' b from dual union all
          select 2 a, 'c' b from dual union all
          select 2 a, 'd' b from dual union all
          select 2 a, 'e' b from dual union all
          select 3 a, 'f' b from dual
        ) order by dbms_random.value
    
      )
    )
    start with rn=1 connect by nocycle prior a=a and prior rn+1=rn
    group by a;

    Задача на агрегацию с конкатенацией строк. Можно решить правильно - через свой агрегирующий объект, а можно так, "не по правилам" ))

    RomaShka, 20 Июня 2012

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

    −852

    1. 1
    2. 2
    3. 3
    ...
    trunc(to_date('01.'||to_char(:P_DATE,'mm.yyyy'),'dd.mm.yyyy'),'dd')
    ...

    так пишут некоторые наши программистки - женщины старой закалки

    RomaShka, 19 Июля 2011

    Комментарии (13)
  5. SQL / Говнокод #6622

    −861

    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
    /* Formatted on 2011/05/11 16:11 (Formatter Plus v4.8.7) */
    CREATE SEQUENCE tmpseq
    /
    CREATE TABLE tmpt(a NUMBER, b NUMBER)
    /
    CREATE OR REPLACE TRIGGER tmpt_bi
       BEFORE INSERT
       ON tmpt
       REFERENCING NEW AS NEW OLD AS OLD
       FOR EACH ROW
    BEGIN
       IF :NEW.a IS NULL
       THEN
          SELECT tmpseq.NEXTVAL
            INTO :NEW.a
            FROM DUAL;
       END IF;
    END;
    /
    DECLARE
       l_a   tmpt.a%TYPE;
       n     NUMBER;
    BEGIN
       FOR n IN 5 .. 8
       LOOP
          INSERT INTO tmpt
                      (b
                      )
               VALUES (n
                      )
            RETURNING a
                 INTO l_a;
    
          DBMS_OUTPUT.put_line (l_a);
       END LOOP;
    END;
    /
    select * from tmpt
    /
    DROP TRIGGER tmpt_bi
    /
    DROP TABLE tmpt
    /
    DROP SEQUENCE tmpseq
    /
    COMMIT

    иногда я не верю мануалам и проверяю себя небольшими кусочками кода. на этот раз я проверил конструкцию returning

    RomaShka, 11 Мая 2011

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

    +163

    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
    <?
    $cont = file_get_contents("http://www.cbr.ru/scripts/XML_daily.asp");
    $pattern = "/<CharCode>(.*?)<\/CharCode>\s*<Nominal>(.*)<\/Nominal>\s*<Name>(.*)<\/Name>\s*<Value>(.*)<\/Value>/im";
    
    $cnt =  preg_match_all($pattern,$cont,$matches);
    
    if($cnt != FALSE)
    {
      
      $count_currencies = count($matches[1]);
    
      for($i=0;$i<$count_currencies;$i++)
      {
        $curr_abbr = $matches[1][$i];
        $curr_nominal = $matches[2][$i];
        $curr_name = $matches[3][$i];
        $curr_value = $matches[4][$i];
        
        echo "$curr_abbr - $curr_nominal - $curr_name - $curr_value <br>";
      } // for
      
    } // if($cnt != FALSE)
    ?>

    после сдачи сайта разраб CMS спешно уволился.

    RomaShka, 20 Апреля 2011

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

    +155

    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
    /* 
      где-то в 
      /includes.php
    */
    
    function __autoload($class_name) {
        if ($class_name[0] == 'm'){
            $m = DOCROOT . APPBASE . 'Models/' . substr($class_name,1) . '.php';
            if(defined('DEBUG')) echo 'autoload model class'.$m.'<br/>';
            require_once $m;
        } elseif ($class_name[0] == 'c'){
            $c=DOCROOT . APPBASE . 'Controllers/' . substr($class_name,1) . '.php';
            if(defined('DEBUG')) echo 'autoload controller class'.$c.'<br/>';
            require_once $c;
        }
    }
    
    /* 
      где-то в 
      /Controllers/Data.php
    */
    class cData extends controller {
    /* ... */
    }
    
    
    /* 
      где-то в 
      /Models/Data.php
    */
    class mData extends model {
    /* ... */
    }

    каждый программист обязан написать свой MVC и свой ActiveRecord

    RomaShka, 15 Апреля 2011

    Комментарии (57)
  8. SQL / Говнокод #6366

    −860

    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
    select 
    (CASE WHEN d.t1_aup_f IS NULL THEN (
      CASE WHEN (lag(sum(d.t1_aup_f),1) over (order by d.real_day)) IS NULL THEN (
       CASE WHEN (lag(sum(d.t1_aup_f),2) over (order by d.real_day)) IS NULL THEN (
     /* ... */
                                 CASE WHEN (lag(sum(d.t1_aup_f),28) over (order by d.real_day)) IS NULL THEN (
                                  CASE WHEN (lag(sum(d.t1_aup_f),29) over (order by d.real_day)) IS NULL THEN
                                   lag(sum(d.t1_aup_f),30) over (order by d.real_day )
                                  ELSE (lag(sum(d.t1_aup_f),29) over (order by d.real_day)) END)
                                 ELSE (lag(sum(d.t1_aup_f),28) over (order by d.real_day)) END)
                                ELSE (lag(sum(d.t1_aup_f),27) over (order by d.real_day)) END)
     /* ... */
       ELSE (lag(sum(d.t1_aup_f),2) over (order by d.real_day)) END)
      ELSE (lag(sum(d.t1_aup_f),1) over (order by d.real_day)) END)
    ELSE d.t1_aup_f END) gf_1 
    from sometable

    таких полей было больше. тут http://paste.org.ru/?zlc3b8 - целиком. для полноты картины. надеюсь, не я написал, хотя... ))))

    RomaShka, 15 Апреля 2011

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

    +151

    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
    if(get_magic_quotes_gpc()) {
        deslash($_GET);
        deslash($_POST);
    }
    
    /*
     * function deslash(&$a)
     * убирает слеши из данных извне
     */
    function deslash(&$a) {
        if(defined('DEBUG'))echo '<br/>deslashing: '.print_r($a,true).'<br/>';
        foreach($a as $k=>$v)
            if (is_array($v)) {
                deslash($a[$k]);
            } else {
                if(defined('DEBUG')) echo 'was: '.$k.' => '.$v.'<br/>';
                $a[$k] = stripslashes($v);
                if(defined('DEBUG')) echo 'become: '.$k.' => '.$a[$k].'<br/>';
            }
    }

    Слэши не пройдут!

    RomaShka, 15 Апреля 2011

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