Oh shit, my weekend project turned into an App Store Best New App (2018)
tannerchristensen.com
tannerchristensen.com
There is a subtle brilliance in this sentence. With this recognition comes the permission to not try adding a mountain of features and complicating matters. Build something you will use. Solve a problem you have. Enjoy the process and accept the vulnerability that comes with shipping something to the world. Chances are good things will come of it.
“Necessity is the mother of invention”
https://en.wikipedia.org/wiki/Necessity_is_the_mother_of_inv...
But early airports didn't have miles of corridors and a hundred gates, so maybe the need wasn't as great.
The cold war re-prioritized life for many Americans (and Russians, too I'm sure)
I do that a lot. Pretty much every one of them is used practically only by me. That's fine, because that was my expectation anyway.
So, I created a Chrome extension that surfaces YouTube comments that have timestamps right below the video, around the time that the comment contains. And, then disappears it after a few seconds.
It was fun to make and in the end, it solved a very specific problem that I was facing.
Link: https://chrome.google.com/webstore/detail/youtube-timed-comm...
You’re definitely not the only person who has this issue.
It’s definitely something YouTube could implement if they weren’t content with the minor tyre fix they’ve built.
The only issue I have now is that I've moved on to using Firefox. So, I can't really use this extension anymore.
I guess that sounds like another 'niche problem' that needs solving.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...
Thanks for sharing.
http://shots.moss.io/a67bd6/Screenshot%202019-09-19%20at%201...
In this case, it is needed to get the url and id of the tab. I'll have to go back and check if I can make do without depending on that because I agree it does not make sense for this extension to need 'access to my browsing history'. Also, I do intend to put the code up and link it in the extension description page soon, so you don't have to take my word for it!
Thanks for pointing this out.
This is extremely specific (and i had to switch to Firefox Developer Edition to do that since the mainline one doesn't allow unsigned extensions) but it was helpful and i got to learn how to make extensions for personal use (though the whole process to call an external program was a convoluted PITA involving adding registry entries, writing Python scripts to parse JSON, etc... meh).
PARAM=`xclip -o -selection clipboard`
notify-send downloading $PARAM
youtube-dl $PARAM
And setting a keyboard shortcut to invoke it, so downloading is just CTRL+L (select URL)
CTRL+C (copy selection)
CTRL+ALT+D (trigger download script)कर्म करो फल की अपेक्षा मत करो जब तुम फल की अपेक्षा रखोगे तुम्हारा कर्म दूषित होगा
Translation:
Do your work, don't expect anything in return. Because when you do, your work gets corrupt.
This translation doesn't seem to cover the familiar, deeper meaning of the passage. The term कर्म (karma) can refer both to work/action as well as to the principle of cause and effect (that the word 'karma' more commonly represents). My understanding is that it really talks about the purifying effect on the mind of doing your duty without expectations of being rewarded. A bit like Bushido.
This is not duty in the sense of solving your own problems and taking risks as an entrepreneur. It is more about doing the job that society (the very rigid caste-based society that is the context here) has laid out for you. The subject of the speech was Arjuna. Krishna, the speaker, was reminding Arjuna that being born a warrior it was his duty to fight in the war that he didn't want to fight in, even if it meant slaughtering his cousins who were on the opposing side.
Seen in its original context, it doesn't quite mean the same thing as what GP said.
But maybe I didn't get the implication of "job that rigid-caste-based society set out for you". Which of course probably seems less sensible/ethical to many of us modern people.
One of the things that has made the religious texts that have been treasured for thousands of years succesful is how they have such expanding/multitudinous possibilities of interpretation and directions of symbolism. And they usually have been understood differently by different people at different times (as a historical fact, even if the fundamentalists want to argue otherwise).
I find that a very interesting and thought-provoking passage, that has resonances with things in other religious/spiritual traditions (unsurprisingly especially some kinds of Buddhism), but I have no interest in the "your duty is exactly what 'society' tells you it is" part. I think we have a duty to ourselves/our neighbors/humanity/god/the divine, and expecting something in return will corrupt it (and possibly ruin the outcome), but it might not be quite what 'society' is telling you it is.
In modern contexts, the text is jarring in many ways. Arjuna's initial argument for not wanting to kill his cousins, uncles and grandfather on the other side are that if he kills them, their women would be led astray, i.e. procreate outside the clan (not clear if willfully or made to do so without male protection) which would lead to out-of-caste progeny being born and thus the destruction of the pure family blood line. The emphasis is on the illegitimate children being the problem, not that the women would be harmed.
Whereas for “Hindus” (for want of a better word.), actions are of supreme importance. They are divinely ordained. What Krishna Bhagavan is saying is don’t let preoccupation with results paralyze you into inaction.
Some historians see the Gita as a rejoinder by the Vedic traditionalist to the quietism of the Shramanic movements.
As for Arjunas argument; the need for a pure family line is not that illegitimate children wouldn’t be e.g. heirs but that they would be uneligible to make the offerings (shraddha) to the deified ancestors (Pitrs. The term literally means “fathers” but it includes male and female ancestors.) Deprived of those offerings, the Pitrs would lose their place in Heaven and fall into Hell.
Incidentally this lunar fortnight is the season when Hindus perform shraddha. It is my great-grandmothers shraddha today.
That is not the Buddhist view at all. The Buddha himself spoke about skillful action vs non-skillful action. The whole eightfold path / middle way [https://en.wikipedia.org/wiki/Noble_Eightfold_Path] starts from 'Right View': that our actions have consequences, even after death.
For the Gita, action (as prescribed by dharma) is intrinsically good regardless of its content even if it ends up destroying an entire family in war. That’s the key difference.
Quoting from The Numerical Discourses of the Buddha translated by Bhikku Bodhi: These are the Buddha's words:
> "There is, brahmin, a way in which one could rightly say of me: ‘The ascetic Gotama is a proponent of non-doing.’ For I assert the non-doing of bodily, verbal, and mental misconduct; I assert the non-doing of the numerous kinds of bad unwhole- some deeds. It is in this way that one could rightly say of me: ‘The ascetic Gotama is a proponent of non-doing.’"
> "And in what way could one rightly say of me: ‘The ascetic Gotama is a proponent of deeds who teaches his Dhamma for the sake of deeds and thereby guides his disciples’? For I assert good bodily, verbal, and mental conduct; I assert the doing of the numerous kinds of wholesome deeds. It is in this way that one could rightly say of me: ‘The ascetic Gotama is a proponent of deeds who teaches his Dhamma for the sake of deeds and thereby guides his disciples.’"
I'm not sure this is right. The Buddha himself laid out his rules for householders (the gahatthavatta in the Anguttara Nikaya), which doesn't make sense if there was nothing but the Sangha in his time.
> If one cannot renounce for some reason then yes it is better to do good than evil in the world but that is clearly the inferior alternative. “Right conduct” is that which brings one closer to non-doing.
Do you have a source for this? Nothing I have read agrees. I have already given my source to the contrary from the Anguttara Nikaya itself.
Elsewhere Krishna Bhagavan offers everyone explicitly including women direct access to the embodied divinity — namely, Himself.
> Elsewhere Krishna Bhagavan offers everyone explicitly including women direct access to the embodied divinity — namely, Himself.
Oh you mean the passage (chapter 9, verse 32) in which he lists that even those of lower birth: women, vaisyas and sudras have access to him? To be clear, this leaves only brahmin and kshatriya men in the those-not-of-lower-birth or dvija or twice-born ranks.
As for 9:32 no the Gita is not egalitarian (that’s W.E.I.R.D again) but Krishna Bhagavans’ formulation while upholding the old hierarchy, creates a new hierarchy on a different axis with a different set of winners and losers.
Incidentally, you are aware I hope that according to the Ashokavadana, a Buddha can only be born in a Brahmans or Kshatriya family.
Thanks, I wasn't aware of that. Sounds exactly like the kind of thing Ashoka's minions would add to Ashoka's hagiography.
For the record, I don't take any of this stuff seriously.
"Besides, considering your duty as a warrior, you should not waver. Indeed, for a warrior, there is nothing but a battle fought according to dharma." - 2.31
Further, the reason for action is held up later. This is also the quote that Oppenheimer used to describe setting off the Atomic Bomb.
"Time I am, the mighty destroyer of worlds, and I come to vanquish all living beings. Even without your participation, all the warriors on the opposite side of the battlefield will be killed.
Therefore, arise and achieve glory! Conquer your foes and enjoy a prosperous empire! O best amongst archers, all your enemies have already been killed by Me – you are but an instrument.
Drona. Bhisma, Jayadratha, Karna and other heroic soldiers have already been killed by Me. Fear not – fight! You will certainly conquer your enemy in this battle." - 11.32-11.35
Not to simplify the complexity of the Gita but what I take from it is: We can only take action and in the long run everyone is dead so why not take righteous action along the lines of what you are good at and thus fulfill your duty to society and God.
Furthermore, the rigidity of the caste system is a modern invention. It occurred during British Rule (https://press.princeton.edu/titles/7191.html).
Social mobility in traditional India did occur but very slowly and at the group level for the most part. How it worked is an upcoming group would adopt elite behaviors e.g. vegetarianism, Sanskrit, their Gods would be equated with those of the high tradition and so on. Over time no one in the group or its neighbors would remember that they had ever behaved otherwise. Voila, upward mobility.
The printing press changed that. Now when you say I am Y, someone can point out “but it says here that a century ago you were X.” Same effect with archaeology, genetics etc.
Historically, the British brought in these technologies but in an alternative timeline where Clive lost at Plessy, the same process would eventually have occurred. It benefits both the far left and far right to find a scapegoat instead.
The technologies that the British brought through colonialism, including their own class structure, lead to what you described. It likely would have happened without the British but because of the power structures in place that came with colonial rule. This process accelerated so a lot of the rigidity that we can attribute now was the upper castes trying to hold onto their power which was magnified by the British giving them more power in colonial India.
It is also why it was the upper caste Hindus that eventually rebelled against British rule. They received the best economic and political benefit from British rule.
The initial organized independence movements which were largely confined to Bengal during the 1900-1918 timeframe were very much an upper-caste movement.
If we're all dead in the long run, why bother with righteous action now?
Well, yeah. The only thing that’s surprising about this is that the opposite has gotten so engrained. We are so accustomed to an attitude that (without the niceties of professionalism) is basically “who the fuck are you, nerd, to have the audacity to think you understand user needs? You’re weird and nobody wants what you want from software.”
Here's my world-famous Python tool for Monte Carlo sensitivity analysis of Excel sheets depending on expert estimates: https://github.com/asemic-horizon/stanton
And my extremely unrequested extension for expert estimates that may be correlated: https://github.com/asemic-horizon/multibeta
The Tesla model 3 has no dashboard in your line of sight, and Elon Musk says he builds something he likes and hope others will too.
But the car has sold well in spite of the fact that many owners I've talked to said this was a big compromise for them.
Come on, it's more than that. Being compliant to Apple Developer Guidelines takes some more time.
In my experience the guidelines are mostly common sense once you get used to the "Apple way", and are straightforward to comply with, especially if you're already familiar with them (OP had submitted several apps before).
Options are:
a. you have already the code somewhere (own sources, StackOverflow, GitHub, etc.) b. you are bluffing
you wouldn't bother making a repo for something like this. Testing is done while programming, and the process of putting it on the app store presumably wasn't counted as 'programming'
Does the 1hr include the hour you spent driving to the shop and back for a loaf of bread and a bottle of milk?
`git init`? Clicking create repo in GitHub?
> setting up project in the IDE
are you doing this stuff blindfolded or something?
He just might have to combine two projects and some programming and replacement of icons.
And doesn't this use the camera and/or photos API? Not hard, but somewhat time consuming to set up your boilerplate for these. Also handling permissions request, response, & error handling. Probably copy/pasted from another project so it wouldn't count?
Yeah I'm skeptical, but also sounds like a fun challenge.
Of course, writing it in 1 hour is a bit ridiculous. Did he have the icon images ready?
As far as the other stuff, this reminds me of recruiters who send you a coding project that they say will take 2-3 hours that generally takes 4-6 if there isn't some major problem. The extra time is of course setting everything up choosing what dependencies you need etc, because every project is slightly different and you are unlikely to have everything that is needed for that one project. The actual coding is probably 2-3 hours.
So perhaps he already had everything his system needed, if so I expect it might have taken 1 hour to code (because he was very comfortable and knew exactly what he would need to do) and some minutes to make git repo, push code. Then add another hour to time compiling and submitting to app store.
If he knew what he needed to do in the code of course that was probably from thinking about it for weeks beforehand.
I’m surprised anyone here thinks something like Snaplight would take more than an hour to build (no repos, testing on device but otherwise no tests, simple permissions, uncomplicated UI that only improved post-launch, etc.).
I think it would take me longer just to make the icon, having never done anything like that before.
Think about all the skills you had previously built up that allowed you to make it in an hour. If someone lacks even one of them, they would never be able to do it so quickly.
Was it simply scratching the itch to make higher fidelity prototypes?
PS- should designers code? ;)
I started coding long, long ago in order to build my web portfolio (back before site builders were a thing). As a result I saw how empowering coding can be.
I've always felt being able to code software gives you an ability to solve a lot of your own problems with technology. e.g. I have a lot of private tools I've designed and coded to help me in my day job (such as this simple one I recently open sourced: https://tannerchristensen.com/spf).
If you're a designer who works on digital products, I think it's only advantageous to know some programming. It gives you empathy for your engineering peers, gives you more insight into how what you design will actually get built (and the constraints/advantages of the technology), and helps you see problems in different—often more linear and logical—ways.
Learning to code is not for everyone, but learning a little can go a long way. At least learning the basics of code structure, loops, memory allocation and management, etc. would be my suggestion.
I don't know if that's misleading, encouraging or simply talking to a specific target group.
> It always reminds me of the story about the woman who approached Picasso in a restaurant, asked him to scribble something on a napkin, and said she would be happy to pay whatever he felt it was worth. Picasso complied and then said, “That will be $10,000.”
> “But you did that in thirty seconds,” the astonished woman replied.
> “No,” Picasso said. “It has taken me forty years to do that.”
This isn’t hard if you use anything that’s not manual layout.
> permissions to access Camera and Storage and so on
A couple of Info.plist keys.
So claiming `about 10,000 downloads each week` is not very correct.
That is, apple highlights are massively more impactful that any other venue. My app had reviews in multiple publications and I average about 200 downloads per week, at around 4500 impressions. It got featured once in some list (in Thailand) and I got about 1 million impressions per day. Sadly, the app was paid (and not translated) at the time so no sales.
10k downloads per week is legitimately impressive for this kind of app. Kudos
One could test this hypothesis out on different YouTube video categories for which this obviously is known to give the assumption some quick strength or falsification.
Anyways, this is the first time I'm thinking about this question at all. I'm curious what you're allowed/able to tell us.
Maybe iOS apps in US can get here but I'm doubtful.
I understand the context, but still.
> 3. Don’t be afraid to ask for money
Only ask for money if you know you will get major coverage (either Apple placement in a feature in a country speaking a language that your app supports, or general public publications).
After switching to freemium model I earn more money per month than with a paid app during a year.
Another thing is, the author cites their app as a niche app but it is actually something a very large amount of people want. This helps _a lot_. Good, complex, apps are few on the App Store because apps must be free or very cheap.
Or just ask for money if it fits in organically with your product and audience.
We build a camera app. We considered freemium, but couldn’t find a way to lock features without compromising the intended experience.
It also acts as a bit of a filter, as people do research before paying for an app. We suspect that if we were free, we’d have to contend with more support requests for things like video recording, which isn’t the use case for the app.
Nevertheless, I believe that for a paid app, one needs good media coverage to be successful. Since there are no trials, there is not much the users can do to test the app before purchasing. (I think many people actually don't know that they can get refunds)
Anecdotal experience: bought it knowing that it doesn't record video, got exactly what I expected.
Really looking forward to a new phone so I can take advantage of the exciting new stuff, but I hear the 12 Pro might shrink to a 5.4" screen so I'm going to try and hold out. Once that happens I don't know if I'll touch my SLR again - it's already seeing minimal use because the phone is much more convenient.
I got a million impression in a week, not per day. The app was featured for about a week and got ~100k impressions per day.
Did you check the numbers for that period or for the current period?
That's enough to be ramen-profitable, I suppose.
That's amazing. I don't think I've ever written anything usable in an hour.
One thing I often see is that enthusiasts and professionals spend too much of their life and energy working with an inferior set of tools such that they are very dismissive of people expressing themselves faster with a better set of tools, solely because the discipline is no longer required
I am personally all for people being able to express themselves more effectively
If all you ever do is the same kind of thing over and over again (say, build CRUD web apps with the same stack), then sure, go nuts and optimize so you can deploy with a single button press from your IDE. But if you're in a role where the stuff you build varies wildly -- say, any type of startup where you are the dev team or a significant fraction of it -- then diminishing returns sets in very fast.
Mandatory XKCD: https://xkcd.com/1205/
Wow. I've been hearing for years that the gold rush of 99 cent apps on the App Store was done for, but this kinda gives me hope. I might get around to finally finishing any app I've worked on...
That shouldn't stop you from finishing your app though. Building and later publishing an app to your audience can be an awesome experience. Go for it!
I looked the app on Appannie (non paid account) and the pricing history is quite interesting:
26 Mar 2017 - 0.99 to Free
29 Mar 2017 - Free to 0.99
19 Jul 2017 - 0.99 to 1.99
20 Jul 2017 - 1.99 to Free
02 Aug 2017 - Free to 0.99
04 Feb 2018 - 0.99 to Free
10 Feb 2018 - Free to 0.99
03 Mar 2018 - 0.99 to Free
27 Mar 2018 - Free to 0.99
04 Dec 2018 - 0.99 to Free
03 May 2019 - Free to 0.99
05 Sep 2019 - 0.99 to Free
From the above details, it was a paid app for most of it's time. I wonder why the developer played with the pricing as much though?
I would often change the price to 1. See if I could squeeze a few more dollars out of the work and 2. Generate more downloads.
A fun "trick" for getting more downloads is to temporarily make a paid app free, as many, many people follow "Apps Gone Free" type of bots or directories and if your app has any substantial numbers behind it more people tend to notice when it switches to free.
“This app is no longer supported by the developer“
https://apps.apple.com/us/app/snaplight-photo-highlighter/id...
He probably got 10,000 downloads a week while he was featured on that page then dropped to almost zero. Millions of apps in the store means you won’t get much random traffic.
I made a comment elsewhere here (and updated the article to state) that downloads currently are around 40 each week, with an occasional bubble of a few thousand when a blogger or news site re-discovers the app.
I agree with the premise of the article ie build small, monetize, learn.
Other lessons I've learned: Promotion is harder than building. It's pretty hard to get more than a few downloads per day. Free or not, once it's out there your users will make demands. I got emails from all over the world requesting all sorts of new features. Simple is better. Almost all feedback I got was that the app did one thing well (actually good enough). Try different monetisation strategies.
[1] Key Passages https://apps.apple.com/us/app/key-passages-study-assistant/i...
(Chrome/ Win10)
This, my dear, is what an application should be created for -- To help resolve real problems and improve lives.
"Best New App" is well desired.
I find that interesting
This app should be a feature of a default Paint-like app.
1. a clearly-expert developer bragging about 1 hour to write hit app then telling everyone to basically live the dream chicken soup for the soul bs
2. people who experience increased anxiety from said wampeter/foma/granfalloon* because they haven't wildly succeeded
My brain to me: Welcome to 2019.
* See: Kurt Vonnegut
Maybe only 0.001% of people need it, but that's still tens of thousands of people.