Programming and Exciting Things

The Economy of Coca-Cola

Published on 31.08.2012

Console.log грешки

Published on 30.08.2012

Един маалък трик който може да е от полза при забравен console.log някъде из кода

if(typeof(console) === 'undefined') {
    var console = {}
    console.log = console.error = console.info = console.debug = console.warn = console.trace = console.dir = console.dirxml = console.group = console.groupEnd = console.time = console.timeEnd = console.assert = console.profile = function() {};
}

Androd add shadow to TextView

Published on 28.08.2012

Да добавим малко shadow на TextView елемент:

<TextView
            android:id="@+id/header_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:shadowColor="#7F000000"
            android:shadowDx="1"
            android:shadowDy="1"
            android:shadowRadius="2"
            android:text="TEXT TO SHOW"
            android:textColor="#FBFBFB"
            android:textSize="14dp"
            android:gravity="center"
            android:textStyle="bold" />

Android sqlite database browser on Eclipse

Published on 27.08.2012

Докато си пиша андроид приложението ми се наложи да проверя дали все пак insert-вам правилно в sqlite базата данни едни данни. След малък research намерих един plugin: Questoid SQLite Browser, който може да се изтегли от тук

1. Инсталира се като се разархивира в директорията за plugins на Eclipse примерно D:\eclipse\plugins
2. Рестартираме Eclipse-а
3. Стартираме андроид емулатора
4. Премиваме към DDMS перспективата
5. Кликаме на File Explorer таб-а, намираме файла с базата ни данни най-вероятно в "data -> data -> com.moy_proekt -> databases -> ...."
6. След това кликаме на OpenFile in Sqlite browser
7. Това е :)

[js] Jquery Count Down plugin

Published on 14.08.2012

Един набързо драснат плъгин за countdown

(function($) {
    $.countdwn = function(element, options) {
        var defaults = {
        	time_end 	: '',
            onStart 	: function(){}
        };
        var plugin = this;
        plugin.settings = {};
        var $element = $(element);
        plugin.init = function() {
            plugin.settings = $.extend({}, defaults, options);
            start_count();
            plugin.settings.onStart();
        };
       
        var count = function() {
        	now = Math.round((new Date()).getTime() / 1000);
        	seconds = dateDiff(now,plugin.settings.time_end/ 1000);
        	seconds.h = seconds.h + (seconds.d*24);
        	hours = str_pad(seconds.h,2,'0','STR_PAD_LEFT').split("");
        	min = str_pad(seconds.m,2,'0','STR_PAD_LEFT').split("");
        	scn = str_pad(seconds.s,2,'0','STR_PAD_LEFT').split("");
        	$element.find('.hours_dash').find('.digit:eq(0)').html(hours[0]);
        	$element.find('.hours_dash').find('.digit:eq(1)').html(hours[1]);
        	$element.find('.minutes_dash').find('.digit:eq(0)').html(min[0]);
        	$element.find('.minutes_dash').find('.digit:eq(1)').html(min[1]);
        	$element.find('.seconds_dash').find('.digit:eq(0)').html(scn[0]);
        	$element.find('.seconds_dash').find('.digit:eq(1)').html(scn[1]);
        	start_count();
        };
        var  dateDiff = function( str1, str2 ) {
        	str2 = str2 * 1000;
        	str1 = str1 * 1000;
        	var diff = str2 - str1; 
        	return isNaN( diff ) ? NaN : {
                diff : diff,
                ms : Math.floor( diff            % 1000 ),
                s  : Math.floor( diff /     1000 %   60 ),
                m  : Math.floor( diff /    60000 %   60 ),
                h  : Math.floor( diff /  3600000 %   24 ),
                d  : Math.floor( diff / 86400000        )
            };
        };
        var start_count = function(){
        	setTimeout(function(){ count(); }, 1000);
        };
        // ами същата функционалност както php str_pad :)
        var str_pad = function(input, pad_length, pad_string, pad_type) {
            var half = '',pad_to_go;
            var str_pad_repeater = function (s, len) {
                var collect = '';
                while (collect.length < len) {
                    collect += s;
                }
                collect = collect.substr(0, len);
                return collect;
            };
            input += '';
            pad_string = pad_string !== undefined ? pad_string : ' ';
            if (pad_type != 'STR_PAD_LEFT' && pad_type != 'STR_PAD_RIGHT' && pad_type != 'STR_PAD_BOTH') {
                pad_type = 'STR_PAD_RIGHT';
            }
            if ((pad_to_go = pad_length - input.length) > 0) {
                if (pad_type == 'STR_PAD_LEFT') {
                    input = str_pad_repeater(pad_string, pad_to_go) + input;
                } else if (pad_type == 'STR_PAD_RIGHT') {
                    input = input + str_pad_repeater(pad_string, pad_to_go);
                } else if (pad_type == 'STR_PAD_BOTH') {
                    half = str_pad_repeater(pad_string, Math.ceil(pad_to_go / 2));
                    input = half + input + half;
                    input = input.substr(0, pad_length);
                }
            }
            return input;
        };
        plugin.init();
    };
    $.fn.countdwn = function(options) {
        return this.each(function() {
            if (undefined == $(this).data('countdwn')) {
                var plugin = new $.countdwn(this, options);
                $(this).data('countdwn', plugin);
            }
        });
    };
})(jQuery);
html частта може да изглежда по следния начин:
<div id="timerche" class="timer">
		<div class="timer2" style="height: 26px; overflow: hidden;">
			<div class="timer3" style="padding-left: 35px;">
				<div class="dash hours_dash">
					<span class="digit">0</span> <span class="digit">0</span>
				</div>
				<div class="dash">:</div>
				<div class="dash minutes_dash">
					<span class="digit">0</span> <span class="digit">0</span>
				</div>
				<div class="dash">:</div>
				<div class="dash seconds_dash">
					<span class="digit">0</span> <span class="digit">0</span>
				</div>
				<div class="klear"></div>
			</div>
		</div>
	</div>
а използването на плъгина да става така
var ts = 1345064399*1000; # timestamp * 1000
$('#timerche').countdwn({time_end:ts});