iOSDC 2020で「機械学習のブルーオーシャン Core ML」という発表をさせていただきました。iOS×MLで実務でこういうことやってますよ、というのを解説しました。
詳しい発表内容についてはこちらにまとめました:
iOSDC 2020で「機械学習のブルーオーシャン Core ML」という発表をさせていただきました。iOS×MLで実務でこういうことやってますよ、というのを解説しました。
詳しい発表内容についてはこちらにまとめました:
先日、「エンジニアのための発信講座」の第5回を行いました。開始からだいたい2ヶ月経ったということで、今回は趣向を変えて「中間成果発表会」と題して進捗状況を共有しました。
以下発表スライドです。
(確認できているだけでも複数出ています)
(初めての登壇のハードルの高さを考えるとすごいことかと!)
(メンバーにとある出版社から執筆依頼が来た)
(仕事の依頼が来たメンバーも数人)
(英語で記事を書いていて海外からの引き合いが来始めた人も)
なかなか堅実な成果が出ているといえるのではないでしょうか?
なお本講座は、テクニックを弄してフォロワーを急に増やすとかではなく、一時的にだけがんばって本業よりも優先して記事を書くとかでもなく、瞬間的なバズ狙いでもなく、無理なく続けられる方法で記事を書いて徐々に「実のある発信力」をつけていきましょう、というスタンスでやっております。
本講座は「エンジニアと人生コミュニティ」の活動の一環として行っています1。
エンジニアと人生コミュニティ - CAMPFIRE (キャンプファイヤー)
過去の講義パートは動画で無料で全公開しています2。
(2020.7.15 タイトル変更しました)
弊オンラインサロン開設以来、ずっと「サロンという形態で自分が提供できる価値は何か」とずっと自問してきました。iOSやSwiftといった何か特定の技術を初学者に丁寧に教えるというのは僕の強みを活かすものではないし、自分が旗を振って共同開発をやるというのもピンとこないし・・・ということでもうこの方向しかないだろうと。で、本日!弊サロンのv2.0ともいえる新しいプロジェクトを始動させました。以下サロン内のSlackチャンネルに書いた内容:
「サロン主がもしかしたら仕事をふるかも!?」というのは多くのエンジニア系サロンにおいて参加の大きな動機となっているようです。本サロンでもそれは可能ですが、「やりたい仕事の依頼が向こうからくるエンジニアになることをサポートする」方が堤の強みとも合致するし、より本質的では?と考えるに至りました。
必ずしもフリーランスを推奨するわけではありませんし働き方の好みは人それぞれで良いと思いますが、それをふまえた上で一例として堤のケースを示しますと、
要は、高単価でも仕事が選べるぐらいたくさんくる、という状況です。
場所や時間の制約を受けず自由に働きたい/海外で働きたい/興味のある仕事だけやっていたい・・・といったあたりは堤の経験からサポートできそうな気がしています。
基本的な方向性としてとにかく発信力を鍛えていただきます。エンジニアとして技術力をつけるのはもちろん当然のこととして、そのスキルと実績をしっかり外に見えるようにして、仕事が転がり込んでくるようにする部分を本講座でサポートします。
こちらの動画をご覧ください。(サロン内で毎日投稿している動画のひとつ)
まずはここで言及している以下の条件を満たすよう、なんでもいいので発信活動を行ってください。
- フォロワー/フォロー > 2 - フォロワー > 100
フォロワー/フォロー比2以上
を維持しつつ、「技術発信をベースに」 フォロワー数2000以上
を目指してください。2000ぐらいあれば、良い技術記事を書いた場合、良いOSSを公開した場合等にバズまではいかないにしても「火種」ぐらいは起こせるようになり、良質な発信活動がしっかり報われるようになります。
技術発信の手段としてはQiitaやnoteに記事を書く、GitHubでOSSを公開する、勉強会やカンファレンスに登壇する、何でもOKです。
欲しい案件が向こうから来るようにするにはある程度「狙った」ブランディングが必要となるでしょう。個人個人で置かれている状況や持っているスキルや発信チャンネル、目指している方向性によって変わってくると思うので一緒に考えましょう。
このチャンネルで、以下の内容を投稿してください。
- どこを目指すか - その目指している地点に対する現状 - TwitterアカウントのURLと今現在のフォロー数/フォロワー数 - QiitaアカウントのURLと現在のコントリビューション数 - GitHubアカウントのURLと現在のスター数 - その他発信チャンネルがあれば
ちなみに堤の数字はこんな感じ:
弊サロンにはこちらから入れます。今のところたったの月額1000円、コーヒー2回分ぐらいです。
「オンラインサロン」にうさんくさいイメージをお持ちの方は、こちらの口コミを読んでみてください。
僕はiOSエンジニアですが、現メンバーの半分以上の方はそれ以外の技術領域(バックエンドやフロントエンドやAndroid)を専門とされていますし、エンジニアではない方や初学者でこれから目指されるという方も大勢いらっしゃいます。どうぞご安心を。ROM専(見てるだけ)の参加形態も全然ありです。
日報・分報は個人的に推奨しますがチャンネルの流れが早くなりすぎるおそれがあるので各自timesチャンネルをつくってそちらに書いてください↩
本日からはじまったWWDC 2020、明日から始まるセッションに備え、ドキュメントからAPIの差分をみて気になったものをピックアップしていきます。
数時間前に投稿した新規追加フレームワーク編に続き、本記事では既存フレームワークのうち、機械学習(ML)、画像、音声関連のものを見ていきます。
めちゃくちゃ機能追加されてます。
class VNDetectHumanBodyPoseRequest
人体の姿勢推定。ついに標準機能として入ったわけですね。
class VNDetectHumanHandPoseRequest
手の姿勢推定。これが必要でMediaPipeを試したりしたこともありましたが、もう必要なくなるのでしょうか?
Hand Tracking on iOS #MediaPipe pic.twitter.com/lUUCghK6gz
— Shuichi Tsutsumi (@shu223) 2020年5月9日
class VNRecognizedPointsObservation
上の姿勢推定の結果はこの型で返ってくるようです。
サンプルもセッションもあるので、深堀りしてマガジンに書いていきます。
ここはピックアップせずともしっかり見るつもりなので、本記事では割愛。
このLTで言ってる通り、Core MLのアップデートはcoremltoolsリポジトリの更新が肝となるのですが、つい2時間前に4.0b1がリリースされました🎉
— Shuichi Tsutsumi (@shu223) 2020年6月23日
Core MLのアップデートを3倍楽しむ方法 #wwdctokyo https://t.co/RDFTtjCBvL
https://t.co/Nx1Q3imKXO pic.twitter.com/aGwneh4PoK
— Shuichi Tsutsumi (@shu223) 2020年6月23日
coremltoolsのドキュメントページが新しくなっている!これは良い。今までコードのコメントから自動生成されたやつしかなかったので...
— Shuichi Tsutsumi (@shu223) 2020年6月23日
Introduction https://t.co/0ZNfVO1ZdT
テンプレートめっちゃ増えてます。NDA遵守のためベータアプリケーションのスクショは貼らないでおきますが、「Create MLのテンプレート」といってもピンとこない人もいるかもしれないので、代わりに現行版のテンプレート選択画面(の一部)のスクショをはっておきます。
ここから4つのテンプレートが追加されています。
個人的な感想:
機械学習系のAPIはML Computeも出たし個人的にはこのレイヤーで組むことはしばらくなさそうなのでフィルタ系だけを見ていく。
MPSImageEuclideanDistanceTransform
A filter that performs a Euclidean distance transform on an image.
"Euclidean distance transform (EDT)"なる変換を適用するフィルタ。知らないのでググってみたところ、以下の記事がヒット。大変にわかりやすい。
応用例も書かれていて、セマンティックセグメンテーションの誤差のメトリクスとして使われることがあるらしい。またErosion / Dilationを計算する手法としても利用されるらしい。ちなみにErosion / Dilationはそれぞれ孤立点の除去、不連続な点の接続と穴埋めのために利用される。
ちなみにここまで書いて気付いたが、このAPIはiOS 11.3からあるもので、新APIは
var searchLimitRadius: Float
というプロパティでした。これはEDTの計算手法を知っていれば名前で利用法がわかる。
MPSImageCanny
今度こそiOS 14の新クラス。ドキュメントには何も書いてないが、名前からいってCanny法によるエッジ検出を行うフィルタだと思われる。
(Wikipediaより)
MPSImageEDLines
iOS 14の新クラス。MPSKernel
を継承。ドキュメントに説明なし。
NLTagger
クラスに新しいメソッドが2つ@nonobjc func tagHypotheses(at index: String.Index, unit: NLTokenUnit, scheme: NLTagScheme, maximumCount: Int) -> ([String : Double], Range<String.Index>)
Finds multiple possible tags for a given linguistic unit, for a single scheme, at the specified character position.(指定された文字位置で、指定された言語単位について、単一のスキームについて、複数の可能性のあるタグを見つけます。)
func tokenRange(for: Range<String.Index>, unit: NLTokenUnit) -> Range<String.Index>
Finds the entire range of all tokens of the specified linguistic unit contained completely or partially within the specified range.(指定された範囲内に完全または部分的に含まれる、指定された言語単位のすべてのトークンの範囲全体を検索します。)
NLEmbedding
クラスに4つの新クラスメソッドclass func sentenceEmbedding(for: NLLanguage) -> NLEmbedding?
Retrieves a sentence embedding for a given language.(指定された言語の文の埋め込みを取得します。)
class func sentenceEmbedding(for: NLLanguage, revision: Int) -> NLEmbedding?
Retrieves a sentence embedding for a given language and revision.(与えられた言語とリビジョンのための文の埋め込みを取得します。)
class func currentSentenceEmbeddingRevision(for: NLLanguage) -> Int
Retrieves the current version of a sentence embedding for the given language.
class func supportedSentenceEmbeddingRevisions(for: NLLanguage) -> IndexSet
Retrieves all version numbers of a sentence embedding for the given language.
NLModel
クラスに2つのメソッドfunc predictedLabelHypotheses(for: String, maximumCount: Int) -> [String : Double]
Predicts multiple possible labels for the given input string.(与えられた入力文字列に対して,複数の可能性のあるラベルを予測します.)
func predictedLabelHypotheses(forTokens: [String], maximumCount: Int) -> [[String : Double]]
Predicts multiple possible labels for each string in the given array.(与えられた配列内の各文字列に対して,複数の可能性のあるラベルを予測します.)
・・・試してみないとピンとこないので、試してみます。あとこのフレームワークはiOS 12の頃に試して以来な気がしていて、当時は日本語をサポートしている機能は一部だけだった気がします。今一度日本語のサポート状況をみてみたいなと。
Final Cut ProのAPIが刷新されてる。 @shmdevelop さんあたり、Metalでガッツリ自分用の動画編集プラグインつくってみてほしい #WWDC20
— Shuichi Tsutsumi (@shu223) 2020年6月23日
FxPlug | Apple Developer Documentation https://t.co/sua0LyjRX6
事前に予想、というより期待することを書いていたのですが、見事に外れたものから書いていきます。
AVAudioEngineは更新なしか... #WWDC20 pic.twitter.com/wbk1RzTjwv
— Shuichi Tsutsumi (@shu223) 2020年6月23日
SoundAnalysisも更新なしってまじか...(MLSoundClassifierの更新はある) #WWDC20 pic.twitter.com/CQZiGlpmSd
— Shuichi Tsutsumi (@shu223) 2020年6月23日
標準の翻訳アプリが入ったことで、音声認識フレームワークであるSpeechフレームワークも強化されているかと期待しましたが、あてが外れました...
期待が外れ、Speechフレームワーク(音声認識API)も更新なし。しかしAPIが変わってないだけで内部的に刷新されてる可能性は大いにあると引き続き期待している...https://t.co/kdRMsBftOM
— Shuichi Tsutsumi (@shu223) 2020年6月23日
Speechの音声認識、デモとして試すとそこそこうまくいく気がするのですが、いざ実運用しようとすると全然ダメなんですよね。しかし音声認識は汎用性が高いのでどうにかしてほしいなぁと。実はAPIが更新されてないだけで内部的には刷新されているのではとまだ期待しています。
昨年はWWDCの会期中に新しいモデルが複数個追加されてテンションあがったのですが、今年は何もなし。
Core MLの公式配布モデルは追加なし #WWDC20 #ios14https://t.co/545g8e4cxO
— Shuichi Tsutsumi (@shu223) 2020年6月23日
しかしちょっと前にPoseNetモデルが追加されています。
Apple公式配布のPoseNetのCore MLモデル来た!すぐに試せるサンプルつき。https://t.co/545g8e4cxOhttps://t.co/RwHQAomaZB pic.twitter.com/dNK8vQjbVz
— Shuichi Tsutsumi (@shu223) 2020年5月4日
本記事では既存フレームワークのうち、ML・画像・音声に関連する気になるAPIをピックアップしました。次はこれら以外の既存フレームワークの更新を見ていきます。
そしてそのあとは、サンプルやセッションを見てもっと具体的に実装方法や何ができて何ができないのかといったところを探っていきます。
昨年はそれらの知見を書籍にまとめましたが、今年はnoteの有料マガジンにまとめていきたいと思います。
まだ記事がないので今ならたったの500円です。サブスクではなく買い切り価格です。記事が充実してきたら価格改定していきたい所存です。
本日からはじまったWWDC 2020、まだ基調講演しか見てないのですが(SOTUも後で見ます)、ドキュメントは公開されたので、明日から始まるセッションでどのあたりをチェックするか当たりをつけるべく、例年通りAPIの差分を見て気になった新APIをピックアップしていきます。
まずは新フレームワークから。今年の新規追加フレームワーク1は21個。
ニューラルネットワークの学習とバリデーションを行うためのフレームワーク、とのこと。
Accelerate training and validation of neural networks using the CPU and GPUs.
macOS用かな?と思いきやiOSでも利用可。
ML Compute utilizes the high performance BNNS primitives made available by the Accelerate framework for the CPU and Metal Performance Shaders for the GPU.
『ML Computeは、CPU用のAccelerateフレームワークとGPU用のMetal Performance Shadersによって利用可能になったハイパフォーマンスなBNNS primitivesを利用しています。』
とのことでこれらのラッパー的な位置づけっぽい。Core MLもBNNSとMPSをラップしており、iOS 13ではモデルの更新も可能になったが、あくまで学習済みモデルを更新するもの。こちらはレイヤークラス群も定義されてるので、PyTorchやTensorFlowみたいにネットワークを実装してiOSやmacOSのGPU/CPUを駆使して学習をまわせる、というものかと。
ちなみにMLCDevice
というクラスがあったのでもしやと思い見てみたが、Neural Engineを指定できるようにはなっていなかった。
https://developer.apple.com/documentation/mlcompute/mlcdevice?changes=latest_major
TensorFlowのように多次元テンソルのグラフを構築し、コンパイル、実行するフレームワークらしい。
Build, compile, and execute customized multidimensional compute graphs for linear algebra, machine learning, computer vision, and other similar domains.
(画像は"Build customized ML models with the Metal Performance Shaders Graph"セッションのサムネ)
以前からあったMPSCNNとはどういう関係になるのか、またML Computeを使う場合はこのレイヤー(MPSフレームワーク)を気にする必要はないのか、それともここまで潜る必要があるのか、といったあたりをセッションでチェックする。
ちなみにサンプルコードもある。
名前と一行説明からして、バックグラウンドでのすれ違い通信系(待望)かなと第一印象では思ったが、
Locate and interact with nearby devices using distance, direction, and identifier.
距離、方向、識別子を使用して、近くのデバイスの位置を特定し、対話することができます。(by DeepL)
リファレンスページみたら懐かしのBumpみたいなイラストが載っていて、
なんだ?と思ってOverviewを読んでみると、
Use NearbyInteraction (NI) in your app to acquire the position of nearby iPhones with a U1 chip, such as iPhone 11 or later. To participate in an interaction, devices in physical proximity run an app and consent to share their position and device tokens that uniquely identify their device. When the app runs in the foreground, NI notifies the interaction session of the peer’s location by reporting the peer’s direction and distance in meters.
アプリでNearbyInteraction(NI)を使用して、iPhone 11以降などのU1チップを搭載した近くのiPhoneの位置を取得します。インタラクションに参加するには、物理的に近くにいるデバイスがアプリを起動し、位置情報とデバイスを一意に識別するデバイストークンを共有することに同意します。アプリがフォアグラウンドで実行されると、NIは、相手の方向と距離をメートル単位で報告することで、相手の位置をインタラクションセッションに通知します。
Devices that share their positions using the high frequency of the U1 chip enable a fluid, interactive session in which peer positioning within the physical environment becomes a primary driver of the user experience. For example:
U1チップの高周波数を使用して位置を共有するデバイスは、物理環境内でのピアの位置がユーザ体験の主要なドライバーとなる流動的なインタラクティブセッションを可能にします。例えば、以下のようなものです。(Translated by DeepL)
なんと、U1チップ使うやつだった!これはぜひ試したい。
ちなみにサンプルもある: "Implementing Interactions Between Users in Close Proximity"
ありそうでなかった、その名も「センサーキット」。
Retrieve data and derived metrics from an iPhone’s sensors, or from a paired Apple Watch.
これまで加速度センサーやジャイロetc.のセンサー類を扱う存在だったCore Motionはdeprecatedになるのかなと思ったがまだ現役だった。こちらのフレームワークではペアリングしてるApple Watchのセンサー値も取れるのが違いか。
扱えるセンサー一覧:
static let accelerometer: SRSensor static let ambientLightSensor: SRSensor static let gyroscope: SRSensor static let onWristState: SRSensor static let pedometerData: SRSensor static let visits: SRSensor
iOS 14の目玉新機能のひとつであるApp Clips、これは新しいUI/UXだけに何がどこまで実現できるのかを把握するためにも要チェック。
Create an app clip to make some of your app’s functionality available to users who don’t have the full app installed.
同じくiOS 14の目玉新機能のひとつであるウィジェット。これも専用フレームワークが新規で追加されたとなると当然要チェック。
Show relevant, glanceable content from your app on the iOS Home screen or macOS Notification Center.
Create and automate tests in Xcode for your app’s subscription and in-app purchase transactions.(アプリのサブスクリプションとアプリ内購入トランザクションのためのテストをXcodeで作成し、自動化します。 by DeepL)
個人的にはここ最近はアプリ内課金の実装をする機会がないのだけど、これはかなり助かるやつでは...!
大層な名前に惹かれたが、中身を見てみたらちょっと期待したものと違った。
Perform low-level file operations using type-safe APIs.
Cの低レベルなファイル操作をSwiftでタイプセーフに書ける、というものらしい。
close ⟶ close() lseek ⟶ seek(offset:from:) open ⟶ open(_:_:options:permissions:) pread ⟶ read(fromAbsoluteOffset:into:retryOnInterrupt:) pwrite ⟶ write(toAbsoluteOffset:_:retryOnInterrupt:) read ⟶ read(into:retryOnInterrupt:) write ⟶ write(_:retryOnInterrupt:)
(翻訳はby DeepL)
APIリファレンスの差分から見て気になる新APIをピックアップするシリーズ、新フレームワーク編でした。次は既存フレームワークの更新を見ていきます。
そしてそのあとは、サンプルやセッションを見てもっと具体的に実装方法や何ができて何ができないのかといったところを探っていきます。
昨年はそれらの知見を書籍にまとめましたが、今年はnoteの有料マガジンにまとめていきたいと思います。
まだ記事がないので今ならたったの500円です。サブスクではなく買い切り価格です。記事が充実してきたら価格改定していきたい所存です。
https://developer.apple.com/documentation/technologies?changes=latest_majorのリストに載っている単位をここでは便宜的に「フレームワーク」と呼んでいますが、厳密にはフレームワークではないのも混じっています。↩
今月の中旬頃、オンラインサロンを始めました。
エンジニアと人生コミュニティ - CAMPFIRE (キャンプファイヤー)
5/13に募集開始し、翌日には100名の募集枠が埋まりました。今は定員いっぱいで新規で入っていただくことはできない状態ですが、自分にとって非常に新鮮な試みなので、初心を忘れないうちにそのコンセプトやねらいについて書いておこうと思います。
という認識を持っている方も結構多いのではないでしょうか。
といったところから「労力をかけずにチャリンチャリンなビジネスモデル」を期待してオンラインサロンを始めてしまうインフルエンサーも多い1ため、こういうイメージが蔓延している2のかもしれません。
では弊サロンはどうかというと、掲げているサロンの「売り」が、
フリーランスiOSエンジニア堤修一と語り合うサロンです。Zoomミーティングでキャリア相談、フリーランス関連相談、技術的な相談etc.ができます。
と、基本的に「堤に相談できます」だけなので、あまりスケールしません。相談者の数に比例してかけるべき時間も増えるので、チャリンチャリンビジネスどころか本質的には時給モデルと変わりません。3
ではなぜ始めたのか?何が狙いなのか?
一番目の理由は、「そもそも僕が相談されたい」からです。
この動画でも言ってるように、そもそも僕は「自分の考えをもっと話したい」「でも誰からも聞かれてもないのにペラペラ語り始めるのは恥ずかしい」という(めんどくさい)ジレンマをかかえています。
なので、自分のポッドキャスト/Voicyでゲストが100個も質問を考えてきてくれたときは嬉々として回答したりもしました。
そういうのもあって、昔々に「タイムチケット」というサービスで30分500円で相談にのっていたことがあり、 僕自身も楽しかったし、わりと好評だったのですが、
しかし仕事をふくむ自分のすべての活動は時間を原資とするため、さすがに500円では長くは続けられませんでした。(時間を仕事以外の何かに投入することは自分の時給を自分で払うことに等しい)
そんなわけで、
というのが本サロンをやる一番の動機です。
話が前後しますが、「相談を受けるだけ」というコンセプトを思いつく以前、KBOY氏のFlutter無料講座 + オンラインサロンサポートのモデルに深く感銘を受け、自分でも入ってみたりしつつも、自分がオンラインサロンをやるイメージはまったくありませんでした。
そんなこんなで、1000円や3000円を自分に払ってもらうモデルはまったく見えないなと。5
しかしふと閃いたのが、
「100円だったらどうだろう?」
というアイデアです。
いろんなピースがカチッとハマった感じがしたのです。あれ、これいいんじゃない?と。
思いついてすぐにTwitterアンケートを取りはじめてみたのが5/12、
【アンケート】Zoomで僕にエンジニアとしてのキャリア相談やフリーランス関連の相談、技術的な相談もできるオンラインサロンをつくったら入りたい方いますか?
— Shuichi Tsutsumi (@shu223) 2020年5月12日
(「入らない」が圧倒的1位なのはご愛嬌)
当日のうちに500円 or moreの合計が120名を超えたので、需要は確認できたのでやるしかない
→ 鉄は熱いうちに打て、というわけでアンケート翌日の午前中にCAMPFIREコミュニティでサロンをつくって申請
→ 即日審査通過して募集開始
という経緯でほとんど一夜にして一気に事が進んだのでした。
アンケートでそこそこ需要ありそうなのを確認してよしやるぞとなったとき、
— Shuichi Tsutsumi (@shu223) 2020年5月15日
「これ今日中に始めなかったら腰が重くなって当面やらないな」
という感覚があったので、その日の作業予定を後回しにしてサロン名とか説明文も突貫で書いて午前中には申請したのが本当によかったhttps://t.co/VlX1EYjNZW
「なぜ500円なのですか?安すぎませんか?」と聞かれることもあるのですが、 上述したようにそもそも自分が1000円とかで人を集められるイメージがなく、
「100円ならいけるのでは?」
からスタートして、アンケートの結果「500円でもいけそう」となった、という経緯があります。
自分の開発時給がいくらであれ、「現時点での自分のサロンの価格」としては妥当かなと。
YouTubeチャンネルを持っていて、今のところ購読者数は約700、各動画の再生数は300〜1kぐらいなのですが、 基本的にエンジニア向け、しかもわりとシニア向け(初学者に刺さる内容はほとんどない)であることから、 超人気チャンネルになって再生数がものすごく伸びて広告収入で稼げる、みたいなことはないと思うわけです。
それはそれで、何らかの自分の別のプロダクトにコンバージョンさせればいいわけですが、
...というわけでコンバージョン先が存在しない、という状態でした。
「エンジニアと人生チャンネル」を見て、僕の考え方や経験に興味を持ってくれた人が「エンジニアと人生サロン」に入ってくれる、というのはなかなか良いコンバージョンなのでは、と。
弊YouTubeチャンネルは趣味/ライフワークとしての一面もありましたが、これでビジネスとしての役割も得たので、時間を投入しやすくなります。
すぐに定員がいっぱいになったので、早速その週末に第1回のZoomミーティングを行いました。以下の相談に回答しました。
転職である程度ネームバリューがある会社(某M社)に入る際に、iOSだとこれくらいのスキルがあったら良い、こんなアプリが作れるくらいならいい!というような目安やスキルセットが知りたいと思っております。 今は、swiftに加えてfirebaseをメインに開発、勉強進めています。今年からエンジニアとして活動を始めたのでフォーカスする分野なども探っている段階です 転職に関してアドバイス宜しくお願い致します。
今、カメラと自作AIを使ったアプリのプロトタイプを作ろうとしているのですが、もともと僕pythonのスクリプトでしかプログラムを組んだことがなく、swift、iOS SDK、Xcodeの使い方もよくわかっていないのが現実です。 AIの動作確認だけできればいいため、そこまで難易度高い本はいらんとは思っていたのですが、Xcodeがしょっちゅう更新されるため、どの本読めばいいかわかっていません。 もし、日本語でアプリ開発についておすすめの本ありましたら、おしえていただけると助かります。
今、linkedin経由でgithubに上げたスクリプトをパーソナライズしてほしいで言われているので、フリーで仕事を受ける場合のtodoとnot todoついて伺いたいです。 フリーでやっていらっしゃる方も結構いらっしゃるようなので、他の方の意見も併せて伺えれば、嬉しいです。
現在バックエンドエンドエンジニアをしていて、pythonでMLを学習しようと思っています。 クライアント側と少し考え方は異なるかもしれませんが、堤さんがMLの基礎学習に用いた教材やドキュメント等があれば教えていただきたいです。
最初に海外で働いたときの始まり方と戻ってきてからの海外案件の仕事のとり方についてお聞きしたいです!
フリーランスに興味がある会社員エンジニアがフリーランスになる良いタイミングについて、皆さんに聞いてみたいです
毎回のZoomミーティングは録画され、相談別に分けられてアーカイブされます。メンバーになるとアーカイブにもアクセスできます。
本サロンの良くもあり悪くもあるかもしれない特徴が、
と、技術レベルも興味のある点もバラバラ、というあたりです。上の相談リストを眺めてもその傾向はわかっていただけるかと思います。
僕としてはミーティングは途中入退室自由だし、オンラインなので作業しながら聞いててもいいわけだし、アーカイブもされるので、興味のないトピックがあれば聞き流すなり別の作業をするなりしてくれればいいかなーと軽く考えていたのですが、 匿名アンケートをとってみたところ思った以上にこのあたりの不満も散見されたため、次のように改善することにしました。
「専門的すぎる技術の話」問題へのソリューションとして、次回は次のようにしてみます:
- 「技術の話」とその他の「一般的な話」とをそれぞれ固める(相談1〜3は一般的な話、4〜6は技術の話、みたいに)
- 技術の話は長くなりそうであれば(何分までとかより話の深さで判断したい)いったん止めて一通りの議題がおわってから続きをやる
あと、僕に相談したいことが具体的にあって入ってきてくれた方は、相談してしまうともうサロンに入り続ける意義がなくなってしまうかもしれません。 また最初は僕の意見を新鮮に感じてくれている人も、だんだんワンパターンに思えてくるかもしれません。(根っこが同じ問題は答えも同じになってしまう)
そんなわけで、本サロンのLTV(Life Time Value)は結構低い気がしてます。まだ1ヶ月目なのでわかりませんが。
とくに後者の問題は「僕自身が同じ回答ばかりする自分に耐えられなくなる」という状況が容易に想像できるため、ゲストを呼んだり、調べつつメモを書いてそれをブログ記事にする実演だったり、案件依頼とそのコミュニケーションについてパネルディスカッションしたり6といったこともやりたいなぁと。
オンラインサロンを開設したねらいについて書きました。 もし興味を持ってくれた方がいたら、 以下のページで「お気に入り」に登録しておいていただくと、退会者が出て枠が空いたたときに通知がくると思います。(今のところ2人の方が退会されています)
引き続き「エンジニアと人生サロン」(仮)をお願いいたします。
要出典↩
要出典↩
実際のところ弊サロンにはそれぞれ自身のチャンネルで有名だったり凄腕フリーランスだったりする人もいて、そういった方々がSlackで質問に回答してくれたりとか、わりとニッチな技術者同士の分科会ができたりとか、頻繁にもくもく会が開催されてたりとかのコミュニティ的なところも良かったりするのですが、それらは「たまたま」の産物であって、僕があらかじめサロンの設計として組み込んだものではないので、オフィシャルには「うちのサロンはこういうところがいいよ」とは掲げていません。↩
自分の勉強をアウトプットドリブンで進めるのはよくやります。本とかはその産物。↩
(2020.9.10追記)2回目の募集からは1000円になりました。今後も価格は変わる可能性があります。↩
100名のうち実に18名が現役フリーランス↩
Create MLによって画像分類モデル(Image Classifier)をドラッグ&ドロップでつくれるようになったので、
そのモデル(.mlmodel
)をドラッグ&ドロップするだけでリアルタイム画像認識アプリとして試せるOSSをつくりました(2年前に)。
で、最近1、Create MLが物体検出2モデル(Object Detector)の学習もサポートしたので、
拙作MLModelCamera
でも物体検出モデルをサポートしました。
Create MLで学習させた物体検出モデルやAppleが配布しているYOLOv3、coremltools
公式リポジトリに変換サンプルのあるSSDといった物体検出モデルをmodels
フォルダ配下に置いてビルドするだけで試せます。
バウンディングボックスの可視化の実装はサイズの換算とか地味に面倒だし既存実装を探すのも面倒、ということでmlmodelを自作する際には非常に便利かと思います。(自分でよく使っています。)