タグ

ブックマーク / syohex.hatenablog.com (30)

  • Advent Of Code 2020を終えて - Shohei Yoshida's Diary

    memo.sugyan.com yosuke-furukawa.hatenablog.com 今年始めて参加した Advent of Code 2020年版を終えました 結果は上記のような感じ. 各問題 100位以内に解ければポイントがもらえるのですが, 100位なんて程遠すぎて結果は 0点. これは早くできたなと感じてもそんな問題はみんな早く解けているわけで自分が早く解けたときの方がむしろ順位は低かった印象. ポイントを取るにはまだまだ実力不足であることを感じました Advent of Codeの特徴 コードの提出はない, 答えだけ提出 どんなに非効率なアルゴリズムでも答えが出ればいい. 微妙な問題サイズの場合はしばらく待てば解けてしまうこともあった 超早いマシンを持っていれば幾分有利かも 問題の入力が人によって違う 世界中の人が多く解いているので解説が多数ある 感想 初期の方は 1時間

    Advent Of Code 2020を終えて - Shohei Yoshida's Diary
  • この半年でやったこと, 継続していること - Shohei Yoshida's Diary

    studio3104.hatenablog.com を見て, leetcodeがキリがいいところだったので, 私も真似して書いてみる. そもそも私は 40年近く生きてきて何かを継続してできたということがほとんどない. あったとしても若かりし頃のゲーセン通いぐらいで勉強に関してはおそらく皆無である. 今年の何ヶ月か過ぎたあたりでふと自分のキャリアについて考えたとき, 何もできることなくてこのままでいいのかとなって, (遅すぎるけど)いい加減真面目に考えないとまずいとなった. そこで雑ではあるが自分の幅を広げるために根的なプログラミングスキルと英語をなんとかしようと思い, いろいろ試している. 初めて危機感を持った影響なのか今のところは毎日少しずつではあるが継続できていることもある. それらについてまとめておこうと思う. leetcode leetcode.com @sugyanさんが Tw

    この半年でやったこと, 継続していること - Shohei Yoshida's Diary
    sugyan
    sugyan 2020/12/16
    僕のがきっかけになったとのこと、嬉しいです!いやしかし量すご…!
  • jsonの validation - Shohei Yoshida's Diary

    emacsでjson編集したら保存時にvalidかどうかチェックしてくれるようなのないかな? あるよなきっと 2015-03-03 11:02:19 via YoruFukurou flycheck 保存時ではありませんが, 常時チェックしたい場合は flycheckがよいでしょう. jsonlintを事前にインストールしておく必要があります. % npm install jsonlint -g M-x package-install <ret> flycheck 問題のある行にカーソルを動かすと minibufferにエラーが表示されます. M-x flycheck-list-errorsとするとエラー一覧が見えます. next-error, previous-errorでエラーが発生している場所を移動する ことができます. json-pretty-print-buffer Emacs

    jsonの validation - Shohei Yoshida's Diary
  • 第一回 init.el読書会に参加しました - Shohei Yoshida's Diary

    一回目は @hico_horiuchiさんの init.elでした. 今はもう修正されているかと思いますが, 当日ツッコミを入れた ところを示します. add-hookに無名関数(lambda)は使わない方がいい add-hookに無名関数を使うと remove-hookできない 2回 add-hookすると, 2個関数が登録される といった問題があります. なるべく関数を作成して登録して ください. "~/.emacs.d/"は使わない方がいい user-emacs-directory(デフォルト値は ~/.emacs.d/)を代わりに使いましょう. こうすることで, user-emacs-directoryの値を変えることで, 別ディレクトリに 設定ファイル等をインストールすることができます(かもしれない). color-themeは使わない(Emacs 24以上を使っている方) Em

    第一回 init.el読書会に参加しました - Shohei Yoshida's Diary
    sugyan
    sugyan 2014/09/10
    オンライン読書会、ログ読むだけでも勉強になるし良い
  • LLDiverのエディタ対決に Emacs代表として参加しました. - Shohei Yoshida's Diary

    http://ll.jus.or.jp/2014/ エディタ対決に Emacs代表として参加してきました. ネガティブな発言が多めで、もっとポジティブなことを言うべき だったと反省しています. ごめんなさい. 資料 5分弱でということだったのでほとんど内容はありません. 以下脳内シミュレーションで話の内容を考えていたけど話さなかった ことや当日うまく話せなかったことについて. 拡張言語 Emacs Lisp 括弧だらけで, 機能的にも貧弱な言語ですが, 好きです. というか書くのが楽. 楽というのは論理的な意味でなく物理的な意味でです. 括弧が多いことなんて 慣れればどうにでもなります. 逆に物理的に書くのが大変と思うのは, pythonとか CoffeeScriptのようなインデントに意味がある言語. 自動インデントができない のが辛すぎる. パッケージ管理 package.elはとりあ

    LLDiverのエディタ対決に Emacs代表として参加しました. - Shohei Yoshida's Diary
    sugyan
    sugyan 2014/08/25
    “Emacsは楽しいエディタ”
  • Perl::Lintと Perl::Criticを性能評価してみた - Shohei Yoshida's Diary

    Released Perl::Lint as underdevelopment - その手の平は尻もつかめるさ 環境 さくら VPS 1G Ubuntu 14.04 64bit GCC 4.8.2 Perl 5.20.0 モジュールのバージョン Perl::Lint 0.01_01 Perl::Critic 1.121 ベンチマークコード #!perl use strict; use warnings; use Benchmark qw/cmpthese/; use Perl::Critic; use Perl::Lint qw/lint/; my $file = shift; my $critic = Perl::Critic->new; my $lint_arg = [$file]; cmpthese(-10, { 'Perl::Lint' => sub { lint($lint_ar

    Perl::Lintと Perl::Criticを性能評価してみた - Shohei Yoshida's Diary
  • 「Perl One-Liners」 を読んだ - Shohei Yoshida's Diary

    http://shop.oreilly.com/product/9781593275204.do 来月 Oreillyから出るのかと思ってググって見たら, 電子書籍として 4年前に出たものの紙バージョンでした. 紙で読むのもあれなので, 電子書籍版を読みました. $10なんで安いと思います. 電子書籍版 http://www.catonmat.net/blog/introduction-to-perl-one-liners/ 内容 言うなれば, One linerクックブックです. ファイルの内容の加工, 計算, 文字列生成, 文字列変換, 置換, テキストマッチング等の 内容です. それぞれ 10-20弱のレシピがあります. 事細かな説明があるわけではないので、全くの初心者には向かないと 思います。One Linerのスイッチの意味ぐらいは知っているという人 向けでしょうか. そんな複雑

    「Perl One-Liners」 を読んだ - Shohei Yoshida's Diary
  • keyfreqで Emacsの使い方を見直す - Shohei Yoshida's Diary

    コマンドの使用頻度を表示してくれる keyfreqの紹介 目的 効率的な移動コマンドをちゃんと使っているかとか, ユーティリティ 書いたけど, 全然使ってないとか判断するのに使えます. リポジトリ https://github.com/dacap/keyfreq インストール MELPAからインストールできます M-x package-install keyfreq 設定 (require 'keyfreq) ;; package.elからインストールした場合は不要 (keyfreq-mode 1) (keyfreq-autosave-mode 1) 表示例 M-x keyfreq-show で表示してくれます. 3039 24.20% self-insert-command SPC..~, ?.. 2509 19.98% next-line C-n, <down> 2127 16.94%

    keyfreqで Emacsの使い方を見直す - Shohei Yoshida's Diary
    sugyan
    sugyan 2013/09/05
  • Emacsユーザが「実践Vim」を読んだ感想 - Shohei Yoshida's Diary

    はじめに 私はにわか Emacsユーザであり, 定期的に Vimへの乗り換えを試み, 挫折を繰り返していました. なんで最近は諦めて Emacsの使い方をまともに 覚えようという方向でやっていこうと決めたんですが, このを 読んでまた気持ちがぐらついてしまいました. Vimだからこその内容 Emacsやその他エディタではおそらくこの内容は書けなかったと思います. Emacsやその他エディタで Tipsを書くとなると, 「こうしたらこうできます」とか 「この拡張を入れたら、こんなことがお手軽にできるようになる」ということが 終始続くことになるでしょう. というのも Vim以外のエディタでは基的には ある地点しか見ることができないからです. ある地点でできるベストなことは どの段階でもおそらくベストです. しかし Vimは違います. それはある地点の 作業を次に活かせるからです. それが

    Emacsユーザが「実践Vim」を読んだ感想 - Shohei Yoshida's Diary
    sugyan
    sugyan 2013/09/02
    気になった
  • package.elを使う場合の設定ファイルの書き方 - Shohei Yoshida's Diary

    init-loader.el と package.el を導入して快適 Emacs ライフ - Qiita に影響されて書きます。 package.elの設定ははじめの方に書く ;; Emacs package system (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize) package.elを使っているような人であれば、上記のような設定がどこかしらに あると思うのですが、これは初めの方に書くべきです。具体的には早い段階で package-initializeを呼ぶべきだからです。 package.elはパッケージ管理だけのツールではない package.elを使ってパッケージをインストールした場

    package.elを使う場合の設定ファイルの書き方 - Shohei Yoshida's Diary
    sugyan
    sugyan 2013/06/24
    autoloadの使いどころ、注意など。eval-after-load。
  • emacs-jpはじめます - Shohei Yoshida's Diary

    http://emacs-jp.github.com/ https://github.com/emacs-jp/emacs-jp.github.com Emacsのコミュニティサイトみたいなのがあったらいいよね、って 2年前ぐらいから話していた気がするんですが、全く持って実現に 至れていませんでした。ですが、先週の @myuheさんの 以下の tweetからいろいろ議論が盛り上がり、ようやく行動に 移れたかなという感じになっています。 結局、日Emacserが集える場所とはどこだったのか。 2013-02-12 19:43:47 via twitcle 主な目的 質問、疑問に答える 添削 メンテナンスされていないパッケージを emacs-jp organizationで管理する などです。 こんな人はぜひ わからないことがある こんな拡張ないの ? こんな拡張書いたけど、見て欲しい こ

  • LTSVパーサの Emacs Lisp実装 - Shohei Yoshida's Diary

    Labeled Tab-separated Values (LTSV) 流行りに便乗しました リポジトリ https://github.com/syohex/emacs-ltsv インタフェース ltsv:parse-lineは LTSVな文字列を解析し、alistを返します。 PerlText::LTSV同様 want, ignoreなキーを指定することが可能です。 (ltsv:parse-line "hoge:foo\tbar:baz\ttime:20:30:58\n") ;; => (("hoge" . "foo") ("bar" . "baz") ("time" . "20:30:58")) (ltsv:parse-line "hoge:foo\tbar:baz\ttime:20:30:58\n" :want '("time")) ;; => (("time" . "20:30

    LTSVパーサの Emacs Lisp実装 - Shohei Yoshida's Diary
    sugyan
    sugyan 2013/02/08
    EmacsでもLTSV!ww
  • "set -e"に関するメモ - Shohei Yoshida's Diary

    シェルスクリプトで #!/bin/sh set -e とすると、コマンド実行時に戻り値が 0以外になれば即座に終了 するという便利な機能があります。しかし diffコマンドのように 戻り値 0は差分なし、1は差分あり、それ以外はエラーみたいな 感じで戻り値を利用されると、diffの部分で処理が終了してしまう という問題があります。 #!/bin/sh set -e diff test/old.txt test/new.txt > test.patch echo "finish" のような場合, diff自体は成功しますが、それ以降が実行されず "finish"と表示されないということが起きます。 解決方法 コマンドを ifや whileの条件として書くことで、この問題を回避できます。 #!/bin/sh set -e if diff test/old.txt test/new.txt >

    "set -e"に関するメモ - Shohei Yoshida's Diary
  • おすすめの helm拡張 - Shohei Yoshida's Diary

    この投稿はEmacs Advent Calendar 2012の 7日目の記事です。 拙作の helmプラグインを紹介しようかと思ったのですが、 そもそも helm(anything)を使っている人がものすごく多いって わけではなさそうなので、おすすめの拡張をいくつか紹介しようと 思います。 事前準備 helmは MELPA, el-get等でインストールできます。 package.elでのインストール方法を事前に示します。 以下の設定を ~/.emacs.d/init.el, ~/.emacs等に追加してください。 (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize) 以下のコマンドを実行します。 M

    おすすめの helm拡張 - Shohei Yoshida's Diary
  • cperl-modeでの引数の無名関数のインデント - Shohei Yoshida's Diary

    コールバックを引数で取るような関数で無名関数を使ったとき こんな感じにして欲しいところですが、 cperl-modeだとこんな感じか こんな感じに なってしまいます。どうやったら一番上になるんだって思って ソース見ていたらなんとかなりそうだったのでその手順を示します。 melpaから取得できる cperl-modeの場合 このためのフラグ cperl-indent-subs-speciallyが用意されているので それを設定するだけで対応できます。 (setq cperl-indent-subs-specially nil) ;; もしくは (custom-set-variables '(cperl-indent-subs-specially nil)) Emacs付属の cperl-modeの場合 Emacs付属の cperl-modeも一応開発が進んでいるようで、 melpaにはない修

    cperl-modeでの引数の無名関数のインデント - Shohei Yoshida's Diary
    sugyan
    sugyan 2012/11/15
    ++
  • websocket.el + Amon2でリアルタイム Markdown Viewer - Shohei Yoshida's Diary

    WebSocketがなんなのか全然わかっていませんが、サンプルを参考に リアルタイム Markdown Viewerを作成してみました。日語を書くとエラーになるとか、 効率を全く考えていないとか、繰り返しやってるとエラーが出るとか 問題はまだ多数ありますが、いろいろ楽しいことができそうな予感はしました。 デモ動画 初めの 10秒ぐらい戸惑っています。 必要なもの Emacsは 23以降がいいっぽいです。試したのは 24.1です。 websocket.el Amon2 3.5以降 サーバ側 Amon2付属の chat.psgiをちょっと直した程度です。 use strict; use warnings; use utf8; use Amon2::Lite; use Digest::MD5 (); use Text::MultiMarkdown qw/markdown/; get '/' =

    websocket.el + Amon2でリアルタイム Markdown Viewer - Shohei Yoshida's Diary
  • Emacsで人生を振り返る。 - Shohei Yoshida's Diary

    Macのスクリーンショットで1日の作業を記録して動画で振り返り - 西尾泰和のはてなダイアリー に着想を得て、capture-mylife.elというものを作ってみました。 まあ上記のことを実現する Emacsフロントエンドなだけですが・・・。 リポジトリ syohex/emacs-capture-mylife · GitHub 必要なもの キャプチャリング scrot or import(Linux) screencapture(MacOSX) nircmd.exe(Windows) 動画化 avconv or ffmpeg デスクトップ全体のキャプチャリングはすべて対応していますが、 アクティブな Windowのキャプチャリングについては scrotをインストール した Linux環境に限られます。importコマンドや xwdコマンドでも実現 できるはずなのですが、デスクトップ全体だ

    Emacsで人生を振り返る。 - Shohei Yoshida's Diary
  • Emacsで Perlのひな形を挿入する - Shohei Yoshida's Diary

    Big Sky :: ファイルタイプ別にテンプレートを選べるsonictemplate-vim書いた Emacsだと、yasnippetを使えば同様のことができます。Vimでも yasnippetが あるらしいので、それでできないのかなとも思ったんだけど、使い勝手が 違うのかな? .pmならこれ、.plならこれと一択の場合は auto-insertを使う手もあるので、 その場合はこちらに詳しく記されています。 スクリプト用のスニペット #name : Perl script template # -- #!perl use strict; use warnings; $0 モジュール用のスニペット #name : Perl Package Template # -- package ${1:`(yas/perl-package-name)`}; use strict; use warnin

    Emacsで Perlのひな形を挿入する - Shohei Yoshida's Diary
  • expand-region.elの紹介 - Shohei Yoshida's Diary

    magnars/expand-region.el · GitHub expand-region.elの紹介。結構便利と思う人が多いんじゃないかなと 勝手に思っています。 追記 まだ大きく変更されていることがあるものなので、定期的にアップデートした方が よいと思います。 気になる方は githubプロジェクトをwatchしておくとよいでしょう。 設定 githubから cloneしてそこに load-pathを設定しておいてください。 ;; expand region (add-to-list 'load-path "~/.emacs.d/expand-region.el") (require 'expand-region) (global-set-key (kbd "C-@") 'er/expand-region) (global-set-key (kbd "C-M-@") 'er/co

    expand-region.elの紹介 - Shohei Yoshida's Diary
    sugyan
    sugyan 2012/01/18
    これは便利そう!
  • test-more.elを書いています - Shohei Yoshida's Diary

    Emacs Lisp版 Test::Moreを書き始めました。 コードの大部分は @nitro_idiotさんのcl-test-moreをベースにしています。 現状はかなり簡素化しています。 Emacsにはテストフレームワークがいくつか存在しているのですが、 しっくりこなかったので普段 Perlで利用するような感じでできたら いいかなと思って書きました。 リポジトリ syohex/emacs-test-more · GitHub 実装済み関数 ok is isnt diag is-print is-error is-type like skip pass fail 定義はすべて test-more:という prefixがついています。 サンプル まだ書きかけなので全然なのですが、以下のように利用します。 cl-test-more風です。 (require 'test-more) (test

    test-more.elを書いています - Shohei Yoshida's Diary
    sugyan
    sugyan 2012/01/11
    elispがproveでテストできる!!