Браузеры не имеют права ресолвить TLD в обход DNS, поскольку так разом могут сломать кучу корпоративных адресов. Chrome делает всё правильно (даже если не писать протокол).
Вот что получилось, тестировал в Firefox: userscripts.org/scripts/show/162237. Заодно убрал жирный шрифт и капс повсюду (КАК ЖЕ ЗАДОЛБАЛИ КАПСОДИЗАЙНЕРЫ)
Банов информации в любом виде не должно существовать. Любой сайт на wordpress.com имеет https-версию. А как известно, в https шифруется весь заголовок, в том числе и host и path. Желающие заткнуть рот ради собственной выгоды найдутся всегда, даже если завтра роскомнадзор посетит толпа брейвиков. Единожды начавшись, цензура будет цвести и пахнуть, передвигаясь на соседние страны. Самый правильный метод защиты на сегодняшний день — *.i2p, причём по возможности без false.i2p и прочих outproxy. К децентрализованным сетям не стоит относится как к какому-то костылю, это прозрачно и безопасно.
А вы можете сделать юзерскрипт? Хотя бы на уровне стилей (а возможность скриптования пригодятся в следующих версиях). Судя по версии 0.6.0.9, это пока несложно, просто хотелось бы иметь версию от первого лица.
Хорошая сторона Feedly в том, что он импортировал не только URL подписок (что в принципе несложно), а в том, что он импортировал историю всех лент и избранное. За 5 лет у меня набралось с десяток фидов мёртвых сайтов. Если бы Feedly импортировал только OPML, то это было бы равносильно импорту одной адресной книги при переезде на другой почтовый сервис. А за полноценный импорт лично я ставлю большой плюс Feedly и лично для меня выбор на сегодняшний день сделан.
Хорошая схема есть на обложке спецификации OpenGL. Пайплайн OpenGL 4.3 заточен на то, что в любой момент можно вытащить промежуточный результат и пустить его по развилке на Transform Feedback. Если вам нужны Compute Shaders, посмотрите, по каким стрелкам в него можно подать данные; по стрелке от Buffer Objects и Texture Sampling. В свою очередь, на эти два блока данные тоже могут поступать из разных мест. Хотите перейти от Compute Shaders на Framebuffer (т. е. на вывод)? Без проблем, по стрелке Compute Shaders -> Vertex Shading (разметить прямоугольную текстуру на прямоугольную полисетку) -> Tessellation (ничего) -> Geometry Shading (тоже ничего) -> Rasterization -> Fragment Shading (вытащить цвета из Sampler2D: color = vec4(texture(srcTex, texCoord).x, 1.0, 1.0, 1.0)), и только потом можно выводить на экран. Так и приходится осваивать одновременно кучу технологий, хотя нужна только одна.
Идея конфиденциальности в unbiased-визуализации нереализуема. Все сетки и текстуры в сцене должны быть получены вычисляющей машиной в исходном виде. Можно посылать их как угодно, но в момент загрузки в память видеокарты они должны быть в целостности, а вытащить отладчиком аргументы glTexImage2D или аналогичной функции — как нефиг делать. Максимум, что возможно сделать — перевести шейдеры в оптимизированный байт-код.
Если задача на GLSL не будет выполнимой вообще — можно попытаться сделать рендер на OpenCL ;)
А как насчёт попробовать визуализировать простой кубик средствами compute shaders из GLSL? Полсотни парадигм (краткая схема), которые придётся освоить и использовать (даже если они не нужны в рендере), быстро отрезвляют сознание.
А можно как-нибудь сделать так, чтобы это предсказание осталось только с вами? Преобразование цифрового сигнала в цифровой/аналоговый возможно испокон веков без ежемесячных выплат. 10 лет назад можно было спокойно выводить изображение с кпк на экран компьютера и наоборот. Тогда же появился HDMI. 30 лет назад появилась X Window System, изначально заточенная под вывод изображения на несколько мониторов. Любая современная операционная система позволяет работать с несколькими мониторами/проекторами, а производители мониторов делают всё возможное, чтобы их монитор подключался к чему угодно.
А на данный момент это выкачивание денег из воздуха и логическое продолжение талонов на разгон. Заболеешь на месяц — выйдешь из больницы — а у тебя офисный пакет не продлён, антивирус не продлён, процессор не продлён, монитор не продлён… Хотите уйти с этих сервисов? Купите ключ разблокировки для всех устройств (но при этом устройства потеряют гарантию и половину своих функций). Это не «Будущее здесь», это «Маразм крепчал».
мы сможем передавать экран планшета на большой телевизор, размножать одну и ту же картинку на множество дисплеев или соединять несколько мониторов в один…
DaaS превращает дисплей в набор пикселей…
… адаптер в виде маленькой коробочки...
Если одеть свитер ногами в рукава и завязать его на поясе, то можно срать, не снимая свитер.
Неприменительно к сложению 1+1: код в таком стиле используется при создании компиляторов или байт-кодовых машин. Прекрасный способ проверить компилятор на LLVM — поискать там символы /, *, %, и другие арифметические операции над числами. Если таковые есть, то скорее всего это ошибка (в свёртке констант такого тоже не должно быть, т. к. LLVM делает это сам). В итоге сложение выливается в лучшем случае в:
Value *one = ConstantFP::get(getGlobalContext(), APFloat(left));
Value *two = ConstantFP::get(getGlobalContext(), APFloat(right));
Value *result = Builder.CreateFAdd(one, two, "addtmp");
Но обычно используется не CreateFAdd, а AddFPMathAttributes(BinaryOperator::CreateFAdd... или CreateInsertNUWNSWBinOp(Instruction::Sub, ..., только вместо Instruction::Sub нужная инструкция на основе сопоставляющего массива, а не прописанная вручную. И это именно для облегчения восприятия. Теоретически, разработчики LLVM могли бы создать API, в котором есть класс BuilderValue, который инкапсулирует Value * и имеет полный набор перегруженных операторов С++. Только операций в LLVM намного больше, чем можно представить стандартными перегрузками, например, целочисленное сложение, сложение чисел с плавающей точкой, беззнаковое сложение и т. д.
Вот если бы в статье был оптимизирующий компилятор и вместо $runner = new CalculRunner(); что-то вроде $codeGen = new CodeGenerator();, тогда это был бы вполне нормальный пример для секции «Getting Started».
А если поменять цвет на фиолетовый, то получится снова «найди всего одно совпадение»? Пока я вижу только одно различие: в Facebook предлагают «искать друзей, места и другие интересные вещи», видимо, с помощью глаз и полосы прокрутки. В остальном положение и назначение логических блоков абсолютно идентичны.
Только треугольник лучше вычерчивать не по высоте старого меню, а по высоте свежеоткрытого (если под меню находятся другие контекстно-зависимые ссылки, то опять же не по старому меню, а по всему участку справа). Так делают GTK и Unity Globalmenu.
А вот в Qt простая задержка без отслеживания курсора. «Если вы действительно ненавидите кого-то, научите его распознавать плохой кернинг плохие меню».
Google ничего не стоит в один момент добавить в Chrome и на свои CDN новый алгоритм. Они проделывали это тысячу раз начиная с транспортного уровня (quic), заканчивая webm, webp, spdy, NaCl, dart, и т. д. Стандарт HTTP предусматривает поле Accept-Encoding, которое сейчас обычно «gzip, deflate» и никто не запрещает сделать «ppmd, gzip, deflate». Тысячи сайтов, которые в хроме дают на четверть меньше трафика для скриптов — чем не конкурентное преимущество? Вопрос не в том, что нет реализации, а в том, что нет алгоритма-кандидата, который бы обеспечивал хорошее соотношение затрат на распаковку и степени сжатия. Что PPMd, что LZMA(2), оба расжимаются значительно медленнее gzip. Остаются вариации PPM? Появление новых алгоритмов в Accept-Encoding это только вопрос времени.
color = vec4(texture(srcTex, texCoord).x, 1.0, 1.0, 1.0)
), и только потом можно выводить на экран. Так и приходится осваивать одновременно кучу технологий, хотя нужна только одна.А как насчёт попробовать визуализировать простой кубик средствами compute shaders из GLSL? Полсотни парадигм (краткая схема), которые придётся освоить и использовать (даже если они не нужны в рендере), быстро отрезвляют сознание.
renderfarm.fi, присоединяйтесь!
А на данный момент это выкачивание денег из воздуха и логическое продолжение талонов на разгон. Заболеешь на месяц — выйдешь из больницы — а у тебя офисный пакет не продлён, антивирус не продлён, процессор не продлён, монитор не продлён… Хотите уйти с этих сервисов? Купите ключ разблокировки для всех устройств (но при этом устройства потеряют гарантию и половину своих функций). Это не «Будущее здесь», это «Маразм крепчал».
Если одеть свитер ногами в рукава и завязать его на поясе, то можно срать, не снимая свитер.
Но обычно используется не CreateFAdd, а
AddFPMathAttributes(BinaryOperator::CreateFAdd...
илиCreateInsertNUWNSWBinOp(Instruction::Sub, ...
, только вместо Instruction::Sub нужная инструкция на основе сопоставляющего массива, а не прописанная вручную. И это именно для облегчения восприятия. Теоретически, разработчики LLVM могли бы создать API, в котором есть класс BuilderValue, который инкапсулирует Value * и имеет полный набор перегруженных операторов С++. Только операций в LLVM намного больше, чем можно представить стандартными перегрузками, например, целочисленное сложение, сложение чисел с плавающей точкой, беззнаковое сложение и т. д.Вот если бы в статье был оптимизирующий компилятор и вместо
$runner = new CalculRunner();
что-то вроде$codeGen = new CodeGenerator();
, тогда это был бы вполне нормальный пример для секции «Getting Started».А вот в Qt простая задержка без отслеживания курсора. «Если вы действительно ненавидите кого-то, научите его распознавать
плохой кернингплохие меню».