なんとな~くしあわせ?の日記

JavaとかAWSの設定とかをメモする技術ブログ

新卒採用のシューカツが無くなればいいなという話

最近Offerboxというサービスを知った。 OfferBox(オファーボックス) | オファーが届く逆求人型就活サイト このサービスにプロフィールを登録しておけば、企業側からお声がかかるらしい。IT系の転職サイトだとその機能は珍しくないのだが、これが面白いのは新…

Debianで起動時にちゃんとディスプレイマネージャを出す

ここ3,4ヶ月ぐらい、自宅PCの起動にlightdm(ディスプレイマネージャ)直打ちを使っていた。よくそんなので運用できたな。 起こっていたこと Debian起動時に自動でGUIのログイン画面が出ない(=ディスプレイマネージャ) 仕方ないのでXがない状態でroot…

EC2上でJettyにJMXを設定してjconsoleでメモリ使用量を確認する

JMX 仕事でアプリサーバの監視をする必要が出てきたので、Jettyにjmxを設定してみた。JMXとは Java Management Extensions - Wikipedia の略らしい。以下のサイトを参考にしました。 d.hatena.ne.jp ameblo.jp ハマりどころ RMI Serverが利用するポートの開…

RSpecでファイル読み書きテストをやる

Rubyには Tempfile というクラスがあるので、それを使えばOK Ruby 2.4で試してます File.read するときはエンコード指定したほうがよいかも class Tempfile (Ruby 2.5.0) RSpec.describe ModuleXXX do before(:all) do @module = ModuleXXX.new end context …

Ansibleでgit cloneしてアーカイブをサーバにデプロイ

Ansible + Git 久しぶりにAnsibleを使ったqiita.com本当は上の記事のように、「ssh-add」してからのSSHフォワーディングをやりたかったのだが、謎のエラーで進めなくなったのでもっと原始的な方法で用を済ませた。 Ansibleのスクリプトサンプル 要は、local_…

ゼロから始める動的計画法 - コイン問題

問題設定 Project Euler Problem 31 考察 動的計画法による解答 問題を簡単にする なぜ動的計画法か? まずは2次元配列で Rubyのコードに落とし込む プロジェクトオイラー用に微調整 問題設定 Project Euler Problem 31 ターゲットとする問題は以下 Project…

競プロ始めた - アドカレ用

競プロ始めた この記事は Competitive Programming Advent Calendar 2017 - Adventar のために書かれました。 競プロ始めた 競プロやろうと思った動機 AtCoderの感触 最初3ヶ月ぐらいの体感 最初3ヶ月ぐらいの気づき 後半3ヶ月ぐらいの体感 後半3ヶ月ぐ…

アルゴリズムまとまってるサイト

メモ用、他にあれば追記する ポータルサイト www.geeksforgeeks.orgwww.csegeek.com 大学の授業シラバス系 ヨークカレッジ・ペンシルベニア校 Lecture Notes イリノイ大学アーバナ・シャンペーン校 Jeff Erickson's Algorithms, Etc. このサイトにあったサイ…

AtCoder - AtCoder Beginner Contest 040 (道路の老朽化対策について) を解いてみた

アルゴリズム 経路圧縮 rankによる木のマージ処理 ABC 040 D問題に使われるアルゴリズム要素はUnion-Findです。Union-Find自体は前回ブログ記事にしていたのですが…これだけでは足りませんでした。ACするためには経路圧縮とrankによる木のマージ処理が必要で…

Instaparseでパーサジェネレータ

Instaparseの位置づけ InstaparseはClojure言語による パーサジェネレータ - Wikipedia であるgithub.comこれのルール記述はBNFの拡張であるEBNFが使われている。 EBNFで構造化言語のルールを記述する さっそくだが、「<p>sample</p>」を読み取るBNFのル…

パーサジェネレータについて調べた

パーサジェネレータの位置づけ パーサ(=構文解析器) パーサジェネレータの利点 パーサジェネレータの実装の種類 パーサジェネレータの位置づけ 少しだけパーサジェネレータについて書く。パーサジェネレータとはパーサを生成できるソフトウェアのことであ…

AtCoder - AtCoder Beginner Contest 012 (バスと避けられない運命) を解いてみた

前回の競プロ! 解法 Rubyによる解答 TLE D言語による解答 AC! 前回の競プロ! ダイクストラ法を学んでようやくスタート地点に立てました。ダイクストラ法については以下のエントリを参照。nantonaku-shiawase.hatenablog.com 解法 Rubyによる解答 TLE アル…

AOJ - ALDS1_12_B (ダイクストラ法) を解いてみた

問題設定 最短経路問題の分類とアルゴリズムの使いどころ グラフをGraphvizでビジュアル化する アルゴリズム 疑似コード 自分の解答 AOJ - ALDS1_12は、重み付きのグラフアルゴリズムです。最短経路 ダイクストラ法 | アルゴリズムとデータ構造 | Aizu Onlin…

AOJ - ALDS1_12_A (プリム法) を解いてみた

問題設定 グラフをGraphvizでビジュアル化する アルゴリズム 疑似コード 自分の解答 コードの工夫など AOJ - ALDS1_12は、重み付きのグラフアルゴリズムです。最小全域木| アルゴリズムとデータ構造 | Aizu Online Judge 問題設定 最小全域木というのは、 重…

AOJ - ALDS1_11_A,B,C (グラフアルゴリズム) を解いてみた

ALDS1_11_A (隣接行列) 自分の解答 ALDS1_11_B (深さ優先探索) アルゴリズム 自分の解答 ALDS1_11_C (幅優先探索) アルゴリズム 自分の解答 AOJ - ALDS1_11は、グラフアルゴリズムです。グラフの表現 | アルゴリズムとデータ構造 | Aizu Online Judge 深さ優…

mavenで本番用/開発用のwarファイル切り替え

成果物の設定情報切り替え ユースケース 実際に使われる環境変数 他のフレームワークでの方法 mavenで本番用/開発用のwarファイル切り替え profile maven resources plugin 環境ごとの切り替えの実装 プロパティファイルの値の置き換え プロパティの置き換え…

Bitnami版Jenkinsとコンソール出力の自動更新

Bitnami JenkinsAWS上で使用するJenkinsにBitnamiが提供しているUbuntuのイメージを使っているのですがbitnami.comどうもこれが原因でビルド結果の自動更新がうまく動いてなかったらしい。 対象チケット [JENKINS-25026] Console output stops populating af…

AOJ - DPL_1 D (最長増加部分列) を解いてみた

最長増加部分列の基本 問題設定 アルゴリズム 線形探索版のプログラム - O(N^2) 二分探索版のプログラム - O(N log N) サンプルプログラム 線形探索版のプログラム - O(N^2) 二分探索版のプログラム - O(N log N) AOJ - DPL_1 Dは、最長増加部分列(Longest I…

JRubyに挑戦2

REST APIを作ってみる 作りたいもの Hanami - ドキュメント 新規アプリの追加 新規Action/Viewの追加 新規Entity/Repositoryの追加 モデルは単数形になることに注意 employeeのDBのテーブルを作成 JSONを返す部分を追記 hanami-modelについての見解 もとの記…

JRubyに挑戦1

JRuby ターミナル 日本語化 JRuby on Rails Hanami on Jruby Hanamiについての見解 MVCにService層を追加する Hanamiの試みとは? もとの記事は JRuby - FreeStyleWiki JRuby 環境構築最初はJavaでSpring-bootを使おうとしたけど、連携の面倒さに辟易したの…

SQLもプログラミング言語…っぽい4

SQL

このシリーズも4回目になる。お題は以下の通り テーブルの正規化 正規化とはなんぞや? 非正規形 第1正規形 第2正規形・第3正規形 外部結合の設定 LEFT JOIN 書籍の紹介 履歴管理 実際的な設計 概念的な話 テーブルの正規化 正規化とはなんぞや? ここが分…

AOJ - ALDS1_7_A, B, C (木構造) を解いてみた

勝手に解いてろとか言わないで… 木構造を使うときの基本 ALDS1_7_A - 根付き木 get_depth ( id, nodes ) get_children ( id, nodes ) ALDS1_7_B - 二分木 get_depth ( id, nodes ) get_height ( id, nodes ) get_sibling ( id, nodes ) ALDS1_7_C - 木の巡回…

MyBatisエラー別対応とか

Wikiの方に書いた記事によくアクセスがあるようなので、はてなに移しておく。 MyBatisのエラー別対応 エラーメッセージ:"Mapped Statements collection does not contain value for クラス名" エラーメッセージ:"Mapped Statements collection already con…

アルゴリズム学びフローを作成してみる

AOJの本 本の内容とレビュー 見通しを立ててみる プロコンで解いた問題を格納 AOJの本 この本を買ってみた。プログラミングコンテスト攻略のためのアルゴリズムとデータ構造…プログラミングコンテスト攻略のためのアルゴリズムとデータ構造作者: 渡部有隆,Oz…

動的計画法で組み合わせの総数 nCr を求めてみる

もっと早い組み合わせの総数 (combination)の求め方 動的計画法 - DP(Dynamic Programming) Combinationのための動的計画法 Rubyによるサンプルプログラム 処理内容を表で表現してみる 実際使う時は 参考 もっと早い組み合わせの総数 (combination)の求め方 …

CloudflareとLet’s Encryptを同時に使ってると、Let’s Encryptが更新できない件

tls: handshake failure 解決策 Cloudflare側の設定 There were too many requests of a given type :: Error creating new authz :: Too many invalid authorizations recently.. Skipping. 解決策 tls: handshake failure Let's Encryptで更新かけるとき、…

AOJ - DSL_1_A (Union-Find) を解いてみた

AOJ - DSL_1_A quick find で求めてみる quick-unionで求めてみる DSL_1_Aは、Coursera Algorithm I で最近習ったばかりのUnion-Findです AOJ - DSL_1_A 互いに素な集合 Union Find| データ構造ライブラリ | Aizu Online Judge quick find で求めてみる 自分…

Hadoop Hive用にDockerのイメージを作ってみた

動機 Hiveのテスト時にいちいちEMRを起動したくない リポジトリ https://hub.docker.com/r/hiroyuking/docker-hiveserver2/ https://hub.docker.com/r/hiroyuking/docker-bigtop/ 参考にしたもの DockerとDocker Composeについては以下のサイトqiita.comApac…

文系エンジニアだがCourseraの機械学習コースを修了した

動機 以下の記事をQiitaで見つけて、これはいいなと思い受講してみました。qiita.com qiita.com 感想 学習期間 2月初旬に始めていたはずなのだが、結局終わったのは5月下旬。4ヶ月かかっている。 本来3ヶ月で終わるべきだが補習授業みたいな感じで期間を…

AOJ - ITP1_7_D (行列の積) を解いてみた

AOJ - ITP1_7_D 行列の積をプログラムに起こすと? 問題の内容 問題の解法 行列計算の参考リンク ITP1_7_Dは、今自分の中でブームの行列の積の問題です。生で計算しないにしても、機械学習にも大いに関係があります。 AOJ - ITP1_7_D Matrix Multiplication …