Pull to refresh
69
0

R&D

Send message

«Невозможный» параллельный алгоритм неотрицательной суммы

Reading time4 min
Views9.4K

Рецепт параллельных вычислений Fork/Join или Map/Reduce:
- разбить задачу на куски;
- посчитать куски по-отдельности;
- склеить вместе.

Неотрицательная сумма (a, b) -> max(0, a + b) неассоциативна и результат зависит от порядка склейки. Она сломает Fork/Join и результат будет некорректен. Магией моноида починить на Java, SQL и Haskell за 5 минут, но

сломать мозг
Total votes 28: ↑27 and ↓1+26
Comments33

На пути к идеальной клавиатуре

Reading time9 min
Views61K

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


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


image

Читать дальше →
Total votes 116: ↑115 and ↓1+114
Comments355

Краткий справочник информатики

Reading time5 min
Views5.5K

Область ИТ растёт, и легко заблудиться в зоопарке подходов, фреймворков и технологий, которые громко заявляют о своей "новизне" и "эффективности". Но за обёрткой обычно скрываются старые добрые идеи, заново "изобретённые" в другом контексте. В итоге распространяется не самая простая и эффективная, а самая разрекламированная реализация. Разработчики не успевают вдумчиво произвести выбор из-за постоянного недостатка времени, а менеджеры выбирают самое распространённое, чтобы снизить риски при поиске разработчиков.


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

Читать дальше →
Total votes 19: ↑8 and ↓11-3
Comments64

IO работает с кучей Хаскеля

Reading time2 min
Views1.2K
Начало серии Куча Хаскеля
В этой статье мы сосредоточимся на вас. Вы всё крутитесь около кучи Хаскеля и норовите открыть подарок. В конце концов, подарки сами по себе не открываются.
Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments3

Вычисление в куче Хаскеля

Reading time1 min
Views1.4K
Начало серии Куча Хаскеля

Дух новогодних подарков

Сегодня в статье мы кратко рассмотрим, что происходит, когда вы в куче Хаскеля открываете подарок с духом внутри. Почти во всём, что есть в куче, кроме констант и того, что уже вычислено, сидит дух. Весь вопрос в том, что станет делать дух в подарке.
Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments13

Куча Хаскеля

Reading time2 min
Views1.7K

Куча Хаскеля — довольно странное место. Она не похожа на кучу в традиционном языке со строгими вычислениями...

… которая представляет из себя кучу мусора из старых добрых простых данных!
Читать дальше →
Total votes 62: ↑54 and ↓8+46
Comments34

GTD DSL на Haskell

Reading time2 min
Views1.5K
Давеча искал я программное обеспечение для GTD, или по-русски «как привести дела в порядок». Конечно, многие инструменты красивые и простые, но у таких не хватает гибкости и возможностей настройки. Другие же — сложные монстры с горой ненужной функциональности. Как же совместить безграничную гибкость с простотой?

Я, как любитель текстовых интерфейсов, предпочёл предметно-ориентированный DSL язык вместо GUI. Но писать парсер языка с нуля далеко не просто. Гораздо приятнее надстроить типы над готовым языком Haskell.

что получилось
Total votes 9: ↑8 and ↓1+7
Comments2

Information

Rating
Does not participate
Location
Краснодарский край, Россия
Works in
Registered
Activity