Archive for February, 2015

So I have been meaning to write this up about using rro vs cm’s theme engine so let’s provide some back history and then explain how both systems work.
Overlays have been supported in android for a very long time.
Actually all the device trees in the android source code works by overlays (now know as static overlays), developers are very familiar with these because we use them all the time.

Overlays work on the concept of changing out resources of android for the purpose of making things specific to a device, runtime resource overlays have actually been in android since about the gingerbread days and is actually what the theme engine is based on.

Cm uses the overlays to provide themes but at the time of the inception of the theme engine, there was a not a simple way to have overlays be swappable so what did cm do, they decided to port aapt (android asset packaging tool) onto the device so they modify app’s assets (resources) in real time but at the cost of modifying that actual app. (This is a major security hole in itself)

Sony decided to go about replicating this behavior for their xperia themes and submitted it to aosp and they got shot down because of using aapt on device because of the possible security implementations.

So with Sony intent on having swappabale themes worked with google to devise the current implementation of rro that provides a much more secure way of going about it.

They modified the asset manager to accept apks with just resources and map out the id of each resource in android and then overlay the modified resources at just runtime so those resources can map out to rro’s changed or new resources to act like they were always part of those resources but only as long as that apk is there and loaded into the system.

With this system, it provides security because the system is already given permission but still confined in all of android but it is also powerful because new resources can made to add features, translations and so forth very quickly (OEMS are actually using it now to prototype )

With this system in place, the code was merged into aosp for lollipop, unfortunately with google keeping lollipop source mostly hidden, nobody realized that it broke in the process until 5.0 was already out and Sony quickly patched it in aosp for the next release (the 5 commits that need to be cherry picked for rro to properly work)

This means that future stock builds of android has this native theme engine built into it and Sony and Samsung and HTC are actually already using it (rumor is this works already in gpe Sony and Samsung lollipop builds) so it makes sense for the community to embrace it and build on it as our own project.

Cm though decided instead of embracing RRO (maybe they didn’t know about it) ported their legacy code up for the theme engine with so much effort instead of looking for a new way with 13,000+ lines of code instead of probably about 200 lines of code to adapt the theme engine into was was already there so there is a ton of redundant code that is completely ridiculous.

Now unfortunately because cm completely disregard the native theme engine, they caused conflicts with it and aosp code.

Now the problem we are seeing is that since rro and our own project here to work with it and make it more extensible is a infant project just starting out, it is a bit unknown about how powerful it is and that it does the same exact thing as the theme engine is the downfall while we are still tuning it.

This is causing a bit of a split in the community because most people know the cm theme engine because it has been around for years so everyone in the community knows it so Roms (even ones that are supposed to be purely aosp based) are at a crossroads because the demand for themes is very high and the pressure to add the cm theme engine is high for them even though it caused issues in kit kat.

I discovered rro while I was looking for ways to add code without hard coding it into my source code for frank and started discussing it with brian gill, Reinhard/bitstra and aldy about implementing this and the benefit it would have for the community not just for Roms but for stock android firmware so this project was born.

The goal is still for adding features without hard coding tons of fragile code but we saw the demand for themes are high so we have been focusing on that.

The overlay manager and methods that we are creating will become open source once we fine tune it and create simple ways for users and themers/developers to work with it easily so it feels like native functions and something the community can adopted and be proud of.

To keep an area of a worksheet visible while you scroll to another area of the worksheet, you can lock specific rows or columns in one area by freezing or splitting panes.

When you freeze panes, you keep specific rows or columns visible when you scroll in the worksheet. For example, you might want to keep row and column labels visible as you scroll.

Worksheet window with row 1 frozen

A solid line indicates that row 1 is frozen to keep column labels in place when you scroll.

When you split panes, you create separate worksheet areas that you can scroll within, while rows or columns in the non-scrolled area remain visible.

  1. On the View tab, in the Window group, click the arrow below Freeze Panes.

    The Window group on the View tab

  2. Do one of the following:
    • To lock one row only, click Freeze Top Row.
    • To lock one column only, click Freeze First Column.
    • To lock more than one row or column, or to lock both rows and columns at the same time, click Freeze Panes.


  • When you freeze the top row, first column, or panes, the Freeze Panes option changes to Unfreeze Panes so that you can unlock any frozen rows or columns.
  • You can freeze rows at the top and columns on the left side of the worksheet only. You cannot freeze rows and columns in the middle of the worksheet.
  • The Freeze Panes command is not available when you are in cell editing mode or when a worksheet is protected. To cancel cell editing mode, press ENTER or ESC. For information about how to remove protection from a worksheet, see Protect worksheet or workbook elements.

Split panes to lock rows or columns in separate worksheet areas

  1. To split panes, point to the split box at the top of the vertical scroll bar or at the right end of the horizontal scroll bar.

    split box

  2. When the pointer changes to a split pointer split bar adjustment pointer or resize pointer (double-headed arrow), drag the split box down or to the left to the position that you want.
  3. To remove the split, double-click any part of the split bar that divides the panes.

NOTE   You cannot split panes and freeze panes at the same time. When you freeze panes within a split pane, all rows above and columns to the left of the selection will be frozen and the split bar will be removed.

It’s hard to believe that a beast of an OS, Windows 10 can be skimped down enough to work on a raspberry Pi II. Now I’m all excited about that.

Today the Raspberry Pi Foundation announced the retail availability of their new board, the Raspberry Pi 2. We’re excited to join the Foundation in also announcing that Windows 10 will support Raspberry Pi 2, which will be free for the Maker community through the Windows Developer Program for IoT later this year.

Recently Terry Myerson took the opportunity to share more details about Windows 10, which will usher in the new generation of Windows. Windows 10 is the first step toward an era of more personal computing. This vision guided our efforts to reimagine Windows for a world that is more mobile, natural and grounded in trust. Windows 10 will inspire and support a broad range of devices – from PCs, tablets and 2-in-1s to phones to Xbox and the Internet of Things.

Find more at:

And don’t forget to subscribe for more updates.


I’ve found this cheatsheet to be the best way to learn all the secret shortcuts in Resharper that really help to speed up development in Visual Studio and make life easier.  For months I had it pinned to my cube wall until I used them so much they’re muscle memory.

If you are coming from a JAVA background and have been using IntelliJ IDEA, use this:

If you are like me and a hard core visual studio user, use this:

If you want to change your shortcut scheme (or you aren’t sure what it’s set to), in the Visual Studio top menu go to Resharper –> Options –> Keyboard & Menus, then select “Visual Studio” or “Resharper 2.x or IntelliJ IDEA” and Apply Scheme and Save.  Then hit a shortcut like Ctrl+Shift+N and a menu pops up saying there’s a conflict in shortcuts and asks which scheme do you want to use.  Select “Visual Studio” or “Resharper 2.x or IntelliJ IDEA” and check the Apply to All.  You can switch to the other schema at any time.


Here’s an image for the visual studio layout.


Visual Studio -> Debug – Start new instance shortcut

Yes, Its as simple as that.


Or If you want to save 5 mouse clicks every time. Continue reading…


Why do that? Because:
– it’s a pain in the bucket to find the console/windows/web application project in solution explorer with your mouse if you are having a tons of projects and you currently work in a library document
– you have to wait for all sorts of timeouts until the right click works due to sourcecontrol/source safe/team foundation operations
– you have to find the Debug item and Start new instance.
– sometimes in speed you might even click something else or move some project to another folder, etc.

What it does is:
– runs the start new instance of the Project selected.

How to use it?

Add in the Options dialog under Environment->Keyboard "ClassViewContextMenus.ClassViewProject.Debug.Startnewinstance" as a shortcut. This starts debugging on the current project.

Visual Studio Options Menu

Visual Studio Options Menu

Tested till visual Studio 2012. Working Fine