むち打ちエンジニアおじさんのブログ

未来技術に関する調査記事を書きます。

火星移住化計画について真剣に調べてみた結果、ガチで人類火星に行けんじゃね?(3000字)

「イーロンマスク」の画像検索結果

先日、イーロンマスクのTED動画を見ていました。イーロンマスクといえばPaypal社の前身を設立した人物、スペースX社、テスラモーターズ社の現CEOです。そんな彼がその動画で語っていたことの一つに火星移住化計画がありました。今回はその火星移住化計画について書いていこうと思います。

「テラフォーマー」の画像検索結果

(テラフォーミング)Terraforming

そもそも火星移住化計画って10年前くらいから(もっと前かな?)耳にはしていましたよね。最近だとテラフォーマーズという漫画が映画化されていましたね。

600年後の地球を舞台に、人口増加や資源の枯渇より火星のテラフォーミング化を行った。その環境下で異常進化を遂げたゴキブリ「テラフォーマー」を人類が駆逐する。

そんな話です。初期の漫画しか読んだことないんで、詳しいことわかんないです。

ここで述べられている「テラフォーマー」とは、テラフォーミング(英:terraforming)からきており、意味としては人為的に惑星の環境を変化させ、人類の住める星に改造することです。アメリカのSF作家、ジャックウィリアムスンが用いた造語が語源と考えられているそうです。

 ここからテラフォーミングに関して調べたことを簡単に書いていきます。ちなみに僕はその手の専門家でもなければ、schoolでそれについて学んできた訳でもないので期待しないでください。

関連画像

火星や金星のような惑星環境は地球のそれとはかけ離れています。しかしこれらの惑星の進化の過程を見てみると、金星が高温高圧の灼熱地獄になっているのも、火星がカラカラに乾燥し凍結した世界になっているのも、太陽からのエネルギーの届く量と惑星地震の質量という二つに起因してるそうです。まあ、太陽に近ければ暑いし、遠ければ寒いですよ、ってことかな?

1961年に、カリフォルニア大学の惑星物理学者カールセーガンが金星の環境改造に関する論文が発表されました。それをきっかけに、テラフォーミングに関する議論に火がついたとされています。

現在、火星のテラフォーミングの方法は2つの案が検討されているそうです。

①火星の地表に吸収される太陽の光量を増やし、火星の気温を上昇させる方法。

②火星の表面を覆っている、太陽光を吸収しやすい暗黒色の炭素質物質を破砕して火星表面に撒き散らし、太陽光の吸収効率をあげる。

ちなみに②の方法が、テラフォーマズで使用されている方法で、藻類を繁殖させることで太陽光の吸収効率(アルベド)を変化させています。

どちらも、まずは冷え切った火星を暖かく保つことを目指しています。気温が高まれば火星地下の水分が溶け出し、水が液体として存在できるようになれます。この水を利用して、植物を育てて、光合成によって徐々に酸素を増やしていこうとしているみたいです。

実現にはかなり時間がかかりそうですね。短期的に見たら、スペースコロニーの建設が実現度は高そうに素人目線には思えます。

 

イーロンマスクの火星移住計画

www.youtube.com

 これはイーロンマスクがCEOを勤めるSpaceX社のSpaceXというロケットのイメージビデオになっています。高さはビル40階相当、エネルギーは満員、燃料満タン、荷物もパンパンの状態のエアバスを宇宙空間に届けることができるそうです。動画を見てみると、宇宙空間でエンジン部分を切り離しています。それはまた地球に戻ってきて、再び旅客部分と連結し発射されています。これはイーロンマスクが15年に渡って取り組んだとされている再利用可能ロケットです。

 

100%再利用可能ロケットの開発を現在では目指しているそうです。再利用によって30%以上のコストカットが実現できるそうです。 

ではなぜイーロンマスクはこれだけこだわって火星移住化計画を推進しているのか、という疑問が生まれました。調べて見た結果、僕には1つの動機が見えてきました。

・創造的原動力

彼には特別な創造的な原動力が備わっていると思います。例えば、Paypalでは当時誰も考えなかったような電子決済サービスを生み出しました。テスラ・モーターズでは次世代電気自動車を作っています。彼は未来を想像し、創造することにただならぬ興奮を覚えるような人物なのだと思います。だからこそ、火星移住化計画に関してもここまでの熱量を持って取り組めているのだと思います。amazonのジェフベゾスだって、ホリエモンだって宇宙事業に取り組んでいますが、起業家にとって創造的な原動力を持っており、まだまだ未開の宇宙事業に惹かれ行動していると思います。また、宇宙事業が盛んに語られる背景として、民間の人工衛星打ち上げを許可制にする「宇宙活動法」と、衛星画像の利用を規制する「衛星リモートセンシング法」が2016年に成立された事もその一つに数えることができると思います。

2017年現在の宇宙産業市場は1.2兆円ですが、宇宙はまだまだ未開で範囲も広く全く関係のない地上の分野が宇宙と関わることで化ける可能性もあります。本当に夢がある産業ですね。

 

「国連」の画像検索結果

宇宙条約

1966年に国連で宇宙条約というものが決議、発行されました。これは、月そのほかの天体を含む宇宙空間の探査及び利用における国家活動を律する原則に関する条約です。宇宙空間における探索と利用の自由、領有の禁止、宇宙平和利用の原則、国家への責任集中原則などが定められています。ちなみに日本は批准国になっています。

・領有の禁止(第2条)

天体を含む宇宙空間に対しては、いずれの国家も領有権を主張することはできない。

しかし、天体の植民地化を禁止している訳ではないので、宇宙条約に反しない限り民間企業が火星に人類を送り、植民地を作ってそこに新しい会社を設立する事もできます。

植民地化が進むにつれて、植民地の運営構造に直面することになると思います。火星に人が溢れるようになってくると、予想できなかったような法的問題も出てきます。火星で新たな命が誕生する事も考えることができます。そうなった場合は地球を知らない火星人第一世代が誕生します。ある一つの国が天体を独占することは難しいと考えると、火星が新たな国家として独立する日がくるのでしょうか。

 

火星移住計画の課題

ここまで火星移住化計画に関して、その方法やイーロンマスクの取り組み、法律の問題に渡って書いてきました。最後に素人目線の見解を書くと、火星移住化計画は民間企業によってかなり実現度の高いところまでくると思います。科学的にも経済的にも実現可能だと思います。ただし乗り越えなければならない大きな問題もあると考えています。それは、未開の地に足を踏み入れるにあたっての人命への安全保障です。

世界が豊かになっていくにつれて、人の命はより大切に扱われるようになったと思います。まだまだ豊かになったその未来で、未開の地で安全保証が証明されていないロケットに民間人が乗るといったイメージは湧きません。飛行機を例に取っても、現在の旅客機は1970年代に入ってようやく実用化されたもので、それまでは第一次、第二次世界大戦で軍用機として開発されていた飛行機の歴史があったからです。実際に人を乗せて何度も飛行した例があるから、私たちは旅客機に乗れているのです。

ロケットも同じことが言える時代がくるのでしょうか?ぜひこの課題を解決して、生きているうちに火星旅行してみたいですね。

 

誤字脱字、間違った事を書いてたらご指摘ください。

【ほぼ資料のみ】IT業界俯瞰してみたー

IT業界の俯瞰したスライドを仕入れたので公開しようと思います。結構わかりやすく整理されているなーといった印象。参考までにどうぞ。

 

 

f:id:rinAtoZ:20170405001623p:plain

僕が属しているのは、左下BtoBです。受託開発ではなく、パッケージ開発です。

f:id:rinAtoZ:20170405001628p:plain

適当に挿入したけど、何ぞこのスライド笑 何が言いたいんやら笑

f:id:rinAtoZ:20170405001634p:plain

この図からすると実際に開発を行うのは4次請まで下がるのかー。そして、人月単価はMAX90万円。これが売上になるので4次請の会社の20代のMAXでの月収は30万くらいになります。

f:id:rinAtoZ:20170405001642p:plain

BtoCのWEBサービスのビジネスモデルです。広告モデルは事業規模が大きい会社が存続しているイメージ。課金系、仲介系のビジネスモデルはベンチャーでも比較的始めやすいイメージがあります。

f:id:rinAtoZ:20170405001647p:plain

僕はBtoBのパッケージ開発、webエンジニアでこのグルーピングに該当するのかな。

f:id:rinAtoZ:20170405001652p:plain

ウォーターフォール経験したこと無いからわかんねえww 僕のプロジェクトはアジャイルかな(いちよう)

f:id:rinAtoZ:20170405001656p:plain

このくくりだと、受託開発がSEの仕事なのかー。受託開発じゃ無いから、俺はPGなのか??

f:id:rinAtoZ:20170405001702p:plain

こういった遷移でITアーキテクチャが変化したのか。初めて知りました。。。。

f:id:rinAtoZ:20170405001708p:plain

ちょっと技術系の話に偏ってきたww マシン依存系のOSに携わったこと無いから汎用機系はイメージできないなあ。そもそもマシン依存系のOSって何で依存する設計になるの????

f:id:rinAtoZ:20170405001712p:plain

ライセンスってつえーーーーーー。そりゃ世界的な企業になりますわ。IBMの請負から脱却してOSをライセンス販売してなかったらこれだけの世界的な企業にならなかったのだろうなー。

f:id:rinAtoZ:20170405001716p:plain

ここが僕の一番の苦手分野です。。。SQL難しいなあ。。。

f:id:rinAtoZ:20170405001724p:plain

おおお、勉強になります!!!

f:id:rinAtoZ:20170405001723p:plain

業務ではスクリプト言語しか触ってないから、javaとかも触ってみたいなー。

 

以上、IT業界?(結構込み入った技術系のスライドもあったけど)の俯瞰したスライドの紹介でした。

フロントエンドの処理は軽くしちゃいなぁ

フロントエンドの処理は軽くしちゃいなぁ

 

最近はフロント側での処理に凝りすぎて、サーバーサイドに盲目になっていたのでメモ。

 

そもそもwebアプリケーションにおいて、レスポンス速度は本当に大切。そんな事も忘れてjsで複雑な処理を書いて満足していた。サーバーサイドでも出来るような事をも。

今日実感したのは、

 

サーバーサイドで出来ることはぜんぶそっちでしちゃって、フロントエンドでは最小の処理で済ませるべき。

 

改めて書いて見ると当たり前だし、恥ずかしくなるけどjsに夢中になり過ぎてこんな事も忘れてた。今では1つ1つの処理を引数に変数をおいてajax通信してたけど、この引数が確定してる事からそれらを配列に格納して引数として渡し、通信を一回きりに抑える。

たまには、codeigniterに夢中になってみるのも良いのでは??

 

あ、それと最近はコーディングの速度を上げるように意識してる。コードの行数で測るのはどうかとも思うが、1番定量的に見れそうなのでメモしておく。

 

12/19 327行

12/22 289行

12/23 380行

 

まぁ、会議とか話し合いとかあるし、改修作業なので書いた分減らしてるからこの程度かな、と。何よりも迷わず、バグも無しに書けるようになりたいなぁ。

 

意識している事としては、

  • 集中力
  • タイピング速度の向上
  • コーディング前にロジックを整理する

 

他にアドバイス等あればお願いします。

 

以上です。

 

 

『来週の部会で新人のプレゼンあるから、、』

今日上司から、『来週の部会で新人のプレゼンあるから、それが新人賞の一次先行になるよ』と。

唐突でびっくりした。僕の会社には、その年一番の新人を表彰する文化がありそれが新人賞というものだ。もちろんそれを目指して1年頑張ってきた。最近は意識せず、ただ目の前の目標や業務だけを追いかけていた。だから今日唐突に新人賞のプレゼンを知らされて驚いた。

 

流石に新人の中で自分の立ち位置くらい、わかる。僕が感じているレベルとしてはまぁ、真ん中くらい。資格も人より多く取ってるわけでも無ければ、これといった成果も残せていない、と思う。

今日上司からプレゼンのことを告げられた時、悟った。

 

新人賞とれないだろう、と。

 

そして少し悲しくなった。別に勉学をさぼっていた訳でもないし、むしろ他より勉強した方だと思う。電車の移動中は本やブログを読んで勉強し、業務も遅くまで残って取り組んだ。休日の2日に1日はサーバーを立てたり、プログラムを動かしてみたりしていた。

それでも同期との差はそこまで縮めることが出来なかった。

 

志半ばで退職した同期で、親友が僕には1人いる。そいつに言った事が頭の中に過ぎる。

 

『新人賞取れんかったら会社辞めるよ。』

 

やっぱり才能無かったのかな、、、。

そう思ってしまうと辛いから、少しでも自分の事を慰めることにする。

まず、レベルたけーよ。同期と言っても4年、6年プログラム書いてた理系にそんな簡単に追いつけるわけない。むしろ、そいつらのレベルまで近付いた事を褒めて欲しいくらい。まぁ、実力主義の社会でそんな事言ってられんけれど。

次に、僕だって一定の成長と成果残した。新人賞を取るという意味では運は悪かった。3ヶ月やってきたiOSの開発は頓挫して無くなったし、その後未経験のWEB開発にうつった。慣れるだけで時間かかるのに、直ぐに成果なんて出せないわ。そんな中でも、もう2つの機能は実装できた。しかも今では、チーム内で一番ロジックが複雑な機能の開発をしてる。実装スピードもチームのメンバーにだんだんと追いついてきた。スピード感でいうと、メンバーの0.8倍くらいだ。システムの構成も理解してるし、派遣社員さんの質問にも難なく答える事はできる。スキルはこの3ヶ月相当に伸びた。伸び代でいうと同期の中でもトップレベルだと思う。

最後に、好きには敵わない、とほんとに思う。周りの同期と比べて思うのが、コーディングが、システムのアーキテクチャを考えるのが大好きで、僕はそこまで好きではないという事だ。やっぱり好きなものには勝てないと、今になって思った。

 

この半年の学びを纏めようと思う。

・モバイルアプリのUI設計をした。

・基本、詳細設計を作成した。

iOSで一機能開発した。(swift)

・小売業界の知識に詳しくなった。

・バーチャルマシンの構築、開発機環境の移行を行えるようになった。

・機能から逆算してDBを設計できるようになった。

・GITでのバージョン管理を行えるようになった。

JavaScriptPHP環境でWeb側の2機能を作成した。

・スコープを意識して、クロージャーや即時関数等使えるようになった。

jQuery,その他ライブラリを用いて開発を行えるようになった。

・同期、非同期の違いを理解して、機能を設計する事が出来るようになった。

・同じ処理を1つに纏めたりしてコードの軽量化を考えれるようになった。

DHCPFTP等サーバーの役割を理解出来るようになった。

・まじ、わんちゃん等の非ビジネス用語を使用しないようになった。

・決算書を大枠で読めるようになった。

基本情報技術者資格を取得した。

・自宅でLAN環境を構築して、raspberrypi でwebサーバーを立てて、簡単なアプリケーションを動かした。

phpフレームワーク、codeigniter を使えるようになった。

・ライブラリーとフレームワークの違いを説明出来るようになった。

・最近のフロントエンドの流行り(リアクト、アンギュラーとか)を知っている。

・シェルコマンドを叩いて簡単なネットワークの設定等できるようになった。

 

 

 

配属されて7ヶ月。僕の成長はこんなもんか、、と思う。来週から新人賞プレゼンが始まる。不安、憂鬱になっても仕方がないので今日も仕事をする。

 

以上です。

 

今日の良記事まとめ

qiita.com

javascriptのthisの概念を簡単に4種類に分けてくれた。読んだけど、半分くらいしか理解できなかった。。 

qiita.com

やっぱりもともとの概念理解しないとコード書けない。クラスベースとプロトタイプベースの違いを勉強しなければ、、、。

 

即時関数のメリットと主な用途|もっこりJavaScript|ANALOGIC(アナロジック)

これは本当にそう。しっかりとメリットを理解して使い分けないと!まあ、javascriptみたいにスコープ定義が曖昧だからこそのコードだけども。

 

VScodeをまだうまく活用できていなかったので、、、。英語の説明書読みますか。。

 

qiita.com

グローバル変数減らそうと思ってクロージャーに書き換えようとしたけど、いたるところに散らばりすぎて結局断念。うまい方法ないのかね、、const,letも使えないし、、。

 

developer.mozilla.org

これは良記事!しっかり読み込みまする!

 

以上。

土日はNode.jsにでも挑戦しようかな!

javascript脱初心者を図るための記事一覧

chuckwebtips.hatenablog.com

これによると僕は完全に初心者でした。。。

 クロージャーやアロー関数の勉強になった。スライドだから凄いわかりやすい!

qiita.com

 禁止事項とかが書いてあってわかりやすい。なぜ禁止されてるのか、等の理由があればなお良かった。

 

何にせよ、jsは最近本格的に勉強し始めたばっかりだしわかんない事だらけ。関数式と関数宣言、クロージャーとかアロー関数の上手い使い分けも出来てない状況。スコープの範囲もあまり見れていないし。(最近になってやっとconstの定数定義をつかうようになった笑)

 

引き続き勉強続けます!

煩雑化したコードを整理してみる

JavaScript の煩雑化したコードを整理する手段をまとめてみた。

現在はjQueryで直接DOM操作を行なっている。ロジックが複雑化するほど、1つの関数内の記述が長くなったり、変数が多くなる。その頃にはもう、頭の中がぐちゃぐちゃになってしまう。ここでは、新卒エンジニアがその煩雑化したコードを整理するために実践している事を書いていく。

 

・紙に書く

とにかく何でも良いから紙に書いてみる。不思議と考えがまとまって何をすれば良いのか分かってくるようになった。ちなみに僕は4日に一冊のペースでノートを消費している。

 

・コーディングする前にロジックを日本語で書く

これも有効な手段だと思う。特に僕はコーディング力ゼロだし、書く前に日本語でロジックを整理しないと思考が停止してしまう。例えば、あるボタンを押した時の制御は以下のようになる。

ボタンを押す

選択された店舗を変数に格納する

その配列を回して店舗の種類の一致判定を行う

一致していなければエラーメッセージを格納する

格納されたエラーメッセージを表示する

処理を抜ける

 

・コードを短くする

時間の余裕があればこれもやるべきだと思う。ここで言うコードを短くするとは、余分な変数を使用しない、関数の再利用性を高める、繰り返し文は纏める等ということ。特に関数の再利用を図ることはコードを簡略化する有効な手段で、僕が書いたコードを見返す度に簡略化できる箇所が見つかる。何度も考えが変わりながら書いてきたコードはそんなもので、修正が非常に大変だ。なので可能であれば機能を画面ベースまで落とせる設計をしてから実装に移るのが望ましい。

 

以上。