Home / Ideas / My ideas for other companies / products edit
Try Documentalist, my app that offers fast, offline access to 190+ programmer API docs.

This is where I record ideas that I think other companies should make in their product. This is not an academic exercise. All those ideas are a result of using the product and encountering its limitations or wanting a feature that doesn't exist.

Cloud Run on Google Cloud is great. However, it's completely stateless. This limits its utility for services that are not frequently run but also benefit from being able to persist data across run.
GCP also has Cloud Filestore which is shared, NFSv3-based file system. To get file-based persistence in Cloud Run one can (I think) already mount Cloud Filestore, either on startup or on demand.
Google could make it this more seamless by adding an option to Cloud Run to automatically mount a Cloud Filestore instance dedicated to that project and make sure it's mounted quickly and in the right region.
Even better, they should offer a much cheaper (and much smaller) option. Cloud Filestore starts at ~200/mo with minimum of 1 TB. Cloud Run is best for rarely run services so there should be an option for cheap file store for the use cases of rarely used, small file store.

GitHub makes it easy to collaborate on projects.
It fails the community when an owner of a popular project goes MIA.
It's a popular project:
Unfortunately, the owner seemingly vanished from the face of the earth:
Note: the development of zip.js picked up in 2021. Which is great but I've seen this with many other projects.
Many issues, people are submitting improvements but the owner doesn't even have time to merge code other people wrote.
Here's what happens next:
The community splinters. It's easy to fork the repo and make a change or two, but there are not tools or norms around finding the new, active fork for community to rally around.
Instead we get multiple forks, each fork with small number of changes.
I see this often. It's not cherry-picking a rare, unusual case. This happens almost always when a somewhat popular project goes AWOL.
How can GitHub help?
One idea: detect cases where the project is dormant (e.g. 3+ month of inactivity from the owner, no new checkins, no comments on issues, no comments on pull requests) AND there is a fork with new checkins.
Put a banner on top of the repo (similar to the "this repo is inactive" banner) that says "This for seems inactive but there's activity in fork X and Y and Z".
That way people who visit a dormant project get to discover more active forks and there's a chance that the community coalesces around such fork.
An owner of the for should be able to opt-out from being listed as an alternative. The intent is to promote actively maintained forks and if the owner of the fork is not interested in such burden, his fork shouldn't be offered as an alternative.
Alternatively, this could be an opt-in e.g. if I have a fork of such dormant repo and made some changes, I should be able to opt in in my settings to be advertised as an alternative. That would be a social signal that the owner of the fork at least has the intention to maintain it going forward.
There might be other ways to mitigate this.
Even presenting the activity in forks in a better form than network graph and making that more accessible would help people find out the active forks.
Network graph looks pretty but it's useless for that particular purpose.

Delve (and other debuggers) should be scriptable with JavaScript.
For example, when you hit a breakpoint, it should be possible to evaluate a snippet of JavaScript code.
This snippet could do conditional logging (e.g. log a given object only if some condition happens), continue or break depending on values etc.
All manual debugger commands should be available for as functions plus ability to inspect variables etc.
It should be JavaScript, because that's what everyone knows and there are multiple embeddable implementations. Windows and Mac come with JavaScript executor as part of the OS, there are implementation optimized for size (mujs, duktape, jerryscript)and speed (v8, chakra, JavaScriptCore).

Most people haven't experienced Tesla or taken a test drive.
Tesla has a limited number of locations where one can do a test drive.
People already rent Teslas on Turo and some people rent Teslas specifically to test drive it.
Tesla should do a co-marketing program with Turo. Simply add "Rent Tesla for a test drive on Turo" program on the website. I'm sure Turo would be happy for those referals and would be willing to work with Tesla to make the experience seamless.
One issue is that a normal test drive is free but Turo isn't. Tesla could reimburse up to $N (e.g. $150) if the user took a test drive via Turo and then bought a car (but not if they didn't buy). This would be inline with the cost of referal program (it's estimated that giving 2 x 1000 miles of free electricity costs Tesla ~$150)

Most people haven't experienced Tesla or taken a test drive.
Tesla has a limited number of locations where one can do test drive.
Tesla should partner with ride sharing companies like Lyft and Uber. They should offer an exclusive leases for $35k Model 3 for Lyft / Uber drivers. The cars would be owned and financed by Tesla but the program would be managed by Lyft / Uber on behalf of the drivers who commit to drive Tesla for at least ${N} hours per week.
Tesla and Uber / Lyft would co-promote this program. Similar to what Lyft is already doing for green cars, the apps could have a special "I want Tesla only" option for users.
The idea is that this would allow people to easily experience Tesla.
To expand this further, drivers should be eligible for Tesla's referral program so that they have incentive to talk up the cars to potential buyers.

Duolingo is the most effective way of learning languages I found.
There's somewhat counter-intuitive theory of second language acquisition.
The gist of it is that all you need to learn a language is to be exposed to it via comprehensible input.
What is comprehensible input?
If you're a beginner learning Japanese, hearing a native Japanese speaker is input but it's not comprehensible.
Hearing just one word in Japanese, clearly pronounced, followed by a translation, is comprehensible. As long as you're paying attention your brain will create the necessary associations. After enough repetition, you'll learn that word, just by listening.
For me this theory checks out because that's how children learn. They start not knowing any language. Parents teach them words.
The idea is to have a companion mobile app that provides comprehensible input in a way that can be consumed without interacting with the phone.
Duolingo already has a mobile app but it requires undivided attention. I can't walk and type the answers.
According to the theory I don't need to provide answers in order to learn. All I need is comprehensible input.
How could this be implemented?
One mode could be just audio only of words and sentences in the language I'm learning followed by translation in my native language. Pause between sentences long enough to allow me to process it. The longer the sentence, the longer the pause.
This would allow learning while I'm e.g. walking down the street or driving in a car. I can't interact with the current app while I'm walking but I could be paying enough attention to benefit from this kind of comprehensible input. It's no different than listening to an audio book.
Pick words and phrases from the vocabulary I'm currently learning on duolingo.
There's more possibilities regarding interaction with the app. Many headphones have volume up / down buttons. If it's possible to intercept those events, they could be used for simple control. E.g. volume down to explicitly more to the next word, volume up to repeat current word (which would also be a signal to duolingo that this is a hard word and should be repeated more often).
This is an straight-forward improvement over Pimsleur tapes.

Feedback about page:

Optional: your email if you want me to get back to you:

Need fast, offline access to 190+ programmer API docs? Try my app Documentalist for Windows