1. C++ / Говнокод #18498

    +143

    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
    char * hmod = (char *)GetModuleHandleW(L"msenv.dll");
    IMAGE_DOS_HEADER *pDosHeader = (IMAGE_DOS_HEADER *)hmod;
    IMAGE_NT_HEADERS *pNtHeaders = (IMAGE_NT_HEADERS *)(hmod + pDosHeader->e_lfanew);
    char *pcode = (hmod + pNtHeaders->OptionalHeader.BaseOfCode);
    char *ecode = (pcode + pNtHeaders->OptionalHeader.SizeOfCode);
    
    while (pcode < ecode - sizeof(int))
    {
        if((*(int *)pcode) == 0xFFFFDCB8 ||
           (*(int *)pcode) == 0xFFFFDC89 )
        {
            wchar_t buf[1024];
            wsprintfW(buf, L"%p\n", pcode);
            OutputDebugStringW(buf);
        }
        pcode++;
    }

    А как в студийном отладчике искать по памяти?

    Ccik, 20 Июля 2015

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

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (strlen($this->post['Name']) >= 3) {
        $p = preg_split('/\s+/', $name) + [' ', ' '];
        sort($p);
    
        $permutation = [$p[0], $p[1], $p[2], $p[0], $p[1], $p[0], $p[2], $p[1], $p[0]];
        $name = join(' ', $permutation);
    
        $list = Model_Students::searchStudentsByName($name, $facultyID, $gradeID, $groupID);
    }

    С ребятами запилили полнотекстовый поиск фио. Функция из модели — вызов MySQL процедуры.

    Реалия простая — MySQL не умеет в split, не умеет в переменное количество параметров, не умеет в нечёткий поиск. Выкручиваемся как можем.

    xamgore, 20 Июля 2015

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

    +143

    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
    if(touch){
    //				e.initUIEvent();
    				try{
    					var where=document.elementFromPoint(lastx,lasty);//Уфф...
    					//var t=obj_to_html(where);
    					//var t=obj_to_html(e.target.tagName||'no target');
    					//t+=obj_to_html(e.target.id||'no id');
    					//t+=obj_to_html(e.target.className||'no class');
    //					var t='';//=obj_to_html('no offsetXY');
    					//t+=obj_to_html(e.screenX||'no sX');
    					//t+=obj_to_html(e.screenY||'no sY');
    //					var touch = e.targetTouches[0];
    					// Place element where the finger is
    	//				t+=obj_to_html(lastx||'no lastX');
    	//				t+=obj_to_html(lasty||'no lastY');
    					//t+=obj_to_html(event.changedTouches[event.changedTouches.length-1].target.id||'no e id');
    					//t+=obj_to_html(event.changedTouches[event.changedTouches.length-1].target.tagName||'no e tag');
    //					t+=obj_to_html(event.changedTouches[event.changedTouches.length-1].target.className||'no e class');
    //					t+=obj_to_html(e.which.tagName||'el from offsetXY have no tag');
    //					t+=obj_to_html(e.which.id||'el from offsetXY have no id');
    //					t+=obj_to_html(document.elementFromPoint(lastx,lasty).id||'el from offsetXY have no id');
    					//t+=obj_to_html(document.elementFromPoint(lastx,lasty).tagName||'el from offsetXY have no tag');
    					//t+=obj_to_html(e.targetTouches||'no TT');
    					//t+=obj_to_html(e.touches||'no TT');
    		//			document.getElementById('debug').innerHTML+='Res:'+t;
    			//		return;
    //					t+=obj_to_html(e.targetTouches||'no touches');
    //					node_log(t);
    					//obj_to_html(e)+obj_to_html(where);
    				}catch(err){
    //					var t=obj_to_html(err);
    //					document.getElementById('debug').innerHTML+='Error:'+t;//obj_to_html(e)+obj_to_html(where);
    					document.getElementById('debug').innerHTML+='Error:'+err.message;
    //					node_log(t);
    					//obj_to_html(e)+obj_to_html(where);
    				}
    				//return;
    //				e = fixEvent(e);
    //				http://192.168.56.1:3000
    			//var where=e.target;//document.elementFromPoint(e.clientX,e.clientY);
    			}else{
    				e = fixEvent(e);
    				var where=document.elementFromPoint(e.clientX,e.clientY);
    			}
    //			document.getElementById('debug').innerHTML=obj_to_html(e)+obj_to_html(where);

    Небольшая история о том,что бы мы делали без console.log.

    Darth, 19 Июля 2015

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

    +141

    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
    private void FontsComboBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        ExampleTextBox.FontFamily = ((FontFamilyItem)FontsComboBox.SelectedItem).FontFamily;
    
        //combobox values disappears after selected
        //TODO: OPTIMIZE
        FontsComboBox.SelectionChanged -= FontsComboBoxSelectionChanged;
        int iSelIndex = FontsComboBox.SelectedIndex;
        FontsComboBox.Items.Clear();
        foreach (var item in _aFonts)
            FontsComboBox.Items.Add(item);
        FontsComboBox.SelectedIndex = iSelIndex;
        FontsComboBox.SelectionChanged += FontsComboBoxSelectionChanged;
    }

    Значения из списка ComboBox'а исчезают после выбора их.
    Решил проблему костылем говнокодом. Правда теперь стало чуть-чуть тормозить. Но на это можно забить.

    Janycz, 18 Июля 2015

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

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if($data_user['status']==2){
    echo "<center><table class='wdt green-header'><tr><td align='left'><a href='/adm_panel/index.php'><font color='#fff'><b><div class='title'>Админ панель</td></b></font></a></center></div>";
    	}
    if($data_user['status']==3){
    echo "<center><table class='wdt green-header'><tr><td align='left'><a href='/adm_panel/index.php'><font color='#fff'><b><div class='title'>Админ панель</td></b></font></a></center></div>";
    	}	
    if($data_user['status']==4){
    echo "<center><table class='wdt green-header'><tr><td align='left'><a href='/adm_panel/index.php'><font color='#fff'><b><div class='title'>Админ панель</td></b></font></a></center></div>";
    	}
    if($data_user['status']==5){
    echo "<center><table class='wdt green-header'><tr><td align='left'><a href='/adm_panel/index.php'><font color='#fff'><b><div class='title'>Админ панель</td></b></font></a></center></div>";
    	}

    Пожалуй, это самый божественный код, который я когда либо видел. Похлопаем кодеру, написавшему этот код(не я, двиг из паблика):D

    CreepMatis, 18 Июля 2015

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

    +144

    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
    function deadlineDatecompare(AdminOrder $a, AdminOrder $b) {
    	$nullresult = nullcompare($a, $b);
    	if ($nullresult !== null) return $nullresult;
    	//В 2999 году заменить
    	$aDate = new DateTime('2999-12-31');
    	$bDate = new DateTime('2999-12-31');
    	foreach ($a->get_existingitems() as $item) {
    		foreach ($item->get_deadlines(true) as $deadline) {
    			if (!($deadline->completed || $deadline->missed)) {
    				$aDate = min($deadline->deadlineDateWithTime, $aDate);
    			}
    		}
    	}
    	foreach ($b->get_existingitems() as $item) {
    		foreach ($item->get_deadlines(true) as $deadline) {
    			if (!($deadline->completed || $deadline->missed)) {
    				$bDate = min($deadline->deadlineDateWithTime, $bDate);
    			}
    		}
    	}
    	//сравниваем через timestamp для производительности
    	$aTimestamp = $aDate->getTimestamp();
    	$bTimestamp = $bDate->getTimestamp();
    	if ($aTimestamp > $bTimestamp) {
    		//дата позже, значит выше заказ ставим
    		return -1;
    	} elseif ($aTimestamp < $bTimestamp) {
    		return 1;
    	} else return 0;
    }

    Новый проект

    greshnik, 18 Июля 2015

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

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    Есть вопрос который меня давно мучает, он по поводу инкапсуляции, полеморфизма, нацизма и мазохизма.
    Почему хохлы так любят Java?
    Самый противный ЯП я считаю, синтаксис мерзкий, мерзкие обязательные классы, но кое что в нем радует, кроссплатформенность и неплохая производительность на первый взгляд не очевидная, но запись в миллиардный миссив происходит быстрее в жабе, чем на чистом Си без оптимизаций, но Си с -O2 все равно быстрее.
    И все таки почему украинцы так любят жабу, или они ничего другого не знают и как можно привыкнуть к такому противному ЯП?

    Что ни урок\лекция\сайт по жабе - то с украинским акцентом или лекция записаная на Украине или домен сайта .ua.

    pl7ofit, 18 Июля 2015

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

    +143

    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 menu_config($tree,$parent)
    	{
    		$row=$this->phoenixDatabase->executeQuery("select * from ".$this->tableName."menu_config where website_menu_config_tree=$tree",$tree);
    		while ($row=$this->phoenixDatabase->getNextResult($tree))
    		{
    			$this -> content_menu_string_off[$tree][$row["website_menu_config_level"]]=stripslashes($this->phoenixDatabase->getResultAsStream("website_menu_config_off","from ".$this->tableName."menu_config where website_menu_config_tree=$tree and website_menu_config_id=".$row["website_menu_config_id"]));
    			$this -> content_menu_string_on[$tree][$row["website_menu_config_level"]]=stripslashes($this->phoenixDatabase->getResultAsStream("website_menu_config_on","from ".$this->tableName."menu_config where website_menu_config_tree=$tree and website_menu_config_id=".$row["website_menu_config_id"]));
    			$this -> content_menu_string_start[$tree][$row["website_menu_config_level"]]=stripslashes($this->phoenixDatabase->getResultAsStream("website_menu_config_start","from ".$this->tableName."menu_config where website_menu_config_tree=$tree and website_menu_config_id=".$row["website_menu_config_id"]));
    			$this -> content_menu_string_space[$tree][$row["website_menu_config_level"]]=stripslashes($this->phoenixDatabase->getResultAsStream("website_menu_config_space","from ".$this->tableName."menu_config where website_menu_config_tree=$tree and website_menu_config_id=".$row["website_menu_config_id"]));
    			$this -> content_menu_string_end[$tree][$row["website_menu_config_level"]]=stripslashes($this->phoenixDatabase->getResultAsStream("website_menu_config_end","from ".$this->tableName."menu_config where website_menu_config_tree=$tree and website_menu_config_id=".$row["website_menu_config_id"]));
    		}
    	}

    Какие-то манипуляции с меню сайта.

    kropotor, 17 Июля 2015

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

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <select class="SelectStatus defaultForm_Small" id="status">
        <option value="{{ Rus['outlet'] }}" {{ Rus[Profile.State] == Rus['outlet'] ? 'selected' }}
                id="outlet"> {{ Rus['outlet'] }}</option>
        <option value="{{ Rus['leave'] }}" {{ Rus[Profile.State] == Rus['leave'] ? 'selected' }}
                id="leave"> {{ Rus['leave'] }}</option>
        <option value="{{ Rus['common'] }}" {{ Rus[Profile.State] == Rus['common'] ? 'selected' }}
                id="common"> {{ Rus['common'] }}</option>
        <option value="{{ Rus['expulsion'] }}" {{ Rus[Profile.State] == Rus['expulsion'] ? 'selected' }}
                id="expulsion"> {{ Rus['expulsion'] }}</option>
    </select>

    Нужно было вывести список с выбором и по умолчанию отображать некоторый элемент, в зависимости от State.

    xamgore, 17 Июля 2015

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

    −41

    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
    global _start
    _start:
            mov ecx,1
    code:
            push ecx
            mov eax,4
            mov ebx,1
            mov ecx,str
            mov edx,len
            int 128
    
            pop ecx
    loop:
            inc ecx
            cmp ecx,10
            jle code
    exit:
            mov eax,1
            mov ebx,0
            int 128
    
    str: db "Hello world !",10
    len: equ $-str

    Просто нубский код на nasm, фух, неужели я смог напечатать 10 раз хелловорлд и понять то что написал, аж не верится

    pl7ofit, 16 Июля 2015

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