Bialetti – Italian Quality

I recently discovered the Moka pot and liked it so much that I decided to purchase a real Italian-made Bialetti Moka pot. After a couple of hours of research, I discovered that Bialetti only makes two Moka pots in Italy, the 6 and 9 cup ones. No problem, I wanted the 9 cup pot to share coffee with friends and family. I purchased the pot off Amazon and received it after several days.

I was very happy to see that the Bialetti Moka pot was indeed made in Italy, as I had paid a premium of $67 Canadian. The bottom part of the pot is very nicely casted and machined, and I’m very happy with it. However, that’s where the good news ends. The top part of the pot is less than ideal, with some blemishes, and the safety valve is located uncomfortably close to the handle. In case of an issue when the safety valve opens to release hot steam, I’ll have to grab it by the handle and hope the steam will not burn my hand, which is not ideal at all.

Now, I could buy a Moka pot for $20 at any mall, but I wanted to get the original premium pot from Italy and got a somewhat dubious product. Honestly, it’s a bit disappointing. I mean, Bialetti has been making Moka pots for decades. Is it so much to ask to have a quality product at par with the premium price?

Playa Maroma, Mexico

Between Covid and other complications, it’s been nearly five years since we ventured out. Yet again, we went to a resort, mostly because my wife had a deep desire to see the blue, blue ocean with a beautiful sandy beach and lack of other options at the time.

Despite overall satisfaction with Principe Bahia in the Dominican Republic, we went to Catalonia in Playa Maroma, Mexico. Now, I know, Mexico gets a certain reputation – cartels, drugs, shootings, poverty and such, but I believe the news paints a much worse picture than what the average vacationer will encounter. In reality, I think Mexico might be a bit safer than the Dominican Republic, but I’ll touch on it later.

Travel:

One big perk of Mexico is its proximity to the USA, and that translates into a relatively short fly time of less than 4 hours from Detroit to Cancun. Considering you have to arrive at the airport at least 2 hours before the flight, you might actually spend more time wandering around the airport than flying. In case you are flying out early in the morning, pack some food with you so you can have breakfast, since all restaurants/coffee shops at Detroit airport open up around 6 – 6:30.

Cancun airport is smaller than Detroit one but a lot more charming (IMHO). One curious layout difference is that every arrival and departure you get to walk through a Duty-Free store. I find the Duty-Free a lovely feature because I get to buy a few things that are hard or impossible to get at the resort and/or would cost you an arm and a leg. For example: it is impossible to find 18-year-old Flor de Cana rum at the resort, the best they can do is 5-7 years old. I’ll touch on the shopping a bit more later.

Now, the shuttle service to Playa Maroma was underwhelming at best and confusing at worst. No one met us; we just kinda stumbled outside and started looking for any sign of anyone who is looking for us. Ah, a very silly idea, since everyone is looking for you in Mexico: taxi, limo, bus and whatever other services. After a few minutes of the bedlam, we stopped a person that seemed to be familiar with the situation and asked for an Expedia shuttle. We got redirected to Expedia reps who were quietly standing to a side. After that, we got to stand around, waiting for more travelers, then we got to stand some more at a parking lot, waiting for a mini-van, then we got to sit in bad Cancun traffic (mostly due to construction) and as fate would have it, we got pulled over by the national guard and waited some more. I have to mention separately that the shuttle back was prearranged, but for whatever reason, I had to call some phone number and make sure we got a ride back to the airport. Overall shuttle experience was somewhat ok, but in the Dominican Republic, we got much, much better service.

Resort:

There are all sorts of resorts: big, small, adults-only, kid-friendly, and so on. At the end of the day, picking a resort comes down to your preferences and priorities. Our priorities were the beach, food, and kid-friendliness. My wife picked Catalonia in Playa Maroma because of these priorities, and we were not disappointed. Playa Maroma is a small resort that feels right down my alley. There is one jungle path that takes you all the way from the lobby to the pool plaza, past rooms, shops, along some restaurants, and other facilities. The size of the resort allows you to walk everywhere, and that is just lovely, as I really hated taking tiny shuttles at Principe Bahia resort in the Dominican Republic. There are also small shops, a coffee shop, mini food trucks, and of course, a bar by the beach and in the pool.

Another notable difference, in comparison with Principe Bahia, is that you don’t have to go to the bar. There is actual staff walking around who will take care of you, which is very nice and at times super convenient. Moreover, the bars seem to be sized and staffed properly, so there is rarely a big lineup or long wait. As far as the bar is concerned, Catalonia has it nailed.

One feature that stood out to me is internet availability. It looks like every resort likes to advertise “free internet” but asks for extra if you want internet in your room or anywhere else outside of the lobby. But Catalonia actually provides internet connection everywhere within the confines of the resort, and I mean everywhere – even at the beach, you are literally standing in the water and have internet connection. Now, one caveat with network coverage is the lobby bathroom. Wi-Fi connectivity there is so poor that it is basically non-existent. It’s somewhat puzzling considering that two meters away, you have perfectly fine connection; it must be something within the bathroom walls.

One nice touch is the coffee shop at the resort. I would love to compare it to Starbucks, but I actually don’t go to Starbucks much, so I can’t compare. In any case, the coffee shop is very cozy, cute, and serves decent coffee. It has a large enough menu of drinks and sweets, but be ready to have a local Mexican twist to all the offerings. My wife took a liking to the coffee shop, and we were regulars right before it closes at 18:00.

Now, what about the food? First, let me make a short disclosure: I’m not picky with food, and I would probably be a poor critic. However, I have to admit, Mexican resorts seem to have better food, especially when it comes to restaurants. Moreover, you can have dinner at a restaurant every single night (in comparison to Principe Bahia). Unfortunately, during our stay, we managed to get minor food poisoning – no fever or downtime, but diarrhea didn’t spare any of us. I don’t know what food caused the issue, but it did, and it’s important to mention it. After visiting the nearby city of Playa del Carmen, I can definitely say one thing: don’t go to any resort for any special food experience, just pick a resort with decent food.

One definite win for Playa Maroma is the lack of drug dealers. It sounds strange, considering that the country has issues with cartels and drugs, but there are no drug dealers on the premises of the resort! One of the most repulsive things I found at Principe Bahia in the Dominican Republic was the fact that multiple resort employees were actively selling drugs. Moreover, there were many sketchy people with backpacks roaming the beach and offering all sorts of drugs. In Playa Maroma, I never met any employee that was offering drugs or any sketchy people with backpacks. So, are there no drugs? Well, no, there are drugs, but they are offered very discreetly and professionally. There is only one guy, with a backpack, sitting at the property line of the resort and offering anything you want. He is not hiding, but he is also not harassing anyone. As far as my experience goes, the Mexican beach feels pretty safe and welcoming for sunset walks.

The last thing that comes to my mind on the subject of the resort is irritations, and yes, there are a couple. The first is the lack of paper napkins! Anywhere you go, you have to look or ask for them. If you are looking for napkins yourself, most of the time you will not find any. It’s like having a localized paper napkin shortage, some artificial scarcity. I have been outside of the resort, and there are plenty of napkins available outside, so what’s the problem with paper napkins in the resort? Note: there is no shortage of toilet paper! I don’t get it, and hopefully, someone will figure out the mystery. The second irritation is tea spoons – they are always supplied reluctantly and in fewer numbers than required. For example, if you get three cakes for three people, you are provided with either one or, if you’re lucky, two spoons – perhaps they are encouraging sharing and community spirit. Another minor irritation is the lack of straws. My kid likes straws, and with a huge menu of drinks available for kids, there isn’t a single straw. I guess they are saving the planet.

Shopping:

Let me get a few things out of the way: the resort overcharges 2-3 times on some items and services. If possible, bring stuff with you as purchasing options are severely limited at the resort. I have to admit that our resort had better quality items and better prices in comparison to some tourist places outside of the resort. For example, we went to Tulum as part of a tour and were dropped off at a shopping plaza. Most of the items sold at the plaza were of poor quality and expensive. Be wary of touristy shops as they always start with horribly overpriced offerings, such as tequila for $200 per bottle.

If you are planning to venture outside by yourself, read about local transportation, prices, options, and negotiate upfront. The resort will overcharge you. For example, a taxi from Playa Maroma to Playa del Carmen costs anywhere between M$500-600. However, if you negotiate with a taxi yourself, you can get a ride for M$200. It took us two attempts to find a taxi willing to drive us back to the resort for M$200 – it doesn’t take long.

Now, if you want to get good prices on some local produce, you should definitely go to a local supermarket or Walmart. You can get well-known, good brand tequila such as Patron for around $40 and 18-year-old Flor de Cana for $47. Essentially, go to places where locals shop, and you’ll find fair prices. Now, just for comparison, the same Flor de Cana costs $60 at Duty-Free… Why the local store has it cheaper, I don’t know, but you can’t beat the convenience of Duty-Free.

I know I’m sticking restaurant experience into shopping, but hey, it happened during a shopping trip so… On the way to Playa del Carmen, the taxi driver recommended us to visit “El Pirata” restaurant for a seafood experience. When we got to the place, it didn’t look like much: tables, walls, pictures, waiters in bandanas, your normal Mexican restaurant oriented towards locals rather than American tourists. The first good sign was the daily special consisting of freshly caught sea produce. We decided to pick food out of the regular menu (I wish I had tried the special), and what we got was spectacular. The seafood salad was just excellent, the guacamole was awesome, and the deep-fried shrimp was so juicy… I believe it was one of the best seafood experiences that I ever had. The food was unbelievably fresh, tasty, and very reasonably priced. If I ever come back to the city, I’ll without a doubt visit El Pirata again!

Last word:

The trip was quite fun, kid grew up over last few years and priorities changed once again. No longer she has interest in slides or mini golf but now she wants to swim, dive and play in a pool. In that regard the resort was complete success since all day everyday (unless going on a tour or shopping) we spent at the pool. I don’t know if I would come back to the Catalonia resort in Playa Maroma, don’t get me wrong it is a very nice resort, but I’m just not sure I would like to spend time there again. Here is a deal, after visiting Playa del Carmen, it feels like it might be more fun to rent apartment or hotel room in the city and enjoy some of local restaurants, beaches and whatever else city is offering.

Tulum pics

Simply Self-Hosted Bitwarden for Local Use

I find password managers to be extremely convenient, especially when they can be easily synced. However, after last year’s security breach at Lastpass, I decided to reevaluate my use case and strategy going forward. Changing over 150 passwords gave me plenty of time to do so.

Requirements:

  • Password access and sync
  • Browser-based plugin
  • Local network use only

Optionally:

  • Remote access

I’m not going to discuss Bitwarden or cryptography in depth. Firstly, there are plenty of reviews on different password managers available, and secondly, I don’t have much knowledge on cryptography. So let me share my rationale: cloud-based solutions are very convenient, and I’m sure every password manager out there is doing their best to protect your data. Unfortunately, security is not an easy matter and, let’s face it, everyone makes mistakes. Lastpass made a few mistakes, and now I don’t know when my metadata and/or passwords will surface. So, the only question I had to ask myself was “Do I actually need to take the chance again?”. My answer was “no” and here’s how I achieved it.

  • Host Bitwarden on your local network – choose a machine and give it a static IP (ex.: 192.168.0.2).
  • Use Docker and the unified deployment method, note that the unified deployment is still in BETA.

It took me some time, but I managed to create the simplest docker-compose file that actually works:

version: '3'

services:
  bitwarden:
    depends_on:
      - db
    image: bitwarden/self-host:beta
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - ./bitwarden:/etc/bitwarden
    environment:
      BW_DOMAIN: "bitwarden"
      BW_DB_PROVIDER: "mariadb"
      BW_DB_SERVER: "db"
      BW_DB_DATABASE: "bitwarden_vault"
      BW_DB_USERNAME: "bitwarden"
      BW_DB_PASSWORD: "db_password"
      BW_INSTALLATION_ID: "get it from bitwarden.com/host/"
      BW_INSTALLATION_KEY: "get it from bitwarden.com/host/"

  db:
    environment:
      MARIADB_USER: "bitwarden"
      MARIADB_PASSWORD: "db_password"
      MARIADB_DATABASE: "bitwarden_vault"
      MARIADB_RANDOM_ROOT_PASSWORD: "true"
    image: mariadb:10.6.11
    restart: always
    volumes:
      - ./data:/var/lib/mysql

Here are some important limitations to consider:

  • Email confirmation will not occur since I don’t have an email server and don’t see the need to set one up

  • You will have to use the Bitwarden Web app to import data, as it can’t be done via the browser plugin – more
  • Bitwarden Web only seems to work from localhost, otherwise you’ll get an error that says this.subtle is null

Once you have set everything up, the rest is smooth sailing. The Bitwarden browser plugin doesn’t seem to care about the IP address, and it works great. If I need remote access, instead of exposing Bitwarden through a reverse proxy, I would prefer to use a VPN so I can log into my home network and access Bitwarden that way (I think it is safer this way).

I hope this idea is useful, and that Bitwarden will fix some of these limitations in the future.

Cheers.

Teaching programming to a kid

I have been slowly teaching my kid a bit of programming. Programming is not easy, and teaching it to a child is quite a challenge, so anything that makes it easier is welcome.

Initially, I have been using Scratch to teach programming, however, I moved away from it because it is not really that easy to use once you want to make something a bit more complex (even I had some issues following online tutorials) or teach a kid about some programming concepts such as for-loops.

Next, I tried Swift Playground, it is awesome, however, I got stuck on explaining for-loops. It might be easy for grown-ups to get a grasp of syntax and associated concepts, but for a child, it is a challenge.

I have been thinking about what to do next. Python? Well, maybe it is a good direction, but again syntax will get in the way of learning programming concepts… Today, I discovered Hedy and it looks very promising.

Checkout GOTO2022 talk:

Designing Data-Intensive Applications

I chose this book among others because I wanted to get out of reading about programming, methodologies, and other related stuff. I wanted to read something more abstract, not necessarily applicable to my immediate work, and boy did I get what I bargained for.

Well, let me start with complaints. First and foremost, the book is a bit long. I feel like it could have been compressed a bit. No, there isn’t much fluff, just several chapters could have been reorganized. Second, and no less subjective, the book at some point turns into a “horror movie,” where each passing chapter, things get more dangerous, complicated, and helpless. But I have to admit, there is a certain charm to such a delivery. Last grumble of mine: few examples of highly scaled and/or distributed systems. I would love to see more examples and discussions about them. Now I know the grumble isn’t entirely fair, since I got what I wanted – “more abstract” – but by the end of the book, I was left wanting more. I guess appetite comes during a meal.

Now let’s flip the page and go in the opposite direction: the examples in the book are quite interesting and educational. I loved the discussion about Twitter’s design and a couple more along the way. I personally don’t work with databases or other data-related systems that much, so the author fascinated me quite a bit. Some discussions are quite lengthy and detailed, mostly due to the complexity of the subject, but that’s what makes them so good, opening up your mind to different ways of thinking about programs, structures, and networks. The “horror movie” comes and goes, it makes you doubt everything you took for granted, even a CPU’s ability to add two numbers together. The author seems to project a lot of paranoia, the levels are similar to the amount of paranoia exhibited by system administrators. It sure gives a lot of perspective to developers, since lots of things are assumed to work properly and not to fail at the most opportune moment. One last thing: as I was reading the book, it reminded me of a bit of fun I had reading research papers at university. Some of the design patterns did emerge from academia, and perhaps it is a good direction if you have an interest in it.

I believe the title speaks for itself. If you want to design data-intensive applications, the book might be a good start. Perhaps it will give you a good insight and/or wider perspective. But if you are looking for hands-on material, the book might disappoint you. It is hard to tell whether the book is worth it or not. I had fun reading it; I believe it is well written, and I can see that the author put a lot of work into it. So I’ll leave you with this: if you are curious about the subject, go for it!

In a nutshell:
+: Well written
+: Broadens horizons
+: Lots of discussions and examples
+: No requirement for specialized knowledge
-/+: In a way, a long book; in a way, it needs to be longer
=: If you have any interest in application design, the book is an awesome way to start your journey.

Title: Designing Data-Intensive Applications
Author: Martin Kleppmann
Cover:

Goodbye 2022

Just a blink of an eye and 2022 is gone. In the past few years, I was quite optimistic about the upcoming years, but this year finally broke my back… Covid, inflation, and finally war. I hate to sound like an old fart, but it’s getting harder to look optimistically into the future. I wonder if I’m just getting grumpier or if the world is making less and less sense – perhaps both are the same side of the same coin.

In any case, I’m happy that 2022 is finally over. I’m looking forward to 2023 and the victory of Ukraine. Perhaps after the war is over, the world will slow down just a bit and become a little boring for a while, giving us all time to catch our breath. I hope the economy will survive without going into a deep recession and that we can all just get a break. Well, at least I can dream and wish.

Pragmatic Programmer

I been developing software for a while now and managed to read few books on the subject. Some books are general purpose, some with narrow focus on a particular subject in the development process. Pragmatic programmer is general purpose book on the subject.

I picked up the book in hopes of learning something new, something I haven’t seen or read before. Surprising enough I did find few things, but not nearly enough to justify going through the entire book. Now let me be very clear, the book itself is a good book, if you are starting out and want to improve your skills and understand what’s out there. However it might be a waste of time if you been in the game for a while and read a few things here and there. Also I can’t help but notice that some topics are not well covered even at a basic level (IMHO).

Since negatives are largely based on the amount of knowledge/experience a developer has, let’s talk about positives. The book is well written and relatively short. There is no fluff or metaphysical discussions, just practical and pragmatic advice. The book outlines and talks about all the useful basics that each developer should have, like: structures, clean code, testing, design, refactor, thought processes, personal & team behaviour, project organization and development methodologies. There is no deep dive into any subject, just essentials – which should spark enough interest in a developer to start researching more on any particular subject of interest. The author’s personal experience also comes in handy, some things don’t change over decades.

Overall, the book is good for inexperienced developers and for the experienced developers this book might be a trip down memory lane.

In a nutshell:
+: Well written & short
+: All the basics
+: Discussions
+: Some hands-on examples
-: Some subjects are not well covered even at basic level
=: Good book for new developers, but not much value for experienced devs.

Title: The Pragmatic Programmer, 20th Anniversary Edition your journey to mastery
Authors: Andy Hunt, David Thomas
Cover:

The Pragmatic Programmer, 20th Anniversary Edition: your journey to ...