RSSAmplifier

Blog

Miha Hribar

miha.hribar.orgRSS feed ↗23 posts

Latest posts

The AI Fixer

For years, tech companies have been caught in a predictable cycle: Build the MVP, grow fast, then try to optimize costs by outsourcing development to cheaper offshore teams. Six months later, the codebase is a disaster zone of inconsistent patterns, technical debt, and mysterious bugs. Enter the expensive consultants to clean up the mess. This cycle used to take months. With the AI coding…

Jack of All Trades, Master of None, Conductor of Many

Picture this: You need to build a data pipeline that ingests social media feeds, processes them with ML sentiment analysis, stores results in a graph database, and displays insights in a React dashboard. Five years ago, you’d need a team of specialists — a data engineer, ML scientist, database architect, and frontend developer. Today, one Expert Generalist with Claude Code can prototype this in an…

Vibe Coding

Remember when we used to write code? Actual code. Line by line. Missed semicolon by missed semicolon. Debugging our own mistakes like masochists. Those were simpler times. Also dumber times. Then along came LLMs. We fed them our documentation, asked them to explain our own code back to us, and slowly realized they were better at it than we were. Early in 2025 Andrej Karpathy wrote a tweet that…

iOS12 Password AutoFill heuristics

Recently encountered an interesting situation while working on the Toshl iOS app . Despite setting everything correctly, iOS would not show the correct login/signup suggestions. It always assumed the user is registering (even if on login) - it always shows the “Use strong passwords” and tries to suggest commonly used emails/usernames. Turns out Apple is using heuristics to determine what to show…

Getting back to tinkering

I’m finding it harder and harder to start new projects. Whenever I come across an idea that would be worth solving, I immediately start to think about how to scale it, monetize, implementing viral loops, niche markets etc … until eventually the idea goes away. Me: Hello, my name is Miha, and I look at the world with product glasses. Group: Hi Miha. Would you like to share? I usually have a couple…

Trunk based development and feature toggles

As I have mentioned a couple of times already, I listen to a lot of podcasts on my daily commute. One that recently got me thinking was episode 136 of iPhreaks where the panel talks about efficient engineering practices for software projects with Neal Ford . If you haven’t listened to it I strongly encourage you to do so. The episode has little to do with iPhone development so do not be…

Graphite Beacon

At Toshl we use Statsd , Graphite and Grafana to keep an eye on what is going on with our system. It has served us nicely thus far and allowed us to find a number of issues. The thing that was missing in our setup was an alerting system, that could post to our HipChat chat and send an email if things start to go south. After trying out Newrelic and DataDog for a couple of weeks I found them to be…

Podcasts

My daily commute lasts about 1 hour and I quickly tend to grow tired of listening to the radio. So I listen to podcasts. Lots of them. I listen to every show at 1.5x speedup, which did take a while to get up to, but has become second nature now. In fact, if I listen to a podcast at a normal speed, it just sounds plain weird now. I’ve gotten into many conversations about which podcasts I listen to,…

The Martian

Notice: Post contains quite a few spoilers, so if you haven’t read the book and/or seen the movie, skip and save into pocket (like the rest of articles you never actually read, so you might as well read it now, since you won’t read it later). The book A couple of months ago I noticed that The Martian was being made into a movie, so I decided to make sure I read the book before I watched the movie.…

Don't build (just) a RESTful API

I recently had a talk at a local developer meetup about the state of APIs that sparked an interesting conversation. In the talk I outlined a few guidelines for building RESTful APIs, but stressed that even building everything according to all common practices is not enough anymore. Simply put, our APIs are too simple. Don’t get me wrong. Building an API so other developers can access your data is…

Version your RESTful API responses

In my previous post , I discussed the idea of adding sync to your RESTful API through a predictable and an already existing interface. This time, let’s take a look at how to go about versioning you API. Usually APIs are versioned through the use of URI(Uniform Resource Identifier)s, for instance: https://api.example.com/v1/dogs Whenever you introduce a new API version, you publish a new v2 URI for…

RESTful API with sync

If you are building a client capable of caching a local version of server data (perhaps to use it in offline mode), the need for a syncing mechanism becomes apparent. There needs to be a way for the server to tell the client when the data was last modified and then a way for the client to inform the server that it only needs the changed data. To my knowledge there is no way to express this…

Running Lean

As usual I spent my vacation with my head buried in books. One of them was Running Lean by Ash Maurya . Running Lean is a systematic process for iteration from Plan A to a plan that works, before running out of resources. Most startups still fail If you’ve been following Toshl you might have noticed we are part of the 500 Startups family ( batch 4 ). Writing about my experience in the program is a…

Validate your in-app purchase receipts

I’ve been keeping an eye on the Russian hack reported a while ago . Recently I wanted to see how widespread the hack was on Toshl for iPhone and was startled by what I saw. About 30% of all in-app purchases on ` toshl are attempts using the Russian hack from a couple of weeks ago. Validate your receipts. — Miha Hribar (`mihahribar) August 28, 2012 I did take into account the number of…

Startups and faster websites

Let’s face it, running a startup is hard. There are a million things to think about and just as many things can go wrong on a daily basis. Even if you manage to launch your product it will most probably be a flop the first time around. But that doesn’t mean your website should be a flop - it is after all the face of your business. After examining some of the up and coming startup websites I think…

Slovenian Mac OS X keyboard layout

The keyboard layout that comes with Mac OS is strange to say the least. You have to press way to many keys to add the @ (alt + shift + 2) or the € (alt + shift + 5). And the square and curly brackets are in the wrong place if you migrated from a Windows layout. So somebody from a local apple comunity decided to make a proper one and I took it and tweaked a bit with Ukelele . Installation To add…

Current state of the web in Slovenia

With the web 2.0 boom expanding to all countries of the world (yes, even Slovenia), you would expect that web standards are spreading as well. But a quick glance at this years Izidor (annual award for web excellence) shows that something is rotten (or rotting) in the Slovenian web. Nominees spreadsheet To make this evident I have put together a simple spreadsheet of this years nominees, checking…

CSS guidelines

When I was just getting into CSS (Cascading Style Sheets) a few years back, I was desperately searching for an article, that described how to structure my CSS, what techniques to use when in doubt, and such. While much can be found on the world wide web, I still prefer a good book over a lengthy article. Perhaps only a personal preference, but I tend to trust books more :) Anyway, over the years…

Essential PHP Security

We’ve all written unsecure code. Then tried to circumvent our weak security measures. It made us better programmers, and made us sleep better knowing our applications were safe. But there is just so far your imagination can go, while thinking up ways to get inside your perfectly secure system. 8 chapters. 30 exploits. Impossibly small Essential PHP Security by Chris Shiflett brings you those ideas…

CSS Mastery

CSS Mastery , written by Andy Budd of Clearleft fame, is by far one of the best CSS books I’ve recently had the pleasure of reading. Written for the bit more savvy web developers, wich means the author does not beat about the bush and gets down and dirty fairly quick. CSS is explained in much more detail, clearing up quite a few cloudy topics, well at least for me. The author realizes that while…

Fluid length rounded corner buttons

We’ve all come accross a design that dictated that the form buttons should have rounded corners (especially in the web 2.0 era). The creation of fixed length rounded corner button is second nature to any self proclaimed web deveopler, but the creation of fluid (well at least fluid inlength if not in height) rounded corners is another thing all together, and that is what I’ll be talking about in…

IE6 Multi-Class Bug

I’ve got a doosey to report. I recently stumbled accross an interesting and not very well documented IE bug. First let me show you the XHTML and CSS so you can be as stomped as I was. Say you have an icon that has its background changed depending on the site you are on. Say you put it inside an emptly div for some reason or another. The code would look something like this: ... <div id= "icon"…

Have the standards changed?

800 x 600 It was said that 800 x 600 pixles rule is written in stone. But is it? The world around web developers is changing, but we still keep the same’standard’. The world has long ago embraced 1024 x 768, and yet we still make everything for the old 800px width. Are we rigid? Stubborn? Or do we just have to make websites for those folks with 800px widths? The rule is to let everybody in so they…