LINUX.ORG.RU

Избранные сообщения winlook38

Продайте мне Хаскель

Форум — Development

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

Абстракция или костыль?

Абстракция. Есть много интересных применений и не только в хаскеле. В F# они называются computation expressions или workflows. На базе монады continuation строится механизм асинхронных вычислений (the async workflow). Ничего подобного в других языках (общего назначения) даже близко не видел. С такой легкостью задаются сложнейшие параллельные и асинхронные вычисления!

Вот можно поподробнее об этом, не применяя слова «монада» или «функтор». А простым Русским языком. То есть, допустим, я разрабатываю бухгалтескую программу, или веб-сайт, или среду разработки. И например, я так могу объяснить некоторые фичи из языков с точки зрения полезности для пользователя:

  • RAII нужна мне для того, чтобы при любой ошибке в программе мой файл отчёта закрывался, а не оставался захваченнным, что повлечёт проблемы для других пользователей.
  • Замыкания мне нужны для того, с минимальными усилиями сохранять состояние клиентского приложения во время, пока я жду ответа от веб-сервера, не создавая на каждый запрос к серверу новый объект данных.
  • Сборка мусора нужна мне для того, чтобы не заботиться об удалении каждого объекта, который я создал, а заботиться лишь о некоторых, и чтобы при этом моя программа не падала из-за ошибок обращения с кучей и не жрала лишнюю память.
  • call/cc мне нужен для того, чтобы реализовать в моей IDE инкрементную раскраску файла.
  • code walker мне нужен для того, чтобы реализовать call/cc там, где его нет, например, на лиспе.

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

Вот мне нужно объяснение в том же стиле, а что такого хорошего умеют делать монады. Я уже знаю, что монады позволяют отделить чистое от нечистого. Но они явно должны уметь что-то ещё. Так вот, что они умеют ещё? Но по сути, а не без самого слова «монады», без ссылок на сто книжек, без дзен, и без слов, что я сначала должен изучить хаскель. Т.е., без сектоводства, а чисто по делу.

Допустим, если вы знаете 5 применений монад (кроме оформления императивности), то достаточно 5 фраз.

 

den73
()

Игры для программиста или просто программируемые игры.

Форум — Games

Вспомнил тут про colobot поставил, поигрался с заданиями понравилось, решил щааа как захерачу в свободном режиме целую кучу всего, но свободный режим нихера кроме постройки ботов собиральщиков не даёт, в чём там свобода так и не понял + падучесть как на debian так и на manjaro. Ну так вот есть ныне что похожее? Не онлайновое, реалтаймовое. Где можно не воевать, а строить развивать что-то, добывать и прочее. Графика хоть 2d хоть 3d хоть какая, всё же наблюдать что происходит хочется.

Или может на основе чегото можно своё сбацать? Была и есть такая вундервафля как Blitz3D хоть конечно говно говном, но у мено плюшка в том что всё просто и всё сразу + прикрутить программирование ботов там не составит труда (составит конечно, но труд посильный на первый взгляд).

Ну, как то так выглядят хотелки.

 , ,

Dron
()

А что ты, ЛОРовец, учил в школе о WW2?

Форум — Talks

Я вот тут чё-то подсел и читаю о том, что рассказывают в разных странах. https://www.reddit.com/r/AskReddit/comments/4pfnig/germans_japanese_and_itali...

Я лично вот не помню, чтобы у нас была подчёркнута роль союзников в войне. Про русско-финскую войну тоже не особо рассказывали...

 ,

UVV
()

Ласка Докинза и эволюция текста

Форум — Talks

В одной из книг Докинза приводится пример эволюции, когда мутации в случайном наборе букв довольно быстро приводят к цитате из «Гамлета»: «Мне кажется, оно похоже на ласку.» Но это скорее пример искуственного отбора или даже креационизма, так как конечный результат известен заранее.

А пробовал ли кто-нибудь повторить эксперимент, просто задав критерии «жизнеспособности» текста? Если нет, как бы вы это реализовали?

Сгенерировать случайный текст, а затем генерировать поколения потомков-мутантов и отбирать лучшего — несложно. Главный вопрос — по каким критериям оценивать «жизнеспособность» текстов. Считать распределение символов по частотам и сравнивать с искомым языком? Несложно, но недостаточно. Прогонять через спеллчекер? Он должен как-то уметь численно оценивать неправильность текста. Какой посоветуете? Другие идеи есть? Есть ли свободные программы для оценки благозвучия?

Заодно можно подумать и о возможных мутациях. В оригинальной «ласке» брали строку постоянной длины и только заменяли символы. Но ведь можно и добавлять-убирать символы, и перемещать куски текста.

А ещё можно не сразу убивать всех, кроме лучшего, а оставлять несколько лучших, но это уже на потом...

 ,

question4
()

Опрос: что бы такое запилить, чтобы там было concurrency

Форум — Development

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

Есть какие-нибудь идеи, что это может быть?
Желательно так, чтобы это еще и имело некую иллюзию смысла, потому что пилить совсем уж бессмысленную фигню будет муторно.

Цель: разобраться как в Java работает concurrency. Позадрачивать низкоуровневый перфоманс и байтоёбство. Как сказал один хороший человек - «писать код, много кода. Писать тесты, много тестов. Читать спеку до посинения, и труды, которые эту спеку интерпретируют».

Проблема в том, что в java web мире concurrency почти не встречается, а все проблемы с concurrency обычно решаются его решительным выпиливанием. Поэтому чтобы прошарить в теме недостаточно просто прийти на работу и собрать хлебальником все грабли - у нас их просто нет. А надо наскрести!

Что подскажет хайвмайнд?
С меня как всегда - ничего :)
Спасибо

 , ,

stevejobs
()

Облачные вычисления в науке и воркшоп по биоинформатике

Форум — Science & Engineering

Привет ЛОР!

Мы с товарищами из FutureBiotech решили тут делать научпоп в формате стримов, посвященных всему, что связано с современной биологией: открытия, лекарства, технологии. Это такие апгрейженные онлайн-трансляции, где мы очень внимательно читаем комментарии в чатах и отвечаем на вопросы зрителей. Форматы бывают достаточно разные - стримы прямо из лабораторий, интервью с людьми «в теме», трансляции интересных мероприятий из области.

В этот раз мы стримим лекцию и воркшоп по биоинформатике:

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

Сегодня в об этом расскажет обворожительная Анна Костикова, PhD в области вычислительной биологии и сравнительной геномики, University of Lausanne, Switzerland. В вводной лекции она раскроет роль облачных вычислений в биоинформатике, а в ходе воршкопа каждый сможет самостоятельно попробовать что это такое - использовать топовые научные инструменты для анализа геномов бактерий.

Ждем вас в физическом воплощении в Ключе или в 19:30 на наших канал на SC2TV и YouTube.

P.S. Записи прошлых стримов можно посмотреть на YouTube.

P.P.S. И да, смотреть можно в HTML5 а для стриминга а используется опенсорсный OBS Studio иногда даже и на онтопике.

 , , ,

silw
()

let сохраняет значения между вызовами функции

Форум — Development

Решаю задания из «Gentle introduction to symbolic computation», там на 369 странице просят написать в итеративном стиле подсчет нуклеотидов в строке. Проще говоря, количество символов найти.

Набросал такой код:

(defun count-bases (strand)
  (let ((counts '((a . 0) (t . 0) (c . 0) (g . 0))))
    (dolist (e strand counts)
      (cond ((atom e) (incf (cdr (assoc e counts))))
            (t (incf (cdr (assoc (car e) counts)))
               (incf (cdr (assoc (cadr e) counts))))))))

Получилось в принципе похоже на код из ответов в конце книжки, только покороче:

(defun count-bases (dna)
  (let ((acnt 0) (tcnt 0) (gcnt 0) (ccnt 0))
    (labels ((count-one-base (base)
                             (cond ((equal base ’a) (incf acnt))
                                   ((equal base ’t) (incf tcnt))
                                   ((equal base ’g) (incf gcnt))
                                   ((equal base ’c) (incf ccnt)))))
      (dolist (element dna)
        (cond ((atom element) (count-one-base element))
              (t (count-one-base (first element))
                 (count-one-base (second element)))))
      (list (list ’a acnt)
            (list ’t tcnt)
            (list ’g gcnt)
            (list ’c ccnt)))))

Мой вариант работает как-то странно:

* (COUNT-BASES NIL)
((A . 0) (T . 0) (C . 0) (G . 0))
* (COUNT-BASES '(A G T A C T C T))
((A . 2) (T . 3) (C . 2) (G . 1))
* (COUNT-BASES '((A T) (T A) (C G) (G C)))
((A . 4) (T . 5) (C . 4) (G . 3))
* (COUNT-BASES (MAKE-DOUBLE '(A T G C)))
((A . 6) (T . 7) (C . 6) (G . 5))

Значения в cdr-частях переменной counts аккумулируются, хотя я ожидаю что они должны быть новые при каждом вызове let. Почему так происходит? Это особенность реализации (компиляю в sbcl)?

 

poe
()

Хочу сделать свой ЯП

Форум — Talks

В общем пришла идея для повышения скила написать свой яп, основные особенности которого будут:

  • data class как в kotlin;
  • multimethod как в clojure;
  • синтаксис как в python;
  • модули как в python;
  • pre и post проверки как в clojure;
  • статическая типизация ближе к ml;
  • не lisp;
  • макросы на уровне ast;
  • threading/pipe оператор как в ml;
  • pattern matching как в scala;
  • null safety как в kotlin.

Пример кода:

from species import Bug

let Animal = class (name: String, age: Int):
    pre (name, age):
        name != "" and 0 <= age < 100

let sayName = method (animal: T) -> String:
    type(T)
sayName Animal (animal):
    pre (animal):
        animal.age > 10
    post (result):
        result |> length < 100
        
    "My name is ${animal.name}"
sayName Bug (bug):
    "Nope!"

let cow = Animal("Emma", 26)
sayName(cow) => "My name is Emma"

let bug = Bug("Jimmy")
sayName(bug) => "Nope!"

let test = method (x: Int, y: Int) -> Int:
    x > y
test true (x, y):
    x + y
test false (x, y):
    x - y
    
test(10, 20) => -10
test(20, 10) => 30
l
let fn = (a: Int, b: Int) -> Int:
    a * b
    
fn(2, 3) => 6

И я столкнулся с отсутствием нужных знаний. Кто что посоветует почитать и посмотреть по этой теме?

 , ,

holuiitipun
()

Только начинаю изучать Язык Си...

Форум — Development

В общем начал изучать C по книге K&R. В общем задача вывести символы ввода в выходной поток. Для себя немного модифицировал задачу, чтобы при выводе символы проверялись на == ';', и если условие совпадает, то сделать перевод строки. В общем то работает, но блин на выходе вместо содержимого файла пишет кучу цифр. Вот код:

#include <stdio.h>

main ()
{
    int c;

    while ((c = getchar()) != EOF)
	if (c == ';')
            printf ("%d\n", c);
        else
	    printf ("%d", c);
}

 ,

soulectro
()

Вышла новая книга «Full Stack Lisp»

Форум — Development

«Build and deploy modern Lisp applications» — разработка и развертывание современных веб приложений на Common Lisp.

Подробности: https://leanpub.com/fullstacklisp

 , , ,

Oxdeadbeef
()

Есть ли бенчмарк для http, который покажет полное время загрузки?

Форум — Admin

Доброго времени суток

Есть ли бенчмарк/stress test для веб-сервера, который может показать время полной загрузки страницы, включая css, картинки и прочие js? Понятно что время рендера считать не обязательно, достаточно вытянуть с сервера все эти данные.

 ,

router
()

Вопрос о трейдерских алгоритмах

Форум — Development

Накидайте годной литературы об алгоритмах и подходах к трейдингу ценными бумагами на биржах. Блумберг API, вот это вот все. Так же приветствуются анонимусы, занимающиеся сабжем и советы по реализации: языки / платформы итп.

 , , ,

unt1tled
()

Какие книги по С(89) нужно прочесть после K&R?

Форум — Development

Изучил си по книге K&R(2-ое издание), писал мелкие программки. Понравилось. Какую литературу/статьи по C читать дальше?

P.S. Нужен ли C-шнику C++?

 ,

Deleted
()

Посоветуйте книг по нейронным сетям

Форум — Development

При чем тех, которые можно купить в бумажном виде. Я не очень люблю читать много текста с монитора (в частности, из за монитора). Интересуют все существующие виды сетей. Если книга будет с практической составляющей - вообще отлично. Так же, хотелось бы рассмотреть все современные способы организации и обучения сетей.

UPD: сам читал всего одну книгу - Жданов А.А. «Автономный искусственный интеллект». Еще смотрел очень интересный курс лекций про паттерно-волновую теорию интеллекта, но там ваще жесть. Видимо кроме автора ни кто не понимает, как она работает.

 ,

Deleted
()

curl wttr.in, ifcfg.me, whatthecommit.com — ещё примеры есть? :)

Форум — Talks

Начал коллекционировать curl-сайты: http://www.wrk.ru/tech/forum/2016/02/t92589--cli-internet-vsyakie-poleznye-ni...

Есть ещё что-то подобное?

 , , ,

KRoN73
()

Программа по математике

Форум — Talks

Где можно найти приличную программу по математике, для того что бы заполнить пробелы по школьной программе?

Язык Русский или Английский.

 

shuck
()

Вышел Racket 6.4

Новости — Open Source
Группа Open Source

Вышла версия 6.4 языка Racket — языка программирования общего назначения из семейства Lisp/Scheme.

  • Исправлена уязвимость в Web-сервере. Данная уязвимость позволяла получить доступ к любому файлу, доступному Web-серверу для чтения (подробности).
  • Новый инкрементальный сборщик мусора уменьшил паузы, что особенно важно в играх и анимациях.
  • Скроллинг в DrRacket стал быстрее.
  • Добавлен болгарский перевод в DrRacket.
  • Каталог пакетов теперь имеет адрес HTTPS по умолчанию, а не HTTP.
  • Документация теперь может определять свои собственные категории для главной страницы руководства с использованием строк.
  • Шпаргалка по Racket включена в основной дистрибутив.
  • Контракт, который Typed Racket генерирует для типа Any, стал более либеральным, что позволяет большему числу программ как с использованием системы типов, так и без неё работать без ошибок контракта.
  • Redex поддерживает спецификацию связей (binding specifications).
  • Все функции pict принимают pict-convertible, что обеспечивает прозрачное взаимодействие между pict и библиотеками типа 2htdp/image.
  • Команды raco profile и raco contract-profile предоставляют лёгкий доступ к инструментарию профилирования без необходимости изменять сами программы.

>>> Подробности

 ,

anonymous
()

Fallout 1, 2; New Vegas vs Fallout 3

Форум — Games

Прохожу очередной второй раз поделие под названием фаллосут 3, прошёл наверное все квесты, кучу времени убил на игру.

Мой путь в игре, в этот раз проходил не самым добрым путём:

Уничтожил мегатонну - убил мистера Темпенни и Бёрка - прошёл основной сюжет - вынес весь форт Индепенсес, застрелил Мойру Браун (после взрыва мегатонны превратилась в уродливового гуля, так страшно было на неё смотреть, что не нашёл идеи более подходящей чем устроить ей R.I.P.) - в Питте выступил за сторону рабов, наслал троглодитов в верхний город.

Игра настолько скучная аж невозможно, такое же говно как и Skyrim - прокачал дохрена навыков - убиваешь всех и каждого (в фолле это правда меньше выражено чем в скуриме), такая же хрень как в Skyrim - просто жутко не хватает квестов, левелапаться можно, но без квестов не интересно, DLC - скучная лажа, какие-то инопланетяне да абдули, тупость.

В общем, к чему я приписал другие фаллоуты, четвёртый фолл не предлагать (думаю априори говно, у меня друг в него всего три дня поиграл и забил), нужна нормальная RPG. Подойдут ли первые фаллоуты и нью вегас (в вегас поиграл немного, он понравился, но пришлось килять винду и переустанавливать, сейвы не сохранились вместе с фоллом, качать заново лень)?

 

CPU-550
()

Алгебраическое описание физики

Форум — Talks

Какой алгебраической хренью можно описать ньютоновскую физику? Очевидно, полностью описать. Комбинаторы, клеточные автоматы? Или не ньютоновскую, а какую-нибудь выдуманную.

ссылки на работы с таким - было бы хорошо.

 ,

panzerito
()

Покидайте онлайн курсов по machine learning, терверу, статистике data science

Форум — Talks

Всем добра!
Ильич сказал учиться, но не сказал у кого. На курсере и edx навалом курсов по данным поисковым запросам, но процентов 70 из них, судя по всему, нацелены на девятиклассников. Знает кто хорошие, годные, высокоматановые курсы? Хочется чтоб рассказали хорошенько про нейронные сети, hidden markov models, методы Монте-Карло, байесовские сети и прочие подобные вкусные штуки.

 , , , ,

LIKAN
()