タグ

2015年6月30日のブックマーク (17件)

  • コンパイラの構造を解説 | Shinta's Site

    はじめに 久しぶりに Aho氏, Sethi氏, Ullman氏の書いた Compilers(レッド・ドラゴン・ブック)という書籍を目にしたので、昔、コンパイラを作った時の事を思い出しながらコンパイラについてまとめてみました。 Translator (翻訳) Translatorとは、一つのプログラミング言語(Source Language: 原始言語)で書かれたプログラムを入力として取り、別の言語(Object Language or Target Language: 目的言語)のプログラムとしてつくり出すプログラムです。 原始言語が FORTRAN, C, Pascal などの高水準言語で、目的言語がアセンブリ言語や機械語といったような低水準言語である時、そのような Translator をコンパイラ(Compiler) と呼びます。また、原始言語がアセンブリ言語で目的言語が機械語であ

  • Swiftから透けて見えるAppleのコンパイラ技術

    連載は、はてなエンジニアが、はてなのサービスを支えている技術や日頃注目している技術について解説するものです。Appleは毎年WWDCでいくつもの新規技術を発表していますが、筆者はその中でもObjective-Cの進化に特に注目していました。新たに追加されるAPIやサービスの前では、Objective-Cの進化はあまり注目されてきませんでしたが、実はここ数年の間も進化し続けていました。これにはAppleがコンパイラ技術にコミットしてきたことが大きく影響しています。今回は、Appleのコンパイラ関連技術を振り返り、Swiftにどう繋がるのかを解説します。 はじめに SwiftAppleによって開発された全く新しいプログラミング言語です。WWDC 2014で稲のように現れたこのプログラミング言語は、またたく間に世界中のモバイルアプリ開発者の注目を集めました。 Swiftは衝撃的な登場だった

    Swiftから透けて見えるAppleのコンパイラ技術
  • 自堕落な技術者の日記 : (小ネタ)HeartBleed影響で証明書の再発行とそれに使うRSA鍵の事前チェック - livedoor Blog(ブログ)

    は喰ってるか飲んでるかですが、よく趣味でカラオケ・PKI・署名・認証・プログラミング・情報セキュリティをやっています。旅好き。テレビ好きで芸能通 OpenSSL HeartBleed問題で証明書の再発行やら説明やらなんやらに追われてたわけですが、再発行に際してちょっと鍵も事前チェックしてみるかなぁ、、、と。 Debianで生成するRSA鍵の乱数が固定の値になってしまい生成される全てのケースの秘密鍵がわかってブラックリスト化されたり[0]、因数分解の片方がわかっていれば秘密鍵は簡単に復元できちゃう問題とかあったり[1][2][3]で、鍵がそのような弱い鍵でないか調べるサイトとして米ミシガン大学のチームのfactorable.netというサイトがあり、PEM形式の証明書を貼れば調べることができます。 でも、これって発行済の(他のサイトの)証明書を調べるツールなわけで、自分の証明書を発行して

    自堕落な技術者の日記 : (小ネタ)HeartBleed影響で証明書の再発行とそれに使うRSA鍵の事前チェック - livedoor Blog(ブログ)
  • Sinatra: README (Japanese)

    http://localhost:4567 を開きます。 ThinがあればSinatraはこれを利用するので、gem install thinすることをお薦めします。 目次 ルーティング(Routes) Sinatraでは、ルーティングはHTTPメソッドとURLマッチングパターンがペアになっています。 ルーティングはブロックに結び付けられています。 get '/' do .. 何か見せる .. end post '/' do .. 何か生成する .. end put '/' do .. 何か更新する .. end patch '/' do .. 何か修正する .. end delete '/' do .. 何か削除する .. end options '/' do .. 何か満たす .. end link '/' do .. 何かリンクを張る .. end unlink '/' do ..

  • Swift 困ったところメモ - Qiita

    気にとめた箇所を随時更新します。 swiftでCoreDataを利用する場合、Entityのクラス名には、ネームスペースとしてProjectNameを付ける(2015/6/21) クラスに比較演算を追加する(2015/6/21) extensino Address Comparable { } func <(lhs:Address, rhs:Address) -> Bool { return lhs.address < rhs.address } func ==(lhs:Address, rhs:Address) -> Bool { return lhs.address == rhs.address }

    Swift 困ったところメモ - Qiita
  • モデル仁香が教える☆あなたをぐっとラクにする正しい姿勢の作り方

    正しい姿勢って、実は疲れると思っていませんか?しかし、来正しい姿勢は、体に一番負担のないラクな姿勢です。もしあなたが正しい姿勢は疲れる、痛い、続かないと思っているなら、それは“当に正しい姿勢”を知らないだけかもしれません。 骨盤の歪みや姿勢を正すのに、背筋をピンと伸ばす方がいらっしゃいますが、それは、もともとS字型になっている背骨に負担がかかる無理のある姿勢です。骨盤の立った正しい姿勢ではありません。当に正しい姿勢は、自然とキープしやすい姿勢で、一度身に着けると、疲れにくくなり、消化もよくなり、印象・気分もポジティブになるなどいいことづくめです。さあ、早速あなたをぐっとラクにする!正しい姿勢について学びませんか? 目次 1. 骨盤が歪み、姿勢が悪くなる2つの原因 2. まずは、骨盤など歪みとクセを認識 ―あなたの悪い姿勢の原因とは?― 3. 「疲れる」をなくす!正しい姿勢の作り方 4

    モデル仁香が教える☆あなたをぐっとラクにする正しい姿勢の作り方
  • Raspberry Piで人を感知したらスマホにプッシュ通知するものを作った - ShoYamane Blog

    2015-06-07 Raspberry Piで人を感知したらスマホにプッシュ通知するものを作った Raspberry Pi IoT 作った Web Raspberry PIにセンサーをつけて動くものを感知したらスマホにプッシュ通知をするものを作りました。防犯対策にも使えそうですね。カメラをつければ近づいてきた人の写真も同時に撮影できそうですがカメラがなかったのでそこまではやってないです。 仕組み 上のPIR Motion Sensorで動くものを感知するとメールをIFTTTのトリガーとなる"trigger@recipe.ifttt.com"に送信。するとIFTTTがスマホにプッシュ通知を送るという仕組みです。 デモ動画 作り方 以下は必要なモノやソースコードになります。必要の無い方は読み飛ばして下さい。 必要なもの Raspberry Pi2 Model B ボード&ケースセット (St

    Raspberry Piで人を感知したらスマホにプッシュ通知するものを作った - ShoYamane Blog
  • 開発用HTTPプロキシを簡単に立てる裏技 - Qiita

    /etc/hosts を書き換えなくても気軽に特定のサーバに通信できるプロキシが欲しいと思ったんですが、意外にちょうど良いのがなかったので自作しました。 <追記> proxy.pac で十分ではという意見をブコメでいただいたんですが、やりたいのは「番系リバースプロキシやロードバランサを通さずに特定のサーバだけに任意のタイミングでアクセスする手段」を、システムファイル書き換えを伴わずに行う方法なので今回のコンセプトとは少しばかり違うのです・・・。 </追記> るびまに Webrick でプロキシサーバの記事がある #!/usr/bin/env ruby require 'webrick' require 'webrick/httpproxy' # プロキシサーバオブジェクトを作る s = WEBrick::HTTPProxyServer.new({}) # SIGINT を捕捉する。 Si

    開発用HTTPプロキシを簡単に立てる裏技 - Qiita
  • BUNDLED WITH で Gemfile.lock が更新されてしまう件 - Qiita

    BUNDLED WITH って何? bundler 1.10.0 以降で作成された Gemfile.lock では、BUNDLED WITH というセクションがあって、使用された bundler のバージョンがトラックされるようになっている [3485] 。 例えば bundler 1.9.0 で作成された Gemfile.lock のあるプロジェクト上で、 最新の bundler 1.10.3 を使用して bundle install --path vendor/bundle すると、 Gemfile.lock には以下の差分ができる。 これをもう一度 1.9.0 で bundle install すると、上の文字はきれいさっぱり消える。 BUNDLED WITH の何が困るか 多人数で開発するときには、この変更は微妙に邪魔で、意図しない Gemfile.lock 変更が出てしまうことで

    BUNDLED WITH で Gemfile.lock が更新されてしまう件 - Qiita
    mas-higa
    mas-higa 2015/06/30
    now$ gem update bundler
  • Apple Musicからテイラー・スウィフトがアルバム引き上げ「アーティストに3カ月支払いなし」に抗議

    Apple Musicは最初の3カ月無料だということはみなさんご存じでしょう。でも、その3カ月間、Appleが作詞作曲家、プロデューサー、アーティストに支払わないことはご存じですか?」──人気アーティストのテイラー・スウィフトは6月21日(現地時間)、自身のブログで、Appleが「Apple Music」の無料お試し期間中、アーティストらに対価を支払わないことに抗議するため、最新アルバム「1989」を引き上げると発表した。 スウィフトは、「Appleはずっと、そしてこれからも、私の音楽販売とファンとのつながりを作ってくれる最高のパートナーの1社であるはずなので、今回の決断について説明する必要があると思います。私は同社を尊敬しています」としつつも、3カ月アーティストに支払わないことについて「ショッキングでがっかりし、これまで革新的で寛容だった同社らしくないことだと感じ」たという。 スウィフ

    Apple Musicからテイラー・スウィフトがアルバム引き上げ「アーティストに3カ月支払いなし」に抗議
    mas-higa
    mas-higa 2015/06/30
    ステマとしか思えない。自身のレーベルと交渉すべき問題。
  • DXRubyで 0から作る「ブロック崩し」 : noanoa 日々の日記

    2015年06月22日23:46 DXRubyで 0から作る「ブロック崩し」 カテゴリプログラミング 「U-18プログラミングくらぶ(Ruby三鷹教室)」(2015.6.21)で行った、DXRubyで「0から作るブロック崩し」の個人的なまとめです。 プログラムは、DXRubyの作者 mirichiさんが松江Ruby会議05 で行ったライブコーディングのブロック崩しプログラム(パブリックドメイン)を一部改変しています。 →・松江Ruby会議05に参加してきた - mirichiの日記(2014-03-17) 空白行を除くと、わずか40行余りで「ブロック崩し」が出来上がってしまいます。 初心者向けのプログラミング教材として、よい題材ではないでしょうか? ⚫︎手順 1.DXRubyの練習  1-1.Windowを出す 1-2.トウフを表示 1-3.丸くする(カーソルキーで移動) 1-4.Spri

    DXRubyで 0から作る「ブロック崩し」 : noanoa 日々の日記
  • 長文日記

    長文日記
    mas-higa
    mas-higa 2015/06/30
    "我慢して待つ" えっ
  • JavaScriptのSwitch文について本気出して調べた話 - blog::wnotes.net

    突然ですが、問題。以下のテストはパスするでしょうか。 lib.js export default function selectCase(tmp) { switch ( tmp ) { case 1: return "This is one"; default: throw new Error("Unexpected value"); } } lib.test.js import assert from "power-assert"; import selectCase from "./lib.js"; describe("selectCase testing"undefined () => { it ("expect This is one"undefined () => { assert(selectCase("1") === "This is one"); }); it ("Thro

    mas-higa
    mas-higa 2015/06/30
    Ruby の case 式同様 === を使うが、意味は lhs.eql? rhs / とか言ってまどわす / assert(lhs === rhs) って表記もギョッとするな
  • ハッハッ、見ろ!第1種電気通信事業がゴミのようだ!! #通信の最適化()

    すまほん!! @sm_hn スマホゲームの不具合、原因はソフトバンクの画像圧縮: iOS / Android向けのソーシャルアプリ「Angel Beats!-Operation… dlvr.it/BBh52P smhn.info 2015-06-13 13:49:33

    ハッハッ、見ろ!第1種電気通信事業がゴミのようだ!! #通信の最適化()
  • スマホゲームの不具合、原因はソフトバンクの画像圧縮 - すまほん!!

    続報:携帯キャリアの行う「通信の最適化」が大炎上。画像が劣化、通信の秘密や同一性保持権等を侵害の可能性も iOS / Android向けのソーシャルアプリ「Angel Beats!-Operation Wars-」の開発アカウントがツイートしたところによると、SoftBank端末でのみ、「コンテンツデータのダウンロードに失敗しました」とのエラーが起きるとの事象が起きていました。 ところが新たなツイートによれば、原因が判明し、修正版が配布されているようです。気になる原因はというと……。 【お知らせ】審査が通るまでに2~3日ほどかかってしまいますが、新しいアプリをインストールすると、問題が起きていた端末でダウンロードができるようになります。 原因はSoftbank回線を使用すると、通信の最適化(圧縮)が強制的に行われ、不具合が起きていたと思われます。 #ABOW — AngelBeats!-O

    スマホゲームの不具合、原因はソフトバンクの画像圧縮 - すまほん!!
    mas-higa
    mas-higa 2015/06/30
    "他社回線をおすすめします"
  • 大阪市のオープンデータを使って、ひったくり事件発生個所を視覚化してみた。

    [2016/6/8 data update] 以前、大阪都構想住民投票結果の地図を作った際に、大阪市のオープンデータの中に犯罪発生個所データがあるのを発見したので、そのなかから「ひったくり発生個所」データを視覚化してみました。 大阪市市民の方へ 大阪市の犯罪発生情報 example データの読み込みと整形処理が結構重いので、ページが表示されるまでに時間がかかります。 画面上位にある「被害者の年齢」や「事件発生時刻」のヒストグラムは、バーをクリックするとデータの絞り込みを行えます。グラフの空白部分をクリックすると、絞り込みを解除します。 地図上のエリアをクリックすると下に事件に関するデータを表示します。 めんどうだったこと 公開されているcsvの町名の一部が旧漢字だったため、e-statから取得した町丁目境データと名寄せするのがめんどくさかったです。 来は新漢字に寄せた方がよいのでしょうが

    大阪市のオープンデータを使って、ひったくり事件発生個所を視覚化してみた。
    mas-higa
    mas-higa 2015/06/30
    夜遅くに繁華街からちょっと外れた所を女性が歩いているとひったくりにあう
  • 英語で「宜しくお願いします」をどう書けば?"ニュアンス語"を簡単に伝える英文メールの書き方 - トイアンナのぐだぐだ

    英文メールを書く場合、翻訳に困る言葉に出くわすことがある。たとえば「宜しくお願いします」「どうぞご査収ください」「お世話になっております」といった文章。これらの言葉はさまざまニュアンスで使われるために英文へ翻訳しづらい。むしろ、日人とやり取りが多い外国人なら"Yoroshiku Onegai Shimasu"とローマ字で送ってくれたりする。 私自身もよく英文メールで苦労しているので、今回はこういった"ニュアンス語"をうまく英文メールで活用する方法を、実際にコピペで使える例文と一緒に書いてみたい。 ステップ1 "ニュアンス語"を「日語訳」する まず、「いつもお世話になっております」や「宜しくお願いします」といった"ニュアンス語"が翻訳しづらい理由は、日人が「複数の意味をこめて使っている」言葉だからだ。 たとえば「宜しくお願いします」は、厳密な日語で書くとこんな意味になりうる。 - 上

    英語で「宜しくお願いします」をどう書けば?"ニュアンス語"を簡単に伝える英文メールの書き方 - トイアンナのぐだぐだ