• А что если перейти на Удобный Шестидневный календарь?
    0

    Для любого календаря можно найти такие m и n, что для работяг с режимом m через n этот календарь будет катастрофой. :)

  • А что если перейти на Удобный Шестидневный календарь?
    0

    Что-то подобное на самом деле используют физики в СГСЭ/СГСМ.

  • А что если перейти на Удобный Шестидневный календарь?
    0

    Почему нельзя? Можно.

  • Основы дискретной математики
    0

    Возникает закономерный вопрос, насколько далеко базовый курс «Математика для Data Science» ушёл от школьного курса.

  • Исключительно быстрая валидация UTF-8
    +1
    Такая ситуация называется «бардак»

    Я бы с вами согласился, если бы в мире были только русский и английский. И только буквы и цифры. Системы письменности очень сложны, и вообще очень здорово, что есть стандарт.


    И это я не затронул тему букв, которые выглядят по-разному в зависимости от позиции в слове, разных порядков одних и тех же букв в алфавите, разного преобразования к верхнему или нижнему регистру в зависимости от локали, RTL. Да даже просто разбиение слова на буквы — это не такая тривиальная задача иногда.


    Да, Юникод кажется переусложнённым иногда, но это отражение сложности систем письменности.

  • Исключительно быстрая валидация UTF-8
    +1

    Юникод устроен намного сложнее, чем кажется. Например, буква Ё может быть представлена как комбинация двух кодпоинтов — Е и комбинирующего диерезиса. И нет, нормализация не решит эту проблему, так как не для всех комбинаций комбинирующих (извините за тавтологию) символов есть отдельный глиф. Взять хотя бы те же смайлики.

  • Любите читать книги на английском? Ваш словарный запас растет быстрее, чем у обычного жителя США
    +2

    В Великобритании дети идут в школу в 4 года. Конечно, это только подготовительный класс, но он обязательный. Дети учат буквы, основы счёта, пробуют читать простые слова.

  • Обзор системы дистанционного электронного голосования ЦИК РФ
    0
    Если я даю голоса истинно-за#1, балласт-за#2, балласт-против#3, а получаю в ответ только доказательство#1 и доказательство#3 — то где гарантия, что мой второй голос записан в систему таким, каким я его давал, и вносит дисбаланс в нужную сторону? Только честное слово, похоже.

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


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


    Опять же, я не криптограф, я не знаю, как конкретно это делать. Возможно, я тут какого-то монстра изобретаю, а уже есть схема, которая делает то же самое, но гораздо проще.


    Просто мне кажется, что всё это возможно провернуть. Вполне допускаю, что это только кажется, и можно доказать, что такую схему не построить. :)

  • Обзор системы дистанционного электронного голосования ЦИК РФ
    0

    Если вы задаёте вопросы, на которые трудно ответить, — это не доказательство невозможности.


    Вы хотите, чтобы я сразу предложил вам алгоритм? У меня его нет, я над этой проблемой вообще не работал и долго не думал. Да и я не криптограф. Но ещё раз повторю, что отсутствие алгоритма у меня — это не доказательство безапелляционного утверждения, что такого алгоритма нет.


    Я лишь сомневаюсь в том, что это невозможно. Вот если вы предъявите доказательство невозможности или нереализуемости, то тогда да, я соглашусь, деваться некуда.


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


    Отлично, и как теперь вы и считающие итоги смогут понять, что в общую сумму должен идти ваш реальный голос, а не подложный?

    Сразу замечу, что я не предлагаю какую-то конкретную схему, я говорю, как это может выглядеть концептуально.


    Например, если я проголосовал за, система может записать три голоса: за, за, против. Последние два всегда за и против. Они компенсируют друг друга и на результат не повлияют. А выдаёт она два ключа — один позволяет найти и декодировать мой голос, а второй — найти и декодировать противоположный.


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


    Я в момент получения ключа, запоминаю, что ключ A3BC75… — это от моего голоса, а ключ 74A09F… — фейковый. (Можно предложить и более простые способы запоминания.) Если я сам проверяю голос, то я знаю, какой ключ чему соответствует, и вижу, что мой голос ещё там. Если меня спросят, я уже могу показать второй ключ.


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


    Почему таким же образом не сможет проверить ваш реальный голос Большой Брат?

    Потому что для извлечения голоса нужен ключ, а у меня их два.


    Что мешает Брату попросить вас показать все голоса, раз это публичная фича системы?

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


    Что мешает вам его послать при этом?

    Этот вопрос уже к системе голосования отношения не имеет. Большой брат, если он достаточно большой, может просто не пустить меня на голосование и проголосовать за меня.


    Не надо пытаться решить политические проблемы техническими средствами.

    Почему же? А закрытая кабинка для голосования — это не решение политической проблемы техническими средствами?


    Да и мы сейчас не политическую проблему обсуждаем, а техническую.


    Да и вообще, по теореме Эрроу идеальной выборной системы не существует.

  • Обзор системы дистанционного электронного голосования ЦИК РФ
    0
    По моему проблема как раз принципиально нерешаемая. Если избиратель может проверить свой голос — то его может попросить его руководитель или преподаватель (в случае студентов), командир (в армии), проверить результат при нем.

    Почему не решаемая? Пусть, скажем, пользователь проверяет свой голос при помощи некоторого ключа. Можно предусмотреть в системе возможность выдачи двух ключей: один выдаёт реальный голос, а второй — фейковый — выдаёт какой-то другой.


    Если попросят, показываешь фейковый.

  • Симуляция подъёмной силы Ньютона методом частиц на CUDA
    0

    Ну, меня не столько метод крупных частиц интересовал, сколько сам гибридный подход. Просто я со времён университета этим не занимаюсь, и он первым на ум пришёл. Да и даже тогда мы его только в учебных целях программировали, а для реальных расчётов, я помню, брали метод Годунова и его модификации вроде PPM. Но то были астрофизические расчёты, там не было каких-то сложных граничных условий (зато было много других проблем).

  • Симуляция подъёмной силы Ньютона методом частиц на CUDA
    0

    Кстати, а какая сейчас ситуация с «гибридными» методами вроде метода крупных частиц Белоцерковского и Давыдова? Используют сейчас или не прижились?

  • Теория поколений и мотивация. Есть ли различия между X-Y-Z на самом деле?
    0

    Какого размера у вас выборка, если не секрет?

  • Планшет как основной компьютер
    +3
    Да вроде не дорого совсем. Цена самого нового макбука соответствует зарплате за 1-3 дня работы software engineer что на нем работает.

    Это где SWE получают больше 200000 рубей за 1-3 дня?

  • Почему Python — плохой выбор для первого языка программирования?
    0

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

  • Почему Python — плохой выбор для первого языка программирования?
    0

    В примере выше хотя бы можно объяснить, почему это работает так, а не иначе, а в C какой-нибудь i = i++ + 1; может начать биткоины майнить и будет прав, так как это UB. :)

  • Почему Python — плохой выбор для первого языка программирования?
    +3

    Мне кажется, что важность первого языка сильно преувеличивают. Дескать, если первый язык был неправильный, то всё, у человека всё в голове неправильно и это уже не исправить. Это не так работает. Если первый язык что-то оставил в программировании непонятным, то это исправит второй язык.


    Если речь о маленьких детях, то не нужно требовать от первого языка, чтобы он сразу все концепции программирования рассказывал. Вспомните возрастную психологию, у дошкольников ведущий вид деятельности игра. Так и пусть это будет игра, которая вдобавок что-то рассказывает про алгоритмы.


    Если это старшие школьники, это вообще может быть что угодно более-менее популярные. Вы же не обезьяну дрессируете. Посмотрите среди знакомых, с какого языка они начинали. Кто-то с BASIC, кто-то с JavaScript, кто-то с C, а кто-то с Pascal. И что, действительно есть связь?


    Главное не язык, а тот, кто учит (или учебник/курс, если речь о самообразовании). Если он может при помощи некоторого языка показать концепции программирования, то отлично! Если первым языком будет Haskell, то это не значит, что ученик никогда не сможет программировать на C++.


    Это как с первым дистрибутивом Linux. Нужно ставить тот, что у соседа.


    Например, если ученик хочет изучить алгоритмы, то он может как Pascal выбрать, так и C. Как по первому множество учебников и пособий (книжки Окулова и Шеня, например), так и по второму полно.


    Ну, допустим, школьнику сложнее понять, что такое указатель, а в C нужно сразу в это окунуться. И с Pascal было было проще. Но если его учитель хорошо знает C, но плохо знает Pascal, я бы не был уверен, что стоит выбрать именно Pascal.


    TL;DR Роль первого языка завышена, смотреть надо по ситуации, универсального ответа нет.

  • Почему Python — плохой выбор для первого языка программирования?
    0

    Так я ж не спорю, что там ссылки. Мне непонятно, почему ссылку нельзя назвать переменной. Это переменная и есть. И когда вы ссылаетесь на мнение большинства, это вызывает лишь недоумение. Я программирую уже лет 25 в том числе и на Python, и впервые сталкиваюсь с утверждением, что в Python нет переменных (это не аргумент, конечно, просто объясняю своё удивление).


    Разделение переменных на собственно переменные и ссылки не только излишне, оно вдобавок всё сильно запутывает. Это разделение просто излишне.


    Например, вы приводили C++ в качестве примера языка, в котором переменные определённо есть.


    Вот, скажем, такой кусочек кода:


    struct Box {
        int* p;
        int v;
    }
    
    Box b;

    Здесь b — это, очевидно, не указатель и не ссылка. Это видно просто из объявления. Звёздочки нет же. Значит это переменная. Но внутри v содержит указатель, который может меняться. Значит это, по-вашему, не переменная. Что же это?


    Если же вы всё же согласитесь, что b — это переменная, то что мешает назвать переменными объекты в Python, ведь там практически такая же ситуация?

  • Почему Python — плохой выбор для первого языка программирования?
    0

    Так что насчёт определения из книги Ахо, согласны с ним? И как вы прокомментируете то, что указатели всё же называют переменными в документации C++?


    Но файлы переменными почему то не называют.

    Ха-ха! Так этот пример работает и против вашего определения («изменяемый объект имеющий два неизменных атрибута: имя и тип, и изменяемое значение»). Имя есть, тип есть, содержимое файла может меняться. Вполне можно считать типом тип содержимого, который отражён в расширении. Или, если хотите, можно делить файлы на обычные, символические ссылки, блочные устройства и т.д. :)


    Я же пишу, вы ударяетесь в начетничество и формалистику.

    По-моему, формалистика — это надуманное разделение переменных на подвиды. Просто приведите ссылки на авторитетные источники, подтверждающие вашу точку зрения.


    нужно всё-таки разделять программистов на Питоне и пользователей Питона.

    А кто такие пользователи Python и чем они отличаются от программистов? И зачем их разделять?

  • Почему Python — плохой выбор для первого языка программирования?
    +1
    А привычных переменных, которые можно складывать, вычитать, сравнивать, и т.п. присваивать им значение, брать их адрес и привязывать к ним ссылки в Python нет.

    Ну вот я пишу:


    a = 1
    b = 2
    c = a + b

    Это разве не присваивание значений и не сложение? Да, под капотом там более сложный механизм, чем в C++. Но по-моему, отрицание того, что в приведённом коде есть присваивание и сложение — это уже казуистика.

  • Почему Python — плохой выбор для первого языка программирования?
    0
    Для большинства переменная — изменяемый объект имеющий два неизменных атрибута: имя и тип, и изменяемое значение.

    Про большинство — это сильное утверждение, которое следовало бы подкрепить какими-то авторитетными источниками.


    Например, в Википедии переменная определяется как область памяти, связанная с некоторым идентификатором. Если Википедия недостаточно авторитетна, то подобное определение можно найти и в классической книге «Компиляторы: построение и анализ» Ахо и др. (раздел 1.6.2).


    Давайте оставим споры о том, чьё определение лучше и более общепринято, и на минутку примем то, определение, которой я привёл выше (переменная — область памяти, связанная с идентификатором). Вы согласны, что в Python переменные всё же есть?


    Конечно, с формальной точки зрения указатель и переназначаемая ссылка являются переменными. Но когда говорят о них, их так и называют, не используя термин «переменная».

    Вот, скажем, открываю я раздел об указателях в C++ и читаю, что «указатель — это тип переменной, который...». Более того, ниже написано, что «pointers… are variables themselves», и используется словосочетание «pointer variable». Выходит, что говорят. Уверен, что можно найти массу других примеров, когда указатель называют переменной.


    И если с формальной точки зрения ссылки — это переменные, что вы сами и написали, то почему вообще этот спор возник? Раз формально ссылки — это переменные, то почему вы говорите, что переменных нет? Они есть.


    И есть изменяемые ссылки, которые авторы языка, на правах демиургов окрестили «переменными».

    Так почему мы должны им отказывать в этом праве? Это общепринятый среди программистов на Python термин, а значит, когда мы говорим о Python, то и называть x нам следует переменной. Разве нет?

  • Почему Python — плохой выбор для первого языка программирования?
    0
    Что выведет print(y)

    Выведет 5.


    Признаться, не очень понимаю, как это отвечает на вопрос, как следует называть x.

  • Почему Python — плохой выбор для первого языка программирования?
    0
    x = 5

    Что такое x, если не переменная?

  • Корректирующие коды. Начало новой теории кодирования
    +1

    Позволю себе немного самопиара. Если кому-то интересно элементарное введение в линейные коды, то я когда-то написал небольшую статью «Корректирующие коды на пальцах».

  • Как использовать десктоп без десктопа? Обзор Samsung DeX
    0

    В Snapseed можно и «сплющить», и многие другие преобразования выполнить.

  • Apple Silicon: конец эры Wintel
    0

    Да, я как раз и хочу сказать, что внешняя не поможет.


    Apple and Nvidia Are Over. На страничке для загрузки CUDA только Windows и Linux.


    CUDA 10.2 ещё работает на macOS, впрочем. Но надолго ли её хватит?

  • Apple Silicon: конец эры Wintel
    0

    И ладно бы в ноутах не было, так даже внешнюю видеокарту от Nvidia не получится использовать, если хочешь, например, что-то на CUDA посчитать.

  • Аномалии голосования по поправкам к Конституции России. Часть 1
    0
    Выходит что так.

    Если кто-то напишет парсер и даст вам исходники, чтобы вы могли сами запустить и скачать данные, вам этого будет достаточно?

  • Аномалии голосования по поправкам к Конституции России. Часть 1
    +1
    Но объективности ради, заявляя о манипуляциях с цифрами одной стороной, надо исключать такие манипуляции с другой. Иначе зачем все это?

    Это же не суд. Не хотите — не проверяйте. Я прошёл по случайным ссылкам и проверил просто для себя. Цели убедить кого-то у меня не было, просто заметил между делом в комментариях.


    А статья нужна, чтобы дать возможность такой проверки или облегчить её. Я до неё вообще не знал про канал с данными в Телеграм и ссылки на сайте ЦИК я тоже сам бы вряд ли нашёл.

  • Аномалии голосования по поправкам к Конституции России. Часть 1
    +2

    Чтобы подлог был значимым и незаметным, числа должны отличаться для достаточно большого количества УИК. Можно проверить случайным образом несколько тысяч. Или сколько там требуется для нужного p-value. Это можно сделать за несколько дней самому. Можно попросить друзей помочь. Я уж не говорю о том, что можно написать парсер, что ускорит дело.

  • Аномалии голосования по поправкам к Конституции России. Часть 1
    +2

    Если данные того голосования есть в открытом доступе, то можно построить аналогичные графики и сравнить.

  • Аномалии голосования по поправкам к Конституции России. Часть 1
    +1
    Не очень понятен ваш ответ.

    Это был не ответ, а уточняющий вопрос. :) Вообще, такие графики очень легко строить, если есть опыт работы с Pandas, так как в начале статьи есть ссылка на тетрадку с расчётами.


    Вот есть график «плотность распределения 'за'» к «проценту явки».

    Нет такого графика или я не понимаю о чём вы.


    Есть гистограммы для «За» и для явки (после слов И гистограммы голосов «За» и явки). Это именно гистограммы. То есть, высота столбика — это количество «за»/значений явки, попавших в диапазон. Для «против» график просто симметрично отразится.


    Есть график с точками % за / % явки (для ТИК 33 Пермь). Для «против» он тоже будет симметрично отражён, так как % против = 100 — % за.

  • Аномалии голосования по поправкам к Конституции России. Часть 1
    +26

    В файлах кроме чисел есть ссылки на соответствующие страницы УИКов. Я случайным образом открыл несколько — числа совпали с официальными. Вы можете написать парсер и проверить самостоятельно.

  • Аномалии голосования по поправкам к Конституции России. Часть 1
    +15

    Какие именно?
    Гистограмму? Она будет точно такой же, только симметрично отражённой. То есть, перекос по-прежнему в сторону «за».
    В остальных графиках есть и «за», и «против».

  • Разработка собственного алгоритма симметричного шифрования на Php
    +4

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

  • Apple Silicon: конец эры Wintel
    +1

    А разве ядро Linux уже не поддерживает все особенности ARM?

  • Моя USB визитка
  • Что бы я хотел знать когда начинал изучать Django? — очень общий взгляд
    0

    <зануда мод>
    Это всё же не калька, а морфологическая передача.


    А чем плох термин представление, который, как я заметил, обычно и применяется для перевода view?
    </зануда мод>

  • Схема против нейросети
    +1
    Но дело вот в чём. ImageNet это 256x256.

    Там разные размеры. Впрочем, это я так, занудствую. :)


    Разрешение нашего глаза чистые 50Мп или даже 100Мп (7071x7071 или 10000x10000). Поэтому регистраторы наклонных линий шириной в пиксель очень даже хорошо работают в биологии. А зрительный нерв в итоге выдает 2-3Мбит или Мп (точно не помню).

    Говорить о разрешении глаза не имеет смысла, так как зрение отличается от работы матрицы фотоаппарата. Как и говорить о битах в зрительном нерве, в который сигналы уже идут предобработанными. Да и передаются по не нерву не кадры, как в камере.


    Я бы вообще не сравнивал CNN и глаз. Мы же не сравниваем птицу и самолёт.

  • Схема против нейросети
    0

    Несколько замечаний.


    Перцептрон известен нам уже более полувека. И мы до сих пор используем его в том же виде, лишь наращивая вычислительные мощности.

    Это не совсем так. Тот самый перцептрон даже многослойным не был, я уж не говорю о том, что методы обучения сейчас другие.


    Да и перцептроны не так часто применяются. Если нужно какую-то классификацию сделать по табличке, то можно взять деревья. Если распознать изображение, то свёрточная сеть. Для текста есть трансформеры.


    Свёрточная нейронная сеть — математическая реализация зрительной подсистемы (палочки под разным углом и их иерархические комбинации в более сложные образы).

    Это не так. Вы даже сами пишете ниже про спайковые сети и «умные» синапсы. Зрение устроено намного сложнее. И свёрточные сети не только отличаются от механизмов зрения, но даже и не пытаются его копировать. Какие-то идеи из биологии если и используют, то разве что как источник вдохновения. Сами же архитектуры и методы обучения с человеческим зрением почти не связаны.


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

    На точность сетуем порой, да. А то, что нет творчества — а зачем оно машине? Я вот не уверен, что это необходимый компонент для большинства задач.


    И умеем мы далеко не только классифицировать.


    Нет нужды заставлять C/G/TPU имитировать биологические нейроны.

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


    Да cos не самая быстрая функция — она вычисляется по таблице или разложением в ряд Тейлора,

    В процессорах обычно используют CORDIC. Это просто заметка для читателей, которым интересно, но которые ещё не знают. :)


    «Танцы с бубном» — по другому не получается. Потому что DeepLearning красиво работает на учебных датасетах — реальность ставит всё на место.

    Deep learning хорошо работает и в реальности. А там где плохо, оказывается, что альтернатив-то и нет.