Tampilkan postingan dengan label computer. Tampilkan semua postingan
Tampilkan postingan dengan label computer. Tampilkan semua postingan

Sabtu, 02 Januari 2016

Hibernate Option for Mac

We all know that one of the reason for people to purchase the super expensive Macbook is the battery life.
LaptopMag.com which is one the Tom's Hardware affiliates, one reliable source, at least for me, says that Mac product both Air and Pro is within the list. Check out the full article here, http://www.laptopmag.com/articles/all-day-strong-longest-lasting-notebooks.

Now, with me here is Macbook Pro, mid 2012 model which battery has just been replaced, so it ought to work like new. It surprises me that when I leave it to sleep mode, I turn it back on, it was reduced by about 25%. When I put it on sleep, I believe it's about 88% and when I turn it back on, it has became 65%.

So, I'm off to find out how to reduce the battery power during sleep mode.

My first source was Apple Stack Exchange. For your reference, stackexchange.com has been my wonderful reference. It has vast collection like I never imagine.

From this site, I knew that the Energy Saver Preferences can also be set by using Terminal command, pmset. From the manpage of pmset, there are 3 types of sleepmode:

Energy Saver


  • Type 0. This is used by default on iMac series. The system will use memory and not write to the disk.
  • Type 3. This is used by default on Macbook. In this type, it will use RAM as the storage.
  • Type 25. In this type, the memory will be written to the disk.
You can read more from the manpage of pmset, just type man pmset in Terminal to access this. From the explanation, I want to have type 25. So what I do is, open Terminal and then type the following:

$sudo pmset hibernatemode 25
and hit enter.

Now, your Macbook should have been set as hibernate. It means, everytime you go to Sleep mode, you go into Hibernate. I have proven myself, after I turn this on, I leave the Macbook to sleep for about 18 hours, my battery was reduced by 3% into 62%.

Jumat, 20 Juni 2014

4.4.3

So ... this story started with my Nexus 4 running CM11, based on 4.4.2 acting very strangely. Most of the time, I turn the WiFi on, so, very rarely I will use up to 1GB in a month.
  • First, I'm not really a heavy fone user, except when I was outside, and not feeling like I want to listen to my iPod
  • Second, the biggest data usage is most probably, whatasapp and drive.

So, when suddenly, I receive this notification saying that my data usage is already 1GB, first thing came to mind is, did I accidentally turn the WiFi off, or probably the WiFi at home is not working, so it used back the 3G usage.

First day, I kept the WiFi on. Second times, it alerted me. I had 2 suspects, first is the Google OTA, second is, can it be the live soccer update? Well, FIFA world up is in the air. I have like 5 apps for that thing alone :).

So now, I removed everything, and still, it used up 0.99 GB in only few hours, from 9 am until 4 pm. What the .... The cat inside me came alive, I needed to find out what this is. So, I took a look at the data usage, and yes, Google Play Services is the one taking up the most data. 99% sure this may be the OTA. Why was I so sure? Well, I had this notification that 4.4.3 is being rolled out and every time I downloaded, it always said verification failed.

To prove it, I went to Google and download the 4.4.3 Factory Image for mako. Luckily, I had Android SDK installed in my computer, so it didnt take long for me to put it on my fone.





And tada ... upgraded to 4.4.3. And yeah, my suspicion is proven. Google Play Services does no longer use up my data. For all of you guys who happened to experience the same thing and wanted to upgrade too, dont forget to back up almost everything. My 2 biggest mistake was:
  1. I didnt back up my whatsapp, so it was all gone. I thought that whatsapp will be kind enough to store all my existing message, but I didnt get any message at all
  2. I didnt back up my SMS, thought that it will be backed up in my hangout, i.e. in the Google, but it didnt.
  3. As usual, some of the contacts were missing, apparently, didnt activate my Google Contact sync earlier.
Having my OS upgraded to 4.4.3,

I kinda miss my CM11 experiences. Some of the things which I liked the most on CM11:
  1. The battery indicator, we can always choose to display it with a circle or bar, and with %
  2. The app drawer, it has rotation setting, torch, 2G/3G selection and expanded desktop. Given those in the app drawer, you dont have to sweat to disable/enable the rotation settings, or to change 2G/3G network. The rotation you can set it until 270 degrees. Their expanded desktop is the one thing I also like the most. Unlike Paranoid Android, you can choose whether to have the status bar hidden or visible.
  3. Home launcher, we can select up to 3 apps, I chose to have power button, sound setting mode, and screenshot. What a nice feature!!
However, since now, I am back to stock, I have to re-root and took my chances to change to CM11 with 4.4.3.

Until next time.

Minggu, 29 Desember 2013

Android Context

Okay, this part is one of my effort to understand about Context.

I am no hard core java programmer, in fact is a noob, so I will need to memorize this. Also I dont like to read lengthy reference.

I only read first line of the reference which says Android Context extends Object.

Knowing that, this 4 lines code does make sense:

private final Context mCtx;

public void RemindersDBAdapter (Context ctx) {
         this.mCtx = ctx;
}

So it means that this ctx will have type Context or we are creating specific Object.

Rabu, 30 Oktober 2013

My Rendezvous with Regex

I cant say how much I love Regex. Regex and Perl are the love of my life (for now). First time experience is using Perl. I remember correctly that I bought small book, very handy. It has all meta characters in it. I'm not really willing to give it up even though never really use it anymore.
Anyway, it started with golden number. Mobile golden number. Nothing will beat it the most except regex. There are 5000 numbers we have to categorize. I can stop feeling amazed of how my colleague did it. He did it one by one using Excel sheet. I can't imagine working with 5000 rows. I probably will have to wear glasses afterward.
I'm sharing this here for you guys who are in the same pain as my colleague. First step to do this is for you to find the algorithm for vanity level. Maybe in the next 5 years, this algorithm we wont need anymore. Why? I have a dream that eventually people will use VoIP rather than phone numbers. It's damn lot easier to just remember yuvi@skype.com rather than 08551100111.
Matches 5 digit
Matches XX YY XX
Matches XXX d YYY or XXX dd YYY
Matches Xy Xy X at the end
Matches AA BB A at the end
Matches Xy Xy Xy
Matches XXX d YYY
Matches X yyyy X
Matches X yyyy X

And there are a lot more to be honest. And when you're doing this, you have to be very careful. As in access rules, the most specific should be set first, or else, your number will end up having the lowest category.

Selasa, 26 Maret 2013

Changing Your LG P705 L7 Firmware

I think everyone will agree that the stock firmware of LG P705, or known as L7, which is sold in Indonesia, is a pain in the butt. Not giving up, I'm searching thru XDA forums and it looks like several other people with very good technical knowledge also experience the same problem, and have been trying to resolve it.

They have found that by changing the firmware to European version of v10k and install Supercharger will do the trick.

As a favor to a friend, I am uploading the step by step here (taken from http://forum.xda-developers.com/showthread.php?t=1664322):

First thing first, please make sure that your computer's spec is enough to do the copying, mine, I'm using i3, 100ish GB harddrive, 4 GB RAM, and 32 bit Windows 7.

The following is what are we going to do in sequential order:
  1. Unlock it
  2. Root it
  3. Install the new firmware
AND DONT FORGET TO NOTE THAT YOU DO THIS ON YOUR OWN RISK. DEVICE MAY BE BRICKED DURING THE PROCESS. IF IT IS, NOTHING YOU CAN DO BUT TO FIND HELP FROM OTHERS (because obviously, I cannot help either :D). YOU CANNOT BRING YOUR DEVICE TO THE SERVICE CENTER IF IT IS BRICKED. AND IF YOU WANT TO BRING IT TO SERVICE CENTER, YOU NEED TO RE-INSTALL THE STOCK FIRMWARE.

Please I've warned you, dont say that I dont.

ROOT your L7
These steps below will give you root access to your phone in order to install the firmware.

  1. Install your LG PC suite
  2. Go to www.lg.com, and download the USB drivers for your phone
  3. Set your debugging options on from Settings - System - Developer Options
  4. Set your connectivity option to PC software (from Setting screen as well)
  5. Download the rooting tool from this link : http://forum.xda-developers.com/showthread.php?p=32031942#post32031942
  6. Connect your phone to the PC
  7. Unzip the file you have downloaded before, and double click on Runme.bat
  8. There will be some instructions for you to follow. If it is not successful first time, do it again and again. Sometimes restarting your phone also help. Dont easily give up because I myself succesfully rooted it after 3 days :D


Next it to flash the new firmware. LG now blocks any mobile update, thus you need to do the trick by following this thread : http://forum.xda-developers.com/showthread.php?t=1473781. When it comes to step 7, using Windows 7, you will encounter a problem of not being able to edit the hosts file. To be able to do that, you click on Start Menu first, point your mouse to Notepad and right click on it. And then choose "Run as Administrator". If there is a warning of creating changes to the computer, just choose Yes.

And then after the Notepad pops up, choose File, Open, and go to C:\Windows\System32\drivers\etc, and choose hosts. Make sure the drop down box next to the Filename contains "All Files (*)" instead of "Text Documents (*.txt)". Then you can add whatever entries stated in step 7 above.

After all steps in that thread is completed, download the v10i European firmware from http://lg-phone-firmware.com/index.php?id_mod=13#europe open. Be sure to select v10i in Europe Open.

Then after that, start following the steps in this thread : http://forum.xda-developers.com/showpost.php?p=18946763&postcount=1 starting from this line : "If You have LG Mobile Support Tool(LG Mobile Update program) go to 2nd point."

By the way, be sure to always back up your data just in case something is wrong. AGAIN I'm warning you, do this on your own risk.

If you want it to be superfast, you can also supercharge it by following the steps in this thread : http://forum.xda-developers.com/showthread.php?t=1266070. As for mine, I am installing it and run a scheduled task using Script Manager to clean the memory every 5 minutes, and to reboot the phone at 2 am every day.

I do hope that this will help. You can always to XDA forum to seek more information. Trust me, playing around with Android is an indescribably additive. Once you go in, never want to go back. You could always post a comment here and I'll do my best to get back.

Minggu, 20 Januari 2013

LG P700 Sys Version

Just in case someone is looking for this, I paste it here firnware description of LG P700 version V10i Europe Open

[DEVICE_PROVISIONED]: [1]
[bluetooth.eventloop.dbus]: [:1.0]
[dalvik.vm.dexopt-flags]: [m=y]
[dalvik.vm.heapgrowthlimit]: [62m]
[dalvik.vm.heapsize]: [62m]
[dalvik.vm.heapstartsize]: [10m]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[debug.camcorder.disablemeta]: [0]
[debug.composition.7x25A.type]: [mdp]
[debug.composition.7x27A.type]: [mdp]
[debug.composition.type]: [mdp]
[debug.enabletr]: [false]
[debug.sf.hw]: [1]
[dev.bootcomplete]: [1]
[dhcp.wlan0.dns1]: [192.168.43.1]
[dhcp.wlan0.dns2]: []
[dhcp.wlan0.dns3]: []
[dhcp.wlan0.dns4]: []
[dhcp.wlan0.gateway]: [192.168.43.1]
[dhcp.wlan0.ipaddress]: [192.168.43.102]
[dhcp.wlan0.leasetime]: [86400]
[dhcp.wlan0.mask]: [255.255.255.0]
[dhcp.wlan0.pid]: [3733]
[dhcp.wlan0.reason]: [BOUND]
[dhcp.wlan0.result]: [ok]
[dhcp.wlan0.server]: [192.168.43.1]
[drm.service.enabled]: [true]
[gsm.current.phone-type]: [1]
[gsm.defaultpdpcontext.active]: [true]
[gsm.network.type]: [UMTS:3]
[gsm.nitz.time]: [1358647395196]
[gsm.operator.alpha]: [Indosat]
[gsm.operator.iso-country]: [id]
[gsm.operator.isroaming]: [false]
[gsm.operator.numeric]: [51001]
[gsm.sim.operator.alpha]: [INDOSAT]
[gsm.sim.operator.gid]: [FFFFFFFFFF]
[gsm.sim.operator.imsi]: [510011150006175]
[gsm.sim.operator.iso-country]: [id]
[gsm.sim.operator.numeric]: [51001]
[gsm.sim.state]: [READY]
[gsm.version.baseband]: []
[gsm.version.ril-impl]: [Qualcomm RIL 1.0]
[hwui.render_dirty_regions]: [false]
[ime_handwriting_apply]: [false]
[ime_trace_apply]: [false]
[init.svc.atd]: [running]
[init.svc.atfwd]: [running]
[init.svc.bluetoothd]: [running]
[init.svc.bootanim]: [stopped]
[init.svc.cnd]: [stopped]
[init.svc.comp-set]: [running]
[init.svc.dbus]: [running]
[init.svc.debuggerd]: [running]
[init.svc.dhcpcd_wlan0]: [running]
[init.svc.drm]: [running]
[init.svc.hciattach]: [running]
[init.svc.installd]: [running]
[init.svc.keystore]: [running]
[init.svc.lgdrm]: [running]
[init.svc.lge-usb-sh]: [stopped]
[init.svc.lgsecclk]: [running]
[init.svc.media]: [running]
[init.svc.netd]: [running]
[init.svc.netmgrd]: [running]
[init.svc.port-bridge]: [running]
[init.svc.post_install]: [stopped]
[init.svc.qcom-post-boot]: [stopped]
[init.svc.qcom-sh]: [stopped]
[init.svc.qcom-wifi]: [stopped]
[init.svc.qmiproxy]: [running]
[init.svc.qmuxd]: [running]
[init.svc.ril-daemon]: [running]
[init.svc.rmt_storage]: [running]
[init.svc.sdcard]: [running]
[init.svc.sensord]: [running]
[init.svc.servicemanager]: [running]
[init.svc.surfaceflinger]: [running]
[init.svc.vold]: [running]
[init.svc.wpa_supplicant]: [running]
[init.svc.zygote]: [running]
[keyguard.no_require_sim]: [true]
[lge.nfc.fwpatchv13]: [yes]
[lge.nfc.indicator]: [yes]
[lge.nfc.setype]: [uicc]
[lge.signed_image]: [true]
[lge.version.factorysw]: [LGP700AT-00-V10i-EUR-XX-AUG-25-2012]
[lge.version.hw]: [1.0]
[lge.version.sw]: [LG-P700-V10i]
[media.divx-video.max-height]: [480]
[media.divx-video.max-width]: [854]
[media.stagefright.enable-aac]: [true]
[media.stagefright.enable-fma2dp]: [true]
[media.stagefright.enable-http]: [true]
[media.stagefright.enable-player]: [true]
[media.stagefright.enable-qcp]: [true]
[media.stagefright.enable-scan]: [true]
[media.video.max-height]: [480]
[media.video.max-width]: [854]
[net.bt.name]: [Android]
[net.change]: [net.rmnet0.gw]
[net.dns1]: [192.168.43.1]
[net.dns2]: []
[net.dnschange]: [2]
[net.hostname]: [android-d94d0c6dc3ed50b2]
[net.qtaguid_enabled]: [1]
[net.rmnet0.dns1]: []
[net.rmnet0.dns2]: []
[net.rmnet0.gw]: []
[net.tcp.buffersize.default]: [4096,87380,110208,4096,16384,110208]
[net.tcp.buffersize.edge]: [4093,26280,35040,4096,16384,35040]
[net.tcp.buffersize.evdo_b]: [4094,87380,262144,4096,16384,262144]
[net.tcp.buffersize.gprs]: [4092,8760,11680,4096,8760,11680]
[net.tcp.buffersize.hsdpa]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.hspa]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.hsupa]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.lte]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.umts]: [4094,87380,110208,4096,16384,110208]
[net.tcp.buffersize.wifi]: [524288,1048576,2097152,262144,524288,1048576]
[net.telephony.dualstack]: [true]
[net.wlan0.dns1]: [49.0.0.0]
[net.wlan0.dns2]: []
[persist.bandwidth.enable]: [1]
[persist.cne.UseCne]: [none]
[persist.cne.bat.based.rat.mgt]: [false]
[persist.cne.bat.range.low.med]: [30]
[persist.cne.bat.range.med.high]: [60]
[persist.cne.bwbased.rat.sel]: [false]
[persist.cne.fmc.comm.time.out]: [130]
[persist.cne.fmc.init.time.out]: [30]
[persist.cne.fmc.mode]: [false]
[persist.cne.fmc.retry]: [false]
[persist.cne.loc.policy.op]: [/system/etc/OperatorPolicy.xml]
[persist.cne.loc.policy.user]: [/system/etc/UserPolicy.xml]
[persist.cne.rat.acq.retry.tout]: [0]
[persist.cne.rat.acq.time.out]: [30000]
[persist.cne.snsr.based.rat.mgt]: [false]
[persist.data.ds_fmc_app.mode]: [0]
[persist.gsm.mms.enabled]: [true]
[persist.gsm.sms.forcegsm7]: [0]
[persist.ims.regmanager.mode]: [0]
[persist.lge.first_boot]: [0]
[persist.omh.enabled]: [1]
[persist.radio.adb_log_on]: [0]
[persist.radio.airplane_mode_on]: [0]
[persist.radio.cdg2_flag]: [false]
[persist.radio.clir]: [0]
[persist.radio.first-boot]: [11]
[persist.radio.first-mcc]: [510]
[persist.radio.first_no_sim]: []
[persist.radio.iccid-changed]: [0]
[persist.radio.iccid]: [89620150000000657186]
[persist.radio.mcc-list]: [FFF]
[persist.radio.mem_leak_debug]: [0]
[persist.radio.net_pref_0]: [2]
[persist.radio.net_pref_1]: [3]
[persist.radio.nitz_lons_0_0]: []
[persist.radio.nitz_plmn_0]: [51001]
[persist.radio.nitz_sons_0_0]: [Indosat]
[persist.radio.paging_priority]: [0]
[persist.radio.prev-mcc]: [510]
[persist.radio.same-mcc]: [1]
[persist.radio.sma_voice_3gpp]: [0]
[persist.radio.tmp-mcc]: [510]
[persist.radio.tmp_first_no_sim]: [11]
[persist.radio.tuneaway]: [1]
[persist.radio.voip_enabled]: [0]
[persist.rild.nitz_long_ons_0]: []
[persist.rild.nitz_long_ons_1]: []
[persist.rild.nitz_long_ons_2]: []
[persist.rild.nitz_long_ons_3]: []
[persist.rild.nitz_plmn]: []
[persist.rild.nitz_short_ons_0]: []
[persist.rild.nitz_short_ons_1]: []
[persist.rild.nitz_short_ons_2]: []
[persist.rild.nitz_short_ons_3]: []
[persist.service.system.dirty]: [1]
[persist.sys.country]: [US]
[persist.sys.hotssid.ksc5601]: [1]
[persist.sys.language]: [en]
[persist.sys.localevar]: []
[persist.sys.profiler_ms]: [0]
[persist.sys.purgeable_assets]: [1]
[persist.sys.sound_enable]: [2]
[persist.sys.system_volume]: [0]
[persist.sys.timezone]: [Asia/Jakarta]
[persist.sys.usb.config]: [charge_only]
[pm.sleep_mode]: [1]
[ril.ecclist]: [911,112]
[ril.subscription.types]: [NV,RUIM]
[ril.temp.countrycodeforoneimage]: [510]
[rild.libargs]: [-d /dev/smd0]
[rild.libpath]: [/system/lib/libril-qc-1.so]
[ro.allow.mock.location]: [0]
[ro.baseband]: [msm]
[ro.bluetooth.remote.autoconnect]: [true]
[ro.bluetooth.request.master]: [false]
[ro.board.platform]: [msm7627a]
[ro.bootloader]: [unknown]
[ro.bootmode]: [unknown]
[ro.build.characteristics]: [default]
[ro.build.date.utc]: [1345874610]
[ro.build.date]: [2012. 08. 25. (토) 15:03:30 KST]
[ro.build.description]: [u0_open_eu-user 4.0.3 IML74K lgp700-V10i.20120825.145658 release-keys]
[ro.build.display.id]: [IML74K]
[ro.build.factory_country]: [XX]
[ro.build.factory_operator]: [EUR]
[ro.build.fingerprint]: [lge/u0_open_eu/u0:4.0.3/IML74K/lgp700-V10i.20120825.145658:user/release-keys]
[ro.build.host]: [D1-SW1GR]
[ro.build.id]: [IML74K]
[ro.build.product]: [u0]
[ro.build.tags]: [release-keys]
[ro.build.target_country]: [EU]
[ro.build.target_operator]: [OPEN]
[ro.build.target_region]: [EU]
[ro.build.type]: [user]
[ro.build.user]: [hjin.jeon]
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [lgp700-V10i.20120825.145658]
[ro.build.version.release]: [4.0.3]
[ro.build.version.sdk]: [15]
[ro.camera.sound.forced]: [1]
[ro.carrier]: [unknown]
[ro.com.android.dataroaming]: [false]
[ro.com.android.dateformat]: [MM-dd-yyyy]
[ro.com.google.apphider]: [off]
[ro.com.google.clientidbase.am]: [android-lge]
[ro.com.google.clientidbase.gmm]: [android-lge]
[ro.com.google.clientidbase.ms]: [android-lge]
[ro.com.google.clientidbase.yt]: [android-lge]
[ro.com.google.clientidbase]: [android-lge]
[ro.com.google.gmsversion]: [4.0_r3]
[ro.config.alarm_alert]: [Alarm1.ogg]
[ro.config.bt.amp]: [no]
[ro.config.ehrpd]: [true]
[ro.config.notification_sound]: [Pebble.ogg]
[ro.config.ringtone]: [Beyond_the_Dream.ogg]
[ro.crypto.fs_flags]: [0x00000406]
[ro.crypto.fs_mnt_point]: [/data]
[ro.crypto.fs_options]: [barrier=1,data=ordered,noauto_da_alloc,errors=continue]
[ro.crypto.fs_real_blkdev]: [/dev/block/mmcblk0p20]
[ro.crypto.fs_type]: [ext4]
[ro.crypto.fuse_sdcard]: [true]
[ro.crypto.state]: [unencrypted]
[ro.debuggable]: [0]
[ro.device.hapticfeedback]: [0]
[ro.device.networkmode]: [WCDMA]
[ro.emmc.sdcard.partition]: [20]
[ro.emmc]: [1]
[ro.encrypt_state]: [0]
[ro.factorytest]: [0]
[ro.fm.analogpath.supported]: [true]
[ro.fm.mulinst.recording.support]: [false]
[ro.fm.transmitter]: [false]
[ro.hardware]: [u0]
[ro.hiddenreset]: [0]
[ro.hw_plat]: [7x27a]
[ro.hwui.text_cache_height]: [384]
[ro.hwui.text_cache_width]: [1536]
[ro.lge.audio_scenario]: [SOUNDEXCEPTION]
[ro.lge.audio_soundexception]: [true]
[ro.lge.audio_soundprofile]: [true]
[ro.lge.basebandversion]: [MSM7227A-1-AA]
[ro.lge.capp_almond]: [true]
[ro.lge.capp_core]: [true]
[ro.lge.capp_divx_drm]: [true]
[ro.lge.capp_drm]: [true]
[ro.lge.capp_key_exception]: [true]
[ro.lge.capp_key_light_off]: [true]
[ro.lge.capp_keyled_timeout]: [true]
[ro.lge.capp_lockscreen]: [true]
[ro.lge.capp_optimusui]: [true]
[ro.lge.capp_resource]: [true]
[ro.lge.capp_touch_ldi]: [true]
[ro.lge.capp_touch_scroller]: [true]
[ro.lge.capp_wapservice]: [true]
[ro.lge.factoryswversion]: []
[ro.lge.hwversion]: []
[ro.lge.lazy_service_bringup]: [true]
[ro.lge.swversion]: [V10i-AUG-25-2012]
[ro.lge.touchkey]: [BACK|HOME|MENU]
[ro.livewallpaper.map]: [DISABLED]
[ro.max.fling_velocity]: [5000]
[ro.nfc.port]: [I2C]
[ro.opengles.version]: [131072]
[ro.product.board]: [7x27]
[ro.product.brand]: [lge]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abi]: [armeabi-v7a]
[ro.product.device]: [u0]
[ro.product.locale.language]: [en]
[ro.product.locale.region]: [GB,en]
[ro.product.manufacturer]: [LGE]
[ro.product.model]: [LG-P700]
[ro.product.name]: [u0_open_eu]
[ro.qualcomm.bluetooth.dun]: [false]
[ro.qualcomm.bluetooth.ftp]: [true]
[ro.qualcomm.bluetooth.hfp.wbs]: [false]
[ro.qualcomm.bluetooth.sap]: [false]
[ro.qualcomm.cabl]: [1]
[ro.radio.ratdisplay]: [true]
[ro.revision]: [0]
[ro.runtime.firstboot]: [1358647374671]
[ro.secure]: [1]
[ro.serialno]: [7970f07]
[ro.setupwizard.mode]: [DISABLED]
[ro.sf.hwrotation]: [180]
[ro.sf.lcd_density]: [240]
[ro.telephony.default_network]: [3]
[ro.use_data_netmgrd]: [true]
[ro.vendor.extension_library]: [/system/lib/libqc-opt.so]
[ro.wifi.channels]: []
[sys.boot_completed]: [1]
[sys.media.vdec.sw]: [0]
[sys.settings_secure_version]: [1]
[sys.usb.config]: [charge_only]
[sys.usb.state]: [charge_only]
[system_init.startsurfaceflinger]: [0]
[vold.post_fs_data_done]: [1]
[wifi.interface]: [wlan0]
[wifi.supplicant_scan_interval]: [180]
[wifi.wpa_supp_ready]: [1]
[windowsmgr.max_events_per_sec]: [200]
[wlan.chip.vendor]: [qcom]
[wlan.driver.status]: [ok]

Sabtu, 19 Januari 2013

Walkthrough the Code of OpenCart

  1. 19-Jan-2013 05:29 PM : Install OpenCart v1.5.4 - URL : http://www.disini-aja.com/web
    1. Check from handset, does not detect mobile, go find mobile extension, find one at http://www.opencart.com/index.php?route=extension/extension/info&extension_id=5125
    2. The readme.txt points me to http://www.omframework.com/docs, so after take a glance to it, I have to install vQmod in order for me to get the mobile framework to work.
    3. vQmod is available from http://code.google.com/p/vqmod/wiki/Install_OpenCart
    4. I downloaded vqmod-2.2.2-opencart.zip. If you asked me why, only reason is this one is the most recent :), this is always my rule of thumb, download the latest one
    5. Upload vqmod folder to my store root folder, so now, I have web/vqmod/*
    6. Ensure vqmod, vqcache, index.php and admin/index.php are all 755 permission
    7. Checking vqmod installation by browsing through http://www.disini-aja.com/web/vqmod/install/, it gave me 
    8. Check if my web store load normally ... CHECKED!!!
    9. Check the vq files in vqcache folder .... CHECKED!!! 
  2. 19-Jan-2013 08:46 pm : Continue installation after dinner
    1. Now, after vqmod is installed and verified, I move on to installing OpenCart Mobile Framework (OMF).
    2. Unlike vqmod where I uploaded 1 vqmod folder to my root store directory, I am uploading the content of OMF zip to my root store directory, see picture below:
      My upload takes about 11 minutes to complete, total files are 271 KB, starting from 08:51:53 pm up until 09:02:46 PM. I think this is not the internet provider fault, but more to my low subscription. Well, I pay USD 4.5 for 3 months, just like my boss always says, you pay banana, you get monkey.
    3. Now that I have finished uploading, I have to re-ensure my web store is intact accessed from both PC and mobile. It does add a link to view mobile or desktop version at the end of the page just like this:

    4. Look at my mobile version screenshot here: 

      I think that is all, but according to the documentation page, there are some additional settings I still need to complete even though it seems that I dont have problem with All Category layout.
    5. So, I login to the OpenCart admin page, go to System - Design - Layout, and add new layout, named Mobile-All-Categories, adding route, and add common/all_categories for the new route. I am totally clueless about this, but let just move on with this for now.
    6. Next, I go to Extension - Module, and install Category Mobile, and then edit it to add my newly added All Categories. I put the All Categories in the bottom section. By the way, the web does mention something about incompatibility with other module which I also don't have any idea of what it means, so I'm just going to quote it here:
      Note! This layout([mobile] All Categories) will not show All Categories when used with another module. The actual work here is completed by the module itself, and the layout is just a route. Using the layout with another module will not enable the module on the mobile front page.
    7. Okay, I have found the culprit. The All Categories menu does not really display all categories if it is not updated, see below picture :
Well, that is all for installation, next move is to populate the content. I am actually thinking of getting OpenCart books but let me try myself first.

Senin, 14 Januari 2013

Some Useful Abbreviations in 3GPP


  1. GTP : GPRS Tunneling Protocol, common protocol used in 3GPP architecture 
  2. GTP - C : GTP Control, 
  3. IIOP : Internet InterOrb Protocol; Orb itself is object request broker, much like RPC, used mainly in distributed system
  4. OSS-RC : Operation Support System Radio Core
  5. RNS : Radio Network Subsystem
  6. RRC : Radio Resource Control
  7. BSS-AP+ : Base Station System Application Protocol +

Minggu, 02 September 2012

I think DOM traversing is one of the best feature jQuery has.

<script type='text/javascript'>
jQuery('#primary-content')
.filter('#sub-div-and-all')
.children()
.hide()
.end()
</script>

Sabtu, 30 Juni 2012

Create Virtual Host in Apache2

Creating virtual hosts in Apache is very simple actually. I have
already created virtual interface tied to loopback so it will always
go up if I start up my machine. So im going to create hosts file first
to make sure it reads my 2 sites:

root@yuvi:/etc/apache2# more /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 yuvi localhost6.localdomain6 localhost6
127.0.0.1 www.website1.com
192.168.1.1 www.website2.com

root@yuvi:/etc/apache2# ifconfig lo
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:425 errors:0 dropped:0 overruns:0 frame:0
TX packets:425 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:39387 (39.3 KB) TX bytes:39387 (39.3 KB)

root@yuvi:/etc/apache2# ifconfig lo:0
lo:0 Link encap:Local Loopback
inet addr:192.168.1.1 Mask:255.255.255.0
UP LOOPBACK RUNNING MTU:16436 Metric:1

It looks like there are 2 sites configuration:

root@yuvi:/etc/apache2# ls
apache2.conf conf.d envvars httpd.conf magic mods-available
mods-enabled ports.conf sites-available sites-enabled
root@yuvi:/etc/apache2# ls sites-available/
default default-ssl
root@yuvi:/etc/apache2# ls sites-enabled/
000-default

So now, im going to play around with sites-available first, adding it
in. Virtual Host which listens in 192.168.1.1 is the new one i"ve
added.

root@yuvi:/etc/apache2# more sites-available/default
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/website1/public_html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/website1/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>

<VirtualHost 192.168.1.1:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/yuvi/website2/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/yuvi/website2/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>

Then go to sites-enabled, like the first one, the 192 part, is me adding it in.

<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/website1/public_html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/website1/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</Directory>
</VirtualHost>

<VirtualHost 192.168.1.1:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/yuvi/website2/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/yuvi/website2/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>

That's pretty much it. Very easy, actually we dont have to add
sites-enabled, because in the apache2.conf, it only includes
sites-enabled.

Create Virtual Interface in Your Ubuntu Machine

Im trying now to get my machine to run 2 virtual hosts in Apache. This is part of my favor to my friends actually.

So, first thing first, I need to create virtual interface to my loopback. Manually, I will type this in:

yuvi@yuvi:~$ sudo ifconfig lo:0 192.168.1.1 255.255.255.0 up
[sudo] password for yuvi: 
SIOCSIFADDR: Invalid argument
yuvi@yuvi:~$ ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:336 errors:0 dropped:0 overruns:0 frame:0
          TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:30943 (30.9 KB)  TX bytes:30943 (30.9 KB)

lo:0      Link encap:Local Loopback  
          inet addr:192.168.1.1  Mask:255.255.255.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1

yuvi@yuvi:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=0.045 ms
64 bytes from 192.168.1.1: icmp_req=2 ttl=64 time=0.030 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.030/0.037/0.045/0.009 ms

Can see now it's up, i can ping successfully. 

Problem is, when I reboot, it's not there anymore. So, to make this permanent, have tried adding in 

yuvi@yuvi:~$ more /etc/network/interfaces 
auto lo
iface lo inet loopback

#Virtual Interface
auto lo:0
iface lo:0 inet loopback
address 192.168.1.1
netmask 255.255.255.0

But same result, it still doesnt go up. My boot.log and syslog didnt tell me anything, so ... I think I can go with crontab:

yuvi@yuvi:~$ sudo crontab -l
@reboot ifconfig lo:0 192.168.1.1 255.255.255.0 up

And ..... bingo, it still doesnt work, dont know why ... please tell me why if anyone knows ...

So, move to other alternative, create an rc script:

root@yuvi:/etc/init.d# more IfUplo 
#!/bin/bash
ifconfig lo:0 192.168.1.1 255.255.255.0 up
echo "Virtual Interface Loopback Up"

root@yuvi:/etc/init.d# ls -ls IfUplo 
4 -rwxrwxrwx 1 root root 93 2012-06-30 09:20 IfUplo

root@yuvi:/etc/init.d# update-rc.d IfUplo defaults
root@yuvi:/etc/init.d# locate IfUplo 
/etc/init.d/IfUplo
/etc/rc0.d/K20IfUplo
/etc/rc1.d/K20IfUplo
/etc/rc2.d/S20IfUplo
/etc/rc3.d/S20IfUplo
/etc/rc4.d/S20IfUplo
/etc/rc5.d/S20IfUplo
/etc/rc6.d/K20IfUplo
/var/lib/update-rc.d/IfUplo

Please bear in mind that this script does give me an error of not complying with LSB ... small script, doesnt really matter. So there, it creates links for me in all rcs directories:

Reboot and ..... yesss it works.

Change Your Default Boot Selection

After messing around with kernel 3.2, trying to get my machine running on:

yuvi@yuvi:/boot/.bak$ uname -a
Linux yuvi 2.6.35-32-generic #64-Ubuntu SMP Tue Jan 3 00:47:07 UTC 2012 x86_64 GNU/Linux

to recognize beceem wimax chipset with no luck, well, at least until now, my boot list is now like a scrambled eggs, see this boot.cfg below, count how many entries i've get, now im desperately trying to get rid of it. I've tried moving all the images in /boot and run grub-mkconfig afterwards ... doesnt work.

It took me a while to notice just this line:
set default="0"
in grub.cfg and change it to 2 and by default, it goes directly to my third entries as default.

I know there is much cleaner way to update default entry for boot, but ... to be honest playing around with this is much more fun ;)

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 3.2.0-030200-generic' --class ubuntu --class gnu-linux --class gnu --class os {
...... initrd /boot/initrd.img-3.2.0-030200-generic
}
menuentry 'Ubuntu, with Linux 3.2.0-030200-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
...... initrd /boot/initrd.img-3.2.0-030200-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-32-generic' --class ubuntu --class gnu-linux --class gnu --class os {
...... initrd /boot/initrd.img-2.6.35-32-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-32-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
...... initrd /boot/initrd.img-2.6.35-32-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-31-generic' --class ubuntu --class gnu-linux --class gnu --class os {
...... initrd /boot/initrd.img-2.6.35-31-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-31-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
...... initrd /boot/initrd.img-2.6.35-31-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-30-generic' --class ubuntu --class gnu-linux --class gnu --class os {
...... initrd /boot/initrd.img-2.6.35-30-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-30-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
....... initrd /boot/initrd.img-2.6.35-30-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
....... initrd /boot/initrd.img-2.6.35-22-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-22-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
......  initrd /boot/initrd.img-2.6.35-22-generic
}
### END /etc/grub.d/10_linux ###


Sabtu, 02 Juli 2011

Some Ubuntu Keyboard Shortcuts

Having used to keyboard shortcuts in Windows, does push me to find more of various keyboard shortcuts in Ubuntu. I'm using Ubuntu from recently, around 2 - 3 months ago. 

Workspaces:
1. To move an active window to another workspace : CTRL - ALT - SHIFT - Left/Right Arrow. Why do we need this? Sometimes, we found it too many open windows in one workspace and it comes in handy to be able to organize it a lil neater.
2. Moving between workspaces : CTRL - ALT - Left/Right Arrow

3. When there is no mouse and you need to click on something in the top panel, bottom panel or an icon in the desktop, you can use this shortcut : CTRL - ALT - SHIFT - TAB. Ubuntu will show  you the choice, whether it's top or bottom or desktop, and then after one is selected, you can use left/arrow button to choose an icon. Beside this combination, CTRL - ALT - Esc also works.

4. To show desktop, use Windows button and D

5. If you notice, there is a message pane in the top right corner, it contains chat, broadcast accounts and so on, so to choose this, we can use Windows button and M then use arrow down/up to select specific item.

6. Sometimes, we need to access the virtual screen just in case the X window somehow crashes. We can use combination CTRL - ALT - F7 / F8

7. CTRL - ALT - L to lock window

8. CTRL - SHIFT - F10 to give right click mouse effect

9. CTRL - SHIFT - N to create new folder anywhere

10. Last but not least, you can always assign keyboard combination on your own. Like myself, Im assigning CTRL - ALT - T to open up terminal and CTRL-D to open Home Folder

Senin, 04 Oktober 2010

Auto starting your SpagoBI

We have implemented SpagoBI as one of our monitoring dashboard. It was great so we decided to put it in one of our big screen TV so everyone can watch. We're using a regular desktop PC so regular restart is needed.

One of my main concern is, someone has to maintain it, so everytime it gets started, spago is automatically brought up, authenticate and redirects you to the specific page.

This is really easy. But first, you need to have an access to a webserver. It doesnt have to be a sophisticated one, as long as it could handle 1 KB page.

This 1 KB page we'll use a trigger to authenticate, so basically what will be contained in the 1 KB page is as below:

<head>
<title></title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
</head>
<body onload="document.forms.form1.submit();">
<form id="form1" action="http://spagoserver:8080/SpagoBI/servlet/AdapterHTTP?PAGE=LoginPage&NEW_SESSION=TRUE" method="post">
<input name="userID" type="hidden" value="yuvi" /> </input>
<input name="password" type="hidden" value="mypassword" /> </input>
</form>
</body>
</html>

As you can see, my server is installed mostly with default setting. The page above will automatically redirect us to the spagoBI page and authenticate, see our hidden input that is automatically submitted.

And we know it aint enough since we need to see one specific page instead of the homepage. So what would you do?

We only need to add additional object label and parameter to above action attribute within form tag. According to the SpagoBI wiki, the complete URL should be:

http<or https>://<your server name>:<your server port>/SpagoBI/servlet/AdapterHTTP?PAGE=LoginPage&NEW_SESSION=TRUE&OBJECT_LABEL=<label of the document you want to be executed>&PARAMETERS=<parameters for document execution>

In my case, it is:
http://spagoserver:8080/SpagoBI/servlet/AdapterHTTP?PAGE=LoginPage&NEW_SESSION=TRUE&OBJECT_LABEL=<CC%20Today>&PARAMETERS=documentLabel

During object creation (by the Spago Admin of course), the parameter is defined, and that is where the documentLabel come from. To know better, you could check out the metadata information for that object.

Now, one more problem to resolve, which is to automatically bring up browser once it is restarted.

In windows, it's quite easy, you just need to add one scheduled task, run everytime the system starts up and the command line interface is quite simple. I happen to use google chrome and it goes this way:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --app="http://localhost/autostart.html". As you can see, I'm using local web server. It's not that much of requirement for hardware, run with only 512 MB.

For firefox, you can use this:
"C:\Program Files\Mozilla Firefox\firefox.exe" "http://127.0.0.1/autostart.html"

The autostart.html is the one that contains the above html file.

And that is all.

Kamis, 30 September 2010

Belajar Photoshop - Make White from Black

Pagi ini dari Photoshop Digital Photography School.

Make White from Black, membuat gambar dengan background hitam menjadi putih. Di tutorial aslinya, yang digunakan adalah gambar bunga berwana kuning, pencahayaan terang dengan background hitam. Disitu dibilang, kalau hanya select remove background saja, akan meninggalkan bekas2 karena kalau gambar di shoot dengan hitam akan ada refleksi. Nah, kita akan bikin itu menjadi smooth.

Gambar asli yang akan digunakan adalah dibawah ini. Diambil waktu ada anatomy show di FX.


Kalau kita hanya select background dan remove, akan menjadi seperti dibawah ini:


Ada bekas - bekas hitam dipinggirnya kan? Nah, skrg dengan menggunakan langkah - langkah yang ada di digital photography school:
1. Buat 3 layer dari background copy
2. Layer paling atas, set blending optionsnya 'color', layer kedua set blending optionnys 'lighten'
3. Langkah ketiga, layer terakhir, lakukan apply image (dari menu image), channel red, invert, dan blendingnya normal.
Sekarang hasilnya adalah:


Lebih smooth kan?

Dan ini experiment, untuk bikin dari terang ke gelap. Dengan mengganti lighten menjadi darken, dan pada metode apply image yang digunakan adalah channel blue.

Original Picture:

Dan ini hasilnya:

Selasa, 03 November 2009

Perjalanan dari Windows Menuju RedHat

Sekedar sharing untuk pengguna RHEL 5.

Saya baru install rhel versi 5, dual boot dengan Windows XP, pengen porting [lagi] dari Windows ke GNU/Linux hehehe.

Tantangannya yaitu:
1. Pastinya memastikan ethernet card dikenali dan bisa digunakan. Untungnya, modul ethernetnya langsung dikenalin jadi ga perlu repot2 udah langsung tinggal configure ip address plus sudo ifup hehehe

2. Mengenalkan zte modem yang akan digunakan untuk connect ke internet kalo lagi ngga di kantor. ZTE modemnya tipe MF622 yang berfungsi ganda, yaitu sebagai storage dan sebagai modem. Kalau di Windows, pada saat pertama colokin, pasti akan dikenali sebagai removable disk terlebih dahulu baru kemudian setelah aplikasi dialernya dijalankan, fungsinya akan berubah menjadi modem. Pada GNU/Linux, yang dilakukan mirip dengan yang di Windows, yaitu membuatkan aturan baru di udev.d kalau ada modul storage ZTE tersebut langsung dideregister lalu diswitch ke USB modem. This is pretty simple for me karena udah ada yang berbaik hati bikinin rules duluan jadi tinggal copy aja hehe ... http://pfesto.blogspot.com/2008/09/zte-mf622-e61i-and-wimode-on-fedora.html.

3. Bikin repo lokal :D, thanks to rito (http://blog-rito.blogspot.com/). Awalnya bikin repo dari CD Installer RHEL5 yang dipake buat install, tapi terus terpikir, kan paketnya aku install semua pada saat awal, jadi ngga ngaruh juga :)) ... akhirnya aku bikin repo dari CD installer Fedora yang aku pinjem dari Rito juga. Cuma sayangnya, paketnya mirip2 deh ... jadi, terpaksa bikin repo dari kambing.

[root@localhost ~]# cat /etc/yum.repos.d/master
[master]
name=master
baseurl=ftp://kambing.ui.edu/centos/5.4/os/i386/
mirrorlist=file:///etc/yum.repos.d/local.mirror
enabled=1
gpgcheck=0


4. Install2 aplikasi hiburan yang biasa dipake sehari2:
- pidgin
- xine
- realplayer

Agak ribet ya pasang xine-nya. Kalau pasang libxine justru gampang, tinggal yum search hehehe. Masalahnya adalah pada saat pasang xine-ui, maklum amatir :D, bolak balik ./configure, soalnya somehow libxine-nya ngga dikenalin :sigh:
Pas pake xine-ui, libxinenya yang ga dikenalin, karena berbagai macam option configure sudah dicoba, khususnya option CPPFLAGS sama LIBFLAGS ngga ngaruh juga, akhirnya download kaffeine (inget ini soalnya mas tisna pake hehe). Sama juga kasusnya, banyak banget dependenciesnya. Udah install satu2, stuck juga di flag yang sama ... weks.
Pindah ke gxine, sama juga, malah baca2 di forum, makefilenya ada bugnya, manggil function yang ngga ada di header file.
Akhirnya balik lagi ke xine-ui dan coba - coba lagi ganti2 option configure. Hehehe akhirnya berhasil juga.
$ ./configure XINE_LIBS=/usr/local/lib/libxine.so XINE_CFLAGS=/usr/local/include/xine.h --with-readline

One down, udah bisa maenin VCD dan AVI di xine, dan maenin mp3 di real player :D.
Kalo pas install real player ngga terlalu susah kok, tinggal download rpm nya hehehe.
Begitupun pas install pidgin, ga ribet.
Hemmm pas ditulis cuma jadi 1 blok, padahal ngerjainnya 1 hari nih #^%&#^%)@^&$)(@^%*

4. Yang keempat, karena semua data udah terlanjur ada di NTFS partition, berarti aku harus install ntfs kernel module biar bisa mounting. Nah, biar bisa read write, sekalian deh, dipasang ntfs-3g. NTFS-3g butuh fuse dan dkms-fuse (dynamic kernel module) biar bisa dijalanin, karena kalo ngga, pas mounting akan error.
Selesai pasang ntfs-3g, tinggal edit /etc/fstab, bikin auto biar ngga perlu mounting bolak balik.

5. Pasang OpenOffice. Ingat, sekarang counterpart kita adalah Office 2007, jadi OpenOfficenya juga harus versi 3 biar bisa dibaca. Yang ini juga amat sangat gampang, tinggal download dari openoffice.org, selesai deh.

6. Jangan lupa, pasang VMware hehe. VMware workstations yang versi opensource free kok, bisa langsung didownload di websitenya VMware. Buat yang gila debugging, jangan lupa pasang eclipse biar kalo error bisa ditrace.

7. Import semua email dari Microsoft Outlook ke Thunderbird. Kenapa pilih Thunderbird? Soalnya di google dibilang, thunderbird adalah yang paling banyak digunakan, simply that :D, kekurangannya, ga bisa pasang calender, kalo mau pake calendar, harus pake Evolution. Blom coba sih, bisa import dari Thuderbird ke Evolution apa ngga. Yang jelas, untuk import dari MS Outlook ke Thunderbird, kita harus pasang dulu Thunderbird di Windows, import semua email dari MS Outlook ke Thunderbird di Windows, baru deh copy semua file mailboxnya ke folder yang akan digunakan oleh Thunderbird di Linux. Biasanya extensionnya .msf.

8. Pasang httpd, karena pas di awal udah install semua package, jadi tinggal dinyalain ajah hehehehe

9. Edit file sudoers.

10. Pasang wireless adapter. Nah ini yang ngga bisa :D, dari kemarin stuck nih. Buat temen2 yang udah pengalaman mohon arahannya. Yang jelas modul nya udah dikenalin.

[root@localhost ~]# lsusb
Bus 002 Device 003: ID 19d2:0001 ONDA Communication S.p.A.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 003: ID 0402:5606 ALi Corp. USB 2.0 Camera
Bus 001 Device 002: ID 0bda:8189 Realtek Semiconductor Corp. RTL8187B Wireless 802.11g 54Mbps Network Adapter
Bus 003 Device 001: ID 0000:0000
[root@localhost ~]# lsmod | grep rtl8187
rtl8187 34497 0
mac80211 137545 1 rtl8187
cfg80211 30793 2 rtl8187,mac80211
eeprom_93cx6 6337 1 rtl8187
[root@localhost ~]# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
sit0 no wireless extensions.
vmnet1 no wireless extensions.
vmnet8 no wireless extensions.
ppp0 no wireless extensions.
[root@localhost ~]# ifup wlan0
/sbin/ifup: configuration for wlan0 not found.


Sama pendingan satu lagi, suara sih keluar dari speaker internal, tapi ngga bisa keluar lewat headphone, kenapa ya :D. Kalo headphone dicolokin, speakaer ngga bunyi, tapi tetep ga ada suara yang keluar lewat headphone.

Update status per hari ini, 9 Nov 09. Ternyata, masalah ga bisa bunyi kalo pake headphone, bukan masalah driver and the likes ... instead, it is just a configuration matters. Aku coba - coba kemarin, semua options dibuka2in, dan untuk surround, aku ngga mute ... ehhhh ternyata bunyi loh di headphone :)) ... katro deh.

Jadi, skrg tinggal gimana caranya agar wlan0nya kedetect. Btw, thanks to rito, redhat ku skrg centos flavour :D. Mengikuti saran rito, redhat aku yum-update menggunakan reponya centos, walhasil sekarang centos flavour :D.

Kamis, 29 Oktober 2009

Integrating Paypal Checkout to Your Website

Semalem akhirnya aku berhasil juga mengintegrasikan paypal checkout button ke website. Sebenernya gampang - gampang susah sih, gampangnya karena modulnya sudah ada sih sebenernya, cuma tinggal setting (we are point and click engineers katanya sunil kekekeke). Susahnya, kalo dah nemu problem yang orang2 belum pernah nemuin sebelumnya. Ujung2nya u've got to debug it yourself.

Untungnya, kali ini saya punya banyak clue jadi ngga perlu pusing2 baca codingan orang :D. Ngga sih, tetep perlu juga ding, meskipun useless hehehe.

Website yang mau saya pasangin tombol paypalnya adalah website jualan (ya iyalah masa website perpustakaan, eh tapi bisa juga ya, buat donate atau bayar sewa). Website ini pake osCommerce. Dan para developer yang baik hati itu, sudah membuat modulnya. Jadi, dari web admin, saya cukup klik install. Nah, di settingan tersebut, akan ada isian username, password, signature, server dll. Biasanya, orang yang sukanya coba2 (seperti biasa) ngga akan baca tutorial dulu, tapi akan langsung isi ini itu ini itu ehhh error :)).

Saya juga sempet isi dengan nilai yang salah, cuma sayangnya ngga kedapetan error kalo salah seperti apa ya. Pokoknya, pas di klik tombol paypalnya, diem aja ngga bergerak.

Akhirnya diputuskan untuk MEMBACA TUTORIAL PAYPAL UNTUK DEVELOPER. Here we comes the big stone.

Paypal menyediakan server development yang bisa kita gunakan untuk keperluan testing, namanya server sandbox. So, buat best practice, it's much better to use sandbox first then the live one. Di server sandbox ini, kita bisa create test account yang mewakili buyer and seller, each one account. Dan pada saat testing pembelian, kita bisa gunakan account ini untuk mengetahui customer experience from end to end.

Untuk mengakses sandbox server, urlnya adalah https://developer.paypal.com.

Step - stepnya secara simple bisa dibuat seperti ini:
1. Create test account, satu yang mewakili user, dan satu lagi yang mewakili buyer.
2. Create API credentials. Kita akan mendapatkan API username, API password dan API signature. Kebetulan kemarin coba - cobanya pake yang express checkout, bukan yang payment standard. Dengan payment standard, sebenernya akan lebih aman karena bisa menggunakan certificate. Cuma sayangnya belum sempet maen2 nih sama certificate :D.
3. Setelah mendapatkan API credentials, silakan masukkan values ini ke settingan osCommerce.

Right after this point I got stuck. Kenapa? Karena even setelah saya masukkan API credentials tersebut dengan benar, checkout procesnya masih belum bisa juga. Jadi, setelah klik tombol checkout, browsernya diem aja, seakan2 ngga ada response. Jadi, saya pikir, ini saatnya firebug dan fiddler beraksi. Even dengan menggunakan 2 debugger tersebut, saya ngga dapet apa2 a.k.a mereka ngga nunjukin apa2.

Dengan firebug, it told me that nothing is in error. Trus saya coba inspect element, I got permission denied. Dengan Fiddler, saya dapet error 500, a.k.a page not found. Kemudian, saya coba pikir lagi. Paypal ini kan butuh cURL. Saya coba locate, ternyata emang cURLnya udah keinstall. Trus saya coba pake function - functionnya cURL di halaman test, ternyata ada error funtion not found. So I guess, it must be something with cURL.

It turns out that it needs an additional module to be started on php.ini. Ini dia yang harus dienable:
extension=gd.so
extension=curl.so

Right after that, it went all smooth and clear. Untuk implementasi di live server, you just need to replicate all those steps in sandbox server to the live one. Menunya memang agak berbeda sih, but it's still easy to figure out.

Minggu, 25 Oktober 2009

osCommerce Indonesia Translation

For you all who need the translation of osCommerce language module to Bahasa Indonesia, please do not hesitate to contact me.

I think of uploading it later, still trying to figure out how (please do not laugh) ... If you wish to check it before contacting me, I use the translation for a website, http://easyfind.web.id.

My contact is available publicly at my profile page or you could just googling my full name to get my profile page.

Jumat, 25 September 2009

VLAN interface line protocol status

Ever created a vlan interface and it's showing that the interface status is up-down?

Just now, I've created a vlan interface and its physical link status is immediately up. Unfortunately, the line protocol status is always down.

Come to think, it might need some ports to be assigned, so I assigned an Fa 0/1 to Vlan20. However, the luck has not yet to come.

It turned out that it needs some devices to also attached to that interface. So my conclusion is, if the link of the physical port is up-up, then the vlan protocol status will then go up. Someone else might have an explanation to this, but I don't.

This is the debug:

%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan20, changed state to up
RT: interface Vlan20 added to routing tableRT: SET_LAST_RDB for 172.16.71.0/24
NEW rdb: is directly connected

RT: add 172.16.71.0/24 via 0.0.0.0, connected metric [0/0]

See .. my new static route is also added to the table :)

Jumat, 11 September 2009

Cron task in 5 minutes

Wanna run scheduled task in Linux using cron task, but you're having problem in reading the bulky tutorial?

This should work in only 5 minutes:

[root@VM-FC10 etc]# more /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

/etc/cron.hourly itu adalah direktori, jadi untuk yang mau dikerjakan setiap jam, taruhlah di direktori ini. jangan lupa, bahwa semua script yang ada disini, harus merupakan shell script.

nah, yang banyak bintang2nya itu adalah penunjuk waktunya, sebagai berikut:
menit jam tanggal bulan hari command
hari diisi dengan angka 0 sampai 7 dengan 7 berarti hari Minggu

bagaimana kalo kita ingin menjalankan task yang ngga ada di pola diatas? ya tinggal ditambah aja hahahaha ..

tambahnya di /etc/cron.d/ dan sintaksnya sama dengan crontab diatas

gampang kan? yang susah shell scriptnya :D