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

    +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
    if (e.button in [-1, -1, -1]) { // попробуйте теперь сообразите, почему true
    				e.preventDefault();
    				var rel = this.rel.split(';'),
    					fn;
    				switch (e.button) {
    				case 0:
    					fn = 'attr';
    					break;
    				case 1:
    				case 2:
    					fn = 'removeAttr';
    					break;
    				default:
    					return false;
    				}
    				$('td.mod[rel="' + rel[0] + '"] input[rel="' + rel[1] + '"]').each(function () {
    					if (fn === 'removeAttr' && $(this).attr('rel') === 'view') { // Я маразматик
    						var parts = /(chk\[\d+\]\[\d+\])\[view\]/.exec(this.id),
    							p = ['add', 'edit', 'del'],
    							i;
    						for (i in p) {
    							$('#' + parts[1].replace(/[[\]]/g, "\\$&") + '\\[' + p[i] + '\\]')[fn]('checked');
    						}
    					}
    					$(this)[fn]('checked', 'checked');
    				});
    				return false;
    			}

    ГК, не?
    первая строка вот... текущий проект, сижу с ним на данный момент. Почему захотелось так сделать, объяснить не могу. Но работает, ведь

    Serabas, 04 Апреля 2013

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

    +16

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for ( std::size_t i = startIndex; i < indices.size(); ++i )
    {
        std::size_t idx = i % indices.size();
        // Some code that uses idx ...
    }

    Обогреваем помещение.

    Cpp, 03 Апреля 2013

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var detailsTable = document.getElementById("detailsTable").tBodies[0];
    var childs = [], j=0;
    for (var i = 0; i < detailsTable.childNodes.length; i++)
    	if  (detailsTable.childNodes[i].nodeType == 1){
    		childs[j++] = detailsTable.childNodes[i];
    	}
    childs[0].childNodes[1].innerHTML = ''

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

    torbasow, 03 Апреля 2013

    Комментарии (12)
  4. C++ / Говнокод #12844

    +20

    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
    #include <iostream>
    #include <string>
    #include <utility>
    #include <tuple>
    #include <array>
    #include <vector>
    #include <algorithm>
    #include <iterator>
    
    int main() {
       const std::array< const std::pair<const int, const std::string>, 3 > a {{{1,"2"}, {3,"4"}, {5,"6"}}};   
       std::vector<std::string> r;
       std::transform(std::begin(a), std::end(a), std::back_inserter(r), static_cast<std::string const& (*)(const std::tuple<const int, const std::string>&)>(std::get<1, const int, const std::string>));
       std::copy(std::begin(r), std::end(r), std::ostream_iterator<const std::string>(std::cout, " "));
       return 0;
    }

    У нас новичку на собеседовании предложили продемонстрировать работу (без конкретики) с кортежами и итераторами.
    Что вы можете сказать про его умения, характер и состояние психики? А вы бы этого взяли на работу?
    http://liveworkspace.org/code/2DW59a$0

    LispGovno, 03 Апреля 2013

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

    +16

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for (;!pool.isEmpty() || started;) {
                for (;!pool.isEmpty();) {
                    GramophoneEvent event = pool.poll();
                    event.apply(handler);
                }

    while для слабаков!

    ArtFeel, 02 Апреля 2013

    Комментарии (31)
  6. ActionScript / Говнокод #12842

    −90

    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
    /**
     * better,faster OLD SCHOOL HACKS ^^
     * **/
    public static function compareObject(obj1:Object, obj2:Object):Boolean {
    	var buffer1:ByteArray = new ByteArray();
    	buffer1.writeObject(obj1);
    	var buffer2:ByteArray = new ByteArray();
    	buffer2.writeObject(obj2);
    
    	// compare the lengths
    	var size:uint = buffer1.length;
    	if (buffer1.length == buffer2.length) {
    		buffer1.position = 0;
    		buffer2.position = 0;
    
    		// then the bits
    		while (buffer1.position < size) {
    			var v1:int = buffer1.readByte();
    			if (v1 != buffer2.readByte()) {
    				return false;
    			}
    		}
    		return true;
    	}
    	return false;
    }

    Сравнение объектов сериализацией, по моему такого тут еще не было...

    kostoprav, 02 Апреля 2013

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

    +160

    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
    $query = "INSERT INTO analiz SET
        obegin = $duss,
        vbegin = $leas,
        lbegin = $duls,
        opodk  = $dusc,
        vpodk  = $leac,
        lpodk  = $dulc,
        oend   = $duse,
        vend   = $leae,
        lend   = $dule,
        ozatr  = $dusZ,
        vzatr  = $leaZ,
        lzatr  = $dulZ,
        ooplat = $dusU,
        voplat = $leaU,
        loplat = $dulU,
        opay   = $dusN,
        vpay   = $leaN,
        lpay   = $dulN,
        date   = '$dnow'";

    cOde = $pzDc

    rsvasilyev, 02 Апреля 2013

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

    +133

    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
    abstract class A { }
    
    abstract class B
    {
         void CallValidate(A objA)
         {
              MethodInfo info = base.GetType().GetMethod("Validate", new[] { objA.GetType() });
    
              if (info == null)
              {
                   throw new ApplicationException("The method 'Validate' with parameter type '" + objA.GetType() + "' is not implemented.");
              }
    
              info.Invoke(this, new object[] { objA });
         }
    }

    Метод CallValidate базового класса проверяет наличие метода "Validate" с нужной сигнатурой в своих дочерних классах и вызывает его, если таковой есть, иначе - кидает исключение.

    Guid, 02 Апреля 2013

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

    +12

    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
    #ifndef __MAKROS_H__
    #define __MAKROS_H__
    // ...
    #define countof( array ) sizeof( array ) / sizeof( array[ 0 ] )
    
    #define IS_CLUSTER( id ) id >= FIRST_CLUSTER_ID
    
    #define CREATE_TEMP_FILE( autoclean_name, file_prefix ) \
        char create_temp_file_file_mask[ MAX_PARAM_STR_LENGTH ]; \
        snprintf( create_temp_file_file_mask, MAX_PARAM_STR_LENGTH, "%s/%sXXXXXX", config::tmp_path, file_prefix ); \
        int create_temp_file_desc=mkstemp( create_temp_file_file_mask ); \
        if(create_temp_file_desc<0) \
    { \
            DEBUG_E( Interface, "Cannot create temporary file: %s\n", create_temp_file_file_mask ); \
            ret=RET_CANTOPENFILE; \
            CHECK_RET(sock, ret); \
            return true; \
    } \
        close(create_temp_file_desc); \
        autoclean autoclean_name( create_temp_file_file_mask );
    
    #endif // __MAKROS_H__

    Это просто праздник какой-то

    roman-kashitsyn, 02 Апреля 2013

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

    +168

    1. 1
    2. 2
    3. 3
    ...
    <input type="hidden" name="Id" value="<?=rand(1000,9999);?>" />
    ...

    Вы все еще думаете, что "select max+1" - плохой способ для установки первичного ключа?

    DRAN1k, 01 Апреля 2013

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