Vladislav
Например, если нетворинг и база данных используют логгинг, то когда мы подменяем словарик логгинга, нам надо обновить нетворкинг и БД тоже.
Vladislav
Если использовать эффекты mtl-style, то такого не будет.
Cheese
в чём разница между пакетами gtk и gtk3?
Andrei
Cheese
то есть старьё?
Andrei
да
Cheese
спасибо
Mi Shа
Привет! Подскажите, пожалуйста, как в ghci можно засовывать строковые литералы туда, где требуется ByteString?
Couldn't match expected type `bytestring-0.10.8.2:Data.ByteString.Lazy.Internal.ByteString' with actual type `[Char]Написал в ghci {-# LANGUAGE OverloadedStrings #-}, но не помогло
Dmitry
Эммм, не знаток, но может http://hackage.haskell.org/package/bytestring-0.10.8.2/docs/Data-ByteString-Lazy-Char8.html#v:pack
Mi Shа
Leonid 🦇
:set -XOverloadedStrings
Mi Shа
Cheese
обратите внимание, что ByteString не адекватно преобразуется из String (адекватно только для ASCII)
Cheese
то есть пригодно только для каких-то технических вещей вроде ключевых слов
Cheese
а если засунуть человеческий текст, даже на английском языке, он может быть внезапно испорчен
Mi Shа
А почему тогда Data.Aeson использует его для декодирования из джсона?
Aleksei (astynax)
Энкодинг надо делать
Cheese
нет, aeson не использует ByteString.pack (я не смотрел в код, но было бы странно)
Cheese
сам по себе ByteString вполне адекватно хранит байты
Mi Shа
Aleksei (astynax)
Data.ByteString.UTF8.fromString
Cheese
но это уже немного в сторону, я просто хотел сказать, что ("пример" :: ByteString) может сильно удивить
Aleksei (astynax)
Такой уж инстанс IsString
Vladislav
https://caps-0-dxkllnpysx.now.sh/
Vladislav
Случайно лежит.
kalloc
Вопрос по выбору трекера задач.
Хотелось бы (не в порядке приоритета):
- зависимости между задачами,
- спринты,
- API,
- html5 и нормальный UI,
- иметь kanban,
- добавление подзадач,
- возможность выстраивать workflow как в JIRA (блоксхема из статусов),
- интеграция с draw.io,
- быть легким (не как JIRA),
- интеграции с github,
Расскажите, кто что использует?
Aliester
Trello
Aliester
Хапстаф
kalloc
Trello не умеет многое
kalloc
спринты например
kalloc
workflow статусов
Aliester
Плагины есть
Chris
Я сам не пробовал, но как легковесную Джиру мне рекомендовали - https://yandex.ru/tracker/
Он не так давно вышел из внутреннего проекта Яндекса, но амбиции имеются.
Andrei
Вопрос по выбору трекера задач.
Хотелось бы (не в порядке приоритета):
- зависимости между задачами,
- спринты,
- API,
- html5 и нормальный UI,
- иметь kanban,
- добавление подзадач,
- возможность выстраивать workflow как в JIRA (блоксхема из статусов),
- интеграция с draw.io,
- быть легким (не как JIRA),
- интеграции с github,
Расскажите, кто что использует?
YouTrack всё умеет, только с draw.io непонятно
Anonymous
А youtrack тяжёлый ?
Anonymous
На самом деле и Jira не сильно то тяжелая
Andrei
define «тяжёлый»?
Andrei
впрочем, я необъективен — я jetbrains за проставленные tab index готов простить почти всё
Cheese
Nikita
Кто нибудь пользуетя nixOS тут
Alexander
да
Ignat
Офк, но есть и специальный чят
Ignat
@ru_nixos
Nikita
Мне просто интересен nix package manager но я на darwin
Nikita
macOS
Andrei
nix-darwin есть
Ignat
У меня там что-то странное происходит с обновлением каналов
Ignat
Но тут собственно nix-darwin ни при чём
Mi Shа
Mi Shа
Подскажите, а в чем оптимизация?
Cheese
ссылка на f не копируется на каждой итерации
Dmitry
второй мап можно инлайнить
Mi Shа
А первый почему нельзя инлайнить? Это связанно с тем, как рекурсия компилируется в цикл?
Cheese
рекурсия не всегда компилируется в цикл
Cheese
рекурсия может компилироваться в jnz, и цикл может компилироваться в jnz
Ignat
а конпелятор сам недостаточно умный, чтобы общий префикс аргументов зафиксировать?
Mi Shа
jnz - это jump?
Cheese
достаточно глупый компилятор может сказать, что первый map рекурсивный, и даже не пытаться его инлайнить до какой-то там глубины
A64m
A64m
потому что не всегда приводит к улучшению кода.
Mi Shа
if zero?
Ignat
if not zero*
A64m
теперь, правда, есть идея такая, делать это преобразование (оно называется STO) и если появились новые джойн пойнты, а старые не испортились - значит преобразование полезно
Cheese
zero или not zero — не суть. какой-то условный переход
Cheese
Cheese
Aliester
Aliester
почему феминистики пишут на JS?
Cheese
Aliester
ну это с сайта по JS
Cheese
Mi Shа
Тепер стал понимать, рекурсия и циклы находятся на "одном уровне абстракции" над повторяющимися операциями.. А то обычно говорят, что рекурсия раскладывается в цикл..
Aliester
Aliester
представил сноймана в этом
Cheese
Mi Shа
А в нефункциональных языках - рекурсия через цикл?)