The Computer Zeitgeist in the University

Granted, this is a school of Journalism, the Missouri School of Journalism (mirror), to be exact. But it could also be a Design school, a Computer Science class, or a RailsConf ;)

Simply amazing, try to find the PC (if you can).




 

My thoughts on Apple

I am a long time Mac user, and general Apple fan. I am even a shareholder which had his AAPL stock value more than tripled in the past two years.

So you can safely assume I like Apple. But lately, Apple has done several things I completely disapprove.

First of all, the US-only iPhone launch. I still can't possibly think of a reason why Steve Jobs (or the rest of the company) decided to sell the iPhone in just one country, and not everywhere (or at least Europe).

We thought the decision for that was the subsequent launch of a 3G version of the iPhone for Europe, but now they will start selling the exact same phone, 4 months later, in November, in Germany and the UK.

Needless to say, most of the people who really wanted an iPhone in Europe (including me) already have it.

And guess what, Apple? I would have paid €800, for instance (yes, that's $1100) for an unlocked phone if you had sold it. Instead, we were forced to buy it via an US friend, a trip to NYC, or even eBay. And your revenue for that process was nil.

Luckily, in September, after a struggle between iPhoneSimFree and the iPhone Dev Team, a software unlock was developed, and we finally updated our nice widescreen iPod to an iPhone.

And this week, after a previous warning, a new firmware update was released that not only removed the possibility of unlocking the device, but also impeded the installation of third party applications.

If that wasn't enough, the iPhones that were once unlocked or somehow modified to allow the installation of applications have been bricked, and Apple is refusing to give support to these "modified" iPhones.

It seems we will be staying with the 1.0.2 firmware for a very long time, even if we don't get the iTunes WiFi Store.

Maybe it's time to stop buying music in the iTunes Store and spend our money in the new Amazonmp3 Store, where music is DRM-free, some songs even cheaper, and still compatible with iTunes.



 

Unlocking an iPhone

So you have decided to buy an iPhone, even when Steve said that may brick unlocked iPhones on the next software update. Let's unlock it then, shall we?

Update: Do NOT update to the 1.1.1 firmware in iTunes if you have previously unlocked your phone or want to unlock your phone. It will brick your iPhone. Stay with 1.0.2. Do NOT try to unlock if you already have 1.1.1. It won't work.

Once you connect your iPhone for the first time to your Mac, iTunes will open, asking you to activate it using AT&T. Close iTunes.

You should probably now activate it to play a bit with it before proceeding to unlock it. You can use GUI software such as iActivator, iNdependence, or use the easy to use command line activator:

./tool --activate a.plist

If any of these programs asks you for the iPhone's firmware, you can download it from Apple: Firmware 1.0.2.

Once you have your iPhone activated and you've played with it for a while, you can use a needle to open the SIM tray and change the AT&T SIM for your shiny european one.

Before you start with the unlock process, it's convenient to have the 1.0.2 firmware installed. You can check it on your iPhone in Settings -> General -> About. If you have recently bought it, you probably have it already. If not, plug it into iTunes, and let it update (you may have to reactivate again after the update).

Basically, you just have to upload an application to your iPhone to unlock it. But you need to enable read/write access to your iPhone's filesystem and install SSH. That's what they call "jailbreak"(ing) it.

You can use several applications to do this procedure, but the one I like most is AppTappInstaller.

Download it, execute it, wait for a few minutes, and your iPhone is jailbreaked. You will notice that a new icon named Installer has appeared in your iPhone.



Now it is a good moment to temporarily disable the Auto Lock feature, as it will prevent the applications from installing properly. You can enable it again afterwards (Settings -> General -> Auto-Lock, set to Never).

Open Installer, and first of all, install the package named Community Sources. This will allow to install, among other things, SSH.

Once you have enabled the Community Sources, scroll down the list, and install BSD Subsystem and OpenSSH. There are some other interesting applications, such as MobileTerminal, and SummerBoard, an application that allows you to reorganise the icons of the main screen, use themes, et cetera.




You need to know your iPhone's IP address now. If you don't know it, you can see it going to Settings -> Wi-Fi, and then clicking on the arrow symbol near to your wireless network.



Once you know your IP address, proceed to download the anySIM application. You can download it from any of the links that appear on the hackintosh forum.

Uncompress the zip file, and open a terminal. Navigate to the anySIM folder and issue the following command (substitute iphone_ip_address for your iPhone's IP address). You will be prompted for a password (it's dottie).

You should either uninstall SSH after this process or change both root and mobile passwords.

scp -r anysim.app root@iphone_ip_address:/Applications/

You should have now an additional icon on your iPhone named anySIM. If it doesn't appear, restart the iPhone holding both the lock and home buttons.

The application couldn't be simpler. Click on it, and slide to unlock. It will take about 5-10 minutes so leave the iPhone on the desk and stay calm. It won't break.

Once it is unlocked, you just have to activate it. You can do so using iNdependence.



Please note that when you activate it, you will jail it again, so if you want to jailbreak it again, you will have to use the Jailbreak tab on iNdependence.



 

RailsConf Europe 2007: Day Three

The third and last day of the RailsConf Europe started with a wonderfully well presented keynote by Cyndi Mitchell of ThoughtWorks, called Bring Ruby to the Enterprise, Not the Other Way 'Round, of which I unfortunately can't find an online version.

The second keynote of the day was about Best Practices, by Marcel Molina and Michael Koziarski, which gave some interesting insights, such as using explicit (and long) names for actions and having small controllers (not more of 5 actions per controller and 5 lines per action), you should use the models for that.

After the break, I assisted the Building Rich Internet Applications with Flex and Ruby on Rails by Simeon Bateman, where he presented the possibilities of using Flex to create rich internet applications, supported by Mac, Windows, and (soon) Linux.


Building applications with Flex

AMV2 open sourced (Tamarin project in Mozilla)

HTTPService -> connect RESTful interfaces in Rails

WebORB -> plugin for Rails (themidnightcoders.com)                                           

RubyAMF

flex.org/ruby


The next session, Ruby on Rails Security, by Heiko Webers, while a bit basic at the beginning, gave some interesting insights as well. Some unedited notes follow:


"An insecure server is like a tunnel into Fort Knox"

Apache:
    - unprivileged user
    - deactivate modules
    - uploads out of DocumentRoot
    - disallow access, allow in particular

MySQL:
    - unpriv. user
    - bind localhost whenever possible
    - independent users for databases
   
Profiling:
    - comments!
    - leftover files
    - debug actions
    - robots.txt
    - Google Hacking Database ???

Interpreter Injection
    - OWASP Top Ten
    - User Agent Injection
        - XSS, Browser Injection
        - xssed.com
       
Cookies
    - session_id after auth
    - stolen!
    - sniffing, read document.cookie using code injection

UA Injection Countermeasures
    - Markdown (for mark-up)
    - RedCloth (some injection still possible)
    - Full HTML
        - blacklist filter
        - whitelist filter: WhiteListHelper plugin
    - No HTML at all
        - no strip_tags (you can go around and still inject some code)
        - use sanitize, SafeERB plugin

SQL Injection
    - Unauthorized reading (without using [] in finds)
    - Needs ', " or nil + line break
    - Conditions hash
   
Interpreter Injection
    - ActiveForm plugin: i.e. validates_length_of, validates_format_of for regexp
    - Mass Assignment (modify form names when using arrays)
        - Assign individually, use attr_accessible

Ajax
    - Output filters, sanitize!


Finally, I assisted to the MindMeister Development Study Case by Michael Hollauf. MindMeister is a collaborative mind map web application, wonderfully designed and with a lot of potential. He presented us with mostly the business part of the application, usability, and several other aspects of marketing a start-up.

We were also informed that the RailsConf Europe 2008 will be in Berlin as well. All I can say is I expect to be there next year (and maybe Portland, too), and that I'll be writing a post recapping my impressions on this year's RailsConf Europe, which has been very interesting, and of course, a lot of fun.



 

RailsConf Europe 2007: Day Two

Today was the big day, or the day the "real" RailsConf started (yesterday we only had tutorials). It also featured a DHH keynote at about 9:15am.

David's keynote was really interesting, and he focused on saying that while on the previous RailsConfs he had been announcing the Rails birthdays, and how many books about Rails were being published, or as he said, "how freaking awesome we are", this was the RailsConf where Rails ended being a surprisingly backed framework to convert itself into a serious competitor to other similar frameworks. He paraphrased Gandhi when he said: "first they ignore, then they laugh at you, then they fight you, and then you win."... and then what? It all happened so fast.

He also talked about the new features that Rails 2.0 will have, such as improved migrations, better routes, and different layouts depending on devices made easy (Hello, iPhone), and he also announced that a preview of Rails 2.0 will (probably) be launched before the ending of the RailsConf.

The next conference, Caching in a Multilanguage Environment, by Benjamin Krause was interesting as well, giving some ideas on how to use the client headers to show them the site in different languages, as well as different formats (HTML, XML), while still being able to cache data. Some notes (to be edited) from this conference follow:

format negotiation -> respond_to

map.named_route -> use Accept-Language Header

Use before_filter to get language on App controller
    - Gettext / globalize
   
Reimplement cache_page method, add request.language (accepts content but not language)

Use mod_rewrite, to make a subrequest to apache, getting correct path.

Fragment Caching

<% cache do %> -> MemCache

Several MemCache, send language fragments to corresponding MemCache (or one MC w/ namespaces)

plugins: mlr, mlcache -> in svn.omdb.org


The next conference, by Dr. Nic was really really funny, as usual, giving some interesting ideas about his "magic". He's uploaded the slides to his blog: Meta-Magic in Rails: Become a Master Magician



 

RailsConf Europe 2007: Day One (Tutorials)

After yesterday's Bratwurst on Rails, where we met some of the people that would be attending the conference while having a bratwurst and some drinks at the Kalkscheune, the next event was the Tutorials Day, starting at about 8:30am.

The early morning walk from the Radisson SAS hotel where I'm staying to the Maritim proArte where the conference was held was pleasant, consisting of about 1km down Unter den Linden to Friedrichstrasse.

Unfortunately, the Handling Large Concurrent Uploads tutorial was cancelled, so I switched to A Half-day of Behavior-driven Development on Rails, by David Chelimsky, Dan North and Aslak Hellesøy, which turned to be quite interesting, and quite enjoyable as well. These are some of the notes that I took from the tutorial (to be edited):

Behaviour Driven Development
writing software that matters

link what software should do with tech

test naming should be linked to what it's testing

agilemanifesto.org

rspec tool for tdd

agiledocs

BDD:   
    Narrative
        As a [role]
        I want [feature]
        So that [benefit]

    Acceptance criteria ->
        Scenarios:
            Given [some context]
            Given [some other context]
            When [some event occurs]
            Then [expect some outcome]
            And [another outcome]
           
rcov -> Coverage tests

rake stories          


At the afternoon, I assisted to the Scaling a Rails Application from the Bottom Up in Europe, by Jason Hoffman (Joyent), quite similar to the one that he had already presented in the RailsConf in Portland, and that I had already read. He gave some interesting ideas as well.



Here are some notes of the tutorial (to be edited as well):

tiers should be 10x different in throughput
not spending more than 10% of revenue

he likes ruby as process
should not be threaded

glassfish -> generating autodeploying war files
             better performance ( mongrel 150-400 vs 1000 req/sec), more memory footprint

use dns to scale (powerdns)
    - group users by hostname (jason.strongspace.com)
    - use GEO database to send them to different datacenters

layer7
    - separate mongrels for different controllers
    - can even give priority to first time users (new ip)
    - can give priority to certain controllers, scale controllers, bring down controllers one by one

nginx, lighty -> <1000 req/sec

varnish: web service command line allows to "purge" cache to update at next hit
         10000 req/sec

Application separation
- dynamic

- static

- uploads:
    - separate from app

- downloads:
    - mod_secdownload in lighty

tsung -> benchmark tool




 

Bloglines launches new design

Bloglines presented some days ago a new design for its well known feed reader, making extensive use of AJAX, and providing several new features, such as a customizable start page and multiple read view options (full, headlines only and e-mail style).




I have been using Bloglines for about three years now, and while I have tested in the meantime other feed readers, I haven't found another one as good as Bloglines. Granted, from time to time, you get the Bloglines Plumber for a few minutes, but its interface has been always the user friendliest.




One of the feed readers I have tried is Google Reader, and I've never felt comfortable with it. Bloglines was the most used web-based feed reader until Google Reader surpassed it some time ago. Apart from the fact that Google Reader has more users is because it comes from Google, Bloglines hasn't been updated at all in a long time, which probably has made them lose users.

The new Bloglines Beta is obviously inspired in Google Reader, for instance, having the mark as read as you are reading the post feature (if you have used Google Reader you know what I mean), which is sometimes annoying.

My conclusion is that while the new Bloglines Beta has a much better design, it is maybe losing its simplicity which has always worked well for them.





 

The Quest for the Steel Daytona

The Rolex Cosmograph Daytona is a chronometer watch with cronograph functions, known by many people thanks to Paul Newman, and probably the most sought after watch.

And particularly, the Daytona I am talking about is the stainless steel model, or for the connoisseurs, the ref. 116520 (or the ref. 16250 for the luckiest, with a Zenith El Primero movement).



The trouble with the stainless steel Daytona is that there exists a long waiting list in every authorised dealer, and it may take up to at least 2 years to get one.

It has a list price of EUR 6,750, but its price in the black market may well surpass EUR 9,000, and even double its price. Some people even say they have been offered one for more than its list price off the record at an authorised dealer (which is illegal).

So, why doesn't Rolex produce more steel Daytonas, and there's always a yellow gold and a white gold Daytona in every AD?

That's an interesting question. First of all, this is great publicity. And second, maybe people who don't want to wait ends up buying the EUR ~15,000 steel+white gold or the EUR ~21,000 white gold models.

I have been in the waiting list of my usual authorised dealer for some time now, with no luck at all. Some AD's get as less as one or two steel Daytonas a year, with a waiting list of more than 10 people.

With this in mind, I have started to write myself on the list of an authorised dealer in every city I go with reasonable flight connections.

Some people who were on lists have finally given up or have bought one in the black market. I think, however, that after all this time pursuing a steel Daytona from an AD, it wouldn't be the same (apart from the extra couple of thousands) to buy it from the black market. Half of the happiness having a steel Daytona comes from finally buying it at its list price from an AD, after some years of waiting.




 

Testing Vodafone Mobile Connect 3G USB Modem

I have been testing the Vodafone Mobile Connect 3G USB Modem for a couple of days. The USB Modem that Vodafone is selling supports UMTS (3G), HSDPA, and GPRS, and automatically uses the fastest network connection available.

The Vodafone bundle of this modem (a Huawei E220), comes in a Apple-white style, with a Vodafone logo. It weights next to nothing (less that 50g, the official site says), and if it weren't for the USB cable you have to attach, you could easily put it in any pocket.

This particular modem works nicely with Macs, you just have to download the software from the Vodafone site: Vodafone Mobile Connect. If you don't have access to an internet connection, the salesperson will kindly offer to install it for you.

MacBookPro with the Vodafone USB 3G modem attached


Vodafone requires you to set up a new data line (i.e. with a new SIM card) to buy the modem. While this new SIM card has a real number associated to it, you can not use it for calls, as the line is only activated for data connections. You can receive/send SMS though.

This data plan costs €49/month, and comes with a 1GB per month transfer limit, with unlimited sessions and connection time. Afterwards, you won't be charged if you surpass the limit. Instead, your transfer will be limited to 128kbps.

The Vodafone software allows you to see the signal strength and the type of network connection used, and you can choose whether you want to use the fastest connection, or force it to always use 3G.

Vodafone Mobile Connect for Mac


Once you click on activate, you can use Mac's Internet Connection application, where the installer will have created a connection for you.

Mac Internet Connection HSDPA USB Modem

The connection speed is better than I expected. Even though I don't live in the city, it was almost impossible not to find UMTS (3G) coverage. I then activated the GPRS only to force it to connect using 2G. At this point I noticed that if you have UMTS coverage, you get a blue light in the modem, and if you have GPRS, you get a green one.

Well, as expected, the GPRS connection is terrible. I couldn't even perform the test I used to measure 3G's speed, but a small file transfer averaged about 15-20kbps. Not good.

The UMTS connection is much better. Using the SpeedTest site, which allows to perform tests with servers located in several cities all over the world, I got the following results (Down: 1503kbps; Up: 265kbps):

UMTS Speed Test

Which is not bad at all for a UMTS connection. The speed could be better (up to 3.6Mbps) if I had HSDPA coverage, which I couldn't find in any of the places I have tested.

And, as it is Vodafone, the modem should work in the rest of Europe where Vodafone is present, right? That would be great. Well, it will, but then the data plan does not apply. You will be charged at astronomical rates while in roaming, so you might as well use those pricey €2/hour Swisscom access points at airports or Starbucks instead.



 

Attending RailsConf Europe 2007

RailsConf Europe Logo I have recently registered and will be attending the RailsConf Europe 2007 conference held in Berlin, from September 17th to the 19th. You can take a look at the schedule of the conference here: RailsConf Europe 2007 Schedule. There's even a Bratwurst on Rails event on the 16th you can register for free.

See you in Berlin!



 

Search



About

newton.gra2.com is a blog about technology, opinion and random thoughts written by Daniel Alvarez, a computer engineer currently living in Zurich, Switzerland.

Topics

News (20/0)
Manuals (24/0)
Security (7/0)
Music (3/0)
Weeklog (1/0)
Personal (34/0)
Photos (3/0)
Opinion (14/0)
Windows (5/0)

Blogroll

Pros i contres (Jordi)
Entrepa de fusta (Oriol)
Spaghetti Code (Isaac)
Made in net (Eric)
Nogare (Juan)
Blog de Isaac Jimenez
Web d'en Jaume Benet
Montcada Wireless (Fran)
Blog d'en Ricard Forniol
Angela Fabregues
in.solit.us

Libertad Digital
FOX News
The Wall Street Journal
The Washington Times
The Jerusalem Post

Michelle Malkin
Eurabian News
Nihil Obstat
Barcepundit
Expose the left
Davids Medienkritik
Johan Norberg
Ayaan Hirsi Ali

User Functions

:

:


Lost your password?

Latest posts

Stories

No new stories

Comments last 2 days

No new comments

Trackbacks last 2 days

No new trackback comments

Links last 2 weeks

No recent new links