Ubuntu Wins again

In General on August 13, 2012 by patrellery

Ubuntu Wins again,

Would you spend money on something that has bugs? No of course, here’s a story about a smart school teacher.


what is really css3 box-shadow

In CSS3 on June 17, 2012 by patrellery Tagged:

most people still create crappy images for shadows. so to make it simple, and easy let’s just use the shadow properties:

box-shadow: 10px 10px 5px #888888;

so what this really means:
Read More »


Ident Code in Textarea

In jQuery on December 21, 2011 by patrellery Tagged: ,

How many times you wanted to use the tab in your textarea ?

I’m sure a lot!

Here’s a very simple jQuery code that will allow to use the TAB key in a textarea!

$(document).ready(function(e) {

// Using the
$('').keydown(function(e) {
if(e.keyCode == 9) {
var start = $(this).get(0).selectionStart;
$(this).val($(this).val().substring(0, start) + "\t" + $(this).val().substring($(this).get(0).selectionEnd));
$(this).get(0).selectionStart = $(this).get(0).selectionEnd = start + 1;
return false;

// Using Spaces
$('').keydown(function(e) {
if(e.keyCode == 9) {
var start = $(this).get(0).selectionStart;
$(this).val($(this).val().substring(0, start) + " " + $(this).val().substring($(this).get(0).selectionEnd));
$(this).get(0).selectionStart = $(this).get(0).selectionEnd = start + 4;
return false;

View the full article at


Custom @Font-Face in CSS3

In CSS3 on November 24, 2011 by patrellery Tagged:

Here’s a quick tip on how to display fonts in your page:

Download the font:

And use this code in your CSS file:

@font-face {
font-family: 'HattoriHanzoLight';
src: url('hattori_hanzo.otf') format('opentype');
font-weight: normal;
font-style: normal;

Then in your HTML:

some content!


Encryption & decryption with AES/ECB/PKCS7Padding in Java

In Java on November 20, 2011 by patrellery Tagged: ,

If you ever wonder how to encrypt and decrypt AES/ECB/PKCS7Padding in Java, here’S a little script that you need to use:

Read More »


RSA Encryption-Decryption in iphone

In iPhone on October 17, 2011 by patrellery


@interface NSString (NSStringAdditions)

+ (NSString *) base64StringFromData:(NSData *)data length:(int)length;
- (NSString *) base64StringWithHMACSHA1Digest:(NSString *)secretKey;



#import "NSStringAdditions.h"

static char base64EncodingTable[64] = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'

@implementation NSString (NSStringAdditions)

- (NSString *) base64StringWithHMACSHA1Digest:(NSString *)secretKey {
unsigned char digest[CC_SHA1_DIGEST_LENGTH];
char *keyCharPtr = strdup([secretKey UTF8String]);
char *dataCharPtr = strdup([self UTF8String]);

CCHmacContext hctx;
CCHmacInit(&hctx, kCCHmacAlgSHA1, keyCharPtr, strlen(keyCharPtr));
CCHmacUpdate(&hctx, dataCharPtr, strlen(dataCharPtr));
CCHmacFinal(&hctx, digest);
NSData *encryptedStringData = [NSData dataWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];


return [NSString base64StringFromData:encryptedStringData length:[encryptedStringData length]];

+ (NSString *) base64StringFromData: (NSData *)data length: (int)length {
unsigned long ixtext, lentext;
long ctremaining;
unsigned char input[3], output[4];
short i, charsonline = 0, ctcopy;
const unsigned char *raw;
NSMutableString *result;

lentext = [data length];
if (lentext < 1)
return @"";
result = [NSMutableString stringWithCapacity: lentext];
raw = [data bytes];
ixtext = 0;

while (true) {
ctremaining = lentext - ixtext;
if (ctremaining <= 0)
for (i = 0; i < 3; i++) {
unsigned long ix = ixtext + i;
if (ix > 2;
output[1] = ((input[0] & 0x03) <> 4);
output[2] = ((input[1] & 0x0F) <> 6);
output[3] = input[2] & 0x3F;
ctcopy = 4;

switch (ctremaining) {
case 1:
ctcopy = 2;
case 2:
ctcopy = 3;

for (i = 0; i < ctcopy; i++)
[result appendString: [NSString stringWithFormat: @"%c", base64EncodingTable[output[i]]]];

for (i = ctcopy; i 0) && (charsonline >= length))
charsonline = 0;

return result;



Convert XML Object to Array in PHP

In PHP on October 15, 2011 by patrellery

Here’s a very simple way to convert an XML Object to an array in PHP.

$string = '
    <message>Message 1</message>
    <message>Message 1</message>

$xml = json_decode(json_encode((array)simplexml_load_string($string)), TRUE);

easy no?


Find user’s timezone with PHP and Ajax

In PHP on October 14, 2011 by patrellery

Here’s a simple function to find out what is the user’s timezone in PHP

<script type="text/javascript" src=""></script>
<script type="text/javascript">
$(document).ready(function() {
var visitortime = new Date();
var visitortimezone = "GMT " + -visitortime.getTimezoneOffset()/60;
type: "GET",
url: "",
data: 'time='+ visitortimezone,
success: function(){

and then on your php file:
$_SESSION['time'] = $_GET['time'];


$this vs $(this) in jQuery

In jQuery on October 11, 2011 by patrellery

How many times we try to use this and we need to use $(this) and vice versa? Well here’s a quick explanation on how to differentiate these two objects
Read More »


Most efficient way to empty an element with jQuery

In jQuery on October 9, 2011 by patrellery

There’s more than one way to empty an element with jQuery.


These are all valid but might not be as efficient as the empty() function.


This is definitely the most clear way, and almost definitely the most efficient because by definition these call the empty() in their implementation. In addition, they invoke html parsers rather than just dealing with dom nodes like the other methods.

So go check your code now!