HN user

lubonay

376 karma
Posts3
Comments105
View on HN

SQLite works great as the database engine for most low to medium traffic websites (which is to say, most websites). The amount of web traffic that SQLite can handle depends on how heavily the website uses its database. Generally speaking, any site that gets fewer than 100K hits/day should work fine with SQLite. The 100K hits/day figure is a conservative estimate, not a hard upper bound. SQLite has been demonstrated to work with 10 times that amount of traffic.

(Taken from https://www.sqlite.org/whentouse.html)

A toy that can serve the vast majority of DB use cases. I get it, you can't build a massive-scale project with SQLite, but that doesn't exactly make it a toy DB...

Does your "Careers No Reply" email send auto-rejection messages?

I applied for the Senior Android dev role around 5 weeks ago and got a rejection message 11 days later, so I'd like to know whether there's any point in re-applying now.

Thanks!

Raw fiat is NOT a new experiment, the Yuan dynasty in China printed paper money in the 13th century, not backed by any precious metal or commodity. They printed too much and had inflation problems, so that's not a new problem either.

Well, he said Java for Android. The Android SDK is a capricious beast and the documentation is often outdated or sub-par.

That's a tricky question.

You could say Ukraine has Russian roots in that it split off of the Russian Empire and then the USSR. You could also say Russia has Ukrainian roots because that was the historic domain of the Kievan Rus.

Similarly, you could say Bulgaria has Russian roots because it gained its independence from the Ottoman Empire in the 19th century in the wake of the Russo-Turkish war. Alternatively, you can say Russia has Bulgarian roots in that Cyrillic was invented in Bulgaria in the 9th century and spread to other Slavic cultures.

The bottom line is that Eastern Europe and Russia have, for better or for worse, strong historic and cultural ties.

That's kind of a moot point - most Android devices are not Google's own phones, so you can't ship a reliable user experience on most Android devices.

Kinda... developing UIs is around 10x easier and faster, but you can get in trouble when you want to integrate with device APIs like Camera, Location, etc.

You also don't have such a rich ecosystem of third party libraries. For example, I think there's still no implementation of native ads for major ad networks, which can be a deal-breaker if you're working on a large consumer-facing app.

Regarding native C/C++ interop (thank God I no longer have to deal with this!), Flutter has dart:ffi. I'm not sure how it compares to JNI, but it can't be worse. In practice, you'd still end up dealing with the horrible NDK toolchain on Android, though.

Android is open-source but large parts of it aren't - for example, the google play services libs.

The open parts can take literal years to get a fix merged and deployed, so "some open source contributor fixing it" happens very rarely and isn't something you can rely on. Even when that happens, if the bug was in the core SDK instead of in one of the support libs, you'd have to wait like 5 years until most users get the fixed version of the code on their devices.

+1. I personally like using random data if the test is concerned with only one input, but I avoid random data when checking e.g. pairs of numbers because of the slight chance that the random numbers would be unexpectedly equal.

Actually it's acceptable to answer your own question, as long as it's a useful contribution, so it might be worth it to just post the question after all.

Android Studio 4.0 6 years ago

MVI stands for Model-View-Intent. It's a state management pattern that uses unidirectional flow. Basically you send events (Intents, similar to Redux actions, not to be confused with the Android Intent class..) to your Model, which does a state update and sends out the updated state to the View.

Android Studio 4.0 6 years ago

How do you set those variables? Do you keep a reference to your activity or fragment inside another screen? Do you clean up that reference on configuration change, or let it leak and/or cause crashes?

Your best bet to pass data around is to... not pass it but rather use a sophisticated DI setup where you can set up shared objects that live in a certain scope. Of course, you can add parameters to a bundle with some boilerplate, but that's not a great idea if the serialization overhead hurts you.

REPL Driven Design 6 years ago

I guess it's understandable for Uncle Bob to omit those - he's been chewing on the subject of TDD for many years now, and REPLs are his recent darling.