Xedi.Xermawan's Blog

personal-technical blog

Game & App Januari 2016 – April 2016

leave a comment »

  1. Brain Rush : Math and Memory . game simple ( baik game nya sendiri maupun secara technical ) yang melibatkan matematik aritmetik & gambar. di game ini pertama kalinya saya mencoba Google Play Game Services untuk meranking player yang login pakai account G+ mereka (Leaderboard).  sebenarnya ada juga, Achievement, namun nggak saya pakai.
  2. Photo Place . ini adalah sebuah aplikasi demo saja dan tidak berguna. di aplikasi ini, saya mencoba menggunakan Google Place API dan Google Map.  dalam pemakainnya Google Map API gratis dipakai, namun untuk Google Place API gratis dengan adanya batasan penggunaan 1000 request per-hari. kalau ingin unlimited harus bayar.
  3. Photo Puzzle. sesuai namanya, ini adalah game puzzle menyusun gambar/foto yang awalnya diacak. Puzzle akan terpecahkan kalau gambar sudah menjadi utuh. untuk menyusunya, player cukup touch-drag-drop dari posisi awal ke tujuan. App ini berupa game, namun memakai GUI framework-nya Android :p .
  4. Monster KnockDown : Slingshot . Game yang mirip angry bird, yaitu menggunakan slingshot / ketapel untuk menembak target dan juga menggunakan 2D physics engine. Namun game ini memiliki gameplay yang berbeda dengan angry bird. masih versi awal, karena baru saja saya upload tadi pagi ( ~ 1 AM  15/04/2016).

semua ditulis pakai Java, untuk nomor 4, saya pakai LibGdx game engine. pertama kalinya upload game pakai game engine LibGdx. di tahun 2011 pernah mencoba game engine ini, dan sempat buat game juga namun tidak diteruskan :d .  Dalam hal kecepatan pembuatan aplikasi, membuat game dengan Java lebih cepat jadinya, namun secara performance, app/game yang ditulis dengan Java masih kalah dengan app yang ditulis C/C++ ( Fact ! , tidak perlu berdebat :d ) .  persepsi Java : “begini saja sudah lambat”, persepsi C/C++ :”nggak diapa2in sudah cepat” . mungkin ini persepsi salah, kalau saya ngoding Java nya benar. Dalam banyak kasus yang saya temui, hal yang membuat App Java lambat/lag adalah Garbage Collector yang bisa terjadi kapanpun, bahkan ditengah2 gameplay. Dari awal sebaiknya berhati-hati dengan temporary object/ object creation di Java atau kalau perlu pakai Object Pool.

Link Downloads :

  1. https://play.google.com/store/apps/details?id=com.asyncbyte.brain_training
  2. https://play.google.com/store/apps/details?id=async.demo.photoplace
  3. https://play.google.com/store/apps/details?id=com.asyncbyte.photopuzzle
  4. https://play.google.com/store/apps/details?id=com.asyncbyte.knockdown

semua project diatas adalah spare-time project saya dan menggunakan ads untuk monetization ( kecuali app no.2 )

Download ya, hehe..

diketik 15/04/2016 @embuh di atas kereta api Jkt->Sby

Written by XediXermawan

April 15, 2016 at 1:12 pm

Posted in mobile apps

Tagged with , ,

Aplikasi android saya 5 bulan terakhir ini ( Agustus 2015 – Desember 2015 )

leave a comment »

Setelah tertunda beberapa lama , akhirnya saya memiliki google developer account di bulan agustus 2015. Bulan juli saya mulai membuat aplikasi pertama saya yang akan saya upload ke store.
dan saat saya mempunyai account-nya, saya bisa langsung upload apk nya. aplikasi pertama saya adalah Transjakarta Busway navigator, android app untuk mencari rute-rute transjakarta.
ide app ini muncul karena ketika saya datang ke Jakarta, dan sama sekali blank tentang jakarta, saya memerlukan app semacam ini. Sebenarnya sudah ada app serupa, namun tidak memuaskan dan tidak simple.
saya perlu yang simple2, bukan app yang rumit. hehe..
Setelah 5 bulan ( sekarang 2-Desember 2015 ), saya sudah mem-publish 5 android app ( 2 games, 3 aplikasi ). 5 bulan = 5 app, not bad untuk project yang saya kerjakan di spare time.
saya memang sengaja memilih project yang bisa dikerjakan dalam waktu singkat ( setidaknya untuk sekarang ). belum ada ide untuk membuat game yang komplek. untuk membuat game, benar-benar memerlukan
partner untuk me-realisasikannya. khususnya dalam membuat game assets (game artist) dan game design (game designer) . Berikut daftar aplikasi saya di store :
1. Transjakarta Busway Navigation

https://play.google.com/store/apps/details?id=com.asyncbyte.transjakarta

2. Memory Game

https://play.google.com/stor/apps/details?id=org.asyncbyte.memorygame

3. Fifteen Puzzle

https://play.google.com/store/apps/details?id=org.asyncbyte.fifteen

4. ImagTex – app untuk menulis text/quote ke foto

https://play.google.com/store/apps/details?id=com.asyncbyte.textonpics

5. Kalender Indonesia ( hehe, saya hobi buat kalender )

https://play.google.com/store/apps/details?id=asyncbyte.kalendar.calendar

go download them .. 5 stars ya , :-))

Written by XediXermawan

December 4, 2015 at 6:15 am

Posted in mobile apps

Mengganti CPU Fan

leave a comment »

Motivasi saya mengganti cpu fan bukan karena cpu nya kepanasan –seperti alasan yg lain–, namun karena cpu fan saya super berisik, dan sudah nggak bisa ditolerir oleh human being . saya nggak peduli pada CPU panas pada dasarnya, selama cpu nggak mati berarti Oke :d .Awalnya saya pakai cpu fan bawaan processor, fannya berlabel AMD, ( tapi anehnya dibawah kipas berlabel Cooler Master ) . Sekarang saya ganti dengan Deepcool GAMMAX 400. Sempat bingung nyari merk fan yang cocok dengan motherboard & processor saya, AM3+ socket, dan juga pertimbangan harga. Antara cooler master, noctua, zalman, etc, etc. ( ternyata banyak juga merk cpu fan :d ) . Sebelum mengganti cpu fan, sudah nyoba beberapa cara ( an idiot way ) untuk meredam noisenya, –termasuk memasukkan cpu kedalam lemari–, namun semua ngggak berhasil,  suara tetap tembus . Deepcool GAMMAX 400 , cukup silent, bahkan sekarang yang lebih kedengaran kipas casing .  some pics :

-kiri : deepcool gammax 400 , kanan: kipas lama

WP_20150214_025 -on hand :

WP_20150214_026

-ketika komputer nyala : ada led biru, menurut saya led ini terlalu besar dan kebanyakan ( buang-buang energi saja ). 1 led kecil cukup.

WP_20150214_035

–temperatur cpu  (setelah beberapa saat main game 3d)

cpu_temp_new_fan

edie // 14022015 //  Jakarta

Written by XediXermawan

February 14, 2015 at 5:12 pm

Posted in computer related

Mencoba Cmake ( a Cmake intro )

leave a comment »

Visual Studio adalah favorite ide pemrograman saya. Sudah sejak lama saya pakai, kira-kira sejak 4 tahun yang lalu. Mungkin menjadi favorite karena kebiasaan:) dan juga visual studio mudah dipakai. Walaupun kadang ada juga bugs ‘aneh’ yang terjadi selama nge-build project dengan VS. Sayangnya, ‘build file’ dari VS tidak bisa dipakai di environment lain, misalnya mau build pakai gcc di Linux. Oleh karena itulah harus ada cara lain yang harus dipakai. Berikut sebagai contoh case saya :

Misalnya saya memiliki super advanced top secret project dengan informasi sebagai berikut :

[1] struktur file-file project :

              ->project_root_dir

              ->HelloSource.cpp file

              ->PrintLib dir

                      ->PrintHello.h file

             ->PrintHello.cpp file

[2] project diatas akan di-build dengan output sebagai berikut :

           -HelloSource.cpp —> executable file , yang menggunakan PrintLib (static linked)

           -PrintLib —> static library

          -Penggunaan PrintLib bisa di ON-OFF melalui macro ( o yeah, macro define, I like it )

[3] source code : HelloSource.cpp

          /* hello apps project */

          #include <iostream>

          #include “HelloVersion.h”

          #ifdef USE_PRINTLIB

          #include “PrintHello.h”

          #endif

          using namespace std;

          int main(char* argc, char** argv)

          {

                   cout << “hello ” << endl;

                   cout <<” hello version : “<< Hello_VERSION_MAJOR <<“-“<<Hello_VERSION_MINOR<<endl;

                   #ifdef USE_PRINTLIB

                   PrintHelloFunc();

                   #endif

                   return 0;

          }

[4] source code : PrintHello.h

          #include <iostream>

          void PrintHelloFunc();

[5] source code : PrintHello.cpp

          #include “PrintHello.h”

          void PrintHelloFunc()

          {

                   std::cout << ” hey hello i’m here. printed from hellolib ” << std::endl;

          }

Pertanyaannya, Bagaimana agar project diatas bisa build-able beberapa platform dengan beda compiler ?

Banyak cara, dari cara manual ( buat build script untuk masing-masing platform ) atau dengan tools misalnya : autotools, scons, jam, waf, cmake.yang terakhir: cmake, saya sering mem-build project dari internet yang menggunakan cmake, jadi lebih kenal dengan yang satu ini. Kenyataannya cmake sudah secara luas digunakan di opensource project sejak lama. Build sistem yang lain yang pernah saya coba, dan sangat mudah (dari segi user yang akan mem-build project tersebut) adalah build sistem dari boost library : boost-jam . sangat mudah nge-buildnya.

Kali ini saya tertarik mempelajari bagaimana membuat cmake file. cmake file itu semacam “template” make file atau meta make file. cmake file adalah file text yang berisi deskripsi project dengan syntax cmake dan disimpan dengan nama CMakeLists.txt. Kalau cmake file suatu project sudah dibuat, file ini bisa digunakan untuk meng-generate real make file yang bisa dipakai compiler. tergantung compiler apa yang dipakai . beberapa yang didukung :

          -Visual C++ ( sln & vcxproj ),

          -Kdevelop3, Eclipse, XCode,

          -makefiles (Unix,NMake, Borland, Watcom, MinGW, MSYS,Cygwin)

          -Code::Blocks

Dari daftar diatas, yang pernah saya coba adalah generate VS (solution & project) dan makefile untuk linux.

Dari deskripsi project diatas saya bisa membuat cmake file dengan struktur :

          ->project_root_dir

          ->CMakeLists.txt file                   cmake ke-1 (main)

          ->PrintLib dir

                   ->CMakeLists.txt file          cmake ke-2

          ->HelloVersion.h.in file untuk setting Define

 source file CMakeLists.txt ke-2 : ( hanya 1 baris )

          add_library(PrintLib PrintHello.cpp)

source file CMakeLists.txt ke-1 :

          #this is a cmake comment

          cmake_minimum_required (VERSION 2.6)

          #project name

          project (Hello)

          #version

          set (Hello_VERSION_MAJOR 1)

          set (Hello_VERSION_MINOR 0)

          #option can be turned on/off when generate real make file

          option ( USE_PRINTLIB “use print library” ON )

          configure_file (

                   “${PROJECT_SOURCE_DIR}/HelloVersion.h.in”

                   “${PROJECT_BINARY_DIR}/HelloVersion.h”

          )

          include_directories (“${PROJECT_BINARY_DIR}”)

          if (USE_PRINTLIB)

                   include_directories (“${PROJECT_SOURCE_DIR}/PrintLib”)

                   add_subdirectory(PrintLib)

                   set (EXTRA_LIBS ${EXTRA_LIBS} PrintLib)

          endif (USE_PRINTLIB)

          #tell cmake that Hello is executable

          add_executable(Hello HelloSource.cpp)

          #tell cmake that Hello linked with extralibs ( printlib )

          target_link_libraries(Hello ${EXTRA_LIBS})

          install(TARGETS Hello DESTINATION bin)

source file HelloVersion.h.in :

          // version for Hello project

          #define Hello_VERSION_MAJOR @Hello_VERSION_MAJOR@

          #define Hello_VERSION_MINOR @Hello_VERSION_MINOR@

          #cmakedefine USE_PRINTLIB

file tambahan adalah HelloVersion.h.in untuk mengatur version dan macro define. Kalau dibaca deskripsi output project saya diatas dan apa yang ada di cmakelist.txt semuanya tampak self explanatory. Dari CMakeLists.txt ini kita bisa meng-generate solution & project di windows & makefile di linux ( sebagai 2 test case untuk mencoba ) . di Ms-Windows bisa memakai cmake GUI.

cmake_flow

cmake_flow

Cmake file yang dipakai diatas adalah yang paling sederhana. Terdapat beberapa perintah yang lain, misalnya find_package, find_library, export, dan lainnya .

edie // 13022015 // Jakarta

Written by XediXermawan

February 13, 2015 at 4:30 pm

website sebagai standalone desktop apps

with 3 comments

suatu saat punya pertanyaan, kalau misalnya saya bisa web programming*, bisa ndak web yang saya buat dijalankan di desktop sebagai stand alone native application ?
jawaban : bisa . dengan https://github.com/nwjs/nw.js , sebuah halaman web bisa dijadikan standalone app di desktop.
nw.js pada dasarnya adalah “internet browser” , jadi nantinya bisa multipaltform ( windows, linux, macOS )
contohnya : https://github.com/LightTable/LightTable ( sebuah code editor apps )
*( kenyataannya , saya enggak bisa :p )

Written by XediXermawan

February 12, 2015 at 4:23 am

Posted in computer related

HTML code

leave a comment »

HTML code ( atau gimana menyebutnya ?, web programming ? )
http://xedixermawan.github.io/
tidak untuk serius:)

Written by XediXermawan

February 10, 2015 at 4:14 pm

Posted in Uncategorized

galeri kalender 2015 2016 ( Indonesia )

with one comment

Jakarta, November 16, 2014

Beberapa galeri kalender 2015 Indonesia ( dengan pasaran jawa : pon , pahing , kliwon , legi , wage )
download :  LINK

Kalender 2015 Indonesia

Kalender 2015 Indonesia

kalender 2015 Indonesia yang lain :  LINK

dibuat dengan program

Update Oktober 2015 :

saya membuat banyak sekali kalender 2016 dengan berbagai macam type font. bisa didownload disini :
kalender_2016_VastShadow-Regular.ttf

Update Desember 2015 :

Beberapa minggu lalu saya membuat kalender Indonesia versi Android. di dalam versi android dimasukkan juga liburan dan cuti bersama 2016. Kalau tertarik bisa diinstall disini :

https://play.google.com/store/apps/details?id=asyncbyte.kalendar.calendar&hl=en

atau scan barcode dibawah ini :
Kalender_Indonesia_Link

Tampilan Kalender Indonesia versi Android :

Kalender_Indonesia_2016

Update Maret 2016 :

penambahan fitur kalender lunar / kalender bulan ( dipakai di kalender Jawa dan Kalender Hijriah ). Namun untuk kalender hijriah akurasi nya +/- 1 hari.

Semoga bermanfaat:)

Follow

Get every new post delivered to your Inbox.