Yesterday a friend was ranting away as usual about how stuff was always broken and in passing mentioned the iPhone application Squidgy, an application that allows you to control your Squeezbox(es). There are apparently two problems with the application. The first is that it crashes quite a bit and doesn’t really seem to work very well, not particularly good for an application costing £5 ($8 / 6 EUR). The second is a little more serious. You see EMCC Software Ltd, the company that released the application, went into administration on 12th March 2009. The application is still on sale in the iTunes store despite the fact that EMCC are not providing support and their website consists of a statement that they are in administration and who the acting agents are. Perhaps it would be wise to find a different application to control your Squeezebox(es).
5 years ago, mid-March | Leave a Comment
Originally I wasn’t going to blog about this but I finally gave in so here it is. This is another one of those things that you really just can’t do with your iPhone unless you’ve jailbroken it.
Having the weather on your lock screen is nothing particularly new, there are enough Winterboard themes that allow you to do this. However, this is slightly different. I’ve never really understood why you’d only ever want to know what the weather was like in your home town. What does it matter? That is of course unless you never actually go anywhere. Why not have the weather for where you are? Yes I know you could just look out of the window or actually go outside but that’s beside the point. What I wanted was to have the weather for where I actually am right now. So, as part of my iPhone tracking system I added the ability for the weather to follow me too. The implementation is rather simple.
Since I’m already sending my location and retrieving the wallpaper image I’m also getting an override (overRide.js) for my weather configureMe.js. The overRide.js contains a single line, the location – as per the configureMe.js format:
So each time the wallpaper is updated, so is this file. One of the key things you need to do to accomplish this for yourself is what is called reverse geocoding. That is, getting the name of your location from your GPS coordinates.
Now, the best way I’ve found of doing this so far is by using geonames this is a fantastic site that allows you to do the reverse geocoding without even blinking. For example, calling geonames using the url
would result in the following xml being returned
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <geonames> <geoname> <name>Seaton</name> <lat>50.7049382166946</lat> <lng>-3.06999206542969</lng> <geonameId>2638278</geonameId> <countryCode>GB</countryCode> <countryName>United Kingdom</countryName> <fcl>P</fcl> <fcode>PPL</fcode> <distance>28.2265</distance> </geoname> </geonames> </xml>
This gives you pretty much everything you could possibly want and for free too. Note the inclusion of your distance between your coordinates and the the coordinates returned (nearest named location).
Of course I haven’t yet tested being in some obscure location that the weather provider doesn’t know about. Incidentally, geonames is so freaking good that, if you want to, you can download a daily dump of the database.
There seems to have been a lot of misinformation flying about of late. With Google releasing a new version of their app incorporating proximity sensing, some blogs have claimed this is breaking AppStore rules by using undocumented hidden (non public) API calls. I’m here to tell you that’s just rubbish. All that has happened is the people reporting it haven’t even bothered to check. Want to prove this to yourself?
1. Start Xcode and pick one of the templates.
2. Load up the AppDelegate code and skip to ‘applicationDidFinishLaunching’.
3. Type ‘application.’ (note the full stop after the word application)
4. Hit escape and you’ll get a list, scroll down to items starting with P
5. Oh look there it is…
For those without Xcode here’s a picture.
For those that want to see the what the documentation says
A Boolean value that determines whether proximity sensing is enabled.
@property(nonatomic, getter=isProximitySensingEnabled) BOOL proximitySensingEnabled
YES if proximity sensing is enabled; otherwise NO. Enabling proximity sensing tells iPhone OS that it may need to blank the screen if the user’s face is near it. Proximity sensing is disabled by default.
Available in iPhone OS 2.0 and later.
Unfortuneately once some people grab hold of false information no facts will get in their way. Anyone that knows me will tell you that I’m really not fond of either Google or Apple, but let’s just get stuff right shall we.
Update: I’ve had some discussion on irc and it was felt that I should point out that proximityStateChanged is used and following some additonal chatter on IRC with UncleBob who pointed out that “It’s not private in the OBjC sense just the Apple documented SDK sense. ” he then went on to say “the whole thing is definately a peanut-gallery cockfest” which sums it all up really.
I’ve been messing about trying to learn how to write iPhone apps. There’s a lot to take in but at the moment I’ve managed a concept application. A little shop (of horrors ;). At the moment it simply reads data from an sqlite database and then displays information on the product. The buy now button currently just jumps to the product url at Linitx.com.
Update: Added a screenshot when rotated. The iPhone SDK handles the rotation automatically, all you need to do is specify which parts of which objects move or resize. All that can be done from Interface Builder. Easy as pie. Also note the changed title bar colour, in keeping with LinITX, and the title text. The shop title (LinITX) and shop base product URL are read from a plist file. I suppose they could be read from the sqlite db but I am experimenting so learning how to read a plist file is useful too.
Update 2: Spent ages last night trying to work out why some of the text descriptions for products came out of the database as null. Discovered that when importing the data file it wasn’t using UTF8 encoding, which is apparently all sqlite deals with. Loading up the source data file into TextEdit under OSX and saving it as UTF8 then reimporting solved the problem. I also modified how things are displayed. The image and text are inserted into a UIWebView so are now scaleable by the user. The images are also base64 encoded and in the database. This increases the database size but means the application can still be used offline. Before none of the pictures would display if there was no network connectivity.
Update 3: Added the ability to search the list. The search bar appears when the search button is pressed and hides again when the search is complete.
Having the IMIV in the car makes driving around much more fun but up until recently I had my iPhone and prior to that my iPod Classic flapping about on the passenger seat. It worked but wasn’t particularly elegant and of course the moment I had a passenger in the
car there was a problem. This week I finally broke and decided to sort out the problem. To be honest I was looking for something cheap and functional. A quick search lead me to the JO BLACK from x castro design. This is a rather simple frame with what I can only describe as a bulldog clip on the back. The JO works rather simply. You squeeze the clip to open it and slip it onto one of your car air vents. Your iPod or iPhone or other device slips into it, gently held by the neoprene arms. The arms can be bent to allow more or less grip, so, although it seems to be an iPhone or iPod holder it isn’t just that, it can safely hold pretty much any handheld device – within reason of course. The fact that it has an open base means I can have the IMIV cable connected with no issues.
The JO is available with the neoprene in one of 7 colours, the base frame is always black but the colour range is varied enough for most tastes.
If you’re looking for a passive holder for your phone or music player then for the money the JO series suit. One thing I did notice when looking at the pricing on their site compared to Amazon was that although the x castro site and Amazon prices matched (after shipping), there seemed to be no way to select the free shipping for the UK. The 3 options in the dropdown box all added more to the price.
keep looking »
Current Electricity Use (15min)
- automated home
- Automated It Technology News
- My Acer page
- My Asterisk pages
- My Work in progress (old)
- Noble Race Car
- openmoko / neo 1973 wiki
- planet openmoko