Skip to main content

Is Apple becoming another Microsoft?

You know what pissed off Linux/Unix folk about Microsoft and Windows? My best guess is that it wasn't Open-Source. Thus, their suggestions weren't taken into consideration as much as they should have. Microsoft was controlling its own software too much for its own good. Now Apple is doing the same thing. Let me explain with the example of iPods.

If we take a look at any iPod model before the iPod touch, we notice that (internally in the filesystem) it's pretty simple. You have your music files and your song/other stuff database. The database(s) were plain-text and their structure could be examined and mimicked. This allowed for syncronization with software other than Apple's iTunes.

Now welcome the iPod touch... No more simplicity. iPhone OS keeps its databases hashed. Yes, you can put music files on there with non-iTunes, but they won't show up in your lists. It's like the files are orphaned. The only program you can sync the iPod touch with is iTunes. Oh, and if you don't have Windows or Mac, you're out of luck. Booted into Linux/Unix/non-Mac/non-Windows? You have to reboot into Mac/WIndows to sync your iPod Touch. Very convenient, Apple, very convenient indeed.

OK, good thing the iPod Touch has a WiFi chip. Now you can install apps without a computer. Yes!!! But wait, what apps? Yeah, there's a gazillion apps in the App Store, but how did they get there? With Apple's approval. Apple doesn't like it, and the app doesn't make it to the App Store. To illustrate the point, an update to a Twitter application had a toplist of some kind. When Apple was looking over the program, it just so happened that the toplist contained the F-bomb in one of its terms (or site names, or whatever). Didn't stay in the toplist for long, though. Nevertheless, the update was rejected! It's not like the developer controls the toplist and purposely manipulated the rating system to put the F-bomb on the toplist.

Well, good thing the iPhone-Dev team exists. With their jailbreaking process, the 1st gen iPod touch was jailbroken easily and non-App Store apps could be installed. This opened up a whole slew of features and tweaks and other cool stuff. But then comes the 2nd gen iPod touch. Apple realized where the chain of trust in the boot process was broken and quickly patched it up in the hardware. Uh-oh for the jailbreakers. But finally, after months of work, the redsn0w in-RAM tethered jailbreak was released and people could jailbreak the 2nd gen iPod touch, but needed a PC to boot their iPod. Then, after another month/month-and-a-half, people came up with a jailbreak process that didn't need a PC to boot the iPod. That awesome. Excellent. Kudos to the hackers who worked on this project. But, looking at Apple's track record, that's bound to be patched up and 3rd gen iPod touch users will have an even harder time jailbreaking.

So, now the end-user is (perhaps nor completely) statisfied. But what about the developers? I myself have wanted to write an iPhone app, at least for just messing around. Good luck doing that without a Mac, though. So you want Mac, eh? You have to pay for both Apple hardware and Apple software. Pretty good deal for Apple. But the Linux/Unix code junkies who are used to everything being free and open source? Too bad. Apple wan't you to use the iPhone SDK, but only on its products.

I hope I have demonstrated how Apple could become another Microsoft. It's just becoming a control freak. It's trying to control almost all aspects of its products' use, from what the developers can use to what the end-users can install. The end-users far outnumber the developers, which is why we have jailbreaks, but no Windows/Linux/Unix iPhone SDK ports. I personally hope that Apple will open up its software and allow others to contribute to it and use it however they want. But that's unlikely to happen.

Comments

  1. How to register at CaesarsCasino.com | JamBase
    The first step in that 서산 출장마사지 process 오산 출장샵 is to register and navigate to the Caesars Casino app. 경기도 출장샵 The site will let 양산 출장마사지 you gamble online 계룡 출장샵 and start placing your bets.

    ReplyDelete

Post a Comment

Popular posts from this blog

Linux on XPS 15 9550/9560 with TB16 Dock [Update:3/29]

Finally got a laptop to replace my fat tower at work - Dell XPS 15 9560. I was allowed to choose which one I wanted and chose the XPS for its Linux support since Dell ships developer edition XPS's running Ubuntu so I figured Linux support would be better than other manufacturers. At first they got me the model with the 4K screen but my monitors are 2K and multi-dpi support in Linux is virtually non-existent and even hi-dpi support on its own is pretty terrible. So I got it exchanged for the model with the regular 1080p screen (which happened to also be the updated 9560 model), which works much better. I'm very glad to report that pretty much everything works, including the TB16 desktop dock, with just a bit of settings tweaking. This post is to help anybody considering getting this setup or looking for help getting things working. For now, I am running Kubuntu 16.04 with KDE Neon installed. List of things I explicitly tested and work: WiFi, Bluetooth Thunderbolt charging

My Views on Code Indentation

I have read many, many articles about the whole tab vs. space indentation thing. Personally, I don't necessarily agree with most of them. They will require the coder to use a specific indentation size and stick with it, even forcing that on other coders. First off, let me outline my method for indenting code. Then I will explain the reasons and advantages/disadvantages. When I indent code, I will use tabs, but only at the beginning of a line. To align something in the rest of the line, I will use spaces. If a line spills to the next line(s), I will indent that line two tabs further. Rationale: Tabs Why tabs? First off, they're compact in the file (1 byte each). This is really insignificant with current disk sizes, but still. If you indent in spaces, then your file will be larger (unless you indent with one space). Another advantage of tabs is that a tab is a tab. It doesn't specify by how many spaces the code is indented, but rather by how many tabs it is indente

JComboBox with Disabled Items

Recently, I was working on a project in Java and needed to have a combo box, but with certain items in the list disabled (e.g. gray and non-selectable). At first, I simply set a custom renderer for the combo box which checked if the item was disabled. That, however, did not prevent the items from being selected. Thus, I set about to find a viable solution. There are plenty of solutions out there, but none seemed to work exactly the way I wanted. In the end, I ended up subclassing JComboBox to provide the functionality of disabling individual items. Here is my result, in under 100 lines: import java.awt.Component; import java.util.ArrayList; import javax.swing.JComboBox; import javax.swing.JList; import javax.swing.plaf.basic.BasicComboBoxRenderer; public class PartialDisableComboBox extends JComboBox { private static final long serialVersionUID = -1690671707274328126L; private ArrayList<boolean> itemsState = new ArrayList<boolean>(); public PartialDisableComboBox