Markdown: a text adventure

Seriously I wonder what is wrong with us, computer scientists and computer hobbyists. I thought I loved markdown, that I needed to keep telling the world about it, but what renders in Gitea is not rendering the same in GitHub, nor in Obsidian. I'm likely idiot, let's find out.

The guide at https://www.markdownguide.org/book/ already starts by confusing its readers, looking for simplicity, with prompting the user to pick between normal or extended syntax. The top menu also mentions hacks and tools and books. Woot ? Aren't we talking about a simple text format and about making things simpler ?

This can't be so complicated, at least I thought. Then I visited https://en.wikipedia.org/wiki/Markdown#Implementations and fallen of my chair -- note the >dramatic< tone here, but I'm only sitting in my sofa and avoiding sleep, I'm all fine.

I hope we are solving this problem. Likely, the smart people figured it out... < o> < o> https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=variant+markdown&sort=byDate&type=comment. Woot.

Damn, even on Markdown supposed to provide a simple and better source format and publishing tool than HTML, we experts can't agree. Myriad of tools and implementations each extended by a few more artisanal tools here and there, millions of hours wasted ?

They are plenty static site generators and people crafting them and enriching markdown with details to hopefully generate, well, mostly valid HTML ? Or not ? Last time I checked, only an handful of those would take care of this goal.

We could chose to go back to working with text or HTML without tools in our way. This blog post for instance is almost just text and links, nothing much I require from markdown. This likely makes this portable. No transpiling needed, no tools.

It's NOT SO HARD and still readable. This blog post also has links that do not require remembering keyboard shortcuts on Mac for [Title](...) nor combining any special key.

Markdown is like sharing a recipe, but everyone reinvents a different complicated meal.

Simple is however better.

Instagram

As a reminder of how shitty those social media can be, I'm feeling obligated to write this short rant.

This morning, using my secondary empty and idle Instagram account to do some research, I end up discovering a nice content through the home page feed, and I'm trying to share it with my partner.

For some reason, the share does not reach my partner, so I want to find the content again and I navigate backward and this triggers a home feed refresh. My home feed is now completely unrecognizable and this causes immense frustration.

Last week, I was about to revive my main Instagram account, and this kind of bad UX reminds me that the benefits are not worth the immense frustration and non-sense of navigating an endless loop of evaporating content. No, Meta, you won't fool me again.

Fear of missing out ? not worth it.

Default settings for watches in Changedetection

I'm addicted to Changedetection for spying on website changes and internet search results for specific keywords, Occasionally also for monitoring price changes. It's quite handy to discover new links added to web directories, or stay updated with some websites that do not provide any RSS feed.

Context

  • I'm watching hundred of URLs.
  • I often spy on webrings and blogrolls to discover new interesting links, and also on search engines results for specific keywords.
  • I'm self-hosting Changedetection through Cloudron.
  • I'm mostly following through those watches via my RSS Reader, Miniflux.
  • For some specific changes, like weather bad conditions, I subscribe via ntfy.

Anyway, I've developed a few habits that fit my workflow so well for every new watch, which are:

Settings > General

This is where we set defaults for all future watches, it's pretty obvious you must start here. Here is my current setting:

  • Time between check: By forcing a convenient interval between checks, you try to find a balance between information overload and staying current. Pick your poison, but don't hesitate to override this setting at per-watch level.
  • Extract from document and use as watch title: it's convenient to let Changedetection take care of naming your watches based on the webpage titles rather than leaving the sometimes very long and non human-friendly URL as a default description.
  • Random jitter: this is handy to avoid stressing your I/O too much.

General > Group tag

This one is mostly for better organizing stuff, as I mentioned I follow those changes through RSS, I noticed it was harder to distinct between important and less important stuff because I was following the default RSS feed, but Changedetection provides distinct RSS feeds per groups/tabs of watches, and that's my preferred workflow now.

I'm trying to always set a label, I have around 15 in total, some for specific interests (privacy, discovery aka list of links, devops, music, ...) or specific people, locations and business updates. The rest is generally less important and is labelled with things like FOMO, misc, ...

Example of group tag.

Those group tags appear as labels next to the URLs you are watching.

Example of labelled URLs.

If you want to watch a whole group through RSS, link is at the bottom right of the page on the group tab.

Filters & Triggers > Remove elements

It's common on bloated rich web pages to want to focus on specific parts, like everything between <header> and <footer> sections, so I sometimes have to add footer and header. It's mostly needed for sites like eBay, 2ememain, where we can buy and sell things.

Remove HTML elements.

Filters & Triggers > default filter and triggers

my Text filtering defaults in Changedetection.

This is purely for spam reduction as I mostly want to know when something new is made.

Sometimes I also enable Sort text alphabetically depending how the page is updated by its author.

🆕 Those new settings have been added recently and I'm also enabling them on new watches:

Extension

Try the web browser extension for Chromium based browsers, it makes watches one-click away.

Next

I've opened a discussion in Changedetection's repository to talk about how repetitive it feels to me, in the hope we can see something like template settings be proposed in the future, at least for the filters & triggers which I consider is not too hard to start with.

Minifux scraper rules

I'm following Joy of Tech comic via RSS in Miniflux but the image was never loading.

I found half a solution on this blog post of Jan-Lukas Else, unfortunately the proposed solution fails probably as a consequence of some changes in the format of Joy of Tech pages.

The fix is quite simple actually. Edit the feed settings, set the scraper rules to the following:

p.Maintext > img[src$=".png"]

And of course enable "Fetch original content" in the feed options.

And voilà, simple and beautiful.

The Shipping Never Ships

A Frustrating Journey with Death Angel Merch

TLDR; I ordered a t-shirt from Death Angel's online store (https://shop.deathangel.us/), but it turned into a frustrating two-month saga involving poor communication, customs issues, and ultimately, a returned package. Here are some lessons and tips for online shoppers and businesses to improve customer experience.

The Story

It all started with a simple desire: to own an album tee of my favorite Thrash Metal band, Death Angel's "Killing Season." Living in Brussels, Belgium, I ordered the shirt from their official store in the U.S. Despite some initial reservations about carbon impact and international shipping, the excitement of owning my first music-related clothing overrode my concerns. Also, none of the local stores I had contacted could help me.

The Order Process

In April 10, I've passed order. The confirmation came with tracking links, and after a few days of printing, the item was on its way to Brussels. UPS updates kept me informed until the package landed in Belgium (April 23) and reached customs. That's where the trouble began.

The UPS and Customs Nightmare

Once at customs, the tracking status stagnated until the end of April. After multiple contacts with both Death Angel's store and UPS, it became clear that the package was stuck in a bureaucratic loop. UPS and customs both directed me to the other for information, while the store could only offer apologies and told me to wait.

More Frustrating Exchanges

Further communications with UPS and Death Angel's store continued in a frustrating cycle. UPS informed me they needed the MRN (Movement Reference Number) from the sender, which the sender didn’t have. The package was returned to international carrier. with the status "refused by addressee," despite me never being contacted. The package is currently in Switzerland ¯_(ツ)_/¯.

Timeline of the First Order

  • 04/12/2024: Order information received
  • 04/16/2024: Package received for processing (Bensenville, IL, United States)
  • 04/17/2024 - 04/18/2024: Package processed and departed multiple international carrier facilities in the U.S.
  • 04/23/2024: Package arrived at international carrier and customs office in Belgium
  • 05/21/2024: Package cleared customs but was returned to the sender with a "refused by addressee" status (Belgium)
  • 06/12/2024: Package processed in Switzerland

Timeline of the Second Order

  • 05/29/2024: Order information received
  • 05/30/2024 - 06/05/2024: Package received, processed, and departed multiple international carrier facilities in the U.S.
  • 06/10/2024: Package arrived at international carrier and customs office in Belgium
  • 06/25/2024: Package cleared customs but was returned to the sender with a "refused by addressee" status (Belgium)

Additional Frustrations

Throughout this process, several additional issues made the experience even worse:

  • UPS Support: UPS support is abysmal; no one seems to know anything about their own organization. They redirected me to the sender and lied about the package status, showing it as "refused by addressee" when it was likely due to poor packaging or documentation from the shipper.
  • Communication Loops: UPS support redirected me via chat to a non-responsive email, creating an endless loop back to their chat support.
  • Tracking Number Confusion: UPS has various tracking number formats (1Z...) that are inconsistent and incompatible with their tracking tools, making resolution difficult.
  • Shipper Blame: The shipper blamed their subcontractor, but only after my second attempt to order the same album tee. I was advised to reorder with a different recipient address, which resulted in the same failure.
  • Death Angel Support: Death Angel support does not always respond via email or Facebook. They are polite but unhelpful, telling me to wait or contact UPS, who then tells me to contact the sender. Death Angel delegates to a subcontractor I cannot contact, creating a dead end.
  • Waiting Game: Everyone advises waiting one month after the latest UPS status, but this doesn’t improve anything. A status should update every few days, not weeks.
  • Confusing Updates: With the second order, the package status was confusing, showing it in Belgium for a few weeks before updating to "departing from USA."

Lessons and Tips

For Shoppers:

  1. Track Your Orders Religiously: Use all provided tracking links and stay on top of updates. UPS won't proactively update you, but https://visualping.io/ can be quite helpful.
  2. Know Your Rights: Understand the return and refund policies of the store.
  3. Document Everything: Keep a record of all communications. This helps in case you need to escalate the issue.
  4. Consider (local if any) Alternatives: Sometimes, local stores or third-party sellers can provide the same items without the international shipping hassle.

For Businesses:

  1. Clear Communication Channels: Ensure your support team is well-versed with the logistics process and can provide clear guidance.
  2. Partnership Accountability: If using third-party shippers, maintain a close relationship to quickly resolve issues.
  3. Customer Empathy: Understand the frustration of your customers and provide regular, meaningful updates.
  4. Proactive Support: When issues arise, take ownership and actively work to resolve them instead of passing the buck.

Conclusion

This experience was a test of patience and highlighted significant gaps in the customer service process for international orders. By sharing this story, I hope to raise awareness and encourage both shoppers and businesses to improve their practices. While I eventually ordered a similar tee from another store (https://albumcoverstickers.com/), the disappointment with the official store remains. However that new store seems a bit cheaper and I'm hopeful the same experience won't repeat

Have you had similar experiences with online orders? How did you handle it? Share your thoughts and tips below. Let's make online shopping a better experience for everyone.