Showing posts with label phone. Show all posts
Showing posts with label phone. Show all posts

Saturday, July 4, 2020

OnePlus 8 Pro and Software Restrictions

Introduction

OnePlus released its new phone: OnePlus 8 Pro, and the 4 cameras on the phone are quite superb. One of the cameras is capable of doing Photochromic picture filters.

A rumor spread out that this filter allows to see inside plastic devices, and maybe under clothes. You can see a video here showing the feature. It seems like the Chinese government took an extreme approach to this rumor, though it's false, and asked OnePlus to block the feature on the phones.

TL;DR Summary

The Chinese model variant IN2020 has some features locked based on the hardware model. Do not buy the IN2020. Changing the software won't help.

Details

Even if you buy the variant that has the international firmware/operating system (OS), the feature is checked against the hardware model, so it will not work.

If you do not care about the Photochromic picture filter, then this will not be an issue for you. There's no telling if other feature would be blocked in the future, if asked by the Chinese government, on the Chinese variant IN2020.

Other OnePlus 8 Pro variants: IN2021 (India), IN2023 (Europe), IN2025 (Global). These variants are not affected by the feature lock on the camera.

Also, the IN2020 Chinese variant comes in 2 flavors: either with OxygenOS (global OS) or HydrogenOS (China OS only).

You can grab any OS build and flash it on the phone. Check this guide [Repo of Oxygen OS Builds]. Remember, flashing a different OS will NOT remove the feature restrictions on the China variant. It's locked by checking the hardware model, which cannot be modified. You might need this guide [Unbrick tool to restore your device to OxygenOS] to unbrick your phone, if you did something wrong.

Where to Buy

I have sold back the Chinese variant that I bought, and instead ordered the EU variant (IN2023) from Amazon Germany as they offer global shipping and delivered directly to my house.

Thursday, October 13, 2011

Mobile Apps Development Discussion Panel

Ahmad Al-Ibrahim, co-founder of Koutbo6.com, is moderating a discussion panel about Mobile Apps Development which is hosted by KITS (map) on Tuesday Oct 18 7:30PM-9:30PM (calendar event).

The event's guests/speakers are:
  • Abdullah Al-Khulaifi
  • Abdulrahman Al-Zanki
  • Hussain Al-Bustan
  • Fahad Al-Mudhayan
  • Mohammad Al-Meer
This is a public event and everyone is free to come & invite others, too!

Questions for the speakers can be asked from now and the moderator (Ahmad) and the audience will vote on which questions to be asked: http://goo.gl/fcSgG

Saturday, December 5, 2009

HTC Hero Review


Introduction


I have received my new phone: HTC Hero. The phone's operating system is Android. My previous phones were all Nokia Communicators (9110i, 9250, 9500), so I expect my phone to provide me with control and easy methods of text input for messaging and communication.

While people typically look for a cute interface, I look for functionality. Lots of it. The Hero has amazed me by having both. During this post, I'll go through about my findings, but I won't be able to provide pictures of the interface itself. There're however tons of video reviews out there and screenshots for the eye-candy hungry.

Below are my findings and notes regarding my experience thus far (4 days).

Note: You can view a clean/plain version of this post here.

Table of Contents


Specification

Hardware

HTC's page lists most of the things but not all.
  • Processor: Qualcomm® MSM7200A™ @ 528 MHz
  • Operating System ROM: 512 MB
  • RAM: 288 MB
  • Display: 3.2-inch TFT-LCD touch-sensitive screen with 320x480 HVGA resolution
  • Quad band with HSDPA support up to 7.2 Mbps
  • Connectivity: Bluetooth, Wifi (b/g), mini-USB, standard 3.5mm audio jack.
  • Camera: 5 MP with auto-focus
  • Audio formats: MP3, AAC(AAC, AAC+, AAC-LC), AMR-NB, WAV, MIDI and Windows Media® Audio 9
  • Video formats: MPEG-4, H.263, H.264 and Windows Media® Video 9
  • Battery capacity: 1350 mAh
  • Expansion slot: micro-SD (2.0 compatible)
  • Extras:
    • GPS with internal antenna
    • G-sensor
    • Digital compass
  • Other:
    • Internal phone capacity: 160 MB
    • No flash for camera

Operating System

  • Firmware version: 1.5
  • Baseband version: 63.18.55.06EU_6.35.06.18
  • Kernel version: 2.6.27-8dd6deee
  • Build number: 2.73.421.5
  • Software version: 1.0.0.A6288

Package Contents

The packaging of the phone is great and delicate, as if they're delivering an ancient wine bottle to you!
  • Phone: covered with a temporary protective sheet. The battery is also covered & must be uncovered to use the phone.
  • Earphones with soft cover cloths. Left & right earphone cables are equal in length & have Play/Pause, Back & Next controls.
  • Earphone cable holder (tiny) that snaps on the cable and holds to clothes.
  • 2GB Micro-SD card.
  • USB data cable: Standard to mini-USB.

  • AC adapter: 100-240 volts universal adpater. Has 2 circular pins and provides USB port to plug cable into then to the phone. The adapter is modular so you can remove the 2-pin head and plug a different head (only 2-pin is included).

  • Warranty, Accessory and Quick Startup guides included. Make sure you read the quick startup guide!
No pouch included.

AC adapter extra info: Input: 100-240 volts/0.2 Amps 50-60 Hz. Output: 5 volts/1 Amp.

According to the quick start guide, the phone charges fully within 3 hours. And it did!

Physical Look and Feel

  1. The phone is very tiny. It's smaller than the palm of my hand.

  2. The coating of the back-cover is neat and feels like rubber, not some cheap plastic.

  3. The touchscreen is not a fingerprint magnet. It looked better than an iPhone's screen. (Haven't seen an iPhone 3GS to compare against)

  4. Buttons: Top: Call, Home, Menu, Hangup/Power. Bottom: Search, Back.

  5. Trackball.

  6. The touchscreen looks great. I mean amazing! Even when there's sunlight.

  7. The earbuds are lite. I forgot that I had them on after half an hour and didn't even feel them.


Migrating Contacts

This is everyone's major hassle whenever moving to a new phone. I never had an issue since I moved from one Nokia Communicator to another, but since I got sick of their crappy software and each new generation gets a worse user interface than the previous, I jumped to Android.

I had taken a full backup of my phone using Nokia PC Suit and synced my contacts to Outlook Express. Both Nokia PC Suit and Outlook Express have the option to export your contacts, but both suck really bad because they export only ONE landline and ONE mobile phone number per contact.

Exporting to a Comma Separated Value (CSV) file, writes columns according to what Nokia or Microsoft wants, not according to what you have already defined inside the contacts. The fields are fixed by Nokia & Microsoft, so if you have extra fields, sorry, can't have them.

From 11 PM till 9:30 AM the next day, I was looking for a painless way to move all of my contacts, and I finally found it. Using a free program called NBU Explorer, I exported all the contacts from a full backup to vCard files: Each contact in its own vCard file. (vCard is also known as vcf). I then ran one command line in the shell which combined all these contacts in one file, then I uploaded that one vCard file to a GMail account to sync with the phone.
  • Linux: cat ./* > ../contacts_all.vcf
  • Windows: Start -> Run -> cmd -> cd C:\path\to\contacts\directory, then type:
    copy /B *.vcf contacts_all.vcf
When you first run your phone, it will ask you to sign in using a Google ID (or a Google App ID) and it will sync the contacts to your phone from that account. This is great because if I format the phone, or get a new phone, it will sync the contacts from my GMail account. I'm no longer dependent on a computer.

You could also sync the contacts to your computer in addition to your gmail account.

WARNING: HTC Sync tool only works on 32-bit Windows.

If you don't want to create a temporary Google ID (which you can't selectively delete -- it has to expire by itself after 9 months or so), I'm willing to create you a temporary ID to sync your contacts to, then to your phone, then to your computer. After you're done migrating, I'll delete your account from my domain. Email me if you'd like that.

First Run Problems

When you turn on the phone for the first time, you'll be asked to sign in to a Google ID, and if you don't have one, create one.

I did the mistake of signing in with my personal GMail account. It synced 605 email addresses, none of which had phone numbers, to the phone. I deleted the first 6, only to realize that they were also deleted from my GMail account!

Since I run Google Apps on my own domain name, I created a new username and imported the contacts to it. Then I had to factory-reset the phone to be able to use the new ID. There's no option to change the phone's main ID. A factory-reset is the only way out.

To change your Google ID on the phone, Go to Settings > Applications > Manage, then look for all Google's programs (Gmail, Google Apps, Maps, ...etc.), open each and clear the data. When you're done, open the gmail application from programs menu and it will take you to the sign-in wizard.

After you login to your Google account, go to Phone > People > Groups, then Menu and choose Sync Groups. You can specify which groups to synchronize to your phone.
You can also import all your contacts to a specific group using the web interface.

Boot up and Shutdown

Shutdowns in 2 seconds. Startup takes 1:04 minute.

I had to shutdown twice due to some programs that I downloaded and froze the phone. Watch out from incompatible programs!

Adapting to the Touchscreen

I never had a touchscreen before and feared that my typing would be hindered by it by not having a physical keyboard, but I was mistaken. Using the phone in portrait mode was easy enough, but using in landscape was freakin' amazing! I was typing quite fast on it, and you don't need to fear typing mistakes in either mode because auto-correction and word-suggestion are there for the rescue.

It took me about 2 hours only to fully adapt to the touchscreen. There's a calibration option in the phone, too.

WiFi and WEP Problems

I have an Access Point (AP) at home configured with WEP security, using a nonstandard Encryption Key Index. You have 4 index keys, and #1 is the default. I was using something else, and couldn't connect to the AP because of that. There was no option to select the key index manually.

I haven't tried 3rd party applications from the application market. I instead configured another AP with WPA-mixed and connected just fine. I'll be configuring that first AP to WPA anyway, so it's not a big deal.

I did search online about this problem and turns out I wasn't the only one suffering but didn't find a quick solution and it wasn't worth all that trouble anyway. WEP can be cracked in less than 15 minutes, so yet another reason to ditch it.

User Interface

The user interface (UI) is custom made by HTC, and provides many custom widgets which aren't available by default to Android. There are similar widgets, like the Clock Widget, but Sense UI offers a large collection of clocks to choose from.

Apart from looking good, it makes accessing functions quite easy and integrates various services into a single place. To sum it up: Sense UI improves the usability of the various options in the phone.

With all this glory, people have been complaining that it consumes a lot of memory from the phone. I wasn't able to find out how much exactly it was consuming, but the total free RAM available after a fresh boot is 100 MB, with all system services running (default apps).

With just 100 MB of free RAM, applications are still very fast to launch, and the whole system is quick to switch between tasks.

The features I'll go through in the UI in later sections may or may not be exclusive to Sense UI. I have no definite way to tell them apart.
  • One feature that seamed to wow the Apple crowd is the unlocking and password protection: You drag a bar to the bottom and then for a password, you draw a pattern on the screen. (My reaction was: Oh cute. Their reaction was: ZOMG! I LOVE IT!)
  • The weather & world clock default widgets were quite useful. World Clock allows you to add other countries/cities which is handy since I deal with companies in UAE & USA. The weather widget allows you to add other countries/cities too.
  • SMS messages are consolidated; messages between you and a person are stacked up together and are viewed as a single entry in the general view, rather than list each message separately (and having to scroll endlessly!)
  • When adding icons to a screen that is full, it asks you to drag the icon to another screen with free space, rather than just show an error. But if you'd like to switch the location of 2 icons (same screen or otherwise), there's no swap option; you'd have to delete one, move the other & re-add the first.
  • When typing an email, the keyboard includes a ".com" button to avoid the hassle of typing those common last 4 chars.
  • Links and numbers are auto detected in SMS messages. Clicking them would bring up the proper dialog to add/call/message/browse.
  • When inside some program and an SMS is received, it's displayed in the taskbar at the top. First it shows the sender's name, then shows lines of the message itself. Convenient since you know who & what was sent and if not important, you don't have to exit/switch from your program.
  • Character count while typing an SMS only shows when exceeding one message size (140 chars for Latin chars).
  • No confirmation is shown (and no option for it) when sending a multi part SMS. I like the challenge of squeezing whatever I need in the least amount possible ;)
  • When viewing contact groups you can send a group SMS or email with a click.

Multimedia

This section covers music, flash, youtube and pictures, each separately.

Music and Audio

I installed a file-manager application and used it to open an mp3 file. When I switched to another screen, audio stopped playing. When I launched the same audio file with the music player application, then switched to another screen, it continued to play and showed the status "playing" as an icon in the taskbar at the top.

You can create playlists and add your audio files to it. Even when the phone is locked, you can still play/control the playlist using the controls on the earphones' cable!

The phone's speaker is a mono speaker but it sounds really great! Multimedia files play just fine and the volume is good, but the ringer volume is a bit low even when you max it. You could work around this by increasing the volume with a sound editing program on your ring tone file. (Personally, I find the ringer's volume just fine. That was a friend's complaint).

Flash

I browsed youtube and other websites that have flash contents and was able to play videos and flash content without issues.

If you're browsing youtube, you're better off using the youtube application rather than the normal browser since the video quality in that application is far superior.

While playing videos using flash over a browser, the screen locked. An inconvenience if you watch flash-videos over the web, but can circumvented by disabling screen auto-lock & sleep.

Youtube

I played full high definition videos from youtube at 1080p of The Dark Knight and Transformers. Both played without stuttering (after pausing to let it buffer).

The video quality on the youtube application was amazing! Videos looked a bit fuzzy on the flash player of the web browser.

Videos play in HD format by default on HTC Hero. You have to press Menu button then select normal mode if you wish so.

Pictures

I went for one of my usual early morning walks on the beach and ceased the opportunity to try various features in the phone: The camera, GPS and media sharing.

I snapped this picture on sunrise and you can see the timestamp (optional) and on the right side a map showing the location of the image. The GPS takes some time to get the coordinates at first.

The camera application has simple zoom functionality and auto-focus on the area you want by tapping on the screen at the object you wish to be focused at.

When I got home, I connected to my wifi AP and opened the albums application, viewed the pictures, and then clicked the share button. It showed the option to share over these services:
  • Facebook
  • Flickr
  • GMail
  • HTC mail
  • Messages
  • Peep
  • Picasa: Whatever albums you have + DropBox.
  • Youtube
The lens isn't too great even though the resolution is high, but it's good enough.

* A common misconception is that the higher the MegaPixel rating, the better the picture. the pixel rate affects only the max resolution of the picture. The picture's clarity depends on the camera lens itself.

The albums app allows for sharing, cropping, rotating, and showing the pictures in a slideshow.

WARNING: The Media Uploader app doesn't work with non gmail.com IDs. If you're using your own domain name with Google Apps, you'll have to create a gmail.com ID.

Browsing

  • The browser is as fast as Firefox, or a bit faster. Almost all the sites that I visited had everything displayed properly; yay standards!
  • If you want to zoom, use 2 fingers (multi touch glory) and either drag them closer to each other to zoom out, or away from each other to zoom in.

  • After zooming in or out, text auto re-wraps to fit the screen. No more scrolling sideways! As far as I know, this is specific to Sense UI.

  • Google Docs opened without issues in the browser.

Contacts, Email and Calendaring

I grouped these together because whenever you add an account, you always have the option to synchronize all.
  • When creating a new contact from an unknown number or adding it to an existing contact, the contact's name appears immediately instead of "unknown" in the call history.
  • When creating a new contact, you can save the contact on your Google account, Phone, SIM card or Exchange account. All my contacts are on my Google account on my own domain (not my personal GMail account). See migration section for details. You can also link directly to Facebook and pull a profile picture for use.
  • You can choose how to display the contact's name: "First Last" name or "Last First" name.
  • Contacts can be linked (and auto detected) to Facebook and Flickr. It will also pull the profile picture and birth date from Facebook. I don't have a Flickr account to test it.
  • If the contact's birthday was near, it shows a notification in the Social Network section of contacts and tells you to tap on it to send a greeting: Call Mobile or Send message.
  • Calendar allows the first day of week to be either Sunday or Monday.
  • Calendar has multiple views: Month, Day & Agenda.
  • Agenda can be displayed Event Wise or Time Wise.
  • Multiple calendars can exist and be synced.
  • Adding a new calendar event is a click away. You choose which calendar to add the event to, what it is, duration of event, location, description, flexible reminders and whether it's a one time event or a repetitive one.
  • Reminders are fixed values. Custom values are not possible. It starts from: None, 5 minutes, 10, 15, 20, 25, 30, 45, 1 hour, 2h, 3h, 12h, 24h, 2 days and 1 week.
  • Event Repetitiveness: One-time event, Daily, Weekly (shows which day), Monthly (Every first {day}), Monthly (On day number) and Yearly (exact date).
  • The yearly event says: Every Saturday, December 5th 2009 (for example). This is a bit misleading, as next year Dec. 5th may not be a Saturday, and why was 2009 included anyway? It's redundant.
  • You can create one Exchange account only. By default it's setup to fetch every 15 minutes, but you can set it to use the Push feature where it fetches emails as soon as they arrive to the inbox. This works on Google Mail accounts as well (gmail and Google Apps).
  • You can create multiple IMAP/POP accounts.
  • You can send email and use gtalk with your device's Google ID using the built-in GMail and GTalk applications. They don't allow you to change the ID.

Battery

The battery charges in 3 hours, as stated in the quick start guide. I use the AC adapter rather than my computer's USB port, because the AC adapter outputs 1A current, while a USB 2.0 port supports a maximum of 0.5A. This means the AC adapter charges the phone faster.

Battery life becomes poor when enabling GPS and Wifi together (lasts less than a day). GPS is known to be power hungry.

I was able to extend the battery life to 2 days in a single charge by selecting an option to connect to 2G networks only, and mild use of wifi but no GPS.

For an extra mile of battery conservation, I also have a program to list other apps running in the background and kill them. This frees memory and since the processor isn't busy with background tasks, it consumes less power.

By default, wifi will disconnect when the screen is locked. You have 2 more options: Never disconnect when connected to power/computer and to Never Disconnect.

Enabling the Push feature on an Exchange account may affect battery life. Google suggests that you set it to pull every 30 minutes instead.

Essential Applications

I found some applications that I consider essentials and suggest that you install them as well.
  • Abduction! game. HIGHLY ADDICTIVE!
  • OI File Manager
  • SambaExplorer: Access Windows shares and download files
  • Shazam: Listens to music playing & identifies the track. It detected Mario Bros Overworld track! XD
  • TaskPanel: Lists and kills background apps. Can be configured to auto kill background apps
  • Ultra Notes: I take a lot of notes. This prog makes it easy to write them and later SMS/email them
  • DailyStrip: Follow your favorite comics! Dilbert, ftw!

Other

These are features that didn't belong elsewhere:
  • Phone vibrates once when a call is picked up. No need to keep holding to your ear waiting for an answer!
  • When the battery is low, the charging orange LED blinks once a second instead of flashing the screen. Nokia's communicator would flash the screen and make beep noises, draining even more precious power!!!
  • Trackball has white light. Light can be configured for notifications.
  • When an SMS is received, the phone rings and the trackball flashes smoothly in white. The screen stays turned off. (great power saver).
  • You can put a phone call on hold or mute it.
  • I recommend that you press the home button once a call is established to avoid ending the call by mistake by holding the phone close to your cheek.
  • Accessing the micro-SD card slot requires removing the cover only not the battery.

Conclusion

I love the phone, software and hardware. I find the fact that 180MB out of 288MB are gone annoying. I may switch to a vanilla (non-custom) Android interface just to see how much memory I'd save and whether I'd lose a lot of functionality or not.

I'm not happy that HTC's Syn program is restricted to 32-bit Windows only, but for whatever I'm synchronizing, it's already on a Google ID, so I'm not depending on a machine and fearing loss in case of a disk crash or a format.

Wednesday, August 12, 2009

Peer-to-Peer Phone Network

Introduction


I was standing in the bathroom washing my face this morning and I got this amazing idea*; an idea to revolutionize communications and reduce the cost of phone calls!

Imagine an anonymous phone network where you can create a number when you want, and dump the number when you want.
Imagine a phone network where you call and receive phone calls for free.
Imagine a phone network that allows you to block numbers for free.
Imagine a phone network where you have free voicemail and voicemail-to-email service.
Imagine a phone network that links all your numbers (p2p, GSM, landline) providing full reachability.

This is the: Peer-to-Peer Phone Network (PPPN: Pronounced: Pippin).



* A light-bulb didn't flash above my head, because it was morning and Tarsheed would've bludgened me to death with a bunch of old bulbs...

How Does It Work?


Still reading? Great! Let me explain how this works!

The Pippin Network consists of two parts: Nodes and Clients.

Nodes: A bunch of people buy a tiny computer that has customized free software packages on it. This PC is connected to a network that can reach the Internet. This PC is considered a node in the Pippin Network.

Clients: You have a PC, laptop, or a mobile phone with an Internet subscription. You download a free program on your phone that connects to the Pippin Network. Once you login to your extension/number, you reach any extension you want by going over the Internet through the Pippin Network.

That's it!

Originality


I spent the past 7-10 days setting up a PBX at home and just today I got this idea. I searched online on the concept and turns out there is a similar idea, but the implementation method is different. That idea was to have the mobile phones act as both the node and the client. This not the case with The Pippin Network.

Dependencies


Pippin Network relies on an existing GSM network by mobile phone carriers and on people donating bandwidth for people to call each other.

The reliance on the GSM network is actually good, because we mitigate the problem of having to figure out how to handle hand-offs, that is, when moving between Access Points. Since you're receiving your Internet through your carrier, your mobile is already handling hand-offs gracefully and guarantees almost zero down-time and full availability of the service.

To route and connect calls between clients (people), we need nodes with Internet connection. Node-providers (not owners) are donating free bandwidth. Since upload bandwidth is typically low (up to 512kbps only), it makes it more valuable and dissuade people from becoming node-providers, but there are workarounds; continue reading.

Is It Really Free?


Not quite. You need to have the following:
  1. Mobile phone/PC/Laptop

  2. Internet subscription from your carrier/ISP (Zain, Wataniya, Viva)

  3. Enough nodes to sustain the clients calling each other (idle ones don't count)


Legal Issues


Question: Voice-over-IP technology is banned from use in Kuwait. How will this work?!
Answer: VoIP is banned from being used for International calls. It's perfectly legal to use it within Kuwait.

Question: But calls are going over the Internet. You're providing International reach and it's illegal.
Answer: Wrong. Pippin network is designed to be restricted to Kuwait only. (See the technical section for details)

Question: What happens in cases of harassment and abuse?
Answer: What happens if I create an email and harass you?

Project Status


As of this writing, the project is still a draft that I'm working on. There are many of things to check and test existing software to see how to tweak it to see if it fits the project's needs.

Do I need help?
I sure can't pull this off on my own in a reasonable amount of time, if any. So I'd rather work with a team where each specializes in an aspect of the project, or at least is willing to learn about the aspect assigned.

This projects taps into the following concepts and fields:

  • Decentralized Networks

  • Telephony (Using Asterisk and SER) and VoIP

  • Dynamic DNS

  • Mobile Java



If you feel that you can aid to the project in any way (not necessarily in the above areas), contact me. If you don't hear from me with in 48-hours, post a comment here.

I also recommend that you post a comment here (even an empty one) and subscribe by email, if you wish to be updated on the status of the project.

Saturday, July 26, 2008

Extracting SMS Messages from Nokia NBU Backup File

I downloaded the latest Nokia PC Suite software for my ailing Nokia Communicator 9500, to backup everything, and to be able to read the SMS messages on the PC and delete the 1000+ SMS messages I have in my mobile...

After taking a full backup of everything, then another backup of SMS, Calendar and Contacts only, and while the phone was connected to the PC, I was able to view the messages, which made me think that the software downloaded them to the PC, so I proceeded to deleting some of them. After deleting about 200 or so, and having the mobile disconnected from the PC, I wasn't able to read them from the PC!!!
Apparently, the software was reading directly from the mobile and it had kept no copy, other than the backups that I took!

After 5 minutes of a panic attack followed by curses, I decided to restore the SMS messages from the backup to the phone. The software was kind enough to give me the choice to restore the SMS messages only, and not shove everything into my face, or the mobile's. The process took time, and the existing messages were not duplicated! But the process never finished; it got stuck at the end, so I canceled the operation but the messages were back.

I started looking for software to extract the messages from the .NBU backup file, which the Nokia software produced, since they're too retarded to present the option.
I was able to find only one piece of software that is both free and works! It's also able to extract the messages into one file (text, HTML, CSV, PDF, and more), or each message in a file. And to top it all, it can produce a table of contents of the messages!

The software's name is: ABC Amber NBU Converter. Here's a page with some description, but I don't know the software's original site, so I'm not sure if the linked page's file is safe from viruses. Make sure to scan it.

I'm glad Nokia didn't include the option to download the SMS messages to the PC, because it gave me yet another reason why I should dump Nokia altogether, and to find this beautiful piece of software.

Kudos to its creator(s).