Эй, это лучше, чем кофе.

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

Как вы понимаете, мой взгляд на пользовательские интерфейсы теперь немного изменился. Я все еще использую ноутбук с Windows, и, вероятно, буду использовать его до выхода Singularity. Но когда я занимаюсь исследованием, я использую интерфейс Linux, обычно через программу просмотра VNC или SSH-клиент. Этим летом я использую Linux каждый день в течение семи недель подряд, и мне это уже начинает нравиться.

Причина, по которой я профанирую свой блог об астрономии очередным скучным обсуждением вычислительной техники, заключается в том, что сегодня я, возможно, начал полностью ценить красоту Bash. Для тех, кто не знает, Bash - это командный язык, обычно используемый в дистрибутивах Linux, и он может многое. Как вы уже догадались, сегодня днем ​​я написал свой первый нетривиальный сценарий Bash. Он состоит из двух десятков строк, запускается около четырех часов и редактирует, анализирует или анализирует около 100 файлов. Он добавляет немного больше автоматизации к последнему этапу в конвейере анализа данных, который я использую, выполняя этот анализ на четырех отдельных наборах данных и получая важную информацию, которая мне нужна. Обычно этот процесс требует от меня большого количества операций по редактированию файлов вручную; испортить это приведет к потере часов драгоценного вычислительного времени.

Для того, кто пользуется Windows в течение целого десятилетия, Bash производит впечатление довольно впечатляющего.

По сути, я сделал то же самое в июле прошлого года. В лаборатории, в которой я работал в Свортморе, мы проводили рентгеновскую спектроскопию с использованием программного обеспечения под названием Xspec. Xspec сопоставляет рентгеновские спектры с данными наблюдений - в нашем случае с набором данных от Chandra. Наши модели в Xspec использовали (позвольте мне проверить) 118 отдельных параметров. Каждый раз, когда мы подбираем спектр - обычно около десяти раз в день - мы должны были указать, должен ли каждый параметр быть таким же, как другой, будет ли он соответствовать алгоритму, какое значение он принял бы, если бы он был постоянным, и т. Д. .

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

Итак, однажды ночью в конце июня я решил просто все это запустить и автоматизировать. Я бы написал сценарий, который настраивал все параметры так, как я хотел, и начинал анализ. Для этого я выбрал Tcl (да, «щекотать»), язык из конца 80-х, который живет сегодня как часть комбинации Tcl / Tk, широко используемой Python.

Я почти уверен, что я единственный человек в своем отделе, который использовал Tcl как самостоятельный язык сценариев. У кого-то из нас просто нет причин изучать его, когда все более популярными становятся «веселые» высокоуровневые языки программирования с возможностями создания сценариев (например, Python). Для сравнения, Tcl может показаться архаичным, ограниченным и мало пригодным за пределами Tcl / Tk.

Но что меня пощекотало в Tcl (видите, что я там сделал?), Так это то, что он очень хорошо работает с Xspec - кажется, лучше, чем Bash или любой другой язык сценариев. Есть несколько специализированных команд, которые упрощают получение информации из интерфейса Xspec. Если я собирался автоматизировать свой анализ по 118 параметрам, почему бы не использовать Tcl? Так я и сделал. И с тех пор у меня никогда не было причин использовать Tcl. Но в течение трех месяцев это было очень полезно.

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

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

Свободное время, скажем, на автоматизацию?

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