Hey, I’m Kabir and I write about design, the web, systems, programming languages, AI, and cryptography. Mostly things I’m working on at the moment — I have plenty of posts planned but seldom get the time to write them.
For school, we have to think about entrepreneur projects related to blockchain. Every single time we find a nice idea, either it has already be done, or the blockchain technology is irrelevant for that idea (which can be done without). Our group hasn’t advanced for 2 months now.
A hammer looking for a nail - A lesson I have heard before is to look for a problem with real value that hasn’t been solved, this doesn’t seem to be taking that approach.
More tips like that?
success in most things is about managing the expectations of others. say no more often. ask the manager to prioritize.
Unfortunately I am not a great expert, still gathering wisdom myself. Though i hope to hear what others can suggest.
I wrote an article on finding ideas. Essentially, it is important to find problems and treat them as opportunities, rather than finding solutions first and the problems they solve later.
Great article! Thanks for sharing it.
Maybe start from problems: look for markets for lemons, adverse selection, agency costs. As a rough rule of thumb, any market in which someone can earn a commission. And focus really tightly - rather than land titles on the blockchain, attack mineral or oil rights. Look up what people are suing each other over and you know what corner cases to handle.
Things that might be useful:
What’s wrong with doing something that’s already been done? Unless you’re doing research, there’s usually room for more than one interpretation on how to solve a problem.
That’s actually a good point. YC often says don’t worry if someone has thought of your idea already. Just beat them in execution. Tech history is littered with better ideas or bad implementations of similar ones that lost to better executed and/or marketed ideas.
Although I warn it might be unpopular, you might want to try something similar in concept but not quite blockchain. The benefits of the blockchain without necessarily being one. Here’s a few I’ve heard or was pushing that may or may not be implemented by a startup by now:
Transactions are done with traditional databases that use a distributed ledger to tally up final results. This is similar to what banks already do where most transactions are hidden in their databases with some big chunks of money moved between banks. It works.
Instead of just a coin in the ether, Clive Robinson on Schneier’s blog suggested creating a financial instrument that is tied to a number of commodities or other currencies in such a way that it remains really stable. As in, not a speculator’s tool like Bitcoin. I found one company that did this with several currencies plus carbon credits. I just can’t remember name.
Instead of miners, might again use a low-cost technology for transactions but people need an account with the service to participate that costs about a dollar or so a month (or yearly). Kind of like with texts, they buy blocks of transactions. The providers are non-profits with chartered protections with the provisions or exchange being where the new tech comes in to provide accountability.
I’d do a combination of these if I entered the market. I’m not planning to right now. So, sharing the ideas with others in case someone wants to have a try at it while money is raining from the sky on those that utter the words “blockchain” or “decentralized.” ;)
This can be a good fit for something like SimpleNote. Looking at the data structure since it’s not persisted I am a little skeptical on memory usage; one good solution could be abstract out the interface to write adapters. This can allow storages like IndexDB, or NodeJS with LevelDB etc. Would be really nice if you would have show some memory usage with benchmarks.
The memory usage can definitely go higher as the number of documents increase. It is pretty good at compressing prefixes, but suffixes don’t get the same compression. The actual API allows you to store and load the index as needed, but I might look into database adapters.
I tried MoonJS just for kicks in one of my recent projects (http://invatar.ga shameless plug). Too set context I have heavily used React.js, Vue, Angular 2+, Dio.js and even written one of myself (never published it though). Among other issues the one thing that disturbed/frustrated me most and stood out in my face was they way it forced me to invoke methods on this in a component this.callMethod('bar', ...params). I mean having getter setters ya sure makes sense; you can’t detect changes (which I don’t agree with; you can use getters/setters) or something. But why would you ever abstract out methods like that. Put it in a subspace this.methods.bar(...params). In today’s modern JS age people are more unforgiving and they have more choices; with these kind of caveats it’s not only hard for me to use moon but it’s even harder to convince my team members to use it.
Hey! I appreciate the feedback. I agree with the points about this.callMethod, and have addressed them in v1. You will be able to do something like:
Rather than callMethod. The main reason that it even existed in the first place was because it had to change the context of the method so that this would point to the instance.
Interesting read, but it makes me wonder: why does Moon exist rather than simply improving Vue? Is there enough fundamental differences to merit an either/or? This is coming from someone who has read about Moon, but uses Vue quite a lot in production.
I get this question a lot. There are a lot of fundamental differences between Moon and Vue that would require a lot of breaking changes to Vue. The Vue compiler works in a completely different way from the Moon compiler (the differences are shown in the article).
Also, Moon uses .set rather than getters/setters, which would also require a breaking change in how observers work in Vue. If you compare the source of Moon and Vue, you’ll see that they are completely different implementations.
They are so different that it would essentially be rewriting Vue itself, and would have little chances of actually being merged into Vue. Check out my article Introducing Moon for more on why I made it.
This looks pretty interesting. I see you have a router plugin built already as well. The only suggestion I’d make for that is to allow non-hash routing. I hate having # in my urls.
Yeah, that is a popular request. I’ll be adding it in the next version.
Where are the benchmarks located? Are the comparable to other benchmarks?
I don’t have it open source, but if you take the todo mvc code and run it along with other framework’s todo MVC implementations, you can compare how long it took for each operation.
I submitted a PR to js-framework-benchmark, and Moon should get included in the next round of benchmarks.