Sunday, December 30, 2007

Apple - iPhone

iPhone is a multimedia, Internet-enabled mobile phone designed and marketed by Apple Inc. It has a multi-touch screen with virtual keyboard and buttons. The iPhone's functions include those of a camera phone and a portable media player ("iPod"), in addition to text messaging and visual voicemail. It also offers Internet services including e-mail, web browsing, and local Wi-Fi connectivity. It is a quad-band mobile phone that uses the GSM standard, hence has international capability. It supports the Enhanced Data Rates for GSM Evolution (EDGE) data technology.

Following the success of iPod, Apple announced the iPhone in January 2007. The announcement was preceded by rumors and speculations that circulated for several months. The iPhone was introduced, first in the United States on June 29, 2007 with much media frenzy and then in the United Kingdom, Germany and France in November 2007. It was named Time magazine's Invention of the Year in 2007. A new version of Apple's iPhone is expected to be introduced in 2008 that is capable of operating on faster 3G cellular networks.


History

The genesis of the iPhone began with Apple CEO Steve Jobs' direction that Apple engineers investigate touch-screens. At the time he had been considering having Apple work on tablet PCs.

Comments made by Jobs in April 2003 at the "D: All Things Digital" executive conference expressed his belief that tablet PCs and traditional PDAs were not good choices as high-demand markets for Apple to enter, despite many requests made to him that Apple create another PDA. He did believe that cell phones were going to become important devices for portable information access.

On January 9, 2007, Jobs announced the iPhone at the Macworld convention, receiving substantial media attention, and on June 11, 2007 announced at the Apple's Worldwide Developer's Conference that the iPhone would support third-party applications using the Safari engine on the device. Third-parties would create the Web 2.0 applications and users would access them via the Internet. On October 17, 2007 Apple announced that an iPhone software development kit would be made available in February 2008, allowing developers to create native applications that take full advantage of the iPhone's application programming interface.

On July 25, 2007 Apple announced in their 2007 Q3 sales report and conference call that they sold 270,000 iPhones in the first 30 hours on launch weekend. AT&T reported 146,000 iPhones activated in the same time period. Apple anticipated selling their millionth iPhone in the first full quarter of availability, and anticipates selling 10 million iPhones by the end of their 2008 fiscal year. On September 10, 2007, Apple announced sales of 1 million iPhones. This was followed by Apple's 2007 fourth quarter earnings announcement on October 22, 2007 which put total iPhone sales at 1.39 million with 1.12 million sold that quarter.

On November 21, 2007, T-Mobile announced it would sell the phone "unlocked" and without a T-Mobile contract, caused by a preliminary injunction against T-Mobile put in place by their competitor Vodafone. In Germany, a company is not allowed to lock the SIM card to itself. On December 4, 2007, a German court decided to grant T-Mobile exclusive rights to sell the iPhone with the SIM card locked, overturning the temporary injunction.In addition, T-Mobile will unlock the iPhone at the termination of a customer's contract.

The iPhone normally prevents access to its media player and web features unless it has also been activated as a phone with an authorized carrier. On July 3, 2007, Jon Lech Johansen reported on his blog that he had successfully bypassed this requirement and unlocked the iPhone's other features with a combination of custom software and modification of the iTunes binary. He published the software and offsets for others to use.

Features

The iPhone allows conferencing, call holding, call merging, caller ID, and integration with other cellular network features and iPhone functions. For example, a playing song fades out when the user receives a call. Once the call is ended the music fades back in. Voice dialing is not supported by the iPhone.

The iPhone includes a Visual Voicemail feature allowing users to view a list of current voicemail messages on-screen without having to call into their voicemail. Unlike most other systems, messages can be listened to and deleted in a non-chronological order by choosing any message from an on-screen list. AT&T, O2, T-Mobile and Orange modified their voicemail infrastructure to accommodate this new feature designed by Apple. A lawsuit has been filed against Apple and AT&T by a company called Klausner Technologies claiming the iPhone's Visual Voicemail feature infringes two patents.

A ringtone feature, introduced in the United States on September 5, 2007, but not yet available in all countries where the iPhone has been released, allows users to create custom ringtones from their purchased iTunes music for an additional fee, the same price of a song. The ringtones can be from 3 to 30 seconds in length of any part of a song, can include fading in and out, can pause from half a second to five seconds when looped, and never expire. All customizing can be done in iTunes, and the synced ringtones can also be used for alarms on the iPhone. Custom ringtones can also be created using Apple's GarageBand software 4.1.1 or later (available only on Mac OS X).

Apple has released a video explaining many of iPhone's features through a series of demonstrations.

Multimedia

Cover Flow on the iPhone.
Cover Flow on the iPhone.

The layout of the music library differs from previous iPods, with the sections divided more clearly alphabetically, and with a larger font. Similar to previous iPods, the iPhone can sort its media library by songs, artists, albums, videos, playlists, genres, composers, podcasts, audiobooks, and compilations. Cover Flow, like that on iTunes, shows the different album covers in a scroll-through photo library. Scrolling is achieved by swiping a finger across the screen.

Like the fifth generation iPods introduced in 2005, the iPhone can play video, allowing users to watch TV shows and films. Unlike other image-related content, video on the iPhone plays only in the landscape orientation, when the phone is turned sideways. Double tapping switches between wide-screen and fullscreen video playback.

The iPhone allows users to purchase and download songs from the iTunes Store directly to their iPhone over Wi-Fi, but not over the cellular data network.

Web connectivity

Wikipedia on the iPhone's Safari web browser.
Wikipedia on the iPhone's Safari web browser.

The iPhone is able to access the World Wide Web via a modified version of the Safari web browser when connected to a Wi-Fi or an EDGE network. It is not able to utilize AT&T's 3G or AT&T's HSDPA network in the U.S.. Steve Jobs has stated 3G would need to become more widespread and much more energy efficient before it's included in the iPhone.By default, the iPhone will ask to join newly discovered Wi-Fi networks and prompt for the password when required, while also supporting manually joining closed Wi-Fi networks. When Wi-Fi is active, it will automatically switch from the EDGE network to any nearby previously approved Wi-Fi network.

Before the launch, some reviewers found the EDGE network "excruciatingly slow," with the iPhone taking as long as 100 seconds to download the Yahoo! home page for the first time. Immediately before the launch the observed speed of the network increased to almost 200 kbit/s. This is probably due to the new "Fine EDGE" upgrades AT&T had been making to their network prior to the launch.

The EDGE network benefits iPhone users by providing greater availability than 3G, as 3G continues its expansion to most major cities in the United States. Most countries outside the United States have very little EDGE infrastructure in place. For example, the United Kingdom's EDGE infrastructure amounts to less than 30 percent.[citation needed] As a result, many users outside major cities will have to browse the Internet on GPRS, a much slower protocol.

The web browser displays full web pages as opposed to simplified pages as on most non-smartphones. The iPhone does not support Flash or Java technology. Web pages may be viewed in portrait or landscape mode and supports automatic zooming by pinching together or spreading apart fingertips on the screen, or by double-tapping text or images.

Apple developed an iPhone application for accessing Google's maps service in map or satellite form, a list of search results, or directions between two locations, while providing optional real-time traffic information. During the product's announcement, Jobs demonstrated this feature by searching for nearby Starbucks locations and then placing a prank call to one with a single tap. Though Flash isn't supported in Safari on the iPhone, Apple also developed a separate application to view YouTube videos on the iPhone.

E-mail

The iPhone also features an e-mail program that supports HTML e-mail, which enables the user to embed photos in an e-mail message. PDF, Microsoft Word, and Microsoft Excel attachments to mail messages can be viewed on the phone. Yahoo! is currently the only e-mail provider offering a free Push-IMAP e-mail service similar to that on a BlackBerry for the iPhone;[citation needed] IMAP and POP3 mail standards are also supported, including Microsoft Exchange[39] and Kerio MailServer. There is currently no search support.[citation needed] The iPhone will sync e-mail account settings over from Apple's own Mail application, Microsoft Outlook, and Microsoft Entourage, or manually configured using the device's Settings tool. With the correct settings, the e-mail program can check many IMAP or POP3-enabled web based accounts such as Gmail, .Mac mail, and AOL.[41]

Others

The iPhone features a built in 2.0 megapixel camera, without a flash, located on the back for still digital photos, but does not support video recording. It also includes software that allows the user to upload, view, and e-mail photos. The user zooms in and out of photos by "unpinching" and "pinching" them through the multi-touch interface. The software interacts with iPhoto on the Mac and Photoshop in Windows.

The built-in Bluetooth 2.x+EDR supports wireless earpieces (which requires the HSP profile), but notably does not support stereo audio (requires A2DP), laptop tethering (requires DUN and SPP), or the OBEX file transfer protocol (requires FTP, GOEP, and OPP).

Text messages are presented chronologically in a mailbox format similar to Mail, which places all text from recipients together with replies. Text messages are displayed in speech bubbles (similar to iChat) under each recipient's name. The iPhone does not support message forwarding, drafts, delivery reports, instant messaging, MMS, multi-recipient SMS, or copy/cut/paste capability.

Interface

The display responds to three sensors: a proximity sensor that shuts off the display and touchscreen when the iPhone is brought near the face to save battery power and to prevent spurious inputs from the user's face and ears, an ambient light sensor that adjusts the display brightness which in turn saves battery power, and a 3-axis accelerometer, which senses the orientation of the phone and changes the screen accordingly. Photo browsing, web browsing, and music playing support both upright and left or right widescreen orientations, while videos play in only one widescreen orientation.

A single "home" hardware button below the display brings up the main menu. Subselections are made via the touchscreen. The iPhone utilizes a full-paged display, with context-specific submenus at the top and/or bottom of each page, sometimes depending on screen orientation. Detail pages display the equivalent of a "Back" button to go up one menu.

The iPhone has three physical switches on its sides: wake/sleep, volume up/down, and ringer on/off. All other multimedia and phone operations are done via the touch screen.

The iPhone interface enables the user to move the content itself up or down by a touch-drag motion of the finger, much as one would freely slide or flick a playing card across a table with a finger. Similarly, scrolling through a long list in a menu works as if the list is pasted on the outer surface of a wheel: the wheel can be "spun" by sliding a finger over the display from bottom to top (or vice versa). In either case, the object continues to move based on the flicking motion of the finger, slowly decelerating as if affected by friction. In this way, the interface simulates the physics of 3D objects, giving it a real world feel.

The photo album and web page magnifications are examples of multi-touch sensing. It is possible to zoom in and out of web pages and photos by placing two fingers (e.g. thumb and forefinger) on the screen and spreading them farther apart or closer together, as if stretching or squeezing the image. As can be expected from multi-touch sensing, the two fingers don't have to be from the same hand.

Text input

Virtual keyboard on the touchscreen.
Virtual keyboard on the touchscreen.

For text input, the device implements a virtual keyboard on the touchscreen. It has automatic spell checking and correction, predictive word capabilities, and a dynamic dictionary that learns new words. The predictive word capabilities have been integrated with the dynamic virtual keyboard so that users will not have to be extremely accurate when typing—i.e. touching the edges of the desired letter or nearby letters on the keyboard will be predictively corrected when possible. The keys are somewhat larger and spaced further apart when in landscape mode, currently only available using the Safari. Not focusing more on texting has been considered a chief weakness of the iPhone, while at the same time the virtual keyboard is a bold step and a worthwhile risk.

David Pogue of The New York Times and Walt Mossberg of The Wall Street Journal both tested the iPhone for two weeks and found learning to use it initially difficult, although eventually usable. Pogue stated use was "frustrating" at first, but "once you stop stressing about each individual letter and just plow ahead, speed and accuracy pick up considerably." After five days of use, Mossberg "was able to type on it as quickly and accurately as he could on the Palm Treo he has used for years," and considered the keyboard a "nonissue." Both found that the typo-correcting feature of the iPhone was the key to using the virtual keyboard successfully.

Hardware

Rear view
Rear view

According to The Wall Street Journal, the iPhone is manufactured on contract in the Longhua, Shenzhen factory of the Taiwanese company Hon Hai. Conditions for workers at the factory have been a matter of controversy.

Touch screen

The 3.5 in liquid crystal display (320×480 px at 160 ppi) HVGA touch screen topped with optical-quality, scratch-resistant glass is specifically created for use with a finger, or multiple fingers for multi-touch sensing. Because the screen is a capacitive touch screen, no stylus is needed, nor can one be used. Bare skin is a requirement; users wearing gloves would have to remove them to use the touchpad, unless they are wearing electrically conductive gloves.

The user interface also features other visual effects, such as horizontally sliding sub-selections and co-selections from right and left, vertically sliding system menus from the bottom (e.g. favorites, keyboard), and menus and widgets that turn around to allow settings to be configured on their back sides.

Audio

The iPhone's headphones are similar to those of current iPods, but also incorporate a microphone. Calls can be answered and ended by squeezing a bud, toggling the microphone. The 3.5 mm TRS connector for the headphones is located on the top left corner (as seen from front upright). Wireless earpieces that use Bluetooth technology to communicate with the iPhone are sold separately. The headphone socket on the iPhone is recessed into the casing, making it incompatible with some headphones without the use of an adapter.

The loudspeaker is used both for handsfree operations and media playback, but does not support voice recording.

With the iPhone firmware update 1.1.1, released in late September 2007, video can be output from the headset jack using a three-way jack plug. Component video at up to 576i and stereo audio can also be output from the dock connector using the Apple Component AV Cable.

Battery

The iPhone features a built-in rechargeable battery that is not intended to be user-replaceable, similar to existing iPods. If the battery prematurely reaches the end of its life time, the phone can be returned to Apple and replaced for free while still in warranty, one year at purchase and extended to two years with AppleCare. The cost of having Apple provide a new battery and replace it when the iPhone is out of warranty is US$79 and US$6.95 for shipping.

The battery is stated to be capable of providing up to seven hours of video, six hours of web browsing, or eight hours of talk time (depending on configuration). The battery life for music playing is stated to be 24 hours. The battery also allows for up to 250 hours of standby time. Apple's site says that the battery life "is designed to retain up to 80% of its original capacity after 400 full charge and discharge cycles," which turns out to be the same as for the iPod batteries. When the battery reaches only 80% capacity, it would be providing approximately 5.6 hours of video, 4.8 hours of web browsing, 6.4 hours of talk time, or 19.2 hours of music playing, depending on configuration.

The Foundation for Taxpayer and Consumer Rights, a consumer advocate group, has sent a complaint to Apple and AT&T over the fee that consumers have to pay to get the battery replaced. Though the battery replacement service and its pricing was not made known to buyers until the day the product was launched, similar service had been well established for the iPods by Apple and various third party service providers.

The iPhone's SIM card slot having been ejected.
The iPhone's SIM card slot having been ejected.
SIM card

The SIM card is located in a slot at the top of the device, and the device is activated through iTunes. The iPhone does not contain a memory card slot.

The iPhone, like many other phones on contract, are locked to a service provider, such as AT&T, Orange or T-Mobile.

Software

An optimized version of the OS X operating system (without unnecessary components) runs on the iPhone, although differences between the operating system running on Macs and the iPhone have not been officially explained in detail. The iPhone's version of OS X includes the software component "Core Animation" from Mac OS X v10.5 which is responsible for the smooth animations used in its user interface. The operating system takes up considerably less than half a GB of the device's total 8 GB storage. It will be capable of supporting bundled and future applications from Apple.

The iPhone is managed with iTunes version 7.3 or later, which is compatible with Mac OS X version 10.4.10 or later, and 32-bit Windows XP or Vista.

The iPhone's CPU is an ARM-based processor instead of the x86 and PowerPC processors used in Apple's computers. This means applications can not simply be copied from Mac OS X and have to be written and compiled specifically for the iPhone. Additionally, the Safari web browser supports web applications written with AJAX, which, by design, are platform agnostic applications.

Applications

A photo on the iPhone.
A photo on the iPhone.

There are several applications located on the "Home" screen: Text (SMS messaging), Calendar, Photos, Camera, YouTube, Stocks, Maps (Google Maps), Weather, Clock, Calculator, Notes, Settings, and iTunes. Four other applications delineate the iPhone's main purposes: Phone, Mail, Safari, and iPod.

The YouTube application streams videos over Wi-Fi and/or EDGE after encoding them using QuickTime's H.264 codec, to which YouTube has converted about 10,000 videos. They are expected to convert the entire catalog by the third quarter of 2007. As a result, the YouTube application on iPhone can currently only view a certain selection of videos from the site. Also, because YouTube displays videos using Flash, the iPhone can only view videos through the YouTube application as opposed to accessing the YouTube website using Safari.

At WWDC 2007 on June 11, 2007 Apple announced that the iPhone will support third-party "applications" via the Safari web browser that share the look and feel of the iPhone interface. The applications must be created in Ajax or JavaScript to maintain device security. The iPhone cannot officially install full programs from anyone but Apple, although Steve Jobs has hinted that future third-party applications are in development. Dozens of homebrew applications are now available, although they are completely unsupported by Apple. Such applications could be broken by any software update, but Apple will not design software updates specifically to break native applications other than applications that perform SIM unlocking.

On October 17, 2007, Steve Jobs, in an open letter posted to Apple's "Hot News" weblog, announced that a software development kit (SDK) would be made available to third-party developers in February 2008. Due to security concerns and Jobs' praise of Nokia's digital signature system, it is suggested that Apple will adopt a similar method. The SDK will also allow application development for the iPod touch.

Software updates

Apple provides updates to the iPhone's operating system through iTunes, in a similar fashion to the way that iPods are updated, and touts this as an advantage compared to other cell phones. Security patches as well as new and improved features, such as a mobile chat client, Flash support, and voice recording, may be released in this fashion.

The first iPhone software update, 1.0.1, was released on July 31, 2007[71] to patch an exploit, discovered on July 23, 2007. It allowed hackers to take complete control of the iPhone via Wi-Fi connection or by luring a person to a website with that included malicious code. Once the hacker had control of the iPhone they could download the entire content of the iPhone, make phone calls, or turn the phone into a covert listening device.

The first full update, 1.1.1, was released on September 27, 2007. In addition to the iTunes Wi-Fi Music Store, this update also adds home button shortcuts and other features previously released in the iPod touch. The update significantly changed the iPhone's software and improved stability of its applications. Unsurprisingly, such significant changes also made it incompatible with previous unsupported hacks for modifying the system software or installing third party applications.

The updates that have been released are:

1.0.1 - July 31, 2007
1.0.2 - August 21, 2007
  • Fixed Bugs
1.1.1 - September 27, 2007
  • iTunes Wi-Fi Music Store
  • Louder speakerphone and receiver volume
  • Home button double-click shortcut to phone favorites or music controls
  • Spacebar double-tap shortcut to intelligently insert period and space
  • Mail attachments are viewable in portrait and landscape modes
  • Stocks and cities in Stocks and Weather can be reordered
  • Apple Bluetooth Headset battery status in the Status Bar
  • Support for TV out
  • Preferences to turn off EDGE/GPRS when roaming internationally
  • New Passcode lock time intervals
  • Adjustable alert volume
1.1.2 - November 12, 2007
  • Battery charge level shown in iTunes
  • International language & keyboard support
  • Patched the TIFF exploit
  • Adds custom ringtone field
  • Fixed Bugs

Specifications

Size comparison between a first generation iPod nano, the iPhone, and a fourth generation iPod, from top to bottom.
Size comparison between a first generation iPod nano, the iPhone, and a fourth generation iPod, from top to bottom.

The specifications as listed on Apple's website are:

  • Screen size: 8.9 cm (3.5 in)
  • Screen resolution: 320×480 pixels at 160 ppi
  • Input method: Multi-touch screen interface (the "Home" button is the iPhone's only physical front panel button)
  • Operating System: OS X
  • Storage: 8 GB flash memory (originally: 4 or 8 GB choice)
  • Quad band GSM (GSM 850, GSM 900, GSM 1800, GSM 1900)
  • Wi-Fi (802.11g), EDGE and Bluetooth 2.0 with EDR
  • 2 megapixel camera
  • Built-in rechargeable, non-removable battery with up to 8 hours of talk, 6 hours of Internet use, 7 hours of video playback, and up to 24 hours of audio playback, lasting over 250 hours on standby.
  • Size: 115×61×11.6 mm (4.5×2.4×0.46 in)
  • Weight: 135 g (4.8 oz)
  • Digital SAR of 0.974 W/kg

An analysis of the iPhone's firmware has revealed that the main Samsung chip (designated S5L8900) contains an ARM 1176 processor, together with a PowerVR MBX 3D graphics co-processor.

Intellectual property

Apple has filed more than 300 patents related to the technology behind the iPhone.

LG Electronics claimed the iPhone's design was copied from the LG Prada. Woo-Young Kwak, head of LG Mobile Handset R&D Center, said at a press conference, “We consider that Apple copied Prada phone after the design was unveiled when it was presented in the iF Design Award and won the prize in September 2006.”

On September 3, 1993, Infogear filed for the U.S. trademark "I PHONE" and on March 20, 1996 applied for the trademark "IPhone". "I Phone" was registered in March 1998, and "IPhone" was registered in 1999. Since then, the I PHONE mark has been abandoned. Infogear's trademarks cover "communications terminals comprising computer hardware and software providing integrated telephone, data communications and personal computer functions" (1993 filing), and "computer hardware and software for providing integrated telephone communication with computerized global information networks" (1996 filing). Infogear released a telephone with an integrated web browser under the name iPhone in 1998. In 2000, Infogear won an infringement claim against the owners of the iphones.com domain name.In June 2000, Cisco Systems acquired Infogear, including the iPhone trademark. On December 18, 2006 they released a range of re-branded Voice over IP (VoIP) sets under the name iPhone.

In October 2002, Apple applied for the "iPhone" trademark in the United Kingdom, Australia, Singapore, and the European Union. A Canadian application followed in October 2004 and a New Zealand application in September 2006. As of October 2006 only the Singapore and Australian applications had been granted. In September 2006, a company called Ocean Telecom Services applied for an "iPhone" trademark in the United States, United Kingdom and Hong Kong, following a filing in Trinidad and Tobago. As the Ocean Telecom trademark applications use exactly the same wording as Apple's New Zealand application, it is assumed that Ocean Telecom is applying on behalf of Apple. The Canadian application was opposed in August 2005 by a Canadian company called Comwave who themselves applied for the trademark three months later. Comwave have been selling VoIP devices called iPhone since 2004.

Shortly after Steve Jobs' January 9, 2007 announcement that Apple would be selling a product called iPhone in June 2007, Cisco issued a statement that it had been negotiating trademark licensing with Apple and expected Apple to agree to the final documents that had been submitted the night before. On January 10, 2007 Cisco announced it had filed a lawsuit against Apple over the infringement of the trademark iPhone, seeking an injunction in federal court to prohibit Apple from using the name. More recently, Cisco claimed that the trademark lawsuit was a "minor skirmish" that was not about money, but about interoperability.

On February 2, 2007, Apple and Cisco announced that they had agreed to temporarily suspend litigation while they hold settlement talks, and subsequently announced on February 20, 2007 that they had reached an agreement. Both companies will be allowed to use the "iPhone" name in exchange for "exploring interoperability" between their security, consumer, and business communications products.

The iPhone's touch interface has been compared by some media to the HTC Touch, which also features a touchscreen designed for fingers, although it can also be used with a stylus and lacks multi-touch. Another product that has been compared to the iPhone is the MyOrigo MyDevice, which was released in 2003, and like the iPhone, featured a touchscreen and accelerometer.


iPhone's missing features:

  1. Third party support. Apple is making the iPhone a walled garden without allowing third party applications to be installed. Apple claims that it's for security reasons but I think that they'll eventually bow to public pressure and release an SDK and allow certain "blessed" applications in. Besides, there's always the "browser hole."
  2. Browser plug-ins/Flash/Javascript. This is still up in the air, but Apple is staying mum on exactly which plug-ins the "Safari" browser will support. I think that dropping Javascript and/or Flash is a deal-breaker.
  3. Carrier choice. Being locked to Cingular with a 2-year contract is a bit of a bummer. What ever happened to it being carrier-free?
  4. Phone and data price plans. This worries me a lot. I hope that Cingular doesn't take advantage of early adopters with crazy-expensive price plans.
  5. Removable battery. This is a huge potential problem in emergency situations and when traveling. The only upside is that all iPod 30-pin dock connector accessories will work.
  6. 3G. Apple and Cingular opted for EDGE networking in iPhone, which isn't 3G. I've gotten spoiled by Verizon's EVDO speeds, so EDGE is a big step backward. My understanding is that they didn't opt for Cingular's faster HSDPA networking because it would have added too much thickness. iPhone 2 anyone?
  7. iChat. One glaring omission in all the iPhone hoopla was iChat. Steve took the time to demo SMS (which looked like iChat) but where was Apple's venerable chat client?
  8. Front facing camera. Although I don't really care about the 2MP camera on the back of the camera, I was disappointing that there wasn't a camera on the front. It would be perfect for video chatting (see #7), which although limited by the iPhone's lack of 3G (see #6), would work great over WiFi.
  9. Calendar Data input. Just like on the iPod, the calendar is read-only and must be synced from a Mac. iPhone has a keyboard, why doesn't Apple make the calendar accept input? Update: In his NYT blog David Pogue notes: "Calendar program isn’t finished yet, but I did see an "add new event" icon on the placeholder graphic." It appears that Apple is moving toward allowing real data entry into the iPhone (at least in the calendar app.) Let's hope that they do the same thing for both Address Book and iTunes.
  10. Over The Air (OTA) downloads from the iTunes Store. It stands to reason that Apple would want to sell music over the air (why wouldn't they?) but I've heard that it's a contractual limitation. Apple has to amend their agreements with all of the labels to allows for OTA distribution.
  11. Wireless syncing. iPhone can only be synced with a cable and can't be synced via WiFi or Bluetooth. This is unacceptable. iPhone has three radios and should be able to be synced with all three. WiFi and BT minimally, then OTA to Dot-Mac for bonus points.
  12. Office support. The early word is that iPhone won't be able to open Word and Excel documents (although it will be able to open PDF). I hope that this will change and by launch and iPhone will support iWork '07 mobile, which in turn, will open Word and Excel files.
  13. Microsoft Exchange support. This is not a big deal for me, but it will be for enterprise customers. Without it, Apple can't hope to unseat the cult of BlackBerry.


Thursday, December 27, 2007

Howto install Firefox 3 Beta 2 in Ubuntu 7.10

Firefox 3 Beta 2 is a developer preview release of Mozilla’s next generation Firefox browser and is being made available for testing purposes only.

These beta releases are targeted to Web developers and our testing community to gain feedback before advancing to the next stage in the release process. The final version of Firefox 3 will be released when we qualify the product as fully ready for our users.

Firefox 3 Features

Firefox 3 is based on the new Gecko 1.9 Web rendering platform, which has been under development for the past 28 months and includes nearly 2 million lines of code changes, fixing more than 11,000 issues. Gecko 1.9 includes some major re-architecting for performance, stability, correctness, and code simplification and sustainability. Firefox 3 has been built on top of this new platform resulting in a more secure, easier to use, more personal product with a lot under the hood to offer website and Firefox add-on developers.

More Features check here

Installing Firefox3.0 beta2 in ubuntu

Preparing your system

sudo apt-get install libstdc++5

Now you need to take backup of your old firefox prferences

sudo cp -R ~/.mozilla ~/.mozillabackup

Now you need to download firefox 3.0b2 from here

Now you have firefox-3.0b2.tar.bz2 file

Unzip the .tar.bz2 file in /opt directory using the following command

sudo tar -C /opt -jxvf firefox-3.0b2.tar.bz2

Now you need to link the plugins using the following command

cd /opt/firefox/plugins/

sudo ln -s /usr/lib/mozilla-firefox/plugins/* .

Now you need to create a link to your new firefox launcher using the following command

sudo dpkg-divert --divert /usr/bin/firefox.ubuntu --rename /usr/bin/firefox

sudo ln -s /opt/firefox/firefox /usr/bin/firefox

sudo dpkg-divert --divert /usr/bin/mozilla-firefox.ubuntu --rename /usr/bin/mozilla-firefox

sudo ln -s /opt/firefox/firefox /usr/bin/mozilla-firefox

Installation of firefox 3.0b2 is completed.

Thursday, November 22, 2007

Memory test - Firefox 2.0.0.9 vs Firefox 3.0 b 1

Does Firefox 3.0 beta 1 do a better job of handling memory than earlier versions? In a test put Firefox 3.0 beta up against Firefox 2.0.0.9 in a series of tests.

Before I go any further, a few disclaimers and notes. First off, I’ve carried out this test on a single system running Windows Vista Home Premium on which Firefox had not been previously installed. The system has 2GB of RAM. Both Firefox 2.0.0.9 and Firefox 3.0 b 1 were installed fresh using a standard install. For each test I visited the same web pages and did my best to make the browsing the same on both versions.

OK, with that out of the way, on with the tests. I simulated three different browsing scenarios:

  • Loading a five pages into the browser
  • Loading a single page and leaving the browser for 10 minutes
  • Loading 12 pages into the browser and wait 5 minutes

Here are the results:

Firefox 2.0.0.9

  • The memory test - Firefox 2.0.0.9 vs Firefox 3.0 b 1Loading a five pages into the browser - 35,640KB (img)
  • Loading a single page and leaving the browser for 10 minutes - 47,852KB (img)
  • Loading 12 pages into the browser and wait 5 minutes - 103,180KB (img)

Firefox 3.0 b 1

  • Loading a five pages into the browser - 38,644KB (img)
  • Loading a single page and leaving the browser for 10 minutes - 63,764KB (img)
  • Loading 12 pages into the browser and wait 5 minutes - 62,312KB (img)

Check out the complete screenshot gallery.

Just to give us a baseline, I repeated the 12 page test using Internet Explorer 7 and found that the browser used 89,756KB (img), more than Firefox 3.0 beta 1 but substantially less than Firefox 2.0.0.9.

This is interesting. Initially it seemed that Firefox 3.0 beta 1 was consuming more memory than 2.0.0.9, but during the twelve page test I started seeing what I’ve been seeing before - spiraling memory consumption when the browser is under significant load. I’m certain that if the browser had been left open longer, memory usage would have continued to rise. I didn’t see much signs of Firefox 3.0 beta 1 doing this. Certainly based on this test and from using Firefox 3.0 beta 1 today, I do think that things have significantly improved.

Anyone else taken Firefox 3.0 beta 1 for a spin? Any thoughts, feelings or observations?

Sunday, November 4, 2007

Firefox 2.0 and various plugins on Debian Etch

Howto: Install Firefox 2.0 and various plugins on Debian Etch

I don't know if anyone is interested, but I found that Debian Etch comes with Firefox 1.5 rather that Firefox 2.0. There has been some talk about Firefox 2.0 rendering pages faster and generally working better than Firefox 1.5. It took me some time to figure out everything needed to get Firefox 2.0 and various plugins installed and running. Here's how I did it.

Bookmark this page

We are going to need some additional repositories other than the basic ones used by a fresh Debian Etch Install. Start your Root Terminal and give roots password. Gnome users click Applications - Accessories - "Root Terminal". You should now have a nice pretty white window that says Terminal at the top.

I found a very easy to use editor for novices, it has a complete menu of all available options. To install this editor type:

Code:
debian:/# apt-get install ee
now we are going to edit our sources.list

Code:
debian:/# ee /etc/apt/sources.list
The important parts are in bold:

Quote:
#
deb http://ftp.us.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.us.debian.org/debian/ etch main contrib non-free

#
# Debian Multimedia Repositories
#

deb http://www.debian-multimedia.org etch main
Now update apt

Code:
debian:/# apt-get update
Now that our sources.list has the required repos lets start with Firefox 2.0.

Firefox 2.0 depends on libstdc++5

Code:
debian:/# apt-get install libstdc++5

Firefox 2.0 may be available from the debian unstable repo as Iceweasel. However, I elected to go with the official Firefox 2.0. I am in the US and speak English so I use the en-US version of Firefox. Other versions can be found at ftp://ftp.mozilla.org/pub/mozilla.or....0/linux-i686/ pick your locale and substitute into the following code:

Code:
debian:/# cd /tmp
debian:/# wget ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/2.0/linux-i686/en-US/firefox-2.0.tar.gz
Now we need to unpack the archive:

Code:
debian:/# cd /opt
debian:/# tar -zxvf /tmp/firefox-2.0.tar.gz
I have seen some warnings that some Firefox 1.5 plugins (namely totem) are supposed to mess with Firefox 2.0. I have not found this to be the case. I have found that some plugins in the Firefox 1.5 directory are simlinks that break if you just copy the files over to the 2.0 directory. Aside from that, dpkg will still install your plugins to the old 1.5 directory. So let's recycle all those plugins from the previous Firefox 1.5 install. We are going to create a symbolic link from the installed Firefox 1.5 plugins directory to our new Firefox 2.0 plugins directory.

Code:
debian:/# cd /opt/firefox
debian:/# rm -R plugins
debian:/# ln -s /usr/lib/firefox/plugins /opt/firefox
Now we need to tell debian where to find the new Firefox 2.0

Code:
debian:/# ln -sf /opt/firefox/firefox /usr/bin/firefox
debian:/# ln -sf /opt/firefox/firefox /usr/bin/mozilla-firefox
debian:/# ln -sf /opt/firefox/firefox /usr/bin/mozilla
That is all there is to installing Firefox 2.0. You should now be able to click on your Firefox panel icon and find that firefox 2.0 is up and running.

Now let's install some standard plugins.

Sun's Java

Type the following command to install Java from debians contrib repo. You will be asked to accept Sun's license agreement.
Code:
debian:/# apt-get install sun-java5-jre sun-java5-fonts sun-java5-plugin
According to Sun's website (https://jdk-distros.dev.java.net/debian.html) "...you may need to choose the Sun JRE as the default with:"

Code:
debian:/# update-java-alternatives --set java-1.5.0-sun
After the install is done, you will need to restart Firefox and test the plugin here -> http://java.com/en/download/installed.jsp

When I tested mine the plugin didn't work so I created a link from Sun's Java plugin to Firefox's plugin dir.

Code:
debian:/# ln -s /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox/plugins/libjavaplugin_oji.so
Now restart Firefox and retest here -> http://java.com/en/download/installed.jsp

Adobe's Flash Player 9

Now lets install Flash player 9. This install has been made painless by a package thats available in either the contrib or non-free repos.

Code:
debian:/# apt-get install flashplugin-nonfree
Restart Firefox and test Flash here -> http://www.adobe.com/go/tn_15507 You should see a version number in the 9,0,21,78 range.

Adobe Acrobat Reader

There is an official Adobe Acrobat plugin for firefox in either the Debian contrib or non-free repos. You can install it using:

Code:
debian:/# apt-get install acroread acroread-escript acroread-plugins mozilla-acroread
Restart your browser and test the plugin here -> http://www.opa.ca.gov/help/pdf/testpage.pdf

Mplayer and mp3 stuff

If your like me, you get tired of going to sites and finding out that you can't view or listen to some video or music file because they used a format thats not open source. Debian-multimedia.org has fixed this for us. If you followed this howto exactly the repository is already setup. Simply do the following:

Code:
debian:/# apt-get install mplayer mplayer-skin-blue mozilla-mplayer w32codecs mplayer-doc
Restart Firefox and test the plugin with your favorite multimedia site. If you want to see every plugin you now have available to you then type
Code:
about:plugin
in the Firefox url bar.

Optional Firefox Configuration

I don't like having to manually select urls in the url bar to navigate to a different site. I also like having the tab bar up all the time. I don't like the bookmarks bar up all the time. And all those security warnings talking about entering and leaving encrypted pages really don't make any sense to me. Also, by default Firefox doesn't use http.pipelining. pipelining allows the browser to use more available bandwidth to download pages quicker. If you agree with all of the above then you can fix it by following all of the following instructions:

Bookmarks toolbar

Click View - Toolbars - "Bookmarks Toolbar"

Tab bar

Click Edit - Preferences - Tabs - "Always show the tab bar"

DOM Inspector

I don't know what it does, except slow down Firefox. But there is an addon running by default called DOM Inspector. The Description says that it "Inspects the structure and properties of a window and its contents." You can turn it off by clicking Tools - "Add-ons" under the heading "DOM Inspector" click Disable. Voila, Firefox is now a lot faster (at least on my old eMachine).

Urlbar, pipelining, security warnings

Now we are going to get into the actual Firefox Configuration. In the Firefox url bar type about:config

urlbar

In the Filter bar type urlbar. The second item listed should be browser.urlbar.clickSelectsAll. Under the Value column right click on false then click toggle. The value field should now say true.

pipelining

In the Filter bar type pipelining. The first line will say network.http.pipelining right click on false and click toggle. Now the third line will say network.http.proxy.pipelining right click on false and click toggle.

security warnings
In the Filter bar type security.ui. The only option is security.ui.enable. Right click on true and click toggle.

Restart Firefox for all the new settings to take effect. Now you are rid of all the annoying things that cause people to not use firefox. Hopefully you will get as much enjoyment from all the new features and plugins as I do. Enjoy using Firefox 2.0.

Saturday, October 27, 2007

Emacs is the text editor with everything

Getting Started with Emacs

Emacs is the text editor with everything. Learn the basics—maybe you'll even want to keep your calendar on it.

This article is a whirlwind introduction to Emacs that assumes you have Emacs installed and running (easy enough on most Linux distributions). It also assumes that you have used Emacs' built-in tutorial. Program development in Emacs is not the topic, as that was covered in my June 2002 LJ article “Emacs: the Free Software IDE” [available at www.linuxjournal.com/article/5765].

To launch Emacs from an xterm, enter emacs &. The ampersand puts Emacs into the background. As X provides the display for Emacs, this setup is fine.

You also can run Emacs in a console by entering emacs without the ampersand. To run Emacs in an xterm without opening a new window, launch it with emacs -nw. These console and xterm modes are great for situations where you don't have X, such as an SSH connection to a remote server. But if you have SSH set up to forward X, you can run Emacs (and other X applications) remotely.

If you haven't taken the Emacs tutorial, now is the time to do it. Pressing Ctrl-H then T gets you to it. The tutorial is ancient as computers go (1985), so it ignores cursor keys and other modern conveniences. Emacs supports these features but the tutorial doesn't take them into account. It's a good idea to be aware of, if not learn, some of the Emacs keystrokes, though. You can set bash and many other GNU programs to use them. So, for example, Ctrl-B and Ctrl-N can do exactly the same things in Emacs as they do in bash. In fact, Emacs-style key bindings are the default in bash.

The tutorial should teach you basic cursor movement, how to abort an Emacs command, Emacs windowing, the relationship between buffers and files and so on. Probably the most important thing to remember from the tutorial is the movement keys are usually a given key (F for forward) with different modifiers for different ranges. For example, Ctrl-F moves one character forward, and M-F moves a word forward (M- is Emacs notation for Meta, which on most keyboards means the Alt key).

Emacs existed long before web browsers, so it uses the term frame for what X calls a window, and window for a section within a frame. As this is an Emacs article, this article uses Emacs terminology. To display a new window with a horizontal split, use Ctrl-X 2. For a new window with a vertical split, use Ctrl-X 3. Whereas Ctrl-X 5 1 gives you a whole new frame to play in, Ctrl-X 0 and Ctrl-X 5 0 kill off the current window and frame, respectively.

Another highlight of the tutorial is an introduction to Emacs' incremental search commands. They make life much easier, so learn and remember them.

Ctrl-H is the gateway to Emacs' help system. Pressing Ctrl-H ? gives you a menu for different parts of the help system. The Info system (Ctrl-H I) gives you access to FSF documentation in FSF's Info format. A form of hypertext that predates the World Wide Web, it is arranged in a tree structure. You also can go to an Info node for an Emacs function with Ctrl-H Ctrl-F. This section provides information on the current major and minor modes (more on those in a moment), the warranty and license under which Emacs is provided and other information. Because Emacs' help system is displayed by Emacs, the cursor movement keystrokes you learned in the tutorial apply to the help system.

Getting in the Mode

According to the top Emacs info page, Emacs is the extensible, customizable, self-documenting, real-time display editor. It is extensible because it is written in Emacs Lisp, or elisp, a dialect of Lisp especially customized for Emacs and text processing. You therefore can extend Emacs by writing code in elisp. Furthermore, you can customize it by changing the values of existing elisp variables. Self-documenting might be a slight exaggeration, but elisp does encourage programmers to document. And as we've seen, there is extensive help available.

Users also can customize Emacs by adapting it to specific applications. Do this by switching to what is called a major mode. Only one major mode can be active in a buffer at a time, but you can switch major modes on the fly. For example, when writing CGI scripts it is useful to toggle between Perl mode and HTML Helper mode.

To identify the current modes active in a buffer, see the mode line. In parentheses you will find one or more modes, with the current major mode listed first. Not all minor modes identify themselves in the mode parentheses, but their action is obvious, such as Column Number mode.

Major Modes

Major modes are generally associated with file extensions. A Lisp variable, auto-mode-alist, does this association, and we'll show you how to add to it. Emacs also recognizes associations with shebang entries in the first line of scripts, like this one for Perl:

#! /usr/bin/perl

And you can always force the mode in the first line of a document by surrounding it with -*-, like this:

# -*- shell-script -*-
To switch manually from one major mode to another, use M-X mode-name. For example, M-X perl-mode puts Emacs into the major mode for editing Perl.

Major modes provide a number of useful facilities. They usually provide custom indentation and pretty printing options suitable to the subject at hand. There is often some way to insert a comment with a short key sequence. A region of text can be commented out with M-X comment-region. One advantage of using Emacs for all your editing is the functions (and their keystrokes and menu entries) available in one major mode tend to be available in another, so if you know how to edit C in Emacs, you probably can edit SQL in Emacs as well (Figure 1).

Figure 1. C mode in Emacs, showing font locking (color syntax highlighting). The indenting is courtesy of C mode.

Major modes typically provide what Emacs calls font locking, a feature everyone else calls syntax coloring. It automatically associates syntax with colors. For example, comments show up in red, data types in green and strings in a light red. Another advantage of editing with Emacs is that color associations operate across modes, so comments are red regardless of whether you are working in assembler or XML.

Major modes redefine how keystrokes operate, usually the Tab and Delete keys. Also, major modes have mode-specific commands accessed with the prefix Ctrl-C. For example, to validate an SGML document in PSGML mode, use Ctrl-C Ctrl-V.

One of the most powerful major modes around is Lennart Staflin's PSGML mode (see Resources). It facilitates inserting SGML or XML tags and provides automatic pretty printing comparable to C mode. PSGML mode has font locking and other goodies, but it also reads the DTD and uses it to enforce proper tag nesting. For example, in DocBook, it won't let you insert a directly into a . It also is a front end for a validator (Figure 2).

Figure 2. Editing a Linux Documentation Project document in the DocBook SGML DTD in Emacs. The font locking highlights tags and entities for you.

Other major modes that almost anyone will find useful are Dired mode, Ediff mode, W3 and the calendar and diary. Dired mode is for editing directories. You can navigate from directory to directory, visit files and edit file metadata, such as permissions and ownership. One of the more powerful features of Dired mode is the ability to grep a number of files and have Dired mark the hits. You can then visit each hit in sequence and edit it. This allows you to manipulate files en masse, including renaming them or deleting them.

One mode that has proven to be quite useful is the calendar/diary. Not just any calendar tool, Calendar mode allows you to do date manipulations in and conversions between Gregorian and Julian, Copt, Hebrew and Islamic calendars. And, for something completely different, date your next intra-office memo in the Persian or Mayan calendar. Or, send your next bug report to the Free Software Foundation in the French Revolutionary Calendar (Figure 3).

Figure 3. Emacs' Calendar and Diary

Somewhat more useful than obscure calendars is the diary. With the diary, you can set appointments, anniversary reminders, cyclical events (such as “every third Thursday of the month”) and other types of events. If you specify the event time, Emacs will remind you as the time approaches. Not only is this diary system useful, but it runs in Emacs, so it runs on any computer on which Emacs runs—and that's most of them. The diary file is portable as well.

Ediff mode is useful for selectively applying patches. You also can use it to update files on several computers, such as my .emacs and diary files. Because it is selective, ediff lets you propagate changes in both directions. This can be important if you set appointments on your laptop and your secretary sets them on your desktop (Figures 4 and 5).

Figure 4. Diffing two files. Emacs shows not only which lines are changed, but what the changes are.

Figure 5. The control window for Ediff mode.

If browsing the World Wide Web is your thing, take a close look at William M. Perry's W3 mode. It is a web browser written in Emacs Lisp.

Minor Modes

Add-ons, called minor modes, supplement major modes. Most minor modes operate regardless of the major mode, so they can operate in different documents. For example, Show Paren mode matches parentheses for you. It is useful for the C programmer even in Text mode, and it's a godsend to the Lisp programmer.

Minor modes can be turned on and off as you wish. For example, when programming, Auto Fill mode (for filling, or line wrapping, paragraphs) is useful in comments, but a nuisance outside of them.

Some minor modes are global; they extend across all buffers when they are active. Others are local to a buffer. To activate a given mode, append -mode to its name and execute that command. So to activate Parentheses mode, press M-X then type show-paren-mode. To deactivate it, run the command again.

Several useful buffer-local minor modes are Abbrev mode (autocorrection on the fly), Auto Save mode, Font-Lock mode (color highlighting), Flyspell mode (spell checking on the fly) and Overwrite mode. Two useful minor modes that apply to all buffers are Line Number mode and Column Number mode. These print the current position of point in the mode line, usually over to the right.

Another useful mode is Ispell, which lets you spell check your buffer. It has special submodes for checking e-mail messages, programming language comments and strings, and other special uses.

Your .emacs File

Key to customizing Emacs is the initialization file, ~/.emacs. Administrators usually provide a global init file. If you don't like it you can tell Emacs to ignore it in your own init file. And, you can start Emacs with no init file with emacs -q, useful for debugging. The init file is nothing but some elisp used to set up Emacs the way you (or your administrator) like it (Figure 6).

Figure 6. Editing the author's .emacs, an example of Emacs Lisp, in Emacs.

You also can set variables in the init file. I customize HTML Helper mode by setting some mode variables:

(setq html-helper-do-write-file-hooks t)
(setq html-helper-build-new-buffer t)
(setq html-helper-address-string "Charles
Curley
")

Short useful functions, or macros, also go into .emacs. For example, the following function inserts today's date at point:

(defun insert-date ()
"Insert the current date according to the variable
\"insert-date-format\"."
(interactive "*")
(insert (format-time-string insert-date-format
(current-time))))
Keystrokes and key sequences also can be bound to functions. This allows you to use the key sequence to activate the function. For example, having written the function insert-date, I can bind it to the F3 function key with this line:
(global-set-key [f3] 'insert-date)
You also can use this capability to remap your keyboard. If you don't like some of the long key sequences in Emacs, you can rebind them.

The other way to customize Emacs is with the Customize menu, accessed with M-X customize or from the Options pull-down menu. This extensive menu system allows users to change variables and store the changes in your init file.

Emacs as a Server

A number of programs, such as crontab and mutt, invoke an external program as their editor. To let them run Emacs, set Emacs up to run as a server by putting this line into your .emacs file:

(server-start)

Next, set the environment variable EDITOR or VISUAL to emacsclient. In Bash, add this to your /etc/bashrc or your ~/x.bash_profile:

export VISUAL=emacsclient
Now, when you execute crontab -e or edit a message in mutt, you edit in your existing Emacs session instead of waiting for a new Emacs to start up. To finish editing and make emacslient exit, end your session in that buffer with Ctrl-C # instead of Ctrl-X K.

For emacsclient to work, Emacs must be running when the external program invokes it. This is consistent with the preferred way of using Emacs, which is to start Emacs when you log in and leave it running until you log out. One result of using emacsclient is you only have one instance of Emacs running at any one time. While memory is cheap today, it wasn't always so. And even today, if you want to run Linux on your laptop or elderly computers, conserving memory is always a good idea.

You might want to have Emacs edit your mail in Mail mode. If you use mutt, add this to your .emacs file:

;; Automatically go into mail-mode if
filename starts with /tmp/mutt
(setq auto-mode-alist (append (list (cons
"^\/tmp\/mutt" 'mail-mode))
auto-mode-alist))

Of course, to comply with the RFCs on netiquette, you will want Auto Fill mode active when you edit mail. Most major modes have a hook they execute on entering the mode and another they execute on leaving. Here is how to get Mail mode to invoke Auto Fill mode:

(defun my-mail-mode-hook ()
(auto-fill-mode 1)
)
(add-hook 'mail-mode-hook 'my-mail-mode-hook)
When you are done writing your e-mail, if you want to annoy the NSA, use Spook. To protest the Communications Decency Act (a decent thing to do) and annoy a lot of American politicians, see Bruce.

Finally, before we take our leave of this wild and woolly editor, let me bring the etc directory (in the Emacs directory tree) to your attention. It contains a number of useful documents, such as an Emacs English language reference card, in source (refcard.tex) and postscript (refcard.ps) form. Translations of the reference card into other languages are available. There is also some background material on Emacs and the GNU Project and a copy of the GPL.

Something you rarely find in proprietary software (at least, not deliberately) is present in Emacs: humor. Check out the bug report from the year 2199, the word list for Spook mode, some explanations of what Emacs stands for and more. And if you really want to exercise your font server, visit the file “HELLO”.