HNHacker News
TopNewBestAskShowJobs

alexmingoia

2,083 karma · joined August 3, 2014

https://alexmingoia.com

Read the entire Internet at once: https://sumi.news

submissionscomments
alexmingoia··on Ask HN: What interesting problems are you working on?
I love this :)
alexmingoia··on The Ethereum merge is done
We'll still use that 0.5% for something else, right? It's not as if power generation (and emissions) will be reduced.
alexmingoia··on Ask HN: What would be your “perfect” programming language?
Why is that?

To be clear the lack of “shared” dependencies does not necessitate code duplication. By shared dependencies I’m talking about languages (Haskell for example) where only one version of a library can be used, which results in the diamond dependency problem (predictably so!).

Let’s say file A references file B and C, and files B and C both reference D. D doesn’t need to be duplicated.

If all includes are qualified/namespaced there is no diamond dependency problem, and the compiler/runtime can reuse the same code for multiple references to the same file.

alexmingoia··on Open Props: Tailwind Alternative from Chrome Dev Team
Use a modular view/component, or a class using tailwind's @apply directive. It's the best of both worlds.
alexmingoia··on Ask HN: What would be your “perfect” programming language?
Can you give an example of why you need non-terminating semantics? Programs can still be run "forever", if they are run for each input while maintaining terminating semantics for deriving output. Abstractly the Turing machine is infinite, but in the real world input and output is almost always finite and discrete.

I guess you wouldn't be able to use it to build a machine that is supposed to display Pi or Fibinocci?

alexmingoia··on Ask HN: What would be your “perfect” programming language?
No higher order functions means that you cannot make a function that takes another function as input or returns a function as output. I would prefer a programming language to be simple, only allowing functions which transform finite input to finite output.

No modules / namespaced includes means that to include other code, you would write something like `include as Foo './other-source-code.file'` or `include as Bar 'github.com/foo/bar/some/source.file@commit`. All the names in the included file (functions, names of data, etc.) would be referenced by prefixing the namespace, like `Foo.baz` or `Bar.baz`. Combine that with the ability to include code via URL, and there would be need for a package manager or separate package manifest. Wherever you want to use the new version/code you simply update the include statement at the top of the file.

alexmingoia··on Ask HN: What would be your “perfect” programming language?
The diamond dependency problem is easy to avoid: Only allow namespaced/qualified includes, no shared libraries. There is no need for a package manager if the runtime does the work of resolving all includes, and these references have some kind of cryptographic integrity.

This can be completely transparent to the user. There's no need to have a separate program do dependency resolution when dependencies are referenced in source code. Instead we have the complete waste of life that is package manifests and shared libraries.

alexmingoia··on Ask HN: What would be your “perfect” programming language?
Databases are useful. Look at Datalog and SQL and you're looking at a language that does very useful stuff without user-defined types, higher-order functions, recursion, etc.
alexmingoia··on Ask HN: What would be your “perfect” programming language?
- One executable that is the runtime, accepting one argument: the source code file.

- No linters. Code is auto-formatted.

- No modules. Includes can be namespaced/aliased.

- No package manager. Include by Git URL with tags.

- No type annotations. Automatic type-checking.

- No user-defined types. A few good types is better.

- No null. Set membership with maps is better.

- No exceptions.

- No loops. List and map comprehensions.

- No general recusion. Only tractable transitive closures (ala Datalog).

- No higher-order functions.

- Terminating. All programs terminate. Turing completeness is not desirable for most domains, but predictable semantics is.

- Safe. No undefined behavior. No crashes.

- Persistent, the runtime is also the database. The language is the database.

I'm working on a language with exactly this set of features. Email me if you're interested.

alexmingoia··on Infinite Scrolling: When to Use It, When to Avoid It
It doesn’t have to be either or. Provide a toggle for the user to choose their preference.
alexmingoia··on What's your thought on finding passion?
You don’t have to have a passion. It may be more helpful to understand “do what you love” to mean “don’t spend your time doing something you hate or living for other people”.
alexmingoia··on Ask HN: Where are you getting your information from?
I use https://sumi.news (I made it).
alexmingoia··on Protonmail Recommended Browsers
Nope, they are not your iCloud password. Keys for E2E items are kept on device and then there’s a process to join a signing circle for syncing. What this means in practice is to sync you need to allow your new device to be accepted into the circle from an existing device.

https://support.apple.com/en-gb/guide/security/sec0a319b35f/...

alexmingoia··on Protonmail Recommended Browsers
Nothing, as far as I can tell. End-to-end encrypted history and tabs, and recent versions with iCloud+ use encrypted DNS and VPN (iCloud private relay) that uses encrypted forwarding so ingress servers can’t tie your requests to a destination.

Outside of using Tor and your own VPN, it looks like Safari w/ iCloud+ protects browsing history from everyone (Apple and ISPs) while delivering a seamless experience.

alexmingoia··on Protonmail Recommended Browsers
Their iCloud security page says “Safari History, Tab Groups, and iCloud Tabs” is end-to-end encrypted. So they store history to sync across devices but the keys are only on your devices.

https://support.apple.com/en-us/HT202303

alexmingoia··on Protonmail Recommended Browsers
Safari history and tabs are end-to-end encrypted: https://support.apple.com/en-us/HT202303

And Apple provides iCloud+ members with a VPN which does not tie browsing history to users by separating ingress and egress traffic and using encrypted forwarding (similar to onion routing): https://www.apple.com/privacy/docs/iCloud_Private_Relay_Over...

alexmingoia··on A 14kb page can load much faster than a 15kb page
Yeah, it's a separate file. But because I'm using tailwindcss, the HTML actually has a huge number of classes. I'm not sure how much that matters with compression though.
alexmingoia··on A 14kb page can load much faster than a 15kb page
I should add that this depends on your subscribed sources. My page is ~13KB today, but it could be up to ~60KB if you have a lot of headlines. Most of the HTML is actually tailwindcss classes repeated for each headline. I wonder how much size I could save by replacing them with a single class-name. I assume it wouldn't make much difference to the compressed size.
alexmingoia··on A 14kb page can load much faster than a 15kb page
https://sumi.news HTML is ~14KB when transferred with compression. The CSS is ~30KB. I could probably slash that in half if I optimized.
alexmingoia··on Developers who quit the industry. Why? And what do you do now?
What I did when I started was respond to job postings and offer the same contribution as an hourly service, using a weekly retainer of 10-20 hours (remote). It worked well. Companies are desperate for good engineers. I found they'll always push for more hours, but that's the nature of the game.
alexmingoia··on Ask HN: What are some unpopular opinions here that should not be?
Software can’t be delivered on time (it can).
alexmingoia··on Ask HN: What are you working on and why is it cool?
https://sumi.news – it’s cool because it’s made for skimming, not doom-scrolling. It’s only headlines grouped by day and source.
alexmingoia··on Signal: You were the chosen one [video]
Ah, I didn’t know that. I’m not sure I consider that “great support.” It looks relatively new, and from the blog post it seems the spec is still in proposal and development stage. It’s not implemented in any of the chat clients either.

Excited to know it’s on the way though.

alexmingoia··on Signal: You were the chosen one [video]
Ah TIL. Matrix can be used to setup a WebRTC session between two participants. But that looks like pretty rudimentary. Do any chat clients use this? I thought Elements used Jitsi.
alexmingoia··on Signal: You were the chosen one [video]
Me too. At least you can use VoIP numbers with Signal. You can also get a prepaid SIM anonymously, use it to create a Signal account, and then not use it. So there wouldn’t actually be any cell network activity tied to the phone number.
alexmingoia··on Signal: You were the chosen one [video]
Also worth pointing out that Jitsi isn’t a standard protocol (AFAIK), but an open-source library. Matrix, the protocol, doesn’t actually have support for video/voice chat.
alexmingoia··on Ask HN: Indie devs, what is your development process?
I don’t keep a to-do list. I keep most ideas in my head. When I have development time I choose the most important feature, imagining it was the last feature I could develop.

I wireframe the UX, and when I’m satisfied I implement it. I test and dogfood until I have almost zero doubts about the lack of bugs and potential user complaints, and ship it.

alexmingoia··on Apple Could Kill CAPTCHAs with Private Access Tokens
This is known as https://en.wikipedia.org/wiki/Web_of_trust
alexmingoia··on Should Freelancers Offer Free Trials?
I wouldn't offer anything for free, but more than once I have offered a 100% money-back satisfaction guarantee for the first week or two of a new contract. This has helped particularly clients that have not worked with a contractor before. The client is relieved of potential remorse or sunk cost, and I still get paid for all my work.
alexmingoia··on Companies That Use Haskell in Production
While I’m just a small one-man shop, I use Haskell for https://sumi.news

Anyone else using Haskell to run a SaaS?

Page 1 of 24Next →