Happy New Year to You!

Happy New Year, 2015!

I can't believe yet another year passed by and my blog is still up and running ;P Put some jokes aside, I didn't expect myself posting new articles consistently (well almost consistently). This is all because encouraging comments some visitors leave for me. Honestly, if no one reads my blog, even though I said at the beginning this blog was only meant as some notes for myself, I wouldn't have been able to continue this long. So let me say this again... Thank you!

For my New Year's resolutions, I'd like to keep my blog up and running for another year with more notes to myself that would be informative/helpful to others.

That's all!

Copying Files From Android Kitkat (4.4.4) to Slackware

I didn't know until I tried myself but when I connected my Samsung Galaxy Note 4 to my slacky64 (Slackware Linux) via USB, I no longer had an option to connect it as USB Mass Storage (UMS) like it did with other flash drives. In stead, it gave me two options: MTP and PTP. Hmm... what the heck are these?


Apparently, the old way of accessing the storage device had several drawbacks. One being how it was making its storage partition available to foreign systems. Whenever another system accessed the phone's storage area, it needed exclusive access to there, which means the entire storage partition was dedicated to that system and as long as that system was accessing there, the phone itself couldn't access any files or apps stored in that area. Also, this could easily mess up (or corrupt) the storage partition.

Another reason was the type of its file system. Because its storage partition needed to be available to various systems, mostly for Windows devices, it was formatted as the FAT file system (Duh...). FAT is an older and slower file system without the concept of file ownership. Not to mention Microsoft holds patents for which they demand royalties from OEM's for long file name support on the FAT file system, etc...

So what are MTP and PTP?

MTP (Media Transfer Protocol) is a subset of PTP (Picture Transfer Protocol) communication protocols that allow transferring media files from and to portable devices. These protocols have been around for a while but they are new to Android. They are considered better solutions to the problems UMS had. When a foreign system accesses the phone via MTP, it sends queries to Android and Android returns with the list of files requested. Then it downloads files. This allows access to file levels rather than exclusively opens up the entire storage portion and also allows Android choose which files to present.

This also enables Android format its storage device with ext3/ext4 or any other file systems - no longer limited to FAT!

PTP works the similar way and is mostly used by digital cameras.

For more information, please refer to Android USB Connections explained MTP, PTP, and USB Mass Storage

Now, some terminologies are out of the way, I tried transferring some photos from my Note 4 to slacky64 using MTP. Hm? It's very slow loading photos and it's even slower transferring them. Also, after photos were copied over, not only were their timestamp changed to current date and time instead of date and time taken but my photo viewer program also couldn't display them. That's not good...

I was hoping PTP would work better but no luck. It was even worse; I couldn't even get photos listed in my file manager.

Now, I went on a hunt for better ways to transfer photos.

I tried sftp and scp (with an option to retain the original timestamp) but its process kept dying on me while in the middle of transferring files.

I was kind of frustrated with this. Then, I found dukto in Google Play. It had good reviews and high rating points. I was a bit concerned about this program needing be installed on all devices, but, what the heck, as long as it'll transfer photos, I would be happy at this point.

Installation on the Android device was breeze. There were some extra steps needed to install it on my Slackware system because dukto was available in binary packages for CentOS, Fedora, OpenSUSE, RHEL, and Ubuntu and no source. This means the rpm package needs to be converted to the tgz format with the rpm2tgz command.

Converting rpm with rpm2tgz

Slackware comes with a handy utility to convert rpm files to tgz files. All you need is to run rpm2tgz with rpm file: # cd /tmp # rpm2tgz dukto-6.0-13.1.x86_64.rpm ... Slackware package /tmp/dukto-6.0-13.1.x86_64.tgz created # installpkg /tmp/dukto-6.0-13.1.x86_64.tgz Verifying package dukto-6.0-13.1.x86_64.tgz. Installing package dukto-6.0-13.1.x86_64.tgz: PACKAGE DESCRIPTION: Package dukto-6.0-13.1.x86_64.tgz installed. #

VoilĂ ! The conversion and installation went successful. To run the program, execute dukto: $ dukto


Transferring Files

To transfer file from the Android device to PC:

  1. Open dukto on both devices
  2. On the Android device, click on the icon you want to send your files
  3. Choose Send some files and folders if you are sending files
  4. Locate files you wish to send
  5. Check files
  6. Click on the Send icon

Once selected files have been transferred, the confirmation message is displayed.


Transferring files was snap. In my opinion, the best way to transfer files for Android devices. Although this was the best method by far, I should note that the timestamp of transferred files was still changed. At this point, it's no longer a big issue because file name contains the date taken and this info as well as the time were embedded to file itself.

There are some drawbacks of this program:

  • There is no "select all" button. If you want to copy 100 files, you need to select all those files manually (or you could select a folder)
  • dukto needs to be running on both devices simultaneously
  • dukto must be active while transferring files; otherwise, it halts the process. This means no screensaver as well

The information in this site is the result of my researches in the Internet and of my experiences. It is solely used for my purpose and may not be suitable for others. I will NOT take any responsibility of end result after following these steps (although I will try to help if you send me your questions/problems).

That's all!

@aBoyDesign.com Lab Launched!

Web Development is something I've been doing in my spare time for my family and friends. They are usually a bunch of small projects like log-in systems or light-weight shopping cart, etc... These features are so small that I can't usually use them as my portfolios. For this purpose, I've created @aBoyDesign Lab.

@aBoyDesign Lab has a collection of projects that I created for fun and it's launched now!

Any comments are much appreciated!

That's all!

Getting git working on Galaxy Note 4

Yes! I finally received Samsung Galaxy Note 4 - Frost White on 11/3/2014, a little more than week later than proposed shipping date from Verizon. Galaxy Note 4 is an amazing, amazing device. It's super fast and its display is just gorgeous. There are so much to say about this phone but for full reviews and specs, you can always "Google It".

At any rate, after a few days of playing with it, naturally, I decided to make it my web development device in place of old Thunderbolt. So, I started following my own blog, Getting git Working on Android Device. But when I tried to make a test connection to bitbucket.org, I got following error: $ ssh -T git@bitbucket.org ssh: connection to git@bitbucket.org:22 No auth methods could be used.

Hmm... what's going on? I started digging and found that I forgot to mention registering the public key to bitbucket.org. Oops. After a year of its original post, I found a missing step in my post. How embarrassing! I made a correction so hopefully all make sense now.

Since I have all the steps and explanation in Getting git Working on Android Device, I won't go into details of each step again, but instead, I'll list the summary of commands used to make it happen: //OPEN Terminal IDE $ git --version git version $ mkdir ~/.ssh $ dropbearkey -t rsa -f ~/.ssh/id_rsa $ dropbearkey -y -f ~/.ssh/id_rsa $ vim ~/.bashrc --------------------------------- alias ssh='ssh -i ~/.ssh/id_rsa' $ vim /data/data/com.spartacusrex.spartacuside/files/bin/ssh_git --------------------------------- #!/data/data/com.spartacusrex.spartacuside/files/system/bin/bash exec ssh -i ~/.ssh/id_rsa "$@" $ chmod 755 /data/data/com.spartacusrex.spartacuside/files/bin/ssh_git $ vim ~/.bashrc --------------------------------- export GIT_SSH=~/bin/ssh_git $ dropbearkey -y -f ~/.ssh/id_rsa | grep "^ssh-rsa" > ssh_key //COPY THE PUBLIC KEY TO bitbucket.org and Restart Terminal IDE $ ssh -T git@bigbucket.org logged in as [username]. You can use git or hg to connect to Bitbucket. Shell access is disabled. $ ln -s /mnt/sdcard/www www && cd www $ git clone git@bitbucket.org:[username]/[repository_name].git $ vim ~/.bashrc --------------------------------- export GIT_AUTHOR_NAME="[username]" export GIT_AUTHOR_EMAIL="[username]@[server]" export GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME export GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL

That's all!

The information in this site is the result of my researches in the Internet and of my experiences. It is solely used for my purpose and may not be suitable for others. I will NOT take any responsibilities of end result after following these steps (although I will try to help if you send me your questions/problems).

Adding Another Wirelesss Router Along with Verizon (FIOS) Actiontec Router

I admit. I didn't care much about WiFi signal strength or range for my cellphone because I had the unlimited data plan from Verizon. But my way of thinking now needs to be changed as my old HTC thunderbolt started acting up to the point where I could no longer tolerate (it sometimes takes 15 mins to start making a call after inputting numbers, on-screen keyboard doesn't input anything, etc...). So finally I decided to upgrade my device and plan.

As I started using WiFi at home, I realized the WiFi signal didn't cover all the rooms and somehow I needed to extend the signal range. The best way would be to relocate my current Actiontec router from Verizon somewhere center of the house but this was not an option for me. Another way was to use another wireless router as AP (Access Point) along with Actiontec router. Luckily, I still had ASUS Wireless router (RT-N56U) that I used to use before FIOS and used it to extend the WiFi signal range.

Here is the steps that I took to configure the primary router (Actiontec) and secondary router (ASUS).

The information in this site is the result of my researches in the Internet and of my experiences. It is solely used for my purpose and may not be suitable for others. I will NOT take any responsibilities of end result after following these steps (although I will try to help if you send me your questions/problems).

Configuring the Primary Router (Actiontec)

1) First thing first, disconnect all patch cables connected to the primary router except the one system used to configure it. This step involves changing DHCP address range, so it's better to turn off any devices using wireless connection and reset the primary router to start off with clean state.

2) Access the configuration page of the primary router from web browser pointing to

3) Once successfully logged in, go to My NetworkNetwork ConnectionNetwork (Home/Office) then click on the Settings button. Scroll down a bit and locate IP Address Distribution.

IP Address Distribution: DHCP Server
Start IP Address:
End IP Address:
Subnet Mask:


The starting IP address I used was 6. This is because address 1 is reserved for the IP address for the primary router. Address 2 is for the secondary router and I have some other devices that I wanted to use static IP address (ex: my primary system, printer, etc...).

4) Click Apply, then click Apply again.

5) Now set up the static IP address for the secondary router, my primary system and printer. Go to Advanced → Click on YesIP Address DistributionConnection ListNew Static Connection

Make sure the physical address (MAC address) is available for each system configuring for static IP address

6) Make sure that the system still has the Internet connection.

Configuring the Secondary Router (ASUS)

7) Unplug the patch cable from the primary router and plug it in the LAN port of the secondary router. Then restart networking. I used my notebook with Debian and below is the commands: # /etc/init.d/networking stop # /etc/init.d/networking start

8) Again, access the configuration page of the secondary router from web browser pointing to

9) Now configure this secondary router as Access Point (AP). There are two ways to do this:

i. Setting Up AP Mode: I updated its firmware to and AP mode became available.

Go to Administration and make sure Access Point(AP) mode is selected.


Set up static IP address for this router.

IP Address:
Subnet Mask:
Default Gateway:


Then set up wireless, such as SSID, Network Key, etc...

ii. Setting Up Manually: Manual setting is not difficult. All you need to do is to setup the static IP address and disable DHCP.

Set up the static IP address for the secondary router. Go to LAN under the Advanced Settings → LAN IP

IP Address:
Subnet Mask:


Now disable DHCP. Go to LANDHCP Server and make sure Enable the DHCP Server is set to No


Let's Connect Two Routers

10) Connect a patch cable from a LAN port on the primary router to a LAN port on the secondary router. At this point, I can connect to the configuration page of the primary router via and that of the secondary router via

That's all!