Dual WAN aggregated speeds

fter a few days of testing I am able to reach a sustained maximum throughput of 430-600 kbps download speeds on my torrents. This is on my dual WAN setup which is on a 3mbps DSL connection and a 3mbps cable connection. The dual WAN mode is set to Load Balance on my router. Browsing speeds is ok as well even while having torrents and streaming videos. Internet service is also almost seamless even if one provider fails *cough* PLDT *cough*.

Of course speeds vary depending on time and usage but I am still getting way better results with my current setup than my previous 5mbps (supposedly) DSL connection, which only maxed out at 300+ kbps.

Dual WAN : reliability over speed

Internet here in the Philippines is both expensive and unreliable. I pay P1,700 PHP or $38.50 USD for a deviously advertised 3mbps DSL connection. Unfortunately, my currently provider is the lesser evil among my very limited choices, all thanks to the monopoly.

So in an effort to increase reliability and perhaps connection speed at a reasonable price. I opted to get a second Cable based connection… with the same deviously advertised 3mbps speed at P999 PHP or $22 USD.

I then used my router an Asus RT-N66U to to use a dual WAN setup in either a fallback or load balance configuration.

image

I now have 2 internet connections at the same speed I can use simultaneously to either balance the traffic or designate one connection for a specific purpose, like one for gaming and the other for torrents.

image

I still have a maximum theoretical throughput/burst speed of 3mbps but I will be able to maximize both connections and have better reliability and uptime… at roughly the same cost of a faster connection with a single provider.

Personally I think I get better value for my P2,700 PHP or $60 USD, I get 2 connections and a phone line. As compared to getting a single (5mbps and up) connection for P2,000 PHP plus plus.

My webdev environment on Windows

Here the web development environment I have setup on my laptop. It’s simply a run-through and short tutorial of the things I use for those of you who are interested in getting into the web development scene.

To start of, here’s a list of apps I use:

  • WAMP – This basically has everything you need to get started; it also included some extensions you may find useful like XDebug.
  • Node.js – I primarily use this as a command line interface for the tools I use like Bower and Grunt.
  • Sublime Text – this is the best text editor I’ve used. It’s free to try but you can buy it if you like it.

Setting things up is pretty straight forward for WAMP and Node.js, configuration will be subjective so I’ll leave that to your personal preferences. Node.js already comes with npm.  so you can jump right into installing Grunt and Bower via the Node.js CLI (Command Line Interface). You can also use npm in other development environments like Phonegap apps.

If you’re on Windows like me, you will need to install GIT for Windows to get Bower working properly.  You can also use this tool to manage your repositories if you have any.

image

After installing git you will need to add the installation path to your PATH Environment Variable, which is typically located in C:Program Files (x86)Gitcmd. You may have to restart your system for the changes to take effect.

Once you’re done with that you can turn your attention to Sublime Text. I like the simplicity versatility and light foot print it has over other text editors. Like npm it also has a a package manager called Package Control you can use to add more functionality to it. You will need to enable this by opening the Sublime Text console (Control + `) and paste the code below. For detailed instructions you can visit the installation guide.

Sublime Text 3

Sublime Text 2

After that you will see the Package Control menu by going to Preferences > Package Control.

Signing Android apps on Phonegap for release

You will need to digitally sign your apps for release if you want to install them on your device for live testing. If not you will get a parse error when installing.

image

We will need to use the keytool from the JDK to create a key we can use to sign our apps whenever we build them (be sure you already added the JDK path to your Environment Variables before proceeding). To do this open your command prompt and navigate to your project folder. Once there enter the command below:

You will need to change the values in angle brackets (<>). Once you enter the command, answer the questions asked. Remember to take note of the passwords you enter, you will need that in a bit. When you are done you will see a .keystore file on your project folder.

Now create an ant.properties file in your <PROJECT-PATH>platformandroid folder with the following contents:

Note the double slash () between folder paths.

Now you can build your Phonegap/Cordova app for release with the following command.

phonegap setup guide for android on Windows

This is a short guide on how to setup a working and testing environment for either native or Phonegap/Cordova based Android app development on a Windows machine.

NOTE: the versions of the software I list here are the current versions available  as of this article’s posting, or my personal preference.

To get you on your merry way of building android apps via Phonegap on Windows 8/8.1 you’ll be needing the following software:

Now we set things up one at a time…

Java SDK

Install the JDK first since it is required by both the Android Studio and Apache-Ant. After installing take note of the installation folder which is typically in C:Program FilesJavajre7, we will be appending this to our PATH environment variable later on. We will need this to access the Java keytool for signing our apps.

Android Studio

After installing this in your preferred settings open the SDK Manager and check the tools you’ll need. This is dependent on which version of android you plan to support; also make sure to select ARM-EABI System image for each version of android you on using. If your system supports Intel Virtualization be sure to check Intel x86 Emulator Accelerator as well. Now that you’re done click on Install Packages.

image

While that’s downloading we will setup paths. Navigate to System Properties (you can search system environment in Windows 8 to open the dialog) then click on Environment Variables. Once there we will be adding some variables, you may choose to either add it globally or for the current user.

image

Add the variable ANDROID_HOME with value of the SDK path found in the SDK Manager dialog (see the image up top). After that you’ll want edit the PATH variable and append the path to Android’s tools and platform-tools folder like so (note the semi-colon as the separator)

Notice the ANT_HOME variable? to save time we will segue a bit and set this up now. Simply extract the apache-ant archive to your preferred location, this will be the value of the ANT_HOME variable (e.g.C:apache-ant-1.9.4).

We also added the the bin folder location of our Java SDK which is in the installation directory we noted earlier.

That’s it! Just remember that we also appended the %ANT_HOME%bin to the PATH variable as well.

Before proceeding any further open your commend prompt and test to see if the paths are properly set by echoing each variable you added/changed (e.g. echo %ANDROID_HOME%). You may have to restart your system for the variables to take effect. You may also try the “ant -diagnostics” command without quotes to see if the paths for it are correct. You may encounter an error like Unable to locate tools.jar. which you can ignore.

Assuming that the packages are done downloading and installed. If your system supports Intel Virtualization (VT-x, VT-d). proceed to your Android SDK folder then look for the Intel x86 Emulator Accelerator which is typically in extraIntelHardware_Accelerated_Execution_Managerintelhaxm-android.exe and install it manually.

If you are getting errors during installing despite having support for Virtualization:

  1. check if you are running Hyper-V (a Windows 8 Pro feature) and disable it in the control panel.
  2. if you are running Avast, navigate to Setting > Troubleshooting then uncheck Enable Assisted Hardware Acceleration.
image

Now proceed to Tools > Android > AVD Manager (Android Virtual Device) in Android Studio and ad a virtual device for testing. For the System Image setting it is much faster to use the x86/x86_x64 if your system supports Virtualization; if not choose the ARMEABI albeit really slow.

image

Node.js and Phonegap

After installing Node.js locate and open the Node.js command prompt shortcut then install phonegap and cordova by executing the commands below. This will download and install the latest versions of the packages.

once that is done, you can now start building and testing phonegap apps.

Phonegap Build caveat

There is also a Phonegap build service you may use for free.Simply supply your html files in zip format from either  a public repository or by uploading them to their servers and in turn will supply you with a compiled app for the platforms you choose.

The disadvantage being that you will have to upload files every time you want to rebuild/debug the source. It doesn’t not provide emulation or testing environment either; So what ever time you save skipping the setup of your development environment will be negated sooner than later when you start to test.