iOS (iPod, iPad) Devices on Linux – Long Term non-jailbreaking Solution

Outline of the Problem.

Many people would like to have their iOS devices, such as iPods and iPads interact with their Linux devices. Apple clearly lists Microsoft Windows or OS X as a requirement for such devices, but I can nonetheless understand why someone may wish to get use out of a gift they received or similar instead of selling it or giving it away. There are several reasons why I personally avoid such devices, but I can respect the choices of others.

Those that have chosen to own iOS devices and not use proprietary desktop operating systems are frequently met with frustration when trying to sync them or have them otherwise communicate. A method is developed by a clever open source volunteer programmer, it works for a few months, then suddenly stops working with an iOS update. Rinse, repeat.

There is already a long-term solution that, while legal, voids your warranty on the device and is often difficult for non-techy types.

A Humble Proposal.

There generally is no long-term approach outlined to break this cycle that doesn’t involve voiding of warranties, so I will outline and propose one.

  1. Look into methods to cease software/firmware updates to the device.
  2. Wait for the open source volunteer programmers to work around Apple’s shenanigans as of the last time you did get an update, and thus your device will eventually work again.
  3. Continue to not update the device.

I have no idea if this is currently possible without jailbreaking an iPhone with an active data plan that is always internet-facing, but I would encourage the aforementioned open source volunteer programmers and casual tinkerers to focus on a method wherein the device is not fully jailbroken. Only any forced system update software needs to be turned off, disabled, or have its knee caps busted with a sledge hammer. Ideally, the semi-skilled bureaucrat at the Apple Store will not be able to tell at a that this was done when casually going through the itemized warranty verification checklist.

The simplest method of avoiding updates for an iPod is to simply never connect it to iTunes.

Worth Noting.

This long-term solution could be implemented in addition to the current short-term solution that works, as outlined somewhere on the internet so that you can get your device working today. I cannot link to the current method because that would render this post obsolete exactly one iOS update from now, but I can offer you a hint: for the short-term solution that currently works, you need to be looking at how-to guides and discussion forum posts more recent than the date of the last iOS update you received.

Remember that the short-term solutions are cyclical and temporary. Don’t be surprised if the method that worked last month no longer works today.

If your iOS device is receiving updates, one will eventually break all currently existing non-iTunes & non-Steve-approved support.

Limitations.

This difficulty is by design, not accident. The entire point of many of Apple’s so-called security updates is to maintain or re-introduce Apple’s security and control. Over you.

The base problem that causes the problem outlined in this article is a social problem – how people treat people, such as how the folks running the Apple Corporation treat customers. Thus, what I propose here falls into the realm of a technological solution to a social problem. In itself, that presents a problem. A smart fellow just the other day pointed out that technological solutions to social problems are generally imperfect (much like military solutions to social problems). This proposal, even if implemented perfectly, will still be imperfect. It will still require extra hassle on the part of the end-user, for example.

If you have come across this blog entry, then you have also probably read a relevant Wikipedia article or two, or maybe even three. Thus, I trust that you already know that there is a series of social solutions to this social problem and ones like it. Please respectfully and tactfully advocate for such a solution, when you see such an opportunity present itself.

iOS (iPod, iPad) Devices on Linux – Long Term non-jailbreaking Solution

Elastcal: Simple Cross-Platform App for Econ Students to Calculate Elasticity Coefficients

This BASIC code could be modified for pretty much any repetitive formula that crunches four numbers together. The only real pain is keeping track of parenthesis.

I’m sure similar code has been written thousands of times to do the exact same task, but I thought I’d share mine. As it stands, this calculates the “Elasticity Coefficient” of a good or service from one price/quantity point to another price/quantity point. Google can help one find websites that do these calculations, but Google is generally not allowed to be used on tests. The formula used here is the ‘midpoint formula’ of supply or demand elasticity.

Platforms this works on:

  • Your web browser.
  • TI-83 and perhaps other TI- calculators that use BASIC.
  • Android phones.
  • Probably a bunch of other things, too. If you port it to something else and it works, please let me know!

Microeconomics Formulas this works for:

  • Elasticity Coefficient of Demand
  • Elasticity Coefficient of Supply
  • Cross-Elasticity of Demand
  • Income-Elasticity of Demand

I just added a few lines so that it also spits out the slope of the line at that segment.

It just spits out the numbers, it is up to you to interpret it.

IN YOUR WEB BROWSER

Click here to run elastcal in your web browser. Requires Java. I have not done extensive testing on this version, and it looks like crap. It should still work, though. If you run into errors, please inform me and include as many details as possible.

Once it pops up, click “run” to start.

Point your smartphone’s barcode scanner at the below image to be directed to the website if you wish to attempt to use it on your smartphone.

qrcode

TI-83 USERS

TI-83s are very crummy computers and BASIC itself is a very crummy language, but that’s the most advanced thing I’m allowed to use on tests in my Economics class.

elastcal asking for input on TI-83.


elastcal showing results on TI-83.

On your TI-83 press “PRGM” and arrow over to “NEW”. Give it a name, and you should then be faced with a screen containing a “:” in the upper left corner under “Program:”.

Enter these lines of code. For “Disp” or “Input”, you enter that by pressing “PRGM”, arrowing over to “I/O”, selecting either “Disp” or “Input” and hitting enter. Make sure you keep track of parenthesis!

Disp "ELASTCAL V1.0"
Disp "BY C.T. MASON"
Disp "PUBLIC DOMAIN"
Disp " "
Input "OLD QUANT-",A
Input "NEW QUANT-",B
Input "OLD PRICE-",C
Input "NEW PRICE-",D
Disp " "
Disp "ELASTICITY"
Disp "COEFFICIENT-"
Disp ((A-B)/((A+B)/2)/((C-D)/((C+D)/2))
Disp "SLOPE AT THAT"
Disp "SEGMENT-"
Disp (D-C)/(B-A)

ANDROID USERS

I did a simple port to BASIC as implemented on the $0 Android app called “BASIC! + SQL” that you can find in the Android Marketplace. All three methods below work equally well at installing elastcal, pick the one that seems easiest to you.
elastcal asking for old quantity.


elastcal asking for new price.


elastcal returning the elasticity coefficient.

Method 1 to install:

Install “BASIC! + SQL” on your Android phone from the Android Marketplace, plug your Android phone into your computer click here to download elastcal, and save it to “rfo-basic -> source” on your Android’s MicroSD chip.

Method 2 to install:

If you don’t want to do all that, point your Android phone’s barcode scanner at this, and install it, to get the BASIC interpreter app:
QR Code that refers Android Phones to the BASIC! + SQL app in the Android Marketplace
Point your barcode scanner at this for the app I wrote, and download it to the rfo-basic/source folder on your phone’s SD card:
QR Code that refers Android Phones to elastcal.bas

Method 3 to install:

Install the “BASIC! + SQL” app, and enter the source code manually:

print "elastcal v1.0"
print "by C.T. Mason"
print "Released to Public Domain"
input "old quant",a
input "new quant",b
input "old price",c
input "new price",d
print " "
print "elasticity coefficient:"
print ((a-b)/((a+b)/2)/((c-d)/((c+d)/2))
print "slope of that segment:"
print (d-c)/(b-a)

Putting the Icon on your Home Screen:

Long-tap on the home screen to bring up the “Add to Home Screen” dialog.

Select “Shortcuts”.

Select “Launcher Shortcuts” with the telescope icon.

For “Program File Name”, enter “elastcal.bas”.

Leave “Icon File Name” blank.

For “Shortcut Name” enter “elastcal”

Hit “OK”. Hit “OK” again.

Done!

APPLE USERS

Elastcal for cellular phones relies on a piece of Free and Open Source Software covered under the very ethical and reasonable terms of the GNU General Public License, and as such it is not compatible and will never be compatible with the Terms of Service of the Apple App Store unless Apple’s ToS are altered significantly.

The copyright license of the software that makes elastcal work is the GNU GPL v3, and it says this:

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License.

The App Store’s various terms and conditions place significant restrictions on recipients’ rights that are not compatible with the section in bold above. If you would like to see elastcal and “BASIC! + SQL” available natively on Apple devices, please e-mail Steve Jobs ( sjobs@apple.com ) and ask him to modify the Terms of Service of the App Store to be more inclusive and open to people with different ethical codes than his own.

If iPhone and iPad web browsers are standards-compliant, then the web based version above should work for you. If not, there isn’t much I can do about the situation.

Elastcal: Simple Cross-Platform App for Econ Students to Calculate Elasticity Coefficients