2016年7月31日日曜日

無料の回路図CADはオープンソースのKiCAD(キキャド)が良さそう

回路図すらまともに書けないけど、プリント基板作りたいなぁと思ったのでプリント基板の勉強始めた。(プリント基板の勉強してたら回路図もできるようになるんじゃね?的発想。)

以前に、Designspark PCBというものをインストールして使ってみたのだが、なんとなく使いにくかった。ドキュメントも英語ばっかだし、ビジュアルもいまいちだし、使い方よくわからないしツラタン。。



そんな時、出会ったのが皇潤。




で、CAD探したらKiCADというオープンソースで無料で商用利用可能で、なんら制限のない素晴らしいプロダクトが見つかった。
http://kicad-pcb.org/

何がすごいって、ツールが日本語対応済み!


日本語ドキュメントも用意されてる!
KiCadことはじめ

このドキュメントの「3. 電子回路図の描画」と「4. プリント基板のレイアウト」をやってみた。うむ、何となくイメージつかめた。

ただ、つっかえたところがあるのでメモ。

1.フットプリントの無いネットリストを作成していたのでプリント基板エディタ(Pcbnew)で取り込めない

ドキュメントを上から順にやっていくと、「3.1. Eeschema の使用」の48にてネットリストの作成が行われ、54、55でCvPcbの保存を行う。
それでいいかなぁって、「4.1. Pcbnew の使用」の5でネットリストを取り込むとエラー!
「フットプリントが割り当てられていません。」と言われる。。

そのままの日本語で検索してもいいの出てこないから、仕方なく「kicad pcbnew footprint error」でググったら掲示板で質問を発見。

結論としては、CvPcbでコンポーネントとフットプリントの関連付けを行った後で、48のネットリストを出力する必要があった。(ここは、ドキュメントの記載順変えたほうがいいね。)


2.PCBの外形を定義するときの「Edge.Cuts」のメニューどこ?

「4.1. Pcbnew の使用」の手順11で指定される、Edge.Cutsがすぐに分からなかった。
言われたらすぐわかるんだけど、

ここか、

ここ。

レイヤーというまとまりで、配線とか枠線とかを管理出来て便利!今回は2面だから表面の(F.Cu)と裏面の(B.Cu)で線を引いたけど、もっと層増やしてもこれなら安心やで。


しばらくは、KiCADで頑張ってみようと思う。

2016年7月18日月曜日

IT企業を地方に作ってそこで生活するときの地域を選ぶ基準

東京で仕事してるとあまりにも便利で、「どうやったら地方で仕事になるんだろ?」ってときどき思う。
もし自分が地方で会社を作ってそこで生活するならどんな基準で選ぶか考えてみた。

地方には人もお金も無いので、クライアント(お金を出す人)は東京の人を前提にビジネスを設計するべきというのが持論なので、インターネットを使うビジネスを地方でやることを前提にしている。
別にGoogle検索みたいなサービスじゃなくてインターネットで卵売るとかでもOK。この記事では、大きな採掘場作るとか、工場作るとか単純労働が多く発生する業務は考慮してない。

会社はIT企業と仮定して、評価基準を大きく次の項目に分類した。

  1. 仕事のしやすさ
  2. 人材確保のしやすさ
  3. 一人暮らしのしやすさ
  4. 地域住民との相性
  5. 長く住みたいと思える地域の魅力
1,2,3は会社の成長のために必要な基準、4,5は自分が住みたいと思える基準。それぞれの項目が被ってる部分もあるが、次にもう少し細かく理由を整理する。

仕事のしやすさ

仕事っていうのは結局、人と人が行うもの。機械と機械、動物と動物がするものではないし、人が一人で完結することもできない(普通は)。そうすると、必然と「打ち合わせ」というものが必要になってそれが東京だと圧倒的にやりやすい。地方でもSkypeで打ち合わせ出来ると思ってるようじゃ無理ですわ。東京のクライアントは、直接会える東京の人と契約します。

山手線は5分も待てば来るし、地下鉄も沢山走ってる。電車の時間なんてあまり気にせず駅に向かって、乗ればOKな便利さは東京ならでは。

あと、残業がしやすい。遅くまで電車はあるし、コンビニ、飲食店は空いてるし、タクシーは走ってるし、家に帰れない場合でもビジネスホテルやマンガ喫茶が沢山ある。

この辺を加味すると、地方選定のポイントはこうなった。
  • 都市部への交通の良さ(客や協力会社との連携のしやすさ)
  • 東京へのアクセス(客や協力会社との連携のしやすさ)
  • 飲食店、コンビニの数(残業のしやすさ)
本当は、ビジネスホテルやマンガ喫茶もある方が良いが、地方では車で出社する人も多いし車で帰宅すればいっか。

人材確保のしやすさ

企業を成長させる目標があるなら、ビジネスを大きくするために人材確保が必要になる。エンジニアが必要な企業の場合、高度な学習や思考が出来る人材がいないと仕事にならない。その人材確保が地方では特に問題になる。今まで畑仕事をやっていた50、60才の人がITエンジニアになれるかと言ったらまず無理である。

また、過疎地域にある企業は地元の人しか応募しないような状況にもなりやすいだろう。多く応募があればその中から業務に適切な人員を選べる。しかし、地元の人が時々応募するだけのような状況は強い戦力を追加できず、会社の競争力が失われていく。

高学歴の人間が必ず仕事できるとも思っていないが、やはり仕事を産めるのは高学歴の人間が多いと思っている。それなので、全員である必要はないが高学歴だったり、若い人材が欲しい。

それなので、ポイントは次のもの。
  • 地元以外の人間が応募するか
  • 高学歴の人間が応募するか
  • 若い人が応募するか
また、私がもし採用を担当するときに意識したいと思っているのは次の3点。
  • 正直であるか
  • 知性があるか
  • エネルギーがあるか
これは、Twitterで流れててなるほどと思ったので受け売りw

一人暮らし生活のしやすさ

人材確保と被るが一人暮らしの生活のしやすさも会社の成長を考えるうえで重要。

大学生が就職活動して東京に住み始めると大体一人暮らし。それで、生活がしやすいと残業が多少あっても文化的な生活ができる。生活が楽しくなればその仕事、その地域に長く所属するだろう。

持論だが、残業を平気で出来る人、家で学習できる人じゃないと社会人として成長が遅いし、周りから頼られるような仕事人にならない。残業した後でも、家で学習する時間をとれるように家事は省力化するのが好ましい。

地方でビックリするのは、賃貸アパート、賃貸マンションの少なさ。(家も少ないからそりゃそうなんだけどw)
若い一人暮らしの人が引っ越して来にくいので、賃貸が確保できる地域の方が良い。

あと、地味に天候が生活のしやすさ変える。(週末晴れてると洗濯物できるとか仕事が進む。)

私が考えるこの項目はこんなポイント。
  • コンビニ、飲食店の数
  • スーパーが近くにある
  • 賃貸がある
  • 天候が良いこと(晴れが多いこと)
本当は、娯楽もあった方がいいのかもしれないが、いかんせん私がインターネットがあれば割と楽しいので特に含めなかった。

地域住民との相性

ここからは、仕事のしやすさではなく、自分が長く住めるかどうかの基準。
  • 住民の価値観、倫理観の一致
  • 住民の社会性
  • 住民の経済力
この3つにした。
価値観違うと辛いだろうなというのは、例えば、原発反対する住民だらけの中で原発賛成したり、米軍基地反対する住民だらけの中で基地賛成したりとか。あと、倫理観は同じ方が良いよね。

社会性っていうのは、人と人の関わり合いが下手な地域があるようなので、そういう地域は遠慮したいなと。
例えば、秋田の上小阿仁村(かみこあにむら)とかは酷くて次の様なニュースがある。

村で唯一の医師が辞意。献身的な医師に対する村人の心無い罵声が背景か…秋田・上小阿仁村

【秋田】 上小阿仁村の公募医師がイジメに耐えかね辞意 3人連続1年で

秋田県上小阿仁村に乗り込んだ西村勇医師、体調不良のため退職へ

秋田の医者いじめ村、地域おこし協力隊員を追い出す

日照時間の長い地域の方が、比較的温厚な人は多いっぽい。あと、金持ちが多いとやっぱり心に余裕ある。

長く住みたいと思える地域の魅力

私が東京に長く住みたいと思わない一番の理由が人が多いから。新宿駅とかでも人避けながら歩かないといけないし、電車も人と押し合いながら乗らないといけないし、「なんでこんなに人いるんだよ」って思う。確かに仕事はしやすいし経済を回すための機能は素晴らしい。が、人口が増えすぎて近くの安い保育園や老人ホームには入れなかったり、社会としての機能がパンクしてる部分もある。人が集まりすぎてるのが問題だから、まずは自分が引っ越すか、というのも頭にある。

地方に引っ越した時に住居付近に欲しいものは次のようなもの。
  • 景観(自然と街並み)
  • 治安
  • 物価(住居や美味しい食べ物、飲み物)
  • 災害リスク(震災や津波、噴火、洪水、放射能とか)
  • 娯楽(人工物としては映画とレストランくらいあると良い。海や川、湖で釣りとかしたい。)
  • 学校(子供いないけど、子供育てるなら学校通学できる場所選ぶと思う)
  • 病院(今は殆どいかないので家の近くに無くても良い)



全部が完璧な地域なんてなくて、点数付けするならどういうところかなっていうのでまとめてみました。
前からぼんやり思ってたことを整理できてよかったです。まる。

2016年7月9日土曜日

DataNowにGoogle Maps API V3 で緯度経度を表示、取得できる機能乗せた

ネコ用GPSのPawtrackに刺激されて地図の上にトラック表示するの面白そうと思って、マップを使ったテストしようと思った。

Yahoo地図とかGoogleマップあたりが候補にあがるのだが、情報量も多いGoogleマップに落ち着いた。Googleマップは有料のビジネスプランも存在しており、使用方法は注意が必要。例えば、有料会員しか見えないページでしかGoogleマップを使った機能にアクセス出来ない等はビジネスプランの購入が必要。一方、オープンなページで利用できる機能なら無料プランで良いらしい。

無料で使いたいので最近放置していたDataNowに乗せよう(笑)
それで、動かせるようにしたものが次のリンク。
Googleマップで緯度経度を確認できる。

まだ、機能は少なくて次の2つだけ。

  • 地図の中央の緯度、経度を表示
  • 入力した緯度、経度に移動

でも、こんなリッチなマップを誰でも自分のサイトに入れれるなんて便利な時代になったねぇ。



Googleマップの中央にアイコン画像出すならCSSが良い

ただ、地図、中央にアイコンを表示するのにちょっと手こずった。rails5でcoffeescript使ったせいで普通のjsと違ったところもあるかもしれないけど、Markerオブジェクトにiconで自分の作った画像入れると、coffeescriptのコンパイルがうまくいかなかった。。

hashオプションの初期化を1回じゃなくて、1つずつセットする方法だとコンパイルして画面表示まで出来たのだが、アイコンが中央からずれる不具合が出た。調べてみると、CSSの関係でそういうことが起きたりするらしい。。辛い。

Stackoverflowにあった「Is there a way to Fix a Google Maps Marker to the Center of its Map always?」をみて、CSSで実装した。JSでやるよりサクサク動くし、別に表示以外するつもりないし、こっちの方がいいや。

cssはこんな感じ。(実装はsassでやってる)。

  // google mapは高さを付けないと表示されない。
  #map {
    width: 100%;
    height: 400px;
    border: 2px #808080 solid;
  }

  // マーカーはcssで実装する。(jsでやるとcenterちゃんと取れなかった。)
  #map:after {
    width: 60px;
    height: 60px;
    position: absolute;
    top: 50%; left: 50%;
    background: image-url("ic_map_center.png") no-repeat;
    pointer-events: none; /* This disables clicks on the marker. Not fully supported by all major browsers, though */
    background-size: 60px 60px;
    content: ' ';
    margin: -30px 0 0 -30px;
  }

完璧!


緯度、経度から距離を求めるjsライブラリGeolib使ってみよう

次は、緯度、経度から距離も表示しようと思った。
ただ、緯度、経度の距離って結構面倒くさい。。なにより、緯度によって、経度の1度の距離が変わってしまうから。(参考: 緯度経度1度の距離、 経度1秒は何メートル? )

地図は60進数を使って「北緯35度39分30」のように表す時がある。Googleマップ等は小数点以下を全部10進数を利用するのでその辺の考え方ややこしい。
なんで60進数なんて使うんじゃい!と思ってググったら興味深いこと書いてあった。

それははるか昔、円を360度としたのは、約5000年前のメソポタミアのバビロニア人でした。彼らは月と太陽の動きから60進法を考案して、地球が1日で太陽の周りを回転する角度を1度とし、地球が太陽の周りを一周する一年は360日と決めたので、円一周が360度となったのです。
なる~。

話を戻すと、緯度、経度の距離計算がしたいと思いまして、自分でやるの少し面倒そうなのでライブラリを探しました。

Geolib が良さそう。MITライセンスだし、Star 1000以上付いてるしきっと大丈夫。
今度これを使ってみる。