← All posts tagged programming

qnikst
programming books CS Буду и сюда постить "хорошие статьи/книги" по понедельникам.

При программировании в языках с неизменяемыми структурами данных, часто применяются методы работающие со структурой в-целом. Такие техники позволяют писать программу, как объединение более простых подпрограмм. Однако этот подход может ухудшать производительность, т.к. заставяет создавать огромные структуры данных, для решения это проблемы используется оптимизации deforestation (и fusion), основанная на правилах перезаписи выражений. При этой оптимизации удаляются промежуточные структуры и при компиляции код обрабатывающий сложную структуру превращается в настолько же эффективный, как код написанный на С, но при этом более поддерживаемый. В диссертации Дункана Котса рассматриваются различные такие правила (со ссылками на статьи о них), а так же дается доказательство корректности, и минимальные требования к языку, в котором эффективно принимать данные правила.

D. Coutts, “Stream Fusion: Practical shortcut fusion for coinductive sequence types,” 2010.
qnikst
Python ? programming А киньте в меня какой статьей по каноническому написанию unit тестов для питона? Как это вообще принято, какие пакеты использовать, как структурировать
qnikst
? programming Haskell <rubber-duck-mode>
А как бы задавать неявные методы для решения ОДЕ, так чтобы пользователь мог задать стратегию решения?
После размышления, у меня ощущение, что если в явном методе я могу возвращать (в простом случае без доп структуры):
phi :: x -> f x -> f x
то для неявного я должен писать:
phi :: x -> (f x, f x) -> f x

где теперь мне на вход подается начальная координата и первое приближение, и в ответ я выдаю набор следующих координат. Вроде в этом случае вся свобода, которая должна быть остается в руках у пользователя, можно и начальное приближение удобным способом выбирать, и решать хочется ли fixed point или newton iteration или вообще заанролить метод на нужную глубину.
</rubber-duck-mode>
qnikst
? programming math На какой бы задаче идеально имеющей аналитическое решение потестить методы рунге-кутта, чтобы добавить в тесты проекта?
qnikst
programming WTF а в чем плюсы от того, чтобы пытаться угадать порт, который открывать, вместо того, чтобы передать 0 и посмотреть, что ведро выдало? Уже не в первой библиотеке встречаю такой идиотизм. При этом они действительно открывают любой порт, а не только в какой-то области или т.п.
qnikst
web programming AUTH А какой у нас сейчас state of the art для авторизации на связанных сайтах. Есть один главный сайт foo.bar.com, есть N сервисов (только web sockets) на которые юзверь так же может посылаться. На foo.bar.com есть авторизация через oauth, так же проверяются права на то, какие сервисы есть права и где они живут и туда посылается юзверь.

Вопрос в том, как сделать так чтобы сервис мог бы дешево проверять что юзверь это действительно нормальный юзверь и имеет доступ, не реализуя логику авторизации на двух узлах
qnikst
? programming Киньте ссылки в умные ресурсы про то как описывать протоколы и идеально по этому описанию уметь доказывать определенные их свойства
qnikst
? programming Как правильно дизайнить тесты и вообще стабильность системы из многих компонентов, чтобы не пропустить возможные случаи live/dead локов и неожиданных падений?
qnikst
programming job C кто хочет поработать на благо военки в славном городе гатчине (от питера добраться просто) за какие-то 80-90к (если все уметь) или на сколько-то меньше, если быть готовым учиться. Делать так чтобы корабли меньше тонули, а на складах было меньше ЧП, ну или хотя бы чтобы об этом узнали все кому следует знать. Там всякие C + возможно что-то более высокоуровневое можно.
Говорят секретности или нет или та, что проблем с загран паспортом и выездами не будет.

qnikst
programming key-value Есть key value база данных. В ней среди прочего хранятся квадраты как (TopLeft_x, TopLeft_y, Width, Height)+всякие даные; в данный момент ключем является форма квадрата, т.е. сериализация этих самых (x,y,w,h); вопрос, есть ли идеи как это складывать таким образом, чтобы можно было эффективно выгружать интересные квадраты, т.е. те которые пересекаются с заданным?

Кстати хорошую структурку, в которую эти квадраты можно сложить в памяти (в haskell) тоже бы не помешало.
qnikst
programming У идриса какая-то проблема, если понимать что делаешь то можно вывести все доказательства показать пруфы и даже отрицания, и даже тоталити чеккер что-то разумное делает. Но если не понимать, то можно получить совершенно безумные доказательства, точнее выводы, хотя в разумном языке просто ничего не должно получаться. Надо будет потом попробовать агду затестить или даже сразу кок и посмотреть что во взрослых языках