All streams
Search
Write a publication
Pull to refresh
127
0
Send message
Красивая и лаконичная реализация логики «жизни» есть в статье Перестаньте писать классы.
Ищущие компактности используют Javascript (JSON.stringify) или Python (json.dumps). Инициализация сериализуемых объектов в этих языках совпадает по синтаксису с JSON.

А все велосипедисты навернутся на первой неэкранированной кавычке, бэкслеше, на переносах строк, на юникоде и много ещё на чём.
но она всегда есть
Это где она всегда есть? Сколько API сайтов не перелопатил, нигде не встречал. XML Schema существует так же, как и JSON Schema (документ IETF, между прочим). А вот то, что на практике его мало кто использует, это уже другой вопрос.
Чому бы не осилить boost::property_tree?
#include <iostream>
#include <unordered_map>
#include <boost/property_tree/json_parser.hpp>

int main()
{
    auto pt = boost::property_tree::ptree{};
    pt.put("Comment", "My comment");
    pt.put("Count", 10);
    pt.put("DiskParam.DB", 10.0);
    pt.put("DiskParam.DBAngle", 1.234);
    pt.put("Range", true);

    auto blades = std::unordered_map<std::string, int>{{"A", 1}, {"B", 2}, {"C", 2}};

    auto bladesTree = boost::property_tree::ptree{};
    for (const auto &kv : blades) {
        auto blade = boost::property_tree::ptree{};
        blade.add("Caption", kv.first);
        blade.add("Value", kv.second);
        bladesTree.push_back(std::make_pair("", blade));
    }

    pt.add_child("Blades", bladesTree);

    auto slotsTree = boost::property_tree::ptree{};
    for (auto i = 0; i < 3; i++) {
        auto slot = boost::property_tree::ptree{std::to_string(i)};
        slotsTree.push_back(std::make_pair("", slot));
    }

    pt.add_child("Slots", slotsTree);

    auto buf = std::ostringstream{};
    boost::property_tree::write_json(buf, pt);
    std::cout << buf.str();
}
Ссылка в тему: code.google.com/p/namebench/

Эта программа позволяет определять не только самый быстрый DNS-сервер, но и проверять наличие цензуры. За 4 года база серверов немного устарела, но там есть несколько полезных вещей, например, детектирование NXDOMAIN hijacking.
Нет, не проксируются. Просто идёт перенаправление http-заголовком на заглушку на сайте МТС с передачей URL через параметр. Обратного перенаправления с проксированием в случае несоответствия фильтра я не замечал, видимо, их интересует только персонализированная статистика. Естественно, с таким подходом блокируются все SSL-сервисы на порту 443 (openssl s_client сразу возвращает подложный сертификат).
У МТС Домашний Интернет ADSL (Стрим) так делают, например, для https/смешанных сайтов. Обычные сайты блокируют по URL, https — по IP с подменой сертификата на самоподписанный. 2ch.hk и 2chru.net как раз к таким относятся.
250 Гфлопс — это скорее всего просто расчётный параметр. 1.3 ГГц * 8 ядер * 24 операции на такт -> получаем 249.6 Гфлопс.

Пиковая теоретическая производительность Haswell: 3.9 ГГц * 4 ядра (8 двойных флопа на инструкцию FMA, 2 FMA такт), то есть 3.9*4*8*2 -> получаем те же 249.6 Гфлопс.

Для сравнения линейка Intel Xeon Phi (на которых построен Тяньхэ-2 с теоретическим пиком в 54,9 Пфлопс) с пиком в 1.0 — 1.2 Тфлопс и NVidia Tesla K20X с пиком в 1,317 Тфлопс.
От количества DNS-записей линейно зависит размер AXFR-трафика между серверами, линейно зависит объём требуемой памяти, разве что поиск по хэш-таблице можно сделать за константное время. Это URL-адреса можно генерировать и обрабатывать произвольным образом, а DNS во все века был и остаётся таблицей.

Вопрос не в количестве субдоменов, а в возможности добавления Wildcard DNS record. Тогда да, различие в количестве субдоменов вы возлагаете на свои плечи. Пока нет никакой информации об этом, но Google Cloud DNS разрешает Wildcard DNS record и я не вижу причин, почему Google Domain не будет разрешать.
Где написано про привязку? Там скорее обратное написано: «Add and manage resource records: A, AAAA, CNAME, MX, NS, PTR, SOA, SPF, SRV, TXT».

А возможность привязки gmail это скорее как фрагмент Google Apps for Business. Только в случае с чужим регистратором для привязки gmail-сервера придётся платить 5$ каждый месяц.
В Firefox достаточно много проблем с аппаратным ускорением, это неотъемлемый атрибут процесса разработки. В этой ситуации хорошо помогает встроенный инструмент отправки сообщений о падениях (crashpad). Отправленные отчёты открыты для всех, ссылки на отчёты записываются на about:crashes и дают намного больше полезной информации, чем перечисленные вами пункты.
А не наоборот ли? 20 лет назад был Polaroid, самая что ни на есть мгновенная фотография. А теперь нужно тащить устройство домой, подключать к компьютеру, отбирать нужные фотографии, посылать на принтер.
+1 к Source Code Pro. Из преимуществ этого шрифта стоит отметить отсутствие своих глифов кириллицы. Глифы кириллицы берутся из других шрифтов, благодаря чему случайно затесавшиеся кириллические символы в коде сразу бросаются в глаза.
Действительно, сложностей в переборе 6^4 вариантов и присвоении их 4м переменным нет.

Пролог не перебирает все варианты. Если вы запустите N = 18, sum([A, B, C, D], #=, N), [A, B, C, D] ins 0..sup., (sup = +бесконечность), то пролог сократит домены решений до 0..18:
A in 0..18,
B in 0..18,
C in 0..18,
D in 0..18.


Если же мы возьмём N = 5 и кубик 1..6, то пролог сократит домены до:
A in 1..2,
B in 1..2,
C in 1..2,
D in 1..2.


Если использовать дальше indomain, а не label, то можно посмотреть, как пролог уточняет домены решений:
?- N = 5, sum([A, B, C, D], #=, N), [A, B, C, D] ins 1..6, findall([A, B, C, D], indomain(A), List).
N = 5,
List = [[1, _G419, _G422, _G425], [2, 1, 1, 1]],
A in 1..2,
A+B+C+D#=5,
B in 1..2,
C in 1..2,
D in 1..2,
_G419 in 1..2,
1+_G419+_G422+_G425#=5,
_G422 in 1..2,
_G425 in 1..2.


Таким образом, пролог нашёл одно решение [2, 1, 1, 1] и установил новые ограничения для _G419, _G422, _G425.
Тёплый ламповый сви-пролог:

use_module(library(clpfd)).

N = 18,
sum([A, B, C, D], #=, N),
[A, B, C, D] ins 1..6,
findall([A, B, C, D], label([A, B, C, D]), List),
random_member(RandomResponse, List).

Сильно тапками не бейте, мой скилл пролога равен полутора лабам трёхлетней давности.
Ссылки открываются через ctrl+клик, shift+клик, среднюю кнопку мыши, меню правой кнопки мыши — способов более чем предостаточно.
Это есть во всех современных браузерах:

javascript:document.body.contentEditable='true';document.designMode='on';void 0

ПКМ -> выбираем нужный словарь.
Сам спросил, сам нашёл (вспомнил, что модуль грамматической проверки в LibreOffice с открытым исходным кодом) — wiki.languagetool.org/integration-on-websites.

Как-то так

Information

Rating
Does not participate
Registered
Activity