Skip to content

Instantly share code, notes, and snippets.

@mitsuru793
mitsuru793 / .env_sample
Last active March 31, 2020 11:40
pixivで自分の作品情報を一括取得して、yamlで保存
# XXXXXXの部分を書き換えて以下のコマンドを実行して下さい。
# source .env
export PIXIV_LOGIN_ID=XXXXXXXX
export PIXIV_LOGIN_PASS=XXXXXXX
@mitsuru793
mitsuru793 / grandchild_total.rb
Last active February 16, 2016 09:02
Railsで孫レコードの数を取得する
# 分かりやすく
blog = Blog.first
article_counts = blog.categories.map { |category| category.articles.count }
article_total = article_counts_counts.sum
# joinsを使う
article_total = Blog.joins(categories: :articles).where(id: 1).count
# 別パターン
blog = Blog.first
article_total = blog.categories.joins(:articles).count
@mitsuru793
mitsuru793 / rails_access_date_list.sh
Created February 4, 2016 09:37
railsのログファイルからアクセスのあった日付を列挙
cat log/production.log \
| cut -d ' ' -f2 | awk '{print substr($0, 2, 10)}' \
| grep -v '^\s*$' \
| grep -E '[0-9]{4}-[0-9]{2}-[0-9]{2}' \
| uniq
# =>
# 2016-01-09
# 2016-01-08
# 2016-01-09
@mitsuru793
mitsuru793 / 01_variable_about_slide.js
Last active December 6, 2015 08:55
impress.jsのスライドを管理する配列
/*
下記のindex.htmlのようにスライドを設定した時の変数の中身です。
impress.jsでは、各スライドの要素は、stepsとstepsDataという配列で管理されています。
stepsは、stepクラスを持つDOM要素の配列です。
stepsから、stepsDataを作ります。
*/
// steps 各スライドのDOM要素を管理
[div#step-1.step.slide.future.active, div#step-2.step.slide.future, div#step-3.step.slide.future]
@mitsuru793
mitsuru793 / impress_init_01.js
Last active December 6, 2015 03:39
impress.jsのinit部分をコードリーディングする
// 全体図が分かるように、initに関係するものだけ抜き取りました。
(function ( document, window ) {
'use strict';
// data of all presentation steps
var stepsData = {};
// rootには<div id="impress">のDOMツリーが入っています。
var roots = {};
var defaults = {
@mitsuru793
mitsuru793 / underscorejs_wrap.js
Created December 2, 2015 11:58
Underscore.jsのラップとは、何が便利なのかをコードリーディングで確かめる。
// console.logのエイリアス
var l = function(x) { console.log(x) };
// ラップすることによって、自作のオブジェクトからUndersocre.jsのメソッドを使えるようになります。
numbers_array = [5, 2, 1, 5];
_numbers = _([5, 2, 1, 5]);
// ラップしていないオブジェクトを、引数で渡します。
l(_.sortBy(numbers_array)); // [1, 2, 5, 5]
@mitsuru793
mitsuru793 / compare_prototype_of_class_and_instance.js
Created December 2, 2015 11:10
JavaScriptのクラスとインスタンスのprototypeは同じなのか?
// console.logのエイリアス
var l = function(x) { console.log(x); };
prototypeOfConstructor = null
function People(name) {
this.name = name;
prototypeOfConstructor = this.prototype;
}
@mitsuru793
mitsuru793 / underscore_mixin_codereading.js
Last active December 2, 2015 10:29
Underscore.jsの_.mixinメソッドをコードリーディングします。
// mixinの挙動をコメントで記したものです。
var people = [{name: 'mike', age: 18}, {name: 'jane', age: 21}, {name: 'lake', age: 32}];
var sortedPeople = _.chain(people)
.sortBy(function(poeple){ return people.age; })
.first()
.value();
// 下記は、上記のコードを実行した場合のコメントです。
// sortByのところでステップインした時のものです。
@mitsuru793
mitsuru793 / return_value_of_new.js
Created December 2, 2015 04:45
JavaScriptで、newを使った時の戻り値
// console.logのエイリアス
var l = function(x) { console.log(x) };
function Person(name) {
this.name = name;
}
function PersonWithReturnOther(name) {
this.name = name;
return {age: 13};
@mitsuru793
mitsuru793 / whether_return.js
Last active December 2, 2015 04:35
JavaScriptでreturn文がないとどうなるのか?
// console.logのエイリアス
var l = function(x) { console.log(x) };
function getWithReturn() {
return "Return";
}
function getWithNotRetun() {
"NotRetun"
}