プログラマ・アゲイン blog

還暦を過ぎたけどプログラマ復帰を目指してブログ始めました

ちょっと一服:プログラミングの勉強はどうするのが良いのか

プログラミングの勉強を再開してみて、徒然に感じたことを「ちょっと一服」として書き残しておきたいと思います。

あくまでも個人の感想ですので、今更と思われる方は読み飛ばしていただければと思います。

  • 何でプログラミングの勉強?
  • 個人的プログラミング勉強の歴史
    • プログラミング勉強のし始め
    • 就職して
    • 最近の勉強
      • プログラミング勉強の障壁①
      • プログラミング勉強の障壁②
  • 基本的な勉強方法
    • ロジック力をつける
    • 面白いと思う
    • 人のまねをする
    • 自分なりの変更をする
    • 自分の得意を作る
    • 継続する
    • 体系的に勉強する
      • 書籍
      • オンライン本

 

続きを読む

RMagicライブラリーの導入方法

以前のブログ「rubyXLを使用したExcel操作」で、画像情報を抽出して Excelに書き出すのに RMagickを使用していることを書きました。

RMagickとは、ImageMagickRubyで扱えるようにした gemであり、Ruby用のImageMagickインターフェースといったところです。

ImageMagickとは、コマンドラインから画像処理を可能にするツールです。多くの画像ファイル形式に対応しており、サイズの変更や画像の合成、画像の分析、画像の作成などができます。

RMagickの説明は、以下のページに書かれています。

techacademy.jp

今回 Windows 10環境に RMagickを再導入した時に苦労したので、記録しておきます。

  • RMagic導入時のエラー
    • 4.2.2の場合
    • 2.16.0の場合
  • ImageMagickの導入
    • バージョンの選択
    • ダウンロードと導入
    • 環境変数の設定
      • 設定
      • 確認
  • RMagickの導入
    • 導入
    • 導入確認
      • gemの確認
      • 稼働確認
  • トラブル対応
    • 設定変更
      • gem pristine
      • LD_LIBRARY_PATH
    • RMagickの再導入
      • uninstall
      • install
      • 稼働確認

 

続きを読む

rubyXLを使用したExcel操作

今回は、rubyXLライブラリーを使用した Excel操作について、説明したいと思います。

前にも書きましたが、rubyXLは、Excel用の gemライブラリーです。したがって、gemコマンドで導入しておく必要があります。今導入しているバージョンは、3.4.15 です。

rubyXLとは、バージョン 3.4.18 の readmeでは、以下のように書かれています。

このgemは、xlsxファイル(Open XML形式)での操作をサポートします。 OOXML構造全体を適切に解析できますが、現在の主な重点は、MS Excelによって生成されたファイルの読み取り、ファイルへの小さな変更、および可能な限り多くの構造を保持しながらファイルを保存して再度開くことです。

独自のバイナリxls形式はこのgemではサポートされていないことに注意してください。 これらのファイルを解析する必要がある場合は、スプレッドシートgemを試してください。

尚、Excelを操作する gemには、rubyXL以外にも Roo(読み込みのみ)や AXSLX(新規作成のみ)というものがあるようです。

  • Excel佐々木希を描く with Ruby
    • 作成したソース
    • 実行の準備
      • RMagick
      • クラスの読み込み
    • Excelファイルへの操作
      • Excelワークブックの作成
      • 保存
    • Worksheetの操作
      • セル (cell)の操作
      • 列の幅変更
      • 行の高さ変更
    • その他
  • その他のrubyXLコーディング
    • worksheetの作成
    • フォントの変更
    • 罫線の変更
  • win32oleの場合
    • 作成したソース
    • WIN32OLERuntimeError
    • Colorプロパティ
    • 幅と高さの指定
      • 列幅の指定
      • 行高の指定
    • 実行結果

 

続きを読む

win32oleを使用したExcel操作

RubyプログラムからExcelファイルを操作する方法については、以下のような沢山のWebページがあり参考になりました。

magazine.rubyist.net

objectclub.jp

今回は、それらを基に自分でコーディングした、win32oleライブラリーを使用したExcel操作について、説明したいと思います。

  • コーディング・サンプル
  • 実行の準備
    • クラスの読み込み
    • Excel定数の設定
    • Applicationオブジェクトの操作
  • Excelファイルへの操作
    • オープン
    • 保存
    • クローズ
    • Excelの終了
  • Worksheetの操作
    • ワークシート (worksheet)
    • セル (cell)プロパティ
      • 値の挿入
      • 色づけ
      • 列の幅調整
    • Rangeオブジェクト
      • 色づけ
      • 罫線
    • その他
      • Rowsプロパティ
      • ClearContentsメソッド
      • 最終行

 

続きを読む

requireで読み込むRubyライブラリー

メイン・モジュールの最初に記述するrequireメソッドで、実行に必要となるRubyライブラリーを読み込んでいます。

今回は、読み込んでいるライブラリーについて説明したいと思います。

  • 読み込んでいるライブラリー
  • ライブラリー内容
    • logger
    • json
    • date
    • open3
    • win32ole
    • rubyXL
  • ユーザー・ライブラリーの読み込み

 

続きを読む

自分なりのRubyプログラムの構造

Rubyのプログラムを開発するにあたり、先ずは仕様として大まかな開発スタイルを決めました。

というのも、他の人が開発したRubyプログラムを見た時、余りにもオブジェクト指向が強すぎて読みずらかったのと、自分のレベルではそのコーディングはできないと感じたからです。

そこで、後から読んでも分かり易く、バグった時に追いかけやすく、シンプルだけど冗長でない、自分のレベルにあったプログラム構造とコーディング・スタイルを決めました。

ただ、これはあくまでも私の理解レベルでの仕様なので、Rubyプログラムとしては適正でないとか、こういうコーディングは効率が悪いとか、いろいろご指摘事項はあろうかと思いますが、そこはご容赦ください。

また、私のレベルが上がれば、当然この仕様は見直されると思います。

  • プログラム構造
    • プログラム・モジュール
      • メイン
      • ライブラリー
    • メインとライブラリーの配置
  • コーディング・スタイル
    • メイン・モジュール
      • 1行目
      • 2行目
      • 3行目
      • 4行目~11行目
      • 12,13,23,24行目
      • 15行目~23行目
    • ライブラリー・モジュール
      • 1行目
      • 2行目
      • 3行目~5行目
      • 6-9、10-13、14-17行目
      • 18行目

 

続きを読む

Rubyプログラミングしてみました

前回の投稿以降、本業が忙しくなり、やっと二年弱ぶりにブログを書く時間が取れるようになりました。

 

前回投稿したブログはスマート・スピーカーの話だったので、ブログはそれの続きを書こうと思っていたのですが、やっぱり本来のプログラミングの内容に戻ろうと思います。

と言うのは、本業の仕事の関係で、自分用のRubyプログラムを100本以上作ったからです。そのプログラムを使って、仕事の効率を上げることができました。

実際に使用するプログラムを作る(勉強とかではなく)ことにより、Rubyプログラミングについていろいろ勉強したので、記録の為にもそれをブログに書いていこうと思います。

ただ、ブログを書くのが久しぶりすぎて、書き方を忘れているので、ほぼ初心に帰ってます。(~ ~);

  • 開発にあたり
    • 何故Ruby
    • 参考書
  • 実際に開発してみて
    • Rubyの稼働環境
    • 開発量

 

続きを読む

スマートスピーカーを買って使ってみたら面白かった

スマートスピーカーというのは、Wikipediaによると「対話型の音声操作に対応したAIアシスタント機能を持つスピーカー」という事だそうです。

ja.wikipedia.org

普段から物静かな(?)私は、何でしゃべらなければいけないのだろうと思ってましたが、実際に使ってみると面白いという事に気が付きました。どういうところを面白いと感じたかを、まとめておきたいと思います。

 

  • どのスマートスピーカーを使ってみるか
  • Google Home Mini のセットアップ
  • Google Home Mini を使ってみて
    • 疑問に思ったことを質問する
    • 挨拶(おはよう)をする
    • タイマーを設定する
    • テレビへ写真や動画をストリーミングする
    • 音楽を流す
    • Epsonプリンターとのリンク
  • 結論

 

続きを読む

好奇心旺盛ですみません(_ _)。プログラミング以外の内容も書きます。

プログラミングに関することを書きたいとブログを始めたのですが、そういう制約を設けることよりもブログを書くことを目的にした方が良いと思いなおしました。

  • 何故プログラミング以外の内容も書くのか
  • 何を書くか
    • ブログを始めた時の思い
    • ブログの記事の候補
  • 次回に向けて
続きを読む

HTML5+CSS+JavaScriptプログラミングを初心者が読んだら

HTML5+CSS+JavaScriptプログラミングという、プログラムの勉強本を読んでみました。読んだのは、Kindle版の「ゲームを作りながら楽しく学べるHTML5+CSS+JavaScriptプログラミング[改訂版]」です。

HTML5+CSS+JavaScript初心者として、以下のような気づきがあり非常に参考になりました。

  • Kindle
    • プログラミング上達法
    • 第1章から第4章
    • 第5章
  • 実際にプログラムしてみて
    • コード入力の考慮
      • 入力ミスのパターン
      • エディター
    • コードの変更
  • 最後まで読んで

 

続きを読む

GitとGithubを連携してソースのバージョン管理を行う方法

バージョン管理の必要性

JavaScriptCSSで、ソースコード貼り付け用ボックスの作成を行いましたが、その時にソースのバージョン管理の必要性を感じました。

少しづつ開発していったので、はてなブログのデザインに登録したJavaScriptCSSの日別のバックアップ・ファイルを、手で作成していました。また、そこから切り出してテストもしていたので、テスト結果を元ソースに反映するのも手で行っていました。特にテストで、変更してはテストし、戻しては変更してテストするを繰り返していると、どこを変更したのか管理するのが大変でした。

やはり、これらの事はバージョン管理のソフトウェアで行うべきと思い、Gitを導入して使ってみることにしました。Gitの導入から使用までと、Githubとの連携を以下にまとめます。

  • バージョン管理の必要性
    • 参考にしたページ
  • Gitの導入
    • Gitのインストール
    • Gitの初期設定
      • バージョンの確認
      • 必要最小限の初期設定
      • 追加の設定
  • Gitの使用
    • Git単体での使用
    • VS Codeでの使用
      • リポジトリの認識
      • ファイルの変更
      • インデックスに登録(ステージング)
      • コミット
      • GitLensの使用
  • Githubとの連携
  • リポジトリの連携

 

続きを読む

ソースコードを貼り付けるボックスを非表示にする

ソースコード貼り付け用ボックスの表示について

前回の「ソースコードを貼り付けるボックスを作成 (3)」で、ソースコードを張り付けるボックスの作成ができました。しかし、今までに書いたウェブのページを見てみると、ソースコードを張り付けたために長くなっており、読んでいくためにはスクロールをたくさんしなくてはいけません。

そこで、初期はソースコードのブロックを非表示にしておき、「表示」ボタンを押すことにより表示されるようにしたいと思います。今までのJavaScriptCSSを基に、ソースコード・ブロックの表示/非表示を作成しました。

  • ソースコード貼り付け用ボックスの表示について
    • 表示/非表示のイメージ
    • 開発においての考慮点
      • 目次との違い
      • 開発の言語
      • 今までのブログ
  • 開発したソースと内容

 

続きを読む

ソースコードを貼り付けるボックスを作成 (3)

ソースコード貼り付け用ボックスの課題

前回の「ソースコードを貼り付けるボックスを作成 (2)」で、ソースコードを張り付けるボックスの作成がほぼできました。

残りは次の2つの項目ですが、ちょっと手間取ってしまいました。両方ともCSSの設定に関するものですが、どのようにデバッグして解決したのかをメモリます。

NO. カスタマイズ項目 修正部分
4

ソースタイプのブロックをソースコードのブロックより少し上に出す

(結果的に、出すと別の問題があり出せませんでした)

CSS

5 ソースコードのテキスト部分に枠と背景色がつくのを消す

HTML

CSS

  • ソースコード貼り付け用ボックスの課題
  • デバッグと課題の解決方法
    • NO.4の解決
      • overflowプロパティ
      • HTML要素の選択
      • CSSルールの確認
      • overflowプロパティの課題
      • 結果として
    • NO.5の解決
      • HTML要素の選択
      • CSSルールの確認
      • 対応方法

 

続きを読む

ソースコードを貼り付けるボックスを作成 (2)

カスタマイズの項目

前回の「ソースコードを貼り付けるボックスを作成 (1)」の続きです。

ソースコードの貼り付けボックス用に作成したScriptとCSSの内容について、メモります。

  • カスタマイズの項目
  • カスタマイズ内容
    • NO.1 コンソール・コマンド用ブロックのスタイルの新規作成
    • NO.2 ソースコード用ブロックの作成
    • NO.3 文字を小さくし行間を詰める
    • NO.6 全選択ボタンの作成
    • NO.7 全選択ボタンの表示をソースコード・ブロックのみにする
    • NO.8 ブロックから外れたら全選択ボタンを消す
  • カスタマイズ結果

 

続きを読む

ソースコードを貼り付けるボックスを作成 (1)

ソースコード貼り付け用ボックス作成

プログラミングのブログを書こうと思うと、どうしてもブログの中にソースコードを記述する必要が出てきます。しかし、単純に記述したのでは、それがソースコードだということが判りにくくなります。

はてなブログでは、はてな記法モードでソースコードを簡単に張り付けて色付けまでしてくれる機能があるので、それを使うのが一番だとは思います。しかし、見たままモードで編集していたものをはてな記法モードに変更しようとすると、「編集画面をリセットするため、作成中の本文は消去されます。この操作は元に戻せません。」といわれてしまいます。だったら最初からはてな記法モードで編集しろよ、ということではあるのですが。。。(-_-;)

そこで、そのままモードで編集してブログの中にソースコードを記述するために、自分なりのソースコードの貼り付け用ボックスを作ってみました。

  • ソースコード貼り付け用ボックス作成
    •  単純なボックス
    • 行番号&背景&全選択
  • ScriptとCSSのカスタマイズ
    • それまでのScriptとCSS
    • 目標とするボックス

 

続きを読む