niszetの日記

細かい情報を載せていくブログ

(HW)基板設計の勉強を始めた…。

いうほど進んでない。

今はこれを通勤中に読んでいます。最近出版されたものなので、(僕は詳しくわからないけど)情報の時代遅れ感とかもなく、実践的(多分、製品レベルまでいける?)でフレッシャーズの時点で読めるのであれば読んでおくべき一冊ではないかなって思いました(まだ読んでるけど shop.cqpub.co.jp

基板の設計やったことないのですが、KiCadも出て同人HW界隈はなんか基板作れないとダメなのでは(たぶんそんなことはないが)という気になるので、仕事では多分レビュー程度にしか参加しないだろうけど、基板設計を一通り勉強することにしたのでした。

上記の本はKiCadの登場前の出版だと思うので、そのあたりの情報はないので注意?

KiCadならこっちなんだろうけど、今はツールに依存した情報よりはもうちょっと設計一般を知りたいので。

shop.cqpub.co.jp

そしてこれ、

shop.cqpub.co.jp

が次に控えている。こちらはもうちょっと材料とか基板そのものについての情報が多めで、基板屋じゃなければそれほど・・・という気もするが、知っておきたいと思って購入。

そしてこれ

shop.cqpub.co.jp

がさらに控えていて、こちらはディスクリートの知識が全くない僕のためにあるような本。結構多岐にわたっているので手元にあると便利なのではと思っているが知見がない。早く読みたい…。

ということで、まだ勉強中というか始まったばかりですが、少しずつ基板まわりを押さえていこうと思います。

そもそもIO屋なんだからこのあたりは知っておいて良い話ではあったんだわなぁ。SI/PIとかばっかりやってたわ。。。

がんばろう💪

(R) ggimageパッケージのgeom_image()でアスペクト比を与えて表示する

サークルカットをRで描きたいだけなのに…。

さて、ggimageパッケージ、用途が良くわかりませんが、ggplot()でプロットする中に画像を埋め込めるので便利です。

が、なんかアスペクト比がおかしくなるのですよね。たとえば

library(ggimage)
ggplot()+geom_image(aes(x=0, y=0), image="circle_title.bmp", size=1, by="width")+coord_equal()

で、こんな感じ。

f:id:niszet:20180824002721p:plain

本当はアスペクト比が勝手に決まるような意図でコードが書かれているようなのですが、有効になっていないようで(原因はちょっと心当たりはある)、内部のコードから必要な部分を取り出して無理やりアスペクト比を変換してみます。

ggimageの内部では下記のようにimage_read2()という関数で画像を取り込んでいます。

ggimage::image_read2("circle_title.bmp")
##  format width height colorspace matte filesize density
## 1    PNG  1008    591       sRGB FALSE        0   72x72

…なのですが、この関数は余白を除いた領域のサイズをとってきます。なんかbmpなのにpngになってますね…。
この関数、画像の表示には良いですが、画像サイズを知りたい場合はこれでは困るので、オリジナルの関数を使います。

magick::image_read("circle_title.bmp")
##   format width height colorspace matte filesize density
## 1   BMP3  1152    648       sRGB FALSE  2239542   72x72

こんな感じ。ちなみにこれらの関数は実行するとVIewerペインに画像が表示されます。

また、この戻り値は

str(ggimage::image_read2("circle_title.bmp"))
## Class 'magick-image' <externalptr> 

でmagick-imageクラスになっています(どちらの場合も)。このクラスのオブジェクトが持っている画像の情報を抜き出すにはmagick::image_info()を使います。

magick::image_info(magick::image_read("circle_title.bmp"))
##   format width height colorspace matte filesize density
## 1   BMP3  1152    648       sRGB FALSE  2239542   72x72

これで、widthとheightを知ることが出来ました。この値をとってくるにはそれぞれ

image_width <- magick::image_info(magick::image_read("circle_title.bmp"))$width
image_width
## [1] 1152

image_height <- magick::image_info(magick::image_read("circle_title.bmp"))$height
image_height 
## [1] 648

でよいです。あとはgeom_image()の引数aspに↑で得た幅と高さからアスペクト比を計算して与え、表示領域の固定をします。

ggplot()+geom_image(aes(x=0, y=0), image="circle_title.png", size=1, by="width", asp=image_width/image_height)+
  coord_fixed()+xlim(-image_width/2, image_width/2)+ylim(-image_height/2, image_height/2)

f:id:niszet:20180824002733p:plain

これに軸を消したり背景消したり…ということをthemeで与えてあげると…

ggplot()+geom_image(aes(x=0, y=0), image="circle_title.png", size=1, by="width", asp=image_width/image_height)+
  coord_fixed()+xlim(-image_width/2, image_width/2)+ylim(-image_height/2, image_height/2)+
    theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
          panel.background = element_blank(), axis.line = element_line(colour = "black", size=1),
          axis.text = element_blank(), axis.title = element_blank(), axis.ticks.length = grid::unit(rep(0, 4), "points"),
          axis.ticks = element_blank(), axis.line.x = element_blank(),
          axis.line.y = element_blank(), plot.margin=grid::unit(rep(0, 4), "points"))

f:id:niszet:20180824003032p:plain

と、オリジナルの画像そのままの表示となりました。

あとはこれに好きな文字を足したり、plotを重ねたりしてあげればよいですね。

ようやくこれでサークルカットが描ける…よかったよかった。

Enjoy!!

(メモ) Guidelines for R packages providing interfaces to Stan (R)

下書きのままずっと放置していたので供養の投稿。

読んだのがずいぶん前なのであまり覚えていませんが、こんなガイドラインがあったのでメモ。tidyの方のガイドラインととあわせて理解しておきたいなと思ってます(私はstan使いではないのだけどね)
とりあえず公開しておいて、記事を修正しなくてはいけない気持ちを高めておく…

Guidelines for Developers of R Packages Interfacing with Stan Guidelines for Developers of R Packages Interfacing with Stan

これは、rstantoolsパッケージのvignettesとして公開されていました。

Stan/RStanのコード規約等どんなものがあるのだろうか?ということで調べていたのですが、上記のvignettesはRでStan I/Fパッケージを開発するときのガイドラインとのことです。
が、そもそもこのパッケージを使っている方いるのだろうか。 stan系のRラッパー開発者向けってことでいいのかな?

Enjoy!!

(技術書典) 進捗

まぁ色々と。

そんなわけで技術書典5に当選し、配置も決定しました。

◎貴サークル「niszet工房」は、 い04 に配置されました。

リンク貼ってよいのかな?こちらです。

https://storage.googleapis.com/techbookfest-static/tbf05/circle-layout.png

また、技術書典5自体は 日時 2018/10/08 (月) 11:00〜17:00

場所は池袋サンシャインシティ2F 展示ホールD(文化会館ビル2F)です。

株式会社サンシャインシティ 展示ホールご案内|施設概要

進捗

今回はRStudio 1.2.x (preview)を使って、Pandoc 2.x の機能を使えるだけ使ってR MarkdownからWord文書を作成する方法についてまとめていっています。 現在、30ページくらいですが、どこまで増えるのかは時間次第ですね。

図表とか整形で結構ページ数は変わるのでは?と思っているので↑のページ数はあまりあてにならないです。

あんまり需要ない話だと思うので、50部あれば良いよねって思ってます。電子版の予定は今のところないです(作り方わからない)

とりあえずいろんなものが全然わからないので、ワンストップ!技術同人誌を書こう(同人誌版)を読んで勉強中です。

がんばろう、楽しもう!

(R) RStudio preview releaseを使えばPowerPointプレゼンテーションが作れるようになりましたよ

速報性が高い。

mdからpandocに投げるところ自分で書いてやろうかと思っていましたが公式に対応されました。

support.rstudio.com

もともとPandoc 2.x系はpptx作れるので、RStudio側の対応まだかなーって思っていたところでした。

とりあえず出力されることは確認した。

とりあえず何も考えずにR MarkdownからPower Point Presentationが出力されるように選択して、そのままknitを実行、

f:id:niszet:20180819235951p:plain

味もそっけもないスライドが作られました。

f:id:niszet:20180820000001p:plain

ちゃんとした?スライドを作るにはアレコレ細工が必要そうですが、それは追って調べていきます。まぁ結構便利かな…どうなんですかね?

そういえば、このpreview版使ったらメニューがこんな感じで、Python は普通に出てくるし、SQLやらPlumberの文字まで見える。すごいモリモリになりそうだなぁ。進化が楽しみ。日本語入力がもうちょっとまともになってくれれば神環境になれるのだが、さて…。 f:id:niszet:20180820000206p:plain

Enjoy!

コミケ(C94)行ってきた

ざっくりと感想。

そんなわけで、初めて夏コミに行ってきた。冬は去年行ったんだけど、1日だけ。今回は1日目と3日目に行ってきたのです。

暑かった…

今年は本当に暑かった。今日は急に涼しくなったけど。なので、2日目は体力的に行けなかったのです。行ってみたかったが。

お目当ては技術同人誌で、1日目はハード、ソフト色々あり色々買いました。ふふふ。

3日目も技術系メインを目当てに行きましたが、1日目に手に入らなかったものやインフラ勉強会で知り合ったば~そんさんのところに行こうと思ったわけですね。しかし3日目も体力が限界で結構早めに撤収してしまいました。おっさんになると体力に自信がないのでちゃんと限界が来る前に撤収できる。えらい。

そんなわけで、積み同人誌が増えてしまいました。全然読み進められていませんね…。

まぁ、自分の原稿を進めていかないといけないのでは…?という感じですが。 そちらの話はまた追々(宣伝?も兼ねて)

(R) set.seed(71) の元ネタ(メモ)

結構前だけど元ネタ教えてもらった…

これだそうだ。

www.slideshare.net

ふむふむ。長年の謎が解けましたね…。

最近は見ないのですが、去年かな?見たときになんだろうこれ…みたいになってたので。新しく始める人(私もですが)にはわからないですよねぇ…

Enjoy!!