雑草SEの備忘録

東大を卒業し、SEとして働くことになった。備忘録的に作業を綴る。

JDLA(日本ディープラーニング協会)のG検定(ジェネラリスト検定)の対策

去る2023年5月13日(土)にG検定(ジェネラリスト検定)受けました。在宅で受験でき、受験時間は2時間です。 合格発表は、5月29日以降なので、合格まで3週間ほどかかります。この記事を書いている現時点では、合否はわかりませんが、どのように対策したかを紹…

fvmを利用してバージョンを管理しつつflutterプロジェクトを作成する

flutter create すればプロジェクトが立ち上がるが、fvmを利用したときにどうすればいいかわからなかったので、メモ。 # ディレクトリの作成 mkdir flutter_sample # 移動 cd flutter_sample # 利用するflutter versionの指定 fvm use 2.10.4 --force # プロ…

ActiveRecordで任意の配列の順番で並び替えする方法

ActiveRecord(というかSQL)において、idや特定のカラムの指定順に並べ替えるのは容易いが、任意の配列の順番にならべたいときがある。その場合の方法について記載する。 まずはデータの準備から。以下のようにplansテーブルにレコードを追加したとする。 P…

S3のbucketにアクセス制限しつつ、cloudfrontで公開する

最初に S3にhtmlなどの資産をおき、CloudFrontで公開するという方法は一般的によく行われる方法。検索するとS3を公開する設定もよく見かけるが、S3を一般に公開せずに行う方がセキュリティ的に安心なので、Origin Access Identity(OAI)用いて設定する方法…

GitHubのtagを個別/一括で削除するコマンド

Git

localのtagの削除 git tag -d tag_name # tag_nameは削除したいタグ名。 remoteのtagの削除 git push origin :tag_name # tag_nameは削除したいタグ名。 localのtagを一括で削除するコマンド git tag | while read line do git tag -d $line done remoteのta…

gitのcommitのハッシュ値からmerge commitを取得する

Git

1. pipでgit-get-mergeをinstall(事前にpythonのインストールが必要) pip install git-get-merge 2. commitのHash値で調査 git get-merge <Hash値> 3. ベースのブランチ名はmasterだが、変更したい場合は git get-merge <Hash値> <branch名> # eg) git get-merge <Hash値> develop GitHubのRE</hash値></branch名></hash値></hash値>…

nodebrewの使い方

1. homebrewでnodebrewをinstall brew install nodebrew 2. ~/.bash_profileなど下記を記述し、pathを通す export PATH=$HOME/.nodebrew/current/bin:$PATH source ~/.bash_profile 3. nodeの特定のversionをインストール nodebrew install v10.15.3 nodebre…

PyCharmでPlant UMLを利用する

Preferences -> Settings -> PluginからPlantUML IntegrationをInstall Install PlantUML graphvizをインストール brew install graphviz graphvizのpathをPlantUMLにセットする Set Graphvis path 拡張子をpumlにしてファイルを作成する。 PlantUML

Linuxのユーザーまわりの備忘録

Linuxのユーザー一覧を見る less /etc/passwd 特定のユーザーの権限だけを見たい場合 $ getent passwd webapp webapp:x:496:494::/home/webapp:/sbin/nologin $ getent passwd ec2-user ec2-user:x:501:501:EC2 Default User:/home/ec2-user:/bin/bash ログ…

PumaのThread数を確認する

pumaのプロセスIDを確認する $ ps aux | grep puma healthd 2215 0.0 1.9 814768 39676 ? Ssl Feb26 2:41 puma 2.11.1 (tcp://127.0.0.1:22221) [healthd] root 4816 0.0 0.1 58788 2744 ? Ss 20:13 0:00 su -s /bin/bash -c bundle exec puma -C /opt/elast…

CapybaraでのJavaScriptのconsole.logを見る方法

確認したい箇所で、puts page.driver.browser.manage.logs.get(:browser) を記述。 fill_in 'order[family_name]', with: '佐藤' puts page.driver.browser.manage.logs.get(:browser) expect(page).to have_field('order[email]') ただし、JavaScript側でco…

未経験者がネットワークスペシャリスト試験に合格するまでの道のり

12月21日は平成30年度のネットワークスペシャリスト試験の合格発表の日でした。 高度試験は、概ね合格発表の週の火曜日に解答例が発表され、私はすでに自己採点をしていました。 成績は、以下でした。ネットワークスペシャリスト試験の成績午後Ⅱが60点で本当…

Goならわかるシステムプログラミング 14.2.9のReactiveXでpackageのインストールし忘れがち問題

go

前々回の記事に引き続き、Goならわかるシステムプログラミングの写経を行なっています。 Goならわかるシステムプログラミング 作者: 渋川よしき 出版社/メーカー: Lambda Note 発売日:2017/10/19 何も考えず実行すると、こんな形でエラーが出てきます。 main…

vimの置換(%s)で全角数字を半角数字に変換する方法

vim

例えば、とある電気料金の基本料金が次の様になっていて、全角では使いにくいので半角に変換したい。 291円60銭 437円40銭 583円20銭 874円80銭 1,166円40銭 1,458円00銭 1,749円60銭まず、円や銭やカンマを置換する…

Goならわかるシステムプログラミング 6.6.1のKeep-Alive対応のHTTPサーバーのコードがわかりにくい問題

go

少し前にはてな界隈でも話題になった、Goならわかるシステムプログラミングという本を写経しています。 Goならわかるシステムプログラミング 作者: 渋川よしき 出版社/メーカー: Lambda Note 発売日:2017/10/19 この本は、Go言語の勉強のために購入したので…

Androidのアプリ開発を自走できるようになるまで

このブログを書くのもかなり久しぶりになってしまいました。最近は技術系の話はQiitaに書くようになって、個人ブログは放置している状態なのですが、今回はコラム的なものなのでこちらで書きたいと思います。 かれこれRailsの仕事を初めてもうすぐ3年になり…

unless A && Bを使っても読める場合

以前 unless A && B は辞めたいという記事を書きました。 normalse.hatenablog.jp しかし、その後、場合によっては使用しても良いという意見になりましたので、追記します。 「場合」というのは、guard節を使うとき。 def hoge return unless A && B somethi…

git submoduleのちょっとしたこと

Git

git submoduleでsubmoduleが更新されたから自分のブランチでも反映させたいという場合、 git submodule foreach git pull origin master こう叩くと、すべてのsubmoduleが最新化されます。 あとは普通にcommitすればOKです。自分で更新する場合はいいのです…

RailsリポジトリをTravisCI, CodeCov, CodeClimateと連携

Ruby on Railsエンジニア2年目で初めて本格的にRails newをして諸々の初期設定をしたので備忘録的に作業を綴ります。 CIツールはCircleCIなどいくつかありますが、今回はTravisCIを利用させていただきました。 TravisCIの設定 Travis CIに行き、GitHubでSig…

rubyで再帰

先日、関数型の初心者の勉強会に参加してきました。 私は、もともと情報系の学科を卒業したわけではないので、アルゴリズムや関数型の考え方は全くの初心者です。なので、再帰の考え方に慣れるのにとても大変でした。まだ慣れているとは言えないレベルですが…

「オブジェクト指向設計実践ガイド」を読んだ感想

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方 posted with ヨメレバ Sandi Metz 技術評論社 2016-09-02 Amazon 9月2日に発売になったSandi Metz著の「Practical Object-Oriented Design in Ruby: An Agile P…

楽々ERDレッスン

RDB

前々回の記事で、リレーショナルデータベースに関する良書として、こちらの本の紹介をしました。 達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ posted with ヨメレバ ミック 翔泳社 2012-03-16 今回は、前々回も紹介した、楽々ERDレッスンも…

Rails 5でdraperを使う(2016年8月27日現在)

Rail 5でdraper(ActiveRecordをdecorateしてくれるgem)を使おうと思ったら、少しつっかかったのでメモ。 普通に、draperと書くと、 gem 'draper' 2.1.0がinstallされてしまう。 そうすると、rails consoleとかしたときに、 /Users/user_name/.rbenv/versio…

Rubyのインスタンス変数の直接参照について

会社で議論になり、未だに私の中で決着がついていない問題を取り上げてみます。 Rubyのインスタンス変数を直接参照することについてです。 例えば、コンストラクタでインスタンス変数を設定します。 そして、インスタンスメソッドでそのインスタンス変数を直…

達人に学ぶDB設計

RDB

久しく更新が止まっていましたが、久しぶりに更新です。 今日はデータベース関連の書籍を読み、とてつもない良書だったので紹介です。 その本がこちら。 達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ posted with ヨメレバ ミック 翔泳社 20…

ruby 1.9系のラムダ記法

今時rubyの1.9系を使っている人なんていないと思いますが、私は仕事の都合上、1.9系を使うときがあります。 しかも、同じリポジトリでサーバーによってrubyのバージョンが2.1系だったり、1.9系だったりするので厄介です。今回、仕事でrubyのラムダ記法で2系…

unless A && Bを止めたい

タイトルの通りである。unless A && Bはわかりにくい。例えばRuby on Railsで開発している時。 array1 = ["text1", "text2"] array2 = [] という二つの配列があったとする。 puts "TEST1" unless array1.present? && array2.present? #1 puts "TEST2" unless…

Ruby on Rails初心者が一歩進むために~2~

タイトルの通り。Ruby on Railsを勉強していてこの使い方知ってるとだいぶ幅が広がるなというのがあったので、メモ。今回は、reduceです。エイリアスでinjectというのもあって、両者は同じ挙動をします。 1.reduce, inject http://ref.xaio.jp/ruby/classe…

The Philosophy of Rubyを読んでみた。

Rubyを使い始めて4か月目に入りました。Rubyを勉強していくうちに2003年に行われたRubyの生みの親であるまつもとゆきひろ氏のインタビュー記事があり、日本語訳が見当たらなかったので、勉強がてら和訳してみました。 以下、長いですが、引用です。 Rubyの…

Ruby on Rails初心者が一歩進むために~1~

タイトルの通り。Ruby on Railsを勉強していてこの使い方知ってるとだいぶ幅が広がるなというのがあったので、メモ。今回は、define_methodとdefine_singleton_methodです。キーワードはメソッドの動的生成。 1.define_method define_method (Module) - Ru…