Phone Tweak

Does your mobile phone forward incoming calls to voicemail too quickly?  Are you missing calls or having to mess about with messages and call people back as a result?

Would you like to make your phone ring just a little bit longer – to give you a chance to actually answer it – before it redirects?

Here’s how:

  1. dial *#61# to see your current forwarding (on no answer) settings
  2. make note of the Voice Call Forwarding When Unanswered number – this is your voice mailbox (VMB) number
  3. dial **61*VMB*11*RINGTIME#
    1. the 61 is for forwarding (on no answer)
    2. the VMB is your VMB number and includes the + sign at the front (e.g. +61411000321 for Optus Australia)
    3. the 11 is for voice calls only, so data/fax calls are unaffected
    4. RINGTIME is the new amount of time that you want your phone to ring for before going to voicemail
      1. it is in seconds
      2. it has to be a multiple of 5 (e.g. 5, 10, 15, 20, 25, 30…)
      3. many phone carriers limit this to 30 but some (like Telstra in Australia, limit it to 25)
  4. you should see a confirmation message when the change has gone through but call yourself from another phone to test it anyway

There you have it.  Fewer missed calls.  Fewer pointless messages.  Smaller phone bills.

Enjoy.

Posted in Stuff | Tagged , , , | Leave a comment

Back to the Future!

Déjà vu is a wonderful thing.  It struck me the other day whilst I was surfing the web catching up on news.

Back in the 70s, when computing hardware was really expensive, we had thin clients.  The computer you used was little more than an I/O terminal and all processing occurred on the server.  This evolved in the 80s, thanks to X, into graphical thin clients which look remarkably similar to the interfaces you still see today in most computing environments.

Then computer hardware became cheaper.  People wanted to do more with their computers, and they wanted to do it where it was more convenient for them.  The personal computing revolution occurred.  Computing moved from the office to the home.

Then networking became cheaper.  People wanted to do more with each other, and they wanted to do it in a form that was more friendly to them.  The World Wide Web was born. Computing moved from the desktop to the browser.

Then computers became smaller.  People wanted to stay connected and take their computers with them.  Enter laptops and smartphones.  The era of mobile computing was upon us.  Computing moved, well, everywhere… and it hasn’t stopped moving.

During all this time, people’s expectations of software have continued to increase.  That translates to more code, more machine instructions, more processing and, ultimately, more power consumed.  But while processing speeds have continued to rise exponentially,  power availability and density hasn’t.

It wasn’t so obvious when we were all plugged into mains power, because you never saw the electricity that your computing activities were consuming.  But once computing became mobile, it became painfully obvious to everyone.  Battery life sucks.

macbookair1-101016

As can be clearly seen in the above laptop, batteries already take up around half of the volume inside a mobile device.  There is, obviously, a finite limit on how much power can be stored in such devices… yet our demand for more and more powerful applications seems endless.

The reason why Steve Jobs did not allow Flash on iOS was because of power consumption.  No matter how brilliant the hardware, one fun but poorly written Flash game could drain the battery completely within tens of minutes.  And who would be blamed for the device suddenly powering off?  You got it – Apple.  Not ‘CrappyFlashDeveloper47238′ – Apple.  Who would get slammed in forums and the press – Apple.  Who would lose money because of it – Apple.

Awesome apps use up awesome amounts of power.  It’s as simple as that.  So the only way we are going to get more and more awesome apps is if we work out a way to shift the power drain to somewhere where it doesn’t matter (as much).  So rather than do all the processing on the device itself, we shift the processing somewhere else.

Thus 30 years later and we’re headed back to the 80s and thin client graphical terminals.  The new terminal is your phone, or your tablet, or your laptop.  You use the device to input your commands, and these commands get sent via the Internet to some server – somewhere – that is running the program you are using.  The server executes your commands and updates the graphics buffer which is then sent back over the Internet to your device.  Your device then just throws it up on your screen.

Since your device is performing minimal processing, you don’t need any more circuitry than is required to handle the I/O, networking and display.  You don’t need a CPU, you dont need fans, you don’t need banks of RAM, you don’t need a disk drive, you don’t need… a heap of expensive components.  The device can cost at least half the price and have roughly double the volume dedicated to its battery and, since it is consuming perhaps one-fifth the power (because processing has been offloaded to the server), it would end up with 10x the battery life.

Imagine a $150 laptop that lasts for 40 hours not 4, or a tablet that lasts 80 hours not 8.  Having a portable device that you can use all day, every day, and only bother to recharge once a week, now that would be awesome.

This Back to the Future approach also solves two other problems that are argued about over and over again on countless forums, and they are “mac vs pc” and “native apps vs web apps”.

If all of the processing is done server-side then there’s no reason why you can’t connect to different servers for different types of processing.  Connect to a virtual Mac and run Photoshop; connect to a virtual Windows box and run Quicken.  You get the best of both worlds with no dramas.

The native vs web app argument also becomes moot because you can install any native apps you want on the server you are connecting to.  No point trying to argue that your app needs to work offline either, because this approach is a fully online solution and doesn’t pretend to be anything else.

Case study:  I spend only 1.09% of an average week outside of Wi-Fi range.  I spend less than 0.1% of an average year outside of 3G range.  Assuming the mobile device has both forms of connectivity (a fair assumption) its performance would be perfectly fine for me 98.91% of the time.  I’m not sure anyone can justify paying twice as much for a device that has negligibly better performance and/or availability – I certainly can’t.  Especially when, during those times, I’m usually driving and couldn’t/wouldn’t be using it anyway.

If you don’t have decent connectivity when you need it then, sorry, but that’s your problem.  Don’t use it as a reason to criticise ideas on other people’s blogs — fix it.

Interestingly this new form of computing is already with us, at least in nascent form.

Example 1:  Take a Google Chromebook and install the Citrix plug-in.  Instant access to web apps and access to native apps via your company or any organisation that offers Desktop-as-a-Service.

Example 2:  Install OnLive Desktop onto an iPad or Android tablet to gain access to office apps.  Sign up at OnLive with a browser using a Mac, PC or TV to play streaming video games over the Net.

Example 3:  Gaikai and Nvidia Grid and … all do cloud computing/gaming.

With heavyweights pushing this strategy from different directions (Sony recently purchased Gaikai for $380M, for example) it’s a sure sign that the concept is solid.  Now all we have to do is wait and see what implementation and pricing model captures the public’s imagination first.

Posted in Stuff | Tagged , , | Leave a comment

Binoculars for Astronomy

Thinking about buying some binoculars to do some stargazing and not sure what sort are the most suitable?

When choosing binoculars for observational astronomy, you have to remember one crucial thing: there’s not a lot of light around. The most important thing your binoculars should do, therefore, is capture as much light as possible. Thus the aperture is the most important figure you should be looking for when shopping around.

A 7×35 binocular, for example, has a magnifying power of 7 (everything looks 7 times larger than normal) and an aperture (front objective lens diameter) of 35mm. Obviously, the size of the aperture limits how much light can be gathered—the bigger it is, the more light you will capture, and the more stars you will see.

ExitPupilAnother (less well know) factor you should take into consideration is the exit pupil. If you take light from a 35mm diameter objective lens, and magnify it by a factor of 7, it should come as no surprise that the resulting image has a diameter of (35 / 7 =) 5mm. This image is what you actually see in the eyepiece of your binocular.

Now, what’s interesting is that, on a bright day, your pupil may only have a diameter of around 2mm. But on a dark night, it may dilate to around 7mm. If your binocular has an exit pupil smaller than your own, then you aren’t seeing as much as you can possibly see.

A 7×50 binocular has an aperture of 50mm which is magnified by a factor of 7 so as to produce an exit pupil of (50 / 7 =) 7.1mm. As this is about the size of your own pupil, you’re not going to miss out on anything. (Note that if you live in the suburbs or otherwise use binoculars in a location which suffers from light pollution, your pupil may only dilate to 4, 5 or 6mm—not as much as it would under ideal conditions—so a 7.1mm exit pupil would be overkill.)

So, if you’re new to the game, I recommend that you get a binocular which has as large an aperture as possible and an exit pupil appropriate to the viewing conditions you are likely to encounter (if you’re unsure, or want to err on the side of caution, get one with an exit pupil of around 7mm). Many amateur astronomers start off with 7×50 binoculars—in case you were wondering.

Have fun!

Posted in Stuff | Tagged , | Leave a comment

Install Parallels Tools on CentOS Server VM

So you’ve installed a CentOS Server into a Parallels Virtual Machine.  You probably want to share some folders to make data transfer between The HostOS (probably your Mac) and the GuestOS (CentOS) easier.  A bit of research has led you to discover that you need to Install Parallels Tools to do this, but when you click on its icon in the bottom-right corner of your screen you are presented with the following message:

Click Continue to connect the Parallels Tools installation CD to this virtual machine.

To install Parallels Tools, open a terminal, go to the CD/DVD drive directory and run the following command as root: “sudo ./install”.

Note: In some Linux systems, you may need to unmount the installation CD and then mount it again using the following command: “mount -o exec”, and only after that install Parallels Tools.

When you click Continue nothing seems to happen, and you can’t find the CD/DVD drive directory.

That’s because the server versions of CentOS don’t automatically mount these sorts of things by default.  Assuming you have no other removable media mounted at the moment…

# mount -r -t iso9660 /dev/sr0 /mnt/

…will mount the Parallels Tools CD image (prl-tools-lin.iso) in the /mnt/ directory.

# cd /mnt/

# ls -l should show about five files, including an installer.

# ./install will run the installer which should be pretty straight forward.

If the install fails with this error:

An error occurred when downloading required components for Parallels Tools installation.
- gcc
- kernel sources
Install these components and try again.

…then you probably don’t have a network connection.

Follow the instructions here to fix your nyetwork.

Once that’s done, use yum to install the required components.

# yum install gcc kernel-devel

# ./install should now work without a problem… the Parallels Tools should get installed and folder sharing should work.

# ls -l /media/psf/ reveals the location and name of all shared folders.

Posted in Stuff | Tagged , , | Leave a comment

Enable Networking on CentOS Server Parallels VM

Ok, so you’ve installed a CentOS server into a Parallels Virtual Machine.  If you experiment with clones or templates then it shouldn’t take you very long to notice that networking stops working.  Let’s find out the cause of the problem, fix it, then speculate about what is going on.

# ifconfig reports only a lo/Loopback interface

# ifconfig -a reports an inactive eth0 or eth1/Ethernet interface, meaning it is there but down.

If you still have an eth0 interface, just try # ifup eth0 and see how that works.

In my case I have an eth1 and # ifup eth1 fails with a message about missing configuration details.  Hmmm…

# ls /etc/sysconfig/network-scripts/ shows the presence of ifcfg-lo and ifcfg-eth0 but no ifcfg-eth1.  Ah-ha!  It’s failing to initialise because it doesn’t have a configuration profile.

Let’s make use of the existing eth0 profile.

# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1

But we need to make some changes.

# nano /etc/sysconfig/network-scripts/ifcfg-eth1

Change the DEVICE and HWADDR entries.

  • DEVICE should be “eth1″
  • HWADDR should be your VM’s MAC address
    • Click on the configuration cog in the bottom-right corner of your window, select the Hardware tab, then Network 1
    • If the MAC address is different to what is in the config file, you need to type the address in carefully (at this stage since you don’t have networking, you probably haven’t installed Parallels Tools either, so copy and paste won’t work)

CTRL-X then Y then ENTER will close the editor and save changes.

# ifup eth1 should now bring up the interface.

# ifconfig should show that your nyetwork is now working.

So, why did it ‘break’?

What seems to happen is that, whenever you clone a VM or turn it into a template and instantiate it, Parallels allocates a new and different interface for networking along with a different MAC address.

The new MAC address I understand because consider what would happen if you ran both the original and cloned VMs at the same time.  You would have two (virtual) machines on the same (virtual) network with the same MAC address and that is just not a good idea.  So to prevent this from happening each clone/instance gets a different MAC address.  Fair enough.

I’m not sure about why the interface needs to change from eth0 to eth1, eth2 and so on, as that is at least one abstraction level higher than MAC addresses.  If I get a chance I might set up another CentOS VM and run two VMs with the same ethernet interface at the same time to see if there is any conflict.  If so then interfaces may be a resource which needs to be shared between all running VMs and that would explain why they change as well.

tl;dr:  Remember to duplicate and update your ethernet interface configuration profile every time you clone or instantiate a VM and you’ll be fine.

Posted in Stuff | Tagged , , | 7 Comments

Installing CentOS in a Virtual Machine

In the process of experimenting with CentOS I decided to virtualise the OS in order to make rollback and documentation of setup/administration processes easier.

Here is a brief outline of the steps required to install CentOS into a Parallels Desktop Virtual Machine:

  1. Launch Parallels Desktop
  2. Add a New Virtual Machine
  3. Install Windows or another OS from DVD or image file
  4. Use a browser to go to the list of CentOS mirrors
  5. Select the closest mirror to you and click HTTP
  6. Navigate to ../pub/centos/6.3/isos/x86_64/
  7. Download CentOS-6.3-x86_64-netinstall.iso
  8. Switch back to Parallels and Install from: Choose an image file…
  9. Select the saved copy of CentOS-6.3-x86_64-netinstall.iso
  10. Select More Linux > CentOS Linux
  11. Rename the VM to something sensible (eg “CentOS 6.3″)
    1. Don’t be tempted to ”Customise settings before installation” at this point in order to, for example, give the VM the same number of CPUs and Memory as your production machines have
    2. If you do then later on you will probably be given a warning about not having enough RAM for a graphical configuration… and will be forced to continue with a more complicated text based configuration
  12. Continue and the CentOS installer takes over from here
    1. Install
    2. Skip media tests
    3. English language
    4. US keyboard
    5. Installation Method:  URL
    6. Accept default TCP/IP settings
      1. I always get a Network Error at this point on my first attempt
      2. Retry and it gets through the second time
    7. Type the full URL from your browser’s address bar, for example:  http://mirror.internode.on.net/pub/centos/6.3/isos/x86_64/
      1. now replace isos with just os (the files you need at this stage are in a different directory)
      2. ../pub/centos/6.3/os/x86_64/
    8. The installer retrieves the install.img
    9. The CentOS 6 configuration GUI should now kick in
    10. Basic Storage Devices
    11. Yes, discard any data
    12. Just Configure Network to check and make sure that eth0 will Connect Automatically — it should be the default and always has been as far as I can tell
    13. Select your nearest city for timezone purposes
    14. Enter a root password
    15. Use All Space
    16. Select the Basic Server set of software (more info) and do something else as it downloads and installs hundreds of packages
    17. Reboot
  13. Shut Down the VM
  14. Make changes to your VM’s configuration (using the cog in the bottom-right corner) to give it the same amount of Memory and number of CPUs as your production machines have.
  15. All done!
Posted in Stuff | Tagged , , | 2 Comments

Next research and development platform?

After writing the last post I was presented with a conundrum:  I am really happy with Apple hardware but OS X is heading in a direction which is making my job (research and development) increasingly harder.  What to do?  How/where to position?

Possibility 1:  Apple retire the Mac Pro, then the Mac Mini, then they narrow the iMac range before finally retiring the iMac line completely and, with it, Apple’s entire desktop range.  To minimise customer losses, they encourage users that need large amounts of screen real-estate to connect MacBooks to Thunderbolt Displays.

Possibility 2:  Apple enhances the iMac with a touch screen and a horizontal (tablet) mode rather than dropping it, so that OS X actually works with the hardware rather than against it.

Personally, I think the Pro and Mini are goners for sure within the next half-decade or so.  The consumer and all-in-one nature of the iMac, however, boosts its survival prospects.  Even if it does get the boot, I can’t see it happening any earlier than 2020 — seven years from now.

During that time Apple will release seven updates to OS X (assuming it sticks to its recent annual update commitment).  If the 10.6 to 10.8 delta is anything to go by, 10.8 to 10.15 is going to be massive.  The OS will be a walled garden of epic proportions by that time, with an interface pandering to social plebs.  No thank you.

So, even though the hardware will probably still be great, the OS wont be.  The only real question, then, is whether to jump now or wait and be pushed?

Or is there a third way?  A way to bend Apple hardware to my will?  Run some other OS on Apple hardware?  Without hacks?

Two obvious options are virtualisation and remote desktops.

I’ll give remote desktops a bit of a miss for now as I need to semi-regularly test graphics-rich games and the architecture isn’t there yet.

As for virtualisation, well, I use virtualisation for other development work, but have never tried to virtualise my primary operating environment.  Since there is no real urgency to the transition, I can afford to experiment a bit before diving in.  So let’s do that.

A quick scan of the options (VirtualBox, Parallels, VMware) and a nice showdown between the top two contenders leads me to believe that Parallels is marginally better than VMware, so I’ll start experimenting with that.  A quick trip to the online store and 313MB of download later and I have Parallels Desktop 8 for Mac up and running on OS X 10.8 Mountain Lion.

Next step is to set up a pristine Windows 7 virtual machine, clone it, and outfit the clone with my usual toolchain.  Let’s see how that goes…

Posted in Stuff | Tagged , , , | Leave a comment