- 1
IT Оффтоп #26
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #26
#1: https://govnokod.ru/18142 https://govnokod.xyz/_18142
#2: https://govnokod.ru/18378 https://govnokod.xyz/_18378
#3: https://govnokod.ru/19667 https://govnokod.xyz/_19667
#4: https://govnokod.ru/21160 https://govnokod.xyz/_21160
#5: https://govnokod.ru/21772 https://govnokod.xyz/_21772
#6: https://govnokod.ru/24063 (потёр пидор сракер) https://govnokod.xyz/_24063
#7: https://govnokod.ru/24538 https://govnokod.xyz/_24538
#8: https://govnokod.ru/24815 (потёр пидор сракер) https://govnokod.xyz/_24815
#9: https://govnokod.ru/24867 https://govnokod.xyz/_24867
#10: https://govnokod.ru/25328 https://govnokod.xyz/_25328
#11: https://govnokod.xyz/_25436 https://govnokod.ru/25436 (потёр пидор сракер)
#12: https://govnokod.xyz/_25471
#13: https://govnokod.xyz/_25590 (потёр пидор сракер)
#14: https://govnokod.xyz/_25684
#15: https://govnokod.xyz/_25694
#16: https://govnokod.xyz/_25725
#17: https://govnokod.xyz/_25731
#18: https://govnokod.xyz/_25762
#19: https://govnokod.xyz/_25767
#20: https://govnokod.xyz/_25776
#21: https://govnokod.xyz/_25798
#22: https://govnokod.xyz/_25811
#23: https://govnokod.xyz/_25863
#24: https://govnokod.xyz/_25941
#25: https://govnokod.xyz/_26026
Wir bitten um ein wenig Geduld, und danken im Voraus für Ihr freundliches Verständnis.
Пидарашки приебались.
int i = 1;
Как сделать мокрос GET_PITUH(i), чтобы возвращал в случае 1 - 11, а в случае 2 - 22?
P.S. Не помню, чем отличаются гавиалы, кайманы, аллигаторы.
До «Фотонов» у нас были автоматы с механическими деталями: «Морской бой», «Воздушный бой» и т. п. У них был самый настоящий перископ с резиновой накладкой. Если в него посмотреть, то видно движущуюся фигурку корабля или самолёта соответственно. Настоящее 3D, а не стереоподделка!
https://youtu.be/a6fPvr3QSys
«Привĕт! ŏчäрőвäтĕльнåя милåя кőшēчкå . Хŏчў пŏзнäкőмитĉя для ćвőбŏдных взåимŏтнőшēний, с пäрнĕм. Для вĕćĕлőгő őтдыхå дẏшőй и тēлőм.
ĕсли вдрўг нĕ отвĕчäю, мĕня можно ўвидĕть ввĕдя в гẏглĕ VaPamiza тåм мы смŏжем пőŏбщäться»
Или вот ещё реальный пример:
«Салют! Милая, подтянутая, раскованная девчонка. Хочу познакомиться со страстным и нежным парнем для регулярных свиданий. Можно с жèнатым. Чистоплотность и опрятность важны.. Нŷ а, меня легкõ найти в гŷгôле, если забить Assiralita там мõжèм пòoбщаться»
Кобенация двух идей:
1. Надстрочные символы, чтобы основной текст было трудно отфильтровать.
2. «Секретное» слово, по которому в «Гуголе» находится ровно одна ссылка.
Ничего не напоминает?
Ещё кто-то спамфильтр обходил рандомными букавками.
ĕсли вдрўг нĕ отвĕчäю, мĕня можно ўвидĕть ввĕдя в гẏглĕ VaPamiza тåм мы смŏжем пőŏбщäться»
А ещё есть некоторые языки с поверхностным и глубоким копированием.
https://ideone.com/5uE55m
Кстати, почекал один из таких кошельков (1FCFYKzJHbKDcAL2wX8hpZdUdGJcfkWfxd) — так туда особо стеснительные граждане накидали почти 1 BTC. Такой вот багор.
http://web.archive.org/web/20120110154805/wiki.up4k.org:80/wiki/Список_общепризнанного_УГ
- так это может просто ты и рассылал?
Именно поэтому я заклеиваю вебку каждый раз когда открываю Racket
А «Ютубов» тогда не было.
Кстати, на ноуты нормальные фулл хд вебки уже завезли? Или как раньше 10 шакалов из 10?
Не помню точно, но вроде такое есть в науке. Или со статьями, или с нобелевскими премиями. Верифицировать должны эксперты в области, и первооткрыватель никак не проходит :)
Пишет «неверный email», но перенаправляет на оплату. Дальше нужно 450р, чтобы проверить окончательно.
По идее должно получиться что-то типа «[email protected]».
https://meduza.io/feature/2019/12/12/u-razrabotchikov-odnogo-iz-samyh-populyarnyh-veb-serverov-nginx-proshel-obysk-vozmozhno-on-svyazan-s-pretenziyami-ramblera
Что найти пытались?
https://pbs.twimg.com/media/ELn7F0wXUAMB6Xh.jpg
https://pbs.twimg.com/media/ELn7F0zXUAAl3rb.jpg
Зачем им искать эти копейки? Неужели более интересные цели уже закончились?
Я не знаю, чем сейчас живёт «Рамблер». Поисковую систему закрыли, соцсеть закрыли («Рамблер-Планета», кстати, могла бы конкурировать с «ВК»), price.ru продали, сервис рекламы («Бегун») продали.
Что у них вообще осталось? Lenta.ru?
Возможно, «nginx» — это их последняя надежда заработать.
Оптаны же мелкие ещё. Нафиг они нужны?
Через smartctl видно.
> ультратонкие ноутбуки
Там поди какая-нибудь термопрокладка на корпус. Они же корпус как радиатор юзают, кулер то некуда засунуть.
Тот самый момент, когда 8 вертушек работают тише чем один сраный визжащий кулер на старых видюхах...
Именно поэтому я за „PHP“.
https://i.imgur.com/5RvsDqF.jpg
Вот табличка совместимости:
http://govnokod.ru/24592#comment515332
https://govnokod.xyz/_24592/#comment-497053
Насколько отличается табличка для XP?
Кстати, в следующем году придётся составлять такую же табличку для семёрки.
https://www.viva64.com/ru/b/0698/
Десятое место: "Запутать всех"
Девятое место: "Бесконечное рядом"
Восьмое место: "Попробуй, найди"
Седьмое место: "Просто недоглядели"
Шестое место: "Код документирован", – говорили они
Пятое место: "Индексируй меня, немедленно!"
Четвёртое место: "Всего-то доллара и не хватило"
Третье место: "Выхода нет"
Второе место: "По порядку становись!"
Первое место: "Доверяй, но проверяй"
Топ 10 ошибок в проектах Java за 2019 год:
https://www.viva64.com/ru/b/0699/
Десятое место: знаковый byte
Девятое место: два в одном
Восьмое место: решение и его последствия
Седьмое место: создание файла из ничего
Шестое место: очень странная логическая ошибка
Пятое место: вот это поворот!
Четвертое место: а исключения выйдут погулять?
Третье место: кручу, верчу, новую маску получить хочу
Второе место: Порядок инициализации
Первое место: копипаст-ориентированное программирование
Топ 10 ошибок в проектах C++ за 2019 год:
https://www.viva64.com/ru/b/0700/
Десятое место: "Какая у нас ОС?"
Девятое место: "Кто первый?"
Восьмое место: "Опасность побитовых операций"
Седьмое место: "Путаница в переменных"
Шестое место: "В C++ свои законы"
Пятое место: "Что есть конец строки?"
Четвертое место: "Магия числа Пи"
Небольшое лирическое отступление
Третье место: "Неуловимое исключение"
Второе место: "Незакрытые HTML-теги"
Первое место: "Неуловимые стандартные функции"
>Десятое место: знаковый byte
А там что, есть беззнаковый byte?
> c++
Шта?
https://import.viva64.com/docx/blog/0700_Top_10_C++_Mistakes_2019_ru/image6.png
В «Пивас» зачем-то добавили проверку валидности «HTML» в строковых литералах. Разворачивается в такую питушню:
Ха. 265 же.
Как страшно жить
Зачем? Зачем? Зачем «Спектрум» в 2001 году?
>> Узнав, что я поступил, те самые родственники которые подарили мне «Байт», подарили мне новый компьютер со следующими характеристиками: одно-ядерный Intel Celeron 800 Mhz, 64 Mb оперативной памяти, 14 Gb жёсткий диск, встроенное видео с разрешением 640 x 480 и 16 цветов.
Зачем 640 x 480 и 16 цветов на машине с «Целероном 800»? На ней даже «Windows 95» без пердолинга не запустится (ей нужно 800×600 и 256 цветов). Даже древние модели S3 поддерживали Truecolor и разрешения 1024×768, 1152×864, 1280×1024 и даже 1600×1200 (правда, кобенации разрешения и количества цветов упирались объём ОЗУ видеокарты).
>> разрешение стало 800 x 600 (ограничение монитора)
Где они взяли такой монитор? Это был ЖК из первых моделей? Или они пытались разогнать чудом выживший VGA до SVGA?
Какой хардкор )))
ЗЫ. У меня как-то котэ блох подцепил, так я его просто пару раз с хозяйственным мылом постирал и прокипятил и всё прошло.
Зачем? Зачем? Сложно, ничего не понятно.
Кстати, как вообще пишут на языках, в которых нет разграничения прав доступа вроде const в C/C++?
Впрочем, в C/C++ такая проблема тоже остаётся. Передаю я кому-то какую-то питушню со знаком const, а потом эту питушню изменяю. И на что мне потом рассчитывать? Они зачем-то изменят поведение из-за того, что моя питушня случайно изменилась? Они как назло не изменят поведение из-за того, что скопировали питушню и не знают, что я её изменил? Как вообще можно писать на языках с мутациями?
Обычно «const T &» — это «дай я гляну одним глазом на твою питушню, а потом делай с ней что хочешь». Если тебе нужно отдать свою питушню — это «T &&».
>Царям нужен массив
В крайнем случае Царь выделит страницы в page directory с флагом R.
Или проверит флаг Dirty, что страницумассив меняли.
Но это всё ненужные абаракции для анскильных питухов.
А зачем он тогда?
ААААА!!!
> Подход заключается в следующем: я представляю, что существует библиотека со всеми возможными типами и функциями, кроме одной, той самой которую мне сейчас надо написать. Я пишу эту недостающую функцию (используя всю мощь функций и типов из выдуманной библиотеки), затем запускаю компилятор и если не хватает типа, создаю его, а если не хватает функции, то эта функция становится той самой которую мне необходимо написать. Сразу скажу, что сейчас я изменил свой подход, и вместо представления о том, что в библиотеке есть функции и типы, я представляю, что там есть классы и методы (даже если язык не объектно ориентированный). Когда я закончил компилятор, разумеется в нем было куча ошибок. Я начал поиск и исправление ошибок, но из-за большого количества возможностей(дженерики, параметры аргументов функций, классы типов, функции высшего порядка), ошибок было крайне много, а из-за подхода который я использовал при разработке, изменение одной функции могло приводить к изменению большой группы функций. Долгое время исправляя ошибки(а к слову говоря, больше чем искать ошибки, я ненавижу только писать юнит тесты), я наткнулся на ошибку для исправления которой необходимо переписать 60% кода.
Какой багор )))
> Многие западные программисты утверждают, что прежде чем начинать писать программу, необходимо время на обдумывание алгоритма, а некоторые даже призывают вникнуть в суть задачи, которую предстоит решать. Категорически не следует интересоваться постановкой задачи до момента получения объектного модуля программы. Помните, что программирование - это искусство, поэтому любые лишние знания только ограничивают вашу фантазию. Начинайте писать текст программы задолго до того, как Вам сформулируют техническое задание, и Вы получите прекрасную возможность сделать жизнь вашего руководителя (и свою) гораздо разнообразнее и интереснее (Например, в момент получения ТЗ Вы можете возмутится: "Представляете, сколько теперь придется переделывать?!").
>
>= Никогда не составляйте заранее блок-схему программы. =
>
> Во-первых, это проще и быстрее сделать, когда программа уже написана. Во-вторых, неосторожно оставленная на столе блок-схема дает вашим врагам и завистникам возможность понять, что Вы собираетесь делать. Помните, что никто кроме Вас не должен разбираться в вашей программе. И если Вы никак не можете избавиться от дурной привычки рисовать блок-схемы, то зарубите себе на носу:
>
> = Чем больше структура программы соответствует ее логике,
> тем меньше Вы стоите как программист. =
>а PC - это круто только тогда, когда карман
с деньгами неимоверно трет ляжку.
вот я говорю: писюки для богатых дураков
настоящие программисты используют спектрум
Вот видите, какой Путин хороший, при нём у меня комп появился.
Народ тогда ещё донашивал 80486 (а кто-то и 80386, о, боже), 1-мегабайтные видеокарты, UDMA/33, SIMM FPM и EDO, винчестеры на гигабайт, а то и меньше. Я в 2003-м такое старьё видел даже в организациях.
Пруфа, что в те годы можно было купить «Спектрум», я так и не увидел.
P.S. Теперь я понял, почему возненавидели фреймы.
Дык там поди и особый язык и подход к разработке надо...
https://megapredmet.ru/1-11218.html
Вычислительные системы с нетрадиционным управлением вычислениями
Им Норден, ауф калер Хё.
https://habr.com/ru/company/globalsign/blog/481318/
Ахаха
Сломали, пидоры. Именно поэтому я за «PHP 5.x».
IP 159.203.61.1
Decision 27-31-2018/Ид2971-18 made on 2018-04-16 by Генпрокуратура.
This block affects IP 159.203.0.0/16.
Опять ебучая «Телега»?
https://cs11.pikabu.ru/post_img/big/2019/12/19/12/1576787022142639503.jpg
https://pbs.twimg.com/media/EEwCfcTXkAE9Y02.jpg
Настоящие цари хотят напрямую управлять лучом осциллографа из ассемблера, для максимальной эффективности
frog> Это к сожалению не грязь, а повреждение люминофора с внутренней стороны…
Похоже, что автор доигрался и таки выжег полоску люминофора.
https://youtu.be/9n6I1KPxOfE
https://habr.com/ru/post/65477/
На X и Y осциллографа подаются соответственно левый и правый канал «звука»?
Ну вообще звуковуха вполне может выдавать ультразвук, т.е. частоту выше 20000 Hz. Частота дискретизации в 96000 Hz это позволяет.
> Да и на выходе звуковухи наверняка стоят фильтры шума на конденсаторах, потому и линии так искривляются.
Это можно обойти, проапгрейдив звуковуху
https://www.youtube.com/watch?v=GIdiHh6mW58 - Oscilloscope visualization of the files made by Pekka Väänänen using DC-coupled modified soundcard and some techniques to straighten polygons. This picture do not shake and has more clear view.
http://www.modularsynth.ru/en/2014/06/15/gigaporthd_dc_coupling/ -
ESI Gigaport HD DC-Coupling Mod
http://www.daqarta.com/dw_ggll.htm - Simple Sound Card Unipolar DC Modification
> На X и Y осциллографа подаются соответственно левый и правый канал «звука»?
Ну видимо да, а как еще?
> Лично я не вижу особой разницы между записью method(object) и object.method
Охуеть. «Питон» уже сто лет ругают (и правильно делают) за нечитаемые портянки вида list(map(filter())), а автору нравится.
>> Динамические определения классов в общем случае:
> не дают модульно тестировать. Правильно отработавший в тесте кусок кода может выдать ошибку при работе целой системы, и никак вы от этого не защититесь в рамках CPython;
Пиздец дебил. Семь лет стажа, нихуя не понимает, зачем нужно «модульное тестирование», что такое «интеграционные тесты» и почему первое никак не может заменить второе.
> создают большие сложности оптимизации. Объявление класса не дает вам гарантии по поводу фактической работы класса.
То-то я и вижу, как в «JS», в котором вообще нет никаких «классов», одни «словари» без каких-либо гарантий, на данный момент один из (если не самый) мощнейших скриптовых оптимизаторов.
> не состыковываются с параллельным выполнением кода. Например, тот же multiprocessing работает с копиями определений классов, и если вы не дай бог измените описание классов в одной из копий, то ваше приложение рискует развалиться.
А если в любимой автором сишечке прочитать пятый элемент у int[4], то развалиться рискует вообще всё. Ему с таким страхом выстрелов в колено надо на «Java» писать.
Ну и ещё: какое, нахуй, параллельное выполнение кода в языке с GIL? Нахуя использовать для CPU-bound параллельных вычислений совершенно не предназначенный для такого язык?
> Ну а пока что наличие генераторов в коде не дает возможности для оптимизации, параллелизации, и тестирования.
Ебать аутист.
> ошибка «'tuple' object does not support item assignment» на фоне успешного выполнения операции
Вот это вот реальный багор, чуть ли не единственный на всю статью.
> То-то я и вижу, как в «JS», в котором вообще нет никаких «классов», одни «словари» без каких-либо гарантий, на данный момент один из (если не самый) мощнейших скриптовых оптимизаторов.
Так он потому один из мощнейших, что создаются большие сложности оптимизации.
Если бы использовался подход вроде C/C++, которые всё валят на программиста (UB? сам виноват! Тормозит? Сам виноват!), мощнейшие компиляторы не были бы нужны.
* Накручиваем на него «boost::any» и «boost::variant».
* И получаем «Te-le-fun-ken».
Потому, что python - язык общего назначения. Почему бы не написать на нём быструю питушню?
В общем-то и можно, для этого разные питуизаторы вроде Cython сделали. А для параллельности - пакет multiprocessing.
https://github.com/json-c/json-c
> Зачем вообще сегодня нужен си?
Писать реализации языков со встроенными хешмепами.
Я эту хуйню вроде даже тут постил...
Есть гну расширение (hcreate_r, hsearch_r, hdestroy_r) с несколькими таблицами
>И из него нельзя удалять.
Зато можно нахрен стереть саму хештаблицу
О языке же должны судить только по выразительности его средств, GC и другая питушня должны включаться/выключаться флагами компиляции.
> удобно писать и движок к AAA игре, и сетевой стек, и веб-сайт
Вот python - как раз такой язык. Что из перечисленного плохо выражается на python, что нужен другой язык?
> Может быть будут потом
Будущее наступает. Например, JScript.NET - компилируемый язык, поддерживающий ООП-питуха под .NET; Cython - быстрый питух.
Часто получается, что языки, на которых что-то медленно или неудобно писать - это наследие прошлых лет. На языках высокого уровня часто легко выражается как что-то высокоуровневое, так и что-то низкоуровневое, и только на старых языках вроде C хорошо выражается что-то уровня тех лет, когда C был новым.
Вот, например, описание типов в C - полное говно, описание типов в Haskell - более удобное.
Все эти варианты описывают одно и то же (третий чуть отличается, но можно ввести что-то вроде левой ассоциативности - задать эквивалентность a->a->a и (a,a)->a, а a->a->a потребовать писать как a->(a->a))
но третий вариант описывает тип лучше всего.
И тут глупо говорить, что третий вариант для ФП, а первый - для ИП. Они при оговорённом выше условии изоморфны, хотя один из них более выразителен. На диалекте Haskell с указателями и оператором присваивания можно было бы легко писать код, который бы обладал всеми свойствами кода на C, кроме плохого синтаксиса.
ini-файлами же!
> Или структур.
[a,b,c] - массив
получение длины есть? есть
получение элемента по индексу есть? есть
даже по ссылке передаются как в сишке
ещё и слайсы есть, хотя они выходят за пределы необходимого интерфейса массива
(a,b,c) - структура (гетерогенный набор данных)
если нужны неанонимные поля, есть блок class
> первое поле 4 байта, второе -- массив на 8 байт
хочется структур с раскладкой по байтам? хех, вот:
И тут ещё int четырёхбайтный. Это в языке, который не очень-то планировался под байтушню.
А в сишке, которая планировалась под байтушню, инт безразмерный и использование union - UB. Какой багор )))
> И передай ее копированием в функцию. А в другую функцию -- по указателю
И это стандартный python без написания альтернативного запускатора тупо со стандартной библиотекой. Разумеется, с библиотекой "байтушня" можно достичь лучшей выразительности, а с альтернативным компилятором - большей производительности.
не знаю, зачем это нужно в реальной жизни
если и правда зачем-то понадобится,
а. есть numpy.ndarray
b. это вопрос не языка, а компилятора под него
> это, по твоему, удобно?
Не факт.
Но (10, "aaaaaaaa") - точно удобно, удобнее сишного говна.
> писать можно, но неудобно
Ну это была просто пара библиотек, а не весь python.
Библиотеки можно и повыразительней написать.
А еще вот советую почитать https://hacks.mozilla.org/2017/01/typedarray-or-dataview-understanding-byte-order/ - есть еще какой-то DataView. По степени пизданутости JS так скоро догонит и обгонит кресты
ctypes подекларативнее будет чем этот бинарный printf.
Да ладно?
Еще см. https://govnokod.ru/24730#comment429087
Но это хорошая штука как концепт переиспользования языка в сфере, где язык ещё выразителен, но исполнятор уже подсасывает.
> Самое сложное в Boost.Python — это обилие тонкостей, поскольку и C++ и Python — два языка изобилующие возможностями, и потому на стыке их приходится учитывать все нюансы: передать объект по ссылке или по значению, отдать в Python копию объекта или существующий класс, преобразовать во внутренний тип Python или в обёртку написанного на C++, как передать конструктор объекта, перегрузить операторы, навесить несуществующие в C++, но нужные в Python методы.
Блядь, как всё сложно. Конструктор-хуюктор, объекты еще какие-то блядь, то ли дело Си.
https://vk.com/id1232065
«К сожалению, нам пришлось заблокировать страницу Ивана за нарушение правил сайта.»
Какой багор )))
https://noudsvega.mskobr.ru/
На стене такое сообщение:
https://www.facebook.com/vega.ano/posts/1324589951055076
«Дорогие друзья! Сайт ds-vega.ru не принадлежит детскому саду "ВЕГА"! Прошу успокоиться, не звонить, не нервничать. Полиция разберется.»
А я сперва подумал, что кто-то поломал нормальный сайт и решил оставить там такую рекламу.
Есть реальный пример самолёта на тихоокеанском театре военных действий?
Есть реальный пример истребителей, сука?
Когда тебе в работе понадобились истребители?
Много истребителей было на авианосцах?
Много самолётов было на тихоокеанском театре военных действий?
Много истребителей было, сука?
Зачем адмирал Ямомото задумал расхуячить американский флот?
> Вот это вот реальный багор, чуть ли не единственный на всю статью.
Да он там реально поехавший!
Хотя, по-хорошему, надо было запретить индексацию и слайсинг для туплов, чтобы не сбивали с пути.
Еба-а-а-ать… Этому психопату в дурку надо.
> Огромное количество проблем в программах на чистом питоне возникло из-за того, что присваивание питоне абсолютно слепо — оно просто берет любую ссылку-объект на вход, и присваивает эту ссылку левому выражению.
О-ху-еть. Шизик-аутист взял классический скриптовый язык и жалуется на то, что он скриптовый.
> Например:
>>> a = [1, 2, 3]
...
>>> a = '15'
...
>>> for i in map(lambda x: x*2, a):
>>> print(i)
11
55
> Ожидается вывод 2 4 6
А-а-а-а-а, блядь, помогите, у меня тупость из экрана полилася!
> PyPy, а также аналогичные V8 для JavaScript и LuaJIT, испытывают проблемы с выводом типов до выполнения программы, потому они предпочитают конкретизировать типы уже после выполнения кода.
1024--, bootcamp_dropout, расскажите, как вам хуёво живётся с тем, что «V8» испытывают проблемы с выводом типов до запуска «V8»?
Короче, автор слишком тупой анскиллябра, чтобы высрать годное обсирание «Питона».
Честно говоря, начинает задалбывать. Ещё лет через 10 могу постареть и полюбить статическую типизацию как любят её взрослые дяди.
Ну, хотя, может быть что-то такое впилят в V8 будущего.
Вообще, все привыкли к тому, что скриптовый язык должен быть несуразным говном и привыкли мириться с его тормознутостью и минимумом диагностических сообщений, и уже не ожидают от него нативного пирфоманса и безглючности. Но это плохой подход. Компиляторы совершенствуются, а язык общего назначения должен хорошо работать на большинстве задач.
Более того, есть же проблема останова и всё такое. Бесконечное число ошибок даже в божественном хаскеле сейчас не отлавливается на этапе компиляции. А значит компиляторам есть куда расти в любых языках, и когда-нибудь мы достигнем такого развития компиляторов, когда им будет пофиг, что за язык на входе, ведь всё будет упираться не в типы, которые компилятор более-менее легко рассчитает, а в запутанность алгоритма. Как в криптографии главная тайна была перенесена из алгоритма в ключ, так и в компиляторостроении главная сложность для анализа будет перенесена из правил языка в структуру конкретной программы.
Справедливости ради, если использовать JSDoc в качестве разметки типов(в основном входных параметров функции), то это в сочетании с TS features for JS который есть во многих IDE позволяет достаточно бодро вывести типы. Понятное дело что это не дает никаких гарантий и в общем смысле херня, но дурацкие опечатки это снижает заметно, а это для меня был один из основных источников ошибок в js
...
>>> a = '15'
А тут автор не знает, чем отличается присвоение в императивных языках от приравнивания в декларативных. В последних, даже если есть желание писа́ть в императивном стиле, обычно изменять переменные нельзя, можно только создавать новые.
Неужели автор пришёл из декларативных языков?
Да нифига. В декларативных языках a = '15' бы либо вызвало ошибку (ололо переприсваивание), либо перекрытие переменной a. В первом случае до срабатывания map бы просто не дошло, во втором - сработало бы как в питоне.
Полиморфизм переменной с одним и тем же именем, автоматический union - интересная фича, но довольно таки редкая (лично я про такое не слышал, хотя регулярно пытаюсь использовать по ошибке).
Лол, оно ещё и доке не соответствует?
https://pbs.twimg.com/media/EMvszKpVUAA8qpv.jpg
https://kp.ru/share/i/12/11206031
Вот для примера что было доступно в Питере (большая часть этих ресурсов сейчас уже недоступна):
https://homenet.beeline.ru/index.php?/topic/188836-локальные-ресурсы-билайн-санкт-петербург/
А ещё у «Яндекса» в те же годы был сервис local.yandex.ru: «Яндекс» предлагал провайдерам напрямую подключиться к своему собственному IX, тогда для абонентов все ресурсы «Яндекса» будут считаться внутрисетевыми.
http://web.archive.org/web/20100831103609/local.yandex.ru/
Из призывов Локальной сети Яндекса
1. Пользователи интернета! Подключайтесь к провайдерам, которые сотрудничают с Яндексом
ПОЧЕМУ?
Так дешевле и быстрее
Все службы Яндекса будут доступны вам по той же цене (а на безлимитных тарифах — на той же скорости), что и внутрисетевые ресурсы. Это касается и таких «тяжелых» сервисов, как Фотки, Картинки, Видео1 и Карты. Единственное исключение — сервис обмена файлами на Народе, где не гарантируется высокая скорость доступа.
2. Провайдеры! Сотрудничайте с Яндексом
ЗАЧЕМ? ЗАЧЕМ?
Это способ привлечь клиентов
Программа «Локальная сеть» поможет привлечь новых абонентов, предоставив им без дополнительных затрат большее количество сервисов. Рост внутреннего (бесплатного или льготного) трафика стимулирует потребление внешнего. Присоединившись к программе, вы получите:
бесплатный трафик всех сервисов Яндекса в тех городах, где установлено наше оборудование;
конкурентное преимущество перед другими провайдерами;
рекламную поддержку на страницах Яндекса.
Такого не бывает. Бывает «входящий трафик для сайта превышает исходящий». Хостерам такое считается подозрительным. Они подозревают, что при таких условиях на сайте стоит торрентокачалка или типа того и вообще владелец сайта — пират с повязкой на глазу и с попугаем на плече.
Вот тебе реальный пример:
Запрещается размещение следующих видов сайтов:
• Любых сайтов, нарушающих действующие законодательство России, Украины, а также международное законодательство.
• Сайтов, нарушающих чьи-либо авторские права (warez, crack, serial, видео архивы, а также ссылки на такие ресурсы).
• Скрипты типа Rapid Leech, массовый хостинг картинок и файлов, торрент-трекеры и торрент-клиенты.
• Сайтов с порнографическим контентом (в том числе со ссылками на такой контент). Т.к. чёткой границы между порнографией и эротикой нет - ситуация решается на усмотрение администрации.
• Сайтов про заработок в сети, пирамиды и т.п.
• Сайтов, рекламирующих лекарственные и наркотические вещества.
• Сайтов, рекламируемых спамом.
И это для VPS/VDS, даже не для шаред-хостинга.
А после, запахло жареным. Локальный обмен прикрыли, прикрыли сайт где чуваки просто так анонсили и раздавали по типу торрент трекера только для DC++, закрыли ту фичу по выкачке, Сервера прикрыли. И в итоге продались РТ. Теперь у меня пинг с Японией 200-300 место моих 20-50, регулярные разрывы и сука ютуб фулл ХД не грузится! Хуилы!
специально для тебя выделил
Как бы можно.
В начале 2010-х даже в Москве некоторые интернет-провайдеры при нулевом балансе счёта пускали только в свою локальную сеть, в которой кроме сервера «DC++» и торрент-трекера мог быть ещё доступ к нескольким сайтам. Были ещё небезлимитные тарифы, в которых внутрисетевой трафик не тарифицировался.
Прикинь, в Москве, где можно кинуть провод до M9 или M10.
http://govnokod.ru/26050#comment519161
Тогда ещё некоторые люди, сменив провайдера, удивлялись, почему у нового провайдера нет локалки и все направления тарифицируются одинаково.
(анлим с ограничением до скорости диалапа после N гигабайт - это нихуя не анлим, а пакет трафика)
У нас берут плату за роуминг не только внутри страны, но и внутри сети одного ОПСОСа, потому что формально филиалы ОПСОСа в разных регионах зарегистрированы как отдельные фирмы.
Официально плату за роуминг в РФ запретили. Уже раз в пятый (точно не помню, в какой, я с сбился со счёту). ОПСОСы просто переименовали роуминг, теперь он у них как-то по-другому называется, чтобы обойти закон.
У нас ещё берут комиссию за перевод между филиалами одного банка в разных регионах, потому что филиалы оформлены как отдельные фирмы.
А ещё у нас сетевые магазины зачастую регистрируют как отдельные фирмы, чтобы платить меньше налогов. Если повесить филиал магазина на индивидуального предпринимателя, то можно заплатить 6% налогов вместо 13%.
Нет. Он в индивидуальном порядке занимается предпринимательской деятельностью — в том числе нанимает работников.
О_о. Там до 100(!) человек можно нанимать, оказывается. Я думал десяток от силы...
А есть индивидуальный предприниматель, который своей жопой отвечает за всё происходящее.
Для владельцев сайтов, хостящихся в «Белтелекоме», трафик за рубеж стоил дороже внутреннего. И для конечных пользователей был так называемый «гостевой доступ», когда пускали только на сайты, хостящиеся в «Белтелекоме».
Погугли «фубля», т. е. «byfly». Сейчас «гостевой доступ» отменили.
https://forum.onliner.by/viewtopic.php?t=2997515&start=460
Бунгача ушбу лавозимни Жаҳонгир Иргашев эгаллаган.
Эслатиб ўтамиз, Санкт-Петербургдаги бош консулхона 2018 йил мартида очилган.
https://www.olx.uz/i2/obyavlenie/kulangi-zotiga-100-kareyskiy-ID1X4Md.html
https://www.olx.uz/i2/obyavlenie/makien-par-tulek-horoz-ID1Xbpn.html
«TAS» расшифровывается не как «точико», а как «тошкенто».
Кстати, вот что гуглится:
https://pikabu.ru/story/_6680798
https://pikabu.ru/story/yandeks_takoy_yandeks_4518661
«Яндекс-Маркет» пытается бороться с ворециями и зарубает нормальные отзывы.
Мне Хороз будет сниться
Я уеду туда, где большая ферма
Может быть навсегдааа
https://pbs.twimg.com/media/EM9SG0XWoAAvULc.jpg
https://ideone.com/nQhpi2
По этому порту работает самописный прокси, который фильтрует запросы, шля нахОй рекламные. Браузер посылает данные в codepage 28591 = ISO-8859-1, но сервер почему-то хуярит кодировку.
...
рпарпарпр
Кто ещё предлагает такой подход? Касперскис? Адблок? Ни хуя! Адгвард? Да это первый шпион, драйвера какие-то ставит, и кстати, рекламу ни хуя не блокирует.
касперский нагло запускает свои волосатые ручки вам в трусы. Ждите защиты, ага.
https://youtu.be/m86ae_e_ptU
https://youtu.be/qybUFnY7Y8w
кому-то
делать
нехуй
https://youtu.be/MejbOFk7H6c
https://www.npmjs.com/package/php
Обратите внимание на примечание: «Not working yet!!!» То есть разрабатывать модуль им некогда, главное — название захватить.
Киберсквоттеры поганые.
)))
Есть же реальные примеры плохих программ, написанных пидарасами. Вот, например, гомосек написал «Sendmail», которым невозможно пользоваться. А натурал написал вполне удобный «Postfix».
>> «Выдумал Питон Гвидо Ван Россум, он голландец, это многое объясняет, в Голландии легализованы лёгкие наркотики»
Круче только Никлаус Вирт, написавший, что сразу видно, что «C++» придумали в Америке.
>> На самом деле никакого Рика Гаско нет — переводчик и есть автор.
А это уже отсылка к Борхесу и к Лавкрафту, которые, вероятно, первыми придумали ссылаться на несуществующие книги.
Кстати, слово "кук" в англоязычных странах - стойкий эвфемизм, означающий грубое "хуй"
А вот десктопную «Windows XP» с помощью ключа реестра можно замаскировать под «Windows Embedded POSReady 2009» и получить обновления до апреля 2019.
Ну вот, похакав реестр, можно получить обновления за ещё 5 лет.
На всякий случай:
Вдруг их ещё не удалили с сервера.
https://ru.wikipedia.org/wiki/Windows_Embedded
Оказывается, слово «embedded» входило в названия нескольких систем.
CE резко отличается от остальных. Там вообще всё несовместимо с остальными вариантами «Windows».
А вот Embedded Standard (включая Embedded POSReady), Embedded Enterprise, Embedded Industry по всей видимости отличаются от десктопной версии только лицензией (ну и набором компонентов по умолчанию). Из той же оперы Embedded Server.
Что собой представляет IoT, я пока не знаю.
Embedded Handheld, вероятно, является продолжением Mobile, которая является продолжением CE. Из той же оперы Embedded Automotive.
*****
Итого две линейки Embedded:
1. Сборки, совместимые с CE.
2. Сборки, совместимые с десктопной, но отличающиеся лицензией.
На 286 не было 32-битного режима, именно поэтому Линукс на 286 в принципе нельзя было запустить. Перекомпилировать его под 286 тоже было нельзя, ибо он был рассчитан на модель памяти «flat» (без сегментов), а у 286 размер сегмента 64 килобайта. То есть на 286 требовалась поддержка софтом сегментированной модели памяти. «gcc» такую модель не поддерживает.
>> Работал в смысле запускался?
Угу. В вузе, в котором я учился, один пидарас на «четвёрки» с 4 МБ ОЗУ и с 8МБ ОЗУ (уже смешно; такой объём памяти был бы разумным для 286, но не для 486) поставил «Windows 95». Было видно, как рисуются окошки. «Ворд» было страшно запускать: если вставить в документ картинку или формулу в «Эквейшне», могло случиться OOM.
Для сегментированной модели памяти нужна была поддержка компилятора. Все компиляторы C и C++ для такой модели содержали нестандартные расширения языка. Например, оператор :> для составления адреса из сегмента и смещения и макрос MK_FP, его заменяющий.
Работа с массивами, размер которых превышает 64КБ, на 286 была нетривиальной задачей. Нужно было использовать несколько сегментов и при итерации их вовремя переключать. Опять же в компиляторах (MSVC, Borland C и C++, Watcom C и C++ и т. п.) был страшный хак, который назывался «модель памяти Huge».
В «gcc» ничего из этого не было. Даже в недавно вышедшем «Sourcery CodeBench Lite for IA16 ELF» нет поддержки сегментированной модели памяти. Он способен генерировать только COM-файлы (напоминаю, что они не выходят за пределы 64 килобайт). Причём даже ковыряться в видеопамяти из такого COM-файла нельзя, ибо в «gcc» нет длинных указателей.
Прыщебляди соснули, короче.
Чтобы с этим не возиться, обычно данные разбивали на куски, не превыщающие 64 КБ, и обрабатывали по частям.
Представляешь, как выглядела обработка графических файлов в DOS, в котором не было mmap/MapViewOfFile?
Жопа будет, если ты придумаешь код, которому одновременно нужны функции изо всех оверлеев. Это возможно, если функции из оверлеев ссылаются друг на друга.
Конечно, из файла можно было читать по кускам, но планировать загрузку должен был ты сам. Прочитал кусочек, обработал, Seek туда-сюда, прочитал следующий...
Если ограничить доступную ОС память половиной гига (для двушек этого хватило бы с запасом, ибо на них больше 16 М невозможно поставить в принципе), то можно заранее разбить всю память на сегменты. Правда, придётся думать, как реализовать защиту.
Самое смешное, что в итоге Карманов проиграл, а те, кто считал, что «Флэш идеологически чужд», победили.
На «iOS» запустить «Флэш» сейчас невозможно. На «Андроиде» можно только в специальных браузерах (в некоторых сборках «Фаерфокса» и «Дельфина»), да и то лишь в некоторых версиях системы.
На десктопе тоже от него уходят. Полноценная поддержка «NPAPI» осталась только в браузерах на движке «Goanna» (форк «Gecko»). «Фаерфокс» и «Хром» собираются отказаться от поддержки плагинов.
Да и среди флеш-игрушек одно говно, нет ничего интересного, нахуй они всрались?
Тут пока ещё можно скачать архивы с флеш-плеером, включая автономный, под любую поддерживаемую ОС:
https://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html
А для тех, которые из автономного не запустились, придётся ставить старый браузер.
Кстати, гигантская свалка дерьма на «Flash» (правда, тут больше демок, чем игрушек):
http://dagobah.net/
Это наверное Руслан Карманов, чтобы доказать, что прыщебляди соснули.
Называлась она по-французски. Что-то типа «Chasseur» («Охотник» в переводе).
Действие происходит в джунглях. Охотник должен отстреливаться от туземцев, которые ебут всё, что движется. Если охотник не успеет отстрелиться, его заебут насмерть.
К тому же, у «Apple» есть своя собственная, самодостаточная экосистема: можно купить «МакБук», включить и сразу течь. И эту экосистему они вольны переписывать-переконпелировать когда им вздумается. Собственно, именно так продукция «Apple» и позиционируется: купил — и используешь, никакого тебе пердолинга.
А в «Windows» надо ещё пару суток накатывать всякое разное говно: браузеры, офисные пакеты, архиваторы, почтовые клиенты, проигрыватели, драйверы и тому подобное. Забьют в «Microsoft» на легаси — получат, помимо всего прочего, ещё и кучу недовольных тем, что они со своей «Opera 3» даже в «Интернет» выйти не могут.
А «Flash» там работает из коробки?
> А фотожоп разве их?
Я не знаю, входит ли он в их экосистему. Если входит — значит, они могут в достаточной мере влиять на его разработку (зафорсить переход на «x64», например — 32 бита они выкинули на мороз).
Сначала был запускатор мотороловских экзешников на ППЦ:
https://en.wikipedia.org/wiki/Mac_68k_emulator
Потом был запускатор экзешников, предназначенных для MacOS Classic, на Mac OS X:
https://en.wikipedia.org/wiki/List_of_macOS_components#Classic
Потом был запускатор пэпэцэшных экзешников на x86:
https://en.wikipedia.org/wiki/Rosetta_(software)
Для мобильных устройств такого не было. Там у «Яблока» анальные ограничения, всё запускается только через жопу «Айтюнс». Хочешь запустить что-то стороннее — «Джейлбрейк» с потерей гарантии. На «Айфоне»/«Айпаде» даже разработчик не может запустить собственное приложение.
Эмуляторы бывают тонкими и толстыми.
Тонкий — это эмулятор процессора (если он необходим; если же набор инструкций совпадает, то можно обойтись без него) и тонкие переходники между API программы и API операционной системы хоста.
Пример тонкого — Wine (оно может быть вообще без эмулятора процессора). Там тупо загрузчик PE-файлов и тонкие переходники между функциями Windows и функциями Линукса.
Или, например, HAL в 64-битной Windows и в Windows на ARM, Alpha, MIPS, PPC. Там эмулируется x86 для того, чтобы вызвать конкретную функцию из ПЗУ железки.
А толстый — это когда сначала грузится BIOS, потом он грузит в эмулятор из образа диска полную операционную систему со всем говном, включая оболочку и драйвера, а уже из этого окружения запускает программу.
Пример толстого — это Bluestacks/Nox для эмуляции Андроида или всякие QEMU/Bochs/VMWare/VirtualBox.
Однако, эмулятор ARM, входящий в поставку «Андроида» для x86, как-то с этим справляется. Я в каком-то говнокоде приводил реальный пример тестов, которые при компиляции в ARM и запуске через эмулятор работают всего лишь в полтора раза медленнее, чем если сразу в x86 скомпилировать. Возможно, это из-за того, что у ARM набор инструкций несложный по сравнению с x86, и удалось перед запуском оттранслировать.
А ещё JVM и CLI по сути являются эмуляторами процессора (правда, несуществующего в железе). Так что процессор процессору рознь.
2013-й год, победное шествие смартфонов. Тёма говорит, что мобильные версии сайтов не нужны, потому что его «Айфон» отображает все сайты:
https://www.artlebedev.ru/kovodstvo/sections/177/
Прошло всего два года, наступил 2015-й. Тёма говорит, что мобильные версии сайтов внезапно стали нужны:
https://www.artlebedev.ru/kovodstvo/sections/182/
Что такое страшное произошло, из-за чего Тёма так резко отказался от своих слов?
А хорошим дизайнером ему быть и не надо, он, насколько я знаю, прямое управление давно отдал умеющим людям, а сам просто остался еблетом-брендом, на чём и делает неплохие деньги.
Мобильные версии сайта почти всегда становятся лютым говном, от которого спасает только пункт меню браузера, позволяющий отправить серверу юзерагент как у нормального компьютера.
Мобильная версия требует отдельной поддержки (если это не респонсивная питушня вроде бутсрапа) - приходится делать два сайта вместо одного.
Мобильная версия требует отдельных усилий дизайнера: нужно продумать, как на маленькой площади расположить содержание и органы управления, чтобы сайт остался удобным и ее превратился в говнище с двумя кнопками для идиотов. Нормальную версию сайта гораздо проще сделать удобной. Пусть будет она, а мы позумим.
Более того, респонсивность - питушня, которая не заменит одной нормальной версии сайта. Когда в зависимости от соотношения сторон и размера экрана сайт начинает штормить, пользователь теряется. Всё может выглядеть так же, но с сайта могут пропасть некоторые элементы, что-то может куда-то уехать или сменить форму и ориентацию. Каждая такая питушня - боль для привыкшего пользователя и потеря его эффективности.
Как пример можно привести "YouTube". Если на FullHD поставить увеличение Windows 125%, всё будет хорошо. Если 150%, то из данных о видео пропадёт дата. Количество просмотров останется, а дата исчезнет.
Я эту сраную дату хрен знает сколько искал, чуть не поехал. Фтопку респонсивного питуха, фтопку мобильные версии.
Gopher представлял собой таблицу известного формата. Как её отображать — дело твоей программы-агента. Все «сайты» выглядели однообразно, ибо по сети передавались только сырые данные, а «дизайном» они обрастали у клиента.
Потом победили дизайнеры. Т. е. люди, которые ничего не умеют, но их приходится жалеть, чтобы они не умерли голодной смертью. Пришёл HTML, и каждый дизайнер счёл своим долгом запрятать нужные вещи так, чтобы пользователь их не нашёл. С появлением CSS и JS дошло до смешного: дизайнеры стали до неузнаваемости изменять формы для отправки данных и даже прятать скроллбары и заменять их эмулируемыми с кислотным дизайном. Теперь вообще хрен поймёшь, как управлять страницей.
Может быть, настала пора выгнать дизайнеров и вернуть сырые данные?
Чуть менее, чем все инструменты по настройке цветов и прочей питушни нужно выпилить. Может, оставить некоторые предустановленные размеры текста и кнопок в виде "большой, маленький, средний...", разнообразие питушения разметки и стилей сократить. Но вот алайнмент и подобную питушню - оставить
Главное: внешний вид контролов должен быть по умолчанию одинаковым во всех браузерах и ОС. Все альтернативные расцветки и виды контролов - только через явные настройки тем или через кулхацкерские меню about:config, на которые не ведёт ни одна кнопка из интерфейса браузера.
Дизайнеров надо переучить. Отлупасить их томиком Папанека хотя бы. Забыли они, что должны делать удобные инструменты, а не модное говно.
И крайне важно описание взаимного их расположения, но чтобы не как в CSS, а адекватно. То есть если рисуем набор кнопок для набора номера, то они должны быть фиксированной сеткой и входить на экран. А если набор кнопок, каждая из которых включает какой-то язык интерфейса, то пусть будут как угодно расположены.
Извиняйте за моё профанское мнение. Но кмк, лучше этого пока не придумали ничего.
https://anybrowser.org/campaign/abdesign.html
https://anybrowser.org/campaign/abfaq.html
Причём Спольски писал эссе в старые-добрые времена, когда js не превратился в браузерный C++.
https://www.joelonsoftware.com/2008/03/17/martian-headsets/
На «Сониэрики» можно было ставить даже «скринсейверы», написанные на этом самом «Flash Lite».
А потом весь мир сговорился и решил дружно обломать Карманова.
Идея издания подобной книги (на блатной фене) не нова вот пример из «книги» по истории Средних веков: В 1565 году по всей Голландии пошла параша, что папа — антихрист. Голландцы начали шипеть на папу и раскурочивать монастыри, римская курия, обиженная за пахана, подначила испанское правительство. Испанцы стали качать права — нахально тащили голландцев на исповедь: (совали за святых чурки с глазами). Отказчиков сажали в кандей на трехсотку, отрицаловку пускали налево. По всей стране пошли шмоны и стук. Спешно стряпали липу. (Гадильники ломились от случайной хевры. В проповедях свистеле об аде и рае, в домах стоял жуткий звон). Граф Эгмонд на пару с графом Горном попали в неприятное, их по запарке замели, пришили дело и дали вышку.
Рассказывая о самых обыденных вещах, он всегда спрашивал, все
ли его хорошо поняли, хотя дело шло о примитивнейших понятиях,
например: «Вот это, господа, окно. Да вы знаете, что такое
окно?» Или: «Дорога, по обеим сторонам которой тянутся канавы,
называется шоссе. Да-с, господа. Знаете ли вы, что такое
канава? Канава — это выкопанное значительным числом рабочих
углубление. Да-с. Копают канавы при помощи кирок. Известно ли
вам, что такое кирка?»
С первой же страницы вызывают недоумение выражения типа «ежу понятно», «тудым-сюдым колеблется»,
«треугольник АВС с финтифлюшкой на конце» вплоть до «ну его на хрен, это доказательство».
Введение новых терминов не всегда оправдано. Вместо слов «жлыга», «торчун», «одуренный», «толстопузый», о значении которых приходится догадываться лишь из контекста, разумнее было бы использовать традиционные «трапеция», «перпендикуляр», «больший либо равный двум», «выпуклый».
А оборота «плоский, как старая шлюха» (стр.113, теорема Пифагора) стоило бы избежать, хотя бы из уважения к старым шлюхам. Далее. Можно, конечно, бесконечно долго спорить о том, куда, по мнению автора, сходится функция 1/х, но рисунок на стр. 157 просто попадает под действие закона «О порнографии». Ну, а пассаж в конце главы 3 вообще не лезет ни в какие ворота. Корректней было бы написать: «оставляем доказательство читателю», чем объяснять на двух страницах, что "… башка с утра раскалывается" и что "… вчера такой дряни намешали". И, наконец, нельзя согласиться с заключительной фразой (стр.315), что, дескать, «место всех этих придурков в тюрьме, а не в ВУЗе». В целом же книга интересная, талантливо написана и будет безусловно полезна для всех тех, кто заканчивает школу и вступает на нелёгкий и увлекательный путь половой зрелости.»
С 1 января же «pypi.org» не принимает обновления модулей для «2.7». И новые версии самого установщика «pip» не будут поддерживать «2.7».
Старые модули для «2.7» с «pypi.org» пока не удалили. Их ещё можно установить через текущую версию «pip».
http://i.imgur.com/MorT9MI.jpg
Зачем нужны новые версии 2-го пипа?
В 2017 добавили поддержку 3.6.
В 2018 добавили поддержку 3.7.
В 2019 добавили поддержку 3.8.
https://github.com/twisted/twisted/blob/trunk/NEWS.rst
Правда, пишут, что портировали не все модули, а «subset». Надо смотреть в документации, что поддерживается.
Проверь.
https://github.com/abhinavsingh
Не знаю, не я писал.
> По каким словам нагуглил?
Внезапно, по
>>> прокси модуля на тройке
— то есть «python 3 proxy module». Это не очень сложно.
В 2017 добавили поддержку 3.6.
В 2018 добавили поддержку 3.7.
В 2019 добавили поддержку 3.8.
https://github.com/twisted/twisted/blob/trunk/NEWS.rst
Правда, пишут, что портировали не все модули, а «subset». Надо смотреть в документации, что поддерживается.
Сука, двенадцать лет поддерживать мёртвое говно!..
«Есть и есть, разработка заморожена, не трогаем говно мамонта» — это уже после того, как поддержка кончилась. Теперь, к счастью, на вопрос: «Зачем переходить на Python 3, когда есть Python 2?», можно смело отвечать: «Потому что у Python 2 закончился период поддержки». В наибольшей степени это касается корпоративного сектора и мейнтейнеров всяческих дистрибутивов.
Исправил, проверь.
https://pikabu.ru/story/vakansiya_mechtyi_7154854?cid=158535838
Так вот современный «Яндекс-Браузер» на XP не ставится, нужно где-то в архивах искать подходящую версию.
Вообще весь комментарий вызывает сомнения.
Кстати, там ниже, где «Похожие посты», много интересного.
Проверю на «Висте». Скачался, установился. User-Agent такой: Да, соответствует 57-му «Хрому».
Сам «Хром» (с оригинальной иконкой) для «Висты» и для «XP» был максимум 49-й версии, причём сейчас его скачать нельзя. ChromeSetup.exe, который сейчас качается с сайта «Гугла», пишет, что не может установить, а выбрать версию на сайте нельзя. Даже не знаю, поможет ли архивная версия, потому что офлайнового инсталлятора у «Хрома» нет; с сайта можно скачать только заглушку, которая качает настоящий инсталлятор с сервера «Гугла».
• Сайт браузера «Srware Iron» по юзер-агенту твоего браузера пытается определить версию ОС и предлагает скачать инсталлятор соответствующей версии. Для «XP» и для «Висты» он предлагает скачать 49-ю версию.
• «UCWeb», он же «UCBrowser» из «Висты» качается и устанавливается такой версии: То есть соответствует 55-му «Хрому».
• Сайт «Vivaldi» также определяет версию ОС по юзер-агенту. Из «Висты» он предлагает скачать версию 1.0. Юзер-агент такой: Что соответствует 49-му «Хрому».
• Проект «Амиго» наконец-то закрыт. Однако, вместо него «Mail.ru» подложила новую свинью под названием «Атом». Качается онлайн-инсталлятор, который сразу вываливает сообщение: «К сожалению, Ваша версия Windows не поддерживается браузером Atom».
• «Спутник» уже на сайте пишет: «Windows 7+». На сайте несколько вариантов: онлайн-установщик, офлайн-установщик, офлайн-установщик с российской криптушнёй... Пробую запустить онлайн-установщик. ВНЕЗАПНО устанавливается и запускается в «Висте». Юзер-агент такой: То есть даже не 49-й «Хром», а 47-й! Какой анскилл )))
• Наконец, «Хромоопера». Инсталлятор OperaSetup.exe с сайта «opera.com» не пашет. Нужно качать офлайновый инсталлятор отсюда:
http://get.geo.opera.com/ftp/pub/opera-winxpvista/
На глагне «opera.com», конечно же, об этом ни слова.
«Хромооперу» можно установить после небольшой ебли (нужно просто знать про сайт get.geo.opera.com).
Лучшим всё-таки оказался «Яндекс-Браузер». Но я проверял на «Висте». Сёма, проверь на «XP», если есть возможность. В экзешнике OS version и Subsystem version указаны как 5.01.
Хотя аналогичную службу ставит и гугловский «Хром», и «UCBrowser»... В принципе, эти службы можно запретить.
После установки яндексовских продуктов нужно проверять директорию C:\ProgramData\Microsoft\Network. Там в какой-то из поддиректорий (то ли Downloader, то ли Connections) создаются файлы с задачами на скачивание для службы BITS. Эти файлы можно удалить и перезапустить службу BITS (её вообще лучше переключить с автозапуска на ручной). Адобовские продукты тоже срут задачами на скачивание.
И ещё если у тебя работает «Планировщик заданий», оттуда тоже нужно удалить лишние задачи (и снова помимо «Яндекса» в планировщик срёт «Adobe»).
Пришло время обновить SDK. Зарепорти им багу.
Хотя я думаю они на первом баге с XP так и сделают...
Таблицу функций, поддерживаемых основными DLL каждой версии Windows, можно взять отсюда:
https://abi-laboratory.pro/index.php?view=windows
А если подписан - можно тупо ёбнуть секцию подписи. Один хрен она ни на что не влияет.
> групповая политика
На XP?!
Меня не только XP интересует. Хотелось бы, чтобы в заголовке экзешника минимальная поддерживаемая версия всегда отображалась корректно.
Как сообщает наш инженерный отдел, Windows XP была признана самой безопасной ОС для пользователей из России.
К вопросу откуда взялся иншо.
https://i.imgur.com/FK5T0Kx.png
https://www.youtube.com/embed/GjslDlQXATs
Это облегчённая версия страницы, предназначенная для вставки в айфрейм: без комментариев, без запроса возраста, без рекламы...
https://en.wikibooks.org/wiki/Ada_Programming
Конечно, это говно оперативно пошло под фильтр, но осадочек остался...
https://backgroundchecks.org/justdeleteme/ru.html
Мне нравится классификация уровней сложности: легко, средний, трудно, невозможно. Как будто какую-то игру проходишь.
Ладно, читаем дальше: «Wordpress.com: “WordPress.com accounts cannot be deleted.” The best you can do is remove any identifying data from your account.»
Какой багор )))
> PHP Classes
> невозможно
Что зашкварено не может быть расшкварено.
Кстати, действительно палится. Один коллега упорно делал из "Ruby" "РНР" -- ловил все исключения и возвращал false в случае ошибки.
https://www.darkpatterns.org/types-of-dark-pattern
Я считаю, что всё это необходимо запретить на законодательном уровне.
«Фейсбук» ещё все варианты твоего пароля хранит вечно, сколько бы раз ты его не менял.
Бывает, забуду, что сменил пароль, пытаюсь залогиниться, а «Фейсбук» пишет: «Такой пароль Вы использовали в 2010-м году, но потом сменили. Пожалуйста, вспомните новый пароль».
Зачем? Зачем?
Допустим, я пытаюсь взломать Романа Кашицына. Ввожу в «Пейсбук» в качестве пароля первое попавшееся слово, и тут «Пейсбук» отвечает: «Такой пароль Роман использовал 12 лет назад». Тогда я могу сделать предположение, что такой же пароль Роман использовал где-то ещё, и попытаться его ввести в электронную почту, в «Гитхаб», в «Говнокод», ещё куда-нибудь...
Только что проверил на одной из своих учёток. Специально ввёл старый пароль, который давно уже не действует:
Я три года назад сменил этот пароль, а «Пейсбук» до сих пор помнит!
Зачем он первому встречному питуху (возможно, взломщику) говорит, что у меня был такой пароль? Зачем? Зачем?
Я думал, такое только при смене пароля делается.
Более-менее адекватная схема:
* При смене пользователь вводит актуальный пароль и новый пароль. Если актуальный пароль неверен, а новый - старый, то пишется уведомление "пароль устарел". Если актуальный пароль неверен, пишется "неверный пароль". Иначе пароль изменяется.
* Когда пользователь входит со старым или неверным паролем, ему пишут "неверный пароль" ничего не уточняя. Когда входит с верным - пишут, что верный.
Знаю ли я новый пароль и имею ли я доступ к электронной почте и к SMS, «Фейсбук» ещё не знает. Он предложит проверить электронную почту только после того, как я сделаю несколько неуспешных попыток входа.
Это можно реализовать и с солью: сравнивать введённый пароль с каждым из использовавшихся ранее. Да, придётся мутить цикл.
Можно и без цикла, если для каждого пользователя соль постоянная и со сменой пароля не меняется.
Просто вызывать функцию проверки пароля в цикле. Цикл по всем хэшам и солям, связаным с данным юзернеймом.
https://samy.pl/evercookie/
• window.name — самый ненадёжный вариант, потому что действует только в данной вкладке. Зато протекает между сайтами, ему на домен плевать.
• Такой же ненадёжный ETag, потому что работает только для одного URL. Клиенту посылается заголовок ETag: "265", тогда браузер при следующих запросах будет отвечать с заголовком If-None-Match: "265".
• userData, sessionStorage, globalStorage, indexedDB, Web SQL Database — неплохо, но работают не во всех браузерах (userData работает только в «IE», какие-то из оставшихся задепрекейтили).
• Java не вариант, потому что неподписанные апплеты в новых браузерах не запускаются.
• Flash и Silverlight — неплохо, но они уходят в прошлое (теперь ими можно воспользоваться не во всех браузерах). Жаль, а в своё время с помощью Flash LSO можно было ловить мультов на форумах, потому что они протекали между всеми браузерами на данной машине и даже Ctrl+Shift+Del не помогало, надо было чистить LSO отдельной программой.
• CSS history hack забавен, но ненадёжен. Основан на псевдоклассе :visited. Набиваем страницу невидимыми ссылками на популярные сайты и узнаём, какие из них :visited. Получается битовое поле, с какой-то вероятностью идентифицирующее пользователя.
1. Эмуляция кук картинками. Для каждого юзера генерировать индивидуальную картинку (типа как графический инвайт в «Х-ре»), картинка сохранится в кэше браузера. Позже её можно жопоскриптом наложить на canvas и прочитать, чтобы идентифицировать пользователя.
2. Похожий вариант, но кладём не картинку, а жопоскрипт с JSONP. Ну то есть на самой странице <script src="deanon.js"></script>, в файле deanon.js (он генерируется для каждого индивидуально) такой код: Deanon('123fda789'). Файл deanon.js закэшируется, при следующих просмотрах запрашиваться и генерироваться не будет, а на самой странице определена функция Deanon.
3. Давно забытая аутентификация по HTTP. Её не любят за то, что она выкидывает модальное окошко для ввода логина и пароля, которое невозможно стилизовать.
4. «Цифровой отпечаток» браузера:
http://ip-check.info/?lang=en
Забавно, но всё-таки ненадёжно.
5. Заголовки, которые добавляют некоторые дополнения. Например, «Frigate» и «Webmoney Advisor». Ага, дополнения, якобы предназначенные для безопасности, на самом деле деанонимизируют пользователей.
6. Заголовок X-MSISDN с номером телефона. Сейчас уже встречается редко, но в эпоху WAP-браузеров был почти стопроцентным средством деанона.
Ничего не забыл?
> картинка сохранится в кэше браузера
> Позже её можно жопоскриптом наложить на canvas и прочитать
Зачем? Зачем?
Уникальный E-Tag в помощь.
Т. е. это годится только для SPA — single page application.
А он же хочет уникально идентифицировать каждого юзера.
Можно конечно и в дату запихнуть что-то, но это извращение.
Можно даже тупо прибавить лет 10 к дате первого входа, чтобы подозрений не было.
> ненадёжный ETag, потому что работает только для одного URL. Клиенту посылается заголовок ETag: "265", тогда браузер при следующих запросах
Так по сути это один и то же метод.
Только с картинкой больше геммороя.
Если я поставил очистку кеша в браузере или руками почистил всё, то сломаются оба.
Нет. Картинка действует для всех страниц, которые содержат код <img src="kuka.png" >, потому что одна и та же картинка берётся из кэша. А ETag для разных страниц будет разным.
>> Если я поставил очистку кеша в браузере или руками почистил всё, то сломаются оба.
С тем же успехом я могу почистить обычные куки. Куки — ненадёжное средство аутентификации?
Баннер с "войти через фейсбук/вк" на весь экран. Самый беспалевный вариант, имхо.
В некоторых форумных движках так на полном серьёзе было. Даже в «Одноклассниках» первое время (лет 12 назад) URL страницы содержали айдишник сессии, а чтобы не подделали запрос, был ещё параметр tkn с контрольной суммой параметров запроса и некоторого секрета, который периодически обновлялся. Тогда даже нельзя было послать ссылку на свой профиль, потому что на другом компьютере ссылка была недействительной.
«Хром» отказался от «NPAPI», перешёл на «PPAPI», для которого существует ровно два плагина: «Flash» и просмотрщик «PDF». Других плагинов для «Хрома» не предвидится (имена этих двух плагинов даже вшиты в экзешник).
В новом «Фаерфоксе», который на «Растишке», тоже какая-то муть. Там сейчас вроде белый список плагинов (вроде только «Flash» разрешили запускать), а в будущем планируют тоже отказаться от «NPAPI».
Остаются два движка, на которых сейчас работает «Java»:
1. «Goanna» (форк «Gecko»). Это браузеры «Pale Moon», «Basilisk», «Borealis», порт «K-Meleon».
2. «QtWeb» (форк «Webkit»/«Blink», но без оболочки «Chromium»). Это браузеры «Qupzilla», «Otter Browser». Возможно, ещё какие-то вроде «Maxthon» и «Midori».
Да, поскольку публике эти браузеры малоизвестны, можно считать, что «Java» в браузерах не работает.
В данной ветке речь о другом: даже при наличии у браузеров технической возможности спрашивать на все сайты Евросоюза вешается виджет на жопоскрипте, который предупреждает о том, что сайт использует куки. Зачем? Зачем?
Можно ли это считать нарушением закона?
А если там будет одна страничка с надписью "к сожалению, для просмотра требуются куки", то всё законно?
А вот работать при запрете «существенных» кукисов никто не обязывает. Вот такое вот тупое говно.
А вот сайты, на которых есть только кнопка «Accept» — либо никаких других кук не ставят, либо им похуй на «GDPR».
Пачка быстроссылок:
https://ec.europa.eu/info/law/law-topic/data-protection/reform/rights-citizens/redress/what-should-i-do-if-i-think-my-personal-data-protection-rights-havent-been-respected_en
https://edps.europa.eu/node/75_en
И конкретно жалоба на кукисы: https://ico.org.uk/make-a-complaint/cookies/.
У меня идея: вместо sessionid сделать 100500 разных кук и назначение каждой куки подробно описать на странице лицензионного соглашения, чтобы редкий пользователь осилил дочитать до конца.
А затем показывать их юзеру по одной, чтобы он мог разрешить или запретить каждую из них. Ну и кнопку "да для всех", само собой.
https://en.wikipedia.org/wiki/Do_Not_Track
Осталось только сделать отправку этого заголовка локальной, чтобы юзер для каждого домена мог выбрать, отправлять «DNT: 1» или нет.
В «Интернет Эксплорере» настройку «do not track» первоначально сделали включенной по умолчанию. За это корпорацию «Микрософт» обоссали. По мнению авторов протокола «DNT» пользователь должен ознакомиться с протоколом и явно поставить галочку, если не хочет, чтобы его отслеживали.
В новых версиях пришлось делать, как у всех, а именно настройка «do not track» по умолчанию выключена.
Прикинь, «Апач» стал игнорировать заголовок DNT, если юзер-агент == IE10, только из-за того, что в IE10 «do not track» включено по умолчанию.
Видимо, рекламодателям не понравилось, что слишком много посетителей с этим заголовком.
А если бы евродепутаты протолкнули DNT в закон, игнорировать его было бы невозможно.
Видимо, авторы решили обратить это высказывание и назвали «Юниксом» всё, что не «GNU».
https://postimg.cc/LYsH9tWB
Если нажать кнопку [Отменить], то операция отменяется.
Если нажать кнопку [Отмена], то отменяется отмена операции, т. е. операция продолжается.
Правда, легко разобраться?
https://i.imgur.com/4YVBu1z.png