kika: (Default)
1. К разговору о http://kika.livejournal.com/151518.html?thread=2137310#t2137310
Простенький, но иллюстративный примерчик
https://gist.github.com/kofno/f5f34f03895e74727bc9

2. Надо написать некий сервис. Полночи читал что у мироздания есть на эту тему, нашел несколько SaaS сервисов и неплохую библиотеку от ASF (ну и гору плохих очевидно). Похоже что SaaSом обойтись не удастся, у них чуть другой юзкейз, поэтому придется писать на библиотеке, но должно быть несложно. Библиотека, очевидно (это ж ASF), на Яве, следовательно писать надо на Яве. Ну ок, с утра стою в душе и думаю - Clojure или Scala? Пытаюсь сообразить насколько придется освежать когда-то прочитанное. И только сев за компьютер до меня дошло что собственно можно же на Яве-то и написать!11 При этом на Скале я не писал вообще никогда ничего, на Кложе писал всякую муру подзаборную, чисто понять что за язык, а на Яве я как раз писал (ну, правда лет примерно 10-12 назад, ээээ).
kika: (Default)
Читая обсуждение http://ivan-gandhi.livejournal.com/3329246.html и ответы на мой коммент, я вдруг понял почему так тяжело идет. У меня нет никаких проблем барабанить на Erlang'е например, а Purescript, Elm или их идейный отэц Haskell (ну или ML) идет с гораздо большим трудом.

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

Потом как-то программирование на ассемблере превратилось в программирование на С, но компиляторы для этих микропроцессоров были таковы, что регулярно генерировали последовательности типа

mov bx, ax
mov dx, ax
mov bx, dx
mov ax, bx

Потому что так у него оптимизатор работает, видите ли. Ну или еще почему. И надо было компилировать в ассемблерный листинг, читать его и руками чистить от этого мусора, потому что иначе в ПЗУ не лезло.

А в универе учили как на Фортране ряды Тейлора вычислять, что тоже не прибавляло.

В результате я всегда когда программирую или читаю программу, симулирую в голове стековую-регистровую машину и "исполняю" на ней программу. И какие-нибудь list comprehensions, лямбды или хвостовые рекурсии отлично на такой голове исполняются. А вот стрелки и монады - почему-то нет.

Нужна книжка или статья "Функциональное программирование для недохардверных недоинженеров". Реквестирую у мироздания.
kika: (Default)
Заголовок для привлечения внимания, дешевая желтизна.

Есть ли в природе какие-нибудь разумные средства программирования функционально для яблофона? От вида JSKit у меня зубы начинают болеть. Собственно вопрос такой - если есть некий развесистый алгоритм, спрототипированный на ерланге, и хочется без особых проблем затолкать его в виде рантайма для некоей программки для айфона, то что выгоднее всего сделать? Затащить beam на телефон, боюсь, нереально, придется переписать. Имхо, лучше переписать с одного ФП на другой, чем вручную скомпилировать в С или ObjC. Невручную - можно :-)
kika: (Default)
Ищут программистов на трех метрах колючей проволоки Clojure
http://xfyre.livejournal.com/855802.html

Options дают только после финансирования, что вообще само по себе очень странно. Либо люди еще не распихали доли по карманам, а займутся этим только после стабилизации, что чуть чаще чем всегда приводит к гнилому базару (при этом компания может и выжить, некоторые понимают о чем/ком я), либо почему-то стараются дать поменьше. Может быть конечно, там сейчас платят из караманных денег сногсшибательные зарплаты, а после получения финансирования они будут резко снижены. Но как-то эта теория кажется мне сомнительной. [livejournal.com profile] xfyre care to comment?
kika: (Default)
Имхо, довольно распространенная задача. Скажем у нас есть множество структур, описывающих некую жызненную ситуацию, скажем мониторинг хостов в сети. Структура содержит имя хоста, адрес, всякие прочие фактически иммутабельные параметры плюс некое количество изменяющихся параметров мониторинга, время пинга, скорость передачи данных, количество HTTP ошибок и теде и тепе. Структуры хранятся, допустим для простоты, в хеше по имени хоста. Все отлично, софтина работает, обмеряет хосты, апдейтит табличку с записями и жизнь прекрасна. Теперь нам надо сделать запросы снаружи - типа а покажи-ка мне список хостов, отсортированных по пингу. Допустим, хостов у нас ровно один газиллион, поэтому сортировать на каждый запрос накладно.
В традиционной культуре мы строим сбалансированные деревья с указателями на структуры (а в структурах указатели на деревья) и организуем синхронное плавание.
А как в функциональной культуре решается такая задача? Pointer trickery тут какбе немного недоступна.

Вкратце: есть структура -record(host, {host_id, speed = 0}). и из нее ETS таблица из одного газиллиона записей. Надо быстро отдавать список хостов, отсортированный по speed. Можно наверное положить это в Мнезию и понадеяться на ее ORDER BY, а если без Мнезии, ручками?
kika: (Default)
ВНЕЗАПНО из мейллиста



Call Method MultiplierPercent SlowdownCalls Per Second
apply(?MODULE, foo, [])1.00x 0%96,089,747.8
?MODULE:foo()1.01x1%94,809,477.4
foo()1.09x9%88,485,052.9
fun() -> ok end()3.15x215%30,489,431.6
apply(foo, [])3.50x250%27,481,044.5
Module:Fun() 5.22x422%18,392,358.4


Я все понимаю, но две формы apply() ??

Stop erlang

Nov. 3rd, 2009 06:26 pm
kika: (Default)
А за что erlang надо stop?

F(1,2,3,4)

Sep. 21st, 2009 12:39 pm
kika: (Default)
Существует ли функциональный язык, который:

  1. Поддерживает (своими тредами) SMP и не сосет
  2. Реализация 64-х битной компиляции/интерпретации готова для промышленного использования
  3. Имеет эффективный кодогенератор
  4. Равнодоступен как минимум на виндах, маке и линуксе

?
kika: (Default)
Мокрый косячок из унитаза наконец подсох и раскурился. За выходные написал несколько сот (единицы) строк на эрланге, не собирая целиком, а только проверяя в шелле отдельные функции из отдельных модулей. Утром наконец собрал всю систему целиком и на отладку ушло минут 40. Буквально, минут 15 потратил на синтаксические ошибки тут и там, и остальное - на забытый впопыхах клей тоже тут и там.
Собственно, о subj - поскольку я писал несколькими длинными очередями, не отвлекаясь на интеграцию и тестирование, то хорошо помню в какие моменты меня на что-то отвлекали. И собственно всплески синтаксических ошибок и пропущенные капли клея приходятся ровно на эти места. А когда я отвлекался почитать engadget или почту - нет. То есть почитать башорг час не стоит ничего, а ужин - это сразу баг.

Profile

kika: (Default)
kika

January 2017

S M T W T F S
1234567
89 1011121314
151617181920 21
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 27th, 2017 10:47 pm
Powered by Dreamwidth Studios