空の下でひっそりと

てきとーに更新していきます。レーザーカッターや3Dプリンタが好き

ホームセンターで買える木材で自作の机を作った!

 DIYで自分の机を作ってみたら最高!!だったので制作過程を書いていきます。

f:id:yabu_sw:20200712145550j:plain

 

自分の部屋にこんな机あったらいいな〜と思い浮かべた理想の机をそのまま作成できるので、もし機会あれば作ってみてほしい!と思いました。

参考になるかはわかりませんが、ここに自分が作った方法を残しておこうと思います。

 

家に机が欲しかった。

部屋に机は1つあったのですが、このスペースが少しだけ空いてました。

f:id:yabu_sw:20200712145216j:plain

ずっとそのサイズの机があるといいなーと思ってたのですが、なかなかぴったりのサイズの机に出会うこともなく、あっても欲しい感じの机ではないのに1万とかするので、微妙だなーとおもってました。

 

いつか作ろう、と思ってたら2x4材を友達からもらえることになったので、「天板さえ買えば作れる、、、!」となったので実際に作り始めることに。

 

制作にかかった費用

全部ホームセンターで購入しました。

 

メイクマン

天板(広葉樹集成材アカシア15x910x450:メイクマン):1930円

カインズ 

オイルステイン 250ml x 1 125ml x 1 :約2700円

BRIWAX 400ml :約2500円

はけ x 3:300円

カップ x 2:200円

f:id:yabu_sw:20200712152359j:plain

カインズみてたらBRIWAXも良さそうだし、オイルステイン良さそうで買っちゃったけど、大変だったので次やるときはもう少し節約しよ、、、

 

制作にかかった木材

2x4材 長さ100cm 8本

天板 上のアカシア

f:id:yabu_sw:20200712152048j:plain

 

使った工具

ジグソー

インパクトドライバ

 

1日目:木材の切断とオイルステイ(4時間)

日曜の11時くらいから始めて、午後4時に終了。

 

時間かかったのは、木材をジグソーで切断するのが大変で、、、

 

丸のこや、ノコギリをガイド使って直線で切れるようなやつを使った方がいいと思いました。

 

65cmを6本、40cmを3本、33.6cm2本切りました。

実際に使用したのは、65cmを4本、40cmを2本、33.6cm2本で、この時に当初の予定の横幅170cmの机から100cmの机に方針転換しました。

f:id:yabu_sw:20200712153647j:plain

 

さらにオイルステインをしました。

乾かない状態でアスファルトにつかないように、木材の端材を使って浮かせながら塗装しました。

天板下の木材に使うオイルステインが足りなくなったので、作業はここまで。

f:id:yabu_sw:20200712154601j:plain

 

室外機の上にある木材は、もうすでに乾いたやつです。

 

f:id:yabu_sw:20200712153657j:plain

 

この後、足りない素材買いにマイクマンに行き、カインズ に行ったんですけど、お目当てのものは買えず、、、

 

2日目:脚の制作(1.5時間)

この日は木曜日。

乾いた木材だけで進められるだけ進めます。

この日は脚をインパクトドライバーと釘で打ち付けました。

その後BRIWAXを塗ったことで、ちょっと色が深くなりました。

f:id:yabu_sw:20200712155150j:plain

f:id:yabu_sw:20200712155049j:plain

 

 

3日目:追加のオイルステイン(1.5時間)

この日は金曜日。

天板下の2x4材のオイルステインが足りなくなったので、カインズで追加で買ってきて、塗っていきます。

乾いたタイミングで2日目に制作した脚に天板の土台となる部分を打ち付けました。

上の部分は結局天板になるので、オイルステインしてません。

f:id:yabu_sw:20200712155358j:plain

 

4日目:天板取り付け(0.5時間)

最終日は土曜日。

最後は今まで制作してきた土台になる部分と天板をくっつけるのみです。

 

天板がビスで割れるのが嫌だったので、先にドリルで穴を開けておきます。そうすることで、木材が割れにくくなるみたいです。(どっかで聞いた

 

ただ慎重に使わないと、天板を貫通して穴が開きます。

 

穴空いたら、パテで埋めるといいのかな。100均とかで売ってます。

 

天板をアスファルトの上に置いて作業すると傷がつきそうだったので、こちらも端材を使って浮かせて作業しました。

 

f:id:yabu_sw:20200712162302p:plain

 

こんな感じになりました。思ってたよりいい感じに仕上がって満足です😋

f:id:yabu_sw:20200712162527j:plain

 

そして、ついに部屋に設置!

まじかっこいいです🤩

 

f:id:yabu_sw:20200712162505j:plain

部屋の外からみるとこんな感じ。なかなかいい雰囲気出してくれます😊

f:id:yabu_sw:20200712162516j:plain

 

机を作った感想

自分の部屋に、欲し買ったものがあるのはとても感動的です。

使っていてもかなりいい感じなので、また作りたいなと思いました。

 

最後に改善ポイント

塗装がめっちゃ時間かかって大変でした。次はニススプレーのみの塗装にして少し簡略化したいです。

木材の切断にジグソーを使ったのですが、力もかかるし大変でした。あらかじめ設計した通りにホームセンターのカットサービスとかうまく使うと時間短縮できそうだなと思います。

また重さがないのか、作業中に少し横に揺れます。上からの圧力には強く安定しているのですが、横の揺れはどうしようか悩み中です。

 

 

沖縄県議会議員選挙【島尻・南城市区】に立候補している人まとめ

簡易的なんですけど、動画を聞きながら情報をブログにまとめてみました。

動画は、公益社団法人日本青年会議所沖縄ブロック協議会にまとめられていました。

先に候補者の方の動画をみたい方はこちらのリンクからみれます!

www.jaycee.or.jp

原朝子 60歳・自民・新人

こどもの教育頑張りたい。

政策

1、子育て世代のための学童・保育所、中学卒業までの授業料無料

2、高齢者・障害者のための安心した暮らしの実現

3、人材育成。こども達の給付型奨学金の拡充。中高一貫学校の誘致。

4、災害に強い基盤整備。地域ブランドの拡充

5、災害に強いまちづくり。

石原一馬 72歳・社大・現職

オールおきなわ

1、新型コロナウイルスの収束

2、首里城の早期復興、文化芸能の振興

3、辺野古基地移設反対

4、次期沖振興(?)

5、大型MICE施設

6、アジア経済

7、那覇南風原間新型路面電車の実現

8、子供の貧困対策

9、教育現場のインターネット授業の整備

大城 民夫(おおしろ・たみお) 55歳・無所属・新人

所得雇用の格差が大きい。

政策 1、農業・漁業の所得拡大

2、教育促進。こどもの貧困対策。待機児童対策。厳しい道のりではあるが、保育料の無料化も目指す。子供が好きなことが出来るような環境を作る。

3、県民所得の向上を目指す。

4、社会資本の整理。よなばるのMICE実現

5、観光振興の継続、整備。

6、歴史と文化の振興。

7、平和と人権。建白書の実現(?)

8、新型コロナウイルス、拡大防止、支援

大城 憲幸(おおしろ・のりゆき) 51歳・無所属・現職

2期目の挑戦

1、政治の改革。基地問題による対立の政治が続いてきたが、政治は提案型である必要がある。

2、農業で沖縄を元気にしたい。沖縄の産業改革をしたい。沖縄の産業構造の取組をしたい。

3、子供達のための政策。教育や福祉には財源が必要。そのための産業みつめ直しと政治の改革が必要。

座波 一(ざは・はじめ) 60歳・自民・現職

南城市元副市長

沖縄県政の危機管理が疑問だった。

沖縄振興計画は大事。

南部だけでなく、北部の問題も訴えていく。

土地利用の問題を重要視している。

道路整備をし、物流を整えていく。

政策

1、土地利用計画、

2、特区制度の戦略

3、道路整備

自然大切。沖縄の自然環境の保護・再生を世界にアピールしていく。

玉城 武光(たまき・たけみつ) 71歳・共産・現職

オール沖縄 新基地建設反対

大学院大学との協力で、県内のPCR検査の実現をした。

基地建設の費用を県民の暮らし・経済再建を進める。

医療支援を強め、コロナ収束、経済再建に務める

国に負担を求める
・事業収入の8割補助
・中高生のバス賃無料
・事業者の家賃などの固定費
・学生には返済不要の奨学金
・イベント等のキャンセル料

最後に

かなり簡易的に動画内容を書いています。

候補者の方が自身の政策を動画に短くまとめているので、みて決めるといいかも、と思っています!

www.jaycee.or.jp

dockerの--remove-orphansオプションを使って関連しているコンテナをまとめて削除した話

 

dockerを使って開発環境の作成をしているのですが、一度デーモンで起動しているdockerコンテナを消さないままファイルを削除して、新しく同じプロジェクトをcloneしてきたときにエラーがでたので、解消法を調べてました。

 

環境と自分の理解レベル


macのローカル環境構築にdockerを使用しており、私はdockerは概念と利用の仕方を知ってるくらいです。

 

 生じたエラー

 

``ERROR: error while removing network: network プロジェクト名 id "c82ba231a7cd602e68a229bb959c10f1d75c48b0a4d16ba2ffc87079cd3d3707" has active endpoints```

 

このエラーは2回目にcloneしてきた`docker-compose up -d`を実行したときに生じました。

 

内容は、「ネットワークの削除中にエラー:削除しようとしたエンドポイントは動いています。」

 

これは、2回目にcloneに```docker-compose up -d```実行時に、1回目に作成したコンテナとも同じ名前で結びついているのが原因みたいです。

 

参考になった記事

 

https://qiita.com/shundayo/items/8b24af5239d9162b253c

https://qiita.com/dmrt/items/d82281de1b822f903052

http://docs.docker.jp/compose/reference/down.html

 

上記の記事を参考に、```docker-compose down```に```--remove-orphans```のオプションをつけて、Composeファイルで定義していないサービス用のコンテナも削除します。

```docker-compose down --remove-orphans```

この状態でもう一度`docker-compose up -d`すると、ただしく動作できました!

 

 最後に

記事を書いている途中に、デーモンで起動していたコンテナを消すとよかったのかなと思ったりしました。。。今度ちゃんとdockerの勉強しよう。。

dockerでjavaの開発環境を整えてみた

parallelsによる仮想開発環境から無料で開発できる環境に置き換えたい、といわれたのでdockerでできないか調べてみました。

作りたいもの

今回は、

parallelsで仮想環境を用意」・・・macで仮想環境を用意したということだったので、真っさらな開発環境を用意する必要がありそう。

centOSを入れた」・・・OSをいれたということはそこにコマンドからJDKを入れたのかな。

「9000円くらいの課金」・・・parallelsの本体価格が8500円

この条件であればdockerでできるかな😇

なぜdocker?

javaの環境(image)が用意されているので、jdkやosのインストールが不要。手間が省ける。

コマンド1発で仮想環境(dockerではコンテナと呼ぶ)が立ち上がるので簡単。

ただcentOSではなくDebian系のosなので、絶対centOS!!!!とかだとこの案は却下😨

目次
  • 1.dockerでjavaの環境構築
  • 2.もっと効率よく開発しよう

1が説明とテスト、2は開発環境も整備した環境なので2がオススメ!

1、dockerでjavaの環境構築

まずは、dockerが必要なのでmacに公式サイトからダウンロードしてインストールします。

https://docs.docker.com/docker-for-mac/install/

正しくインストールできてるか確認👀

> docker version
Client: Docker Engine - Community
 Version:           18.09.2
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        6247962
 Built:             Sun Feb 10 04:12:39 2019
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.2
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       6247962
  Built:            Sun Feb 10 04:13:06 2019
  OS/Arch:          linux/amd64
  Experimental:     true

javaのイメージをローカルで使用可能にするためにpull。

> docker pull java

仮想環境を起動する。—name javatestで名前を指定、

> docker run -it --name javatest java

一応ファイルに記述したかったのでvimをインストール。osはdebianなのでaptが使える。(centOSyumと同じパッケージ管理ツール)

# apt update
# apt install vim

javaの動作確認用テストファイルを作成。

# vim Main.java
public class Main {
  public static void main(String[] args) {
    System.out.println("Hello World!");
  }
}

コンパイルしてクラスを作成、

# javac Main.java

実行。

# java Main
Hello World!

できた!

dockerで作成したコンテナにフォルダを送信する

dockerで作成した仮想環境[コンテナ]にローカルからフォルダを送信するには、docker cpを使います。scpのdocker版。

ローカル環境で実行、ローカルからdockerコンテナへファイルを送信する。

> docker cp [オプション] ローカル・パス|- コンテナ:パス
> docker cp ~/Document/javatest/Main.java:/home/share

一応開発環境はこれで整ったのですが、フォルダを送信やファイルへの変更をいちいちコマンドでやるのは大変です。

2、効率よく開発しよう✏️

問題点

エディタが使えない・・・コードの作成や編集をvimでやるのはむずい。

フォルダを送らないといけない・・・時間かかったり、送れたかの確認がコマンドでしかないので面倒。

解決方法

macのフォルダと共有させて、コード編集やファイル管理はmac上、コンパイルはdockerコンテナでやればよさそう。

ここから見る人用にはじめから解説。

macにdockerをインストール。https://docs.docker.com/docker-for-mac/install/

javaのイメージをローカルで使用可能にするpullまでは一緒。

> docker pull java

runするときに-v /path/to/macFolder:/path/to/dockerContainerFolderをつけると、macにあるフォルダとシェアさせるこができる。(正確にはホストのディレクトリをマウントする)

> docker run -v /path/to/macFolder:/path/to/dockerContainerFolder --name javasample -i -t java

ぼくの場合は、

> docker run -v ~/Documents/javatest:/home/share --name javasample -i -t java

動作確認

macの~/Documents/javatestにTest.javaのファイルをエディタで作成し設置。

f:id:yabu_sw:20190221174454p:plain:w300

dockerコンテナの/home/shareで、

# javac Test.java
# java Test
Test Hello World!

macのエディタからコードを作成し、dockerでコンパイルと実行ができました!

macで削除したファイルがdocker上で消えるか確認。一応コマンドから実行(finder上で移動・削除しても一緒)。

macの~/Documents/javatest

> ls
Test.java Test.class
> rm Test.java
> ls
Test.class

dockerコンテナの/home/share

# ls
Test.class

消えてるのが確認できた!

dockerの操作

動いてるdockerを確認する。他にも[CONTAINER ID]の確認とかに使う。

> docker ps

-aで停止しているコンテナの確認もできる

> docker ps -a

dockerを停止(docker上で実行)

# exit

dockerを停止(ローカル上で実行)

> docker stop [CONTAINER ID]

作成したdockerコンテナを起動

> docker start [CONTAINER ID]

コンテナ削除(不要になったときに使う)

> docker rm [CONTAINER ID]
まとめ

javaの実行環境だけだったら、dockerとローカルマシンに共有フォルダを作成するだけでめっちゃ簡単になった。

これで要件は満たせたかな、、、?

2/22追記 eclipsとかintelliJ使った方がやっぱよさそうだよね笑

参考文献

qiita.com

qiita.com

qiita.com

qiita.com

論文発表用のスライドにはページ番号を追加しよう

論文発表のスライドを作成していると「スライドにはページ番号を振りなさい」とアドバイスをいただきました。

調べると一括でページ番号をつける方法がありました。(googleスライド編)

ページ番号

ページ番号を納入するには、[挿入]→[スライド番号]を選択。 f:id:yabu_sw:20190217151909p:plain:w300

[適用]を押すと全てのスライドにページ番号が振られます。 f:id:yabu_sw:20190217152000p:plain:w300

[選択したスライド]に適用は今表示しているページのみ番号を表示させます。

参考サイト

support.google.com

picins.styが無いと言われた時の対処法

f:id:yabu_sw:20190206132003p:plain

卒業論文を書くためにtexファイルを頂いたのですが、mactexshopでタイプセットすると、pincins.styが無い(! LaTeX Error: File `picnis.sty` not found.)と言われたのでその対処法。

大人しくpicins.styで調べてみると、どうやら写真を挿入するのに使うためのファイルのようです。

コードを見てみると、\usepackage{picins}の記述がありました。

解決法

パッケージをダウンロードしましょう。リンクは本家サイトから。 https://ctan.org/pkg/picins

このフォルダの中にpicins.styがあるので、これをtexファイルが置いてある場所と同じフォルダに置くとコンパイルが通ると思います。

まとめ

卒論書くのって大変ですね、、、がんばろう〜

簡単なAPIをawsで作成!APIGatewayからlambdaを通してDBから値を返す時に困ったところ

少し前からサーバレスでHPを作ってみたい!と思って、awsを触っています。

今回はlambdaでDynamoDBから値を取得して返すところまでやっており、ほとんどは参考にしたリンクでできたのですが、個人的につまずいたところだけここで紹介していこうと思っています。

参考にしたリンクはこちらです↓

基本的にはこちら(AWSのLambdaとDynamoDBとAPIGatewayの連携 - Qiita)のリンクを参考に進めています。

こちらもかなり参考にしました。 初めての、LambdaとDynamoDBを使ったAPI開発 - Qiita

とりあえずここまでは進められた

"IAMでDynamoDBにアクセス可能なロールの作成"と"DynamoDBにテーブル作り項目の作成をする"までは記事通りにできると思います。

IAM作って

f:id:yabu_sw:20190121234046p:plain

DynamoDB作成

f:id:yabu_sw:20190121233615p:plain

lambdaで関数をテストしようとすると、、、?

ここでいよいよlambdaで関数作成だ、、、!って思ったのですが、DBから取得して値を返すところができずに困ってしまいました。

// ~~~省略~~~

dynamo.query(params, function(err, data) {
    console.log("dynamo_data:", data);
    console.log("dynamo_err:", err);
    context.done(null, data);
});

これがなんか実行できない、、、(一時間くらい調べてよくわかんなかった

一旦ゴールは値を返すところまでにすることにして、とにかく動けという感じで調べてみます。

すると、二つ目のリンクからデータベースの指定したテーブルの値を全部返すdynamo.scanを使う方法が載っていたので、そちらを参考にするとなんとかDBの値を返すことはできました。

regionを自分のDBを作成した場所にしするのと、tablenameはDB作成時に作った名前に変更すれば、さっき作ったテーブル中身を全部返してくれると思います。

僕が作ったのだとこんな感じ↓

var AWS = require('aws-sdk');
var dynamo = new AWS.DynamoDB({
    region: 'ap-northeast-1' //regionはDBを作ったregion
});
exports.handler = (event, context, callback) => {
    var params = {
        "TableName": "test"
    };
    console.log("event:", event);
    dynamo.scan(params, function(err, data) {
        console.log("dynamo_data:", data);
        console.log("dynamo_err:", err);
        context.done(null, data);
    });
};

いちおうテストして値が返ってくるか検証しましょう。

→大きく詰まったのはこれくらいでしたが、結局指定した値までは取れてないので、そこはまた勉強が必要かな、、、

残るはAPIGatewayの設定

APIGatewayの設定は2つめのリンクを参考にしました。(めっちゃわかりやすかった

初めての、LambdaとDynamoDBを使ったAPI開発 - Qiita

最後に

記事通りに進めて自分が詰まったところを書きました。

参考になればうれしいです!

個人的には、結構簡単なとこで詰まってる気がしてつらい、、、笑

できるとこまでは一応進むことができたので、次はS3を使って静的サイトを作って見ようと思ってます✌️

参考サイト

qiita.com

qiita.com