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

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

2018-01-01から1年間の記事一覧

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

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

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