30 Under 30

Forbes? Haha, no. It would be cool, but I have a less global goal, yet very important for myself. Forbes will wait. I've stumbled upon this idea randomly. So, what's the deal? Lose 30 KG by 30. To cheat a little bit and make the numbers pretty, I'll count down from 100 KG. By the way, yes, I've made some more progress since the last time I've posted about it. And now I have 946 days and 25 kilos to beat this challenge. Time Left: 946 Days Weight To Get Rid Of: 25 KG Final Date: April 2, 2027 Final Weight: 70 KG My previous weight goal, which was 100 KG down from 114 KG, was set without a specific date or deadline, yet I've reached it. By declaring this goal publicly, I hope it will keep myself accountable. 1, 2, 3... Let's go!

The Cost Of Subscriptions

Frustrated with amounts of money leaving my bank account each month, I’ve set myself to get rid of each and every subscription. You might roll your eyes, because it is obvious to you, but bare with me here. Why ditch subscriptions? In my opinion, it’s the easiest thing to give up to reduce spending. But wait! $10 bucks doesn’t look like a huge load of money! True, you’re unlikely to notice it looking at the monthly expenses. But they do add up over time. Netflix currently costs $15.49, let’s round that up to $20. So, our monthly expense is $20, if we take that money and deposit it somewhere for 10 years for a high yield (13%), in 10 years we’ll get the same amount of money we deposited on top of it, about $5,000 total. Plug the numbers in and see for yourself: https://www.nerdwallet.com/calculator/compound-interest-calculator Luckily, subscriptions aren’t addictions. Sort of.

How To Use Nested Lists For Planning

There is a powerful and quite simple technique to make a plan for complex tasks. I’ve used it many times at work. Let’s say you’re given a rough business description of a feature. * How are we going to deliver it? Release a new version of an app. * How can we make sure that release is a success? Check logs, metrics and other stuff. * How do we ship it? Hide feature with toggle, make a deploy on production, test it, enable the toggle …and so on, until we reach the very first steps. These steps may be to develop necessary components, and then to integrate them, and so on. Here’s a simple example of such a plan: “The Chat Bot Widget Feature”:

- Real User Monitoring - Enable the feature - Test on prod (with flag) - Deploy - Merge feature branch - Make sure tests pass - Replace mocks w/ API calls - Make a chat bot widget - Add metrics, logs, etc - Create API mocks - Discuss API - Develop UI components - Check designs

Given this plan, it is clear that we can do a couple of things in parallel. E.g. developer Steve will check the designs and make tasks to develop UI, and Jane will negotiate with the backend team. After making such a plan, you’re ready to create an Epic, split it into tasks, and even link those tasks with each other, and finally, to start working on it.

Chair Upgrade For $20 That Feels Like $100

Since I’ve moved from my parents house, I’ve need a chair. And I bought a cheap, but adequate chair. It has decent back and all, but the wheels are plastic and they wore out in a year or so. Also rolling on these wheels is a no-no on a wood floor, so I’ve got a cheap rug. What I should’ve done from the start without breaking the buck instead is to get $20 roller blade style wheels. They’re silicone, so they don’t hurt wooden floors, and they roll like crazy. They also have a brake. It feels great. I can also ditch the carpet now, because I don’t really like it or need it. It is easier to just clean the floor. And carpets do accumulate dust. One more thing is that a quick (but thorough) search in a big online shop, I couldn’t find a chair with good wheels (even for three hundred bucks). Maybe such chairs exist and maybe for a cheaper price, but good luck finding them I guess. I’ve also checked Herman Miller and DXRacer chairs (from cheapest to $1000+), I haven’t seen good wheels. I hope to be mistaken, but it seems that all default chair wheels SUCK.

Why do client-side metrics matter?

…for both web and mobile... Because not all errors happen on back-end side Because your app may be not the only client of an API Because your users may experience problems, but on API scale it can just be a small bump Because users have a lot of different devices, OSes, versions, brands, browsers, extensions etc Because front side bugs exist Because you can't always find every bug Because you may not test an app that thoroughly, like the most active user would Because you may miss: load testing, latency checks, slow internet testing, low-end device testing

How I Quit Energy Drinks

Do you remember the first time you drank an energy drink? I don't. I've probably "just tried it" sometime somewhere. The first I can remember is when I was about to deliver a big project presentation in university. I was nervous, sleep deprived, made a presentation file just before the deadline. I know for a fact, that it wasn't the first one. I've liked the taste of it. I've liked the buzz it gives. As a young student, I've consumed those Red Bulls and others from time to time, and I've continued to do so when I've become an employee. Fast forward 5 years or so to 2023: I'm overweight, working from home, drinking 5 cans a day. And I didn't limit myself to energy drinks. I've drank from 0.5 to 1 liters of cola (or something similar) each day, plus black tea. I thought I couldn't function without these liquid batteries. The critical moment was when I've realized that: * I'm far too fat (110 KG) * Have heart palpations, trying to sleep at night (like I'm running a marathon) * And then at some point I've even started to get heart palpations in broad daylight I've rushed to a therapist and they said this: * You have a healthy blood pressure (for now) * You have an okay-ish resting heart rate (for now) * But your body gave you a clear warning * You need to change your lifestyle: - Loose weight - Eat healthy - Exercise - Reduce sugar and caffeine intake ...or else! Of course I didn't want to Fuck Around And Find Out what would've happened. I think I've needed to hear this from someone else. After that visit I've gradually reduced the number of energy drinks to 0... It was that easy to be honest. Because I was scared shitless. Now, I didn't quit caffeine for good, far from it, that's true. A month ago, I was drinking tea and black coffee (with sugar). Now, I could only consume black coffee with added sugar, because without it, it was too bitter. I've tried replacing sugar with other sweeteners, but it was not the same and I didn't really like the taste. I don't like sweeteners overall. Sugar-free drinks (like cola, energy drinks) taste like shit in my opinion, because of artifical sweeteners. Or maybe they just taste like shit without sugar? I guess we'll never know. But I would've really prefered that sugar-free drinks would be sweetener free too. Since the sweetener experiment failed, I've just clenched my teeth and drank black coffee without sugar. After one bitter cup, it became the norm for me, I like the raw coffee now. Side note: I drink black tea without sugar (or anything) for like 10 years or more. That habit of mine is an old one. Since I've visited the doctor, I have: * Quit energy drinks * Quit cola (and other sugary drinks) * Quit added sugar I've also stopped eating croissants and such, and also sweet chocolate. Only bitter chocolate for me. Bitte. That probably contributed (greatly) to weight loss. And what now? Thank god, I don't have these frightening, terrifying heart palpations in the day. But I also don't have them at night. I don't have crazy sugar cravings and crazy hunger. To be continued...

Book Reading

Recently I've got the urge to read more. Not because I “need to”. I've used to read books from time to time. So I started to think, why am I not reading and how can I get back to it. Most of the books I've read, I've read on a smartphone. But lately it is not a good option for me. There are many distractions on a smartphone. And even though phones are big nowadays, they're still too small to read from comfortably, at least for me. I try to offload tasks from smartphone to desktop or laptop, because I can't hold perfect posture if I'm starting at a small screen, this is seriously bad for my neck and back. Should I read instead of doom scrolling? Suuure… But still, I need to get into it first. I don't have specific books in mind, but I do have topics that I'm interested in. So, the main question for me is this: What's the best medium to read books? In terms of: - Commitment - Price - Assortment - Comfort Everything is yet to be determined, but I bet that physical paper books are the best in terms of commitment. You bring them home. You lay them on a table. Book stares at you, begging to be read from. Perfect. The next best thing is probably e-reader, since there isn't much you can do besides, well, reading. Then goes the tablet, and everything else (smartphone, PC, laptop) sucks at this. I feel like I can do and read anything on PC or a laptop, so I don't even do it. If you bought a pdf, well, it's somewhere on the disk. Whatever. I'll just watch YouTube all day. I didn't really use an iPad for much else besides reading because other devices do it better (phone is always in a pocket, PC has a larger screen), so it works better. Maybe. Nothing beats digital books in terms of price if yarr a bloody pirate. But free stuff doesn't commit you to do anything. And paid digital stuff is so expensive, it makes me red from greed. I mean, a Kindle digital book cost like a thirty bucks. Or get a subscription. Even brand new, tangible, printed, made of paper book costs less on the same old Amazon. You pay for the convenience, I guess? These numbers just don't work in my head, so I'm not paying 30 bucks for a pdf. Brand new books are too expensive too, in my mediocre opinion (and overrated). I don't give two shits even if it has sketches inside of it, or is wrinkled. I'll take this discount, please. *Cha-ching!* Digital books win in terms of availability and assortment, you can get almost any book (or anything) in a click of a button. Even free (most of the time, it is even easier, faster). There aren't that many English books where I live. And I don't want to read translations. I really don't. There is also a question of what is available locally and what can be ordered and delivered. I've had a few books in mind that I'd like to have at hand, but they're either not available at all, or not available in English. If price is taken into consideration, that leaves me with second hand books, which limits assortment even more. Okay, maybe E-reader, then? Well, it's kind of a subpar tablet, eh? Also, not every book, especially PDF is going to work (work well) on an e-reader. Alrighty, a tablet. I've read some books on it, from cover to cover. Which one to choose? What's the best size, price and color!? Okay, I don't care about the color, but seriously, which one? I think I've reached decision fatigue on this one. There is iPad and Android. Oh, wait, there are like 10 iPad models and 5 if not more Android tablet vendors, and even more models... To be continued…

100 KG

If you see that number, what do you think? Is that a big weight? If your weight is below that, you probably see this as a bad weight. If you're 110 KG, you wish you would be 100 KG. There are more dimensions to this, of course. Height, muscles, and so on. If you're tall and muscular, I guess a hundred is your normal weight. An ideal weight for my height, on the other hand is 65 KG. I used to be like that; somewhat fit. I started training around 14 years old. Before that, my weight was okay I guess, but I had no muscles and lots of fat. It was really hard to do pull ups in the beginning, luckily I had great friends, who not only taught me, but encouraged to do sports. In the beginning, I couldn't pull myself even once. I just hang like a sausage. At first, I've just tried to swing back and forth, and tried to do cheat pull ups. It works, by the way. After some time I could ditch cheating completely and do 1, then 2, then 3 pull ups and so on. In my peak physique, I've still had some fat, but in general was happy with myself. I could do like 10 dips and 15 pull ups. I don't remember how long it took me to reach this form, but I suppose it was in the range of 1 to 3 years. And what's cool about that, the form stays for quite some time. Even when I've stopped exercising regularly, I could still manage 10 pull ups, even after months of no training. Unfortunately, at some point I've completely forgot to workout. As I grew up, I've got to work and do other adult stuff, like cooking (which I didn't know how to, so I didn't). The weights kept showing larger and larger numbers. For some reason, I kept ingoring it, until I couldn't anymore. I've said enough is enough when it reached 110 KG. I was terrified when I realized that I can't do a single pull up, even swinging. I couldn't even do a push up! I knew based on past experience that it is possible to beat this. But I would say that this time it was even harder. I was even more obese than before, and all of my muscles were gone. I've started training at 01.01.2024. Today is 04.08.2024. I've lost 13 KGs. It felt like am not doing any progress, days and weeks and months. And losing more weight gets harder and harder, it seems. But I'm not giving up. I couldn't do 1 pull up. Now I can do 5x4, and even squeeze a little bit more. I couldn't do a single dip last week. The day before yesterday I did just 2. Now I can do 3, and even do a little bit more after that! I've also changed my diet. I used to order restaurant food deliveries (and fast food). At some point, I've tried everything and was bored and sick of it. I've started eating healthy foods, and cooking meals myself. I ditched sugar in my coffee. I thought it was impossible. It really is just a habit. You get used to it. I used to eat oatmeal with sugar or something sweat. Just add some berries or fruits. Yes, I do realize they have sugar, but they're healthier than cookies. As a bonus point, you'll eat less. You'll eat just as much as you need. After some time, I've just stopped even looking at croissants and other sweet stuff. I don't order it anymore. Note, this didn't happen one day and all at once. Every change was very gradual and one by one. At some point, I might be able to eat anything and everything (given enough activity), but I'm not there yet in my honest opinion. Here's my tips: - Can't do push ups? Push off a wall, or a table or anything - Maybe, invest in a floor push up handles, it helped me a ton - Can't do dips? Try anyway. Ascend slowly. If it hurts, stop, rest a day or two and try again - Train for muscle growth first and foremost. Muscles look better than fat, and they also passively burn calories. Sort of? - Lift weights. You don't have to lift a ton. But do it anyway. It's also nice to feel no back pain, to have a better posture. There's also one more thing that I've missed when I was a teenager: I didn't train all of the main muscles. I didn't train shoulders, triceps, lats, traps, glutes, etc. I'm sure they've got some work done, but not enough. Do train everything.

Hiking

A few years ago, I had an opportunity to go hiking. For three days and nights, a group of people was moving from point A to point B, through mountains, plains and streams, sleeping in our bags and tents. It was amazing to experience this.

Even though it was a semi-starters trip, this was a test of durability for me. When I received my backpack, I couldn’t believe that I could walk at least a couple kilometers with it. Heat, weight, constant sunlight, mosquitoes, difficult uphill routes and sores were all tiring us. Each evening I thought: “That’s it. I am not gonna be able to stand, let alone walk tomorrow, even if I want to”. But next day I woke up with enough energy to continue. The struggle was way more than worth it.

Mountains and vast landscapes are astonishing and unforgettable. Stars couldn’t be brighter at night. Water was never before so tasty, especially cold.

I wasn’t using my phone for three days, and it was refreshing too. I can’t help myself and let go of it in normal circumstances, not that I am addicted to it, but still, I use it more than I should. This natural unplug was really nice.



And again, this was my first time, and I never thought that I would like such journey. I would certainly repeat this.

Signals

Somehow, many frontend libs and frameworks decided to adopt this new thing, called Signals.
Vue had something that feels like signals since Composition API came out.
Preact, SolidJS, and Angular all have singals now.
I think it is a good thing that these frameworks have such similarities.
Most of RxJS code that I saw was overly complex and unasked for, to be honest.
Yes, RxJS is a powerful tool, but it seems to me that it was used like a golden hammer.
What frustrates me is that React team decided NOT to adopt this.

Stop using buttons for navigation

An idempotent action should always be a link.

Starting a site in 2023

  • Just go with Vercel! Trust me

Otherwise...

  1. Buy a domain name somewhere
  2. Set your name servers to point to your VPS provider
  3. Enter your domain name in Cloudflare SSL
  4. Replace your name servers with the ones Cloudflare will give you
  5. Profit!

You now have a domain name with HTTPS!

State of frontend 2023

As I mentioned before, view libraries start to adopt Signals to improve performance and DX.
However, not all of them do that. My personal opinion is that React is no good in 2023 because of this, it is moving in the wrong direction, and bringing NextJS down with it (which has it’s problems too, to be fair).

So, what would I choose for SPA?

  • Preact (maybe), Vue, SolidJS, Svelte

Preact is in a maybe territory due to the fact that it seems like it is not moving at the same speed like other libraries.
I would try it out for small apps and see how well it works. And there isn’t really an SSR route to follow, if the app gets bigger.

What would I choose for SSR?

  • Nuxt, SvelteKit, SolidStart

I would really like to use NextJS with Signals (or basically with Preact), but that would be a rough journey.
And NextJS is making something weird with pages->apps breaking change, and I am not sure about that.

Exact versions

Many package managers by default add dependencies with possibility to upgrade to a patch version, during an install. The lockfile will be updated, but the package file won’t. I think this behavior is really nasty for two reasons.

First, if you have large enough, say 10, number of libraries, you’ll lose track of what is used right now. Lockfiles are big. And even a dependency tree won’t help much, because you’ll have to compare two sources manually, with your naked eyes. You won’t have to hunt down these changes during upgrade if the package file doesn’t lie to you (versions are the same)

Second, it makes installs, builds and deploys unpredictable. Sure, patches shouldn’t break anything. But I don’t want to take chances. And I really want to ship stuff exactly like it was built, and tested. If an upgrade breaks something, you can catch it right away or hunt it down by looking at what packages were updated recently, instead of guessing what specific package or a combination of packages broke down. This also minimizes a chance that a newcomer dev will have to deal with broken stuff or a different behavior.

Some official, let alone community guides tell users to add a version which only pins library to a major version. I saw this in some Google’s SDKs. This is somewhat common in Android and iOS development, and I had numerous cases where a newer patch version was no good. The articles and guides should specify exact versions, otherwise how do I know which version to use, in case of a problem?

I want my software to be accurate, not
hit-or-miss. You want to know your exact salary, not a guess.

The English-English dictionary

One concept that beginner language learners miss is that at certain point you should just start using it, the sooner, the better.
And not just using it – you should start learning your target language in that language. Yeah, English classes in schools and universities nowadays have workbooks and lessons in English. But some students and self learners still struggle to apply this method outside of classroom.

One of the most powerful things that opened my eyes to this concept was switching my apps and Google Search language to English. With apps, you familiarize yourself with translations of the things you already know.
And the use case for switching search language is this – you can search a word in your native language and Google will present information in your target language. Specifically, it shows you the definition of a word you are looking for in your target language. It feels like this unlocks a lot of vocabulary and context. At certain point you won’t have to translate anything back to your native tongue. This is the moment where you can proudly say that you understand English.

State of PCVR 2023

Recently I purchased a Pico 4 VR headset, and the main reason for that was that I wanted to do some physical activity during work breaks. You know, when the CI/CD pipeline runs, when test suite runs, et cetera, and just in general to be able to easily stand up and do some excercise. Sure, that seems like overly complex solution to a simple problem – do some push ups, sit ups and so on.
But the problem is that it is very easy to forget about it altogether, at least for me. Games, on the other hand, are designed to be addictive.

So I’ve tried Beat Saber. And it turned out to be the best VR game ever. It is just great.
And the best thing is, you can’t really stress yourself too much (unless you’re playing 100 sit ups in 3 minutes, but that’s another story). I wish though that there were more wider maps, wider and longer movements. There are custom maps for that, too.
But I wish it would be more common. Basically, I’ve bought VR for Beat Saber, and it turned out to be totally worth it.
Unfortunately, the alternatives to Beat Saber are not even close. I would really much just prefer that Beat Saber integrated some of the features of other similar games, because it is just better overall, and I myself don’t see any point playing something else.

As for the rest of VR games... It is sketchy at best.
Driving games work OK for me – the only problem that I have is that I would really really really prefer driving in Forza Horizon, instead of other games. Flight simulators like War Thunder work great too. Looking around the interior of the vehicle adds to the immersiveness.

The shooters are... playable. I’ve tried Pavlov VR, but it requires you to hold your weapon with both hands to be accurate.
And I find that very annoying. Yes, maybe for a super simulation realism mode it would be cool, but in general it is just not practical. Reloading and all that stuff is done with your hands, and I really don’t have a problem with that, it works okay.
But I think Vail VR is just better in general. Still, not as fun to play.
Doom VFR surprised me in a good way, despite negative reviews. I felt that it is a pretty good VR shooter, really.
Even though I had to turn my head around to look around, because I was lazy to bind right stick to look around (and maybe that’s not even possible? I am not sure).

Half-Life: Alyx is... neither good or bad.
It looks good (for VR), but the problem lies with its gameplay. It’s a Half-Life game, so there are lots of breaks between shooting the enemies. I’ve got so frustrated in the beginning so that I loaded some chapter after that.
I don’t want to sit in VR and solve puzzles. As a matter of a fact, I disliked it in the original Half-Life series.
I love Portal 1 & 2, but for some reason I can’t stand solving puzzles in Half-Life.
And since it was one of the first AAA titles for VR, the movement is strange.
They’ve designed the levels so that you have to “jump” often, but why I can’t jump just to a press of a button?
Why do I have to teleport?
Btw, there are some cool features in this game – like climbing the ladders with your own hands. But that’s a one trick pony – you can climb them by a press of a button and that’s just so much easier, so why bother.

I wish there was some sword fighting FPS slashing game, something like Shadow Warrior. Also, I’d like to play with lightsaber, you know?
I haven’t tried Blade and Sorcery, but it looks like it is not for me, really.

I’ve tried several virtual drumming “games”, and that’s a cool concept, however... The problem is that each game of this genre has something really good, but is not fun overall. Paradiddle, Ragnarok, Drums Rock...
I am certain that is possible to create a good VR drums experience, but it is not there yet.

There are also mods for regular games that add the ability to look around in VR. I haven’t tried those, but I really think that developers should add at least that to their games.

Overall, I have a feeling in most of the VR games when I play them: Why VR?

VR really shines when you benefit from immersiveness (driving, flying), or utilise your hand movement (Beat Saber, drums).
But apart from that – I am not sure. I like how “3D” effect works, and all that. It really is cool. But still, I’d play a PC game over VR.

I hope that there’ll be more and/or better games like Beat Saber, or that it’ll receive updates to make it more versatile (more modes, more different types of movement), that regular games would add VR modes (such as Forza Horizon, Cyberpunk and such).
Playing 3rd person games in VR is just pointless, by the way.

Vue 3, revisited

Previously, I’ve had mixed thoughts about Vue 3. But now I’ve stumbled upon it again, and since I’ve seen decent code written with it, I think I was wrong.

It seems that Vue 3 just got even better, if you think about it.
The ability to write hooks is great on its own, but Vue 3 gives you complete freedom.
If you add “setup” attribute to the script tag, you won’t have to return a result from your script and make a dummy setup function.

Honestly, writing Vue 3 code feels refreshing again, like it was with AngularJS and VueJS.
Vue always was a tool which helps to iterate fast. Now it’s even more smooth.

How I built my resume in HTML, CSS & JS

Previously, in local market a resume wasn’t a requirement. When you have some experience and network, something like LinkedIn is just enough.
But when I entered global market, resume became relevant. Aaand most of automatic resume services (including LinkedIn) don’t fit on one page or have some other inconveniences. So I needed something more serious.

Before I tell you my final solution, here is what I considered:

* resume.io – customization isn’t enough for me
* Figma – but I am not a designer, this is not for me. Especially such important thing as resume.
* Microsoft Office, Google Docs and basically and other office software make me clench my teeth in pain
* Notion seemed adequate, but I missed customization (precise font size, for starters)
* LinkedIn and similar services are not customizable
* LaTeX – seems like a hardcore solution: I don’t want to learn one more markup language and I am not sure where can I edit it online (again, how customizable would it be?)

But I am a web developer. Surely I can make a HTML page I thought! I tried it, and liked it!
To me it seems like a perfect solution.

Resume, source code, if you want to laugh at my implementation. You may be shocked, surprised and confused.
Yes, it is overkill in terms of libs. But I am Frontend Developer, after all! Why not? :) I do what I want, it’s my resume after all.

Pros and cons

+ Complete freedom, independence and customizability
+ Convenience in comparison with other solutions (LaTeX/Figma/Office/...), IMO
+ Accessible on the web, always up to date
+ I can add additional features: say if I want to tweak a resume for a certain company
+ Edit & export anywhere, literally anywhere
! Someone might say that there’s something wrong with the style, but I can fix that
! It probably has issues with ATS – but who wants to be judged by an ATS? :) I don’t

Rant about wiki’s (and Jira)

Confluence, Notion, Wiki, Jira... what’s common about them?
They’re slow. And often times, clumsy – in the sense that often times they don’t do what you indended to.
In this post, I want to focus on writing. Stories, Epics, Specifications, Documentation.
These tools don’t adhere to a common standard. They all have some kind of WISYWIG editors.
But in my opinion, most of this feature bloat isn’t needed, and even unasked for.
Instead of writing a coherent text with the most basic formatting possible, people overuse tables’, dropdowns’ and formatting.
Often times it breaks. I dread editing a table in Jira or Confluence. One awkward movement and everything is broken.
What’s worse is that these tools can “eat” the thing that you’re editing and sent it to the void, and unless you copied it or saved it somewhere else, it can be forever lost. It happened to me at least a dozen of times. Ctrl+Z doesn’t work in these cases.
I wish version control in these tools would show raw diffs, instead of trying to show something in between.

Information gets lost not only due to unaccaptable software mishaps, it also gets lost due to possibility of unlimited nesting, broken links. Even more than that: I personally lack the motivation to use this software, because of the aforementioned reasons.
I wish that Markdown ruled the world of non-programmers too.
I believe we can have the best of both worlds:
People can even have formatting buttons, and they can even see the preview without dealing with raw formatting.
But I would much rather write in raw .md, without crazy heavy WISYWIG solutions.
Btw, is there anything like Notion but .md ?

https://martin-ueding.de/posts/rant-about-confluence/

import com.my.awesome.*

Speaking about packages, I find that seeing the name of what was imported from where is important.
Consider this very simplistic and made-up example code:


package com.my.awesome.project;

import java.io.*;
import org.apache.commons.fileupload.*;

public class Main {
    public static void main() {
            File file = new File("/usr/local/bin/foo/bar");
            FileItemFactory factory = new DiskFileItemFactory();  
    }
}
        

Can a newbie guess which import comes from?
What if there were 10 imports from 10 different libs and more code?

I hear you saying: but we have IDE’s. Sure, but didn’t you ever had this problem where a couple of imports were not working? Reference was not resolved due to some kind of refactoring. I find that this is an unnecessary problem out of thin air. Explicit or package named import would work just fine.

Please, do not export default

Finding usages and reference sometimes can be hard enough even if we use named exports due to renames, index files, re-imports, re-exports. I know that most modern editors can do that, but still, your code editor won’t show you all usages of an entity if it was re-imported or re-exported, even worse if it happened a couple of times. By that time you’re likely already forgot what you were looking for. I think this is bad too, but export default is worse.
Things get harder if you’re trying to find something that has no name. Yeah, your editor can (probably) still show you references of this object, but good look trying to find it in an organization (across multiple repositories, projects, libraries).
You can’t really rely on a filename or path either.
Even if this would be possible, it would take too much time to bother doing so. To make things worse and just for fun, name your file something super generic like `list.js` and import/export it a couple of times for good measure, so that the person looking for its usages will definitely abandon all hope.

One time, I was refactoring a component which was default exported and when I searched where it was used, one result wasn’t shown in the search. Because it had a typo. I knew this only because I also searched for its filename, because I wanted to be extra sure.