memorandums

日々のメモです。

Excelの行をシマシマにする方法

暑いですねぇ。。。そんなときはExcelです。


嘘です。


さて、来週の会議に備えて、とあるExcelの表を整理していたんですが。。。どうも見にくい。月並みですが、シマシマにしよう!と思ったんですね。

ググろうかと思いましたが、自分で探ってみたくなり。。。とりあえずできた方法を2つご紹介です。

こんな記事はネット上にゴマンと転がっていると思いますが(←5万件はないでしょうけど)、ライフログ的なブログなのでご容赦を。

1つ目の方法は簡単です。Excelの機能でサクっとできます。

youtu.be

もう1つが、条件付書式を使った例です。

youtu.be

ROW関数でセルの行位置を取得できます。その数値をMOD関数で2で割った剰余を求めて0以上(奇数)なら背景を着色、それ以外はなにもしない、というルールを追加しました。

数式が見にくいですね。。。一応、以下にも書いておきます。ご参考まで。

=MOD(ROW(),2)>0

時間がなくてデザインもおまかせでいいなら前者の例がいいですね。もし、色とかフォントとか元々の文書のスタイルを変えてほしくない(←私はこれだった)場合は、後者がオススメです。

はい。

kindle本をpdfに変換したらキーワード検索できなくて困った件

とあるkindle本をAmazonで購入して、kindle voyageやスマホkindleアプリで利用していましたが、pdfとしても読みたいときがありまして、調べてcalibreを使ってpdfに変換したんですね。

そのpdfを読んでいてたまにキーワード検索したくなって検索するものの検索できなくて困っていました。

それでも「まぁ、いいか」と放置していたのですが、その本の使用頻度が高くなったためいよいよ真面目にやらなければならなくなりました。ということで、今朝、行きの電車内でいろいろ調べてきました。

ちょっと調べてみると、症状としては、macPreviewで検索すると全くヒットしないのですが、Acrobat Professional(←Scansnapに付属してきたソフトだったような。。。)で開くとヒットするんですね。。。不思議です。

pdfファイル内の文字コードが悪いのかな。。。とpdfファイルを除いてデータ構造を調べたりしましたが、一朝一夕にはいかなさそうでした。圧縮された文字列を展開するツールは見つけたので展開してみたのですが、それも文字化けしていて。。。あー無理だ、という感じです。

諦め半分でしばらく検索しつづけていると以下の記事が目に止まりました。

superuser.com

試してみたらうまくいきました。ラッキーですねぇ。

手順は以下の通りです。

(1)calibreを起動して個別に変換を選択しazw3ファイルを開き、出力フォーマットとしてHTMLZを選択しOKボタンを押します。

(2)変換が完了したら、生成された.htmlzファイルの拡張子を.zipに変名し、展開するためにそのファイルをダブルクリックします。

(3)最後に、Adobe Acrobat Professional(僕のはversion8なので相当古いですね...)を起動し、 [アドバンスト]-[Web Capture]-[WebページからPDFファイルの作成と追加]を選択し、using "Create from webpage"

ただ。。。これで作成したpdfファイルはページ半分に原稿が寄ってしまって使えません。。。

そこで、上記の(3)は以下の方がいいと思います。

zipファイルを展開すると中にindex.htmlがあります。これをダブクリしてブラウザで開いた後に、普通にブラウザで印刷を選択してPDFに変換すればいいと思います。Acrobatがなくても変換できますし。。。検索もできました。

おしまい。

さあ。今日は3コマ。。。がんばろう。

プログラミング練習方法(単なる思いつき)

プログラミングがブームなので、本を買ってきて勉強しようと始めた人も多いと思います。

がんばって続けようとしたものの、勉強や仕事が忙しくなって熱が冷めて静かにフェードアウトした経験のある人も多いのではないでしょうか。

それでも、めげずに読了したことがある人は本当に素晴らしいと思います。私は無いですね。。。いつも途中で飽きてしまいます。

でも。。。ですよ。

頑張って読了したとしても、いざ自分のプロジェクトで使おうとしたらスムーズに手が動くか。。。というとそうはいかないと思います。

なぜか?

本の著者と自分とではモノを考える道筋が同じではありません。扱うプロジェクトによっても取り掛かる場所も道筋も違うでしょう。書籍などで学習した内容や流れがピッタリ当てはまることは稀だからでしょう。そもそも全部読んだからといって完全に理解したことにはなりません。

では、どーするか?

書籍などで扱っている完成コードから自分のイメージしたアプリに必要な部分を切り出して、少しずつ加えていくんですね。

コピー元は書籍の著者が作ったコードかもしれませんが、断片を組み合わせたコードは自分のコードでありアプリでもあります。

コピーする範囲を選択するには、コードの意味や役割をしっかり理解していなければならないでしょうし、理解が曖昧だと、自分のコードと組み合わせたときに自信を持って動かすことができません。曖昧なら書籍を読み直せばいいでしょうし、もし書籍に答えが書かれていなければぐぐればいいんです。そうやって自分のコードに対する理解が深まります。自信も持てるようになります。

そうして、自分がしっかり理解しているコードを少しずつ組み上げていくんです。

ちょっと伝わりにくいかもしれませんが、個人的な体験として。。。ちょっと横道に逸れます。

私は会社ではC言語C++を使ってきました。支援ツールの開発にはVBもしくはVBAを使いました。もちろん、独学です。

その後、大学に赴任して2,3年はC言語を教えていましたが、数年後くらいにJavaに切り替わったため勉強せざるを得ませんでした。もちろん、Javaも個人的に勉強はしていましたが。。。真面目に使う機会がなかったので本腰は入れていませんでした。

C++の経験があったのであまり心配はしていませんでしたが、いざ勉強してみると表面上にポインタが現れないコードの仕組みを理解するのにとても苦労した覚えがあります。わかってしまえば大した問題ではなかったのですが。。。それでも「授業で教える」という用事ができたので本気に勉強ができてよかったな。。。と思います。

RubyRailsが出始めの頃に本をたくさん買い込んでは動かす。。。をしていました。

その後、企業との研究でサクッとプロトタイプを作る必要があったため、サーバー側のコードにRubyを採用して本気で学ぶ理由付けを自ら課しました。本当に学びたいなら学ぶ環境を作る。。。これ大事です。「英語を学びたいので外国からの旅行者の通訳をする」という前職の先輩の教え?に似ています。

C++を学んだときには経典だったC++プライマーを片手に、わからないコードは小さなテストコードを書いて動作を確認しました。Rubyも同様に覚えました。Javaでいうこういうことできないかな。。。とRubyの公式ドキュメントを参照しつつ、テストコードをirbなどで試して理解してから自分のコードに追加していきました。

www.youtube.com

こんなエントリーを書こうと思ったのは、まさに今、私自身がこれをやろうとしているからなんですね。。。

数日前からp5.jsでちょっとしたゲームを作ろうとしています。

Coding Shooter v 0.03 - memorandums

なんとなくやりたいことを見えてきたので対戦できるようにしたいな。。。とググっていたら以下の記事を見つけました。

paiza.hatenablog.com

nodeはもちろん遊んだことがありますが、自分のアプリを作った経験はありませんでした。

この記事で示されているコードは完成して動作するコードですが、このコードから必要な部分を抜き出してはp5.jsと組み合わせる作業をこれからしようとしています。

たぶん、このやり方は1つの練習方法だな。。。と思ったわけです。

サンプルコードを改変していくというやり方も当然ありますが。。。私が思うに、これでは「自分がアプリを作った」という感覚にはなれないんじゃないかな。。。と思います。全体的な理解も曖昧なままになるはずです。

以下、練習方法をまとめます。

(1)完全に動作するコードを入手する

(2)そのコードをベースとするのではなく、空の状態からコード作成を始めます。

(3)上記(1)のコードから必要な箇所を見極めて自分のコードにコピペします。コピペするときに理解が曖昧なところがあれば元記事などを振り返ります。それでもわからなければググって調べてコードに書かれている内容を完全に理解します。

(4)完全に理解した上記(3)のコードを動かし、期待した通りに動作することを確かめます。足元をしっかり踏み固める感じです。

(5)あとは上記の(3)〜(4)を繰り返していきます。足りない機能があれば、さらにググって参考となる別のコードを探し追加していきます。

こんな感じでしょうかね。。。全くの初心者の方にはオススメできませんが。

プログラミングに慣れてきてそろそろ自分でコードを作りたいな。。。と感じたらぜひ試していただきたい練習法です。

Coding Shooter v 0.03

ちょっと変えた。

前のバージョンでは、入力したコマンドをフレーム毎に実行してたんですが、ライブコーディングっぽくなかったので、コマンド実行1回につき1回だけ実行されるように変更しました。

あと、シューティングになる予定なので、とりあえず弾を発射できるようにしました。

コードサイズは100行で、まぁ、なんとも幼稚な感じですが。。。作者としては本質的な機能はできたな。。。と思っています。

youtu.be

あと、サーバーを作って(nodeかな?)、そこにクライアント(p5.js)で接続して、マルチプレイできるようにします。

ロビーとかマッチングとかリザルトとかできたらいいけど、とりあえず、対戦ができたらプロトタイプとしては一段落かな。。。と。

続きはまた。

コードを書いて戦うゲーム的なもの。。。いずれは

小学校でプログラミング授業が始まりますね。だからというわけではありませんが、自然と楽しみながらコードが書けるようになる仕組みができたらいいな。。。と思っていました。

そんなモヤモヤのイメージに具体的な絵?を与えてくれたのがライブコーディングでした。

今年の正月に書いていますね。。。もう半年も経ってしまいました。。。

memorandums.hatenablog.com

ライブコーディングを知らない方は、以下をご覧ください。田所先生の動画です。カッコいいですねぇ〜。

vimeo.com

選択されたコードが「ピカ」と光るのが見えると思いますが、そのときに選択されたコードが演奏中の音列に同期的に追加されるんですね。。。この作業を繰り返しながら音楽を演奏していく感じになります。

これは音楽を演奏するための仕組みですが、このアイデアシューティングゲームのプレイに応用できないかな。。。と思っています。

ちなみに、このアイデアは既にたくさんの方が試していて、私が知る有名どころではRobocodeがあります。

Robocode Home

ロボットの動作をあらかじめコーディングしておいて戦わせるものです。

これらのゲームのプレイヤーは実行後は黙って戦況を眺めるだけでコードを追加することはありません。AIプログラミングの面では面白いのですが、僕のイメージしているライブコーディングとは違います。。。

試しにp5jsで30分くらいかけて作ってみました。

シューティングもできません。ゲームにもなっていません。ただ、コードを入れてキャラクターを動かすのはどんな感じになるのか確かめたかったんですね。

youtu.be

うーん。。。ちょっとイメージしたのとは違います。

最初、実行したときだけコードを実行してみたのですが、ライブコーディングっぽくない。。。

ライブコーディングでは、リズムに合わせてコーディングした音列が繰り返し演奏されます。

その動作を模倣しようとすると。。。このように連続した動きになってしまい。。。自機を微妙にコントロールすることができません。

入力するタイミングも重要となるところは、もしかするとゲーム性があるのかもしれませんが。。。

これも作ってみたのでわかったことなので。。。とりあえず次を考えます。

必要な人はいないでしょうけど、とりあえずコードを以下に置きました。

https://codepen.io/ke_takahashi/pen/RzPqKb

また、時間を見つけて続けます。

小さなオールレーズン

月曜日の午前中は小倉で非常勤をさせてもらっています。

博多方面から特急に乗って小倉まで移動して、小倉でモノレールに乗り換えて目的地まで行きます。

電車の遅延はよくあることなので、なるべく余裕を持って移動するのですが、何もなければ小倉近辺で時間を潰す必要が出てきます。

ちなみに今年で9年目になります。最初の数年は、小倉駅のカフェで過ごしていました。それに飽きたら到着したモノレールのホームで仕事することもありました。

最近のお気に入りは、ファミマのイートインコーナーです。

好きなお菓子を1つ買ってコーヒー1杯あれば20〜30分くらいの時間が潰せます。

こはちょっと外れにあるのと、時間帯的にも空いているので快適な時間が過ごせます。

お菓子でハマっているのがタイトルの商品。甘すぎず健康指向でもありコーヒーとの相性も悪くありません。レーズンパンとか好きな人はたぶん好きだと思います。

www.family.co.jp

ちなみに今まさにイートインコーナーでこれを書いています。

はい。それだけです。

関係ないけど、スプラトゥーンのE3世界大会すごかったですねぇ〜。gg boyzさん、2連覇おめでとうございます。

ボイシーのお気に入りのコンテンツ

電車通勤なので日に約3時間は移動時間になります。

電車は空いていることが多いので仕事していることが多いのですが、移動中は電子書籍の読み上げを聞いたり、ポッドキャスト聞いたりしています。

ポッドキャストでよく聴くのは以下ですね。

  • rebuild.fm
  • backspace.fm
  • Misreading Chat
  • Turing Complete FM

上記はIT系かCS系なんですが、ちょっと緩い感じの以下もお気に入りです。

  • ドングリFM
  • Replicant.fm

そのドングリFMで知ったサービス(アプリ?メディア?)がボイシー。

Androidの方はアプリで聴けます。iPhone用はご自身で検索を。

play.google.com

このサービスの面白いところが2つあります。

BGMがつけられる

この感覚は新しい。。。コンテンツの音声の上に(裏に)BGMをミックスして流せます。必要だと思った感覚が新しいなぁ。。と。

チャプターわけされている

もう1つがこれです。聞き手にとってはとても嬉しい機能ですね。ポッドキャストにはありません。ずーっと聴かないといけません。便利ですねぇ〜。

さて、本題。

このサービスで面白そうなコンテンツがないかな。。。ととにかくタイトルだけで見て面白そうと感じたコンテンツをポチポチとフォローしてみました。30〜40個くらいはフォローしたと思います。それから時間があるときに聞いてはフォローを外していきました。

最終的に残ったのは以下です。

あくまで僕が聞きたいと思ったコンテンツです。ざーっと書き出します。誰得って感じかもしれませんが。。。フォローしている理由を一言コメントしてみます。もしよければ聴いてみてください。ちなみに掲載順には意味はありません。



語りが落ち着いていて聞きやすい。ノウハウの解説がとても丁寧。勉強になります。
voicy.jp



以前買った英語喉の本の方。声が素敵です。自然な会話の表現を聴くことができます。
voicy.jp



キャンプ情報。ノウハウがとても具体的。行きたいと思っているけどなかなか行動に移せないでいますので。。。とりあえず知識だけでも知りたいなと。
voicy.jp



トレンドキーワードってなかなか深追いすることはありません。キーワードがトレンド入りしている背景を説明してくれるのは意外と新鮮で嬉しいなと思います。
voicy.jp



なんかよく書籍についてくる英語CDのような感じですが。。。短文ですが、平易な英語で語られる物語なので習慣にするといいのかなぁ、と思います。英語というよりは心温まる話って方がいいな、とも思いますね。
voicy.jp



鶴光さんの軽妙な語り。いいです。
voicy.jp



世界遺産というテーマが面白いかと。学生パーソナリティという彼女の声にも癒やされます。
voicy.jp



人前で話す商売ですので。。。というわけではなく。ただ面白いと思います。
voicy.jp



研究者同士の会話って感じ、でしょうか。耳慣らしにいいです。もちろん内容も勉強になります。
voicy.jp



ラムちゃん。声が本当に素敵です。
voicy.jp



なんか元気になります。
voicy.jp



なんか画期的な感じが。料理レシピといえばクックパッドYouTubeが思いつきますが、まさかラジオで。。。でも聴いてみると音声でも十分に伝わるんですね。。。ちょっと作ってみたいな、という料理を知るきっかけになるかな、と。
voicy.jp



エンジニアの方が話題と取り上げています。ゲストの方のドイツ事情は新鮮でした。今後に期待です。
voicy.jp

まだ、どれも1、2回しか聴いていないので。。。聞き続けるかはわかりませんが。とりあえず。また、探していて驚いたのですが意外とこういうの発信したい人ってたくさんいるんですね。。。YouTuberだと始めるのがちょっと大変だし顔出すのもな。。。というのもあるかと思いますが、音声のみなら発信したいコンテンツがあれば多いんでしょうね。