fnwiya's quine

自分自身を出力するブログ

100.Tech

pythonでのファイル入力はwithを使おう

pythonでファイルを開くときはopenしてcloseするのが伝統的なやり方ですが、 うっかりcloseするのを忘れると困るのでwithを使うやり方がおすすめです。 #!/usr/bin/python # -*- coding: utf-8 -*- import sys f = open(sys.argv[1]) line = f.readline() f.…

emacsでコードを折りたたむ(hs-minor-mode)

階層が深くなってよみずらい、、、。 そんな時はコードを折りたたんで表示するようにすると良いと思います。 (add-hook 'c++-mode-hook '(lambda () (hs-minor-mode 1))) (add-hook 'c-mode-hook '(lambda () (hs-minor-mode 1))) (add-hook 'scheme-mode-ho…

ubuntuで起動時に自動でアプリケーションを起動させる

こちらが非常に丁寧です。 ameblo.jp Dashメニューから「自動」と打ち込む 「自動起動するアプリケーション」を洗濯 起動時に起動したいアプリ/コマンドを追加する

emacsで意図しない画面分割を防ぐ(save-window-excursion)

save-window-excursionを使うとemacsが意図せず 画面分割されてしまうことを防げます。 例えば起動時にバックグラウンドでコマンドを走らせたい場合など。 こうした用途ではpop-winもありますが、 pop-winでは結局popを閉じる一手間がいるので特に確認の必要…

multi-termで日本語/全角文字を入力する

multi-termはそのままでは日本語打っても読み込んでくれませんが 以下の設定を書けば大丈夫です。 (setenv "LANG" "ja_JP.UTF-8") (set-language-environment "Japanese")

auto-package-updateでemacsのパッケージのアップデートを自動化する

パッケージのインストールは package.elでパッケージを一括管理&いらないパッケージ削除 - fnwiyaBlog 等で自動化している方が多いかと思いますがアップデートはどうでしょう? M-x list-package->U->xでアップデートできるのですが、 少々手間です。 その…

pythonのdivmod()の使い方

2. Built-in Functions — Python 2.7.11 documentation divmod(x, y)でxをyで割った商とあまりをタプルで返します。 a, b = divmod(10, 3) #a=3, b=1

レーダーチャートが簡単に作れる(chart.js)

色々できるのですが僕はレーダーチャートに使っています。 github.com 使い方 html部 <div class="chart"> <canvas id="myChart" width="300px" height="300px"> </canvas> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript" src="vendor/Chart.js/Chart.min.js">

webサイト内でkonamiコマンドを打ち込むと特定の動作をさせる(cheat.js)

webサイト内で特定のコマンド打つとJavaScriptが実行できます。 web上でエディターを作る時などに便利かもしれません。 github.com 使い方 <script type="text/javascript" src="js/cheat.js"></script> <script> cheat.add("konami", function() { alert("Hello from konami"); }); </script> 「下下上上左右左右エンター」 ↓ 「Hello fr…

画面サイズによってJavaScriptの動作を変える

画面サイズさえ取得できれば処理を変えるのは条件分岐で簡単です var _width = $(window).width(); if (_width <= 1023) { doSomething; } else { doSomething; }

ダイクストラ法

ダイクストラ法はスタート地点から各ポイントまでの最短経路を求めるアルゴリズムです。 概略 動的計画法(手近で明らかなことから順次確定していき,その確定した情報をもとにさらに遠くまで確定していく方法)の一種 負のコストがかかる経路は扱えない スタ…

pythonで競プロ標準入力

数値を一つ n = int(input()) 数値を一列で2つ j, k = map(int, input().split()) 一列目に与えられる数値の個数 2列目以降に数値 n = int(input()) l = [] for i in range(n): l.append(int(input()))

今学びたい技術まとめ

完全に自分用メモです。 clojure haskell go nginx DB設計 競技プログラミング セキュリティ elasticsearch react clojureが自分の求めているものにあっているようなのでメインの言語として使っていけるようにゴリゴリやっていきたいです。 その他は興味レベ…

スクロールすると出てくる「トップに戻る」

トップからスクロールするとひょこっとでてくる「トップに戻る」の実装法です。 html部 <p id="rippy"><a href="#"><img src="img/rippy.png"></a></p> css部 #rippy { position: fixed; bottom: -30px; right: 5px; z-index: 99; } #rippy img { width: 180px; float: right; } #rippy a { padding: 30px 0; display: bl…

Apacheのバーチャルホストの設定

バーチャルホストとは一つの IP アドレスでいくつかの名前ベースのウェブサイトを実行することです。 やりかたは本家が詳しいですが バーチャルホストの例 - Apache HTTP サーバ バージョン 2.2 一番単純なのは # Ensure that Apache listens on port 80 Lis…

エンジニアに超おすすめの漫画「大様達のヴァイキング」

久々に刺さりました。 エンジニアの方は絶対ハマると思います。 以下wikiより 『王様達のヴァイキング』(おうさまたちのヴァイキング)は、さだやす(ストーリー協力:深見真)による日本の漫画。『ビッグコミックスピリッツ』(小学館)2013年14号より連載…

自分がベンチマークとして参考にしているサイト

エンジニアとして学ぶことはつきませんが目標なしに走り続けるのはしんどいので いくつか指標を設けています。 その際に参考にさせていただいたサイトを紹介します。 What every computer science major should know How To Become A Hacker: Japanese JavaS…

レスポンシブなスライダーを簡単に実装する(slick)

日々お世話になってます。 kenwheeler.github.io 日本語解説はここが詳しい。 【jQuery】高機能で実装も簡単なスライダー-slick.jsの使い方-再生・停止ボタンも付けてみました | Snaplog [JS]レスポンシブにも対応した使いやすいカルーセルを探す時はこのス…

emacsのautoinsertで楽する

いつも書く決まったテンプレート。 そんなものを書くことは人間のすべきことじゃありません。 以下を設定して (require 'autoinsert) (setq auto-insert-query nil) (setq auto-insert-directory "~/.emacs.d/insert-tmp/") (setq auto-insert-alist (append…

emacsで2画面同時にスクロールしたい(scroll-all-mode)

2つのファイルの差分をみたい時に画面分割した上で2画面同時にスクロールできると便利です。 そんなときはM-x scroll-all-modeでscroll-all-modeを起動してC-nなりで移動すれば隣の画面も一緒についてきてくれます。 解除も同じくM-x scroll-all-modeです。

レスポンシブ対応なハニカム上のパネルを並べられるライブラリhoneycombs.js

ハニカム上にdivを並べられてマウスオーバーでオモテウラを切り替えられるライブラリです。 github.com 使い方(READMEより) <script src="honeycombs/js/jquery.honeycombs.js"></script> <link rel="stylesheet" type="text/css" href="honeycombs/css/honeycombs.css" /> <div class="honeycombs"> <div class="comb"> <div class="front-content"> <p>I am a front titl…</p></div></div></div></link>

emacsの設定を複数台で共有するときにバイトコンパイルで気をつけること。

複数台でemacsの環境を共有するときはgit等で設定ファイルを持って行くと思いますが、 *.elcごとgitに挙げない場合はpullした場合でもemacs起動時以前のelcが読み込まれるので新しい設定が反映されません。 これの解決策は色々悩んだのですが起動時にバイト…

emacsの起動を早くしたかったらとりあえずやっとくこと

GCの設定 (setq gc-cons-threshold (* 128 1024 1024)) バイトコンパイル M-x byte-compile-file ->"~/.emacs.d/init.el" 遅延ロード use-packageを使うならここが詳しいです。 Emacs - use-packageで可読性の高いinit.elを書く - Qiita 使ってない設定を消…

sudoのときでもaliasを有効に

sudoのあとにいつものaliasが使えなくてめんどうだったのですが簡単に解決できました。 alias sudo='sudo ' 解説はこちら なんで末尾にスペース入れるだけで sudo で alias を有効にできるわけ? « blog.hekt.org

最高に便利な関数たちがのっている.emacs.d

感動した。 github.com 個人的にfile-defuns.elのrename-current-buffer-fileとかdelete-current-buffer-fileはずっと欲しいなと思いつつ作るのめんどうがっていたのでありがたい。勉強させてもらいますm( )m

find-fileでディレクトリが無ければ作る関数

新しくディレクトリを作りつつ新規ファイルを開きたい時に、 M-x make-directory ↓ find-file は面倒なので。 (ターミナルでmkdirはもっと面倒) ;;; find-fileでディレクトリが無ければ作る (defun make-directory-unless-directory-exists() (let ( (d (fil…

タイプライター風のアニメーションを加えるt.js

自分のgithub.ioでも使っているt.jsを紹介します。 github.com 使い方 <div id="target"> sometext<br> <del>これはけされる</del>消されたところにこれが書かれる<br> 2秒待機<ins>2</ins>待った?<br> ...<ins>これは塊で一気に表示される</ins> </div> $(function(){ $('#target').t({ speed:30, speed_vary:true, delay:1, mis…

gitのサブモジュールでgit管理下にあるディレクトリ下にさらに別の.gitで管理するディレクトリをつくる

自分の.emacs.dに自作elisp(githubで公開)を配置するときにお世話になっています。 親ディレクトリの中で子ディレクトリを追加する。 git submodule add https://github.com/XXX/XXXXXX.git XXXXXX ↓ .gitmodulesが作成され自動で追加される。 [submodule …

emacsを立ち上げたら自動で.emacs.dをpullしてきて、emacsを閉じるときに自動でpushする。

複数台でemacsの設定を共有しているときに便利です。 以下の設定をinit.elの最初(すくなくともinit-loaderによる読み込みより前)に記述してください。 ※ファイル分割を行っていることが前提です。 (shell-command "git -C $HOME/.emacs.d pull") (add-hook…

javascriptの即時関数はなぜあの書き方で即時関数になるのか

今日とてもわかりやすく説明してもらったので。 // 即時関数の基本の形 (function myFunc(){ doSomething; })() なぜこうなるのか。 ただの関数宣言 // 関数宣言 function myFunc(){ doSomething; } javascriptでは最初にfunctionがくると関数宣言だとみなさ…