ペンギン村 Tech Blog

技術をこよなく愛するエンジニア集団が在住するペンギン村から、世界へ役立つ(かもしれない)技術情報を発信する技術系ブログです。某アラレちゃんが済む村とは一切関係ありません。んちゃ!

メモリ上に保持されているSwiftクロージャーがどこに定義されたものかを知る方法

自己紹介 概要 できること 使い所 方法 手順 リファレンスからデリファレンスする方法 x/gx コマンドを使う。 expression -l objc -o -- *(id**)を使う キャプチャされたデータが知りたい場合 動作環境 備考 脚注 自己紹介 ペンギン村の通行人 、po_miyasaka…

自由にクラスインスタンスにアクセスできるLLDBコマンド「vinfo」

自己紹介 vinfoとは 使用方法イメージ 使い所 使い方 備考 SwiftのStuctには vinfoではアクセスできません。。 自己紹介 ペンギン村の通行人 、po_miyasakaです。 名前の「po」はLLDBのコマンドから拝借しました。 (プロダクトオーナーでは) vinfoとは githu…

Swift プログラマが Go言語を学び始めた話(後編)

以下の記事の続きです。 blog.penginmura.tech blog.penginmura.tech 最後となるこの記事では、ここまで紹介してこなかった細かい機能や、Go言語における並列処理を実現するゴルーチン・チャネルについて触れ、最後に Go 言語に対する総括的な感想を述べて終…

Swift プログラマが Go言語を学び始めた話(中編)

以下の記事の続きです。 blog.penginmura.tech 制御構文 Go言語の制御構文としては次のものがある。 if switch for ゴルーチン・チャネルにおいて利用できる select という制御構文もあるが、それは後ほど触れることにする。 if 文 基本的な書き方は Swift …

Swift プログラマが Go言語を学び始めた話(前編)

私は Rust に賭けていた。ポストC++言語としての地位をどのプログラミング言語が取るか、もっといえば Rust vs Go でどちらが勝つかという話においてだ。 私が初めてGo言語を知った時は、こんな非力なプログラミング言語のどこが良いのだろうという感想だっ…

新年明けましておめでとうございます。

起立!気をつけ!こんばんは、かむいです。 昨年は4月に転職しまして、充実したEngineer☆Lifeを過ごせた1年でした。 繁忙期って言葉がありますが、毎日繁忙期って便利な日本語ないですかね?ぁ、えんj(ry げふんげふん 昨年こちらに投稿した記事は以下のよう…

Haskell で doctest(unittest)と QuickCheck(Property-based Testing)

どうも、年末年始に飲むワインはバッチリ買い揃えた @tobi462 です。 なんだか、ひょんなことからすごく久しぶりに Haskell を書いたのですが、そもそも doctest のインストール方法とかもすぐに分からなかったのでメモも兼ねて。 Tl;Dr -- | 文字がすべて異…

Bitrise からダウンロードしたビルドログをきれいに見る方法

Tl;Dr たぶんこれが一番早いと思います。 $ less ~/Downloads/xxxx.log 補足 Bitrise のビルドログは Web 上では色分けしてきれいに表示されますが、 Bitrise でのログ表示 ダウンロードしたものをテキストエディタで開くと、以下のようにエスケープシーケン…

【iOS】RxSwift + Realmでバックグラウンドでの書き込み完了イベントを受け取る

前書き 久々にペンギン村で記事を書きました(10ヶ月ぶり3記事目)、ナガクラ(@nagakuta)です。 今回はリハビリも兼ねて、RxSwiftとRealmを組み合わせた小技を紹介します! TL;DR 今すぐこれをコピペして Realm+Rx.swiftファイルを作成するんだ!! import R…

GKE / Kubernetes で稼働していた「このすばCfP」をOSSとして公開しました

「OSSを公開する」と心の中で思ったならッ! その時スデに行動は終わっているんだッ! ジョジョ5部は面白いですね、どうも @tobi462 です。 そんなわけで iOSDC 2018 のプロポーザル検索サービス「この素晴らしいCfPに祝福を!」のソースをOSSとして公開しま…

Merpay Tech Talk #2 に参加してきました

はじめに お疲れ様です。最近寒くてオフトゥンから出られないかむいです。 勉強会に足を運べていない日が続いていたのですが、今回はメルペイさんが主催する『Merpay Tech Talk #2』にお邪魔して来たので、レポートをまとめたいと思います! mercari.connpas…

DroidKaigi 2019 のプロポーザル一覧を閲覧できる「とあるDroidKaigiの提案目録」をリリースしました。

どうも、最近涼しくなってきたので温泉が最高に感じる今日この頃な tobi462 です。 そんなわけで iOSDC Japan 2018 に続き、DroidKaigi 2019 のプロポーザル一覧を快適に見れるかもしれないサービスを開発・公開しました。 droidkaigi-index.penginmura.tech…

Swift 4.2 の変更点を iOSDC 2018 で話してきました

どうも、最近は「進撃の巨人 3期」が楽しみな tobi462 です。 しかし、最近一部の人達から「シュタインズ・ゲート ゼロ」を強烈に推されプレッシャーを感じる今日このごろです。いや原作こそ未プレイですがアニメ初期は見てますし、全話配信されたら見ようと…

iOSDC2018に参加してきました!

iOS

ども、かむいです。 僕は今回iOSDC初参加でした。以前から行きたかったのですが、お仕事が…参加費が…CfPが…ごにょごにょ そんなこんなでCfPは見事に不当選だったものの、ついにスポンサーチケットという素晴らしいアイテムを駆使して参加することが出来まし…

ペンギン村 Tech から 2名 が iOSDC 2018 に登壇します

どうもご無沙汰しています tobi462 です。iOSDC Japan 2018 の開催がついに明日にせまりましたね。 以前の記事で軽くふれましたが、ペンギン村 Tech からは私と k_miyasaka の2名が登壇します。 blog.penginmura.tech せっかくなのでトークに対する一言コメ…

iOSDC 2018 のプロポーザル一覧を閲覧できるサービスを公開しました。

この度、ペンギン村 Tech のエンジニア3名で iOSDC 2018 の プロポーザル(CfP)一覧を閲覧・検索できるサービスを公開しました! iosdc-cfps.penginmura.tech Web UI は SPA で開発し、画面遷移なしで快適に見られるようにしてみました。 1stリリースでは一…

Xcode 10 betaにおけるSource ControlとAsset Catalogの新機能のお話

はじめに ども、かむいです 気がついたら2018年も7月に突入してますね(´・ω・`) 投稿がご無沙汰だったので、先月弊社で登壇したイベントがあったので、その話について書きたいと思います WWDC18報告会 in 弊社 dmmcj.connpass.com 当日はまさかの申込数約20…

Dockerハンズオンをやってみた - Kubernetes輪読会#0

どうも、Nintendo Switch版の斑鳩が配信されるの楽しみな tobi462(過去記事) です。 斑鳩はSTGとしての面白さは当然のこと、硬派なストーリー設定も素晴らしく・・・おっとこれを語りだすと長くなるのでやめておきましょう。 Kubernetes輪読会 始動 #0 コ…

Xcode 9 の New Build System を試す

この素晴らしきビルドシステムに祝福を。 どうも tobi462(過去記事)です。 さて、Xcode 9 から新しいビルドシステムが導入されたのは記憶に新しいですが、9.3 の時点でも Preview となっており標準のビルドシステムにはなっていません。 すでに他記事でも…

Swift エンジニアが学ぶ Rust - 0.序章

Rust はとても良い言語です、 TRust me。 ダジャレから始めるのは初めてでしょうか。Rust 勉強中の tobi462 です。 私はプログラミング言語を学ぶのが好きな畑の人間でして、最近では Rust を学んでいるのですが、これがなかなかどうして面白いのです。 Love…

Swift 4.2 で追加される removeAll(:where) メモ(SE-0197)

どうも、運動したあとはお酒が飲みたくなってしまう tobi462 です。 ちょっと時間が空きましたが、今回はremoveAll(:where)という新たに追加されたコレクション系のAPIの Proposal を見ていきたいと思います。 今までの Swift 4.2 の記事は以下です。 Swift …

【Docker】alpine の `apk update` でエラーが発生した時のメモ

どうも、tobi462 です。 今日は docker-compose build での apk update 時に以下のエラーが発生した時の対処メモです。 Step 7/11 : RUN apk update ---> Running in 45856361a825 fetch http://mirrors.aliyun.com/alpine/v3.4/main/x86_64/APKINDEX.tar.gz…

Swift 4.2 で追加されるコンパイラディレクティブ(SE-0196)

何でもは知らない、知ってることだけ。 どうも、最近書き出しの挨拶を考えるのに時間を要する tobi462 です。 今日は SE-0196 で追加されたコンパイラディレクティブの紹介です。 今まで書いた Swift 4.2 の記事は以下です。 Swift 4.2 で追加される @dynami…

Swift 4.2 で追加される @dynamicMemberLookup メモ(SE-0195)

全地球100億人のSwifterな皆さん、コンバトラーっ! tobi462 でーっす! え、いつもとノリが違う?まぁ、そういう日もあるんじゃないでしょうか。 そんなわけで、前回・前々回と続き Swift 4.2 の記事です。 今回は、Swift 作者であるラトナーさんの Proposa…

【iOS】Hyperion-iOSもあるんだよ!

かむいです。今月転職しました。 転職活動も忙しかったりして1ヶ月ぶりの投稿となります。 時間過ぎるのホント早い! Hyperion-Androidが話題に 先週 Android界隈で話題になったコレ。 こりゃすげぇ!てなりましたよね。 qiita.com てっきりAndroidだけかと…

Swift 4.2 では boolean の反転(toggle)ができるようになる(SE-0196)

どうも。ルパン三世 Part 5 の続きが楽しみな tobi462 です。 さて前回のenumの新機能に続き、また Swift 4.2 の話題です。 といっても、今回は驚くほど短いです(汗) Tl;Dr toggle() 実装 おわり Tl;Dr // before messageLabel.isHidden = !messageLabel.i…

Swift 4.2 では enum の件数がとれるようになる(SE-0194)

どうも。赤ワインが一番美味しい季節は秋だと思うのですが、この初春という時期もなかなか乙だと感じる tobi462 です。 今日は Swift 4.2 で追加される SE-0194 について軽くメモです。 ちなみに執筆時点で Xcode 9.4 beta 1 がリリースされていますが、こち…

「がんばるぞいbot」を作った話、そしてAWS Lambdaに移行しようという話

どうも、最近週末に映画を観るのが楽しみなtobi462です。ちなみにAmazon Prime Videoです。 今日はプライベートで作ったシステムの話、というか物語を書いてみたいと思います。 がんばるぞいbotとは Slackで「がんばるぞい!」と書き込んだら、キャラクター…

自作アプリにキャラクターを登場させてみた

はじめに そだねー。カムイです。 平昌で日本代表が頑張っていた2/19、クラスメソッド株式会社で主催されたSwift勉強会『AKIBA.swift』にて登壇をして参りました。 classmethod.connpass.com 注) アニメ版権絵多用したため公開できる資料はありません。‍♂️ …

【iOS】APIKitを使ったXML取得

まえがき 結果 つまづいたポイント "https"から始まるURLじゃないと通信できない。 独自のXMLパーサーを実装する必要がある。 文字エンコーディングに気をつけよう まえがき 初めまして。ペンギン村の通行人po_miyasakaです。 APIKitを使用してGoogle Sugges…