Facebook’s “Welcome Back” Was Astonishingly Useless

Today, while researching something online, I followed a link that turned out to be a post in a Facebook group. To read it, I had to log in with my Facebook account that I have barely used for several years. I mostly use it for exactly this purpose: “to read that one thing” and quit. But today I was curious to see a few items from people I’ve fallen out of touch with. Maybe I’ll be reminded why I used to spend time on Facebook.

I clicked to see my feed and was surprised at how many times I had to hit “Page Down” to read anything interesting. It was pretty ridiculous. I hit “Home” to go back to the top of the page, which refreshed everything because Facebook wants to show me different ads. This time, I wrote down the posts that scrolled by. The tally: 39 items before I got 5 actual posts by people on my friends list. 5/39 = 12.8% of my Facebook “Welcome Back” were actual content I cared about, and the rest were garbage. (The actual ordering is at the end of this post.)

This is astonishingly bad. My mental impression of Facebook, back when I was active, was 80%-90% posts by real people sprinkled with 10-20% of ads and other uselessness. Now it has flipped completely around. I’ve read that both Facebook usage hours and advertising revenue are going down, but now I see firsthand what’s going on: to increase revenue and engagement, they increased number of things I didn’t ask for, trying to get me to stay online longer so they can make more money. But that is actually having the opposite effect: I’m now less inclined to stick around, so they’re going to make even less money.

Questionable business plan, pathetic execution.


My sample of Facebook feed welcoming me back after a long period of absence:

  1. “Suggested For You”
  2. “Suggested For You”
  3. “Suggested For You”
  4. “Sponsored”
  5. First actual item from someone on my friends list!
  6. “Suggested For You”
  7. “Suggested For You”
  8. “Sponsored”
  9. “Suggested For You”
  10. Second actual item from someone on my friends list!
  11. “Suggested For You”
  12. “Sponsored”
  13. “Suggested For You”
  14. Third actual item from someone on my friends list!
  15. “Suggested For You”
  16. “Sponsored”
  17. Fourth actual item from someone on my friends list! At this point I’m thinking “Well this is significantly worse than before” but I ain’t seen nothing yet…
  18. “Suggested For You”
  19. “Sponsored”
  20. “Suggested For You”
  21. “People You May Know” (I didn’t)
  22. “Sponsored”
  23. “Suggested For You”
  24. “Suggested For You”
  25. “Sponsored”
  26. “Suggested For You”
  27. “Suggested For You”
  28. “Suggested For You”
  29. “Sponsored”
  30. “Suggested For You”
  31. “Suggested For You”
  32. “Suggested For You”
  33. “Sponsored”
  34. “Suggested For You”
  35. “Suggested For You”
  36. “Suggested For You”
  37. “Suggested For You”
  38. “Sponsored”
  39. Fifth actual item from someone on my friends list, with 21 useless items between it and the fourth actual post.

Holy crap, Facebook. My expectations were low, but you’ve managed to sink far below even that. You’ve just made sure it’ll be even longer before my next visit.

JavaScript Spread Syntax and Other Un-Google-Able Shorthand

I’ve had the opportunity to look at a lot of sample JavaScript code snippets as part of learning web development. For the most part I could follow along, even if I lacked the skill to create something new on my own. Due to its rather haphazard evolution, though, JavaScript does have an annoying habit of having many different ways to do the same thing. Part of this is past-looking historical: as browsers tried to merge different implementations into one globally compatible whole, everyone’s slightly different approaches had to remain valid for backwards compatibility. Part of this is future-looking cultural: well-meaning people try solving old problems by inventing something new intended to do everything the old stuff does “but better”. When combined with the need for backwards compatibility, such efforts meant we end up with the legendary XKCD “Standards”.

Particularly annoying to me are JavaScript syntax additions that are just about impossible to put through a search engine. They’re usually scattered around but I found a Medium post JavaScript’s Shorthand Syntax That Every Developer Should Know that was a pretty good roundup of every single one that had annoyed me. The author pitches these shorthand as enabling “futuristic, minimal, highly-readable, and clean source code!” And as a beginner, I disagree. They are opaque and unreadable to those that didn’t already know them and, due to their nature, it is very hard for newbies to figure out what they mean.

Take the first example: the spread syntax. When I first came across it, what I saw in the source code were three periods. That is not self-explanatory as to its function. This Medium post had a comparison example and touted spread syntax as much cleaner than Array.from(arguments) but I could search for “Array.from()” and “arguments” to learn what that does. Trying to search for “…” was a fruitless exercise in frustration that ended in tears because search engines just ignore “…” as their input. I did not know what the spread syntax was (or even that’s what it was called) thus I was up a creek without a paddle.

The rest of this Medium post covered:

  • Inline short-circuits and nullish coalescing. This uses “||” but any search hits would be buried under information about logical OR operation.
  • Exponential operator and assignment. This is “**” and “**=” which usually gets treated as accidental duplicate characters leading to information about “*” and “*=“.
  • Optional chaining via “?.” a series of punctuation marks who also get ignored by search engines just like “...“.
  • Non-decimal number representation is the least bad of this bunch, at least beginners have something to search with like “What does 0x10 mean in JavaScript”.
  • De-structuring and multiple assignment are the worst. There is literally nothing to put into a search engine. Not even an “...” or “?.” (which gets ignored anyway.) There’s no way for a beginner to tell the syntax would extract selected member values from a JavaScript object.

I can see the value of these JavaScript shorthand for creating terse code, but terse code is not the same as readable code. Even though I’m aware of these concepts now, every time I come across such shorthand I have to stop and think before I could understand the code. It becomes a big speed bump in my thought process, and I don’t like it. I certainly don’t feel it is more readable. However, I have to grudgingly agree the author’s title is true, just not in the way they meant it. They are JavaScript’s Shorthand Syntax That Every Developer Should Know because such code already exists, and every JavaScript developer need to know them well enough to understand code they come across.

Not a Fan of Bonded Touch Screens

After replacing the touchscreen module of a Pixel 3a phone, I’ve decided I’m not a fan of a modern evolution in their design. A touchscreen module has two major components: an output module to show information to the user (display) and input module to detect location of user’s fingers (digitizer). While they are both advanced glass technologies, they are made with very different manufacturing processes. Thus they are built on two separate pieces of glass, and assembled together into a touchscreen module. The straightforward way to do this is to place one on top of the other, like this Amazon Fire tablet I took apart. In that case, I found the display was intact and it was only the digitizer glass that had cracked.

There were some downsides to this approach. Aesthetically, it means it’s possible for dust and dirt to get between the layers, where it is very difficult to clean. These surfaces also mean there’s more chance for reflections, and two separate pieces of glass meant the user’s finger is a few millimeters away from the visual interface they are interacting with. Mechanically, as separate pieces they are each on their own resisting mechanical stresses.

To address these problems, many newer touchscreen devices use an optically clear adhesive (usually a resin formulated for the task) to bond the touch digitizer to the display. Once bonded, there’s no way for dust and dirt to get in between those layers. The resin eliminates reflections between the two layers and visually connect the two layers. This help build the illusion that the user is directly manipulating onscreen objects with their finger by putting the display closer to the fingertip. And finally, bonding them together makes the module mechanically stronger as both layers work together to resist mechanical stresses. This is especially useful for phones using OLED displays, which are thinner (and more fragile) than backlit LCD displays.

But stronger touchscreens still have a limit and once exceeded, we’re back to the problem of a cracked screen. In the case of the Pixel 3a I just worked on, only the digitizer layer is cracked. The display layer is still intact and functioning. Unfortunately, due to the fact they are bonded, there’s no practical way to replace just the digitizer portion. So, the entire module has to be replaced. Trying to pull the digitizer glass away from the display glass stretches the resin and once released, we see bubbles between the two layers ruining optical clarity.

As expensive and wasteful as it is, the perfectly functional OLED display can only be thrown away. In comparison, cracked digitizer on a device without a bonded screen could be replaced independent of the display unit. One such high-volume repair is replacing Apple iPad touch digitizers. Amazon vendors sell digitizers for $20-$50 USD, depending on iPad generation. In comparison, as of this writing replacement Pixel 3a modules start at double that cost. This difference is even more stark when considering the fact an iPad has a much larger screen.

The bonded touchscreen module of a Pixel 3a is so expensive that, as of this writing, it actually isn’t economically sensible to replace the screen even at the lowest bidder unknown vendor option of $85. Because if we browse eBay we can find secondhand Pixel 3a for sale for as low as $50. If this keeps up, there’s a business opportunity for a phone chop shop: buy these secondhand Pixel 3a, disassemble them, and sell the components piecemeal. I don’t see any used/salvaged Pixel 3a touchscreen modules for sale at the moment, but maybe it’s a matter of time before they start popping up. But still, I hated throwing away this OLED screen

I understand the reasons why bonded touchscreen modules exist, but since they make repairs difficult, wasteful, and less economical, I am not a fan of this feature.