← All posts tagged q

SannySanoff

А вот в Хаскеле partial application убогий:

f x y z = x + y * z;

а хочешь частично применить только x и z — и болт: изгаляйся. f1 x z y = f x y z; q = f 10 3; q 2

В kdb+ веселуха,

f:{[x;y;z]x+y*z} — определение ф-ии
var1:f[10;;3] — частичное применение, параметры разделяются ";".
(Ну а если последние параметры надо оставить висяком, то и точки с запятыми тоже не нужны).
var1[1] — дает 13
var1[2] — дает 16

короче, пока я не узнал, все ломал голову, где же функция flip.

А вот на тебе, на лопате, не подавись!

SannySanoff

То, что феминистки называют микро-агрессиями, остальные из нас здоровые взрослые называют жизнью... Концепция микро-агрессий побуждает женщин думать, что всё, что есть в мире, — оно о них. Это порождает невероятный уровень нарциссизма, солипсизма и конкретных заблуждений ... Феминизм поощряет в женщинах убеждения, что у них такие же способности рассуждать и справляться с ситуациями, как у малышей. Нет уж, спасибо.

(речь про американских рад.феминисток, которые, как известно, на переднем фронте борьбы за женщин).

via goodreads.com

SannySanoff
q

Традиция с точки зрения эволюции человеческих социумов — есть глобальная защита от дурака. При этом дурака деятельного и претендующего на свою “разумность”. Она является продуктом тысячелетий проб и ошибок и написана фактически “кровью пешеходов на асфальте” — социумов, что выстрадали ее в ходе бесконечной борьбы за оптимизацию с окружающей средой.
Традицию, таким образом, бесполезно подвергать «рациональной критике» просто потому, что никакой человеческий разум все функции той или иной традиции заведомо охватить не способен, и как следствие, подобная критика неизбежно будет не более чем интеллектуальной спекуляцией, основанной на нескольких маловажных моментах.

SannySanoff

– Не говори так про Аманду. Да, у нее были перегибы – но это великий человек. В последней главе «Consenting to penetration», чтобы ты знал, содержится самый глубокий в истории феминизма инсайт относительно подлинных масштабов патриархального глумления над женщиной.– И в чем же он? – спросил я.– В том, что патриархальный белый мужчина[...] разрешает женщине феминизм исключительно для того, чтобы посмеяться над её идиотизмом и усилить свое наслаждение…
(с) пелевин

SannySanoff

Вот все пишут, "мы будем внедрять blockchain технологии на производстве и в быту".

Это конечно хорошо. Но ведь блокчейн вертится на левых (untrusted, то есть со стороны) участниках. На их мощностях. Левые участники заинтересованы его держать и процессить. Они заинтересованы криптовалютой, привязанной к блокчейну. Заинтересованы финансово то есть. Чем можно заинтересовать левого участника участвовать в блокчейне реестре гос собственности например? Если он школота с ноутбуком. Поясните мне.

SannySanoff

> [1921г] Одесские мелкие биржевые игроки и спекулянты, так называемые "лапетутники", стушевались перед нашествием наглых и жестоких спекулянтов, бежавших, как они сами злобно говорили, из "Совдепии". Лапетутники только горько вздыхали,- кончилась патриархальная жизнь, когда в кафе у Фанкони целый месяц переходила из рук в руки, то падая, то подымаясь в цене и давая людям заработать "на разнице", одна и та же затертая железнодорожная накладная на вагон лимонной кислоты в Архангельске.
Источник: paustovskiy.niv.ru

SannySanoff
q

"""смысл консерватизма не в том, что он препятствует движению вперёд и вверх, а в том, что он препятствует движению назад и вниз, к хаотической тьме, возврату к первобытному состоянию"""

Это про "права человека" и в том же ряду про открытые туалеты ( == первобытное состояние для меня).

западные "права человека" — право превратиться в скотину. Нарушение прав человека — попытка удержать превращающегося в скотину.

SannySanoff

К вопросу про турнир по Го между чемпионом мира и гугловским алгоритмом:

История, которую, якобы, любил рассказывать друзьям Капабланка

Однажды я участвовал в турнире в Германии, когда ко мне подошел мужчина. Решив, что ему нужен всего лишь автограф, я потянулся за ручкой, но тут мужчина сделал поразительное заявление… «Я решил шахматы!» Я стал благоразумно отступать, на случай, если мужчина был столь же опасен, сколь и безумен, но он продолжил: «Спорим на 50 марок, что если вы пойдете со мной в мой гостиничный номер, я смогу это доказать». Что же, 50 марок есть 50 марок, так что я решил быть снисходительным, и проводил мужчину к его номеру.
Оказавшись в номере, он уселся за шахматную доску. «Я все понял, белые ставят мат на 12 ходу независимо ни от чего». Я играл черными возможно чересчур осторожно, но обнаружил, к своему ужасу, что белые фигуры координируются как–то странно, и что я получу мат на 12 ход.
Я попробовал снова, разыграв на этот раз совершенно иной дебют, из которого в принципе невозможно было попасть в такое положение, но после серии очень странно выглядящих ходов, я снова обнаружил своего короля окруженным, и мат должен был прийтись на 12 ход. Я попросил мужчину подождать, а сам сбегал вниз и позвал Эммануэля Ласкера, который был чемпионом мира до меня.
Он был настроен крайне скептично, но согласился хотя бы придти и сыграть. По пути мы наткнулись на Алехина, который был текущим чемпионом мира, и вот все трое мы вернулись в тот номер.
Ласкер не рисковал, но играл настолько осторожно, насколько это вообще возможно, и тем не менее, после причудливой, бессмысленно выглядящей серии маневров, обнаружил себя зажатым в матовой сети, из которой не было выхода. Алехин тоже попробовал, но опять же не преуспел.

Это был какой–то кошмар! Вот они мы, лучшие игроки в мире, люди, посвятившие все свои жизни игре, и вот теперь все кончено! Турниры, состязания, все — шахматы решены, белые побеждают...
Тут один из друзей Капабланки вмешивается, со словами: «Погодите минутку, я никогда ни о чем таком не слышал! И что случилось дальше?»

— Как что. Мы его убили, конечно!

SannySanoff

Снова достал KDB/Q и мануал, и заструячил решение задачи про дни рождения, в том виде в котором этим занимались на реддите. Вот решение:

f1:{where 1=count each x}
t:0!`d xgroup (z:ungroup ([m:`may`jun`jul`aug];d:(15 16 19;17 18;14 16;14 15 17)))
t:0!`d xgroup delete from z where m in raze t[f1 t`m]`m
t:0!`m xgroup ungroup t[f1 t`m]
t[f1 t`d]

Если жуйко-форматтер поломает код, то тут: lpaste.net

Вот java версия: github.com
А тут хаскель: reddit.com

Написал чисто поприкалываться, потому что
1) основная сложность этой задачи — это ее решение в башке перед любым кодингом
2) хаскелисты проходя мимо пнули мою любимую жабу
3) хаскель я тоже люблю, но KDB/Q — это глумление над любым другим языком (и не брейнфак)

SannySanoff

Наткнулся на конкурс Душкина по функциональному программированию. Только он уже закончился. Душкин любит Хаскель. Я тоже люблю Хаскель, но пишу щас на Q. Я считаю, что на Q тоже можно решить задачу с великолепной фефкой и ее жуками ( haskell98.blogspot.com ).

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

sx:flip select distinct state from s:`state xkey s0:flip `sn`state!("is";" ")0:`$":states.txt"
f:{([freq:(x 0)]freqi: (x 1))} flip {(`$4_x;"I"$3#x)}each read0 `$":frequencies.txt"
j:{[pc;s] {[pc;x]pc,`$x}[pc]each ", " vs s}
k:{[q]zh:first cols q;{[zh;x] j[(zh;x`v);string x`w]}[zh] each `v`w xcol 1_q}
ls:`state`wha xkey l:((flip `wha`freq`state!flip raze raze [k each {("ss";": ")0:`$(":",x)}each system "ls *.dat"])ij f) ij s
fres:{exec(`$"-")^freq from(`state`wha xkey flip((enlist`wha)!(enlist(count s)#x)),flip s0)lj ls}
t1:flip sx,raze{(enlist x)!enlist(fres x)}each exec distinct wha from l
`:t1.csv 0: {ssr[x;",";";"]} each csv 0:t1 / write csv
select count i by state from l / count species
select sum(freqi * sn) by wha from l / calculate extinction

Базу данных KDB, на которой пишут на Q, можно скачать по адресу kx.com.
KDB поддерживает многопоточную обработку данных, индексы и терабайтные партиционированные базы данных (любит RAID), распределенные вычисления (remote KDB calls), содержит встроенный http сервер, умеет в json и XML, умеет умножать матрицы и всяко их джойнить, умеет time series, скользящие окна и многоступенчатые averages, умеет интерфейс к С++ для нативных функций. Еще он похож на лисп (можно конструировать и выполнять S-trees). И еще он, сцуко, очень быстрый.

Промышленная версия KDB поставляется в виде бинарника размером в 417792 байта (.exe для win32, к примеру):

Directory of C:\q\w32

11/25/2014 11:12 AM

.
11/25/2014 11:12 AM ..
11/18/2014 10:51 AM 417,792 q.exe
1 File(s) 417,792 bytes

Вместе с ним идет реализация языка Q на языке K, 19231 байтов (этот ад я даже не хочу здесь затрагивать):

Directory of C:\q

11/18/2014 10:51 AM 19,231 q.k

И те, кто любят иногда упороться, упарываются им до бесконечности.

SannySanoff

Потратил уже 2 часа чтобы запустить в arch linux /etc/rc.local на стартапе

Что пробовал:

1) сделать сервис rc-local.service
нашел в интернете шаблон, прикрутил. Попробовал сделать enable, говорить секция [Install] отсутствует. Прикрутил секцию, на нее не жалуется, но теперь говорит Invalid argument постоянно.
Можно просто startup этот сервис, тогда стартует. Enable же не делается.
Как команду внутри писал /etc/rc.local, писал /bin/bash /etc/rc.local — вроде пофигу.
Отлаживал с помощью strace, но там дофига процессов плюс dbus, так что не нашел где именно invalid argument

2) говорят по умолчанию запускается /etc/rc.d/rc.local
Врут.

Луч сами знаете чего в сами знаете кого.

Ну и вопрос: как отлаживать invalid argument? Если там какой-то другой способ есть запустить rc.local, то вопрос про отлаживание invalid argument останется незакрытым и обязательно всплывет опять.

SannySanoff

> Ведь "украинству" как идеологии и эстетике теперь конец. "Украинство" — это больше не венки, вышиванки и позитивные песенки, не "свобода и достоинство", даже не романтика революции. Это просто холокост. Куча обугленных трупов и гогочущие над ними упыри.
nataly-hill.livejournal.com

SannySanoff

О разделах арифметики:

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

О написании чисел:

"""Количество многими по ряду последующими знаками изображенного числа находится, когда знаменование всех знаков вместе складывается; а выговаривается всякое число обыкновенно от левой руки к правой, а не инако.

Источник:

Эйлер, "Руководство к арифметике для употребления гимназии при императорской академии наук" 1740 г

Эйлер Л. Универсальная арифметика. T. I. Санкт-Петербург, 1768. 376 с..djvu