This article from Xbitlabs which describes a detail about AMD Socket AM3 mini-ITX platform highlights the importance of underclocking the CPU in certain circumstances.
I didn't realize the benefits of underclocking previously. However, it's now clear that the reduced power consumption and heat obtained from underclocking opens new opportunity for several constrained systems. For example, for mobility applications and industrial application where the need for ultimate number-crunching capabilities are not the top priority.
One of the mobility application could be a mobile robot with constrained supply of energy with number-crunching need above the Intel Atom territory but could be met by an underclocked Athlon II X2.
In industrial application, it could be a process control board with high enough number-crunching needs but required to be in certain thermal envelope which could not be met by Intel Atom.
Another possibility tempting possibility is underclocking Intel Atom to be used in applications where high performance ARM/MIPS chips do not met the required performance characteristics, or certain x86-tuned code would be more suitable than porting the code to ARM/MIPS architecture.
Well, this is another possible solution that system designers could exploit in certain circumstances.
Sunday, May 2, 2010
Adaptive Huffman FGK Algorithm Musing
A short test of the FGK adaptive Huffman algorithm described in J.S. Vitter's paper reveals that the single pass compression algorithm described in the paper (http://www.cs.duke.edu/~jsv/Papers/Vit87.jacmACMversion.pdf) doesn't update the frequency value in the root of the tree. However, it's not that important because what we need from the tree is only the encoding for every leaf in the tree, i.e. the encoding for the symbols.
The study of various compression algorithm in my spare time mostly motivated by curiosity and the possible use of such a knowledge in future reverse engineering tasks.
The study of various compression algorithm in my spare time mostly motivated by curiosity and the possible use of such a knowledge in future reverse engineering tasks.
Friday, March 19, 2010
Fooling around with Ioquake3 game engine
I am a big fan of the Quake 3 Arena (Q3A) game. I stumbled upon the Ioquake3 opensource Q3A game engine. I thought it would be fun to play with the code and see what happened in the game. I decided to mod the Plasma gun effect to use BFG style "bullets". That should increase the level of fun. Well, it turns out I only need to change one line of code. A quick look at code/game/g_weapon.c in the source code is enough to make the change.
This is how the BFG firing function code:
And this is how the Plasma gun firing function code:
Replacing the call to fire_plasma() with a call to fire_bfg() changes the "bullet" coming out from a plasma gun.
However, this is only a quick hack and it only works correctly on arenas which has a real BFG gun. Otherwise the rendering output of the "hacked" plasma gun is incorrect because it only shows swirling black rectangle toward the enemy.
All-in-all it's a nice experience for me :).
This is how the BFG firing function code:
void BFG_Fire ( gentity_t *ent ) {
gentity_t *m;
m = fire_bfg (ent, muzzle, forward);
m->damage *= s_quadFactor;
m->splashDamage *= s_quadFactor;
}
And this is how the Plasma gun firing function code:
void Weapon_Plasmagun_Fire (gentity_t *ent) {
gentity_t *m;
m = fire_plasma (ent, muzzle, forward);
m->damage *= s_quadFactor;
m->splashDamage *= s_quadFactor;
}
Replacing the call to fire_plasma() with a call to fire_bfg() changes the "bullet" coming out from a plasma gun.
However, this is only a quick hack and it only works correctly on arenas which has a real BFG gun. Otherwise the rendering output of the "hacked" plasma gun is incorrect because it only shows swirling black rectangle toward the enemy.
All-in-all it's a nice experience for me :).
Resuming Erratic SVN Checkout
I've just stumbled upon disconnected SVN checkout session in a 3G connection. The whole repository that I was working with is more than 200 MB. Now, what to do? It turns out, you can "resume" the SVN checkout session. Simply cd to the root directory of your incomplete local copy of the repository, carry out an "SVN cleanup" and the proceed "SVN update" to resume the checkout. As simple as that. This is a sample broken session:
To resume the session, I do this:
That's it. If you experience another hiccups, simply "svn cleanup" and "svn update" again. If your connection is very unreliable, you can create a script to automate the process.
darmawan@darkstar:~/tmp$ svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2 --username guest
.. disconnected bla..bla..bla..
To resume the session, I do this:
darmawan@darkstar:~/tmp$ cd edk2
darmawan@darkstar:~/tmp/edk2$ svn cleanup
darmawan@darkstar:~/tmp/edk2$ svn up
That's it. If you experience another hiccups, simply "svn cleanup" and "svn update" again. If your connection is very unreliable, you can create a script to automate the process.
Subscribe to:
Posts (Atom)
