タグ

dankogaiのブックマーク (6,699)

  • Swift - プロトコルが型になるとき - Qiita

    @koher さんの記事、なぜSwiftのプロトコルはジェネリクスをサポートしないのかにおける議論は改めて記事にするだけの価値があるのでそうすることにします。 君の型は? まずは以下のコードをご覧ください。 import Foundation protocol Animal { var binomen:String { get } init() } struct Cat: Animal { let binomen = "Felis silvestris catus" let theYoung = "kitten" } struct Dog: Animal { let binomen = "Canis lupus familiaris" let theYoung = "puppy" } var pet:Animal = (arc4random() & 1 == 1) ? Cat() : Do

    Swift - プロトコルが型になるとき - Qiita
  • SION update - now available in Rust - Qiita

    というわけでSIONですが、ぶち上げて1週間も経たないうちに言語実装が4つになりました🎉。 前回から増えたのはRust。pandaman64さんありがとうございます🙇‍♂️。 https://github.com/pandaman64/sion-rs ソースコード、綺麗ですねえ。目的ごとにファイル分割しているので読みやすいし。swift-sionもそうしたかったところなのですが、Swift Playgroundsのことを考慮すると単一ファイルに納めておきたいんですよね… そのswift-sionにもついにMessagePackとの相互変換機能が搭載されました。おかげで行数が1000行を超えましたが、1024行は超えてないので許してください。 Swift Package Managerがあるのだし、機能追加するためのモジュールを別途書くことも考えたのですが、MessagePackとの相互

    SION update - now available in Rust - Qiita
  • SION - is now Interchangeable - Qiita

    SIONは Swift Interchangeable Object Notation から取ったと紹介記事で書きましたが、実装が単一言語ではinterchangeableとはとても言えません。というわけでJSの実装を書いたのですが、なんとGoの実装をそれより先にmattnが文字通り一晩で書いてくれちゃいましたよ。 というわけで誕生二日目で早くもinterchangeableになったSIONですが、 フォーマットの公式ページを実装ページから分離しました。 https://dankogai.github.io/SION/ URLダサいので何かとりますかね… 前述通り、GoとECMAScriptの実装が加わりました。 https://github.com/mattn/go-sion https://github.com/dankogai/js-sion どちらもドキュ貧なのですが、ここでは私が

    SION - is now Interchangeable - Qiita
  • SION, a data serialization format a little more expressive than JSON - Qiita

    SIONというシリアライゼーションフォーマットを提案します。Swiftによるレファランス実装はこちら。 https://github.com/dankogai/swift-sion SIONという名前は Swift Interchangeable Object Notation からとりました。名前の通りSwiftのリテラルが元になっています。以下はSIONで表現されたデータの一例です。 [ "array" : [ nil, true, 1, // Int in decimal 1.0, // Double in decimal "one", [1], ["one" : 1.0] ], "bool" : true, "data" : .Data("R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"), "date" : .Da

    SION, a data serialization format a little more expressive than JSON - Qiita
  • If you can't beat them, join them. : 404 Blog Not Found

    2017年07月20日09:00 カテゴリVALU If you can't beat them, join them. 君子は豹変す ⇔ 豹変しなけりゃ君子じゃない。 このたび私、小飼弾は、VALUに上場したと同時に株式会社VALUのリードエンジニアに就任したことをお知らせします。 業務連絡 とは言いましても、今まで携わってきた諸々の業務を全て投げ打って同社のために24時間戦う、というわけではございません。副業は禁止どころか推奨されているぐらいですし、不定期更新のblogも、ほぼ毎日更新のTwitterも(@dankogai)も、月二回のニコ生( 404ch not found)もこれまで通り続きますし、Software Designや週刊新潮などの雑誌連載も続けていく所存です。すでにおつきあいのある各位におかれましては、改めて今後ともよろしくお願い申し上げる次第です。 とはいえ以後は

    If you can't beat them, join them. : 404 Blog Not Found
  • APFSで再燃したNFD問題 - Qiita

    iOS 10.3 でAPFSが番投入されました。それでiPhoneiPadが文鎮化するなどの深刻な問題はみられなかったものの、やはり無問題とはいかなかったようで。 iOS10.3で不具合の出るアプリは、APFS関連の影響かも(Unicode Normalizationの振る舞いが変わったらしい)。GoodReaderとDropboxの同期でエラーが出るようになったのだが、ファイル名に濁点を含むファイルを除いたら同期できるように。 — 山路達也 (@Tats_y) March 29, 2017 原因を調べてみました。 #!/usr/bin/env perl use strict; use warnings; use feature ':all'; use Encode; use Unicode::Normalize; use utf8; binmode STDOUT, ':utf8';

    APFSで再燃したNFD問題 - Qiita
  • evalpark - Swift入園しました : 404 Blog Not Found

    2017年03月19日16:30 カテゴリevalparkOpen Source evalpark - Swift入園しました というわけでおしらせです。 evalparkにSwiftが入園しました。 #!/usr/local/bin/swift extension Int { var fizzbuzz:String { switch(self % 3, self % 5) { case (0, 0): return "FizzBuzz" case (0, _): return "Fizz" case (_, 0): return "Buzz" default: return String(self) } } } _=(1...30).map{ print($0.fizzbuzz) } Unfortunately lang/#swift of @freebsd ports is curre

    evalpark - Swift入園しました : 404 Blog Not Found
  • Welcome to evalpark!

    #!/bin/sh -v freebsd-version uptime ps aux id env which awk which node which perl which python3 which ruby # fizzbuzz for i in `seq 1 30` do if [ `expr $i % 3` -eq 0 ] && [ `expr $i % 5` -eq 0 ]; then echo "fizzbuzz" elif [ `expr $i % 3` -eq 0 ]; then echo "fizz" elif [ `expr $i % 5` -eq 0 ]; then echo "buzz" else echo $i fi done evalpark is an AJAX service which runs a given shell script. The res

    dankogai
    dankogai 2017/03/17
    livedoor blog スマフォ版だと必要なタグもstripされてしまうようなのでevalparkへの直接リンクも。スマフォやタブレットでも動きます
  • ようこそevalparkへ : 404 Blog Not Found

    2017年03月17日10:30 カテゴリevalparkOpen Source ようこそevalparkへ え?もう番ですか…? Welcome to Evalpark! Welcome to ようこそ evalpark ! パークレンジャーの弾です。ここ404 Blog Not Foundではご無沙汰しております。 年度末のドッタンバッタン大騒ぎも落ち着いてきたので、 evalpark を開園します。 #!/bin/sh -v freebsd-version uptime ps aux id env which awk which node which perl which python3 which ruby # fizzbuzz for i in `seq 1 30` do if [ `expr $i % 3` -eq 0 ] && [ `expr $i % 5` -eq 0 ]

    ようこそevalparkへ : 404 Blog Not Found
  • zfs - MacBook Air (13-inch, Late 2010) をオクタブート化 - Qiita

    勇者がいないなら、自分が勇者になればいいのに。 前回記事 勇者はぜひ上記に macOS と illumos も加えたクアッドブートディスクをこさえてみてください。 というわけでやりました。 illumos は後述の理由でないけどクワッドどころかオクタブートです。それもベアメタルで。 MacBook Air (13-inch, Late 2010)。6年以上前のノートブックの未来、かつて私のメインノートで、その後長女のメインノート。だから裏蓋はこんな。 その長女のメインノートも、私と同じ MacBook Pro (Retina, 13-inch, Mid 2014) に変わって以来、しばらくお蔵入りしていたのを引っ張り出して来ました。 USB3はおろか、Thunderboltもない、CPUパワーは今日日のiPhoneに負けてしまうロートルですが、 Sierra も Windows 10 も動

    zfs - MacBook Air (13-inch, Late 2010) をオクタブート化 - Qiita
    dankogai
    dankogai 2017/02/25
    そういう風に書いたつもりだけど分かりにくかったので表現修正しました>id:agricola
  • zfs - 単一パーティションでマルチブート - Qiita

    なんぞこれ? 事実上パーティションが一つしかないのに、UbuntuだけではなくFreeBSDもブートできます。Debian kFreeBSDとかではなく正真正銘The FreeBSD Project謹製のFreeBSD 11-RELEASEです。 FreeBSDの方は起動時はCLIのみですが、 Username: freebsd Password: zfs でログイン後にstartxするとgnome3が立ち上がります。 ubuntuの方は前回の投稿と同様です。というかそれが材料になってます。 作り方 すでにubuntuがインストール済みのVMを用意 FreeBSD-11-RELEASEのインストールディスクイメージをCDに指定してそこから起動 shellに入る FreeBSD用のデータセットを追加。こんな感じで。 # zpool import -f -N -R /mnt rpool # z

    zfs - 単一パーティションでマルチブート - Qiita
  • zfs - 持ってけ ubuntu 16.04 仮想マシン - Qiita

    OneDrive改め埃かぶってたVPSに置いときます。ご自由にお召し上がり下さい。 なにこれ? 何の Ubuntu 16.04 Desktop の仮想マシンです。100% ZFSな点を除いて。 FreeBSDでは10.0-RELEASE以降インストーラーもZFS対応済みなので Pure ZFS なシステムを作るのも実にちょろいのですが、Linuxはまだそこまで行ってません。Ubuntu 16.04 Root on ZFSというドキュメントは上がってますが、これを見た人は「なんて面倒なんだ!」とまたぎするのではないでしょうか。Ubiquityの超絶安楽インストーラーに慣れた人ならなおのこと。 しかし一旦こしらえてしまえば、あとはいつもと変わりません。デフォルトのext4で構築されたシステムと全く同じように apt できますし、同じように 16.10 にも dist-upgrade できまし

    zfs - 持ってけ ubuntu 16.04 仮想マシン - Qiita
  • ZFS - スナップショットいつやるか?今でしょ! - Qiita

    こういうニュースを見るたびに、こう嘆かざるを得ません。 GitLab.comが操作ミスで番データベース喪失 「ああ、ZFS使ってれば」、と。 ZFSはこれまでのファイルシステムの常識を覆す画期的なファイルシステムでした。fsckを不要にするトランザクション,パーティションという概念を過去のものにするデータセット,ファイルシステム自体のundoを可能にするスナップショット,エラーを自動検知し,可能であれば自動修復するチェックサム,RAIDホールがないRAID-Z……「Z=最後のファイルシステム」という自信がその名に込められたZFSは,今は亡きSun Microsystemsの最後の遺産でもあります 僕にZFSの話をさせると長くなります -- ので、今回はスナップショットを中心に手短に。 バックアップを難しくしているのは何か? ここで、ある小さな*nixシステムのフルバックアップを取ることに

    ZFS - スナップショットいつやるか?今でしょ! - Qiita
    dankogai
    dankogai 2017/02/05
    そいえばブクマしてなかったので。しかしfs系の記事で3桁行くとは以外
  • 小飼弾の論弾 #8「マネー特集:究極のバラマキ策『ベーシックインカム』とは?」 - ニコニコチャンネル

    「小飼弾の論弾」で進行を務める、編集者の山路達也です。 今回は、6月6日(月)に配信された「マネー特集」からハイライトをご紹介。リアルタイムの配信を見逃した方は、気になった部分だけでも動画でぜひご覧ください。 次回のニコ生配信は、6月20日(月)20:00。「WWDCで明らかになったアップルの戦略」等のトピックを予定しています。お楽しみに! ・小飼弾の論弾 6/20 ■2016/06/06配信のハイライト モハメド・アリは何を成し遂げたのか? アベノミクスは成功?失敗? 「働いたら負け」ということをみんな知るべき 消費増税はアリ?ナシ? マイナス金利の問題とは? 日は、不労所得でっている国だった! どうして下にまで富が降りてこない? 「賃金を上げろ」と要求するのは、金持ちの思うつぼ 労働者は分断されて、各個撃破された 富の分配に失敗すれば、虐殺が起こるかもしれない 究極のバラマキ策「ベ

    小飼弾の論弾 #8「マネー特集:究極のバラマキ策『ベーシックインカム』とは?」 - ニコニコチャンネル
  • モハメド・アリは、ベトナム戦争反対に全てを賭けた

    モハメド・アリは、自らが尽力した最も有名な社会運動――ベトナム戦争反対、そして徴兵拒否――の影響で、ボクサーとしての全盛期を棒に振り、何百万ドルもの金を失い、その後、彼のイメージは変わってしまった。最終的に、彼は借金生活にまで追い込まれた。この社会運動は、思いつきの一言で始まった。 それは1966年3月のことであった。アメリカ軍はベトナムとの戦いを格化させていた。軍は徴兵の基準を大幅に下げ始め、より多くの兵隊を召集した。陸軍の知能指数テストで78点だったアリは、点数が低すぎたため1962年には徴兵されなかった。しかし徴兵基準の引き下げは、彼がいつ徴兵されてもおかしくない人物になったことを意味した。

    モハメド・アリは、ベトナム戦争反対に全てを賭けた
    dankogai
    dankogai 2016/06/12
    06/06 のニコ生でも冒頭で取り上げた http://live.nicovideo.jp/watch/lv264123839 省略不可の人類史
  • トランプ氏、日本防衛費全額要求 応じずなら駐留米軍撤収の持論 - 共同通信 47NEWS

    トランプ氏、日防衛費全額要求 応じずなら駐留米軍撤収の持論 2016/5/5 12:36 | 5/5 12:43 updated トランプ氏(AP=共同)  【ワシントン共同】米大統領選で共和党候補の指名獲得を確実にした実業家トランプ氏(69)は4日、大統領に就任すれば、日米安全保障条約に基づき米軍が日防衛のために支出している国防費の全額負担を日に要求する考えを表明した。CNNテレビのインタビューに答えた。 米軍が駐留する韓国ドイツにも同様に要求する考えを示し、応じなければ駐留米軍を撤収するとの持論も曲げなかった。指名獲得を確実にし、大統領に選ばれる可能性も出てきただけに一層波紋を広げそうだ。

    トランプ氏、日本防衛費全額要求 応じずなら駐留米軍撤収の持論 - 共同通信 47NEWS
    dankogai
    dankogai 2016/05/05
    そうか。基地の家賃も払ってくれるのか。さすが不動産王
  • ズンドコキヨシ by ズンドコスクリプト - Qiita

    そんなにズンドコしたいならズンドコでやろうよ。 というわけで、ズンドコスクリプトによるズンドコキヨシは以下のとおりとなりました。 ズンズンドコズンズンズンドコドコズンズンドコズンズンズンズンドコ ズンズンドコズンドコドコドコドコズンドコドコドコズンドコズンドコ ズンドコドコドコズンズンドコドコズンドコドコドコズンズンドコズン ズンズンドコズンドコドコドコドコズンドコドコズンズンズンドコズン ズンドコドコズンドコズンズンドコズンドコドコズンドコドコドコズン ズンズンドコズンドコドコドコドコズンドコドコズンズンドコズンドコ ズンドコドコズンドコドコドコズンズンドコドコドコズンドコドコズン ズンズンドコズンズンズンズンズンズンドコドコドコズンズンズンズン ズンドコドコズンズンドコズンドコズンドコドコドコズンズンドコズン ズンドコドコズンドコドコズンズンズンズンズンズンドコズンドコズン ズンズンド

    ズンドコキヨシ by ズンドコスクリプト - Qiita
  • Math - つがいは一緒に面倒見るのが吉な件 - Qiita

    というわけで続きです。 Math - 円周率を3.14どころか3.141592653589793としても丸く収まらなかった件 それではなぜPONSの三角関数がwrapAngleを利用するようになったのか。続きは次の記事で。 演算におけるつがい つがいになると、大事なことは一人ではなく相方と一緒にやることになります。映画鑑賞から子育てまで。「リア充爆発しろ」?つがいから見たら、よく「一人でやってて爆発しませんね」といったところかもしれません。 なぜつがいがつがいか。一人でやるよか楽(だ|しい)からに決まってるじゃないですか。 実は演算においても、そうしたつがいは少なくないのです。一番有名なのは除算における商(quotient)と余り(remainder)ですか。これはどちらかを計算しようとすると必ずもう片方も出てきます。 実はCにもdivという関数があって、これを使うとつがいのまま得られます

    Math - つがいは一緒に面倒見るのが吉な件 - Qiita
  • Math - 円周率を3.14どころか3.141592653589793としても丸く収まらなかった件 - Qiita

    public static func wrapAngle(x:Self, precision px:Int = 64)->Self { var angle = x let onepi = pi(px) if angle < -2*onepi || +2*onepi < angle { let precision = px + angle.toMixed().0.msbAt let twopi = 2*pi(precision) angle = angle % twopi angle.truncate(px) } if angle < -onepi { angle += 2*onepi } if +onepi < angle { angle -= 2*onepi } return angle } なんのことはない、「M_PIが正しくなければ、もっといい値を使えばいいのに」というわけです。その

    Math - 円周率を3.14どころか3.141592653589793としても丸く収まらなかった件 - Qiita
  • swift - PONSとAccelerateをマリアージュしたら通常の3倍の倍速くなった件 - Qiita

    PONSにUInt128を加えてみました。 任意精度をサポートしているのに、なぜ? そこにAccelerateがあったから。 Accelerateは来ヴェクター演算に用いられるライブラリ。とは言っても裸に近いライブラリで、生ですと腹が壊れかねないので(下記コードで生っぷりの片鱗を見ることができます)、SwiftでもSurgeとか有名なラッパーが出てます。 このAccelerate、実は小さな数をまとめて処理するだけではなく、大きな数を処理する機能も入ってたりします。ただし現時点で OS X のみ。 ならば… OS X では Accelerate を使って それ以外では BigInt に計算代行してもらえば 安価に(128|256|512)bit固定長整数が手に入るんじゃね? と先ほど思い立ってやってみたら実に安上がりに出来ました。とりあえずUInt128から。 public struc

    swift - PONSとAccelerateをマリアージュしたら通常の3倍の倍速くなった件 - Qiita