Guild icon
swift-developers-japan
開発以外 / zatsu
雑談
Avatar
omochimetaru 8/14/2017 3:59 AM
iosディスコに #zatsu チャンネルがあったらいいなって思った
3:59 AM
@omochimetaru わからんけど今度この勉強会いきますとかこのコンパイラの壊れ方初めて見たとかどこのCIコンテナがおせえとかXcode落ちたとか
4:00 AM
@omochimetaru こんど東京行くので誰か飲みませんか、とかそういうのあったらコミュニティ敵に楽しいなっておもう
Avatar
general?
4:00 AM
でもないのか
Avatar
omochimetaru 8/14/2017 4:00 AM
@hiragram あとはよろしく
Avatar
@hiragram あ〜 generalが運用管理とか挨拶部屋になっちゃってるからそういうのが書き込みづらいのか?
Avatar
雑って雑談のことだよね
Avatar
そう
Avatar
Chris Lattner, one of the key creators behind the Apple programming language Swift, is on the move again. After a short six-month stay at Tesla, which he..
3:04 AM
Chris Lattnerの次の職場はGoogle
Avatar
omochimetaru 8/15/2017 3:04 AM
ソリ!
Avatar
SwiftもAndroidのファーストランゲージになったりして
Avatar
omochimetaru 8/15/2017 3:05 AM
I'm super excited to join Google Brain next week: AI can't democratize itself (yet?) so I'll help make it more accessible to everyone!
Retweets
351
Likes
1383
Avatar
Google Brainていうのは子会社みたいなやつかな
Avatar
omochimetaru 8/15/2017 3:05 AM
Google Brain is a deep learning artificial intelligence research project at Google. It combines open-ended machine learning research with system engineering and Google-scale computing resources.
3:05 AM
Google Brain is a deep learning artificial intelligence research project at Google.
3:05 AM
本社の中のチーム?
Avatar
研究事業みたいなやつね
3:06 AM
多分そう
Avatar
Tesla に続きそういう系に行くのね
Avatar
omochimetaru 8/15/2017 3:06 AM
Androidには関わり無さそうだね
3:06 AM
クリスラトナー、機械学習ニキだったのか・・・
Avatar
自動運転といい、 Chris Lattner は機械学習系のものに興味があるのか。
Avatar
SiriにChris Lattnerのこと聞いたらなんか面白いこと言ったりしないかな
3:07 AM
(今職場なのでできない)
Avatar
Swift 関係なさそうだけど、もし Swift ×機械学習が進められるならいいなぁ。
😋 1
Avatar
今のSwiftで機械学習の障壁ってどういうところにあるんでしょう
Avatar
omochimetaru 8/15/2017 3:10 AM
pythonがクソ
Avatar
ライブラリの充実度ですね
Avatar
omochimetaru 8/15/2017 3:10 AM
あ、質問を読み違えた
Avatar
言語そのものの問題ではなくというかんじか
Avatar
斜め上の回答だw
Avatar
omochimetaru 8/15/2017 3:11 AM
言語自体はむしろ向いてると思うわ。
Avatar
cuda呼べるようにしたライブラリあるから作ることはできそう https://github.com/rxwei/cuda-swift
cuda-swift - Parallel Computing Library for Linux and macOS & NVIDIA CUDA Wrapper
Avatar
データの前処理とかで色々データをいじるので、 map とか filter とか簡単に書ける Swift で書けたらすごくうれしい。
Avatar
Rubyはまさに機械学習をRubyでやっていくぞのためにまずPythonとのブリッジを作ろうとしていて、たしかに全部自言語で成熟するのを待つよりは筋が良いのかなと思った
3:12 AM
Swiftはどうなるかな
Avatar
データの前処理は個人的には学習プログラムを走らせる前に通すので swiftで書いても良い
Avatar
omochimetaru 8/15/2017 3:13 AM
Rubyはまさに機械学習をRubyでやっていくぞのためにまずPythonとのブリッジを作ろうとしていて
すごいアプローチだな・・・
Avatar
ニューラルネットとか画像とかでテンソル触るところは Swift でも中途半端にしか型付けできないから、 Python でなく Swift でもイマイチ。
Avatar
高階テンソルは無理ですね
Avatar
データの前処理は個人的には学習プログラムを走らせる前に通すので swiftで書いても良い @t.ae#5802 もうちょっと学習に近いところで、一部のデータをいじったり変換したりフィルタしたりするところのイメージ。
3:15 AM
最初に大掛かりな変換するなら Swift でもいいけど、個別にちょこちょこいじらないといけなかったり。
Avatar
動的にオーグメンテーションかけるのはまぁやりますね
Avatar
学習のコードと分けると管理が面倒だし、 Python でも内包表記があれば結構なんとかなるから Python でやっちゃう。
Avatar
images = augmentation(images) みたいにやってる
Avatar
あと、どの問題に特有のクラスとかも全部 Python で作っておかないと境界で面倒なことになるし・・・。
3:17 AM
シンプルな問題だったら画像の変換とかだけで済むけど、もっと複雑なデータ構造をしてたら、結局そのデータ構造を扱うクラスとか作らないといけなくて
3:18 AM
一部を Swift に切り出そうとしても結局 Python と二重実装が必要だったりになっちゃう。
3:18 AM
↓これができたらうれしいんだけどなぁ。 let tensor: Tensor<N, 480, 640, 4> = ...
Avatar
c++のライブラリだったらそれ対応してるやつあるんですかね
Avatar
omochimetaru 8/15/2017 3:19 AM
-1の場合は可変長扱いで特殊化ってできない?
3:20 AM
C++だとそういうのがある
3:20 AM
ああ
3:20 AM
整数すら入らないか。
Avatar
-1 は Swift 的に微妙では。せめて nil だと思う。
Avatar
omochimetaru 8/15/2017 3:21 AM
C++だと型パラが intかtypenameしか取れないからそうなる
3:21 AM
でもswiftはそもそもintが無理だった
Avatar
let tensor: Tensor<nil, 480, 640, 4> = ... ↑この方がいいかな。
Avatar
Nで良いと思いますけどね 結局T<10, 480, 640, 4>とかを代入するんですよね?
Avatar
おっと。 #swift っぽくなってきたw
Avatar
3:23 AM
ゆるい話題から気づくとガチ話になるのこのディスコでありがち
Avatar
convolutionとか引数によって出力の型が変わるけどそのへんってどうなるんですかね?
Avatar
omochimetaru 8/15/2017 3:24 AM
C++なら型パラに対するconst計算ができるからいろいろできるよ
Avatar
swiftだとできないですからね…まぁ変数付きの型もできないですが
Avatar
omochimetaru 8/15/2017 3:24 AM
ウム
3:25 AM
その手の行列とかのサイズでミスってても
3:25 AM
実行時エラーでだいたい困らない気もするけどそうでもないんですか?
3:25 AM
学習をぶん回す前にすぐに落ちるから
3:25 AM
あまり時間のロスは無い気がする
Avatar
機械学習って基本ループなんで実行時エラーを地道に治すのでもべつに問題ないんですよね
Avatar
コード書いてて混乱することがある
3:26 AM
あとは可読性?
Avatar
omochimetaru 8/15/2017 3:26 AM
実行時エラーを地道に治すのでもべつに問題ないんですよね
そういうイメージ
3:26 AM
なるほど
3:26 AM
コメントで書くぐらいなら構文で書いて静的検証しろやって気持ちにはなりそう。
Avatar
特に transpose とかでゴリゴリ入れ替えたりしてると・・・
Avatar
僕は4月からRuby学び始めたばかりです笑
Avatar
Swift for Arduino とな https://swiftforarduino.wixsite.com/home (edited)
Avatar
直しましたー
Avatar
Python, 行列演算とかの型はそこまで辛くなさそうですけど (正直型は欲しいけど), pip 周りが辛そうなのであまり触りたくないですね... requirements.txt とか...あの辺りの運用どうしてるんだろう.
Avatar
omochimetaru 8/21/2017 7:33 AM
前やったときはpyvenvを使うと
7:34 AM
言語とライブラリを環境に閉じ込めて、環境に名前をつけられるという感じで
7:34 AM
まあまあなんとかなりそうでした
7:34 AM
bundlerとかnpmみたいにディレクトリローカルなインストールでは無かったんで
7:34 AM
アプリケーションデプロイ単位じゃなかったけど
7:35 AM
なんかそういうのもありそう
Avatar
なるほど.
7:39 AM
こういうのもあるみたいですけど, このリポジトリだけ見る限り最近動きなさそうですね https://github.com/pypa/pipfile (edited)
Contribute to pipfile development by creating an account on GitHub.
Avatar
gybについてちょっとちゃんと理解したいんだけど良さげなキーワードとかあったらください
8:58 AM
@tarunon
Avatar
ええ~~~
8:58 AM
とりあえず動かせとしか
Avatar
@hiragram とりあえず一つ見てみたらわかりますよ。
Avatar
omochimetaru 8/23/2017 8:58 AM
$ gyb --help
Avatar
俺とかおもちのリポジトリでgyb使ってる部分見て、
Avatar
みんなやさしい(やさしくない(やさしい))
Avatar
改造してみたらはやい
Avatar
omochimetaru 8/23/2017 8:59 AM
A GYB template consists of the following elements: - Literal text which is inserted directly into the output - %% or $$ in literal text, which insert literal '%' and '$' symbols respectively. - Substitutions of the form ${<python-expression>}. The Python expression is converted to a string and the result is inserted into the output. - Python code delimited by %{...}%. Typically used to inject definitions (functions, classes, variable bindings) into the evaluation context of the template. Common indentation is stripped, so you can add as much indentation to the beginning of this code as you like - Lines beginning with optional whitespace followed by a single '%' and Python code. %-lines allow you to nest other constructs inside them. To close a level of nesting, use the "%end" construct. - Lines beginning with optional whitespace and followed by a single '%' and the token "end", which close open constructs in %-lines. Example template: - Hello - %{ x = 42 def succ(a): return a+1 }% I can assure you that ${x} < ${succ(x)} % if int(y) > 7: % for i in range(3): y is greater than seven! % end % else: y is less than or equal to seven % end - The End. - When run with "gyb -Dy=9", the output is - Hello - I can assure you that 42 < 43 y is greater than seven! y is greater than seven! y is greater than seven! - The End. - '''
8:59 AM
↑ヘルプ自体もソースの中に入ってるからソース読めば同じことやな 😋
Avatar
俺とかおもちのリポジトリ
これどれ?
Avatar
おお
Avatar
やさしい(やさしくない(やさしい)) (edited)
Avatar
omochimetaru 8/23/2017 9:00 AM
cpp-rhetoric - small fundamental library for modern C++ programming.
9:00 AM
↑C++だけど、まあ、同じっしょ
Avatar
トゲナシトゲアリトゲナシトゲトゲみたいなのやめて。脳みそショートする
Avatar
↑の @tarunon さんの Swift だしわかりやすい。
Avatar
みんな教えてくれてやさしい(黙ってソース嫁でやさしくない(しかしそれは本質的なのでやさしい))
Avatar
文章が脳に優しくなった
Avatar
やさしさ推論してよ
Avatar
gyb でよくわかってないのが、 continue とか break がうまくいかないんだけどどうすればいいかわかります?
Avatar
EnumConvertibleは数値に対してループ回すだけなので比較的優しいコードですね、多分。
9:02 AM
ループの中で、ですかね?
Avatar
omochimetaru 8/23/2017 9:02 AM
if で分岐しかしてないからやったことないや。
Avatar
↓みたいな。 % for x in xs: % if x == 0: % continue % end ... % end
Avatar
pythonのcontinue/breakって何か記述違ったかな
9:04 AM
真面目にやってたの5年以上前だからあやふやすぎる
Avatar
omochimetaru 8/23/2017 9:04 AM
いや、これ結構ややこしいことしてて
Avatar
@hiragram そうだ、これだけは知っておいた方がいいのが、 % 以下のところのコードは Python だということです。
Avatar
9:04 AM
パイソンなんですねなるほど
Avatar
@koher パッチなげましょう!
Avatar
それ知らないと意味不明になるとこだったw
Avatar
gybってジブ?ギブ?ジーワイビー?
Avatar
omochimetaru 8/23/2017 9:04 AM
部分ごとにevalしたりするかんじだから
Avatar
あー
Avatar
omochimetaru 8/23/2017 9:05 AM
で、ループ展開とかがAST的なデータ構造になってて
Avatar
@rintaro バグなんすか?w使い方間違ってるのかと思ってた・・・。
Avatar
omochimetaru 8/23/2017 9:05 AM
再帰的に評価していく感じだから
9:05 AM
breakとか実際大変そう。
9:05 AM
単純に一個のpythonにしてからえいやっと実行してるわけではなくて。
Avatar
% { } % の中なら breakcontinue できるけど、それだと間でコード生成できず・・・
Avatar
暗黒みてきた
9:06 AM
変数にぶち込んで展開するとかになりそう
Avatar
continue できなくて if で全体囲んでるからネストが辛い・・・。
9:08 AM
Swift 4 の """ によって、 Swift コードとして有効な gyb 的なものが作れないだろうか?
Avatar
omochimetaru 8/23/2017 9:08 AM
コンテキストが反転してるからきつくないですか?
9:08 AM
これはテキストがメインで、エスケープした領域がコード
Avatar
そこは反転しちゃうね。
Avatar
omochimetaru 8/23/2017 9:09 AM
Swiftコードとしてvalidな時点で、コードがメインで、エスケープしたがわがテキストになることは避けられない
9:09 AM
多分そこがテキストがメインになってるのが
9:09 AM
この手のツールの一番魅力的なところなんじゃないかと
9:09 AM
おもっている
Avatar
https://github.com/apple/swift/blob/master/utils/gyb.py#L828-L829 こういう感じのコードに展開されるから、 break とかは実際厳しいですね。
swift - The Swift Programming Language
Avatar
omochimetaru 8/23/2017 9:14 AM
パースして裏表ひっくり返してまるまる一個のSwiftに変換してからバッサリ実行するやつ作ったら面白そうだな
Avatar
if __children__[0].execute(__context__): break になるようにしておいて、 continuereturn False , breakreturn True に変換すればいいかな。 (edited)
Avatar
omochimetaru 8/23/2017 9:16 AM
forの中ってchildrenは1個なんですっけ? 普段のforの中の文は break / contiune / 次に進むの3択ですけど
9:17 AM
あ、 return に変換するってそういうことか
Avatar
python は for ... else あるからきちんとやるならもっと複雑になりそう。
Avatar
omochimetaru 8/23/2017 9:21 AM
あ〜そういうのもありますね・・・なるほど。
Avatar
お、できた
Avatar
omochimetaru 8/23/2017 9:30 AM
お?
Avatar
まず、↓の魔法の extension を用意して prefix func +(string: String) { print(string) }
9:31 AM
for n in 1...20 { let inTypes = (1...n).map { "T\($0)" } let commaSeparated = inTypes.joined(separator: ", ") let arrowSeparated = inTypes.map { "(\($0))" }.joined(separator: " -> ") let nestedClosuresBegin = inTypes.map { "{ \($0.lowercased()) in " }.joined() let nestedClosuresEnd = (1...n).map { _ in " }" }.joined() +""" public func curry<\(commaSeparated), R>(_ f: @escaping (\(commaSeparated)) -> R) -> \(arrowSeparated) -> R { return \(nestedClosuresBegin)f(\(commaSeparated.lowercased()))\(nestedClosuresEnd) } """ }
9:31 AM
swift ファイルとして実行可能
9:32 AM
↓実行結果 public func curry<T1, R>(_ f: @escaping (T1) -> R) -> (T1) -> R { return { t1 in f(t1) } } public func curry<T1, T2, R>(_ f: @escaping (T1, T2) -> R) -> (T1) -> (T2) -> R { return { t1 in { t2 in f(t1, t2) } } } public func curry<T1, T2, T3, R>(_ f: @escaping (T1, T2, T3) -> R) -> (T1) -> (T2) -> (T3) -> R { return { t1 in { t2 in { t3 in f(t1, t2, t3) } } } } public func curry<T1, T2, T3, T4, R>(_ f: @escaping (T1, T2, T3, T4) -> R) -> (T1) -> (T2) -> (T3) -> (T4) -> R { return { t1 in { t2 in { t3 in { t4 in f(t1, t2, t3, t4) } } } } }
Avatar
omochimetaru 8/23/2017 9:32 AM
print(""" ... """) が見かけ上 +""" ... """ になっっているだけ?
Avatar
はい
9:32 AM
だけど
9:32 AM
コンテクスト反転でも
Avatar
omochimetaru 8/23/2017 9:32 AM
嬉しさがあまりわからない・・・
Avatar
""" """
9:33 AM
で囲む外と中の話だから
9:33 AM
いちいちprint って書くのは面倒だけど
9:33 AM
+""" """
9:33 AM
で済ませられるならコンテクスト反転してても対して問題ない気がする。
Avatar
omochimetaru 8/23/2017 9:33 AM
>""" """ とかのほうがそれっぽい気がする (edited)
Avatar
それは新規 prefix operator を作成しないといけない。
Avatar
omochimetaru 8/23/2017 9:34 AM
あ〜
9:34 AM
+は既存のやつだからヘッダが短いと・・
Avatar
+""" <html> ... <table> """ for user in users { +""" <tr> <th>\(user.id)</th> <td>\(user.name)</td> </tr> """ } +""" </table> ... </html> """ (edited)
9:36 AM
↑みたいな感じでも使える。 (edited)
9:37 AM
まあツールにするなら > 作ってもいいかも。
9:38 AM
gyb でやりたいこと大体できそうじゃない?
Avatar
omochimetaru 8/23/2017 9:40 AM
できそうではありますね
Avatar
お、 users さえ定義してやれば↑動いた。
9:40 AM
<html> ... <table> <tr> <th>123</th> <td>Chris Lattner</td> </tr> <tr> <th>456</th> <td>John McCall</td> </tr> </table> ... </html> (edited)
9:45 AM
この """ はうれしいなぁ。 Swift 5 で async/await も入ったらめちゃくちゃ使いやすい言語になりそうだ・・・。
9:46 AM
Swift の """ はインデントとか改行とかよく考えられてるのもうれしい。
Avatar
blacklist / whitelist という用語が人種を「連想させる可能性」があるから除去する。 https://github.com/apple/swift/pull/11687
The etymology of these terms isn't about race, but "black" = "blocked" and "white" = "allowed" isn't really a good look these days. In most cases we weren't using these terms particularly precisely...
Avatar
omochimetaru 8/30/2017 2:04 AM
ポリコレニキだ
Avatar
ポリポリがコレコレしてきた
Avatar
omochimetaru 8/30/2017 2:05 AM
何かのライブラリでも、「master/slave」が奴隷制度を連想させるから「leader/follower」に書き換えるっていうPRが飛んだ話があった。
Avatar
ルネサンス初頭を繰り返してることにこいつらいつになったら気づくんやろか
Avatar
最近の シャーロッツビル の件でナーバスになってますねー
Avatar
omochimetaru 8/30/2017 2:06 AM
- bool isPrivateStdlibDecl(bool whitelistProtocols=true) const; + bool isPrivateStdlibDecl(bool treatNonBuiltinProtocolsAsPublic = true) const;
2:07 AM
-/// Checks if a given mangled name could be a name of a whitelisted -/// specialization. -bool isWhitelistedSpecialization(StringRef SpecName); +/// Checks if a given mangled name could be a name of a known +/// prespecialization for -Onone support. +bool isKnownPrespecialization(StringRef SpecName);
2:07 AM
動機はともあれdiffとしては可読性が上がってる気がするw
Avatar
MacProでビルドしてみたらSwiftの初回ビルド15分くらいだった
Avatar
omochimetaru 8/30/2017 2:31 AM
はや
Avatar
15分ははやいのか。
Avatar
omochimetaru 8/30/2017 2:32 AM
macminiで6時間とか
2:32 AM
かかる
Avatar
6時間やばw
Avatar
なんじゃそれは
Avatar
omochimetaru 8/30/2017 2:32 AM
ビルドじゃ
2:32 AM
まあいろいろ端折るかどうかにもようrけど。
Avatar
-Rtだの
Avatar
macminiっていつのやつ?
Avatar
omochimetaru 8/30/2017 2:33 AM
結構前
Avatar
omochimetaru 9/1/2017 3:02 AM
SRってなんだっけ?スナイパーライフルって答えなかったの偉い
Avatar
AR はアサルトライフルですね
Avatar
Kotlinとかでもこのディスコみたいな激ヤバプログラミングモンスターの集いみたいな場あるんですかね
7:00 AM
「Kotlinスタートブック」の著者で事実上のKotlinエバンジェリスト。エムスリー株式会社のソフトウェアエンジニア。日本Kotlinユーザグループ代表。講演・執筆の依頼お待ちしております〜!共通持ち陸派
Tweets
46332
Followers
2396
7:00 AM
↑JPだとこの人が建てたこれだけ知ってる
Avatar
コトリンモンスターだ
Avatar
omochimetaru 9/4/2017 7:01 AM
@hiragram ところでさっきgist付きでリプライ送ったんだけどスルーされてる
Avatar
見てなかったわ
7:02 AM
みるわ
Avatar
ラトナの肩書は Director of Engineering, Tensor-Flow Developer Experience だそうで。
8:28 AM
ML そのものというよりは、tooling のほうに興味があるっぽい印象。 (edited)
Avatar
使いやすい Swift API に期待。
Avatar
omochimetaru 9/7/2017 1:25 AM
Swift4から3に書き換える作業しま〜す😂
😖 4
Avatar
omochimetaru 9/7/2017 1:49 AM
うお!何も書き換えなくてもいけた!
🎉 2
1:49 AM
3 / 4 クロスコンパイルコードだw
Avatar
ConditionalConformanceが入ってたら出来なかったことだw
Avatar
omochimetaru 9/7/2017 2:32 AM
たしかに・・・
2:32 AM
ConditionalConformanceありで書いたコードを無しに持っていくのはめちゃつらそうだな・・・
Avatar
Autolayoutで書いたコードを手計算になおす気持ちになりそう
Avatar
omochimetaru 9/7/2017 4:10 AM
$ swift run 便利じゃのう
Avatar
チャットみたいなUIをtableviewでやるときにtableviewとcellを両方180度反転させるのってあり?
4:34 AM
LINEみたいなUI
Avatar
CSS Hackみたいな荒技ですねw
Avatar
LINE のようなメッセージアプリのように下から新しい順に並べたいと思ったのでやり方を調べてみました。

UITableView をそのまま表示する

まず UITableView にそのまま表示をしてみました。上から順に新しい...
4:44 AM
一応理にはかなっていてできそうって感じはするんだけど
4:44 AM
こういうケースで困りそうみたいなのが思い浮かんだら教えてほしく。
Avatar
俺やったことあるよw
Avatar
こまったことない?
Avatar
RefleshControlが無能になるから自作することになる
Avatar
下に出て来るの?
Avatar
そうそう、あと計算が一部怠かった気がする
Avatar
計算。
Avatar
なんかでハマった気がするけど忘れちゃった
Avatar
はまるならやめとこう
Avatar
これ何か知恵ないですか https://twitter.com/hiragram/status/906900482186108928
なんかUIカクカクする気がするなーってときにどこのコードがメインスレッドブロックしてるかどうやってしらべるのが効率いい?
Avatar
omochimetaru 9/10/2017 3:24 PM
Time Profilerは?
Avatar
instrumentsだよね
3:25 PM
Time profilerでみれるのか
Avatar
omochimetaru 9/10/2017 3:25 PM
うん メソッドごとに消費してる秒数がわかる
Avatar
それはしらなかった
3:25 PM
やってみよう
3:26 PM
なんかXcodeのどっかのビューでMain thread block detectionみたいなのを見たような見てないような記憶があるんだけど夢かもしれない
Avatar
omochimetaru 9/10/2017 4:05 PM
それは俺は知らないけどまた別の機能だと思う
Avatar
Xcode 9でschemeのRunアクションのDiagnosticsにMain Thread Checkerってのが追加されてます。
😃 1
Avatar
UIKitへの操作がMainスレッド以外から呼び出されると警告出してくれる奴でしたっけ?
Avatar
norio_nomura 9/11/2017 2:02 AM
そう。詳しくはSession 406を。 https://developer.apple.com/videos/play/wwdc2017/406/
Learn how to use Xcode 9 runtime tools to help find issues and bugs, ranging from missing and unintended UI updates to integer overflows...
Avatar
norio_nomura 9/11/2017 3:08 AM
あ、そっか。逆か。
3:14 AM
メインスレッドで呼ばないといけないAPIの情報ってどこにあるのだろう。
3:15 AM
Important Use UIKit classes only from your app’s main thread or main dispatch queue, unless otherwise indicated. This restriction particularly applies to classes derived from UIResponder or that involve manipulating your app’s user interface in any way.
Avatar
norio_nomura 9/11/2017 3:16 AM
Main Thread Checkerが元にする情報のことです。
Avatar
omochimetaru 9/11/2017 3:18 AM
UIKitとかのSDK側にアノテーションみたいな形でついてるんでしょうかねえ
Avatar
触っている感じだと、UIKitのどのAPIもメインスレッドで呼ばないといけないのかな?と思っていました。 例: UNUserNotificationCenter.current().requestAuthorization(options: [.badge, .sound, .alert]) { granted, error in logger.error(error) if !granted { return } // これまで直に呼んで問題なく動いていたがチェッカーに指摘されたので、対応 DispatchQueue.main.async { UIApplication.shared.registerForRemoteNotifications() } } (edited)
Avatar
omochimetaru 9/11/2017 3:20 AM
@mono norioさんが言っているのは、その知識をどうやって Main Thread Checkerの実装に与えているか、ということだと思います
Avatar
norio_nomura 9/11/2017 3:20 AM
https://developer.apple.com/videos/play/wwdc2017/406/?time=160 The main thread checker is a completely new tool in Xcode 9 and it detects violations of some commonly used APIs. And specifically it focuses on UI updates and multithreading. Some APIs require that you only use them from the main thread. (edited)
Learn how to use Xcode 9 runtime tools to help find issues and bugs, ranging from missing and unintended UI updates to integer overflows...
3:21 AM
Some APIs
Avatar
norioさんが言っているのは、その知識をどうやって Main Thread Checkerの実装に与えているか、ということだと思います
UIKitのどのAPIが対象なのだろうか?という意味と受け取ってしまいました。
3:23 AM
僕は有効時は実行時にどのフレームワークに属しているかチェックしているのだろうな程度に思っていました。
Avatar
norio_nomura 9/11/2017 3:24 AM
アノテーションの様に情報を持たせられるなら、メソッドに「メインスレッドで呼んではいけない」という情報を持たせられたら便利なのかな?と思ったり。
Avatar
ですねー
Avatar
omochimetaru 9/11/2017 3:25 AM
自分たちでも使えるようになってたら良いですね
Avatar
今は無理そうですね。定義とか見てもそれっぽいのが無いので、何と無く将来的にも厳しそうな気がしつつ、どうでしょうね 🤔
Avatar
AndroidStudioに同様の機能乗ってませんでしたっけ
Avatar
norio_nomura 9/11/2017 3:34 AM
/Applications/Xcode-beta.app/Contents/Developer/usr/lib/libMainThreadChecker.dylib
Avatar
norio_nomura 9/11/2017 3:53 AM
MTC_VERBOSE=1とかすると、Main Thread Checkerがログを吐く様になる。
👀 1
3:55 AM
… Swizzling class: WKWebInspectorWKWebView Swizzling class: WKWebsiteDataStore Swizzling class: WKWebView Swizzled 9839 methods in 324 classes. みたいな。
Avatar
omochimetaru 9/11/2017 4:02 AM
メソッド Swizzling でスレッドアサーションを注入するのかな?
Avatar
やべえ
Avatar
norio_nomura 9/11/2017 5:06 AM
特定のクラスたちを含むフレームワークたちに含まれるクラス全てで、selがハードコードされた条件に一致しないメソッド全てをswizzleしてるぽい。
5:07 AM
API側に情報を持たせるとかはしていない。 (edited)
Avatar
omochimetaru 9/11/2017 5:08 AM
なるほど
5:08 AM
.dylibだけからそこまでわかるんですか
Avatar
norio_nomura 9/11/2017 5:10 AM
__library_initializerの中身を見ました。
👀 1
Avatar
omochimetaru 9/11/2017 5:11 AM
アセンブリですか?
Avatar
norio_nomura 9/11/2017 5:11 AM
そう。Xcodeでシンボリックブレークポイントを__library_initializerに仕掛けてざっと読んだ感じ。
👀 1
Avatar
omochimetaru 9/11/2017 5:12 AM
おおすごい・・
Avatar
norio_nomura 9/11/2017 5:18 AM
シンボル名とかXcodeがしっかり表示してくれるので、そんなに難しくないと思います。 (edited)
👀 1
Avatar
さっきのtableView反転のやつつぶやいたら、ハマリポイント教えていただきましたhttps://twitter.com/takecian/status/907103997714096128
@_ha1f @Qiita Peek and pop やろうとすると view が元に戻っちゃうみたいなので検討されてたら回避策考える必要はありそうですー https://t.co/IObxbKOaYm
Avatar
やはりCSS Hackはやめましょう(戒め
Avatar
iOS11のDrag and Dropも死にそう
Avatar
norio_nomura 9/19/2017 6:02 AM
Processのドキュメントを見たらcurrentDirectoryPathdeprecatedで、ソースを見たら@availableとかなくて、Original sourceを見たらカテゴリで書かれてた… https://developer.apple.com/documentation/foundation/process/1413110-currentdirectorypath objective-c @interface NSTask (NSDeprecated) @property (nullable, copy) NSString *launchPath; @property (copy) NSString *currentDirectoryPath; // if not set, use current - (void)launch; + (NSTask *)launchedTaskWithLaunchPath:(NSString *)path arguments:(NSArray<NSString *> *)arguments; // convenience; create and launch @end (edited)
Avatar
ほほう、カテゴリごとdeprecatedなんですね。
6:04 AM
Swiftでextensionごとってできましたっけ?
Avatar
omochimetaru 9/19/2017 6:04 AM
? Process と NSTask は同じクラス・・・?
Avatar
typealias Process = NSTask とか生えてるのかしら
Avatar
omochimetaru 9/19/2017 6:05 AM
それだと依存性的にまずいきが
Avatar
apinotesでClangImporterがリネームしてるのかな。
Avatar
norio_nomura 9/19/2017 6:06 AM
Swiftでextensionごとってできましたっけ? 出来ないからSwiftのインターフェイスには反映されていない感じ。
Avatar
class My { } @available(*, unavailable) extension My { func hello() { print("hello") } } My().hello() コンパイル通るけど何も怒らない
😩 1
Avatar
norio_nomura 9/19/2017 6:08 AM
- Name: NSTask SwiftName: Process Methods: - Selector: 'launchedTaskWithLaunchPath:arguments:' SwiftName: launchedProcess(launchPath:arguments:) MethodKind: Class - Selector: 'launchedTaskWithExecutableURL:arguments:error:terminationHandler:' SwiftName: run(_:arguments:terminationHandler:) MethodKind: Class - Selector: 'launchAndReturnError:' SwiftName: 'run()' MethodKind: Instance
Avatar
SwiftName!
Avatar
omochimetaru 9/19/2017 6:08 AM
邪悪すぎるwww
6:08 AM
あれか、NS除去名系のやつか
Avatar
norio_nomura 9/19/2017 6:09 AM
Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/Foundation.apinotesに書かれてる。
Avatar
objcの、なんだっけ
Avatar
omochimetaru 9/19/2017 6:09 AM
↑たしかに上のところで ObjCに切り替えると NSTaskになったw
6:09 AM
それだと依存性的にまずいきが
ProcessはSwift STDかと思ったけどそもそもFoundationか。STDにあるのは CommandLine だった。
6:11 AM
Class Factory Methods If the Swift compiler fails to identify a class factory method, you can use the NS_SWIFT_NAME macro, passing the Swift signature of the initializer to have it imported correctly. For example: + (instancetype)recordWithRPM:(NSUInteger)RPM NS_SWIFT_NAME(init(rpm:)); If the Swift compiler mistakenly identifies a method as a class factory method, you can use the NS_SWIFT_NAME macro, passing the Swift signature of the method to have it imported correctly. For example: + (id)recordWithQuality:(double)quality NS_SWIFT_NAME(record(quality:));
6:11 AM
このへんかしら
Avatar
ObjCヘッダでもSwift名指定できるから、apinotesは中間措置ではあるんですが
6:12 AM
ヘッダに手をつけられない外部ライブラリ使うときに便利なので、spmも対応してほしい。
6:14 AM
CGRectとかのImport as memberでも使われてるはず。
Avatar
norio_nomura 9/19/2017 6:15 AM
ドキュメントを読まないとわからないdeprecatedとかやめてほしい…
Avatar
ObjCのcategory deprecatedが@availableとして降ってくるのが理想っぽい
Avatar
omochimetaru 9/19/2017 6:15 AM
なるほど apinotes
Avatar
Kishikawa Katsumi 9/19/2017 6:16 AM
ObjCも@interface NSTask (NSDeprecated)って書くだけではコンパイラは何もしないと思いますね。これはそれぞれのメソッドにdeprecatedのアノテーションがいるはず。
Avatar
omochimetaru 9/19/2017 6:17 AM
NSDeprecated は単にそういうカテゴリ名ってことですか?
Avatar
Kishikawa Katsumi 9/19/2017 6:17 AM
はい。違うかな。
6:18 AM
Deprecatedをカテゴリやエクステンションにまとめるのは後で消しやすい(Obsolete)という実装上のテクニック。(Appleがそれをする意味はあまりないと思いますが。)
Avatar
omochimetaru 9/19/2017 6:20 AM
[omochi@omochi-iMac swpr]$ cat b.m #import <Foundation/Foundation.h> @interface Cat : NSObject @end @interface Cat (NSDeprecated) - (int)nya; @end @implementation Cat @end int main() { Cat * cat = [[Cat alloc] init]; return cat.nya; } [omochi@omochi-iMac swpr]$ clang -fobjc-arc b.m
6:20 AM
警告は出なかった
6:21 AM
(検証がこれであってるか不安)
Avatar
Kishikawa Katsumi 9/19/2017 6:22 AM
ちょうど私もNSTaskのコードをXcodeで確かめて警告も何も出ませんでした。なので、
Avatar
omochimetaru 9/19/2017 6:22 AM
ObjC側も何も出ないw
Avatar
NS_DEPRECATEDならちゃんと降ってくる、カテゴリは降ってこないですね
Avatar
ほんとに ドキュメント上だけってことですかねぇ
Avatar
NSDeprecated(Deprecatedとは言っていない)
6:23 AM
🤔
🤔 1
Avatar
Kishikawa Katsumi 9/19/2017 6:23 AM
まあよくあること。アップルの怠慢です。
Avatar
ところで #zatsu
Avatar
Kishikawa Katsumi 9/19/2017 6:24 AM
私的なランクづけでいうと、これは下から3番目か4番目で、ドキュメントにも書かれてないけどヘッダのコメントにだけ書いてあるとか (edited)
6:24 AM
WWDCのビデオでだけ言っているとかがその下にあります。
Avatar
omochimetaru 9/19/2017 6:25 AM
ビデオだけは難易度高いですね・・・
Avatar
Kishikawa Katsumi 9/19/2017 6:25 AM
まあ地道にレポートしたらじきに反映されるんじゃないかと。
Avatar
norio_nomura 9/19/2017 6:27 AM
#swift#objc か迷ったけど #zatsu に書いた。
Avatar
Kishikawa Katsumi 9/19/2017 6:28 AM
Deprecatedをカテゴリやエクステンションに分けておいて、メジャーバージョンアップなどで消すというのはよくあるテクニックで(アップルはそれをたぶん消すことはないと思うけど)さっきのはさらに
6:29 AM
@interface NSTask (NSDeprecated) @property (nullable, copy) NSString *launchPath __attribute__((deprecated("..."))); @property (copy) NSString *currentDirectoryPath __attribute__((deprecated("..."))); - (void)launch __attribute__((deprecated("..."))); + (NSTask *)launchedTaskWithLaunchPath:(NSString *)path arguments:(NSArray<NSString *> *)arguments __attribute__((deprecated("..."))); @end
6:30 AM
と書いてないとダメだけどそれを忘れている。Swiftでもカテゴリがエクステンションに変わるだけでほぼ同様のやり方を取ることはよくあると思います。
Avatar
omochimetaru 9/19/2017 6:32 AM
なるほど。
Avatar
@interface NSValue (NSDeprecated) /* This method is unsafe because it could potentially cause buffer overruns. You should use -getValue:size: instead. */ - (void)getValue:(void *)value; // This method will likely be deprecated in a future release @end https://developer.apple.com/documentation/foundation/nsvalue/1415141-getvalue?language=objc 見てみるとこっこうあるもんですね。
Avatar
Kishikawa Katsumi 9/19/2017 6:37 AM
アップルのドキュメントジェネレータは、NSDeprecatedみたいなのもアノテーションとして扱ってるっぽいですね。
6:43 AM
ClangImporterへのバグをbugs.swift.orgへも書いておくと良いのかな?
Avatar
(NSDeprecated) カテゴリを @available(*, deprecated) として扱うっていうことですか?
6:46 AM
@available(*, unavailable) extension My { これが通るけどnoopなのは書いておくべきだとおもいます。ClangImporterじゃないけど。
Avatar
norio_nomura 9/19/2017 6:47 AM
テストインプットとしては(NSDeprecated)カテゴリにも__attribute__((availability(…があることを前提にしているぽい。 https://github.com/apple/swift/blob/master/test/Inputs/clang-importer-sdk/usr/include/AppKit.h#L49 (edited)
swift - The Swift Programming Language
Avatar
ObjC コンパイラが NSDeprecated を特別扱いしない以上、Swift だけでそれをやるのは違う感じですね。
Avatar
norio_nomura 9/19/2017 6:48 AM
ですよね。
Avatar
Kishikawa Katsumi 9/19/2017 6:49 AM
NSDeprecatedをドキュメントジェネレータが特別に扱うのはともかくとして、正しい修正は各メソッドとプロパティにDeprecatedアノテーションをつけることだと思います。
👍 2
Avatar
I made an iOS app architecture generator
Retweets
141
Likes
392
😂 2
Avatar
w
6:20 AM
知らないのばっかりだ〜と思ったら適当に生成してるだけかw
Avatar
略語ついてるのうけるw
Avatar
皮肉が効いてて好き
Avatar
Kishikawa Katsumi 9/21/2017 6:21 AM
Singletonが入るとなぜか強そうな感じがしてしまう
Avatar
Singleton Functional View-model Router良い
Avatar
Coordinatorという単語も追加してもいいかもしれない。Singleton Functional Coordinatorとか😜
😂 1
Avatar
そういえば先週チームにDangerが導入されたのですが各社のDangerfileどうなっているんですか便利な設定ありますか
Avatar
warningがなければLGTMがつきます
Avatar
現状SwiftLintぐらいしか走ってない
6:37 AM
自動レビューだ
Avatar
あとZenHub使ってるので、octokitから直接参照はできないんですけど、PRに対応するIssueがEpicだったらwarningを吐くというローカルルールがあります。
6:41 AM
入れる際ぎぎにゃんにも色々聞いたので、御社だと彼がくわしいと思いますよ。
Avatar
確かに国内版のコード見て見たらこまやかな対応入っていた
6:46 AM
残業中のコミットに警告が飛んでくるっぽい
Avatar
こんな時間に仕事させる気?みたいな人間味のあるコメントが飛んでくるみたいですね
Avatar
Dangerたん
Avatar
午前中にPR来たらWarning出したい
Avatar
以下Danger大喜利です
Avatar
VC名をどっかに指定したら勝手にSS撮って貼り付けてくれるとか出来たら便利そうだなぁ
Avatar
単体で立ち上がるDIフリーなVC…!
6:56 AM
理想郷だ
Avatar
つよい
Avatar
Reduxみたいにグローバルな状態が持てれば出来そう
Avatar
TCぶち込んで動けばいいから
6:57 AM
VCのテストを書こうという話と合致しますね
Avatar
現状UIテスト上でSS取れるんだっけかな。PR関係する画面が変更された時だけPRにアップロードしてくれるぐらいならDangerでできそう。
Avatar
beforeとafterのスクショのdiff示してほしい
Avatar
FBSnapshottestcaseとか
Avatar
Kishikawa Katsumi 9/21/2017 7:11 AM
UIテストは以前までは画面が変わったときに自動的にスクリーンショットが撮られるだけでコントロールできなかったけどXcode 9から好きなときに撮れてファイルも自由に残せるようになりました。
Avatar
UITableViewControllerのtableViewのdidSetが呼ばれないのなんなんだろう
10:32 AM
UITableView! だけど実はイニシャライザで付けてるのかな
Avatar
initからセットしてるからでは
Avatar
ほげ〜
10:32 AM
じゃあなんでビックリついてんねん〜
Avatar
まあobjcだし
Avatar
太古の昔はUIViewControllerが非表示かつメモリ少量の場合にviewだけ解放されてviewDidLoadで再セットみたいなのあったし、これを正しく表現するならIUO適切かなと言う気がする
10:37 AM
今どうなってるかは知らない
Avatar
あー
10:37 AM
didReceiveMemoryWarning
10:37 AM
あー。
Avatar
viewDidUnloadのあった頃の話
Avatar
UIVIewControllerのviewも UIView! か。
Avatar
そっちはinitじゃなくてviewDidLoadの直前だね
10:38 AM
動きとしてはlazy varに限りなく近い
Avatar
じゃあdidSetよばれんのかな
Avatar
viewDidLoadつかおうね
Avatar
override var view: UIView! { didSet { print("aaaa") } } これ書いたらそのVCに遷移する時にアプリがまるごとハングするようになった。
Avatar
やべぇよやべぇよ
Avatar
CPUが100%なってるな。
10:42 AM
aaaaはprintされない。
Avatar
果たしてviewDidLoadは呼ばれるのか
Avatar
呼ばれない気がする
Avatar
見てみる
10:43 AM
よばれないね
10:44 AM
viewのdidSetの中にブレーク貼っても止まらないからもう一個手前で様子がおかしくなってる
10:45 AM
should not overrideみたいなのは書いてないね
Avatar
willSetは呼ばれたりして
Avatar
Kishikawa Katsumi 9/25/2017 10:45 AM
どうもStackOverflowが起きてるみたいですね。
Avatar
そうですね 最後はSOでオチました
10:46 AM
お、willSetは呼ばれたぞ。
Avatar
UIKitとswiftどっちが壊れてるんやろか
Avatar
didSetを書かずにwillSetだけにしたらviewDidLoadに到達した。
10:46 AM
普通に画面も遷移した。
10:46 AM
didSet壊れてそう?
Avatar
えーっと
10:47 AM
多分だけど、UIViewController.view自体は本来はcomputed propertyのはずで
Avatar
そうね
Avatar
それをoverrideしてdidSetやら生やせるのが完全におかしい
10:47 AM
lazy varもdidSet生やせない
Avatar
lazy varなんでdidSet生やせないんですか
Avatar
現状はサポートしていない、理論上可能かはちょっとわからない。 lazy varはコンパイル時にcomputed propertyとして展開されてるみたいなのは @omochimetaru が指摘してた気がする
Avatar
willSetが呼ばれたのを見るとComputedPropertyではないのでは、という気もしてきた。
Avatar
Objective-Cで@propertyを宣言しつつ、内部ではゴニョっとやってるものを作って
10:51 AM
Swiftとつなげたらどういうことになるかを確かめてみると謎が解けるかも?
10:52 AM
#swift みてきたぞ
10:52 AM
#objc かな?
Avatar
computed propertyでもsetget が両方用意されてればwillSet呼ばれるか
10:56 AM
↓これだとwillSet実行されるけど override var view: UIView! { willSet { print("willSet") } } ↓これだとwillSetも呼ばれなくなる override var view: UIView! { willSet { print("willSet") } didSet { print("didSet") } }
Avatar
class Foo { lazy var bar: Int = 0 } class Foo2: Foo { override var bar: Int { didSet { print("a") } } } Foo2().bar = 2
10:57 AM
あれ?これまじかw
10:57 AM
いけるやんけ
10:58 AM
まじか~~
Avatar
lazy varはコンパイル時にcomputed propertyとして展開されてるみたいなのは @omochimetaru が指摘してた気がする
これは事実で、
computed propertyでもset と get が両方用意されてればwillSet呼ばれるか
これなんじゃない?
Avatar
overrideしてlazy var didSetが正しく動くのはバグかどうか
11:00 AM
これいけるならlazy var didSetをサポートしない理由がよくわからなくなってくる
11:02 AM
続きは #swift
Avatar
前回はスレ警察しても無視されたので今度はパワるぞ
11:04 AM
スレ警察したら議論止むのやめろ
😘 2
Avatar
https://twitter.com/rintaro/status/912329050789601281 一部の方にはお知らせしてましたが、やっと正式に決まりまして、Appleに入ることになりました。
I'm super excited to share that I'm joining Apple to work on Developer Tools next week!
👏 22
Avatar
🍎 🎉
❤ 2
Avatar
omochimetaru 9/27/2017 7:35 AM
#deleted-channel を作ったので Swiftの雑なものはそちらへ
Avatar
消えたw
Avatar
きえた
Avatar
omochimetaru 9/27/2017 7:39 AM
何もなかったよ
👀 4
Avatar
チャンネルが消える瞬間を見れた😆
Avatar
「消しまーす」に👍 付けた瞬間に消えた
😆 1
Avatar
(つд⊂)ゴシゴシ
Avatar
あ、おいしそうなご飯が消えた
Avatar
強烈な飯テロだった
2:17 PM
画像通知は来なかったですね
Avatar
サーロインステーキ丼(つд⊂)ゴシゴシ
Avatar
norio_nomura 10/5/2017 3:47 AM
coremltools - Converter tools for Core ML.
🙂 2
Avatar
func foo<T: P>(a: T) -> T.A { fatalError() } struct B {} protocol P {} extension P { typealias A = B } これがコンパイル通らないのなんでですかね 🤔 'T' does not have a member type named 'A'; did you mean 'A'? になる (edited)
1:17 PM
struct B {} protocol P {} extension P { typealias A = B } func foo<T: P>(a: T) -> T.A { fatalError() }func foo<T: P>(a: T) -> T.A { fatalError() } struct B {} protocol P { associatedtype A } extension P { typealias A = B } にすると通るようになるんですが。。 (edited)
Avatar
extension P { typealias A = B } これだと、Tに生えてるわけじゃない、のかと思ったけど2番めのは通るのか。
Avatar
定義する順番によってコンパイル結果が変わるっていうのが不思議
Avatar
別ファイルのコンパイル順についてのissueはあったけど、同じファイル内での定義順については見当たらないかな。 https://bugs.swift.org/browse/SR-1960
Avatar
筋肉.swiftというのを知ったw https://kinniku-swift.connpass.com/event/69438/
いい肉の日(11/29)に開催決定!! 記念撮影時に上裸OKでました!! ## イベント概要 * 筋肉エンジニア主催の普通のiOS勉強会。 * プロテインで乾杯するのと、飲食物はヘルシーなものが多いのが特徴。 ## 内容 ### プロテインで乾杯 * 主催者kboyの挨拶とスポンサー様の紹介の後、プロテインで乾杯するところから会をスタート。 * こちらで紙コップ等を用意して配布しますが、シェイカーを持参していただくとスムーズです。 * できるだけシェイカーを持参して下さい。 ### iOSに関する発表 * 抽選で選ばれた7人のスピーカーに10分ずつ...
Avatar
シェイカー持参おすすめだったり、プロテインで乾杯だったり、ベストスピーカー賞にプロテイン贈呈だったり、濃過ぎてもはや何が何だか…
Avatar
どこで聞くのが適切かわからないので #zatsu で。 ( Swift の Codable とかではなく一般論として、) JSON でキーが存在しない場合とそのキーに null が設定されている場合を区別するのってありだと思いますか?
5:24 AM
{ "foo": null, "bar": 42 }{ "bar": 42 } を違うものとして良いか。 (edited)
Avatar
オプショナルなキーにnullが入ってるのはOKでキーなしはパースエラーにしたいみたいな感じでしょうか
Avatar
ありだと思います、個人的にはキー無しはErrorにしたいけど
Avatar
違うものとしたい気がする
Avatar
JSONライブラリ次第で区別できなくなってしまうような気も。
5:25 AM
あー、えっと、キーなしの場合はデフォルト値としてデコードしたいです。
Avatar
1. キーの有無は違う型として分離し、混ざっている場合は親の型をEnumで分別する 2. キーの有無を意味する型(オレオレOptional)を作る
5:26 AM
あー
Avatar
Kishikawa Katsumi 10/16/2017 5:26 AM
現実的にはやめた方が良いことの方が多いと思います。
Avatar
JSONのオブジェクト自体Dictionaryみたいなものだから区別したい ( subscriptだと曖昧だけど containsKey() とかで判別できる
Avatar
いやsubscriptでも、Valueの型がOptionalなら
5:26 AM
.noneと.some(.none)で違いは出るのでは?
Avatar
そうね
Avatar
現実的にはやめた方が良いことの方が多いと思います。
そうですよねぇ・・・
Avatar
いやsubscriptでも、Valueの型がOptionalなら
それもあり
Avatar
まーでもJSON APIのレスポンスをパースした時って[String: Any]とかだろうし現実にはどうだろうってかんじする
5:28 AM
koherさんのケースだと、キーが無かったらデフォルト値で、キーありnullだったらnilになるんでしょうか
Avatar
let x: [String: Any] = ["a": 1, "b": Int?.none] let k = x["b"] switch k { case .some(let x): print("some") // here case .none: print("none") }
5:28 AM
問題ないかと
Avatar
経緯としては、元々は JSON の設定項目ではなくて一種類しか存在しなかったものに対して、新しく enum Foo として設定できるようにしたい、けれども、これまでとの互換性を考えると "foo" が省略された場合は Foo.hoge にしたい。でも、セマンティクス上 Foo がないということも表現したくなったので let foo: Foo? にしたいって感じです。
5:29 AM
キーが無かったらデフォルト値で、キーありnullだったらnilになるんでしょうか
そうです。
Avatar
ひらりがいってるのはJSON側で Optional が表現されてないってことだと思うけどたるのんがいってるのはデコードした後にデータ構造として表現はできるって話しかな・・・
Avatar
Kishikawa Katsumi 10/16/2017 5:30 AM
ライブラリ作るとか、APIとしてキーの有無、値の有無を区別できる能力を持たせるのはアリだけど、それを活用するのはできるだけナシにしたいですね。
Avatar
@koher JSON仕様上「fooPresented: Bool」を足して今回は逃げ切るとか
Avatar
Kishikawa Katsumi 10/16/2017 5:30 AM
で、>これまでとの互換性を考えると "foo" が省略された場合は Foo.hoge にしたい。でも、セマンティクス上 Foo がないということも
Avatar
具体的に話すと、画面をダブルタップしたときに起こるイベントがあったんですが、これまではダブルタップすると起こるイベントは一種類だけだったので特に設定はなかったんですが、
Avatar
あ、ボクのはSwiftのデータ構造として[String: Any]にデコードする過程で、型をInt?なりOptionalとして保証していれば、JSONの{"b": null}も.someになるよという話
Avatar
新たに、イベントが起こらないとか、別のイベントが起こるとかを設定できるようにしたくなって
5:31 AM
enum Event { ... } を作って let event: Event? というプロパティを足したくなりました。
5:34 AM
しかし、 JSON にこれまで "event" は存在しなかったので、 "event" を省略したときは { "event": "doubleTap" } のように解釈したいということです。 (edited)
5:35 AM
一方で、 Event?nil のケースも表現したいので { "event": null }"event" の省略と区別したくなった、と。
Avatar
Eventのnil許可をやめて、enum Eventの中に case noneを入れれば解決すると思う
Avatar
一応デコードできるんですが、トリッキーだし将来的に禍根を残さなければいいなぁと。
5:36 AM
@tarunon それもあるんですが、意味上は Event? だと思うんですよねぇ。
5:37 AM
JSONを忘れてコードだけ考えれば Event? であるべきケースだと思うんですよ。
Avatar
JSONのデコード時とそれ以外で使う型を変えてコンバートすれば良いのでは?
Avatar
↓的な話で。 < JSONを忘れてコードだけ考えれば Event? であるべきケース https://speakerdeck.com/takasek/sorewoenumrunante-tondemonai-swift-enum-antipattern
Avatar
{ "version": 2, "event": null // いべんとがない } { "version": 2, "event": "doubleTap" // ダブルタップ } { "event": null // ダブルタップ } (edited)
Avatar
ううっ、メンテが辛い・・・
Avatar
移行が終わって古いJSONがなくなることがあれば version3で "version" を廃止できる
Avatar
Kishikawa Katsumi 10/16/2017 5:39 AM
将来的に禍根 でいうと、キーのあるなしで区別するのは確実に将来に禍根を残しますね。
5:40 AM
キーの無しとnull
Avatar
やっぱ良くないですよねぇ・・・。
5:41 AM
JSONのデコード時とそれ以外で使う型を変えてコンバートすれば良いのでは?
そこにだけ導入するのもコードがいびつになっちゃうんですよねぇ。とはいえ、どこかをいびつにするしかないのも事実・・・。
Avatar
Eventのnil許可をやめて、enum Eventの中に case noneを入れれば解決すると思う
これがマシな気がしてきた
5:42 AM
あれ、どっちの話かわかんなくなってきた・・・
5:43 AM
json上では明示的に "event": "none" とやるようにすると
5:43 AM
JSONデコーダ上で キー無しと null があいまいでも
5:43 AM
"none" が設定されていることは取り出せて
5:43 AM
過去のキー無しの仕様は1通りのままで保てて
5:44 AM
その "none" を含むのがあれか、tarunonの言ってる2種類の型の事か
Avatar
  • "event": null"event" の省略を区別する
  • Event? をやめて Event.none を作る
  • JSON に "version" を足してデコード時に区別する
  • 一時的に別の型にデコードしてから Event? に変換する
5:45 AM
コードとJSONの仕様をキレイに保つためには、既存のJSONをすべて変換する( "event": "doubleTap" を足す)という方法もあるか。
5:46 AM
ちょっとどれがマシか考えてみます。みなさんありがとうございました。
Avatar
switch文でそのenum型の全てのcaseをバコッと一発で入力する方法とかないですよねー
Avatar
REafcator -> ADd missing switch casesは違うのかな
Avatar
お?
Avatar
xcode9からなんか Refactor メニュー増えてるからワンチャンできないかな
8:23 AM
それっぽいのあるけどグレーアウトしていてどうすれば有効になるのかがわからない
Avatar
カーソルの場所によっては黒になる
8:23 AM
みぎくりっくしてや
8:25 AM
Refactorメニューはどこ右クリックしてもグレーアウトしてたけどエラーメッセからガツッと追加できた
8:25 AM
@omochimetaru ありがたや
Avatar
黒いけど押しても何も起こらないけど↑のエラーのFixはいけるね。
Avatar
いろんなとこ右クリックしたけどRenameしか黒くできんかったや。
Avatar
ww
Avatar
関係ないけど caseでlet使うとき前に書くかカッコの中に書くかみたいな話どっかで前にあったけど、この自動で挿入されるコードはカッコのなかにletがあるタイプのやつだな
Avatar
なるほど・・・
Avatar
assoc valueにfugaというラベルがついてると case .hoge(let fuga): ってしてくれるけど、ラベルついてないと case .hoge(_): ってなってる。 (edited)
Avatar
前の rintaro さんの話聞いて中派に鞍替えした。
Avatar
おー
8:31 AM
前から中派だったのでイェイという感じです
Avatar
try も中がいいのかもしれないけど、 () が面倒で結構前に書いてしまいます。
8:32 AM
case のときは () が元からあるからいいけど。
Avatar
あー、tryも同様にどっちにもかけるのか。
8:34 AM
意識してなかったですが前に書いてますね
Avatar
式が複雑だとどの API が throws なのかぱっと見でわかんなくなっちゃうんですよね〜。
Avatar
Kishikawa Katsumi 10/17/2017 9:26 AM
caseのletは複数のときにスッキリするから私は外に1つだけ書く派だけど、中に書く人の方が多そうな印象があります。
Avatar
僕もそうだったんですが、 @rintaro さんの↓で意見を変えました。 --- let x = 12 switch ee { case let .a(x, y): print(x, y) default: break } みたいなときに x が何を指しているのか不安になるので 内側派。
Avatar
これを出されるとグヌヌ・・・ってなる
9:30 AM
外側派に改宗するすんでの所でこれを見て思い止まった
Avatar
まだそれ踏んだ事無いし見なかったことにしてる
Avatar
Kishikawa Katsumi 10/17/2017 9:30 AM
これはletの場所の問題かなあ
Avatar
往生際が悪いぞ
Avatar
Kishikawa Katsumi 10/17/2017 9:31 AM
稀に同じ名前にしたくなることがあるのはあると思います。
😖 1
Avatar
sakurapleasure 10/18/2017 10:46 AM
どこでポストすればいいかわからないので #zatsu でやります 3D TouchとFelicaをサポートしていてSuicaをiPhoneに登録している方に試してほしいんですが、 WalletのSuicaの取引のリストで、カード読み込みの履歴を強く押すとアプリが落ちますか? 僕のiOS 11.1 Beta 3, iPhone 7 Plusでクラッシュするので他の環境ではどうか気になります
Avatar
その画面ForceTouchの機能なさそうですが…
Avatar
sakurapleasure 10/18/2017 1:11 PM
1:11 PM
こういう感じででます。めっちゃ出なさそうな顔して実は出ます
Avatar
iOS11だと出ないっぽいので追加された機能ですかね
Avatar
sakurapleasure 10/18/2017 1:40 PM
ホントですか…Betaで初めて試したら可能だったのでその不具合か
Avatar
これは完全に雑談ですがExpressibleByNilLiteralって実際アプリケーションのレベルで使うことってあるんですかね
Avatar
Kishikawa Katsumi 10/20/2017 6:10 AM
ソースコードが見られる会社のリポジトリでざっと検索した限りでは、ライブラリのコードしかヒットしないですね。
6:11 AM
私の感覚でもライブラリでしか使わないと思います。
Avatar
Catみたいな普通の型が対応すると、 Catnil のときと Cat?nil のときがめちゃくちゃわかりにくくなりそう。
Avatar
@Kishikawa Katsumi ライブラリでも自分は見たことないと思うんですが、どんなライブラリですか?
Avatar
Kishikawa Katsumi 10/20/2017 6:16 AM
SwiftyJSONと、、、ちょっと待ってね閉じてしまった
Avatar
おおSwiftyJSON
Avatar
あー、Null Object パターンで使うのか。
Avatar
あーSwiftyJSONみたいなのだと確かにnilは直感的に扱えて良いのかしら。
Avatar
Kishikawa Katsumi 10/20/2017 6:17 AM
SwiftyJSONはまあ理解できる。
Avatar
OptionalのSome/Nilを自前のenumの中に取り込む場合 (enum JSONのcase Null など)
Avatar
ふむふむ
Avatar
Kishikawa Katsumi 10/20/2017 6:17 AM
それとMockingjayなんだけどこれはちょっとよくわからない
Avatar
An elegant library for stubbing HTTP requests with ease in Swift
6:18 AM
Mockingjay - An elegant library for stubbing HTTP requests with ease in Swift
Avatar
結構メタ寄りというか、普通にアプリケーション内のモデルオブジェクトとかで使う感じじゃないですよねやっぱり
Avatar
public enum Download: ExpressibleByNilLiteral, Equatable { public init(nilLiteral: ()) { self = .noContent } // Simulate download in one step case content(Data) // Simulate download as byte stream case streamContent(data:Data, inChunksOf:Int) // Simulate empty download case noContent } (edited)
6:18 AM
noContentで使うようだな。
Avatar
さっきおもちが言ってたのとまさに同じだね
Avatar
Kishikawa Katsumi 10/20/2017 6:19 AM
あとRealmでExpressibleByNilLiteral.Typeを見てるところがありますが、これは完全にメタプログラミングのためのハックなので参考にしてはいけない。
Avatar
おお。
Avatar
Kishikawa Katsumi 10/20/2017 6:20 AM
まあExpressibleByNilLiteralを実装するのはほとんどの場合分かりにくくなるだけだと思うので、使うことはないと思いますよ。
6:20 AM
と、ドキュメントにも書いてあった。
Avatar
HogeがExpressibleByNilLiteralのとき let hoge: Hoge? = nil とかするともう可読性破壊される
6:23 AM
.some(nil) とかいう激ヤバなやつもできる
Avatar
.some(nil)はやべぇ
Avatar
let hoge: Hoge? = nil のとき hogeHoge?.none になった。 (not Hoge?.some(nil) )
Avatar
外側優先マッチかな
6:26 AM
いや、暗黙の型変換の候補探索が後回しってだけかな
Avatar
暗黙の型変換はこの場合どこのことだろ?
Avatar
Hoge から Hoge? への変換だね
Avatar
あなるほど
Avatar
T is Optional<T> の変換。 T? = x の形のとき、xがT?でなければ、x: T とみなしたうえで T -> T? の変換ができるか試行する
Avatar
元々は NULL ポインターも nil で表現されてましたよね。今はなくなったけど。そういうのならありな気が。
6:37 AM
これは完全に雑談ですが
余裕で #swift でいける気がする🤔
Avatar
Kishikawa Katsumi 10/20/2017 6:39 AM
Discordはチャンネルを抜けるっていう概念はあるんですか?
Avatar
なさそう
Avatar
チャンネル自体には参加/不参加の概念は無いっぽいですね
6:40 AM
未読通知はチャンネルごとに各自でミュートできます
Avatar
Kishikawa Katsumi 10/20/2017 6:40 AM
なるほど。
Avatar
久しぶりにTravisでmacOSのCIが走るPRとか書いたのだけど、バックログが酷い事になってるんだね。 https://www.traviscistatus.com (edited)
Avatar
Kishikawa Katsumi 10/20/2017 10:14 AM
Travis CIはMacビルドがすごい増えて大変だそうです。ちょっと前に大規模に詰まったことがあって、それからいろいろ対策されたのですが、根本的にMacのVMをホストしなければならないというのがどうにもならない感じですね。
10:14 AM
現在無料プランの並列実行が2つに減ったこともあって、いつかは終わるからのんびり待つという感じで使ってます。
10:15 AM
公開リポジトリで使うぶんにはそれでもTravis CIがいちばん自由度が高いのは変わらないですね。 (edited)
Avatar
12時間経ってもジョブ終わってなかった… (edited)
Avatar
ISUCON参加しました。来年はサーバーサイドSwiftで参加できると良いですね…
🙂 1
Avatar
こんにちは。今日から discord を使い始めたのですが、さっそく音声ボタン?のようなものを押してしまったようです。何かご迷惑をかけてしまっていたら教えてください 🙇
👌 1
Avatar
😋 1
8:39 AM
多分だれにも迷惑かかってないですよ 🙆
Avatar
←のスピーカーのアイコンが音声チャット部屋で同じ部屋に入っている人同士で通話できます
Avatar
このあたりをとりあえずクリックした記憶が
Avatar
確認取らずに接続するのやめてくれ~ってなる
Avatar
一応設定でマイクレベルを0にしておけば事故って音が通る事は防げるよ。
Avatar
@koogawa ちら見してきたけどwwdcチャンネルに閉じ込められているような感じではなかったので大丈夫そうでした
😁 1
Avatar
さっきまで @koogawa さんのアイコンがチャネルリストの一番下に表示されてたんですが、スピーカーマークのチャネル(?)を押したらそうなるんですか?
Avatar
ああ、マイクミュートでも良いな
Avatar
@koher そうです
Avatar
なるほど。
Avatar
ボイスチャットチャンネルは開いた瞬間音声通話が開始されます
Avatar
なるほど、なんかすみません!
🙆 3
Avatar
ワークアラウンドじゃなくてUIの導線わかりにくいのに凶悪じゃないという話をしても毎回ワークアラウンドを提供されてしまう現象について
Avatar
なるほど、危険だ・・・。 @tarunon さんの言う通り確認のアラート出してほしい・・・。
Avatar
でもこれ話題の出し方としてはちょっとハイコンテキストだな
Avatar
UIの導線は直すまで時間がかかるから(治るとも限らん
Avatar
wwdcスピーカーは初見殺しな気がする。初めて入った人が気になって押しちゃいそう・・・。
Avatar
チャンネル名がアルファベット順ってことは
8:44 AM
全角文字は一番下になるかな?
8:44 AM
#ここから下は音声通話
Avatar
アルファベット順じゃないよ
Avatar
っていうチャンネルを
8:44 AM
駄目か~
Avatar
順番は自由に並び替えられるけど音声は必ず↓になる
Avatar
じゃあ #ここから下は音声通話 チャンネルを一番下に置けば悲劇は回避できるのでは
Avatar
カテゴリ機能が最近入ったから音声チャットカテゴリにしてみた
👍 5
Avatar
おー
8:45 AM
音声チャットになった
Avatar
おお、素晴らしい。
8:46 AM
これで事故が大分防げそうだ・・・。
Avatar
サーバー参加者がswtws前後で20人ほど増えて250人になった。
👏 9
Avatar
ほんと絵文字の話題見るたびに思うけど、よくこんなのをUnicodeの仕様として規定しようとか考えたなぁ… https://t.co/agqpX53b0r
Avatar
この MakeFamily って何やってるの?ただの join ?
Avatar
きいてみる
Avatar
ZWJかな
4:05 AM
zero-width-joinnerを間に挟んでjoinだと思います
4:05 AM
\u+200dだったかな?
Avatar
@omochimetaru https://t.co/GGEk6vs2YL この行。 単に zero width joiner で Join するだけ。
Avatar
tarunon さんの読み通りだ。
Avatar
Swiftで試してみようと思って。
Avatar
swiftはユニコードで指定できますよね
4:10 AM
文字列
Avatar
1> ["👩", "👩", "👧", "👧"].joined(separator: "\u{200d}") $R1: String = "👩‍👩‍👧‍👧" (edited)
Avatar
いい加減iOSに嫌気がさしてきたので違うことやりたい気持ちがでてきたんだけどWebAssembly+Swiftって今どんな感じなのか追っかけてる人とかいませんか
Avatar
@hiragram そういえばそれ追いかけているというかウォッチしてるスレがあって https://github.com/kripken/emscripten/issues/2427
Hi team, playing around with Emscripten in earnest for the first time, not my usual area of work so apologies if this is clearly never going to work. What I'd like to do is compile a simple Swift p...
3:35 AM
Swift4で標準ライブラリがstatic linkできるようになったことと
3:36 AM
xcode9のclangがwasmターゲットでビルドできるバージョンになっていることがあるので
Avatar
ほう
Avatar
大きめの技術的ハードルは解消された感じがするけど
3:36 AM
誰もやってないからその先の壁がそもそも観測されてない感じがする。
3:39 AM
個人的にはwindowsネイティブビルドのほうが気になっている そっちのほうが簡単そうだから。でもそっちもまだゴールとはいえない
3:39 AM
以外とそうでも無いのかな
Avatar
CircleCIも申請して通ればOSSのmacOSビルドに使えるのね。
4:54 AM
申請してみよう。
Avatar
ちょっと前に絵文字の話題が出てましたけど、変数名に絵文字を使うのも面白いかも?と考えたことがあります😅
10:55 AM
ゴルフは楽しくなるかも?
Avatar
http://www.emojicode.org 🐇 🙋 🍇 🍰 name 🔡 🐈 🆕 🍼 name 🔡 🍇🍉 🐖 🌕 🍇 😀 🍪🔤Good night, 🔤 name🍪 🍉 🐖 ☀️ 🍇 😀 🍪🔤Howdy, 🔤 name🍪 🍉 🍉 🏁 🍇 🍦 greeter 🔷🙋🆕 🔤Spencer🔤 🌕 greeter 👴 Prints “Good night, Spencer” to the console 🍉
🙃 1
10:56 AM
絵文字プログラミング言語
Avatar
可読性悪すぎるw
Avatar
定数は 🍦 で 冷たい 変数は 🍮 で柔らかい
10:58 AM
のように、わかりやすく工夫されている
Avatar
white space よりはマシかもですw < 可読性
11:02 AM
昔VBのマクロで変数が漢字だったのを見てうげ、と感じたのですが、今考えると日本語ローマ字よりはアリなんじゃ?とかw
11:04 AM
migemo で補完できれば…
Avatar
実際 discord とかも 👀 とかできるし入力方法は問題ないかもですね
11:05 AM
あー
11:05 AM
:eyes: -> 👀
Avatar
ひと昔前はもうオッサンだし、絵文字とか使うの恥ずかしいかなと感じてましたが、規格になったので採用の方向ですw
Avatar
可読性最悪と言えば(絵文字じゃないけど)↓の最後の方に載ってるJotがおもしろいですよ。二つの記号だけで表せて、あらゆるコードがシンタックスエラーにならず有効なコードになります(そういう意味で機械語とは違います)。 http://blog.livedoor.jp/dankogai/archives/51524324.html (edited)
Avatar
初めて知りましたけど、面白いですね < Jot 最悪の極北にはやはり whitespace を推しますがw https://ja.m.wikipedia.org/wiki/Whitespace
Whitespace(ホワイトスペース)は、プログラミング言語のひとつであり、またそれを動作させるインタプリタを指している。WhitespaceはGPLにより配布されている。実用言語ではない難解...
Avatar
CircleCIも申請して通ればOSSのmacOSビルドに使えるのね。 問い合わせたらfree OSS Seed plan適用してもらえた。
👍 1
10:19 AM
こういうダイアグラムを生成する便利なソフトってありますかしら? (edited)
Avatar
https://github.com/yoshimkd/swift-auto-diagram こんなのは見つけました(ruby製)
swift-auto-diagram - A Ruby script that scans all swift code from the specified folders and files and automatically generates an entity diagram (similar to a class diagram) which can be viewed in a...
Avatar
SourceKittenの出力を使うものみたい。 https://github.com/Sumolari/swift-relationship-graph
swift-relationship-graph - A simple tool to create relationships graphs for Swift codebases
11:07 AM
Swift で定義されたオブジェクト間の依存関係を可視化する flock というツールを作った。これによって、 Swift で書かれたコードベース全体を把握しやすくなったり、リファクタリング時に影響範囲を把握しやすくなる。 Usage Homebrew からインストールできる。 $ brew tap naoty/misc $ brew install flock flock は指定したディレクトリ(何も指定しなければカレントディレクトリ)以下の Swift のソースコードを解析して dot 形式のソースコードを出力する。これを Graphviz 等を用いて画像に出力して使う。 $ flock …
Avatar
おぉ、ありがとうございます!!!
Avatar
CircleCIでswiftlintをdockerベースで簡単に実行出来るよう、swiftlintを含むdockerイメージを作成した。 https://hub.docker.com/r/norionomura/swiftlint/ (edited)
1:19 AM
linux_swift_4: docker: - image: norionomura/swiftlint:swift-4.0 steps: - checkout - run: swift test - run: mkdir -p build/reports/ - run: swiftlint lint --strict --reporter junit > build/reports/junit.xml - store_test_results: path: build/reports/
1:20 AM
Swiftコンパイラも含むのでビルドもできる。
1:21 AM
linuxでobjc関連を含むコードのlintがどうなるのかよく知らないので、iOSプロジェクトでも使えるのかどうかは不明。
👀 1
Avatar
Swiftでの、classとstructの使い分けについての雑談ネタです 状態を持っているものはclass、ステートレスで静的に扱いたいものはstruct が原則になるかと自分は思ってます。 なお 状態 とは メンバにアクセスした時、返る結果が冪等でなくなる要因 。 つまり、ある型のメンバにアクセスして、その結果が常に同じでないならば、それは「状態を持っている」。 状態は必ずしもプロパティであるとは限らず、👇も「状態を持っている」といえる。 struct Hoge { var date: Date { return Date() } } ……となると、Hogeはclassであるべきなのか? どうなの? という部分で、ちょっと悩んでしまいまして。 みなさんはどうお考えかなーと聞いてみたくなりました。
Avatar
Arrayは append すると count の返り値が変わりますけど、どっちになります?
Avatar
var date = Date() でないのは何か理由がありますか
Avatar
var date = Date() だと date が冪等になります (edited)
Avatar
ああ、だからボクの意図としては
9:10 AM
そんなものをそこに入れるのはどうなんだ、ということか
Avatar
varされたものは、同じ変数をコピーで上書きされてると捉えるのがよいのでは structなら基本letでimmutability(状態が変わらない)を表現できる
Avatar
mutating以外で冪等性が壊れかねないものはclassのほうが良い気がします。
Avatar
やはり
Avatar
僕はそのオブジェクトを共有したいかどうかで決めてます
Avatar
class C { var i: Int = 0 } struct S { private let c = C() var num: Int { c.i += 1; return c.i } } let s = S() // letでimmutableにしてるはずなのに、 print(s.num) // 1 print(s.num) // 2 print(s.num) // 3 structでもimmutabilityを保証できるとは限らないので、 そこも含めて、「mutating以外で冪等性が壊れかねない」意図は classにすることで表現する原則がよさそうかな、と思いました
Avatar
このケース var date: Date { return Date() } は、システムの時計にアクセスしているから結果が変わっているので、参照透明じゃない、外部のステートを参照しているのでステートフル、ということにはなるかと
9:16 AM
グローバル/static , 関数/変数はいつでも見れるんでそこを触ると汚染する例
Avatar
>そのオブジェクトを共有したいかどうか 共有というのは、同時に複数箇所から参照されること、でしょうか となるとViewControllerとViewModelは1:1だという前提がある場合、ViewModelはstructであるべき?
Avatar
そうですね、複数箇所から参照共有したいならクラスにする。 逆は必ずしもそれだけで決めてないです、1箇所で保持する想定でもクラスの場合はある。 けど、↑のViewController / ViewModel は struct がうまくハマるやつな気がする。
9:22 AM
そこも含めて、「mutating以外で冪等性が壊れかねない」
これを実現しようとすると、 struct のプロパティには 参照型を持てなくなりそうだ。
9:22 AM
CoWの内部ストレージみたいに完全に隠蔽されている場合は別として
Avatar
んー、そうなんですよねー…
Avatar
structのプロパティにclassを持って嬉しいことって具体的に何かあります?
Avatar
例えば僕が時々やるのはなんかの型のinner classとかで struct Entry { var name: String var view: XxxView } みたいに、ほぼタプルとして使う時とか
Avatar
それがclassじゃないのは、initの自動生成が嬉しいからでは?
Avatar
いや、無駄にヒープ退避させるメリットが無いかなと
9:25 AM
遅くなる。
Avatar
そうか
Avatar
状態を持つか ベースの世界観で考えると、ViewModelは状態を持つのでclassなんですけど、 共有したいかどうか ベースのomochiさん世界観ならstructが嵌まるんですね
Avatar
そうですね。インスタンス同一性(identity)に意味のあるオブジェクトなのかどうか。
9:28 AM
↑の例なら、nameとviewのペア組だけに意味があるので、同じペアは同じ概念を表してるんで、 identityに興味はない。equalityだけに興味があるのでstructでOK。
Avatar
struct ViewModel { enum State { ... } let state: Variable<State>(.initial) } VMをstructにするのであれば、👆みたいなの普通に起こりますね Variableはclass
Avatar
あ、非同期でselfを書き替えたい場合structだと破綻する?
Avatar
確かにそうですね、キャプチャ共有できないから
Avatar
非同期処理の結果を自身の状態に反映させたい つまり「自身」を特定(=identify)する必要がある であればclass か
Avatar
ですね
9:45 AM
そのパターン、 async / await が入ったときにちょっとわかりにくいエラーになりそうだな
9:46 AM
struct Stone { async mutating func addWeight() { let addValue = await readAddValue() self.weight += addValue } }
Avatar
もしかしてasync mutating自体できない?
Avatar
ダメな気がする
Avatar
最初のawait前なら書き換えできるはずだけどわかりにくいしできなくて良さそう
Avatar
ですな
Avatar
実際困ってるわけではなくてふと思ったことなんですけど、「Hogeのサブクラスなんだけど、Hogeではない」ことってチェックできるんでしたっけ
Avatar
omochimetaru 11/1/2017 8:25 AM
できる
Avatar
type(of: fuga) == Hoge.self これしか思いつかなかった
Avatar
omochimetaru 11/1/2017 8:26 AM
それじゃ逆じゃね
Avatar
!=か
Avatar
omochimetaru 11/1/2017 8:26 AM
それと is も使って
8:26 AM
継承関係をチェック
Avatar
fugaはHogeのサブクラスFugaね
Avatar
omochimetaru 11/1/2017 8:26 AM
それならそれだけでいい
Avatar
class Animal {} class Cat: Animal {} let cat = Cat() cat is Animal type(of: cat) === Animal.self こうかにゃ
Avatar
omochimetaru 11/1/2017 8:27 AM
ObjectiveCでabstract classを自力で作るときに init にもそれ入れておくと安全なやつね
Avatar
typeofとの比較ってイコール2こと3こで違いある?
Avatar
そもそもTypeを比較できるのを初めて知った
Avatar
omochimetaru 11/1/2017 8:28 AM
ルートメタクラスの定義って見れないよね?
Avatar
Mirrorで遡っていけばたどり着くんじゃない?
8:28 AM
SwiftObjectまではいけないけど
Avatar
omochimetaru 11/1/2017 8:28 AM
あー
Avatar
Mirror(reflecting: cat).superclassMirror!.subjectType これはAnimal.Typeだよ
Avatar
omochimetaru 11/1/2017 8:29 AM
func f<X: Equatable>(_ x: X) {} f(Int.self) error: TempGround.playground:2:3: error: argument type 'Int.Type' does not conform to expected type 'Equatable'
8:29 AM
Equatableじゃないけど == が定義されてそう
Avatar
メタメタしくなってきた
Avatar
また #swift#zatsu が伸びてるw
Avatar
class Animal {} class Cat: Animal {} class Robot {} func isSubclass<T>(_ object: Any, of: T.Type) -> Bool { return object is T && !(type(of: object) == T.self) } isSubclass(Cat(), of: Animal.self) isSubclass(Animal(), of: Animal.self) isSubclass(Robot(), of: Animal.self)
8:32 AM
あい。できあがり。
Avatar
非同期でselfを書き替えたい場合
これは DispatchQueue.main.asyncViewModel の外側でいい気も?
(edited)
🙆 1
Avatar
omochimetaru 11/1/2017 8:33 AM
isSubclassをどうやって壊そうか
Avatar
いじめだ
Avatar
omochimetaru 11/1/2017 8:34 AM
isSubclass("aaa", of: NSString.self) //true isSubclass("aaa" as NSString, of: String.self) // true
Avatar
数秒で破壊されてしまった
🙄 1
Avatar
Avatar
func isSubclass< U: AnyObject, T: AnyObject>(_ object: U, of: T.Type) -> Bool { return object is T && !(type(of: object) == T.self) } String fuck の対策を入れたぞ
Avatar
omochimetaru 11/1/2017 8:37 AM
たしかに値型はこれ使える必要無いね
Avatar
mutating以外で冪等性が壊れかねないものはclassのほうが良い
それってこのケースみたいに static にできるものがほとんどな気がする。冪等性が壊れたものを外部から持ち込まない限り mutating でないあることと冪等性が保たれることはほぼイコールだし。 @omochimetaru の言うように参照型の値を保持する場合くらい?
Avatar
やべえ会話が2スレッドになってる
Avatar
コツはAnyObjectだとautoboxingによって粉砕されるがU: AnyObjectだと通らないところ。
8:38 AM
swiftに退避しようね
Avatar
#swift#swift2 にw
Avatar
僕のやつはもう満足したけど続きある?w @tarunon @omochimetaru
Avatar
omochimetaru 11/1/2017 8:39 AM
無い
Avatar
ok
Avatar
#zatsu の説明に「 Swift の雑談は #swift でどうぞ」と書いておいた方が混乱がなさそう。
Avatar
omochimetaru 11/1/2017 8:40 AM
現状は雑談チャンネルがあったほうが投稿しやすいというメリットがある
Avatar
わしのさっきのやつみたいなのは #swift のほうがええんか?
Avatar
omochimetaru 11/1/2017 8:40 AM
そもそも zatsu を希望したのはもともとヒラリだったし俺にはわからん
8:40 AM
zatsuってなんだ
Avatar
厳密な雑
🤔 1
Avatar
別にあってもなくても困らないんだけどこういうときってどうするの〜だよね〜満足❗で終われる話だとおもったからざつにした
Avatar
omochimetaru 11/1/2017 8:41 AM
終われる話
おわったことない
Avatar
9割方 #swift 化してる気がw
Avatar
ひらりが満足してもガヤ勢が満足しないので…
Avatar
ガヤ勢の延長戦には僕だいたいついていけなくなってしまうので2次会は#swiftでどうぞって感じがするけど
Avatar
omochimetaru 11/1/2017 8:43 AM
二次会w
Avatar
#swift に障壁を感じてる人が多いってこと?
Avatar
omochimetaru 11/1/2017 8:44 AM
そういう事だと思っています > 障壁 (edited)
8:44 AM
障壁というか、それほどのネタでもない、みたいな。
8:45 AM
でも、周りが「いやコレは実は深い話があって・・・」みたいになっていきがち
Avatar
#swift に投げたほうがいいならそっちにするが、そっちで盛り上がった高度な議論に対するアンサーを僕は多分持たないので、話題だけ投げておいてほったらかしかよみたいになってしまうんだったらここに置いておこうかなという感じ
8:45 AM
それほどのネタでもないはまさにそう
Avatar
話題の提供者が答えを有している義務は無いという前提が共有できれば幸せっぽい
8:46 AM
そもそも話題にするのは答えが見えないからなんで
Avatar
うーん、 #swift は気軽な Swift の話題も含むイメージだったんだけどそう受け取られてないのか??
Avatar
わしがzatsuに書くときはその答えも別に僕は持ってないし欲してもいないことがほとんど
Avatar
norio_nomura 11/1/2017 8:46 AM
#swift#swift-2に「雑談OK」って書くしか
Avatar
@koher 気軽な場という印象はないっすw (edited)
Avatar
omochimetaru 11/1/2017 8:47 AM
(気軽な場にして行きたい)
Avatar
norio_nomura 11/1/2017 8:47 AM
#swift-zatsuを作るか
Avatar
もしくは #swift-gachi を作る?
Avatar
Avatar
ガチwww
Avatar
omochimetaru 11/1/2017 8:48 AM
これはあり > #swift-zatsu
Avatar
話題のステージ感がチャンネル名から読み取れるようになってたら良さそうです
Avatar
でも僕は大体雑談気分なんで #swift-zatsu に投稿しちゃいそうです・・・
Avatar
omochimetaru 11/1/2017 8:48 AM
整理することよりも投稿しやすくすることを重視したい、個人的には (edited)
Avatar
norio_nomura 11/1/2017 8:48 AM
#swift-zatsu大繁盛の未来が…
Avatar
公園でみんなわいわいしてるのが #swift-zatsu、戦士が殴り合うコロシアムが #swift-gachi
Avatar
↑の structclass かとか、普段の #swift でされてる話と変わらないような?🤔
Avatar
@hiragram まず認識のズレがあって、別に殴り合ってるつもりではなくほぼ雑談なのだという
8:50 AM
雑談のしきい値の問題で多分ガチとかザツとかそういう話じゃない
Avatar
まあドラゴン同士のじゃれ合いで島が一つなくなるみたいなやつはあるとおもう
Avatar
問題は #swift に雑談を投稿しづらいことなので #swift-zatsu はありな気がするけど、 #swift-zatsu が投稿しづらい場にならないように、投稿しづらさを感じてない人は #swift に投稿するとかでいいのかな??
Avatar
人間味でてきた
Avatar
もしくは #swift-3 くらいまで作ればどこか空いてて投稿しやすくなったりするのかな?
Avatar
norio_nomura 11/1/2017 8:52 AM
チャンネル名に?とか使えないのかな #swift? みたいな
Avatar
omochimetaru 11/1/2017 8:53 AM
英数字ハイフンアンスコだけ。今試した。 (edited)
😞 2
Avatar
#swift-tweet
8:53 AM
ひとりごと
Avatar
それか #swift の説明に、「雑談・質問・どんなくだらない内容でも OK 」とか付けるとか?
8:54 AM
@Biacco42 Swift Tweetsとややこしいw
Avatar
tweetup と名前がかぶってしまったな…
Avatar
omochimetaru 11/1/2017 8:57 AM
#swift-zatsu をつくってみました
👍 1
Avatar
前似たような話題でチャンネルが1個消滅した気がするんだけどなかったっけ
Avatar
omochimetaru 11/1/2017 8:58 AM
それがswift-zatsuやね
Avatar
ww
8:59 AM
歴史繰り返してた
Avatar
ドラゴン同士のじゃれ合いで消滅した島ってもしかして旧swift-zatsu...
🐉 4
Avatar
carthageで
4:35 PM
ビルドしたフレームがlipoのチェックでこけはじめた 環境何も変えてないのに・・・・・
4:35 PM
ハンマーで画面叩き割りたいくらいハマっている
Avatar
Kishikawa Katsumi 11/1/2017 4:35 PM
どうやったら再現できますか?
Avatar
オープンソースじゃないので,再現チェックを提供できない・・・・
4:36 PM
copy-frameworkでこけるんですよね・・・・・
4:37 PM
lipoで,ターゲットのアーキテクチャのバイナリがないとか,xcodeで実行中にバイナリが変更されたとかで文句言われる その都度,carthageとxcodeのキャッシュを全部削除して,carthageでupdateしなおしてるんですが・・・・・
4:38 PM
再現できそうな環境を作ることも考えて見ます.
Avatar
Kishikawa Katsumi 11/1/2017 4:38 PM
ログとか見せられませんか?
4:38 PM
ちょっとまって
Avatar
Kishikawa Katsumi 11/1/2017 4:39 PM
あと、それはAppStoreに申請するプロジェクトですか?
Avatar
まだ開発途中です
4:39 PM
ユニットテストが動かない
Avatar
Kishikawa Katsumi 11/1/2017 4:40 PM
とりあえずまだ先ならcopy-framework使わなければ回避できますよ。それが必要なのは申請のときだけなので。
Avatar
あーそうか
Avatar
今度はフレームワークがないとか言い出した・・・・なんじゃこれw
Avatar
Kishikawa Katsumi 11/1/2017 4:51 PM
エラーメッセージとかありませんか?
Avatar
/Users/sonson/code/2tch.swift/Carthage/Build/iOS/CommonCrypto.framework/Modules/module.modulemap:2:12: error: header '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h' not found header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h" ^ /Users/sonson/Library/Mobile Documents/com~apple~CloudDocs/code/2tch.swift/Core2ch/CommonCrypto.swift:10:8: error: could not build Objective-C module 'CommonCrypto' import CommonCrypto
4:53 PM
なぜか,フレームワークをデフォルトのシステムフレームのパスに探しに行ってる
Avatar
Kishikawa Katsumi 11/1/2017 4:54 PM
CommonCryptoはシステムに含まれているライブラリなのであってると思いますけど。
Avatar
あれ?
Avatar
Kishikawa Katsumi 11/1/2017 4:55 PM
CommonCryptoはCの静的ライブラリなので直接Swiftからインポートできないので、module.modulemapでモジュールを作ってて、おそらく /Users/sonson/code/2tch.swift/Carthage/Build/iOS/CommonCrypto.framework/Modules/module.modulemap ファイルにそのパスが書いてあると思います。
Avatar
そうそれ
4:56 PM
だ,それだ
4:56 PM
なんでや・・・・
4:56 PM
ちょっと一旦,お風呂はいって,寝るかも
4:56 PM
頭くらくらしてきた
4:56 PM
ログ整理して,相談させてください
Avatar
Kishikawa Katsumi 11/1/2017 4:57 PM
1つだけ、 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h はありますか?
Avatar
ある
4:57 PM
Avatar
Kishikawa Katsumi 11/1/2017 4:57 PM
なるほど。謎ですね。
Avatar
うわーん,もう一回ビルドした違うエラーになったw
4:58 PM
今度は,carthage を--no-use-binariesしてなかったパターンだ
4:59 PM
Module compiled with Swift 4.0 cannot be imported in Swift 4.0.2: /Users/sonson/code/2tch.swift/Carthage/Build/iOS/RealmSwift.framework/Modules/RealmSwift.swiftmodule/arm64.swiftmodule
Avatar
Kishikawa Katsumi 11/1/2017 5:00 PM
それはソースからビルドすればOK。たぶん環境問題っぽいのでリモートで解決するのは大変そう。プロジェクト送ってくれたらみますよ。私が見るぶんには問題なさそうなプロジェクトだし。
Avatar
thx
5:02 PM
repositoryの権限を一時的に開示しようか
Avatar
Kishikawa Katsumi 11/1/2017 5:02 PM
手段はなんでも。
Avatar
送った
5:03 PM
こいつのdevelopぶらんち
5:04 PM
ただ,carthageのパスをソースコード内にしていない ことにチュウしてくだされ
Avatar
Kishikawa Katsumi 11/1/2017 5:05 PM
わかりました。とりあえずクローンしてビルドしてみます。
5:06 PM
carthageのパスをソースコード内にしていない
5:06 PM
というのは?
Avatar
icloud desktopにソース置いて作業してる
5:07 PM
Carthageの中にあるバイナリファイルをそこに置いとくと,なぜか知らないけど,作業中にバイナリが壊れて,同期するたんびに別のマシンでcarthage updateをかけないといけないという問題に・・・・・
5:07 PM
なのでCarthageでビルドしたファイルだけ,icloudと別のパスにおくという気持ち悪い状態に
Avatar
Kishikawa Katsumi 11/1/2017 5:08 PM
つまり ./Carthage/Build をプロジェクトの外に置いていると。
Avatar
いえす
5:08 PM
さすが理解が早い
5:09 PM
寝ますわ・・・w
Avatar
Kishikawa Katsumi 11/1/2017 5:09 PM
おやすみなさい😌
Avatar
Kishikawa Katsumi 11/1/2017 9:47 PM
@sonson 問題ないですね。 carthage bootstrap して、生成された Carthage ディレクトリをそちらの環境と同じであろう場所に移し、FRAMEWORK_SEARCH_PATHS が絶対パスで設定されている ので相対パスに直してビルドしました。シミュレータ、デバイスとも問題なくビルドできます。 copy-frameworks も正しく動いてますね。Carthageのバージョンは 0.26.2 です。Xcodeは9.1で確認しましたが、Xcodeのバージョンが問題ではないと思います。
9:49 PM
間違いなくCarthageの問題でもないですね。何かそちらの環境に問題があると思います。一応上記の変更をして、ビルドできた状態のコミットを kk/develop ブランチにPushしておきました。
Avatar
A shell task (/usr/bin/xcrun lipo -remove x86_64 -output /Users/sonson/Library/Developer/Xcode/DerivedData/2tch-bcgusdhndmpkkgftmmvdcpefmgju/Build/Products/Debug-iphoneos/UZTextView.framework.dSYM/Contents/Resources/DWARF/UZTextView /Users/sonson/Library/Developer/Xcode/DerivedData/2tch-bcgusdhndmpkkgftmmvdcpefmgju/Build/Products/Debug-iphoneos/UZTextView.framework.dSYM/Contents/Resources/DWARF/UZTextView) failed with exit code 1: fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: truncated or malformed fat file (offset plus size of cputype (16777223) cpusubtype (3) extends past the end of the file) /Users/sonson/Library/Developer/Xcode/DerivedData/2tch-bcgusdhndmpkkgftmmvdcpefmgju/Build/Products/Debug-iphoneos/UZTextView.framework.dSYM/Contents/Resources/DWARF/UZTextView こういうエラーが出ますね・・・・・
11:06 PM
copy-frameworkの問題か・・・・
Avatar
Kishikawa Katsumi 11/1/2017 11:08 PM
copy-frameworkじゃなくてUZTextView.frameworkの問題でしょうね。
11:08 PM
carthage bootstrap --no-use-binaries でビルドし直してみてください。
Avatar
それでやってるんですけど
11:08 PM
carthage update --platform ios --no-use-binaries これじゃだめ?
Avatar
Kishikawa Katsumi 11/1/2017 11:09 PM
それでいいですね。
11:10 PM
じゃあ /usr/bin/xcrun lipo -info /path/to/code/2tch.swift/Carthage/Build/iOS/UZTextView.framework/UZTextView の結果はどうなりますか?
Avatar
iMac-27-inch-Late-2012:~ sonson$ /usr/bin/xcrun lipo -info /Users/sonson/code/2tch.swift/Carthage/Build/iOS/UZTextView.framework/UZTextView Architectures in the fat file: /Users/sonson/code/2tch.swift/Carthage/Build/iOS/UZTextView.framework/UZTextView are: i386 x86_64 armv7 arm64
Avatar
Kishikawa Katsumi 11/1/2017 11:26 PM
では問題の切り分けのためにcopy-frameworks単体で実行してみてください。
11:27 PM
えっと、
11:27 PM
VALID_ARCHS="arm64 armv7 armv7s" FRAMEWORKS_FOLDER_PATH=2tch.app/Frameworks TARGET_BUILD_DIR=~/Desktop/ SCRIPT_INPUT_FILE_COUNT=1 SCRIPT_INPUT_FILE_0="/path/to/code/2tch.swift/Carthage/Build/iOS/UZTextView.framework" /usr/local/bin/carthage copy-frameworks
11:27 PM
^ こうです。 SCRIPT_INPUT_FILE_0 のパスだけそちらの環境に合わせてください。 @sonson
Avatar
エラーなしw
11:30 PM
VALID_ARCHS="arm64 armv7 armv7s" FRAMEWORKS_FOLDER_PATH=2tch.app/Frameworks TARGET_BUILD_DIR=~/Desktop/ SCRIPT_INPUT_FILE_COUNT=1 SCRIPT_INPUT_FILE_0="/Users/sonson/code/2tch.swift/Carthage/Build/iOS/UZTextView.framework" /usr/local/bin/carthage copy-frameworks
Avatar
Kishikawa Katsumi 11/1/2017 11:31 PM
念のため、デスクトップに2tch.appができてるので、その中のUZTextViewをlipo -infoで調べてみてください。
11:32 PM
armv7 arm64 なら正しいですね。で、もしそうだとすると、おかしくなってるところがわからない。
11:33 PM
copy-frameworks は正しく動いていて、UZTextView.frameworkも問題なし。
Avatar
なんじゃろう・・・・・・
11:33 PM
/Users/sonson/Desktop/2tch.app/Frameworks/UZTextView.framework iMac-27-inch-Late-2012:UZTextView.framework sonson$ ls Info.plist UZTextView iMac-27-inch-Late-2012:UZTextView.framework sonson$ lipo -info UZTextView Architectures in the fat file: UZTextView are: armv7 arm64
11:34 PM
問題なしw
Avatar
Kishikawa Katsumi 11/1/2017 11:35 PM
正しそうですね。リモートだとここまでが限界ですね。実際に見たら解決できるとは思いますが。。。可能なら近くまでいらっしゃるか、リモートデスクトップを繋いでもらえたら協力できると思います。
Avatar
コマンド+Uで実行した時だけ,このエラーがでます
Avatar
Kishikawa Katsumi 11/1/2017 11:39 PM
なるほど?
Avatar
そっちの環境で,Testできます?
11:40 PM
今度はRealmがw Showing Recent Messages fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: truncated or malformed fat file (offset plus size of cputype (7) cpusubtype (3) extends past the end of the file) /Users/sonson/Library/Developer/Xcode/DerivedData/2tch-bcgusdhndmpkkgftmmvdcpefmgju/Build/Products/Debug-iphonesimulator/Realm.framework.dSYM/Contents/Resources/DWARF/Realm うわーんw
11:41 PM
普通にテストターゲットをビルドするのはできるけど,Testすると,copy-frameworkのときにエラー
11:41 PM
ということっぽい
Avatar
Kishikawa Katsumi 11/1/2017 11:42 PM
なるほど?ちょっと待ってね。テストのホストアプリのSearch Pathとかを同様に直してるので。
11:44 PM
再現しました。原因は調べないとわからないですけど、結論から言うと、テストの時にcopy-frameworksを使う意味はないので、ひとまずテストの時はcopy-frameworksしなければ回避できます。
Avatar
うん,僕もそれに同意します.
11:44 PM
でも気持ち悪いよねw
11:44 PM
なんかすみません,本当にありがとうございます
11:45 PM
テストじゃなくて,アプリ本体は,ちゃんと実機でcopy-frameworkしても動かせました
Avatar
Kishikawa Katsumi 11/1/2017 11:46 PM
😄 再現できるからもうちょっと調べたらわかる気がするんですよね。
Avatar
俺の数時間を返してくれ・・・・・・w
Avatar
Kishikawa Katsumi 11/2/2017 12:23 AM
@sonson たぶん原因がわかりましたよ。copy-frameworksのスクリプト(Carthage)の順番を一番下に移動してください。これはEmbed Frameworksの代わりなので、最後にあるのが正しいです。
12:23 AM
私の環境ではそれで直りました。
Avatar
おおおおおおおおおおおお
Avatar
Kishikawa Katsumi 11/2/2017 12:25 AM
スクリプトの位置は最初から気になってたんですけど、まさかそんなエラーにはならんやろと思って保留してました。
Avatar
ありがとうございまする
Avatar
Kishikawa Katsumi 11/2/2017 12:29 AM
直りましたか。よかったです 😄 (edited)
Avatar
そうなるとなんでテストターゲットだけなんだろう アプリ本体の方は先にcopy-frameworkやってもエラーにならないのに (edited)
Avatar
omochimetaru 11/2/2017 1:32 AM
copy-frameworksのスクリプト(Carthage)の順番を一番下に移動してください。
これはなかなか気づきにくそうだ・・・
📝 1
Avatar
Kishikawa Katsumi 11/2/2017 6:28 AM
^ ただまあ普通はAdd Script Phaseすると一番下に追加されるので、わざわざ移動しない限りは起こらないです。
Avatar
copy-frameworksの追加がCarthage公式に自動化されないのは何か理由があるのでしょうか
6:36 AM
The README reads: 4. On your application targets’ “Build Phases” settings tab, click the “+” icon and choose “New Run Script Phase”. Create a Run Script with the following contents: /usr/local/bin...
Avatar
プロジェクトファイルには干渉しない方針なのかなと思ってる
Avatar
議論があった
Avatar
Kishikawa Katsumi 11/2/2017 6:36 AM
もともとXcodeのプロジェクトに手を加えるようなCocoaPodsは複雑すぎるという動機だったのでCarthage自体をシンプルに保ちたいことと、copy-frameworksが必要なのは明らかにアップルの怠慢なので、ということかなと思うんですけどね。
Avatar
omochimetaru 11/2/2017 6:39 AM
たしかにcocoapodsのそこらへんが嫌いでカルタゴ良いかもと思ったことあります
Avatar
copy-frameworkだるだるのだるで結構辛い
😫 1
😩 1
Avatar
Kishikawa Katsumi 11/2/2017 6:40 AM
そこの議論にも1つずつ指定しなくて済むようなソリューションが提案されているし、Realmでも独自にやっているので https://github.com/realm/realm-cocoa/blob/master/scripts/strip-frameworks.sh もう少し簡単にはできます。
realm-cocoa - Realm is a mobile database: a replacement for Core Data & SQLite
Avatar
carthage-copy-frameworks - Helper to sign and bundle all frameworks built by Carthage
6:40 AM
↑のIssueに貼ってあったやつ、1行でいけるらしい
6:41 AM
strip-frameworks.sh、似たようなものがAdobeのライブラリにも入ってた気がします (edited)
Avatar
ターゲットに入ってる外部フレームワークは勝手にXcodeがコピーしてくれればいいのに
Avatar
Kishikawa Katsumi 11/2/2017 6:43 AM
Embedフレームワークに指定すればそれはXcodeがやってくれます。問題は
6:43 AM
Simulator用のスライスが含まれているとAppStoreの申請で却下されることです。
Avatar
おっ
6:43 AM
なんだろうそれ
Avatar
Kishikawa Katsumi 11/2/2017 6:44 AM
なのでわざわざArchiveのときだけに限りそのスクリプトが copy-frameworksが必要。
6:45 AM
AppStoreに申請しないのであれば、通常のフレームワークと一緒のセットアップで良くて、Carhtage以下のフレームワークをEmbedフレームワークにドラッグ&ドロップするだけでOKです。(当初はCarhtageもそういうセットアップを案内していました。Appleのバグが見つかるまでは。)
Avatar
そうだったのか・・・
6:46 AM
最初からAppStoreに申請するつもりないというケースが今までなかったので知らなかったです
Avatar
Kishikawa Katsumi 11/2/2017 6:47 AM
まあプロトタイプだったり、ちょっと新しいライブラリ試すとかですね。
Avatar
手抜きでEmbedにD&Dしてあとでcopy-frameworkやればいいっしょ~~~ってやってたら
6:48 AM
リリース時になって失敗してキレる、を繰り返していて成長が無い
Avatar
Swift PM が iOS サポートしてくれて、早くそういう辛さから抜け出したい・・・。
Avatar
本当に雑談って感じで申し訳ないけれど、Discordの右側、Xcodeをプレイ中、とかIntelliJ IDEAをプレイ中とかかいてあってちょっと笑ってしまった
Avatar
omochimetaru 11/2/2017 8:46 AM
ユーザー設定 > ゲーム で検出するように設定できますよ
Avatar
Xcode 9 beta のときにいろいろいじってたせいでたのしい人生消えてた
Avatar
Appleとしては、ワークスペース外でビルドされたframeworkバイナリのリンクは非サポートだったと思うので、Carthageでビルドしたものを参照するのは避けるべきだと思ってる。
12:20 PM
Carthageでチェックアウトしたサブモジュール内のプロジェクトをメインのワークスペースに含んで、各ターゲットでembedしてビルドするのがトラブらない。
Avatar
それだとgit submoduleで良い気がします
Avatar
submoduleの管理にCarthageを利用するイメージです。
12:26 PM
git submodule自体には依存バージョン解決の仕組みがないので。
12:30 PM
Carthage自身もその様に使っていたはず。
Avatar
omochimetaru 11/2/2017 1:29 PM
git submodule のバージョン解決だけに使うの良さそうだと前から思っています。Carthage自身がそうだったんですね。
Avatar
ワークスペース外でビルドされたframeworkバイナリのリンクは非サポート
まだバイナリ互換が保証されていないので、ビルド済みのframeworkを配布するようなのはグレーゾーンとして、手元で事前にビルドしておいてそれを使うのは特におかしくないとは思っています。
1:51 PM
もちろん便利なsubmodule解決くんとしての使用法もよいですね。
1:53 PM
copy-frameworksそんなにだるいかな(頻繁にライブラリの追加や削除がある?)
1:53 PM
ターゲットが多い時はちょっと面倒そう
Avatar
ワークスペースとか実験的なのをいっぱい作ってると、毎回やるので中々
Avatar
実験的な時は上で話されてるようにEmbed Frameworksでよいでしょと思ってました
Avatar
確かに
Avatar
とはいえ理解はできます😅
2:00 PM
With output files specified alongside the input files, Xcode only needs to run the script when the input files have changed or the output files are missing. This means dirty builds will be faster when you haven't rebuilt frameworks with Carthage.
こういう話もあるので、Input filesとOutput files指定する形自体はそのままがよさそうかなーと。その上で楽しようとするとprojectをいじることになるので、そうなったら外部でオプショナルな手段としてやってほしさはあります。
Avatar
tryswiftのチケット買った
2:43 AM
会場で僕と握手
Avatar
セッション一覧もう公開されてたっけ
Avatar
まだメインスピーカーの一部が誰かってことしかわからんかったよーな
2:44 AM
try! Swift is an immersive community gathering about Swift Language Best Practices, Application Development in Swift, Server-Side Swift, Open Source Swift, and the Swift Community taking place around the world in Tokyo, New York, and Bangalore.
Avatar
ピーク時に #swift, #swift-2 だけだと足りてないのではという気がしてきた、 #swift-zatsu を侵略すればいいかしら (edited)
Avatar
たりなくなったら其の時に @omochimetaru がスケールさせる
Avatar
omochimetaru 11/6/2017 8:32 AM
増やすデメリット一応あって、検索はチャンネルに縛られてるから
Avatar
人間オートスケール
Avatar
omochimetaru 11/6/2017 8:33 AM
この話題あったな〜ってなったときに
Avatar
あーそれはきびしい
Avatar
オートとは
Avatar
omochimetaru 11/6/2017 8:33 AM
検索が大変w
Avatar
検索はつらいな
Avatar
omochimetaru 11/6/2017 8:33 AM
ただそれ以外には特にコスト無いと思うんで swift-3は全然作れるけど。
Avatar
#cgfloat-tte-typealias-ja-nakattakke みたいな運用は?
8:33 AM
議題をチャンネルのドメインにする
Avatar
omochimetaru 11/6/2017 8:34 AM
?
8:34 AM
チャンネルを作りまくるってこと?
Avatar
アーカイブみたいな概念ないならキツイけど
Avatar
チャンネルアーカイブあれば成り立つけどあるんだっけ
Avatar
omochimetaru 11/6/2017 8:34 AM
抹殺されてる気がする
8:34 AM
swift-zatsu、2回目だけど過去ログ無いし
Avatar
とりあえず #swift-zatsu を侵略してみるか
Avatar
So when a channel is no longer needed, you should be able to archive it, so that nobody can post in it anymore, but it's still viewable for other purposes. Only see those channels if you go into a specific menu.
8:35 AM
アーカイブ機能は無いからarchivedというカテゴリを作ってそこにチャンネルを移動させてるってさ
Avatar
omochimetaru 11/6/2017 8:35 AM
なるほど
Avatar
つまり
Avatar
omochimetaru 11/6/2017 8:36 AM
ちょっと使い方がイレギュラーなので微妙なカンジがするけどね
Avatar
Swiftカテゴリ以下にチャンネルがあって、終わったらArchivedカテゴリに更迭
8:36 AM
この使い方だとSlackとは全然違うね
Avatar
admin負荷がすごい
Avatar
むしろ #swift<Index> 型が()
Avatar
omochimetaru 11/6/2017 8:36 AM
それは無理だから権限バラマキやね
Avatar
まあドラゴンに空間創造の力を与えるのはいいとおもう
Avatar
ひらりはなろう系小説読みすぎたのか
🐉 2
Avatar
よんだことない
Avatar
検索、チャネル横断な気がするんだけど?🤔
Avatar
omochimetaru 11/6/2017 9:14 AM
あれ?
Avatar
横断ですね
Avatar
omochimetaru 11/6/2017 9:15 AM
ほんとだ。
9:16 AM
時系列でチャンネル区切りが出るだけか。
Avatar
Slackより検索のUXが良いように感じるのなんでなんだろう。レスポンスが良いから?ログが消えないから?
Avatar
自分にとってはどっちもどっちですかね、特にMagic Mouseかトラックパッド使って完成スクロールが効いてる時、例えば左のチャンネルリストスクロールしてまだ止まってない状態でマウスのカーソルを右のコンテンツ領域に持っていくとコンテンツ領域もスクロールするの本当イライラします
Avatar
iOSでInteractivePopのジェスチャーと、リンククリックがコンフリクトしていて残念な画面遷移が出たりするところ以外はまぁ
9:19 AM
個人的にはシンタックスハイライトがサイコーなのでそれだけで十分
Avatar
シンタックスハイライトはわかる
Avatar
あと、デフォルトでチャネルに参加は良いですね。
9:19 AM
少し前までは Slack のバックスペース文字問題があったから、そのマイナスイメージもあるのかも。
Avatar
そういった意味でパソコン移行してもルームを参加し直さなくていいのもいいですね
Avatar
アカウント一つなのもいいですよねぇ。
Avatar
omochimetaru 11/6/2017 9:20 AM
個人的にはアカウント1つなのが最大の魅力
Avatar
本当Slackなんでああいう仕様にしてるんだろ 🤔
Avatar
markdownの引用記法と発言ごとのパーマリンクだけよこせって感じする
Avatar
omochimetaru 11/6/2017 9:20 AM
社内用なのでは > Slackの仕様
Avatar
ビジネスチャットだから組織をまたぐのがまずいんでしょうねぇ。
Avatar
omochimetaru 11/6/2017 9:21 AM
Discordはコミュニティ用
Avatar
なので、オープンソースコミュニティとかはDiscordの方が向いてそう。
Avatar
かといってパソコン変えた時全ての組織を入れ直さなくちゃいけない、しかも参加済リストが出ないのは本当辛い
😭 1
Avatar
markdownの引用記法と発言ごとのパーマリンクだけよこせって感じする
これはほんとに思う。それができたら最高なのに。
Avatar
せめて参加済リストは欲しい
Avatar
omochimetaru 11/6/2017 9:22 AM
パソコン変えた時全ての組織を入れ直さなくちゃいけない
なんか機能ありますよ、参加済みのチームのマジックリンク全部メールで届くやつ
Avatar
@lovee ですね。面倒でマシンごとに参加してるのが違うw
Avatar
omochimetaru 11/6/2017 9:22 AM
その機能自体にたどり着くのがむずいんだけど
Avatar
機能の方向性がおかしい気がw
Avatar
むずいしメールで来るしリンクの有効期限24時間しかないし()
Avatar
omochimetaru 11/6/2017 9:23 AM
それはそう・・・
Avatar
@koher それなw
9:25 AM
でもなんとなく本能的にCocoaじゃないMacアプリに拒絶反応が…
Avatar
ディスコってslackみたいなインテグレーションあるのかな
Avatar
omochimetaru 11/6/2017 9:26 AM
アプリ連携機能はあるけどどこまでできるかしらない
9:26 AM
あとbot作成機能があるよ。
Avatar
webhook経由でぽいぽい投稿投げれるのはSlackのよいところだったとおもう
9:27 AM
気合い入れた連携もつくれるし、webhookからとりあえず放り込むこともできた
Avatar
omochimetaru 11/6/2017 9:27 AM
音楽再生ボットとかある。音声チャットのとこにボットを入れておくと、テキストちゃんねるにyoutubeを書き込むと音声通話として音楽を流してくれるなど。
Avatar
Slack一強で競争相手がいなくてクソUX放置されるのが一番ダメなので、適度に競争相手がいてくれたほうがいい
9:27 AM
そういう意味ではDiscordもSlackもあったほうがいい
Avatar
omochimetaru 11/6/2017 9:28 AM
botに勝手に発言させる事ができるから、通知系はそれで作れそうだな。
Avatar
でもSign-in周りはいつまでたってもクソクソだよね
Avatar
omochimetaru 11/6/2017 9:28 AM
適度に競争相手
チャットワーク思い出した
Avatar
世間一般的にSlackの競合相手はチャットワークなのでは?
9:28 AM
先にいわれたw
Avatar
omochimetaru 11/6/2017 9:29 AM
無料で使えるビジネスチャットSyncの使い方や、仕事術・コミュニケーションに関する記事などを紹介します。
Avatar
なにげにDiscordは2段階認証あるのもよい
Avatar
omochimetaru 11/6/2017 9:29 AM
ウォンテッドリーさんの シンクもあるよ
9:29 AM
wantedly chatに名前がかわっていた
Avatar
名前にインパクトが足りないですね
Avatar
omochimetaru 11/6/2017 9:31 AM
Discord は最近ビデオ通話とかデスクトップ配信もついたので
9:31 AM
いろいろできそうだけどね
Avatar
Splathonとかだと圧倒的にDiscordの方が勝手良さそうだ
9:32 AM
そういえばこの間初めてSplathonのSlackにinしたら一番最初にひらりが出てきて笑った (edited)
Avatar
なんや!
2:35 PM
splathon.slack.comのオーナー俺やぞ
Avatar
え、そうなん
Avatar
うん
2:55 PM
作ったのわし
2:56 PM
自動招待フォームのメールも俺のアドレスから届く
👏 1
Avatar
Macの通知バナー、右上じゃなくて右下とかに出す裏技ありませんか 画面2枚にして首が痛いです
Avatar
昔Growlってやつあったけど今はどうでしょ…
Avatar
2017年にGrowlはちょっとなー
Avatar
http://growlmac.tumblr.com 気になって覗いてみたらブログ更新が2013年で止まってた
The space to talk about Growl and The Growl Project
Avatar
crash と clash と crush ってややこしすぎませんか?
Avatar
ややこしいですね 😩
Avatar
いつもどれかわからなくなります😂
Avatar
わかりますw
Avatar
Kishikawa Katsumi 11/8/2017 2:37 PM
Carthageで〜.xcarchiveが1つ上のディレクトリにできてしまう問題を調べててわかったんだけど、xcodebuild archive-archivePathオプションは必ず引数をファイルだと解釈するためで、もともとCarthageでは-archivePath ./となってて、それだと例えばカレントディレクトリが/Users/katsumi/Desktop/SomeProject/の場合、-archivePathオプションの引数は-archivePath /Users/katsumi/Desktop/SomeProjectとなってxcodebuild/Users/katsumi/Desktop/SomeProject.xcarchiveというファイルを作る、という仕様。
Avatar
norio_nomura 11/9/2017 7:11 AM
CarthageとCocoapodsでdependencyに ~> 0.3 と書いた時の解釈が微妙に違うんだね。
7:14 AM
0.4 はCarthageだとマッチしないけど、Cocoapodsだとマッチする。
Avatar
omochimetaru 11/9/2017 7:15 AM
あ〜〜〜
7:15 AM
semverにおけるメジャーバージョン0はメジャーバージョン1以降と
7:15 AM
マイナーバージョン/リビジョンのゆるい互換性の意味付けが変化する仕様を
7:16 AM
対応してるかしてないか、か?
Avatar
norio_nomura 11/9/2017 7:16 AM
ついでにSwiftPMで from: "0.3.0"と書いていた場合も 0.4 はマッチする。
Avatar
omochimetaru 11/9/2017 7:16 AM
(semverのその仕様が悪いと思う
Avatar
メジャー0は全てのバージョンアップがbreakingの可能性があるのでしれっとアップデートされるよりはされないほうがいいのか
Avatar
omochimetaru 11/9/2017 7:17 AM
うん。
7:17 AM
メジャー0の特別なルールがある。 (edited)
7:17 AM
だから 0.1から0.2 は安全でないけど、1.1から1.2は安全っていう違いがあって
7:17 AM
その実装差異だろうね・・・
Avatar
norio_nomura 11/9/2017 7:17 AM
Cocoapodsで0.3.xに限りたい場合、~> 0.3 ではなく ~> 0.3.0 と書かないといけない。
Avatar
~> ってsemverとかで定義されてる記法?パッケージ管理ソフト独自のもの?
Avatar
omochimetaru 11/9/2017 7:17 AM
semverで ~は定義されてるよ
Avatar
norio_nomura 11/9/2017 7:18 AM
ほほー>定義されてる。
Avatar
omochimetaru 11/9/2017 7:18 AM
ごめん嘘だった
😂 1
Avatar
びっくりした
Avatar
semverで記法が定義されてないなら、どっちも責められないというか
Avatar
omochimetaru 11/9/2017 7:19 AM
「後方互換性」の概念について定義されているだけか。
Avatar
~> を "マイナーバージョンまでは勝手にあげます" という意味に使うか "breaking changeがない限りあげます" とするかは各パッケージマネージャに委ねられるね
7:19 AM
同じ記法が違う意味で使われるのはつらいというのはそう
Avatar
omochimetaru 11/9/2017 7:19 AM
でも前者は、semverの理論からするとナンセンスだよ。
Avatar
まあね
Avatar
omochimetaru 11/9/2017 7:20 AM
マイナーバージョンが上がること自体は、互換性が壊れる場合もあるし、壊れない場合もある、ので。
7:20 AM
「マイナーバージョンが上がること」に一貫した意味が定義されない (edited)
Avatar
マイナーバージョンが上がるのは互換性保たれるのでは?
Avatar
omochimetaru 11/9/2017 7:22 AM
0.1から0.2は保たれないですよね?
Avatar
norio_nomura 11/9/2017 7:22 AM
SwiftPMの場合 // 1.5.8 ..< 1.6.0 .package(url: "/SwiftyJSON", .upToNextMinor(from: "1.5.8")), と書かないといけないぽい。
Avatar
0.X については特別ルールで、 semver にちゃんと定義されてる。 < 0.1から0.2
Avatar
omochimetaru 11/9/2017 7:22 AM
つまり、マイナーバージョンの互換性はメジャーバージョンに依存していて、マイナーバージョン単体では一般論が無い。 (edited)
Avatar
1.0 以降はマイナーバージョンアップは互換性が保たれる。
Avatar
omochimetaru 11/9/2017 7:23 AM
はい。
7:23 AM
1.0以降か未満かどうかを区別して考えないといけない。
Avatar
ああ、そういう話をしてるのか、そもそも。
7:24 AM
話の経過を途中からしか読んでなかった。
Avatar
omochimetaru 11/9/2017 7:24 AM
だからパッケージマネージャーが、「メジャーバージョンと関係なくマイナーバージョンを最新にする」っていう機能を提供していても
7:24 AM
全く嬉しくない。
7:24 AM
ほしいのは「semverの理論上で互換性が保たれる範囲でアップグレードする」とか、そういうのなんじゃないかと
Avatar
うん、そうだと思う。
Avatar
omochimetaru 11/9/2017 7:25 AM
CarthageとCocoapodsでdependencyに ~> 0.3 と書いた時の解釈が微妙に違うんだね。 0.4 はCarthageだとマッチしないけど、Cocoapodsだとマッチする。 ついでにSwiftPMで from: "0.3.0"と書いていた場合も 0.4 はマッチする。
7:25 AM
つまり、Cocoapods と SwiftPM の実装は良くない。 carthageの実装が良い。って事?
Avatar
と思う。
7:26 AM
もちろん、 from: "1.3.0" なら 1.4.0 にもマッチしてほしい (edited)
Avatar
Kishikawa Katsumi 11/9/2017 7:26 AM
~> 0.3の意味は普通は 0.3から1.0未満と考えられるからCocoaPodsがあってると思います。
Avatar
でも、 from: "0.3.0" は 0.4.0 にマッチしてほしくない。
Avatar
Kishikawa Katsumi 11/9/2017 7:27 AM
~> 0.3.0と書いて0.3.0以上0.4未満
Avatar
omochimetaru 11/9/2017 7:27 AM
むむ
Avatar
x.3.0 (ただし x >= 1)の場合だと ~> x.3.0 で (x+1).0.0 未満と考えてほしいけど (edited)
Avatar
Kishikawa Katsumi 11/9/2017 7:28 AM
~>はRubyGemsの演算子の定義からきているはずなので、それに従うとするならですけど。 (edited)
Avatar
omochimetaru 11/9/2017 7:28 AM
What does ~> mean in the context of Ruby gem depenedencies? For example, when opening a legacy project in the RubyMine IDE, I get this message Gems required for project are not attached: arel ...
7:28 AM
It means "equal to or greater than in the last digit", so e.g. ~> 2.3 means "equal to 2.3 or greater than 2.3, but less than 3.0", while ~> 2.3.0 would mean "equal to 2.3.0 or greater than 2.3.0, but less than 2.4.0".
You can pronounce it as "approximately greater than".
Avatar
semver の定義を考えると、 ~> 0.3.0 は 0.4.0 未満にしてほしいですねぇ。
7:29 AM
別に ~> じゃなくていいんで、 SwiftPM の from: "0.3.0" については 0.4.0 未満になってほしい。
Avatar
omochimetaru 11/9/2017 7:30 AM
~> の記号の意味は gems が歴史的に定義しちゃった、とすると、semver準拠の互換性アップデートを表す記法は別に用意したほうがいいですね。
Avatar
Kishikawa Katsumi 11/9/2017 7:30 AM
メジャーバージョンがゼロはどんなBreakinChangeも起こるだから、気にしなくいいんじゃないですかね。使う側の責任。
7:31 AM
^ メジャーバージョンがゼロかどうかで演算子の挙動が変わるのはわかりにくいしメリットもなさそう、という意味。
Avatar
omochimetaru 11/9/2017 7:31 AM
0.1.1 →0.1.2 と、 0.1.1 → 0.2.0 はどちらも同じなんでしたっけ? (edited)
7:32 AM
メジャーバージョンのゼロ(0.y.z)は初期段階の開発用です。いつでも、いかなる変更も起こりうります。この時のパブリックAPIは安定していると考えるべきではありません。
(edited)
Avatar
Kishikawa Katsumi 11/9/2017 7:32 AM
Semverの定義でいうとメジャーがゼロの間はどうやってもいいと思っています。 (edited)
Avatar
そもそもメジャー0でパッチナンバーすすめたことない
Avatar
omochimetaru 11/9/2017 7:32 AM
なるほど・・・ 一つずれるわけではないんですね。
Avatar
なんかそこ曖昧だった気が。
Avatar
Kishikawa Katsumi 11/9/2017 7:32 AM
良心的なところはBreakingのタイミングでマイナーをあげるでしょうけど。
Avatar
omochimetaru 11/9/2017 7:33 AM
0のマイナーは互換性破壊、0のリビジョンは互換性維持 かと思ってやってました。
Avatar
↓はあるんだけど 4. メジャーバージョンのゼロ(0.y.z)は初期段階の開発用です。いつでも、いかなる変更も起こりうります。この時のパブリックAPIは安定していると考えるべきではありません。
7:33 AM
パッチバージョンアップは互換ともとれる文章がどこかにあった気が。
Avatar
omochimetaru 11/9/2017 7:33 AM
そもそもメジャー0でパッチナンバーすすめたことない
0しか使ったことない(1になるまえに飽きる
Avatar
gysbは飽きないでくれ
Avatar
omochimetaru 11/9/2017 7:34 AM
マジか
Avatar
Kishikawa Katsumi 11/9/2017 7:34 AM
Semverまったく好きじゃないし、できるならやりたくないけど、1.0.0を出したら頑張って
7:34 AM
Semverを守ろう、ってやってる。
Avatar
semver以外に支持されてるバージョニングスキームってありますか?
Avatar
ウソかも 6. パッチバージョン Z (x.y.Z | x > 0)は、後方互換性を保ったバグ修正を取り込んだ場合のみ、上げなければなりません(MUST)。バグ修正とは間違った振る舞いを修正する内部の変更のことを指します。
Avatar
Kishikawa Katsumi 11/9/2017 7:35 AM
ないんじゃないですかね。まったく好きじゃないけどSemverしかないし、と思ってやってます。
Avatar
x > 0 って明記されてる。
Avatar
omochimetaru 11/9/2017 7:36 AM
~> があったとして、右側にメジャー 0って書いた時点でユーザ責任、というのもありな気がしてきた。 (edited)
Avatar
Kishikawa Katsumi 11/9/2017 7:37 AM
前に困ったことがあって、Swiftの場合Publicなシグネチャの型パラメータの名前を変えた場合ってメジャーを上げなければならないですかねえ?
7:37 AM
^ これで
Avatar
なると思います。
Avatar
そもそも0の間って問題が起きたら完全に使う側が悪いと思ってるんだけどそういうもんじゃないのかな
Avatar
Kishikawa Katsumi 11/9/2017 7:37 AM
ユーザーは壊れないと思っていて、これで壊れるのは使ってるライブラリ
7:37 AM
くらいなので、できるなら上げたくない。。。
Avatar
Q. パブリックAPIに対して後方互換性を保たない、ほんの些細な変更があった際もメジャーバージョンアップをしなければならないのなら、42.0.0のようにバージョンにすぐになってしまわないですか? A. これは責任ある開発と深い洞察のある質問です。多くの依存されているコードを持つソフトウェアにおいて、非互換な変更を気軽に取り込むべきではありません。アップグレードする度にかかるコストは無視できないものでしょう。非互換な変更をリリースするためにメジャーバージョンを上げることは、変更における悪影響を思い知ることになるでしょう、加えて、かかるメリットとデメリットをどちらが大きいか判断すべきでしょう。
Avatar
メジャー0のメジャーなライブラリもありますからねぇ (edited)
Avatar
長いことRealmがそうだった
Avatar
無限バージョン 0 ライブラリだ
Avatar
なので気軽にリリースできなくて、僕は x.0.0-alpha.y とか x.0.0-beta.y がずっと続くことに。 (edited)
Avatar
Realmはもう1なので有限ですね
👌 1
Avatar
semverの話題でついでに意見がほしいんですけど、デフォルト引数があるメソッドのデフォルト値が替わった時ってバージョンどこをすすめるべきなんでしょうか
7:39 AM
シグネチャは変わらないのでコンパイルはそのまま通るけど挙動が一部変わる
Avatar
9. プレリリースバージョンは、パッチバージョンの直後にハイフンとドットで区切られた識別子を追加することで表現してもよいです(MAY)。識別子は必ずASCII英数字とハイフン[0-9A-Za-z-]でなければなりません(MUST)。識別子は空であってはなりません(MUST NOT)。数値の識別子はゼロからは始めてはなりません(MUST NOT)。プレリリースバージョンは関連する通常のバージョンよりも低い優先度です。プレリリースバージョンは、不安定であり、関連する通常バージョンが示す要件と互換性を満たさない可能性があります。例:1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92。
Avatar
デフォルト引数変わるのデンジャラスだ
Avatar
それがバグフィックスでなく仕様の修正ならメジャーバージョンアップでは? < デフォルト値変更
Avatar
やっぱメジャーかあ
Avatar
デフォルト値がバグってたんならパッチでいいかも
Avatar
omochimetaru 11/9/2017 7:43 AM
前に困ったことがあって、Swiftの場合Publicなシグネチャの型パラメータの名前を変えた場合ってメジャーを上げなければならないですかねえ?
Avatar
scikit-imageでデフォルト引数が変わる警告を毎回printしてくれてたなぁと思ってバージョン見たら安心のメジャー0だった
Avatar
omochimetaru 11/9/2017 7:43 AM
これは、 extension とか書いてるときに、影響をうけるからですよね
7:44 AM
ユーザーは壊れないと思っていて、これで壊れるのは使ってるライブラリ
「ライブラリを使ってるライブラリ」と「ライブラリを使ってるアプリ」は、 等しく元のライブラリからみたら「ユーザ」とみなすべきじゃないかなあと思ってます
7:44 AM
だから、型パラメータ名を変えるのも、メジャーバージョンアップですね・・・・・・・
Avatar
パッチバージョンアップであっても挙動が変化することには違いがなくて、何かがぶっ壊れる可能性は常にあるから後方互換で安全というのは幻想で、ライブラリをアップデートしたらちゃんとテスト通さないといけない。
Avatar
omochimetaru 11/9/2017 7:45 AM
基本的に互換性維持されているはずのアップデートで、プロジェクトのコンパイルが通らなくなる可能性があるなら、互換性ないって話だと思う
Avatar
コンパイルが通らなくなるのはメジャーバージョンアップ。
Avatar
omochimetaru 11/9/2017 7:46 AM
@koher が言っているのは、たとえバグフィックスでも、バグフィックスによって挙動が変わっちゃうから、バグに依存した実装をしてしまっていた場合にはどうせ壊れるってことですよね?
Avatar
でも、 Swift みたいにそもそも言語仕様自体が変わる場合ってどうしたらいいんだろうと思う。
7:47 AM
@omochimetaru はい。なので、デフォルト引数の変化がバグフィックスなのか仕様変更なのかはケースバイケースで、パッチバージョンアップでも利用者側は安心はできないということです。
Avatar
Kishikawa Katsumi 11/9/2017 7:47 AM
まあでもSemverよりCHANGELOGをちゃんと書くほうがお互いにいいだろうと思って頑張って
👍 5
7:47 AM
書いています。
Avatar
norio_nomura 11/9/2017 8:08 AM
とりあえず0.0.xで公開してたライブラリを0.1.0にしておこう…
Avatar
遅レスですがCocoaPodsで ~> 1.2.1 として嫌なのは、バグフィックスの関係で1.2.1は絶対必要なんだけど、そうすると上がる範囲が1.2系に限られてしまう。Carthageだと1.yもOKで、僕はこちらの方が好みです。
11:18 AM
かといってCocoaPodsで>=使うかと言われたらメジャーバージョンアップまでは受け入れたくないので使いたくない、みたいな。
Avatar
Kishikawa Katsumi 11/9/2017 11:19 AM
~> 1.2 と書くのではダメなのですか? (edited)
Avatar
それだと依存グラフの中に == 1.2.0がいるとそれで解決されてしまいませんか?
Avatar
Kishikawa Katsumi 11/9/2017 11:20 AM
なるほど。
Avatar
まあ気にしすぎという感はあるんですが。
Avatar
glob.hglob** によるディレクトリ再帰には対応してないのか・・・
Avatar
なんで show quick help すぐ死んでしまうん
Avatar
UnityとARKitを使って簡単なアプリを作って見ました :) https://youtu.be/fHwWR096KiA
👀 5
Avatar
yutailang0119 12/13/2017 1:25 AM
貴族階級の方々、レビュー待ってます https://www.apple.com/jp/imac-pro/
プロユーザーのために一から作られたiMac Pro。これまでのどんなMacに搭載されたものよりもパワフルなグラフィックス、プロセッサ、ストレージ、メモリ、I/Oのコレクションを詰め込みました。
🙄 2
Avatar
発売近づいてきた
Avatar
会社に買ってもらうパターンの方が多そう🧐
Avatar
2台でワークステーション作れるとかあるんで、是非2台購入してレポを!
Avatar
yutailang0119 12/13/2017 1:32 AM
草生えるw > 18コアを搭載したiMac。誤植ではありません。
Avatar
欲しいけど家の2012年モデルの27インチiMacがまだなんの問題もなく動いてるのが悪い(言い訳
Avatar
>数の多さは強さであることを、改めて証明しましょう。 力技すぎる
Avatar
金の暴力は正義。
Avatar
世の中金か…
Avatar
28コアのこれに載せ替えたり出来るんですかね
4:17 AM
価格.com - インテル Xeon Platinum 8180 BOX スペック・仕様 http://kakaku.com/item/K0000982874/spec/#tab
■最安価格(税込):1,288,300円 ■店頭参考価格帯:1,393,100円~1,393,100円 ■価格.com売れ筋ランキング:54位 ■満足度レビュー:0人 ■クチコミ:0件 (※12月13日時点)
Avatar
128万円w
Avatar
直ハンダ付けのはずなので、載せ替えは無理と思いますね
4:21 AM
魔改造すればあるいは??
Avatar
27インチiMac 5K Retinaディスプレイの場合は外せるみたいですね 4:00ごろ The Best 2017 iMac Apple Doesn't Sell! - YouTube https://www.youtube.com/watch?v=knMM9dRwIH4
4:27 AM
128万円😩
Avatar
おっ?!ここは是非ともw
😱 1
Avatar
なんかピザ切るカッターみたいなやつでパカッとあけててワロタ
Avatar
この器具いいですねw これだけでも欲しいです
Avatar
iFixit謹製のピザカッターw
Avatar
やば
Avatar
Discord日本サーバーできたらしい @omochimetaru @mono
👀 1
🇯🇵 2
🇧🇩 1
7:31 AM
日本サーバーにしたおかげか、画像アップロードが一瞬で終わったような 🤔
Avatar
日本ユーザー使いすぎて反って遅い、とかあるかな、どうだろ
Avatar
家庭用Discordも日本リージョンに変えました 🐶
Avatar
Discordって有料プランとかあるんでしたっけ?快適に使いたければ金払えとかあるのだろうか?
Avatar
おおお
Avatar
個人向けにnitroプランがありますよ @ありぜ
Avatar
nitro
7:34 AM
なんと好きなサーバーで好きな絵文字が使えるw
Avatar
サーバー単位じゃなくてアカウント単位か。
Avatar
年間$50くらいで動くアバター!
Avatar
サーバー単位の絵文字はサーバーに設定すればサーバーの中でみんな使える。
7:36 AM
serveremoji
Avatar
今何も設定してないんすねー
Avatar
50スロットしかないのか
Avatar
欲しかったら画像くれれば設定します。
Avatar
:swift:
7:39 AM
とりあえず言語系
7:39 AM
swift kotlin scala rust haskellを入れよう
Avatar
LTの募集を開始しました。よろしくお願いします🤲 https://www.tryswift.co/events/2018/tokyo/jp/
try! Swift is an immersive community gathering about Swift Language Best Practices, Application Development in Swift, Server-Side Swift, Open Source Swift, and the Swift Community taking place around the world in Tokyo, New York, and Bangalore.
👍 4
Avatar
@d_date ↓選考期間めちゃくちゃ短くないですか??🤔 締め切り前に絞り込んであるってことですか?
応募期限: 2017年1月18日深夜 採択可否については、1/29(月) を目安にご連絡いたします。
(edited)
2:54 AM
ああ、見間違えでした🙇 (edited)
2:54 AM
1/18→1/19かと思った (edited)
Avatar
応募期限: 2017年1月18日深夜
来年は2018年ですね
😅 3
😳 3
Avatar
ww
Avatar
失礼しましたw 修正しました🙇‍♀️
👍 2
Avatar
Swiftのproposalに書かれているサンプルコードのenumの型名がHomeworkExcuse(宿題の言い訳)で、そのcaseの一つがeatenByPet(ペットに食べられた)になってるw https://t.co/BoCdyDHxot
🙂 2
😂 2
Avatar
サブのマシンをHighSierraにアップグレードしようとしたらインストーラがエラー出して再起動ループに入ってヤバかった
8:47 AM
本体内蔵のリカバリモードからSierraのインストールしようとしたけどそれもディスク選択のところでバグって止まるし、HighSierraのインストールUSBを作る方法でもディスク選択でバグ
8:48 AM
リカバリモードのディスクユーティリティからメインドライブをFirst aidかけたあとインストールUSBから進行させたらいけた。
8:48 AM
なおFirst aid自体は何も異常を報告しなかった。
Avatar
ていうかEl CapitanあたりからFirst aid自体が使い物にならなかった気が
Avatar
そうなの。まあ、今回は一応使い物になりましたw
Avatar
なんか確かLeopardかSnowLeopardからアクセス権修復がいっぱい修復できないエラー吐くようになって、アップルが「それ仕様です」と言い張って、そしてMoutain Lionあたりからいっその事それを出力しないようにしただけにして、最終的にとうとうEl Capitanかなんかでアクセス権修復をなくしてFirst aidだけ残したけどそれほとんど役に立たないって記憶が
Avatar
ほお・・・
9:07 AM
はーHighSierra起動した。よかった・・・
🎉 6
Avatar
まだHighSierraにするの恐いです いつごろが良いんだろう。。。( ・`ω・´;)
Avatar
毎度の流れだと最新のXcodeが Sierraで動かなくなるときが来るのでその時にやるつもりです。
Avatar
今のところはHigh Sierraで問題には遭遇してないですね(rootがどうとかそういうのは置いておいて)
Avatar
最新のXcodeがHighじゃなきゃ動かなくなるまでアプデしない
Avatar
@d_date FileVaultって使ってますか?
Avatar
@omochimetaru 使ってるはずだけど、他の人が遭遇しているような問題には出会ってないっす。
Avatar
なるほど。僕もdisk first aidでいけたんで、FileVault + 何かしらの条件 でアプデが文鎮フローになるっぽいですね。
Avatar
でも変更点ってなんだったけ?なんか良くなった気がするけど忘れた。
Avatar
APFS
Avatar
あーせやね。
Avatar
そこで HFS+ から APFS への変換がかかるところが死にポイント
Avatar
ふぇぇ
Avatar
ユーザーレイヤだとsafariの広告ブロックが楽しみです
6:02 AM
それでsafariに既に乗り換えてあります
6:03 AM
iPhoneのsafariでブロッカー入れてるんですけどウェブがめちゃめちゃ早くなりますよ
Avatar
この間Bootcamp設定できなくて切れてたら、どうやらAPFSは未対応らしい
Avatar
マジかよw
6:03 AM
HSだとブーキャンできないってことか・・・
Avatar
プーキャン→アップデートはおk
6:04 AM
アップデート→プーキャンは無
Avatar
えーーー
Avatar
💩
💩 2
🍏 1
Avatar
早く対応してほしいですねえ
Avatar
PUBGできなくなっちゃう
Avatar
この前tarunonとPCゲーやろうとしてブーキャン入れてもらおうとして詰んだ
Avatar
なるほど、Xcodeが動かなくなるタイミングは良さそうですw 真似します 🙏
Avatar
全く iOS も Swift も関係ないのですが、プログラマーにはちょっと関係のあるあのデバイスの本がコミケで出ます!よろしくお願いします🙏 https://twitter.com/Biacco42/status/943852832821616641
KbD C93 を 1日目 東3 カ54b で頒布します。自作キーボードが気になるけれどどこから手を付けていいかわからない、という方向けの入門書です。検索のきっかけになるワードを強調するなど、入門から発展の足がかりになる内容に仕上がりました。フルカラーです!よきに!
👀 1
🎉 4
Avatar
この流れで同じく宣伝します、冬コミ1日目本出しますー 🙏 https://twitter.com/lovee/status/940462645295038464
【宣伝】C93友人が受かりましたので自分も本出します。Auto Layout○す本として自作フレームワーク「NotAutoLayout」の解説をする「レイアウトを、もっと Swifty に」の名前の本です。1日目の東キ-11a(Augmented 2次元 Lab)でお待ちしております。多分40ページくらいで1000円で配布する予定です。
💯 2
👏 6
🎉 4
Avatar
@Biacco42
自作キーボード本
Biacco42さんは本を書かれたご本人ですか?
Avatar
この記事は、自作キーボード Advent Calender の25日目クリスマスの記事です。 昨日の記事は、ないんさんの キー配列頂上決戦!さいつよなレイアウトはどれだ! でした。 はい 4x7 split キーボード #Ergo42 プロト完成しました。今日一日会社で使ったけど問題なかったし、むしろ完全に期待通りで優勝した pic.twitter.com/JtqYRoKDn7— 人生たの椎名林檎 1日目 東3 カ54b (@Biacco42) 2017年11月20日 [PR] KbD C93 KbD C93 という自作キーボード同人誌が 12/29(金) 東3 カ54b で頒布されます。 昨…
1:34 AM
作ってみたいなー
Avatar
@ktanaka117 そうですー
1:38 AM
@rintaro おっ、ぜひぜひ。基板とケースの Group buy は年明けたらやってみようと思っているので、よろしかったらそちらでパーツ買っていただくか、設計は公開されているので業者に発注かけるもありです👌 (edited)
Avatar
どんなの作るかをまず考えねばw
Avatar
なるほどそこからですかw
Avatar
@Biacco42 おお! 気になってたのですがタイミング的に東京におらず、Twitter見てたら通販もあるとのことなのでそちらに期待してます!
Avatar
@lovee さんの本はどこか委託とか通販予定ってあります?
Avatar
@ktanaka117 うおおありがとうございます!通販の在庫確保が結構必要な感じになってきた
Avatar
@ありぜ 委託や通販の予定は今の所ないですが今度の技術書展にも出す予定です、あとご所望でしたら事前に言っていただければ勉強会とかにも持ち出します()
Avatar
なるほど
Avatar
https://el-hoshino.booth.pm/items/719884 通販始めてみました!梱包材が届くのが1日の予定なので発送がそれ届いてからになりますがどうぞよろしくお願いします!
【C93 新刊】【発行サークル:♭Map】 「レイアウトを、もっと Swifty に -The Philosophy Behind NotAutoLayout-」は、自作 iOS 用レイアウトフレームワーク「NotAutoLayout」の解説本です。本書は - 前書き:Swifty とは - 第 1
💯 1
👍 2
😍 1
Avatar
あけましておめでとうございます 🎆
㊗ 12
⛩ 3
🌅 5
🐶 4
🎍 5
💴 4
Avatar
あけおめ
🐶 2
㊗ 11
🌅 1
🎍 1
Avatar
突然ですがみんなのメインマシン教えてください!( ずっとMacBook Air Late 2014です。もう買い替えたい:;(∩´﹏`∩);:
Avatar
家のならiMac 27'' Late 2012で先日メモリを32GBに換装したばかりです、職場のなら最新のMacBook Pro 13'' Retina Display with Touch Barです
Avatar
MBP2014 core i7 メモリ16GBです
Avatar
iMac5Kカスタムなしの一番上のやつにメモリあとから増設して40GB
Avatar
MacPro Late2013 最強
Avatar
iMacPro購入太郎はいないのかな
Avatar
@omochimetaru
Avatar
おもち買ってたな
Avatar
職場のMacBook Pro (Retina, 15-inch, Mid 2015) 16GB
Avatar
iMacPro 。。。SUGOI
Avatar
うおおみなさんありがとうございます👏 開発だとやっぱりMBP、もしくはiMac (Pro)ですね🍎
Avatar
家 MacBook Pro 13-inch 2016 Touch Barあり / 職場 iMac 21.5-inch, Retina, Late 2015 (どちらもメモリは16GB)
Avatar
職場
  • MacBook Pro Retina Early 2016 13inch Core i5 2.0GHz RAM16GB touchBarなし
私物
  • MacBook Pro Retina Early 2015 13inch Core i5 2.7GHz RAM8GB
  • Mac mini Late 2012 Core i7 2.3GHz RAM16GB
(edited)
Avatar
omochimetaru 1/5/2018 10:09 AM
iMac Proが2月に届くンゴ
Avatar
結構時間かかるんですね
Avatar
omochimetaru 1/5/2018 10:17 AM
カスタムしたらめちゃのびました
Avatar
カスタム。。。 一体どんな構成に( ・`ω・´;)
Avatar
iOS用アプリ開発(勉強)用に、職場で買ってもらえたのはMac mini Late 2014です。 ※詳しいスペックは覚えていないです。 あまっていたWindows用のキーボードをつないで、ctrlとcommandのキー設定を逆にして使っています。 私の場合、私物も職場も上記以外は全てWindows機なので、その辺りはここでは参考にならないですね。
Avatar
#swift-2 で話してる大きな数に関連して、インフレーション直後の宇宙の大きさとして計算された数の一つである 10 ** (10 ** (10 ** 122)) なんかも BigInteger の限界を突破してしまうんですが、おもしろいのが 10^(10^(10^122)) Mpc = 10^(10^(10^122)) m https://en.wikipedia.org/wiki/Orders_of_magnitude_(length) となっていることで、メートルだろうが光年だろうがメガパーセクだろうが数が大きすぎて単位が意味を成さないということです。
The following are examples of orders of magnitude for different lengths.
Avatar
ちなみに、それよりずっと小さい 10 ** (10 ** 115)) だけの距離があれば(同じく単位は何でもいい)、確率的には観測可能な宇宙とまったく同じ空間が存在しているという計算があって、この二つを組み合わせるとまったく同じ(可視宇宙と同じ大きさの)空間が無数に存在していることになり、当然ちょっとずつ違う空間も存在していることになり、エヴェレット解釈なんかなくてもありとあらゆる可能性を選択した宇宙が実在するんじゃないかと。
Avatar
対数の対数の対数で戦うしかない
Avatar
このディスコでボイチャを活用する方法を最近模索してるんですけどなんかないですかね
Avatar
ディスコのボイチャって何できるの?(使ったことない)
Avatar
omochimetaru 1/12/2018 7:15 AM
なんかやるときにmokumoku部屋にでも入れば?
7:16 AM
音声通話ができるよ
7:16 AM
あとゲーム画面にオーバレイ表示できる
7:16 AM
アンチチートツールにブロックされてしまう事も多い
Avatar
オーバレイよさそう
Avatar
omochimetaru 1/12/2018 7:16 AM
ちゃんと喋ってる人のアイコンだけ緑に光るので
7:16 AM
知らん人と遊ぶときとか声と名前の対応が取りやすくて便利
Avatar
リモートでミートアップとかできないかなーって思ってる
Avatar
omochimetaru 1/12/2018 7:17 AM
あとはユーザーごとのボリューム調節/ミュート ができたり、自分のマイクミュートできたり。
Avatar
相手の挙動が見えないと発言するタイミングが被ってアッアッになるのであんまり大人数では難しそう
7:18 AM
proposalの輪読みたいな感じだとどうかなーみたいなのは
7:18 AM
寝ながら考えた
Avatar
omochimetaru 1/12/2018 7:19 AM
人と一緒にコードリーディングするときに通話しながらやるのはわりと捗るね
Avatar
この前おもちが仮想通貨関連でそんなようなことをやったみたいなツイートをみていいなあと思ったのが発端でもある
Avatar
omochimetaru 1/12/2018 7:19 AM
テキストチャットにgithubのリンク貼りながら。
Avatar
休日に試してみるか
Avatar
omochimetaru 1/12/2018 7:20 AM
mizchiさんとcryptkitteyとbyteball読んでた
7:20 AM
Byteball、決済APIを叩ける任意メッセージを送れる程度のものをスマートコントラクトと呼んでるので自分を賢い猿といってる動物程度の知性しかない
Avatar
@omochimetaru 二人でやってたん?
Avatar
omochimetaru 1/12/2018 7:23 AM
うん
Avatar
3人以上になるとどうかみたいなイメージある?
Avatar
omochimetaru 1/12/2018 7:23 AM
あんま変わらないと思うけど
7:23 AM
4人とかでスキルレベルに差があると
7:23 AM
ボトムの人がついていけなくなると思う (edited)
Avatar
ボトム代表としてはそれはつらい
Avatar
omochimetaru 1/12/2018 7:25 AM
やり方にもよるとは思うけど・・・
Avatar
#swift より
別サーバーのカスタム絵文字を使う時はNitroユーザーじゃないといけませんが
ってことは自分用サーバ用意してカスタム絵文字追加しておけば、オレオレ絵文字使い放題という?
Avatar
そうですね 私も以前Nitroユーザーだったので自分用サーバー作って変な絵文字使ってましたが飽きたのでやめました
5:47 AM
あとはユーザーアイコンでGifアニメを使用できるくらいですかね……?
Avatar
You can now pay for Nitro with PayPal! Details below! Discord Nitro is Discord's way of saying a gigantic THANK YOU to all you guys who help us continue to do what we do. We'd give you all a super ...
Avatar
Nitroにしてみたんですが、クレカの入力UXが史上最悪だった
5:55 AM
ランダムにカーソルが飛ぶので素直に入れたらバラバラになった
Avatar
ほー PayPal にしたのでその体験できず
Avatar
あまりにもひどかったので諦めてPayPalにしましたw
😬 1
Avatar
omochimetaru 1/15/2018 6:22 AM
画像アップしてくれればサーバー絵文字は設定します
6:22 AM
:swift:
Avatar
omochimetaru 1/15/2018 6:22 AM
swift
6:23 AM
できた
swift 6
Avatar
なんか見づらいw
6:23 AM
変更はできる?
Avatar
omochimetaru 1/15/2018 6:23 AM
できるよ
Avatar
おー
6:23 AM
見やすいswift探すか
Avatar
絵文字にするとマージンが大きい感ありますね
6:24 AM
マージンじゃないな パディングか
Avatar
omochimetaru 1/15/2018 6:25 AM
@tarunon emojimgrロールを設定してみたのでやってみて
👍 1
Avatar
そんなロールが
6:26 AM
なんか名前が赤くなった!
Avatar
omochimetaru 1/15/2018 6:27 AM
ロールは新たに作成した。
Avatar
swift
👍 2
swift 13
6:27 AM
どすか
6:31 AM
なにげにメンバーも見れるようになった
6:31 AM
407人いるのか
Avatar
swiftyじゃないコードを見たときに付けたいのでjavaの絵文字を追加してくだしあ
Avatar
透過されたいい感じのJavaのアイコンを貼って頂ければ
7:57 AM
Javaだから透過して無くていいみたいなのは流石に差別的で良くないので…
Avatar
Swift アイコンに✗印を付ければいいんじゃ・・・
Avatar
何にせよ主要な言語のアイコンがあるのは良いと思います。
Avatar
みつけた
java 8
7:59 AM
Java見づらいw
8:00 AM
kotlin
kotlin 3
Avatar
xamarin
xamarin 5
Avatar
いる?
Avatar
僕は使ったことないですw
Avatar
Rust/Kotlinはめっちゃ話題に出るから追加した
kotlin 2
rust 3
Avatar
あとは🍎をかじったのとか
Avatar
⌥⇧K
8:03 AM
なるほど
8:13 AM
Scala
scala 4
Avatar
mac自体のバックアップとかってしてますか? 会社の人のiMacが壊れてて大変そうだったのでバックアップしたいので参考にさせていただきたいなと
Avatar
omochimetaru 1/16/2018 4:00 AM
うちはAppleのTimeCapsuleにTimeMachineでバックアップしてますよ
4:01 AM
USBハブ繋げて外付けHDDぶら下げたらそれもちゃんと使えたので容量も増やせる
Avatar
おお、TimeCapsule! 使い心地良いですか?
4:02 AM
容量増やせる
いいですね
Avatar
omochimetaru 1/16/2018 4:03 AM
使い心地はまあまあですね 普通の家庭用ルーターよりは
4:03 AM
なにやってるかわからない部分とかは少なくて使いやすいです
4:03 AM
でも時々壊れるのであまり信頼性は高くないです
Avatar
Kishikawa Katsumi 1/16/2018 4:05 AM
バックアップの手段としてはTimeMachineがベストだと思います。TimeCapsuleを使うかどうかは好みで。
4:05 AM
私は愛用しています。
4:06 AM
TimeCapsule.
Avatar
時々壊れる
なんと、、、w ( ・`ω・´;) 3万か、、、結構しますね
4:06 AM
あ、TimeMachine対応のNASとかもあるんでしたっけ
Avatar
Kishikawa Katsumi 1/16/2018 4:06 AM
iMacならUSBのハードディスクをずっと繋いでおいてTimeMachineの対象にするというのもあり。
4:08 AM
費用も速さもたぶんそっちの方が断然良いかと。
Avatar
なるほど、そんなことも出来るんですね。 ただ会社にはUSBのハードディスクを置けないんですよね😅 余ってる1TBのハードディスクを外付けキットかNASキット買ってきてそれでTimeMachineの対象にするのが良さそうな気がしてきました。
4:12 AM
参考になりました、 ありがとうございます!
Avatar
NAS は相性が悪くて結局 TimeCapsule にしたという話もあるみたいなのでご注意を。僕は TimeCapsule しか使ったことないです。
Avatar
Kishikawa Katsumi 1/16/2018 4:18 AM
TimeCapsuleは突然壊れるんですけどそんなにしょっちゅうでもないです。経験上の話です。私は10年で3台のTimeCapsuleを使って壊れたのは1つです。
4:19 AM
で、壊れたのはルーター機能だけでデータは無事でした。
Avatar
相性とかは辛そう。。。NASは使わなさそうだから外付けキットにします
4:21 AM
ルータ部分だけが壊れるなんてこともあるんですね。 TimeMachineは何かややこしいイメージがありましたが、皆さん使ってらっしゃるなら安心しました
Avatar
Kishikawa Katsumi 1/16/2018 4:22 AM
たぶんそっちの方がよくあるんだと思います。TimeCapsuleからハードディスクを取り出す方法がブログとかYouTubeにたくさん載っているので。
Avatar
なんと、ハードディスクが一番壊れやすいイメージありました。そこまで救出も大変じゃないんですね。
4:30 AM
外付けHDDのパーティション分けて Carbon Copy ClonerでまるごとHDD保存 TimeMachineで定期的に保存 という風にやろうと思います!
Avatar
自分も家のiMacだけはTimeCapsuleでバックアップとってるけど、最近「もしかしてバックアップいらないんじゃね?」疑惑が強まる傾向
4:43 AM
消えたら困るデータといえば仕事で作ったものだとか写真だとかですが、それらは全てクラウド上にあるんですよね… 🤔
4:45 AM
例えば発表の時に使うスライドは全てiCloud driveに置いてるし、写真とかもiCloudで同期してるし、開発プロジェクトは最初からGitHubとかに置いてるし、どれもローカルで消えてもなんとかなりそうな気が…
4:46 AM
強いていえばバックアップとらないと再インストールする時セットアップを一からやり直さないといけないのが面倒なだけで、ただ逆にいうと古い環境のゴミも再インストールと一緒に消え去っていくのでそれでいいのでは?とも思わなくもない… 🤔
😇 1
Avatar
omochimetaru 1/16/2018 4:46 AM

経緯

MacOSXでTimeMachineでバックアップを取るとき、 標準だと直接つないだUSBディスクかTimeCapsuleでないと対象にできません。 利便性を考えるとやはりNAS上にバックアップを取りたいのですが、 家のル...
🙏 1
4:46 AM
一般のNAS上にTimeMachineを設定する方法を昔発見して記事にしています
4:47 AM
ただオススメはしません
Avatar
懐かしきフラットデザイン化前の画面だ!
Avatar
万一の時のためにバックアップは作るけど毎回初期化してセットアップしてますね
Avatar
確かに消えたら困るデータってないですね。。。
Avatar
Kishikawa Katsumi 1/16/2018 6:28 AM
私は冗長化の一環として全体のバックアップもある感じですね。普段はGitとかDropBox、iCloundで復元するのが早いし便利だけど、いざというときのことを考えるとTimeMachineのバックアップがあると安心感が違います。
🙂 1
Avatar
自分はmac歴も浅いしセットアップに丸一日かかりそうです そう考えるとやっぱりTimeMachineしておいたほうが良さそうかな😱
Avatar
TimeMachineの全体リカバリーも相当時間かかりますよ 😇
7:07 AM
環境構築だけならこれでなんとかいける https://qiita.com/takustaqu/items/a328baf15862faa086ee
会社等々で新しいスタッフのために開発環境を作るのを手伝ってあげたりとか、自分で新しいMacを買ってきたりした時とか、調子悪い時に思い切って再セットアップする時とか、毎度毎度同じようなセットアップ作業が続くので、自分用の開発環境と、会社...
🙏 2
Avatar
MacのOSのインストールも、clean installすると軽くなるとどこかで聞いた気がするので、iCloudなどに置いておくのが良さそうですね
Avatar
@lovee これかなり助かりました TimeMachineの全体リカバリー 時間かかるんですねφ(..)
Avatar
Kishikawa Katsumi 1/16/2018 8:07 AM
厳密にいうとTimeMachineを何で運用してるかによります。USB3のハードディスクを直接繋いでるなら速いですよ。
Avatar
clean installすると軽くなる
そうなんですね φ(..) 時間があるならクリーンインストールしてしまったほうがいいのかな 😇
Avatar
TimeMachineは10年近く使ってるけどよいよ USB3でつないでいますよ
🙏 1
Avatar
Time CapsuleへのバックアップはSierraでめちゃめちゃ不安定になって、High Sierraで少しマシになった。
🙏 1
12:11 PM
Time Machineのバックアップ先は複数設定できるので、Time CapsuleとUSB HDDの両方へ交互にバックアップとかできる。
Avatar
norio_nomura 1/17/2018 3:10 AM
Discordがfenced code blockでsyntax highlightをサポートする言語の識別子一覧って、どこかにないかな?
Avatar
highlight.jsを使用していると言ってる人がいたから、highlight.jsで対応しているものはいけるぽいかも?(highlight.jsを使用してるといった公式文見つからない…) (edited)
Avatar
norio_nomura 1/17/2018 1:21 PM
Want to inject some flavor into your everyday text chat? You're in luck! Discord uses Markdown, a simple plain text formatting system that'll help you make your sentences stand out. Here's how to d...
Avatar
あーこの人Discordの中の人か。そうですねーこれ。
Avatar
Xcode 9.3はHigh Sierraじゃないと駄目な感じですかね。。。?
Avatar
Kishikawa Katsumi 1/25/2018 7:07 AM
そうらしいですね。
Avatar
Ugh. Really? Xcode 9.3 beta requires High Sierra. I do not want APFS.
Avatar
7:08 AM
マジか
Avatar
Kishikawa Katsumi 1/25/2018 7:08 AM
まあそろそろ良いタイミング
Avatar
まさにその画像の表示に 😱
Avatar
上げますかぁ…
Avatar
社内で文鎮化が報告されてて怖くて上げられない・・・
Avatar
omochimetaru 1/25/2018 7:09 AM
@sonson さんも文鎮化したし僕の MacBookも死んだよ
7:10 AM
バックアップと復旧作業の工数を確保してからいきましょ〜
Avatar
何が原因で文鎮化するんだろ
Avatar
omochimetaru 1/25/2018 7:10 AM
APFSへのコンバートでファイルシステムが壊れる。
Avatar
やっぱAPFSへのマイグレーションなのかな
7:10 AM
そうかー
Avatar
なんかFileVault使ってるとするとか聞いた気が
Avatar
文鎮化KOWAI。。。土日に家事しながらでもやるとします (・∀・;)
Avatar
omochimetaru 1/25/2018 7:11 AM
FileVault解除してから行くと生存率高いかも
7:11 AM
まあ事例数が少ないんで一般的なことはわからんです
Avatar
うちは時刻同期ができなくなりました 😩 High Sierra から ntpd → timed に変わったようで。
Avatar
omochimetaru 1/25/2018 7:13 AM
ほお〜そんなところも変わっているんですね。
Avatar
(うちのファイアウォールの設定が timed のport を通さないようになっていたのが 原因です)
😟 1
😇 1
Avatar
あ、#xcode に書いたほうがよかったですね 失礼しましたm( )m
Avatar
おまえら、止まるんじゃねーぞ
🙉 2
🌏 1
😂 1
💩 1
Avatar
FileVaultだけは解除しなさい.悪いことは言わない.
Avatar
僕がpotatotipsに参加し始めた頃にはもうオーディエンス枠があったんですけど、オーディエンス枠設置以前の「参加者は全員発表者」の頃から参加されてた方どれくらいいるかな
Avatar
おっ。
8:28 AM
初期ポテチの全員発表というスパルタンというかストイックそうな姿勢、今僕がコミュニティに望むものの1つなんですが
8:28 AM
当時のポテチと今と比べると何か変わったことあるんだろうか〜と思いまして
Avatar
全員発表というルールからか、ものすごい緊張感がありました 😂
8:32 AM
8:32 AM
まだ connpass で募集してなかったんですね
Avatar
メンツがド豪華だ
Avatar
omochimetaru 1/25/2018 8:33 AM
メンツつよ!
Avatar
もともとはクッ社の社内勉強会だった?みたいなことを聞いたような。
Avatar
たしかそうですね!
8:34 AM
最初は社内に閉じてたけど、社外メンバーも募ってやってみよう、って動きだったような
8:35 AM
開催日時:2013年11月13日(水曜日)19:00〜ハッシュタグ:#potatotips会場:クックパッド オフィス 5F詳細:
8:35 AM
まとめも残ってました
Avatar
例えば「オーディエンス枠が設置されたことで、ビギナー向けの話題が増えた」みたいな実感とかありますか?
Avatar
Kishikawa Katsumi 1/25/2018 8:36 AM
5年も前なので覚えてないけどたぶん社内だけでやったことはなかった。
Avatar
おお
Avatar
おお
Avatar
このまえの関東関モバみたいになってるw > 初期メンツ (edited)
Avatar
Kishikawa Katsumi 1/25/2018 8:37 AM
永野さん曰く、普通に仕事してたら月イチで5分くらいのTipsは出るでしょ、とのことでしたね。
Avatar
それはそんな気はしますね。毎月準備する時間があるかは別として。スライド適当でだべるならできそう。
Avatar
omochimetaru 1/25/2018 8:38 AM
ですね
8:38 AM
そう言うの全部ここに投げ込んでるけど・・・
Avatar
というか、ここで話しているだけで毎日 5 分くらいの tips が生まれてる感が。。。
Avatar
omochimetaru 1/25/2018 8:38 AM
逆に勉強会とか登壇予定だと、その日までにDiscordで消費しちゃったり情報がアップデートされたり
8:38 AM
そういうのがあって難しい・・・
Avatar
discord offline もおもしろいけど、 discord まとめ発表会もおもしろい気がしてる。
Avatar
Kishikawa Katsumi 1/25/2018 8:39 AM
で、あんまりキッチリした発表というスタイルは求めてなくて、議論のタネを出してそれに対していろいろ話すっていうスタイル。
Avatar
あと、 discord online realtime (みんな 2, 3 時間くらい discord 専用で張り付く)とかも。
Avatar
Kishikawa Katsumi 1/25/2018 8:39 AM
だから少人数で、聴講だけの枠ができたのはいつからかな。
Avatar
2015年くらい…?
Avatar
Kishikawa Katsumi 1/25/2018 8:40 AM
たぶん所さんが会場を他の会社で回していくシステムにした後に、そっちの方が会社としてメリットがあるみたいな話があったんじゃないですかね。
8:41 AM
メリットがあるというか、もっと単純に聴講だけでも別にOKやん、くらいな話だと思いますけど。 (edited)
Avatar
先日のディスコオフをもっとコスパよく定期的にやるにはどうするのがええんかなみたいなのを考えていて
8:43 AM
初期ポテチから学ぶことはあるかな?と思ったのがこの話の始まりでした
Avatar
定期的にやる必要があるのか
8:44 AM
というのと、コスパはかなりよくないか、というのが
8:44 AM
個人的には思うところです
8:44 AM
やりたいときにゆるく開催するのがコスパ良くて良いという意見
Avatar
会場準備のコスト結構かかってるでしょ
Avatar
会場はそうだった
Avatar
あとはディスコオフの進行が雑な感じはもくもく会と相性いいんじゃねみたいなことを思った。
8:47 AM
どっかのコワーキングとか貸し会議室みたいなとこに集まって、各自好きに作業するし、なんかあったら話題に上げると騒ぎ始めるのような
Avatar
Kishikawa Katsumi 1/25/2018 8:48 AM
Asakusa.rbとかRubyMotion もくもく会がそんな感じですね。伝わらない例えですみません。
Avatar
おー
8:48 AM
他の言語だともうそういうのあるんですな
Avatar
遅レス申し訳ないです
例えば「オーディエンス枠が設置されたことで、ビギナー向けの話題が増えた」みたいな実感とかありますか?
これはあんまり感じないです!今もレベル高い
🙌 1
Avatar
とりあえずDiscordの議論を体系化する仕組みは必要だよね。後世のためにw
Avatar
2ちゃんのスレッドみたいな形式のほうがチャンネル形式のチャットよりはここの議論にフィットしそう
Avatar
Kishikawa Katsumi 1/25/2018 10:09 AM
DiscordはSlackと違って過去のログはずっと残ってるんですか?
Avatar
ログの容量等についてはよくわかってないです (edited)
10:12 AM
スレッドだとテンションが上がらないんだよなあ チャットだから投げられる感じがある
Avatar
今までのチャットの内容はすべて検索できているようです
Avatar
やりとりを後から遡って読みやすいという意味ではDiscordはフロー情報っぽすぎるようなきがするけどそれでも適宜Qiitaとかにわかったことを書いてる人もいてくれてるのでそれでいいんじゃね感がある
Avatar
オタクはすぐ影響受ける https://connpass.com/event/77930/
To be done... ゆるキャン△、いいアニメですね。個人的には作業用BGMとして、仕事中には常にアマゾンプライムでゆるキャンを垂れ流してそれを聴きながら作業しています。もうほと んどセリフが丸暗記できちゃうレベルです。 と、いうわけで、冬にもくもく会という建前でキャンプをやりたいと思います。まあ3月後半だからまだまだ寒いですが死ねるほどの寒さではないはずなので。また、荒天は さすがに中止ですが小雨の場合は決行かと思います。 大まかなイメージとして、24日の朝10時頃に都内のどっかで集合し、キャンピングカーでふもとっぱらキャンプ場に移動し、キャンプをやりながらもくもく会をやり...
😍 1
Avatar
@hiragram 発表会があってときどき強制的にまとめることになればはかどるかとも思いましたが、なんでもかんでも会を増やしていくと際限がないので微妙なところですね🤔 (edited)
1:42 AM
Swift Tweets で定期的にまとめて発表していただても大丈夫ですw https://swift-tweets.connpass.com/event/77111/
# 概要 Swift Tweets は Twitter 上で開催される Swift に関する Meetup Tweetup です。発表者が Swift についてツイートで発表します。 https://swift-tweets.github.io/ 当日は Twitter で #swtws のハッシュタグを御覧下さい。 リプライやメンションするときもできるだけ #swtws のハッシュタグをつけて下さい。 Swift Tweets の目的の一つとして、オフラインの懇親会のよ うに気軽に交流できる場をオンラインでも作りたいということがあります。開催中は面識のない...
Avatar
前までDiscordのリアクション誰がつけたか全部見れてた気がするんですが、見る方法無くなったんでしょうか
7:18 AM
and x othersは困らないけど困る
Avatar
@tarunon マウスオーバーで出てきませんか?省略されることがある?
Avatar
最初につけた3人だけ表示されて
7:27 AM
後はand x othersになってしまう
7:27 AM
推しメンがリアクションしてくれたかどうかを知りたいという欲求があってもいいはずだ
Avatar
iPad だとマウスオーバーすらないので見る手段がない😥
Avatar
iOS版はそうですよね
Avatar
たしかに others になってますね。
Avatar
Currently after a messages gets more than 4 of the same reaction it'll just say "A, B, C, and 3 others have reacted with :emoji:" where A, B, and...
7:39 AM
右クリ→リアクションで一覧出てきた
🙌 5
💡 1
7:40 AM
iOS版にはないみたいですね、残念
Avatar
そういえば、JetBrains の Open Source License 便利です。最近も更新してる OSS を一つでも持ってれば、AppCode などが一年間タダで使えます。私は二年連続で申請していて、ずっとタダで使っています: https://www.jetbrains.com/buy/opensource/
JetBrains, creator of the leading Java IDE - IntelliJ IDEA - is a cutting-edge software vendor specializing in the creation of intelligent development tools.
Avatar
Kishikawa Katsumi 1/30/2018 5:50 AM
OSSってOSSのライセンスで公開さえしていれば、Contributeしてるのがほとんど自分だけ、というケースでも当てはまりますか?
Avatar
はい、私はそのケースで通しています。
5:51 AM
https://github.com/Kuniwak/vint これが申請に使った OSS ですね
vint - Fast and Highly Extensible Vim script Language Lint implemented by Python.
Avatar
Kishikawa Katsumi 1/30/2018 5:51 AM
それはとても素晴らしいですね。
Avatar
特に証明とかも必要なく、Web フォームにいくつかの情報を記入して数日待つと通ってる感じですね
kotlin 3
Avatar
omochimetaru 1/30/2018 5:59 AM
えっ、そんなのがあるんですね!
Avatar
ただ、それでタダになったAppCodeを営利目的の開発に使うのはNGだったような。OSSの開発に使うだけならそれで全然問題ないんですけど。
💯 1
Avatar
Kishikawa Katsumi 1/30/2018 6:10 AM
どこかの会社にいるならの会社の経費として買うのがいいですね。
Avatar
omochimetaru 1/30/2018 6:10 AM
それでタダになったAppCodeを営利目的の開発に使うのはNGだったような
な〜る〜ほ〜ど〜
Avatar
営利目的がNGじゃなくて、非営利のオープンソースにしか使えないみたいです。
Licenses can be used for non-commercial OS development only. Please consider purchasing separate licenses to work on commercial projects.
Avatar
omochimetaru 1/30/2018 6:11 AM
please separateなるほど
Avatar
です、なので、私は会社側でも購入してますね。ただ、ライセンスのスイッチ機能がないので、OSライセンスでずっと使ってますが…(購入はしてるので許して欲しいところ
Avatar
そんなもんの線引きどうやってやるんやで・・・・w
Avatar
Kishikawa Katsumi 1/30/2018 7:32 AM
まあ厳密に使い分けるのが無理なのは向こうもわかってるんで、仕事でも使うなら会社がお金を出せばいいという話です。
Avatar
うぃ
Avatar
Kishikawa Katsumi 2/2/2018 7:42 AM
AppCodeじゃなくてInteIiJ IDEAだけどすごいよくできてますね。オーバーロードのメソッドをどっちが呼ばれてるかわかりやすく表示してくれるとかすごい便利。AppCodeにもあるのかもしれないけど。今の時代にIDEを有料で売ってるだけのことはあるとJetBrainsのプロダクトを使うといつも思います。
Avatar
omochimetaru 2/2/2018 7:43 AM
InteliJファミリーめっちゃクオリティ高いですよね
Avatar
高いですね
Avatar
norio_nomura 2/5/2018 7:32 AM
GUIなGitクライアントとしてSourceTreeを有料だった頃からずっと使ってきたのですが、最近劣化が激しいので別のGitクライアントを探し始めました。
7:32 AM
SourceTreeのinteractive rebaseサポートが便利なので、同じような機能を持つモノが望ましいのですが、 https://git-fork.com くらいしか見つけられず。
Fork - a fast and friendly git client for Mac
7:32 AM
http://gitup.co も機能的には同様の事が出来そうだけど、gitコマンドとの概念が違いすぎて困りそう。
Avatar
Towerとかってどうでしたっけ
7:32 AM
好きな人結構知ってる
Avatar
GUIではありませんが僕はSTやめてtigにしました
Avatar
norio_nomura 2/5/2018 7:33 AM
Towerはinteractive rebaseなさそうなんですよね。 https://www.git-tower.com/help/mac/search?search=interactive
Help documentation for the Tower Git client app.
7:34 AM
tigちょっと調べてみます。
Avatar
norio_nomura 2/5/2018 7:49 AM
ああ、tigはカスタムコマンドをガンガン作っていく感じなのか。 https://github.com/jonas/tig/wiki/Bindings
tig - Text-mode interface for git
7:51 AM
CUIだからgitネイティブな画面に遷移しても構わない的な。
7:52 AM
シェルのカスタマイズにハマるみたいな事が起きそう…
Avatar
ですです
7:53 AM
SourceTreeが重すぎて耐えられなくなったので
7:53 AM
CLIでいいやと
7:53 AM
僕は一切カスタマイズしないで使っていますが、普通に快適に仕事できてますよ
Avatar
norio_nomura 2/5/2018 8:05 AM
単純な操作はいいのだけど、難しい操作はGUIの補助が欲しいのですよね。
8:10 AM
Kaleidoscopeでマージコンフリクト解決!とかtigで出来るようにするの大変そうです。
Avatar
norio_nomura 2/5/2018 9:28 AM
Atlassianめ…
👈 1
Avatar
そういえば、elmのコミュニティではなんかオンラインモクモク会やってるみたいなんで、パクってみようかと思いますが参加される方います? 隔週でやろうと思いますが。
Avatar
omochimetaru 2/6/2018 1:59 PM
どんな感じでやるのかもう少し詳細を知りたいです
Avatar
ああ、それ書かんとね。
👁 1
3:39 AM
会の時間が2 ~ 3時間ぐらいが一回分として、
3:40 AM
実装時間と進捗報告時間があるみたいな。
3:41 AM
んで、「オンライン」モクモク会ってのは、Discordを使ってやるモクモク会でして、通話 or テキストのチャットで会話しながら、やるモクモク会ですね。 (edited)
3:43 AM
elmのコミュニティでやってるのは、なにかしらテーマをつくってやっていましたね。もちろん、テーマ以外のことをやっていいんですが。
3:45 AM
Discord https://discord.gg/zEckmcC使ってやってます。以下のハッシュタグでやってること、つぶやくと宣伝になっていいかも〜。 code:ハッシュタグ #moku2_elm 回ごとにお題目を決めて自由な環境(オススメはVSCode, Atom等)で1ファイル・開発時間は30m~1hで終わる内容のものを作って公開という流れ。上級者が飽きないようにお題目は緩く定める予定で
3:46 AM
elmでは、わりと初心者向けに作ってますが、swiftでは、そこまでしなくても良い感じがしますね。
Avatar
まーだ、ぼんやりとしか考えてないですか、一回、適当なタイミングで、イベントページ作ってやってみますか。
Avatar
@tarunon RxSwiftで、「指定した回数、completeしたらsubscribeし直す」ってどうするのがいいですか
8:31 AM
retryのcomplete版みたいな
Avatar
なんかメンションあるなと思ったらここか
11:33 AM
ちょっといってる意味がわからないんだけど、completeはしたらおしまいだぞ
Avatar
コールドなObservableを3回繰り返したいみたいな
11:33 AM
具体的にはアニメーション
Avatar
omochimetaru 2/7/2018 11:34 AM
@tarunon 前段のストリームをsubscribeしなおすってことでしょ
Avatar
flatMapの中でなんとかするのがいいんじゃあないか
11:34 AM
この場合はconcatが適切
Avatar
omochimetaru 2/7/2018 11:34 AM
@hiragram completeをerrorに変換してからretryみたいなクソ方法ないかな
Avatar
.flatMap { .error(NSError.init()) } .retry(3) .catchError { .empty() }
11:34 AM
これやった
11:34 AM
お持ちが言ってるのといっしょ
Avatar
omochimetaru 2/7/2018 11:34 AM
クソ方法だった
Avatar
一番外側で3回voidを発生させて、concatの中でアニメーションのObservable
11:35 AM
アニメーションの完了はcomplete
11:35 AM
それでええやろ
Avatar
あー
11:35 AM
3は外から引数で渡したいみたいなときにゴニョっとならない?
Avatar
omochimetaru 2/7/2018 11:35 AM
配列にしたら?
Avatar
Observable.from([(),(),()]).concat(doAnimate)
Avatar
.from(0...arg)でいいのか
Avatar
omochimetaru 2/7/2018 11:35 AM
Void, () , ())
Avatar
後は頑張って
Avatar
omochimetaru 2/7/2018 11:36 AM
init(repeatedValue count
Avatar
@tarunon それconcatなの?flatMapじゃなく?
Avatar
completeを待ち合わせるからconcat
11:36 AM
Avatar
1回しかうごかんくね?
Avatar
すまん、concatMapがあればそれやが
11:37 AM
ないから
Avatar
mapしてconcatか
Avatar
Avatar
ok
Avatar
暫くReactiveCocoaしか触ってないから鈍ってて申し訳ないね
Avatar
omochimetaru 2/7/2018 11:37 AM
よくわからないから完成形まとまったらおしえて @hiragram
Avatar
「私は壊れたIBをmasterブランチにforced pushした」の図😇
Avatar
こわいw
Avatar
してないぞ
Avatar
「私はIBをハッキングしてカーネルパニックを起こした.jpg」
Avatar
このファイルではXML直打ちやってないのでセーフ
Avatar
RxSwiftで、「subscribe(onNext:)に渡すブロックがselfを弱参照する」コードが世の中にはたくさんあると思うんですが、disposeBagのライフサイクルとselfのライフサイクルが同じ場合unownedにしでもいいと思い始めました。unwonedで運用したときのハマリポイント、weakで良くない?とかあれば教えてもらいたいです。
Avatar
omochimetaru 2/8/2018 10:52 AM
俺はまさにその考えでunownedでやってるしそのほうが良いと考えてる。
10:53 AM
deinitでDisposeBagが発動して切断するのだから
Avatar
モチベーションとしてはguard let _self = self else { return } によってselfがnilになるべきでない場所でも異常状態が握りつぶされるのを避けたい、というのがあります
Avatar
omochimetaru 2/8/2018 10:53 AM
参照した時点で購読が切れてるはずだし、
10:53 AM
逆に言えばunownedでクラッシュする時→想定外の理由でなぜか購読が切れてないバグがあるとき
10:53 AM
なので、クラッシュして検知したい。
10:54 AM
weak にしちゃうと、nilになってても沈黙しちゃう。nilになってる時点で購読管理が想定外のバグをはらんでるはずなのに。
Avatar
えっとねー
10:54 AM
delegate proxy周りでハマりが発生する
Avatar
omochimetaru 2/8/2018 10:55 AM
disposeBagのライフサイクルとselfのライフサイクルが同じ場合unowned selfがnilになるべきでない場所でも異常状態が握りつぶされるのを避けたい
完全に同意見
Avatar
VC→View→DelegateProxyの順で解放されるのだけど
10:55 AM
scrollViewDelegateが発火して死ぬ場合がある
Avatar
omochimetaru 2/8/2018 10:57 AM
scrollViewDelegateからのイベントがdeinitの実行スレッドとは別のスレッドで発火されてるってこと?
10:57 AM
スクロール系もメインスレだった気が。
Avatar
scrollViewがクソでdidScrollがscrollView.deinitで発火する場合があって
Avatar
omochimetaru 2/8/2018 10:58 AM
なるほど
Avatar
うわ
Avatar
DelegateProxyが暗黒retainしてるのも相まって
Avatar
omochimetaru 2/8/2018 10:58 AM
じゃあVC.deinitで自身が死んで、stored propertyを解放してる最中に
Avatar
暗黒です
Avatar
omochimetaru 2/8/2018 10:58 AM
DisposeBagが発動する前にそっちがやってくるのね。
Avatar
そういうこと
Avatar
omochimetaru 2/8/2018 10:59 AM
そういうクラスではスクロールビューよりDisposeBagが確実に先に解放されることを保証しないといけないな
Avatar
それがらみでdelegateproxyに
Avatar
omochimetaru 2/8/2018 11:00 AM
stored property同士の解放順は制御できなさそう・・・
Avatar
stored propertyが解放される順番ってどういう風に決まってるんだろう?
Avatar
その辺なんとかする機構組み込みたいんだが、うまくいかないんだ
Avatar
omochimetaru 2/8/2018 11:00 AM
あ、わかった、ViewControllerのdeinitで、scrollViewをキャプチャしてDispatchQueue.main.asyncに投げよう。
11:00 AM
viewは1サイクル後になるはず。
11:01 AM
stored propertyが解放される順番ってどういう風に決まってるんだろう?
コンパイラがSIL生成してて多分上にかいたやつが先だけど多分規格的な保証は無い
Avatar
>ViewControllerのdeinitで、scrollViewをキャプチャしてDispatchQueue.main.asyncに投げよう。 これはscrollView以外のプロパティがメインスレッドで開放されるからその後にdeinitしよう、ということですかね
Avatar
omochimetaru 2/8/2018 11:05 AM
そうですね、通常の動作だと 1. ViewController.deinit (プログラマがコードを書く部分 2. ViewController.disposeBag.deinit 3. ViewController.scrollView.deinit 2と3の順番が不定だから
11:06 AM
deinit { DispatchQueue.main.async { [scrollView] in let _ = scrollView } } (edited)
11:07 AM
こうしとけば、3でreleaseされてもdeinitまでいかなくなって、次のサイクルでの解放になるから 2が確実に3より先になる
11:07 AM
まあunownedで作って問題が起きてから対処したらよいと思うけど・・・
Avatar
なるほど
11:09 AM
>scrollViewがクソでdidScrollがscrollView.deinitで発火する場合があって 完全にこれが悪い
Avatar
omochimetaru 2/8/2018 11:09 AM
あー
11:10 AM
deinitで、scrollView.delegate = nil
Avatar
それは古代のiOSからいるバグで、未だに引っかかるのがね
🐛 1
Avatar
omochimetaru 2/8/2018 11:10 AM
ってやってもいいかも?
Avatar
それがいいよ
Avatar
omochimetaru 2/8/2018 11:10 AM
DelegatedProxyごと丸ごと切断できる
Avatar
確かに
Avatar
omochimetaru 2/8/2018 11:10 AM
古代のiOSからいるバグ
www
Avatar
昔はweakがなかった時代に、それでUIScrollViewは死にまくってた気がする
Avatar
omochimetaru 2/8/2018 11:10 AM
あ〜なるほど。
11:11 AM
weakないときは.delegate=nilで先手取って切るしかないもんね
Avatar
昔のコードでさ
11:11 AM
deallocでdelegateにnil入れてるやろ
11:11 AM
それ
Avatar
omochimetaru 2/8/2018 11:13 AM
なんか慣性残ってるかつなんかアニメーションしてるときに画面戻ったときだけクラッシュ、みたいなコーナーケースになりそうで嫌なバグだ
Avatar
hiragramさんと話していて、「disposeBagとselfのライフサイクルが同じである、ということがsubscribeする部分だけでは保証できないので、レビューする時に辛そう」というのが出ました
Avatar
omochimetaru 2/8/2018 11:18 AM
weakの可能性考えるよりはトータルコスト低いと思う
11:18 AM
むしろ、unownedになっている→self開放時に切断される事を想定している っていう設計表明ができているので
11:18 AM
レビューではそこをチェックしたらいい
11:19 AM
ViewControllerのpropertyとしてDisposeBagがあって、ViewControllerのメソッドでsubscribeしてる箇所については、だいたいいつも同じパターンになってると思うし。
11:20 AM
そうじゃないややこしい参照関係が構成される場所ではweak selfでも良いと思う。
Avatar
↑同意です 試しに個人で運用してみることにします 💪 (edited)
Avatar
omochimetaru 2/9/2018 9:16 AM
話題がよく出て来るので #rx を立ててみました。
👍 5
Avatar
norio_nomura 2/14/2018 1:03 AM
opensource.apple.comでCoreFoundationのソースが公開されなくなったのは、swift-corelibs-foundationで公開していくことになったからなんだね。 https://forums.swift.org/t/relation-between-darwin-and-swift-core-foundation/9882/2
Great question. The CoreFoundation (“CF”) that ships on Darwin is a superset of the CF that is part of swift-corelibs-foundation. It includes things like cfprefsd, which (as you noted) are not part of our open source distribution. However, nearly all of the core implementation is the same. We have stopped shipping tarballs to the opensource.apple.com site and prefer to drop updates to CF on GitHub instead. We believe this is a better model for maintaining it going forward. We are striving to k...
Avatar
特定の人(非エンジニア)のところで起きたクラッシュバグを調査するために、クラッシュログをもらうのってみなさんどうしてます?設定アプリのプライバシー>解析>解析データからクラッシュログを探してメールにコピペしてもらったりしてるんですけど、もうちょっとうまい方法はないのかなあと。
5:55 AM
不特定ユーザーのクラッシュログはFabricとかで取ってるんですけど、社内でドッグフーディングしてる人とかから「こうやってこうやったときにクラッシュするよ」とか教えてもらったときは、該当するクラッシュログをFabricから探すのは難しいので、上に書いた方法でもらってるんですが。
Avatar
Kishikawa Katsumi 2/16/2018 5:56 AM
社内の人だったらデバイスをつないでXcodeからクラッシュログを見るのがいいなじゃないですか?
Avatar
ああ、それはありですね。
5:58 AM
ぼくは今のところ、(1)近くにいる社内の人と、(2)遠くにいる社内の人と、(3)特定の法人ユーザーさん(社外)の場合があります。(1)は直接デバイスをつないでいけそう。
Avatar
omochimetaru 2/16/2018 6:00 AM
プライバシー>解析>解析データ これ知らなかった!
Avatar
それがその人の個人の端末だったらつなぐの躊躇われる
Avatar
omochimetaru 2/16/2018 6:01 AM
なんかiTunesとか反応するし怖いよね
Avatar
そうそう
6:02 AM
写真アプリ開くのが一番いらん
Avatar
omochimetaru 2/16/2018 6:02 AM
うちは(3)はグダグダになりがちですね
6:02 AM
再現手順教えてください→回答もらう→こっちでやってみる→再現しません→ループ (edited)
Avatar
まあ、(3)は確かにクラッシュログの収集とは関係なく、いつもグダグダになりますがw
Avatar
うちはFabricで済ませてるなあ
Avatar
うちの場合、徳島にはエンジニアが多くて東京に企画とか営業の人が多いので、(2)が割と多いんですよね。
6:04 AM
Fabricで該当ログを見つけるのって難しくないです?
Avatar
omochimetaru 2/16/2018 6:04 AM
(2)はXcode開いてオーガナイザでログ回収する手順を習得してもらうのが良さそう・・・
Avatar
クラッシュしたそのときに連絡がもらえるのであれば最新のを見ればいいし、今まで無かったクラッシュが起きたらメールで通知が来るのでそもそも連絡来る前にこっちで気づくことが多いような感じですね
Avatar
まずMacを持っていない営業の方とかもいてですね。。。😅 >Xcode開いて
Avatar
omochimetaru 2/16/2018 6:06 AM
共有マシンを1台買ってもらう・・・
Avatar
したらクラッシュしたら次回起動時にログ送ってくれるような何かを仕込むのがトータルの手間は最小になるんじゃないですかね
6:06 AM
やったことないけどできないんだっけそういうの
Avatar
その何かを探してますw
Avatar
なるほど。
Avatar
いや、そうでなくてもいいんですが、他にいい方法ないんかなーと思っただけなんですけどね。Windows経由でLFがCR-LFになったクラッシュログとかもらって辛い思いをしてたので。
Avatar
Avatar
あれ、プライバシー>解析>解析データに共有アイコンがある!いつから!
‼ 2
Avatar
社内テスターならデバイスIDが登録してあるはずなのでそれでFabricのログを絞り込むとか
Avatar
以前、共有アイコンがなかったから、全選択してコピーしてペーストとかしてもらってたんですけど。いつももらう側だからこんな進化知らなかった。
Avatar
omochimetaru 2/16/2018 6:10 AM
共有アイコンってこの右上の [↑] ですか
6:10 AM
もともと無かったのヤバ
Avatar
個人的には、クラッシュしたときの報告手順がいちいちめんどくさいと報告すらしてくれなくなるイメージがあるので、せいぜいクラッシュしたことをチャットで報告すればあとはエンジニア側でログみれるんでオッケーっすくらいにしておきたい気がする。
Avatar
あ、そうです。正式名称はなんだっけかな。[↑]
Avatar
omochimetaru 2/16/2018 6:11 AM
わからない、共有アイコン であってそうですね
Avatar
@hiragram うん。これが理想ですね>「あとはエンジニア側で」
Avatar
で僕の環境だとそれがFabricのみでおそらく実現できていて、先述の新規クラッシュのメールとか、スタビリティアラートみたいなのがメールで届いたら、いまクラッシュしたの誰ですかーみたいなことをします
Avatar
営業の人が営業先でデモしてて起こったとかを、次の日とか翌週とかに「そういえば」的に教えてくれるんで、そこから探すのは厳しい。
6:14 AM
でも、クラッシュしたの誰ですかーは確かにいいかも。いや、うちのアプリよくクラッシュするからな(あかん)
Avatar
営業先デモクラッシュ、厳しい
Avatar
Kishikawa Katsumi 2/16/2018 6:14 AM
Fabricでうまく回ればそれが一番お互いにとって良くて、AppStoreのアプリをドッグフーディングしてるのでなければ、誰のログかを識別できるようにしておけばいいんじゃないですか?
6:15 AM
Crashlyticsのカスタム属性にそういう情報を入れて。
Avatar
そうですね。なんかそういうの入れられないか考えてみます。とりあえず、なんもせんでもめっちゃ簡単な方法はなさそうだとわかりましたw ありがとうございます
Avatar
omochimetaru 2/16/2018 6:16 AM
なんもせんでもめっちゃ簡単な方法
iOSに搭載されてほしいですねえ。
6:17 AM
あれ?今ってAppStoreで収集されるんだっけ。TestFlightだったらそれが動いたりするのかな。
Avatar
iTunesConnectで見れるけどあれはオプトインしてる人しか出てこないしFabricほど詳細なデータはなかったような。
Avatar
omochimetaru 2/16/2018 6:18 AM
なるほど。
Avatar
Kishikawa Katsumi 2/16/2018 6:18 AM
さっきクラッシュしたこの人のログ、みたいなものは難しいですね。
Avatar
そうそう。反映も遅い。
Avatar
Kishikawa Katsumi 2/16/2018 6:20 AM
先ほどの(1), (2), (3)はどれも不特定多数じゃなくて関係者なので、ユーザーID+タイムスタンプで検索できるようになってれば実用には十分だと思うんですよね。
6:20 AM
なのでInternalのテストにはCrashlyticsにそういうのがわかるものをくっつけておく。
Avatar
omochimetaru 2/16/2018 6:20 AM
なるほどなるほど
Avatar
Kishikawa Katsumi 2/16/2018 6:21 AM
もしユーザーIDとかそのままが難しい場合はハッシュとかして。
Avatar
omochimetaru 2/17/2018 8:33 AM
ディスコードは運営が正直で大好き アップデート内容だけでこんなに笑ったのディスコだけだよ
Retweets
18180
Likes
22379
Avatar
いつもこんな感じだよね
Avatar
omochimetaru 2/17/2018 9:04 AM
おもろい
Avatar
本当は日本の企業もこういうことしたいとこあるやろうけど、お問い合わせ()するやつおるからなぁ
😇 2
Avatar
Kishikawa Katsumi 2/17/2018 9:40 AM
こういう風にする方が力がいるから。エイプリルフール企画とかを見てるとたいていのところは普通にしといた方が。
Avatar
コストは高いですね、要求される知識セットが…
Avatar
Kishikawa Katsumi 2/17/2018 5:07 PM
最初はうまくいってもユーザーベースが巨大になって、いろんな人が使うようになったらまた難しくなってきますしね。
5:08 PM
Discordもっとユーザーが増えたときに同じようなスタイルでいられるかわからないと思いますね。
Avatar
たしかに
Avatar
Kishikawa Katsumi 2/17/2018 5:09 PM
^に書いたのは単なる世間話で、私はDiscordのアップデート文は好きです。
🤗 1
Avatar
Kishikawa Katsumi 2/18/2018 5:54 AM
このDiscordの内容を定期的にまとめたいからオフラインミートアップを定期的に、という話題があったけど、Podcastがいいんじゃないかな。月一とか2週に1回くらいで話題を振り返って必要に応じでさらに掘り下げてみる、みたいな。
5:54 AM
(編集や配信をやる人に負担がかかるけど)
Avatar
(nextstep.fmだ)
Avatar
Kishikawa Katsumi 2/18/2018 5:55 AM
Swift Unwrappedが近いんじゃないかな。 https://www.jessesquires.com/blog/swift-unwrapped/
A few months back, JP Simard and I decided to start a podcast about Swift — the language itself, its evolution and development, the Swift.org open source projects, and general Swifty news. There are a ton of great podcasts out...
5:57 AM
ま、個人的な経験からもそう思っていて、とりしきる人は少し大変なんだけど、参加する方は、文章にまとめるとか、資料作るとかに比べると全然楽ですね。
Avatar
編集とか配信ってどれぐらい工数かかるんだろ。
Avatar
Kishikawa Katsumi 2/18/2018 6:02 AM
そこなんですけど実は私はまったくタッチしてないのでわからないんですよね。編集のクオリティにもよるんでしょうけど。
Avatar
僕がやると総収録時間x5くらいかかる
Avatar
⚠ Initialization of variable 'hoge' was never used; consider replacing with assignment to '_' or removing it ↑ 考えながらコード書いてるときいちいちこれ出てくるの鬱陶しいんですが suppress できないものでしょうかw (edited)
Avatar
omochimetaru 2/20/2018 1:29 AM
let _ = って書くのが一番てっとり早いですかねえ 警告種類別の無効化は現状のSwiftコンパイラでは設定できなそう(多分)
Avatar
let無しで_ = でいいですよ
Avatar
omochimetaru 2/20/2018 1:31 AM
え!そうなの!
Avatar
let a = hogehoge() して、さてaをどうしようか、ってときに警告出るのがウザいってのは
Avatar
omochimetaru 2/20/2018 1:32 AM
_ = 1 + 1 マジだイケた 知らなかった
Avatar
_ = では解決できない気がするなぁ。
Avatar
大体適当なところにfatalErrorって書いてからコード書き始めると静かになる気がする
1:33 AM
ならなかったっけ…
1:33 AM
なんかこの処理は実行されない〜みたいなのは出る気がする
Avatar
さてaをどうしようか
これなら let _ = ... と書いてから _ を考えるのじゃダメですか?
(edited)
Avatar
omochimetaru 2/20/2018 1:34 AM
ああ、元の警告を読み違えてた、右辺値が使われてないじゃなくてとりあえず左辺値書いた時の未使用警告か・・・
1:34 AM
let hoge = f(x) _ = hoge これで潰す (edited)
Avatar
a の名前をどうするか?という意味ではない??
Avatar
ambiguous な書き方をしてしまいました 🙉
Avatar
a の使用先を書いている途中に警告が出るのがウザい、 let hoge = f(x) let huga = g.bar { // ここで hoge を使おうと思っているがまだ書いていない。
Avatar
hoge を使うことは確定してて、その先どういう風に書いてくか考えてるときに警告されるのが煩わしいという。
1:36 AM
ですです。
1:37 AM
「この先使うんじゃ!!!!!!」という気分を抑えたい 🐒
Avatar
omochimetaru 2/20/2018 1:37 AM
func useAfter(_ x: Any) { _ = x } let hoge = f(x) useAfter(hoge) (edited)
Avatar
あんまり解決していない感
Avatar
Xcode 側で良きに計らって、警告出さないのが正だと思う。
Avatar
うーん、使いたいけどまだ使ってないなら使い忘れないように警告出してくれてるのがうれしい気がします。
Avatar
一通り終えてから出してくれるのはいいんですが、随時出されると「まぁ待てや」みたいな気分になるので suppress できたいなぁという雑談でした 🐵
Avatar
使わないけどデバッガでみたいから残したいみたいのもありますよね。 たしかそのときは_ = [foo, bar, buz]みたいに残したいの全部書きましたが
Avatar
たとえば、途中で別の作業が割り込んで頭の中リセットされちゃうかもしれませんし。
Avatar
omochimetaru 2/20/2018 1:41 AM
xcodeに「ちょっとだまってて」ボタンが欲しい
👍 2
1:41 AM
ビルドかけると解除。
Avatar
僕は一時的に警告が出てもあまりストレスを感じないので、どうもみなさんと違いそう・・・。
Avatar
自分が作ったメソッドで戻り値はあるけど使わないケースもあるという想定でしたら、メソッド定義に @discarableResult のアトリビュート入れるのもありかなと
Avatar
全てのwarning無視する、みたいな奴無かったでしたっけ
Avatar
omochimetaru 2/20/2018 2:27 AM
それはある
2:27 AM
xcodeで設定できる
Avatar
じゃあ作業中はそれいれてコンパイル時に戻せばオッケーっぽい
2:27 AM
スクリプトかけそう
Avatar
omochimetaru 2/20/2018 2:28 AM
xcode pluginってたしかxcodeprojに介入できないんじゃなかったっけ
Avatar
肉弾戦で…
Avatar
omochimetaru 2/20/2018 2:28 AM
xcodeの外でスクリプト叩くのはちょっとな
Avatar
.pbxprojはXMLだから直書きすればオッケー
2:29 AM
みんな自分でコンフリクト解消してるしヘーキヘーキ
Avatar
omochimetaru 2/20/2018 2:30 AM
さすがにBuild SettingsからYES/NOをマウスで操作するほうがマシw
Avatar
@tarunon さんがそれ言っちゃうとInterface Builder壊したこと思い出してなんか笑っちゃうw
😾 1
Avatar
壊してないんですけど…
2:31 AM
HighSierraへのアップデート直後で不安定だったみたいで、IB操作してるとカーネルパニック起こした日があったのですが
2:32 AM
普段からIBをコードで弄っているのでついに破壊したのかと疑われる羽目に
Avatar
そういうことだったのか 🤔
Avatar
まーでも破壊してリバートすることはしばしばありますよ、人間ですから。
Avatar
ヒューマンエラー
Avatar
Kishikawa Katsumi 2/20/2018 4:12 AM
Show live issuesをオフにすれば @Taketo Sano さんの問題はとりあえず解決しないかな。 根本的にはXcodeがもう少し柔軟に設定もしくはデフォルトでいい感じに動くというのが良いというのは同意です。
😀 1
Avatar
おぉ、Show live issues なんてあったんですね、知らなかったです 🤖 チェック入れるとエラーも suppress されちゃうんですね 🐡
Avatar
Kishikawa Katsumi 2/20/2018 9:22 AM
ちゃんとコンパイルした後に報告されたエラーと警告を表示するということになります。
👐 1
9:23 AM
余計なお世話感はなくなるかと。
Avatar
omochimetaru 2/20/2018 9:23 AM
試しにチェック外してみよ
Avatar
Kishikawa Katsumi 2/20/2018 9:23 AM
書いてる途中の型推論とかは働くのかな?
Avatar
omochimetaru 2/20/2018 9:25 AM
まだ試しはじめて2分ですが. からのメソッド補完や enum型のswitch - case 補完は動くみたいですね
Avatar
Kishikawa Katsumi 2/20/2018 9:38 AM
mapとかを書いてるときの$0が何かとかがちゃんと出るならいいですね。
Avatar
今使ってるプロジェクトがPromiseで、どうにかObservableっぽくできないかなって考えてるんですけど、どう思いますか?
Avatar
えと、Observable へ変換することは難しくないと思います。ちなみに推測ですが、複数の Promise を flatMap とかしたい感じですか?
Avatar
やりたいのは連続した値を流したい、のがメインだったりします
Avatar
む、それはそもそも Promise が不適切なタイプですね…
Avatar
(´・_・`)
Avatar
それはおいておくとして、Ovservable にするのはできますね
12:37 AM
Promise から受け取った値のほかにも、あとから値を流したいということであってますか?
Avatar
ですです
Avatar
なるほど、この場合、私なら PublishSubject を使います
12:40 AM
Subject は onNext メソッドで値を流せるので、Promise#then の中で Subject#onNext を叩き、それ以降も同じ Subject#onNext を叩けば値を流せます
Avatar
なるほど、つまりPromise一本で表現するのではなくてSubjectも組み合わせるってことですかね?
Avatar
はい、値をあとから流したいという要件ではその方法が素直だと思います
Avatar
やっぱり道具として違いますもんね、、すなおにRx導入するか考えて見ます🤔
Avatar
なお、あとから流す値も Promise 経由での値であるなら、Promise から Single を経由して flatMap でまとめますね
Avatar
Promiseを完全に置き換えたいって話じゃないんですか?
Avatar
お、勘違いしてました。そういう話です?
Avatar
Observableっぽくしたい だからRxに置き換えたいわけじゃないんですかね?
Avatar
いえ、本音は置き換えたい、だったりするんですけど一気に全部はきついので代替できんものかなーと
Avatar
なるほど
Avatar
func next() -> Promise<T?>
Avatar
あー、なるほど
12:46 AM
Rx の世界で Promise の代替は Single ですね。ただ、個人的には Single よりも Promise の方がライフサイクルで面倒が少ないので、両方使ってたりします
Avatar
class AsyncList<T>{ var value: Promise<T?> func next() -> AsyncList }
Avatar
T == nilだったらcompletedってことですかね? @omochimetaru
Avatar
yes
Avatar
あー、
12:48 AM
それも思って、Promise.allだったら対になるかと模索したりしたんですが、aillだとどれかコケたら死ぬので完全じゃないなーと悩んでました @Kuniwak
12:49 AM
そうか、リストとしてpromise返せばいけるのかな
Avatar
すみません、そろそろシュッシャするので移動中返信できないかもです
Avatar
ありがとうございます!参考になりました かくいう自分も出社しながら投げてますw
Avatar
RxをぶちこみたくないならEventEmitter作るのが早い気もしますが
Avatar
たしかに、Emitterあれば事足りるのはありそう (出社したので少し離席)
Avatar
やっと必要性が出て,初めてCodable使った. こりゃ便利だね
👍 4
Avatar
associated value付きのcaseに値を書かないと関数になるのかw enum SomeEnum { case aaa(Int) } let value = SomeEnum.aaa value // (Int) -> SomeEnum
2:32 AM
最初associated valueなしだったcase aaaにあとからIntを乗せるようにしたらセグフォで死んで何事かと思ったらvalueの型が関数になっててそのへんで死んでた
Avatar
これわかりづらそう・・・
Avatar
型があってよかった
Avatar
これ結構使う
2:36 AM
int川.map(SomeEnum.aaa)みたいな
Avatar
ん?
2:37 AM
ああー
2:37 AM
map {}じゃなくて map()か
Avatar
Avatar
川.map { _ in SomeEnum.aaa } って書いてて、あとからassocvalue足したらこの行がセグフォで死んだ
2:38 AM
セグフォったメッセージがわかりやすくて助かった 情報が無だったらここ気づけた自信がない
Avatar
面倒くさくてもassocvalue入れるのと混ぜる場合は、assocvalueをVoidにしておいた方が事故は防げそうですね
2:40 AM
enum My { case aaa(Void) } (edited)
2:40 AM
こんな風に
Avatar
あー
2:41 AM
うーん
Avatar
omochimetaru 2/27/2018 2:41 AM
型名がコンストラクタ関数になるやつね
Avatar
今回の僕がハマりかけたケースにおいては、セグフォじゃなくてちゃんと型が違うというエラー出してくれればそれで住むんだよな
2:42 AM
@omochimetaru 今回は型名じゃなくてcase名
Avatar
omochimetaru 2/27/2018 2:42 AM
あーたしかに それって.initはあるの?
Avatar
mapしてる場合はそこで推論しててもその先の使用箇所で引っかからなかったんですかね
Avatar
@omochimetaru initない
Avatar
川の中でこういうことが発生すると推論ぶっ壊れる
2:43 AM
まあよくある話なので壊れにくい型にしていくのが賢い
Avatar
@t.ae シンタックスハイライトが真っ白になったりしてたのでどっかで死んだ感じだったですね
Avatar
なるほど
Avatar
型チェックに引っかかる段階まで行けなかった感じした
Avatar
omochimetaru 2/27/2018 2:43 AM
.initが無いのにinitになる唯一のパターンかな?
Avatar
case は型でないのでまたちょっと違うかも?
Avatar
SomeEnum.a.init(1) って書けるのかなもしかして
Avatar
それはできないっぽいですね
Avatar
それはできないのか
2:44 AM
型じゃないからな
Avatar
Kishikawa Katsumi 2/27/2018 2:49 AM
Segmentation Faultってランタイムで起こったのかと思いましたけど、そうじゃなくてコンパイラがクラッシュしたってことなんですね。
2:53 AM
たいていのケースだとコンパイルエラーでわかると思ったけど通っちゃうケースもあるのか。
Avatar
あ、コンパイラのセグフォです
2:54 AM
通っちゃうケースあるのかな?
2:54 AM
Anyにいれてたりしたらなるか
Avatar
omochimetaru 2/27/2018 2:55 AM
コンパイラクラッシュの話だったのか
Avatar
Kishikawa Katsumi 2/27/2018 2:55 AM
そのmapに渡してるケースとかは通るんじゃないんですかね。Associated valueを使ってなかったところに追加するわけだからMap()の先では使ってないだろうし。
Avatar
あ、コンパイラの、って一度も書いてなかった
2:55 AM
ごめんなさい
Avatar
omochimetaru 3/1/2018 1:21 PM
ちょうど出てきましたね
Avatar
ぼくもタイムリーだなーって思ってました
Avatar
norio_nomura 3/2/2018 12:51 AM
Sierra標準のruby 2.0だとpod lib lintがgithub.comなurlのvalidationに失敗するぽい。
12:52 AM
High Sierra標準のruby 2.3.3やhomebrewで入れた2.2は大丈夫。 (edited)
12:55 AM
Earlier today we permanently removed support for the following weak cryptographic standards on github.com and api.github.com:
Avatar
そういえば、今日なんかイベントなんすか?
Avatar
try!swift
Avatar
ああ、
7:59 AM
忘れていた。
Avatar
swiftの人達はみんなライブコーディングやるんすか?
Avatar
fastlaneのafter_allでlaneで行われた変更をロールバック(例えばアイコンに付けたバッチを戻したり)しているのですが、デプロイフロー以外のlaneを実行する際もafter_allが走ってしまって困る事があるのですが特定のlaneだけbefore_all/after_allを回避する方法はあるのでしょうか? (edited)
1:18 AM
after_allの中で実行されたlaneを弾くのはなんか微妙な感じもしており良い方法あればなぁと…(そしてこういう話題はこのチャンネルで良いのでしょうか) (edited)
1:20 AM
そもそもfastlaneをタスクランナーとして使うみたいなのはちょっと使い方からズレている気もしなくはないのでどうなのという話もありますが… 上記内容は#ci に移動しました (edited)
Avatar
omochimetaru 3/7/2018 1:20 AM
(内容にちょうど良さそうなチャンネルが見当たらないですね)
Avatar
ciチャンネルかな
1:21 AM
↑があれば良いかなの意
Avatar
omochimetaru 3/7/2018 1:22 AM
あとでつくるね
Avatar
@tarunon @omochimetaru ありがとうございます!
Avatar
omochimetaru 3/7/2018 1:29 AM
#ci チャンネルを立てました。お返事はそちらでお願いします。
Avatar
@omochimetaru ありがとうございます!
Avatar
Kishikawa Katsumi 3/15/2018 4:48 AM
https://twitter.com/gusso/status/953665305905192961 ダークテーマにしたら1ピクセル広く使えるっていうのじわじわ笑える。家でよかった。
Did You Know™ using dark menu bar on macOS gives you an extra vertical pixel? https://t.co/UCHVGMDwMp
Retweets
766
Likes
1978
😂 7
Avatar
ほんとだw
Avatar
Kishikawa Katsumi 3/15/2018 4:49 AM
しょうもないけど文章がうますぎる
Avatar
これでダークから元に戻したらめり込んだりしないのかな
4:50 AM
ちゃんと戻って安心したw
Avatar
omochimetaru 3/15/2018 4:50 AM
ずりさがった
Avatar
norio_nomura 3/15/2018 4:52 AM
Today I found a good bug in the App Store toolbar https://t.co/Xfyn1dVI41
Retweets
2452
Likes
9300
Avatar
なあにこれw
Avatar
なんでwww
Avatar
omochimetaru 3/15/2018 4:52 AM
wwwwwwww
Avatar
good bug
Avatar
omochimetaru 3/15/2018 4:53 AM
あれ〜できない
Avatar
Kishikawa Katsumi 3/15/2018 4:53 AM
直っちゃったんじゃない。
Avatar
omochimetaru 3/15/2018 4:53 AM
残念
4:54 AM
やりたかった。
Avatar
通知センターぶっ壊れるやつおもちに見せたっけ
Avatar
omochimetaru 3/15/2018 5:29 AM
見てない
5:29 AM
そういえば俺のiPhoneのiMessage最近時空が歪んでて
5:29 AM
届いたメッセージが自分のメッセージより上にはいるから
5:29 AM
すごい読みづらい
Avatar
右手で通知センターをスワイプアップで閉じようとして指を離さず画面下端までドラッグして、そのまま左手で通知を開くと変な状態に遷移するぞ
Avatar
omochimetaru 3/15/2018 5:41 AM
ほんとだww
Avatar
アプリの画面単位の機能をまとめたドキュメントみたいなのってみなさんどうやって管理されてますか
5:06 AM
できれば個人じゃなくてチーム開発のプロジェクトで
Avatar
Cacooだけど、ベストじゃないのわかってるので他の人のも聞きたい。Sketch / Zeplinは画面の機能ではなく、各画面のデザイン仕様としてつかってる (edited)
Avatar
sketchとzeplinはうちもデザイナーとの連携ツールとしてつかってますね
5:08 AM
cacooは前職で使ってたけどあんま使いやすくなかったので今完全に忘れてた
5:08 AM
@d_date cacooで管理してるのってどんな粒度で描いてるんですか
5:09 AM
cacooってことは結構グラフィカルにやってるのかな。
Avatar
@hiragram 各画面毎にシートわけて、データの表示ロジックを、コンポーネントに対して吹き出しでまとめてる感じ。
Avatar
なるほど
Avatar
この方針自体はいいと思ってるけど、cacooそのものが使いにくくて困った
Avatar
「ボタンAはxxxの時にactiveになる」みたいな粒度で情報残したくて、画面に機能を足すときに「じゃあこのボタンの切り替えも手を入れる必要がありますね」というのを漏れないようにしたいんだよな
5:13 AM
且つ職種問わず読める、というのが欲しい
Avatar
コンポーネント間にリレーションつけたいのわかる。職種問わずというのは、エンジニア、デザイナー、PM/POあたりを想定してる?
Avatar
そう > 職種
Avatar
PM/POはその人のバックグラウンドによりけりだから、一旦考えず、エンジニアとデザイナー双方が使えるツールが良いよね。
Avatar
ディレクターは新機能の企画を練るときに材料としてつかえて、エンジニアは改修しなきゃいけないところを漏れなく把握できるのが理想
5:16 AM
複雑な画面ならスクショを貼りたいけど、バージョン管理ができたらもっと嬉しいのでテキストベースでできるのがいいのかなーなどをかんがえてる
Avatar
テキストもほしいんだけど、テキストベースだと簡単に認識ずれていくのがなぁ。ほしいのは更新漏れを起こさない使いやすいエディターなんだよな。cacooにもバージョン管理あって、差分表示できるんだけど、ちょっとまだ使いにくい。
Avatar
専属のQAチームとかがある会社には何か答えがあるんじゃないかなーとおもって助けを求めたしだい
5:21 AM
なんかないすか @tarunon
Avatar
最近ワイもそれ考えてるわ
5:30 AM
つまり
Avatar
無いんか
5:33 AM
PRとかissueと紐づけられたら良い気がするので、そういうとGitHubのwikiとかなんだろうか?というのはどうでしょう
5:33 AM
テキストベースだしスクショ晴れるしバージョン管理できるし
Avatar
差分でガチャる。つまり機能Aと機能Bを別のチームがやった場合に崩壊しそう
Avatar
issueとかPRは閉じたりできちゃうし、一覧性ないんだよな
Avatar
結局最終的にはgit最強なんだけどこいつは難しすぎる
Avatar
Kishikawa Katsumi 3/26/2018 5:34 AM
GitHubのWikiはあまりうまくいかないですね。
Avatar
乖離を防ぐのはPOとかディレクターとかに担保してもらう感じになりそうだけど
5:34 AM
うーーーーーーーーーーーーーーーーむ。
Avatar
Kishikawa Katsumi 3/26/2018 5:34 AM
新しく来た人への基本的なオンボーディングとかほとんど変わらない情報を置いとくのにはいいと思います。
Avatar
この辺のベストがないのであればそれを解決するウェイを提示できれば明確に儲かる
Avatar
儲かりそう
Avatar
@Kishikawa Katsumi 新しく来た人っていうのはプロジェクトメンバーということであってますか?
Avatar
環境のセットアップとかそういう話ですよね
Avatar
あーそういう。
5:36 AM
readmeに書いてるなw
Avatar
Kishikawa Katsumi 3/26/2018 5:36 AM
はい。あとは定例ミーティングの議事録とか。GitHubのWikiは結局整理できないのが問題。
Avatar
やっぱ整理できないかー
Avatar
整理できない問題はどのツール使っても発生してるので
Avatar
既存のツールの問題はメンテコストたかいことなんだよな
Avatar
それを解決できるサービスを作れば儲かりますね
Avatar
この辺はデザイナーも同じ問題抱えてるので、一緒に何か作るのはありなんだけど、明確な解決策がまだ見えてないんだよな
Avatar
Kishikawa Katsumi 3/26/2018 5:37 AM
チームのルールとかもいいかな。とにかく継続的にメンテナンスが必要なものを書くようには向いてないですね。Qiita teamも一緒だな。
Avatar
僕はあまりWiki系のツールに明るくないのですが、凡そどれもが差分を作ったりマージしたりということを兎に角やりにくくて、雨後の筍が如く新規ページが大量にできて収集つかなくなるのが悪い点だと思っていて、それを解決できるWiki系のサービスがあればいいのかな
5:39 AM
実際にはもうあったりするのかしら
Avatar
その点で言うと、新しいページを作るときに、もうその内容のページあるよ、っていうのが見えると良いね。あるのか知らんけど
5:42 AM
ただちょっと欲しいものとずれてきてる気がするんだよな。
Avatar
どのツールでもエッジケースで使いづらくなるのは避けられないとするとやっぱ使い慣れててMarkdownでかけて差分管理もできるGitHubのwikiになりそうなきがするけどどうなんだろなー
Avatar
Markdownかけてうれしいのはエンジニアだけなんだよな
Avatar
そうかなあ
Avatar
Kishikawa Katsumi 3/26/2018 5:44 AM
ツールは私もよくわからないけど、QAを外部にお願いする場合はQAの確認リストが必要なので、ドキュメントとしてはそれでいくらかカバーできるんじゃないかな。
5:44 AM
最初に言ってたような、画面ごとのアクションと状態変化、のようなのが網羅的にまとまってるものになるので。
5:45 AM
で、大抵のQAサービスの会社はそれの作成とメンテナンスもしてくれる。
5:46 AM
いくつかの会社はワークフローを合わせてくれるので、それの管理に何を使うかはこっちで決めることができる。
Avatar
まあどっちにしても作業やるの人間なんで、ツールで縛れなければルールで縛ればいいので、評価軸にドキュメントの質とかそういうの加えてよしなにやれば後は勝手に頑張るんじゃねーかなとは思う
Avatar
運用ルールはツールによらず必要なの同意
Avatar
まっさらから始まるプロジェクトがあって仕様の管理どうすっかなーというのが話の起点だった。みなさんありがとうございます
Avatar
それで言うと手を加えていい人間を絞るのがオススメ。masterブランチへのマージと一緒。
5:50 AM
楽しかった。
Avatar
POだけとか?
Avatar
とか、テックリードとか。知らないところで仕様が書き換わると全員が混乱する
5:52 AM
もしくは誰でも書いていいけど、編集の承認を取るとか。承認者は整合性チェックする。温かみのある運用フロー。
Avatar
Kishikawa Katsumi 3/26/2018 5:53 AM
新しく作り始めるプロジェクトでそんな細かいのいるかな。リリースしてからでいいんじゃない?
Avatar
一番混乱するのが、リリースから次のリリースまでに走った幾つかの変更が
5:54 AM
統合されないまま放置されて育ってしまうことなので
5:54 AM
最初のリリースまでは1Docなんだからそこまで過敏にならなくてもいいと思う、アップデートを複数チームでやるようになってからが勝負
Avatar
なるほど
Avatar
あ、ごめんまっさらから始まる新規プロジェクトは完全に頭になかった。たしかにそうすね。
Avatar
GitHubのWikiは画像をカジュアルに挿入できない弱点が致命的すぎて…
8:54 AM
チームで運用した実績は何もないんですが、 https://scrapbox.io/ はタグでノートが有機的に繋がってくのが気に入っています
A workspace that organizes for you
Avatar
チーム運用もできたりするのかな
Avatar
できるはず
Avatar
Charles Proxy for iOSリリースされたのね https://twitter.com/charlesproxy/status/978783544666304512
Charles Proxy is now available on iOS. Read the release announcement https://t.co/uSAYVTDcOA or visit the App Store: https://t.co/YA4EZbvRHA
🎉 14
Avatar
1080円!買い切り! サブスクリプションじゃないのか
Avatar
ついに!
Avatar
Apple Pencil対応の廉価9.7インチiPad、正式に発表出たのですね。 別案件でSwift学習から離れていたのですが、ようやくまた戻ってきましたので、この機会に買ってみるのもありかなと考え中です。 https://www.apple.com/jp/ipad-9.7/
iPadがApple Pencilに対応しました。薄くて頑丈なアルミニウムのボディ、Retinaディスプレイ、優れたパフォーマンス、先進的なカメラ、高速ワイヤレス接続が魅力です。
Avatar
うっし,Swift4.1で2tchの新バージョンのテスト通った よかった
Avatar
Kishikawa Katsumi 4/1/2018 1:05 PM
@swiftbot import Foundation func greet(person: String) -> String { let greeting = "Hello, " + person + "!" return greeting } print(greet(person: "Anna")) print(greet(person: "Brian"))
👏 9
Avatar
swiftbot BOT 4/1/2018 1:05 PM
@Kishikawa Katsumi, Swift version 4.1 (swift-4.1-RELEASE) Target: x86_64-unknown-linux-gnu Hello, Anna! Hello, Brian!
Avatar
おおすごい
Avatar
Kishikawa Katsumi 4/1/2018 1:06 PM
@swiftbot --version=4.0.3 import Foundation func greet(person: String) -> String { let greeting = "Hello, " + person + "!" return greeting } print(greet(person: "Anna")) print(greet(person: "Brian"))
Avatar
swiftbot BOT 4/1/2018 1:06 PM
@Kishikawa Katsumi, Swift version 4.0.3 (swift-4.0.3-RELEASE) Target: x86_64-unknown-linux-gnu Hello, Anna! Hello, Brian!
Avatar
Kishikawa Katsumi 4/1/2018 1:07 PM
Swiftのコードを貼ると実行して結果を返してくれるBotがなんとなくできました。 ぼちぼちパワーアップしようと思うので色々とアイデアをください。
swift 10
1:08 PM
Contribute to swift-playground development by creating an account on GitHub.
1:08 PM
Contribute to swift-compiler-discord-bot development by creating an account on GitHub.
1:09 PM
コンパイルや実行はDockerで時間制限付きで行われるのでひどいことはあまりできないと思いますが、何か見つけたら悪用せずに速やかに教えてください。 🙇🏻
1:11 PM
今のところなんでも反応するわけではなくて、 @swiftbot へのメンション、かつswiftでハイライトしたコードブロック、を捕まえるようになっています。
Avatar
omochimetaru 4/1/2018 1:41 PM
おおお!!!
Avatar
Kishikawa Katsumi 4/1/2018 2:34 PM
@swiftbot --command=swiftc --options='-dump-parse' func fibonacci(number: Int) -> Int { if number <= 1 { return number } else { return fibonacci(number: number - 1) + fibonacci(number: number - 2) } } print(fibonacci(number: 10))
Avatar
swiftbot BOT 4/1/2018 2:34 PM
@Kishikawa Katsumi, ``` (source_file (func_decl "fibonacci(number:)" (parameter_list (parameter "number" apiName=number)) (result (type_ident (component id='Int' bind=none))) (brace_stmt (if_stmt (sequence_expr type='<null>' (declref_expr type='<null>' decl=main.(file).fibonacci(number:).number@/usercode/main.swift:1:16 function_ref=unapplied) (unresolved_decl_ref_expr type='<null>' name=<= function_ref=unapplied) (integer_literal_expr type='<null>' value=1)) (brace_stmt (return_stmt (declref_expr type='<null>' decl=main.(file).fibonacci(number:).number@/usercode/main.swift:1:16 function_ref=unapplied))) (brace_stmt (return_stmt (sequence_expr type='<null>' (call_expr type='<null>' arg_labels=number: (unresolved_decl_ref_expr type='<null>' name=fibonacci function_ref=unapplied) (tuple_expr type='<null>' names=number (sequence_expr type='<null>' (declref_expr type='<null>' decl=main.(file).fibonacci(number:).number@/usercode/main.swift:1:16 function_ref=unapplied) (unresolved_decl_ref_expr type='<null>' name=- function_ref=unapplied) (integer_literal_expr type='<null>' value=1)))) (unresolved_decl_ref_expr type='<null>' name=+ function_ref=unapplied) (call_expr type='<null>' arg_labels=number: (unresolved_decl_ref_expr type='<null>' name=fibonacci function_ref=unapplied) (tuple_expr type='<null>' names=number (sequence_expr type='<null>' (declref_expr type='<null>' decl=main.(file).fibonacci(number:).number@/usercode/main.swift:1:16 function_ref=unapplied) (unresolved_decl_ref_expr type='<null>' name=- function_ref=unapplied)
2:34 PM
@Kishikawa Katsumi, (integerliteral_expr type='<null>' value=2)))))))))) (top_level_code_decl (brace_stmt (call_expr type='<null>' arg_labels=: (unresolved_decl_ref_expr type='<null>' name=print function_ref=unapplied) (paren_expr type='<null>' (call_expr type='<null>' arg_labels=number: (unresolved_decl_ref_expr type='<null>' name=fibonacci function_ref=unapplied) (tuple_expr type='<null>' names=number (integer_literal_expr type='<null>' value=10)))))))) Swift version 4.1 (swift-4.1-RELEASE) Target: x86_64-unknown-linux-gnu ```
Avatar
Kishikawa Katsumi 4/1/2018 3:16 PM
@swiftbot versions
Avatar
swiftbot BOT 4/1/2018 3:16 PM
Available Swift versions: 2018-03-31-a 4.1 4.0.3 3.1.1 3.0.2
❤ 3
Avatar
Kishikawa Katsumi 4/1/2018 3:18 PM
@swiftbot versions
Avatar
swiftbot BOT 4/1/2018 3:18 PM
Available Swift versions: 2018-03-31-a 4.1 4.0.3 3.1.1 3.0.2
Avatar
Kishikawa Katsumi 4/1/2018 3:31 PM
@swiftbot help
Avatar
swiftbot BOT 4/1/2018 3:31 PM
Usage: @swiftbot [--version=SWIFT_VERSION] [--command={swift, swiftc}] [--options=SWIFTC_OPTIONS] @swiftbot versions: show available Swift toolchain versions @swiftbot help: show help
Avatar
Kishikawa Katsumi 4/1/2018 3:38 PM
RxSwiftとかよくコードのやりとりがされているフレームワークを使えるようにしていくと便利になりそう。
Avatar
omochimetaru 4/1/2018 3:40 PM
ですねえ
Avatar
Kishikawa Katsumi 4/1/2018 3:48 PM
Botのアイコン、フリー素材そのままなので、どなたかカッコいいアイコン作ってください。 🙇🏻
Avatar
omochimetaru 4/1/2018 3:52 PM
@Kishikawa Katsumi bot便利すぎてヤバそう、ありがとうございます
Avatar
お風呂から議論するときに脳内コンパイルじゃないちゃんとしたコンパイラが気軽に使えて嬉しい。ありがとうございます。
Avatar
Kishikawa Katsumi 4/1/2018 3:53 PM
😄
Avatar
後は貼ったコードを全員が実行し直す必要がないのは良いことですね(それでも実行しそうな気はする)
Avatar
Kishikawa Katsumi 4/1/2018 4:05 PM
@swiftbot protocol A {} struct S<T> {} struct K: A {} extension S : A where T: A {} print(S<K>.self is A.Type) print(S<S<K>>.self is A.Type) print(S<S<S<K>>>.self is A.Type)
Avatar
swiftbot BOT 4/1/2018 4:05 PM
Swift version 4.1 (swift-4.1-RELEASE) Target: x86_64-unknown-linux-gnu
4:06 PM
true true true
4:06 PM
/usercode/main.swift:8:17: warning: 'is' test is always true print(S<K>.self is A.Type) ^ /usercode/main.swift:9:20: warning: 'is' test is always true print(S<S<K>>.self is A.Type) ^ /usercode/main.swift:10:23: warning: 'is' test is always true print(S<S<S<K>>>.self is A.Type) ^
Avatar
norio_nomura 4/2/2018 2:08 AM
swiftbotにDocker imageを指定できるオプションがあると嬉しいかもしれないけど、セキュリティ的に厳しそう。
Avatar
Kishikawa Katsumi 4/2/2018 3:01 AM
@norio_nomura リポジトリのdockerイメージをダウンロードできるようなものですか?
Avatar
norio_nomura 4/2/2018 3:01 AM
そそ。
Avatar
Kishikawa Katsumi 4/2/2018 3:02 AM
そうだとするとセキュリティよりもクラウドサーバの費用が先に問題になるかな?使い終わったら破棄すればOK?
3:04 AM
バニラのツールチェーン以外で載せたいものがあったら載せますよ。ひとまずRxSwiftを足してみるつもりです。
Avatar
norio_nomura 4/2/2018 3:30 AM
@swiftbot import XCTest class Test: XCTestCase { func testA() { XCTAssertTrue(true) } static var allTests = [("testA", testA)] } XCTMain([testCase(Test.allTests)]) (edited)
Avatar
swiftbot BOT 4/2/2018 3:30 AM
Swift version 4.1 (swift-4.1-RELEASE) Target: x86_64-unknown-linux-gnu
3:30 AM
/usercode/main.swift:4:27: error: heterogeneous collection literal could only be inferred to '[Any]'; add explicit type annotation if this is intentional static var allTests = ["testA", testA] ^~~~~~~~~~~~~~~~ as [Any] /usercode/main.swift:6:10: error: cannot invoke 'testCase' with an argument list of type '([Any])' XCTMain([testCase(Test.allTests)]) ^ /usercode/main.swift:6:10: note: overloads for 'testCase' exist with these partially matching parameter lists: ([(String, (T) -> () throws -> Void)]), ([(String, (T) -> () -> Void)]) XCTMain([testCase(Test.allTests)]) ^
Avatar
norio_nomura 4/2/2018 3:31 AM
@swiftbot import XCTest class Test: XCTestCase { func testA() { XCTAssertTrue(true) } static var allTests = [("testA", testA)] } XCTMain([testCase(Test.allTests)])
Avatar
swiftbot BOT 4/2/2018 3:31 AM
Swift version 4.1 (swift-4.1-RELEASE) Target: x86_64-unknown-linux-gnu
3:31 AM
Test Suite 'All tests' started at 2018-04-02 03:31:20.701 Test Suite 'bin.xctest' started at 2018-04-02 03:31:20.725 Test Suite 'Test' started at 2018-04-02 03:31:20.725 Test Case 'Test.testA' started at 2018-04-02 03:31:20.725 Test Case 'Test.testA' passed (0.0 seconds) Test Suite 'Test' passed at 2018-04-02 03:31:20.726 Executed 1 test, with 0 failures (0 unexpected) in 0.0 (0.0) seconds Test Suite 'bin.xctest' passed at 2018-04-02 03:31:20.726 Executed 1 test, with 0 failures (0 unexpected) in 0.0 (0.0) seconds Test Suite 'All tests' passed at 2018-04-02 03:31:20.726 Executed 1 test, with 0 failures (0 unexpected) in 0.0 (0.0) seconds
Avatar
omochimetaru 4/2/2018 3:32 AM
テストの形もありかw
Avatar
Discordがランダムにクラッシュするようになった。つまり、きみの忍耐力が鍛えられるようになったんだ。やったね! ワロタ
😇 2
Avatar
Kishikawa Katsumi 4/2/2018 3:39 AM
コンパイラオプションも渡せるのでたいていの検証はできるはず。。。 (edited)
Avatar
omochimetaru 4/2/2018 3:42 AM
@swiftbot print("`" + "``") print("escape test")
Avatar
swiftbot BOT 4/2/2018 3:42 AM
Swift version 4.1 (swift-4.1-RELEASE) Target: x86_64-unknown-linux-gnu
3:42 AM
``` escape test
Avatar
omochimetaru 4/2/2018 3:44 AM
えらい
Avatar
Kishikawa Katsumi 4/2/2018 3:46 AM
↑コードブロックの中にbacktickって普通は入力できないですよね?
Avatar
omochimetaru 4/2/2018 3:47 AM
みたいですね。 下記を入力しようとしてもエンターキーが通らない。 (b -> と置換して読んで) bbb bbb bbb ` (edited)
Avatar
Kishikawa Katsumi 4/2/2018 3:47 AM
APIからならできるのか。
Avatar
omochimetaru 4/2/2018 3:48 AM
奇数だから助かったのか・・・?
3:49 AM
@swiftbot print("`" + "``") print("escape test A") print("`" + "``") print("escape test B")
Avatar
swiftbot BOT 4/2/2018 3:49 AM
Swift version 4.1 (swift-4.1-RELEASE) Target: x86_64-unknown-linux-gnu
3:49 AM
``` escape test A escape test B ```
Avatar
omochimetaru 4/2/2018 3:49 AM
お、壊れたw
😇 1
Avatar
Kishikawa Katsumi 4/2/2018 4:34 AM
のむらさんの言ってたことで思ったけど swiftbot install 2018-04-02-a みたいにスナップショットをインストールできるとメンテナンスはすごく楽だな。
4:35 AM
たぶんそういうことを言われてたのかな。
4:36 AM
誰の発言かがわかるから、メンテナの人のコマンドだけ受け付けるようにすればいいんじゃないだろうか。
Avatar
omochimetaru 4/2/2018 4:36 AM
面白いw
4:36 AM
botって暗黙にDiscordの認証を引き継げるんですね
Avatar
メカっぽい感じのSwift鳥のアイコン
4:55 AM
暇があったら描く
swift 4
Avatar
Swift Botで試したり遊んだりするチャンネル欲しいなーと思ったけど、需要なさげ?
Avatar
norio_nomura 4/2/2018 5:12 AM
パッケージによっては依存するaptパッケージがあったりして、CIではそれ用に調整されたdockerイメージが使われていることが多いので、それらを使えたら〜と考えました。しかし、パッケージをビルドできない限り関係ない話ですね。
5:12 AM
あと、スナップショットのdockerイメージをDocker Hubで公開しているので、それらを使えたら、と思ったのもあります。
Avatar
Kishikawa Katsumi 4/2/2018 5:17 AM
何か簡単なコマンドでチャットから更新できるようにした上で、自分の管理下のサーバにデプロイして違う名前のボットとして使ってもらうのがいい気がします。
5:20 AM
Digital Oceanの一番安いプランだからあまりディスクに余裕ないんですよね。
Avatar
omochimetaru 4/2/2018 5:27 AM
@ありぜ 現状はインフラコストが岸川さん一人にかかってるのでとりあえずゆっくり運用したほうが良さそう
🆗 1
Avatar
投げ銭窓口作ってください @Kishikawa Katsumi
Avatar
omochimetaru 4/2/2018 5:28 AM
クレジット制でも良さそう(botの発火にクレジットを消費)
Avatar
銭投げしたい
Avatar
月ごとに利用回数を計測して一番使った人が男前払いするとか。投げ銭でいい気がするけど。
Avatar
Kishikawa Katsumi 4/2/2018 5:47 AM
転送量は大したことないと思うんですよね。だから遊ぶ用のチャンネルはあったら色々分かることがあると思うので嬉しいです。
Avatar
omochimetaru 4/2/2018 5:48 AM
お、じゃあ作ってみます
😇 1
🙇 1
👍 1
5:50 AM
たてました #swiftbot-sandbox
Avatar
↓メンバーカウントのテスト https://discord.gg/4Scjz4J
Invite to join a server
3:41 AM
おや、 500 人ということなのに反映に delay があるのかな?
Avatar
tarunon - 今日 午後12時18分 再起動すると変動した
Avatar
ほんとだ。読み飛ばしてた。
4:24 AM
再起動したら 7 人増えてた。すごい。
Avatar
あれ?497人になってる?
Avatar
僕は今アプリ再起動後で510人表示ですね( ´・‿・`)
Avatar
あっ、Windowsのクライアントから確認してたんですけど、バックグラウンドでDiscord生きてたからでした。 完全にプロセスキルしてから起動したら510人でした👌
👍 1
Avatar
#rx 部屋の話題なんですがRxの話でないのでこっちにかきます
quote: @ainame Xcode9.3 (Swift4.1)+ RxSwiftでコンパイラーの最適化時にクラッシュするみたいです。 リリースする際にはお気をつけて... https://github.com/ReactiveX/RxSwift/issues/1555 https://bugs.swift.org/browse/SR-7064
こういうのをリリース後に踏まないようにするために開発中からできることって何かありますかね?
Short description of the issue: combineLatest/zip operators fail at runtime with latest Xcode 9.3b1 / Swift 4.1 running against iOS 11.3 OR 11.2. Expected outcome: combineLatest/zip operators execu...
7:41 AM
開発チーム向けのベータ配信をReleaseビルドでやるくらいしか思いつかないけど筋良い気もあんまりしない
Avatar
omochimetaru 4/10/2018 7:41 AM
Xcodeベータで一生懸命テストするとか。
Avatar
Kishikawa Katsumi 4/10/2018 7:41 AM
テストのカバレッジをできるだけ高く保つというのが地道ですが一番効果的です。
Avatar
Releaseビルドでテストをする?
Avatar
Kishikawa Katsumi 4/10/2018 7:42 AM
はい。
Avatar
ふむむ
Avatar
omochimetaru 4/10/2018 7:43 AM
ReleaseとDebugで2倍ある問題は難しい・・・
Avatar
おもちがいうベータで頑張るっていうのは、RxSwift作者の立場でってことかな?
Avatar
Kishikawa Katsumi 4/10/2018 7:43 AM
テストにかかる時間とトレードオフなんですけど、毎PRでやらなくてもいいんでナイトリービルドをセットアップするとかですね。
Avatar
omochimetaru 4/10/2018 7:43 AM
いや、RxSwift + 最新Xcodeでそれを踏むアプリ開発者が、Xcode Betaで事前検知できるのでは?ってこと
Avatar
@omochimetaru わいが気になってるのはどちらかというとデバッグビルドだと起きないけどリリースビルドだと死ぬよってやつ
Avatar
omochimetaru 4/10/2018 7:44 AM
そういうのがあるからReleaseビルドのテストのほうが大事なんじゃないか
Avatar
テストってユニットテストのテスト?QA的なテスト?
Avatar
Kishikawa Katsumi 4/10/2018 7:45 AM
ユニットテストでやるのがオススメです。
Avatar
omochimetaru 4/10/2018 7:45 AM
アプリのことだからQA的な、だけど、ユニットテストでも同じかと。
Avatar
Kishikawa Katsumi 4/10/2018 7:46 AM
QAのテストでソースコードレベルのエッジケースをさらうのは難しいというか、偶然の産物になるので。
Avatar
ライブラリでは、ReactiveSwiftとかでも最適化でおかしくなりがちだったのでReleaseでテストしてますね https://github.com/ReactiveCocoa/ReactiveSwift/blob/6e96fc9ff704cdb42867f35539cd1d9ef87a471b/script/build#L5-L37 (edited)
ReactiveSwift - Streams of values over time
👀 2
7:47 AM
@testable import のために一緒にENABLE_TESTABILITY=YESも指定してあげる (edited)
Avatar
Kishikawa Katsumi 4/10/2018 7:47 AM
カバレッジは基本的に品質には影響しないので気にすることはないというのが一般論なんですけど、Swiftはまだ最適化や内部的なAPIの変更、あとiOSの変更など外部要因等々で何もしてなくてもクラッシュが起こることはあるので、単純にカバレッジをあげるだけのテスト、というのもかなり有効です。
Avatar
お、 ENABLE_TESTABILITY=YES って初見だ
7:48 AM
あー。それで testable importができるようになるのか
Avatar
omochimetaru 4/10/2018 7:48 AM
たしかそう > testable import
Avatar
知らなかった。
7:49 AM
@Kishikawa Katsumi ナイトリービルドって実際やられてますか?
7:49 AM
CIサービス→fastlane→crashlyticsbetaとかかな
Avatar
Kishikawa Katsumi 4/10/2018 7:50 AM
ビルドマトリックスを作って常に複数の環境、ビルド構成でテストします。
7:50 AM
速さはCIサービスにお金を払って並列度をあげます。
7:51 AM
Travis CIだとやりやすいんですけどね。他のサービスはそういうの難しいですね。今はxcocebuildの並列テストもビルド構成は変えられないし。
Avatar
omochimetaru 4/10/2018 7:51 AM
なるほどなるほど。
Avatar
Travisがやりやすいのか
Avatar
omochimetaru 4/10/2018 7:52 AM
Travisはなんか - matrix: で組み合わせ並べられるんだよね。
Avatar
へーへーそうなんだ
7:52 AM
Travisつかったことあったけど、それはやったことなかった。
Avatar
Kishikawa Katsumi 4/10/2018 7:52 AM
チーム開発だとまあPRごとのテストの時間は生産性に大きく直結するので最低限にすることもあります。
7:52 AM
↑この前やってみたやつ。
7:52 AM
これはConfigurationじゃなくてOSだけど。 (edited)
Avatar
これでTravisは並列に動かしてくれるのか。
Avatar
Kishikawa Katsumi 4/10/2018 7:53 AM
個人だと、私の作るのはライブラリが多いのと、私はテストにかかる時間の長さは気にしないので、できる限りのテストを実行します。
Avatar
ふむふむ
Avatar
omochimetaru 4/10/2018 7:53 AM
並列だったか直列2倍待ちだったかは忘れたw
Avatar
並列か直列かはまあ、殴る金の重さによって違いそうですね
Avatar
omochimetaru 4/10/2018 7:54 AM
デバイスもめっちゃ並べてあるw > SperadsheetView (edited)
Avatar
Kishikawa Katsumi 4/10/2018 7:54 AM
OSS版のTravisは無料のままだったら2並列なのでめっちゃ時間かかりますね。
Avatar
すげえ
7:56 AM
なるほど、いろいろ参考になりました ギョムでやる上での落とし所みたいなのはもうちょっと考えてみます ありがとうございます
Avatar
Kishikawa Katsumi 4/10/2018 8:00 AM
アプリだとそもそも難しいんですけどカバレッジをとって専用のWebサービスで見られるようにしておくと、そういうチマチマしたカバレッジをあげるのには効果ありますよ。
8:00 AM
Hosted coverage report highly integrated with GitHub, Bitbucket and GitLab. Awesome pull request comments to enhance your QA.
8:01 AM
書いたコードが少なくとも実行されているっていうのがあるだけでも安心感が違います。
Avatar
omochimetaru 4/10/2018 8:02 AM
このサービス知らなかった。
8:03 AM
さっきのCIの "bash <(curl -s https://codecov.io/bash) -f 'coverage.txt'" ここらへんが
8:03 AM
そのcodecov.ioに結果を送ってるんですかね?
Avatar
Kishikawa Katsumi 4/10/2018 8:05 AM
そうです。本当はもっと簡単で -f 'coverage.txt' の部分いらないんですけど、どうも64Bitの時にバイナリがうまく見つからないっぽいので、自分でllvm-covを実行してレポートだけ作ってます。
Avatar
omochimetaru 4/10/2018 8:06 AM
ほうほう。カバレッジ周りは全然やったことないし、今度いろいろやってみよう。
👌 1
Avatar
OpenGLESやCoreGraphics/CoreImageの話題は #uikit 、、?
Avatar
Kishikawa Katsumi 4/10/2018 10:18 AM
わからないけどiosでもいいかも。どっちでもいいと思います。
10:18 AM
Cocoaっていうのもあるな? (edited)
Avatar
Mac/iOS クロス かつ UIKit でないモジュールはたしかに分類がわかりにくいですね。どこでも大丈夫だと思いますけど。
Avatar
iOS環境での話がちょっとしたいのでiOSに投下します!ありがとうございますー
Avatar
Swiftbotがドンドン進化してる
🤖 2
Avatar
SVProgressHUDみたいなのの今風のやつってなんかありませんか
5:55 AM
見た目はSVProgressHUDで良いんだけどスーパーグローバルクルクルじゃなくてViewControllerベースで出したい
Avatar
https://github.com/jdg/MBProgressHUD とかがビューレベルで表示出来ますね
MBProgressHUD + Customizations
🙌 1
6:24 AM
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
Avatar
Sourceryを実際に活用してる方っていらっしゃいますか?
Avatar
いまは使ってないですねー。Codableがなかった頃にNSCodingに関するコード生成がやりたくていろいろ試してました。その時は結局Sourceryは使わずに、PopClipでやりたい事を実現させました。
Avatar
文字選択→PopClipのextensionで選択文字を自力でイイ感じにパース→ペースト、みたいな感じでしょうか?
Avatar
その通りです。→ いま見てみたらAlfredでも同じようなこと試してた跡がありました。
Avatar
ボイラープレートでも、メタプログラミングより、都度生成してコピペしたほうが適任なこと、多そうですよね。
Avatar
ですねー。これも試しました。サーペント。結構良かった記憶があります。 https://github.com/nodes-ios/Serpent
Serpent - A protocol to serialize Swift structs and classes for encoding and decoding.
Avatar
これは随分と特化型のライブラリですね! https://github.com/nodes-ios/ModelBoiler も含め
ModelBoiler - Generate model boilerplate code for Serpent quickly and easily.
Avatar
そうなんです。Sourceryからは離れちゃいましたね。
Avatar
ModelBoilerでやってること、Xcode Source Editor Extensionでやりたくなりますね
10:34 AM
Sourceryのtemplatesを見てもあまりぴんとくるものがないんですよね、Swift4.1だと特に。 https://github.com/krzysztofzablocki/Sourcery/tree/master/Templates/Templates
Sourcery - Meta-programming for Swift, stop writing boilerplate code.
10:35 AM
ただ AutoInterface は気になりました https://github.com/AliSoftware/SourceryTemplates#autointerface
SourceryTemplates - Some templates to use for Code Generation in Swift with http://github.com/krzysztofzablocki/Sourcery
Avatar
omochimetaru 4/20/2018 1:59 AM
@takasek メタプログラミングは言語の(特にジェネリクス周りの)進化によって不要になるものが多いですね
1:59 AM
僕がまだメタプログラミングが必要で、後々に不要になってほしいと思っているジャンルは、
1:59 AM
可変長ジェネリックパラメータです
2:00 AM
Curry - Swift implementations for function currying
Avatar
norio_nomura 4/20/2018 2:31 AM
DiscordってSlack向けのWebhookペイロードを受け取れるのね。Discordに直接対応していないサービスでも、DiscordのWebhookをSlackとして登録して使えた。 https://discordapp.com/developers/docs/resources/webhook#execute-slackcompatible-webhook
Integrate your service with Discord - whether it's a bot or a game or your whatever you wildest imagination can come up with.
Avatar
カリー化関数か なんかすごい (edited)
Avatar
omochimetaru 4/20/2018 3:36 AM
https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#variadic-generics variadic-genericsが実装されればこれ定義1つにできるんですよね。
swift - The Swift Programming Language
3:36 AM
現状は引数21個版まで個別に定義されている
3:38 AM
RxSwiftのcombineLatestもメタプログラミングで可変長ジェネリクスを展開している
Avatar
VaporのFuture使ってるんですがdoはメインのチェーンから外れたものになるんですね。 RxSwiftのdoに慣れてましたけど完全に副作用だと考えるとこっちのほうが正しそう。 というかRxだとsubscribeが必要だから副作用を独立に書くことができないのか……
Avatar
dothrowするってのがRxSwiftだとできるけどVaporだとできないってのが↑で言いたかったことでした
Avatar
omochimetaru 4/24/2018 2:50 AM
RxSwiftのdoってストリームには影響与えないと思ってたけど、エラーにすることだけはできるってことか?
2:50 AM
すると、T == U に制約されたmapに近いのか。
2:52 AM
Vaporのdoはthrowできないのでそれ用のdoを自分で書いて、でも同名で振る舞いが違うなって思ったのでした。
2:53 AM
extension EventLoopFuture { public func `do`(_ callback: @escaping (T) throws -> Void) throws -> EventLoopFuture<T> { return map(to: T.self) { t in try callback(t) return t } } }
Avatar
omochimetaru 4/24/2018 2:54 AM
既にdoがあるのに違う振る舞いのdoを自前実装するのはやめたほうがいいよ・・
Avatar
口頭の議論で 1. Vaporの実装とずれたdoを用意するのは良くない 2. mapで書かないとエラーへの変換というところが読めない 3. これを用意するにしてもtryとかの名前にする という結論に落ち着きました。
Avatar
omochimetaru 4/24/2018 7:07 AM
Discord:9000万人のPCゲーマーが間違っているはずがありません http://jp.gamesindustry.biz/article/1804/18042301/ @GamesindustryJEさんから
創業者兼CEOのJasonCitron氏が同社のプラットフォームの急速な成長とヘイト・グループの出現に対する強行路線について語る。 ビジネスについて執筆するジャーナリストにとって,お...
7:08 AM
↑の記事を見て気になってググったところ
7:08 AM
ユーザー数はスラック以上、ゲーマー向けチャット「ディスコード」 https://forbesjapan.com/articles/detail/18864
登場からわずか2年で爆発的に広まったチャットアプリのディスコード。人気の火付け役となったゲーマーたちのあいだで、圧倒的な評価を得ている理由とは?週6日、自分がゲームを...
7:08 AM
デイリーユーザー数は900万人で、企業向けチャットサービスとして大人気のSlack(スラック)の500万人を上回る。
7:08 AM
ディスコードの収入の大半を占めるのは、月額4ドル99セントの会費だ。有料会員になれば、アニメのアバターやカスタマイズした絵文字を使えたりする。
Avatar
ユーザー数 Slack 超えてるのか、すごい・・・。 (edited)
Avatar
みなさんfabric見れます?今
6:34 AM
ダッシュボードのAPIへのリクエストが503で落ちてるように見える
6:34 AM
Welcome to Fabric's home for real-time and historical data on system performance.
6:34 AM
operationalだけど
Avatar
ありゃ、見れないですね
Avatar
仕事にならん
Avatar
ずっとグルグル回ってる感じです
Avatar
デベロッパーツール見るとgraphqlというエンドポイントへのリクエストが503になってる
6:36 AM
はーもう
😭 1
Avatar
ほんとだ。何も見えませんね。全然、Operationalじゃない 🤔
Avatar
見れないですね。ローディング インジケータがグルグル回ってます。 (edited)
Avatar
https://www.fabric.io/あかうんと/ios/apps/ばんどるID/dashboard ここ直うちしたら見れた
6:41 AM
fabric.ioにアクセスするとCrashlyticsのページにリダイレクトされてそこのAPIが死んでるっぽい
Avatar
おぉ、ホントだw
Avatar
FabricのMacクライアントからログインすら出来なくてこまった。
Avatar
Twitter の公式アカウント( @fabric )に連絡だ!と思ったら、hiragram さんがすでにしていた
Avatar
@fabric https://t.co/0U2p4OnZGx says dashboard is operational but actually not working. /graphql is not responding
👌 1
👍 1
Avatar
復活しましたね。
Avatar
Welcome to Fabric's home for real-time and historical data on system performance.
7:29 AM
いまさらstatusが落ちてるよになりましたね
😅 1
7:29 AM
いまoperationalにもどりましたね おっそいstatusページになんのいみがあるのか
😁 1
Avatar
vapor/mysqlにMySQLCapabilitiesとMySQLCapability(aka UInt32)ってのがあって これをOptionSetでまとめるプルリク出そうかと思ってるんですが命名はどうしたらいいとおもいますか? MySQLCapabilityでいいかと思うんですがもとは複数形と分かれてるのでちょっと迷ってます。
8:23 AM
mysql - 🐬 Pure Swift MySQL client built on non-blocking, event-driven sockets.
Avatar
omochimetaru 4/27/2018 8:24 AM
@t.ae #server-side チャンネルあるよ
Avatar
命名の話題だからこっちでいいかなと
Avatar
omochimetaru 4/27/2018 8:24 AM
なるほど
8:26 AM
UIControlEvents
8:26 AM
このあたりは複数形だね
Avatar
個々のケースはstaticメンバーになってるんですかね。 Capabilitiesが一つのみ含むというほうが矛盾は無いですね。
8:29 AM
AlignmentOptions ARHitTestResult.ResultType ARSession.RunOptions ARWorldTrackingConfiguration.PlaneDetection AU3DMixerRenderingFlags AudioBytePacketTranslationFlags AudioChannelBitmap AudioChannelFlags AudioComponentFlags AudioComponentInstantiationOptions AudioFileFlags AudioFileRegionFlags AudioFileStreamParseFlags AudioFileStreamPropertyFlags AudioFileStreamSeekFlags AudioQueueProcessingTapFlags AudioSettingsFlags AudioTimeStampFlags AudioUnitParameterOptions AudioUnitRenderActionFlags AUGenericViewDisplayFlags AUHostTransportStateFlags AUParameterMIDIMappingFlags AUScheduledAudioSliceFlags AUSpatialMixerRenderingFlags AuthorizationFlags AVAssetReferenceRestrictions AVAudioPlayerNodeBufferOptions
8:29 AM
下の方にいっぱい載ってた。
8:30 AM
型がOptionSetってことは、Setだから、集合の抽象化なので、複数形が良いんじゃないか。
Avatar
そうですね。そっちのほうでやってみます。
Avatar
WWDC留守番組のためのイベントみなさん何か行きますか
1:15 AM
報告会?みたいなのとか
Avatar
イベントとか登録されてから考えますけど、何かしら行くと思いますね。 あとは、WWDCリアルタイム翻訳付きのオールナイトイベントがあるならいくかも
Avatar
これ今年もやるっぽいよ https://yj-meetup.connpass.com/event/55682/
# ライブビューイングに同時通訳が入ることになりました!! ### WWDC Extended Tokyo 2017 をYahoo! JAPANにて開催致します!! # 『WWDC Extended』とは 『WWDC Extended』とは、Appleが行なっ...
👍 2
Avatar
おっ。
1:34 AM
たのしそう いこうかな
👍 1
Avatar
norio_nomura 5/5/2018 5:29 AM
VaporのチャットもDiscordへ移行したぽい。 https://medium.com/@codevapor/vapor-3-0-0-released-8356fa619a5d
Vapor 3 is officially here! We have been working hard on this release for more than six months now and we are incredibly excited to…
Avatar
@omochimetaru NotAutoLayoutをgysbで一部のコードを生成したいと思ってgysbをとりあえずbrewで入れてみましたが、生成したSwiftコード(--compileのやつ)をswiftファイルに書き込むにはどうすればいいでしょう?
Avatar
omochimetaru 5/13/2018 6:31 AM
@lovee gysb --render --write hoge.swift.gysb とするか
Avatar
あ違うか、そもそも--compile で作られたのは途中のものか… 🤔
Avatar
omochimetaru 5/13/2018 6:31 AM
--source-dirs Sources とするのが簡単です
6:31 AM
再帰的に探して全部変換します
Avatar
ありがとうございます、ちょっと研究してみます
6:34 AM
@omochimetaru ちなみに、これは例えばこの部分をこのファイルに、別の部分の別のファイルに書き込む、というのはできないですよね?
Avatar
omochimetaru 5/13/2018 6:36 AM
できないです。 .gysb.swiftが.swiftに1:1対応します
Avatar
ですね、サンプル見て気づきました
6:41 AM
となると、複数の型に対し、同じプロトコルの拡張対応を書きたいときは、プロトコル単位で書く必要がありますよね
Avatar
omochimetaru 5/13/2018 7:02 AM
詳細によりそう。 一つのgysbの中に複数の型の複数のプロトコル対応を書くことはできます。
7:03 AM
それか、元々の型の定義自体もgysbに書いてしまうこともできますね
Avatar
複数の型に複数のプロトコル対応というより、今現在のつくりは一つの型の中で全てのプロトコル対応作ってましたので、簡単にコードにするとこんな感じです struct A {} extension A: Y {} extension A: Z {} struct B {} extension B: X {} extension B: Z {} struct C{} extension C: X {} extension C: Y {} これをgysbで作るとなると、A、B、C作った後にX、Y、Zを別ファイルで作る必要がありそうだなと思いました (edited)
Avatar
omochimetaru 5/13/2018 7:13 AM
元々の作りではA,B,C,X,Y,Zの6ファイルですか?
Avatar
元々の作りはABCの3ファイルだけです
7:23 AM
あ、XYZは定義だけは別ファイルにはありましたが
Avatar
omochimetaru 5/13/2018 7:25 AM
なるほど。 A+X.gysb.swiftを作らずに、 A.gysb.swiftで全部書くという手もありますよ。
Avatar
それはもちろん可能ですが、難しいのはYとZの対応が別々でかけないとなると、逆にメタプログラミングの意味がなくなってるところですね… 🤔
Avatar
omochimetaru 5/13/2018 7:31 AM
なるほど
Avatar
例えばこの二つのファイル: https://github.com/el-hoshino/NotAutoLayout/blob/master/NotAutoLayout/NotAutoLayout/LayoutMaker/IndividualProperties/3-Element/BottomCenterLeft.Individual.swift https://github.com/el-hoshino/NotAutoLayout/blob/master/NotAutoLayout/NotAutoLayout/LayoutMaker/IndividualProperties/3-Element/BottomCenterRight.Individual.swift 両方とも LayoutPropertyCanStoreMiddleToEvaluateFrameType というプロトコルに対応しているのですが、中身がほぼ同じでちょっとだけ変わってるので、こういうところをメタプログラミングでやりたい
NotAutoLayout - Layout your views without Auto Layout constraints, in a much more swifty way.
NotAutoLayout - Layout your views without Auto Layout constraints, in a much more swifty way.
Avatar
omochimetaru 5/13/2018 7:45 AM
なるほど
Avatar
omochimetaru 5/15/2018 3:47 AM
Discordのオフラインメンバーリストが見えるようになりましたね。
3:50 AM
5.14アップデート履歴も面白いなあ。
3:51 AM
これだからディスコードの運営すこ
Retweets
1052
Likes
728
Avatar
画面共有に音声が流れるようになった。 ゲンジが後ろから忍び寄ってきたとき、これからはフレンドが「うしろうしろー」と叫んでくれるはず。
3:51 AM
日本に理解ありすぎる文だ…
🙌 1
😂 1
Avatar
英文だと >Now your friends can yell at you to kill the Genji behind you. となっているので、いつものことながら元の文章の面白さにプラスして和訳者のセンスが光っているように思います。 ところで『ゲンジ』って誰なんだろうかと思っていたのですが、ゲームのキャラクターなのですね。
Avatar
omochimetaru 5/15/2018 4:36 AM
うしろうしろー、は和訳で足してるのか〜
5:34 AM
Overwatchなのか。
Avatar
omochimetaru 5/15/2018 5:34 AM
ですね
Avatar
Kishikawa Katsumi 5/16/2018 11:38 AM
https://yj-meetup.connpass.com/event/87959/ WWDCをみるイベント、公開されてましたよ。
# ライブビューイングは同時通訳つきです! # WWDC について WWDCは、Appleが行なっている技術者向けカンファレンスです。 カリフォルニア州サンノゼで、日本時間の6月4日26時から行...
11:38 AM
同時通訳はすごいな。
Avatar
公開したので来てください。わいわいしましょう!
🙌 4
Avatar
color assets上手に使う方法がいまいちピンとこない
7:52 AM
assetに色追加する→その色をIBで使う→assetからその色消す ってしてもIB側はmissingと言いつつしれっとその色そのまま使えちゃうのがなーって感じています
7:52 AM
「そんな色はない」と怒ってほしい
Avatar
warningは出るの?
Avatar
omochimetaru 5/17/2018 9:32 AM
xcassetにcolor追加しても、なんかIDE上でcolor literalの補間がうまくでてきれくれなかったから
9:33 AM
諦めて UIColor(named: "color-name")! って書いてた
9:33 AM
名前変えたら壊れる
9:34 AM
image literalはうまく出てきたから コードにimage literalで入れられたんだけど、 @hiragram はcolor literal自体は置けたってこと?
Avatar
名前指定で color literal を書く方法がないので、現状出来ないと思いますよ。
Avatar
Named Color、サポートosの都合上使えてないんですがあんまり幸せじゃなさそう
Avatar
color literalは今回は関係ないかな
Avatar
omochimetaru 5/18/2018 3:04 AM
@rintaro あ〜、カラーリテラルはカラーコードを書けるだけで、リソース名の形式は無いんですね。そういうことか。
Avatar
color literal調べてみた ソースコード上は#colorLiteral(red:green:blue:alpha:)なのが パース中に_ExpressibleByColorLiteral(_colorLiteralRed:green:blue:alpha:)に変換されて さらに_ColorLiteralTyp(_colorLiteralRed:green:blue:alpha:)に変換されて SDKによって public typealias _ColorLiteralType = NSColorpublic typealias _ColorLiteralType = UIColor が適用されて最終的に NS/UIColor(red:green:blue:alpha:) が使用される感じ? わけが分からない
Avatar
omochimetaru 5/18/2018 8:30 AM
_ExpressibleByColorLiteral から _ColorLiteralType になるのは 123 が 型推論で Int になるのと同じ挙動かな?
Avatar
WWDCのセッションの動画って、どれくらいのタイミングでオンラインに上がってくるものでしたっけ?
8:58 AM
すぐなのか、数日後なのか、数週間後なのか、みたいな
Avatar
Kishikawa Katsumi 5/22/2018 9:01 AM
最近はすぐ見られるんじゃなかったかな。向こうにいるより日本にいる人の方が新しいのを試すのは全然早かった
9:01 AM
感じ。
Avatar
昨年だと 3-4 日後にはだいたい上がってましたねー(自分のツイートより)
Avatar
去年の記憶でいくと、資料はほぼリアルタイムで見れてましたね。一方でセッションのビデオは数時間?数日くらいの間があってあがってた記憶。
Avatar
数日か。
9:04 AM
ありがとうございます
Avatar
楽しみだな〜
Avatar
実際リンク貼られるまで間があったけど、pdfからセッション番号特定してリンク書き換えたらビデオDLできたので、upload自体はもうちょい早いかも
😃 1
Avatar
なんだそれw
Avatar
なんとw
9:07 AM
upload後、さらに1週間ぐらい経つと、動画に字幕がつき始めた記憶が
Avatar
再生ってSafari縛りでしたよね?
Avatar
Safari縛りですね
Avatar
あとはiOSアプリ?
9:09 AM
WWDCの。
Avatar
Kishikawa Katsumi 5/22/2018 9:09 AM
ストリーミングはそう。
Avatar
それが嫌で仕事中シコシコDLしてたあの夏…
Avatar
去年WWDCから帰る前、飛行機で見るためにシコシコDLしてた
✈ 1
Avatar
## わいわいしながらWWDCをゴリゴリキャッチアップ! Appleが毎年開催するWWDC 2018では、iOS, macOS, watchOS, tvOSおよびその周辺技術について、たくさんの最新情報が公開されます。 毎年この時期になると、エン...
🦍 8
Avatar
ゴリラは困惑している
Avatar
Devアカウント課金勢しか入れないNDA気にしなくていい部屋欲しい
👍 1
Avatar
わかる
Avatar
omochimetaru 6/6/2018 1:39 AM
@hiragram できたかな
Avatar
Apple Developer Program加入者だけが入れるプライベートチャンネルを作ってもらったので、加入してる人は僕に声かけてもらえればチャンネルに招待します。
1:50 AM
「本当に加入しているか」を確認するすべはないけどそこは性善説でやろうな
1:51 AM
DevProgram加入者しか見れない場所だったら、β版のスクショとかも絡めて議論ができるはず。
1:53 AM
DMだと若干手間なことがわかったのでここでアッピルしてくれ
🙋 11
Avatar
@hiragram はーい!招待お願いします! (招待依頼でコメ流れるな…) (edited)
Avatar
#general あたりにピンどめも必要ですね
Avatar
emoji reactionよりmentionもらったほうがワンタッチで権限追加できて便利だがチャットが荒れる
1:55 AM
1:55 AM
ユーザー名右クリで追加行けるので
1:56 AM
zatsuなので許容してほしい
1:57 AM
1:57 AM
絵文字つけても4人目以降だれだかわからんのでmentionください
Avatar
@hiragram 招待お願いします。
✅ 1
Avatar
@hiragram 招待お願いします
✅ 1
Avatar
@hiragram 招待お願いします!
✅ 1
Avatar
norio_nomura 6/6/2018 2:30 AM
@hiragram よろ
✅ 1
Avatar
@hiragram
✅ 1
Avatar
@hiragram
✅ 1
Avatar
@hiragram ノシ
✅ 1
Avatar
@lovee @hironytic 遅くなった。対応しました。
😘 1
Avatar
@hiragram
✅ 1
Avatar
@hiragram🙋
✅ 1
👍 1
Avatar
@hiragram🙏
✅ 1
Avatar
norio_nomura 6/6/2018 5:38 AM
swift.orgからのダウンロードが死ぬほど遅い…
Avatar
@hiragram
✅ 1
Avatar
@hiragram 招待お願いします
✅ 1
Avatar
@hiragram ノシ
✅ 1
Avatar
yutailang0119 6/6/2018 7:05 AM
@hiragram 見てなかった、入れて
✅ 1
🙏 1
Avatar
@hiragram🙇
✅ 1
Avatar
@hiragram 招待お願いします。Developer program 加入者です。 (edited)
✅ 1
Avatar
@hiragram 招待お願いします!
Avatar
いまMacないからできない…
10:29 AM
@omochimetaru 対応できませんか
Avatar
@hiragram 招待お願いします!
Avatar
omochimetaru 6/6/2018 10:43 AM
@frnk @hiragram @tamaki 対応しました。
🙏 2
Avatar
@hiragram 招待お願いします🙏
✅ 1
Avatar
足立晃一 6/6/2018 11:05 PM
@hiragram 私も招待お願いします!
✅ 1
Avatar
@hiragram 招待お願いします!
✅ 1
Avatar
通勤中なのでお待ちを〜(スマホからできないっぽいので)
👌 1
Avatar
@hiragram 招待お願いしまーす🙏
✅ 1
Avatar
@hirothings @足立晃一 @hirobe @mt.hodaka done
🙏 3
Avatar
元のやつが流れてしまってるので再掲ですが、apple-devチャンネルへの招待はDeveloper program加入者だけですよ〜気をつけてね〜
Avatar
@hiragram お願いします 🙏
✅ 1
Avatar
@hiragram おねがいします🍓
✅ 1
Avatar
@hiragram お願いします💫
✅ 1
Avatar
@hiragram 招待おなしゃす
✅ 1
Avatar
@mono すみません、LicensePlistについてお聞きしたいのですが、CocoaPodsで入れると自動生成されたものにはLicensePlistも入りますが、HomeBrewで入れるとLicensePlistは自動生成で入らないようですがこれは仕様でしょうか?そしてHomeBrewで入れるものに関して他に対処する方法はありますでしょうか?(例えばHomeBrewで入れたSwiftLintとか
Avatar
@lovee LicensePlistはアプリに同梱されるフレームワークではなくツールなので、ライセンス一覧へのLicensePlist自体の記載は任意のつもりです(解釈があっているか分かりませんが)。ただ、確かにCocoaPods経由だと入りそうですね、これは特に意図した挙動ではなかったですが、自然とそうなりました。 どのインストール方法でもLicensePlistをデフォルトで含めるのはちらほら要望があるので https://github.com/mono0926/LicensePlist/issues/59 にていつか対応しようかなと思っていました。
そしてHomeBrewで入れるものに関して他に対処する方法はありますでしょうか?(例えばHomeBrewで入れたSwiftLintとか
以下に従えばできるはずです。
(edited)
LicensePlist - A license list generator of all your dependencies for iOS applications
LicensePlist - A license list generator of all your dependencies for iOS applications
Avatar
@mono ありがとうございます!参考にします
👍 1
Avatar
@hiragram
✅ 1
Avatar
てぃがー 6/7/2018 7:12 AM
@hiragram 招待おねがいします!!!!!!
java 1
Avatar
@hiragram 招待お願いしますm( )m
✅ 1
🙏 1
Avatar
@hiragram 招待おねがいします!
✅ 1
Avatar
@hiragram 招待おねがいします!
Avatar
@hiragram 招待お願いします 🙏
Avatar
帰宅中なのでお待ちを〜!!!
Avatar
omochimetaru 6/7/2018 3:09 PM
@tanako8031 @gin0606 @hiragram 対応しました。
🙏 1
swift 1
Avatar
@hiragram 招待お願いします🙏
☑ 1
Avatar
@hiragram 招待お願いしますm( )m
☑ 1
Avatar
@omochimetaru ごめん!!!昨日たいおうありがとう!”!
Avatar
@hiragram 招待お願いします🙏
☑ 1
🙏 1
Avatar
@hiragram 招待お願いします🙇
☑ 1
Avatar
omochimetaru 6/8/2018 5:06 AM
@hiragram readonlyなreadmeチャンネルを作って、apple-devについて記載しておいた。
Avatar
@omochimetaru thx
Avatar
omochimetaru 6/8/2018 5:09 AM
ちゃんとreadonlyになってる?
5:09 AM
自分からはわからん。
Avatar
なってる
Avatar
omochimetaru 6/8/2018 5:11 AM
よし
Avatar
coremlチャンネルほしいかも
6:45 AM
@omochimetaru
Avatar
omochimetaru 6/8/2018 6:45 AM
machine-learning?
Avatar
あ、それがあるか
6:46 AM
thx
Avatar
omochimetaru 6/8/2018 6:46 AM
いや いまはないよ
Avatar
あ、ないか
Avatar
omochimetaru 6/8/2018 6:46 AM
どっちがいいかなと
Avatar
MLそのものというよりはcoremlの使い方的な質問がしたかった
6:46 AM
既存のチャンネルだとどこじゃろ
Avatar
omochimetaru 6/8/2018 6:46 AM
既存だと 微妙
Avatar
ios?
6:46 AM
よね
Avatar
omochimetaru 6/8/2018 6:46 AM
Macもからむw
Avatar
よね
Avatar
omochimetaru 6/8/2018 6:47 AM
coremlつくるか。
Avatar
AppleAPI全般的な質問できる場があってもいいのかも?
Avatar
omochimetaru 6/8/2018 6:47 AM
作った
6:47 AM
そうですねえ > AppleAPI全般的
6:47 AM
名前何がいいかな。
Avatar
uikitとかあるし個別のフレームワークでええんちゃう?
Avatar
omochimetaru 6/8/2018 6:50 AM
全部作るのはめんどくさい
Avatar
必要に応じてかな
6:51 AM
まあswiftチャンネルに相当する奴があってもええかもな
Avatar
omochimetaru 6/8/2018 6:51 AM
まあzatsuもあるしいいか
Avatar
かな
Avatar
omochimetaru 6/8/2018 6:51 AM
またなにか思いついたら教えてください
🙇 1
👌 2
Avatar
#arkit と #metal くらいはあってもいいかも。
Avatar
omochimetaru 6/8/2018 8:00 AM
足しました
🙏 1
Avatar
招待お願いします!@hiragramさんに直接DMでお願いしてしまいました🙇
☑ 1
🙇 1
Avatar
@hiragram 招待お願いします!#readmeを見て私もDMもしてしまいました😅
☑ 1
Avatar
@yokoya-s @mego done! おそくなりました
🙏 1
🙇 1
Avatar
ありがとうございます!
Avatar
omochimetaru 6/10/2018 1:48 PM
@hiragram readme修正する?
Avatar
(ここでやるんだったか....(DMしてしまった
Avatar
omochimetaru 6/10/2018 1:49 PM
あとzatsuで依頼するのも長期化すると邪魔だよね
Avatar
まあ大差ないのでええですよ
Avatar
omochimetaru 6/10/2018 1:49 PM
WWDC終わったけど運用は残すよね?
Avatar
ベータがベータであるうちはNDA気にしないといけないしね
Avatar
(DMしてしまった)
☑ 1
Avatar
@hiragram どう証明すればいいかわかりませんが、招待お願いします。
☑ 1
Avatar
@hiragram 遅くなってしまいましたが、招待をお願い致します…!
✅ 1
Avatar
@hiragram 招待をお願いいたします!m( )m
☑ 1
Avatar
@hiragram 招待お願いします!
Avatar
Yusuke Shigetani 7/11/2018 12:59 PM
@hiragram 招待お願いします🙇
Avatar
@hiragram 招待お願いします🙏
Avatar
[WIP] のままマージされてる。 WIP よく使うし、 GitHub は WIP を機能化した方がいい気が・・・。 https://github.com/apple/swift/pull/16983
Enables local refactoring on a class declaration to generate member wise initializer Resolves SR-7292.
Avatar
omochimetaru 7/27/2018 5:12 AM
たしかに。
Avatar
こういうのあります https://github.com/apps/wip
GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over 85 million projects.
👀 3
😃 1
Avatar
あとGitLabには標準でその機能あったと思います
Avatar
Kishikawa Katsumi 7/27/2018 10:15 AM
GitLabはマージ済みブランチを消す機能だったり意外と細かい機能がGItHubより便利だったりしますね。
Avatar
あと、CI 通ったら自動で merge するやつも便利でした。あれ GitHub にも欲しい
Avatar
Kishikawa Katsumi 7/27/2018 10:16 AM
WIPもマージ済みブランチもCI 通ったら自動で merge も毎回Bot作ってる気がするな。
10:16 AM
BotもしくはCI
Avatar
なんだかんだ言って、Jenkins やるぐらいなら GitLab CI runner の方が簡単な事多かったですね。認証機能とかもプラグインとかいらなかったですし、Merge Request とも勝手に結びついてくれていた。
10:17 AM
その点、Jenkins は地獄を見るので。。。
Avatar
Kishikawa Katsumi 7/27/2018 10:18 AM
Jenkinsの面倒を見るのはまあ最後の手段ですね。 デベロッパー向けツールを作っている、とかでなければ常に最新のベータ版を動かすこともないし。。。
10:18 AM
デベロッパー向けツールを作っている、のであればJenkinsマスターがチームに必要。。。
Avatar
ハイスペックのマシンを占有したいケースでは、依然として Jenkins が便利だというのが今の所のニーズだと思ってます
Avatar
Kishikawa Katsumi 7/27/2018 10:19 AM
よほどじゃなければ、自動化されてるならいつかは終わるんで、その間に別のことしたらいいやん、と私は思うんですが、意外と少数派らしい。
Avatar
結構よほどな感じなんですよね、外から見てると。
Avatar
Kishikawa Katsumi 7/27/2018 10:20 AM
CIの時間がかかるのは全然気にならないんで手元では面倒でやらないことを全部やる派。
Avatar
あ、あと Unity とかが関わってくると Jenkins になりがちですね
Avatar
Kishikawa Katsumi 7/27/2018 10:21 AM
なるほど!Unity環境で使いやすいCIサービスを作ったら世界がとれそう?
10:22 AM
どれだけユニットテストが書かれてるか知らないけど。
Avatar
一応 UnityColud というのがあるんですが、これが非現実的な制約を持っていて、それでみんな Jenkins に逃げているのが実情のようです
Avatar
Kishikawa Katsumi 7/27/2018 10:22 AM
Unityが推奨するその辺がいまいちというのはよく聞きますね。
Avatar
単体テストは比較的簡単ですね。ただ、Unity のランタイムを関わらせてしまうとビルドが重くなるので、ドメインは NUnit だけでテストできるようにするみたいな Android と同じテスト事情になっているようです
Avatar
Kishikawa Katsumi 7/27/2018 10:23 AM
興味深いですね。
Avatar
Metalに関するdiscordもしくはslackのチャンネルとかはありますか?
Avatar
omochimetaru 8/7/2018 3:44 AM
#metal チャンネルがありますよ
Avatar
ありがとうございます!
Avatar
8月9日朝方、Appストアからギャンブル系アプリが大量削除され、プチ騒動が起こっております。
6:20 AM
多分レーティングにギャンブル入れてて個人開発者だとやられるのかも (edited)
Avatar
sonsonさんのもこれかな
Avatar
Twitterで2tchやられた言ってましたね 事前通告欲しいところ…
Avatar
daisukeokaoss 8/15/2018 9:39 AM
すいません、Swiftで、全くのプログラミング初心者に教えることになったんですが、いい本あるでしょうか?
9:41 AM
全くのプログラミング初心者から、iOSアプリ作れるところまで最終的には到達したいんですが
Avatar
daisukeokaoss 8/15/2018 10:24 AM
すいません聞いてばっかりで
Avatar
@daisukeokaoss 僕は知らないです。なので、自分で作りたいとは思っています😅
Avatar
daisukeokaoss 8/16/2018 1:26 AM
なるほど、ありがとうございます。ちょっと探して見ます
Avatar
omochimetaru 8/16/2018 1:32 AM
言語だけなら石川さんの本が良さそう [改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus) 技術評論社 https://www.amazon.co.jp/dp/477419414X/ref=cm_sw_r_tw_awdo_c_x_SpnDBb72KE1XM @amazonJPさんから
Amazonで石川 洋資, 西山 勇世の[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)。アマゾンならポイント還元本が多数。石川 洋資, 西山 勇世作品ほか、お急ぎ便対象商品...
Avatar
うーん、 Swift の入門書としてならいいけど、プログラミング未経験者となるとちょっと違いそう。 (edited)
1:42 AM
かといって、世に存在するプログラミング入門書も、 9 割の人は挫折すると思う。
Avatar
daisukeokaoss 8/16/2018 3:16 AM
@omochimetaru さん @koher さん プログラミング未経験って、何から学べばいいんですかね?やっぱりC言語?
3:16 AM
ありがとうございます
Avatar
omochimetaru 8/16/2018 3:17 AM
Swiftから学ぶのが良いと思います
Avatar
マジレスすると一番先に学ぶべきはモチベーションやプログラムの楽しさ、成功と成長の体験だと思います。
👍 4
Avatar
daisukeokaoss 8/16/2018 3:19 AM
なるほど、プログラミングの楽しさですか
Avatar
言語は何でも良い、swiftは記法とかで苦痛を感じるところが少ないので良いです
3:19 AM
cは言わずもがな記法が辛い
3:20 AM
辛さ>楽しさになった瞬間に終わりなので、苦痛の少ない言語が良いですね。swiftはそういう意味でとても良いです。
Avatar
omochimetaru 8/16/2018 3:20 AM
僕が初心者だったらこれやりたい 楽しそう https://prog-8.com
Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。
Avatar
daisukeokaoss 8/16/2018 3:22 AM
というか皆さん、プログラミングって初心者の頃どう学ばれました?僕は専門学校だったからある程度教えてもらえましたが
3:23 AM
辛さ>楽しさ でも、マゾヒスティックな快楽が・・・・・・・・
Avatar
omochimetaru 8/16/2018 3:25 AM
技術書買って読んでましたね 15年前ですが
3:25 AM
今ほどインターネットが便利じゃなかった。
Avatar
Kishikawa Katsumi 8/16/2018 3:26 AM
言語だけを勉強するのは一般的には容易じゃないので、iOSアプリ、という具体的な話があるのでしたら、Swiftで何か作っていく、というのはかなりベストな学習法だと思います。
Avatar
僕は小学生のときにRPGが作りたくて、父親が古いPCとこの本をくれてプログラミング始めました。
Avatar
daisukeokaoss 8/16/2018 3:29 AM
BASICですか!
Avatar
20 年以上前なので。
3:31 AM
具体的に何かを作りたいものがあって学ぶとよいというのは僕も同意で、僕の場合それが RPG でプログラミング基礎の学習にとてもよかったので、それを Swift で追体験できるものを作ろうと考えています。
Avatar
daisukeokaoss 8/16/2018 3:31 AM
なるほど、何か作りたいものがあって学ぶ
Avatar
作れるようになるかはわかりませんが、今なら↓の Learn to Code の日本語版もありますね。 https://www.apple.com/jp/swift/playgrounds/
Swift Playgroundsは、楽しくインタラクティブな方法でSwiftのコードの書き方を学べるiPad用のアプリケーションです。アプリケーション上で直接ロボットやドローンを動かすプログラムを作れます。
3:32 AM
僕は Swift Playgrounds アプリは操作感が好きではないですが。
Avatar
Kishikawa Katsumi 8/16/2018 3:34 AM
本については、とりあえずそのまま写すだけでも何かデバイスで動くものができあがる、というサンプル中心のがいいんじゃないですかね。本屋で実際に眺めてそういうのを選ぶのをオススメします。できれば最新のXcodeに対応していてその辺のトラブルがないやつ。
3:35 AM
こないだから妻がUnityの本を買って写経しているけど、やっぱりそれで作ったものが動くとか遊べるっていうのはモチベーションになるんだなあと思って見ています。
3:36 AM
そういう意味でいうと多少表現が正確でないとか技術的に厳密でないという点があってもよほどじゃなければ気にしなくていいかなと。
Avatar
daisukeokaoss 8/16/2018 3:37 AM
Unityとか面白いですよね。とりあえず動くやつですか。検討します
Avatar
個人的には、アプリ作るのであればどんなアプリを作るかの段階から一緒に考えていくのがいいと思います。 そこからとりあえず動くもの作って、その後で「自分が作りたいから、自分が同じコード書くのが億劫になって来たから、自分が書いたコードに混乱して来たから」という課題が出て来た段階でそれぞれ解決する手法を学べばいいんじゃないかなぁと 教材はその辺りの興味をある程度犠牲にして効率化しているものだと思っていて、興味を持って継続的に書いていくか、最短で基礎まで持っていくかの要件によって学習の選択肢は変わってくる気がします。
Avatar
一年ぐらい前に 新人iOSエンジニア育成ガイドライン と題してLTをしたことがあったので、その資料を貼っておきます。 https://speakerdeck.com/d_date/xin-ren-iosenziniayu-cheng-gaidorain 本についてはその当時出ていたものからチョイスしたので、今はもう少し選択肢があるのかもしれませんが、 1冊目はプログラミング経験ゼロ向け(ただしこの本は現在改訂されてません…) 2冊目はプログラミングの経験が多少ある人がiPhoneアプリを作る向け(これは現在も改訂されています) 3冊目はSwiftの文法を深く理解しながら、後ろの方にあるAPI ClientのサンプルをCLIからiOS アプリに組み替えるというのをやってもらいました それぞれの本で習得してもらいたいことも書いておいたので参考にしてください。 その後、こちらから指定した要素を入れたオリジナルのアプリを作ってもらうというカリキュラムでしたが、何を作ってもらったかは覚えていません😇 本に答えがないものはPRを出してもらって、こちらでレビューしたり、ヒントを与えたりしていました。 ゴールは、作りたいもの、追加したい機能、不具合が出てきたときに、自力で検索して答えを探せる状態を作ることでした。 (edited)
3:46 PM
(アイコンなつかしい)
Avatar
Kishikawa Katsumi 8/16/2018 4:08 PM
作りたいもの、追加したい機能、不具合が出てきたときに、自力で検索して答えを探せる状態を作る
これは良いゴールですね。
Avatar
daisukeokaoss 8/17/2018 12:07 AM
おーなるほど、ありがとうございます (edited)
12:10 AM
>その後で「自分が作りたいから、自分が同じコード書くのが億劫になって来たから、自分が書いたコードに混乱して来たから」という課題が出て来た段階でそれぞれ解決する手法を学べばいいんじゃないかなぁと これちょっと僕の習得したやり方と似てますね (edited)
Avatar
自分が初学者のころは小難しい分厚い技術書をとにかく敬遠していてネットに転がってる誰かが書いた小さいサンプルコードをパクりまくってやりたいことをなんとなくやってたので、そもそもコレのググり方がわからんみたいなときに適切なクエリをポッと教えてくれるメンターみたいなのがいたら嬉しかったなという経験があります
2:41 AM
と思ったらめっちゃ前の話題だった 忘れてくれ
Avatar
vapor discordで投稿リンクの貼り方が流れてた grundoon今日 午前5時31分 In the Discord app, turn on Preferences -> Appearance -> Developer Mode to enable a menu item that will allow you to reference posts by link.
👀 1
Avatar
朗報
12:18 AM
https://discordapp.com/channels/291054398077927425/291054398077927425/291058695201226756 リンクをコピーできるようになった、すごい
12:19 AM
でもモバイル版だとジャンプが効かないですね
Avatar
Vapor Discordで投稿リンクについて書かれた投稿へのリンクを貼ってみる。 https://discordapp.com/channels/431917998102675485/477945457667211265/484097723105148928 (edited)
12:30 AM
お、SafariでもDiscord内の検索が出来る様になってる。検索するためだけにDiscordappを起動する必要がなくなった。
Avatar
vapor discord参加してない場合はどうなるんですかねそれ
Avatar
モバイル版でも、初期ロード分に含まれる投稿へはジャンプしますね。 過去へ遡って取得しないといけないリンクは効かない。 サーバーが違っても大丈夫。 未参加のサーバーは不明。
Avatar
未参加サーバーはDiscordTopに飛びます
12:37 AM
エラーや参加サジェストはなし
Avatar
ならサーバーまたぐ場合は引用文も書いとくのが良さそうですね
👉 1
Avatar
Kishikawa Katsumi 9/21/2018 5:42 AM
5:42 AM
@d_date により発見されました。設定画面のLandscapeでテーブルビューのスワイプアクションが崩れている。
👀 1
5:43 AM
5:43 AM
上はXS Maxで下は8 Plus。8 Plusは壊れてなさそうですが、左に持っていった部分がはみ出てしまっています。
5:45 AM
さてどのような実装でおかしくなっているのでしょうか? 私はAutoLayoutのTrailingマージンはマイナスにしなければならないところを間違えて正の値を入れてしまっているんじゃないかと思っています 🤪
Avatar
Safe Area関係でぶっ壊れてそうですけど、スワイプしたときの左端もおかしい🤔
Avatar
Kishikawa Katsumi 9/21/2018 5:54 AM
シミュレータでちゃんと再現するというのはとても良い😝
Avatar
omochimetaru 9/21/2018 6:06 AM
iPhoneSEだとそもそもランドスケープモードが無かった
6:07 AM
iPhoneだとプラス系から?
Avatar
Kishikawa Katsumi 9/21/2018 6:07 AM
Plus、Maxサイズ、あとiPadですね。シミュレータで再現できます。問題は自分のアプリで使ってもそうなるかどうか。。。
🙄 1
Avatar
iPad Proは大丈夫だった。deleteの左端のはみ出しもない (edited)
Avatar
Kishikawa Katsumi 9/21/2018 6:07 AM
ただ、角丸のグループスタイルのテーブルビューは設定.appだけなので大丈夫な気はする。
6:08 AM
グループスタイルを角丸にするのはやめとけという話でもあります。
Avatar
norio_nomura 9/21/2018 1:15 PM
Discordのチャンネル一覧、カテゴリを折り畳んでても未読チャンネルは表示される。
1:16 PM
今カテゴリに入ってなくて折りたためないチャンネルが沢山あるので、iOSとかでチャンネル一覧をスクロールするのが面倒。
1:17 PM
それらも何かのカテゴリに入れてもらえると、チャンネル一覧が使いやすくなりそう。
Avatar
omochimetaru 9/21/2018 1:24 PM
なるほど。何がいいかな・・・
Avatar
omochimetaru 9/21/2018 1:40 PM
とりあえず main カテゴリにまとめました。
👍 1
Avatar
@kotowo おそらく意図せずに音声チャットに入ってしまっている気がします。意図してならいいのですが、意図せず入ってしまっていると音声がダダ漏れになってしまっている可能性があるのでご注意下さい。
Avatar
失礼しました。ご指摘ありがとうございます。
🙂 1
Avatar
https://developer.apple.com/app-store/marketing/guidelines/#section-products 公式のデバイスアートワークなどあったの知らなかった。
👍 2
Avatar
Codableに適当に値入れてインスタンス作るMockingライブラリみたいなものってありましたっけ…? どこかでみた気がしたのですが
Avatar
前にGithubのfeedでリポジトリを見た気がするのでこれではなさそうなのですが、やろうとしていることはこんな感じでした!ありがとうございます!
3:07 AM
Draggable Annotations、ズームボタン隠れてる…
Avatar
CocoaPods のサーバーが死んでますね。。。 trunk push したら 500 帰ってきます
Avatar
b3ce0c9b74d72110d0130f0cd7d4a5cf350b64e3swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-19-aタグに含まれるのだけど、コミットページに載ってない。GitHubで不具合起きてる? https://github.com/apple/swift/commit/b3ce0c9b74d72110d0130f0cd7d4a5cf350b64e3
Avatar
もしかして、GitHubのコミットページでコミットを含むタグが表示されるのって、masterブランチに含まれるコミットだけ? 🤔 (edited)
7:37 AM
そうだったらしい。知らなかった。 https://help.github.com/articles/commit-branch-and-tag-labels/ Once the commit is on the default branch, any tags that contain the commit will be shown and the default branch will be the only branch listed.
Avatar
apple-devチャンネルへの招待ですが最近NDAに抵触する話題が全然無くチャンネルほとんど動いてないので招待リクエスト一旦締め切ります また来年NDA話題が出てきたらやりましょう
Avatar
ご無沙汰してます、佐野です。先ほど僕の論文が arXiv で公開されました。iOSDC の LT で話した奴です。 Rasmussen invariant and the divisibility of Lee’s class https://arxiv.org/abs/1812.10258 プログラムの改善に関して皆さんに助けて頂きましたので、ささやかながら謝辞でお礼をさせて頂きました☺️ プログラムは脚注にチラッと URL を載せた程度ですが、数学の論文に Swift のプログラムが載るのは初めてのことなんじゃないかと思います😂 改めてご協力して下さった皆さん、ありがとうございました🙇‍♂️
We define a link invariant $s'_c(L)$ by a combination of some classical properties of its diagram $D$, and the $c$-divisibility of a specific class (generalized Lee's class) in the Khovanov-type...
🎉 12
2:14 AM
Avatar
おおお疲れ様です!謝辞に載ってるw
😆 1
Avatar
Mediumのアプリ入れてないと開け内っぽい
Avatar
omochimetaru 1/23/2019 1:33 AM
こんにちは、今日もニコニコ月給5万円(実話)のところてんです。取締役って労働時間の上限がないし、給与も支払わなくていいのでとっても便利ですね。
1:34 AM
これ、Discordにニュースみたいの貼るやつみたいに、Swiftコミュニティで使ったら便利そうじゃないですか? (edited)
👀 1
Avatar
はてぶ 4 Enterpriseみたいな感じですかね
Avatar
omochimetaru 1/23/2019 2:08 AM
うん
2:09 AM
あと、はてぶだとすごい広い世界観でバズったものしか浮上しないけど
2:09 AM
スコープが限られてるから、はてぶには上がらないけど界隈では興味が持たれる話題、が
2:09 AM
流れる場所ができて便利そうと思った
Avatar
@omochimetaru #readme にこれ貼っといて欲しい apple-devチャンネルへの招待ですが最近NDAに抵触する話題が全然無くチャンネルほとんど動いてないので招待リクエスト一旦締め切ります また来年NDA話題が出てきたらやりましょう
9:29 AM
たまにくるので
Avatar
omochimetaru 2/20/2019 9:30 AM
これでいい?
👌 1
Avatar
来年ではなく今年では。
Avatar
今年ですね(過去のメッセージをコピペした)
10:03 AM
まあ通じるのでいいでしょう。
Avatar
1文字なので直しといたw
Avatar
thx
Avatar
norio_nomura 4/1/2019 3:54 AM
Discordが勝手にダークテーマになって最悪だ 😞
Avatar
omochimetaru 4/1/2019 11:29 AM
4/1かw
Avatar
norio_nomura 4/1/2019 11:49 AM
あ、いつの間にか戻ってる
Avatar
5月2日 13時から池袋でSwift勉強会やります。もくもく形式です。主催者の僕はSNSアプリとゲームを作っています。情報交換しましょう! https://connpass.com/event/126826/
Swiftアプリの勉強会です。 XCodeがインストールされたMacBookを持参してください。 ■ 住所 東京都豊島区池袋2-35-2 AIC池袋402 ■ 最寄駅 副都心池袋駅 C6出口より徒歩4分 JR池袋駅 西口より徒歩8分 ■ Google Ma...
Avatar
Kishikawa Katsumi 4/18/2019 3:42 AM
https://github.blog/2019-04-17-custom-open-graph-images-for-repositories/ 待望のやつ。 たぶんリポジトリのリンクを書いたときに自分のアイコンがでかでかと表示されることがなくなる。
Today, we're introducing Custom Open Graph Images to all repositories on GitHub.com.
😆 3
😮 1
Avatar
norio_nomura 4/18/2019 3:49 AM
Social preview Upload an image to customize your repository’s social media preview. Images should be at least 640×320px (1280×640px for best display).
Avatar
Kishikawa Katsumi 4/18/2019 3:52 AM
でかいな。
Avatar
今晩は。よろしくお願いします
😃 1
Avatar
おはようございます。よろしくお願いします。 アプリ申請時にスクリーンショットを添付する必要がありますがみなさんどんなツールで作られてますか?今まではScreenshot designerというアプリを使って作ってたのですがiPhoneXsMaxのサイズに対応してなく。騙し騙しGIMP使って拡大したり加工してたりしてたのですがそろそろ疲れてきました。。。
Avatar
加工必要ないならSimulatorで各サイズのスクショ撮り、加工必要ならPixelmatorで弄ってますね
Avatar
ゴミ箱の次はチーズのおろし金
Avatar
norio_nomura 7/25/2019 1:54 AM
サーバーフォルダー機能って何だろう? https://twitter.com/discordapp_jp/status/1154202929147965440
Avatar
omochimetaru 7/25/2019 1:54 AM
左のサーバーリストをフォルダで整理する機能じゃないすかね?
1:54 AM
Discord流行ってきてたくさんのサーバーに入るようになってきてるし。
Avatar
norio_nomura 7/25/2019 1:54 AM
なるほど。
Avatar
Kishikawa Katsumi 8/3/2019 8:49 AM
Catalinaのbeta5でDiscordのアイコンがめっちゃ小さくなった 😫
🙄 1
8:50 AM
他にもLaunchPadからアプリが大量に消えたとかある。(実体は残ってるからセーフだけど不便)
Avatar
norio_nomura 8/3/2019 9:30 AM
VMware Fusionも仮想マシンのクリーンアップを実行すると、同様に小さくなります。 (edited)
Avatar
Kishikawa Katsumi 8/3/2019 9:32 AM
ええー、なんで小さくなるんだろう。
Avatar
norio_nomura 8/3/2019 9:33 AM
アイコンのカスタムレンダリング的な処理をするとバグるぽいですね。実際のAPIまでは知らないです。
9:35 AM
コマンド+タブで表示されるアイコンも小さくなる。
Avatar
Kishikawa Katsumi 8/3/2019 9:41 AM
なるほどー。
9:41 AM
確かにDockだけじゃなかった。
Avatar
それ rdar してある
4:31 PM
Mojaveからのバグ
Avatar
Kishikawa Katsumi 8/3/2019 4:41 PM
むむ、Catalinaのせいじゃないのか。まあ私もレポートしよう。珍しくわかりやすいバグだし。
Avatar
I have a really really, really tiny System Preferences app icon in the dock between Slack and Typora. 😂
8:36 PM
これ
Avatar
norio_nomura 8/3/2019 10:30 PM
VMware Fusionのアイコンが小さくなるのは、Catalina beta4までは起きてなかったですね。アイコンの縮小率も違うみたいだし、現象は似てるけど別のバグじゃないですかね。 (edited)
Avatar
なるほど...
Avatar
norio_nomura 8/3/2019 11:10 PM
Catalina beta 5で、VMware Fusionの仮想マシンクリーンアップを実行するとアイコンが小さくなる。 FB6918046 (edited)
11:10 PM
きしかわさんのと似た感じ。
Avatar
都内でペアプロできる環境を時間貸ししてくれる所はないものか
Avatar
omochimetaru 8/19/2019 5:18 AM
電源・Wi-Fi完備。仕事や趣味に、誰でも気軽に利用できる会員登録不要な時間料金制ワーキングスペースです。駅チカなのでカフェやオフィス代わりに、ちょっとした休憩などに、あなたの時間をもっと快...
5:18 AM
こういうの・・・?
Avatar
こういうのがいいんですけどね…無理
Avatar
bugsとforumsでそれぞれ別のアカウント必要?
Avatar
JIRAとDiscorseなので別々ですね
Avatar
まじか。ありがとう
Avatar
別鯖でadmin*を務めているヨハネです。今回は、iosソフトウェア・アップデートについてのご相談をしていこうと思います。 ⒈ソフトウェア・アップデートができない。 皆さんのスマホやテレビ等でやるアップデートですが、アップデート内容を確認しようとすると、アップデート内容の確認中にエラーが発生しました。や、最近では容量はたくさんあるのにできない!と言う人が増えています。どうしようもできないとなったら、携帯屋さんに行って確認してもらいますよね。でもどうして、容量はたくさんあるのにアップデートができないのかを調査してみましょう。 まずは疑惑1 ・ネット 疑惑2 ・通信障害 疑惑3・セキュリティーソフトがアップデートをブロックしている 等々。 自分もversion 12.1で止まってしまっています。どうしたら、直すことができるのでしょうか? 製品の機器は自分のスマホ(iPhone X)とiPad Pro 以外製品は持ってませんがパソコンはWindows10のハイスペックPCです。(Pod等イヤホン製品は除く)店に持って行かずに直す方法はありますか?
Avatar
@nhnhsh1636 バックアップを取る→端末を初期化→バックアップから復元 これをやってダメなら店に持っていくしかないように思います。
Avatar
swiftの上で動くスクリプト言語を作ってみたいと思っているのですが、既にあったりしますか?ゲームで動かすのを想定してます。 rangeとreplaceSubrangeを駆使して作ろうとしてます。 (edited)
Avatar
自分の知る限りと調べた限りでは見当たらなかったですね。
Avatar
@ありぜ ありがとうございます。やはり作るしかなさそうですね。HelloWorld的なところまでは行けました。 https://github.com/continue-dev/script
Contribute to continue-dev/script development by creating an account on GitHub.
Avatar
スクリプト言語ですが、Rabbitという名前にしました。 現在、 ・メソッド名を識別する ・変数名を識別する ・print()メソッドでデバッグ表示する ・SwiftからonTouchDown()で値を送信 ・scriptからjumpToHostLanguage()で値を受信 以上が出来るようになりました。
👏 2
Avatar
アドベンチャーゲームなら、前職に勤めてた時はこういうゲームエンジン作ろうとしてたけど途中まで作って放置してた() https://github.com/el-hoshino/Canola/tree/develop
Canola is designed to be an easy-to-use Adventure Game Engine for iOS - el-hoshino/Canola
Avatar
バグ報告でクラッシュするって英語で書きたいときの表現がよく分かってないんですがどう書いてますか?
  • このコードはクラッシュする: This code causes crash.
  • 〜するとクラッシュする: Crash happens when 〜
とか書いてるんですがいまいちしっくりこないです。
Avatar
コンパイラとランタイムのどっちがクラッシュするか明記したいので
2:19 AM
Compiler is crashed from next code とかそんな感じで書くと思う。多分通じる (edited)
Avatar
is crashedか。crashって
Avatar
わかんねです
Avatar
日本語の感覚で名詞でつかっちゃいがちなんですよね。
Avatar
日本語はどっちでもいいので楽ですよね。でも通じればOKでいうとどっちでも通じます。
2:27 AM
人間はコンパイラによって破壊されないので
Avatar
動詞での活用も今後頑張ってみます。
Avatar
omochimetaru 1/27/2020 4:08 PM
I am super excited to join @SiFive today, leading the software team that builds tooling to enable 'silicon at the speed of software'. Chip design is challenging, and needs open tools that are well designed, easy to use, and state of the art. More at: https://t.co/s2ahQvl...
4:08 PM
ラトナーが転職・・・
4:15 PM
半導体設計の世界にLLVMみたいな新しいツールを作ろうとしてるみたいに読んだ
Avatar
omochimetaru 1/27/2020 4:28 PM
2019年6月11日、オープンソースの命令セット・アーキテクチャ「RISC-V」ベースのプロセッサ・コアを手掛ける米SiFive社は、日本で初となるプライベートセミナー「SiFive Tech Symposium 2019 in Japan...
4:28 PM
SiFiveがそういうツールの会社なのか。 (edited)
Avatar
tensorflow/swift-apisのPRで改善できそうな箇所の議論をしたいのにスルーされてそのままマージが二件続いてちょっと微妙な気分になってしまった。
Avatar
omochimetaru 3/5/2020 2:16 AM
英語力の問題かもしくは、 踏み込んだ設計の議論はPRじゃなくてフォーラムでやったほうがいいんじゃないかな
Avatar
メンションつけて質問形式で書いたんですけどね。 PR出したあとここ改善できるなって気付くことが割とあるので、PR出す前にもっと検討するようにしたほうがいいですね……
Avatar
しかもマージの結果自分がauthorから外れてるのですがこれはgithub側の問題らしい😥 https://github.com/isaacs/github/issues/1368
samtools/hts-specs#339 was a pull request consisting of a single commit: commit 28c558e0bc7e112b8b7674baf9da5c5cdbd860f8 (range-desc) Author: John Marshall &lt;John.W.Marshall@glasgow.ac.uk&...
Avatar
omochimetaru 3/5/2020 4:53 AM
それはやだね。
Avatar
多くのプログラミング言語に存在する文末の ; のようなものを表す一般的な名前ってありますか?たとえば statement terminator とか。仮に statement terminator として、「 C や Java の statement terminator は ; ですが、 Python には statement terminator はありません」みたいな言い方ができるようなもの。 (edited)
Avatar
Kishikawa Katsumi 3/26/2020 2:01 AM
ざっと調べてみたところstatement terminator は一般的な名前に見えますね。
2:01 AM
脱線しますが、Pythonに関していうとstatement terminator はNew lineです、が正確かなあ
2:03 AM
https://en.wikipedia.org/wiki/Semicolon#Programming ここから出発して、statement terminatorはプログラミング言語について一般的な用語っぽい => ここに書いてある言語についてのリファレンスやそれっぽいものに当たったところ、その意味で使われてそう、みたいな根拠です。 (edited)
The semicolon or semi-colon (;) is a symbol commonly used as orthographic punctuation. In the English language, a semicolon can be used between two closely related independent clauses, provided they are not already joined by a coordinating conjunction. Semicolons can also be u...
Avatar
statement terminatorとかseparatorとかですかねぇ
2:09 AM
This comparison of programming languages compares the features of language syntax (format) for over 50 computer programming languages.
Avatar
ありがとうございます🙇‍♂️
Avatar
omochimetaru 4/4/2020 8:25 AM
あいうえお
Avatar
Kishikawa Katsumi 4/4/2020 8:27 AM
伏せ字ができるの?
Avatar
omochimetaru 4/4/2020 8:28 AM
||で挟む
Avatar
Kishikawa Katsumi 4/4/2020 8:29 AM
コナンの正体は|工藤新一|
8:30 AM
コナンの正体は |工藤新一|
Avatar
omochimetaru 4/4/2020 8:30 AM
あ、左右それぞれに2本です
8:30 AM
合計4本になる
Avatar
Kishikawa Katsumi 4/4/2020 8:30 AM
コナンの正体は工藤新一
👀 1
8:30 AM
😄
Avatar
にゃー
2:44 AM
おもしろい
2:44 AM
全部伏せ字にしちゃおう
Avatar
Google and Apple announce a joint effort to help governments and health agencies reduce the spread of the virus, with user privacy central to the design.
👏 3
Avatar
すごい・・・。
Avatar
norio_nomura 4/10/2020 9:47 PM
仕様書とかも既にあるのね。 https://www.apple.com/covid19/contacttracing
Contact Tracing makes it possible to combat the spread of the COVID-19 virus.
Avatar
来月にAPIをリリースして(オフィシャルアプリがストアからダウンロードできるようになって)、その後OSレベルの対応、それで後者は前者よりロバストだって書いてあるのが、いまいちどういう関係のことを言ってるのかよくわからないです・・・。 (edited)
Avatar
A joint effort to enable the use of Bluetooth technology to help governments and health agencies reduce the spread of the virus.
Avatar
情報蓄積のためのアプリを来月入れられるようになって、その後それをアプリなしでOSレベルでやるようになって、その情報をAPIから利用できるよってことならわかるんですが・・・。
Avatar
「あなたは最近COVID-19と診断された人と接触しました」って通知来るのすごいインパクトですね。
10:23 PM
情報提供だけじゃなくて、自分に通知来るなら同意しようって人多くなりそうですね。
Avatar
Contact Tracing で CTExposureDetectionSession とか、 Core Text とプレフィックス被ってません? https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ContactTracing-FrameworkDocumentation.pdf
Avatar
かぶってるけど...気をつければ大丈夫
10:42 PM
CoreTextはCだしね。
10:42 PM
typedefとかはヤバそうだけど。
Avatar
CoreTextはC
なるほど。
10:44 PM
Avatar
意外なのが新しいAPIなのに、C/SwiftじゃなくてObjCなところ... (edited)
10:45 PM
最近の新しいAppleのAPIはC + Swift interface で提供されることが多かった。
Avatar
omochimetaru 4/14/2020 5:58 PM
@tarunon これ一人で2ブーストしてるの?
Avatar
そもそも課金すると2つブースト貰える
5:59 PM
私はあと追い課金もしてるので3枠あるよ
Avatar
omochimetaru 4/14/2020 5:59 PM
Nitro持ちって事?
Avatar
そうです
Avatar
omochimetaru 4/14/2020 5:59 PM
なるほど。
Avatar
Nitroで2枠+課金1枠
Avatar
ブースト知らなかった。
Avatar
omochimetaru 4/14/2020 6:01 PM
うおっ
6:02 PM
今 ピンクになったぞ
Avatar
課金はやいw
Avatar
Nitroなので。二枠ありましたよ。
Avatar
てか早期サポーターじゃないですか
6:02 PM
プロフィール開くと可愛いバッジが点いてるのでわかります
Avatar
discord課金...
6:03 PM
さすが
Avatar
omochimetaru 4/14/2020 6:10 PM
わいわいswiftcがうまく回ったら俺も課金しよっかな
Avatar
omochimetaru#0001 取得のチャンス
Avatar
omochimetaru 4/14/2020 6:11 PM
rintaroさんと衝突する
Avatar
名前との組み合わせなので大丈夫と思います。
Avatar
server uniqなんだっけ
Avatar
omochimetaru 4/14/2020 6:13 PM
この数字自体はDiscord全体で一人一つあって
6:13 PM
なんかゲームの中で知り合った人にこの数字だけで連絡先交換したりできる
6:13 PM
衝突したときどういう感じになるのか知らないけど。
Avatar
Discord 続いてほしいから年間課金してる
Avatar
omochimetaru 4/15/2020 3:34 AM
続いて欲しい系の動機はWikipediaみたいな事になってからでいいかなって思ってしまう
Avatar
server boostって消費型なの?それとも割り振りできるタイプなの?
Avatar
omochimetaru 4/15/2020 3:37 AM
アリゼさんが実名になってる・・・
Avatar
割りふりできますね
Avatar
omochimetaru 4/15/2020 3:38 AM
割り振りみたいだよ。
3:38 AM
逆に言えば累積はしない。
Avatar
なるほど
Avatar
omochimetaru 4/15/2020 3:38 AM
今みんなが向けてるパワーの合計って感じ
Avatar
自分管理者のでかいサーバーもあるのでお布施
Avatar
アリゼさんが実名になってる
仕事で試験的にDiscord使ってるのもあって、とりあえず見分けつくようにした結果本名に
(edited)
Avatar
鯖ごとに名前変えられますよ
Avatar
マジカ
Avatar
omochimetaru 4/15/2020 3:41 AM
良い機能だよね。
Avatar
アカウントわけようかとしてたから、助かる〜Discord細かいところまで手が届いて最高じゃん
Avatar
omochimetaru 4/15/2020 3:44 AM
わかる〜
Avatar
なので貢いでいこうな 💪
👍 1
Avatar
omochimetaru 4/15/2020 3:47 AM
サーバー別にアカウントがあるSlackより、共通のアカウントで名前だけ変えるDiscordのほうが好きで割りと早期に乗り換えた
3:47 AM
あ〜、アイコンは同じになっちゃうのかな
Avatar
最近PC版のログイン機能に感動してServerBoost追い課金してしまった
Avatar
omochimetaru 4/15/2020 3:49 AM
あ〜あれは俺もイカス〜と思った。
3:51 AM
あっ ありぜさんも光った
Avatar
discordは日本語入力の問題なおしたら課金してもいいと思ってる
3:58 AM
ていうかもう遊びに行って直したほうが早い
3:58 AM
(ただしCOVID-19おわったら)
Avatar
aaanいほんごがきれる ← これですね
Avatar
omochimetaru 4/15/2020 3:58 AM
閉じバッククォートの後の日本語入力が死ぬ問題と、変換候補に絵文字が来ると中断される問題ね
Avatar
絵文字問題はしらなかった
Avatar
omochimetaru 4/15/2020 3:59 AM
一度変換器が変換候補を絵文字で学習しちゃうと厳しいことになる
3:59 AM
その文言を使うたびに詰む
Avatar
つまり🐱
Avatar
omochimetaru 4/15/2020 3:59 AM
(他のアプリ上で変換を学習し直す必要がある
Avatar
たまにリセット欲みたいなの湧いてきて
4:00 AM
全リセットしてる
Avatar
omochimetaru 4/15/2020 4:01 AM
Discordはアレじゃないんですかね Twitterが使ってる入力枠ライブラリ
Avatar
アレならこうはならないと思うからアレじゃないと思うなあ
Avatar
omochimetaru 4/15/2020 4:02 AM
名前なんだっけ
Avatar
draftjs (edited)
Avatar
omochimetaru 4/15/2020 4:02 AM
ああそうだ
Avatar
あれもだいぶキビしい
Avatar
omochimetaru 4/15/2020 4:03 AM
毎日Twitterのカーソルが分身してる。
Avatar
あれにcontributeすると直ります
4:04 AM
pullreqのチャンス
Avatar
omochimetaru 4/15/2020 4:04 AM
Discordが治るならモチベ湧く
Avatar
実際どうなんだろう
Avatar
omochimetaru 4/15/2020 4:06 AM
エディット上でmarkdownのWYSIWYGとか実装されてるし
4:06 AM
少なくとも結構改造してそうですよね
4:07 AM
そもそも報告されて無い気がする
4:10 AM
4:11 AM
↑変換候補が絵文字を含むエントリに推移した瞬間に確定されるバグ
4:11 AM
第一候補が絵文字として学習されている場合にはもう詰み
4:11 AM
第二候補なら一応スペースバーを押さずに数字とか押せば第三候補が選べるw
Avatar
norio_nomura 4/30/2020 3:53 AM
アップデート デスクトップ版のサーバービデオが参加者1000人未満の全サーバーに実装されたよ。 こんなときだからこそ、大好きなみんなと顔を見ながら会話できるよう、ビデオチャットに参加できる人数を最大10人から25人に増やしています ♡ 近日中にモバイル版にも実装予定です! https://t.co/85Stx9d3Lu
Avatar
omochimetaru 4/30/2020 3:54 AM
Avatar
norio_nomura 4/30/2020 3:55 AM
こりゃ失礼
Avatar
omochimetaru 4/30/2020 3:55 AM
ギリこえてた
Avatar
norio_nomura 5/5/2020 12:33 AM
11月頃から、APIエンドポイントやwebhookなどもdiscordapp.comからdiscord.comへの切り替えを要求されるらしい。 https://twitter.com/discord/status/1257401032189018113 (edited)
we bought https://t.co/QOaPHSyI5j don’t worry https://t.co/pANxXj43WI still works yes we're still an app
Retweets
849
Likes
10377
Avatar
アマゾンリンクの整形ツール作ったから遊んでみてー! https://github.com/el-hoshino/Agen 使い方: $ agen "https://www.amazon.co.jp/「早坂愛は防ぎたい」「生徒会は神ってない」「かぐや様は結婚したい」「かぐや様は祝いたい」/dp/B086ZCTDJ8/ref=sr_1_1?__mk_ja_JP=カタカナ&dchild=1&keywords=かぐや様&qid=1588694541&sr=8-1" 出力: Shorten URL: https://www.amazon.co.jp/dp/B086ZCTDJ8 Result has been copied to your clipboard, you can use cmd + v to paste it.
Agen is a tiny Mac terminal program to shorten amazon links - el-hoshino/Agen
Avatar
【業務連絡】Twitterアカウント(@lovee)がロックされて1ヶ月以上経ってるけど異議申し立てに返答来ないしロック解除される気配がないので、とりあえず抗議だけはしときました。別垢でTwitter活動再開するかは未定ですが、とりあえず今@loveeにメンション飛ばしてもDM送っても私は何も読めないし返信もできないことをご連絡します。 https://twitter.com/lovee_cn/status/1260707250038923265?s=20
. @TwitterDevJP 御社の開発者は「スレッドを○す」みたいな用語は社内で禁じられていそうですね。 なぜ知ってるかって?少なくとも私は同じ文脈の「○す」ツイートをしたら御社のレビュアーに「ツイッタールールに違反してます」と言われて1ヶ月以上アカウントロックされているからです。
😿 3
Avatar
Kishikawa Katsumi 5/13/2020 11:56 PM
星野さんロックされてたのか。Twitterのその部分は本当にダメだな。
Avatar
みんなでTwitterボイコットしてTwitter倒産させましょう(違
Avatar
最近 Twitter 離脱しつつある。みんな「反対」やら「批判」やらばかりしててうるさいし
sorena 1
Avatar
マストドンに移行しましょう(違
wakaru 1
Avatar
結局のところMastodonでもTwitterでも人間が書いてる以上批判とか反対やらの発言は(数の違いはあるにせよ)あるので、そのへんはプラットフォームを変えるとなんとかなる、というよりかはタイムラインに流す人の選択を慎重にするべきなんじゃないかな、という気はします
4:27 AM
それはそれとして、Mastodonは自分で立てるなら鯖業者とドメイン業者と警察に怒られなければ(もちろんやりすぎれば各サーバーから個別にブロックとかはされますが)何でもアリなので、TwitterのBAN基準が…という理由であればアリだと思います
Avatar
Mastodonは自分はいくつかインスタンス覗いてみたことありますが、mstdn.jpはまんまTwitterの雰囲気でしたから離脱しましたね、最近割とQiitadonに落ち着いてます、いつまで生きられるかは微妙なところですが
Avatar
中の人ですが...
👀 2
4:48 PM
"(CPUの)スレッドをkillする"
4:49 PM
みたいなツイートでアカウントがロックされている、appealしてもなんの音沙汰もないというのであればそれはTwitterの問題です。なんらか対応できるかもしれないので、必要であれば詳細を教えてください。 (edited)
4:51 PM
現実問題として、これは一般論ですが、false positive は避けることはできなくて(機械的にも、人的にも)現実世界では社会に多様な救済措置が用意されていて、プラットフォームはそれに準ずるか近い努力が必要なのは事実だと思います。
4:51 PM
一方、営利私企業の限界もそこには当然存在します。
4:53 PM
具体例としては、たとえば Google アカウントが完全にミスでバンされたケース中の人にコンタクトをとって復元できたというよなのは散見されます。
4:53 PM
YouTube アカウントだとそういう運営批判動画は山ほどありますよね。
4:55 PM
西側のサービスだけではなくて当然同じような(たぶん全く違う理由も大きい)検閲の問題を抱えるサービスはアジア圏にも多いと思います。
4:56 PM
全てを同一視点で語ることはできないですし個別のケース毎に事情が異なり非常に難しい問題です。
Avatar
残念ながら今具体的にAppealしたツイートがどれなのかはアクセスできないのでなんとも言えないのですが、指摘されたツイートに関して言うと今までこのような感じのツイートが大量に指摘されてきました: 1. エンジア同士の会話(スレッド)で、その前に話していた何かのものについて、私が返信で 殺す() もしくは 絶対殺す() と書いたもの(大凡Auto Layoutの話だと思います、ただ指摘されたツイートの画面しか送ってこないのでそのスレッドに直接飛べませんでしたからAuto Layout以外の技術の可能性もあります、ただしメンション先は全部ダンボーさんなどのエンジニアだけなので間違いなく技術の話です) 2. アニメの実況ツイートでたまたま「殺す」と言うセリフをそのまま呟いてます、ただし該当ツイートは全て 「殺す」 などのように 「」 が必ずついており、加えてアニメのハッシュタグもあります
10:25 PM
更に付け加えると2018年以降はTwitterのそう言う規制が強まってると知ってるので全て ◯す で伏字にしていたため、指摘されたツイートは全て2018年以前のものです
10:26 PM
(だから尚更そのツイートの話覚えてねぇよってなります
10:29 PM
私がAppealしてるのはおそらく1に該当するどれかのツイートです、理由としては: 1. 2のものは確かにその当時のコンテキストを今更再現するのは不可能なのでAppealしても通るのが難しいとわかっています 2. Appeal文言には「ちゃんとその会話のスレッドを読んだ上で殺す対象を判断してください」と書いた覚えがあります
Avatar
なるほど、スレッドってそう言う意味なのか。
Avatar
あ、ちょっとややこしいですが、 ↑こちらに書いてる「スレッド」は間違いなくCPUのスレッドです、
エンジア同士の会話(スレッド)で
こちらは単純にTwitterのメンションを集める機能の話のスレッドです
Avatar
うーん、なるほど。
10:36 PM
2018年ということですが、遡及して指摘されたということですか?
Avatar
そうですね、今更それを遡って指摘した感じです
10:38 PM
一番古いツイートは確か2015か2016年当たりのものでしたかな 🤔
Avatar
なるほど。ええとひょっとすると第三者に意図的に報告された可能性があるかも。
10:39 PM
あくまでも、個人的な印象ですが。
Avatar
ひょっとしなくても第三者の意図的な報告ですね、心当たりありますので
Avatar
わかりました。
Avatar
DM送って良いですか?
Avatar
私にですか?OKです
Avatar
はい。
Avatar
ありがとうございます 🙇‍♀️
Avatar
2018年より前とかのツイートで凍結するのよくある
12:14 AM
俺の友達はアカウント3個目になってて
Avatar
これは現実世界でもありうるのですが、第三者にターゲットにされ場合、犠牲者が自信を守る方法はすごい限られていてかなり困難な状況になってしまいます。 (edited)
Avatar
何度もやり直してるから最近の凍結は「殺す」とかも書いてないかった
12:15 AM
友人の間ではなんで彼がなんども凍結されるのか不思議なのでネタになってる
12:17 AM
粘着してるアンチがいるとしたらひたすら2年間ぐらい表に出ずにツイート報告だけ続けてる事になるし謎
Avatar
うーん...
12:25 AM
ただそれもありえない話ではないので...
Avatar
てっきりガバガバシステムが過去のツイートを遡って自動通報してると思ってたんですが (彼以外にも別の友人がすごく昔のツイートで凍結してる
12:26 AM
にわさんがそう思うなら過去については手動通報がまずは必要な仕組みなんですかね
Avatar
粘着してるアンチがまだ大人しくネットの世界だけで粘着してるならまだ平和ですよね…(うちの場合は最近会社にクレーム電話まで入れやがったw
Avatar
凍結されまくってたころ、周りでは自分のツイートを「殺」とかで遡り検索して先行ツイ消しなどの自衛が行われてた
12:28 AM
とりあえずシステムも運用の人間も、JPでは全く文脈は見てなくて文字が入ってたら凍結というのが共通認識ですね。
12:29 AM
@lovee ええw会社w
12:29 AM
大丈夫なのか・・・
Avatar
あまり内情は言えないですが、一般論として、多分この業界のシステムがどうなっているかとかユーザーサポートや検閲がどのように運営されるかとかを想像してもらえれば、多少は理解が深まるかと思います。 (edited)
Avatar
「弁護士通じてお話しします」と代表からアンチに伝えていただきました。
Avatar
現実の世界ではそうですね、弁護士や法律がいちおう被害者を社会で守る仕組みになってるんですけどね
12:31 AM
それらの仕組みですらアビューズされ得るので
12:32 AM
本質的には人間とはみたいなことになってしまう
Avatar
どのように運営されるかとかを想像してもらえれば
よくわかんないんだよな〜、周辺の凍結の様子見てるとめ〜っちゃ適当にやってて誤凍結も特に恐れてないようにしか見えない。自分もいつ凍結されても(そして解除連絡が無視されても)おかしくないと思ってツイッターやってる
Avatar
そうかあ、でも、普通にサービス開発だけだと、多分なかなか知りえないことかも。別におもちさんがそうだと言う意味じゃなくて。 (edited)
Avatar
僕は務めてる会社も特に大規模サービスの運営とかやってないし普通にわからんです (edited)
Avatar
大規模の事実上独占地位でインフラレベルのサービスにも三権分立を!()
Avatar
外部サービスでなるべくツイッターでのOAuth認証は使わないようにしてますね
Avatar
Google や Apple ID のアカウント認証とか
Avatar
あ、でも凍結されてもログインとかはできんのかな?
Avatar
一網打尽感あって怖い...
Avatar
外部サービスでなるべくツイッターでのOAuth認証は使わないようにしてますね
それ今回の件で思いました、SNS認証は一つのサービスだけにしてはいけません
Avatar
Googleのポルノ判定でGMail BANがマジで怖い。
Avatar
Twitterの場合はできないですね
Avatar
GMailがいろんなメール認証の起点になっちゃってるから・・・
Avatar
以前の調査(個人的な)では (edited)
Avatar
AppleIDも怖いな。iCloudの写真とかからポルノ判定で焼かれたらマジで困っちゃうな・・・ (edited)
Avatar
GoogleアカウントがBAN されて復旧できたのは
12:36 AM
中の人を知ってるケースだけだったので
12:37 AM
なんというかこう、あれなんですよ
12:37 AM
そういうことなんですよ...
12:37 AM
iCloudには写真おいてない
12:37 AM
(単に5GBしかないからおけない)
Avatar
写真アプリがパンパンになったから課金して広げた。
Avatar
やはり各種サービスのアカウントに使うメールアカウントは自前サーバ立てるしかないか…
Avatar
ここもそう言う写真ばかり誰かにアップロードされまくられたら
12:40 AM
閉鎖させられるかもしれない (edited)
12:40 AM
自前サーバーの怖いところはDNSのNSやMXを書き換えられたら終わりってことなんですよねー。
Avatar
インターネッツ怖い
Avatar
omochimetaru 5/21/2020 9:39 AM
swift (edited)
9:40 AM
9:40 AM
↑Discord謎機能あった
Avatar
Kishikawa Katsumi 5/21/2020 10:04 AM
これは結構いろんなチャットアプリが採用してるインターフェース
Avatar
そうだったのか
Avatar
Kishikawa Katsumi 5/21/2020 10:04 AM
Skypeとかたぶんもっと昔からある
Avatar
へえ〜
Avatar
Kishikawa Katsumi 5/21/2020 10:05 AM
🙂
10:05 AM
:) <= これが絵文字になるのも
Avatar
yutailang0119 5/21/2020 10:05 AM
昔hipchatでもやってたな
Avatar
Kishikawa Katsumi 5/21/2020 10:05 AM
もうずっと昔からある
Avatar
これで太^H太文^H文字^H字になる(ならない
Avatar
初めて知った 👀
Avatar
sedの時代からある
Avatar
【業務連絡】 https://discordapp.com/channels/291054398077927425/346503087256502274/710270462168530954 ↑こちらの件、 @niw さんのおかげで無事ロック解除されました!ありがとうございます 🎉 🙇‍♀️
🙏 2
🎉 9
👍 1
💕 1
Avatar
Kishikawa Katsumi 5/22/2020 1:41 AM
おお〜 @niw さんすごい。よかった〜。
Avatar
omochimetaru 5/27/2020 1:47 PM
server boosterが増えてる!
😍 2
Avatar
ここに関連あるかわからないんですが、swiftbotが乗っ取られたようなDM送ってこられた方他にいますか?
Avatar
ヴァルボーグ@toyosuke 6/8/2020 3:02 AM
多分このサーバー全員に来てるかと ブロックしましょ
3:02 AM
詳しくは #manage
Avatar
情報ありがとうございます。
Avatar
Deleted User 6/14/2020 1:51 PM
コード貼るとき、普通のテキストと違う感じで貼ってますけど、あれってどうやるんですか??
Avatar
` (バッククォート)を三つならべて囲みます。 (edited)
2:01 PM
```swift print("hello") ``` (edited)
Avatar
Deleted User 6/14/2020 2:05 PM
ありがとうございます!
Avatar
ちなみにこのサーバーには swiftbot がいて、 Linux で動くものならコードを実行させることができます。 @swift-5.2.5 print((1 ... 100).reduce(0, +)) // 5050
Avatar
5050
Avatar
bot を試してみたいとき用に #swiftbot-sandbox チャンネルもあります。
Avatar
Deleted User 6/14/2020 2:11 PM
おおお、、便利ですね。使ってみます!
🙂 1
Avatar
ソーシャルディスタンスを保つアプリ作ったから褒めてー https://github.com/el-hoshino/HowAwayAreYou
HowAwayAreYou, or shorten as Haay, is an iPhone app to help you keeping social distance with people around you. - el-hoshino/HowAwayAreYou
Avatar
Kishikawa Katsumi 8/9/2020 1:46 PM
UIのエフェクトがかっこいい (edited)
1:47 PM
メガネ的なデバイスでできると良さそうなやつ
Avatar
Appleがメガネ作るなら多分カメラ付かないと思うから難しそうですね; ちなみにそのエフェクト、SwiftUIだけで作ろうとしてたけど、無限グルグルのアニメーション一瞬で終わる座標移動のアニメーションを同時に同じオブジェクト(ネストされても同じ)に適用できなかったので、仕方なくグルグルアニメーションをUIKitで作りました 😇
1:52 PM
SwiftUIで複数のアニメーションを適用しようとしたら、座標移動のアニメーションを適用したら無限グルグルも座標移動の繰り返しが適用されてて辛かった…SwiftUIまだまだ進化の余地がたくさんありそう 😇
Avatar
camera の preview が safe area 内にとどまってるのがSwiftUIっぽい (ソースは見てない) (edited)
Avatar
親はSwiftUIですね、マークはUIViewです
Avatar
Kishikawa Katsumi 8/25/2020 9:28 AM
Discord、リードオンリーのチャンネル作れるみたい。DroidKaigiでそういう運用してた。
Avatar
omochimetaru 8/25/2020 9:29 AM
読み書きの権限を別々にロールごとに設定できるので、できますね
9:31 AM
ここのreadmeは書き込めないようにしてる
Avatar
Kishikawa Katsumi 8/25/2020 9:46 AM
ホントですね。気づいてなかった。便利だなあ。
Avatar
Kishikawa Katsumi 8/25/2020 11:21 AM
デスクトップとモバイルで表示が違うんだな。デスクトップは権限がない、って表示されるけどモバイルはReadonlyだ。
Avatar
Discordの権限モデルは結構複雑だけど設定画面が結構わかりやすくてよくできてるなと思う
Avatar
こんにちは、日本語とプログラミングの勉強を始めたばかりで、日本語のインプットもしつつ、プログラミング勉強したいから、なにかオススメなコースとかありますか?ありがとうございます。
7:29 PM
Swiftの
Avatar
日本語とSwiftを同時に学べるコンテンツを探してるということです?
Avatar
そうです!でも日本語はもうなんとなくわかるから、初心者のコースを探している!
Avatar
twitter おちた気がする?
Avatar
えっ
Avatar
yutailang0119 10/1/2020 2:08 PM
Twitterに詳しい方
Avatar
いやちょっと判断がはやすぎたかもしれませんw
2:09 PM
ずっとこんな漢字なのでBANの可能性も
Avatar
yutailang0119 10/1/2020 2:09 PM
社内Slackでも調子悪そうって話題になってる
Avatar
繋がらないっすね
2:09 PM
it’s our side.
Avatar
連番来ちゃいましたか
Avatar
I can’t type Japanese on Discord app, sucks, sorry using English
Avatar
今日のカオス当番だ。お勤めご苦労様です
Avatar
スマブラの参戦映像生放送なのでそれで(盛り上がって)落ちたとか (edited)
Avatar
「次はTwitterの番か」って書こうとしたらTwitter落ちてたわ
Avatar
yutailang0119 10/1/2020 2:10 PM
次はお前の番だ
Avatar
omg
Avatar
hidoi, nihongo nyuryoku dekinai
2:11 PM
discord yabai
Avatar
Windows XP 時代に結構あった現象だ
2:11 PM
懐かしい
Avatar
(discord ios app)
Avatar
あーーー
2:12 PM
それdiscordじゃなくてiOSの問題ですね
2:12 PM
たまにIMEが再起不能になります
Avatar
iOS == XP 説
Avatar
端末再起動か、メモリを大量に食うアプリを使って、keyboarddをぶっ殺せば
Avatar
ウェブにした
Avatar
治りますよ
2:13 PM
あれ
2:13 PM
discordだけ?
Avatar
なんか二重に入力されてる
2:14 PM
discordがたぶん、NSTextStorageで変なことしてる
2:14 PM
そんな感じ
Avatar
二重入力だとよくある双方向bindingの実装ミスな気が
Avatar
日本語でしかおこらないからなー。
2:14 PM
discordは日本人いないんだろなあ。
Avatar
まあ、マイノリティなので仕方がない。
Avatar
これ入れたら壊れるかな
Avatar
えっと、Twitterは、アレがアレしてアレなので、ちょっとアレかも。
Avatar
アップデートしたけど壊れないっすね
Avatar
アレがアレするまでお待ち下さいませ
🔥 4
🚒 1
2:17 PM
あ、治った
2:17 PM
アップデートしたら治った
Avatar
Twitter復帰しました
Avatar
アップデート前はやばかった
2:17 PM
(discord)
2:18 PM
Twitterは多分アレをアレしてアレになってるのとりあえずは使えるようになるかも
Avatar
あれをあれしたのですね!(よくわかってない顔) 何がともあれありがとうございます!mm
2:25 PM
(なるほど、雑談チャンネルに何気ないことを書くと、一部の方にはお仕事の話になる可能性があるのは盲点だった) (edited)
😌 1
Avatar
TwitterおちてるとTwitterおちてるってツイートできないから仕方がない...
Avatar
何このキャラ?!
Avatar
Kishikawa Katsumi 10/27/2020 2:11 PM
かわいい
Avatar
ウンパスくんだったかな?
Avatar
boost のアイコンに触りまくったら出てきた。
Avatar
ぼくたちは何としてでもウンパス君を守らなければ!
👀 1
2:13 PM
隠し要素だw > 触りまくったら
Avatar
上からとか右からも出てきたよ。
Avatar
なんか本を書いてみたい感
6:18 AM
書けばいいじゃんってなってるけど進め方がわからんので技術書店とかからが手っ取り早いかな
Avatar
もしくはPEAKSに企画を売り込む 👀
Avatar
著名エンジニアではないので弾かれそうw
Avatar
Kishikawa Katsumi 11/13/2020 7:11 AM
リファレンスしますよ
Avatar
おおまじですか
Avatar
リファレンスしますよ
Avatar
やった、書きたかったテーマがあってそれの構想が十分練れたらやっていこうかな (edited)
7:18 AM
がんばります
7:18 AM
協力感謝
Avatar
テーマは「OSSで学ぶコンパイラ入門」っていうので、Swiftコンパイラを使ってコンパイラの知識を学ぶっていうのを考えていました (edited)
8:04 AM
これ共著でやらんと無理かもしれんですが 👼
Avatar
(なので共著で興味ある方がいらっしゃったらご連絡ください)
Avatar
なんかおもしろそう,応援しますよ,執筆
😆 1
4:32 AM
雑談はここで良いのね
Avatar
Kishikawa Katsumi 12/2/2020 3:56 AM
Discordのグッズショップ、長らくなくなってたけど復活した😍なんか買おう。ぬいぐるみは売り切れている🥺 https://discordmerch.com/
Enjoy Discord Merch for the Holidays! For a Limited time only find all your Discord Merch Here! Happy Holidays
3:58 AM
期間限定なのかな。
Avatar
Kishikawa Katsumi 12/8/2020 5:13 AM
DiscordがSnowsgivingっていうのはじめてて、クリスマスギフト的な抽選とかあって楽しい。ボイスチャンネルは音楽がずっと流れてる。 https://twitter.com/discord/status/1334930989374611458
Snowsgiving's back & shaking things up this year ☃️ Join our annual winter celebration where we host giveaways, contests, and bring in a fresh new music bot for 24/7 nonstop fun. Pile into the server now, full festivities start 12/7: https://t.co/pYcoDE3s1Q
Retweets
239
Likes
4415
Avatar
5:37 AM
Avatar
ウンパス、ぬいぐるみだと可愛かったけどイラストになると結構ブサイクちゃんやね
Avatar
Kishikawa Katsumi 12/18/2020 5:53 AM
なにこれ。どうやってやるんすか?
Avatar
これ課金要素なのか
5:58 AM
ぬるぬる動くw
Avatar
Kishikawa Katsumi 12/18/2020 5:58 AM
ワシもお金払ってるで。
Avatar
右の😄押したらスタンプ押せますよ
Avatar
テキストフィールドの右
6:00 AM
Avatar
Kishikawa Katsumi 12/18/2020 6:00 AM
6:00 AM
できました。再起動したらボタン増えた。
6:00 AM
スタンプの品質が高い。
Avatar
250円払えば…Among Usのも手に入るが、右上の19日って販売期間なんだろうか…
Avatar
Kishikawa Katsumi 12/18/2020 6:01 AM
セール期間じゃない?
Avatar
なるほど
Avatar
Kishikawa Katsumi 12/18/2020 6:02 AM
Among Usをされていますか?
Avatar
やりたいと思いつつ手出してない状態ですねw
Avatar
Kishikawa Katsumi 12/18/2020 6:06 AM
よかったらやりましょう。明日と来週の土曜に開催される予定があります。
Avatar
お、是非ー
😋 1
Avatar
Discordから早期課金の特典今年で終わりだからサブスク変えてやでってメール来てたけど、変更できないや
Avatar
Avatar
ありぜ
250円払えば…Among Usのも手に入るが、右上の19日って販売期間なんだろうか…
販売期間な気がします…
👍 1
Avatar
Kishikawa Katsumi 12/18/2020 10:34 AM
おお、じゃあ今のうちに買わないと無くなっちゃうんですね。
Avatar
Kishikawa Katsumi 3/23/2021 2:23 AM
Discordの買収話があるんですね。ちょっと気になる。。。 https://venturebeat.com/2021/03/22/discord-exploring-sale-that-could-be-worth-more-than-10-billion/
Discord is going through a sales process now that could result in a purchase of the platform for more than $10 billion.
Avatar
Microsoftとかなんとか
Avatar
omochimetaru 3/23/2021 7:36 AM
GitHubみたいな感じならいいけど、Skypeみたいな感じになったら嫌だな。
Avatar
Kishikawa Katsumi 3/23/2021 11:21 AM
Slackも赤字のまま上場して買収だしチャットツールで独立でやってくのは至難なのかな。 とはいえ、チャットワークは黒字決算だったこともあるみたいだけど。 研究開発費とか違うだろうし比較するのは難しいけど。
Avatar
基本的にサービスの長期的な成長に対して価値がついてることがほとんどで
3:49 AM
成長できないと判断された時にサービスがどれだけ稼げるかが見られたりする感じで
3:49 AM
稼ぎに注目されたらもうそのサービスは成長できないって感じで
3:50 AM
わりとアレな感じになるんだろうなあ
3:50 AM
Discord意外と伸びてないのかもしれない
Avatar
Kishikawa Katsumi 3/28/2021 3:55 AM
成長できないと判断された時にサービスがどれだけ稼げるかが見られたりする 稼ぎに注目されたらもうそのサービスは成長できない
ひええ、そういう感じなんですね。ビジネス側をやってる人はすごい大変だな。。。
3:57 AM
将来の成長に値をつけるのも、評価が拡大していくにつれ見積もりが過剰になっていくんだろうなあ。Discordくらいの規模のさらにその次、となるともうファンタジーを語るみたいな感じじゃないだろうか。
Avatar
ていうかIPOは本来そういうものなんだよなあ。
4:06 AM
VCの流行りでそういう成長するってところに一般投資家が参入できなくなって久しい
4:06 AM
結局一部のすごいお金持ちだけがそういう成長にたいして市場を介さずに投資できる状態で、
4:07 AM
現状はもうVCからはお金が取れなくなって=成長する限界が見えてきて
4:07 AM
終わった状態になったサービスがIPOするんですよ
4:07 AM
最近だと、Dropboxがいい例だと思う。
4:09 AM
IPO前の会社に入りたいってのはもちろんIPOで何倍かになったRSUやSOが市場で売れるっていうメリットも大きいけどそもそもIPOしたらもう限界なんだなっていう、そういう意味合いもある感じですね (edited)
Avatar
Kishikawa Katsumi 3/28/2021 4:23 AM
IPOがゴールっていうのは揶揄じゃなくて実際そうなってしまったのか。
Avatar
まあ実際そうじゃないですかねー。
Avatar
omochimetaru 3/28/2021 5:07 AM
Discordって身の回りだと、ライトゲーマーとかにも認知され始めてどんどん利用例が増えていってる感覚だけど、英語圏だと頭打ち?
Avatar
どうなんでしょうか。あるいは investor からはやく exit しろという感じになったとか。
Avatar
omochimetaru 3/28/2021 5:11 AM
ふむー
Avatar
We&#39;re seeing CDN failures: Analyzing dependencies [!] CDN: trunk Repo update failed - 4 error(s): CDN: trunk URL couldn&#39;t be downloaded: https://cdn.jsdelivr.net/cocoa/Specs/a/a/6/K...
😥 1
7:56 AM
みんな困ってる😂
Avatar
Firebaseが正式にSPMかCarthageに対応してくれないとCocoaPodsやめられないのでここ最近のダウンロード失敗はつらい…
Avatar
Kishikawa Katsumi 4/21/2021 5:26 AM
DiscordのMicrosoftとの買収話はなくなった、みたいなのを読みました。
Avatar
なくなりましたねぇ
Avatar
Kishikawa Katsumi 4/21/2021 5:29 AM
まあきっとよかったんじゃないかな
Avatar
いつの日か上場して欲しいなぁ
Avatar
https://www.mobileatscale.com/ 同僚におすすめされてるので読もうかなあって思っている本
The guide for building large, iOS and Android native apps -with the challenges and common solutions across the industry.
Avatar
https://swift.org/mentorship/ 先週こっそり応募してみた。受かってたら嬉しいな程度で (edited)
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
👏 4
Avatar
Kishikawa Katsumi 5/26/2021 12:32 AM
楽しみですね😊
Avatar
ありがとうございますw しかし早口なnative英語についてけるか心配である (edited)
Avatar
Kishikawa Katsumi 5/26/2021 2:18 AM
Mentorの人は固定だろうから耳がすぐ慣れるんじゃない?
Avatar
たしかに
Avatar
Avatar
freddi
https://swift.org/mentorship/ 先週こっそり応募してみた。受かってたら嬉しいな程度で (edited)
今日発表じゃん。受かってたらええなー
🦾 2
Avatar
返信なかったしだめだったっぽい 😢
😢 3
Avatar
アカウント作成系は影響結構うけそうか? https://twitter.com/beryu/status/1402071577110269959?s=20
今朝更新されたAppStoreのレビューガイドライン、しれっと5.1.1(v)に書いてある「アカウント作成をサポートするアプリはアカウント削除も提供しなければならない」ってかなり影響大きくない…? https://t.co/2xgOVaHNf0
Avatar
Kishikawa Katsumi 6/8/2021 1:18 PM
大きそう。いいことだとは思うけど。
Avatar
これって、問い合わせからのアカウント削除とかも許容するかで結構かわりそうですね
1:20 PM
4.3 飽和状態にあるカテゴリとして、飲み会アプリを追加しました。
飲み会アプリ🤔
Avatar
アカウント作成削除をapp storeの中の人が試しそう
3:44 PM
で、「消せんやんけ、リジェクト!」
Avatar
あると思います!
Avatar
アップデートされたガイドラインには、
If your app supports account creation, you must also offer account deletion within the app.
と書いてあるのでアプリ内で機能として提供されていればよいという理屈で、 「アカウントを削除する」というボタンからお問い合わせにつながれば良い気がする
Avatar
なるほど。なら、大抵のアプリは微改修レベル以下ですみそうですね
Avatar
スレッドが実装された
Avatar
Avatar
tarunon
スレッドが実装された
omochimetaru 7/28/2021 5:06 AM
どうやるんだ
Avatar
あれ、どうやるんだろ
5:09 AM
スレッドを作る権限が要るかな?
5:10 AM
plzスレッド作る権限 @omochimetaru
Avatar
omochimetaru 7/28/2021 5:11 AM
5:11 AM
このサーバーには無い気がするよ
5:12 AM
これとあと、スレッドの管理ってのが増えてた
Avatar
omochimetaru 7/28/2021 5:13 AM
その設定の上下の部分見せて、画像が見切れてる部分 (edited)
Avatar
テキストチャンネル権限の項目にあるよ
Avatar
omochimetaru 7/28/2021 5:14 AM
5:14 AM
5:14 AM
5:14 AM
ない
Avatar
ないっすね🥲
5:15 AM
見た感じかなり良い機能なので
Avatar
omochimetaru 7/28/2021 5:15 AM
気になる
Avatar
Swiftチャンネルの一本化とか出来そうだね
Avatar
omochimetaru 7/28/2021 5:15 AM
そんなにいい感じなのか
Avatar
サーバー単位でゆっくりロールアウトですね (Discordの新機能あるある)
Avatar
>この機能は8月17日までに自動的にすべてのサーバーで使えるようになる。 https://jp.techcrunch.com/2021/07/28/2021-07-27-discord-threads/
2021年初めにスレッド機能を開発中だと発表してその機能をTwitterでチラ見せしたDiscordは今、にぎやかなサーバーでの会話をより包括的なものにする待望の手法を導入する。
👀 1
Avatar
norio_nomura 7/28/2021 2:02 PM
ぬ、botのリプライサポートを急いだ方が良いのかな?
Avatar
botは今のままの方が見やすいかもしれない
2:12 PM
あーでもスレッド上で使いたい場面は有り得るか
Avatar
omochimetaru 7/28/2021 2:37 PM
ボットの出力は縦に長くて会話が流れちゃうから、実行結果がスレッドに書き込まれてると便利そう
Avatar
たしかに
Avatar
replyがthreadになる?
Avatar
Avatar
niw
replyがthreadになる?
のかな?
Avatar
別個にスレッド機能が追加されます
Avatar
別か。
Avatar
私の個室が解法済みなのでフレンド追加してお見せできますよ
👍 1
Avatar
試してきた! slackのダメなところが解決されててよい
Avatar
いいですよね 後は検索でヒットしてくれるようになれば、これ以上は望まないです
tarunon started a thread. 7/28/2021 6:56 PM
Avatar
Kishikawa Katsumi 7/29/2021 4:31 AM
チャンネル一覧のところにスレッドがあるよ、って吹き出しのマークが出るのが分かりやすい。
4:31 AM
Slackもマネしてきそう。
Avatar
めちゃくちゃ強い機能なのでUI特許抑えてるのではと思いました
Avatar
Kishikawa Katsumi 7/29/2021 4:42 AM
なるほどねえ。
4:43 AM
個人的には良いUIはどんどんマネして同じになってほしい、と思う。
Avatar
omochimetaru 7/29/2021 4:45 AM
良いUIを発明した人が得してほしいという気持ちもあるし、 かといって、UIを独占できるのはおかしいという気持ちもある。
Avatar
まあ世の特許のルールがそうなってるんだから、ルールの上で戦う分には問題ないし、手を抜いたら損をするのもそう
Avatar
omochimetaru 7/29/2021 6:18 AM
それはそうだけど
6:18 AM
特許って防御的に事前に押さえるコストがかかってたり
6:19 AM
仕組み自体が昔にできたものだから、ソフトウェアの時代になっても社会にとって合理的なルールになってるのかは疑問がある
6:19 AM
企業としては現状のルールに従って最善手を打つしかないけど。
Avatar
ゲームのルールに則って戦ってるプレイヤーを叩くべきではないよって話ね。ルールが悪いなら攻められるべきはGM
Avatar
omochimetaru 7/29/2021 6:24 AM
それはそうだね
Avatar
Kishikawa Katsumi 7/29/2021 6:28 AM
ソフトウェアに関する特許については害の方が多いと思ってます。
6:29 AM
他にいい仕組みがあるかはわからないけど。
Avatar
AndroidがScrollしたときにバウンスしないのはそれが原因...
1:36 AM
(っていうかまあしなくてもiOSほどスムーズにscroll事態しない気がするけど)
Avatar
Kishikawa Katsumi 8/1/2021 4:21 AM
AndroidがScrollしたときにバウンスしないのはそれが原因...
そうそう。これはAppleはかなり悪かったと思う。
Avatar
悪いのはAppleじゃなくてルールですよ
Avatar
Kishikawa Katsumi 8/1/2021 4:25 AM
いや、Appleだと思いますよ。特許にしろなんにしろ権利をどう使うかはAppleが決めることなので。
4:26 AM
特許をとった上で許可するとかは可能。
4:26 AM
お金で解決するっていうのが一番スマートだと思うけど。
Avatar
権利の利用が認められていて自社の利益を損なえないので、と言う判断を下したのを
4:27 AM
外野がどうこうは言えない筈です。逆に言えば発明に対して然るべきコストを払わないGoogle側に非があるという考え方も出来るはず
4:29 AM
ちょっと調べてみたらその後apple対Samsungの裁判で特許は無効になってるらしい
Avatar
Kishikawa Katsumi 8/1/2021 4:32 AM
なるほど。それは理解できますね。 そうすると私の意見だと裁判所の判断が悪い(≒ルールが悪い)ということになるか。 訴訟ごとに判決が違うというのもApple/Googleみたいな世界的なプラットフォームにはそぐわないところだ。
Avatar
無効になったり有効になったりしてて、最新の情報がわからないw
Avatar
@freddi(配信用) くん、メアドもパスワードも忘れられたもう使わない子なのでkickお願いできます?
Avatar
Avatar
freddi
@freddi(配信用) くん、メアドもパスワードも忘れられたもう使わない子なのでkickお願いできます?
omochimetaru 8/2/2021 6:17 AM
キックしました
Avatar
ありがとうございます
Avatar
スレッド機能、ここまで良いと後からスレッドに格納するみたいなのが出来ると良さそうだなと思った
Avatar
まとめサイトっぽい
Avatar
Kishikawa Katsumi 8/5/2021 4:52 AM
なるほど。確かにねえ。
Avatar
スレッドを使う気満々なんですが、話題が平たく展開されちゃってると、そこからスレッドを使うと話題がブツ切れになってしまうので使えない
Avatar
まとめサイトw
Avatar
Kishikawa Katsumi 8/5/2021 9:18 PM
そういう機能がなくてもBotを使えばできる気がするな。 指定した発言をBotが改めてスレッドとして投稿し直す、って感じ。 発言者のアイコンが失われるかもしれないけど。
Avatar
omochimetaru 9/15/2021 3:12 AM
3:12 AM
Discordのサーバーブーストのティア条件がサイレントで緩和されたらしくて
3:13 AM
このサーバーが最強の3レベルになった
Avatar
つよつよ
Avatar
バニティURLってなんですかね
3:14 AM
3:14 AM
なんか作れるらしい
Avatar
招待URLということは、いつもの mono さんのブログを貼り付ける方法でなくてもよくなる?
Avatar
omochimetaru 9/15/2021 3:18 AM
そうですね。 discord.gg/swift みたいな。
3:18 AM
でも、誰かがブースト課金をやめたりしてクリスタルが15を割った瞬間にロストするので (edited)
Avatar
なるほど、それは辛い。
Avatar
omochimetaru 9/15/2021 3:18 AM
保守性が微妙ですね。
Avatar
あのブログエントリー、どこをクリックしていいのかわかりづらいから、 swift-developers-japan 公式のペラサイトがあるといいかもしれないと思ってる。
Avatar
omochimetaru 9/15/2021 3:21 AM
もうだいたいみんな参加してるような気もするけどあってもいいかもですね
Avatar
よさそう
Avatar
GitHub Organization 作って管理者みんな触れる GitHub Pages の swift-developers-japan.github.io とかだと良さそう。
3:25 AM
#manage の話題な気がしてきた。
Avatar
omochimetaru 9/27/2021 9:27 AM
🦀: たし かに 🛷 : それな ( ソリ )
sorena 1
9:27 AM
ギリギリわかるシリーズ
Avatar
yutailang0119 9/27/2021 10:54 AM
現代の若者はわからなそう
Avatar
現代の若者が使うんですよ…
🛷 2
Avatar
このサーバーの絵文字もう少し増やしたさあるけど、あっても使わないかな?🤔
Avatar
絵文字追加ロールが昔あったけど私がものぐさだから追加しなかったんだよね
11:04 AM
追加します?権限振れるようになったんでお渡ししますよ (edited)
Avatar
おっ、じゃあ絵文字追加ロール的な権限ください。邪魔にならん程度に少しずつ増やしていこうかな
t_yasashii 1
t_saikou 1
t_tensai 1
Avatar
ありがてぇ〜
11:08 AM
権限お渡ししました。今まで出来ていた事が出来なくなってたらお知らせ下さい
iosdc_arigatou 1
Avatar
omochimetaru 9/27/2021 1:46 PM
emojierが右のリストに出るようにした。
t_yasashii 1
Avatar
Kishikawa Katsumi 9/28/2021 1:01 AM
カニはそういう意味だったのか。 (edited)
Avatar
この文字だけの絵文字reaction、少なくとも自分の経験する英語圏ではみたことないのでいつもとても新鮮に感じてる
Avatar
Kishikawa Katsumi 9/28/2021 1:38 AM
意外。ありそうですけどね。Goodとか。OKとか。
Avatar
🆗 はあるけどあんまりつかわれてるの見たことないなあ
1:39 AM
どちらかというとinternet memeのやつがおおい
Avatar
Kishikawa Katsumi 9/28/2021 1:40 AM
確かに日本語じゃないSlackやDiscordをさらっと回ってきたけどないですね。
Avatar
なんか比較文化的なコンテキストで誰か研究して理由を探して欲しい
Avatar
海外だと🤔がどう捉えられるかわからないけど、日本だと悪い意味(なにいってんだこいつ)と捉える人もいて、わかりやすいテキストによる絵文字が誤解なく伝わるから好まれる風潮はあるのかなーと思ってる (edited)
🦀 1
Avatar
逆に多分婉曲表現が単語では行えないから(長くなる)短い表現にするとカドが立つというのはありそう。
t_naruhodo 1
Avatar
This self-paced course will discuss the major ideas used today in the implementation of programming language compilers, including lexical analysis, parsing, syntax-directed translation, abstract syntax trees, types and type checking, intermediate languages, dataflow analysis, program optimization, code generation, and runtime systems. As a resul...
Avatar
$199 かあ
12:25 AM
ああ、みるだけならタダなのか
Avatar
discordにslackみたいなスラッシュコマンドがいつの間にか入ってた
7:57 AM
ビルトインって書いてるからカスタムコマンドも作れるようになりそうですね
👏 1
Avatar
カスタムコマンドも作れます https://discord.com/developers/docs/interactions/application-commands (対応してるライブラリ少ないけど)
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
Avatar
/swift とか作れそう
Avatar
Avatar
tarunon
/swift とか作れそう
スラッシュコマンド導入直後にボットでの利用を検討しましたが、複数行入力をサポートしていない、予定もない、で断念しました。 issueを追記: https://github.com/discord/discord-api-docs/issues/2381 (edited)
Description introduce a &quot;long&quot; argument type to support multi line input Why This is Needed sometimes writing more is just super important! I encountered the issue when thinking a...
Avatar
複数行できないのか😇
10:48 AM
いい話だ
Avatar
大学のmac部屋なつかしい
Avatar
うちの大学DELLのディスプレイにCentOS or Ubuntu だったなあ
6:20 AM
あれはあれで使いやすかった。キーボードもHHKB感あったし (edited)
Avatar
あの部屋のせいでUSキーボードしか使えなくなったまである
tasikani 1
Avatar
うちの大学は普通のWindows機(富士通製)だったな、所属した研究室がMacだったけど
Avatar
たしかにUSキーだったので日本語入力の切り替えがめんどくさかったなあ
Avatar
ほとんどの部屋は solaris だったかな。cshデフォで鍛えられた。共有ホストと共有ストレージは魔界だったな… 古き良き時代
Avatar
iscord社は現地時間12月7日、Discordの新機能「Premium Memberships」について発表した。この機能により、サーバーオーナーは独自のサブスクライブサービスを展開できるようになる。
12:34 PM
ほお
Avatar
swiftbotのカンパとか出来そう?
Avatar
いいですね
2:16 PM
サーバーオーナーは「プレミアム会員」向けのチャンネルを設定したり、サーバー自体をプレミアム会員向けにできる
2:16 PM
ほう
2:17 PM
プレミアム会員向けのサーバーにできるのはBoostに近いやつなのかな、公式みるか
Avatar
1万人以上の利用者がいた、国内の大手Discordサーバー(※同じ趣味を持つ人たちが参加するグループのようなもの)「Twitter2」が、悪意ある第三者の攻撃によって11月に凍結されていたことが分
😱 2
Avatar
M1 max のDiscord くっそ遅く感じるんですが、理由やっぱまだM1対応してないから?
Avatar
Canary 版で Apple Silicon 対応したとのウワサ
Avatar
なるほど、
5:50 AM
ゲーマーに人気のメッセージング、ボイスチャット、ストリーミングプラットフォームDiscordが、…
5:50 AM
インスコしてみよう
5:51 AM
さほどもっさり感かわらなかった
5:52 AM
ワイだけかもしれないなー あざます
Avatar
Rosettaで使ってますがサーバー切り替えがすごく重い感じしますね…
Avatar
初心者向けの質問は #beginner-help_archived だけど、中級以上の質問はどこでするのが適切なんだろ? それぞれのチャンネル(swiftpm や firebase など)でいいのかな?
Avatar
それぞれのチャンネルで良いと思います。どこに置けば良いか解らなければ、それはそれで #beginner-help_archived に置いて貰えれば良さそう
👍 1
Avatar
Avatar
tarunon
それぞれのチャンネルで良いと思います。どこに置けば良いか解らなければ、それはそれで #beginner-help_archived に置いて貰えれば良さそう
確かに…ありがとうございます!
Avatar
僕は一生初心者の気持ちでいるのでいつも #beginner-help_archived で聞いてた
Avatar
みんな心は初心者
Avatar
実は「beginner」を冠する必要がない?w
Avatar
Avatar
hironytic
実は「beginner」を冠する必要がない?w
それはアリかも
Avatar
helpにして一番上に持っていく?「なんでも」的なニュアンスがあったほうがいい?
Avatar
初心者でも気軽に質問しやすいようにってことでbeginner-helpになってた気がする
Avatar
Flutter User JPのDiscordだとこんなわけかたしてるのか🧐
Avatar
omochimetaru 1/20/2022 6:28 PM
After spending years working on AI/ML infrastructure, Modular AI is finally going to build it right. It is time for the best SW architects, engineers and product leaders to come together to lift the world’s ML compute. Learn more at https://t.co/nvvUnTFt9e #modular_ai #AI #ML
Likes
125
6:29 PM
クリスラトナーがAI開発のソフトウェア基盤作る会社を始めた?
Avatar
Kishikawa Katsumi 1/20/2022 7:01 PM
おおー。
Avatar
Kishikawa Katsumi 1/20/2022 8:10 PM
aiドメインってccTLDだったのか。イギリス領アンギラとのこと。
Avatar
https://podcasts.apple.com/us/podcast/lfk-mobile-devpods/id1599053653 うちの会社のPodcastでshizさんがおもろいSwift latest newsシリーズ始めたのでぜひ聞いてください (edited)
✨ 2
1:40 AM
(ほぼ本人の趣味で喋ってもらっているw
1:40 AM
Avatar
おーありがとうございますw
(ほぼ本人の趣味で喋ってもらっているw
はい、本当に趣味で興味あることを勝手に話しているだけなので、なんとなーく聞き流していただければうれしいですw
😄 3
Avatar
UIAlertControllerのbackgroundColorってよく見たら斑模様なんですね。カラースポイトで見てみるとC8C6C7, C6C5C5, C7C6C6, C7C6C5, C6C6C6とかめっちゃ色んなカラーが混じってる。
excellent 2
Avatar
これ裏側にUIEffectViewがあって背景にブラーエフェクトをかけた結果モアレになっているという話な気がします。おそらく白単色だとフラットな色になるんじゃないかなぁ (edited)
🤣 1
Avatar
すりガラスみたいな奴ですね 解りやすいスクショ貼っておこう
👀 1
Avatar
あ〜〜〜それだ
Avatar
danger-swift-xcodesummaryのalternativeプラグイン作った、これでxcresultをパースしてビルド中のワーニングやエラーを拾ってくれるので、Gemパッケージのxcprettyとxcpretty-json-formatterに依存せずに済んだ 💪 (作ったモチベーションはRuby依存辛いから開発環境からRubyを完全に取っ払いたかった https://github.com/yumemi-inc/danger-swift-kantoku
A danger-swift plug-in to report xcresult in your PR. - GitHub - yumemi-inc/danger-swift-kantoku: A danger-swift plug-in to report xcresult in your PR.
Avatar
Kishikawa Katsumi 2/21/2022 12:44 PM
XCResultKitっていうのがあるんですねえ。
Avatar
自分でパースするの面倒だなと思って調べてみたらありました
Avatar
Kishikawa Katsumi 2/21/2022 1:48 PM
面倒ですね。。。
2:03 AM
別のやつでよく「M1ではない」とか見るので
Avatar
Apple自身が制限しているので、Mac OSデバイスの場合、拡張モードでは、2つの外部モニタの画像は同じになります。
トリプルディスプレイ用途ではダメそうですね… 別の機種でHyperDrive GEN2というのを持っていますが、M1 Maxで使ってみたところ外部モニタはミラーリング表示でしたのでこれも同じような感じになりそうですね。 https://www.mycase.jp/goodsimg/gadget/hp48021_4.jpg
Avatar
ぴえん
2:06 AM
ありがとうございます
Avatar
ディスプレイリンクという規格になってて、それに対応してれば複数枚いけるという話
👀 1
Avatar
Avatar
trickart
Apple自身が制限しているので、Mac OSデバイスの場合、拡張モードでは、2つの外部モニタの画像は同じになります。
トリプルディスプレイ用途ではダメそうですね… 別の機種でHyperDrive GEN2というのを持っていますが、M1 Maxで使ってみたところ外部モニタはミラーリング表示でしたのでこれも同じような感じになりそうですね。 https://www.mycase.jp/goodsimg/gadget/hp48021_4.jpg
たしかにかいてあった。。。
Avatar
Avatar
tarunon
ディスプレイリンクという規格になってて、それに対応してれば複数枚いけるという話
https://dev.classmethod.jp/articles/using-vertical-display-when-connected-to-displaylink-in-m1-mac-book-air/ たしかに調べたら先駆者のtryありました。ありがとうございます (edited)
2:08 AM
ディスプレイリンク初めて聞いた気がする
Avatar
DisplayLink以外だとThunderboltのバカ高いドックだと行けたりしますね。(結局OWC Thunderbolt Dockというのを買って使っている) https://trickart.hatenablog.com/entry/2022/03/21/230050
転職し、一人暮らしを始めたばかりの新居でリモートワークをすることになった。 そこで前々からやりたかったトリプルディスプレイ環境を構築するためにいい感じのドックがないか調べOWC Thunderbolt Dockを買った。 OWC Thunderbolt Dock 実際調べた中で参考にしたのはYoutubeの動画。 Youtuberのレビュー動画でM1 Maxでトリプルディスプレイをするという自分がやりたい構成に近かったため。 動画でも紹介されているが、アミュレットというアキバのショップが出しているブログ記事がとても参考になる。 他にレビューがあるようなドックで、 MacBook Proでトリプ…
Avatar
5まそ・・・
Avatar
Macへの電源供給がいらないならThunderbolt 3 mini Dockというのがもう少し安いですね (買って試したわけではないですが多分動きそうなスペック表記になってる) https://owcdigital.jp/WP/thunderbolt-3-mini-dock/ (edited)
Avatar
ベストはトリプルディスプレいなので、前者のほうが良さそうです
Avatar
質問するのに慣れてない人向けに、質問用の入力フォーマットとかあったほうがいいのだろうかとふと思った。↓みたいなやつ [発生環境] Xcode 13.5 iOS 15.5 iPhone 13 Pro Simulator [解決したい問題] xxxが表示されない xxxが表示されるようにしたい [発生手順] 1. Aボタンをタップする 2. Bボタンをタップする [コード] コードを見せても問題ない人はリンクは貼ったり、記述したり 最小限で発生するコードだと尚望ましい (edited)
Avatar
良さそう
10:19 AM
テンプレにコードへのリンクがあった方が良さそうだな、とちょいちょい思いますね
Avatar
確かに
Avatar
問題の再現する最小構成のコード、だとちょっと難しいか?
10:22 AM
でもこのコードを出すことが、問題解決への近道なんだよな
t_tashikani 1
t_desune 1
10:22 AM
自己解決にも繋がる
Avatar
Kishikawa Katsumi 5/24/2022 10:22 AM
たいていの問題は 1 回答者の手元で再現するためのプロジェクトが共有されている 2 動作が想定できそうなコードが載っている 3 原因の箇所のコードとエラーの箇所のコードが載っている の順で、解決できる可能性が高いです。 そうでない場合は不可能なことが多いです。 みたいなことが書いてあるとコードを載せようという気になるかも。 (edited)
10:24 AM
たぶん問題解決の手順に現象を手元で確認する、というのがあるということを知らない人が多いんじゃないかな。 (edited)
Avatar
簡単な質問だとエスパーで何とかなってしまうというのも、一端にありそう
10:27 AM
そして問題があるときにそれが簡単かそうでないかの線引きが難しいので、水が低きに流れると
Avatar
Kishikawa Katsumi 5/24/2022 10:29 AM
WWDCのSlackはなんか質問専用のUIがあった気がする。そんな機能ないかな。 自由記述で上手に質問をするっていうのは簡単じゃないし。
Avatar
Slashコマンドで質問フォームみたいなのが出るのを作るとかですかねー(出来るのかわからないけど) (edited)
Avatar
¯\_(ツ)_/¯
10:32 AM
ノイズみたいなコマンドがビルトインされてる
t_kusa 1
Avatar
私の権限だと作れそう
10:33 AM
いや、違うわ
Avatar
もしくは質問Discord Bot的なのがだれか作ってるかもしれないから、それを探して使えばいけるかもか (edited)
10:38 AM
1番手軽そうなのは、フォームを書いた発言をピン止めして、チャンネルトピックとかでそれ使ってねみたいに促すパターンかな
Avatar
Kishikawa Katsumi 5/24/2022 10:50 AM
https://www.formie.gg こういうの使えばフォームは作れそうだけど、専用にかなりカスタマイズしないと有用なものにするのは難しそうですね。
Formie is a feature-rich Discord bot empowering it's users to create their own forms in Discord over simple and user-friendly Slash Commands, menus, and Labels!
10:51 AM
質問Formはあんまり解決にならなさそうだ。
Avatar
とりあえずチャンネルトピックにテンプレ案は貼っておいた
☺️ 2
10:56 AM
(チャンネルトピックiphoneアプリだとコピーできなくて役に立たないw
Avatar
(macOSデスクトップアプリでもコピーできないw)
😭 1
Avatar
Windows、macOSのアプリは、直でコピーできなくて、右クリックからコピーする感じですね (edited)
Avatar
こんにちはです。WWDCの動画をDeepLで翻訳して、動画と同期再生させるアプリをSwiftUIで作ってみました。WWDC視聴のお供に https://github.com/hirobe/HonnyakuWWDC
App that translates WWDC videos into Japanese by DeepL and reads them in sync with the videos on the iOS/Mac voice assistant. - GitHub - hirobe/HonnyakuWWDC: App that translates WWDC videos into Ja...
👏🏻 7
t_kami 3
4:31 AM
コード公開してるので、変なところあったらツッコミあると嬉しい
Avatar
Kishikawa Katsumi 9/19/2022 10:03 AM
DiscordにForumっていう機能が来るらしいんだけどどう違うんだろうね。
Avatar
新しいチャンネルを作るときにフォーラムのチャンネルを作れるみたいですね
Avatar
Kishikawa Katsumi 9/19/2022 10:31 AM
テーマを決めて議論できる、って感じなのかな。スレッドにタイトルがつけられる、みたいな。
Avatar
試してみようと思ったんですが、自鯖もここも選択肢がないのでよくわからなかった
10:32 AM
テスト中かなぁ
Avatar
Kishikawa Katsumi 9/19/2022 10:32 AM
まだ誰でも使えるわけではないのか。
Avatar
コミュニティサーバーなら使えるはず?来なかったらDiscordクライアント再起動すると来るかもしれない
Avatar
チャンネル設定にStageというのがあるけど、これはまた違いますよね
3:20 AM
プレゼンに使うやつかなこれは。
Avatar
それはまた別ですね、Twitter Spaces とか Clubhouseみたいなやつ
Avatar
Kishikawa Katsumi 12/9/2022 3:18 AM
今年もDiscordのクリスマス企画始まった https://discordmerch.com/
Discord Powered by DOTEXE
Avatar
3だけなんか変
Avatar
ツノ問題は「ツ」と「ノ」だけグリフ収録したからだけど、ここは半角数字の3っぽいんだよなあ
Avatar
"3 時間"だけ半角スペースが入ってる。 https://discord.com/assets/7369a72ffef9e7ebcfcf.js
Avatar
MUTE_DURATION_1_HOUR":"1時間","MUTE_DURATION_3_HOURS":"3 時間","MUTE_DURATION_8_HOURS":"8時間","MUTE_DURATION_24_HOURS":"24時間","MUTE_DURATION_ALWAYS":"ミュート解除するまで","MUTE_UNTIL":"通知オフ期間","MUTED_UNTIL_TIME":"{endTime}まで通知オフ" ほんとだ!
Avatar
Safari 16.3 beta 1でdiscord.comを開くとSafariが落ちる様になり、復旧がとても面倒だった。DiscordをSafariで開いている人は少ないと思うけど。
Avatar
Safari起動時にタブの復元が生じて即死するから囚われてしまう?w
Avatar
まさにそれ。
Avatar
ウケる。WiFi切ってから起動したら良いのだろうか。
Avatar
macOSのインストーラをMac App Store経由でダウンロードしてインストールし、初期リリース付属のSafariへ戻してから、最新リリースのSafariへアップデートして復旧。 (edited)
Avatar
めっちゃ大変そう
Avatar
Mac App StoreからmacOSのインストーラをダウンロードするには、にわさんのスクリプトを参考にした。 https://gist.github.com/niw/1bac63d716f71555fa6bbda43ddfc504
A script to download macOS install image and create an install disk image - download_macos_and_create_install_disk.sh
👀 1
3:37 PM
このスクリプトには何度もお世話になってる。
Avatar
え,Discordって直前の発言を s/ねこ/もふ の形式で発言しなおすことで訂正できたのですね。 (/gとかは使えませんけれど)
Likes
1165
Retweets
334
Avatar
ねこかいつよし (edited)
10:23 AM
ほんとだ
Avatar
修正前が正しくて草
Avatar
じんるいみなねこをかうべき
Avatar
Skypeでもsedっぽいコマンド使えたの思い出しました。今試したけどSlackはだめでした。
Avatar
Kishikawa Katsumi 12/25/2022 2:04 PM
Slackもできますよ。いつからかSlashがSlashコマンドに吸われちゃいますけど吸われないように入力したらいけます。
t_arigatou 2
2:04 PM
@AlFl Not actual regex, but we do support s/foo/bar … you just need to start commands with a slash in Slack. So: /s/foo/bar
Avatar
あー、先頭に/が必要なんですね。なるほど。
Avatar
Kishikawa Katsumi 12/25/2022 2:25 PM
要望があるのか絶対こういうの実装されてますよね。
Avatar
日本人だと漢字の変換ミスを素早く直すのに役立ちそうですけど、海外だとスペルミスを直してるんですかね?普通に便利で助かります。
Avatar
https://prtimes.jp/main/html/rd/p/000000090.000049716.html @shiz san と翻訳を担当した本のプレスリリースが出たのでよろしくおねがいします〜
株式会社秀和システムのプレスリリース(2023年1月20日 07時00分)1月28日、新刊『Good Code, Bad Code ~持続可能な開発のためのソフトウェアエンジニア的思考』発刊!
👏 16
Avatar
こんにちは、Ethereum JapanのMasatoと申します! Swiftと直接は関係ないですがイベント告知させてください。 4/14からETHGlobal Tokyoというグローバルハッカソンが開催されます。そこで入賞すると50万円~500万円のグラントがもらえ、またUniswapのようなクリプト領域のトッププロトコルから評価されて自身のキャリアに繋がります。 実際、2022年開催のDevConやETHIndiaでは日本人エンジニアがインドやコロンビアまで行き、賞金を獲得して帰ってきてます。 とはいえ情報がなさすぎるのが日本の現状なので、Ethereum Japan主催で、今週土曜5pm JSTからツイッタースペースにて「ETHTokyoハッカソンの情報をキャッチアップするAMA」を開催します。 もともとweb3エンジニアの方はもちろん、今クリプト/web3に興味あるエンジニアにとってもこれ以上ないチャンスだと思いますし、ぜひそういう方に参加していただきたいと思っています。 ぜひAMAのご参加お待ちしています!(質問等あればいつでもDMにお待ちしています) https://twitter.com/Ethereum_JP/status/1635949994175000577?s=20
【AMA開催のお知らせ】 世界中で開催されるETHGlobalのような大規模ハッカソンでEthereum Foundationなどからプライズ受賞経験のあるスピーカーを招いたAMAを開催します! こんな人におすすめ ☑ まだETHGlobal Tokyoに参加するか悩んでいる ☑ Web3開発に興味ある ↓参加 https://t.co/1FcOzBR44m
👍 1
Avatar
https://archive.swiftdevelopers.jp をホスティングしてくれてたのって @Kishikawa Katsumi でしたっけ、落ちちゃってるっぽいので取り急ぎ共有です (edited)
👀 1
Avatar
Avatar
tarunon
https://archive.swiftdevelopers.jp をホスティングしてくれてたのって @Kishikawa Katsumi でしたっけ、落ちちゃってるっぽいので取り急ぎ共有です (edited)
Kishikawa Katsumi 4/25/2023 5:10 AM
ありがと。今朝からっぽいですね。なんかHosting環境だけ問題っぽいけど全然わからない。/healthzは返ってくる。転送量オーバーかな。
Avatar
アクセス増えてるとかですかね?
Avatar
Kishikawa Katsumi 4/25/2023 5:14 AM
増えてるといえば増えてるんだけどそれでも全然問題が出るような数ではなかったですね。
5:15 AM
Cloudflareで止まってる気がするな。
Avatar
そういえば今年WWDC Extended的な会ってどこかで企画されてますか?ないなら弊社で企画しようかなと思いまして 👀
Avatar
各社の中の人にメンションしたらわかりそうだけど、誰がどこで働いてるかわからん…
Avatar
ヤフーさんの中に人誰かいますかね?(とりあえずヤフーさんがやってくれそうだから 👀
Avatar
組織構造どうなってるかわからんけど @giginet@freddi が結構近そう
Avatar
あれ?フレディさんLINE Tokyoじゃなかったっけ?
Avatar
Zホールディングスと、LINE、ヤフーの3社が合併する。2日に開催の取締役会において決議され、2023年度中を目処に合併を実施する。
👀 1
Avatar
mjsk
Avatar
まだ明言出来ないけど、やるかもって話は小耳に挟んでますね。Y!のDevRelとも面識があるので、要望があったこと伝えておきますー
Avatar
そしたらヤフーさんに期待します 💪
Avatar
Kishikawa Katsumi 4/25/2023 7:15 AM
https://archive.swiftdevelopers.jp/ 直った説ある。当初は後ろのドメインに直接アクセスしてもダメだったので作り直してそれでファーストアクセスは可能になったけどJSの実行で失敗していてその原因がJSの後ろにつけたキャッシュバスターのクエリ(?v=xxxみたいなの)だったのでいったんそれを消したら直った。 クエリがあるとJS実行できないみたいな変更がブラウザにあったのかな。直接の原因はともかく理由が全然わからん。
🙏 1
Avatar
こんにちは、LINE DevRelの佐藤です。 大変お待たせしました!今年もヤフー、LINE、ZOZOの3社合同でWWDC Extendedを開催しますので、ぜひご参加ください✨(オフライン+オンラインのハイブリッド開催を予定しています) https://yj-meetup.connpass.com/event/281562/
# WWDC について WWDCは、Appleが行なっている技術者向けカンファレンスです。 今年はオンラインと一部オフラインのハイブリッド開催となり、日本時間の6月6日に行われる予定です。 https://developer.apple.com/wwdc23/ # WWDC Extendedとは WWDC Extended は、WWDCのメインセッション(Keynote)をさらに楽しむためのイベントです。 今年は、オフライン(リアル)とオンラインのハイブリッド開催です。オフライン会場は2019年以来となる、ヤフー紀尾井町オフィスにある<LODGE>です。またオンライン会...
🤙 5
Avatar
Kishikawa Katsumi 6/9/2023 3:53 AM
ユーザーネームから数字が取れてkishikawakatsumiになった。
✨ 2
Avatar
僕もkoherになりました。
🎉 2
Avatar
最近のサービスはもうniw取れない... つらい... (edited)
😢 6
Avatar
extension SwiftUI.Font { static var title2: Self { return .system(size: 22, weight: .bold, design: .default) } } struct ContentView: View { var body: some View { Text("Hello, World!") .font(.title2) } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } ↑こんな感じで既存の名前と被ったカスタムstatic letがある時、普通にビルドもシミュレーター実行も実機実行も問題ないのに、Xcodeのプレビューだけエラーになってプレビューできないの、コンパイラーのバグに見えますがどうでしょう? 🤔 == PREVIEW UPDATE ERROR: CompileDylibError: Failed to build ContentView.swift Compiling failed: ambiguous use of 'title2' /Users/x_shi/Desktop/InlinableTest/InlinableTest/ContentView.swift:22:20: error: ambiguous use of 'title2' .font(.title2) ^ SwiftUI.Font:6:23: note: found this candidate public static let title2: Font ^ /Users/x_shi/Desktop/InlinableTest/InlinableTest/ContentView.swift:13:16: note: found this candidate static var title2: Self {
Avatar
宣言できていいのか問題はありそうですが一旦それはおいといて、 これってテストもコケるんじゃないかと推測しましたがどうでしょう?
👀 1
Avatar
omochimetaru 8/15/2023 8:25 AM
本題と関係ないけど title2 って既存とかぶるんですか? (edited)
Avatar
SwiftUI.Fontにも title2 はありますね、コメントアウトしてもちゃんと動きます
😲 1
8:27 AM
テスト回してみました、特に何も言われなかったです 👀
Avatar
omochimetaru 8/15/2023 8:28 AM
ちなみにプレビューは
8:28 AM
アプリをフルビルドしないで部分ビルドして @_dynamicReplacement を使うことで、
👀 1
8:29 AM
高速に変更をPreview Canvasに反映するために
8:29 AM
ソースコードをちょっと書き換えたりとかいろいろハックをやっているっぽいので
8:29 AM
その挙動との兼ね合いによるバグであって、
8:30 AM
コンパイラ目線では本当に不正なソースコードというかswiftプロジェクトが渡されている可能性がありそう。
8:30 AM
あ、でもcandidateの2つは正しい2つなのか。 そうするとモジュール曖昧性が出てるのかな
Avatar
ちなみに実行してみた時、表示は正しく(?)カスタム定義の方でレンダリングされています (edited)
Avatar
omochimetaru 8/15/2023 8:31 AM
プレビューのときは ContentView だけ別モジュールに分離されてたりするかも。
8:34 AM
エラーメッセージの行数はsourcemapされている気がするんですよね
8:35 AM
(なんらかのバグを突いて)コンパイラをクラッシュさせたらクラッシュメッセージに食わせてる本当のファイルパスが出てきて、ビルドしようとしてるプレビュー用のプロジェクトが見れそう。 (edited)
Avatar
title2: Self ここを title2: SwiftUI.Font にしたらどうなります?
Avatar
同じく、ビルドも実行もできるけど、プレビューだけできないですね 👀
Avatar
フーム… コンパイルが通ってしまう方が異常で、そもそもその書き方は避けた方が良いだろうな、という感覚があります
8:42 AM
型が曖昧な場合とはちょっとニュアンスが違って、明示的な優先も出来ない状況なので
Avatar
omochimetaru 8/15/2023 8:43 AM
たしかに。ドットAPIは本当に両方見えてる場合に完全修飾して選択する方法がないですね。
Avatar
そうですね、根本的には名前変えた方がいいですが、UIKitのコードの書き換えなので、ちょっと変更を抑えたい気持ちです 😇
Avatar
omochimetaru 8/15/2023 8:44 AM
UIKitのときには title2 が Appleの提供するAPIと被ってなかったのか・・・w (edited)
8:45 AM
セマンティクスを変えずに切り替えようとしたらSwiftUIには title2 が居たと。 (edited)
Avatar
かぶってなかったか、被っててもそもそもPreviewなかったから普通にカスタム実装が優先されたから気づかなかったかw
Avatar
そもそも自前のデザインリソース類を宣言するときは、ColorやFontのextensionを生やすのではなく
8:46 AM
ColorsやFontsを自前で宣言しちゃった方が何かと取り回しが良い印象がありますね
Avatar
omochimetaru 8/15/2023 8:46 AM
.vendor.title2 にはできないかなあ?ここの型解決特殊だから無理かな
Avatar
Xcode15でColorは楽になるんだったかしら
Avatar
ごもっともですが、そもそも今更UIKitからSwiftUIへの移行作業が強いられた時点でお察し(
😇 1
Avatar
スレチかもしれないのですが、iPhoneでスクリーンショットを撮影すると画面左端にスクショが表示されると思うんですが、そうならず無言で写真アプリに保存されてしまう症状が出ていまして、どなたか経験者or解決策知っている方いらっしゃいませんか?iOS16から発生してます。
⁉️ 1
Avatar
まるたん 9/30/2023 5:00 AM
iPadですがわかります。エフェクトだけ出てそのまま保存されることが偶にありますね。
Avatar
iPadでも起こるんですね。かなしい。
Avatar
botって今動いてないんですっけ?さっき返って来なかったけど。 @swift-5.9.2 print("Hello")
Avatar
すごくのんびり屋さんになってます
8:43 AM
昨日はお返事10時間後でした
😇 1
Avatar
Avatar
masakihori
昨日はお返事10時間後でした
10時間後w
Avatar
Avatar
koher
botって今動いてないんですっけ?さっき返って来なかったけど。 @swift-5.9.2 print("Hello")
Hello
😇 1
Avatar
ブラジルとの糸電話よりも遅い
Avatar
のんびりとかのレベルじゃなかった😂
Avatar
22時間遅れw
7:01 AM
船で舞鶴から小樽までの時間ですね(比較基準おかしい
🛳️ 1
Avatar
サーバーが火星にあってもこんなに時間かからないですね
Avatar
生きているのが不思議
Avatar
善意で提供していただいてるものなので、仕方ないですね
Avatar
そうですね。不満があるわけでなく、現象がおもしろいです。
👍 2
Avatar
Serverlessアーキテクチャの場合、リクエストを受けてからフルビルドでコンテナを立ち上げてるとかだと、スペック如何によってはこうなりそうですね
8:56 AM
discordのbotの仕組みも、多分req/resじゃなくてpub/subになってて、タイムアウトしないような仕組みになってるんだと思います
Avatar
なるほど
Avatar
あー、ボットは旧来のWebsocketによるメッセージ監視です。 (edited)
12:23 PM
今5.9のボットを再起動してみたのですが、RenderのインスタンスからDiscordのWebsocket gatewayへ接続できないみたいです。
12:24 PM
自宅で5.9と同じボットアカウントを動かすと正常に動くので、RenderとDiscord間の接続に異常がありそうです。
t_naruhodo 2
Avatar
適切なチャンネルが無さそうだったんですが 最近jjというVCSを知って、気になってる 触ってる人とかいますか https://github.com/martinvonz/jj
A Git-compatible VCS that is both simple and powerful - martinvonz/jj
12:24 AM
・git互換だけど、staging領域がなくて、 ワーキングコピーでの変更が即座にコミットの作成+変更されるたびにamendになっているらしい (edited)
12:25 AM
・マージする時はコンフリクト解消してからコミットするんじゃなくて、一度コンフリクト付きでマージしたコミットができて、その後で解消コミットをするらしい(理解があってるかちょっと自信なし) (edited)
12:25 AM
・全部のコマンド操作がリビジョン管理されていて、現在の状態に至る理由を調査できるらしい (edited)
Avatar
Kishikawa Katsumi 2/13/2024 12:30 AM
うっかりコミット前の変更が失われるっていうことが起こらないということかしら。
12:31 AM
それでGit互換っていうことはGitHubにもPushできそうだから自分の手元で使うのはかなり良さそうだな。
12:32 AM
あ、柔術ってやつか。昨日ちらっと話題になってたのを見たな。
Avatar
もう一個あった ・コミットの前にコミットメッセージだけ書ける ・ブランチ名を切る前に匿名でブランチ切れる(だったかな?)
Avatar
Avatar
Kishikawa Katsumi
あ、柔術ってやつか。昨日ちらっと話題になってたのを見たな。
あ、名前はJujutsuでしたね jjはコマンド名が短いだけか
Avatar
Avatar
Kishikawa Katsumi
うっかりコミット前の変更が失われるっていうことが起こらないということかしら。
かなあ?自動でコミットというのがどういう感じの挙動なのかよくわかってないですが
Avatar
Kishikawa Katsumi 2/13/2024 12:46 AM
Jujutsuのコミットにあたる操作はGitでいうとSquashとかRebaseみたいな感じで清書する、みたいに見えるな。
Avatar
そうですね。なんか、gitだと先にやったり後にやったりして脳が疲れる部分って確かにあって、
12:48 AM
jjはそれを、後にやったり先にやったりできて、楽そうに見える
12:49 AM
コード書いてからコミットメッセージ書こうとするとやったことを要約しようといけないけど (edited)
12:49 AM
本当は作業テーマを先に言葉として整理してから着工した方が脳に優しそう (edited)
Avatar
ある作業中に別の小さな問題が発覚して、それを治してからやる、みたいなシチュエーションは割と起こることと思うけど、そういうシナリオだと後から整理した方が楽そうに感じる
Avatar
omochimetaru 2/13/2024 3:36 AM
あー、ありますねえ gitでもめんどくさくなってとりあえず混ぜてやってからrebaseで辻褄合わせしたりしている
3:37 AM
そういうとき僕はもうtempってブランチで作業したりしていて (edited)
Avatar
だいたいコミットの単位が、手元でテストを通せたタイミングでやるから、コミット時に整理という格好になっています
Avatar
omochimetaru 2/13/2024 3:37 AM
jjの思想はフィットしてそうな気がしてる
Avatar
yutailang0119 2/13/2024 6:00 AM
柔術なのか
Avatar
呪術にも見える
Avatar
omochimetaru 2/13/2024 6:08 AM
www
Avatar
What's 'jujutsu' from? 柔術 (jujutsu) 呪術 (jujutsu) 呪術廻戦 (jujutsu kaisen)
Avatar
皆様はどのような教材を使ってSwiftを勉強してますでしょうか 自分はAppleが出してるSwiftUIのチュートリアルとかをやり始めなが 色んなサイトの初心者向けの資料を見てるのですが、なにかおすすめのサイトや本、資格などがあれば教えていただければ幸いです
9:58 AM
資格に関してはApp Development with swiftを検討して居るのですが 有効なのでしょうか??
Avatar
Avatar
えーこ
皆様はどのような教材を使ってSwiftを勉強してますでしょうか 自分はAppleが出してるSwiftUIのチュートリアルとかをやり始めなが 色んなサイトの初心者向けの資料を見てるのですが、なにかおすすめのサイトや本、資格などがあれば教えていただければ幸いです
Swiftなら、Swift実践入門とか詳解Swiftとかはおすすめです、ただどっちも比較的に古い本なので、Concurrencyとかの最新のSwiftの機能をカバーできてないです それと公式の動画セッションとして、この[Protocol-Oriented Programming in Swift]はめっちゃおすすめです、Swiftの根本的なコンセプト的なものを詳しく話してるので、特にこれまで他のOOP言語の経験があれば色々ためになる話が多いと思います: https://www.youtube.com/watch?v=p3zo4ptMBiQ (残念ながらなぜか今アップル公式のWWDCページにはもうこのセッションがなくて日本語字幕がないので、ある程度の英語力が求められるかもですが…日本語の解説記事もあるので調べてみるといいかもです) そしてSwiftUIなら、このDemystify SwiftUIは必見です、SwiftUIを理解する鍵です https://developer.apple.com/videos/play/wwdc2021/10022/
Peek behind the curtain into the core tenets of SwiftUI philosophy: Identity, Lifetime, and Dependencies. Find out about common patterns,...
👍 1
Avatar
Avatar
えーこ
皆様はどのような教材を使ってSwiftを勉強してますでしょうか 自分はAppleが出してるSwiftUIのチュートリアルとかをやり始めなが 色んなサイトの初心者向けの資料を見てるのですが、なにかおすすめのサイトや本、資格などがあれば教えていただければ幸いです
App Development with swiftはまだできて年数はあまり経っていませんが、今後活用できるようにしたいという中の人の話は伺ったことがあります。 ここのメンバーも取っている人はあまりいないので取っておくとある意味いいかもしれないです。 https://www.odyssey-com.co.jp/app-dev-with-swift/ 試験は英語ですが、教材になっている 「Develop in Swift 探求」は日本語に翻訳されており初学者にはよくまとまっています。一読するとSwiftを使ったiOSアプリ開発の基本的なものはわかるようになるかと。 (edited)
App Development with Swift(英語版)公式サイト Swiftの基礎知識を証明する資格です
Avatar
【宣伝です】try!Swiftの1週間後の3月30日土曜日、北京で開催されるvisionOSのカンファレンスの、東京ライブビューイングイベントを開催します!興味ある方ぜひご参加ください!(当日の発表は全て英語で行われる予定です) https://swiftgg.connpass.com/event/311559/
## 概要 Let's visionOS 2024は世界各国からゲストを招き、世界中のXRファンとの交流の場を作るカンファレンスです。各スピーカーのテーマはプロダクト、デザイン、開発など様々な分野に及び、アップルの最新プラットフォームであるvisionOSの実体験を交えながら、知見を参加者全員で共有できます。 本イベントは東京分会場で行われる予定で、メインイベント内容は北京で開催されるLet's visionOSカンファレンスの生中継を見ながら議論するイベントです。本会場のイベントは3月30、31日二日連続で開催されますが、東京分会場のイベントは初日のみとなっております。 初日の...
👏 1
Avatar
macOSの日本語入力のライブ変換、いい加減なんとかなりませんかね…(入力内容はUINavigationControllerです)
Avatar
omochimetaru 3/9/2024 1:10 PM
コード打つ時は英数モードにしてるなあ 従来の変換でも、コードのアルファベットをローマ字変換されても困るからそういう癖がついていた (edited)
1:12 PM
ライブ変換が賢ければコード打つときも変換モードでいけるんかね。
Avatar
Kishikawa Katsumi 3/9/2024 1:41 PM
ウチの環境だとそんな変換入ってこないな。普通にUINavigationControllerって打てる。何が違うんやろ。
1:44 PM
この設定どうなってます?
Avatar
あれ徐々に壊れるんですよね、ここまで変になったのも昨日OSアップデートしてからです、前はよくあるのはSwiftを大文字でS打ったのにt推し終わった瞬間全部小文字のswiftになったりする問題です;それと変換学習を一回リセットするとしばらくの間はよくなりますが、時間が経つとまた元に戻るんですよね… (edited)
Avatar
Kishikawa Katsumi 3/9/2024 3:24 PM
設定は一緒っすね。私はそこまで頻発はしてないけど壊れることがあるのはわかりますわ。
Avatar
岸川さんもmacOS14.4ですか?
Avatar
Kishikawa Katsumi 3/9/2024 3:25 PM
14.3.1 (23D60)っすね。14.4出てんの?
Avatar
多分そうです、今家の14.3.1の私物で試してみたら特に問題なかったです、昨日14.4に上げた会社PCが完璧にダメです
Avatar
Kishikawa Katsumi 3/9/2024 3:27 PM
おお、それはなんかバージョンアップでおかしくなったっぽいですねえ。
Avatar
なんか14.4で絵文字のアップデートが入ってるから、そのせいでIMEにバグが入ったんですかね…
Avatar
Kishikawa Katsumi 3/9/2024 3:30 PM
とりあえずワシは14.4はしばらく見送ることにします🙏🏻
t_sorena 1
Avatar
ServerSide.swift - the conference for server-side Swift developers
4:46 PM
これの話ってどっかで出てますかね?(ここでは見当たらなさそうだった
Avatar
On behalf of Apple, we are enthusiastic about supporting ServerSide.swift again! The last conference was great, and I’m looking forward to attending the next one!
4:51 PM
いい話
Avatar
ここでは出てきてないような気がする?Twitterでは流れたりしてた気がします
12:41 AM
ああ今年もやるという話なんですね
Avatar
気になる
Avatar
ChatGPTやClaudeに普段から質問しながら開発している方々いますか? Claude 3の無料版を最近たまに試しているんですが存在しないAPIとかを解説しだしたりしていてこれが課金版のOpusにしたら変わるのか気になっています。
Avatar
Kishikawa Katsumi 3/25/2024 2:50 PM
Claudeがすごいらしいと聞いてから両方にお金払って比べながらやってたんですけど、AppleプラットフォームのAPIの知識はChatGPT 4のほうがしっかりしてましたね。ChatGPTは正しいフレームワークやドキュメントを参照して書いてるように見えるのに対して、Claudeはなんか言葉から推測してるようなことを書くことが多かった。
Avatar
ChatGPTは学習材料にGitHubが使えるからな…プログラミングに関してはおそらくChatGPTの方が優位性がありますね
t_naruhodo 1
Avatar
なるほどー
5:00 PM
自分も今のところGPT-4の方がしっかりした回答得られている気がします。ただClaude3の出力は早いのでコードの変換とかには使えそうかなという所感。
Avatar
僕はまだそこまで使い込めてないですが、こんな感じの意見が多いですね。 https://twitter.com/kmizu/status/1768271745700769972
Claude 3 (Opus)の話題で、GPT-4と比べてそんなに賢いかなという話がちょくちょくあるけど「賢さ」と「知識量」の取り違えというのが正直な実感です。…
12:14 AM
あと、
  • Claudeはcontext windowが大きい(20万トークン(APIは解放されれば100万トークン)まで入力できる)
  • インプットが長くても全体を踏まえて答えてくれる(GPTはインプットが長いと迷走しがち)
  • 添付ファイルの中身もちゃんと読んでくれる(これはUIの問題でGPTだって原理的にできるはずだけど、なぜかやってくれないことが多いように思う)
あたりの合わせ技で、SwiftのProposalの.mdファイルを渡してその内容の細かいところについて質問したりできる(「このProposalのどこかで⚪⚪︎について言及されていましたか?」「◻︎◻︎になっている理由はProposalのどこに書かれていますか?」とか)のがめっちゃ便利だと感じてます。論文のPDFとかでもいけるっぽいですし。
(edited)
t_naruhodo 2
Avatar
知識という面ではChatGPTですねやはり。久しぶりに書くUIKitを使って書くときにAPIを結構忘れていたので質問しながら思い出すのに便利でした。 Context windowを活用した使い方もしてみたいな。ライブラリのコードを一通り読ませて解説させるとかも出来るかも。
Avatar
Vision Pro 実機持ってないけどシミュレータだけでアプリ作って審査出したら通ってしまったんですが、実機での使用感を知りたくて、もし Vision Pro 持ってる暇な方が居たらアプリの使用感とかフィードバック欲しいな…みたいなことってここに書いても迷惑じゃなかったりします?
👍 2
Avatar
#showcase チャンネルを使うのも丁度良いかもですね
🙇 1
Avatar
案内サンクス!
Avatar
@Kishikawa Katsumi コンタクトを取る手段に迷いましたが,SwiftFiddle がドメイン証明書失効しているみたいです (edited)
Avatar
Kishikawa Katsumi 4/4/2024 12:31 PM
ホントですねえ。ありがとうございます。今日明日は家にいないので無理なんですが週末にがんばります。
t_kansha 1
Avatar
Avatar
kebo
@Kishikawa Katsumi コンタクトを取る手段に迷いましたが,SwiftFiddle がドメイン証明書失効しているみたいです (edited)
Kishikawa Katsumi 4/6/2024 8:10 AM
何もしてないけど直りました。自動更新に失敗してクールタイムが設定されてたとかなんだろうか。
8:10 AM
正直クラスタ作り直しかなとか思ってた。
Avatar
そんなこともあるんですね.Certificate Transparency のログとかが見れればわかるかもしれないですね.ともあれよかったです.
12:01 PM
と思ったら私の環境だと複数マシン複数ブラウザで試しても証明書が更新されていないままみたいです.
12:02 PM
@Kishikawa Katsumi もしかしたら確認ミスかもしれないので一応ご連絡
Avatar
Kishikawa Katsumi 4/6/2024 12:13 PM
確かにウチも環境によりますね。なんだろう。
Avatar
サーバやリバースプロキシや CDN など,クライアント側じゃないどこかのレイヤーで証明書がキャッシュされているのかもしれないですね.もし思い当たる部分があれば https://qiita.com/tatmius/items/0020bc121c5806d594e1
TL;DTSSL certificates を renew した後は、nginxをreloadする。ブラウザがちゃんとサーバにたどり着けてるか確認するにはnet-exportが使える詳細な経緯1. 問題の発…
Avatar
Kishikawa Katsumi 4/6/2024 3:11 PM
CloudflareのTransparency Notificationが来たので更新されたとは思うんですよね。iPhoneだとアクセスできるし。ただほかのデバイスだとダメなのがよくわからない。
Avatar
岸川さんの iPhone からアクセスできるのが実は強制的に表示できるようにしているだけとかはないですよね...?Safari 上のエラー画面から辿っていくと可能ですが.
Avatar
Kishikawa Katsumi 4/9/2024 12:01 PM
結局Kubernetesをやめて別の方法で作り直しました。バージョンとかなんか変なところがあったら教えてください。
Avatar
昨日時点で見れないの確認していて、現在見れるようになってます🙌 (edited)
Avatar
Kishikawa Katsumi 4/9/2024 12:02 PM
ありがとう。
Avatar
私も昨日 swiftfiddle-runner-functions-nightlymain リポジトリが作られたのを見た後くらいに手持ちの端末全部で見れるようになっているのを確認してました.
🙏🏻 1
Avatar
Avatar
lovee
macOSの日本語入力のライブ変換、いい加減なんとかなりませんかね…(入力内容はUINavigationControllerです)
最近僕もこの状態になった。あらゆる文章入力で全然関係ない過去に入力した単語とかがバンバン出てくる・・・
😇 1
Avatar
macOSの日本語入力で変換が変になる件、自分は4台のmacを使っているのですが、1台、この症状が発生しました。『かわせみ4』に切り替えて凌いでします・・・
Avatar
omochimetaru 4/15/2024 3:01 AM
使い込んでいくと発症するような感じの現象なんですかね・・・
Avatar
学習データが溜まっていくといずれ発症するようです、発症するたびに学習データリセットして凌いでます…
Avatar
omochimetaru 4/26/2024 1:35 AM
うわあああああああああああああああああやべえええええええ?!?!?!?!?!?!?!??!?!?!?!?!?丹羽善将さんだあああああああああ!?!?!?!?
tipi_neko 2
Avatar
なんでや…
Avatar
omochimetaru 4/26/2024 1:49 AM
「東日本の時にツイッターの日本向けのインフラを独断で強化した英雄」の文脈じゃないかしら
Avatar
最近 iOS 開発者に戻る必要が出たので、6年間?のブランクのリハビリのために https://discord.com/channels/291054398077927425/1249313644483710976 を開発してました。swift-argument-parser はかゆい。Combine は結構便利でした(Combine 登場まえに iOS 開発から遠ざかっていた)。地味に嬉しかったのは 5-6年前に開発していた MirrorDiffKit が最新の Swift でも問題なく動いたこと。依存ゼロで堅牢に作っておいたのが功を奏しました。
👀 2
Avatar
omochimetaru 6/9/2024 10:54 AM
6年も経っていたのか (edited)
Avatar
これから BLE マクロを実行・記録・再生する iOS App 作ろうかなと思っています。ちょうど SwiftUI なんもわからんので勉強がてらちょうどいいかな、と。
iine 1
11:01 AM
actor の使い所がいまいちわからなくてちょい困っています
11:02 AM
Model 層のステートマシンたちは大体 actor にしてもいいのかな?と思ったけど UI 層からの需要で同期的に状態を read する口が欲しくなることが多いので actor にすると非同期になっちゃいそうだなあと思っています
Avatar
omochimetaru 6/9/2024 11:06 AM
状態はなんらかの方法でパブリッシュしておいてUI層がそれを購読して自前で記憶しておく(最新の真の値とは少し遅れる)みたいなのが良いのかな @koher が意見を言ってたのを最近見たけどどうでしたっけ (edited)
Avatar
Avatar
omochimetaru
状態はなんらかの方法でパブリッシュしておいてUI層がそれを購読して自前で記憶しておく(最新の真の値とは少し遅れる)みたいなのが良いのかな @koher が意見を言ってたのを最近見たけどどうでしたっけ (edited)
某所で話してたのは↓ですね。
Repositoryがオンメモリキャッシュを扱うかどうかに関わらず、僕はSingle source of truthとなる状態を扱うMainActorを設けるようにしています。より具体的には、Repository - Store - (ViewModel) - Viewという構造にしていて、Viewを超えて保持する状態を(MainActorである)Storeで保持しています。ViewModel(またはViewModelを省略してViewの状態や変更をViewが直接扱う場合はView)がStoreに対してデータの更新を要求すると、Storeは必要に応じてRepositoryを介してデータを取得し、自身の状態(@Publishedなプロパティ)を更新する形です。 Repositoryはあくまでデータアクセスを抽象化するためのものなので、キャッシュの有無は外から不可知なのが良いかと思います。なので、たとえRepositoryがオンメモリキャッシュを持っていてもStoreに相当するものは必要だと思いますし(Repositoryのキャッシュは状態を扱っているわけではないと思うので)、Store的なものがあればそれをMainActorにすることでUI(ViewまたはViewModel)から同期的にアクセスすることができます。
Avatar
UIからの更新はUI-(action)→Store-(dispatch)->UIになって非同期無しな事が保証されてかつ、ネットワークやDBを別のActorにしておけば、その系からの変更はStoreに食わせる時点でasyncになってる 良い感じに見えますね
Avatar
Avatar
koher
某所で話してたのは↓ですね。
Repositoryがオンメモリキャッシュを扱うかどうかに関わらず、僕はSingle source of truthとなる状態を扱うMainActorを設けるようにしています。より具体的には、Repository - Store - (ViewModel) - Viewという構造にしていて、Viewを超えて保持する状態を(MainActorである)Storeで保持しています。ViewModel(またはViewModelを省略してViewの状態や変更をViewが直接扱う場合はView)がStoreに対してデータの更新を要求すると、Storeは必要に応じてRepositoryを介してデータを取得し、自身の状態(@Publishedなプロパティ)を更新する形です。 Repositoryはあくまでデータアクセスを抽象化するためのものなので、キャッシュの有無は外から不可知なのが良いかと思います。なので、たとえRepositoryがオンメモリキャッシュを持っていてもStoreに相当するものは必要だと思いますし(Repositoryのキャッシュは状態を扱っているわけではないと思うので)、Store的なものがあればそれをMainActorにすることでUI(ViewまたはViewModel)から同期的にアクセスすることができます。
omochimetaru 6/10/2024 1:39 AM
ありがとうございます。 僕の解釈だと、そのStoreがまさに「UI層で記憶してる状態」のイメージです。
Avatar
そうですね。いずれにせよUIは同期的に状態にアクセスしたい&MainActorでないと同期的にアクセスできないので、View@Stateで状態を保持するか、 @MainActorObservableObjectで保持するかということになるかと思います。
Avatar
なるほど、ありがとうございます
7:50 AM
ぜんぶの Model を並行合成したあとのプロセスの状態変数の射影を保存する感じ…?難しいですね
Avatar
Storeには合成前の値を保持しておいて、ViewModel(もしくはViewModelが利用するModel)がそれらを元にViewに必要な値を計算した方がSingle source of truthを実現しやすいように思います。その計算が重ければ、一度MainActorの外に出して非同期に計算する必要はありますが。
Avatar
その場合、Store が最初の値を fetsh するまでの暫定的な値を ViewModel が用意しないといけない気がしていていますがそうでもないのかな
Avatar
Avatar
Kuniwak
その場合、Store が最初の値を fetsh するまでの暫定的な値を ViewModel が用意しないといけない気がしていていますがそうでもないのかな
最初の値を fetch するまでは nil になりますね。ViewModelの @Published プロパティが nil の場合、Viewではプレースホルダーを表示したりしてます。
Avatar
ですよね。それがあんま好きじゃなかったのです
6:25 AM
その nil の解釈を View がすることになるので。本当はドメインモデルが決めて欲しいなあと
naruhodo 1
Avatar
僕はデータが未ロードであるというのも状態の一つで、それをどのようにユーザーに提示するかはプレゼンテーションの問題だと考えています。 ただ、未ロードとロード完了したけどデータが存在しなかった場合の区別がつかないので、 .loading, .loaded(Foo), .none とかに分けてもいいかもしれません。でも、データが存在しない場合は戻り値 nil をトリガーに「データが存在しません」などのアラートを出してpopとかが多いので、 .loading と区別する必要なケースがあまりない印象ですね。 (edited)
👀 1
Avatar
Avatar
koher
某所で話してたのは↓ですね。
Repositoryがオンメモリキャッシュを扱うかどうかに関わらず、僕はSingle source of truthとなる状態を扱うMainActorを設けるようにしています。より具体的には、Repository - Store - (ViewModel) - Viewという構造にしていて、Viewを超えて保持する状態を(MainActorである)Storeで保持しています。ViewModel(またはViewModelを省略してViewの状態や変更をViewが直接扱う場合はView)がStoreに対してデータの更新を要求すると、Storeは必要に応じてRepositoryを介してデータを取得し、自身の状態(@Publishedなプロパティ)を更新する形です。 Repositoryはあくまでデータアクセスを抽象化するためのものなので、キャッシュの有無は外から不可知なのが良いかと思います。なので、たとえRepositoryがオンメモリキャッシュを持っていてもStoreに相当するものは必要だと思いますし(Repositoryのキャッシュは状態を扱っているわけではないと思うので)、Store的なものがあればそれをMainActorにすることでUI(ViewまたはViewModel)から同期的にアクセスすることができます。
結局、CurrentValueSubject を Actor にしたもの(ConcurrentValueSubject)をさらに wrap して state を射影するくん(ProjectedValueSubject)を作って、これを ObservableObject に準拠させるくん(ViewBinding)を作ってことなきを得ました。 ConcurrentValueSubject: https://github.com/Kuniwak/BLEMacroApp/blob/7756662301f809b10926c3f0466a160cca6866de/Packages/Package/Sources/ConcurrentCombine/ConcurrentValueSubject.swift ProjectedValueSubject: https://github.com/Kuniwak/BLEMacroApp/blob/7756662301f809b10926c3f0466a160cca6866de/Packages/Package/Sources/ConcurrentCombine/ProjectedValueSubject.swift ViewBinding: https://github.com/Kuniwak/BLEMacroApp/blob/7756662301f809b10926c3f0466a160cca6866de/Packages/Package/Sources/ViewFoundation/ViewBinding.swift
8:33 AM
Model の世界では ProjectedValueSubject までしか知らなくて、View の世界から ViewBinding が登場するという設計です
Avatar
自分の観測範囲ですが、iOSのプロジェクトをフォークして出鱈目なコミットをしたり、アカウント同士でiOSのプロジェクトのレビューをしてるフリをしているGitHubアカウントを複数観測しました。 これはiOSに限った話では無いですが、採用やPRレビューの際はアカウントのアクティビティだけを見て信用せずに、なるべく身元調査したほうが良いかなと思いました。 経歴詐称のためにやってるならいいんですけど、しれっとバックドア仕込んでくるとかもあると思うので…。
🤮 7
9:18 AM
最近Swift Open Source Slackの過去ログ全部読めるな?Appleお金出している?と思ったけどただのFree trialのPro版でした...
Avatar
Avatar
ainame
最近Swift Open Source Slackの過去ログ全部読めるな?Appleお金出している?と思ったけどただのFree trialのPro版でした...
Discord にあまり詳しくないので,こういう既存サーバと比べた時の強みがよくわかりませんでした. https://forums.swift.org/t/making-an-official-swift-community-discord-server/71383/20
I forget how I came across it, but there's already a pretty active (unofficial) server here: Swift Has some amount of participation from Apple employees and folks from the Vapor team, among others.
Exported 3,451 message(s)
Timezone: UTC+0