Instaxの音付きチェキをダウンロードするChrome拡張機能を作成しました

こんにちは! 応援しているアイドルグループが2019年の夏以降、たまに音付きチェキを出すようになりました。 音付きチェキの詳細についてはこちら→ https://instax.jp/cheki-press/products/22218/

チェキにQRコードが印字され、それを読み込むと撮影時の音を再生出来るという優れもの! なのですが、一応縛りがあって、サーバーの保存期間は1年なのです。つまりサーバーにアップしてから1年経つと音が消えてしまうということです。 しかも特にダウンロード機能などもついていないので消えるのを待つばかり・・・。それはちょっと! ということで音付きチェキをダウンロードするChrome拡張機能を作成しました! Continue reading Instaxの音付きチェキをダウンロードするChrome拡張機能を作りました

Read more

みなさんこんにちはたがみです! 小学校でのIT必修化に当たり、プログラミングに興味を持つ人が増えてきているように感じます。 僕のまわりでも最近そのような相談が増えてきました。 この記事ではたくさんあるプログラミング言語のうちどれを選べばいいか、自分が考える2つの軸を説明したいと思います。

前置き

僕はRubyを教えていたりWebに関わる開発を行っていることが多いのでそのような方から相談を受けることが多いのですが、初心者の方から 「将来Rubyで大丈夫ですか?」 「仕事はPHPのほうが多いですか?」 「Pythonがイケてるって聞いたのですが、、」 など言語で悩む人が多いなぁという印象です。 確かにその言語の特色はあると思いますし文化圏の違いで得意なことは変わってきますが、僕が思っているのはプログラミング言語1つしっかり使えるようになっていれば他の言語も文法や考え方は似ていることが多いので他の言語を使えるようになるために必要な学習量は減る、ということです。 自然言語でもそうですが、まずはしっかり使えるプログラミング言語を1つ作っておいて、それをベースに2つ目・3つ目を増やしていくのが結果的に効率的だと考えています。 なので正直なんでもよいので使えるようになればいいのではないか?というのが正直なところであり結論です。

それを踏まえてどうやって言語を選んでいくのか見てみましょう。

必要性

まず1つ目は、社会人の方は比較的こちらで選んだほうがいいのかなと思っていますが、必要性です。 必要性というのは、例えば以下のような例です。

  • 会社で同僚が使っている言語
  • Excelの自動化をしたいからVBA
  • iPhoneアプリを作らなければいけないからSwift

社会人になると学生と違って必要性に迫られたほうが習得しやすいです。なぜなら仕事がかかってたりプレッシャーがかかってたり色々背負うからです笑 また社会人であればまわりに既にプログラムが出来る人がいることも多いのでそのような必要性がある言語を選んでおくとまわりの人たちに聞けるかもしれないというメリットがあります。

また必要性がない場合は自ら必要性を作ることも出来ます。 仕事のタイミングがあればそれを受けてみたり、親しい友人や親族にいつまでにこういうものを作る!と宣言してみたりすると適度なプレッシャーがかかって言語選択に時間をかけている場合じゃなくなるかもしれません。

興味関心

2つ目は興味がある言語をとりあえずやっていく、という軸です。 特にやりたいこともないし、会社にいる人であれば特にこの言語やれ、という雰囲気もない場合はこちらで言語を選びましょう。 何か聞いたことがある言語をやってみてもいいですし、授業で昔やったことある言語をやってみるのもいいです。興味がある限り色々学習してみましょう。

確かに何かを作らなければならない、というプレッシャーの中のほうが何かを作り切る力はつくかもしれませんが、作り切る力とプログラミング力はまた違うスキルだと思うので興味軸で学習を始めたからといってしっかり学習を進めればしっかりとしたスキルになります。

この記事を書いているたがみもどちらかといえば興味関心軸でプログラミング言語を学習し始めました。 最初は本屋さんで見かけたC言語を3ヶ月、Webサイト作りたいなぁと思い始めたので先輩が使っていたPHPを1年、PHPある程度出来るようになったからもうちょっとフロントでインタラクティブにしたいなぁと思ったからJavaScript、その後4年くらいPHPとJavaScriptでWebを作り続けて、噂でめちゃくちゃいいと聞いたRubyやRailsをやり始めようと思ってそちらの言語を習得して・・・というような流れです。

最初から1つの言語に絞ってやったほうが効率的だとは思いますが複数言語をやったあとに個人的に好きな言語を極めていく、というのもいいと思います。 知っていると知らないでは効率が全く違う分野なのでやりたいことに対して最短で学ぶことも大切ですが色々回り道して雑学などを貯めていくのもいい方法だと思います。

最後に

最初のほうで言ったこととかぶることでもありますが、言語選択は大事ですがそれで迷って学習が遅れるくらいなら何か言語決めて学習を始めたほうが色々見えるのでまずは始めてみることをおすすめします。 おそらくやってみようと思った選択肢にあがったプログラミング言語は何かしら今の自分に必要だと思う直感が働いているはずで、直感は大体正しいのでその方向性で進んでいけばいいかな、と思います。

個人的なおすすめはWeb作りたいならRubyやってフレームワークにRuby on Railsをやるのが最新のWeb開発環境に近づくしいいんじゃないかなって思います。 習得までにはどの言語も時間がかかるとは思いますが頑張っていきましょう!!

Read more

こんにちは! 毎週Ruby,Railsもくもく会というものを開催していて毎週のようにRubyやRailsの初心者の方とお会いするのですが、意外と知らない方も多いのでこちらで紹介させてください。

Pryって何?

PryはRubyに標準でついているIRB(Interactive Ruby)をより便利なものにしたものです。対話的にプログラミングが出来るREPLを実現するものになります。
具体的にはプログラムが動いている途中で希望の場所で止められるようになります。例えば以下のRubyプログラムがを実行した場合、
binding.pry の部分でプログラムを止めて変数の中身などを確認出来るようになります。

class Sample
  def hello_pry
    hello = "Hello"
    binding.pry
    hello
  end
end

p Sample.new.hello_pry

Githubのページはこちら↓
https://github.com/pry/pry

Pryを使うための準備

PryはGemの形式で配布されているため、gemをインストールする必要があります。

Rubyで使用したい場合

まずはGemをインストールしましょう。

$ gem install pry

インストール終了後、Pryを使いたいコード内に require 'pry' を書く必要があります。必要に応じて記述しましょう。

Railsで使用したい場合

Railsで使いたい場合は Gemfile に以下の行を追加しましょう。

group :development, :test do
  gem 'pry'
end

追加したあとは bundle install を忘れずに実行しましょう。
あとはRails起動時に自動でPryを読み込んでくれます。

実際にPryを使ってみよう

Pryの使い方はとても簡単で、止めたいコードの部分で binding.pry と書いてアクセスするとターミナル上で止まってデバッグすることが出来ます。

例えばRubyで以下のファイルをターミナルで実行するとターミナル上で止まります。

require 'pry'

class Sample
  def hello_pry
    hello = "Hello"
    binding.pry
    hello
  end
end

p Sample.new.hello_pry
binding.pry 実行時

上記のように止まるので変数の中身を確認することが出来ます。

終了させたい場合は exit を実行します。

[2] pry(#<Sample>)> exit

覚えておくと便利な使い方

メソッド一覧を表示する「ls」

特定のオブジェクトがどのメソッドを実行することができるのか一覧で確認したいときがあります。(特にRailsを使用時)
このようなときに「ls」コマンドを使用出来ます。例えば上記の hello 変数がどのようなメソッドを持っているか確認したい場合は

[2] pry(#<Sample>)> ls hello
Comparable#methods: <  <=  >  >=  between?  clamp
Comparable#methods: <  <=  >  >=  between?  clamp
JSON::Ext::Generator::GeneratorMethods::String#methods: to_json  to_json_raw  to_json_raw_object
String#methods:
  %            chars           each_codepoint         length        scan         to_c
  *            chomp           each_grapheme_cluster  lines         scrub        to_f
  +            chomp!          each_line              ljust         scrub!       to_i
  +@           chop            empty?                 lstrip        setbyte      to_r
  -@           chop!           encode                 lstrip!       shellescape  to_s
  <<           chr             encode!                match         shellsplit   to_str
  <=>          clear           encoding               match?        size         to_sym
  ==           codepoints      end_with?              next          slice        tr
  ===          concat          eql?                   next!         slice!       tr!
  =~           count           force_encoding         oct           split        tr_s
  []           crypt           freeze                 ord           squeeze      tr_s!
  []=          delete          getbyte                partition     squeeze!     undump
  ascii_only?  delete!         grapheme_clusters      prepend       start_with?  unicode_normalize
  b            delete_prefix   gsub                   pretty_print  strip        unicode_normalize!
  bytes        delete_prefix!  gsub!                  replace       strip!       unicode_normalized?
  bytesize     delete_suffix   hash                   reverse       sub          unpack
  byteslice    delete_suffix!  hex                    reverse!      sub!         unpack1
  capitalize   downcase        include?               rindex        succ         upcase
  capitalize!  downcase!       index                  rjust         succ!        upcase!
  casecmp      dump            insert                 rpartition    sum          upto
  casecmp?     each_byte       inspect                rstrip        swapcase     valid_encoding?
...(省略)

上記を見てみるとどのクラスに属しているメソッドなのかがわかります。

メソッドを検索する「find-method」

「ls」だと一覧が出てくるのですが特定の名前のメソッドだけ検索することが出来る「find-method」も使うことが出来ます。

[3] pry(#<Sample>)> find-method instance hello
BasicObject
BasicObject#instance_eval
BasicObject#instance_exec
Kernel
Kernel#instance_variable_set
Kernel#instance_variable_defined?
Kernel#remove_instance_variable
Kernel#instance_of?
Kernel#instance_variable_get
Kernel#instance_variables
Module
Module#instance_methods
Module#public_instance_methods
Module#protected_instance_methods
Module#private_instance_methods
Module#instance_method
Module#public_instance_method
PP::ObjectMixin
PP::ObjectMixin#pretty_print_instance_variables

Rails等で使用する場合はたくさんのクラスを継承していることが多いので使いたいメソッドの目星がついているのであればこちらのほうがよいかと思います。

トラブルシューティング

Railsサーバーが立ち上がらなくなってしまった

たまにpryを正常に終わらせることが出来ず、Railsサーバーを立ち上げようとしても立ち上がらない場合があります。その場合はプロセスが残っている可能性があるのでプロセスを削除しましょう。

現在動いてるサーバーを確認するには以下のコマンドを実行すればよいです。

$ ps aux | grep ruby
Read more

みなさんこんにちは!今回Chrome拡張機能をさくっと作成したのでブログを書こうと思った次第です。なかなかブログ更新する機会もなくなってしまったのでどうやってたか忘れてしまいましたがささっと書いていこうと思います!

Continue reading Google検索ページの固定検索窓を解除するChrome拡張機能を作成しました

Read more

みなさんこんにちは! このブログはLet’s Encryptを使ってSSL化されているのですが、その更新に3時間くらい使ってしまったので、同じ人のために書き残しておきます。

ちなみにAmazon Linuxで、Amazon Lightsailを使って、nginx+php-fpmで運用されています。

Continue reading Amazon LinuxでLet’s Encryptの更新作業に手間取った話

Read more

みなさんこんにちは。 このブログを設立するときに、速く構築できるということでロリポップを契約していたのですが、先日発表されたAmazon Lightsailがよさげだったのでブログ移行しました。 また、そのついでではないですが、Nginx+PHP7構成にし、ページ表示速度を上げてみたりしました。 Continue reading ブログをロリポップからAmazon Lightsailに移行し、Nginx+PHP7でWordPressを動かすようにしました

Read more

こんばんわ! このブログは大都会岡山 Advent Calendar 2016の17日目の記事です。昨日の記事はpuhitakuさんの住んでてわかる岡山県、離れてわかる岡山県。 – Zopfcodeでした。岡山のいいところがうまくまとまっていて、またコミュニティもまとまっていたのでまたじっくり読もうかと思います。 Continue reading RailsGirlsOkayama 2ndを2月25日26日に開催する予定です!

Read more

161209

みなさんこんにちは。 私はApple Musicを契約していたのですが、ふと確認してみるとApple Musicの学生プランが公開されていました!!しかも月額480円なのでTSUTAYAで1ヶ月2枚くらいアルバム借りるような人であればもう絶対Apple Musicのほうがお得!! なので今までも月額980円払うのを躊躇していた人は今がいいタイミングかもしれません。 Continue reading Apple Music学生プランを利用して月額480円で音楽聴き放題生活を送ろう!

Read more

161208

こんにちは。 最近リリースされた新しいAWSのサービス「Amazon Lightsail」を使って、WordPressを立ち上げてみました。 とても簡単でびっくりだったのと、やっぱり安さがポイントですし、一番安いインスタンスだと1ヶ月無料で動かすことが出来るのでまずは試してみて、その後に実際に使うかどうかを考えてみることも出来るのでおすすめです! さくらVPSも日本国内ではオススメですが、初期費用がかかったりするので、「Amazon Lightsail」は今のところ一番安いVPSの部類に入ると思います。

Continue reading $5から始めることが出来るVPS「Amazon Lightsail」でWordPressを立ち上げるまで

Read more