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

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // std::map<uint32_t, uint32_t> _mcpCarrierMap;
    
    uint32_t MCPCarrierUtil::virtualToReal(uint32_t cxr) 
    {
       for (const auto& mapping : _mcpCarrierMap)
      {
        if (mapping.first == cxr)
          return mapping.second;
      }
      return cxr;
    }

    Даже не знаю что єто. Толи незнание стандартной библиотеки, толи хитрьій умьісл.

    Elvenfighter, 05 Января 2017

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    Chunk* Chunk::findChunk(int x, int y, int z, ptrdiff_t& index) noexcept
    {
        return const_cast<Chunk*>(const_cast<const Chunk*>(this)->findChunk(x, y, z, index));
    }

    8888

    jangolare, 05 Января 2017

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

    +3

    1. 1
    There are two common digital signature algorithms: RSA and Directory System Agent (DSA).

    Древняя сиськина книжка про секурити (цитаты есть тут: http://www.ccexpert.us/virtual-private-networks/hmac-algorithms.html).
    В оригинале было Democratic Socialists of America (DSA).

    Для тех, кто в танке:
    * Directory System Agent, an IT standard, part of X.500
    * Digital Signature Algorithm, a standard for digital signatures

    barop, 05 Января 2017

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

    +1

    1. 1
    2. 2
    Кто какие системы сборки использует для крестов?
    Оставляйте положительные и негативные отзывы о том, с чем имеется опыт.

    Я вот cmake люблю. Но я кроме него ничего не пробовал, например.
    Что скажете про waf и scons?

    guestinho, 04 Января 2017

    Комментарии (103)
  5. Python / Говнокод #21938

    0

    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
    def check(s, n):
        for left_open in range(0, len(s)):
            for right_close in range(left_open + 1, len(s)):
                for left_middle in range(left_open + 1, right_close):
                    for right_middle in range(left_middle + 1, right_close):                    
                        s1 = s[:left_open]
                        s2 = s[left_open:left_middle]
                        s3 = s[left_middle:right_middle]
                        s4 = s[right_middle:right_close]
                        s5 = s[right_close:]
                        exp1 = s1+'('+s2+'('+s3+')'+s4+')'+s5
                        exp2 = s1+'('+s2+')'+s3+'('+s4+')'+s5
                        try:
                            res = eval(exp1)                        
                            if res == n:
                                yield exp1
                        except:
                            continue
                        try:
                            res = eval(exp2)
                            if res == n:
                                yield exp2
                        except:
                            continue
    
    s = '1 + 2 * 3 + 4 * 5 + 6 * 7 + 8 * 9 + 10 * 11 + 12 * 13 + 14 + 15'
    for exp in check(s, 850):
        print(exp)

    Мой скрипт для решения задачи с javarush (расставить скобки в выражении, чтобы значение было равно 850). Такой же страшный, как и его вывод.

    bagor, 04 Января 2017

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

    +1

    1. 1
    2. 2
    if(city.toLowerCase().indexOf($scope.datasearch.value.toLowerCase()) !== -1 ) 
    return true;

    kniaz, 04 Января 2017

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

    0

    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
    <?php global $token;
    if (file_exists('token.txt')){
    $token = file_get_contents('token.txt');
    }
    else
    {
    ShowForm(login, SW_SHOW);
    }
    $num = c("edit2")->text;
    $request = array(
    	'count' => $num,
    	'v' => '5.52',
    	'access_token' => $token
    );
    $ret     = vk('messages.getDialogs', $request);
    for ($i = 0; $i != $num; $i++)
    {
    	$check = translate($ret->response->items[$i]->message->body);
    	$nick  = translate($ret->response->items[$i]->message->title);
    	if (!empty($check))
    	{
    		if ($nick == ' ... ')
    		{
    			$id = $ret->response->items[$i]->message->user_id;
    			$text[$i] = '[id '.$id.'] '.translate(nickname($id)->response[0]->first_name) . ' ' . translate(nickname($id)->response[0]->last_name) . ': ' . translate($ret->response->items[$i]->message->body);
    		}
    		else
    		{
    			$text[$i] = translate($ret->response->items[$i]->message->title) . ': ' . translate($ret->response->items[$i]->message->body);
    		}
    	}
    }
    c("listBox2")->text = $text;

    Чтение списка сообщений через vk api

    NodnolStudio, 01 Января 2017

    Комментарии (15)
  8. Си / Говнокод #21932

    +3

    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
    #include <stdio.h>
    #include <string.h>
    #include <stdint.h>
    #include <sys/mman.h>
    
    typedef intptr_t binaryfunc(intptr_t, intptr_t);
    typedef intptr_t unaryfunc(intptr_t);
    
    #define evalsiz ((intptr_t)eval_end - (intptr_t)eval)
    #define clossiz (evalsiz+sizeof(intptr_t)+sizeof(int))
    void eval_end();
    intptr_t eval(intptr_t rem) {
    #define argsize ((intptr_t)&&argend - (intptr_t)eval)
    #define leasize ((intptr_t)&&leaaft - (intptr_t)&&leabef)
    #define eoffset (argsize+leasize)
        argend:;
        register void *ptr asm("r10");
        leabef: asm("lea (%rip),%r10"); leaaft:;
        void *off = (ptr - eoffset + evalsiz);
        binaryfunc *bin = *(binaryfunc**)off;
        return bin(*(intptr_t *)(off+sizeof(intptr_t)),rem);
    }
    void eval_end() { }
    
    unaryfunc* apply(binaryfunc *bin, intptr_t arg) {
        void *data = mmap(0, clossiz, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
        memmove(data, &eval, evalsiz);
        intptr_t ptr = (intptr_t)bin;
        memmove(data+evalsiz, &ptr, sizeof(intptr_t));
        memmove(data+evalsiz+sizeof(intptr_t), &arg, sizeof(intptr_t));
        return data;
    }
    
    intptr_t add(intptr_t a, intptr_t b) {
        return a+b;
    }
    
    int main() {
        printf("%ld\n", apply(add, 1)(2));
        return 0;
    }

    Simple x86_64 closure implementation attempt

    https://gist.github.com/iamtakingiteasy/c80112437ebc1f8d73eecf8df27caa24

    j123123, 01 Января 2017

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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $( ".handle" ).mousemove(function() {
    	var transform = $(this).css("transform");
    	$(".scrollbar-progress").css("width", transform[19] + transform[20] + transform[21])
    });
    $( ".handle" ).mouseleave(function() {
    	var transform = $(this).css("transform");
    	$(".scrollbar-progress").css("width", transform[19] + transform[20] + transform[21])
    });
    $( ".handle" ).focus(function() {
    	var transform = $(this).css("transform");
    	$(".scrollbar-progress").css("width", transform[19] + transform[20] + transform[21])
    });

    И это всё ради того, чтобы у рейнджслайдера появился след от поинтера.

    EpicMan2, 31 Декабря 2016

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

    +2

    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
    <?php
    if ($value == '' || $value == 0) {	return '';}
    $value = str_replace(array(' ', '.', ','), "", $value);
    $eur = $modx->runSnippet("GetTv", array(	"docid" => 1,	"field" => "rate-eur"));
    $usd = $modx->runSnippet("GetTv", array(	"docid" => 1,	"field" => "rate-usd"));
    $rus = $modx->runSnippet("GetTv", array(	"docid" => 1,	"field" => "rate-rus"));
    if ($to == 'eur') {
    	if ($from == 'eur') {	
    		$result = $value;	
    	} else if ($from == 'usd') {
    			$result = str_replace(',', '.', round(($value * $usd / $eur), 0));
    			} else if ($from == 'rus') {
    					$result = str_replace(',', '.', round(($value * $rus / $eur), 0));	
    				} else {
    						$result = str_replace(',', '.', round(($value / $eur), 0));
    							}
    						} else if ($to == 'rus') {
    							if ($from == 'eur') {	
    								$result = str_replace(',', '.', round(($value * $eur / $rus), 0));	
    							} else if ($from == 'usd') {	
    								$result = str_replace(',', '.', round(($value * $usd / $rus), 0));	
    							} else if ($from == 'rus') {	
    								$result = $value;	
    							} else {
    									$result = str_replace(',', '.', round(($value / $rus), 0));
    										}
    									} else if ($to == 'rub') {
    										if ($from == 'eur') {	
    											$result = str_replace(',', '.', round(($value * $eur), 0));	
    										} else if ($from == 'usd') {	
    											$result = str_replace(',', '.', round(($value * $usd), 0));	} else if ($from == 'rus') {		
    												$result = str_replace(',', '.', round(($value * $rus), 0));
    													} else {	
    														$result = $value;	
    													}
    												} else {
    													if ($from == 'eur') {	
    														$result = str_replace(',', '.', round(($value * $eur / $usd), 0));	
    													} else if ($from == 'usd') {	
    														$result = $value;	
    													} else if ($from == 'rus') {
    															$result = str_replace(',', '.', round(($value * $rus / $usd), 0));	
    														} else {	
    															$result = str_replace(',', '.', round(($value / $usd), 0));
    																}
    															}
    															echo $result;

    это пересчет валют (магазин на modx evo) причем это для каждого товара по 6 раз срабатывает

    als_1984, 31 Декабря 2016

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