Organizations

amazonconnect amazonpolly appflow aws books camp childcare client vpn cloudfront cloudwatch codebuild daily datadog docker ec2 ecs eventbridge fargate gas homeserver iot jamf lambda life hack linux mac movie music php program python rds ruby running s3 tech terraform vpc windows wordpress 10km 2016 2018 2ブロック alfred amazonconnect amazones amazonpolly ansible apache api atcoder aws aws認定資格 backlog balmuda band bind boss box brew cakephp centos centos6 chef-solo ci circleci circlecijp cloud cloud sql cloud storage command crkbd cron css database diet digdag disney dlna dns docker docker-compose dockerfile dockertokyo ecr ecs edy eks elasticcloud elasticsearch em embulk ena evernote ezmlm fabric fargate fluentd font found fuzz galeracluster garageband gce gcp geek gem git github goo google google map googlemap gr-citrus gsuite happynewyear hatenatech helix homebrew html ikea infrataster iphone itamae iterm jamf k8s kinesis kintone knife-solo knowledge kpt kubernetes l2tp lancers lenovo let'ssplit linux live lolipop mac macos macアドレス mail mariadb mediatomb memory mfa midi mint60 ml mta mysql namazu nas nginx notion onedrive openssl peco pepabo perl php pixar pmf post python qiita qmail raspberrypi raycast redmine roland route53 rsync ruby ruby on rails salesforce sendgrid_jp sfdc sha2 shakeshack slack so-01j sony split sql sre srelounge srenext ssd ssh ssml stationery team terastation terminal terraform typescript ubuntu22.04 unix vagrant virtualbox visualstudiocode vm vpc vpn vpngate vscode vuls windows windows10 windows8 windowsserver2012 wordpress xperia xtechjaws xtechjaws07 zsh おサイフケータイ たからばこセッティング としまえん はてな アイアムアヒーロー アイアンマン アウトドアアンバサダー アプリ アレクサ インスタンスタイプ インターン インフラ ウィンドウズ ウェディング エフェクター エヴァ オープンソース カンバン キス キーキャップ キーボード ギター コキア コマンドプロンプト コンタクトセンター コース サーバーオペレーション サーバー移行 シェイクシャック シェルスクリプト スクラム スタジオ ステラタウン ストレージ スマホ セキュリティ タスク管理 ターミナル ダイエット チャリティー テックカンファレンス デスクトップ トライダガー ノートpc ハイレゾ ハゼ ハワイ ハンバーガー バイク バックアップ バンド バージョン管理 パスワード管理 パソコン パパ ピアノ ピクサー ピック ファン プロトレックスマート プロビジョニング ペイジェント ペパボ ポストモーテム ミニ四駆 メンタリング メンター メーリングリスト メール ヤフオク ヤマダ電機 ヤマダ電機モバイルドリーム館 ライブ ランニング リモートワーク レアジョブ レジン レツプリ レビュー ログ ロジカルシンキング 上尾 二段階認証 伊那市 会社 保育園 優しい世界 入門 全文検索 分割キーボード 初心者 勉強会 名前解決 外苑前 天キー 太陽 子供 学習リモコン 実写映画 家具 家族 家計簿 家電 小松菜奈 引っ越し 息子 成人式 技術書典 振り返り 新年 新幹線 新海誠 新米 旅行 日帰り旅行 映画 書評 東京湾 東京都知事 東野圭吾 桜台 検証 気分転換 水タバコ 池上彰 海釣り 温泉 漫画 炭酸泉 生産性 登山 監視 目標 確定申告 福島 立会川駅 組立て 経済学 結婚 練習音源 練馬 考える 育児 脆弱性 自作 自作エフェクター 自作キーボード 自宅サーバー 自宅鯖 花見 蕎麦 言葉 誕生日 読書 豊島園 貸し切り 赤外線 趣味プログラマー 転職 退職 選挙 釣り 釣り堀 銭湯 録音 長野県 障害報告 電動アシスト自転車 電動自転車 電子工作 電気工事士 電気工事士2種 電気風呂 露天風呂 養命酒 1歳
  • こんにちは、いなむーです。 最近、会社でRubyでクライアントコマンドなツールを作るにはThorを使うと良いというのを教えていただきました。 そこで、せっかくなのでThorを使ったクライアントコマンドツールを作りたいと思って、早速作ってみました。 それが、こちら。 [blogcard url=https://github.com/kzm0211/oasobi/] このgemは、Macのhomebrewでインストールできるor元々インストールされているコマンドをまとめたものです。 なので、Macでhomebrewが使えることが前提のツールです。 slコマンドとかご存知の方も多いと思いますが、その辺を一つ一つインストールしていると何が入っていたか忘れると思います。 その辺のおもしろコマンドシリーズを一括でインストールしたり、アンインストールできるようにしてしまおうと思って作ったgemです。 [code] $ bundle exec bin/oasobi install [/code] こんな感じでインストールができます。 [code] $ bundle exec bin/oasobi help [/code] 使えるコマンド一覧が表示されます。 [code] $ bundle exec bin/oasobi sl [/code] slが走ります。 正直中身は大したものではありません。 ※インストールしてしまえば、そのままコマンド打った方が色々できますし…^^; ただ、私がここでやりたかったのは – gemの作り方を知る – yamlでリスト管理する – Thorでクライアントコマンド的に使う ということでしたので、そのへんが一通りできたので目的は達成できたかなと思います。 これから実用的なツールを作るにあたって、良い勉強になったので色々作っていきたいです。 以上。
    Created 28 Jun 2016
  • こんにちは、いなむーです。 いつものatcoderシリーズです。 今回はいつもより問題が簡単だったため、初めてCまで解くことができました。 問題Aはこちら。 そして書いたコードはこちら。 [code] A,B,C = STDIN.gets.split(/ /).map {|v|v.to_i} p 2 * ( A*B + A*C + B*C ) [/code] 表面積の公式に当てはめただけです。 ただ、公式を思い出すのに苦労しましたがw つぎに問題Bはこちら。 そして書いたコードはこちら。 [code] X = gets.to_i (1..1000000000).each do | v | if (v ** 4) == X puts v exit end end [/code] この辺がプログラマーとの違いな気がします。このコードでは無駄にとにかく4乗になる値を回してるだけなので、きっともっと良い方法がありそうです。 そして問題Cはこちら。 書いたコードはこちら。 [code] K = “WBWBWWBWBWBW” * 3 arr1 = %w[ Do Re Mi Fa So La Si ] arr2 = Array.new
    atcoder Created 17 Jun 2016
  • こんにちは、いなむーです。 Rubyのアクセス制限である、privateとprotectedを試したみたのでそのメモを残しておきます。 参考サイトにさせていただいたサイトはこちら↓ [blogcard url=http://ubiqlog.com/archives/9421] 本来Rubyでは、レシーバーなしでのメソッド呼び出しはできない。 このため、自クラス及びサブクラス内のメソッドの呼び出すためには、selfというレシーバーを用いなければならないのだが、例外的にselfレシーバーだけは省略できる。 この省略形を関数形式と呼んでいる。 private テストコード(1) ここでは、privateに設定したメソッドを、関数形式で呼び出します。 [code] class Sample1 def call1 call_private end def call_private p “private dayo” end private :call_private end s1 = Sample1.new s1.call1 [/code] 実行結果 [code] $ ruby test2.rb “private dayo” [/code] 正しく呼びだされていることがわかります。 テストコード(2) ここでは、privateに設定したメソッドを、レシーバを指定して呼び出します。 [code] class Sample1 def call1 self.call_private end def call_private p “private dayo” end private :call_private end s1 = Sample1.new s1.call1 [/code] 実行結果 [code] $ ruby test2.
    Created 13 Jun 2016
  • こんにちは、いなむーです。 最近、「カンバン仕事術」を読んだ時に、工数はフィボナッチ数列で出すと良いというのを見かけました。 前職でも、開発の人がフィボナッチ数列で出すと良いという話から工数を算出してみたら、結構良いかもって言ってたのを思い出しました。 具体的な内容はWikipediaを参照すると良いですが、自然界にも日常にも多数存在する数列で、黄金比とも関係があるようです。 名刺とか、タバコ、マンガ本などもこのフィボナッチ数で構成されているようです。 [blogcard url=https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0] 正直数学的なことはあまり得意な方ではなかったのですが、なんとなく、atcoderばかりじゃなくて違うことがしたかったので、Rubyでフィボナッチ数列のアルゴリズムを書いてみることにしました。 雑な感じですがこんな感じ。 [code] F0 = 0 F1 = 1 arr = Array.new arr = [F0, F1] num = 0 while num < 15 arr « arr[-1] + arr[-2] num = num + 1 end puts arr [/code] 結果はこちら。 [code] 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 [/code] ちゃんとフィボナッチ数列になってますね。 単純なアルゴリズムではありますが、なんとなく好きな数列だったの取り上げてみました。 以上。
    Created 3 Jun 2016
  • こんにちは、いなむーです。 毎度いつものatcoderです。 今回はabc038のaとbを解きました。 早速aの問題。 [blogcard url=http://abc038.contest.atcoder.jp/submissions/748589] コードはこちら。 [code] S = gets.chomp.to_s puts S[-1] == ‘T’ ? ‘YES’ : ‘NO’ [/code] ここでのポイントはStringメソッドを使用しているところです。 S[-1]とすることで最後から1文字目を抽出して、チェックしてます。 次にb問題。 問題はこちら。 [blogcard url=http://abc038.contest.atcoder.jp/tasks/abc038_b] 巨大ディスプレイの話ですね笑 一瞬解像度かな?と思うのですが、1920mmとかでているので、1.92m幅のディスプレイを使っているようなので、会議でもするのでしょうか。 実際に書いたコードはこちら。 [code lang=”ruby”] class ABC038b def setvar array = Array[] STDIN.read.each_line do | var | array « var end @H1, @W1 = array[0].split(‘ ‘).map { | v | v.to_i } @H2, @W2 = array[1].split(‘ ‘).map { | v | v.to_i } end
    atcoder Created 31 May 2016
  • こんにちは、いなむーです。 いつものatcoderシリーズです。 最近Bも解けるようになってきたので、Bも挑戦するようにしています。 Bでは比較的配列操作などすると、スムーズに解けるイメージがついてきたので、もう少し頑張ってCまでいけたらなぁという所感です。 ということでまずAの問題はこちら。 [blogcard url=http://abc031.contest.atcoder.jp/tasks/abc031_a] そして、書いたコードがこちら。 [code] class ABC031a def inputnum @A, @D = STDIN.gets.split(/ /).map { | var | var.to_i } end def display self.inputnum if @A.between?(1,200) && @D.between?(1,200) @Aup = (@A + 1) * @D @Dup = (@D + 1) * @A end if @Aup > @Dup p @Aup else p @Dup end end end x = ABC031a.new x.display [/code] この問題で良かったのが、上記コードについては特に大きく悩むことなく一発で書けて、atcoderでも100点を取れたことです。 splitでスペース区切りで変数に入れるところや、betweenで範囲を指定するメソッドなど、過去に何度も使用してきているので書くことへの抵抗が減っているのは大きいなと感じます。 そして、B問題はこちら。 [blogcard url=http://abc031.contest.atcoder.jp/tasks/abc031_b] 私が書いたコードはこちら。
    Created 30 May 2016
  • こんにちは、いなむーです。 今日もAtCoderの問題です。 「これなら解けそう」って思ったら、解きたくてしょうがなくなるので、atcoder中毒になってますね笑 勉強にはなりました。 では、さっそく。 問題はこちら。リンク先をご参照ください。 [blogcard url=http://abc032.contest.atcoder.jp/tasks/abc032_b] そして書いたコードがこちら。 [code] class ABC032b def inputnum s, k = STDIN.read.split(?\n) @s = s.to_s @k = k.to_i end def setarr snum = 0 slength = @s.length snum2 = snum.to_i @array = Array[] (snum..slength).each { | var | str1 = @s[var,@k] @array « str1 if str1.size >= @k } end def displaynum p @array.sort.uniq.count end end x = ABC032b.new x.inputnum x.setarr x.displaynum [/code] これだとClassにする意味が無いかもしれませんが、とりあえずはこれで100点が取れたので、残しておきます。
    atcoder Created 24 May 2016
  • こんにちは、いなむーです。 AtCoderシリーズです。 今回はABC032のA問題「高橋くんと青木くんの好きな数」です。 問題はこちら。 問題文 青木君は整数 a で割り切れる数が好きです。 高橋君は整数 b で割り切れる数が好きです。 n 以上の整数で、青木君と高橋君の両方が好きな最小の数を答えてください。 入力 入力は以下の形式で標準入力から与えられる。 a b n 1 行目には、整数 a(1≦a≦100) が与えられる。 2 行目には、整数 b(1≦b≦100) が与えられる。 3 行目には、整数 n(1≦n≦20,000) が与えられる。 出力 出力は以下の形式で標準出力に行うこと。 1 行目に、n 以上の整数で青木君と高橋君の両方が好きな数の最小値を出力せよ。末尾の改行を忘れないこと。 この問題に対して、書いたコードがこちら。 [code] class Favnum def inputnum @a, @b, @n = STDIN.read.split(?\n).map { | v | v.to_i } end def smallestnum self.inputnum if @a.between?(1,100) && @b.between?(1,100) && @n.between?(1,20000) i = @n while i >= @n
    atcoder Created 23 May 2016
  • こんにちは、いなむーです。 最近Apacheの設定変更案件がありまして、設定自体は大した内容ではないのですが、テストをどうしようかと考えた際にInfratasterを試すのはどうかという話になりました。 そこで、実際にいくつか試してみたので備忘録的に残しておきます。 まずは、導入です。 Gemfileに書くか、gemでインストールします。 [code] $ gem install infrataster または、下記を実施。 $ vim ~/Gemfile source ‘https://rubygems.org’ gem ‘infrataster’ $ bundle install $ gem list | grep infrataster infrataster (0.3.2) 次に、Infratasterを実施したいディレクトリで、下記を実行します。 [code] $ mkdir 任意のディレクトリ $ cd 任意のディレクトリ $ rspec –init [/code] 次にspec/spec_helper.rbに接続情報を記載します。 ※今回はVagrantを使用し、且つ、Vagrantfileとは違う場所にInfratasterのコードを書いたと想定します。 ※vagrant: trueとするとvagrant ssh-configで読み取れる接続情報で接続できるようですが、もしvagrant ssh-configが読めるディレクトリでなくても、下記のようにすればssh接続情報で接続可能です。もちろん秘密鍵で接続も可能です。 [code] $ vim spec_helper.rb require ‘infrataster/rspec’ Infrataster::Server.define( :vm1, ‘192.168.33.11’, ssh: {user: ‘vagrant’, password: ‘vagrant’} ) RSpec.configure do |config| config.expect_with :rspec do |expectations| expectations.include_chain_clauses_in_custom_matcher_descriptions = true
    Infrataster Created 16 May 2016
  • こんにちは、いなむーです。 タイトルだけ見るととても激ハックした感じがしますが、そんなことはありません笑 今日もAtCoder(abc033a)シリーズでございます。 タイトルはAtCoderの問題文を抜粋しているためこうなっております。 今回の問題はこちら。 問題文 あなたはゲーム開発メンバーの一員です。 現在、あなたはプレイヤーがゲームをプレイするために必要な暗証番号を決めさせる部分を実装しています。 この暗証番号は 4 桁 であり、それぞれの桁は 0 以上 9 以下の数字のいずれかです。暗証番号が 0 で始まる可能性もあります。 安全上の関係で、 4 桁とも同じ数字である暗証番号は認めないことにしました。プレイヤーが入力した 4 桁の数 N が与えられるので、 これが 4 桁とも全て同じ数字であるかどうかを判定してください。 入力 入力は以下の形式で標準入力から与えられる。 N 1 行目には、N が与えられる。N は 4 文字の 0 から 9 の数字からなる。 N が 0 で始まることもある。 出力 N が 4 桁とも全て同じ数字であるなら SAME を、そうでないなら DIFFERENT を 1 行に出力せよ。 出力の末尾にも改行を入れること。 入力例 1 2222 出力例 1 SAME そして私が書いたコードはこちら。 [code] A, B, C, D = gets.
    atcoder Created 15 May 2016