Skip to content

Instantly share code, notes, and snippets.

View JunichiIto's full-sized avatar

Junichi Ito JunichiIto

View GitHub Profile
@JunichiIto
JunichiIto / gist:2233293
Created March 29, 2012 04:28
Query using EXISTS
-- The alternative query for the List 6.
-- This query can be executed against SQL Server.
-- http://gihyo.jp/dev/serial/01/sql_lifesaving/0005?page=4
SELECT s.sup,
s.city,
s.area
FROM Suppliers s
WHERE s.ship_flg = '可'
AND EXISTS
(SELECT *
# 重み付け抽選クラス(Lottery)の仕様。
#
# new(size)
# インスタンスを作成する。
# [PARAM] size: 最大の当選者数
#
# add(member, weight)
# 応募者を追加する。
# [PARAM] member: 応募者
# [PARAM] weight: 1以上の整数で指定する当選確率の重み。大きいほど当選しやすい。
require 'spec_helper'
describe Spree::Product do
let(:product) {FactoryGirl.create(:product)}
let(:variant) {product.master}
describe '#no_expires' do
let(:expired_products) {Spree::Product.no_expires}
before do

Rubyもくもく会 2013/07/20

先週、僕は東灘区民センターで開催された今月の西脇.rb & 東灘.rbのもくもく会に参加しました。

もくもく会って何?

もくもく会は3月から開催されていて今回で5回目です。僕が参加するのはこれで4回目です。形式はこんな風にシンプルです。参加者がそれぞれこれからやることを発表します(プログラムの開発が多いですが、何かの調査になる場合もあります)。次に2~3時間それをやって、それが終わったらやったことを発表します。発表の際は質疑応答やコードレビューもあります。

大半のプログラミング勉強会は研究会形式であったり、プレゼンテーションを聞く形式であったりすることが多いですが、このやり方はそれらと全く異なっています。もくもく会が重視していることは実際に手を動かして学ぶことと、他の参加者からフィードバックをもらうことです。こういった技術や知識は本を読んでも手に入りません。

@JunichiIto
JunichiIto / gist:7743429
Created December 2, 2013 01:19
Another implementation of signer_keys_and_uids in http://robots.thoughtbot.com/iteration-as-an-anti-pattern/ .
def signer_keys_and_uids
Hash[singers.map{|singer| [singer.key_id, singer.uids]}]
end
@JunichiIto
JunichiIto / gist:7799880
Created December 5, 2013 03:59
An example code for not and reverse_order.
Contractor.where.not(name: nil).order(:created_at).reverse_order.to_sql
# => "SELECT \"contractors\".* FROM \"contractors\" WHERE (\"contractors\".\"name\" IS NOT NULL) ORDER BY \"contractors\".\"created_at\" DESC"
@JunichiIto
JunichiIto / gist:7809860
Created December 5, 2013 17:41
Confirm url with url_for.
$ rails c
pry(main)> app.url_for user_registration_url
"http://localhost:3000/users"
pry(main)> app.url_for new_user_registration_url
"http://localhost:3000/users/sign_up"
pry(main)> app.url_for new_user_registration_url(:user)
"http://localhost:3000/users/sign_up.user"
@JunichiIto
JunichiIto / private.xml
Last active January 3, 2016 04:39
My KeyRemap4MacBook's private.xml for Topre RealForce 87U and RubyMine.
<?xml version="1.0"?>
<root>
<devicevendordef>
<vendorname>TopreCorporation</vendorname>
<vendorid>0x0853</vendorid>
</devicevendordef>
<appdef>
<appname>RubyMine</appname>
<equal>com.jetbrains.rubymine</equal>
WITH events_with_schedule AS (
SELECT
ROW_NUMBER() OVER (PARTITION BY e.id ORDER BY s.due_date) AS rowno
,e.id AS event_id
,e.name
,s.id AS schedule_id
,s.due_date
FROM
schedules s
INNER JOIN events e
(function(){"use strict";var a,b,c,d,e,f,g,h,i,j;a=function(){function a(a){var b,d,e,f;this.title=a.title,this.url=a.url,this.tags=[],f=a.tags;for(d=0,e=f.length;d<e;d++)b=f[d],this.tags.push({name:b.name,url:"http://qiita.com/tags/"+b.name});this.user=new c(a.user)}return a}(),b=function(){function b(){}return b.prototype.itemContainer={},b.prototype.findByUsername=function(b,c){var d=this;if(b in this.itemContainer){c(this.itemContainer[b]);return}return e("https://qiita.com/api/v1/users/"+b+"/items?per_page=10",function(e){var f,g,h;d.itemContainer[b]=[];for(g=0,h=e.length;g<h;g++)f=e[g],d.itemContainer[b].push(new a(f));return c(d.itemContainer[b])})},b}(),c=function(){function a(a){this.name=a.url_name,this.profileImageUrl=a.profile_image_url,this.url="http://qiita.com/users/"+this.name}return a}(),e=function(a,b){var c,d,e=this;c="get",d=new XMLHttpRequest;if("withCredentials"in d)d.open(c,a,!0);else{if(typeof XDomainRequest=="undefined")throw"Failed to initialize CORSRequest";d=new XDomainRequest,d.op