Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

スピーカエンクロージャー製作 その2

 

その2

 

f:id:hope_is_dream:20180716114707j:plain

(イメージ図)

 

 

とあるイベント用にスピーカ製作の依頼を受けました。

2wayのスピーカを4セット分を一つのオブジェクトにまとめる仕様ということで。

イベント自体は8/19とまだ一ヶ月あるのですが、スピーカ駆動用のアンプや、マイク入力+ボイスエフェクト等の回路もオーダーで受けているのでそれぞれの準備を一月前から始めようと思っています

 

依頼内容

+ スピーカ x 8発 (+ ネットワーク)

+ アンプ 各100W程度

+ マイクアンプ

+ マイクエフェクター(ディストーション)

+ 電源回路

 

 

 

前回

前回はスピーカユニットの3Dモデルを作る所まで進めました

 

hope-is-dream.hatenablog.com

 

前回は3Dモデルを二つ作りました

f:id:hope_is_dream:20180716171926p:plain f:id:hope_is_dream:20180716174400p:plain

左:ウーファー 右:ツイータ

 

 

箱の設計

箱の材質はスピーカエンクロージャの自作等でよく使われるMDFを想定。厚さは9mm。バスレフポートは50mm。来月に郵送するので出来るだけ小さくつくります。

 

  • 材質: MDF 9mm
  • バスレフ: 50mm
  • その他:可能な限り小さく

 

f:id:hope_is_dream:20180717200132p:plain

図. エンクロージャの3Dモデル

 

まずはエイヤで組み立てていきます。高さ、幅等々は後で変更できるようにパラメータ化しておくと便利です。

f:id:hope_is_dream:20180717200404p:plain

図. ユーザーパラメータ

 

 さて組みあがったのはいいのですが9mm厚でスピーカ二つ(2.9kg)を支えるのは少し心配です。長岡鉄男先生の資料を見ているとどうも15mmを基本として作っているように思えたので設計変更を悩んでます。

 

追記

板厚は9ミリにしました。もし板が泣く場合は鉛を貼るか、リブを立てることにしました。

 

まとめ

いったん箱は出来ました。

次回は板の加工業者を探して、図面の微調整をして発注します。

あとは加工と塗装ー。

 

 

 

 

 

 

 

 

 

 

Unixでメールを送る

Unixでメールを送る

概要

Unix環境でメールを送るやり方を試す

モチベーション

最近、自宅サーバーやAWSで遊んでいると、よく、ログとかを定期的に送りたいなぁと思う。調べるといくらでもでてくるが、仕組みは良く分かっていない。ちゃんと考えるとTCPでなんちゃらとなってきそうなので、僕の出来る限り低級なPOSIXをつかって?のやり方を調べた。

するとPOSIX原理主義の方の記事を見つけることができたので参考に進める

シェルスクリプトでメール送信、「さようならnkf」編 - Qiita

やったこと

aws EC2からsendmailコマンドを使って、自分のgmailにメールを送信

main.txt

From: <dummy@gmail.com>
To: <fifi@gmail.com>
Subject: Hello, e-mail!
Content-Type: text/plain;charset="UTF-8"
Content-Transfer-Encoding: base64

日本語で送ります

sendmailをつかって送信

$ cat mail1.txt  | sendmail -i -t

できた! 迷惑メール判定されていました(gmail賢い). 日本語の送信も確認できました。

まとめ

Unix Sendmailをつかって、メール送信できた.

次回は、メールのホストを作る方法が分からないので調べる。

参考

マニュアル Man page of SENDMAIL

すべてのUNIXで20年動くプログラムはどう書くべきか デプロイ・保守に苦しむエンジニア達へ贈る[シェルスクリプトレシピ集]

すべてのUNIXで20年動くプログラムはどう書くべきか デプロイ・保守に苦しむエンジニア達へ贈る[シェルスクリプトレシピ集]

ポモドーロタイマー

ポモドーロタイマー

omoiyari.fmというpodcastが面白しろくて、最近は毎日聴講しています.

Web業界は異分野ですが、マネージメントやチームビルディング等、分野に関わらず活用できそうな"意識の高い"お話が聴ける貴重なコンテンツだと感じています

(有料でもよさそうだけど. 無料のまま続けて欲しい..)

さて、第0回から聴き進めて着ましたが、第22回が衝撃で3日連続で聴いてしまいました。

kakakakakuさんのインパクトにやられてます

#22 「Trello があるので眠れない」 | #omoiyarifm

ツールや自己管理の手法が参考になる部分が多く. リピートしてました.

このブログも今年は触ってなかったのですが。kakakakakuさんに大分刺激を受けたので、なにも考えずブログをスタートしようとおもったしだいです

「ブログを書く技術」を発表した - kakakakakku blog

そこででてくるポモドーロ・テクニックというkakakakakuさんも実践されているお話がありました

自己流ポモドーロを実践している話 - kakakakakku blog

私は30分刻みで休憩無しでやっていたのですが、やはり上の方々は休憩まで考えるのかと勉強になりました。ほとんど勢いで90分ぐらいコーディングしてしまうので、自分を止めてくれるような仕組みが欲しいと思ったので、「作業を強制的に止めてくれる」ポモドーロ タイマーを作ってみます。

とりあえず作る

まずはプロジェクトを立ち上げる。 既存ツールは調べない。手段が目的。

一応ちょい設計

  • 要件1: 25分後にメッセージを表示
  • 要件2: 強制的に作業を止めるように仕向ける
  • 要件3: 強制的に5分間休憩させる

フォームサイズは固定の方がいいでしょう。 「それしかできないがカッコイイ」

フォームのサイズを変更できないようにする - .NET Tips (VB.NET,C#...)

必要な要素は以下のような感じでしょうか

5休憩の部分で上手い設計が必要となりそうですが 手段が目的なので、ひたすら描き続けます。

まずはタイマーを二つ作ります

タイマー処理の利用 - 一定間隔で処理を実行する (C#プログラミング)

とおもったら、ストップウォッチクラスがあった

Stopwatch.Elapsed Property (System.Diagnostics) | Microsoft Docs

カスタム TimeSpan 書式指定文字列 | Microsoft Docs

private int WorkingTimeLimitMin = 25; //分 25;
private int RelaxTimerLimitMin = 5; //分  5;

private Stopwatch stopwatch;

public Form1()
{
    InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
    // ストップウォッチを初期化
    this.stopwatch = new Stopwatch();
    this.stopwatch.Start();

    // 残り時間を初期化
    label_lasttime.Text = "25";
}
    
private void timer_every1s_Tick(object sender, EventArgs e)
{

    TimeSpan elapsed = this.stopwatch.Elapsed;
    TimeSpan timeLimit = new TimeSpan(0, WorkingTimeLimitMin, 0);
    TimeSpan lastTime = timeLimit - elapsed;



    // 経過時間を表示
    this.label_lasttime.Text = elapsed.ToString(@"mm\:ss");

    // 残り時間 表示
    //this.label_lasttime.Text = timeLimit.ToString(@"mm\:ss");

}

これでカウントアップ(ダウン)ができた.

さて、いくらか25分たったら、アラートを出す

  • 状態遷移
    • wait
    • [Start Action]
    • Working
    • [elapsed > workingTimeLimit]
    • Relaxing
    • [elapsed > RelaxingTimeLimit]
    • wait

enumで状態を作ってそれで管理するか... 行き当たりばったりで、enumで管理するとコードがごちゃごちゃする. それでも最後までいけるか。

enum TimerState
{
    Wait,
    Working,
    Relax
}

private TimerState AppState = TimerState.Wait;

デザイン

色々色をいじっていたら、いうことを聴かなくなった。。。

C# WindowsFormはよくこうなる。よく分からん。

Re[2]: ボタンの背景色がデフォルトに戻らない

C#でColorの値をリストアップしてみる - takoashiの開発記録

なんとかできました。 強制的に最前面表示になり、操作できないようになります。 強制的に最前面・最大画面になるので、他の操作が出来ません。 本アプリ落とすのも大変かもしれません。

フォームを最小化あるいは最大化する - .NET Tips (VB.NET,C#...)

  1. 待機画面

  1. タスク30分タイマ

  1. 休憩5分タイマ

icon

icon作ります 小さいのでこだわっても見えません

でも有るのとないのでは大違いなので気楽に作ります

iconはこちらで作ります

マルチアイコン生成ウェブアプリ - ウェブアプリ - カンタローCGI

Illustratorから500x500のPNGを吐き出し、.icoファイルに変換してもらいます

良い感じではないでしょうか とりあえず小さくなるので、何かあれるだけでいい

READMEを描いてたらアイキャッチ画像が欲しくなってきた。。。

眠い..

癒しのスカイブルーで統一

README

READMEを描かないと。。。

動かせば分かる。はず。。

わかりやすいREADME.mdを書く | SOTA

READMEの良さそうな書き方・テンプレート【GitHub/Bitbucket】 - karaage. [からあげ]

わかりやすい README 駆動開発 - Qiita

これがGo言語とかなら、OSS的な感じになるんだろうなー

リリース

https://github.com/peace098beat/PomodoroTimer

githubにあげました. もし使ってもらえましたら嬉しいです

明日から会社で試してみよう

ふぃ

関連

プログラマならキッチンタイマぐらい作れないと」

初心の頃、キッチンタイマを作ったことを思い出した。

hope-is-dream.hatenablog.com

アジャイルな時間管理術 ポモドーロテクニック入門

アジャイルな時間管理術 ポモドーロテクニック入門

ポモドーロタイマー

ポモドーロタイマー