With the launch of the iPad not far off. Amazon seems to be stirring. Amazon is said to have purchased Touchco. This is the multi touch company whose tech is based of NYUs Department of Computer Science and Technology UnMousepad worked on by Ken Perlin. Does the name ring a bell? You know, the guy that came up with Perlin noise. He has a interesting blog on all sorts of stuff.
Merge Touchco with the latest KDK Beta(Kindle Development Kit) and you might get a decent platform. Looks like Amazon will be aiming at similar market as the iPad. Now the iPad obviously already has a massive back log of apps from the iPhone. The eBook deals and eBook cost seem to be weighted on Amazons side.
I was totally stocked to get my Nexus One. When I got the N1 though, it did take some doing to get it working. Here are the issues I found and the solutions to the problems. Now you can find these solutions all over the net but I am just centralizing all the solutions please add any others you have found in the comments and I will update the post.
Wifi not getting passed the “Obasdtaining IP” msg and not connecting even though the login details are correct.
This seems to be a temporary issue associated with the specific session of the wireless network. The easiest solution is to reset the router.
No 3G or Edge signal at all(this does not mean flaky this means you never get any signal at all). This happened to me on O2.
Find your Carrier APN(Access Point Name) see O2 details below:
Name: mobile web
APN Type: default
What ever details you dont see above leave blank. The settings in the N1 is Settings>>Wireless & network>>Mobile networks>>Access point names>>menu>>add>>ENTER YOUR APN DETAILS (O2 IS ABOVE )
My 3G signal is poor. I have signal but its not very good.
Final solution from google fixes 3g signal bug and adds multitouch to all apps:
this will be an over the air update at some point.
Settings>>Wireless & Netowrk>> Mobile networks>>Network operators>>Tap Automatically
The bottom of the screen should you should see Registered. Job done you should see improvements immediately.
Dial *#*#4636#*#*>>Phone Information>>Change ‘WCDMA preferred’ to ‘WCDMA only’ at the bottom of the page. WCDMA is 3G so this setting forces it to only use 3G which means when there is no 3G signal u will get no net coverage. When u make the switch and get your strong 3G signal switch it back to ‘WCDMA preferred’ and you should find that your are still on good signal.
Code based localisation focuses on any strings you may have in your code. Finding these strings and making them dynamic. This is a contrast to how localisation is done in say Flash where the localisation methods are normally set up by the developer. Kind of like Flex.
If you are after NIB Localisation checkout this post here
Abstract: A localised project needs a local specific folder that follows a name convention made up of 2 parts. First is the language like “English”, “French” or “Japanese”. The second is the local project abbreviation “.lproj” putting them together you get folders by the name “English.lproj”, “French.lproj” or “Japanese.lproj”. All the local based copy and assets will end up in the respective local folder. You can create these folders manually but I like to get xCode to create them using the localisation functionality built into the IDE.
Basically any text that is set via code needs to be set using NSLocalizedString this takes 2 strings. The first is the the copy that needs localisation. The second string it takes is the comment that appears above the name value pair. see example:
//use this to set the default copy to "Please enter user name:" in English
self.userNameFeild.text=NSLocalizedString(@"Please Enter your user nsme;",@"user name subbmision copy");
//use this to set the default copy to "Please enter user name:" in french
self.userNameFeild.text=NSLocalizedString(@"Veuillezécrire le nomd'utilisateur:",@"Veuillez écrire le nom d'utilisateur");
Once you have written your code using NSLocalizedString with all the necessary default copy you will run a terminal script that will pull out the default strings strings to create a .strings file which you would then localise. “genstrings” is the command line tool used to interrogate your .m files to find what needs to be localised.
Once you have your localised .strings file you simply copy it to the different local folders updated the copy to the respective local and bobs your uncle, its done.
create a new project in xcode it should not matter what type but I will use an iPhone View-Based Application.
add the bellow code to the viewControler of the newly created project to quickly add some uilabels
uiLableSurName.text=NSLocalizedString(@"Last name:",@"sure Name touse");
Open the terminal window and navigate too the root of you project folder. This is the folder that contains your Classes folder.
Run “genstrings ./Classes/*.m” in the terminal which will scan every .m file in your Classes folder for any references to NSLocalizedString and added them to a Localizable.strings file which should appear in the root of your project folder.
In the finder navigate to the root of the project folder and then drag and drop Localizable.strings from the Finder to the resource folder in XCode remembering to insure that the “Copy items into…” check box is unchecked. Also make sure that Text Encoding is set to UTF-16 to insure all languages are covered.
Finally press add.
Right-Click the newly added Localizable.strings then select “Get Info”.
Select the General tab from the “Get Info” panel
Click “Make file Localizable”
Click back on the general tab
Click “Add Localization”
Enter your new Locals “French”(from the English name section of the link) and or see here for full list: http://www.loc.gov/standards/iso639-2/php/English_list.php
Once you have added the Locals for Localizable.strings close the “Get Info” window
Run your app go to the settings panel>>Genral>>International change your local and it should display your localised text.
There are 2 ways to localizes iPhone application and regular OSX applications. The first is localizing the NIB file. This automatically hard codes the localized copy into a NIB file. This works as of iPhone SDK 3.0 should work on previouse versions and future versions but that was my version at the time.
You can also localise with code but that is not the focus of this point check back for Code based localisation maybe next week.
Abstract: A localised project needs a local specific folder that follows a name convention made up of 2 parts. First is the Language, like “English”, “French” or “Japanese”. The second is the local project abbreviation lproj. Putting them together you get “English.lproj”, “French.lproj” or “Japanese.lproj”. All the local based copy and assets will end up in the respective local folder. You can create these folders manually but I like to get xCode to create them using the localisation functionality built into the IDE.
NIB localisation works by taking a NIB that was built for one local with all the copy hard-coded into the NIB then scanning the NIB with the command line tool ibtool. Extracting the copy to a strings file. The strings file is then copied and localised for each local. Then another script hard codes the localised strings into the respective NIBs. This process only uses the generated strings files once to get the NIBs localised. Once this is done the Strings files are no longer necessary.
create a new project in xCode it should not matter what type but I will use an iPhone View-Based Application.
open up the view controller NIB in interface builder add some labels and buttons add some copy to them
save and close interface builder
in xCode right click the view controller NIB and click “Get Info”
make sure you are in the genral tab then click “Make file Localizable”
select the “General” tab again as may change after clicking “Make file Localizable”
now we are going to run the command line script above to scan your nib file and generate a strings file below I have broken down the command so you can replace what u need
I will use ibtool –generate-strings-file NIBCopy.strings English.lpoj/LocalizationNIBViewController.xib
ibtool is the command line tool called Interface builder tool that is installed by default when u install xCode
–generate-strings-file is the ibtool command that creates a strings file from a nib
NIBCopy.strings is the name I have chosen for my strings file u can rename it if you want but maintain the .strings at the end
English.lpoj/LocalizationNIBViewController.xib is the path from the root of my xCode project folder to the NIB file i want to get scanned you must rename this to match the path and name of your NIB
in your case you should only have to replace the NIB path from sub step 6
so you should end up with something similar to ibtool –generate-strings-file NIBCopy.strings English.lpoj/LocalizationNIBViewController.xib
it is likely that you will get the error “Unable to find either a loadable database or a Nodes.xml configuration file” i get it too don’t worry about it assuming your strings file was generated it will contain the name value pairs from the nib
check to make sure your NIBCopy.strings is created if so move on else go back to sub step one and try again maybe type out the whole request manually in-case copy pasting messed it up a bit
now copy the NIBCopy.strings to the French folder and any other locals folder you have created
update and localise the NIBCopy.strings in the respective folders
once again load up the terminal window
navigate to the root of your project folder in the terminal
2D Maps, 3D Maps old maps, new maps, satellite maps and every other type of map we have out there. We are living in a time of massively heightened sense of geographic awareness. with this new found need to use and see maps geocoding and referencing is becoming more necessary.
Well Silverlight 3 is here and wow they sure are kicking up fuss at Microsoft. In all fairness the progression made in the span of six to nine months between releases is truly astounding. They have added an array of features like out of browser support, perspective 3D and graphics card support just to mention some of the headliners.
With every release of Silverlight I have noticed one relatively unsung hero one could say. Now with H.264 HD video support in SL3 all more need for it. The biggest problem with video is the silly amount of money expected for hosting the files and the cost of bandwidth needed for hosting the files. Microsoft saw this problem and resolved it, at the very start of their Silverlight Quest with there FREE Silverlight Live service: https://silverlight.live.com/
The Silverligh Live service has been around since the beginning it address the biggest issue that people have with Flash video content. Simple premise you host your SL3 files on the live servers and you get 10GB of hosting space. 5TB of bandwidth a month at 1.4 Mb/s per stream. With those kinda numbers you should be more than capable of running a rich with media site built on Silverlight.
Whats odd is since its launch I have heard very little about the site. Wonder if a campain is up and coming?
So google are looking to notch up there OS. They have a success full Mobile OS and now they have there sites on something greater.
Google seems to be after the netbook market. Admittedly the netbook market is a bit on the slow side. Armed with knowledge that netbook users who have suffered to date with painfully slow experiences, Google are going to cut down Linux to a insta boot browser.
It is all well and good for the on the go surfer. Let’s hope they have not forgot that geeks also like to buy netbooks. With that in mind lets see if google let you have access to the main App repo and let us put back some of the things they would have removed to speed it up.
Don’t forget the new Nvidia Ion chips. They will bring netbooks on par with some laptops. Linux as a base OS is great because it lets the Geek in side some off us out. Lets hope google does not lock us in.
After playing around with UIButton class for a while I found Apple have been very sneaky with some of their UI classes.
What it appears they have done is use the UIButton class as a sort of wrapper for a number of private button classes. “UIRoundedRectButton” is one of those classes.
“UIRoundedRectButton” is a private class so it can not be extended(subclassed). The initilizers normaly return an instance of self and if that self is not the class type trying to hold it there will be trouble. The problem is if you initialise UIButton with buttonWithType the class it returns is a private class. If you try and extended the UIButton once your custom class is initialized it returns a “UIRoundedRectButton” object which is private so you can not contain it.
If you try the code below which uses the description you can see the object description is not UIButton.
In short you can not extend UIButton and initialize it with buttonWithType in Objective C. On the other hand you can extened UIButton for a button in interface builder. If you use interface builder you need to use initWithCoder as the initialiser. While interface builder does the private stuff.