HNHacker News
TopNewBestAskShowJobs

thomasfortes

494 karma · joined September 10, 2012

submissionscomments
thomasfortes··on Goodbye CSS Modules, Hello TailwindCSS
Bootstrap is a fully opinionated framework, tailwind is far more versatile, it has his opinions, but they aren't set in stone in the way that bootstrap is.

You can build bootstrap in tailwind, but you can't build tailwind with bootstrap.

Both are tools to help you design something, but the tradeoffs of each one are quite different.

thomasfortes··on Safari tries to fill username
Both are the new IE, one push features without caring about the rest of the ecosystem and the other refuses to implement standards without caring about the rest of the ecosystem.

The end result is that the web right now has stuff that works only on Chrome and stuff that works everywhere besides Safari.

And the fact that iOS users can't change their browser forces developers that want their projects to reach the maximum amount of users to have Safari as a baseline instead of the current standard, making Safari a de facto standard.

So yeah, I think that both are the new IE, just in different stages of the life of IE.

thomasfortes··on Postmates added $70M in revenue and saved $3M in network fees with Stripe
Brazilian dev with some experience in developing systems used across LatAm.

Honestly, it is a mess...

There are specific payment methods that are common in a single country where people prefer to use that instead of credit cards, as a result sometimes we have to integrate a bunch of different payment processors, a couple of them with non-existent or terrible documentation which result in a ton of emails and calls to clarify stuff.

Stripe is in Beta in Brazil for a while but I never developed something with it for the local market, there is a countrywide processor here that have great documentation and support everything that Brazilian customers are used to and the fees are in the same ballpark, so there's no need to use it.

> We heard it’s better than Brazil.

Which is funny for me, integrating payment processors in Brazil isn't a big deal and I had a lot of trouble with a few LatAm processors, but if I had to guess the reason I would say that a lot of old cards and cards for people with low income used to be national only, they couldn't pay anything in other currencies, nowadays the card situation is a bit better and most issued cards can purchase international goods but since stripe apparently is coming to Brazil, if you could process your payments through it it should work flawlessly.

thomasfortes··on Graphical User Interface Using Flutter in Embedded Systems [pdf]
ReveryUI seems like a nice project that works similarly to flutter, unfortunately they aren't sponsored by a giant company, but I would love to use reasonml/ocaml instead of dart (which is in no way a bad language, I just prefer to code in functional languages) to write apps.

https://www.outrunlabs.com/revery/

thomasfortes··on John Carmack’s presentation at Facebook Connect [video]
He was complaining a couple days ago in twitter that he couldn't buy a ton of expensive gpu machines on GCP as an independent researcher, but being John Carmack someone from google stepped up and fixed it for him.
thomasfortes··on Teacher's low-tech laptop hack to display handwritten notes for online class
I had to buy pens for white boards even though I was volunteering to help students prepare to university exams as a math/physics teacher, I wasn't getting a single penny and I had to pay for minimal resources because they were only available for free for the hired teachers.

I have nothing but a giant respect for teachers that are usually underpaid for the giant importance that they carry on their shoulders, a good teacher can help completely change the life of their students.

thomasfortes··on Super Mario Bros. 3 in 3 Minutes – World Record Speedrun Explained [video]
Terraria speedruns have a NMA category (no major abuses) that have a set of rules defined by the community, if more games start to make 100% possible with glitches I can imagine these games adopting something similar.
thomasfortes··on Changelog for Elixir v1.11
> To me, this is a huge UX improvement for Elixir devs!

That's awesome, I have a module that is a helper to inject data in a socket to use with liveview but the data that I need isn't present in the dev environment and mocking it is annoying because if I use Mix.env the code in the release breaks, being able to pass an ENV var and just check it to decide to mock it or not will simplify a good amount of code.

thomasfortes··on Async Views in Django 3.1
Elixir does that too (more a BEAM thing to be more precise), the BEAM can spawn millions of processes without killing your server performance.

But I agree with your main point, concurrency is hard if the language isn't built from the ground to be concurrent.

thomasfortes··on Coping with Cats
> And to add to this: yes I think cat ownership is very worth it. It's basically an on-demand pleasure source that you can use as long as you want, whenever you want. Just curl up into the soft kitty and feel him purring, awesome!

If your cat is anything like mine, it is on demand for them...

When they don't want to play they climb in the highest place that they can and look down on me and my frustrated attempts to convince them to get down for play or food.

thomasfortes··on Netflix is now doing per-shot encoding for UHD content
That's when you set up dnsmasq or something similar and use your favorite dns server for most of the sites but a specific one for sites that will work better with it.
thomasfortes··on AtomVM: Erlang on Microcontrollers
Just nitpicking, but devices that run the BEAM, not Linux, don't know what is the state of the project, but the GRiSP board runs erlang in the metal.
thomasfortes··on Using, Understanding, and Unraveling the OCaml Language
https://esy.sh can help with the tooling and package management.

I don't mind writing dune files, but yeah, ocaml tooling is a bit lacking by modern standards...

thomasfortes··on In spite of an increase in Internet speed, webpage speeds have not improved
Not really, most of the bundles are pretty small, in the 30/40Kb range gzipped, even smaller with brotli, the problem is when the user has to wait 5s to start using the site, waiting half a second to load the first page is ok, waiting a quarter second to open other page is also ok.

It isn't purely about speed, it is about perception, a very slow first page load is way more annoying that a couple half or quarter second loads distributed over a long interaction, after the js is cached all is nearly instantaneous, but you don't have to wait a while to start using the site in your first visit.

If you want you can also wait for the first page to download completely and them import the remaining js while the user is on the first page, but I didn't tried to see how well it works.

thomasfortes··on In spite of an increase in Internet speed, webpage speeds have not improved
Yeah, it is perfectly possible to build javascript heavy websites without making them unusable until all is downloaded and processed...

I'm rebuilding a site for a client and using a bunch of dynamic imports, if you don't touch a video route, you'll not download the videojs bundle at all, I set a performance baseline for the site to be interactive and anything that makes it go over the baseline needs a good reason to be there.

thomasfortes··on In spite of an increase in Internet speed, webpage speeds have not improved
I use the picture tag with a bunch of media queries to deliver optimized images for each resolution in websites that I build, resizing a 1080p image to only 200px width does wonders to mobile performance while keeping it perfect for full HD monitors.
thomasfortes··on Nvidia is reportedly in ‘advanced talks’ to buy ARM for more than $32B
I had one model from Asus, battery life was terrible and if you were doing anything remotely intensive it doubled up as a nice hand warmer...

I know that these probably are solvable problems, but they left a pretty bad taste...

thomasfortes··on Online classes are not worth cost of full tuition
> there are kits to do experiments at home.

For high school level, sure.

But I can't see a sane way to let students handle acids like I did in chemistry labs during college, and physics labs have equipment that is too complex/expensive/dangerous to send to the students.

thomasfortes··on Flutter for Linux
There's a guy that managed to compile and run revery on android, I would love to have that as an option since I'm already familiar with ocaml/reason and only barely literate in Dart (and also prefer functional languages over object oriented ones)...

https://github.com/EduardoRFS/reason-mobile

thomasfortes··on Is WebP really better than JPEG?
IE11 supports the figure element, so it is possible to use webp and have a fallback to the png or jpeg, but since I already use figure for multiple image sizes I will support webp with fallbacks for a while...
thomasfortes··on Ask HN: What are your go to SaaS products for startups/MVPs?
Not op, but for now spaces are lacking detailed stats, one example, if you want to build a saas and bill your users for the bandwidth consumed by their buckets you can't do that right now using spaces.
thomasfortes··on The Hamler Programming Language
In erlang (in the BEAM vm to be more precise) you can update an application while it is running, it was a requirement for the language, even though these days it is a lot less common, its still possible.

The way that the BEAM does that it is that it store the old and the current version of the module, any new calls made will call the functions exported in the new module, but any process already running will call the functions of the old module.

But how do you handle types in a system like that, where the type of a message can change at runtime? There's no guarantees that your valid types that the compiler just approved will be valid at runtime...

learnyousomeerlang has this quote about rolling upgrades:

"We're getting into one of the most complex parts of OTP, difficult to comprehend and get right, on top of being time consuming. In fact, if you can avoid the whole procedure (which will be called relup from now on) and do simple rolling upgrades by restarting VMs and booting new applications, I would recommend you do so. Relups should be one of these 'do or die' tools. Something you use when you have few more choices."

https://learnyousomeerlang.com/relups#the-hiccups-of-appups-...

thomasfortes··on The Hamler Programming Language
It's not that typing is hard/impossible, it is that typing messages make certain operations in BEAM impossible (dynamic code upgrades).

From the fingers of Robert Virding itself: https://elixirforum.com/t/how-hard-would-it-be-to-have-a-str...

thomasfortes··on Lovely Week with Elixir
As someone that uses elixir for webapps and ocaml/reasonml for frontend work, I hope that https://gleam.run gets traction, seems like a nice BEAM language with types that is evolving quickly.
thomasfortes··on Announcing TypeScript 3.9
ReasonML is a pleasure to work with, and if reveryui gets momentum I will surely write gui desktop applications with it (I already use it to write compiled applications, under the hood is just ocaml).
thomasfortes··on Build a real-time Twitter clone with LiveView and Phoenix 1.5
Not touching on the reasons why the type system and hot code reloading are complex in the BEAM, but the hot code reloading dev workflows in other languages and the BEAM one are two completely different beasts.

Erlang/OTP was designed for systems where the amount of acceptable downtime is 0, you don't want phone calls failing because you have to fix a bug, the solution is a system where you can replace parts of it running live, if you replace a module all processes currently running it will still work normally but any new call to the module will use the updated version of it.

https://blog.appsignal.com/2018/10/16/elixir-alchemy-hot-cod...

thomasfortes··on Playstation Architecture: A Practical Analysis
Naughty dog (the studio founded by Gavin and Jason Rubin) is also home of the ICE team, a technology hub for Sony titles, I wonder if Sony saw the tech expertise culture in the studio and decided to put a team to handle psx dev tech with them.

https://en.m.wikipedia.org/wiki/Naughty_Dog#ICE_Team

thomasfortes··on Gleam: A statically typed language for the Erlang VM
> It goes back to 1998 or thereabouts

It goes way back, 1998 was when they open sourced it, the language was in development and use inside Ericsson since 1986.

thomasfortes··on FCC will require phone carriers to authenticate calls by June 2021 [pdf]
Don't know about Europe, in Brazil spam calls are common but you can register your number in a consumer protection organ to say that you do not want unwanted commercial calls and if you keep receiving them the companies can be fined, for me it works "ok", there still companies that don't give a shit but at least the amount of calls I receive was reduced a lot...
thomasfortes··on Court outlaws German Weather Service's free weather app
Put the Brazilian INPE in this list too, it's sad that some people created an imaginary world in their heads where innovation comes only from private companies...

When we're talking about physical sciences most of the work is done by universities and research centers, a lot of them funded by public money.

← PreviousPage 2 of 5Next →