まっすぶっちの美忘録

おうちでプログラミングと読書してます

rubyでS3を扱う `unescape': uninitialized class variable @@accept_charset in #<Class:CGI> (NameError) 

コード

require 'aws-sdk'
require 'cgi/util'

Aws.config.update(
  access_key_id: ACCESS_KEY
  secret_access_key: SECRET_ACCESS_KEY
  region: 'ap-northeast-1'
)
bucket = 'bucket-name'

s3 = Aws::S3::Client.new
s3_bucket = Aws::S3::Bucket.new(bucket)

resp = s3.list_buckets
puts resp.buckets.map(&:name)

エラー

/Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb:75:in `unescape': uninitialized class variable @@accept_charset in #<Class:CGI> (NameError)
Did you mean?  @@accept_charset
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb:75:in `decode'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb:46:in `decode_list_objects_keys'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb:41:in `block in manage_keys'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/response.rb:45:in `block in on'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/http/response.rb:139:in `block in on_success'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/http/response.rb:166:in `block in listener'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/http/response.rb:130:in `on_done'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/http/response.rb:137:in `on_success'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/response.rb:44:in `on'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/response.rb:53:in `on_success'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb:40:in `manage_keys'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb:32:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/param_validator.rb:21:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/plugins/raise_response_errors.rb:14:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/s3_sse_cpk.rb:19:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/s3_dualstack.rb:24:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/s3_accelerate.rb:34:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:20:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/idempotency_token.rb:18:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/param_converter.rb:20:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/aws-sdk-core/plugins/response_paging.rb:26:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/plugins/response_target.rb:21:in `call'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/request.rb:70:in `send_request'
    from /Users/masubuchiyoshiki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.9.11/lib/seahorse/client/base.rb:207:in `block (2 levels) in define_operation_methods'

原因

aws-sdkのバーションによるもの

注目点は aws-sdk-core-2.9.11

本当によくわからなかったので、gemのソースを見に行ったら、バージョンが3にupdateされていた。

gem update aws-sdk

をやったらとおた。

[一気読みした本] 渋谷ではたらく社長の告白

お題「一気読みした本」

結構有名な本だと思う。


サイバーエージェント藤田社長の会社立ち上げから10年くらいまでのことがつらつらと綴られている。
2005年発行なのでもう10年以上前の本だ。


起業家必読の一冊。
起業前、学生時代から藤田社長が歩んできた記録がここにはあった。

今や、イケイケのキラキラした企業というブランドがあるサイバーエージェントだけれども、やはり起業当初はそうもうまくはいっていなかった。

インターネットでビジネスをするっという広告が当たり前のようにある今だが、この時代はまだインターネットが普及し始めていたころ。
そもそも、インターネットでビジネスをしていいのか?
なんても言われていたらしい。

 

 

世間からの冷たい目。
孤独との戦い。
そして決断。

 

 

起業してからの苦悩がここまで鮮明に綴られていたこの本は久しぶりに一気に読み切ってしまった。

 

 

 

これから社会に出ていく人、将来どうすればいいのか迷っている人。

 


こんな人生もあるんだなって知れる一冊でした。

これを読んで起業したくなったって人結構聞くので、是非読んでみてください。

 

 

 

ベクトル

回り道を嫌う人は多い。
 
斯く言う僕もそうだ。
受験勉強は戦略本ばかり読んでいた。肝心の勉強はせずに。
 
まず、そこに一つ言うのならば結局実行しなければ意味がないと言うこと。考えてばかりではダメ。本を読んで得た多くの知識よりも経験より得た深い知識の方が重要。
 
って、よく言われてる。
 
 
今回自分が言いたいのはそんな話ではなくて、結局回り道してもいいやんって話。最終的なゴールにたどり着けるのなら。
 
直線じゃなくてもいい。ベクトルが少しでもゴールに向いているのであれば。
 
 
でもただやってはいけないことが一つある。それはゴールに向かっていないこと。
 
ベクトルの成分が0.0000001でもゴール向いてないのであればそれはいけない。
 
それはただ何も考えずダラダラと生きているだけだと思う。それでは自分は幸せになれない。
 
5年後、10年後、20年後あの時の俺は何をしていたんだろ、何も考えなかったって思うのは嫌だ。
 
ゴールに最短で向かってなくてもいい。
全然回り道でもいい。
回り道で得られるものもある。
 
ただ常に今やってることが自分のゴールに少しでも近づいていることならば。
 
先を見て
これは効率が悪いのでは?
やらない方がいいのでは?
と悩む時間なんてほとんど意味がない。
 
やらないか、やるかだ。
直感で決める。
その選択を最善にするだけ。
 
自分が生きてるのは今。
自分がワクワクしてるのは今。
自分が不安なのは今。
自分が変われるのは今。

人間の多面性

最近まで鬱みたいになってて家のベットにいて考えごとをしていたら、哲学に目覚めたという女友達と飲んできた。
 
文豪、哲学者は最終的に人間として考えに考えて嫌になって自殺してしまう人が多いらしい。
 
彼女も生きるのが大変とか言っていた。だから哲学、人として幸せに生きることを勉強している。
 
が、そんなことを考えていると鬱になって死にたくなるような時がけっこうあると言う。できれば自殺は悲しいからやめてくれとだけ言っておいた。
 
 
そんな中でやっぱ大切だよなぁと思ったのが
 
人間は多面的である
 
という考え方。
 
人によって接し方が変わったり、本音が言えなかったり、気が合わない人と話しているとどうにも変な気持ちになる時がある。
 
また人によって態度を変えてしまったり。
 
あー、また自分にウソをとか、こんな関わり方でいいのだろうかとか、などなど思う時があった。
 
しかしそれが人間だよねっていうのが多面的であるということ。
 
このコミュニティではリーダーのような自分。先輩ときて堂々とする自分。後輩として甘える自分。異性の前では見栄をはる自分。
 
人によって関わり方は変わる。
 
その行為の細かい所が良いか悪いかはおいといて、そうなるのは人間だからしょうがない。
 
人間は多面的である。
一面的、つまり誰にでも同じ様に接することは無い。
 
ここを聞くとすごい楽。
 
 
全て自分なんだと。

〜簡単なHPを作ってみよう〜 初めてプログラミングをしてみる人向け。HTML,CSS学習フローチャート。

僕がプログラミングを始めたのは約一年前です。(1年の夏休み終わり頃。)

 

もともと、ITに興味はありましたが特にスキルはなくて。

何かスキルをと思い、ちょっとできる人の話を聞きに行きました。(以下Xさん)

 

 

で、Xさんに話を聞くとエンジニアになれば好きな場所でお金を稼いで、自由で楽しい生活が送れるらしい。。。。

 

じゃあ、やるか!

って感じではじめました。笑

 

 

今、現在はHPの制作会社でアルバイトしてますが、バイト中でもお菓子食べれるし、コーヒー飲めるし、スキルは上がるしでバイトとしては申し分ないです。

 

 

また、ここ最近はプログラミングの素晴らしさにようやく気付き、趣味みたいな感じでコードを書いてることが多いです。笑

 

 

そんな僕が、ほぼほぼ独学でそのアルバイトをするまでの学習フローを書きたいと思います。

 

 

 

1. プログラミングで何ができ、それを為すにはどの言語を学べばいいのかをの調べる

 

一口にプログラミングといってもできることは様々あります。

ゲーム、HP、サービス、webアプリケーション、mobileアプリケーション、システム設計 etc,,,。

現在のブームで言うとVRだったり人口知能だったり。

 

 

僕は、XさんからWEB上でサービスを作るための言語(HTML,CSS,JavaScript,Ruby)をやればすぐ稼げるようになるよ!

 

って聞いたのでそれを安易に受け止めやり始めました。

 

 

さすがに働いてお金を稼ぐまで行くにはそんな安い気持ちじゃ、道のりは険しいものでしたが。。。。

 

 

 

今回は簡単なHPを作ることが目的なので、HTML,CSS という言語を学ぶこととします。

 

 

(この2言語はプログラミングを知る上で一番簡単なのでもっぱらプログラミング学習導入の定番です)

 

 

もし他の言語なども気になるようだったら、この辺参考にするなりで。

 

www.sejuku.net

 

 

 

 

2. ドットインストールを使ってプログラミングの概要を知る。

 

 

http://dotinstall.com/

 

 

今の時代は便利なもので、インターネットを回れば無料、安価で学習することができます。今回紹介するドットインストールはプログラミングを学ぶ人に知らない人はいないってくらいの、超有名初心者向けプログラミング動画学習サイトなんで、ブックマークしておいてね。

 

 

⬇︎はレッスン一覧ページのurlを張ってます。ここのHTML入門、CSS入門ていうをやりましょう。学習方法としては、動画に習ってやっていくというのがベストだと思いますが、抵抗があるなら最初は見てるだけでもいいと思います。重要なのは二つの言語の大枠を知ることです。

 

http://dotinstall.com/lessons

 

 

あと、このサイト毎月1000円で有料登録することができます。

 

個人的に思う、有料会員になるメリットは

 

 

①コードがコピペできる。

②音声が男性のみだったのが女性の音声でも聞けるようになる。

 

 

です。①はもしエラーが出てしまった時に助かります。②は眠くなった時に効きます。何かと男性の低い声は眠くなります。笑

 

 

3.Progateを使って実際にタイピングしてみる

 

 

prog-8.com

 

 

これもまた、プログラミングを学ぶ人に知らない人はいないという今や超有名サービス。東大生が起業して作りあげたらしい。最近、学べる言語の数が増えてきて注目を浴びてます。これももちろんHTML、CSSをやりましょう。

 

 

このサービスの素晴らしいところは、実際にコードを書いて学習することができるという点です。

プログラミングの上達の近道は実際に手を動かすことです。パソコンカタカタしましょう。

 

 

あと、学習した量によってレベルも出ます。ちなみに僕はこんな感じです。笑

 

f:id:yoshixj:20160928015824p:plain

 

 

今少し覗いてみると、自分が学習していた時と比べて前は無料だったところが、若干有料になってるみたいです。余裕があれば有料登録してみてもいいかもです。

 

 

 

4.実際にHPを作ってみる!

 

 

ここまできたら後は実際にプロダクトを作るのみです。

 

感のいい人はここから、ググったりするだけである程度のプロダクトは作れると思いますが、まだきついなーって人は書籍を購入することをお勧めします。

 

この底の技術書は3000円前後が相場なんで、学生にとって安くはないです。実際に書店でみるなり、amazonでレビューをみるなりして自分に合いそう、自分が作りたいものが載ってる書籍を選ぶといいと思います。

 

個人的な話ですが、技術書は重かったり、厚かったりとかさばるので、自分は電子書籍で最近は購入しています。電子書籍はPCでも開けるので、何かと便利です。

 

 

⬇︎実際に僕が使っていいなって思った書籍です。

この書籍はタイトル通り、モダンなページが作れる、説明がしつこくない、そこまで厚くないってところが良かったと思います。

 

 

 

 

5.オリジナル作品を作って公開してみよう!

 

今回のゴールです。

 

1〜4で学んだことをフルに使って、オリジナルプロダクトを作りましょう。

 

ここで作るプロダクトは実績であり、仕事にもつながります。

 

 

⬇︎僕がこのフェーズで作ったやつです。

cam-colle.main.jp

 

 

上の自分が勧めている書籍を使って学んだ人はわかると思いますが、ほとんどその本のノウハウを使って作りました。classとか変えてません。笑

 

 

 

以上、僕の学習フローチャートでした!

 

 

 

自分で何かを生産できるって楽しく、それを仕事にできるというのは幸せなことなので、興味ある人は参考にしてみてね!!

 

 

質問等あれば、気軽にメッセしてください!

 

 facebook

https://www.facebook.com/massuu.yoshi.9

 

ブログの趣旨

このブログは人の名前は3回会わないと覚えられない、僕がとりあえず日々学んだことを忘れても大丈夫なように記録するために書きます。