Isn’t “nothing is truly safe” a common saying on HN? Safe is an absolute term and since nothing can be safe people usually avoid using safe as a standalone attribution to something. It is usually qualified in some way.
I was just curious. This “nothing is safe” is just burnt into my brain and simply wanted to know the reason because it sounded so far fetched that safe is not absolute. But I totally agree.
Even with that there is nothing from you accidentally using [i]. Also there are just a ton of Swift APIS and bridge API that take an index and then crash… for full coverage you would need hundreds of safe wrappers… (doing what you propose though at least gives you. Some peace of mind..
Also Swift has a lot of other areas where it just lacks any safeguards… Memory issues are still a thing. It’s using ARC under the hood after all.
Infinite recursion is still a thing (not sure if this would even detectable - probably not).
Misuse of APIs.
And it introduces new issues: which methods are being called depends on your imports.
In my experience Swift lulls you into a false sense of safety while adding more potential safety issues and “only” solving some of the less important ones. objc has null ability as well. Which can warn u if used appropriately. objc also has lightweight generics. In practice this is all you need.
You can simply import Swift packages and either they expose an Objc interface or you can provide it yourself – by wrapping it in Swift and exposing the things you need via @objc etc. You can - at the same time - also hide the wrapped framework and make it an impl. detail of the wrapper so that you could switch the wrapped framework while keeping your app code mostly stable. This also reduces the number of imported symbols… import 3rdPartyFramework imports all symbols, extensions, classes, types etc. vs. import MyWrapper only brings in the things you really need.
I think DevTools can be a very good money maker… I wrote two apps that were basically dev tools and they were the biggest of my money makers. I think it’s easier to make money from dev tools that are “apps” than dev tools that are “fundamental technologies” though so it probably heavily depends on the type of dev tools…
It's probably also easier to make cottage-industry money from a single useful tool and some associated services/consulting than it is to turn the whole thing into a big company expected to do the hockey stick curve thing (eg Docker).
It'll be interesting to see where Astral ends up landing on that; afaik they have a small team and have only raised seed money, but who knows.
I don't know if it's easier. I definitely think it's better, but there can be a lure to VC money that puts a company like Docker on that path. There's a world where Docker is a small company earning individually good money but with no hockey stick curve, and I think that's more sustainable and ultimately better for them.
Maybe, but I think it could have made a small team very wealthy and successful much more than it did a large company.
It was obviously pitched as an ecosystem/platform play, like "the next vmware" or something, but there was never anything close to a real moat there. Running a registry involved a lot of storage and transfer costs plus spam/abuse management, and private registry was always going to be a better fit for being integrated with CI platforms and the like more than a standalone service with its own auth and billing concerns.
What I like about objective-c’s error handling approach is that a method that can fail is able to tell if a caller considers error handling or not. If the passed *error is NULL you know that that is no way for a caller to properly handle the error. My implementations usually have this logic:
if error == NULL and operationFailed then log error
Otherwise
Let client side do the error handling (in terms of logging)
I never knew what a difference good pants can make. I usually just bought my pants from H&M/other retailers or Amazon. I usually bought what I considered good value pants for like $30-80. I then, out of curiosity, bought pants that were 2-4 times as expensive (~$150) and it really made a difference. I never really liked the pants I had… they never fit right… they felt very uncomfortable. The new pants I got about 2 years ago (the more expensive ones) were very very different. Very comfy. They also had a lot of nice features that I never knew I needed but that I now want by default…
- A button that just "clicks". Most pants I usually owned had a traditional pants button. Those more expensive ones had buttons that just "clicked". Away goes the worry about a button falling off while you are on the go.
- Pockets with hidden zippers: My pants have pockets and in those pockets are smaller pockets with a zipper. Perfect to store things that are small and easily lost.
There are more "features" but those are the important ones. The most important feature is just the material that is used. I barely feel it. Also the company that makes those pants makes other things as well. I ordered a lot of cloths by now and the amazing thing is that everything they make fits me perfectly. I don't know how they do it… When I usually buy pants I have to try on like 10 pants to find one that fits. Even if I pick the "correct" size.
Never heard of them. I'm always interested in a good value. I rarely buy the cheapest or the most expensive item, so if Rhone is decent then I may give them a try. Thanks for the tip!
> I never really liked the pants I had… they never fit right… they felt very uncomfortable. The new pants I got about 2 years ago (the more expensive ones) were very very different. Very comfy. They also had a lot of nice features that I never knew I needed but that I now want by default…
I managed to get the same experience for free by losing weight.
I lost around ~9-11 kilos over the last year and a half and went two sizes down in pants (went from european size 50 to size 46, with a few more kilos to lose until i can wear 44).
It's incredibly nice to be able to pick pretty much any pair of pants/jeans my size and have it fit pretty much perfectly.
> My pants have pockets and in those pockets are smaller pockets with a zipper. Perfect to store things that are small and easily lost.
I had one with these as well, although probably not of the same quality, and I always feared the zip scratching the screen of my phone when putting it in my pocket.
there are a lot of apps that do this though… eg. git tower. Sketch. Etc. Not saying that I like it or anything. Maybe its the combination of local first + an app that seems to be trivial (I am sure it was not but if you hear "daily planner" I think its reasonable to assume that its less complex than a git client and/or an app like Sketch).
reply