Skip to content

Instantly share code, notes, and snippets.

@Altech
Altech / emacs-with-ghci.el
Created April 22, 2013 11:34
commands for interactive programming with GHCi in emacs.
(defun altech-define-haskell-hook ()
(defun code-to-list (str)
(split-string
(replace-regexp-in-string "^\n+" ""
(replace-regexp-in-string "\n+$" "" str)) "\n"))
(defun send-line-to-ghci (line)
(insert line)
(eshell-send-input)
@Altech
Altech / call_create_link.el
Last active December 16, 2015 00:09
use create_link.rb from Emacs.
@Altech
Altech / create_link.rb
Created April 9, 2013 13:11
a substitution of Chrome Extension `create link`.
@Altech
Altech / access.sql
Created April 7, 2013 06:30
valid HiveQLs on TreasureData.
-- Schema: (
-- path:string
-- method:string
-- ip:string
-- agent:string
-- referer:string
-- )
-- count access per day
SELECT to_date(from_unixtime(time)) AS day, COUNT(*) AS cnt FROM access GROUP BY to_date(from_unixtime(time)) ORDER BY day ASC
@Altech
Altech / note_generator.rb
Last active December 15, 2015 11:09
This class converts text notes to good-looking html in a particulr directory. It is possible to add format of source file.
require 'pathname'
require 'fileutils'
require 'tempfile'
require 'tmpdir'
require 'nokogiri'
require 'fssm'
require 'pry'
require 'colorize'
class Pathname
@Altech
Altech / programming_haskell.hs
Last active December 14, 2015 21:19
exercises of `programming haskell`
-- 1.7.3
product' [] = 1
product' (x:xs) = x * product xs
-- 1.7.4
qsort [] = []
qsort (p:xs) = qsort smaller ++ [p] ++ qsort larger
where
smaller = [x | x <- xs, x < p]
larger = [x | x <- xs, x >= p]
@Altech
Altech / mmqueries.rb
Last active December 14, 2015 06:58
many-many-queries-API.rb
# queries.rb
queries = MMQueries.new do |config|
# Scope: Receiver is <MMQueries> here.
# add simple query and store the result
add :top_n_keyword_of_day do |date|
# Scope: Receiver is <MMQueries::Query> here.
td.query('SELECT * FROM search WHERE ...'){|result|
mongo.collection('search.keyword').insert(result.merge(date: date.to_time))
} # This block is a callback called at completion of the job
@Altech
Altech / query_set_v2.rb
Last active December 12, 2015 05:28
experimental API of gem to create many queries for TreasureData.
## Add Queries
queries = MMQueries.new do # the receiver is MMQueries.
# add query
# case0-0: one
add :count_users_inflow_source do |from, to|
%w[customers creators].each do |users|
td.query "SELECT * FROM #{users} WHERE #{specific_time(from,to)}", to: 'td://@/db/result'
end
@Altech
Altech / query_set.rb
Last active December 11, 2015 22:49
experimental API of many td queries.
# case1-1: one-to-one
QuerySet.add :count_users_inflow_source, ->(from, to) do
%w[customers creators].each do |users|
td.query('db',"SELECT * FROM #{users} WHERE #{specific_time(from,to)}"){|result| # queries are processed concurrently.
mongo.collection('collectionA').insert(cnt: result[0], type: uesrs)
}
end
end # return when all jobs finished.
# case1-2: many-to-one
@Altech
Altech / close.el
Last active October 13, 2015 04:57
The way to `cache` the application Cocoa Emacs.
(global-set-key (kbd "C-x C-c") 'close-on-mac)
(require 'cl)
(defun close-buffers-without-default ()
(interactive)
(loop for buffer being the buffers
do ((lambda (buffer)
(if (and (not (string= (buffer-name buffer) "*GNU Emacs*"))
(not (string= (buffer-name buffer) "*scratch*"))
(not (string= (buffer-name buffer) "*Messages*")))