12 Dec 2012 There is a pretty way way to get the Git commits between versions which can be used to build the change set log.
Below are the basic commands that should give you just that. But these commands are even more useful than this. This is almost too easy, this is why I call it wizardry :)
The only requirement is that you somehow know what is the commit of the latest release you did (if that's where you want to start your change set)
To find a specific commit (if you had a meaningful commit message)
git log --pretty=format:"%h - %an, %ar : %s" | grep "RELEASE: X.X.X"
or you can just use tag (if you have tagged the commit that preceded the release) and see where it points to or any other way you use to find the latest release commit where you want to start.
Once you found it, it's as easy as for example:
git log --pretty=format:"%h - %an, %ar : %s" b9c28fc..
***The revision is in .. revision and the last parameter defaults to HEAD if omitted (http://www.kernel.org/pub/software/scm/git/docs/git-log.html)</p> Enjoy :)</until></since>
03 Dec 2012 A short list of most useful Git commands to work with git tags. These should cover 90% of your needs.
### TAGS
#create tag (annotated = with extra meta information)
git tag -a ver1.4 -m 'my version 1.4'
#list tags
git tag
#delete tag
git tag -d XXX
#delete remote tag
#You just need to push an 'empty' reference to the remote tag name:
git push origin :tagname
#push tags to remote
#specific tag:
git push origin v1.5
#all tags:
git push origin --tags
01 Nov 2012 Keeps the names of all public classes in the specified package:
-keep public class com.myapp.customcomponents.*
The following configuration keeps the names of all public classes in the specified package and its subpackages:
-keep public class com.myapp.customcomponents.**
The following configuration keeps the names of all public/protected classes/fields/methods in the specified package and its subpackages:
-keep public class com.myapp.customcomponents.** {
public protected *;
}
30 Oct 2012 I hate facebook Engineers. Yes, you heard me right. I hate them. Well, maybe not them but their hairy pointy managers and bosses who... wait a second, isn't facebook "famous" for being all staffed with engineers? So yes, I hate facebook Engineers
Now you will say but why, they are mostly smart guys and facebook is so spectafackamazing. WHY?!?... Well, for one their mobile SDK suck. Full of bugs, crashes and other pleasantries. I did at least 5 updates solely because there was some problem with Facebook and the most interesting part of that is that the updates were required after some change that was made that broke things. The integration is working 100% for 4 month and then one day goes KABOOM.
They are all warm and fuzzy now, trying to get to mobile developers, well you got under my skin for sure guys. But even now, when all news are raving how they redesigned and updated and what not their portals for mobile developers who use their SDK to integrate with them they still have problems. Just couple days ago when they started pushing into every possible media hole the news that they got the new SDK and blahblahblah

reserved but intrigued (can it be that FINALLY they got the SDK to a decent shape?!?) off I went to check it. For a long time I have been using the latest clone of their github repository and I decided to see whether it is different from the repository - indeed it was. Ok, I thought I should use the SDK and off I went to integrate it within my app just to see that it crashes 100% of the time with SSL error. Damn I though and went back to github's repo which not surprisingly did not have this problem.
That's not funny.... It never was. Seriously - pull your shit together! I don't need and don't want to spend 2–5 hours every few months to work around yet another problem you have introduced.
23 Oct 2012 To remove inactive ports:
sudo port uninstall inactive
To remove downloaded distfiles with:
sudo port clean --all installed
To remove orphaned (not referenced and not anymore used ports) you can use an external tool port_cutleaves
First install the tool using MacPorts
sudo port install port_cutleaves
Then run it
sudo port_cutleaves
14 Sep 2012 The following crash was cripping into the reports. There is no usage of the webview directly, but there is a usage of the webview and thus related stuff in the ads.
java.lang.NullPointerException
at android.webkit.WebViewDatabase.getCacheTotalSize(WebViewDatabase.java:815)
at android.webkit.CacheManager.trimCacheIfNeeded(CacheManager.java:548)
at android.webkit.WebViewWorker.handleMessage(WebViewWorker.java:190)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.os.HandlerThread.run(HandlerThread.java:60)
The problem is the following code:
long getCacheTotalSize() {
long size = 0;
Cursor cursor = null;
final String query = "SELECT SUM(contentlength) as sum FROM cache";
try {
cursor = mCacheDatabase.rawQuery(query, null);
if (cursor.moveToFirst()) {
size = cursor.getLong(0);
}
} catch (IllegalStateException e) {
Log.e(LOGTAG, "getCacheTotalSize", e);
} finally {
if (cursor != null)
cursor.close();
}
return size;
}
The NullPointerException that happens should in general not happen but sometimes the storage gets corrupted and then the cache database is null when it is called and it crashes.
The fix would be to check for this problem and then only use WebView and/or call the ads if there is no problem with the WebViewDatabase
WebViewDatabase webViewDB = WebViewDatabase.getInstance(this);
if (webViewDB != null) {
// do what you wanted to do with the WebView
}
06 Sep 2012 Most people heard about the 80/20 rule.
For those who didn't it basically says that you do 80% of work in 20% time and then 80% of time is spent on the remaining 20% to finish the project/product/service.
BUT
It is these 20% of polish that will ultimately get you the 80% of the market. Because the teams that spent 80% (or even more) on the last 20% of polish to their product and/or service are the teams that usually produce the product/service that wins the major of the market. And this is all that usually matters – to own the majority of the market, to be the leader or in the leader pack in the market.
This is not a recipe for success of course. There are polished and good products that fail. Speaking in math terms, this is rather the necessary, than sufficient condition for a successful product and/or service.