100 karma · joined April 2, 2020
Answering every point of the author:
1. You have to learn dozens of classes – these classes are named after dozens of CSS properties. So you already know them. You also take this knowledge to other projects that are using Tailwind.
2. It breaks the separation between structure and design. Also, in HTML, you put scripts and CSS into files by design. Separation is a made-up thing. And writing Tailwind with @apply is still a valid way to write it – you lose code size benefits, but design system enforcement stays.
3. Its names are not consistent. See https://wiki.csswg.org/ideas/mistakes/
4. The design system is not enforced as much as it seems – you can literally detect deviations from the design system by the [] pattern, and you can force it with linters.
5. It is not a good gateway to learning CSS – Why should it be? It's a framework, not a CSS learning resource. BTW, it is still a better way to learn CSS than with auto-scoping modules.
6. It is hard to read – The author neglects clsx that is the default/available way to write CSS in most frameworks, that allows to group classes via arrays and objects.
7. The HTML lies to you about priority – Cascade is way harder than the author thinks, and by the way, one of the selling points of Tailwind is what makes complex cascade situations completely avoidable. What if color-red and color-green are in separate unscoped modules bundled up by webpack?
8. Working with Dev Tools is not comfortable. Agree, but it's how browsers devtools work.
P.S. I write CSS by hand via BEM on my own projects, and use Tailwind when I work with frontend and design teams. BEM is great, but it is much harder to onboard engineers to a BEM codebase, and no-methodology is a disastrous approach that sinks many frontend projects in bloat and cascade hell. Tailwind makes everyone familiar with code, and also Tailwind keeps our agreements with the design team in code.
1. There is a highly popular Cyrillic keyboard layout with an em dash made by design educator Ilya Birman – https://ilyabirman.net/typography-layout.
2. His colleague, Maxim Ilyahov is the author of an extremely popular book on writing good copy. Somehow, this book was a bestseller for years and was read by all kinds of common folk. I once saw a janitor reading it on a break!
1. We measure "subsidization" in relation to API pricing. API pricing is very overpriced, to compensate for this "marketing subsidization", R&D, and everything else. A few months ago, Anthropic was close to being profitable
2. In general, OpenAI and Anthropic are US companies, and the US is known to have price disease, with all those huge salaries, multibillion note-taking apps, and fighter jets that cost too much to fly. China, and other countries in the future, could produce roughly the same output for way less money, as they did with everything else
3. Compute progress still happens. We can already run models better than GPT-3.5 locally on an iPhone
Since the last update, I released everything that had been in testing since April, like gallery view, custom avatars, birthdays and, most importantly – autofill from link.
Now I'm preparing for a big launch – working on the landing page, SEO and onboarding experience. Here's what I've done so far:
1. I updated the landing page to actually tell users about the app and look presentable. I already see a big improvement in conversion
2. I added SEO crap to the landing page. This is painful for me, but sadly that's how Google Search works (it doesn't). It's paying off, too
3. I overhauled the onboarding experience, to make it smoother for new users
Two more features are still in testing; I plan to ship them before the release, but currently i'm not completely happy about them.
Good that they added a tool to keep using rehype, but I’m unsure that it will last
So, yes, it’s very widely used backend for modern typescript backends
Ukraine always had Cyrillic alphabet. There is no way, they will reject their culture just to punish foe. Also Cyrillics is tied to orthodox Christianity which has very big role in Ukraine.
In that context is more interesting that way more pro-russian Belarus, has some use of Latin (mostly in geographical standards) based on Latin variant, heavily inspired by Polish language.
By the way, parent of Belarusian and Ukrainian, the Ruthenian language (not related to Russian, Ruthenian was the second language of PLC), has a lot of alphabets including Latin and Arabics. First was caused by spread of Polish language, and second by large number of Tatar Muslims settled there.
Remember, currently individuals elected by you, from parties ranging from goodest to kindest, are voting for passport internet and chat control, with little to no well-funded opposition.
I dislike that Mozilla is spending their money sponsoring random political organizations while asking for money here and there. I dislike that EFF is sometimes busy with American politics more than internet freedoms, and I dislike that Alexandra Elbakyan believes in some kind of esoteric stalinism.
But despite all that, I still support all of them! Because they are doing good things that nobody else does.
There is a "what kind of American are you" meme that is usually applied to people who have zero tolerance for people with different political views. Of course, it applies only to evil people???
No! If you think that "canceling" organizations on the matter that their leadership is kinda suspected of maybe supporting something that doesn't 100% align with your last ballot is a good deed, this meme is actually about you!
* Of course I mean professional arguments, not political opinions or other 4chan stuff
My expectation was that I would make an SSR-rendered website, with sane content and meta tags, and my app would appear at least on the 1-3 page of search, because clever search engines would parse it.
In reality, I need to do all the JSON-LD, landings proposed not for sales but for SEO, fighting with Google Search Console, getting proper backlinks, etc.
And only after that could I hope that my project would appear at least somewhere.
Of course Crossover support is worse than Proton, so it will not be viable alternative in real gaming scenarios. But Proton is made by Crossover team.
And Apple hardware is 2x cheaper.
At early college age I was dealing with stress that I for some reason had in a crowded city, and my main help was listening to rhythmic music all the time.
What annoyed me a lot that people from a coffee shop workers to beggars were making me more stressed by insisting that I must get my headphones out before the conversation began.
With release of wireless Apple EarPods this behavior completely disappeared in a following year.
Like everything else in finance...
Saying this is not to defend all sorts of crypto-bros. The economy, especially one overly focused on publicly traded companies like the Western, and especially the US economy, is a meme economy.
Coffee, flats, healthcare, military spending, etc., of comparable quality in the abstract East, cost multiples less than in the EU/USA because they and their currencies are weak on memes.
Usually, I barely report on this thread once every few months, but this month was highly productive:
1. I changed how lists appeared in the UI to fix a very annoying pattern where users were confusing lists and things. 2. I finished adding image uploads. Now you can add and view image attachments.
This was quite a challenging task because there are a lot of security implications, and Cloudflare Workers don't support sharp. So I was implementing all the pixel bomb detection, optimizations, and other stuff by myself. Also, self hosted https://imgproxy.net came in handy as a price-efficient image processing solution.
While images are seen in List view (with a layout I'm very proud about!), gallery view is still under testing, as I'm still not completely happy with how it integrates with previous UI decisions. 3. I developed, and delivered ton of small QoL features and bugfixes. Also a few bigger features are in testing. 4. Generally, the app is close to being feature-complete for V1, so I'm slowly starting to work on marketing. It is way less entertaining than reiterating on the same for 2 years straight:(
1. For why would everyone want to use their laptop longer than MacBook lifespan? I'm typing this on a 5+ year old MacBook, which I expect will work for 3 more years. At this lifespan, it will be outdated by all means. I can replace it with a new one at the cost of $1-1.5k. If I had a Framework, I would gradually replace this with new parts? Well, only the mainboard takes a huge portion, or even more, of that. Screens became outdated too, by the way!
2. Repairability. Apple has bad repairability, in terms it glues the laptop from three parts. That means you can't do anything by yourself, but you can get a repair in a day or two in any point of the world. Can you fix your Framework in Tbilisi, Georgia? Last time I replaced the screen on a Mac, it cost me $300 including human work, the same as a Framework display costs.
3. MacBooks are just better in terms of performance and battery life per buck. They also tend to have the best screens, sound, and input. All of these are quite important for a laptop.
I like the Framework premise; I would like to own a Framework as a Linux machine. But we should remember that these are hobbyist laptops with a product/cost ratio, and gimmicky features.
All this discussion, amplified by voices of Apple-quarreled people like DHH, is stupid and kind of harmful – unexperienced people are ending up with expensive enthusiast devices (...or worse, with Dell XPS, you know).
P.S. Please don't bring "computer ideology" into this – there is no walled garden on MacBooks like on other Apple devices. There are no services actively sold to you. I don't know where this argument is coming from. It is just a Unix-based computer, with good hardware and a nice-looking GUI.
That said, I would definitely like to see comments of peope who actually used a MacBook and switched to Framework.
1. Over-reliance on complex concepts and terminology. Let's compare with Vue: `useEffect` vs `watch`, `useMemo` vs `computed`.
2. This useless "clever" stuff also slips beyond terminology: many years ago, Redux was considered the go-to state manager, and it required writing a lot of code across multiple files even for incrementing a number, because its author liked a lot of clever CS concepts. VueX at the same time allowed just to increment that number. Thankfully, nowadays, the React ecosystem is full of sane state managers.
3. React ships without any tools to work with CSS. That said there is no chance you would use React without CSS.
4. React doesn't bother optimizing anything for you. You need to know how and when to properly use or not use these clever `useEffect` and `useMemo`. There is a lot of stuff to know, and there are a lot of folk legends about optimizing React. This is while rerendering is its main purpose. In Vue, the framework makes you always use its tools, and does most of the optimizations inside them. I never thought about manually optimizing a Vue app.
5. The folk legends. React API and the "correct way" to write React radically changed so many times, so it is very hard to understand what is still true today and what is not.
All of that can be summarized into one – React is overly focused on ideas, computer science, and being high-level. And not very focused on actually making drawing interactive HTML on screen simple.
I do write a lot of React, Vue, and Svelte. And when I write React I always need to think about stuff, of which I never would think about with Vue and Svelte, because they already took care about it. And performance wise they are on par.
btw, I wrote a related post some time ago https://www.brachkow.com/notes/what-i-like-in-vue/
Big thing I made recently is moving it from SvelteKit to Hono + Inertia + Vue.
I like SvelteKit, but I was struggling with stability in active development periods, and writing proper tests was very hard due to mocking all the magic, especially outside trivial testing tools.
Now the whole app is straightforward Hono MVC with Vue powered UI. Logic is easy to test, and all UI states exposed in Storybook.
I wrote a custom adapter that makes Inertia run on Hono, and coincidentally same thing was released by Hono author itself as official module, which is great sign for adoption!
So, try Inertia – it is a best of both worlds. You write MVC backend as you like, and use modern JS frameworks for templates.
I actively browse Wikipedia in English, Polish and Russian, and see a lot of traces of government efforts.
For example in Poland related topics:
- Russian articles usually have negative stance, and articles have a lot of very strange quotes like wiki editor interviewed some person from 1920 in a bar with a drink. Most of these quotes are either folk anecdotes or made up by author.
Not related to Polish topic – Russian editors are also dominating Russian Wikipedia, and significantly affect important articles for other russian-spoken countries like Belarus, Ukraine and countries of post-soviet east.
- English articles about PLC are actively edited by Lithuanian editors. Polish nobles are renamed into Lithuanian manner, despite they definitely didn't knew Lithuanian and had absolutely slavic names, only by the fact they had any position on territory of modern Lithuanian or participated on event that considered "good" by Lithuanian historicans
While I annoyed by these events, I think it's big win for a country if it can do that. Being able to shape opinions via "neutral" source is a big PR win. And country PR is very important – just look at "nice" Switzerland or Japan, catastrophic PR failure of Israel in recent years, or what oil-rich Arabic world does right now.
What I don't understand is these loud "voting with money" comments. What they are canceling is very subsidized plan to buy something that delivers a lot of value.
There are only two providers that can provide this level of models at very subsidized price - anthropic and openai. Both of them are bad in terms of reliability.
So I wonder what these people do after they "cancel" both of them? Do they see producing less result at same hourly rate as everyone else on the market as viable option?
Here is a breakdown, which was posted on HN few years ago – https://lunduke.locals.com/post/4387539/firefox-money-invest...
I always thought that ugly UIs on Linux are because of good designers do not intersect well with programming enthusiasts.
But looking how ugly same app looks on Linux, I’m starting to think it could be a technical limitation. Can someone elaborate?
[0] https://news.ycombinator.com/item?id=19394399
[1] https://www.reddit.com/r/PhoenixPoint/comments/b0rxdq/epic_g...
But these UI's are occasionally slipping into a countries where tipping is not expected.
This leads to a strange situations like "transaction isn't approved by me because instead of ApplePay and walk away, I need to solve some quiz on a payment terminal or payment will not pass".
Every time this happens, it annoys me a lot which affects my wish to visit this place again.