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歳
  • 先日の記事に引き続き、リモートでシェルスクリプトを実行するのに、今回はFabricを使う話。 FabricについてはFabricをちょっと試してみた話からたまに複数台のサーバーにオペレーションをしたい時に使うようになった。サクッと使うのにとても便利だ。 今回はリモートサーバーにあるシェルスクリプトをFabricで実行する際に、引数を予めfabfileに書いておきたい場合の記述方法を書いておく。 単純にググってみてもなんだかenvの話ばかりであんまりそれっぽいのが出てこず、ちょいと悩んでしまったので。 例えば、下記のようなシェルスクリプトがあったとする。 [code] #!/bin/bash echo $1 $2 [/code] ここの$1と$2をfabfileのタスクで、下記のように書いても良い場合はそれで良いと思う。 [code] def testshell(): run("/bin/bash test.sh HOGE POYO") [/code] ただ、HOGEとPOYOを別のタスクでも使いまわしたいなぁ〜ってことも無きにしもあらずだと思う。 そんな場合は、定数として切り出したいよねとは誰しもが考えると思う。 前述の通り、最初はenvのことばかりでちょっと違うやんって思ってたけど、公式サイトを見直して5回目くらいにちゃんと書かれていた。 結局はenvとおなじなのだけど、下記のように記述することができる。 [code] VAR1=HOGE def testshell(): run("/bin/bash test.sh %s" % VAR1 ) [/code] また、複数書くときは、括弧で閉じてカンマ区切りで連続してかけばOKだった。 [code] VAR1=HOGE VAR2=POYO def testshell(): run("/bin/bash test.sh %s %s" % (VAR1, VAR2)) [/code] これであらかじめ設定しておいた定数を使い回しできるようになった。 また一つFabricが便利だと思った。
    Fabric Python Created Wed, 24 Aug 2016 14:49:10 +0000
  • こんにちは、いなむーです。 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 Mon, 13 Jun 2016 14:59:08 +0000
  • こんにちは、いなむーです。 最近、「カンバン仕事術」を読んだ時に、工数はフィボナッチ数列で出すと良いというのを見かけました。 前職でも、開発の人がフィボナッチ数列で出すと良いという話から工数を算出してみたら、結構良いかもって言ってたのを思い出しました。 具体的な内容は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 Fri, 03 Jun 2016 14:59:00 +0000
  • こんにちは、いなむーです。 毎度いつもの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 Tue, 31 May 2016 13:22:36 +0000
  • こんにちは、いなむーです。 いつもの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 Mon, 30 May 2016 14:59:11 +0000
  • こんにちは、いなむーです。 最近Rubyを勉強しはじめたのですが、なかなか実際の業務に取り入れるまでに至っていないのが現状です。 そんなことを会社の人たちに話をしていたところ、とても面白そうなサイトをいくつか教えていただいので、私が実際にやってみた4つのサイトをご紹介します。 ドットインストール [blogcard url=http://dotinstall.com/] 動画で勉強できるサイトです。 PHPを勉強した時にもお世話になりました。 大変わかり易く、一つ一つのレッスンが数分程度なので、時間が無くても少しづつ始められます。 実際に入力するようなことが無いので、復習する必要はありそうです。 コードガールこれくしょん [blogcard url=https://paiza.jp/cgc/] ソシャゲ風のサイトです。 記憶を失った主人公と女の子が協力して、コードを書きながら、記憶を取り戻していくという設定です。 最初は四則演算などを繰り返し実施していき、簡単に感じられますが、ガチャなどでコードガールを集めていけるところに面白みを感じます。 体力がなくなるとゲームができなくなるので、その点はソシャゲと同様のシステムです。 Ruby Warrior [blogcard url=https://www.bloc.io/ruby-warrior#/] 8bitゲーム風のサイトです。 各ステージで専用のメソッド(warrior.attack!→攻撃)を使って、敵を倒していきます。 専用のメソッドの使い方が最初はわからないですが、画面上部のヒントとABILITIESを見るとなんとなく進め方がわかってきます。 よく出来ているので、この場合はどう書いたら良いのだろう?という発想が生まれやすいので、考え方の部分が実践的だと思います。 全て英語ですが平易な単語ばかりなので、辞書などで単語の意味をひいていけば理解できるレベルです。 AtCorder [blogcard url=http://abc036.contest.atcoder.jp/] 一問一答形式のサイトです。 初心者向けから、上級者向けの問題があります。 コードを書いて提出すると、テストが自動的に実行されて、テストが通ると合格となります。 ちょっとした問題でも初心者には分からない内容などもあり、最初は戸惑いましたが、合格となると嬉しくなります。 最初理解していなくて、ローカル環境ではうまくいってるのになんで〜というのが何度もあって、結構間違えてしまいました。。 ※Rubyを選択していなかったとか、標準入力でキーボードからの入力のみを考えていて、ファイルから読み込むことを考えていなかったなど。 上記4つのサイトはいずれも無料で利用できるので(有料プランについては未確認ですが)、とにかくRubyを始めてみたいという人にはオススメのサイトばかりです。 ぜひお試しください。 以上。
    Created Wed, 04 May 2016 08:00:51 +0000
  • 周りの環境により中々Rails環境まで作ったことが無かったのですが、今日開発の方の希望により作ることになり、若干ハマったのでメモします。  環境 CentOS release 6.7 (Final) Apache2.2 Ruby 2.2.4(rbenvで管理) Rails 4.2.5 Rubyのインストール パッケージのインストール # yum install gcc gcc-c++ make autoconf openssl-devel readline-devel mysql-devel wget git # yum install zlib zlib-devel openssl-devel sqlite-devel gcc-c++ glibc-headers libyaml-devel readline readline-devel zlib-devel libffi-devel rbenvのインストール # yum install openssl-devel readline-devel zlib-devel libcurl-devel # cd /usr/local # git clone git://github.com/sstephenson/rbenv.git rbenv Initialized empty Git repository in /usr/local/rbenv/.git/ remote: Counting objects: 2325, done. remote: Total 2325 (delta 0), reused 0 (delta 0), pack-reused 2325
    Ruby on Rails Created Mon, 21 Dec 2015 10:38:45 +0000
  • はじめてのプログラミングと言えば、イメージ的にはお問い合わせフォームかと勝手に思い、早速作ってみることにしました。 入力をformで作り、submitでメールを送信させるPHPファイルに渡すという極シンプルなものでしたが、一つ問題が。 完了画面&メール送信PHPファイルにアクセスした段階で、ブラウザを更新すると更新しただけメールが送られてしまいます。 対応方法はいろんな方法があるようですが、最も簡単なPHPのheader関数で処理することにしました。 要はリダイレクトさせる処理なのですが、処理が正常にいったら、完了ページHTMLへリダイレクトさせるというもの。 以下のようにしてあげれば、勝手にリダイレクトしてくれます。 if ($mailsend) { header(“Location:./complete.html”); exit(); } 最後にexit()でエラーが発生した場合にPHPの処理を停止させるのがポイントのようです。 こうゆうとこインフラエンジニアとしてはちゃんと抑えていきたい所ですね。 とりあえず公開する予定の無いお問い合わせフォームはこの程度で良いとして、処理を実行するPHPファイルを攻撃されたら一緒やん?と思っているのですが、どうなんでしょうか。 その辺はセッションを持ったりするとかしないとかっていう話なんかと思うので、またいずれ。 今日はここまで。 おしまい。   
    POST 趣味プログラマー Created Tue, 26 May 2015 15:18:48 +0000
  • PHPをいざさわり始めると、あれやりたりけど、どうしたらいんだろう? なんていう疑問がたくさん生まれてきます。 つい最近だと入力フォームの日付入力欄で、HTML5から?かdate入力ができるようになりました。 そしてデフォルト値を「value=””」というオプションで指定することが可能です。 例えば、 <p style="padding-left: 30px;"> <input type="date" name="mondate" value="2015-05-20" title="日付を入力をしてください。" required> </p> こんな感じにで値が決められます。 しかし、日付入力なんか、今日とか近い日付入力したい(させたい)だろうに、決め打ちの場合の用途では困る状況があります。 そんな時みんなどうしているのかなぁとネットで調べてみましたが、基本的すぎるからなのかJavaScriptでやる方法しか見つからず、困りました。 なぜならJavaScriptこそもっと触ったことがなかったからです。 勉強にJavaScriptでやっても良いのですが、日付入力なんかPHPでできるんじゃないかなぁ?と思い、思いつくままに書いてみたら、うまくいったので残しておきます。 <p style="padding-left: 30px;"> <input type="date" name="mondate" value="<?php echo date('Y-m-j');?>" title="日付を入力をしてください。" required> </p> たったこれだけでOKです。 要はvalueにPHPの関数を埋め込んだだけ。 一昔まえはJavaScriptでクライアント側で処理させるのが当たり前だったのかと思いますが、今となってはPHP使えないレンタルサーバーなんて殆どありませんから、PHPでデフォルト値を決められるのはありがたいですね。 以上です。おしまい。 よくわかるPHPの教科書 【PHP7対応版】
    PHP Created Wed, 20 May 2015 15:07:11 +0000