2021-12-29 14:26:26—2021-12-29 14:26:26
"Сахаров считает, что важную роль сыграл тот факт, что Шиханович незадолго до ареста подобрал на улице бездомного пса, и их фотография попала в западные газеты. По виду Шихановича с его новым другом можно было определить, что человек этот нормален, замечает Сахаров." https://snob.ru/selected/entry/40217/
(* напрашивается шутка про фото Шихановича и ПСА)
Книга: "Группы, Кольца, Решетки". Шиханович Ю.А.. У Шихановича, надо отметить, свой подход к алгебраическим структурам и как их вводить. Существенно отличается от того, как это обычно бывает в книгах по Теории Групп.
Ходят мысли, сделать небольшой сервис на сайте. Браузерный. Где можно собирать из необходимых свойств алгебраические структуры. Например: N, Z — множества, носители группойда. Операция -- умножение, сложение Свойства операций:
ассоциативность
Конечные группойды: обратим слева, ттт, когда он сократим справа обратим справа, ттт, когда он сократим слева
[Ссылка на таблицу со свойствами (google drive)] (https://docs.google.com/spreadsheets/d/1hPvCWIBFSde3Dv104dv09ZqzOOwSyyeXYMQ_uRaHNKo/edit#gid=0)
Решил посмотреть, что есть по алгебраическим структурам в javascript.
Оказалось есть, и вполне серьезно: http://www.tomharding.me/fantasy-land/
И в итоге, чтобы вообще вспомнить про js и затем функциональный js, намерен прошерстить классику
Зачем:
Любопытно: https://reasonml.github.io/ru
В итоге мысли с Шихановича быстро мигрировали в изучение функционального программирования js.
Когнитивная нагрузка (Cognitive load) Вопрос: Как увеличить (расширить) рабочую память?
зависимость системы от своего состояния — это один из самых важных компонентов её сложности (глава 3 )
Побочный эффект — это изменение состояния системы или наблюдаемое взаимодействие с окружающим миром, происходящее во время вычисления результата.
есть вещи, без которых легко обходишься только до тех пор, пока не приобретешь их. (про каррирование)
Тут у меня возникла идея, в качестве тренировки начать переписывать движок pathway в декларативном стиле. Начинаю чувствовать мощь и изящность функционального подхода, пока очень поверхностно, но уже впечатляет. Особенно радует, что тут можно скрещивать два занятия: изучения математики (алгебры) и программирования. Причем навыки программирования вполне можно ипользовать в инженерии и бытовых проектах, т.е. совсем прикладных. Начал читать 6 главу И там как раз подходящие примеры для начала и как раз прощупаю ощущения на боевом примере.
Провозился очень долго с проблемой
"заблокирован Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin» "
Без проблем забирается .jsonp по ссылки стандартным методом jquery: $.ajax
Но никак не получалось преодолеть данную ошибку методомgetJSON()
.
Думал дело в заголовках: прописал везде явные доступы к хедерам: напрямую в файле, в настройках апача и в .htaccess
. Но не помогло. Пробовал в ссылках дописывать &jsoncallback=?
-- но видимо такой у меня не простой источник .json. Потерял много времени, и это беспокоит, по этому пока решил не лезть разбираться как все в движке устроено, а решил использовать $.ajax
. Просто не могу сейчас задерживаться на этой задаче долго.
https://query.wikidata.org/sparql?query=SELECT ?item ?itemLabel WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } ?item wdt:P527 wd:' . $q . '. } LIMIT 100&format=json
Для ссылок не забыть про замену пробелов:
$queryURL = str_replace(' ', '%20', 'https://query.wikidata.org/sparql?query=' . $s . '&format=json');
Далее полученный URL забираю через CURL:
function getUrlContent($url) { fopen("cookies.txt", "w"); $parts = parse_url($url); $host = $parts['host']; $ch = curl_init(); $header = array('GET /1575051 HTTP/1.1', "Host: {$host}", 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language:en-US,en;q=0.8', 'Cache-Control:max-age=0', 'Connection:keep-alive', 'Host:adfoc.us', 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36', ); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); curl_setopt($ch, CURLOPT_COOKIESESSION, true); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); return $result; }
Не забыл конвертировать в json: json_decode($data);
Возможно придется сделать обновление, но думаю интересующие меня claims присутствуют
$s = 'SELECT ?item ?itemLabel ?value ?valueLabel WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } ?item wdt:P345 "' . $q . '". } LIMIT 10'; $queryURL = str_replace(' ', '%20', 'https://query.wikidata.org/sparql?query=' . $s . '&format=json');
$s = 'SELECT ?item ?itemLabel WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } ?item wdt:P737 wd:' . $q . '. } LIMIT 100'; $queryURL = str_replace(' ', '%20', 'https://query.wikidata.org/sparql?query=' . $s . '&format=json');
там есть около 7 500 00 тайтлов и другой инфы, пока можно на тесты вспомнить (тоже более 2-х лет назад, ничего не помню что это)
Остальное: разные вспомогательные скрипты, типа загрузки .csv в БД и другие.
Не могу вспомнить, откуда у меня взялась таблица paths, где содержится 36 457 548 записей. Это невероятно, но кажется это все пути между узлами, до длины в 5. Неужели я писал такой скрипт, совсем не помню, но это было в ноябре 2019 года, там оказывается я умудрился добавить таймстампы. Это полезные данные, как раз мне на эксперименты для алгоритмам на графах.
Еще таблицы с несколькими миллионами сновидений, тут можно навести мосты, но будет через пока четкое совпадение по имени
in progress
Все записи