Programming and Exciting Things

Разни

Published on 29.09.2014

Тази година успях да се разболея, като вината за това хвърлям на цяла софия, която е тръгнала на работа в метрото кашляйки и кихайки. И така това доведе до една седмица затвор в софийската си квартира, жалкото беше че заедно с температурата имах и някакво главоболие та не успях да свърша нищо по време на боледуването си. Всъщност тук е мястото да отбележа че благодаря много на Happy за това че доставят храна до вкъщи и че може да си я платиш online с карта докато си я поръчваш, не знам как щях да оцеля без тях.
От друга страна мога да се похваля че съм на финалната права по пускането на андроид приложение за baby-cares.com, като мисля че се получи доста приятно почти всичко е достъпно offline и се синхронизира в момента в който смартфона/таблета се добере до wifi интернет.
Бях планирал да "hate"-на повечето от php framework-чета но след като се разболях нещо нямам много желание а и време да го правя, та ще го отложа за кратко. Въпреки, че все още ми е чудно как хора с N-на брой години опит с php не могат да пишат чисти sql заявки а разчитат единствено и само на ORM библиотеката в даден framework :D

От утре силно се надявам да успея да си възобновя посещенията във фитнес залата, покрай местенето, новата работа и другите ангажименти бях намалил доста сериозно тези занимания.

Activete SPDY in nginx

Published on 28.09.2014

From last month every project that i have with SSL is serving under SPDY module in nginx server.
In nginx it is fairly easy task: in your config file just add


server {	
listen 443 ssl spdy;		
ssl on;
ssl_certificate /etc/nginx/ssl/..../ssl-bundle.crt;    
ssl_certificate_key /etc/nginx/ssl/.../domain.key;	
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;		
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";    
add_header Alternate-Protocol  443:npn-spdy/3.1;	    
......

}

More information for SPDY can be found at : http://en.wikipedia.org/wiki/SPDY

Enable and use php opcache.

Published on 14.09.2014

While APC was the one of most used php cache from version 5.4 PHP has a built opcode cache. Without this type of caching every user "hit" invoke runtime compiler which is generate intermediate code and then execute it. The role of cache engine is to generate and save intermediate code into shared memory. In fact we don't need to generate same and same intermediate code if it's not changed from last execution. Using a opcache will cause dramatic performance speedup and will reduce memory consumption on server side.
For using builtin opcache in php we must edit

php.ini
file and remove some comments like this:
[opcache]
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=64
opcache.max_accelerated_files=2000
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.save_comments=0
opcache.load_comments=0
opcache.fast_shutdown=1
and after that just restart php5-fpm process for nginx servers or if you are using apache2 restart apache server:
service php5-fpm restart
That is :)
You can check if it's enabled by typing
php -v
and result must be like:
root@eureka:~# php -v
PHP 5.5.9-1ubuntu4.4 (cli) (built: Sep  4 2014 06:56:34)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
If you want to watch simple stats about opcache you can check this script https://github.com/rlerdorf/opcache-status/blob/master/opcache.php
For more information about opcache visit https://wiki.php.net/rfc/optimizerplus

Get result from started activity in Android

Published on 07.09.2014

Our scenario is: FirstActivity call SecondActivity and when SecondActivity is finish his job we must pass some data to FirstActivity.
For this we are starting SecondActivity like that:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 901);
Before we "finish" SecondActivity we must set some data like
Intent returnIntent = new Intent();
returnIntent.putExtra("data",EXTRA_DATA_HERE);
setResult(RESULT_OK,returnIntent);
finish();

Or if we don't want to return data / just like if something is wrong
setResult(RESULT_CANCELED, new Intent());
finish();

And after that in our FirstActivity class we must write something like:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 901) {
        if(resultCode == RESULT_OK){
            String result=data.getStringExtra("data");
        }
        if (resultCode == RESULT_CANCELED) { // we don't have data		
        }
    }
}

More information about Activities in Android can be found at Android developer documentation.

Лични

Published on 06.09.2014

Оказва се, че не съм писал от няколко месеца, като това си има своето естествено обяснение.
През изминалите няколко месеца около мен се случиха няколко интересни неща, най-голямото може би, е че след година и няколко месеца реших да си сменя работата. Мотивите ми да се реша на такава стъпка е че предпочитам да работя по скоро по backend отколкото frontend неща и налгласянето на пиксели не е за мен а и може би позигубих онзи ентусиазъм от правенето на cloud storage. Надявам се това решение да е положително за понататъчното ми развитие.
От началото на този месец вече съм част от сплотеният екип на eDesign. Въпреки, че съм там от няколко дена (да нямах почивка м/у напускането и почването на новата работа) започнах с доста забавни проекти, за които обещавам да споделям по-често.
Надявам се скоро да публикувам и други андроид приложения, които ще имат по-интересен за мен лично таргет и няма да са толкова специализирани.
Отделно вече съм и в нова квартира, няма го вече шумният Студентски :) което ме радва изключително много, най-малкото вече си се наспивам нормално и я няма чалгата която да се лее около мен.
Пропътувах малко до Гърция/Турция и както повелява традицията поизпекох се на гръцките плажове.
Прекъснах за малко фитнеса по време на местенето и новата работа но от другата седмица в седмичния ми график е отделено време и за него. Все пак трябва да имаме и някаква физическа активност нали? :)
И накрая нека да завърша с една любима моя песен: