I got to the end of that article and thought "boy, I've really benefitted from the work Jay has done. I should send him some lunch money as a thank you" and there was the link right at the top of the page!
I sent you $20 for all the work you've done to teach me more about the inner workings of iOS, even if I have never installed Cydia. :)
I've wanted to write a detailed blog post about the problem I needed to solve and what I ended up doing; the fact that you have said this just increased the likelihood of me doing that "soon" quite drastically.
I've always wondered what the term "Cydia" meant, so I hope Saurik can clarify: "Cydia" the app, or "Cydia" the ecosystem?
The app itself, more or less, is a graphical frontend for APT on the iphone. On the other hand, a lot of applications and stuff that comes with "Cydia the app" that form the ecosystem- like MobileSubstrate, Cyscript, etc mentioned in the article.
I remember back in the "wild west" days of jailbreaking, where a jailbreak implied literally just that- the ability to run unsigned code on iOS. The jailbreak (redsn0w, I think) around the iOS 3 days didn't even come with Cydia- it just installed SSH, and the user had to install Cydia after SSHing into the device. I remember enjoying the Telesphoro repo just for the *nix frontend apps that it installed, the coreutils, netutils, vim, etc packages. I originally didn't jailbreak for Cydia/substrate/whatever, I jailbroke to use my iphone as a nix workstation; admittedly this is a extreme minority use.
I wonder if Saurik could separate the app and the ecosystem of packages. Is it even possible? I don't claim to understand how Cydia works now, but is it possible to split off the maintenance of the Cydia app and the core (jailbreak/cydia) ecosystem packages like MobileSubstrate?
> The jailbreak (redsn0w, I think) around the iOS 3 days didn't even come with Cydia- it just installed SSH, and the user had to install Cydia after SSHing into the device.
Very few versions of redsn0w ever installed just SSH (the ones that did were beta versions targeting iOS firmware versions where we didn't want to make things easy for end users). Cydia was included by default with the initial release of PwnageTool for iOS 2, and has been included in almost every jailbreak ever since.
> I've always wondered what the term "Cydia" meant, so I hope Saurik can clarify: "Cydia" the app, or "Cydia" the ecosystem?
You use the term MobileSubstrate, which was the name of a dylib and the low-level name of a developer-only package for what was always called Cydia Substrate (the very first source code file for it I wrote in 2008 had Cydia Substrate at the top). Apple named most of their folders and files and bundle names at the time like that.
Cydia is a platform for runtime code modification that includes an SDK for making modifications (Substrate), a distribution system for installing them (Installer), a payment processing, licensing, and accounting backend (Store), and (on Android only, currently, and not really fleshed out yet) a USB device management tool (Impactor).
The icon for Cydia Installer is labeled "Cydia", so the boundaries between the terms "Cydia"-the-app and "Cydia"-the-platform is blurry. People then tend to talk about "Cydia Repositories" (APT repositories with content for usage with Cydia) and "Cydia extensions/apps" (what I normally call "Substrate extensions").
As for the "ecosystem", the line is often blurred here between the "iOS jailbreak ecosystem" and the "Cydia ecosystem" because almost every jailbreak tool has included Cydia Installer, Cydia Installer is the only way to get Cydia Substrate, and almost everything in the ecosystem is built as a Substrate extension of some form.
> I wonder if Saurik could separate the app and the ecosystem of packages.
As explained in the article, I am able to maintain all the things I'm responsible for, as well as have the time to help all the people who maintain all the things I'm not directly responsible for, because I have a semi-profitable business that I have managed to build out of the Installer and Store parts of the Cydia platform.
Alternatively, I could charge developers for licenses to use Substrate, and I could sell Cycript as some kind of stand-alone tool package, but that would have a massively stifling effect on the developer ecosystem. It isn't about "these things are overly coupled", it is "these things are effectively coupled but don't look to be".
Another option is that I could build first-party software for the device built out of Substrate, and distribute my software via someone else's software distribution and payments service. This sounds like an even worse scenario. In this case, I would be highly incentivized to hoard Substrate for only my products as a competitive advantage.
Essentially, if someone wants to compete with me on Installer/Store, they need to be prepared to handle everything else, because that's the place where I am able to make money: if they want the only part that's profitable they had better be prepared to take on all the things that aren't, as they aren't entitled to my effort.
Like, I don't know what you are hoping to obtain by splitting Substrate and Installer/Store apart, but if the goal is to be able to let people compete with some of the things I've built without just replacing me entirely, that isn't really possible and I honestly don't see the point: I would just leave if that happened.
>Very few versions of redsn0w ever installed just SSH
It might have not been redsn0w. Perhaps blackra1n or older, in the iOS 1/2 days, when people installed Cydia side by side with RipDev's Installer. My memory is pretty hazy on that. At any rate, this distinction is mostly a historical footnote at this point.
----------------------------
Anyways, I understand that from a practical perspective, it is impossible to separate Cydia-the-installer-and-store and Cydia-the-code-modification-platform. The former pays the bills, while the latter is the focus of most development effort and center of the jailbreak ecosystem, but not profitable without killing said ecosystem. As such, it probably would be foolish to ask to distinctly separate the app and platform code-wise, as people would aim to compete in the somewhat profitable storefront side- Rock is a good example, as mentioned. Again, I understand how you said <quote>It isn't about "these things are overly coupled", it is "these things are effectively coupled but don't look to be".</quote>
However, if I may: I would suggest you do a branding clarification to clarify, if not separate, the Installer and the Code Modification side of things. For people who aren't as familiar with the scene, it would probably help people understand what you do for the jailbreak community better.
As it is, the naming scheme for the entire ecosystem is pretty confusing. For non-jailbreak-devs, "Cydia" is seen as a platform containing just the APT-frontend installer app and the store; the code modification/extension side of things is less obvious, eclipsed by the installer. This is possibly part of the reason why some people are interested in competitors for Cydia: if it is only seen as a glorified app store storefront and installer, almost anyone can write a replacement, which may be the cause for discontent.
This also has the benefit of clarifying what you're trying to do for Android: the brand "Cydia" is very iOS-centered at this point, and perhaps distinguishing Substrate/etc as something else, more neutral, would be a good idea.
On the contrary, I would on the other side claim that allowing the branding to accidentally separate, into MobileSubstrate and Cydia, was actually a key mistake: it reinforces the belief that they are entirely unrelated things that can be thought of and selected separately. I wish I could go back in time and be more clear with the branding as always having said "Cydia Platform" and "Cydia Substrate" whenever possible, so people see all the pieces as a unified concept, as then I wouldn't run into problems where people think "well, I'll just compete with this profitable thing I see that is defined easily with this word people talk about". I actually only started being really consistent and forceful about Cydia as a platform in the last year, when I started zooming out and putting the puzzle together better. (Really, Substrate only doesn't ship together with the GUI for ancient political reasons.)
(I've edited my previous comment a bit to clarify, probably after you read the first revision and started commenting, so just a note)
(Anyways, thanks for responding and continuing the conversation. I definitely appreciate this chance to talk with you.)
------------------
ARE they something that can't be thought of and selected separately, though?
I personally don't like that kind of thinking. It's similar to adding DRM to programs so that it stops pirates- just replace "DRM" with "branding uniformity" and "pirates" with "competitors".
Instead, if someone was truly interested in being an obnoxious competitor, they would "crack" the "DRM" by forcibly separate the branding. Read this in a TV advertisement voice: "Rock with Cydia Substrate, ALL of the Cydia extensions, but none of the slow!" "Replaces the installer, keep the plugins!" Sounds a bit familiar, hm? The end result is still the same, just like with piracy.
If anything, this may be worse. It pollutes your own brand, and if issues comes up, you can be blamed even more for stuff that wasn't your fault.
By keeping the code modification clear, you definitely would be able to better advertise to the Android side of things, and perhaps have other benefits with the current jailbreak community. You are in the unique position of being the only core jailbreak dev where all of the code that they ship doesn't need to be completely replaced every jailbreak. Unfortunately for other jailbreak devs, due to this, people have established an "everything is replaceable" mentality. People can clamor to kick devs out of the scene, like I0n1c. Cydia is not completely immune: if people think it is just a store and a frontend for APT, then people will think that almost any competent programmer can replace you- this is bad! By giving Substrate the individual brand that it deserves, and advertising the difficulty in building such a live code modification platform, it becomes that much more important in consumer's eyes.
Even if you don't care about the average jailbreak community member (seeing some tweets with death threats over not releasing something fast enough... make such a perspective all too understandable), the thing is that the next person to come along to compete will originate from this jailbreak community. Marketing a stronger brand to emphasize the irreplaceability of Substrate may only gather more respect and benefit you in the long run.
Your hypothetical situation cannot happen due to a combination of trademark and copyright law: you can't redistribute Cydia Substrate, nor could you attempt to dilute my branding or somehow accidentally ascribe fault to me. On Android, Cydia Gallery was designed (very poorly) to temporarily serve the purpose of Installer until I determined whether or not it was a good idea to bring the whole stack of Cydia over.
Again, your strong separation makes it sound easy to compete with Cydia separately from Substrate: what you are describing is weaker branding, because it takes two things that are only not tied together due to happenstance of technology but which are intrinsically tied legally, economically, and even user-experientially, and separates them into two things that suddenly look like you can replace one but not the other.
You then talk of people thinking Cydia is "just a store frontend for APT", but that's what "Cydia" is in your version of the branding: Substrate is some entirely separate thing, leaving Cydia alone to be compete-able with. You make it sound like separating them solves this problem, but them being accidentally separate is what caused this problem in the first place: you have the entire scenario backwards :/.
Again, it is only in the last year year that I've gone out of my way to attempt to fix the branding between these two things that previously the user community accidentally saw as highly separate, with "MobileSubstrate" being this thing that maybe anyone was allowed to use and "just some weird backend thing" and pulling it into the forefront as the development tool that embodies the end-to-end platform that is Cydia.
>cannot happen due to a combination of trademark and copyright law
There is no need to redistribute anything, as you've said yourself: pretty much every jailbreak tool comes with Cydia. This hypothetical new tool just needs to remove the installer part of Cydia, which would be legal. Also, advertising "compatibility with another product" is a pretty gray area of trademark law, and lawsuits are expensive- they can bet that you might not want to get embroiled in a lawsuit, where you have everything to lose and they have nothing to lose. It's not a completely far fetched idea.
> what you are describing is weaker branding
Let me clarify my points about branding: with separate branding, I was proposing "weaker combined branding, stronger individual branding". I am not arguing that they are not tied together economically and legally.
> You make it sound like separating them solves this problem, but them being accidentally separate is what caused this problem in the first place
Oops, I think you might have misunderstood my examples. I wasn't saying that separating the brands make it harder to compete against. I was saying that combining the brands to reduce competition is just as effective as using DRM to reduce piracy- that is, not at all. A lot of game studios nowadays, instead of adding DRM to combat piracy, release games without DRM. Similarly, instead of combining the brands in an attempt to reduce competition, just embrace the fact that it will happen no matter what.
In formal logic, let p be "separate brands", and q be "more competition". You are saying "p then q, so it is better to not-p"; on the other hand, I'm trying to say "p AND not-p will still lead to q, and p has good effects, so just do p". Hopefully the previous sentence made sense, haha...
> and pulling it into the forefront as the development tool
I feel like this is a "mere" advertising problem, and not directly related to its branding. Currently, you're trying to make Substrate more popular by combining it into the brand that the Cydia installer has. Alternatively, you can make it more popular by creating another brand and advertising its power through that: say, create "Aidyc Substrate" ("Cydia" backwards) (ok that's a shitty name but w/e), and building on that and advertising that. Both methods could work in the end.
Apple themselves can show us the power of two individual brands that rely on each other while tied at the hip: "iPod" and "iTunes"! Creating separate brands do not take away from the individual products. Can you imagine if Apple decided to call both the music store and the device "iPod"? Separate brands, intrinsically tied together legally/economically/user-experimentally, and provides a great example of what could work out. If both products are strong, they only reinforce each other away from competition.
-----------------
As an humorous aside note, I just realized that since you have a monopoly on jailbreak tools, and SaurikIT is a "legal" company, someone can sue you for anti-monopoly for bundling stuff together. It would be extremely unlikely (although quite funny from a bystander perspective, probably less so for you) for the courts to pull the Sherman Antitrust Act on you like that, though.
That's not how it works. Similarly, you can't sue Apple for their "monopoly" on iPhones which they use to bundle the app store. Markets are defined as product categories, not slices of an individual product, at least in the eyes of the Justice Department.
You have to factor in the cognitive load of dealing with bitcoin and all that it entails, currency risk, regulatory headaches, banks and other financial institutions reacting negatively to your bitcoin exposure; not to mention the not inconsiderable security exposure you have to manage of having a valuable string of bits that must be secured and backed up and guarded from exposure.
Bitcoin is not cost-free, and right at the moment, it represents more risk than most legitimate businesses are willing to assume. This is not to say that bitcoin doesn't have benefits, it certainly does; but those benefits don't come for free.
I think you are always going to have people/groups your going to compete with and ones you cooporate with. You chose to compete with iOS by creating an alternative(jailbreaking). I agree trying to compete on minor changes seems like a pretty big waste of time, but your probably not going to get much value out of them as part of your community anyways. I guess it comes down to movitivation. If people are competing mostly because of ego or is there a deeper reason that will resonate with others.
> The reality is that Apple makes money because Apple sells hardware: they make more money on a single iPhone than they could ever hope to win back in a lifetime of application sales, and most users purchase a new iPhone every two years. You'd have to buy hundreds of $1-$2 apps every year for Apple to care about that business.
Is this true? I was under the impression that Apple makes the majority of their iOS money from royalties on the app store. What on earth could their expenses be to offset 30% of $1,000,000,000/quarter[1]?
If we look at Apple's 10-Q for Q1 2014, we see ~$40b in revenue for iOS devices, and ~$10b in revenue for "iTunes, Software and Services", which "includes revenue from sales on the iTunes Store, the App Store, the Mac App Store, and the iBooks Store, and revenue from sales of AppleCare, licensing and other services".
Conservative high estimates of their profit margin on iTunes sales is 10% (often the more reasonable estimates are "low single digits"), the low-end estimates I've seen for hardware sales is 40% (you can find people who have done detailed charts, breaking down the parts and labor for building these devices).
While Apple has said little historically about individual product profitability, the patent lawsuit between the company and Samsung provided one small window into just how valuable the iPhone franchise has been. In just 18 months between October 2010 and March 2012, gross margins on iPhone were between 49 and 58%, an almost unheard of figure for a consumer electronics product.
That's $16b profit on hardware, and $1b profit for all of iTunes (which analysts have claimed is likely similar for all of their various subdivisions); which, even if we took the crazy conservative assumption that that money is almost entirely revenue from the iTunes App Store, is only ~5% of their income.
But, as I bet is true for most of the people you know, I spend way more money on movies and music than I do on apps. Sure, there are "whales" who buy tons of in-app purchases, but "whales" for music are also common, and the cost of a single season of a television show is a massive investment.
Many (not all, maybe not even most, but many) of the people I know also purchase AppleCare, which is $100 per device and allocated to the same revenue bucket. I think this also includes AppleCare for MacBooks, which is $250. The percentage is thereby certainly much much lower than 5%.
You can also look at this in the other direction: the iPhone costs ~$600 (you don't pay all of this to Apple, though, it being subsidized through payments to your carrier), with the income estimates being ~$250. To make Apple as much money as they make on a single iPhone sale you would have to buy 2,500 $1 apps ;P.
At that point, Peter Oppenheimer added, “We run the App Store just a little over breakeven,” implicitly making the case that the App Store was not a big profit generator for the company.
If we add the content margins from music and apps and assume the store runs at break even we can get an idea of what it costs to operate the store. The latest number is $113 million per month (from a total income of $313 million/mo.). It implies over $1.3 billion per year.
Much of that cost does go into serving the content (traffic and payment processing). Some of it goes to curation and support. But it’s very likely that there is much left over to be invested in capacity increases.
(One thing to note is that the amount of money they make off this division has changed over time, and people are now sometimes reporting the division to be profitable and no longer mostly be running "break even". However, these reports cite the reason being that Apple's margins on first-party software has increased and is in the same pile.)
For this reason, management has begun since 2010 to suggest that at least the App Store is run “a little over break-even”. How little is a good question. A one percent operating margin (from gross revenues) would imply as much as $45 million margin. I estimate 2% is possible on Apps and 1% on Music.
My estimate is that Apple’s own software generated $3.6 billion in Revenues in 2012. As you can imagine, this is a high margin business which grows at nearly 20%/yr. Although I estimate that the software business has been overtaken by the Apps and Music businesses in gross revenues, it keeps an operating margin similar to that of Microsoft or about 50%.
This means that iTunes inclusive of Apple’s own Software generates as much as 15% operating margin on gross revenues. That’s over $2 billion a year.
If there is a program that sucks and the maintainer is unwilling to merge your changes that (according to you) make it better, then what choice do you have but to compete? Or are you willing to just let it be and try to live with the shitty program?
Competition is not a choice, you can't just say "please don't compete with me because I'm not motivated by it" and hope it will work. Competition is just something that you have to do if you want your idea of what is right to remain at the top of the ladder.
Man, saurik, you need a vacation. You need to not have to think about Cydia, or the community, or maybe even computers at all for at least a week or so.
You're talking about how all of these developments in the community wear on you, and how you view maintaining all this stuff in part as an obligation. I could be reading all this wrong, but I get the impression that dedicating so much of your life to Cydia is going to burn you out eventually, abrasive community or not. You just sound tired.
I feel like letting the project sit for a week or so while you take a break and get away from it all may actually be worth it in the long run. You sure as hell deserve it.
Without a doubt. I've spent countless hours myself developing a mod for an old gaming community with some of the most unappreciative manchildren (trolls) in existence, and I saw it through to the end because I felt I had an obligation to finish it. And to this day, there are a handful of people from a subset of that community who blame me for the demise of said subset, even though I did everything they asked.
I learned a lot from it though, and not just about coding and development, but about communities in general. The entitlement that some people feel they have of your time can be astounding. Apparently when you do things for people for free out kindness or out of passion for something, it only leads some (many?) of them to expect you to continue to do it all, until they've sucked every bit out of you that they can. I'm sure this is especially worse in online communities, because to them, you're just text on their screen who provides them with something fun or useful, not a human being.
So yeah. Take a break. A week may not even be long enough. Work on other things, completely unrelated things. It'll give you a fresh perspective and help with realizing exactly how much time and energy of your life you're devoting towards something and how much of it is really worth it.
I sent you $20 for all the work you've done to teach me more about the inner workings of iOS, even if I have never installed Cydia. :)