Как стать автором
Обновить
28
0
Петр Калинин @pkalinin

Физик-программист и учитель

Отправить сообщение

Progrobot: бот справки по языкам программирования

Время на прочтение5 мин
Количество просмотров15K
Когда пишешь код, регулярно бывает нужно посмотреть справку по конкретной функции, модулю и т.д. Обычно я для этого захожу на cppreference.com или на docs.python.org, но это обычно не мгновенно — требует перехода по нескольким страницам минимум, а в питоновской документации еще и зачастую просто сложно найти нужную информацию на странице, не говоря уж о том, что гугл часто направляет на документацию по второй версии, а не по третьей, и приходится вручную переключать.

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

Так получился бот @Progrobot. Ему можно отправить название функции и получить ее краткое описание, можно послать название модуля (в питоне) или заголовочного файла (в c++) и получить список всех функций в этом модуле, и т.д. Пока есть справка по c++ (с cppreference) и python3 (с docs.python.org). Еще планировал сделать поиск по stackoverflow, но оказалось, что API-шный поиск работает плохо, да еще и есть жесткое ограничение на количество запросов — короче, пока отключил, потом, может быть, выкачаю offline-базу и допилю.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии30

Как я писал карту дождей

Время на прочтение14 мин
Количество просмотров16K
По следам недавней публикации про работу с картами метеорадаров я решил написать о собственном подобном опыте.

Где-то в конце мая, очередной раз прикидывая, соберется ли гроза из вон тех туч за окном, я подумал: если даже на самолетах ставят метеорадары, по которым они обходят грозы, то неужели нет аналогичных стационарных радаров? И если они есть, то не доступны ли изображения с них в интернете?

Не самый быстрый поиск в интернете показал, что такие радары есть, называются ДМРЛ (доплеровские метеорологические радиолокаторы), и снимки с них действительно выставляются в интернете. Есть российский сайт meteorad.ru, белорусский meteoinfo.by (правда, недоступно из России, не из России см. раскрывающееся меню слева), и еще есть сайт orm.mipt.ru. При этом самые приятные картинки — на meteorad.

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

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии17

Простой клавиатурный тренажер для программистов

Время на прочтение4 мин
Количество просмотров91K
Я веду занятия по программированию для школьников. И наблюдаю проблему, в общем-то, очевидно, стандартную для всех школьников, особенно средних классов — у многих очень низкая скорость набора программного текста на клавиатуре.

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

Когда я сам был школьником, у нас на занятиях по программированию была специальная (самописная) программа-тренажер, которая в качестве словаря использовала реальный словарь языка программирования (выдернутый из справки, насколько я помню). Я решил, что нынешним школьникам надо тоже сделать что-то подобное — чтобы они тренировались на фрагментах, которые реально будут встречаться в программах. При этом они не только будут увеличивать свою скорость набора, но еще и учить собственно программные конструкции.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии31

OpenFOAM с точки зрения программиста-физика

Время на прочтение11 мин
Количество просмотров39K

В компании Intel разрабатывается довольно много ПО для моделирования различных физических процессов. В некоторых из них мы используем пакет OpenFOAM, и в этом посте я постараюсь дать краткое описание его возможностей.
Что такое OpenFOAM? Это, пользуясь термином Википедии, открытая (GPL) платформа для численнного моделирования — в первую очередь для моделирования, связанного с решением уравнений в частных производных методом конечных объемов, и в самую первую очередь — для решения задач механики сплошных сред.
КПДВ: эволюция двух несмешивающихся жидкостей разной плотности, изначально разделенных тонкой перегородкой (пример «lockExchange» из стандартной поставки OpenFOAM). Переходные цвета обозначают ячейки сетки, где присутствует доля и той, и другой жидкости (более точно: при симуляции используется метод объёма жидкости).

Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии18

Автоматическое дифференцирование «на пальцах»

Время на прочтение6 мин
Количество просмотров33K
В компании Intel разрабатывают не только ПО для «внешних» потребителей — пишутся и программы, которые используются только внутри Intel. Среди них довольно много средств для численного моделирования различных физических процессов, протекающих при изготовлении процессоров — ведь именно последние и являются основной продукцией Интела. В этих программах, конечно, широко используются различные методы вычислительной математики и физики.
Вот некоторое время назад мне понадобилось программно решать одно уравнение методом Ньютона. Казалось бы, все просто, но для этого надо уметь вычислять производную левой части уравнения. Эта левая часть у меня была довольно сложная — даже просто вычисление ее значений в программе было разбросано по нескольким функциям, — и перспектива вычислять производную на бумажке меня не радовала. Перспектива воспользоваться каким-нибудь пакетом символьных вычислений меня радовала не больше — перенабирать все формулы, содержащие к тому же несколько частных случаев, далеко не очень приятно. Вариант вычислять производную численно как разность значений функции в двух соседних точках, деленную на соответствующее приращение независимой переменной, чреват потерей точности и вообще необходимостью подбирать подходящее приращение этой переменной.
Подумав некоторое время, я применил следующий подход. Потом я узнал, что он называется «автоматические дифференцирование», для него существует довольно обширная литература на английском, и ряд библиотек — но на русском я нашел только некоторые научные статьи про применение этого метода, и пост на Хабрахабре, в котором все рассказывается через смесь дуальных и комплексных чисел, и понять который с ходу, на мой взгляд, тяжело. С другой стороны, для понимания и практического применения автоматического дифференцирования не нужны никакие дуальные числа, и этот подход я тут и изложу.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии61

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность