• Проблемы научных публикаций
    +5

    Вспомнилось, как мы на старших курсах писали заявки на РФФИшные гранты — в планах на год (да, не забываем про планы по открытиям на год вперёд) по факту пишется то, что уже было сделано в прошлом году, и в идеале что уже в процессе рецензирования/публикации (то есть, найден журнал, редактор статью принял, рецензентов нашёл, и так далеее).

  • Стоит ли переходить с Python на Nim ради производительности?
    0
    В числодробилках с плавающей точкой обычно другое волнует, в первую очередь — что задача в ходе преобразований не потеряет устойчивость или обусловленность.

    Я напарывался на случаи, когда «ой, тут матрица была транспонированная, надо было по строкам идти, чтобы получить значения одной фичи», равно как и на «чёрт, PCA забыл, вот бы было круто это в типах выразить…»


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

    Рад, что вы про это упомянули!


    Есть, например, такое. Или есть такое — вот прям ровно для анализа неопределённостей.

  • Стоит ли переходить с Python на Nim ради производительности?
    0
    Насколько я понимаю, одна из причин в том, что никак не вывести, например, тип значений считанного файла с данными — компилятор скажет, что тип это Dict{String, Any} в случае чтения json'а.

    Ничего страшного, это ровно то, что я ожидаю от функции чтения жсона. Ну, почти ­— словарь является частным случаем, соответствующим Object по ссылке.


    Конкретные типы каждого поля известны только в момент выполнения, поэтому и про результат применения к ним какой-нибудь функции f(data[«field»]) компилятор заранее ничего не знает. А почти любая программа и начинается с чтения файлов данных/конфигов.

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


    Для библиотечного кода — про тип, возвращаемый даже простейшей функцией «f(a::T, b::T) = a + b», ничего нельзя сказать пока неизвестен T.

    А каков тип +?


    Даже если это множественный диспатч в стиле ad-hoc polymorphism (умное название для перегрузки функций) — рано или поздно в точке вызова функции её конкретный тип станет известен.

  • Об обществе людей и их свободе
    +2

    То есть, в нормальных странах у вас нет ни права на самооборону, ни права на восстание?

  • Об обществе людей и их свободе
    +9
    Свобода — это возможность человека удовлетворять свои желания таким способом, чтобы не ущемлять свободы других людей.

    Каждый раз, когда вы предлагаете саморекурсивное определение, в мире умирает один маленький Гёдель.


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


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

  • Об обществе людей и их свободе
    +8

    Её нету настолько же, насколько у гугла нету монополии на поиск потому, что у меня в вузовской локалке был свой поисковичок, а на десктопе вообще locate.

  • Что такое LLVM и зачем он нужен?
    0

    А он уже есть, а не «готовится стандарт».

  • Стоит ли переходить с Python на Nim ради производительности?
    +1
    Важно знать что размерности векторов и матриц правильные, потому что эти операции часто довольно абстрактные. А вот конкретная формула из прикладной области — её не доказать правильная она или нет. Можно совершить опечатку при переписывании её с листика...

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


    Да и вообще насколько хорошо можно что то доказывать про float числа?

    Есть какие-то формализмы, но я про них мало знаю.


    Выходят ли зав-типы за рамки дискретной математики?

    Флоаты-то тоже дискретные :)


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

    У меня были мысли на эту тему, но я посмотрел на количество интринсиков и особенности их применения, прикинул соотношение фан/рутина (получилось, что оно стремится к нулю) и забил.

  • Стоит ли переходить с Python на Nim ради производительности?
    0

    Звучит более-менее как обычный вывод типов, возможно, со всякими там path sensitivity. Тогда что мешает делать это при написании кода?

  • Стоит ли переходить с Python на Nim ради производительности?
    +1
    Да, упомянутые ошибки выдаются не до начала выполнения программы, а во время компиляции конкретной функции

    Это в смысле JIT'а? То есть, там либо остаются проверки на случай деоптимизации для других типов, либо там как-то что-то доказывается, что других типов там не может быть?


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

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


    А что там кодят в теоркате было бы интересно почитать на простом уровне :) Статью не планируете написать?

    Да там особо нечего писать. Можно доказывать, что ваши монады на самом деле монады (и мне это несколько раз, когда я писал свои монады, было бы полезно). Ну или можно просто преподавать теоркат — не зря там ML выбрали, а не лишп какой-нибудь.

  • Что такое LLVM и зачем он нужен?
    0

    Ну, если серьёзно, тут либо компилятороспецифичные интринсики, либо ничего.

  • В России плохо жить, даже если ты разраб. Но я все равно отказываюсь от релокейта
    +1

    С одной стороны, пожить год-два — да, это вариант.


    С другой — это уже эмиграция, и чем жизнь на год-два просто посмотреть отличается от жизни на год-два с планами на миграцию, я не понимаю. По крайней мере, с высоты своего 23-29-летнего опыта, где в исходной стране у меня не было нихрена — ни семьи, ни квартиры, ни машины.


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


    С четвёртой — а какая вообще разница? Если я что в Москве сидел в доме на окраине МКАДа и хикковал, что в другой стране буду сидеть и хикковать… Тут только на деньги (ну и на законы) и смотреть.

  • В России плохо жить, даже если ты разраб. Но я все равно отказываюсь от релокейта
    0
    высокооплачиваемая работа, она такая (((неинтересная в основном.

    Это скорее от склада ума, характера и прочих подобных вещей зависит.


    Я слишком угорал по software engineering'у, чтобы быть счастливым среди дата сайенса и питона, а потом слишком угорал по математике, чтобы быть счастливым среди чистых плюсов.

  • Жизнь и работа в Нидерландах
    0

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


    Правда, это всё не в Нидерланды, а в США.

  • Жизнь и работа в Нидерландах
    0
    Да. Но при этом разные налоги разные люди платят в разной степени.

    Ну не все будут платить по 100 рублей, кто мог бы платить 10, а только некоторые будут платить 200. Стало лучше, что ли?


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


    Но это к слову о налогах и общей медицине.


    Потому что и то и другое одинаково бессмысленно рассматирвать сепаратно.

    Именно что и то, и другое!


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

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

  • AMD представила 18 новых процессоров для настольных ПК
    +1

    Ну это пока память подвезут, пока подешевеет...

  • Что такое LLVM и зачем он нужен?
    0
    Я б лучше попробовал другой UB под это дело приспособить

    MAX_INT + 1?

  • Священный холивар «Python vs Go»
    0

    Самое оно для этого ИТТ треда.

  • Стоит ли переходить с Python на Nim ради производительности?
    +1

    Коллега на позапрошлой работе с jupyther аж из хаскеля работал, полёт был нормальный, даже что-то с другими датасайентистами обсуждал.

  • Стоит ли переходить с Python на Nim ради производительности?
    +1

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

  • Стоит ли переходить с Python на Nim ради производительности?
    +3
    Так в числодробилках типы и не нужны.

    Нужны, опять же, чтобы не сложить случайно измерение x_i с измерением x_j, или производную значения с самим этим значением.


    Про теоркат и типы спишу на выпендрёж — слишком далеко от реальности.

    Ну да, а свои числодробилки у нас каждый первый пишет же.

  • Что такое LLVM и зачем он нужен?
    0

    Судя по краткому описанию (и использованию солверов для проверки VC) доказать оно может только узкий и разрешимый с точки зрения proof finding набор фактов.


    Короче, непонятно, зачем это нужно, когда есть всякие коки и идрисы.

  • Если вы думаете, что количество женщин в IT — это лишь проблема с воронкой найма, вы не смотрели внимательно
    0
    Да, вот так все сложно.

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


    Потому что диплом — не есть способности человека.

    А возраст — это способности человека, что ли?


    Не приписывайте мне свои фантазии.

    Я всего лишь читаю то, что вы пишете.


    Запрещено должно быть

    Ещё раз, никто никому ничего не должен.


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


    навязывание мне того, что мне не нравится (и не связано напрямую с работой).

    1. А если кому-то не нравится ровно обратное?
    2. Навязывание квот и антидискриминационных политик тоже, тащем-та, не связано с работой.
    3. Почему только это? По какому принципу вы ограничиваетесь навязыванием?

    А как жк ваш вопрос «гугл достаточно успешный, скажем?» — вот я и ответил, что Гугл просто пользуется косяками в законодательстве.

    Со внутренней логикой ваших высказываний всё хуже становится. Ну да, «вот так всё сложно», видимо.

  • Стоит ли переходить с Python на Nim ради производительности?
    +1
    Джулия — язык для математики, другой профиль.

    Каждый раз, как вижу это высказывание, немного удивляюсь. Математику вроде теорката или ТТ на ней делать как-то очень странно, математически формально доказывать всякие вещи — тоже. Числодробилки? Ну, мне хочется типами гарантировать, что мои вычисления имеют смысл, и я не складываю случайно килограммы с фунтами, и тут, судя по тому, что я видел, джулия тоже не в топе.

  • Почему я использую Matrix вместо Telegram
    +1
    А для десктопа — только страх и боль с интерфейсом из 90х годов ;(

    Как будто что-то плохое.


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

  • Почему я использую Matrix вместо Telegram
    +4

    (сидя в куче каналов, аналогов которым в других IM нет) И правда, почему?

  • Если вы думаете, что количество женщин в IT — это лишь проблема с воронкой найма, вы не смотрели внимательно
    0
    Ну так трудовое законодательство Штатов меня не очень то и устраивает ))

    Я не спрашивал про то, устраивает ли вас ТК в Штатах (и меня, ЧСХ, устраивает, хотя увольнения одним днём у меня в опыте тоже были, это прикольно). То, устраивает ли оно вас, вообще не влияет на наличие успешных фирм, а спрашивали вы про них.

  • Если вы думаете, что количество женщин в IT — это лишь проблема с воронкой найма, вы не смотрели внимательно
    +2

    То есть, если что-то не нравится лично вам, то это должно быть запрещено для всех?


    А питон и отсутствие код-ревью тоже запретим законодательно?


    И мне вот не нравится начало рабочего дня в 9 утра, я окончательно просыпаюсь часов в 12 обычно. Давайте запретим?

  • Если вы думаете, что количество женщин в IT — это лишь проблема с воронкой найма, вы не смотрели внимательно
    +1
    Нет.

    Почему?


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

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

  • Если вы думаете, что количество женщин в IT — это лишь проблема с воронкой найма, вы не смотрели внимательно
    0
    Потому что эти задачи идут последовательно одна за другой.

    А я думаю, что они вполне себе параллельны.


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

    Но вы же сами говорите о совместном решении проблем обществом. А теперь оказывается, что каждый сам решает. Как так?

  • D как улучшенный C
    +1

    А это не костыли. Одна функция подразумевает эффекты (любые), другая — нет. Разделять их на самом деле полезно.

  • D как улучшенный C
    +1

    Добавьте там M на конце:


    λ> :t Control.Monad.filterM
    Control.Monad.filterM
      :: Applicative m => (a -> m Bool) -> [a] -> m [a]

    Она и не знает про конкретные монады (и даже ограничивается аппликативными функторами, а не монадами).

  • D как улучшенный C
    +1
    Исключения же позволяют писать код, не зная какие исключения будут через него пролетать.

    Не понимаю, зачем это надо.


    То есть, вы либо пишете библиотечный код с условным типом MonadError e m => ..., и тогда вам плевать на конкретный тип ошибок, либо вы пишете модульный код вроде (MonadError r m, Injectable MyError r) => ..., и вам снова плевать на конкретный тип ошибок, главное — что он поддерживает MyError, либо вы пишете ядро бизнес-логики, и тогда вам не плевать.


    Аналогично файберы позволяют вызывать функции не зная синхронные они или нет.

    По аналогичным причинам не понимаю, зачем.

  • Если вы думаете, что количество женщин в IT — это лишь проблема с воронкой найма, вы не смотрели внимательно
    +1
    Эту проблему общество сможет начать решать потом

    А почему не сейчас?


    когда будет решена проблема несправедливой дискриминации женщин.

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

  • Если вы думаете, что количество женщин в IT — это лишь проблема с воронкой найма, вы не смотрели внимательно
    +2
    Вы много видели успешных фирм с таким культурным давлением?

    Я видел дофигища успешных фирм (гугл достаточно успешный, скажем?) с таким или подобным давлением, от всяких team lunch'ей до ритуалов вроде обязательного чтения и группового обсуждения про белую хрупкость.


    Почему человек должен прогибаться под чью-то чушь?

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

  • Если вы думаете, что количество женщин в IT — это лишь проблема с воронкой найма, вы не смотрели внимательно
    +2
    Я говорил про то, что отсев одинаковых специалистов только потому что одни из них женщины — дискриминация.

    Как далеко это идёт? Отсев специалистов потому, что у них возраст ниже — дискриминация? А потому, что у них формального диплома нет?

  • Если вы думаете, что количество женщин в IT — это лишь проблема с воронкой найма, вы не смотрели внимательно
    0

    И снова см. выше (или где там рядом оно было) нашу дискуссию про то, что разговор-то именно об айти.

  • AMD представила 18 новых процессоров для настольных ПК
    +1
    Представители компании говорят о хорошем приросте производительности.

    Вот поэтому и сижу дальше на своём i7 3930k и жду новое поколение.


    Ну, продолжаем ждать.

  • Стоит ли переходить с Python на Nim ради производительности?
    +2
    вы часто упираетесь в производительность питона? любопытно, в каких задачах?

    Да даже что-то тупое типа парсинга лога и подсчета статистики тех или иных событий. Знающий питон коллега за сходное (если не дольшее) писал код, который работал медленнее, чем то, что писал я не на питоне.


    А ещё я упирался в производительность себя как программиста, когда пытался писать на питоне, но это совсем другая история.

  • Стоит ли переходить с Python на Nim ради производительности?
    0

    Я даже перепроверил, что вы автор того же комментария, на который я отвечал. Зачем было все эти фичи тогда приводить?