Archive for the ‘Operating System’ Category
qTrace – The next thing in Testing
I just came by this qaSymphony site few days ago while looking for a new Testing tool for my next web project. The video looks attractive for me and I can tell you that it is amazing.
Watch this video:
With all the automatic supports and tracking tool, we can finally reduce the efforts for testing and bug tracking in our company now. I am still in the trial mode, but I think this tool is amazing and offers us a lot of help.
AndroidPC and AutoScreen ON SALE!
To celebrate the Christmas and New Year, we put AndroidPC ON SALE! BUY it now, you only have less than 1 week to do so.
We also just released a new product called AutoScreen, and putting it ON SALE as well. Save battery! Turn off the screen! WITHOUT THINKING. It just got all the hard works done for you. BUY IT HERE.
My New Book – 21 years old achievement
21 years old, I got my first book released, I was so excited. Buy it here
Today’s iPhone and iPad apps developers are often running into the need to refine, improve and optimize their apps performances. As more complex apps can be created, it is even more important for developers to deal with this critical issue.
Pro iOS Apps Performance Tuning and Optimization covers many common but difficult problems when tuning and optimizing performance for iPhone and iPad apps and how to resolve these problems efficiently. This book gives you the following:
- Basic knowledge on common problems in iPhone apps
- Advanced knowledge over data structure, algorithms, multithreading, and network data in iPhone apps
- Comparison with problems and solutions for Android and Windows Phone apps
After reading this must-have book, you’ll be ready to make the most of the processing power of the iPhone with your apps performance optimization know-how.
What you’ll learn
- Benchmark your apps using emulators and real device tests
- Increase and optimize UITableView performance in your iOS apps
- Increase your app performance using image and data caching techniques
- Tune your apps using algorithms and data structures
- Improve your parallel data access using multithreading techniques
- Optimize memory usage for increased battery life and better apps performance
- Use native C code to address memory leaks or EXEC_BAD_ACCESS
Installing App with iPhone Configuration Utility
I always have problems finding a good tutorial for my customers whenever I send them the adhoc app for testing, so I write this post to have a basic place for me and everybody else to send to their beta tester/customer without touching to iTunes with the crazy syncing process. This can be good for JailBreak iPhone as well but this is another story.
1/ Download iPhone Configuration Utility.
You can download the iPhone Configuration Utility for Windows here, and for Mac here.
2/ Plugin and find your device
You can find your device easily, and then choose add button as shown in the red box
3/ Select your app
Open Your File Browser and select the file you need, in this case is JobFinder.app
4/ Go back to device and open the Applications Tab
5/ Installing the app in
My book: Community and Opportunities
I am happy to announce that I encountered a book contract with Apress to write about iphone development. This will be a great opportunity and new experience for me when I have never written a real book before.
That is just part of the main content of this blog, I want to share my own thought over community support (as I already said at this blog post about Community Support) and how it would help me to reach this kind of opportunities. An Apress staff contacted me after he read my blog series about iphone development. This helps me to restate again that if you do good thing for other people, chance will come back. Real chance, real value, not an artificial reputation.
Supporting community and make lives better is my personal long-term goal as well as my company’s long-term goal.
Advertising:
Visit vworker to hire best employees
Git auto and tips (windows + OS X)
vi ~/.gitconfig
[user]name = Khang Voemail = vodkhang@gmail.com[color]ui = auto
[alias]st = statusca = commit -ambr = branchco = checkoutlg = log -pau = add -ul = pulls = pushReference:https://git.wiki.kernel.org/index.php/Aliases
3/ Bash shell auto-completion
In Windows, auto completion is by default, in Mac OS, you have to manuall set it up to have auto completion. These steps will help you to have an auto complete git on your MAC machine. It also display the current branch when you are in a git repository.
Put the following linecd/tmpgit clone git://git.kernel.org/pub/scm/git/git.gitcdgitgit checkout v`git --version | awk'{print $3}'`cp contrib/completion/git-completion.bash ~/.git-completion.bashcd~rm -rf /tmp/gitecho-e"source ~/.git-completion.bash">> .profilevim .profile
PS1='u@h:W$(__git_ps1 " (%s)")$ '
Then restart your terminal
4/ Pull/Push auto-completion
By default, the git pull auto complete will contact with server. If you want to make auto-complete always complete using local branch names, then you can change the behavior.
This might only be useful if your local branch names are identical to remote branch names.
Edit the file ~/.git-completion.bash and around line 458, look for this code:
fetch)
if [ $lhs = 1 ]; then__gitcomp "$(__git_refs2 "$remote")" "$pfx" "$cur"else__gitcomp "$(__git_refs)" "$pfx" "$cur"fi;;pull)if [ $lhs = 1 ]; then__gitcomp "$(__git_refs "$remote")" "$pfx" "$cur"else__gitcomp "$(__git_refs)" "$pfx" "$cur"fi;;push)if [ $lhs = 1 ]; then__gitcomp "$(__git_refs)" "$pfx" "$cur"else__gitcomp "$(__git_refs "$remote")" "$pfx" "$cur"fi;;esac
…and change it to this:
fetch)
if [ $lhs = 1 ]; then __gitcomp "$(__git_refs)" "$pfx" "$cur" else __gitcomp "$(__git_refs "$remote")" "$pfx" "$cur" fi ;; pull) if [ $lhs = 1 ]; then __gitcomp "$(__git_refs)" "$pfx" "$cur" else __gitcomp "$(__git_refs "$remote")" "$pfx" "$cur" fi ;; push) if [ $lhs = 1 ]; then __gitcomp "$(__git_refs)" "$pfx" "$cur" else __gitcomp "$(__git_refs "$remote")" "$pfx" "$cur" fi ;; esac
(Notice that we changed the “fetch” and “pull” sections to use the same logic as “push”. This means it will be looking for local branch names instead of remote branches.)
Reference: http://superuser.com/questions/137689/git-pull-auto-complete-osx
iPhone development tools
Working with Iphone development is working with OSX, and we always need good tools and software for both IPhone and OSX environment to boost our productivity and reducing the repetitive, boring jobs
1/ Multitouch, Accelerometer and more : ISimulate
An application allows you to use your real iphone to control the IPhone Simulator. There is nothing better than the real IPhone device to get the real user feeling. The reason is that it will save a lot of time for you when you only build on simulator, debugging on simulator and you have a wide screen to see.
2/ Memory static analyzer : Clang
Help you a lot in the managed memory environment of iphone development. Good news is that the new XCode (3.2) will integrate directly with Clang help you to analyze and find memory leak much faster.
You cannot write a good iphone app development without writing good unit testing. And I suggest you to use Google toolbox for Mac with a lot of supports, easy to integrate into your project. It is better than the default OCUnit in XCode. It also really runs your code, which takes more time, but gives you a real, better result and can help you to deal with some File IO or real code you need to run when running unit test.
4/ UI Automation Test: XCode Instrument
Stop running the UI everytime you fix a bug or adding new feature. UI Automation Instrument is a best tool for you like robot proxy in web testing.
5/ Screen capture software: Jing
Good, free software with high quality captured video. Good use for demo.
Why do I put a chat client here? Everybody need some way of communication, especially if some of your co-workers or clients are not there. In Mac, you can use Adium to integrate a lot of chatting services like Gmail, yahoo…
Logging class/method/variable name in Objective-C
Just a small post for an effective tip in Objective-C.
Usually if you use the
NSString *name = @"Hello World"; NSLog(@"%@", name);. Output: Hell world
And usually, when we debug the program and viewing the log, we really want to know the class/method/variable name and line number as well. You can manually hard code it like
NSLog(@"ApplicationDelegate - applicationDidFinishLaunching - name - Helloworld");
But, it is really time consuming and repetitive task. For our company, we use
#define NCLog(s, ...) NSLog(@"<%@:%s:{%d}> %s = %@",
[[NSString stringWithUTF8String:__FILE__] lastPathComponent],
NSStringFromSelector(_cmd), __LINE__, #__VA_ARGS__ , [NSString stringWithFormat:(s), ##__VA_ARGS__])
Another variant of this is (it combines both class name and method name into __FUNCTION__):
#define NCLog(s, ...) NSLog(@"<%s:{%d}> %s = %@", __FUNCTION__, __LINE__,
#__VA_ARGS__, [NSString stringWithFormat:(s), ##__VA_ARGS__])
Then you can just use it like NSLog. For example:
NCLog(@"Hello world"); Output: <ApplicationDelegate:applicationDidFinishLaunching:100> name: Hello World
Good luck to your new productivity:). For your programming language, stop using the System.out.println() and Console.WriteLine, find a version of yourself
References:
Log the method name in objective-C posted in stackoverflow
Print out the variable name in Objective-C posted in stackoverflow









