Category: наука

Category was added automatically. Read all entries about "наука".

404

Принципиальное различие между теоретическим и практическим знанием

Я сейчас играюсь с Rust'ом (выдалось несколько свободных часов), и я их потратил не на заумные трейты, а на самое примитивное — работу с mod/use/lib.rs, В процессе я получил очень мало новых знаний (теоретически я всё это читал), но они получили невероятное подкрепление от практики. (Сам феномен всем понятен — не буду слишком распространяться).

В чём различие между теоретическим и практическим знанием? Допустим, мы имем 100% доверие к источнику знаний, так что мы не можем объявить теорию менее достоверной, чем практика.

У меня есть ощущение, что практика обладает большим разъяснительным потенциалом, потому что практика задаёт новую систему базовых понятий. При чтении любой теории, понятия с сотой страницы строятся на базе понятий с 95-ой страницы, те ссылаются на 50ую страницу и т.д., пока вторая страница не ссылается на первую, а первая страница любой теории обычно либо ссылается на другие теории, либо просто немного разговаривает бытовым языком, аппелируя к бытовому опыту читателя. Т.е. к той самой практике. Соответстственно, знакомство с практикой, это формирование нового бытового опыта. Из которого получается развитие в два направления: анализ (почему так? Как это работает?) и синтез (из фигулины А и фигулины Б очевидно вытекает В. Обобщим В на кучу разных комбинаций двух фигулин...).

У теории, для того, чтобы дойти до этого места, нужно интернализировать всё то, что для «изучения от практики» является анализом.

Collapse )
404

CS для итераторов

Я обнаружил себя в онтологическом болоте.

У меня есть код, который использует (consume) итератор в список, а потом применяет функцию к каждому элементу списка. Я пытался найти метод отложить (make lazy) процесс исчерпания итератор до начала использования значений из списка. У меня не получается, потому что код использует список.

... И моя проблема не тут.

Я не могу найти правильного описания свойств того, что происходит. Какое свойство теряет мой итератор (который создаётся генератором) в момент, когда к нему применяют fold? Что это такое? Что такое laziness с точки зрения теории типов?

404

теоретическая проблема в тестировании мониторинга

Мониторинги становятся всё более сложными и всё больше напоминают программу, а не декларативный конфиг. Как любая программа, они требуют тестирования. Всё осложняется тем, что штатный режим мониторинга - сидеть в углу и молчать, потому что всё хорошо, а все нетривиальные ветки требуют аварий или проблем, что сильно осложняет процесс тестирования.

Но это всё ерунда, и теоретически решается моками проблем (фальшивые сообщения о проблемах или записанные последовательности метрик с признаками проблемы).

А вот следующая задача очень сложна и решения её я пока придумать не могу. Многие проверки мониторинга являются time-dependent, т.е. требуют, чтобы проходило сколько-то времени. "не отвечает больше 3 минут", "повторное оповещение спустя 12 часов" и т.д.

И как это тестировать? У нас многосерверная конфигурация и я не могу просто "замокать время". Ждать 12 часов одного теста - тоже не выход.

Что делать-то? Пока в голове смутно крутится идея о хакнутом qemu с "ускорением всего" - но и в таком виде оно будет медленно (и принесёт немного теории относительности в системное администрирование).

Все идеи welcome here. Задача: проверить алгоритм, имеющий в своём составе задержку, за время, не зависящее от величины этой задержки и значительно быстрее.
404

научно-дистопическое

Великий Барьер состоит в том, что каждая цивилизация в какой-то момент увлекается симметриями. Чем больше она увлекается симметриями, тем более и более их научное знание начинает определяеться эстетичностью симметрий, что неизбежно приводит к уходу научного знания в область гармонии и красоты. Игнорирование нарастающих противоречий между гармонией и реальностью приводит к вырождению цивилизации и переходу к варварству, после чего цикл повторяется снова.

Наиболее страшной силой становится string theory вместе с Weyl symmetry. Её открытие требует несколько тысячелетий, после чего несколько тысячелетий длится эпоха погони за симметриями, после чего приходит крах цивилизации. До этого происходит много меньших циклов, приводящих к замедлению, но только string theory обладает достаточной эстетической силой, чтобы разрушить цивилизацию до пре-каменного века.
404

греческий

Чтобы правильно понять, как греческий звучит для посторннего уха, скажу только одно «Трапеза метафора», что означает «банковский перевод». Постоянный взрыв научной лексики или высокого стиля в бытовой речи.

404

Фрагменты винжевой постсингулярности

Кто помнит про программистов-археологов.

Оно уже началось.

Дано: IPMI супермикры. Внезапно она выдаёт в выводе ipmitool chassis status вот такое:

System Power : on
Power Overload : false
Power Interlock : active
Main Power Fault : false
Power Control Fault : false
Power Restore Policy : always-off
Last Power Event : ac-failed
Chassis Intrusion : inactive
Front-Panel Lockout : inactive
Drive Fault : false
Cooling/Fan Fault : false
Front Panel Control : none

На жирную строчку мониторинг ругается. Интернеты молчат. Написал в саппорт супермикры. Долго мучали душу вопросами про точную модель и партнамберы, потом сказали "обнови IPMI". Обновил (1.3->3.x), прошло. Но я к ним прицепился с вопросом "а чо это было и что эта строчка означает вообще?" и получаю ответ:

"Our HQ is indicating this is an unknown feature which is not used by Supermicro products".

Unknown feature. В коде. Смысла которого не понимают те, кто его используют.

joke mode: Открыта вакансия программиста-археолога. Требуется знание парадигм разработки второй половины XX века, опыт чтения диалектов машинного кода времён династии Си.
404

SAS expander



Моя старая теория, насчёт того, что IO затыкается из-за рейса в используемом порту / состоянии конечного автомата, не подтверждается. Зато даёт куда более простое объяснение:

SAS expander делают message-bases switching с кооперативной "многозадачностью". Это означает, что если по какой-то причине диск не хочет завершать передачу сообщения, то следующий (любой из дисков в корзине) не сможет продолжить "общаться".

(Целиком: http://www.scsita.org/library/presentations/SAS_Architecture_Overview.pdf)

А главное, и ещё более серьёзное: sas-диски не панацея. Только direct connect. Либо готовность на уровне софта к тому, что диски будут вылетать полками.
404

Конденсатор мёбиуса

Заинтересовался ёмкостью конденсатора, собранного из проводника в виде ленты мёбиуса, на которую нанесли диэлектрик, а потом ещё слой металлического проводника (не путать с "тремя склеенными лентами, которые перевернули"). Пошёл в гугль.

Такого объёма фричества я давно не видел.

Вот, вчитайтесь: http://kxk.ru/energy/v17_682565_8.php
404

онгоинг knights of Sidonia (2)

Пожалуй, таки в вотч-лист. То есть имеем полное CG с шейдерами, включая морды лиц, но весьма и весьма достойный сеттинг. Оставляя в стороне органические тентакли с целью пожрать человека, в остальном оно более-менее интересно.

Включая аварийное принудительное развитие фотосинтеза у людей в условиях пищевого дефицита. Причём без экстрима, то есть как вспомогательное средство.

То есть я ничего такого от них не ожидаю, но смотреть можно.
404

структурированное знание

Всё-таки получение структурированного знания - одно из самых приятных событий в жизни человека.

Когда несколько разрозненных кусков "хер знает как работает и почему" стройно срастаются в единое понимание, простую и ясную модель, из которой естественным образом выводятся самые странные свойства (которые раньше заставляли грызть зубы от нелогичности и неожиданности) - в этот момент ощущаешь реальный кайф (мозг обнаруживает, что больше не нужно помнить 100500 мелочей в виде хаоса и можно построить изящную компактную нейтронную сеть?).

Только что проебался примерно два дня (и это уже третий заход был), пытаясь понять, почему neutron не работает.

Симптомы: трафик из виртуалки выходит, между виртуалками на хосте ходит, за пределы хоста - нет. Глазами видно, что трафик выходит из виртуалки, но gre-трафика не видно. При этом гре-интерфейсы внутри openvswitch создаются, но там нет никакого трафика.

Симптомы второго порядка: ovs-ofctl dump-flows br-tun показывает, что у table 21 только drop, без полагающегося strip_vlan, set_segment, output.

После того, как я раза три все конфиги новы и нейтрона вылизал вдоль и вглубь, после вычитывания сырцов и отладочного лога ovs-agent'а (адское развлечение), я нашёл причину: сеть помечена как local. А должна быть gre.

Это в базе. Видно даже руками:

neutron net-show d1ae41a1-502a-4b30-a9ff-61c00cf51df1
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| id                        | d1ae41a1-502a-4b30-a9ff-61c00cf51df1 |
| name                      | internal                             |
| provider:network_type     | local                                |
| provider:physical_network |                                      |
| provider:segmentation_id  |                                      |
| router:external           | False                                |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   | 91a7ec38-bcc0-4ae7-8f83-06cec509718d |
| tenant_id                 | 3458268fc2ea455f84c5ef1eeaeb4849     |
+---------------------------+--------------------------------------+


После пересоздания сети, она начинает работать. Легко понять почему:

neutron net-show 51027d33-af34-43d4-a123-f24edef88b9a
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| id                        | 51027d33-af34-43d4-a123-f24edef88b9a |
| name                      | internal                             |
| provider:network_type     | gre                                  |
| provider:physical_network |                                      |
| provider:segmentation_id  | 1                                    |
| router:external           | False                                |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tenant_id                 | 3458268fc2ea455f84c5ef1eeaeb4849     |
+---------------------------+--------------------------------------+


Почему же получилась local network? Потому что на момент создания сети не был отконфигурирован должным образом (тут надо уточнить что именно надо конфигурировать) neutron-server. А потом конфиг нормализовали, а сеть осталась такой же, и никакие ребуты не помогают.