Pull to refresh
4
0
Роман Румянцев @Aleshonne

Научные вычисления

Mojo: Python-совместимый язык с производительностью Си — от Криса Лэттнера

А ещё в Julia есть пакет PyCall, который позволяет делать так:

применение питонячьих библиотек в Julia

И обратите внимание на шикарную совместимость с Jupyter Notebook!

Mojo может стать крупнейшим достижением в области разработки языков программирования за последние десятилетия

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

# Python
A = numpy.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
#Julia
A = [1 2 3; 4 5 6; 7 8 9]

Mojo может стать крупнейшим достижением в области разработки языков программирования за последние десятилетия

А Джулия может сим похвастаться?

Пишете using PyCall, а потом используете модули и библиотеки на любой вкус и чих для питона в юле.

Как браузер помогает товарищу майору

Примерно вот так:
PowerShell > foreach ($d in get-partition) { dir $d.AccessPaths | unlock-file}

Как за полчаса написать простую читалку книг FB2 для десктопа на Java

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

Попробуйте обработать файл, у которого блоки <body> идут не подряд, а чередуются с блоками <binary>. Стандарт это допускает. Кусочек кода

// Получение текста между тегами body      
int startBody = content.indexOf("<body>");
int endBody = content.lastIndexOf("</body>");

в этом случае включит в текст всё содержимое блоков <binary>, что явно некорректно. А если блок со сносками будет идти до основного блока текста, то его ваша программа просто пропустит, потому что начинается он не со строки "<body>", а со строки "<body name=\"notes\">".

Как за полчаса написать простую читалку книг FB2 для десктопа на Java

Учебный пример хороший, но на практике совершенно нерабочий.

Во-первых, при работе с любым основанным на XML форматом неплохо бы ориентироваться на его схему. Для FB2 её можно найти тут: https://github.com/gribuser/fb2/blob/master/FictionBook.xsd

Во-вторых, как тут уже писали, в 99% случаев файл будет не .fb2, а .fb2.zip или .fbz, то есть упакован в архив. Все читалки знают, что с таким файлом делать, и не стоит этим пренебрегать.

В-третьих, в FB2 часто больше одного блока <body>. Это связано с существованием в книгах сносок (лежат в <body name="notes">), которые надо, по-хорошему, корректно отображать. Сейчас пользователь вашей программы их вообще не увидит. Другие элементы тоже не учтены, но там всё ограничится сломавшимся форматированием.

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

PS Категорически не рекомендую парсить XML так, как это делаете вы. Воспользуйтесь специализированными классами, работа с XML как со строкой не доведёт до добра. Подробнее можно посмотреть, например, здесь: https://habr.com/ru/articles/339716/

СМИ: в Генпрокуратуре предложили разрешить следственным органам заводить криптокошельки для конфискованной криптовалюты

Пишешь на листочке пароль и сидишь 5 лет в колонии поселения, не пишешь на листочке пароль и сидишь 15 лет строгача. Есть такой термин — «деятельное раскаяние», существенно сроки снижает.

Царица наук: математика, беспощадная ты мука

И насколько же "абстрактна", например, физика?

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

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

Лучшая задача по программированию для собеседования

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

Лучшая задача по программированию для собеседования

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

Лучшая задача по программированию для собеседования

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

Лучшая задача по программированию для собеседования

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

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

Лучшая задача по программированию для собеседования

Да это, собственно, автор поста написал:

Это решение не сработает, если повторяться может несколько чисел.

Наличие пропусков означает либо повтор одного числа более 2 раз, либо повтор нескольких разных чисел.

Лучшая задача по программированию для собеседования

Ваш вопрос будет аналогом того, что я возьму из этого пакета "Мишку косолапого", покажу его прохожему и спрошу, пачку каких конфет я купил.

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

Лучшая задача по программированию для собеседования

А ещё он входит в диапазон (-∞, +∞), как и все другие числовые отрезки. Давайте теперь только этим диапазоном пользоваться во всех случаях. Например, указывая вилку зарплат в вакансии или время варки макарон в инструкции.

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

PS Подойдите к любому человеку и попросите сказать, в каком диапазоне лежат элементы массива [4, 3, 3, 1, 1, 2]. Полагаю, что вероятность ответа «от 1 до 4» будет гораздо выше, чем «от 1 до 5».

Лучшая задача по программированию для собеседования

В последнем примере все элементы содержатся в диапазоне [1, 4] (квадратные скобки — включающие). Корректным примером был бы массив [5, 3, 3, 1, 1, 2].

Столетний язык программирования — какой он

Попробуйте на Фортране поработать с юникодом. Вам не понравится. Кроме того, преобразование число → строка и строка → число там довольно своеобразно реализовано, пробелы имеют специальное значение, с динамическими строками беда (приходится писать самому), нет некоторых привычных современным разбалованным программистам мелочей (функции вроде split и join).

МойОфис обновил редакторы для частных пользователей. Что появилось в релизе 2.3?

Спасибо! Если реализуете — это будет очень хорошо. Сейчас гостовский список нормально только BibLaTeX формирует, а у визуальных редакторов всё очень плохо. Пока пользуюсь связкой Word + Zotero, но она далеко не всё умеет из того, что нужно, и потом приходится вручную править список литературы.

МойОфис обновил редакторы для частных пользователей. Что появилось в релизе 2.3?

@myoffice_ru, а нет ли в планах (хотя бы отдалённых) системы управления списком источников (списком литературы) в документе, которая выдавала бы что-то близкое к ГОСТу.

Столетний язык программирования — какой он

В статье утверждалось, что Fortran значительно быстрее C/C++, но увидеть этого мне пока не удалось. По эффективности я не вижу преимуществ Fortran'а перед C.

Преимущества в плане качества кода у компиляторов Фортрана перед C нет, как, впрочем, нет и особого отставания.

Но у него есть очень хорошая стандартная библиотека, которая прекрасно документирована и весьма оптимально реализована, а общепринятая практика программирования (учебники, примеры из документации, вообще пул доступных публично программ) содержит примеры довольно производительного кода. Например, фортрановкий move_alloc я в примерах видел гораздо чаще, чем плюсовый std::move. Да и в целом самый простой способ сделать что-то на Фортране обычно очень производительный, его синтаксис склоняет к написанию быстрого кода.

За счёт этого программа, написанная неопытным программистом на Фортране будет гораздо производительнее программы, написанной неопытным программистом на C++. Какой-нибудь физик перепишет алгоритм на Фортран почти 1-в-1 из статьи и получит результат за приемлемое время, не имея при этом вообще никакого представления о том, как матрицы размещены в памяти и какие инструкции выполняет процессор при их умножении. На Питоне он напишет программу несколько быстрее, но выполнятся она будет в несколько раз дольше. А на C++ физик, вероятно, правильно работающую программу с первой попытки просто не напишет. Это (плюс большая база уже написанных программ и хорошая совместимость современных компиляторов со старым кодом) и делает Фортран популярным в научной среде.

Information

Rating
3,900-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity