Has anyone compared Dexie to localbase? - vue.js

Has anyone used both localbase and Dexie that can compare the two?
I am developing an application in Quasar/Vue/Electron, and using IndexedDB for my database. I've been using localbase but it seems fairly limited in what it can do. It seems Dexie may be more robust, and can auto-increment key fields, which I don't think localbase can do.
Also, if both are installed via npm, can they both be used at the same time? I'm mainly asking for when I switch from localbase to Dexie.

I don't have any deep knowledge within that topic, since I started researching today, by my self. anyways, Google is always mentioning IndexdDB Promised (idb), which has been made by Jake Archibald (a google employee) - it is open source, and seems to be the mostly used (as far as I can see - according to 1.204.956 weekly downloads on npm)...
There are some other alternatives listed on MDN, also maybe PouchDB is worth a look as well...

Related

Confusion between mobx-state-tree and mobx-keystone. When to use which?

Both recommended in the official Mobx page if one wants an opinionated way to using mobx for state management.
Based on these(1,2), keystone seems like an improvement of state-tree. Having everything that state-tree has + more. Nowhere I could find anything that state-tree has that keystone doesn't.
I see keystone is nowhere nearly as mature as state-tree. That's probably the main point stopping me from picking it instead. What are other good points for state-tree over keystone?
P.S. It's going to be used in a React app.
I'm the current maintainer of MobX-State-Tree. I think the primary benefit of MST over MobX-Keystone is that MST is used more widely and has more broad third-party support. For example, mobx-devtools supports MST but not MobX-Keystone, as does Reactotron.
With all that said, I'm very interested in exploring MobX-Keystone for our own usage at my consulting company. Even though I'm maintaining MST, I'm not opposed to MobX-Keystone, and the much better TypeScript support is very tempting. If we end up using it in a project and it goes well, we will likely build in support to Reactotron for it.
I hope this perspective helps.
(With regard to the other answer asking if you really need more than just MobX, it's my opinion that MST and MobX-Keystone bring super useful patterns and tools that help you scale across a whole application in a more cohesive way than remaking them yourself using MobX.)
First ask yourself if you really need those libraries, because you can get really far with just mobx and good ol' OOP patterns. In the official docs you have an example of a store that does auto-saving and serializing.
Having said that, I would go for the mobx-keystone. Typescript works right out of the box, and you can use classes to construct your store, which is IMHO, easier that MST stores. Plus the author is very responsive and he is also a contributor to mobx library.
mobx-keystone is super awesome. After using both of the two libraries for a while I would recommend using it over mobx-state-tree in every possible occasions. It's much more intuitive and easer to learn. It saved a lot of time for my project (switching from zustand to jotai to mobx-keystone, IMO each next one is a bit better than previous one in my use case)
After extensive testing / reading the source code / playing with test suite it feels that mobx-keystone provides a more robust developer experience with Typescript and also has enough escape hatches if you need to work with performance sensitive code. I would implementing a small problem (but complex enough) problem with both libraries to judge for yourself.

Working on a Core Data store on two computers at the same time (or making sure it is only open on one computer at the same time)

Can I somehow work on two computers with the same Core Data store? This could, I presume, lead to some incompatibilities during saving. What is the best way to deal with this?
Also, let's say I want to avoid the pain of having to worry about this. How would I make sure that only one computer can work on a particular Core Data store at the same time?
Incidentally, you can work on multiple devices on the same store with one of Apple's own core technologies. It's called iCloud.
Sure, technically speaking there are several copies of the store on the devices as well as the logs in iCloud, but the effect would be the same.
Fortunately, iCloud syncing includes some clever mechanism to merge multiple versions if possible (if not, you have to decide which one to give preference).
Only caveat: in my experience iCloud with Core Data has been far from reliable when using the published information for implementation.
From my own experience with Core Data I do not believe that the framework was designed to be used in a multi user (or distributed) environment. I found this interesting post on CocoaBuilder which might help you shape your thoughts on the matter. It's dated July 2012, so it's pretty recent and also discusses some interesting other technologies that are available.

How to Construct a Database to be Used on iOS and on the Web

I am making an iPhone application and Website simultaneously and I want a shared database between the two. I know about some of the options although none of them seem to work perfectly. Like Core Data which will be very nice on the iPhone side, although I havent found a way to access the same information in something other than Obj-c. SQLite is another option, I might not be right, but it supposedly does not work well for servers and being accessed simultaneously from different places. Or I could do XML which seems easy on both sides but it seems like thats the slowest option and will have a huge drag on performance if im going to be reading it from a server all the time.
Any help would be appreciated, and if you know of any other solutions I will be glad to give them a try.
Thanks in advance,
Jordan
Have you thought of using a MySQL backend on your server, and then providing your mobile application with an API?
This takes the hassle out of data synchronisation and also provides you with a good level of sustainability and scalability.
I hope this helps.
Josh.

Are there any documented projects where CouchDB was tried and rejected?

I keep seeing references to the idea that "CouchDB may not be the best tool in every situation." This is good to know, but unfortunately also applies to every technology.
What would be much more helpful is a description of how CouchDB was tried on a project and subsequently abandoned for a traditional SQL database.
If you've tried CouchDB on a project and later gone back to a SQL database, what factors played the biggest role?
You might want to check out the following articles, which describe a few examples:
Why CouchDB Sucks
Stack Overflow - When to use CouchDB vs RDBMS
When to use CouchDB, when not to...
Top 10 Reasons to Avoid the SimpleDB Hype
Does CouchDB supports referential integrity?
There’s a good CouchDB post-mortem from Sauce Labs here:
http://sauceio.com/index.php/2012/05/goodbye-couchdb/
And another from Signal here:
http://blog.signalhq.com/2012/01/24/getting-off-the-couchdb/
Its marketing slogans "Relax, it's easy" and "CouchDB bult for the Web" - it's not true.
Because:
It's not easy. Ha-ha, writing map/reduce for every query is easy, really? Did someone who advocates it actually tried this approach, on something real I mean, not just two-weekends-blog app?
Some common web-app tasks is hard to do with CouchDB (try to get Post with its Comments Count in one query or Tag Cloud (top N tags, not just counts of tags) to see it for Yourself.
So, CouchDB has very interesting and unique features, but its marketing is wrong. It's not for a general web app, it's a nice but a very specialized tool.
P.S. More details http://alex-craft.com/blog/2013/a-little-about-cochudb-and-comparison-with-mongodb
you might find this page useful http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB
Ubuntu stopped using CouchDB for UbuntuOne, because it failed to deliver its promises, even for small load: https://lists.ubuntu.com/archives/ubuntu-desktop/2011-November/003474.html

Recommend some open source web frameworks for a fun project

I maintain in-house business software for a living. Technologies included here are Java, Struts, Spring MVC, jsp, wicket, and a few others. I think it's time to branch out and learn something new.
I am hoping to show myself with a side project that writing code can, in fact, be fun (in some plane of the universe), and that I haven't wasted the past few years of my life doing something I can never love or have fun doing.
I'm thinking of having a fantasy-sport style web site - obviously much, much smaller with regards to features and all that. I was hoping I could get some recommendations for the newest or cleanest frameworks that will allow me to accomplish such a project. My goals are to work on following a real development process instead of just hacking a bunch of crap into an already crappy application on a daily basis. Also I will strive to follow best practices and create good, clean, understandable code that I don't shudder at the thought of having to modify. It's hard to do this at work, because the software I work on has already been developed by 50 guys from various continents that never took the time to design anything before jumping into coding.
I would need a simple database to store users and their picks for each event. Also at my job, the login security is all handled by another group completely. Do people usually write their own login systems from scratch, or are there open source utilities for that as well? I'd be interested in those, as my site will need to have a user login system, and be secure.
I had ruby and rails installed on my computer the last time I conjured up the motivation for this idea, but that was nixed by a hard drive crash. I figured before I just jumped straight to rails for this idea, that I would get a few other opinions off stack overflow to see if people liked something else that I didn't know about.
Also, if anyone has any good resources for how to think about OO design, I could brush up on that as well. I'm looking for anything that will help me to just think about the design from the start and how to get my thoughts into a diagram. I'd like it not to focus so much on patterns and other principles as much as just how to get started and actually put my thoughts in a professional document that I can use to build my project from. I tried to practice this prior to a card game that I wrote, and it got way too complicated way too fast, and the results ended up being not so great.
I’m more familiar with Django, although like you, the only frameworks I’ve really used are the Java/Struts/Spring/JSP, etc. The automatically generated administration interface in Django is amazing coming from these, and it comes with its own authentication system too.
Unless you’re especially predisposed against Python, I think you should give it a go.
Ruby on Rails, Python on Django, PHP on (not sure -- maybe Zend? or CakePHP?), are probably the most popular frameworks if I understand correctly that you want to learn a new language. If I misunderstood you, and you'd rather stick with Java, GWT seems pretty cool -- it's the only real way to avoid "explicitly" writing Javascript (if you DO want to learn and use some Javascript, I personally am in love with Dojo, but jQuery is substantially more popular: those are two good popular frameworks you should consider, though there are others of course, like for all languages I mentioned so far).
One advantage of picking Python and Django is that they work particularly well with Google App Engine (and with Dojo, too, thanks to the cool dojango project!) -- GAE supports JVM too, now, but it's supported Python for a much longer time and the Python side of it is more solid and complete at this time. So, if that's the technology stack you choose, you get to develop and deploy for free, on highly scalable infrastructure, at least until your app gets more than a few million page views per month -- and you really minimize your system adminsitration hassles, all you do is basically to code and write one simple configuration file.