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

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

EntityとDto

EntityとDto Dtoについてこれまで誤解していたことと、本来の使われ方について書く EntityとDtoの違い java - Difference between Entity and DTO - Stack Overflow 今回はこの記事について書く TL;DR: エンティティはビジネスドメインの一部でありうる。そ…

Apacheの同時接続スレッド数

表題の件を調べることになった、このページには最終的な手順のみ残す workerで動いてるか、preforkで動いてるか確認 Apacheのプロセス管理がなんのモジュールで行われているか確認する $ apachectl -l Compiled in modules: core.c worker.c http_core.c mod…

VisualVMが使ってみるとけっこうよかった件

visualvm.github.io仕事で負荷試験などを行ったのだが、ボトルネックがどこであるか非常にわかりやすい。 ボトルネックの見つけ方 ローカル環境 or JMXのポートを開けた環境でアプリケーションを起動する VisualVMで対象のアプリケーションの環境につなぐ サ…

Seleniumにおける待ち合わせの概念

Selenium このページの重要な点を翻訳 stackoverflow.com Implicit Wait(暗黙的待ち合わせ) 暗黙的待ち合わせはウェブドライバーのインスタンスにHTML DOMの要素を見つけたり、要素のグループやコレクションを見つけたりする時に即時利用可能でない場合の…

プロジェクトオイラーProblem 12を解いてみた

今回はほとんど自力では解けてないので、翻訳実装しただけです。 問題 三角数の数列は自然数の和で表わされ, 7番目の三角数は 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28 である. 三角数の最初の10項は: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... となる. 最初の7項に…

AtCoder Beginner Contest 009 (辞書式順序ふたたび) を解いてみた

ABC 009 C問題に使われるアルゴリズム要素は貪欲法です。貪欲法自体は定型のアルゴリズムがあるわけではないので、知識ではなく地頭を問う問題です。 C - 辞書式順序ふたたび 解説:Abc009 問題文 文字列Sとその長さN、そして入れ替えしていい文字数Kが与え…

JSONを階層構造を保ったままCSV化

Herokuで公開しているアプリ aqueous-everglades.herokuapp.com無かったので作りました サンプル { "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm":…

クロスアカウントS3の設定

AWS

クロスアカウントとは AWSのアカウントが別個に存在するということ。セキュリティ的に分けている方針もあれば、そもそも使用している会社組織が異なるために別のアカウントになっていることもあるでしょう。今回はこれでだいぶハマりました。 クロスアカウン…

AWS LambdaでLayer機能を使う

Layers AWSのドキュメント AWS Lambda レイヤー - AWS Lambda AWSのLayersを使うと、Pythonの依存ライブラリなどを設定し共通ライブラリとして使える。(AWS Lambdaのソースコード容量制限は厳しいので、これを使うのが正しいだろう) AWS Lambdaのデプロイ…

PySparkの実行でImportError: No module namedが出たとき

ImportError: No module named エラー EMRの実環境でPySparkでクエリやUDFを実行させていたら以下のようなエラーが発生した。 ImportError: No module named 'foo' どうやら各ノードにPythonのモジュールが分散されていない(?)ようだ。 対処 StackOverflo…

PySparkのハマり(メモ)

pipで取得したpysparkを起動させると、以下のようなエラーが出ることがある。 Sparkのバージョンは2.3.1。 (venv) C:\Users\hiroyuki.nagata\PycharmProjects\vjsk-etl-flow>pyspark Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.15…

Go言語で継承みたいなこと

Go

最近Go言語でつくるインタプリタを読んでいる。ほとんど趣味だが、lexer/parser(字句解析/構文解析)->ast化(抽象構文木)->eval(評価)までの流れを辿れるためとてもおもしろい。Go言語でつくるインタプリタ作者: Thorsten Ball,設樂洋爾出版社/メーカー…

PySparkでいろいろ調査したのでメモ書き

PySparkにはいろいろなファイルロード/セーブ方法がある。 メモ ローカル環境でShift-JISファイルを読み込んでUTF-8で出力 順当にリストをparallelizeしてRDDからDataframe化 #!/usr/bin/env python # -*- coding: utf-8 -*- from pyspark.sql import SparkS…

Neo4jRBでグラフDBをRailsから使う

Neo4j単体でも面白いのだけど、結果を現実世界に出すにはWEB画面を作るのが楽。というわけでNeo4jRBに触れてみる。とりあえず環境構築のみ。 環境構築 とりあえずDebianで環境構築をやってみる neo4jの準備 各環境にあったパッケージリポジトリを使用しまし…

Neo4jでJOINクエリ

Neo4jでJOINクエリ 課題・やりたいこと 課題 やってること なぜ、SQLでJOINしまくる羽目になるのか? やりたいこと 実践 概要と手順 データ設計の見直し 使ったクエリ プラットフォームの選択 Neo4jのコンフィグまわり WSLの環境へヘッダありCSVを読み込む例…

Neo4jでグラフアルゴリズム

前から調べようと思っていたNeo4jの勉強会に行ってきた。 jp-neo4j-usersgroup.connpass.com グラフアルゴリズム AOJ - 深さ優先探索 データセットの用意 ビジュアライズ アルゴリズム実装 グラフアルゴリズム とりあえず深さ優先探索、幅優先探索、ダイクス…

SoundHound Inc. Programming Contest 2018 - (Ordinary Beauty) 再考

問題 考えたこと 方針 期待値の線形性を利用して数列の美しさの算出を分解する 例 問題 d = 0の場合と d != 0の場合で場合分けする 解答コード 問題は単純なのだが、解法が全然思いつかず。 問題 C - Ordinary Beauty N, M, D が与えられるとき 1 ~ N まで…

AWS GlueでSparkのDataframeを使う

AWS GlueでSparkのDataframeを使う Glue上のクラス構造 DynamicFrameからDataFrameへの変換 DataFrameからDynamicFrameへの変換 DataFrameを使った処理など 連番作成 カラムの追加、リネーム AWS GlueでSparkのDataframeを使う Glue上のクラス構造 docs.aws.…

AtCoder - AtCoder Beginner Contest 066 (11) を解いてみた

組み合わせ 組み合わせを階乗の式で表す 組み合わせの式 ABC 066 (11) 、解説の解説 問題の考察ヒント 考察 簡単な例 重複を取り除くパターン ABC 040 D問題に使われるアルゴリズム要素は組み合わせ、繰り返し2乗法、階乗のmod逆元、(+累積和的な処理?)…

AWS Glue上でboto3を使ってみる

現象 AWS Glue上でboto3を呼ぼうとしたのですが、あるはずのメソッドを呼ぶとエラーで落ちた。 対策 ここを読みましたLambda pythonから S3 にアクセスできない? 試しに、Lambda Functionパッケージ内から boto3とbotocoreを 削除する。削除した状態で Lmab…

Clojure小ネタ

Clojure小ネタ Clojureのテストはrepl.itというサイトでWEB上で試せる repl.it - Online REPL, Compiler & IDE ハッシュマップの型 {:key "value"} のような形のハッシュマップは、内部ではPersistentHashMapやPersistentArrayMap, PersistentTreeMapのよう…

ClojureでJavaの無名クラス実装

nantonaku-shiawase.hatenablog.com以前JavaのApache POIでCellWalkContextの実装を作ったのだが、これをClojureでやる場合はproxyを使うのがよい。 Java実装 CellWalk cw = new CellWalk(sheet, range); cw.traverse(new CellHandler() { @Override public …

Hanami + Vue.jsでTODOアプリを作った

REST APIで動くSPAを作ってみたかったので、TODOアプリ*1を作った。まずはバックエンドとフロントエンドの分離を目指したかった。構成はこんな感じ: バックエンド:Hanami フロントエンド:Vue.js with webpack vue-hanami-todo.herokuapp.com 資料 やった…

Apache POIで指定した範囲を空白にする

設定されているExcel式を全消ししたかったので… Apache POIで指定した範囲を空白にする 動作環境 コード片 それよりGoogle Spreadsheetがよさそうですよ 課題 解決策? Apache POIで指定した範囲を空白にする 動作環境 Apache POI 3.17 commons-lang3 3.6 Ma…

Jettyが週1、2で停止する場合はtmpwatchを疑うべきかも

現象 解析 参考 概要 解決策 現象 週1or2でJettyが内部エラー起こしてリクエストに404エラーを返す エラー発生は決まって週末の同じ時間 解析 参考 warファイルからお手軽起動したGitBucketの画像やCSSがなくなる | 眠るシーラカンスと水底のプログラマー …

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

最近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_…