はじめまして。朝日ネット 開発部のfyrewoodです。
はじめに
開発部は社内システムの開発や維持保守、改善を担当しており、今回は特定プログラムの運用変更とその変更に対応する開発を行なった話をします。
続きを読む開発部の ikasat です。
皆さんは git
, ssh
, rsync
のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか?
個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、
後から Python のような汎用プログラミング言語で書き直すことがよくあります。
外部コマンド呼び出しを書き直す際に、Git 操作のために pygit2、
SSH 接続のために paramiko のようなライブラリをわざわざ使うのは大がかりだったり、
rsync
に相当するようなこなれたライブラリが存在しなかったりする場合があります。
そのような時は標準ライブラリの subprocess
モジュールを利用し、Python から外部コマンドを呼び出すことになるでしょう。
しかしながら、Python のチュートリアルページには subprocess
モジュールの解説はなく、
いきなり標準ライブラリのリファレンスを読むことになります。
subprocess
モジュールはバージョンアップに従いAPIが多数追加されており、また各種OSの事情が同じ箇所に記載されているため、一見して利用法をなかなか掴みにくいです。
この記事では対象環境を Linux に絞り、シェルスクリプトと Python スクリプトを対比した上で subprocess
モジュールの典型的な利用方法について述べます。
また、記事の後半では subprocess
モジュールの詳細に立ち入り、込み入ったケースでの注意点について記載します。
subprocess
を雰囲気で利用している人
import subprocess
したことがある人こんにちは。朝日ネット社員のjiweenです。 今日もデザインパターンを分析します。
今回は、データとその処理を分離して扱うパターンが3つ(Iterator, Visitor, Observer)登場します。ここでは、第2回で説明した「データと振る舞いの一体化は強制されない」ということを思い出してください。どのパターンでもデータと振る舞いが本質的に別の流動性を持っており、そのため自然と分離が起こります。
続きを読む朝日ネットのエンジニアのxfuzzy(男性)です。 私事ですが、妻が第一子を妊娠・出産し、私も育児休業(育休)を取得しましたので、育休取得の経緯や会社とのやり取りをレポートさせていただきます。
朝日ネットで技術部門の執行役員をしている草場です。 今回は朝日ネットが新しいことにも積極的に取り組む会社ですというアピールも込めて、 社内用ChatGPTクローン公開までの話と今後の展望を書きたいと思います。
開発部のcbmkageです。 仕事でプログラムを書いていると、どうしたら期待通りに、かつ高速に動作するアルゴリズムが実装できるか、考えることがあります。 本記事では、アルゴリズムについて新たな視点を与えてくれる本「Algorithm Design with Haskell」を紹介します。
本記事はHaskell中級者向けです。Haskellの文法や、代表的なリスト操作関数を知っていることを前提としています。
2013年に量子コンピューティングのための関数型プログラミング言語Quipperが発表されました(Quipper: A Scalable Quantum Programming Language - arXiv、以下Quipperレポート)。QuipperはHaskell言語内のDSLとして作成された言語で、もともとは IARPA Quantum Computer Science (QCS) Programのなかで開発されたものであり、とてもよく考えられた言語です。Google Scholarでみても被引用数が444(2023年2月時点)あり、量子プログラミング言語のひとつの参照点になっているものだと思います。
ということで、今回はこのQuipperレポートをもとに量子プログラミングについてみていきたいと思います。
続きを読む