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

    Всего: 202

  2. Куча / Говнокод #13553

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <Target Name="AfterBuild">
      <PropertyGroup>
        <base>$(ProjectDir.Replace('\', '/'))</base>
      </PropertyGroup>
      <Exec Command="$(bash) -c 'cd $(base)doc ; thor md:generate $(base)doc/doc.md'" />

    Генерация документации по феншую.

    wvxvw, 05 Августа 2013

    Комментарии (7)
  3. Куча / Говнокод #13543

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    : %fib
        ( left right count limit -- result )
        2dup u<= if 2drop swap drop exit then
        1+ 2swap tuck + 2swap recurse ;
    
    : fib
        ( n -- n )
        1 2 0 -rot 2swap %fib ;

    Где там ForthGovno?

    wvxvw, 03 Августа 2013

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

    +125

    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
    <Target Inputs="@(DeployLabel)" Name="GenericDeploy" Outputs="%(Identity).Dummy">
        <PropertyGroup>
          <TargetFilter>%(DeployLabel.Dir)</TargetFilter>
          <TargetFilterReplaced>$(TargetFilter.Replace('\', ''))</TargetFilterReplaced>
        </PropertyGroup>
        <WriteLinesToFile
            File="$(ProjectDir)tsfiles.txt"
            Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(%(Filter),
                       '$(TargetFilterReplaced)'))"
            Lines="@(TypeScriptCompile -&gt;'&quot;%(fullpath)&quot;', ' ')"
            Overwrite="false" />
        <PropertyGroup>
          <TSFilesFiltered>$([System.IO.File]::ReadAllText($(ProjectDir)tsfiles.txt))</TSFilesFiltered>
          <TSFilesOneLine>$([System.Text.RegularExpressions.Regex]::Replace(
          $(TSFilesFiltered), "[\n\r]+", " "))</TSFilesOneLine>
        </PropertyGroup>
        <Exec Command="tsc --target ES3 -c -d --out $(Deployroot)\foo.js $(TSFilesOneLine)" />
        <Delete Files="$(ProjectDir)tsfiles.txt"/>
      </Target>

    Кто не был, тот будет, кто был, тот не забудет.
    MSBuild: задача отфильтровать массив из строк. Я за два дня ничего лучшего не придумал.

    wvxvw, 07 Июля 2013

    Комментарии (3)
  5. JavaScript / Говнокод #13167

    +147

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    /* ----------------------- */
    function stopLevel()
    {
        //clean
        context2D.clearRect(...);
        ...
    }
    
    /* ----------------------- */
    /* ----------------------- */
    /* ----------------------- */
    function nextStep() { ... }

    В коде все комментарии написаны исключительно азбукой Морзе :|

    wvxvw, 13 Июня 2013

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

    +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
    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
    --- a/src/Foo.js
    +++ b/src/Foo.js
    @@ -1,21 +1,61 @@
         var Foo = (function () {
             function Foo(productId, productSettings, overrides) {
                 var backup, loc = document.location, home;
    -            this._sdkSettings = Program.Utils.deepCopy(Take5.settings);
    +            this._sdkSettings = JSON.parse(JSON.stringify(TGH5.settings));
                 if(overrides) {
    -                this._sdkSettings = Program.Utils.copyProperties(overrides, this._sdkSettings);
    +                if('debug' in overrides) {
    +                    this._sdkSettings.debug = overrides.debug;
    +                }
    +                if('inDemoMode' in overrides) {
    +                    this._sdkSettings.inDemoMode = overrides.inDemoMode;
    +                }
    +                if('sdkHome' in overrides) {
    +                    this._sdkSettings.sdkHome = overrides.sdkHome;
    +                }
    +                if('eixtUrl' in overrides) {
    +                    this._sdkSettings.exitUrl = overrides.exitUrl;
    +                }
    +                if('ads' in overrides) {
    +                    if('preRoll' in overrides.ads) {
    +                        this._sdkSettings.ads.preRoll = overrides.ads.preRoll;
    +                    }
    +                    if('inGame' in overrides.ads) {
    +                        this._sdkSettings.ads.inGame = overrides.ads.inGame;
    +                    }
    +                    if('postRoll' in overrides.ads) {
    +                        this._sdkSettings.ads.postRoll = overrides.ads.postRoll;
    +                    }
    +                }
    +                if('reporting' in overrides) {
    +                    if(overrides.reporting instanceof Object) {
    +                        if('analyticsId' in overrides.reporting) {
    +                            this._sdkSettings.reporting.analyticsId = overrides.reporting.analyticsId;
    +                        }
    +                        if('site' in overrides.reporting) {
    +                            this._sdkSettings.reporting.site = overrides.reporting.site;
    +                        }
    +                        if('virtualPageRoot' in overrides.reporting) {
    +                            this._sdkSettings.reporting.virtualPageRoot = overrides.reporting.virtualPageRoot;
    +                        }
    +                        if('initParams' in overrides.reporting) {
    +                            this._sdkSettings.reporting.initParams = overrides.reporting.initParams;
    +                        }
    +                    } else {
    +                        this._sdkSettings.reporting = overrides.reporting;
    +                    }
    +                }
                 }

    А я сажаю алюминивые агурцы - а-а - на брезентовом поле :(
    Некоторые имена сознательно изменены дабы не посягать на копирайты и торговые знаки.

    wvxvw, 02 Июня 2013

    Комментарии (2)
  7. Куча / Говнокод #12955

    +141

    1. 1
    error: 'merge' is not possible because you have unmerged files.

    Угадайте кто!

    wvxvw, 30 Апреля 2013

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

    +128

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    trait NumericUpperBound[Num1, Num2, UpperBound]
    implicit object NumericUpperBoundIDD extends NumericUpperBound[Int, Double, Double]
    implicit object NumericUpperBoundDID extends NumericUpperBound[Double, Int, Double]
    
    def compareTwoNumbers3[N1, N2, N3](n1: N1, n2: N2)
                                     (implicit nub: NumericUpperBound[N1, N2, N3], 
                                             conv1: NumericConversion[N1, N3], 
                                             conv2: NumericConversion[N2, N3], 
                                               ord: Ordering[N3]): Int = {
      ord compare (conv1 convert n1, conv2 convert n2)
    }

    Скала, сравниваем два числа.
    Вот, задался целью на досуге познакомится с этим замечателным языком, а теперь такое отвращение к потерпевшему испытываю, что даже кушать не могу.

    wvxvw, 01 Апреля 2013

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

    −167

    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
    declare @billing_types table(k int null, t varchar(14)
    	collate SQL_Latin1_General_CP1255_CI_AS)
    insert @billing_types 
    values (1, 'אשרי')
    	   ,(2, 'צ׳ק')
    	   ,(3, 'הוראת קבע')
    
    declare @standing_order_status table(i int null, s varchar(14)
    	collate SQL_Latin1_General_CP1255_CI_AS)
    insert @standing_order_status 
    values (4, 'מבותל')
    	   ,(3, 'לא מאושר')
    	   ,(2, 'ממתין')
    	   ,(1, 'מאושר')
    
    declare @fax varchar(20)
    
    select billing_company_id
          ,internal_company_name
    	  ,isnull(t, 'לא פעיל') collate SQL_Latin1_General_CP1255_CI_AS as payment_type_string
          ,case when company_email is null then ''
    			when replace((ltrim(rtrim(company_email))), '0', '') = '' then ''
    			-- some emails were imported in the way, they aren't valid
    			when charindex('@', company_email) = 0 then ''
    			else (ltrim(rtrim(company_email))) end as email
          ,case when replace(ltrim(rtrim(company_fax)), '0', '') = '' 
    			then ''
    	   		when -- some times there are words like "none", "n/a" etc. in there
    			replace(replace(replace(replace(replace(replace(replace(
    				replace(replace(replace(replace(ltrim(rtrim(company_fax)), '-', ''), 
    				'0', ''), '1', ''), '2', ''), '3', ''), '4', ''), '5', ''), '6', ''),
    				'7', ''), '8', ''), '9', '') != '' 
    			then ''
    			else replace(ltrim(rtrim(company_fax)), '-', '')
    		end as c_fax
          ,ltrim(rtrim(company_address)) as c_address
          ,ltrim(rtrim(cast(company_comments as varchar(1000)))) as c_comments
          ,invoice_send_with_details
          ,invoice_send_fax
          ,invoice_print
          ,ltrim(rtrim(cc_name)) as c_name
          ,ltrim(rtrim(cc_number)) as c_number
          ,ltrim(rtrim(cc_cvv)) as c_cvv
          ,ltrim(rtrim(cc_id)) as c_id
          ,ltrim(rtrim(cc_expire)) as c_expire
          ,ltrim(rtrim(bank_number)) as number
          ,ltrim(rtrim(bank_branch)) as branch
          ,ltrim(rtrim(bank_account)) as account
          ,bank_hoshen
    	  ,isnull(s, 'אין') collate SQL_Latin1_General_CP1255_CI_AS as order_status
    from billing_companies
    left join @billing_types bt on bt.k = payment_type
    left join @standing_order_status os on os.i = bank_standing_order_status

    Война. Экспорт в Эксель, для того, чтобы потом ее обратно, но уже другим людям в базу передать.
    Из интересных подробностей. Поле "факс" в базе имеет тип varchar(50), например. Никакой серверной валидации отродясь не было. Иногда люди просто путали факс и электорпочту, когда заполняли данные.

    wvxvw, 13 Марта 2013

    Комментарии (15)
  10. Куча / Говнокод #12734

    +127

    1. 1
    2. 2
    $ svn ls -R | grep 'location.php' | wc -l
    87

    teh trauma (continued)
    Все 87 файлов выглядят более-менее одинаково... за исключением одного, или, возможно 2-3. Это никакие ни файлы настроек, ничего подобного. Там просто редирект куда-то.

    wvxvw, 12 Марта 2013

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

    +153

    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
    $statement = $pdo->prepare(
         "if not exists
          (select daily_serving_start, daily_serving_end,
                  weekly_service_off, one_time_service_off
          from menu_availability_rules
          where
            (daily_serving_start = :start0 or
             (daily_serving_start is null and :start1 is null)) and
            (daily_serving_end = :end0 or
             (daily_serving_end is null and :end1 is null)) and
            (weekly_service_off = :weekly0 or
             (weekly_service_off is null and :weekly1 is null)) and
            (one_time_service_off = :once0 or
             (one_time_service_off is null and :once1 is null)))
          begin
            insert into menu_availability_rules
             (daily_serving_start, daily_serving_end,
              weekly_service_off, one_time_service_off)
            values (:start2, :end2, :weekly2, :once2)
          end
    
          if not exists
          (select menu_id, daily_serving_start, daily_serving_end,
                  weekly_service_off, one_time_service_off
          from menu_availability
          where
           menu_id = :menu_id0 and
           (daily_serving_start = :start3 or
             (daily_serving_start is null and :start4 is null)) and
            (daily_serving_end = :end3 or
             (daily_serving_end is null and :end4 is null)) and
            (weekly_service_off = :weekly3 or
             (weekly_service_off is null and :weekly4 is null)) and
            (one_time_service_off = :once3 or
             (one_time_service_off is null and :once4 is null)))
          begin
            insert into menu_availability
             (menu_id, daily_serving_start, daily_serving_end,
              weekly_service_off, one_time_service_off)
            values (:menu_id1, :start5, :end5, :weekly5, :once5)
          end");

    Мое :( А что делать?

    wvxvw, 10 Марта 2013

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