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.

Prompt hacks aka make the best coding out of GPT

THIS WILL BE CONSTANT WORK IN PROGRESS

I've been using a paid subscription to ChatGPT Plus since May 2023 and I'm still happy with the usage. It's one of those tools you have to master to get most of the time spent with it. There are a lot of benefits to use it, of course there are also negative aspects and bugs. Some of them can be mitigated, and that's the purpose of the current post.

Disclaimer / Context of use 🧾

  • I'm ChatGPT mostly for scripts and each conversation is focused on singular topics, i.e single-file codebases if possible.
  • I don't use Open API Keys and I'm not interested to use OpenAI directly. I've been on a paid plan for OpenAI and was charged way too much for my needs. I advise anyone to use ChatGPT Plus which remain to this day worth it and good enough both for personal and professional.
  • This article was not written nor reviewed by AI/ChatGPT.

Lessons learned - Do βœ…

  • Shorten your expectations. Timebox your interactions with ChatGPT. If it takes longer than you expect to reach a solution, stop and do your homework instead, debugging yourself or simplify the problem to solve or take a break...
  • Test after each change. ChatGPT will make you lose faith by repeating the same mistakes, by removing sensitive code, by providing incomplete solutions, always verify.
  • Before running or committing anything generated by ChatGPT, always compare with the previous situation you had. Git diff the result of changes. If you have any doubt about a specific change, submit the git diff to ChatGPT for review and ask for explanations while also explaining why you have doubt (failing tests, errors at runtime, weird code removal, ...).
  • Tell ChatGPT to always decouple code in functions.
  • Instruct to use minimalist code, and avoid comments in code, respect your specific style (if you provide examples), instruct to write the code that takes the least amount of lines and space and to avoid long functions.
  • Keep one conversation per context / type of problem / flow. Once done with the problem, validate the solution (test!), commit locally, and delete the conversation to keep your Chat history clean.
  • Try to limit ChatGPT's attention to one single file or one single function at a time, to improve its speed and accuracy. I've experienced inconsistencies and code regressions when expecting ChatGPT to work with too many files and too many changes at once on too many files, as then ChatGPT.
  • If you have lot of work you expect ChatGPT to perform for you, be patient and request one change at a time, then review the code diff and then the outcome, and only if it's validated, commit and move to the next step. ChatGPT sucks at multitasking. Keep the rest of your TODO list somewhere else to keep track of what remains to be requested from ChatGPT.
  • You will be given better results if your tech stack relies on popular libraries and programming languages so keep that in mind and be prepared to deal with more mistakes if you pick niche programming languages.
  • Ask to only output the code that require change, e.g add this at the end of your prompt :
    just output the function(s) needing change
  • Ask to not change the existing comments, login logic, variables values in the code that is not impacted by the change.
  • If you really want to multitask, open multiple ChatGPT sessions (browser tabs) in parallel, each focused on distinct changes, so you can multitask while ChatGPT stays focused on single tasks πŸ™‚
  • One change at a time. If ChatGPT keeps making error, step back, restart from to the latest stable version of your code, and ask to make minimal changes, step by step, while you validate each increment.
  • When happy with your changes, ask ChatGPT to improve its performance or clean the code or keep it minimal.
  • When debugging your code with ChatGPT, provide stack traces, inputs, outputs and even the copy of the code that seems buggy (based on the stack trace).
  • Be suspicious if ChatGPT changes your code way too much or introduce weird changes to dependencies. Always review, check, investigate.
  • ChatGPT will likely be interesting to use only for writing very small and boring scripts to batch automate some tasks. But you are responsible for the whole, do not forget that. And test. And understand the code. Make it easy to understand and debug. If you can't explain it, rewrite.
  • ChatGPT could be good at documenting tasks or at writing tests, but for working on complex code it will mostly get 70% of the results then will suck your time and patience.

Lessons learned - Avoid ❌

  • Don't trust ChatGPT outputs. OpenAI is known for dreaming and also tends to complexify solutions to simple problems.
  • Don't run nor commit anything generated by ChatGPT that you don't understand and always compare ChatGPT's solution with what you had before.
  • Don't ask too many improvements or bug fixes at once or be prepared to deal with many new errors and regressions.
  • Don't keep conversations for too long, as all the initial context will likely be forgotten about by ChatGPT and you will suffer, also it will cause a lot of scrolling and augment the size of the web page which will be slower to load and will likely crash your browser tab at some point.
  • Don't switch context / files / problems in the same conversation. It's a waste of time and you will suffer later when trying to source specific content or make sense of anything.
  • Don't share secrets/passwords with ChatGPT.
  • Don't waste your time when the LLM seems confused or unable to solve your problem. Either reshape your problem statement or restart from the latest known stable state, ideally in a new conversation. Be confident in your own abilities. Don't be too dependent on any LLM. I once wasted a whole evening and night trying to get ChatGPT to write the solution for me then trying to use it to fix the problems it caused, I was too lazy to code something by myself from the start.
  • Don't expect ChatGPT to be as efficient on big codebases and complex problems as it is on small scripts and simple problems. So use it more often for the latter and keep the fun of solving the big problems yourself.
  • Don't expect ChatGPT to understand a single thing you do nor why he generates his code. it's a dumb machine without creativity built in. It has to be treated as such and with caution.
  • When trying to help you fixing problems caused by its previous solutions, ChatGPT may enter and endless loop of replacing one solution with another, without understanding the context. Before copy pasting anything from ChatGPT, make your own investigation and check the logs of the apps that do not behave as expected, before touching the code. If you find interesting logs, then provide those to ChatGPT or make your own investigation. Do not depend on ChatGPT for too much grunt and research work. You are better than that.
  • Don't expect ChatGPT to run well and fast on huge bloated scripts. That should encourage you to decouple your code into functions and modules and specialized files/modules/components/...

Relevant references

  • The 70% problem: Hard truths about AI-assisted coding (substack.com)
  • ChatGPT could be used to address the fact that solving some problems is costly in term of engineering. This XKCD meme below should be likely made obsolete if LLMs are used to provide the programs to automate the tasks. For instance when faced with some painful work, I rather use LLM to write me a script to tackle the task. It will be faster than me on some occasions, which itself help removing the need for manual work for tedious tasks, also help removing the need to prompt LLM in the future for that same task, since the script is already provided.
Automation (by XKCD)

Legend: "I spend a lot of time on this task. I should write a program automating it!"

via https://xkcd.com/1319/

is It Worth the Time? (by XKCD)

Legend: "How long can you work on making a routine task more efficient before you're spending more time than you save? (across five years)"

via https://xkcd.com/1205/

Extras

  • If you lose focus on the ChatGPT session in your browser, it's likely the calculation process will interrupt.
  • ChatGPT seems stuck at generating the output ? Refreshing the page might be enough, in other cases ChatGPT might automatically continue the generation or will show a button you can hit to force this action.
  • I recommend trying ollama so you can work offline and without feeding all your sensitive data into OpenAI.

Thank you πŸ™‚


Emails productivity tricks

I hate managing my mail inbox, and I guess I'm not the only one here. Usually my inbox is for bills, paperwork, to-dos, and so on and anyway most of the items will require me to lose time at something I don't value.

Anyway I'm trying to keep it tidy and nice to open and here are some of the habits I'm using to manage the load of documents.

Automate

Most of the emails with attachment and invoice somewhere in the object/title and sent to my accounting software running in the clouds. Other emails can just be automatically archived under some conditions.

Label everything

This is likely nothing new, but getting the discipline to achieve this in the long run is what matters. In Gmail I often use the "Filter similar items" to automatically label similar emails.

Labeling alone is a nice trick which gets even more powerful with colors and emojis.

When I added this new label for dealing with my automated research of places, I've been creating this "housing" label with a 🏠️ emoji, and placed it under the πŸ—οΈ projects label for now.

Colorize

Green for good things, orange for what things that can drain money or energy.
For instance paid invoices and refund are in green and unpaid invoices, fines, taxes are in orange/red.

With those labels and colors, because I rely a lot on visual memory, I can get a good sense of my priorities without having to spend much time in my Inbox by reading emails titles.

Delete handled items

Once something is done, there is no point to keep it nor archive it, unless it's something I'm really too afraid to lose for now, then I can archive it so the email can be found later.

Delegate

My time is not more valuable than other people time, but I do value some things more than others, and I try to focus on what matters for me and delegate other emails if possible, for instance I ignore some emails sent to our company because I know my partner handles those specific ones. If I'm not sure my partner is dealing with something, I'm just forwarding the email with a communication for her.

Unsubscribe

I almost forgot that must-know trick, which is quite underrated and no so commonly used among family members, which is a pity. Whenever you receive recurrent emails you have no time to read, just unsubscribe from them, even if they make it difficult sometimes.

No newsletter please

I prefer to get news by RSS on my Miniflux instance, so everything that can be turned to a RSS feed will be, and every newsletter that does not propose a RSS feed, I'll convert it to a RSS feed via https://kill-the-newsletter.com/, and if the blog I want to subscribe to is banning such automation, I'll use RSS-Bridge to generate a RSS feed by scrapping the content of their blog.

Snooze

Sometimes there is nothing you can do with an email, yet. For instance it's the tracking number of a delivery package, and the package won't be there before 3 days. Or it's a very detailed email for your hotel or event booking for in a few months in the future. In such cases I just snooze such emails for a future date.

Dark mode

I try to make my emails boring and so reduce the anxiety they cause me, and for this Gmail proposes a Dark mode. If that's not enough you can also try some extensions that turn Grayscale / Monochrome mode on. For instance on Brave (Chrome based browser) I'm using this one below.

Dark patterns collection

i.e UX patterns that make me feel like I should report to https://grumpy.website/.

I'm regularly battling to browse the web like before and maintain Inbox Zero for my work and personal mailboxes and I have to say it's not a fun game. Especially when some crappy tactics at are play like below.

Let's start a collection with the patterns I criticize and update this post regularly with findings.

CloudFlare (via RYM / rateyourmusic.com and many others)

Every few clicks when browsing their website with my paid account, I'm facing this "human status check" which is a big annoyance. I've informed them it's a pain, especially every few clicks and as a subscribed user. They promise their developers are working on it. We will see...

Elastic.co

First example is Elastic (elastic.co), with a work email I never asked for, inviting me to a local event. The email is long and I don't care about the Pizza party at all which is the first thing they mention in their agenda. I want to stop receiving such emails.

Looking at the bottom of their email, I notice a first unsubscribe button.

It redirects to a subscription page... (see below). Clever... !

When looking more closely, there is a second unsubscribe button, very hard to see due to the lack of contrast.

Who has then time to fill their unsubscribe form ? Not every weirdo. But that's it seems the effort which is due just for allowing me to regain a little more quiet in my mailbox. So now you know.

Homebrew (Mac)

You use brew install to run a small utility binary and ... you scroll through 630 lines of output and recompilation to see if your utility is finally there. WHY. SO. MUCH. OUTPUT.

Medium

No, you shall not ask my private data show me some HTML on the web. Well tried but nope.

I won't trust your doomed kingdom. Related: Don’t build your castle in other people’s kingdoms.

OpenAI / ChatGPT

I regularly have to play a few puzzles successively. In average 2 or 5. If you fail, you start over. It's very time consuming.

OrbStack updates

Leave me develop please.

RateYourMusic / Sonemic

This ones make me sad as RYM belongs to my favorite bookmarks. We are punished with this "prove you are human" form every few clicks. So annoying.

And also, from time to time.... Thank you CloudFlare.

NodeBB

Preventing users from contributing a forum for some arbitrary period is quite stupid especially if done AFTER you accept their account registration.

Once the waiting period is completed, the post is queued. This is better, yet annoying of course.

OVH

After months with Contabo (VPS), I decided it was time to close my domain and hosting subscriptions managed at OVH. I disabled the automated renewal a few weeks ago, and managed to setup redirects on my old websites. My subscriptions should be cancelled automatically but I can't wait and I want to get that out of my mind, so I want to force a manual cancellation.

To my surprise, it took me a lot of emails and exchanges with support. I understand the security measures and no one would like its accounts and services revoked by accident.

The problem is mostly the poor UX and customer support for getting this done. Let dig deeper.

When trying to cancel any service, I just get error without explanation nor resolution steps.

Later did I find emails from OVH asking me to confirm my revocation, so I could at least complete some of the steps, but it required me to leave my workflow and switch from my admin panel to emails, then manage those emails, then double check my admin panels for updates of services statuses...

In the end I opened a ticket to OVH support asking them to delete my account and the related services. They closed the ticket asking me to close my account only after services are revoked, which let me again with an unresolved solution.

I had to reopen the ticket and provide them the evidence above so they know I can't close some of my services. Closing a customer complaint on user's behalf without asking feedback is probably a tactic for improving their KPIs, but it ultimately tell they consider their customers to be nothing more than complainers with no real problem to be solved. This also tell the culture of OVH has diverged from customer first. No wonder I'm leaving you, OVH, as I'm expecting more from a service provider.


Don’t bookmark

I've made the mistake many times through years.

Recently I've talked about the struggle of trying to keep up with too much content and manage it and I'm starting with shrinking my 21K bookmarks to a list of essentials resources, taking inspiration from this method for purging them.

I'm using my Gimli axe with the intent of getting rid of the whole problem. Here is my run book for the task.

  • For every image, webcomic etc found in my bookmarks : save it on disk or forget.
  • For every dead link, see if original content exists on https://web.archive.org or https://archive.is/ or forget it.
  • For every shortened link, go to https://urlex.org/ and expand them, then see if those are still worth.
  • Yet about shortened link... ⚠️ NEVER use short links - Refuse to short link anything. Short links die. I've learned hardly to say goodbye to hundred of my bookmarks because the domains that served those links were long gone, but on some social media any link you share is converted automatically by the platform, this is hell. Fortunately you can probably find most of them via https://web.archive.org/ Best time to do it is now !
  • For every YouTube video, if you don't remember why you, just forget it, or plan to watch it in your agenda. Don't add it to watch it later.
  • For every link to tools, discussions, product release notes/changelogs, forums, issues, bugs, tutorials, except if those are very very special, they probably address problems for your past. Forget them.
  • For every direct link to TV Show, movie, book pages, if you still consider consuming that content, get a copy of it, then forget about the link.
  • For every link to a super tool / app / code snippet : install and use the app if still worth it, add the snippets to your favorites if still relevant, otherwise forget it. Tools change. Problems stay the same.
  • For every link to a blog, newsfeed, either subscribe to the blog (RSS, Newsletter or Convert the newsletter to RSS, ...) or forget it.
  • Important content will find you.
  • You fill still find important content in the future.
  • Try to keep only links to content that might be relevant years from now. If possible just backup those pages somewhere along with your other backups, so they do not disappear. But just in case, also archive them for others through https://web.archive.org or https://archive.is/.
  • if a long article is worth keeping, why not taking some notes about it for later ? Or blogging about it ? Instead of just saving it for the eternity ?
  • I'll continue this exercise and try to save all my important ones to /links and clean other places like my Git repo, my Wallabag, etc.. I've migrated everything from Wallabag to Shaarli by November, 2024.
  • If you don't take care of this, the obsolescence of the web is gonna taking care of that for you. I mean your favorite images, videos, sites, will long be gone by the time you read again those bookmarks.
  • Have higher standards before bookmarking anything.