ISO-morphism
Joined 8 years ago
Joined 8 years ago
Nit in [1]: When timing durations inside of a program it's best to avoid the system clock as it can and does jump around. For Python, prefer time.monotonic() or time.perf_counter() over time.time() in those situations.
[1] https://github.com/anordin95/a-conceptual-overview-of-asynci...
Rather simple methods are surprisingly effective [1]. There's sure to be more NN fanciness nowadays (like Apple's proposed NeuralHash), but I've used the algorithms described by [1] to great effect in the not-too-distant past. The HN discussion linked in that article is also worth a read.
[1] https://www.hackerfactor.com/blog/index.php?/archives/432-Lo...
The main rules were:
1) A user making a payment that has any effect on app functionality (this is very broad) from inside your app must go through Apple IAP (paying 30% commission). There were some exceptions, but mainly think buying physical goods - Apple isn't forcing the use of IAP for EBay or Amazon retail.
2) You may not link to, or even mention other payment methods.
Really it comes down to: if there is any difference in what the app will do for a user before and after they pay money then that money paying must go through Apple and then Apple will give it to you (minus 30%). So what a lot of apps did is just open to a login screen. No sign up button, no link to your homepage, heck, no links anywhere. The downside is that users have to know about your app from at least one more channel than searching on the App Store, but that's not a very high bar. Probably less common if you're B2B, but for B2C a lot of them would pay their subscription through Apple if possible, the experience is great: one central place in system settings showing all your subscriptions with easy cancellation buttons and enforced standard refund/proration semantics.
I was trying to advocate for the middle path, where there's healthy communication from both sides, to the point that developers trust when "the business" makes a decision - not to the point of engineering completely blocking the, unquoted, business.
I get that we have families to feed, but I've seen far too much of a mindset shift in fellow engineers into thinking that we're warcraft peons rather than professionals. "The business" has engineering feedback as a necessary input, and speaking individually with steakholders they expect this - they'll push until we push back.
Location: North Dakota, US
Remote: Preferred
Willing to relocate: Yes, for the right opportunity
Technologies: Python (pandas, plotting, *nixy things, keras, flask), C# (asp.net core), Postgres, ZMQ, MQTT, AWS (decently strong IAM), Linux (Arch/Emacs/tiling WM type, embedded/yocto/networking xp, hobby sysadmin), Docker, Typescript, React/Redux, C++ (imitation/simple level), Swift
Résumé/CV: Upon request
Email: [email protected]
Looking to work on things that provide value rather than extract it, preferably tangible products.5 years experience as a software generalist wearing many hats on small teams/solo. Main soft strengths are adaptability, tactful honesty, and general middle child agreeableness - I've been described as a chameleon, blending into the norms and practices of teams and finding the grain of codebases/languages/ecosystems, doing things "the way" instead of "my way". I make the effort to learn things, minimizing the integral of resources spent instead of maximizing the derivative of superficial progress (man pages over tldr). Main technical strengths are data analysis, data modeling, distributed systems, and being useful across a wide spectrum of both the technology stack and product lifecycle.
Then they better start banning web browsers. I yearn for that comparison to be the official PR response, for those individuals that find themselves in the position of power to make those decisions at Apple and Google to feel the weight of its responsibility. A federated blogging client should be well above the acceptable threshold on a spectrum from Firefox to CSAM.app.
Edit: browser-based Jupyter would also fall down here as the penalty for a graph being too big is at least a kernel restart.
[ my public key: https://keybase.io/isomorphism; my proof: https://keybase.io/isomorphism/sigs/fvcsNfzwrpDIJsYDgc9wrd6dsQUddwIFseDAp2s4Wbk ]