テクノ・クオリティー

高田馬場にある(株)テクノウォーカーのスタッフ雑記。内容ゆるめでお送りします。
Delphi使いのナイトーです。

みなさん旅行日記や趣味の話題、いろいろなブログ楽しませていただきました!
社長からメール出ておりますがブログ大賞投票、奮ってご参加ください。

さて、今回は「趣味でプログラムを作ってみよう!」という内容です。

・開発環境を用意しよう。
・今日のプログラムお題。
・付与情報とは。(Exif、id3、Vorbis Comment)
・趣味のプログラム作ってみよう。


■ 開発環境を用意しよう。

今回はここで使用する言語はWindowsのほか、MacやiOS、Androidのスマホにも対応したマルチプラットフォームにも対応、しかも無償版が公開されている『Delphi(デルファイ)』です。

自分の使っている言語がどの程度人気か気になりませんか?
たまに記事で見かけるプログラム言語の人気ランキング、TIOBEを見てみましょう。

人気ランキング2019年5月現在Delphiは12位、人気はVBより上みたいです。
集計方法もよくわからないので、あまり鵜呑みにしないでくださいね。

Delphiの無償版は『Delphi Community Edition』という名前で公開されてます。
機能制限も無いようですので、個人で早速ダウンロード、インストールしてみました。

イメージ 4

【Delphiの特徴】※個人の感想です。
・直感的に操作しやすい開発環境。
・コンパイルが早く、実行作業にストレスが溜まらない。(←これ結構大事)
・コンパイル言語でありながらブレイクポイントも使える、強力なデバッガーも付いてる。
・Windows、OSX、Android、iOS向けアプリを開発できる。

趣味のプログラミングは、思い立った時に作ることのできる手軽さは重要かと思います。
Delphiに限らず自分に合った環境を探してみてください。


■ 今日のプログラムお題。

早速、今回のお題を。

楽曲のダウンロード販売で、ポイント還元に惹かれ調子に乗って買い過ぎてしまいました。
そして、ダウンロードしてみるとユーザから見て意味のない数字の羅列(図1)で、このままでは扱いづらい・・・図2の機能を持つツールを作ってみます。

イメージ 6
図1.ダウンロードしたファイル名

イメージ 3

図2.ツールのイメージ


■ 付与情報とは。(Exif、id3、Vorbis Comment)

画像や音楽ファイルには、付加情報が埋め込まれているフォーマットがあります。
たとえば・・・

【MP3形式、FLAC形式】(id3、VorbisComment

アーティスト名、曲名、アルバム名、トラック番号など

イメージ 1
図3.FLAC形式ファイルのプロパティ例


【JPEG形式】(Exif

撮影時の露光や感度、GPS座標など

イメージ 2
図4.JPEG形式ファイルのプロパティ例

JPEG画像にはGPS座標などの付与情報も入っていて、地域ごとに画像を分類するなど使えそうです。
そして、付与情報の取得方法としてパッと思いつくのは①、②の方法です。

① ファイルに格納されているタグをバイナリで取得
② Shellクラス(Windowsの機能)を利用しタグを取得

今回は②の方法で取得します。
それぞれ、保存されている内容については検索サイトで検索してみて下さい。


■ 趣味のプログラム作ってみよう。

私の場合、趣味のプログラムはGUIのプログラムを作成します。
GUIアプリケーションを作る方が出来上がりが想像でき、途中経過を見てモチベーションを保って作ることができるのでお勧めです。

【デザインとソース】
機能を考え、テキストボックス(Edit)および、ボタン(Button)、リスト(ListBox)を配置して、今回は図5のような構成になりました。

・Button1:入力ディレクトリの選択
・Button2:出力ディレクトリの選択
・Button3:実行ボタン
・CheckBox1:実行後に出力カレントディレクトリを開くか?

イメージ 8
図5.デザインモード

今回メインとなる音楽ファイルからタグ情報を取得するにはShell32.dllに含まれる機能「GetDetailsOf」メソッドを使用します。「GetDetailsOf」を使用したソースコードは↓このようになります。
uses節には、Shell32_TLBを追加してください。 詳しくは全体のソースを見てみてください。

【type節】

TSongInfo = record
  artistName: string;
  albumName : string;
  trackNum  : string;
  songName  : string;
end;


【関数】

// 音楽ファイルからタグ情報を取得する
function TForm1.getSongInfo(fileName: string):TSongInfo;
var
  shell      : TShell;
  folder     : Shell32_TLB.Folder;
  folderItem : Shell32_TLB.FolderItem;
begin

  // 対象ファイルのプロパティを取得
  shell     := TShell.Create(Self);
  folder    := Shell.NameSpace(ExtractFilePath(fileName));
  folderItem:= folder.ParseName(Extractfilename(fileName));

  // 取得したタグ情報をセットする
  result.artistName:= folder.GetDetailsOf(folderItem, 217);
  result.albumName := folder.GetDetailsOf(folderItem,  14);
  result.trackNum  := folder.GetDetailsOf(folderItem,  26);
  result.songName  := folder.GetDetailsOf(folderItem,  21);
end;

全体のソースコードはこちら

【実行画面】
Button1をクリックすると、変更前のファイル名と変更後のファイル名をリストボックスに表示できました。

イメージ 5
図6.実行画面

【実行結果】
Button3をクリックすると、取得したタグ情報をファイル名にセットしました。

イメージ 7

図7.実行後の出力


■ おわりに

今回はブログ2周目初めてということで、前回の料理教室のお話と趣向を変えてみました。

梅雨の時期に入りましたし、家での空き時間にツールなど作成してみてはいかがでしょう。

開く コメント(0)

最近はまっていること

みなさん、こんにちは!

4月入社のEです ^-^


本日は私が最近はまっていることについてお話します!


私は4月末より外部のJava研修を受けているのですが、
その研修をきっかけに「他の人のソースコードを読む」ことにはまっています。


研修先では技術レベルによってクラス分けがされており、
自分の所属するクラスでは「クラスの共有フォルダ」があります。

その共有フォルダには受講生が各自、自分が書いた演習課題の回答(ソースコード)をアップしています。


私は元々プログラミングを専門に学んできたわけでもなく、
PHPは少しだけ学んだことがありましたが、Javaは全くの初心者で、
研修ではDBを使用することもあるのですが、もちろんDBも未経験でした。

そのため日々の研修内容についていくことが初めはとっても大変で、
演習課題を解くスピードは周囲と比べて圧倒的に遅かったです。


そんな私が共有フォルダにアップされている他の人のソースコードを積極的に読み始め、
一つずつコードの意味を理解していったことで、演習課題を解くスピードがあがりました!


様々な人のソースコードを読むことで、
何がシンプルなプログラミングで何が読みやすいコードなのかを意識できるようにもなりました。


あと数週間で私も実務に携わるようになりますが、
研修が終わっても配属先やインターネット上で多くのソースコードを読むよう心がけたいなと思います!!


以上簡単ではありますが、Eでした!^ ^

開く コメント(0)

楽しんだもん勝ち!

はじめまして!
新入社員のYです。


タイトルは私の座右の銘です◡̈*
最近勝ちたいと思ってるんです🐯



どういう事かというと…、


今まで私はまったくITに関わることがない人生を歩んできました。

そこから今、エンジニアになるために勉強をしているのですが最近少しずつ「楽しい」を感じはじめているのでもっと深く楽しさを知りたい、勝ちたいと思っています




今までアパレル店員や病院事務を経験して来たのですが、特に勉強しなくても日々の業務でなんとなく覚えてなんとなく働いている。安定はしているけど何か物足りない…そんな感じでした。



しかし今は毎日テキストとパソコンと向き合って、Javaの勉強をしています。
1年前からは全く想像出来ないくらい頭を使う生活が始まりました…人生で勉強してます



イメージ 1




最初は参考書を読んでも宇宙語が並んでいて絶望を感じてたのですが、少しずつ理解出来るようになるとパズルを解くような感覚で楽しさを感じるように…




高い壁に頭を悩ませ、それを超える楽しさ…凄くやり甲斐を感じます
今は勝つための糸口が見えた気がするって感じなので、がっつり掴んでエンジニアというお仕事を楽しめるようになりたいです💪🏻♥





以上、Yでした!

開く コメント(0)


こんにちは
2019年4月入社のNです。

初めての社員ブログということで、前回のTくんに引き続き、趣味についてのお話です。

タイトルに通りですが、私の今の趣味はフットサルです。
4歳くらいからサッカーをやっているということもあり、ボールを蹴らないというのがもう考えられません。
現在はすこし落ち着いたように思いますが、一時期フットサルの人気が高まり、各所にフットサルコートが乱立しました。
そこで、どうしてフットサルが流行ったかを少し考えてみました。出来ればたくさん書きたいですが、長くなりそうなので、一部お話しさせて頂きます。

「趣味はサッカーとフットサルです」という自己紹介をすると、その二つって違うの?と聞かれることがあります。
足を使ってボールを蹴って、網がついた枠に入れる。大方フットサルはミニサッカーでしょ?とお思いの方。

まあ、だいたいそうなんですが。

サッカーとフットサル両方やった事がある人は結構違う競技に感じます。
まず挙げたい違いはボールについてです。
大きさが違うのもそうなのですが、最大の違いは「ボールの弾み方」です。
頭の高さからサッカーボールとフットサルボールを下に落としたとします。ボールは地面から跳ね返ってくるわけですが、サッカーボールは体の半分かもう少し高い位置まで弾みます。それに対し、フットサルボールはボール一個分かそれ以下の高さにしか弾みません。
この違いが
フットサル=初心者が始めやすい⇒⇒⇒流行
に繋がったのだと思います。

サッカーやフットサルといえば、シュート、ドリブル、パスなんかが思い浮かぶと思いますが、初心者が最初につまずくのはおそらくトラップ(ボールを止めること)です。
そもそも、シュートするにもドリブルするにもパスをするにも、まずはトラップが出来ない事には出来ません。
「ダイレクトでプレーする事もあるでしょ!」というご意見がありそうですが、個人的にはダイレクトパスは大きめに弾いたトラップ、ダイレクトシュートはもっと強く弾いたトラップといえると思います。

このトラップの難易度がボールが弾まない事によって、大幅に下がっているように思います。
ボールが地面に弾まないなら、足にも弾みません。足にも弾まないということは、ボールを足で止めたときに自分に近い位置にボールが落ち着いてくれるということになります。

難易度が下がることは経験者にとってもうれしい事です。なぜなら、「手加減」が出来るからです。
手加減は極めて高度な技術だと私は思っています。やはりプレイに余裕があるから手加減出来るのだと思います。
フットサル人口のほとんどはサッカー経験者です(根拠なし)。しかし、サッカー経験者が全員サッカーがうまいわけではありません。
私も含め、正直サッカーでは振るわない人がフットサル人口には多くいます(根拠なし)。
そんな人たちでも、それなりに手加減出来る位に難易度は下がっていると思います。

いろいろごちゃごちゃ言いましたが、なぜフットサルが流行したのかについての結論は、
「(サッカーに比べ)競技難易度が下がっているため、初心者やサッカー経験者が参加しやすく、競技人口が増えた」
だと思います。

もちろん極めようとしたら、全くの別競技です。フットサルは足の裏をよく使うので、先程のボールが弾まないのでトラップが簡単というお話は必ずしも当てはまらなくなります。
ですが、エンジョイレベルであればやはり参加しやすい競技難易度になっていると思います。

流行は落ち着いてきたと言いましたが、フットサルコートが運営している個人参加型のイベント(通称:個サル)やフットサルの社会人サークルも多くあるので、「最近運動出来ていないなぁ」「いままでスポーツ経験ないけど、今から始められるスポーツはないかなぁ」という方には是非おすすめです。

以上。Nでした。

開く コメント(0)

皆さんこんにちは
4月入社のTと申します


3月末の歓迎会の際に皆さんに挨拶したと思いますが、
まだ、実際に会ってない方もいらっしゃると思うので、自分の好きなことを書いてみようと思います


この会社に来る前は4年ほど保育士をしていました。
ここに入社してからLinux、Javaなどの言語を日々勉強することができてますが、
当時、僕が扱える言語はベロベロバァ٩( ᐛ )وしかありませんでした…
(今でも頭悪いですが...orz)


そして、僕の趣味と特技はダンスです。
保育士時代は土日出勤が多くなかなかダンスできませんでしたが、
ここに来てからは土日もしっかり休めているので充実した休日を送れています
こんな感じでございます↓

イメージ 1


”ダンス”聞くと皆さん
いかつい!!
がらが悪い曲で踊ってる!!
みたいなイメージがあると思いますが

全然そんなことなくて、最近のダンス業界ではアニソン(アニメの音楽)で踊るのが主流になってきています。
(※上のgif画像の音はありませんが実際は(アニメ)「〇ロマンガ先生」の曲で踊っています。)

他にも、「ちびまる子ちゃん」「プリキュア☆アラモード」「とある科学の超電磁砲」「恋は雨上がりのように」
「テニスの王子様」「鋼の錬金術師」「銀魂」「S.A.O」「僕のヒーローアカデミア」「シャーマンキング」「アイカツ!」「ラーメン大好き小泉さん」「響け!ユーフォニアム」「幼女戦記」「けものフレンズ」「どろろ」「盾の勇者の成り上がり」「五等分の花嫁」etc...などの曲も普通に流れます...


なので、今のダンスイベントには
ダンス知らないけどアニソンが大好きなお客さんが非常に多いです
しかもお客さんはフレンドリーな方が多いのですぐ友達にもなれると思います


もし、上記の話を聞いて頂いて、ダンスは知らないけどアニメは好きだから行ってみたい!
少しでも興味を持った!って方いらっしゃいましたら僕に声かけてくれると嬉しいです

以上。Tでした。

開く コメント(0)

[ すべて表示 ]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事