Ucap.in, Berbagi ucapan dengan Kartu Digital

Ucap.in!
ucap.in : greet with caring

Mungkin berbagi ucapan dengan kartu lalu dikirim via pos sudah ketinggalan zaman untuk tahun 2012 ini. Berkirim ucapan dengan kartu yang dikirim via pos ini lebih lama sampai di tujuannya. Sekarang semua serba digital, ucapan ulang tahun, Natal dan tahun baru, Lebaran dan lain-lain dikirim via BBM, Twitter, Facebook atau email. Tetapi kartu ucapan dengan kartu selalu lebih mengena kepada yang dikirimkan, rasanya lebih dekat dan personal.

Untuk yang masih suka berkirim kartu, Anda bisa menggunakan layanan situs ucap.in. Ucap.in memungkinkan penggunanya untuk saling berkirim kartu digital yang dikirimkan secara digital diatas platform Twitter. Situs web Ucap.in ini dapat digunakan oleh pengguna secara cuma-cuma alias gratis. Ucap.in cocok sekali untuk event dan waktu tertentu, misalnya ucapan selamat ulang tahun, menikah, kelahiran putra/putri atau hari-hari besar lainnya.

Dengan menggunakan layanan situs web ucap.in ini kita dapat membuat kartu ucapan digital dan dikirimkan via Twitter. Bagi pengguna yang ingin berkirim kartu ucapan digital via ucap.in ini harus mempunyai akun Twitter. Ucap.in tidak menghilangkan yang menjadi khasnya kartu ucapan, pengguna dapat menggunakan stok foto yang sudah disediakan sebagai latar belakang kartu atau juga bisa mengunggah foto dari komputer pengguna sendiri.

Pengguna juga dapat memilih bermacam-macam font untuk mengganti tulisan tangan yang biasa dituliskan di kartu ucapan biasa.

Situs ucap.in ini masih terhitung baru dan sekarang masih dalam fase public beta. Stok foto yang terbagi beberapa kategori masih sedikit. Saat ini pengguna hanya bisa membuat teks di satu area saja, akan lebih baik juga jika mention username Twitter dilengkapi dengan fitur autocomplete untuk menghindari salah ketik username.

Secara keseluruhan, situs ucap.in ini sudah lumayan untuk berkirim kartu digital. Silahkan berbagi ucapan dengan kartu digital dengan ucap.in

original article : http://techno.okezone.com/read/2012/01/10/90/554645/ucap-in-berbagi-ucapan-dengan-kartu-digital

Ayoo… rame-rame cobain ucap.in!! :)

Popularity: 1% [?]

Share

Meme Marriage Proposal, LIKE A BOSS!

Meme Marriage proposal, you are doing it right!

buat yang suka liat 9gag.com ini wajib tonton, yang gak suka 9gag.com, buka 9gag.com dan tonton video ini…

as seen on 9gag… http://9gag.com/gag/1183386

keren dan romantis sekali… *ah stupid dust in my eye* ihiik…

Popularity: 2% [?]

Share

Alasan Menggunakan PHP Framework

Baru-baru ini ada kesempatan diskusi dengan orang soal penggunaan php framework dengan akademisi dengan latar belakang pemrograman java, mengapa perlu menggunakan php framework, apa gunanya php framework. Diskusinya lumayan menggoyahkan iman :p

Posting kali ini adalah jawaban dan kesimpulan saya soal ini, yang kebetulan belum bisa saya utarakan waktu diskusi tempo hari. Kalau mas dan mbak semua ditanya kenapa menggunakan framework/tidak menggunakan framework, apa jawabannya? Pasti jawabannya beragam. Berikut jawaban populer yang saya dapatkan dari survey kecil2an via Y!m dengan temen2.

Kenapa pake framework?

  • “Coding lebih cepat, biasanya pake framework jadi nulis good code”
  • “Framework X base penggunanya banyak, community besar”
  • “Kalau ukuran project/aplikasi besar lebih mudah dengan framework”
  • “Biar gak reinvent the wheel, reuse code”
  • “dan lain-lain, dan sebagainya, dan teman-temannya… “

Kenapa tidak menggunakan framework?

  • “Framework gak transparan, banyak activity yang di hidden”
  • “Framework gak fleksibel, terus konvensinya beda-beda”
  • “Ga punya full control atas framework, mending bikin sendiri”
  • “dan lain-lain, dan sebagainya, dan teman-temannya… “

Pro dan kontra soal ini memang gak ada habisnya. IMHO, poin2 diatas gak sepenuhnya bener. Coding cepat itu relatif dan pake framework juga belum tentu kita bisa nulis good code. Pengguna framework X banyak juga bukan alasan tepat kita menggunakan framework, tapi ini bisa jadi alasan pertimbangan memilih framework. Ukuran aplikasi yang akan di develop juga bukan tolak ukur penggunaan framework, besar kecil aplikasi bisa di develop menggunakan/tidak menggunakan f/w. Reuse code ini juga relatif, yang tidak pake framework juga pasti punya koleksi class/function bukan?

Kalo dibilang framework itu banyak activity yang di hidden, saya gak setuju, tinggal di trace saja, corenya ada kok, gak sreg ya tinggal modifikasi aja. Konvensi tiap framework beda-beda itu jelas, gak hanya di PHP kan ya? Di Java pun begitu, Spring misalnya pasti beda dengan f/w lainnya di java. Kalo kata mas @neofreko sih bikin apa2 sendiri itu buat orang masih muda aja, kalo yang dewasa ini harusnya bijaksana, lagipula development time kan juga jadi pertimbangan besar.

Ini poin-poin yang jadi kesimpulan saya mengapa menggunakan framework :

  • Mudah dimaintain dan konsisten
  • Development time lebih cepat dengan menggunakan framework
  • Stable and Less Error

Alasan dan penjelasannya kira-kira gini :

  • Mudah dimaintain dan konsisten, ini karena framework sudah ada konvensinya. Aspek ini menurut saya penting jika bekerja dengan tim yang terdiri dari beberapa orang atau anggota tim yang berganti-ganti (as they always do). Dengan adanya konvensi ini debugging lebih mudah dilakukan, alurnya sudah jelas. Ya memang konvensi tiap framework beda-beda, tapi itu bukan masalah menurut saya.
  • Dengan menggunakan framework, development time juga akan lebih cepat. Framework simplify things. Dengan menggunakan framework kita memangkas waktu mengerjakan library basic yang mutlak diperlukan, misal database connectivity, security, session management. Untuk developer yang baru masuk tim pun tidak akan terlalu banyak makan waktu untuk ikut develop langsung dengan membaca dokumentasi dan contoh penggunaan f/w (apalagi f/w yang digunakan termasuk populer).
  • Framework jelas stable dan less error. Apa jaminannya? Cek di websitenya, tiap framework ada testnya. Kalo bikin sendiri error prone alias rawan error.

Kalo kata mas @neofreko lagi sih. “Siapa yang mau bikin ACL (Access Control List) sendiri? cuman orang gila yang mau bikin sendiri” :p

Tapi semuanya balik lagi soal kebijakan dan/atau kasus/aplikasi yang akan dikerjakan. Yaah itu pendapat saya soal alasan penggunaan framework untuk development, boleh setuju boleh juga gak setuju. Silahkan komentar yang setuju dan gak setuju di form komentar dibawah ini… ;)

Selamat makan siang semuanya :)

Popularity: 2% [?]

Share

CodeIgniter Session Problem

“Why my user session keep expiring?” “Why CodeIgniter session expires when the page refreshed?

Bagi yang sudah sering menggunakan CI biasanya pernah mengalami masalah session problem ini. Usut punya usut dan cari punya cari, ternyata banyak juga yang mengalami masalah serupa. Di forum CodeIgniter pun ada beberapa thread yang posting masalah ini. Kenapa sessionnya expired terus? Atau malah tidak bekerja dengan semestinya di Internet Explorer versi lawas sedangkan di browser lain tidak masalah.

Banyak yang bilang session class si CI ini unreliable. Well, yes it is. I couldn’t agree more with it. CodeIgniter membuat session class-nya ini tidak menggunakan native session-nya PHP, tetapi CI generate sendiri session data mereka. Alasannya agar session lebih fleksibel bagi developer.

Untuk masalah diatas, ini salah satu workaround-nya. Menggunakan external library yang dibikin oleh mas Dariusz Debowczyk yang cerdas nan brilian. Skrip session class-nya dapat diunduh di tautan berikut (atau di akhir post ini) :

http://codeigniter.com/wiki/Dariusz_Debowczyk%27s_Session_Class

Cara menggunakannya cukup simpel, copy dan paste skrip lalu save di direktori “libraries” dengan nama Session.php. Kemudian tinggal panggil library seperti biasa, $this->load->library(“session”); atau didefinisikan di file config/autoload.php di option library-nya. Problem solved! :)

Menurut posting di thread forum CI, library ini berjalan pada CodeIgniter versi 1 dan 2. Saya sudah coba gunakan dan jalan baik-baik saja di versi 2. Di bawah ini skrip session class mas Darius saya kutip untuk mempermudah copy dan pastenya.

</span>
<pre><!--?php  if (!defined('BASEPATH')) exit('No direct script access allowed'); /?-->  makes dw cs4 happy

/**
* Session class using native PHP session features and hardened against session fixation.
*
* @package     CodeIgniter
* @subpackage  Libraries
* @category    Sessions
* @author      Dariusz Debowczyk, Matthew Toledo
* @link        http://www.philsbury.co.uk/index.php/blog/code-igniter-sessions/
*/
class CI_Session {

    var $flashdata_key     = 'flash'; // prefix for "flash" variables (eg. flash:new:message)

    function CI_Session()
    {
        $this->object =& get_instance();
        log_message('debug', "Native_session Class Initialized");
        $this->_sess_run();
    }

    /**
    * Regenerates session id
    */
    function regenerate_id()
    {
        // copy old session data, including its id
        $old_session_id = session_id();
        $old_session_data = $_SESSION;

        // regenerate session id and store it
        session_regenerate_id();
        $new_session_id = session_id();

        // switch to the old session and destroy its storage
        session_id($old_session_id);
        session_destroy();

        // switch back to the new session id and send the cookie
        session_id($new_session_id);
        session_start();

        // restore the old session data into the new session
        $_SESSION = $old_session_data;

        // update the session creation time
        $_SESSION['regenerated'] = time();

        // session_write_close() patch based on this thread
        // http://www.codeigniter.com/forums/viewthread/1624/
        // there is a question mark ?? as to side affects

        // end the current session and store session data.
        session_write_close();
    }

    /**
    * Destroys the session and erases session storage
    */
    function destroy()
    {
        unset($_SESSION);
        if ( isset( $_COOKIE[session_name()] ) )
        {
            setcookie(session_name(), '', time()-42000, '/');
        }
        session_destroy();
    }

    /**
    * Alias for destroy(), makes 1.7.2 happy.
    */
    function sess_destroy()
    {
        $this->destroy();
    }

    /**
    * Reads given session attribute value
    */
    function userdata($item)
    {
        if($item == 'session_id'){ //added for backward-compatibility
            return session_id();
        }else{
            return ( ! isset($_SESSION[$item])) ? false : $_SESSION[$item];
        }
    }

    /**
    * Sets session attributes to the given values
    */
    function set_userdata($newdata = array(), $newval = '')
    {
        if (is_string($newdata))
        {
            $newdata = array($newdata => $newval);
        }

        if (count($newdata) > 0)
        {
            foreach ($newdata as $key => $val)
            {
                $_SESSION[$key] = $val;
            }
        }
    }

    /**
    * Erases given session attributes
    */
    function unset_userdata($newdata = array())
    {
        if (is_string($newdata))
        {
            $newdata = array($newdata => '');
        }

        if (count($newdata) > 0)
        {
            foreach ($newdata as $key => $val)
            {
                unset($_SESSION[$key]);
            }
        }
    }

    /**
    * Starts up the session system for current request
    */
    function _sess_run()
    {
        session_start();

        $session_id_ttl = $this->object->config->item('sess_expiration');

        if (is_numeric($session_id_ttl))
        {
            if ($session_id_ttl > 0)
            {
                $this->session_id_ttl = $this->object->config->item('sess_expiration');
            }
            else
            {
                $this->session_id_ttl = (60*60*24*365*2);
            }
        }

        // check if session id needs regeneration
        if ( $this->_session_id_expired() )
        {
            // regenerate session id (session data stays the
            // same, but old session storage is destroyed)
            $this->regenerate_id();
        }

        // delete old flashdata (from last request)
        $this->_flashdata_sweep();

        // mark all new flashdata as old (data will be deleted before next request)
        $this->_flashdata_mark();
    }

    /**
    * Checks if session has expired
    */
    function _session_id_expired()
    {
        if ( !isset( $_SESSION['regenerated'] ) )
        {
            $_SESSION['regenerated'] = time();
            return false;
        }

        $expiry_time = time() - $this->session_id_ttl;

        if ( $_SESSION['regenerated']  $newval);
        }

        if (count($newdata) > 0)
        {
            foreach ($newdata as $key => $val)
            {
                $flashdata_key = $this->flashdata_key.':new:'.$key;
                $this->set_userdata($flashdata_key, $val);
            }
        }
    }

    /**
    * Keeps existing "flash" data available to next request.
    */
    function keep_flashdata($key)
    {
        $old_flashdata_key = $this->flashdata_key.'<img src='http://hadiariawan.web.id/smilies/yahoo_ooooh.gif' alt='&#58;&#111;' class='wp-smiley' width='18' height='18' title='&#58;&#111;' />ld:'.$key;
        $value = $this->userdata($old_flashdata_key);

        $new_flashdata_key = $this->flashdata_key.':new:'.$key;
        $this->set_userdata($new_flashdata_key, $value);
    }

    /**
    * Returns "flash" data for the given key.
    */
    function flashdata($key)
    {
        $flashdata_key = $this->flashdata_key.'<img src='http://hadiariawan.web.id/smilies/yahoo_ooooh.gif' alt='&#58;&#111;' class='wp-smiley' width='18' height='18' title='&#58;&#111;' />ld:'.$key;
        return $this->userdata($flashdata_key);
    }

    /**
    * PRIVATE: Internal method - marks "flash" session attributes as 'old'
    */
    function _flashdata_mark()
    {
        foreach ($_SESSION as $name => $value)
        {
            $parts = explode(':new:', $name);
            if (is_array($parts) && count($parts) == 2)
            {
                $new_name = $this->flashdata_key.'<img src='http://hadiariawan.web.id/smilies/yahoo_ooooh.gif' alt='&#58;&#111;' class='wp-smiley' width='18' height='18' title='&#58;&#111;' />ld:'.$parts[1];
                $this->set_userdata($new_name, $value);
                $this->unset_userdata($name);
            }
        }
    }

    /**
    * PRIVATE: Internal method - removes "flash" session marked as 'old'
    */
    function _flashdata_sweep()
    {
        foreach ($_SESSION as $name => $value)
        {
            $parts = explode('<img src='http://hadiariawan.web.id/smilies/yahoo_ooooh.gif' alt='&#58;&#111;' class='wp-smiley' width='18' height='18' title='&#58;&#111;' />ld:', $name);
            if (is_array($parts) && count($parts) == 2 && $parts[0] == $this->flashdata_key)
            {
                $this->unset_userdata($name);
            }
        }
    }
}

I hope this post helps you. Have a nice weekend :)

Popularity: 2% [?]

Share

Game BlackBerry Caro yang Bikin Addicted

Game BlackBerry Caro yang Bikin Addicted

Game BlackBerry Caro yang Bikin Addicted

Setelah bulan Juli lalu RIM merilis BBM (BlackBerry Messenger) SDK (Software Development Kit), aplikasi yang memanfaatkan BBM ini mulai bermunculan di App World. Tidak terkecuali game yang memanfaatkan BBM.

Satu yang cukup menarik dan cukup seru untuk dimainkan adalah Caro. Aplikasi game ini dibuat oleh Louis Tang, software developer berkebangsaan Vietnam. Caro baru saja dirilis tanggal 22 Agustus 2011 lalu tetapi penggunanya sampai dengan hari ini sudah 250 ribu lebih.

Caro adalah game yang mirip dengan TicTacToe dengan grid yang lebih luas, yaitu 15×15. Pemenangnya adalah yang dapat menghubungkan simbol O atau X sebanyak 5 titik. Terintegrasinya game ini dengan BBM, memungkinkan pengguna untuk bermain game ini dengan kontak BBM.

Caranya untuk mulai bermain adalah dengan mengundang salah satu kontak BBM yang juga memiliki game Caro ini, setelah lawan main menerima undangan maka permainan bisa dimulai.

Caro akan mencatat statistik kemenangan, kekalahan, draw/seri dan level. Statistik ini dipublikasikan di papan ranking (http://caro.dauden.vn/record.php). Selain terintegrasi dengan BBM, Caro juga bisa dihubungkan dengan akun facebook yang memungkinkan untuk memasang aktivitas Caro di dinding facebook.

Untuk memainkan game Caro, BlackBerry harus memenuhi syarat sebagai berikut:

- Koneksi Internet
- BlackBerry ID (untuk login)
- OS 5++
- BlackBerry Messenger versi 6++

Setelah kebutuhan terpenuhi lalu download dan install Caro di BlackBerry. Game Caro ini bisa diunduh di link ini atau cari “Caro” di BlackBerry AppWorld.

Singkatnya game Caro ini cukup bagus dan layak dicoba. Caro bisa dimainkan sendirian secara offline tetapi sangat seru jika dimainkan dengan teman kontak BBM. Saat tulisan ini dibuat ada 771 reviews yang sudah disubmit di AppWorld yang hampir keseluruhan komentar positif dan ada 3123 likes di Facebook pagenya. Informasi lengkap tentang Caro bisa dilihat di homepage Caro.

Original Post : http://techno.okezone.com/read/2011/09/30/92/509260/game-blackberry-caro-yang-bikin-addicted

Popularity: 3% [?]

Share

Tentang Es Doger

Es Doger

Ilustrasi : Es Doger

Kita pasti sering minum jenis es yang satu ini, yang jual banyak sekali dimana-mana. Tapi tahukah kalian asal usul es doger ini? Menikmati es doger ini akan lebih maknyus kalo kita juga ngerti asal usulnya, lega rasanya :D

Cerita mengenai asal usul es doger ini simpang siur dan belum bisa dibilang valid. Katanya es doger ini dicetuskan pertama kali oleh orang sunda, tepatnya orang Garut yang merantau di Jakarta. Pertama si tukang es doger ini jualan dengan cara digendong.. maksudnya dipikul, tapi dalam prakteknya jualan dengan cara seperti ini lebih capek dan kebetulan tidak laku-laku. Lalu si tukang es doger ini mempunyai ide berjualan es dengan gerobak yang didorong. Kemudian dia pun mencetuskan nama es ini dengan ES DOGER alias Es Dorong Gerobak.

Walaupun es doger ini katanya dari idenya orang sunda tapi es doger ini termasuk aneka minuman yang populer di betawi, Jakarta. Es doger ini juga masuk ke dalam website Lembaga Kebudayaan Betawi. Selengkapnya bisa dibaca disini. Singkatnya adalah Es Doger minuman khas betawi. Es Doger ini juga sering disajikan dalam acara-acara besar, seperti syukuran, sunatan sampai dengan pernikahan.

Berikut ini adalah resep dan bahan-bahan yang diperlukan untuk membuat es doger.

Resep Minuman – Es Doger

Siang-siang minum Es Doger, nikmatnya tak terkira. Apalagi kalau bikinan sendiri…lebih puas segar dan sedapnya.

Bahan Es Doger :

1 liter santan agak cair
250 gram gula pasir (atau sesuai selera, kalau enggak mau terlalu manis)
pewarna merah secukupnya
2 butir kelapa muda surut halus

Pelengkap :

Tape singkong (kalau suka)
Merah delima, rebus dan tiriskan
Tape ketan Hitam (kalau suka)
Susu Kental manis

Cara membuat Es Doger :

Rebus santan dan gula sambil aduk terus, sampai mendidih, kemudian angkat dari api sambil diaduk terus.
Setelah dingin masukan ke ke frezeer, sampai agak beku, serut dan mixer, begitu sampai 2-3 kali.
Pada mixeran yang terakhir, campurkan serutan kelapa muda dan pewarna merah.

Cara penyajian Es Doger :

Tuan pelangkap ke dalam gelas saji
Tambahkan kerokan Ice Santan
Tuang susu kental manis kalau suka

Demikian informasi seputar es doger, selamat menikmati es doger… :)

More to read :

Gambar diambil tanpa ijin dari :

http://a-09art.deviantart.com/art/Es-Doger-159254490

Popularity: 5% [?]

Share

Level Baru Angry Birds di Indonesia

Siapa yang gak tau game keluaran Rovio ini? Angry Birds. Game populer ini baru saja mengeluarkan add-on untuk game mereka berupa map atau level baru dengan lokasi di Indonesia. Update ini hanya berlaku untuk pengguna game ini yang berada di Indonesia. Lokasi baru ini berada di Indonesia? Iya.. di Indonesia, lebih tepatnya lagi di Jakarta. How cool is that?

Untuk menikmati level baru ini pengguna cukup mengkontak perwakilan rovio untuk game angry birds di Indonesia, yang kebetulan dan tidak lain dan tidak bukan adalah saya sendiri :) Silahkan kontak via email atau via blog ini pun tidak masalah. Bagi yang tidak sabar dengan map atau level baru ini, saya akan sertakan screenshot teaser dari new level of angry birds in Indonesia ini.

New Level Map of Angry Birds

New Level Map of Angry Birds

Keren sekali bukan? Setelah lobby melobby saya pun berhasil meyakinkan mereka bahwa lokasi construction site MNC Tower 2 di depan Masjid Bimantara ini memang pantas diangkat dan dimasukkan ke dalam game mobile terpopuler saat ini. Luar biasa sekali. Alhamdulillah yah… Ini sesuatu banget:)

Press releasenya menyusul nanti. Silahkan komentar dan masukannya untuk map dan level baru angry birds ini.

Tertanda,

 

Hadi Ariawan (Perwakilan Rovio Indonesia)

 

Note:

J/k. Please don’t take this seriously :p

 

Popularity: 6% [?]

Share