HNHacker News
TopNewBestAskShowJobs

joshuawright11

606 karma · joined February 17, 2016

submissionscomments
joshuawright11··on Tech CEOs are apparently suffering from AI psychosis
I like to call this TDS (token derangement syndrome)
joshuawright11··on Astral to Join OpenAI
Wow - this is potentially the most cynical hacker news thread I've ever read. When did this place trade it's curiosity and excitement about technology for constant doomerism?

Congrats Astral and co!

joshuawright11··on NodeSwift: Bridge Node.js and Swift
What drove the switch from Vapor -> Nest?
joshuawright11··on A Swift Tour: Explore Swift's features and design [video]
Love how the demos are using VSCode on Linux & Windows
joshuawright11··on Ask HN: Books that gave you different perspective on religion
Mere Christianity - C.S. Lewis
joshuawright11··on Swift 5.10 Released
Nifty stuff - though I wonder who these features are for? Since swift is primarily for iOS where you can basically run everything but network requests on the main thread, what’s the point of having these advanced, complex compiler checks for thread safety?

Would love to see more Swift adoption outside Apple ecosystem because it’s truly the best language I’ve worked with; but the busted state of tooling and environment (Xcode, janky at best VSCode support) will need to be improved before it can ever escape iOS/macOS only orbit.

joshuawright11··on Cruise slashes 24% of self-driving car workforce in sweeping layoffs
Since the CEO / founders have already "resigned", this feels like GM is moving towards winding down the company or at the very least strongly re-thinking their commitment to backing this long term.

Getting to FSD is probably moving a lot slower than they hoped and it's looking more and more like it will be another decade (or multiple) until a self driving company can turn a dime of profit. GM doesn't strike me as a particularly innovative company so the idea of a decades long moonshot probably isn't very appealing to them.

The dragging / lying to regulators incident was bad but axing the founders / CEO seems like it would have been enough if GM were excited about the company long term.

joshuawright11··on Mint is shutting down, and it's pushing users toward Credit Karma
Happy Monarch user here - Monarch is amazing. I think it's the only personal finance tool I've seen that gets web really, really right.

Mobile first ones are nifty (used copilot for a bit), mainly for on the fly category updating, but after budgeting with Monarch on the web for a year and change now I don't think I can go back to a primarily app based one. Much easier to sit down once a week and crank through / review everything on web interface.

Thanks for the great work you and the Monarch team are doing, it's helped my wife and I save a lot of cash since we started using it

joshuawright11··on Ask HN: React Native or Flutter for a new app in 2023?
Always been interested in the idea of sharing code across the full stack. What do you find you can share the most?

APIs / data models?

joshuawright11··on Ask HN: React Native or Flutter for a new app in 2023?
Yeah if React is your strong suit, an initial version in React Native is the way to roll.
joshuawright11··on Ask HN: React Native or Flutter for a new app in 2023?
That's a good point - if the success of the product relies on a critical mass of adoption (social networks, marketplaces) then missing one platform would exponentially hurt that.

But IMHO for apps where that isn't the case starting with a single platform is a good bet.

joshuawright11··on Ask HN: React Native or Flutter for a new app in 2023?
Yeah - however IMO large growth isn't as important until some semblance of PMF is hit with a few core users.

Then can treat the other platform as a marketing cost - i.e. if you're making 75k on iOS and predict a similar revenue for Android it's worth it to hire an Android developer for to build it out. But if one hasn't yet found a few hundred quality users on one platform why build the other one.

joshuawright11··on Ask HN: React Native or Flutter for a new app in 2023?
Purely curious; why not start natively with iOS or Droid (depending on which one your target audience uses more)?

You'd have the easiest native API access and fewer headaches. Once you hit PMF & have proven the idea, add the second platform.

Is there a benefit to launching on both platforms out of the gate? Unless perhaps there are specific React web assets you'd like to reuse to get up and running faster via React native.

joshuawright11··on SwiftUI in 2022
Good question! I'm very much in alignment that most non-system animations get in the way / are just annoying.

I think it depends on what the goal of the screen is. If the goal is to simple provide information to the user, it makes sense to have clean, simple, and snappy animations.

However, I think there are also situations where the experience itself is the goal. i.e. give the user a visually pleasing graphic, animation, interaction, etc. In this case going a little wild with animations can be a good thing.

Most in app situations should be the first (snappy, clean, useful). But selectively sprinkling a few instances of the second throughout your app can bring the experience to the next level.

In our case, we wanted the rewards flow (it's a banking/brokerage app) to be a fun, gamified experience to separate us from typical banks. So we opted to add a very visual, interactive experience in this single part of the app. There's a demo video above. While it's certainly extra, I think it makes the core flow of the app a unique experience.

joshuawright11··on SwiftUI in 2022
Here's a part of the flow I'm talking about; for context it's a debit card that rewards users with stock as they use it. The entire flow is SwiftUI (though the top of the pack ripping is PNG sequences so we did cheat a bit).

https://streamable.com/56pha0

(shameless plug; check us out at https://www.withapollo.com we're YCS21, just launched last week, and are hiring an iOS engineer!)

joshuawright11··on SwiftUI in 2022
Context: I’ve been working with iOS full time since a few years before Swift came out.

A few startups ago we built our app using SwiftUI 1.0. At that time, while 90% of it was fantastic, 10% was either unworkable or extremely unreliable, causing for some maddening bugs. The documentation was laughable so for these reasons I chose to do the app for a subsequent startup in UIKit.

Fast forward to my most recent company; decided to give SwiftUI another shot (targeting iOS 14 & SwiftUI 2). I am 100% glad we did. It’s been pretty incredible; we’ve built a reasonably complex banking app at a pace not possible with UIKit. The animations in particular are crazy good to work with; we’ve got some very complex animated flows that would have taken weeks and thousands of lines with UIKit… with SwiftUI it was about 5 days.

It’s definitely not without its downsides; documentation is still slim at best, but there’s plenty of blogs and resources (https://swiftui-lab.com/ is the most helpful IMO) available now. There are also still some maddening bugs that appear in production and take a day or two of head scratching only to discover it’s a bug in the framework (most recently; using #available causes code to crash on the platform it’s protecting against lol), but there are always workarounds. Still, time wasted on these has been vastly outweighed by the weeks / months of time saved.

Finally, you can always use UIKit as an escape hatch through UIViewRepresentable.

iOS 15 is at 85% adoption, so we plan to drop support for 14 somewhat soon, which will give us an even more robust framework as well as async await APIs. Not feasible for most companies I know, but even supporting 14+ Will be pretty reasonable when iOS 16 drops in September.

joshuawright11··on Ask HN: Who is hiring? (May 2022)
Apollo | Design & Engineering | Onsite / Remove (San Francisco) | https://bookface.ycombinator.com/company/24343/jobs

Apollo (https://www.withapollo.com) is building a debit card that rewards users with stock. Users get daily cash back in fractional shares of popular stocks as well as chances to win a full share. Think point.app crossed with the Robinhood referral program.

We're a small team (3) that's YC backed (S21) and are looking to hire 1 Engineer and 1 Designer, ideally both with Mobile experience. Under the hood we're a bank and brokerage, so if you're keen for fintech it's a unique and interesting product space to build in.

Check us out on the App Store (https://apps.apple.com/us/app/apollo-banking-made-fun/id1586...).

If you're interested in chatting please reach out to me at josh {at} withapollo.com!

joshuawright11··on Launch HN: Demigod (YC S19) – Build compounding habits with a dedicated coach
So I've been trying out https://www.future.co (similar coaching concept for fitness).

While I really like the concept (esp since it means I don't need to make my own workouts, which was often an excuse I used not to workout) I haven't found the accountability aspect very effective, I was at it for a few months and then dropped off, despite the daily "YOU GOT THIS!!" text from a stranger on the other side of the country.

It's entirely plausible that at the end of the day I'm just lazy/not motivated enough and no amount of accountability will be helpful, but I wonder if there's a better form of accountability, particularly through likeminded social circles, you could integrate.

Just riffing (using workout as the habit, since I will absolutely pay big $$ if something gets me to work out more, future is $150/m);

  1. Social shaming
    a. the app notifies a bunch of friends every time you miss a workout.
    b. I pay for someone to blow up my phone / texts ad infinatum at a certain time until I'm in the gym's geofence.

  2. Material loss 
    a. you use Plaid to pull $XX out of my account and send it to my buddy every time I miss a workout.
    b. set aside some large amount of $$ like $1000 and if I don't get to the gym 20x in a month, confirmed by a third party, the money is gone forever.

  3. Material gain;
    a. join a group of friends; y'all put $100 in a pot, add 1 point for every workout and subtract 3 points for every miss. When the squad hits 100 points you spend the money on a trip to Fogo de Chão. If you go below 0 the money is gone forever.
    b. partner with gyms & give a 40% membership discount if the person has a rolling 15 days / month attendance.
Re: the app; love the idea, the design is gorgeous, but the name is not something I'd be comfortable sharing with friends :)
joshuawright11··on Swift Syntax and Structured Editing Library
Any particular integration you're looking for? Out of the box it supports MySQL & Postgres but it's fully compatible with any external libs built on SwiftNIO, which is the de facto foundation for most Swift server projects.
joshuawright11··on Swift Syntax and Structured Editing Library
Oh I think Vapor is super powerful, feature packed, and the team has done an amazing job building up and maintaining over the past few years, especially when swift on the server was just getting on it’s legs.

That being said, after building with Vapor I felt like there was room for a framework that focused a lot more on convention like Laravel / Rails to keep things lean and fast.

Consider ORM APIs…

In Vapor require property wrappers around each field, as well as manually entering in the table name, db column the keys map to, and needing to write an initializer.

  final class Planet: Model {
      // Name of the table or collection.
      static let schema = "planets"

      // Unique identifier for this Planet.
      @ID(key: .id)
      var id: UUID?

      // The Planet's name.
      @Field(key: "name")
      var name: String

      // Creates a new, empty Planet.
      init() { }

      // Creates a new Planet with all properties set.
      init(id: UUID? = nil, name: String) {
          self.id = id
          self.name = name
      }
  }
In Alchemy the table name is inferred to be the type name pluralized, and each db column is inferred from the Swift property name (even mapping camelCase to snakeCase by default). It also supports structs, and thus the automatic initializers.

And because it uses Swift.Codable doesn’t have to use expensive reflection APIs to decode, giving a decent performance boost (disclaimer: last time I checked).

  struct Planet: Model {
      var id: UUID?
      var name: String
  }
Similarly with relationships, Vapor requires somewhat verbose string / key path arguments in the property wrappers and supports 1-M M-1 & M-M relationships.

  final class Star: Model {
      @Children(for: \.$star) // 1-M
      var planets: [Planet]

      @Parent(key: "star_id") // M-1
      var star: Star
  }
vs inferring the type and connecting keys, as well as supporting customizing the relationship behavior in Alchemy for things like HasManyThrough, BelongsToThrough, etc. All inferred keys are, of course, overridable in case your db naming convention is different.

  struct Star: Model {
      @BelongsTo var star: Star // M-1
      @HasMany var planets: [Planet] // 1-M
      @HasMany var moons: [Moon] // “Has Many Through”

      static func mapRelations(_ mapper: RelationshipMapper<User>) {
          // infers mapping from stars.id -> plants.star_id -> planets.id -> moons.planet_id
          mapper.config(\.$moons).through(“planets”)
      }
  }
There’s also a bunch more examples of APIs around QueryBuilder, Caching, Jobs, Queues, Redis, Commands, Authentication, Middleware etc[1]. And everything will be converted to async/await in the coming days.

1: https://github.com/alchemy-swift/alchemy/tree/main/Docs#docs

joshuawright11··on Swift Syntax and Structured Editing Library
Exciting stuff.

With async/await landing last week and the leaps and bounds of the package manager over the last couple years, the ergonomics of using Swift for non-iOS work has gotten significantly better. Coupled with the built in safety and elegance of the language I think that, especially for server work, Swift is a very attractive option.

Shameless plug; for these reasons I built a Swift backend framework for fullstack iOS development[1] that we've been using it at my company while going through YC this summer.

It's been very powerful to have mobile and server in the same language and codebase and has helped us (native iOS backgrounds), move quickly.

1: https://github.com/alchemy-swift/alchemy

joshuawright11··on Launch HN: Slip (YC S21) – Build and sell interactive programming courses
This looks really great, Kenneth! I was actually just investigating this last week; didn't see Swift support yet but I'm eagerly awaiting it ;)

I've considered building some tutorials for a backend framework I was working on, and it would be sweet if they were interactive.

Wondering if it would be feasible to have a server running in the one off docker containers so that people could run some simple requests on it to see how it works. It would also be sweet if it could run a simple SQLite database so users could play around with the ORM components as well.

Congrats on the launch & I'll be following this!

joshuawright11··on Apple restricts new Swift concurrency features to iOS 15 and above only
Sounds like they are considering adding back support, but personally I'm a bit surprised that isn't set in stone since these are some game changing features.

Does sound like there would be a lot of technical limitations to adding support in prior versions.

Interesting discussion of the behind the scenes here https://developer.apple.com/videos/play/wwdc2021/10254/

joshuawright11··on Approaches to Type Erasure in Swift (2020)
Yeah I 100% agree that the tooling is not there outside of macOS.

That being said, it started as geared towards iOS/macOS & even so there have been decent cross platform wins (linux compiler support is pretty solid, SPM).

I hope that as the language matures the language features that have been the priority on the roadmap (async/await, generics, memory management) will give way to more cross platform tooling.

joshuawright11··on Approaches to Type Erasure in Swift (2020)
Exactly, type erasure has always been a giant pain for Swift but the team has short term plans for obviating it soon.

I think sometimes people forget that Swift is still a relatively new (late 2014, ~7 years old) language. Given its scope and sizable feature set, it's no surprise there are many kinks to work through. Fortunately the team has been cruising and it gets more solid every year.

Right now it's a de facto for iOS and there's a nascent but passionate server community, give it a few more years and I think it'll be a much more attractive for things outside of iOS.

joshuawright11··on Subsidiary of Toyota to acquire Lyft’s self-driving car division
100m a year, 0 roi expense gone. Also no more shared rides due to COVID (which I expect will never come back to Uber or Lyft since they were gigantic money sinks). Assuming ridership is bouncing back from COVID I wouldn't be surprised if their first profitable quarter was this year.
joshuawright11··on An experiment in giving cash to recently homeless people [video]
Definitely agree that doing this per month per citizen would be infeasible, though an interesting alternative is doing a negative income tax.

Effectively UBI but declines as the person makes money.

Some rough calculations:

In 2019 there were 34m people in poverty[1], lets assume 2 people per household (lower than nationwide average of ~3) so 17m households.

Topping each of them up to above the poverty line (~13k/y/person) would be 26k / household / year would be 442bn (and that's assuming all people below poverty line make 0 dollars).

Not bad considering the government already spends over twice that (1tr) on welfare each year[3].

Like others have said healthcare, housing issues etc would still be very damaging to some, but it's an interesting concept that could put every person in the country above the poverty line for not that much $$.

I also like that it (theoretically) still encourages working since a) poverty line is still a lower quality of life. and b) when you're below the line and make more money, the government gives you less $$ but less than you are making. i.e. if you make an extra 2 dollars, the government stopped reduces by 1, or something akin to that.

[1] https://en.wikipedia.org/wiki/Negative_income_tax

[2] https://www.census.gov/library/publications/2020/demo/p60-27...

[3] https://www.budget.senate.gov/imo/media/doc/CRS%20Report%20-...

joshuawright11··on John McWhorter: The Neoracists
FWIW the author wrote a post attempting to defend his position as not a straw man

https://johnmcwhorter.substack.com/p/is-the-elect-a-mere-col...

joshuawright11··on Alchemy: A fully featured web framework for Swift
Hey HN,

Been building this framework over the past year, with the goal of leveraging Swift’s speed and safety with being able to share lots of code between iOS and server. Swift on the server is still a relatively small ecosystem so the focus has been creating something clean and Swifty that can accomplish most things out of the box. Would love some feedback on the code itself or the dev experience!

joshuawright11··on Show HN: Alchemy – Elegant, batteries included web framework for Swift
Glad you think so! I'm hoping that simple docs coupled with the recent leaps and bounds of the swift server team and package manager (as well as incoming async/await) will make Swift on the server a much more appealing choice for folks with a Swift background.
Page 1 of 2Next →