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

test

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

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

著者:大村 空良

プログラミングにおいて重要な要素の一つが、プログラムの実行速度です。プログラムの実行速度は、より良いアルゴリズムを選択することで大きく改善できます。今回は、巡回セールスマン問題を解くC++プログラムを、アルゴリズムを変更して高速化した例を紹介します。

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

図2 図1の巡回セールスマン問題を解くC++コード「sample1.cpp」

図3 都市数を変えられるように図2のコードを拡張した「sample2.cpp」

図4 ヘッダーファイル生成用のPythonスクリプト「make_header.py」

図5 フィボナッチ数を求めるC++コード「sample3.cpp」

図7 動的計画法を用いて改良したコード「sample4.cpp」

図10 動的計画法を用いて改良したコード「sample5.cpp」

Vol.87 補足情報

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

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

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

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

004 レポート Raspberry Pi 5が登場
005 レポート キーボード「HHKB Studio」が発売
006 製品レビュー 小型パソコン「X68000 Z PRODUCT EDITION BLACK MODEL」
007 NEWS FLASH
008 特集1 ゆっくりMovieMaker4で映像制作 編集作業編/ふる(FuruyamD)
014 特集2 電子帳簿保存法を知る/永禮啓大
021 Hello Nogyo!
022 特別企画 アプリバで業務システム開発/前佛雅人
032 Raspberry Pi Pico W/WHで始める電子工作/米田聡
035 行動経済学と心理学で円滑に業務を遂行/請園正敏
038 Pythonあれこれ/飯尾淳 コード掲載
044 法林浩之のFIGHTING TALKS/法林浩之
046 中小企業手作りIT化奮戦記/菅雄一 コード掲載
052 エコシステム/桑原滝弥、イケヤシロウ
054 香川大学SLPからお届け!/大村空良
060 タイ語から分かる現地生活/つじみき
066 ユニケージ通信/ぱぺぽ
070 Linux定番エディタ入門/大津真
076 Techパズル/gori.sh
077 コラム「ユニケージが実現・目指しているところ」/シェル魔人

Pythonあれこれ(Vol.87掲載)

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

著者:飯尾淳

本連載では「Pythonを昔から使っているものの、それほど使いこなしてはいない」という筆者が、いろいろな日常業務をPythonで処理することで、立派な「蛇使い」に育つことを目指します。その過程を温かく見守ってください。皆さんと共に勉強していきましょう。第17回では、データを記録して残す「永続化」の手法の続編として、O/Rマッパーを使ってデータベースにアクセスする方法について解説します。

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

図3 宣言的マッピングをするコード

図4 データベースエンジンとなるオブジェクトを作成するコード

図5 発行されるSQL

図6 データ操作用オブジェクトを作成するコード

図7 図6のコードを実行した際の画面出力(抜粋)

図8 簡単な検索をするコード

図9 図8のコードを実行した際に発行されるSQL

図10 図8のコードを実行した際に表示される検索結果

図11 少し複雑な検索をするコード

図12 図11のコードを実行した際に発行されるSQL

図13 データ変更のシンプルなコード例

図14 図13のコードを実行した際に発行されるSQL

図15 データ変更の少し複雑なコード例

図16 図15のコードを実行した際に発行されるSQL

Vol.86 補足情報

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

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

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

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

004 レポート Python in Excelの開発版登場
005 レポート iPhone 15シリーズを発表
006 製品レビュー 電子小物「koko Tag(ココタグ)」
007 NEWS FLASH
008 特集1 Markdown入門ガイド/藤原由来 コード掲載
024 特集2 最新COBOL入門/比毛寛之 コード掲載
034 特別企画 CMSのPlone/酒井忠臣、烈
046 Raspberry Pi Pico W/WHで始める電子工作/米田聡 コード掲載
050 CMS/桑原滝弥、イケヤシロウ
052 Pythonあれこれ/飯尾淳 コード掲載
057 Hello Nogyo!
058 中小企業手作りIT化奮戦記/菅雄一
062 法林浩之のFIGHTING TALKS/法林浩之
064 香川大学SLPからお届け!/石上椋一 コード掲載
072 行動経済学と心理学で円滑に業務を遂行/請園正敏
076 タイ語から分かる現地生活/つじみき
082 Linux定番エディタ入門/大津真
088 ユニケージ通信/田渕智也、高橋未来哉 コード掲載
091 Techパズル/gori.sh
093 コラム「ユニケージアーキテクチャ」/シェル魔人

特集1 Markdown入門ガイド(Vol.86記載)

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

著者:藤原 由来

本特集では、文書の装飾や構造付けを手軽に実施できる記法「Markdown」について解説します。Markdownを使うと、テキストファイルでレポートやスライド、書籍などを作成でき、GitHubなどの各種Webサービスでの投稿やコミュニケーションがより便利になります。

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

図2 Markdownの記述内容

図19 Markdownテキストの例

図46 MarpによるスライドのMarkdownテキスト例

特集1 COBOL入門(Vol.86記載)

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

著者:比毛 寛之

レガシー問題や技術者不足などで話題の多いプログラミング言語が「COBOL」です 。古い言語というイメージがありますが、ISOから2023年の新規格が公表されたことでも分かるように、現在も進化を続けています。本特集では、COBOLの現状を紹介しつつ、「opensource COBOL 4J」というオープンソースソフトウエアのCOBOLコンパイラを使ってCOBOL言語の基本を解説します。

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

図1 「HELLO WORLD!」という文字列を表示するCOBOLのサンプルコード

図4 COBOLのサンプルコード

図5 コンソールからの入力と画面への出力をするサンプルコード

図6 ファイルにデータを出力するサンプルコード

図7 ファイル中のレコードを読み出して画面に表示するサンプルコード

図9 「EMPSEARCH.cbl」ファイルに記述するコード

図10 「EMPREAD.cbl」ファイルに記述するコード

図11 「EmpSearchDemo.java」ファイルに記述するコード

Raspberry Pi Pico W/WHで始める電子工作(Vol.86掲載)

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

著者:米田 聡

本連載では、人気のマイコンボード「Raspberry Pi Pico W」を活用していきます。同ボードは、無線LANやBluetoothの通信機能を搭載し、入手しやすく価格も手頃なので、IoT機器を自作するのに最適なハードウエアです。第2回は、有機ELディスプレイを取り付けます。

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

図6 SSD1306搭載有機ELディスプレイを動作させるサンプルプログラム(ssd1306_sample.py)

Pythonあれこれ(Vol.86掲載)

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

著者:飯尾 淳

本連載では「Pythonを昔から使っているものの、それほど使いこなしてはいない」という筆者が、いろいろな日常業務をPythonで処理することで、立派な「蛇使い」に育つことを目指します。その過程を温
かく見守ってください。皆さんと共に勉強していきましょう。第16回では、データを永続的に残す「永続化」の手法の一つとして、Pythonプログラムからデータベースにアクセスする方法について解説します。

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

図3 データベースにテーブルを作成してデータを格納するコード

図5 テーブルのデータを読み出すコード

図6 commit()を忘れたコードの例

図8 データベースに含まれるテーブルを表示するコード

図9 ファイル内にデータベースを作成するコード

図10 ファイル内データベースのテーブルからデータを読み出すコード

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

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

著者:石上 椋一

今回は、私が開発した文章校正用のWebアプリケーションについて紹介します。文章校正機能は「textlint」というNode.js上で稼働するアプリケーションを使って実現しているため、少ないコード量で実装できました。米Google社のアプリケーション開発プラットフォーム「Firebase」を利用したユーザー認証機能を付加する方法も解説します。

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

図1 テンプレートファイル「index.html」に記述するコード

図2 テンプレートファイル「result.html」に記述するコード

図3 「web_app.py」ファイルに記述するコード

図4 「.textlintrc.json」ファイルに記述する設定の例

図10 「~/webapp/static/json/firebase.json」ファイルに記述する設定の例

図11 テンプレートファイル「create_account.html」に記述するコード

図12 テンプレートファイル「login.html」に記述するコード

図13 「web_app.py」ファイルの「app = Flask(name)」行の前後に追加するコード

図14 「web_app.py」ファイルの既存のルーティング設定にコードを追加

図15 「web_app.py」ファイルにルーティング設定を追加

ユニケージ通信(Vol.86掲載)

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

著者:田渕 智也、高橋 未来哉

業務システム開発手法の「ユニケージ」では、データベース管理システムやフレームワークなどを使わずにシステムを構築します。システムの中身が見えやすい分、仕組みやルールを理解していないと正しい開発ができません。第5回は、排他制御について紹介します。

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

図2 ulockコマンド

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

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

004 レポート Wasm向けPOSIX互換ライブラリ「WASIX」
005 レポート 手のひらネットワーク機器
006 製品レビュー ロボット「NICOBO(ニコボ)」
007 NEWS FLASH
008 特集1 ゆっくりMovieMaker4で映像制作 準備編/ふる(FuruyamD)
015 Hello Nogyo!
016 特集2 ZabbixのAWS監視機能を使ってみよう/寺島広大、渡邊隼人、水谷和弘、狩俣樹
026 特集3 ChatGPTで注目の対話型AI/三沢友治
034 特別企画 成功するアジャイル開発/奥村剛史
044 Raspberry Pi Pico W/WHで始める電子工作/米田聡 コード掲載
054 Pythonあれこれ/飯尾淳
060 行動経済学と心理学で円滑に業務を遂行/請園正敏
064 中小企業手作りIT化奮戦記/菅雄一
068 SEO/桑原滝弥、イケヤシロウ
070 タイ語から分かる現地生活/つじみき
076 法林浩之のFIGHTING TALKS/法林浩之
078 香川大学SLPからお届け!/谷知紘 コード掲載
084 Linux定番エディタ入門/大津真
091 ユニケージ通信/田渕智也、高橋未来哉
096 Techパズル/gori.sh
097 コラム「ユニケージはデータ移行も得意」/シェル魔人

Raspberry Pi Pico W/WHで始める電子工作(Vol.85掲載)

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

著者:米田 聡

本連載では、人気のマイコンボード「Raspberry Pi Pico W/WH」を活用していきます。同ボードは、無線LANやBluetoothの通信機能を搭載し、入手しやすく、価格も手頃なので、IoT機器を自作するのに最適なハードウエアです。第1回は、プログラムの開発環境を構築します。

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

図17 初期化プログラム(boot.py)

図18 簡易ネットワークサーバー(main.py)

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

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

著者:谷 知紘

 今回は、C言語を用いて作成した、コンピュータと対戦できるリバーシを紹介します。あまり強くはありませんが、きちんとコンピュータが相手をしてくれます。C99以降の規格に対応するCコンパイラと標準Cライブラリがあれば、環境を問わずに動作するプログラムになっていますので、皆さんもコンパイルして楽しんでください。

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

図5 盤面の生成用コード

図6 check_plc()関数のコード

図8 check_dir()関数のコード

図9 place_stn()関数のコード

図10 think()関数のコード

図11 copydata()関数のコード

図12 calcweight()関数のコード

Vol.85 補足情報

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

特集1 ゆっくりMovieMaker4で映像制作 準備編

p.12の表1の一番下の行にある「00d.png」は「00e.png」の誤りです。お詫びして訂正いたします。

特集2 ZabbixのAWS監視機能を使ってみよう

 p.18に記した「後述するAWS用のテンプレートの利用を含め、すべてAWSの無料利用枠で試せる」という情報は誤りでした。正しくは、AWS用のテンプレート利用時には、CloudWatchからGetMetricData APIでメトリクスを取得する料金がかかります。料金は、メトリクス1000件当たり0.01ドルです。お詫びして訂正いたします。なお、Kindle版とPDF版(定期購読特典)は修正済みです。

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

Linux定番エディタ入門(Vol.84掲載)

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

著者:大津 真

文章の作成やプログラミングに欠かせないのがテキストエディタ(以下、エディタ)です。この連載では、Linuxで利用できる定番エディタの特徴と使い方を解説していきます。第1回に取り上げるのは、CU(I Character User Interface)環境で利用できるシンプルで扱いやすい「GNU nano」です。

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

図12 nanoの設定ファイル「~/.nanorc」の記述例

Vol.84 補足情報

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

製品レビュー コーヒー豆焙煎機 MR-F60A

p.6に記した発売日の「2023年3月30日」は誤りでした。正しくは「2023年4月4日」です。お詫びして訂正いたします。

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

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

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

004 レポート オープンソースLLM「MPT-7B」登場
005 レポート メタバースファッションフェア初開催
006 製品レビュー 調理家電「コーヒー豆焙煎機 MR-F60A」
007 NEWS FLASH
008 特集1 pandasを使いこなそう/鶴長鎮一
020 特集2 AutoML徹底解説 応用編/田村孝、山口武彦、新田陸、細野友基
034 特別企画 Raspberry Piを100%活用しよう 拡大版/米田聡 コード掲載
046 注目技術「XR BASE」/井上香
048 Pythonあれこれ/飯尾淳 コード掲載
054 法林浩之のFIGHTING TALKS/法林浩之
056 中小企業手作りIT化奮戦記/菅雄一 コード掲載
060 ツールキット/桑原滝弥、イケヤシロウ
062 タイ語から分かる現地生活/つじみき
068 香川大学SLPからお届け!/三井颯剛 コード掲載
075 Hello Nogyo!
076 行動経済学と心理学で円滑に業務を遂行/請園正敏
080 Linux定番エディタ入門/大津真 コード掲載
086 AWKでデジタル信号処理/斉藤博文 コード掲載
094 Techパズル/gori.sh
095 コラム「ユニケージにおける独特なドキュメント」/シェル魔人

特別企画 Raspberry Piを100%活用しよう 拡大版(Vol.84記載)

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

著者:米田 聡

小型コンピュータボード「Raspberry Pi」(ラズパイ)向けにさまざまな拡張ボードが発売されています。その拡張ボードとラズパイを組み合わせれば、ラズパイでいろいろなことが簡単に試せます。本企画では、前回に引き続き、ラズパイと連携して使用するマイコンボードを扱います。

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

図8 I★2★CアドレスとGPIOピン番号の設定(ADRS2040U_i2c.h)

図9 I2CとI2C Slaveライブラリの初期化

図10 コールバック関数「i2c_slave_handler()」

図11 ADCの初期化で呼び出す関数

図12 adc_fifo_setup()関数の引数パラメータ

図13 ADCの受信FIFOバッファ割り込み処理のサンプルコード

図14 サンプリングレート設定のサンプルコード

図15 リングバッファのサンプルコード

図16 クリティカルセクションの保護

図17 サンプルファームウエアのレジスタ番号定義(ADRS2040U_i2c.h)

図18 I2Cスレーブ動作時に使えるFIFOバッファ読み書き関数

図19 サンプルファームウエアのi2c_slave_handler()関数とその関連個所(main.cpp)

図20 受信FIFOバッファからデータを取り出すための前処理

図22 ADCへアクセスするサンプルプログラム(adcsample.py)

図23 ADCから取得したデータをグラフ化するサンプルプログラム(adctest.py)

Pythonあれこれ(Vol.84掲載)

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

著者:飯尾 淳

本連載では「Pythonを昔から使っているものの、それほど使いこなしてはいない」という筆者が、いろいろな日常業務をPythonで処理することで、立派な「蛇使い」に育つことを目指します。その過程を温
かく見守ってください。皆さんと共に勉強していきましょう。第14回では、話題のAIチャットボット「ChatGPT」を使ったPythonプログ「ラムの作成にチャレンジします。ChatGPTは、どの程度のプログラムを生成してくれるのでしょうか。

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

図2 1回目にChatGPTが生成したPythonプログラム

図3 2回目にChatGPTが生成したPythonプログラム

図4 3回目にChatGPTが生成したPythonプログラム

図5 4回目にChatGPTが生成したPythonプログラム

図6 5回目にChatGPTが生成したPythonプログラム

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

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

筆者:菅 雄一

自社サーバーからレンタルサーバーへの移行が世の流れだ。本連載の第58回「PHP+MySQL環境にシステムを移行」に書いたが、筆者の勤務先でも保守作業の軽減や故障回避のためにレンタルサーバーに移行する方針になった。2023年1月に、四苦八苦しながら顧客向けWeb検索システムを移行し、ようやくレンタルサーバーへの移行が一段落した。今回は、この難航した移行作業について書くことにする。

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

図2 バックアップファイル内の文字コード設定を変更

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

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

著者:三井 颯剛

SLPでは、Webページの公開などに使用しているサーバーを立て直す計画が進行中です。再建後のサーバーでは、「Traefik(トラフィック) 」というコンテナ環境向けのリバースプロキシソフトウエアを採用する予定です。今回は、Dockerでサーバーコンテナを稼働させて、それに対するアクセスをTraefikで制御する場合を例に、Traefikの利用方法について紹介します。

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

図3 「docker-compose.yml」ファイルに記述する設定

図6 ダッシュボードを有効にする場合の「docker-compose.yml」ファイルの記述

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

図10 設定を分離した場合の「docker-compose.yml」ファイルの記述例

AWKでデジタル信号処理(Vol.84掲載)

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

著者:斉藤 博文

プログラミング言語「AWK」は、データストリーム(データの流れ)を逐次処理するのに適しています。本連載では、電子回路の分野でその特徴を生かし、シェルスクリプトを組み合わせてデジタル信号を処理します。最終回は前回の続きとして、心電図データの解析について解説します。

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

図5 ecg.awk内のlpf()関数

図6 ecg.awk内の最終結果を出力するprintf()文で群遅延を補正

図12 ecg.awk内のしきい値(val_data_sma_threshold)を設定している箇所

図13 ecg.awk内のval_data_flgを「1」に設定している箇所

図14 ecg.awk内のidx_data_hpf_maxを求めている箇所

図15 ecg.awk内のarr_data_flg[idx_data_hpf_max]を「1」に設定している箇所