タグ

Qiitaに関するdankogaiのブックマーク (36)

  • 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
  • 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桁行くとは以外
  • ズンドコキヨシ 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 - Introducing PONS = Protocol Oriented Number System - Qiita

    まだ荒削りですが、お披露目してもいいところまで来たので。 https://github.com/dankogai/swift-pons 売り口上 これでSwiftでも GMPとか外部ライブラリなしで任意精度整数(BigInt)や任意精度分数(BigRat)や任意精度浮動小数点数(BigFloat)が使えるようになります。 外部依存がないので、Xcodeでなくてもswiftcがあれば使えます。もちろんOS XだけでなくてLinuxもサポート その任意精度数も、四則演算以外の演算を最初からサポートしています。整数は素数判定できますし、任意精度実数は<math.h>の関数を使えます。 これだけでもかなりハッピーになれます。 でも当のウリは、そこじゃないんですよ… 承前: 古き良きCの時代 例えばman powとしてみます。こんな答えが返ってくるでしょう。 SYNOPSIS #include <

    Swift - Introducing PONS = Protocol Oriented Number System - Qiita
  • SwiftでFunctionalといえどデータは使い捨てない方がいい理由 - Qiita

    extension SequenceType { typealias E = Generator.Element func groupBy<K: Hashable>(key: E -> K) -> [[E]] { return self.reduce([:]) { (var r: [K: [E]], x) in let k = key(x) r[k] = (r[k] ?? []) + [x] return r }.map { _, v in v } } } sampleArray.groupBy { "\($0.y)-\($0.m)" } var を parameter で使う以上の問題があります。 それは、配列を使い捨てていること。(r[k] ?? []) + [x]するたびに、古いr[k]に入っていたArrayが捨てられています。 「これってパフォーマンスに響くよねえ」と脊髄反射でベン

    SwiftでFunctionalといえどデータは使い捨てない方がいい理由 - Qiita
  • Swift 2のProtocol-Oriented Programmingっぽい書き方を理解する - Qiita

    func isEven(number: Int) -> Bool { return number % 2 == 0 } let evens = Array(1...10).filter(isEven) print(evens) // [0, 2, 4, 6, 8, 10] 何が古いかというと、いちいち1...10をArrayにしているところ。もうしなくていいんです。そう、Swift 2ならね。 実際、Swift 2では.mapはもうArrayでは定義されてないんです。公式ドキュメントのArray Structure Referenceを見ても、.mapはどこにも見当たりません。 ではどこで定義されているか? Arrayが準拠しているprotocol CollectionType です。実際にCollectionType Protocol Referenceを見てみると、.mapや.filt

    Swift 2のProtocol-Oriented Programmingっぽい書き方を理解する - Qiita
  • swiftのREPLで俺モジュールをimportする方法 - Qiita

    SwiftのREPL、最高。 何が最高かって、あの重いコンダラじゃなくてXcodeを立ち上げなくても使えるところ。Xcode不要なので、Linuxでも動くし。 しかし、perlのuseとかrubyのrequireとかpythonのimport相当のことを、自分の書いたコードに対してやろうとすると一苦労。でも、一旦やり方を掴んでしまえばちょろいもんです。 swift-complexを例に説明します。 「説明は抜きにして、とにかく俺モジュールimportしたいという人は、以下のMakefileを雛形にしてください。 MOD=Complex BIN=main MODSRC=complex/complex.swift complex/exops.swift BINSRC=$(MODSRC) complex/main.swift complex/tap.swift MODULE=$(MOD).swi

    swiftのREPLで俺モジュールをimportする方法 - Qiita
  • swiftでもテストはTAPで - Qiita

    Swift が opensource 化されてもう一月以上。みなさんテストはどうされてますか? もちろんこの場合XCTestなんてチャラいものは使えません。Linux版にSwift自体はあってもXcodeなんてありませんから。 というわけで、私はずっとTest Anything Protocolを使ってきました。 発祥はPerl Communityですが、別にPerlでなくても使えます。例えばJSの世界ではよく使われているmochaも対応してますし、TAP適合の出力であれば、それをチェックするためのスクリプトproveは、Perlが入っている環境であれば必ず入っているのでOS XとLinux Distroの過半では out-of-box で使えます。 見てのとおりシンプルなものなので、その場で都度実装してもいいですし実際そうしてきたのですが、ずいぶんとSwiftプロジェクトも増えたので、

    swiftでもテストはTAPで - Qiita
  • "%.17g" = doubleの出力をポータブルにする魔法の呪文? - Qiita

    遅まきながら、明けましておめでとうございます。 諸般の事情で浮動小数点と取っ組み合っています。 懸命な読者であれば、浮動小数点表記は"eyes only"なものであり、データの交換に用いるのは慎むべきであることはご存知かと思われますが、実はそうも言ってられなくなっていることに気づいた人はどれくらいいらっしゃるのでしょうか… そう。JSONです。そのままJavaScriptでevalできちゃう、RFC7159で規定された、今や世界で最も利用されているであろうデータ交換フォーマット。 JavaScriptでevalできちゃうだけあって、数値はJavaScriptの数値リテラルそのものです。 Hexadecimal Floating Pointなんてお洒落なものは使えません(Hex Floatについては記事を改めて)。 つまり、Cにおけるdouble、JavaScriptにおけるNumberを、

    "%.17g" = doubleの出力をポータブルにする魔法の呪文? - Qiita
  • Swift on Linux: Getting Started ASAP - Qiita

    キター! Swift is Open Source - Swift Blog - Apple Developer 理念的にはオープンソースであることが最重要ですが、実地ではApple製品以外の環境も正式サポートされたことが大きいでしょう。これでやっと真の意味での汎用言語となったわけです。 というわけで、早速使ってみましょう。 下準備 Ubuntu 14.04 LTS or Ubuntu 15.10 (64bit) もちろんVMでも構いません。メモリー2GB、仮想ディスク16GBもあれば余裕です。ソースから debugugging symbol までサポートしたフルビルドをしたい場合は、打って変わってメモリー16GBでも足りず、さらに16GBほどswapを足してやっと事なきを得ましたが、バイナリーをダウンロードして使うのであれば最低限で事足ります。 clangのアップデート(14.04 LT

    Swift on Linux: Getting Started ASAP - Qiita
  • perl - length @array - Qiita

    何を隠そう、ワシも時々やってしまうので。 Perlの配列要素数を、length()でやってはいけません。 This function cannot be used on an entire array or hash to find out how many elements these have. For that, use scalar @array and scalar keys %hash , respectively. 手短には 0+@array 。 これだけ知っていれば使う分には十分なのだけど、length(@array)が構文として正しいとなると、一体どういう意味なのかも知っておきたいのがハカーの佐賀。 length @array # って一体… というわけで答えを見る前に、一つクイズを。以下のコードは何を出力するか。

    perl - length @array - Qiita
  • Swift - 再帰的enumの書き方 - Qiita

    その日は来ないと弾言しちゃいます。 [Swiftで気になった所] 代数的データ構造を彷彿とさせる魔改造を施されたenumですが、再帰的データ構造が出来そうで出来ないのでガッカリ感が有ります。 enum List { // (!) Recursive value type 'List' is not allowed case Car(AnyObject) case Cdr(List?) } 正座して実装される日を待ちます。 [Swiftで気になった所]: http://qiita.com/ykst/items/3aba08ba1bf8955004d1 なぜなら、それが出来るようにするということはSwiftの型システムのありようを根から崩壊させてしまうことになるからです。 結論を述べる前に、上記のコードをあえてCで書いたらどうなるのか見てみましょう。

    Swift - 再帰的enumの書き方 - Qiita
  • #FreeBSD + xorg-server-1.14 で vmmouse を復活させる - Qiita

    Xmasにpkgが更新されていたので、クリスマスプレゼントとばかりVMWare Fusion の FreeBSD-10.1-RELEASE-ad64 を更新したら、マウスの動きがキョドるようになったので。 xorg-server-1.14.7_1,1 原因 xorg-server が 1.12 から 1.14 に上がり、それにともなってデバイス検知が HAL から devd になったのはいいのだけど、これが vmmouse ではなく普通の mouse を load してしまうため。 http://blogs.freebsdish.org/graphics/2014/11/19/xserver-1-14-update-ready/ 対策 xorg.confを作成しなおし

    #FreeBSD + xorg-server-1.14 で vmmouse を復活させる - Qiita
  • Swift - 1.0 (Xcode 6.0) と 1.1 (Xcode 6.1) 両方に対応する - Qiita

    すでにして Swift 1.0 と Swift 1.1 の Conflict が発生したので、対処法を。 Foo or Foo? 問題となったのは、ここ Failable Initializer これまでは

    Swift - 1.0 (Xcode 6.0) と 1.1 (Xcode 6.1) 両方に対応する - Qiita
  • Swift - Xcode 6.1-Beta2 における変更点 - Qiita

    というわけでつつがなくMacBook Airより高いキョダiPhone128GBを予約するやいなや、YosemiteがDP8に、XCodeが6.1-Beta2になっていたので。 Swiftが1.1に 1.0が出たばかりだというのになんとも気が早いことです。Xcodeも6.1こそ命ということでしょうね。 Beta6より引き続き… Optional型に関するさらなる改良はずっとやっているみたいです。 Failable Initializer で、1.0と1.1で最も変わったのがこれでしょう。これまでは

    Swift - Xcode 6.1-Beta2 における変更点 - Qiita
  • Swift - Xcode 6(.1-Beta)? における変更点 - Qiita

    というわけでデカiPhoneとキョダiPhoneとiではじまらないのかいWatchが出た裏で、Swiftも1.0になりましたね。 OS X Target には XCode 6.1-Beta が必須 一番重要なのはこれ。XCode 6 GMではSwiftでOS X Appsはビルドできないどころか、プロジェクトの新規作成さえできません。これを見落として6GMをインストールしてちょっと汗りました。「iOS Appsしか作りません」という方以外は、必ず6.1-Betaの方をインストールしましょう。 ちなみに Yosemite は DP7 のままですね。今まで一緒だったので少しリズムが狂いました。 Beta6より引き続き… Optional型に関するさらなる改良が進んでいるようです。 これの絡みかどうかわかりませんが、swift-jsonでNSURL.URLWithString(url)と書いてい

    Swift - Xcode 6(.1-Beta)? における変更点 - Qiita