Pull to refresh
16
0
Евгений Табацкий @jatx

Программист

Send message
Про кукурузу — опечатка. Исправил. Должна быть курица.
На счет связи — на птицефермах как правило на полах делают подстилку из стружек или опилок.
Возможно, причина в этом.
Скорее не 7 миллиардов, а 7 млрд. * Qf, где Qf — количество финансистов на душу населения :)
Всем остальным, скорее всего, будет индифферентно.
В этой статье википедии можно почитать про гос. долг США подробно.

Да, Вы все правильно поняли — на конец 2013 года гос. долг США составлял 106,6% от их ВВП.
В этой статье википедии можно почитать про гос. долг США подробно.

Да, Вы все правильно поняли — на конец 2013 года гос. долг США составлял 106,6% от их ВВП.

// Написал комментарий здесь по ошибке.
Экспирементальным путем установил, что при x>180 функция возвращает Infinity, при x<-180 — positive or negative zero.

Добавил это:

if (x>180) return Double.POSITIVE_INFINITY;
if (x<-180) {
    int xIntAbs = (int)(-x);
    int sign = 2*(xIntAbs%2)-1; 
    return 0.0*sign;
}
Почитал про JSR353 немного.
Но по-моему GSON на порядок удобнее — нужно просто создать классы для тех объектов, которые мы хотим перегнать в JSON (и добавить простые аннотации, если имена полей класса отличаются от нужных нам в JSONе) — и библиотека сделает все сама.
Спасибо за совет.

От рекурсии избавился. Сделал так:

public static double eulergamma(double x){
    if((x<=0.0)&&(Math.round(x)==x)){
        System.out.print("\nargument of gamma cannot be zero or negative integer\n");
        return Double.NaN;
    }
    //if(x>1.5) return (x-1)*eulergamma(x-1);
    //if(x<0.5) return eulergamma(x+1)/x;
    double mult = 1.0;
    while (x>1.5) {
        mult *= x-1;
        x -= 1;
    }
    while (x<0.5) {
        mult /= x;
        x += 1;
    }
  
    return mult*Math.exp(lngamma(x));
}
По-хорошему здесь можно использовать библиотеку GSON.
Но на момент написания этого кода я про нее еще не знал.
Пофиксил.
А на счет ' — парсер воспринимает этот символ как пробел.
На тот момент, когда я это реализовывал, я осваивал технологию Java сервлетов — и основной целью было написать что-либо для тренировки.
На счет преимуществ:
В одном плане чисто клиентское решение будет даже лучше — отсутствие лишней нагрузки на сервер.
С другой стороны — в моей библиотеке есть реализация специальных функций (гамма, бета, функции Бесселя и Эйри) — не уверен, что найдутся js-либы, которые это умеют.
На тот момент, когда я это реализовывал, я осваивал технологию Java сервлетов — и основной целью было написать что-либо для тренировки.
На счет преимуществ:
В одном плане чисто клиентское решение будет даже лучше — отсутствие лишней нагрузки на сервер.
С другой стороны — в моей библиотеке есть реализация специальных функций (гамма, бета, функции Бесселя и Эйри) — не уверен, что найдутся js-либы, которые это умеют.
Спасибо за совет, попробую, когда свободное время будет.
Добавил в скрипт несколько строк для кэширования IP в файл.
Теперь запросы к Яндексу отправляются, только если он изменился.
Кстати, в плане скорости.
`host example.dlinkddns.com` — срабатывает за доли секунды.
`curl ifconfig.me` — выполняется 10-15 секунд
Проверил XML-ответ после запуска скрипта.
TTL в нужных записях изменился, в других остался по умолчанию.
>> Можно немного усложнить Perl-скрипт — к примеру, записывать при каждом обновлении IP-адрес в файл, считывать его в начале скрипта и отправлять запросы Яндексу только в том случае, если он изменился.

А на счет роутера — у меня на нем прошивка от Ростелекома, с возможностью просмотра интерактивного ТВ.
В сам роутер какие-либо скрипты установить нет возможности.
Белого IP нет.
К нему подключен Raspberry PI, который я использую в качестве сервера, к нему от роутера проброшена пара портов.
Он и выполняет этот скрипт.
Специально проверил, прекрасно меняется скриптом отдельно для каждой записи.
Я пробовал с CNAME записью, у меня получилось прописать ее только для поддомена, например www.example-site.ru.
Недоглядел немного.

api.yandex.ru/pdd/doc/reference/api-dns_edit_a_record.xml
ttl можно при редактировании записи в качестве параметра указать.
21600 — значение по умолчанию.
Переход по такой ссылке обновляет IP на Яндексе:
pddimp.yandex.ru/nsapi/edit_a_record.xml?token=$token&domain=$domain00&record_id=$id00&content=$ip
$domain00 — домен
$ip — IP-адрес

Можно немного усложнить Perl-скрипт — к примеру, записывать при каждом обновлении IP-адрес в файл, считывать его в начале скрипта и отправлять запросы Яндексу только в том случае, если он изменился.

Information

Rating
Does not participate
Location
Комсомольск-на-Амуре, Хабаровский край, Россия
Date of birth
Registered
Activity