• У мошенника отобрали 735 000 адресов IPv4 и вернули в реестр
    +8
    Все пиксели там абсолютно чёрные. Нет ни одного пикселя ярче, чем RGB(0,0,0). Я проверил.
    Заголовок спойлера
    <?php
    $name='test.gif';
    //$im = imagecreatefrompng($name);
    $im = imagecreatefromgif($name);
    
    $info = getimagesize($name);
    $w = $info[0];
    $h = $info[1];
    
    $cnt=0;
    for($x=0;$x<$w;$x++) for($y=0;$y<$h;$y++) {
        $c=imagecolorat($im, $x , $y);
        if ($c!=0) $cnt++;
    }
    echo($cnt);
    
    imagedestroy($im);
    ?>

  • TeamViewer всё-таки был взломан в 2016 году
    0
    Вот именно. Тоже не усматриваю в этом взлома. Потеря почты не относится к ТВ напрямую. С таким же успехом можно поставить пароль 12345, а потом винить ТВ, что у них дыра в безопасности после т.н. «взлома».
  • TeamViewer всё-таки был взломан в 2016 году
    +7
    Прочитал новость, но так ничего и не понял. В чём суть взлома? Откуда следует факт взлома? И как 2016 год связан с сегодняшним днём?
  • В России «навечно» заблокированы крупнейшие аниме-сайты
    0
    Есть ли официальный список «навечно» заблокированных ресурсов?
  • Пять лет рабства
    +2
    А в чём заключается киллер-фича игры? Не увидел. Даже если она есть (подразумевается), она должна быть в первом предложении опуса, который описывает игру. Это то, что должно цеплять. А у видел я лишь «две враждующие фракции», «пошаговые бои», подробности лора, механики и т.д. Это что-то оригинальное? Это должно зацепить? Это позволяет выделиться? Нет.
  • НАСА выложило в сеть самую детальную фотографию участка Вселенной за всю историю
    0
    Я бы не был так уверен. Если учесть, что развитию послужили агрессия, жестокость и взаимное истребление, начиная ещё с первобытных племён, то остаётся большая вероятность, что кто-то на эмоциях нажмёт на кнопку. Нужно всего лишь, чтобы возник дефицит жизненно важных ресурсов, и конфликт не заставит себя ждать, даже в едином государстве на всю планету. Жить-то всем хочется.
  • Сегодня многие популярные аддоны для Firefox перестали работать из-за проблем с сертификатом
    0
    Всегда юзал ctrl-shift-I.
    Оказывается, J отдельно идёт. Не знал.
    Просто в хроме всё одинаково, F12, J, I — одна и та же консоль.
  • Нужно ли чистить строки в JavaScript?
    0
    А вот это интересно, спасибо. Проблема воспроизводится, если вырезать 25 символов. И это всё меняет. Непонятно только, почему при перезагрузке вкладки или при переходе на другой сайт память не очищается. Только если закрыть вкладку — убивается соответствующий процесс, а вместе с ним и память.
  • Нужно ли чистить строки в JavaScript?
    +2
    Добавил тесты на jsperf.com
  • Тостер даёт пользователям больше прав
    0
    Буквально сегодня на мой вопрос дали хорошее решение, и я его честно отметил решением. Вопрос закрыт.

    Но через некоторое время появляется ещё один такой же ответ, но не на русском, а на английском, со ссылкой на английскую документацию.

    Еще через какое-то короткое время он тоже становится решением. Я не в претензии вообще. Но странное ощущение слегка.

    Так можно делать? Я могу дописывать английские ответы к решенным вопросам и помечать их решениями? Или даже проще: переводить ответы на английский, а через некоторое время они сами становятся решением (спасибо кураторам).
    И система не предусматривает этот вариант, а через Другое нельзя объяснить



    Опять же, это лишь мой безобидный случай. А придумать можно много других случаев. Например, когда автор выбрал не то решение, тогда куратор должен иметь силу отменить решение автора и выбрать другое решение. Верно?

    Или, наоборот, куратор выбирает решение, которое автора не устраивает вообще по каким-то причинам, которые он собирался написать в комментарии к ответу. Но он внезапно стал решением. И что делать? Отвечающий может, конечно, продолжить беседу, но в целом его ответ уже отмечен, так что мотивация падает. Куда и как жаловаться автору?

    Суть моего послания такова. Введя кураторов, вы создали конфликт интересов. Кураторы теперь решают, что нужно автору и что он хотел. Раньше всё было просто — делай, что хочешь, только не нарушай правила. Любой вопрос, ответ или комментарий принадлежит автору (опять же, если не нарушает правила). Лайк — принадлежит тому, кто лайнул. Отметка о решении, что логично, ставится автором. Голосования за решение немного запутали, но тоже в пределах нормы. А идея с кураторами рушит это простоту.

    В общем, у меня нет конкретной постановки проблемы, так что извините за весь этот флуд, но есть стойкое ощущение, что не всё продумано. А что именно — надо думать.
  • Нужно ли чистить строки в JavaScript?
    +1
    Формально вы правы, поэтому статью я начал с «30 байт» на 15 символов, но реально в Chrome строка из 15 млн. символов «z» занимает 15 мегабайт, судя по диспетчеру Chrome. Плюс я считаю хорошим тоном отвечать на языке того, кто задал вопрос, если это не меняет суть ответа.
  • Тостер даёт пользователям больше прав
    0
    То есть можно дать ответ и сразу отметить его решением?
  • Нужно ли чистить строки в JavaScript?
    +2
    Devtool кэширует тела ответов ajax, из-за чего память процесса (вкладки) в Chrome, естественно, растёт, породой до огромных размеров. Но чтобы анализировать проблемы памяти именно в JS, нужно смотреть на память JS, она называется «JS Heap» или «Память JavaScript».

    В Devtool во вкладке памяти предлагается анализировать как раз память JS, так что проблемы нет.

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

  • Нужно ли чистить строки в JavaScript?
    +7
    Вы рассуждаете с точки зрения логики языка JavaScript. Но эта особенность — не часть языка, а часть конкретной системы управления памятью. Эта система вам ничего не «должна». В частности, у вас нет гарантий того, какой объем памяти будет ассоциирован со строкой, и как там вообще всё будет оптимизировано.
  • Нужно ли чистить строки в JavaScript?
    +4
    Этого нет в спецификации JavaScript, так что странно надеяться на такое. Даже если сможете, это будет возможностью конкретной среды исполнения. Для Google Chrome я не знаю способов. Но факт остаётся фактом — в V8 у строк есть скрытая ссылка на «родителя» или нескольких «родителей».
  • Нужно ли чистить строки в JavaScript?
    +6
    Нет, ссылка находится в самой строке small. Об этом вся статья.
  • Нужно ли чистить строки в JavaScript?
    +3
    Почему не сделать явную очистку?
    huge = undefined;
    Потому что это не поможет. Ссылка на большую строку останется в small.
  • Нужно ли чистить строки в JavaScript?
    +5
    Это не утечка, так и должно быть. Мусор сначала накапливается, а не чистится сразу. И если наращивать память по 15Мб в секунду, то где-то несколько сотен мегабайт и должно быть в пике. С применением clearString() будет та же картина и в Chrome.
  • Нужно ли чистить строки в JavaScript?
    0
    Интересно. Но всё же нет. Я добавил вашу функцию к своим тестам и вот что вышло:
    console.log(Test(test_arr,clearString));
    console.log(Test(test_arr,stringCopy));
    console.log(Test(test_arr,clearString2));
    console.log(Test(test_arr,clearString3));
    752.80500005465
    1093.955000047572
    309.3099999241531
    262.0650000171736
    

    Несколько прогонов — тот же результат. И у меня в цикле как раз миллион итераций. То есть ваша функцию всё же медленнее. По памяти предлагаю не считать временный массив (если он вообще создаётся), который GC обязательно удалит — это не тот расход памяти, о котором заявлено в статье в качестве проблемы.

    Не знаю точно, почему у вас другие результаты, но хочу обратить ваше внимание на способ тестирования. Например, компилятор оптимизатор вот это в теории вообще может выкинуть:
    'Some text'.split('').join('');

    Ведь результат нигде не используется.

    К тому же у вас искусственная строка, а нам для чистоты эксперимента нужно чистить именно «грязные» строки.

    Поэтому в моих тестах я из большой строки нарезаю много маленьких, которые ссылаются по разным адресам на большую. Это помешает оптимизатору мешать тестированию, какой бы он ни был. Далее, в самом цикле результат мы не выкидываем сразу, а обязательно куда-то сохраняем, это тоже мешает потенциальному оптимизатору искажать результаты. Я не эксперт в V8, а просто рассчитываю на разумный подход оптимизатора. Возможно, я что-то не учёл, тогда прошу обратить на это моё внимание.
  • Нужно ли чистить строки в JavaScript?
    +2
    Будет медленнее, чем встроенные функции. Но можете попробовать, напишите свою clearString() — протестируем, сравним скорость. Собственно, .split('').join('') — это и есть побайтовое копирование.
  • Нужно ли чистить строки в JavaScript?
    +20
    Этот «дилетант» прочёл всю спецификацию JavaScript всех версий от корки до корки. И вообще, у него может быть Firefox, где проблемы нет. Но заказчик всё же позвонил этому «горе-профи».
  • Нужно ли чистить строки в JavaScript?
    0
    Формально отличий нет. Первым делом происходит автоматическое приведение к числу, которое и творит всю магию, то есть получаем либо число, либо хотя бы NaN. А дальше уже вычисляется сама операция, которая ничего не делает.

    Из той же серии:
    str = str * 1;

    Экономим символы в коде:
    str-=0;
    str*=1;
    
  • Нужно ли чистить строки в JavaScript?
    +2
    Столкнулся с этим при разработке браузерного расширения. Все условия соблюдены: оно постоянно висит в памяти, делает периодически ajax, и складывает кусочки в объект-кэш (чтобы не повторять ajax по одним и тем же адресам).
  • Тостер даёт пользователям больше прав
    +3
    Не совсем так. Токсичность — модный термин. И точного определения нет. Точнее, мы сами его формируем потихоньку, но он ещё не созрел. Но я не согласен, что это тупо негатив. Иначе нужно просто использовать термин «негатив», и не придумывать сущности без надобности. И применительно к Тостеру всё немного сложнее, чем вы описали. Давайте не будем вставать ни на чью сторону. Ни на сторону автора, ни на сторону отвечающего, а рассудим логически.

    Первое, что нужно понимать — это где область пересечения интересов. И это важно. Автор вопроса хочет получить ответ, ему важно решить проблему. А отвечающих эта проблема не касается напрямую, у них нет необходимости давать ответ, они за это деньги не получают. Даже наоборот — отвечающие тратят своё время. Получаются изначально неравные условия. Так что это не отвечающие должны соответствовать хотелкам автора, а в первую очередь автор должен соответствовать хотелкам отвечающих. Поэтому если отвечающий ценит красоту кода или приверженец какого-то стиля, то это нужно как минимум уважать. Это цена ответа. Иначе, как вы верно заметили, проще пройти мимо. Так что если код автора реально говно, ему на это намекнули, то пусть ценит хотя бы это, даже если проблема не решена. Возможно, другой отвечающий будет более щедрым. Ещё большой вопрос, зачем вообще отвечать. У кого бы какие цели ни были — надо быть готовым дать что-то взамен ответа, а не требовать ещё больше.

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

    Далее, часто так бывает, что авторы вопросов дают задания. Например, есть какая-то ошибка — найдите. Есть неработающий код — исправьте. Займитесь отладкой моего кода. Допишите недостающий функционал. Конечно, задание завуалировано под вопрос, но по сути это работа. В результате отвечающие воспринимаются, как бесплатные рабочие (по сути рабы), которые всё сделают и решат даже без спасибо, за так.

    И наконец, не редко бывает, что проблемы вообще нет, или автор её почему-то тщательно скрывает. Например, автор хочет на JS изменить содержимое DIV быстро и незаметно. К этому можно подступиться с разных сторон, но нужно понимать, зачем это, чего автор хочет добиться, какой ценой, какие условия — свой сайт или чужой, он выступает как пользователь браузера, или у него iframe с рекламой, или он пишет своё расширение, а может его проблему вообще проще решить на бекенде.

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

    В общем, чтобы не получать «негатив», как вы его называете, нужно всего лишь: 1) точно сформулировать вопрос 2) грамотно оформить его, описать достаточно понятно, без ошибок, привести примеры кода (если надо), скрины (если надо), запихнуть под спойлер (если большие) и т.д. 3) дать понять, что автор перерыл весь интернет, внимательно читал документацию, но ответа не нашел 4) адекватно выбрать парочку тегов. 5) При этом соблюдать все прочие правила ресурса, которые вполне логичны. Вот и всё. Просто?

    Если сложно, то можно за деньги. Тогда интересы меняются местами. Уже не автор вопроса заинтересован в отвечающих, а консультант заинтересован в клиенте. Или фриланс — там за деньги помогут решить задачу, выполнят работу. Но это уже другая история, в которой можно полноценно придираться к фрилансеру или консультанту. И чем больше придирок, тем дороже работа, логично, не правда ли?

    Соглашусь с вами только в том, что бывают крайности, которые ни в какие ворота не лезут, кто бы кому что ни был должен. Оскорбления, бесполезные высеры, бред, неадекватность и т.п., которые ни для души, ни для дела. Такое плохо как со стороны автора, так и со стороны отвечающего, равно как и в любых других ситуациях в жизни.
  • Тостер даёт пользователям больше прав
    0
    Прежде, чем ответить на вопрос, я захожу в профиль автора и смотрю, какие у него вообще есть вопросы, а также, отмечает ли он хорошие ответы решениями. Если есть вопросы с решениями, то я захожу в каждый такой вопрос и смотрю, сам ли автор отметил решение, или ему помогли. В итоге я делаю вывод, стоит ли тратить время на этого человека.
  • Тостер даёт пользователям больше прав
    +2
    Сделайте в списке вопросов, пожалуйста, отметки о решении другим цветом, если решение выбрано голосованием, а не автором вопроса. Например, можно сделать красивым синим или сине-зелёным цветом. Если есть хотя бы одна отметка от автора, то зелёный, иначе синий.
    Вот эти отметки
    image
  • Тостер даёт пользователям больше прав
    +1
    А по-моему, хорошая идея давать права. Это же вики стиль. Ведь модератор подтягивается обычно через несколько часов, а то и сутки, за это время вопрос протухает.

    Единственная проблема — вандализм. Но это можно же по-умному решить. Например, сначала правки премодерируются, затем спустя какое-то время пользователь набирает скрытую репутацию и переходит в режим постмодерации. Если начнёт хулиганить, то легко можно вернуть в старый режим, либо зафиксировать скрытую репутацию на нуле, либо забанить. Это примерный концепт, осталось детали обдумать. Например, можно дать автору право откатить правку и заблокировать данного куратора.

    Даже уже сейчас можно просканивароть логи и начислить репутацию. Только я бы не учитывал до определённого порога нарушения правил по неопытности, касательно глупых вопросов и комментариев. То есть правила нужно разделить на категории. Например, пусть good — количество хороших правок вопросов (подтвержденных модератором), fool — количество нарушений нейтральных правил, bad — количество вредоносных нарушений со злым умыслом.
    Тогда если (good - max(fool-10, 0) - bad*20 > 5), то отключать постмодерацию.
  • Тостер даёт пользователям больше прав
    +3
    Если задавший вопрос нарушает правила, то дать ему замечание — нормально.
    Пример: вопрос, который легко гуглится, или вопрос, на который нельзя дать однозначный ответ.

    К слову, токсичность — это не то, что вы думаете. При общении с токсичным человеком вы не заподозрите, что он к вам плохо относится, но вам станет хуже, а на что вы это спишите — другая история. И в целом на ресурсе Q&A практически невозможно быть токсичным, потому что либо твой совет помогает, либо нет, это легко проверяется.
  • Язык Bosque — новый язык программирования от Microsoft
    0
    Сначала накодят что-то, а потом задним числом сочиняют спецификацию

    Называется Agile. И внезапно это удобно и эффективно, хотя и не везде.
  • Систему контроля блокировок сайтов VPN-сервисами разработает РАН
    +1
    Уже не до НЛО…
  • Джулиан Ассанж арестован полицией Великобритании
    –1
    Это СМИ в реестре РКН отсутствует.
    На сайте есть заблокированный URL, но там новость от 9 июня 2018, а сам сайт не в блоке.
    P.S. Где картинку искать?
  • Компания по уборке космического мусора получила более $100 млн инвестиций
    +1
    Сразу вспомнилась 11-я серия «Рука помощи» из сериала «Любовь, смерть и роботы»:
    Кадр


    Также вспоминается фильм «Гравитация».
  • Англичане сделают свой интернет самым безопасным в мире
    +10
    защитить пользователей интернета от контента

    Дальше можно не читать.
  • Как разработчики процедурно создали кучу «мусорных» мобильных игр и заработали 50 тысяч долларов
    +1
    В Стиме разработчик платит не только и не столько за публикацию, сколько за пользование всеми плюшками площадки, включая продвижение. Это форумы, руководства, моды, трансляции и т.д. — это практически социальная сеть. То есть, публикуясь на большой площадке типа Стима, вы покупаете всю его аудиторию, и 100$ — смехотворная цена за это. И если игра реально хороша, то выгодно всем, и последующие 30% отчислений того стоят. Во всяком случае, с нуля собирать аудиторию разработчику выйдет дороже, и насильно пользоваться Стимом никто не заставляет, так что в целом честно.

    Но всё это имеет мало отношения к нашей основной теме вопроса — мусорные игры. Проблема обозначена, и я комментировал именно её. А то, что это не справедливо по отношению к, извиняюсь, бедным разработчикам, это другая проблема. Но от мусорных игр страдают все (страдает репутация площадки, и как следствие — всех игр на ней). Так что, имхо, первая проблема важнее и цена оправдана. А кому от этого внезапно «сильно выгоднее», чем остальным — это второстепенная проблема.
  • Как разработчики процедурно создали кучу «мусорных» мобильных игр и заработали 50 тысяч долларов
    +6
    Спасибо Шварцу и Скотту за исследование и за цифры.
    50000$ прибыль.
    1500 приложений.
    50000/1500 = 33$.
    Такой должна быть минимальная плата за публикацию приложения, чтобы избежать кучи мусора.
    Другого пути стимулировать качество я не вижу. Разного рода субъективные оценки проверяющих или даже ИИ — это, мягко говоря, издевательство, потому что плохо работает.
    На примере Стима — публикация игры стоит 100$.

    Конечно, такой подход не гарантирует качество. Но гарантирует честный подход к разработке, когда разработчики хотя бы пытаются сделать что-то новое, а не планируют захват площадки атакой клонов.
  • А в вашей жизни были приключения интереснее, чем в компьютерных играх?
    0
    Кстати, всё идёт к тому, что страна будет одна. Точно не скажу, насколько растянется процесс — возможно, сотни лет. Да что нам пара сотен лет в масштабах цивилизации? Но объединение явно идёт не по военному пути. Сначала общее информационное пространство, потом взаимопроникновение культур, так что игра походу закончится культурной победой.
  • Пиксель-арт: от черновика до игрового ассета
    +1
    Ещё обязательно стоит упомянуть PyxelEdit, в дополнение к Aseprite и Pro Motion NG.
    А так есть гораздо больше вариантов. Вот пример сравнения.
  • Акции Sony и Nintendo обвалились после запуска видеостриминга для геймеров от Google
    0
    Если речь про синглплеер, то да.
    А вот мультеплеерные игрушки, коих условно половина, вполне себе уживутся.
    Раньше было так: нажатие->обработка->пакет на сервер (100мс)->пакет от сервера(100мс).
    А сейчас будет: нажатие->пакет на сервер (100мс)->обработка->стрим от сервера(100мс).
    Как видите, отличие только в последовательности этапов. А также важное отличие, что теперь нужен широкий канал (условно от 5 Мбит/с). То есть по пингу всё тоже самое (в примере 200мс). А широкий канал, — да, всё ещё будет фильтровать некоторых игроков. Но много ли таких в процентном соотношении? И даже если гугл переманит хотя бы 10% рынка, это будет успех гугла, имхо.
  • Акции Sony и Nintendo обвалились после запуска видеостриминга для геймеров от Google
    +1
    Железо заявлено, что уже есть. Хотите сказать, что гугл врёт и не краснеет? Было бы очень не разумно с их стороны так делать и вредить бренду.
  • Как я нашел пасхалку в защите Android и не получил работу в Google
    +1
    По-моему, как раз уже пора делать ставку на близкий к идеалу код. И я сейчас говорю не столько про оптимизацию, сколько про размер готового продукта и баги в нём. Хотя эти 3 вещи сильно коррелируют, так что все 3 важны.