• Как заставить государство открываться, ч.1: Качаем статистику ДТП своими руками
    0
    В стандарте OpenRTB тоже такое встречается. Возможно, чтобы на ЯП со строгой типизацией меньше крашей было (у тех, кто не заморачивается проверками). Но точная причина такого поведения — загадка для меня.
  • Создание сайта на Delphi, или Как использовать uniGUI по-минимуму
    +10
    Его не за Делфи забанили, а за оффтопик и разжигание флейма. Не будьте как тот одаренный человек, учитесь пользоваться форумами и другими тематическими сообществами.
  • Что происходит с надкусанным яблоком? Правильно — оно портится
    0
    Если бы не было цели задавать тренд, то не выпиливали бы аудиоразъем и обычные usb. Т.к. они все еще активно используются, а из девайсов Эппла ушли несколько лет назад.

    Когда убирали CD привод, то действительно следовали за трендом (угадали, точнее). А тут видно, что пытаются тренд задавать, но не выходит. Хотя с usb-c было бы неплохо, если бы все (в том числе сами Эпплы в айфонах и айпадах) перешли на него.
  • Что происходит с надкусанным яблоком? Правильно — оно портится
    +1
    Проблема Apple в том, что они начали бежать впереди паровоза, забывая, что не смотря на стоимость компании, доля рынка у них маленькая и не будет такого, что за ними все ринутся бежать.

    Конечно, было бы круто, если бы старый usb ушел в небытие и все переехало на type-c. В этом случае, от старых портов действительно стоило бы отказаться. А так, не так уж быстро старый usb уходит с рынка, чтобы уже сейчас убирать все такие порты.

    Да, большую часть проблем с подключениями можно решить переходниками (даже магнитную зарядку сделать), но отказ от актуальных стандартов, чтобы фосировать новые надо делать не настолько резко.

    Отказ от новых моделей apple из-за такой резкой политики, встречаю довольно часто. Такие люди или за сохранившимися предыдущими моделями гоняются (если они еще пригодны к использованию) или переходят на другую платформу.
    Да и за собой заметил, что старую 13" ретину как-то не охота обновлять как раз, чтобы не лишиться портов. Да и айфон с аудиоразъемом держался до последнего, уступив в итоге место s8.
  • GDPR. Практические советы
    +2
    ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en
    • a name and surname;
    • a home address;
    • an email address such as name.surname@company.com;
    • an identification card number;
    • location data (for example the location data function on a mobile phone)*;
    • an Internet Protocol (IP) address;
    • a cookie ID*;
    • the advertising identifier of your phone;
    • data held by a hospital or doctor, which could be a symbol that uniquely identifies a person.


    Email в общем случае, не попадает. Но не понятно, что будет, если пользователь сам введет почту с именем и фамилией, хотя его просили просто указать почту.

    Проблема с Cookie ID. Если id сессии, что хранится в куках сюда может и не будет относиться, то даже по куке для автоматической авторизации уже вопрос.
  • Современное автомобилестроение — ликбез. Вводная часть
    0
    Второе поколение существенно отличается от первого как раз тем, что уже допилили те моменты, которые вызывали очень большие нарекания в плане надежности. Пневму и т.д. (там довольно большой список).

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

    Испытания может и проходили, но в явно недостаточном объеме, чтобы избавить от проблем в эксплуатации. В прочем, Кайен в этом плане находился в приличной компании, большинство европейских конкурентов страдали тем же.

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

    Программы управления двигателем тоже вполне себе доступны, чипуются двигатели чуть ли не в любом гараже, вопрос лишь в программе. Смогут ли гаражные программисты сделать программу, более эффективную, чем с завода.

    Производитель, по всей видимости, не сильно заинтересован блокировать изменения своих машин.
    Исключение — опции, которые покупаются в виде кода (физически все для опции в машине есть, но не активно). Но тут их вполне можно понять.
  • Современное автомобилестроение — ликбез. Вводная часть
    0
    Кайен (и Туарег) первые были одними из самых ломучих ведер в истории этих производителей. То, что там было электроники меньше, чем во втором поколении, совсем не говорит о какой-то надежности.
    Проблема не в электронике, а подходе к тестированию. Эти модели очень быстро выводили на рынок и банально недоработали, проблемы там совсем не ограничиваются электроникой.

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

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

    К счастью, и ВАГ и другие приверженцы этого подхода уже неоднократно огребали из-за такого подхода (имиджево, в первую очередь) и сейчас вроде пошел новый виток чуть более тщательного тестирования перед выпуском.

    Ну и важно понимать, что то, что не рассыпалось на Кайене во время гарантии, вторым и дальше владельцем будет заменено в лучшем случае на аналог от Туарега, а то и просто говном китайским. Такой уж типичный портрет покупателя, не думающего о причинах низкой цены самой машины на вторичке.
    И потому, чем старше становятся машины первого поколения, тем сильнее к нулю стремится вероятность встретить в продаже хоть немного живой экземпляр.
  • Современное автомобилестроение — ликбез. Вводная часть
    0
    Та не важно, чипов сейчас где только нет. Важно, что с этим всем умеют работать и поменять можно почти все. Что характерно далеко не для всех автопроизводителей.
  • Современное автомобилестроение — ликбез. Вводная часть
    0
    Новые модели могут быть в чем-то хуже старых, но по многим аспектам они всегда лучше.
    Просто для менталитета и реалий СНГ эти преимущества гораздо менее очевидные, чем возможность ездить на машине миллион км.
  • Современное автомобилестроение — ликбез. Вводная часть
    0
    Гольф (как и остальной ВАГ) как раз таки позволяет очень много в себе менять или доставлять. Да, не в любом гараже, надо уметь с их компьютером работать, но умельцев хватает.
    Электроника в этом плане гораздо более гибкая, чем сложные механические части.
  • Современное автомобилестроение — ликбез. Вводная часть
    0
    Цена на вторичке обусловлена вычетом тех трат, которые предстоит понести новому владельцу на ремонт. Т.е. для того, кто покупает, условный Туарег и Прадик стоят одинаково. Просто за Прадик больше заплачено будет продавцу, а за Туарег — сервису (условно).

    А первый владелец переплатит за устаревшую машину за те же деньги, что и современную с гораздо лучшими ходовыми характеристиками в гражданских условиях (сюда относится не только то, как машина едет, но и комфорт управления ей). Т.е. переплачивает уже на старте, чтобы потом продать дороже на вторичке.

    Т.е. если сравнивать «надежные» и «современные» машины в условиях цивилизации, то в плане экономии будет практически паритет. За «надежную» машину переплачиваешь на старте, а на «современную» — позже.

    Я сейчас не беру суровые условия эксплуатации, где неубиваемость резко растет в цене, но туда попадает не такой большой процент машин.

  • Telegram объяснил Роскомнадзору техническую невозможность передать ключи шифрования в ФСБ
    +1
    а исходники клиентов все открыты? возможно, оно с самого начала так и работает
  • Роскомнадзор проведет «эксперимент» по блокировке интернет-рации Zello в России
    +1
    А кто эти люди, которые не читают предложения до конца? Очевидно же, что фокус делается на капитализации в триллион долларов. И то, что конкретно AWS занимается другим, не отменяет возможностей материнской компании.
  • Скрытый JS-майнинг в браузере
    0
    Ну может и фигню, в данном случае, сужу на основе публикаций в разных СМИ, где говорилось о невозможности майнинга на видеокартах.

    Однако, нативный код для майнинга таки используется. И если с i5 можно выжать 7$ в месяц, то с 10000 тыс i5 можно выжать 70k$ в месяц. Т.е. при 10000 зараженных роутеров получатся норм деньги даже с учетом того, что не у всех i5, не всегда включен компьютер, не всегда запущен браузер с http сайтами и все такое (при этом, компьютеров может быть несколько за одним роутером).

    Объем решает.
  • Скрытый JS-майнинг в браузере
    0
    майнят через webassebly и монеро, который на видеокартах не майнится.
  • Html страница глазами разработчика приложений. Часть 1: «Подготовка»
    0
    Потому, что раньше, чтобы получить контент, который генерируется на js, надо было писать интерпретатор js и прикручивать его к парсеру html.

    А node.js + headless chromium позволили в «3 строчки» писать ботов, которые сразу и html отлично парсили и js умели исполнять аналогично тому, как это делают браузеры.

    Ну, точнее, это больше заслуга headless chomium, но именно node.js дает ту инфраструктуру, которая позволяет запускать это все «тремя строками» и открыла возможность писать полнофункциональные парсеры страниц даже школьникам.

    node в данном случае — инфраструктура для ботов, сайт может быть на чем угодно написан. Для бота это все равно html+css+js
  • Html страница глазами разработчика приложений. Часть 1: «Подготовка»
    0
    Если зайти через консоль вебмастера Гугла на сайт, где контент загружается через JS и посмотреть на страницу «глазами» робота, то видно, что js они запускают. И после появления node.js, наверное, все более-менее приличные боты JS стали уметь.
    Другое дело — как такой текст ранжируется. Но тут только СЕОшники подскажут, т.к. надо на практике сравнивать.
  • Создаем CSS кейлоггер
    0
    Тут скорее логично более агрессивное кэширование сделать. И это будут делать не разработчики CSS, а разработчики браузеров (как закрывали ранее дырки с посещенными ссылками, например)
    url не запретят т.к. слишком много сайтов сломается единовременно из-за этого. Да и не логично.
  • Немного про накрутку счетчиков посещений сайтов
    +1
    Накрутка счетчиков появилась лишь чуть позже, чем сами счетчики. webkit в консоли, конечно, здорово упросил жизнь, но и до нее, в целом, справлялись.

    Существенные объемы можно накрутить только ботнетом т.к. продвинутые счетчики весьма неплохо отличают накрутку от НАТ, например. Да и сам ботнет надо прокачивать долго, счетчики и профиль посетителя умеют учитывать при определении бота. И угадать его будет совсем непросто.

    Другое дело, что детекторы накрутки срабатывают как-то рандомно. Вероятно, для экономии ресурсов стараются по-максимуму проверять только трафик, который считают коммерческим.
  • Майнер Monero: теперь и в рекламе YouTube
    0
    Умножте на миллион мощности их процессоров и там уже будет существенная цифра. Полагаю, что больше, чем стоимость миллиона остаточных (не интересных рекламодателям) показов баннера на youtube.

    А количество таких показов на youtube огромное. Миллион в день даже никто не заметит, тут видимо, ребята пожадничали и начали крутить десятки и сотни миллионов в день, расширили аудиторию слишком сильно и на этом спалились.

    Если брать мощность в 20 раз меньше, чем на 2683 (о которой писали выше), а средний просмотр баннера — 10 минут, то выходит 650 баксов с милллиона показов можно намайнить. Даже если среднее время и мощность будет в 2 раза меньше, то все равно в районе 130.

    Стоимость 1000 бросовых показов будет баксов 20 стоить. Т.е. зазор вполне хороший выходит по цене.
  • Интервью с главным digital-стратегом Adblock Plus: «Отлично мне спится, Бурумыч, отлично!»
    +1
    То, что пользователи адблока видят рекламу значительно реже (не раз в полгода, но тем не менее) это один из факторов. В плюс к конверсии. Серьезный плюс, если этим правильно пользоваться.
    Из минусов, ограничения по форматах и гораздо меньше информации по ремаркетингу (потому, что им занимаются сотни и тысячи рекламных компаний, а с адблоком работают десятки).

    Что больше влияет — очень сильно зависит от от конкретной площадки и рекламы на ней. Но в целом, эти факторы примерно одинаково влияют (один в плюс, другой в минус).
  • Интервью с главным digital-стратегом Adblock Plus: «Отлично мне спится, Бурумыч, отлично!»
    +2
    Конверсия абсолютно такая-же, как и для остальных пользователей. Это уже проверено тысячами площадок, что показывают рекламу пользователям с адблоком (и на миллионах пользователей этих площадок в сутки). И аудитория никуда не уходит.

    Конечно, это не всегда возможно — показывать рекламу, если у пользователя блокировщик. Но если получается, то сайт просто зарабатывает на этом пользователе. Никакие врата ада в этом случае не разверзаются (как любят рассказывать в комментариях к статьям о блокировщиках). Главное, чтобы сайт к объемам и качеству самой рекламы адекватно относился.
  • Возможности JavaScript, о существовании которых я не знал
    0
    да, верно, ===
  • Возможности JavaScript, о существовании которых я не знал
    0
    void можно использовать для сокращения проверки на undefined:
    if(typeof myVar=='undefined')

    превращается в
    if(myVar== void 0)


    Правда, может усложнить читабельность тем, кто не знает про void (если в документе по стилю кода этот момент есть, то, как по мне, допустимо).

    А вот запятая это хороший элемент для минификаторов кода, читабельность у нее однозначно нулевая.

    За доп. параметры setTimeout спасибо. Не уверен что стоит так писать с точки зрения понятность кода, но каких-то набросков вполне сгодится.
  • Великолепные придурки в разработке
    +4
    Вывод такой сделать нельзя. Не любой мудак является гениальным мудаком. Гораздо больше просто мудаков, без какой либо гениальности.

    У них конечно лучше работает субординация (не за что прощать ее нарушение), но если они соблюдается (например, мудак является начальником), то тем кто ниже в иерархии придется несладко.

    Ведь в случае мудаком гениальным есть хотя бы свет в конце тоннеля (завершить гениальный проект, получить серьезные опыт и т.д. А от мудака обычного ничего хорошего в принципе ждать не приходится.
  • Великолепные придурки в разработке
    +3
    Вежливость (в работе) это больше не про часто улыбаться, а про создание атмосферы более лояльной к совершаемым (не со зла) ошибкам.
  • Деобфускация одного скрипта с попапами
    0
    lisperator.net/uglifyjs

    откройте тут онлайн-демку, включите compress,mangle,beautify и получите уже достаточно читаемый результат.

    Но вообще, этот обфускатор добавляет много левого кода и иногда использует антиотладочные приемы, так что анализировать существенный объем кода, который через него пропущен, будет не сильно эффективно.
    Лучше добиться того, чтобы он нормально запустился после Uglify (выкосить антиотладочные куски) и использовать console.log/trace в
    подозрительных участках вроде
    X.document.write(decodeURIComponent(M) + (nn + F + Sn + Ln + nn + yt + Ln + Vn + z + R + S + vn + L + pn + H + Jn + Dn + Fn + E + Ln + Qn + Fn + Cn + Rn + Qn + vn + W + Ln + vn + P + nn + F + Sn + T + yt + pn + N + G + Ln + vn + yt + Bn + Dn + Vn + pn + _n + w + k) + m.href + y + decodeURIComponent(b + O + g + b + Z + v + p + I3x.Y2h + b + O + s + b + O + g + b + Z + A + C + x + b + O + s + b + O + g + l + d + b + O + s + b + O + g + b + Z + A + jn + a + f + b + O + s + b + O + g + b + Z + u + b + O + s))



    И да, не думаю, что тут получится задать пустой сеттер, учитывая, что onload прямо в html прописан. Да и внутри обсусцированного скрипта есть дополнительные проверки того, загружен скрипт или нет. А такие проверки обойти будет очень и очень сложно. Уж лучше попытаться какой-то document.write переопределить или window.open.
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    насколько я знаю

  • We need to go deeper: обходим скрипт который обходит адблок
    0
    Открою секрет, такая реклама в основном по cpa работает и «скликать» ее можно разве что сделав фейковый заказ.
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    Не мучайте браузеры тех, кто решится ваше расширение поставить. Вот пример для этого прокси из ruadlist js fixes:

    // piguiqproxy.com circumvention prevention
        scriptLander(
            function()
            {
                let _open = XMLHttpRequest.prototype.open;
                let blacklist = /[/.@](piguiqproxy\.com|rcdn\.pro)[:/]/i;
                XMLHttpRequest.prototype.open = function(method, url)
                {
                    if (method === 'GET' && blacklist.test(url))
                    {
                        this.send = () => null;
                        this.setRequestHeader = () => null;
                        console.log('Blocked request: ', url);
                        return;
                    }
                    return _open.apply(this, arguments);
                };
            }
        );
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    А с чего вы взяли, что ответ будет интерпретироваться исполняться как html со скриптами?
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    Код не то. чтобы странный, он 5 секунд выедает 100% ядра в бесконечном цикле. После изменения кода на такой, что будет делать 3-4 попытки, пользователю прийдется 15-20 сек ждать пока ваш рандомайзер открутится. Не говоря уже о том, что могут пошутить и бесконечное число попыток сделать, при другом сценарии это мешать не будет, а вот с вашим решением в доме появится лишняя печка.
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    var startTime = new Date().getTime();
            var randNumber;
    
            while ((new Date().getTime() - startTime) < 5000){
                randNumber = Math.random(); // because an error can happen if this block is empty, or needless
            }
    


    Без обид, но вы бы еще майнер встроили…
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    А как вы определите что там за id используется у конкретной рекламы?
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    А что, проблема генерировать случайное к-во пустых div перед нужным, чтобы :child(n) не работало?
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    www.liveinternet.ru/stat/ua например. Адблок под Хромоподобными браузерами не справляется. uBlock- да.
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    Кому вы предлагаете это запускать? Владельцу сайта, который сознательно установил подобный код, чтобы не лишать сайт дохода от пользователей с блокировщиками.
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    Не считает. Но поправить это не проблема. Тогда вместо /dev/null прийдется делать эмулятор. Для каждого сайта.
  • We need to go deeper: обходим скрипт который обходит адблок
    0
    В этом коде window.stop не используется. Хотя есть ребята, что сделали по образу и подобию через window.stop, но по факту способов убить страницу на столько много, что надоест переопределять.

    Есть способ лучше, переопределить XHR, как сделали в user script на форуме список для адблока. Конечно, это обходится, но, как минимум, код на сайтах нужно будет менять.