読者です 読者をやめる 読者になる 読者になる

せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

【Ruby】ブロック(変数のスコープを中心に)

■topic summary study about ruby-block. (ruby-ver 2.0.0) ブロックパラメーターにデフォルト値が定義できる このコードは、本質的には引数が二つあることを期待している。 a = 99 3.times do |i, x=a| a = i*10 p x end■実行結果 99 0 10 ブロックローカル…

【JavaScript 】パーフェクトJavaScript 感想文

■topic summary I study JavaScript. 始まるよー。パーフェクトJavaScript (PERFECT SERIES 4)作者: 井上誠一郎,土江拓郎,浜辺将太出版社/メーカー: 技術評論社発売日: 2011/09/23メディア: 大型本購入: 24人 クリック: 588回この商品を含むブログ (12件) を…

【Ruby】【アルゴリズム】文字列の回転。メモリ富豪Ver、メモリ貧乏Ver、再帰Ver、お手玉Ver、回転の回転Ver、

■post summary study about algorithm.the question is "rotation the string". ex) method("abcdef", 3) -> "defabc" 問題 文字列の回転を考えます。 method("abcdef", 3) -> "defabc" メモリ富豪 一行で書けます。 def brock_reverse_no1(str, n) (str[0,n…

【お知らせ】土日のブログはお休みします

■post summary I am off today and tommorow. I will go to this exhibition. (I create this page) http://isee-tomoe.appspot.com/too far! 岡山県の友達の個展にいくよー。 実装の仕組みや、作ったときの顛末はこちら諸事情あって、呑気に遊んでいる期間…

【Ruby】2スレッドの値交換。並列イテレーター内でスレッド生成(居眠りなど)。

2つのスレッドが値を交換 require 'thread' class Exchanger def initialize @first_value = @second_value = nil @lock = Mutex.new @first = Mutex.new @second = ConditionVariable.new end def exchange(value) @lock.synchronize do if @first.try_lock…

【Ruby】Queueを使った並列プログラミング

ポイント(?) スレッド間で変数へのアクセスが共有できるっていうことは以前勉強したところ。 Queueクラスのインスタンスでなくても当然共有出来る。 じゃあQueueクラスは何が特別なのかというと、 Queueには、キューが空ならdeqメソッドが呼び出し元をブ…

【Ruby】map、map! メソッドの自作。破壊的メソッドの作り方

そういえば、非破壊的・破壊的なメソッドの複数実装ってしたことない。 やってみよう。 #DIY means Do It Yourself class Array def map_DIY!(&b) self.each_with_index do |item, i| self[i] = b.call(item) end end def map_DIY(&b) copy = self.dup copy.…

【Ruby】並列イテレーター

プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (124件) を見るもうちょっとだ。。。! 並…

【Ruby】ブロック、クロージャー、イテレーター

なんでブロックを使うのかなー って話を勉強会でした時、ブロックのことがわかってなさそうなのがバレたのか、 メールをもらったよ。 郡司です。 思い出したのでついでに。 昔、自分のブログに Ruby のブロックについてまとめたのでご参考までに。 (ブロッ…

【Ruby】スレッド。全てのスレッド(非main)の終了を待つ、ファイルの並列読み出し

全てのスレッド(非main,current)の終了を待つ def join_all main = Thread.main current = Thread.current all = Thread.list p all all.each{|t| t.join unless t==current || t==main} end Thread.new do sleep(1) Thread.new do sleep(1) p "thred thre…

【Webサイト】【ないわー】自分のサイトで404エラー(よりも もっとひどい事態)

ないわー。。。 自分のサイトでね「記事はこちら」をクリックしたら もう一度スタートアニメが開始される! バグってる!!!見つけたときは思わず声が出た。。ひいいいい 原因 GAEへのアップロード設定(app.yaml)の記載間違い。 件のインタビューページは…

【Ruby】Rubyで実装されているRangeクラス? Ruby1.9で範囲がFloat,Timeのときにinclude?がエラーになる理由

大江戸Ruby会議での村田さんの発表資料のなかに こんなスクショがありました。 来年の四月に4回目が開催されるらしく、 どんな会議なのかなと思って資料を覗いていたという経緯だよ。 資料一覧はこちら なんだろう? なぜRangeがRubyで記述されているのかな…

【Ruby】OptionParser.newでブロックを使う理由

以前パーフェクトRubyの15章では、どうしてOptionParser.newの時にブロックを使ってるのかな。 筆者の趣味かな?って書いていたけれど、 びっくり!今日、OptionParserの作者さんからメールを貰ったよ! OptionParser.newのブロックは、中で起きたOptionPars…

【Ruby】ソケットプログラミング 多重化サーバー

selectメソッドにより、動きのあるクライアントを取得することが出来る。 ■サーバー require 'socket' server = TCPServer.open("localhost",80) sockets = [server] loop do ready = select(sockets) readable = ready[0] readable.each do |socket| if soc…

【Ruby】ソケットプログラミング リクエストを複数回渡すクライアントの実装

ソケットプログラミング第二弾。今回はクライアント・サーバーが複数回やり取りをするコード。 ポイント サーバー側でクライアントを切断すると、 以降はそのクライアントインスタンスのputsメソッドは使用できなくなる。うーん。 ソケットプログラミングは…

【Ruby】ソケットプログラミング

この本を読んでるよー。プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (124件) を見るソ…

【Ruby】printメソッドに引数を渡さなくても出力できる理由。 グローバル変数$_

IO#gets、readline は読み込んだ文字列を変数 $_ にセットする。 printは引数が省略されると$_ を使う。 →p puts は$_ を使わない模様。 p $_ #<=nil $_の値のセットはget(readline)実行後 while DATA.gets do p $_ print #<= 引数なしだと$_を出力 end __EN…

【Ruby】【bat】”デプロイ前の確認バッチ” の作り方

雨やだなー。 おしゃれが出来ないよ! デプロイ前の確認バッチ 自分のサイトはアニメーションが流れるつくりだけれど、 開発時にいちいち見ているのは面倒。でも「anime.js」をコメントアウトすることで、 アニメ終了後からの表示が出来てとても楽チン。だけ…

【Webサイト】サイトの高速化(CSSスプライトの利用)、 TTFB (Time To First Byte)の改善

このサイトでスプライトを作成したよ。 CSS Sprite Generator | Project Fondue ■変更前 ■変更後 .sprite {background: url('../img/anime.png') no-repeat top left;} #anime1{ @include …

【Webサイト】サイトの高速化(WebフォントはadobeではなくてGoogleがお勧め)

びっくり! 結論 WebフォントはadobeではなくてGoogleの方がいいと思う。 経緯 昨日の記事で Adobe Edge フォントはキャッシュ期間がたったの10分しかなく、 仕方ないからCDN利用をやめてローカルにリソースを配置するかー って言ってたんだけど。調べてみた…

【Webサイト】サイトの高速化(CDNの利用、キャッシュ期間の延長)

自分のサイトを早くしてるよー。 ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール作者: Steve Souders,スティーブサウダーズ,武舎広幸,福地太郎,武舎るみ出版社/メーカー: オライリージャパン発売日: 2008/04/11メディア: 大型本購入: 32人 ク…

【GAE】app.yaml  static_filesでの指定は全体に適応される・・・

GAEでPHPを実行しようとすると500エラー。 Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused i…

【Webサイト】サイトの高速化(JavaScript ファイルを末尾に。ローディング画面の追加)

自分のサイトを早くするよー。 ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール作者: Steve Souders,スティーブサウダーズ,武舎広幸,福地太郎,武舎るみ出版社/メーカー: オライリージャパン発売日: 2008/04/11メディア: 大型本購入: 32人 クリ…

【Webサイト】サイトの高速化(計測方法)

自分のサイトを早くするよー。 ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール作者: Steve Souders,スティーブサウダーズ,武舎広幸,福地太郎,武舎るみ出版社/メーカー: オライリージャパン発売日: 2008/04/11メディア: 大型本購入: 32人 クリ…

【jQuery mobile】テーマの設定

仕事でjQueryMobileのテーマCSS機能を使ったので、嵌ったところのメモ。 タイトルのテーマを変更する デフォルトではヘッダ部分はテーマA。 data-theme要素を指定しなかったら自動的に要素(data-theme="a")が追加される。ちなみに、data-position="inline"…

【Ruby】正規表現、階乗(Hashの遅延評価を利用)、集合(Setクラス)

正規表現 #後方参照は\1 "h\"hh'aa'g\"e" =~ /(['"])[^\1]*\1/ p $~ #名前つきグループ "hpijiph" =~ /(?<first>\w)(?<second>\w).*\k<second>\k<first>/ p $~ "RUBY" =~ /ruby/i p $~ #部分的な大文字小文字の無視 "RUBY" =~ /R(?i:uby)/ p $~.end(0) #マッチ終端 /(foo)(bar)(BAZ)?/ =~ "</first></second></second></first>…

【Ruby】標準入力、ファイル入力出力、をテンプレで整理

標準入力、ファイル入力出力、いつもなんだっけって思うから、整理しました。 foo = File.open("foo.txt",'a+') do |file| while line = file.gets line += "dayo" end end __END__ File::basename('/hoge/piyo') #<= piyo File::dirname('/hoge/piyo') #<= …

【読書メモ】USERS 顧客主義の終焉と企業の命運を左右する7つの戦略

最近会社でSOE(Systems of Engagement)を考える機会があったので読んでみました。 USERS 顧客主義の終焉と企業の命運を左右する7つの戦略 USERS 顧客主義の終焉と企業の命運を左右する7つの戦略作者: アーロン・シャピロ,萩原雅之,梶原健司,伊藤富雄出版社/…

【Ruby】メタクラス。クラスメソッド定義の意味。

hoge

【Ruby】モジュール関数の作成方法(module_functionの使い方)

プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (124件) を見る 内容が濃すぎてぜんぜん進…

【Ruby】作成インスタンス数の制限、マーシャリングの独自実装

作成インスタンス数の制限 ポイント ファクトリメソッドのprivate化 コピーメソッドのprivate化 →コピーすら禁止 const_setによる定数作成 class Season NAMES = %w{Spring Summer Autmn Winter} INSTANCES = [] def initialize(n) @n = n end NAMES.each_wi…

【Ruby】スーパークラスのインスタンス変数、クラスインスタンス変数

この本を読んでいます。 プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (124件) を見る …

【jquery】jQuery's jquery-.min.map が見つからない(404エラー)

自分のサイトをデバックしながら見ていたら、こんなエラーが。 ここのサイトをみていると、 このmapファイルはjqueryをデバックしたいときに 変数や関数名をマッピングしてくれるファイルのよう。特に必要ないので行ごと削除。 --- a/com/js/jquery-2.0.3.mi…

【Ruby】【アルゴリズム】番兵法(壁がある場合のプロット)。都度出力

最強最速アルゴリズマー養成講座の問題を解いてるよアルゴリズムだんだん面白くなってきた。 実現したいことがコーディングできるようになると、ハードルが下がってくる。 問題(一部変更) 縦の長さがheight、横の長さがwidthのマス目で構成された盤面があ…

【Ruby】【アルゴリズム】場合の数(「何通りか」問題)。メモ化がすごい!

さっきは全列挙したけれど 何通りか、を考えてみよう。 問題再掲 数が二つ与えられて、片方の数字を、 もう片方の数字以下の数字の組み合わせで表現する 何通りの方法が存在するか (例) 10 と 1 ⇒[1,1,.....,1] で1通り 4 と 3 ⇒[3,1][2,2][2,1,1][1,…

【アルゴリズム】【Ruby】深さ優先検索、ハッシュを使ったメモリ節約、参照渡し・値渡し(インスタンスを利用したカウンタ)

初めて「探索」の考え方に触れたときの問題を改めて考えてみる。 一ヶ月前かー。 問題再掲 数が二つ与えられて、片方の数字を、 もう片方の数字以下の数字の組み合わせで表現する (例) 10 と 1 ⇒[1,1,.....,1] 4 と 3 ⇒[3,1][2,2][2,1,1][1,1,1,1] 4…

【GitHub】getJSON、GitHubAPI、を高速化して使う

自分のサイトはhistoryメニューで サイトリソース全体のコミット履歴を参照できるようになっています。面白いかなーと思って。で、問題がひとつ。 表示がすごくおそい。 ということで、表示を高速化するために修正する。 GitHubAPIにて、取得件数を5件で固定…

【Ruby】【アルゴリズム】ナップザック問題、解説がおかしい・・・?(わけではなかった)

昨日解いたコードは、 解説されているアルゴリズムに沿っていないので、ふたたび考え直し。 解説のアルゴリズムはこう。 アイテムを順々に見ていくのだけど、アイテムの重さ時点にアイテムを入れた場合、 その重さ×n(>=2)のサイズの箇所は更新していない具体…

【Ruby】【アルゴリズム】ナップザック問題。綺麗なコード。

師匠からメールが来たよ。 動的計画法もおさえておいたほうがいいですねだって。前にも解いたことあるけどね。まあ、考えたうちに入らないっていうことかな。 改めて書くとコードがぜんぜん変ってびっくり。 問題 幾つかの品物があり、この品物にはそれぞれ…

【Ruby】【アルゴリズム】メモ化再帰。メモのサイズに気をつける

最強最速アルゴリズマー養成講座 最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった (1/5) - ITmedia エンタープライズ この連載、難しいよ。。ごめんね。 問題 A[i]に関して、 i i>0のとき、A[i] =…

【Ruby】【アルゴリズム】連続して並ばない組み合わせの数

男子が18人、女子が22人いるクラスがある。これをランダムな順番で並ばせた時、女子・男子ともに5人以上が連続して並ばない確率を求めなさい http://www.itmedia.co.jp/enterprise/articles/1005/15/news002_2.html うーん。。18,22だとメモリが飛んでしまう…

【Ruby】【アルゴリズム】改めてソート。コードの変り様!

一ヶ月と一週間前、10個のクイックソートに38秒かかってた と過去を暴露していたけど果たしていまはどれくらい綺麗にかけるようになってるのか。 また書いて、試してみた。 バブルソート ■今のコード p data = (0..9).to_a.sample(10) def bubble_sort(data)…

【Ruby】【アルゴリズム】SIerでアルゴリズムを勉強する意味。。FizzBuzz

ふとね、 「SIer アルゴリズム」でググってみた。このブログの記事が出てきてリアルでお茶吹きかけたけど、 なんだろうね。。 ぶっちゃけ必要ないよね。 FizzBuzzぐらい知っとけ。せめて名前ぐらいは。 3割できないのは酷すぎる。そいつらは仕事変えさせろ。…

【Ruby】【アルゴリズム】ダイクストラ法。迷路をとく。

この記事に迷路の問題が載っていたよ 問題 壁とスペースで構成された迷路が与えられたとき、 スタート地点からゴール地点に至る最短経路を求めよ データ構造をどう作ればいいかな。ちなみに。。 ぶっちゃけ、3時間かけてこれ(回答不達)ということはコード…

【Ruby】【アルゴリズム】ガーベジコレクション。多重配列を使わないグラフ構造。キューを使用したVer。

昨日は多重配列を用いずにグラフ構造を表現する方法を学んだので、 この知識を使って、以前実装したガーベッジコレクションのコードをより良くする。 より良く!以前の奮闘振りはこちら↓ http://sekai.hateblo.jp/entry/2013/09/27/223134 問題 状態、'0'お…

【Ruby】Enumeratorクラス その3。外部イテレータ、Fiber、yield

hp12cさんのブログの内容がすぐに理解できなかったので、手元で確認したよ。 http://melborne.github.io/2013/10/08/answer-to-is-this-a-bug-of-ruby-or-me/外部イテレーターもFiberも理解したはずなのにぜんぜん分からない・・・! ショック! ちゃんと見直し…

【Ruby】Procのカリー化、lambraの呼び出し方、クロージャー(共有変数)

この本を読んでいます。 プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (124件) を見る …

【Ruby】【アルゴリズム】ダイクストラ法(最短経路)。綺麗なコードVer

3週間前に書いたコードがあまりに汚くて絶望している。。。hp12さんのコードをお手本に、もう一度ダイクストラ法を再実装しました。 http://melborne.github.io/2010/01/21/Ruby/hp12さんすごい。 学んだこと Enumerable#find メソッド!こういうメソッドを…

【Ruby】rescueの優先順位、並列実行、メソッドのブロック、aliasキーワードを使った既存メソッドの拡張

この本を読んでいます。 プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (124件) を見る …

【プログラミング】リファクタリング。(状態の管理の統一。情報の隠蔽化。インスタンス変数の使いどころ)

これでリファクタリング完了!って師匠にメールしたら、返事が来たよ。 変数名の選択はよくなったと思いますよ。 でも、まだ十分じゃないと思います。 まず状態の管理が文字列やったり数値やったりで よくわからないです @history.length % 2 == 0 ってなっ…