Serguey Zefirov пишет

Я в шоке. Никогда бы не подумал, что Serguey Zefirov такое может написать:

https://thesz.livejournal.com/1517138.html

Ах ты ж...

GHCi, version 8.4.4: http://www.haskell.org/ghc/ :? for help
Loaded package environment from /home/sz/work/thunders/hschain/.ghc.environment.x86_64-linux-8.4.4
Prelude> let f m1 m2 r = m1 * m2 / r/r
Prelude> f 3.00348959632e-6 1.23000383e-8 384402
2.500122672394928e-25
Prelude> f 1 1.23000383e-8 (149597870.7 - 384402)
5.524467348272397e-25
Prelude> f 1 1.23000383e-8 (149597870.7)
5.496112828268262e-25



Веса в массах Солнца, расстояния в километрах. Получается, что сила притяжения Луны Солнцем вдвое выше, чем сила притяжения Луны Землёй.

Prelude> :q



Потом подумаю. ;)

Антена BiQuadTV

Антена BiQuadTV.
Добавил к решетке-рефлектору вертикальные боковины и соединил антену с решеткой - nec2 показал два провала в усилении.
Один появился от боковин, второй от креплений к решетке.




CM BiQuad for TV
CM http://3g-aerial.biz/antenna-kharchenko-dlya-dvb-t2
CM https://forum-t2.com/viewtopic.php?f=114&t=1628
CM https://goo.gl/fRI5bF
CE
GW 1 13 0 0.016 0      0 0.118 0.1385 0.003
GW 2 10 0 0.118 0.1385 0 0     0.2160 0.003
GX 10 010
GX 20 001
GW 100 1 0 0.016 0 0 -0.016 0 0.00097028
GW 201 10 -0.113 -0.2 -0.25  -0.113 0.2 -0.25 0.003
GW 202 10 -0.113 -0.2 -0.216666666666667  -0.113 0.2 -0.216666666666667 0.003
GW 203 10 -0.113 -0.2 -0.183333333333333  -0.113 0.2 -0.183333333333333 0.003
GW 204 10 -0.113 -0.2 -0.15  -0.113 0.2 -0.15 0.003
GW 205 10 -0.113 -0.2 -0.116666666666667  -0.113 0.2 -0.116666666666667 0.003
GW 206 10 -0.113 -0.2 -0.0833333333333333  -0.113 0.2 -0.0833333333333333 0.003
GW 207 10 -0.113 -0.2 -0.05  -0.113 0.2 -0.05 0.003
GW 208 10 -0.113 -0.2 -0.0166666666666667  -0.113 0.2 -0.0166666666666667 0.003
GW 209 10 -0.113 -0.2 0.0166666666666667  -0.113 0.2 0.0166666666666667 0.003
GW 210 10 -0.113 -0.2 0.05  -0.113 0.2 0.05 0.003
GW 211 10 -0.113 -0.2 0.0833333333333333  -0.113 0.2 0.0833333333333333 0.003
GW 212 10 -0.113 -0.2 0.116666666666667  -0.113 0.2 0.116666666666667 0.003
GW 213 10 -0.113 -0.2 0.15  -0.113 0.2 0.15 0.003
GW 214 10 -0.113 -0.2 0.183333333333333  -0.113 0.2 0.183333333333333 0.003
GW 215 10 -0.113 -0.2 0.216666666666667  -0.113 0.2 0.216666666666667 0.003
GW 216 10 -0.113 -0.2 0.25  -0.113 0.2 0.25 0.003
GW 300 10 -0.113 0 -0.25  -0.113  0  0.25 0.003
GW 301 10  0  0 -0.214  -0.113  0 -0.214 0.003
GW 302 10  0  0  0.214  -0.113  0  0.214 0.003
GW 311 10 -0.113 -0.2 -0.25  -0.113 -0.2  0.25 0.003
GW 312 10 -0.113  0.2  0.25  -0.113  0.2 -0.25 0.003
GE 0
GN -1
EK
LD 5 0 0 0 24900000
EX 0 100 1 0 1 0
FR 0 48 0 0 474.00 8.00
RP 0 1 73 1510 90 0 1 5 0 0
EN

MLton

Вышла новая версия MLton (20180207).
Из вкусностей:
1) pure, impure, and reentrant attributes for FFI;
2) использование memmove для String.concat, Array.copy и т.п. (теперь не нужно самому делать эту оптимизацию);
3) unsafe operations for array uninitialization and raw arrays.

Haskell: ошибка в Mio...

Кажется, в Mio ("Scalable IO Manager") есть ошибка.
Mio - это IO менеджер для threaded режима в GHC 7.8 и выше.
В сервере, при превышении определенного размера данных, происходит зависание треда.
Mio считает, что писать в сокет еще нельзя, а на самом деле можно.
Проверил на GHC 7.8.[34] и 8.0.1.
В не-threaded режиме зависания нет, все работает.

А ведь считал, что основное преимущество Haskell - это "зеленые нитки" с многопроцессорностью при высокой скорости. А тут, оказывается...

Однокласница сына сильно заболела: ревматический артрит.

Однокласница сына сильно заболела: ревматический артрит.
Ее сестра просит всех о помощи - https://vk.com/id333229995
Нужен курс длительного лечения препаратом Actemra, а одна ампула его стоит около 12 тыс гривен...
5168 7572 2604 8942 (Павлусь Кристина Юрьевна) - ПриватБанк.

Haskell: почему-то замена списка пар и поиск на дата-тип и патерн-матчингом снизила скорость

Haskell не перестает удивлять меня!
Есть старый проект https://github.com/kni/redis-sharding-hs-strict.
В нем для определение типа команды используется поиск по списку пар:
https://github.com/kni/redis-sharding-hs-strict/blob/master/RedisSharding.hs#L59

Давном-давно thesz посоветовал заменить это на дата-тип.

Заменил на:
 data CmdType = 
    CmdToAll         -- На все сервера
  | CmdToOne         -- На конкретные сервер
  | CmdToMany        -- На множество серверов. CMD key1 ... keyN
  | CmdToManyValues  -- На множество серверов. CMD key1 value1 ... keyN valueN
  | CmdToManyTimeout -- На множество серверов. CMD key1 ... keyN timeout (блокирующие команды)
 
 
 cmdType "PING"             = Just CmdToAll
 cmdType "AUTH"             = Just CmdToAll
 ....

Ожидал рост производительности, но получил ухудшение на 20-25%!

Измерял при следующих условиях, и, разумеется несколько раз и разной очередности:
 cpuset -l 0 ./redis_sharding --port=8090 --nodes=127.0.0.1:8081,127.0.0.1:8082,127.0.0.1:8083,127.0.0.1:8084 +RTS -s -N1 -A10M -qa
 redis-benchmark -p 8090 -n 10000 -c 10 -q -t set,get,mset -P 10

Вот результат профилирования (при профилировании замедление меньше).

Старая версия:
 COST CENTRE                             MODULE                              %time %alloc
 throwSocketErrorIfMinus1RetryMayBlock   Network.Socket.Internal              12.2    0.5
 endOfLine                               Data.Attoparsec.ByteString.Internal  11.5    7.5
 servers_sender                          RedisSharding                        10.0   13.2

А вот - новая с data CmdType:
 COST CENTRE                             MODULE                              %time %alloc
 cmdType                                 RedisParser                          12.5   12.4
 throwSocketErrorIfMinus1RetryMayBlock   Network.Socket.Internal              11.9    0.4
 endOfLine                               Data.Attoparsec.ByteString.Internal   9.2    6.4

Почему?!

UPDATE.
Загвоздка была, в том, что cmdType, так как много строк, поместил в другой файл, а не в тот, где case cmdType cmd of

И Haskell не смог оптимизировать. Когда все слил в один - скорость вернулась!!!

Путин признал Россию агрессором

Путин в очередной раз признал Россию агрессором. Обратите внимание, как он говорит: "не позволим СДЕРЖИВАТЬ геополитические интересы России". Именно сдерживать, а не ущемлять.