タグ

ブックマーク / cockscomb.hatenablog.com (17)

  • GitHub ActionsでDocker Buildするときのキャッシュテクニック - cockscomblog?

    GitHub Actionsでdocker buildすることが多い。このときのキャッシュをどうするかという話題。 基 GitHub Actionsでdocker buildしてAmazon ECRにdocker pushする、典型的な.github/workflow/docker-push-to-ecr.ymlはこういう感じ。 name: Push to Amazon ECR on: push: branches: [ 'main' ] jobs: docker: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: docker/setup-buildx-action@v1 - name: Configure AWS credentials uses: aws-actions/configure-aws-c

    GitHub ActionsでDocker Buildするときのキャッシュテクニック - cockscomblog?
  • WEB+DB PRESS Vol.125の特集「GraphQL完全ガイド」を執筆しました - cockscomblog?

    今週、10月23日(土)に発売されるWEB+DB PRESS Vol.125に掲載される、特集記事「GraphQL完全ガイド」を執筆しました。よろしくおねがいします。 桃栗三年、GraphQL 6年 原稿を書く過程で、知っているはずのことでも改めて調べなおしたりする。特に歴史みたいなのが好きで、GraphQLは2015年6月に発表されて、2018年に安定版になって、みたいなのをずっと調べてしまう。GraphQLってなんかすごい最近っぽく感じていたけど、発表されてからもう6年経つらしい。 ちなみにjQuery 1.0は2006年8月にリリースされていて、Reactは2013年5月に公開されたらしい。6年というのはだいたいそれくらい。 6年で、GraphQLはよく普及した。Facebookはもちろん、GitHubTwitterNetflixも、GraphQLを使っている。GitHubの新し

    WEB+DB PRESS Vol.125の特集「GraphQL完全ガイド」を執筆しました - cockscomblog?
  • WWDC21大夢想 - cockscomblog?

    毎年この時期になると、毎日のようにWWDCのことを夢想している。 去年はSwiftUIのアップデートApple Silicon搭載のMac、ホーム画面のウィジェットに期待していた。 去年の期待は、いろいろなことをうまく言い当てているようにも見えるし、少し過剰なところもあった。WWDC20では叶わなかったいくつかの部分については、引き続きWWDC21でも期待している。 ではWWDC21では何が発表されるのか。 Swift 2014年にSwiftが発表されてから7年になる。SwiftはOSSで開発されているので、次にどのようなアップデートがあるか、事前に窺い知ることができる。 swift-evolutionによると、次のバージョンはSwift 5.5となり、特に並行処理の言語的なサポートに注力されている。async/awaitの構文や並行処理の単位としてのTask、actorモデルの導入が決

    WWDC21大夢想 - cockscomblog?
    Nyoho
    Nyoho 2021/06/07
  • Marzipanを予想する - cockscomblog?

    予想というか、根拠のない与太話です。 Marzipanと呼ばれるAppleプロジェクトは、どのようなものになるのだろう。噂では、iOSとmacOSのアプリが一度に作れるようになるらしい。このふたつのOSのアプリを開発する上での主要な差異は、iOSのUIKitmacOSのAppKitの、UIフレームワークである。その他のフレームワークのほとんどはすでに共通している。この状況を踏まえれば、MarzipanはUIフレームワークであると考えられる。 そのMarzipanがどのようなUIフレームワークになるのか、グラデーションをつけて考えてみる。 UIKitの移植 もっとも単純なのは、UIKitmacOSへ移植してしまうパターンである。macOSのAppKitは古びてきているから、より近代的なUIKitを持ってきてしまう発想である。 もちろんtvOSのUIKitのように、同じUIKitでも異な

    Marzipanを予想する - cockscomblog?
    Nyoho
    Nyoho 2018/04/15
    こういうの考えるのはホント面白いね。
  • Docker for Macでコンテナの中からホストに繋ぐたった一つの冴えたやり方 - cockscomblog?

    Networking features in Docker for Mac | Docker Documentation コンテナ中で docker.for.mac.localhost というDNS名を使うと、ホストmacOSに繋がります。 メリークリスマス。 追記(2018/01/06 21:00) Docker 17.12.0から新たに同じ用途の docker.for.mac.host.internal が追加され、今後はこちらが推奨されます。 これはlocalhost のサブドメインを禁止するRFCが提案されていることによります。 謹賀新年。 追記(2018/03/27 11:00) https://docs.docker.com/docker-for-mac/release-notes/#stable-releases-of-2018 Docker 18.03.0からさらに ho

    Docker for Macでコンテナの中からホストに繋ぐたった一つの冴えたやり方 - cockscomblog?
    Nyoho
    Nyoho 2017/12/26
    tips
  • 「iOS 11 Programming」を書きました - cockscomblog?

    iOS 11 Programming 著者:堤 修一,吉田 悠一,池田 翔,坂田 晃一,加藤 尋樹,川邉 雄介,岸川克己,所 友太,永野 哲久,加藤 寛人,発行日:2017年11月16日対応フォーマット:製版,PDFPEAKSで購入する 今日から普通にお買い求めいただけます。 担当した章について宣伝します 僕は「第6章 Drag and Drop」と「第7章 FilesとDocument Based Application」のところを書きました。ここで担当した章について宣伝します。 iOS 11が一般にリリースされてからもう少し経っていますが、実際にiPadを使っていると、Drag and Dropがとても便利な操作であることがわかります。例えばタスク管理に使っているThingsというアプリでは、メールアプリなどからのドロップを受け付けてくれます。メールがきて後で何か対応しないといけない

    「iOS 11 Programming」を書きました - cockscomblog?
    Nyoho
    Nyoho 2017/11/29
  • 年末年始に飲み過ぎないために - cockscomblog?

    諸君は酒が好きだろうか。筆者の場合は少しくらい、好きである。酒を飲んでもいいことなどない。僅かに楽しいような気分になるばかりで、だんだんと頭がボーッとしてきて身体もダルくなり、ひどいときには周囲の人間にまで迷惑をかける。しかし、よく冷えたビールの一口目の、あのなんとも言い難い美味さよ。あのたった一口分の美味さが脳神経に刻みつけられ、繰り返しくりかえし酒を飲んでしまう。なんと愚かなことだろう。 さて稿では、種々の問題をはらむ飲酒について、特に二つの問題を取り上げ実践的なアドバイスを諸君らに授けたい。筆者のアドバイスは主に Swift によって記述される。 ビール1パイント問題 アイリッシュパブなどに行ってビールを頼むと、「中ジョッキ」のような曖昧な単位でなく、「パイント」という単位で量を指定しなければならない。諸君らも安易に1パイントで頼んでしまって思ったより多くて苦労する、といった経験を

    年末年始に飲み過ぎないために - cockscomblog?
    Nyoho
    Nyoho 2016/12/27
    まさかのSwift・Foundationの話だった
  • あなたの知らない UIKit の世界 — UITableView に UITextView を置きたい - cockscomblog?

    UITableView の見た目で様々な要素を表示しつつ、その一部として UITextView を使いたい、という需要があると思う。最も身近な例は標準のメールアプリである。 これは UIKitAPI を駆使することで実現可能である。記事ではこれを実現する方法を通して、あまり知られていないであろう UIKit の機能について紹介する。 UITextView の intrinsic content size Auto Layout において、UIView は自身が表示されるためにちょうどよいサイズを知っている。具体的には var intrinsicContentSize: CGSize である(Swift 3.0 では property で、Swift 2.3 まではメソッドである)。このサイズは他の NSLayoutConstraint と関連して、デフォルトではプライオリティ 75

    あなたの知らない UIKit の世界 — UITableView に UITextView を置きたい - cockscomblog?
    Nyoho
    Nyoho 2016/09/07
  • Swift の Nil Coalescing Operator でコンパイルは遅くなるか - cockscomblog?

    趣味のウェブブラウジングをしていると、Swift の ?? (nil coalescing operator) がコンパイルを遅くするのではないか、といった話題*1を見かけました。この演算子は、左辺の Optional<Wrapped> 型の値が Optional.none である場合に右辺の値を返すというもので、直感的にはこれがコンパイル時間を悪化させるとは思えません。経験から言えば、このようなケースでは大抵やや複雑な型推論が発生しており、それがコンパイル時間に支配的な影響を与えています。そうであるなら、人間が少し工夫して型のコンテキストを与えてやることで、計算機はずっとよいパフォーマンスを発揮できるはずです。 ごく簡単な例で実験してみましょう。以下のコードは、let view: UIView? があるとき、座標系における view のX座標を得ようとするものです。ただし view が

    Swift の Nil Coalescing Operator でコンパイルは遅くなるか - cockscomblog?
    Nyoho
    Nyoho 2016/07/06
  • Swift 2.2 - cockscomblog?

    寒さも和らぎ、日によっては春の訪れを感じさせる今日この頃、いかがお過ごしでしょうか。春といえば Swift です。Swift は春と秋に、まるで衣替えのように大きなリリースがあります。2016年の春と予告されていた Swift 2.2 は、おそらく来週には正式にリリースされるものと思われます3月22日にリリースされました。 Swift 2.2 は、バグの修正や警告や診断の改善、コンパイル時間や実行速度の向上が主目的であるとされ、それに加えて Swift 2.0 以来のちょっとした機能向上を図ってのリリースとなります。Swift2.2 は OSS となった Swift の初めてのバージョンアップでもあります。すなわちコミュニティからの直接的なフィードバックを経た、最初の Swift と言えるでしょう。そんな Swift 2.2 の変更から主だった(おもしろい)部分を紹介します。 春に備えて準

    Swift 2.2 - cockscomblog?
    Nyoho
    Nyoho 2016/03/15
  • Swiftを使って型付けされた画面遷移がしたい - cockscomblog?

    皆さん今朝はどんな夢をみましたか。今日は私の初夢を紹介します。 prepareForSegue iOSアプリを開発していて、特にStoryboardを利用して遷移を作るとき、往々にしてそのコードは不完全になる。 ViewControllerの遷移をするときには、次に表示されるViewControllerに必要な情報を受け渡して初期化しなければならない。Storyboardを使った遷移は、すでにインスタンス化されたViewControllerオブジェクトに対して行うことになる。このためViewControllerのイニシャライザを利用できない。従ってUIViewControllerのprepareForSegue(_:sender:)メソッドをオーバーライドして、UIStoryboardSegueオブジェクトのdestinationViewController: UIViewControll

    Swiftを使って型付けされた画面遷移がしたい - cockscomblog?
  • Swiftにおけるclassとstructの使い分け - cockscomblog?

    新年あけましておめでとうございます。 class, struct Swiftにはclass (class)の他にstructure (struct)があり、どちらもよく似た機能を提供する。しかしそれぞれ参照型 (reference type)と値型 (value type)という違いがあり、このことはパラダイムの違いをもたらす。そこで多くのSwiftプログラマーは、classとstructのどちらを採用するべきか迷いがちである。記事ではこの問題について議論を深めたい。 structはカッコいい classについてはなじみ深いと思うので、structの特徴を整理する。はじめに述べたようにstructは値型である。値型であることがstructを大きく特徴付けている。 structはデフォルトで不変である。var, mutating, inoutのキーワードを用いることで、この不変であるという

    Swiftにおけるclassとstructの使い分け - cockscomblog?
    Nyoho
    Nyoho 2016/01/01
  • NSWindowのタイトルバーをカスタマイズする - cockscomblog?

    人類の多年の夢であったNSWindowのタイトルバーのカスタマイズであるが、YosemiteになってついにオフィシャルなAPIが実装された。 YosemiteではApple製のアプリケーションほとんどにおいてデザインが一新され、かつてOS Xを特徴付けていたツルッとしたテクスチャは取り払われた。そしてウインドウのタイトルバーまでもが変わった。 タイトルバー ウインドウのタイトルバーは、OS XにおいてGUIアプリケーションの要である。タイトルバー自体がウインドウを移動するためのノブであり、左にはウインドウを操作するための赤・黄・青のコントロールが、中央にはウインドウのタイトルが表示される。ときにはツールバーと見かけ上くっついたりするが、いずれにしてもウインドウの中心はタイトルバーである。 Safariのタイトルバーにはツールバーが表示されている そのタイトルバーをカスタマイズしたい、これは

    NSWindowのタイトルバーをカスタマイズする - cockscomblog?
    Nyoho
    Nyoho 2015/05/01
  • Swift 1.2 - cockscomblog?

    第61回 Cocoa勉強会関西で“Swift 1.2 The long-awaited language updates”と題して発表した、Swift 1.2の主だった(おもしろい)変更点の紹介です。 if let Swift 1.2で最も改善されたのはif文です。if letでOptionalをunwrapできる機能が大きく向上し、複数のOptionalを同時にunwrapできるほか、unwrapされた値について条件を加えることができるようになりました。 例えばcondition: Boolが真でふたつのOptional<Int>がnilではなく、大小関係にも条件がある、という条件を表してみます。 Swift 1.1 let condition = true let aNumber: Int? = 3 let anotherNumber: Int? = 7 if condition {

    Swift 1.2 - cockscomblog?
    Nyoho
    Nyoho 2015/04/30
  • iOS/OS X 用ライブラリ UTIKit を OSS でリリースしました - cockscomblog?

    UTI UTI とは Uniform Type Identifier のことで、iOS や OS X の世界で、ファイルなどの種類を表すために用いられる文字列です。 UTI の実例として、画像一般を表す public.image や、そのサブタイプで JPEG 画像を表す public.jpeg などがあります。iOS や OS X で利用されるほとんどのファイル形式には対応する UTI があり、例えば Keynote ファイルは com.apple.iwork.keynote.key などとなります。もちろんサードパーティも例外ではなく、Adobe Photoshop のファイルは com.adobe.photoshop-image となり、Microsoft Word の docx は org.openxmlformats.wordprocessingml.document です。 i

    iOS/OS X 用ライブラリ UTIKit を OSS でリリースしました - cockscomblog?
  • WatchKitアーキテクチャ概論 - cockscomblog?

    来年初めにリリースされるというApple WatchのSDKがプレリリースされた。Appleはこれを WatchKit と呼ぶ。Apple Watchで動作するWatchKitアプリは、いったいどのようなアーキテクチャにより駆動されるのか。この興味深い仕組みについて考察する。 WatchKit - Apple Developer ふたつの予想 Appleがウェアラブルデバイスを開発しているという噂が流れていた頃、そのアプリケーションのアーキテクチャについて異なる二つの予想をしていた。 一つは、ウェアラブル端末体で動作する通常のアプリを作るというパターン。これはAndroid Wearが採用しており、Androidのアプリを作るのとほとんど同じようにウェアラブル端末で動作するアプリを作ることができる。これが採用されると、UIKitの多くのコンポーネントが利用できることになり、柔軟なアプリを

    WatchKitアーキテクチャ概論 - cockscomblog?
  • iOSアプリ開発における便利OSSライブラリの選定について - cockscomblog?

    (Andy Myers and the CocoaPods Dev team. Creative Commons - Attribution-NonCommercial 4.0 International) iOSアプリを作るとき、今日ではCocoaPodsを用いて簡単に便利なライブラリの力を借りることができる。 ライブラリを利用するメリットは多い。自分でメンテナンスする必要がないので、放っておいても勝手に改善されていく。潜在的な問題があったとしても、多くの人が利用しているものなら誰かが気付いて直してくれる可能性も高い。また自分より優れたエンジニアの手によって、優れたインターフェースや実装になっているということも多い。何より、自分で実装する手間が省けるのがよい。 反面、デメリットについても考えなければならない。ライブラリがメンテナンスされなくなったとき、なにか問題が起こったり、あるいはAp

    iOSアプリ開発における便利OSSライブラリの選定について - cockscomblog?
  • 1