@cocoafrog@hachyderm.io avatar

cocoafrog

@cocoafrog@hachyderm.io

Developer Tools , working on Instruments. ex-@yelp, ex-@XING_de
pronoun.is/he?or=they

This profile is from a federated server and may be incomplete. Browse more on the original instance.

cocoafrog, to random German
@cocoafrog@hachyderm.io avatar

Did you ever think „I should probably use Instruments more, but I don’t really know how to“?

Well, I’ve got a session for you:
Analyze Hangs with Instruments: https://developer.apple.com/wwdc23/10248

Hangs are a great way to get started with performance optimization. They are clear problems and reasonably easy to understand.

So after explaining what a hang is, I’ll show you how to analyze them in Instruments and show you a lot of ways to navigate in Instruments and how to interpret the data.

cocoafrog, to random German
@cocoafrog@hachyderm.io avatar

Guten Morgen Deutschland,

Ich bin aktuell in den USA aber plane im Laufe des Jahres zurück nach Deutschland zu gehen. Da das mit meinem aktuellen Job nicht geht, schaue ich mich langsam um, was es an Alternativen in Europa gibt.

Wenn also jemand von euch einen erfahrenen iOS- und Mac-Entwickler sucht (mache das nun seit mehr als 10 Jahren), lasst doch mal von euch hören. Remote bevorzugt, hybrid ok, 100% Office höchstens im echten Norden und HH. ;)

nicklockwood, to random
@nicklockwood@mastodon.social avatar

In a fit of madness I've agreed to give an internal talk about advanced Swift at my company. Has anybody got any favorite Swift tricks they'd like to share?

cocoafrog,
@cocoafrog@hachyderm.io avatar

@ctietze @nicklockwood also loops can have where clauses, eg

for batch in batches where !batch.isEmpty { }

And let for optional unwrap works in loops as well:

var next: Node?
while let current = next {
// do stuff
next = current.parent
}

And you can combine the two.

cocoafrog,
@cocoafrog@hachyderm.io avatar

@helge @ctietze @nicklockwood oh yeah, sequence(next:) is one I learned recently and is great! It was more about the general concept of for let.

finestructure, to random
@finestructure@mastodon.social avatar

Folks who squash their merges, I’m curious why you are making that trade-off. I’m guessing the pro argument is a cleaner merge graph?

The big argument against it for me is that you lose granularity for git bisect. I've often been able to narrow down breakage (sometimes long past the merge) due to individual commits in the merge. If I'd merged in a giant blob all I'd have had to go by is that giant blob. (1/2)

cocoafrog,
@cocoafrog@hachyderm.io avatar

@finestructure in my experience when you don’t squash merges you end up with a lot of commits on the main branch that don’t actually build or build but have test failures because that’s how development goes: you make a bunch of mistakes first and then you fix those, but you only merge when the top of the branch is good.

cocoafrog, to random German
@cocoafrog@hachyderm.io avatar

Inspired by @mshaw here: https://eldritch.cafe/@mshaw/112396061889432483

I think LLMs are like the invention of plastics. It’s dirt cheap to make almost anything with it. So everyone uses it for all the things. But without a lot of care the result feels cheap.

And then we suddenly realize that it produces huge amounts of waste. And uses a lot of finite resources. And once it’s there it doesn’t go away. And then we find that microplastics somehow got into everything and we have no idea how to get it out again.

cocoafrog, to random German
@cocoafrog@hachyderm.io avatar

Remember to sign up for labs!

You don’t need to have a super-specific question, more generic questions like “I’m trying to do X in my app, what are good ways to do this” are totally fine as well!

It also doesn’t have to be about any of the newly released stuff.

Today I had some great conversations about relatively high level performance and how to analyze performance in various use cases.

saagar, to random

I don’t think I’ve noticed this before (maybe it’s new?) but my iPhone adjusts its time while flying to account for date zone shifts even though it’s in airplane mode. Perhaps this is based on GPS?

cocoafrog,
@cocoafrog@hachyderm.io avatar

@saagar I noticed this on my last flight as well and was very confused as I looked at my watch and was wondering „wow it’s only been 2h? Feels much longer“
Turns out it had already been something like 6h but my watch had slowly been adjusting the timezone while the flight progressed.

cocoafrog, to random German
@cocoafrog@hachyderm.io avatar

The state of sending money between bank accounts in the US

cocoafrog,
@cocoafrog@hachyderm.io avatar

@dzamir so the way I actually pay rent is that I have to remember to manually make a transfer at the end of every month. And I do so by clicking on the „Zelle“ card but then not entering the phone number but entering the Bank of America account number of my landlord, which also works somehow and then makes it go to the right account.

cocoafrog,
@cocoafrog@hachyderm.io avatar

@dzamir all of this is ridiculous.

In the EU this would simply be a single screen not 4 different options, none of which work well.

You’d just enter the IBAN of the recipient (which btw has a checksum built in to detect typos) and the he amount and be done. It‘s a wire transfer that arrives the next business day at the latest (but often within seconds) and it’s free.
And there is a checkbox somewhere to make it a recurring transfer and execute it according to some scheduling pattern.

cocoafrog,
@cocoafrog@hachyderm.io avatar

@dzamir oh, also wire transfers often use a different account number from ACH transfers for whatever reason.

cocoafrog,
@cocoafrog@hachyderm.io avatar

@dzamir and the only one you can set up for recurring payments (eg pay rent every month) is Bill Pay which is complicated to set up (see above).

And it you used it to pay a regular person, instead of just transferring the money to their account it sends them a paper check to their address every month and you can just hope that it doesn’t get lost in the mail, they actually get it, they remember to cash it etc.

cocoafrog,
@cocoafrog@hachyderm.io avatar

@dzamir
Cont Zelle: You need the recipients phone number to send them money. And they can only associate one bank account with that phone number. I tried to send my landlords the money for rent that way initially and it ended up in the wrong account for them so they asked me not to do that.

Bill Pay is supposed to be for paying bills. So it kinda is for companies. I’ve never used it because everyone I try I end up in the screen below where you add the payee.

tbc

cocoafrog,
@cocoafrog@hachyderm.io avatar

@dzamir
Cont Bill Pay: When you click on Company in the screenshot below you get a search screen where you search for the company by name. How can I be sure that I got the right company that way? And you can’t tell me a big company has only one account.
And when you choose on from there you still need to enter an account number. Why then even choose the company before?

cocoafrog,
@cocoafrog@hachyderm.io avatar

@dzamir
The last option is Wire Transfer which is the standard in the EU.

And that works and I believe usually arrives within the next business day but if you don’t have a premium account it’s expensive. The interface basically tells you to only use it for important official transactions like buying a house.

RobW, to random
@RobW@iosdev.space avatar

The two stages of writing SwiftUI:

  1. Omg. I love this.
  2. Omg. I hate this with a passion.
cocoafrog,
@cocoafrog@hachyderm.io avatar

@dasdom @RobW @Migueldeicaza I guess this kinda covers the spread? 😅

cocoafrog,
@cocoafrog@hachyderm.io avatar

@teilweise @dasdom @Migueldeicaza

it does sound a little exclusionary as if one is better than the other? Not sure whether you meant this.
People use different technologies and come to Swift and SwiftUi with different backgrounds and that’s fine.

cocoafrog,
@cocoafrog@hachyderm.io avatar

@teilweise @dasdom @Migueldeicaza oh yeah, I feel that! I notice how much I learned „the AppKit way“ (and partially: the UIKit way) of doing things and how it doesn’t work the way I’m used to in SwiftUI.

_Davidsmith, to random
@_Davidsmith@mastodon.social avatar

The good news: You have found a way to reliably reproduce a hang you've seen intermittently and the new Xcode Hang detection helped you quickly narrow down its source. (🎉)

The bad news: It is caused by some very old Objective-C model logic which you haven't touched in years and are terrified of making any changes to. (😔)

cocoafrog,
@cocoafrog@hachyderm.io avatar

@_Davidsmith awesome to hear that, happy it was helpful!

thisismissem, to random
@thisismissem@hachyderm.io avatar

I really have questions about the German Weather office's idea of "strong weather" — we've had SO MANY warnings this year for barely anything?

cocoafrog,
@cocoafrog@hachyderm.io avatar

@thisismissem hm, yeah that seems pretty close to the source so probably not that.

cocoafrog,
@cocoafrog@hachyderm.io avatar

@thisismissem where are you getting these warnings? The last one I got seemed exaggerated by two or three API layers it passed through. The original report sounded nowhere near as serious as what I received in the app.

below, to random
@below@mastodon.social avatar

iOS Pros: If a UIView has NO superview, and NO window (i.e. both properties are nil), does that mean it is not on the screen, but rather held somewhere in view purgatory?

cocoafrog,
@cocoafrog@hachyderm.io avatar

@nicklockwood @below yes, agreed.

cocoafrog,
@cocoafrog@hachyderm.io avatar

@below @nicklockwood when people write their own container VCs they usually get it wrong. And when you do get it wrong none of the contained VCs can rely on viewWill/DidAppear/Disappear being called anymore. Just one of the gotchas to look out for.

cocoafrog, to random German
@cocoafrog@hachyderm.io avatar

If the tech industry valued good QA people (testers, test engineers, people with a quality control mindset and nack for finding edge cases), maybe we would have had a chance to find out a little earlier whether LLMs are any good outside of demos before they suggest mixing glue in pizza and eating rocks.

Instead we all go „devs should write their own tests!“ (so we don’t need testers) and then those devs use LLMs to write tests for LLMs that prove that whatever they are doing … can pass a test.

cocoafrog,
@cocoafrog@hachyderm.io avatar

@icanzilb i wish this was only a problem for VC companies…

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • cisconetworking
  • khanakhh
  • mdbf
  • magazineikmin
  • modclub
  • InstantRegret
  • rosin
  • Youngstown
  • slotface
  • Durango
  • tacticalgear
  • megavids
  • ngwrru68w68
  • everett
  • tester
  • cubers
  • normalnudes
  • thenastyranch
  • osvaldo12
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • lostlight
  • All magazines