• Перераспределение окон между мониторами после выхода из спящего режима
    0
    В некоторых window-manager'ах есть опция для окон 'move to other monitor', 'move all windows to this monitor'.
  • Intel: урезанные процессоры по той же цене
    0
    Ну нету yield'а у интела, ну нету. Приходится продавать отбраковку по цене полноценного камня.
  • Пингвин, виртуализация и $23 млрд: как и почему облачные технологии навсегда изменили ИТ-мир
    +1
    О, это мило. Если вы где-то сделаете страницу с summary по этой активности, то это точно будет хорошо для publicity. Как минимум, сточки зрения HR-бренда.
  • Пингвин, виртуализация и $23 млрд: как и почему облачные технологии навсегда изменили ИТ-мир
    –6
    Если хотите хорошей паблисити — публикуйте код. Где ваш аккаунт на гитхабе? Почему вы используете линукс, но ничего не даёте комьюнити назад?

    Вот это, надеюсь, не ваш аккаунт? github.com/Sberbank?tab=repositories

  • Замена диска с сохранением правильной нумерации в CEPH
    0
    Натура ceph'а такова, что бэкапы в нём не всегда возможны. Да и куда их делать — на другой цеф? (на самом деле, да, надо просто на свифт грузить или на S3, я это понимаю).
  • Отладка cети с помощью eBPF (RHEL 8 Beta)
    +2
    Одна из утилит в моём educational debt list. Надо, но много и руки не доходят. Но надо.
  • Минкомсвязи одобрило законопроект об изоляции рунета
    +24
    Ну решение простое — доступ в сеть «кривонет», в которой, по чистой случайности, используются такие же IP адреса как и в Интернете и трафик куда-то там маршрутизируется через AS каких-то там tier1. Но кривонет же, а не «Интернет».
  • Замена диска с сохранением правильной нумерации в CEPH
    +1
    Кто-то до сих пор ценит данные. Data have gravity. Если навернувшийся сервер можно ребутнуть, то навернувшиеся данные… sigh… Можно заново организовать эту самую поездку и нащёлкать новых фоток. Но как заново родить того же самого ребёнка?
  • Монорепозитории: пожалуйста, не надо (часть 2)
    0
    Я ж говорю, слои. Это не не уровне гита даже, потому что нижние слои часто вообще не имеют исходного текста в привычном виде. Это слои инфраструктуры. В целом, это гигантский топик, базовые уровни я описал сверху.

    Где-то тут ещё системы управления конфигурациями (а у них там своя система с переиспользованием кода — роли/cookbook'и), и вся инфраструктура CI/CD (сервер, на котором лежит монорепа, управляется системой управления конфигураций, которая лежит где? А код для этого сервера, условный гитлаб, откуда ставится?).
  • Аппликативные парсеры на Haskell
    –1
    имя переменной «item» (thing, this, something) не информативно.

    Что эта функция делает? Кто её использует?
  • Аппликативные парсеры на Haskell
    0
    Если кто-то скажет «бизнес-логика» это тоже ок, но часто вслед за этим звучит «а раз мы тут бизнесом не занимаемся, то у нас бизнес-логики нет». А семантика есть у всех и всегда. Не всегда удаётся её передать, а есть она у всех, кроме как у результата генерации рандомного кода.
  • Аппликативные парсеры на Haskell
    –1
    У меня, например, такие имена функций code review не пройдут. Есть этапы — с самого начала закладывай что они будут. Не заложил? Рефактори.
  • VDS сервер в Амстердаме за 150 руб/мес
    0
    Я умею грамотно отвечать на abuse reports.
  • Аппликативные парсеры на Haskell
    0
    Не надо использовать слово «бизнес-логика». Я предпочитаю «семантика». Смысловая нагрузка. Это может быть не бизнес-логика, а процесс машинного доказательства P!=NP, сути это не меняет. Имена переменных позволяют дать смысл коду, код без имён переменных смысла не имеет (т.к. никто не может сказать, что происходит, кроме IO).
  • Меня бесит клавиатура
    +2
    Возьмите ОС, в которой есть то, что вам нужно.
  • Аппликативные парсеры на Haskell
    –1
    Да, именно так. При этом вы всё равно что-то должны знать про функции с которыми работаете — и сам список должен будет называться осмысленно.

    Я повторю максиму: если не можете назвать что-то в коде, плохо думали.
  • Аппликативные парсеры на Haskell
    0
    Уже лучше. Сильно лучше. Об имени надо думать. Если вы имена выкидываете, у вас образуется нечитаемый код. И вы говорили не про «пример», а про абстрактный библиотечный код.

    Software engineering подразумевает, что код будут читать и перечитывать. И аннотации в виде осмысленных имён — это совершенно обязательное для промышленного кода.
  • Аппликативные парсеры на Haskell
    0
    Возможно, плоха реализация. Почему список из двух парсеров обрабатывается так, как будто это уникальные парсеры? Примените функцию «применить парсер» к списку парсеров.
  • Аппликативные парсеры на Haskell
    0

    Я бы сказал, что в этом месте у нас плохой язык. Почему? Потому что я вижу, что f, .g, h в этом примере — это объекты из списка. Для списочных данных (у каждого из которых нет имени) должны быть функции списочные же.


    Что-то вида: let chained_func = map(apply_in_chain, func_list)


    Для любителей значков: let chained_func = . func_list.


    Если кто-то в коде вам напишет:


    b = a[0] + a[1] + a[2]  + a[3] + a[4] + a[5] + a[6]

    Вы же его за это поругаете, правда? Так почему же для серийных объектов первого порядка (функий) такое исключение?

  • Знаковый эксперимент доказал, что квантовая передача сообщений работает быстрее классической
    +1
    Я не сомневаюсь. Но с суперпозицией всё просто — вы не можете её «померять». Никакими силами. Для одного фотона она будет либо горизонтальной, либо вертикальной при замере. Тут мы уже в квантовую физику идём.

    Пример с поляризационными плёнками как раз и обнажает нам квантовую физику: средний слой (я надеюсь, вы всё таки про три пары, а не про две) показывает, что фотоны рандомно принимают одну из двух других поляризаций.
  • Аппликативные парсеры на Haskell
    0

    loopCounter — это по ушам за это бить. Потому что "счётчик в цикле" нам и так видно. А что этот цикл считает?


    Вот, смотрите:


    for i, v in enumerate(g(d)):
       f(v, i)

    Сравните с:


    for sequential_num, emploee_name in enumerate(get_emploees(department)):
       print_numbered_bage(emploee_name, sequential_num)

    В каком случае вы понимаете что я имел в виду?


    P.S. Я думал про имя счётчика долго. Это моя третья попытка придумать выразительное имя. Вот если у нас бейджи нумерованные, что такое "номер на бейдже"?

  • Аппликативные парсеры на Haskell
    –3
    ApplyP p1 — это уже непозволительная роскошь. Настоящие математики запишут как a p z.
  • Знаковый эксперимент доказал, что квантовая передача сообщений работает быстрее классической
    +1
    На самом деле у фотона есть ровно две характеристики (за вычетом пространства-времени): длина волны и поляризация. Поляризация — это один бит [1]. Определение частоты ограничено временной точностью (чем точнее мы знаем время прилёта, тем хуже мы знаем частоту), так что максимальное количество для передачи данных через один фотон вполне себе ограничено.

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

    [1]https://en.wikipedia.org/wiki/Photon_polarization
  • Аппликативные парсеры на Haskell
    0
    Нет, это вы придумали. Я сказал, что плохая абстракция — это такая абстракция, в которой «жопа есть, а слова нет». Для серийных вещей есть списки и i-нотация, а для несерийных должны быть имена.

    Это требование не из CS, это требование из software engineering.
  • Аппликативные парсеры на Haskell
    –1
    Если нет разницы, значит абстрация плохая. Вплоть до самого алгоритма. Хорошая абстракция должна иметь вменяемые названия всего, чем оперирует, в каждый момент времени. Потому что альтернативой будет thing do thing to thing to make thing do things to things.
  • Знаковый эксперимент доказал, что квантовая передача сообщений работает быстрее классической
    +3
    В двух словах: у нас есть задача — передать от Алисы к Бобу список данных таким образом, чтобы Боб мог на своё усмотрение проверить один бит. Какой именно решает Боб у себя, а Алиса должна сделать так, чтобы любой из 100500 битов мог быть проверен.

    Классическое решение требует отправить столько битов, сколько может быть проверено. Квантовое (если верить статье) — один «запутанный» бит. Боб может проверить свой бит (но только один).

    Аналоговое тут не при делах, потому что для аналогового канала есть потолок пропускной способности (теорема Колмогорова и т.д., которая в себя вбирает всё — фазу, амплитуду, скважность, поляризацию, спин и т.д.), и этот потолок (помноженный на длительность передачи) и есть то, сколько максимум можно передать бит. Утверждается, что в квантовой версии можно дать возможность проверить больше битов, чем было передано «объектов».
  • Аппликативные парсеры на Haskell
    –2
    Если вы не знаете как «это» назвать — ваша абстракция фигня. (какой бы красивой не была математика).

    Например, это может быть inner parser или outer parser. Имена переменных, функций, классов и модулей — это самое важное в языке программирования.
  • Почему я боюсь стать «прокачанным человеком»
    0
    Попробуйте создать, но учитывайте, что люди могут просто отказаться, а без людей никакой профессии не будет.

    Насчёт терминологии — ну, представьте себе, что компания решает завязать с PHP и перейти на (условный) F#. Что будет?
  • Аппликативные парсеры на Haskell
    0
    Ещё бы a/b p1/p2 осмыслено назвать. Чем они друг от друга отличаются?

    Искусство придумывать названия — второе сложное искусство в IT.
  • Аппликативные парсеры на Haskell
    0
    Именование переменных — это место, где программист может объяснить другому программисту что происходит. Я понимаю, что у хаскеля корни из математики и это заметно в нотации, но я обычно заворачиваю любые pull-request'ы у которых такой уровень информативности переменных.
  • Монорепозитории: пожалуйста, не надо (часть 2)
    +3
    Чисто формально, операционные системы и IDE разработчиков тоже должны жить в том же репозитории по этой логике. Включая сам гит. Не?

    На самом деле отлично работает модель слоёв. Базовый слой — ОС и стандартные утилиты, поставляемые мейнтейнером дистрибутива или тем, что заменяет дистрибутив у виндузятников. В контексте образов ОС для облаков и т.д. грань становится чуть менее явной (сами свои образа собираем), но вне зависимости от того, «кто», это отлично выделяемый слой.

    Следующий слой — кастомные версии нужного нам публичного ПО. Это включает в себя как припиненые версии (потому что в 1.1.3 сломано, и мы сидим на 1.1.1), и версии с собственными патчами.

    Следующий слой — публичные зависимости «нашего» софта.

    Следующий слой — наши зависимости уровня утилит и полностью автономных сущностей.

    Дальше «наши библиотеки» общего пользования.

    И уже можно делать монорепозиторий из всего остального.
  • Знаковый эксперимент доказал, что квантовая передача сообщений работает быстрее классической
    +14
    Очень, очень плохо написано, ещё хуже переведено. Где-то к последнему абзацу становится понятно о чём речь, и то приходится продираться через перевод.
  • Аппликативные парсеры на Haskell
    +3

    Если вы мне хотели показать какой haskell понятный, то вы сделали строго противоположное.


    applyP :: Parser (a -> b) -> Parser a -> Parser b
    applyP (Parser p1) (Parser p2) = Parser f
        where f s = [ (sx, f x) | (sf, f) <- p1 s,  -- p1 применяется к исходной строке
                                  (sx, x) <- p2 sf] -- p2 применяется к строке, оставшейся после предыдущего разбора

    Что такое sx? Что такое p2 и зачем он, если есть p1? Что такое s? что такое x? Что такое f?


    (Я вижу 'where', но мне всё равно не понятно что вы подразумевали под f в рамках вашей предметной области).


    Да, если что, задача решается проще. Можно сделать композицию из f g h s d m l и всё получится. Что такое 'm' в данном примере вы вполне сами догадаетесь по контексту d и l.

  • Опыт реального импортозамещения с использованием российской СХД AERODISK
    0
    Не сходится. Если это опытная эксплуатация, то накопленные данные можно дропать. А у вас в посте написано, что дропать нельзя было. Звучит так, что оптыная эксплуатация случайно была объявлена продакшеном.

    (Типовое «какой стенд, мы уже клиентов туда запустили»).
  • Опыт реального импортозамещения с использованием российской СХД AERODISK
    0
    Поздняя регрессия, это понятно. Но когда его в хвост и гриву гоняли в лаборатории, это делали на самбе или на scsi/iscsi/fc (т.е. на блоках)?
  • Почему я боюсь стать «прокачанным человеком»
    0
    Не будет такого для существующих профессий. Просто появятся новые. Был, условный, «маркетолог», станет «аугментед маркетолог». Ровно так же, как есть электрик и энергетик. Разные профессии. Хочешь переходи, не хочешь — не переходи. Часть профессий может исчезать, и я подозреваю, что этот процесс будет куда больше всеобъемлющим, чем аугментация.
  • Взлом Amazon Echo и Google Home для защиты приватности
    +3
    Они сделали локальный фильтр. Упор на слово «локальный», без передачи звука на сторону.
  • Опыт реального импортозамещения с использованием российской СХД AERODISK
    0
    А почему вы не делали нагрузочное тестирование перед продакшеном в конфигурации продакшена? Те же камеры можно было спокойно заменить пишущими моками и получить тот же самый факап в лабораторных условиях.
  • Меня бесит клавиатура
    +1
    Да, этот функционал есть в ОС, причём он там давным-давно и в документации хорошо описан.

    Конфигурация клавиатуры: /etc/default/keyboard, раскладки: /usr/share/keymaps/ и /usr/share/syscons/keymaps/

    (man keyboard)
  • Intel Lakefield: гибридный процессор Atom + Core в 3D
    0
    … А на одном кристалле yield не позволяет. Увы, увы.