シェルスクリプトマガジン

test

香川大学SLPからお届け!(Vol.71掲載)

投稿日:2021.03.25 | カテゴリー: コード

著者:樋口史弥

COVID-19の流行により、香川大学でもサークル活動に制限がかかっています。そこで、ICカードと非接触ICカードリーダーを用いて、部室の入退室をモニタリングするシステムを作成しました。部室の利用状況をリアルタイムに確認できれば密を避ける目安になりますし、何かあったときのための記録としても有用です。

シェルスクリプトマガジン Vol.71は以下のリンク先でご購入できます。

図6 IDmを読み取って表示するPythonコード

図7 サーバーと連携させるために挿入するPythonコード

図12 退出かどうかを調べるSQL 文

図13 入室情報を表示するコード(index.js)により追加される情報の例

図15 音を鳴らすために挿入するPythonコード

特集3 ラズパイでQ&Aサイトを構築(Vol.71記載)

投稿日:2021.03.25 | カテゴリー: コード

著者 麻生二郎

小型コンピュータボード「Raspberry Pi」(ラズパイ)の最大の特徴(Picoを除く)は、LinuxなどのOSが動作することです。そのOSとして「Ubuntu」という、パソコンやサーバー向けで人気の高いLinuxディストリビューションが利用できます。本特集では、ラズパイとUbuntuを組み合わせて、Stack Overflowに似たサービスを提供できるQ&Aサイトを構築します。

シェルスクリプトマガジン Vol.71は以下のリンク先でご購入できます。

図20 無線LANの設定

図27 固定IPアドレスを割り当てる

シェルスクリプトマガジンvol.71 Web掲載記事まとめ

投稿日:2021.03.25 | カテゴリー: コード

004 レポート Linuxシス管向け日本語講座
005 レポート Windows 10用無償RPAツール
006 NEWS FLASH
008 特集1 はじめてのExcel VBA/松井元
018 特集2 1Rでも快適なテレワーク環境/北谷明日香
030 特集3 ラズパイ4でQ&Aサイトを構築する/麻生二郎 コード掲載
040 特別企画 ゼロから始めるEthereum/志茂博、高畑祐輔 コード掲載
051 Hello Nogyo!
052 Raspberry Piを100%活用しよう/米田聡
056 レッドハットのプロダクト/田中司恩
065 MySQLのチューニング/稲垣大助
064 Webhook/桑原滝弥、イケヤシロウ
074 香川大学SLPからお届け!/樋口史弥 コード掲載
080 法林浩之のFIGHTING TALKS/法林浩之
082 中小企業手作りIT化奮戦記/菅雄一
086 Pythonあれこれ/飯尾淳 コード掲載
092 Bash入門/大津真
098 Techパズル/gori.sh
100 コラム『ユニケージの作法は「生き方」に通じる』/シェル魔人

Vol.71

投稿日:2021.03.25 | カテゴリー: バックナンバー

 社会人になって最も使っているソフトウエアといえば、「表計算ソフト」でしょう。その表計算ソフトの代表ともいえるのが「Micrsoft Excel」です。
 それでは、「Microsoft Excelが備える『マクロ』を利用したことはありますか」という質問には、多くの人がノー(NO)と答えるでしょう。マクロは、表の作成や計算に伴う手作業を自動化し、業務効率を大幅に向上できる大切な機能です。
 特集1では、Microsoft Excelのマクロを利用するためのプログラミング言語である「VBA」を紹介します。VBAを使い始めたい人向けの内容で、プログラミングスキルがない人でも理解しやすいように解説しています。
 特集2では、一人暮らしの人向けに、テレワーク時代におけるインテリアコーディネーションのポイントを解説しました。コロナ禍によって在宅勤務を強いられ、自宅でのテレワークが一般的になっています。ただ、ワンルームや1Kといった1部屋の空間では、仕事とプライベートを分けることが難しく、「仕事がぜんぜん進まない」「休憩がまったく取れない」のような状況に陥ることが多いでしょう。インテリアの観点からそのような状況に陥らない工夫を紹介しています。
 特集3では、小型コンピュータボード「Raspberry Pi」(ラズパイ)と、人気のLinuxディストリビューション「Ubuntu」を組み合わせて、実用性の高いサーバーを構築する方法を紹介しました。Stack Overflowライクな「Q&Aサイト」が簡単に立ち上げられるので、ぜひ試してみてください。
 特別企画は、グロックチェーンの「Ethereum」(イーサリアム)を解説しました。ビットコインのような仮想通貨だけではなく、企業間取引の中核システムにも活用できるEthereumなので、ぜひこの機会にEthereumを学んでみましょう。
 このほかに、2本の連載が始まりました。一つは、プログラミング言語「Python」をさまざまなことを利用する「Pythonあれこれ」、もう一つは、Linuxの標準シェル「Bash」の入門です。今回も読み応え十分のシェルスクリプトマガジン Vol.71。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

Vol.71 補足情報

投稿日:2021.03.25 | カテゴリー: コード

目次

 p.3の先頭の行にあるページ数の「44」は「56」の誤りです。お詫びして訂正いたします。

レポート

 p.4で紹介した20%割引クーポンは、Linux30周年に伴って30%割引に変更されました。

連載 Red Hatのプロダクト

 p.62の右上にある『を実行して「oc」コマンドを入手します』は、『を実行して「oc」コマンドのパスを確認します』の誤りです。お詫びして訂正いたします。

情報は随時更新致します。

Webアプリケーションの正しい作り方(Vol.70記載)

投稿日:2021.01.25 | カテゴリー: コード

著者:しょっさん

ソフトウエアを正しく作るために、エンジニアたちはどんなことを知らなければならないでしょうか。実際のコードを使って、より良くしていくためのステップを考えてみましょう。最終回は、本番環境として恥ずかしくないシステムをリリースする方法を解説します。

シェルスクリプトマガジン Vol.70は以下のリンク先でご購入できます。

図3 最終的に実装された各レイヤーのソースコード

■「src/api/expense.ts」の経費精算部分

■「src/interfaces/expenseController.ts」の経費精算部分

■「src/adapters/ExpenseRepository.ts」の経費精算部分

図5 アクセス認可を制御する方法

■ロールによって実行するモデル操作を変更する

■経費精算テーブルにアクセス認可用の「role」カラムを追加してアクセス認可させる

シェルスクリプトの書き方入門(Vol.70記載)

投稿日:2021.01.25 | カテゴリー: コード

著者:大津真

本連載ではシェルスクリプトの書き方をやさしく紹介します。対象とするシェルは、多くのLinuxディストリビューションが標準シェルとして採用する「Bash」です。最終回となる今回は、関数について解説します。

シェルスクリプトマガジン Vol.70は以下のリンク先でご購入できます。

図1 シェルスクリプト「hello1.sh」の内容

図2 シェルスクリプト「param_test1.sh」の内容

図3 シェルスクリプト「scope1.sh」の内容

図4 シェルスクリプト「file_test1.sh」の内容

図5 ライブラリファイル「my_lib.sh」の内容

図6 シェルスクリプト「file_test2.sh」の内容

図7 シェルスクリプト「sum_test1.sh」の内容

図8 シェルスクリプト「test1.sh」の内容

香川大学SLPからお届け!(Vol.70掲載)

投稿日:2021.01.25 | カテゴリー: コード

著者:高嶋真輝

 今回は、本物に限りなく近いデータを生成できる「敵対的生成ネットワーク」(Generative Adversarial Networks)という機械学習の技術と、「Fashion-MNIST」という服飾画像のデータセットを用いて、靴の画像生成に挑戦します。

シェルスクリプトマガジン Vol.70は以下のリンク先でご購入できます。

図3 各種ライブラリをインポートするためのコード

図4 モデルの入力次元を設定するためのコード

図5 生成器のモデルを構築する関数を定義するためのコード

図9 生成器のモデルを構築する関数を定義するためのコード

図11 GANのシステムモデルを構築する関数を定義するためのコード

図12 学習モデルをコンパイルするためのコード

図13 損失などのデータを格納する変数を定義するためのコード

図14 学習用データを準備するためのコード

図15 学習処理用の関数を定義するコード

図16 画像の表示と保存をする関数を定義するコード

バーティカルバーの極意(Vol.70掲載)

投稿日:2021.01.25 | カテゴリー: コード

著者:飯尾淳

コロナ禍の影響を受けて、2020年度は大学の講義の多くがオンライン講義になりました。対面での講義に比べると、情報伝達の面でオンライン講義はかなり不利です。また、受講状況がどうだったかについても気になります。最終回となる今回は、久しぶりに棒グラフが登場します。棒グラフで、講義コンテンツがいつ視聴されたのかを可視化します。

シェルスクリプトマガジン Vol.70は以下のリンク先でご購入できます。

図4 未読率を計算するRubyスクリプト「midoku.rb」

図7 視聴率の総計を計算するRubyスクリプト「hours.rb」

レッドハットのプロダクト(Vol.70記載)

投稿日:2021.01.25 | カテゴリー: コード

著者:森和哉

近年、ビジネスのさまざまな分野において、業務の熟練者の高齢化と、後継者不足が深刻化しています。中でも、「計画策定」業務は、豊富な経験や特殊なスキルが必要とされることから、特に属人化が進行しています。「Red Hat Business Optimizer」は、そのような企業の計画策定業務を標準化し、より効率的な計画の立案を可能にします。

シェルスクリプトマガジン Vol.70は以下のリンク先でご購入できます。

図8 制約条件「すべてのシフトに従業員が割り当てられていること」のコード

■employeeRosteringScoreRules.drl

■RosterConstraintConfiguration.java

図9 制約条件「従業員が勤務を希望している時間帯へのシフトの割り当て」のコード

■employeeRosteringScoreRules.drl

■RosterConstraintConfiguration.java

Raspberry Piを100%活用しよう(Vol.70掲載)

投稿日:2021.01.25 | カテゴリー: コード

著者:米田聡

小型コンピュータボード「Raspberry Pi」(ラズパイ)向けにさまざまな拡張ボードが発売されています。その拡張ボードとラズパイを組み合わせれば、ラズパイでいろいろなことが簡単に試せます。第3回は、電源断でもラズパイを正常終了するための拡張基板を扱います。

シェルスクリプトマガジン Vol.70は以下のリンク先でご購入できます。

図3 ADRSZUPコマンドのソースコード(ADRSZUP.c)

図4 /etc/systemd/system/adrszup.serviceファイルの内容

特集2 FIDO2の最新動向(Vol.70記載)

投稿日:2021.01.25 | カテゴリー: コード

著者:五味秀仁、板倉景子

パスワード課題の解決に注力する業界団体FIDO(ファイド)アライアンスは、
フィッシング攻撃に耐性のある、シンプルで堅牢な認証の展開を推進してい
ます。その新しい仕様「FIDO2」は、標準化団体W3Cで策定されるWeb認証仕
様「WebAuthn」(ウェブオースン)を包含し、さらにAndroidとWindowsに加えて、iOSやmacOSにも対応するなど、プラットフォーム拡大を進めています。本特集では、FIDO2の概要や仕組み、最新動向について解説します。

シェルスクリプトマガジン Vol.70は以下のリンク先でご購入できます。

図8 publicKeyデータの例

図9 認証器に登録要求を出すJavaScriptプログラムの例

図10 PublicKeyCredentialデータの例

図11 attestationObject項目に設定される情報の例

図12 clientDataJSON項目に設定される情報の例

図14 publicKeyデータの例

図15 認証器に認証要求を出すJavaScriptプログラムの例

図16 PublicKeyCredentialデータの例

シェルスクリプトマガジンvol.70 Web掲載記事まとめ

投稿日:2021.01.25 | カテゴリー: コード

004 レポート RHEL互換OSのCentOS終了
005 NEWS FLASH
008 特集1 第4世代Ryzenプロセッサ/麻生二郎
014 特集2 FIDO2の最新動向/五味秀仁、板倉景子 コード掲載
026 特別企画 Forguncyを使ってみよう/須山亜紀
040 Raspberry Piを100%活用しよう/米田聡 コード掲載
044 レッドハットのプロダクト/森和哉 コード掲載
054 MySQLのチューニング/稲垣大助
059 バーティカルバーの極意/飯尾淳 コード掲載
064 CI/CD/桑原滝弥、イケヤシロウ
066 中小企業手作りIT化奮戦記/菅雄一
070 法林浩之のFIGHTING TALKS/法林浩之
072 香川大学SLPからお届け!/高嶋真輝 コード掲載
082 円滑コミュニケーションが世界を救う!/濱口誠一
084 Webアプリの正しい作り方/しょっさん コード掲載
096 シェルスクリプトの書き方入門/大津真 コード掲載
102 Techパズル/gori.sh
104 コラム「ユニケージとその将来」/シェル魔人

Vol.70

投稿日:2021.01.25 | カテゴリー: バックナンバー

 パソコン向けのCPUとして快進撃を続けているプロセッサがあります。米Advance Micro Devices(AMD)社が開発する「Ryzen」(ライゼン)です。PlayStation 5のCPUにも採用されました。
 特に、2020年11月に発売した新アーキテクチャ「Zen 3」を採用する「Ryzen 5000シリーズ」は、同程度のインテルCPUを凌駕する性能を備えています。特集1では、Ryzen 5000シリーズのZen 3アーキテクチャと対応マザーボードについて触れました。
 今の時代、何をするのも個人を特定する、認証が欠かせないものになっています。しかし、古くからあるID/パスワード認証だけでは、セキュリティ上不安です。特集2では、生体認証など、新しい認証技術の業界標準「FIDO」(ファイド)の最新規格である「FIDO2」を紹介します。
 ITシステムの「内製化」は、さまざまな業界で大きなキーワードになりそうです。この内製化を実現するには、複雑なプログラムや開発スタイルを排除し、誰でもシステムを作れるようにしなくてはいけません。それを実現するのが、コードを書かない、または少しのコードしか書かない「ノンコード・ローコード開発」です。
 特別企画では、最もビジネスマンに浸透しているであろう表計算ソフト「Microsoft Excel」を操作するようにWebアプリを開発できるシステム構築基盤「Forguncy」(フォーガンシ―)を紹介します。
 このほか、さまざまな用途に合わせてオープンソースのデータベース管理システム「MySQL」をチューニングする新連載が始まりました。今回も読み応え十分のシェルスクリプトマガジン Vol.70。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

Vol.70 補足情報

投稿日:2021.01.25 | カテゴリー: コード

訂正・補足情報はありません。
情報は随時更新致します。

Jetson & Pi 電力測定ボードの販売開始

投稿日:2021.01.20 | カテゴリー: コード
Jetson Nano & Pi 電力測定ボード

 シェルスクリプトマガジン Vol.69(2020年12月号)の特集1で扱った、Jetson Nano 開発キットとRaspberry Piの両方で利用できる拡張基板「Jetson Nano & Pi 電力測定ボード」の販売を、自社サイトでも開始いたしました。特別価格の4540円(別途送料360円)で購入できます。
 Jetson Nano & Pi 電力測定ボードは、デジタル電流・電圧・電力計モジュール「INA260」と単色有機ELディスプレイ「SSD1306」(OLEDモジュール)を搭載しています。INA260で、Jetson Nano 開発キットやRaspberry Piの消費電力をリアルタイムに測定できます。そして、SSD1306にはさまざまな情報を表示可能です。

単色有機ELディスプレイ「SSD1306」

 Jetson Nano & Pi 電力測定ボードを購入して、Jetson Nano 開発キットとRaspberry Piを便利に使いましょう。

購入ページはこちらです。

シェルスクリプトの書き方入門(Vol.69記載)

投稿日:2020.11.25 | カテゴリー: コード

筆者:大津 真

本連載ではシェルスクリプトの書き方をやさしく紹介します。対象とするシェルは、多くのLinuxディストリビューションが標準シェルとして採用する「Bash」です。第5回は、複数の文字列を柔軟なパターンで指定できる正規表現の基礎について解説します。

シェルスクリプトマガジン Vol.69は以下のリンク先でご購入できます。

図2 シェルスクリプト「pref1.sh」の内容

図3 シェルスクリプト「whileRead1.sh」の内容

図4 シェルスクリプト「whileRead2.sh」の内容

図5 シェルスクリプト「tokyo.sh」の内容

図6 シェルスクリプト「addpref.sh」の内容

中小企業手作りIT化奮戦記(Vol.69掲載)

投稿日:2020.11.25 | カテゴリー: コード

著者:菅 雄一

 2000年にLinuxサーバーを導入して以来、筆者は、主に費用面での手軽さからOSS(オープンソースソフトウエア)を活用したシステム構築に取り組んできた。だが、2020年になってWindowsサーバーに初めて触れることになった。勤務先の会社が、バッファローの「TeraStation」という法人向けのNAS(Network Attached Storage)製品を購入し、そのOSがWindowsサーバーだったからだ。今回は、そのWindowsサーバー搭載のNAS製品を設定した話を書く。

シェルスクリプトマガジン Vol.69は以下のリンク先でご購入できます。

図3 Sambaの設定ファイル(smb.conf)の記述例

香川大学SLPからお届け!(Vol.69掲載)

投稿日:2020.11.25 | カテゴリー: コード

著者:石塚 美伶

今回は、音楽の「耳コピ」を支援する音源可視化ツールをPythonで制作する方法について紹介します。制作するツールは、WAVファイルを読み取って音を判別し、その音をピアノの鍵盤で示すGIFアニメーションを生成します。

シェルスクリプトマガジン Vol.69は以下のリンク先でご購入できます。

図4 「main.py」ファイルに記述する内容(その1)

図5 「main.py」ファイルに記述する内容(その2)

図6 「main.py」ファイルに記述する内容(その3)

図8 「main.py」ファイルに記述する内容(その4)

図9 「main.py」ファイルに記述する内容(その5)

バーティカルバーの極意(Vol.69掲載)

投稿日:2020.11.25 | カテゴリー: コード

著者:飯尾 淳

Twitterのトレンドを分析に関する解説の最終回です。これまで、TwitterのトレンドAPIを叩いてトレンドを集め、Twitter Standard search APIでトレンドに関するツイートを収集、そのデータに基づいてトレンドの構造を分析する手法を紹介しました。今回は、その日の主要なトピックは何だったかを可視化する方法を解説します。

シェルスクリプトマガジン Vol.69は以下のリンク先でご購入できます。

図7 JSONデータを得るスクリプト(get_data.py)

図9 コサイン類似度を計算するスクリプト(calc_cos_sim.py)

図11 dotスクリプトを作成するスクリプト(mk_net.rb)

レッドハットのプロダクト(Vol.69記載)

投稿日:2020.11.25 | カテゴリー: コード

著者:伊藤 智博

最近は昔と比べ、ビジネス要件のレベルが高くなりました。この要件を実現するためさまざまな技術が新たに誕生していますが、それらの技術を開発者が組み合わせて使用するのは非常に困難です。第5回では、これらの技術を組み合わせて高いレベルの要件を簡単に実現するJavaフレームワークの「Quarkus」を紹介します。

シェルスクリプトマガジン Vol.69は以下のリンク先でご購入できます。

図7 「quarkus-getting-started/src/main/java/sample/GreetingResource.java」ファイルの内容

Raspberry Piを100%活用しよう(Vol.69掲載)

投稿日:2020.11.25 | カテゴリー: コード

著者:米田 聡

小型コンピュータボード「Raspberry Pi」(ラズパイ)向けにさまざまな拡張ボードが発売されています。その拡張ボードとラズパイを組み合わせれば、ラズパイでいろいろなことが簡単に試せます。第2回は、赤外線信号の受信が可能な拡張基板を扱います。

シェルスクリプトマガジン Vol.69は以下のリンク先でご購入できます。

図3 /boot/config.txtファイルの末尾に追加する2行

図4 /etc/lirc/lirc_options.confファイルの変更箇所

特集2 1日で理解するGoプログラミング(Vol.69記載)

投稿日:2020.11.25 | カテゴリー: コード

著者:KinoCode、ハリー

「エンジニアが次に学びたい言語」のランキングでたびたび上位にランクインしているGo言語。本特集では、Goの特徴やプログラミングについての概要を、1日で学習できるようにコンパクトに解説します。この機会にぜひGoを学んでみてください。

シェルスクリプトマガジン Vol.69は以下のリンク先でご購入できます。

図13 挨拶文を表示するサンプルプログラム「greeting.go」のコード

特集1 Jetson & Pi 電力測定ボードの使い方(Vol.69記載)

投稿日:2020.11.25 | カテゴリー: コード

著者:北崎 恵凡

ユーザーコミュニティ「Jetson Japan User Group」のメンバーである筆者が設計した、小型コンピュータボードの「Jetson Nano」と「Raspberry Pi」で共通に使える拡張基板「Jetson & Pi 電力測定ボード」をシェルスクリプトマガジンオリジナルとして作成しました。本特集では、このJetson & Pi電力測定ボードの使い方を紹介します。

シェルスクリプトマガジン Vol.69は以下のリンク先でご購入できます。

Part1 Jetson & Pi 電力測定ボードを動かす

図7 電源電圧を表示するサンプルプログラム「ina260.py」のソースコード

図9 ina260_adafruit.pyのソースコード

図12 ina260_plot.pyのソースコード

図14 ssd1306_stats.pyのソースコード

図19 ina260_oled.pyのソースコード

図21 ssd1306_jp_font.pyのソースコード

図28 imagenet-console_oled.pyのソースコード

図32 imagenet-camera_oled.pyのソースコード

シェルスクリプトマガジンvol.69 Web掲載記事まとめ

投稿日:2020.11.25 | カテゴリー: コード

004 レポート MacのApple M1
005 レポート セキュリティゲーム「TERMINAL」
006 NEWS FLASH
008 特集1 Jetson & Pi 電力測定ボードの使い方/北崎恵凡 コード掲載
026 特集2 1日で理解するGoプログラミング/KinoCode、ハリー コード掲載
036 特別企画 Redmineで始めるプロジェクト管理/前田剛
048 Raspberry Piを100%活用しよう/米田聡 コード掲載
051 Hello Nogyo!
052 レッドハットのプロダクト/伊藤智博 コード掲載
062 Docker/桑原滝弥、イケヤシロウ
064 バーティカルバーの極意/飯尾淳 コード掲載
070 法林浩之のFIGHTING TALKS/法林浩之
072 香川大学SLPからお届け!/石塚美伶 コード掲載
076 円滑コミュニケーションが世界を救う!/濱口誠一
078 中小企業手作りIT化奮戦記/菅雄一 コード掲載
084 シェルスクリプトの書き方入門/大津真 コード掲載
092 Techパズル/gori.sh
094 コラム「長続きの秘訣」/シェル魔人

Vol.69

投稿日:2020.11.25 | カテゴリー: バックナンバー

 Jetson Japan User Groupの協力を得て、シェルスクリプトマガジン特製オリジナル拡張基板の第3弾となる「Jetson & Pi 電力測定ボード」を開発しました。この拡張基板は、Jetson Nanoの開発キットとRaspberry Pi(ラズパイ)の小型コンピュータボードの両方で利用できます。特集1では、Jetson & Pi 電力測定ボードの概要や使い方などを詳しく紹介します。
 特集2では、人気YouTuberであるKinoCode(キノコード)氏が解説するGoプログラミングです。Goは、米Google社が開発したプログラミング言語です。コンパイル型のために高速な上、プログラムが書きやすく、安全性も高く作られています。最近、最も注目されています。
 特集3では、オープンソースのプロジェクト管理ツール「Redmine」を分かりやすく紹介します。Redmineは「チケット」という単位でさまざまなタスクを管理できます。とても柔軟性が高く、設定次第ではプロジェクト管理だけでなく、さまざまな用途に活用できます。
 このほか、市販の拡張ボードでラズパイを100%利用する記事や、中小企業のシステム管理者の実体験を紹介した奮戦記なども連載として掲載しています。今回も読み応え十分のシェルスクリプトマガジン Vol.69。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

Vol.69 補足情報

投稿日:2020.11.25 | カテゴリー: コード

Techパズル

p.92の問題①は、

ではなく、

です。お詫びして訂正いたします。
※ PDF版とKindle版では訂正を反映する予定です。

情報は随時更新致します。

シェルスクリプトの書き方入門(Vol.68記載)

投稿日:2020.09.25 | カテゴリー: コード

著者:大津 真

本連載ではシェルスクリプトの書き方をやさしく紹介します。対象とするシェルは、多くのLinuxディストリビューションが標準シェルとして採用する「Bash」です。第4回は、繰り返し処理を実現する制御構造を中心に解説します。

シェルスクリプトマガジン Vol.68は以下のリンク先でご購入できます。

図1 リストにある果物名を一つずつ表示するシェルスクリプトの例

図2 シェルスクリプト「showArgs1.sh」の内容

図3 シェルスクリプト「showArgs2.sh」の内容

図4 シェルスクリプト「showArgs3.sh」の内容

図5 シェルスクリプト「colon_to_comma2.sh」の内容

図6 シェルスクリプト「colon_to_comma3.sh」の内容

図7 シェルスクリプト「hello10.sh」の内容

図8 シェルスクリプト「case1.sh」の内容

図9 シェルスクリプト「case2.sh」の内容

図10 シェルスクリプト「pat1.sh」の内容

図11 シェルスクリプト「cgExt1.sh」の内容

図12 シェルスクリプト「while1.sh」の内容

図13 シェルスクリプト「while2.sh」の内容

図14 シェルスクリプト「cgExt2.sh」の内容

バーティカルバーの極意(Vol.68掲載)

投稿日:2020.09.25 | カテゴリー: コード

著者:飯尾 淳

Twitterのトレンド分析に関する解説も、とうとう3回目に突入しました。今回は、共起ネットワークグラフの描画処理について説明します。描画にはD3.jsというグラフ描画フレームワークを使います。この描画処理では、データの受け渡し方法にちょっとした工夫をしており、それについても解説します。

シェルスクリプトマガジン Vol.68は以下のリンク先でご購入できます。

図2 トレンド表示画面を構成するビューのソースコード

図5 サーバー側の処理をするRailsのコントローラのコード

図6 クライアント側の処理をするコード

Webアプリケーションの正しい作り方(Vol.68記載)

投稿日:2020.09.25 | カテゴリー: コード

著者:しょっさん

ソフトウエアを正しく作るために、エンジニアたちはどんなことを知らなければならないでしょうか。実際のコードを使って、より良くしていくためのステップを考えてみましょう。第8回は、第1回で述べた「クリーンアーキテクチャ」に習って、ロジックと、フレームワークやライブラリ、その他の処理を分離します。

シェルスクリプトマガジン Vol.68は以下のリンク先でご購入できます。

図1 経費精算申請を処理しているコード

図3 「User Entity」オブジェクト

図5 「common/index.ts」ファイル

図6 「domains/expenseEntity.ts」ファイル

図7 「usecases/SubmitExpense.ts」ファイル

図8 「usecases/IExpenseRepository.ts」ファイル

図9 「interfaces/ExpenseController.ts」ファイル

図10 「interfaces/ExpenseRepository.ts」ファイル

図11 「expense.ts」ファイル

図13 「index.ts」ファイル

香川大学SLPからお届け!(Vol.68掲載)

投稿日:2020.09.25 | カテゴリー: コード

著者:山下 賢治

初めまして。香川大学 工学研究科 修士1年の山下賢治です。今回は、JavaScriptライブラリ「React」と、API向けのクエリー言語「GraphQL」を用いて、GitHubで公開されているリポジトリの検索Webアプリケーションを作成します。リポジトリの絞り込みには、開発言語とスター数を利用します。

シェルスクリプトマガジン Vol.68は以下のリンク先でご購入できます。

図3 「src/auth.js」ファイルに記述する内容

図4 「src/index.js」ファイルに記述する内容

図5 「src/graphql/index.js」ファイルに記述する内容

図6 「src/components/RepoInfo.jsx」ファイルに記述する内容

図9 変更後の「src/components/RepoInfo.jsx」ファイルの内容

レッドハットのプロダクト(Vol.68記載)

投稿日:2020.09.25 | カテゴリー: コード

著者:小杉 研太

前回(第3回)に引き続き、アプリやデータの連携を実現するためのミドルウエア製品「Red Hat Integration」を紹介します。第4回はRed Hat Integrationに含まれる「Red Hat AMQ」と「Red Hat Fuse」のアップストリームとなる「Strimzi」と「Apache Camel」について触れます。

シェルスクリプトマガジン Vol.68は以下のリンク先でご購入できます。

図17 KafkaとSlackを統合できるコード

Raspberry Piを100%活用しよう(Vol.68掲載)

投稿日:2020.09.25 | カテゴリー: コード

著者:米田 聡

小型コンピュータボード「Raspberry Pi」(ラズパイ)向けにさまざまな拡張ボードが発売されています。その拡張ボードとラズパイを組み合わせれば、ラズパイでいろいろなことが簡単に試せます。第1回は、電子ペーパーディスプレイ搭載の拡張基板を扱います。

シェルスクリプトマガジン Vol.68は以下のリンク先でご購入できます。

図3 電子ペーパーディスプレイに文字を表示するサンプルプログラム(text.py)

図5 電子ペーパーディスプレイに画像を表示するサンプルプログラム(logo.py)

シェルスクリプトマガジンvol.68 Web掲載記事まとめ

投稿日:2020.09.25 | カテゴリー: コード

004 レポート 暗号通信のTLS1.2以前に脆弱性
005 NEWS FLASH
008 特集1 Windows 10でWSL 2を使おう/三沢友治
020 特集2 高機能CMS Drupal入門/小薗井康志
034 特別企画 量子コンピュータの基礎を知る/沼田祈史、小林有里
046 Raspberry Piを100%活用しよう/米田聡 コード掲載
049 Hello Nogyo!
050 レッドハットのプロダクト/小杉研太 コード掲載
059 中小企業手作りIT化奮戦記/菅雄一
064 法林浩之のFIGHTING TALKS/法林浩之
066 香川大学SLPからお届け!/山下賢治 コード掲載
072 RPA/桑原滝弥、イケヤシロウ
074 Webアプリの正しい作り方/しょっさん コード掲載
084 円滑コミュニケーションが世界を救う!/濱口誠一
086 バーティカルバーの極意/飯尾淳 コード掲載
092 シェルスクリプトの書き方入門/大津真 コード掲載
100 Techパズル/gori.sh
102 コラム「人生の入り口」/シェル魔人

Vol.68

投稿日:2020.09.25 | カテゴリー: バックナンバー

 Linuxを使ってみたいと思っても環境を用意するのはかなりの手間です。しかし、その状況は変わりつつあります。パソコンのOSとしてデファクトスタンダード(事実上の標準)となる「Windows」を開発している米Microsoft社が、Linuxに関連する技術やソフトウエアに対して積極的に取り組んでいるからです。
 そこで、特集1では、Windows 10の標準機能となった、WindowsとLinuxを一緒に動作させるための仕組み「Windows Subsystem for Linux」(WSL)を取り上げます。2020年5月に登場したWSL 2では、Linuxとして使える機能や性能が大幅に向上しています。本特集では、このWSL 2のインストールおよび、Linuxディストリビューション「Ubuntu」の導入、GUIアプリの実行、Dockerの起動などのやり方を初心者にも分かりやすく解説しています。
 特集2では、コンテンツ管理システム(CMS)の「Drupal」を紹介しています。このDrupalは、簡単に導入してそのまま使えるだけでなく、高い拡張性によりカスタマイズして使えます。米国の政府機関、米Johnson & Johnson社などの製薬会社、米IBM社や米Red Hat社といったIT企業などのWebサイトで利用されている本格的なものです。
 特別企画では、最近話題の「量子コンピュータ」を扱いました。量子コンピュータは、現在のコンピュータと異なる仕組みや原理で動いています。簡単な計算の処理を理解するだけでも一苦労です。そこで「Minecraft」風のクイズゲームで楽しみながら、量子コンピュータについて学びましょう。
 このほか、Raspberry Pi(ラズパイ)に関する新連載、詩とアートを組み合わせたIT用語の連載も開始しました。今回も読み応え十分のシェルスクリプトマガジン Vol.68。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

Vol.68 補足情報

投稿日:2020.09.25 | カテゴリー: コード

特集1 Windows 10でWSL 2を使おう

WSL 2ですが、Windows 10 May 2020 Updateを適用したWindows 10 バージョン2004以降だけでなく、バージョン1909や1903にもバックポートされて使えるようになりました。詳しくは、こちらを参照してください。

情報は随時更新致します。

香川大学SLPからお届け!(Vol.67掲載)

投稿日:2020.07.25 | カテゴリー: コード

著者:山内 真仁

以前、ゲームエンジン「Unity」を使ったレースゲームをSLPのチーム活動で
作成しました。その経験を生かして今回は、Unityとプログラミング言語「C#」を使って、簡単なレースゲームを作成する方法を紹介します。Unityの物理エンジンを使用することで、複雑なコードを書かなくてもリアルな挙動のゲームを作成できます。

シェルスクリプトマガジン Vol.67は以下のリンク先でご購入できます。

図12 「CarController.cs」ファイルに記述する内容

図14 CarController.csファイルに追加する記述

図16 「Timer.cs」ファイルに記述する内容

Webアプリケーションの正しい作り方(Vol.67記載)

投稿日:2020.07.25 | カテゴリー: コード

著者:しょっさん

ソフトウエアを正しく作るために、エンジニアたちはどんなことを知らなければならないでしょうか。実際のコードを使って、より良くしていくためのステップを考えてみましょう。第7回は、JavaScriptフレームワーク「Vue.js」でアプリを作成し、テストとリリースの方法を紹介します。

シェルスクリプトマガジン Vol.67は以下のリンク先でご購入できます。

図2 Vue.js および各ライブラリを利用するための定義(simple.htmlから抜粋)

図3 Vue RouterのHTMLファイル側の定義

図4 Vue RouterのJavaScript側の定義

図5 認証部分のVueコンポーネントとVue Router定義

図6 認証部分のHTMLテンプレート

図7 請求処理ののVueコンポーネントとVue Router定義

図8 請求処理のHTMLテンプレート

図9 支払処理のVueコンポーネントとVue Router定義

図10 支払処理のHTMLテンプレート

図14 controllers/auth/authentication.tsファイルの追加・改修部分

図15 controllers/auth/authorization.tsファイル

図16 API用のモジュールとルーティング定義

図18 請求処理(/api/expense.ts)

図19 支払処理(/api/payment.ts)

図35 修正した/src/index.tsファイル

バーティカルバーの極意(Vol.67掲載)

投稿日:2020.07.25 | カテゴリー: コード

著者:飯尾 淳

前回に引き続き、筆者らの研究グループが開発したTwitterのトレンド分析システムについて解説します。前回は、そもそもTwitterのトレンドとは何かから始まり、開発者登録をしてトレンドAPIを叩き、そのリストを収集する方法まで説明しました。今回は、トレンドをキーにしてツイートを取得する方法と、ツイート群を対象として共起ネットワークグラフを作る方法を紹介します。

シェルスクリプトマガジン Vol.67は以下のリンク先でご購入できます。

図4 トレンドを収集して分析するプログラムのコード(その1)

図5 トレンドを収集して分析するプログラムのコード(その2)

図6 トレンドを収集して分析するプログラムのコード(その3)

図7 ワードグラフ作成部で出力されるRubyスクリプトの例

レッドハットのプロダクト(Vol.67記載)

投稿日:2020.07.25 | カテゴリー: コード

著者:杉本 拓

「Red Hat Integration」はアプリやデータの連携を実現するための、インテグレーションパターン、API 連携、API管理とセキュリティ、データ変換、リアルタイムメッセージング、データストリーミングなどを提供するオープンソース製品です。同製品には多くの機能が含まれていますが、本連載ではその概要と一部の機能を紹介します。

シェルスクリプトマガジン Vol.67は以下のリンク先でご購入できます。

図18 二つのdependencyを追加する

図19 「AvroRegistryExample.java」ファイルの内容

図20 「price-schema.avsc」ファイルの内容

図21 登録されたAvroのスキーマ

図22 プロパティファイル

ラズパイセンサーボードで学ぶ電子回路の制御(Vol.67掲載)

投稿日:2020.07.25 | カテゴリー: コード

著者:米田 聡

シェルスクリプトマガジンでは、小型コンピュータボード「Raspberry Pi」(ラズパイ)向けのセンサー搭載拡張ボード「ラズパイセンサーボード」を制作しました。最終回は、前回作成したスクリプトによって記録された温度と湿度をグラフ化して、Webブラウザで閲覧可能にします。

シェルスクリプトマガジン Vol.67は以下のリンク先でご購入できます。

図1 サンプルのHTMLテンプレートファイル(~/webapp/templates/hello.html)

図2 サンプルのWebアプリケーションスクリプト(~/webapp/hello.py)

図4 トップページのテンプレートファイル(~/webapp/templates/index.html)

図5 テンプレートファイルからトップページを作成するスクリプト(~/webapp/app.py)

図8 グラフを表示するページのテンプレートファイル(~/webapp/templates/graph.html)

図9 app.pyに追加する関数

特集3 PythonとSeleniumを活用 自動操作とデータ分析(Vol.67記載)

投稿日:2020.07.25 | カテゴリー: コード

著者:川嶋 宏彰

最近、プログラミング言語「Python」による自動化やデータ分析が注目されています。本特集では、Pythonと、Webブラウザを自動操作するためのライブラリ「Selenium WebDriver」を用いて、インターネットから取得できるオープンデータを例に、Webブラウザの自動操作方法およびデータ分析方法を分かりやすく紹介します。

シェルスクリプトマガジン Vol.67は以下のリンク先でご購入できます。

図4 非headlessモードのサンプルコード(sample.py)

図7 headlessモードのサンプルコード

図24 Seleniumを用いた気温データの自動取得プログラム

図27 e-StatのAPI機能を利用した家計調査データを取得するプログラム

シェルスクリプトマガジンvol.67 Web掲載記事まとめ

投稿日:2020.07.25 | カテゴリー: コード

004 レポート Microsoft社製BASICのソースコード公開
005 NEWS FLASH
008 特集1 まんがで学ぶ自宅ネットワーク入門/麻生二郎
014 特集2 Cisco Webexが実現するテレワーク環境/粕谷一範
022 特集3 PythonとSeleniumを活用 自動操作とデータ分析/川嶋宏彰 コード掲載
035 Hello Nogyo!
036 特別企画 Microsoft Power Platform(後編)/清水優吾
050 ラズパイセンサーボードで学ぶ 電子回路の制御/米田聡 コード掲載
056 レッドハットのプロダクト/杉本拓 コード掲載
064 法林浩之のFIGHTING TALKS/法林浩之
066 バーティカルバーの極意/飯尾淳 コード掲載
072 tele-/桑原滝弥、イケヤシロウ
074 中小企業手作りIT化奮戦記/菅雄一
078 Webアプリの正しい作り方/しょっさん コード掲載
092 円滑コミュニケーションが世界を救う!/濱口誠一
094 香川大学SLPからお届け!/山内真仁 コード掲載
102 シェルスクリプトの書き方入門/大津真 コード掲載
108 Techパズル/gori.sh
110 コラム「ユニケージの本領発揮」/シェル魔人

Vol.67

投稿日:2020.07.25 | カテゴリー: バックナンバー

 新型コロナウイルス感染拡大による緊急事態宣言により、在宅勤務やテレワークが普及しました。今号に掲載した二つの特集では、在宅勤務やテレワークをテーマにしています。
 特集1では、在宅勤務で重要になる「自宅ネットワーク」を扱いました。冒頭部分にまんがを使って、自宅ネットワークの仕組みを知らない人にも分かりやすく解説しています。
 特集2は、テレワーク環境での会議やイベント、共同作業を実現するためのサービスの「Cisco Webex」です。現在、一番注目されているサービスの一つと言ってよいでしょう。機能概要、オンライン会議の開催方法や会議中の操作方法、将来実装される機能を詳しく紹介しています。
 特集3では、PythonとSelenium WebDriverを利用した、Webブラウザの自動操作と、Webブラウザから取得したデータの分析を扱っています。Selenium WebDriverを用いることで、さまざまなWebサイト上のデータをスクレイピングできます。
 特別企画では、前回と同様にMicrosoft Power Platform」を解説します。今回も読み応え十分のシェルスクリプトマガジン Vol.67。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

Vol.67 補足情報

投稿日:2020.07.25 | カテゴリー: コード

訂正・補足情報はありません。
情報は随時更新致します。

シェルスクリプトの書き方入門(Vol.67記載)

投稿日:2020.07.22 | カテゴリー: コード

著者:大津 真

本連載ではシェルスクリプトの書き方をやさしく紹介します。対象とするシェルは、多くのLinuxディストリビューションが標準シェルとして採用する「Bash」です。第3回は、シェルスクリプトにおける条件分岐の使用方法を中心に解説します。

図1 シェルスクリプト「ping.sh」の内容

図2 シェルスクリプト「secret1.sh」の内容

図3 シェルスクリプト「secret2.sh」の内容

図4 シェルスクリプト「secret3.sh」の内容

図5 平成年を西暦年に変換するシェルスクリプト「heiseiToSeireki.sh」

図6 指定したファイル中のコロンをカンマに変換するシェルスクリプト「colon_to_comma.sh」

図7 引数チェック用のコードを追加した「colon_to_comma2.sh」

第5回 Chromeブラウザを導入する

投稿日:2020.07.20 | カテゴリー: 記事

 インターネットのWebサイトへのアクセスや、インターネットサービスの利用が最近のパソコンの使い道です。Linuxパソコンでもそれは変わりません。しかし、WindowsやMacと違い、インターネットで提供されているサービスのほとんどがLinuxをサポートしていません。そのため、何か問題が発生した場合は自力で解決しなくてはいけません。また、Linux自体が原因の場合、問題を解決できないこともあります。できるだけそのようなことが起きないように、WindowsやMacに提供されているツールと同じものを使います。

 インターネットへのアクセスには「Webブラウザ」を使います。これはLinuxでも同じです。本連載で利用しているLubuntuにはWebブラウザとして「Mozilla Firefox」がインストールされています。ただし、バージョンが古かったり、Linux版Mozilla Firefoxだと一部の機能が使えなかったりします。WindowsとMacと同じとは言い難いです。

 そこで、Linuxで最もお薦めなWebブラウザは「Google Chrome」です(図1)。公式サイトから入手してインストールする必要がありますが、米Google社がLinux向けに無償で提供していてWindows版やMac版のGoogle Chromeと同じように動作します。

図1 Lubuntu上でGoogle Chromeを動作させたところ

 ちなみに、Lubuntuでは、Google Chrome(以下、Chrome)のオープンソース版である「Chromium」なら標準でインストールできます。ただし、ChromiumにはFlash Playerが同こんされないなど、いくつかの違いがあるのであまりお薦めはできません(Flash Playerは2020年12月31日に提供終了予定)。

第4回 日本語入力を可能にする

投稿日:2020.07.6 | カテゴリー: 記事

 前回は、パソコンにLubuntuをインストールしました。Lubuntuのインストール時に、利用地域やタイムゾーンで日本(Aisa/Tokyo)を選んでいるので、英語が一部残っているものの、メニューなどは日本語で表示されています。そのため、Linux(Lubuntu)パソコンを日本語で使う環境が整っているように見えますが、日本語の入力ができません。

 Windowsパソコンと同様に、キーボードの[半角/全角]キーを押したら、日本語入力へ切り替えられるようにします(図1)。

図1 [半角/全角]キーを押して日本語入力と英語(半角英数)入力に切り替え

日本語入力システムが必要

 Lubuntuで日本語入力を可能にするには、インプットメソッドフレームワークと、そのフレームワークに対応した日本語入力システム(インプットメソッド)が必要です。インプットメソッドとは、パソコンなどのコンピュータ上で文字を入力するためのソフトウエア、インプットメソッドフレームワークとは、インプットメソッドと他のアプリケーションを結び付けるための機能やライブラリを含んでいるソフトウエアです。

 Lubuntuでは、「Fcitx」というインプットメソッドフレームワークと、それに対応した日本語入力システムの「Mozc」を使います。Mozcは米Google社が開発した「Google日本語入力」のオープンソース版です。Google日本語入力は、WindowsやmacOS、Android向けにも用意されていて、とても評判が高いソフトウエアです。Mozcでは一部の機能が提供されていないものの、便利に使えます。

 Fcitxは、すでにLubuntuにインストールされています。Fcitx対応のMozcは、Lubuntuにインストールしてすぐに実行できる形式の「パッケージ」としてインターネット上で配布されています。パッケージについては、別の回に詳しく紹介する予定ですが、ここでは「apt」というコマンドで、パッケージのインストール(導入)やアンインストール(削除)、アップデート(更新)ができることだけを覚えておいてください。この後で、aptコマンドを使って、Fcitx対応のMozcをインストールします。

第3回 Lubuntuをインストールする

投稿日:2020.06.22 | カテゴリー: 記事

 前回、パソコンの内蔵ストレージを丸ごとバックアップしてLinuxをインストールする準備をしました。今回は、内蔵ストレージをすべて消去し、いよいよLinuxをインストールします。インストールするLinuxディストリビューションは、第1回で決定した「Lubuntu 20.04 LTS」です(図1)。

図1 Lubuntu 20.04 LTSのデスクトップ画面

Lubuntuをライブ起動する

 前回と同様に、Linuxのメディアとして作成したUSBメモリーからLubuntuをライブで起動しましょう。手順は、前回を参照してください。最初に図2の画面が開くので「Start Lubuntu」が選ばれた状態でキーボードの[Enter]キーを押します。そのまま待っても構いません。

図2 「Start Lubuntu」が選ばれた状態で[Enter]キーを押す

 しばらくするとLubuntuのデスクトップ画面が開きます(図3)。

図3 Lubuntuのデスクトップ画面が開く

ネットワークに接続する

 まずは、Lubuntuからインターネットへアクセス可能にします。こうしておくと、日本という利用地域や時間の基準となる「タイムゾーン」を自動で取得できます。また、インストール後に自動でネットワークに接続され、後述するLubuntuを構成するソフトウエアのアップデートもスムーズに行えます。なお、有線LANで接続している場合は、基本的にインターネットにアクセスできる状態になっているので、以下の設定は不要です。無線LANの場合にのみ設定してください。

デスクトップ画面の右下にある、ディスプレイのようなアイコンをクリックします(図4)。

図4 ディスプレイのようなアイコン(赤枠)をクリック

無線LANのSSID(Service Set IDentifier)一覧が表示されます。一覧の中から自分が利用しているブロードバンドルーターのSSIDを探して、それをクリックします(図5)。

図5 SSIDを選択する図5 SSIDを選択する

 通常、WPA2-PSKなどの認証および暗号化を利用しているので、パスワードの入力ダイアログが表示されます(図6)。ブロードバンドルーターに設定されている無線LANへの接続パスワードを入力します。

図6 パスワードを入力する

 パスワードが正しければ、右上に無線LANへの接続メッセージが表示されます(図7)。

図7 無線LANに接続された旨を示すメッセージ

Vol.66 補足情報

投稿日:2020.05.25 | カテゴリー: コード

Techパズル

p.104の左下にある図は、前号(Vol.65)の解答です。

情報は随時更新致します。

シェルスクリプトの書き方入門(Vol.66記載)

投稿日:2020.05.25 | カテゴリー: コード

著者:大津 真

本連載ではシェルスクリプトの書き方をやさしく紹介します。対象とするシェルは、多くのLinuxディストリビューションが標準シェルとして採用する「Bash」です。第2回では、変数の概要と、シェルスクリプト内でコマンドライン引数を扱う方法について解説します。

シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

図4 シェルスクリプト「 permtest1.sh 」の内容

図5 シェルスクリプト「 colon_to_comma.sh 」の内容

図6 加工対象のファイル「 customer.txt 」の内容

ユニケージ開発手法入門(Vol.66掲載)

投稿日:2020.05.25 | カテゴリー: コード

著者:石崎 博之、掛本 健一

ユニケージ開発手法によるシステムの設計・実装・保守を数年以上経験したメンバーが、業務システム構築のための「ユニケージ開発手法」を解説します。我々の経験に基づきながら、具体的なシステム構築の流れを示していきます。第1回は、ユニケージ開発手法の特徴をつかむです。

シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

図2 ユニケージのシェルスクリプトの例

香川大学SLPからお届け!(Vol.66掲載)

投稿日:2020.05.25 | カテゴリー: コード

著者:檜垣 龍德

 今回は、Pythonとそのライブラリである「slacker」「python-crontab」を用いて、チャットサービス「Slack」にメッセージを自動投稿するbo(t Slackbot)を開発する方法を解説します。例として開発するのは、参加者からメッセージが投稿されるまで「Get Up !!」というメッセージを連続投稿するbotです。

シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

図7 「.env」ファイルに記述する内容

図8 「settings.py」ファイルに記述する内容

図9 「main.py」ファイルに記述する内容

図11 「cron.py」ファイルに記述する内容

図12 書き換えたmain.pyファイルの内容

図14 書き換えたmain.pyファイルに追記する内容

Webアプリケーションの正しい作り方(Vol.66記載)

投稿日:2020.05.25 | カテゴリー: コード

著者:しょっさん

ソフトウエアを正しく作るために、エンジニアたちはどんなことを知らなければならないでしょうか。実際のコードを使って、より良くしていくためのステップを考えてみましょう。第6回は、アプリケーションの開発やテストを実施する環境について詳しく考えます。

シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

図2 モックのコード(swagger.json)

バーティカルバーの極意(Vol.66掲載)

投稿日:2020.05.25 | カテゴリー: コード

著者:飯尾 淳

 計量社会学や数理社会学という学問分野があります。人々の行動や社会活動から生み出される多様なデータを定量的に分析することによって、その背景となる社会的な構造や原理を見いだそうという社会学です。筆者はそれらの専門家ではありませんが、社会情報学の文脈で似たような研究に従事しています。今回は、筆者らの研究成果の一つであるTwitterのトレンド分析について、その概要を紹介します。

シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

図6 トレンドのキーワードを取得するPythonコード

レッドハットのプロダクト(Vol.66記載)

投稿日:2020.05.25 | カテゴリー: コード

著者:平田 千浩

「Red Hat Ansible Automation Platform」は、OSS のAnsibleとAWXを基とした企業向け自動化の基盤です。RHELを含むさまざまなOS、さまざまなアプリケーション、さまざまな機器に対応し、局所的な作業からバージョン管理システムと連携した構成管理までを自動化できます。

シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

図2 インベントリファイルの例(hosts)

図3 Cisco IOS向けの簡単なPlaybookの例(snmp.yml)

図6 Arista EOSを追加したインベントリファイル例(hosts)

図7 Arista EOSのコンフィグをバックアップするPlaybookの例(eos_backup.yml)

図10 CISCO IOSのコンフィグをバックアップするPlaybookの例

図11 保存したArista EOSのコンフィグからリストアするPlaybookの例(eos_restore.yml)

図12 保存したCisco IOSのコンフィグからリストアするPlaybookの例

センサーボードで学ぶ電子回路の制御(Vol.66掲載)

投稿日:2020.05.25 | カテゴリー: コード

著者:米田 聡

シェルスクリプトマガジンでは、小型コンピュータボード「Raspberry Pi」(ラズパイ)向けのセンサー搭載拡張ボード「ラズパイセンサーボード」を制作しました。第13 回では、同ボードに搭載された湿温度・気圧センサー「BME280」から取得したデータをグラフ化する準備をします。

シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

図2 PythonからSQLiteを操作するサンプルプログラム(test_sqlite3.py)

図3 温度、湿度、気圧のデータをSQLiteに保存するプログラム(storebme.py)

特集1 1000円から始めるIoT(Vol.66記載)

投稿日:2020.05.25 | カテゴリー: コード

著者:麻生 二郎

センサーをつないで状態を監視するだけのIoT(モノのインターネット)を
始めるには、小型コンピュータボード「Raspberry Pi」は高機能かつ高価で
す。そこで1000円以下で購入できるマイコンボード「ESP32 ESP-32S」を使
って、簡単なプログラムと共にI oTを始めてみましょう。

シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

Part2 ESP32で電子回路を制御する

図2 ネットワーク接続プログラム(wlan.py)

図3 簡易サーバーを立ち上げるプログラム(webserver_test.py)

図12 Webブラウザから湿温度・気圧を取得するプログラム(web_bme280.py)

図16 明るさによってライトの点灯を促すプログラム(web_cds.py)

シェルスクリプトマガジンvol.66 Web掲載記事まとめ

投稿日:2020.05.25 | カテゴリー: コード

004 レポート Linuxの新版「Ubuntu 20.04 LTS」リリース
005 レポート VS Codeライクな「Eclipse Theia」登場
006 NEWS FLASH
008 特集1 1000円から始めるIoT/麻生二郎 コード掲載
023 Hello Nogyo!
026 特集2 OneDriveを有効活用しよう/三沢友治
042 特別企画 Microsoft Power Platform(前編)/清水優吾
050 ラズパイセンサーボードで学ぶ 電子回路の制御/米田聡 コード掲載
054 レッドハットのプロダクト/平田千浩 コード掲載
056 バーティカルバーの極意/飯尾淳 コード掲載
062 μ(マイクロ)/桑原滝弥、イケヤシロウ
064 Webアプリの正しい作り方/しょっさん コード掲載
070 円滑コミュニケーションが世界を救う!/濱口誠一
072 MySQL Shellを使おう/梶山隆輔
079 中小企業手作りIT化奮戦記/菅雄一
084 法林浩之のFIGHTING TALKS/法林浩之
086 香川大学SLPからお届け!/檜垣龍德 コード掲載
092 ユニケージ開発手法入門/石崎博之、掛本健一 コード掲載
098 シェルスクリプトの書き方入門/大津真 コード掲載
104 Techパズル/gori.sh
106 コラム「コロナ禍の中で」/シェル魔人

Vol.66

投稿日:2020.05.25 | カテゴリー: バックナンバー

 小型コンピュータボード「Raspberry Pi」(ラズパイ)が高性能になり、センサー制御などの組み込み機器の用途で違和感を感じるようになりました。また、発熱量や消費電力が大きいのも問題です。
 センサーを制御するなら、1000円以下で購入できるマイコンボードで十分です。そこで、特集1では「ESP32 ESP-32S」というマイコンボードと、プログラミング言語「Python」を組み合わせて、簡易なIoT(モノのインターネット)環境を構築します。ラズパイと同じようにPythonプログラムでセンサーを制御できるので、初心者でも十分楽しめる内容です。
 特集2では、Windows 10の標準オンラインストレージ「OneDrive」の有効活用する方法を紹介します。Windows 10のパソコンなら、無料で5Gバイトのストレージ容量が利用できるOneDriveを使うべきです。OneDriveでより快適で便利なパソコン環境を手に入れましょう。
 特別企画では、最近注目されている「ノーコーディングプラットフォーム」「ローコーディングプラットフォーム」の一つである「Microsoft Power Platform」を解説します。前後編でMicrodsoft PowerPlatformが備える機能を一つひとつ詳しく紹介します。
 このほか、業務システムを構築するための「ユニケージ開発手法」の入門連載が開始しました。同入門連載では、実際に業務システム構築の流れを示しながら、実際の経験を基にユニケージ流のやり方を分かりやすく解説していきます。
 今回も読み応え十分のシェルスクリプトマガジン Vol.66。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

第2回 パソコンのストレージをバックアップする

投稿日:2020.05.18 | カテゴリー: 記事

 Linuxをパソコンにインストールする前に、元の状態に戻せるようにパソコンの内蔵ストレージ(ハードディスクやSSD)を丸ごとバックアップします。Windows 10の場合、回復ドライブを使ってイメージファイルとして丸ごとバックアップできますが、少々手順が面倒です。

 そこで、Linuxをライブで起動して「dd」コマンドを使ってイメージファイルとしてバックアップします。ddは、ストレージの書き込まれているデータを「ブロック」という単位でコピーできるコマンドです(図1)。

図1 丸ごとバックアップ

 ddコマンドなら、ストレージの一部が壊れていて読みだせないファイルも、読み出せるブロックだけを取り出してバックアップできます。そして、バックアップ時に1行のddコマンドを実行すればよく、復元時も、指定する入出力の引数が変わるだけで、同じ1行のddコマンドを実行するだけです。

第1回 Linuxのメディアを作成する

投稿日:2020.05.4 | カテゴリー: 記事

 Linuxとは、OS(基本ソフト)のコア(核)となるソフトウエア(カーネル)の名前です。WindowsやmacOSのようにパソコン上で動作させるには、このカーネルと、各種のツールやユーティリティ、ライブラリなどのソフトウエアをソースコードからビルド(コンパイル)して組み合わせる必要があります。
 ソースコードのほとんどは無償で公開されているので、それなりの知識があれば自らビルドして組み合わせることも可能です。ただし、すでにOSとして動作する状態して配布されている「Linuxディストリビューション」があります。Linuxを使いたいだけなら、こちらのLinuxディストリビューションを用います。

Linuxディストリビューションの選択方法

 Linuxディストリビューションは、一つではありません。DebianやUbuntu、Fedora、CentOSなどの複数の種類があります。これは、異なる団体が自分たちが決めたポリシーに従って構成するソフトウエアを決定し、それらをソースコードからビルドして組み合わせて配布しているからです。
 個々のLinuxディストリビューションによって、それぞれ特徴が違います。ノートパソコンやデスクトップパソコンに導入して使うなら、次の五つを満足するものがよいでしょう。

  1. 簡単に導入や削除ができるアプリケーションが豊富に存在する
  2. インターネット上に多数の情報が掲載されている
  3. 不具合対処やセキュリティ対策のソフトウエアアップデートが長期に提供される
  4. 日本語が使える
  5. デスクトップ画面が快適に操作できる


連載 ノートやデスクトップでLinuxを始めよう

投稿日:2020.05.1 | カテゴリー: 記事

 テレワークや在宅勤務というビジネススタイルが広がってきています。職場と同じように自宅で効率良く仕事をこなすためには、ある程度性能の高いパソコンが不可欠です。また、カメラやマイク付きのノートパソコンなら、そのままテレワークに使えます。これらの理由から、自宅で使っていたパソコンを買い替えた人も多いでしょう。
 買い替えによって、今まで使っていたパソコンが不要になります。それを予備機として使い続けるのもよいですが、この機会にLinuxに入れ替えて、快適で十分実用に耐え得るパソコンとして復活させてみましょう。
 本連載では、WindowsがインストールされたノートパソコンやデスクトップパソコンにLinuxを導入し、普段使えるパソコンに仕立てていきます。

第1回 Linuxのメディアを作る 
第2回 パソコンのストレージをバックアップする
第3回 Lubuntuをインストールする
第4回 日本語入力を可能にする
第5回 Chromeブラウザを導入する
第6回 外付けストレージを利用する 諸事情により公開延期

シェルスクリプトの書き方入門(Vol.65記載)

投稿日:2020.03.25 | カテゴリー: コード

筆者:大津 真

本連載ではシェルスクリプトの書き方をやさしく紹介します。対象とす
るシェルは、多くのLinuxディストリビューションが標準シェルとして
採用する「Bash」です。第1回目となる今回は、シェルスクリプトの概要
と作成、実行の方法を解説します。

シェルスクリプトマガジン Vol.65は以下のリンク先でご購入できます。

図4 ホスト名と日時を表示するシェルスクリプト「 today1.sh 」

図5 シバンを追加したシェルスクリプト「 today2.sh 」

図6 コメントを追加したシェルスクリプト「 today3.sh 」

図8 コマンド置換を使用したシェルスクリプト「today4.sh」

香川大学SLPからお届け!(Vol.65掲載)

投稿日:2020.03.25 | カテゴリー: コード

筆者:重松 亜夢

 はじめまして!香川大学の重松亜夢です。2019年秋にSLPの所長を引き継ぎま
した。SLPの最近の主な活動はチーム開発です。2019年12月には部員が最近の活動をブログに投稿し、Advent Calendarを作成しました。また、2020年1月には餅つきで親交を深めました。
 今回は、Webアプリケーションに認証機能を実装します。具体的には、米Google社の「Google Cloud Platform」のAPIを使って「Googleでログイン」を実装します。

シェルスクリプトマガジン Vol.65は以下のリンク先でご購入できます。

図9 「.env」ファイルに記述する内容

図10 「main.go」ファイルに記述する内容

図11 「router.go」ファイルに記述する内容

図12 「router.go」ファイルに追記する内容

図13 「sesseion.go」ファイルに記述する内容

図13 「sesseion.go」ファイルに記述する内容

図14 「sesseion.go」ファイルに追記する内容

図16 「sesseion.go」ファイルのCallbackHandler関数の変更コード

図17 「router.go」ファイルに追記する内容

図18 「router.go」ファイルのinit関数に挿入する内容

図19 「handler.go」ファイルに記述する内容

図20 「index.html」ファイルに記述する内容

図21 「base.html」ファイルに記述する内容

図23 「router.go」ファイルのinit関数定義部分に挿入する内容

図24 「router.go」ファイルの末尾に追記する内容

図25 認証後だけアクセスできるルートを設定する例

バーティカルバーの極意(Vol.65掲載)

投稿日:2020.03.25 | カテゴリー: コード

筆者:飯尾 淳

 今回はデータ分析から少し離れてフラクタル図形について語りましょ
う。例として、縦棒(バーティカルバー)と横棒が縦横無尽に組み合わさっ た図形であるヒルベルト曲線を考えます。ヒルベルト曲線はフラクタル図形の一つで、自己相似性という特徴を持ちます。本記事ではこれを描画するプログラムを紹介します。シンプルなプログラムでこんなにも複雑な図形を描くことができるのかと驚くはずです。

シェルスクリプトマガジン Vol.65は以下のリンク先でご購入できます。

図4 図を出力するためのHTMLコード

図5 1次ヒルベルト曲線を描くJavaScriptコード

図7 n次のヒルベルト曲線を描く手続き

図10 座標変換ルールを格納した 配列を定義するコード

図11 1次から8次までのヒルベルト曲線を描くコード

レッドハットのプロダクト(Vol.65記載)

投稿日:2020.03.25 | カテゴリー: コード

筆者:松田 絵里奈

「Red Hat Decision Manager」は、OSSの「Drools」がベースのルールエンジンです。同製品で業務ロジックを実装することで、アプリから業務ロジックを分離でき、メンテナンスが容易になります。また、複雑なロジックでも簡単で分かりやすい形式で記述できます。

シェルスクリプトマガジン Vol.65は以下のリンク先でご購入できます。

図11 pom.xml(抜粋)

図12 過去利用状況ファクト(過去利用状況.java)

図13 今回利用ファクト(今回利用.java)

図14 最初の/src/main/resources/割引決定.drlファイル

図16 ルールを動かすためのJavaクラス

図17 追加するルール

図18 さらに追加するルール

ラズパイ入門ボードで学ぶ電子回路の制御(Vol.65掲載)

投稿日:2020.03.25 | カテゴリー: コード

筆者:米田 聡

シェルスクリプトマガジンでは、小型コンピュータボード「Raspberry Pi」(ラズパイ)は2種類の拡張ボードを制作しています。第12回は、最初に作成した「ラズパイ入門ボード」に「ロータリエンコーダ」を接続し、オーディオのボリュームのようなコントローラを実装します。

シェルスクリプトマガジン Vol.65は以下のリンク先でご購入できます。

図5 ロータリエンコーダ用のクラスファイル(rotary.py)

図6 テスト用のサンプルプログラム(test.py)

特集2 NGINX Plus徹底解説(Vol.65記載)

投稿日:2020.03.25 | カテゴリー: コード

著者:髙田 知典

「NGINX」(エンジンエックス)は、人気の高いWebサーバーソフトウエ
アです。「NGINX Plus」は、オープンソース版のNGINXにさまざまな
機能拡張を施した商用版です。追加された拡張機能を利用すること
で、システムの可用性と堅牢性の向上や、運用の簡素化を実現できま
す。本特集では、NGINX Plusの機能や試用方法などを紹介します。

シェルスクリプトマガジン Vol.65は以下のリンク先でご購入できます。

Part2 オープンソース版NGINX とNGINX Plus の違い

図2 アクティブヘルスチェックの設定例

図3 Sticky cookie の設定例

図4 Sticky route の設定例

図5 Sticky learnの設定例

図6 DNS名をAレコード情報を使って解決する設定例

図7 DNS名をSRVレコード情報を使って解決する設定例

図9 コンテンツキャッシュのパージ設定例

図15 nginx-sync.confの設定例

図16 NGINX Plus APIの設定例

図18 stateファイルの設定を追加した例

図19 キーバリューストアの設定例

シェルスクリプトマガジンvol.65 Web掲載記事まとめ

投稿日:2020.03.25 | カテゴリー: コード

004 レポート WebブラウザMicrosoft Edgeの新版
005 レポート 仮想マシン構築・運用ソフト「Multipass」
006 NEWS FLASH
008 特集1 知っておきたいDebian/やまねひでき
026 特集2 NGINX Plus徹底解説/髙田知典 コード掲載
042 特別企画 詳説 OpenPOWER/OpenCAPI/河井裕
050 ラズパイ入門ボードで学ぶ 電子回路の制御/米田聡 コード掲載
054 レッドハットのプロダクト/松田絵里奈 コード掲載
064 姐のNOGYO
066 漢のUNIX/後藤大地
072 円滑コミュニケーションが世界を救う!/濱口誠一
074 バーティカルバーの極意/飯尾淳 コード掲載
080 中小企業手作りIT化奮戦記/菅雄一
084 やっつける/桑原滝弥、イケヤシロウ
086 Webアプリの正しい作り方/しょっさん
096 法林浩之のFIGHTING TALKS/法林浩之
098 香川大学SLPからお届け!/重松亜夢 コード掲載
106 MySQL Shellを使おう/梶山隆輔
114 シェルスクリプトの書き方入門/大津真 コード掲載
120 Techパズル/gori.sh
122 コラム「社訓」/シェル魔人

Vol.65

投稿日:2020.03.25 | カテゴリー: バックナンバー

 「自由なソフトウエアによるOSを作り上げたい」という志を共にするボランティアの開発者の協力によって開発が続いているLinuxディストリビューションがあります。それが「Debian」(デビアン)です。特集1では、Debianの概要、最新の安定版であるDebian 10の特徴やインストール方法、導入時や使いこなしの注意点を解説します。Red Hat Enterprise Linux(RHEL)やUbuntuに引けを取らない、Debainに注目してみてください。
 特集2では、オープンソースのWebサーバーソフトウエアとして人気が高い「NGINX」の商用版「NGINX Plus」について解説します。オープンソース版にはない機能により、システムの可用性と堅牢性の向上や、運用の簡素化を実現できます。試用も可能なので、特集2を読んで実際に試してみてください。
 ソフトウエアだけでなく、ハードウエアのオープン(オープンソース)化も進んでいます。特集3では、米IBM社が開発した、POWERプロセッサに関連する技術をオープン化にするコミュニティ「OpenPOWER」と、プロセッサ拡張バス標準「CAPI」のオープンな仕様である「OpenCAPI」について分かりやすく紹介します。
 このほか、二つの連載を開始しました。一つは、オープンソースソフトウエアを基に開発されている米Red Hat製品を紹介する「レッドハットのプロダクト」。もう一つは、初めての人や初心者にもシェルスクリプトの書き方を紹介する「シェルスクリプトの書き方入門」です。
 今回も読み応え十分のシェルスクリプトマガジン Vol.65。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

Vol.65 補足情報

投稿日:2020.03.25 | カテゴリー: コード

目次

p.2の「ラズパイセンサーボードで学ぶ」は「ラズパイ入門ボードで学ぶ」の誤りです。お詫びして訂正いたします。

情報は随時更新致します。

最終回 不正アクセスを通知する

投稿日:2020.01.30 | カテゴリー: 記事

 ログの情報を分析して、管理者に警告メッセージを送信するのは、サーバーの運用管理ではよく使う手法です。インターネット側からアクセスできるようにしたサーバーの場合は、特にセキュリティ関連の通知ができると便利です。

 そこで、暗号化通信の「SSH」(Secure SHell)による、Linuxサーバーへのログイン認証のログを監視して、リモートログインや、不正(らしき)アクセスを検知したときにSNSに通知するシェルスクリプトを作成します(図1)。

図1 ログを解析して通知をSNSに送信するシェルスクリプト

漢のUNIX(Vol.64掲載)

投稿日:2020.01.25 | カテゴリー: コード

著者:後藤 大地

今回も引き続き、プログラミング言語の「Rust」について解説する。前回も取り上げたが、Rustの学習は「The Rust Programming Language」(https://doc.rust-lang.org/book/)に沿って進めるのがよいと思う。The Rust Programming Languageではまず、「数当てゲーム」(Guessing Game、英訳としては「推測ゲーム」)のプログラムを開発する。これによって、Rustのプログラミングを一通り学べる。

シェルスクリプトマガジン Vol.64は以下のリンク先でご購入できます。

図3 自動生成されるRustプログラムのソースコードファイル「src/main.rs」

図4 コンパイルに必要な構成情報や依存関係を記したファイル「Cargo.toml」

図6 ユーザーに対して入力を求め、その入力を受け付けて「あなたの予測値:」として入力値を表示するプログラム(main.rs)

図8 変数に値を2回代入するサンプルコード(src/main.rs)

図10 mutを指定して値を変更できる変数と宣言したサンプルコード(src/main.rs)

図12 read_line()関数の戻り値を表示させるコード

Webアプリケーションの正しい作り方(Vol.64記載)

投稿日:2020.01.25 | カテゴリー: コード

著者:しょっさん

ソフトウエアを正しく作るために、エンジニアたちはどんなことを知らなければならないでしょうか。実際のコードを使って、より良くしていくためのステップを考えてみましょう。第4回は、3回目のイテレーションを実施し、システムに必要な機能を実装していきます。

シェルスクリプトマガジン Vol.64は以下のリンク先でご購入できます。

図3 マイグレーションファイルのテンプレート

図4 経費清算のマイグレーションファイルにuser_idのカラムを追加するように修正した

図5 config/database.tsファイル

図6 権限テーブルのモデルファイル

図7 ユーザーマスターテーブルのモデルファイル

図8 passportライブラリを使って、パスワード認証を行う部分(index.tsへの追加)

図9 ログインの強制(index.ts への追加)

図10 src/routes/login.tsファイル(ログインスクリプト)

図11 src/routes/expenses/submit.tsファイルの修正

図12 用意した型定義ファイル

図13 認証関係をつかさどるAuthenticationクラスを記述した「src/controllers/auth/index.ts」ファイル

図14 認証関係のテストケースを記述した「authentication.test.ts」ファイル

図15 テストデータ作成用のシードファイル(src/seeders/*-demo-user.js)

香川大学SLPからお届け!(Vol.64掲載)

投稿日:2020.01.25 | カテゴリー: コード

著者:清水赳

前回に引き続き、OSSのシステム監視ツール「Prometheus」を「Itamae」というプロビジョニングツールを使って、サーバー監視システムを構築する方法を紹介します。今回は、Prometheusでノード情報を取得・計算する方法や、外形監視、データの可視化方法について解説します。

シェルスクリプトマガジン Vol.64は以下のリンク先でご購入できます。

図5 「./cookbooks/blackbox_exporter/default.yml」ファイルに記述する内容

図6 「./cookbooks/blackbox_exporter/files/etc/systemd/system/blackbox_exporter.service」ファイルに記述する内容

図7 「./roles/client.rb」ファイルの編集内容

図8 「./cookbooks/blackbox_exporter/files/etc/blackbox_exporter/blackbox.yml」ファイルに記述する内容

図9 「./cookbooks/prometheus/files/etc/prometheus/prometheus.yml」ファイルに追加する内容

特集1 はじめてのRust(Vol.64記載)

投稿日:2020.01.25 | カテゴリー: コード

著者 :河野 達也

最近、Rustというプログラミング言語の名前をよく見かけるようになりました。米Amazon Web Services社、米Dropbox社、米Facebook社、米Mozilla財団などは、Rustを使ってミッションクリティカルなソフトウエアを開発しています。Rust とはどんな言語でしょうか。シンプルなプログラムの開発を通してRustの世界に飛び込みましょう。

シェルスクリプトマガジン Vol.64は以下のリンク先でご購入できます。

Part1

図1 Rust のプログラムの例

図12 エラーになるRustのプログラムの例

図21 sqrt()関数の定義コード

図23 let文とif式を追加したsqrt()関数の定義コード

図24 loop式を追加したsqrt()関数の定義コード

図25 戻り値の記述を追加したsqrt()関数の定義コード

図26 mut修飾子を追加したsqrt()関数の定義コード

図27 main()関数のコード

Part2

図2 Cargo.tomlファイルに追加する設定

図3 コマンドライン引数を処理するプログラム

図5 Option型の定義(抜粋)

図6 Result型の定義(抜粋)

図7 match式とif let式の使用例

■match式の使用例

■if let式の使用例

図8 コマンドライン引数を必須にする変更

図9 std::fmtモジュールのDebugトレイトの定義(抜粋)

図10 analyze()関数の定義コードを追加

図11 main()関数の定義コードを変更

図12 analyze()関数の定義コードを変更

図15 構造体Tripの定義コードを追加

図16 Tripをデシリアライズするための書き換え(その1)

図17 analyze()関数の定義コードを変更

図19 RecordCounts構造体の定義を追加

図20 RecordCountsのデフォルト値をつくる関数を定義

図21 analyze()関数の定義部分のrec_counts変数が使われている行を変更

図22 日時を変換するparse_datetime()関数の定義コード

図23 分析レコードを絞り込むための関数定義コードを追加(その1)

図24 分析レコードを絞り込むための関数定義コードを追加(その2)

図25 分析レコードを絞り込むためにanalyze()関数の定義コードを変更

図27 統計的な処理をするためのコード

図28 所要時間を登録するためのメソッドを追加(その1)

図29 所要時間を登録するためのメソッドを追加(その2)

図30 統計処理をするためにanalyze()関数の定義コードを変更

図32 DisplayStats構造体の定義コード

図33 DisplayStats構造体の定義コード

図34 DisplayStats型にnew()関連関数を定義するコード

図35 analyze()関数の定義コードを書き換える

シェルスクリプトマガジンvol.64 Web掲載記事まとめ

投稿日:2020.01.25 | カテゴリー: コード

004 レポート 専修大学3年次の最終発表会
005 NEWS FLASH
008 特集1 はじめてのRust/河野達也 コード掲載
031 姐のNOGYO
032 特集2 Viscuitで学ぶコンピュータサイエンス/渡辺勇士
042 ラズパイセンサーボードで学ぶ 電子回路の制御/米田聡
045 香川大学SLPからお届け!/清水赳 コード掲載
052 錆(さび)/桑原滝弥、イケヤシロウ
054 MySQL Shellを使おう/梶山隆輔
060 法林浩之のFIGHTING TALKS/法林浩之
062 バーティカルバーの極意/飯尾淳
066 Webアプリの正しい作り方/しょっさん コード掲載
076 円滑コミュニケーションが世界を救う!/濱口誠一
078 漢のUNIX/後藤大地 コード掲載
084 中小企業手作りIT化奮戦記/菅雄一
090 ユニケージ新コードレビュー/坂東勝也
096 Techパズル/gori.sh
098 コラム「新しい風が吹いてくる」/シェル魔人

Vol.64

投稿日:2020.01.25 | カテゴリー: バックナンバー

 「C」や「C++」のような高性能や高効率なソフトウエア開発に適しており、なおかつ、安全性を重視した次世代のプログラミング言語「Rust」が最近注目されています。特集1では、Rustの特徴、使いどころ、開発環境構築方法、プログラミングのやり方などを、初心者にも分かりやすいように、紹介しています。また、CSV 形式のデータを分析するという実用的なプログラムを扱っています。
 特集2では、ビジュアル開発ツール「Viscuit」(ビスケット)を使ったプログラミングを紹介しています。「メガネ」というツールだけで、驚くようなプログラムが、子供でも作成できます。Viscuitでコンピュータサイエンスを体験してみましょう。
 このほか、連載「ユニケージ新コードレビュー」ではプログラミング言語「AWK」の使いどころを、連載「センサーボードで学ぶ電子回路の制御」ではリアルタイムクロック(RTC)を実装する方法を紹介しています。
 今回も読み応え十分のシェルスクリプトマガジン Vol.64。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

Vol.64 補足情報

投稿日:2020.01.25 | カテゴリー: コード

姐のNOGYO

p.31にあるUSPファームのサイトの「http://www.uspeace.jp/」は「https://farm.usp-lab.com/」の誤りです。お詫びして訂正いたします。

情報は随時更新致します。

ユニケージ新コードレビュー(Vol.63掲載)

投稿日:2019.11.25 | カテゴリー: コード

著者:岡田 健

ユニケージでは、小さな道具の「コマンド」をシェルスクリプトで組み合わせて、さまざまな業務システムを構築しています。本連載では、毎回あるテーマに従ってユニケージによるシェルスクリプトの記述例を分かりやすく紹介します。第10回は、グラフ可視化ソフト「Graphviz」を用いたグラフィカルなコード設計書の作成方法について解説します。

シェルスクリプトマガジン Vol.63は以下のリンク先でご購入できます。

図1 粗利を計算するシェルスクリプト(Source1.sh)

図3 DOT言語で書かれた中間コード(Source1.dot)

Webアプリケーションの正しい作り方(Vol.63記載)

投稿日:2019.11.25 | カテゴリー: コード

著者:しょっさん

ソフトウエアを正しく作るために、エンジニアたちはどんなことを知らなければならないでしょうか。実際のコードを使って、より良くしていくためのステップを考えてみましょう。第3回は、前回のプロジェクトの計画や方針に基づいて2回の開発サイクル(イテレーション)を回します。

シェルスクリプトマガジン Vol.63は以下のリンク先でご購入できます。

図4 TypeScriptに書き換えたメインのプログラム(index.ts)

図5 TypeScriptで作成した自作のモデルファイル(expense.ts)

図6 トランスパイルオプションファイル(tsconfig.json)

図7 gulpfile.jsファイルの内容

図8 jest.config.jsの内容

図9 index.test.tsの内容

図11 super.test.tsファイルの内容

図13 .circleci/config.ymlファイルの内容

図14 書き換えたsuper.test.tsの内容

図15 index.tsファイルの内容

図16 login.tsファイルの内容

図17 payment.tsファイルの内容

図18 submit.tsファイルの内容

図20 分割後のindex.tsファイルの内容

図21 package.jsonファイルの内容

中小企業手作りIT化奮戦記

投稿日:2019.11.25 | カテゴリー: コード

著者:菅 雄一

WordやExcel、PDFビューアなどで外字を含む文書を表示したり、外字を含む文章をメールで受信して閲覧したりすると、文字化けが起きる場合がある。今回は、私が長年、外字と向き合って格闘してきた話を書くことにする。

シェルスクリプトマガジン Vol.63は以下のリンク先でご購入できます。

図4 CSSファイルに追加する記述

図5 独自外字を表示するためのHTMLファイルの記述例

漢のUNIX(Vol.63掲載)

投稿日:2019.11.25 | カテゴリー: コード

著者:後藤 大地

Rustは、Mozilla Foundationが開発を支援している比較的新しいプログラミング言語だ。「マルチパラダイムシステムプログラミング言語」と呼ばれており、C/C++の代わりに利用できるプログラミング言語と言われている。C/C++のように見えるが、関数型プログラミングのパラダイムも織り込まれていて、かなり厳密なコーディングができるようになっている。本連載では、しばらく、このRustを取り上げていく。

シェルスクリプトマガジン Vol.63は以下のリンク先でご購入できます。

図20 Hello Worldのコード

バーティカルバーの極意(Vol.63掲載)

投稿日:2019.11.25 | カテゴリー: コード

著者:飯尾 淳

本連載は、「縦棒」(バーティカルバー)をキーワードにデータ処理や効果的なアルゴリズムについて考えるものです。ここ何回かバーティカルバーから離れて自由なテーマで論じ過ぎていたような気がするので、今回は初心に戻ってヒストグラムを用いたデータ分析の議論を紹介してみることにしましょう。
テーマは入力効率の問題です。普段、皆さんがお使いのキーボードによるタイピングとスマートフォンのフリック入力、はたしてどちらが効率的に入力できるのでしょうか?

シェルスクリプトマガジン Vol.63は以下のリンク先でご購入できます。

図3 hoge hogeタイピングにおけるデータ送信部のコード

香川大学SLPからお届け!(Vol.63掲載)

投稿日:2019.11.25 | カテゴリー: コード

著者:清水 赳

 こんにちは、香川大学修士1年の清水です。2年ぶりの登板です。
 今回から2回にわたり、OSSのシステム監視ツール「Prometheus」と「Itamae」というプロビジョニングツールを使って、サーバー監視システムを構築する方法を紹介します。今回は、Prometheusの配備とサーバー稼働状況の簡単な可視化について解説します。

シェルスクリプトマガジン Vol.63は以下のリンク先でご購入できます。

図5 「./cookbooks/prometheus/default.rb」ファイルに記述する内容

図6 「./cookbooks/prometheus/etc/systemd/system/prometh
eus.service」ファイルに記述する内容

図8 「./cookbooks/node_exporter/default.rb」ファイルに記述する内容

図9 「./cookbooks/node_exporter/etc/systemd/system/node
_exporter.service」ファイルに記述する内容

図10 「./cookbooks/prometheus/files/etc/prometheus/prome
theus.yml」ファイルの編集内容

センサーボードで学ぶ電子回路の制御(Vol.63掲載)

投稿日:2019.11.25 | カテゴリー: コード

著者:米田 聡

シェルスクリプトマガジンでは、小型コンピュータボード「Raspberry Pi」(ラズパイ)向けのセンサー搭載拡張ボード「ラズパイセンサーボード」を制作しました。第10 回では、I2C 接続のモノクロ有機ELディスプレイをGroveコネクタにつなぎ、ラズパイセンサーボードだけでセンサーから情報をディスプレイ上に表示します。

シェルスクリプトマガジン Vol.63は以下のリンク先でご購入できます。

図6 有機ELディスプレイに日本語を表示するためのライブラリ(OLED.py)

図7 BME280のデータを表示するサンプルプログラム(sample.py)

特別企画 PartiQLをはじめよう(Vol.63記載)

投稿日:2019.11.25 | カテゴリー: コード

著者:岡本 秀高

米Amazon Web Services(AWS)社が2019年8月に発表した「PartiQL」は、RDBだけでなくKVSやJSONデータ、CSVデータに対しても問い合わせが可能な便利なクエリー言語です。文法はSQLのサブセットになっていて、SQLを知っている人であればすぐに使えます。PartiQL対応の実サービスも提供され始めた今、この新しいクエリー言語を始めてみましょう。

シェルスクリプトマガジン Vol.63は以下のリンク先でご購入できます。

図13 「sample.csv」ファイルの内容

図15 項目名を追加したCSVファイル「with_header.csv」の内容

図20 生成されたCSVファイル「out.csv」の内容

図22 生成されたAmazon Ion形式ファイル「out.ion」の内容

特集1 古いラズパイの活用術(Vol.63記載)

投稿日:2019.11.25 | カテゴリー: コード

著者:麻生 二郎

小型コンピュータボードの最新機種「Raspberry Pi 4 Model B」が国内で発売できる状態になりました。Raspberry 4 Model Bは、高機能かつ高性能なハードウエアです。このラズパイが登場することでラズパイの適用範囲が広がりますが、同時に古いモデルが不要になります。いらなくなったラズパイを有効利用する三つの方法を紹介します。

シェルスクリプトマガジン Vol.63は以下のリンク先でご購入できます。

活用例1

図5 DMを一斉送信するシェルスクリプト(raspi_dm.sh)

図6 送信メッセージのテンプレートファイル(message.txt)

図7 送信先のメールアドレスと、個別に書き換えたい情報を保存し
たタブ区切りテキストファイル(sendlist.txt)

活用例2

図11 受信メッセージをLINEに転送するシェルスクリプト (raspi_mail_line.sh)

活用例3

図5 エアコン制御のシェルスクリプト(raspi_aircon)

シェルスクリプトマガジンvol.63 Web掲載記事まとめ

投稿日:2019.11.25 | カテゴリー: コード

004 CentOS 8とCentOS Stream公開
005 東京ゲームショウ2019開催
006 特別レポート ハル研究所から超小型PC-8001
008 NEWSFLASH
010 特集1 古いラズパイの活用術/麻生二郎 コード掲載
026 特集2 5Gで広がるモバイルの世界/酒井尚之、安藤高任
035 姐のNOGYO
036 特別企画 PartiQLをはじめよう/岡本秀高 コード掲載
043 ラズパイセンサーボードで学ぶ電子回路の制御/米田聡 コード掲載
046 円滑コミュニケーションが世界を救う!/濱口誠一
048 香川大学SLPからお届け!/清水赳 コード掲載
054 法林浩之のFIGHTING TALKS/法林浩之
056 バーティカルバーの極意/飯尾淳 コード掲載
062 漢のUNIX/後藤大地 コード掲載
070 virus/桑原滝弥・イケヤシロウ
072 MySQL Shellを使おう/梶山隆輔
079 中小企業手作りIT化奮戦記/菅雄一 コード掲載
084 Webアプリの正しい作り方/しょっさん コード掲載
098 ユニケージ新コードレビュー/岡田健 コード掲載
102 Techパズル/gori.sh
104 新しい風が吹いてくる/シェル魔人

Vol.63

投稿日:2019.11.25 | カテゴリー: バックナンバー

 人気の小型コンピュータボードの最新版「Raspberry Pi 4 Model B」の国内販売開始が間近にせまっています。Raspberry Pi 4 Model Bは高機能、高性能で、ラズパイの用途が広がることは間違えありません。Raspberry Pi 4 Model Bを購入すると、古いラズパイが不要になるでしょう。そこで、特集1では、シェルスクリプトを用いて、不要になったラズパイを活用する方法を紹介します。メールの一斉配信や転送、エアコン制御を自動化できます。
 2020年に5G(第5世代移動通信方式)の本格サービスが開始します。この5Gによって、無線でつながるあらゆるモバイル環境が大幅に刷新されます。特集2では、5Gの概要や仕組み、5Gが実現する世界について解説します。
 特別企画では、米Amazon Web Services(AWS)社がオープンソースで公開した、データベース問い合わせ言語「SQL」互換の「PartiQL」を紹介します。PartiSQLは、RDB(リレーショナルデータベース)のみならず、JSON(JavaScript Object Notation)データやCSV(カンマ区切りテキスト)ファイルなどに対しても問い合わせが可能です。
 このほか、緊急レポートでは、小型PC-8001の「PasocomMini PC-8001 PCGセット」なども扱っています。
 今回も読み応え十分のシェルスクリプトマガジン Vol.63。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

Vol.63 補足情報

投稿日:2019.11.25 | カテゴリー: コード

目次

p.3の連載「MySQL Shellを使おう」の記事タイトル「第3回 MySQL Shellのサーバー運用管理ユーティリティ」は、「第3回 MySQL X DevAPIとドキュメントストア(その1)」の誤りです。お詫びして訂正いたします。

読者プレゼント

p.9の「応募期間」にある「2019年11月25日~2019年1月20日」は「2019年11月25日~2020年1月20日」の誤りです。お詫びして訂正いたします。

MySQL Shellを使おう

p.72の記事タイトル「第3回 MySQL Shellのサーバー運用管理ユーティリティ」は、「第3回 MySQL X DevAPIとドキュメントストア(その1)」の誤りです。お詫びして訂正いたします。

情報は随時更新致します。

第12回 コマンドを作る

投稿日:2019.11.19 | カテゴリー: 記事

 前回、「日本語の文字列をURLエンコーディング」できる適当なコマンドがなく、プログラミング言語「Python」でURLエンコーディングの処理を記述しました。シェルスクリプト内に別のプログラミング言語の記述があるのは、違和感があり、またコードも読みにくいでしょう。

 そこで、URLエンコーディングの処理をコマンド化し、シェルスクリプトと別の言語のプログラムを混在させないようにします(図1)。このように、よく使う処理をコマンド化することで、別のシェルスクリプトからも利用できます。

図1 よく使う処理をコマンド化

第11回 大切なメールだけをチャットルームに送る

投稿日:2019.10.22 | カテゴリー: 記事

 SNS(ソーシャルネットワークサービス)やチャットサービスが広がったおかげで、電子メールがあまり利用されなくなってきています。スマートフォンやインターネットサービスなどを利用するために電子メールのアドレスを持っていても、メールを使わない、メールを見ない人も多いでしょう。
 そこで、受信メッセージから重要な通知のみを取り出してSNSやチャットルームにメッセージとして転送するシェルスクリプトを作成します(図1)。

図1 重要な受信メッセージをSNSやチャットルームに転送するシェルスクリプト

機械学習のココロ(Vol.62掲載)

投稿日:2019.09.25 | カテゴリー: コード

著者:石井 一夫

最終回は、次世代データサイエンス言語として注目されている「Julia」を紹介します。高速な実行速度、並列分散処理の容易さ、数式記述の自然さなどを特徴とするJuliaは、今後急速に普及すると考えられます。

シェルスクリプトマガジン Vol.62は以下のリンク先でご購入できます。

図4 必要パッケージを読み込むコード

図5 MNIST データを読み込むコード

図7 訓練用データの前処理用コード

図8 モデルの構築用コード

図9 損失関数などの設定用コード

図10 訓練データを用いた学習をするコード

図13 テストデータの前処理用コード

図14 テスト画像の数字を推測するコード

特集1 PostgreSQL入門(Vol.62記載)

投稿日:2019.09.25 | カテゴリー: コード

著者:千田貴大

PostgreSQLは、今もなお成長を続けるオープンソースのリレーショナルデータベース管理システム(RDBMS)です。オーストリアのsolid IT社が運営するDBMSに関する情報サイト「DB-Engines」(https://db-engines.com/en/)では、2017年から2年連続で「the DBMS of the year」に選ばれており、勢いがあるRDBMSといえます。本特集では、PostgreSQLの導入方法や基本的な使い方、いくつかの機能について紹介します。

シェルスクリプトマガジン Vol.62は以下のリンク先でご購入できます。

図7 環境変数設定ファイル「/var/lib/pgsql/.bash_profile」の内容

図13 「pg_hba.conf」ファイルの内容

図16 アーカイブログ取得のための「postgresql.conf」ファイルの変更箇所

図17 「recovery.conf」ファイルに記述する必要がある設定

ユニケージ新コードレビュー(Vol.62掲載)

投稿日:2019.09.25 | カテゴリー: コード

著者:坂東 勝也

ユニケージでは、小さな道具の「コマンド」をシェルスクリプトで組み合わせて、さまざまな業務システムを構築しています。本連載では、毎回あるテーマに従ってユニケージによるシェルスクリプトの記述例を分かりやすく紹介します。第9回は、前回の続きとしてデータの扱い方について解説します。

シェルスクリプトマガジン Vol.62は以下のリンク先でご購入できます。

図2 LV3データ作成処理のコード(一部抜粋)

シェルスクリプトマガジンvol.62 Web掲載記事まとめ

投稿日:2019.09.25 | カテゴリー: コード

004 レポート exFATのLinuxカーネル実装
005 NEWS FLASH
008 特集1 PostgreSQL入門/千田貴大 コード掲載
024 特集2 Jetson Nanoを使ってみよう/橘幸彦
034 姐のNOGYO
035 特別企画 はじめてのLinux/長原宏治
050 ラズパイセンサーボードで学ぶ 電子回路の制御/米田聡 コード掲載
054 漢のUNIX/後藤大地
062 バーティカルバーの極意/飯尾淳 コード掲載
066 法林浩之のFIGHTING TALKS/法林浩之
068 機械学習のココロ/石井一夫 コード掲載
073 MySQL Shellを使おう/梶山隆輔
078 円滑コミュニケーションが世界を救う!/濱口誠一
080 香川大学SLPからお届け!/宇野光純 コード掲載
088 めし/桑原滝弥・イケヤシロウ
090 中小企業手作りIT化奮戦記/菅雄一
096 ユニケージ新コードレビュー/坂東勝也 コード掲載
102 Techパズル/gori.sh
104 コラム「平凡で地味な人生を幸せに送る」/シェル魔人

Vol.62 補足情報

投稿日:2019.09.25 | カテゴリー: コード

訂正・補足情報はありません
情報は随時更新致します。

もっと見る

新しい記事一覧へ戻る

  • -->