1. bash / Говнокод #17629

    −113

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    arp_monitor() {
        echo "ARP monitor started on $LAN_IFACE..."
        tcpdump -l -n -i $LAN_IFACE ether src not $LAN_MAC 2>/dev/null | awk 'BEGIN{FS="[ ,]"}{if ($2 == "ARP" && $4 == "Request") print $6, $8;}' | while read GATEWAY CLIENT; do
            if [ "$GATEWAY" == "$CLIENT" ]; then
                echo "Got ARP collision probe gw=$GATEWAY client=$CLIENT"
            else
                echo "Got ARP request gw=$GATEWAY client=$CLIENT"
                ip addr add "$GATEWAY/32" dev "$LAN_IFACE" 2>/dev/null
                ip route add "$CLIENT/32" dev "$LAN_IFACE" 2>/dev/null
            fi
        done
    }

    Фрагмент моего magic router'а, который раздаёт инет любому воткнутому в него компу (ну кроме совсем паталогических случаев).

    bormand, 12 Февраля 2015

    Комментарии (56)
  2. Ruby / Говнокод #17628

    −99

    1. 1
    if params[:back_url].try(:start_with?, '/appeals/') && params[:back_url].try(:end_with?, '/next_step')

    Регулярки для лохов

    FancyDancy, 12 Февраля 2015

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

    +52

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // round up the blockSize to fit an integer number of pointers...
    m_blockSize = static_cast<QMPoolSize>(sizeof(QFreeBlock));//start with one
    uint_fast16_t nblocks = uf16_1; //# free blocks in a memory block
    while (m_blockSize < static_cast<QMPoolSize>(blockSize)) {
        m_blockSize += static_cast<QMPoolSize>(sizeof(QFreeBlock));
        ++nblocks;
    }

    в догонку к #17616. делим на 4 с округлением, с помощью цикла.

    P.S. касты и цикл само собой разумеется в ж не нужны:
    m_blockSize = (blockSize + sizeof(QFreeBlock)-1) & ~(sizeof(QFreeBlock)-1);
    nblocks = m_blockSize / sizeof(QFreeBlock);

    Dummy00001, 12 Февраля 2015

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

    +158

    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
    //Получим все пробеги за все периоды
    		$ps_res = array();
    		foreach ($crews as $v)
    		{
    			foreach ($v['ps'] as $ps)
    			{
    				/**
    				 * Отправим горку запросов в виалон на получение километража.
    				 * Можноо, конечно сделать по людски и генерировать массив и
    				 * получить это всё одним запросом, но мне лень,
    				 * буду лучше как мудак грузить систему виалона.
    				 */
    				$g = $api->call('gps/get_c_report',
    						array('car_id'	 => $v['WI'],
    					'begin_time' => $ps['begin'],
    					'end_time'	 => $ps['end']));
    				$cnt = (float) str_replace(' km', '', $g[1]->reportResult->stats[0][1]);
    				if ($cnt > 2)
    				{
    					/**
    					 * Если проехали больше 2 км, то упаковать данные на
    					 * выставление пиздюлей
    					 */
    					$ps_res[$v['ID']][] = array('id' => $v['ID'], 'cnt' => $cnt, 'ps' => $ps);
    				}
    			}
    			if (!empty($ps_res))
    			{
    
    				/**
    				 * Выполним операции на каждой итерации, ибо виалон - зло.
    				 *  отваливается при большом количестве запросов.
    				 * Нет, я не настолько мудак в любом случае у них ограничение на кол-во
    				 *  операций варьирующееся от количества нагрузки на сервер.
    				 */
    				set_op($ps_res);
    				unset($ps_res[$v['ID']]);
    			}
    		}

    Комменты доставили, да.

    Rijen, 11 Февраля 2015

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

    +129

    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
    @servers(['web' => '[email protected]'])
     
    <?php
    $repo = '[email protected]:webbox/lb.git';
    $release_dir = '/home/admin/web/releases';
    $app_dir = '/home/admin/web/likebox-dev/public_html';
    $release = 'release_' . date('YmdHis');
    ?>
     
    @macro('deploy', ['on' => 'web'])
    fetch_repo
    run_composer
    update_permissions
    update_symlinks
    @endmacro
     
    @task('fetch_repo')
    [ -d {{ $release_dir }} ] || mkdir {{ $release_dir }};
    cd {{ $release_dir }};
    git clone {{ $repo }} {{ $release }};
    @endtask
     
    @task('run_composer')
    cd {{ $release_dir }}/{{ $release }};
    composer install --prefer-dist;
    @endtask
     
    @task('update_permissions')
    cd {{ $release_dir }};
    chgrp -R www-data {{ $release }};
    chmod -R ug+rwx {{ $release }};
    @endtask
     
    @task('update_symlinks')
    ln -nfs {{ $release_dir }}/{{ $release }} {{ $app_dir }};
    chgrp -h www-data {{ $app_dir }};
    @endtask

    Гит не нужен =)

    Rijen, 11 Февраля 2015

    Комментарии (0)
  6. bash / Говнокод #17624

    −118

    1. 1
    . ldd

    Роняет bash

    Abbath, 11 Февраля 2015

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

    −165

    1. 1
    2. 2
    3. 3
    SELECT `score` FROM `score`
    WHERE `score` = (SELECT DISTINCT `score` FROM `score`
      ORDER BY `score` DESC LIMIT 1,1)

    Про именование таблиц и полей...

    smart, 11 Февраля 2015

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

    +157

    1. 1
    $inp[] = implode("-", array_reverse(explode(".",$input['from-date']))).' '.$input['from-time'].'+0400';

    От платины отличается магическим '+0400' (ISO-8601, лол).

    heyzea1, 11 Февраля 2015

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

    +156

    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
    function form_xml_items( $sXML, $reserve, $exchange ){
    	foreach ($exchange as $in => $outs) {
    
    		$currency_in = taxonomy_term_load($in);
    		switch ($in) {
    			case 6:
    				$currency_in->name = 'CASHUAH';
    				break;
    			case 18:
    				$currency_in->name = 'CASHUSD';
    				break;
    
    // ...
    
    				$currency_in->name = 'TBRUB';
    				break;
    			case 161:
    				$currency_in->name = 'OPB';
    				break;
    		}
    
    		foreach ($outs as $out => $param) {
    
    			$currency_out = taxonomy_term_load($out);
    
    			switch ($out) {
    				case 11:
    					$currency_out->name ='CASHUAH';
    					break;
    				case 19:
    					$currency_out->name ='CASHUSD';
    					break;
    
    // ...
    
                                   case 155:
    					$currency_out->name = 'CARDRUB';
    					$currency_out->second_name = 'WIRERUB';
    					break;
    				case 162:
    					$currency_out->name = 'OPB';
    					break;
    			}
    
    			$sXML .= "<item>\n";
    			$sXML .= "<from>" . $currency_in->name . "</from>\n";
    			$sXML .= "<to>" . $currency_out->name  . "</to>\n";
    			$sXML .= "<in>1</in>\n";
    			$sXML .= "<out>" . $param["rate"] . "</out>\n";
    			$sXML .= "<amount>" . $param["reserve"] . "</amount>\n";
    			$sXML .= "</item>\n";
    			//wire and card in
    			if (isset( $currency_in->second_name)){
    				$sXML .= "<item>\n";
    				$sXML .= "<from>" . $currency_in->second_name . "</from>\n";
    				$sXML .= "<to>" . $currency_out->name  . "</to>\n";
    				$sXML .= "<in>1</in>\n";
    				$sXML .= "<out>" . $param["rate"] . "</out>\n";
    				$sXML .= "<amount>" . $param["reserve"] . "</amount>\n";
    				$sXML .= "</item>\n";
    			}
    			//wire and card out 
    			if (isset($currency_out->second_name)){
    				$sXML .= "<item>\n";
    				$sXML .= "<from>" . $currency_in->name . "</from>\n";
    				$sXML .= "<to>" . $currency_out->second_name  . "</to>\n";
    				$sXML .= "<in>1</in>\n";
    				$sXML .= "<out>" . $param["rate"] . "</out>\n";
    				$sXML .= "<amount>" . $param["reserve"] . "</amount>\n";
    				$sXML .= "</item>\n";
    			}
    		}
    
    	}
    	return $sXML;
    }

    Если не взирать на магические числа, кажеться этот код должен занимать строк 20, а не 130

    kissarat, 11 Февраля 2015

    Комментарии (0)
  10. JavaScript / Говнокод #17620

    +160

    1. 1
    2. 2
    var hgh = $(document).height() - 320 - 180 - 440;
    $(".message-form").height(  hgh );

    шта?

    heyzea1, 11 Февраля 2015

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