Wazapp: Comparing discussion channels

It’s both amazing and gratifying to see my Wazapp update guide getting an incredible amount of hits today. I can’t really contribute to the community in terms of development, but documentation is what I excel at, and this is probably where I will continue to contribute.

Forums are a good channel for discussion, but the pages rack up too quickly at times with important posts being missed, and spam posts appear with first-time posters repeatedly asking the same questions – this ends up annoying everyone else because of the same old questions/complaints/rants.

Twitter is great because it provides real-time communication, but not as good for retrieving archived information. For example, reading a tweet from three months ago isn’t exactly the easiest thing to do.

Hence, having an FAQ-style guide provides a static post for reference, which makes sense so long as the author continues to update the post with relevant information.

Wazapp: fixed and working!

It probably hasn’t caused an uproar to most of the smart phone community, seeing as the majority of today’s users are invested in either Android or iOS. But the community app Wazapp has been quite important to the Nokia N9 community, so when it stopped working for about a day, there was a major commotion among most, if not all of the users.

Thankfully, an updated version was released very quickly by the Wazapp guys, namely Tarek Galal (@tgalal on Twitter and TMO), Matias Perez (@CepiPerez on TMO) and Bojan Komlejenovic (@knobtviker on Twitter and TMO), not forgetting assistance from Vadim Kotov (vkotovv) of WhatsAPI. (Happy to update if I missed anyone out.)

Wazapp was unfortunately down again on 8 Sep 2012 due to changes on WhatsApp’s end. A new version with the fix has been released, refer to the download archive for the latest build. For more details on the issue, refer to this post.

Wazapp appears to be down again as of 31 Oct 2012, once again due to changes made on WhatsApp’s end. There are dedicated volunteers working hard on this, have a look at this Github thread if you are interested to know the details, or if you are able to help. Refer to this post for updates.
Update: A new fix is released as of 05 Nov 2012, head over to the download page to get the latest version 0.9.12.

Wazapp is down again as of 22 December 2012, new patch version 0.9.14 is released.

Wazapp registration error as of 02 Jan 2013, new patch version 0.9.16 is released.

Below is a short FAQ of recommended fixes for common installation issues for Wazapp

0.2.6 stable build

If you want to remain on 0.2.6 without any new features (e.g. group chat, media sharing), download this stable release by Graham (@ginggs on TMO), build details here. This version has been updated to fix the login issues after 8 Sep 2012.

Error message: status shows “Connecting…” when Wazapp is running.

Error message: status shows “need to remove your account from accounts manager and re-register” when starting up Wazapp. This was due to recent changes on WhatsApp’s end (again), which meant another rework on Wazapp.

The latest fix (11092012-0000 build) is now available, refer to the download archive.

Here is the idiot-proof guide to upgrading your Wazapp and fixing the connection error.

  1. Quit Wazapp
    Go to Wazapp, tap the Menu icon on the bottom right, select Quit

  2. Delete your Wazapp history file
    *Note: This deletes all of your existing chats, you have been warned!

    Download Filebox from Store
    Open Filebox
    Go to the Settings on the bottom right (the gear icon)
    Enable Show hidden files, Show root filesystem
    Go back to the filesystem, navigate to /home/user/.wazapp
    To delete files, tap and hold on the filename, select Delete
    Delete file ending with .db with a string of numbers in front e.g. 2342342139492.db

  3. Download the latest build
    Open Web, or any browser you prefer on the N9.
    Go: http://write.keinism.com/2012/09/03/wazapp-download-archive/ and download the latest build.

  4. Install the new Wazapp
    Run the .deb file after download has completed.
    Tap I agree to Uncertified source
    Tap Accept to Dependency notice
    Wait for Wazapp download and install to complete
    Check if Wazapp is running
    If Wazapp is running, go to Wazapp, tap the Menu icon on the bottom right, select Quit
    Reboot your Nokia N9
    Start Wazapp up

  5. Cleaning up
    You will see messages being received when you are connected
    Quit/start Wazapp a few times to make sure all backlogged messages are received
    Reboot your Nokia N9

Error message: Wazapp registration gives “Failed. Server said: fail-too-many”

For Nitdroid: marrat has a fix for you, check his post out.

As suggested by enjoy, it would be good to make sure WhatsApp is not running on any other phone for your number.

Clean install process (originally suggested by Rabah_vip):

  1. Uninstall Wazapp
  2. Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
    (suggested by hharju)
  3. Use Filebox, delete all files in /home/user/.wazapp (only the files inside, not the folder)
  4. Delete /opt/waxmppplugin to remove old Wazapp core files (suggested by soryuuha)
  5. Reboot your N9 here to be safe. (suggested by hharju)
  6. Install the Wazapp .deb you prefer
  7. Use Filebox, delete the folder /home/user/.wazapp
  8. Remove Wazapp account: Accounts – Wazapp – menu at bottom right – Delete Account
  9. Open Wazapp, re-register (refer to below section)
  10. Reboot phone

If you need to re-register your number for WhatsApp:

  1. Quit Wazapp, then remove it from home screen (hold and tap red X)
  2. Remove Wazapp account: Accounts – Wazapp – menu at bottom right – Delete Account
  3. Wait for 12 hours (suggested by Arie
  4. Download BlueStacks – this is an Android app player for the PC.
  5. Download WhatsApp for Android on your PC
  6. Delete your Wazapp history file (suggested by Jayanand)
  7. Reinstall Wazapp on your N9
  8. Run WhatsApp on BlueStacks, register with your N9’s mobile number
  9. Tip from sb0373 on TMO: Leave Wazapp open with the registration screen active when BlueStacks is being used to send the SMS. This allows the N9 to pick up the registration SMS automatically.
  10. Get the SMS verification code from your N9, and enter it into Wazapp

Error: Unable to sync all contacts to Wazapp

Note: This error applies to builds, especially to larger contact lists.

Branched this off into another post – Look here for details and possible fix.

Error: Unable to receive messages from contacts

This fix was suggested by AngusRock.

  1. Uninstall Wazapp, do not remove Wazapp account
  2. Restart phone
  3. Delete all files in /home/user/.wazapp/ (not the directory)
  4. Install 0.2.6 build by Graham (@ginggs), refer above, do not start the app
  5. Restart phone
  6. Start Wazapp
  7. Quit Wazapp
  8. Install 03092012-1225 build, do not start the app
  9. Restart phone
  10. Start Wazapp

Enabling developer mode and using Terminal to run Wazapp

Refer to this post for details, especially if you want to run Wazapp from terminal and capture the output for troubleshooting.

Have a look also at CepiPerez’s Wazapp FAQ, as well as the list of reported Wazapp bugs on Github.

There is also a new wiki for Wazapp at maemo.org, have a look at it.

With this new update, several features are available, here are the ones I have noticed:

  • Multimedia sharing
  • Status message update
  • Profile picture update
  • Group chat showing subject and contact name correctly.
    (Subject with emoticon causes problems, not verified.)
  • Total number of chats shown on top right corner

Note: Download links for all Wazapp builds have been moved to this page for easier updating.

Happy to improve this post with better information, so comment and let me know what you think.

Cisco IOS: Trunking VLANs and subinterfaces.

So the usual way of connecting one network device to another is the physical approach – you plug both ends in, and that’s it. One service works over one physical cable, easy and uncomplicated. I love 1:1 relationships, life is simple.

Sometimes though, you end up having to connect several connections with only one physical cable – how does that work? We call it trunking, and this requires a little bit of configuration.

Let’s start with a sample scenario and work from there.

A router with two interfaces is required to provide an uplink to three separate services.

So we have:
1. FastEthernet0/0 as the uplink to the Internet, and
2. FastEthernet1/0 as the link to the three services.

There are three ports waiting to be connected on a patch panel, one for each service.

Here’s what we need:

  • Subinterfaces: Subinterfaces are required to be configured on the original physical interface.

    In our example, FastEthernet1/0 will have FastEthernet1/0.100, FastEthernet1/0.200 and FastEthernet1/0.300.

  • VLANs: VLANs are required to be allocated on your network, and configured on the subinterfaces – ISL or 802.1q, both work fine.

    Note: try to use the same number for the VLAN and subinterface – different numbers work fine, but I like to keep things simple.

    Therefore, we have FastEthernet1/0.100 using VLAN 100 on 802.1q, and the same for VLANs 200/300.

  • Switch trunk: We need a switch if there are multiple physical handoffs.

    There are three separate physical handoffs for three services, so we need a switch to connect to the handoffs. It doesn’t make sense for us to have one physical cable coming out of the router, then magically split itself into three connections.

    Every handoff requires a physical connection, so we need one port (configured as trunk) to handle the incoming router connection, and another three ports (configured as access) going to the various services.

Now that we have the concepts explained, let’s have a look at the actual configuration.

Router sample config

interface FastEthernet1/0.100
description Service A configured 29Aug2012 by K
encapsulation dot1Q 100
ip address
interface FastEthernet1/0.200
description Service B configured 29Aug2012 by K
encapsulation dot1Q 200
ip address
interface FastEthernet1/0.300
description Service C configured 29Aug2012 by K
encapsulation dot1Q 300
ip address

Switch sample config

interface FastEthernet0/1
description dot1q trunk from routerA configured 29Aug2012 by K
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,100,200,300
switchport mode trunk
speed 100
interface FastEthernet0/2
description Handoff for service A configured 29Aug2012 by K
switchport access vlan 100
switchport mode access
interface FastEthernet0/3
description Handoff for service B configured 29Aug2012 by K
switchport access vlan 200
switchport mode access
interface FastEthernet0/4
description Handoff for service C configured 29Aug2012 by K
switchport access vlan 300
switchport mode access

Fairly simple, not rocket science by any stretch of imagination. Hope this helps, and feel free to comment.

The Wazapp wait.

So WhatsApp never bothered with developing a version of their killer app for the Nokia Meego-Harmattan platform, which meant N9 and N950 users were stranded without this seemingly-essential instant messaging/media sharing app that’s so popular all over.

Thankfully, beta 0.2.6 has been available for quite a while, which alleviated the problem somewhat.

And I’m very thankful to the rest of the guys working on the final Wazapp release (maemo thread), the ones busy ironing out bugs, implementing group chat and media sharing – you guys are awesome. I’m really looking forward to the day when Wazapp is finally a polished product! Seriously, which community bothers with coding an app from scratch for the greater good, on their own time and without any rewards? The guys working on Wazapp development deserve a huge round of applause.

In the meantime, I’ll carry on with the beta that seems to hang every now and then. Much love to the picture sharing done through email instead of WhatsApp, thanks for understanding.

WordPress: Fixing PHP4 deprecated warnings

I got a nasty little shock when deprecated warnings started popping up everywhere on an old WordPress setup, so it was back to Google-the-shit-out-of-the-error-message mode.

The error messages looked like these:

PHP Deprecated: Assigning the return value of new by reference is deprecated in …

Fix: (via Otto on this thread)
This happens because debug messages are being displayed when PHP5 is running PHP4 code. Disable the debug at the beginning of the affected files by adding error_reporting(0); after the initial parentheses.

The wp-settings.php file has an option that has to be disabled as well.
From: error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE);
To: error_reporting(0);

Warning: Cannot modify header information – headers already sent by …

Fix: (via Samuel B on this thread)
This happens from trailing or leading spaces at the beginning/end of the affected files – remove, save and you should be good.

Basketball: Towards new grounds! Part VIII

An amazing 22 point blowout. There, that’s the game summary.

James got his stroke moving and hit plenty of threes, Gary was moving really well and drew a ton of fouls (and free throws), Emre was scoring in plenty on layups, Josh/Danny made a few shots, and that was the game.

The other team had four guys to start, the fifth guy arrived late in the first, albeit with insufficient firepower to pull a comeback win.

The latecomer interestingly enough, showed only two obvious moves on offense – a set shot on the three, and driving into the paint like a rampaging rhinoceros. After a few possessions, I realised what he was up to, so began to limit his drives rather than the shot. Even though we were playing zone, I made sure to pay extra attention to his position, and to box him out whenever I could, so that the rest of the guys could clean the glass up.

Took two or three shots, missed all of ’em. There’s not much to take away from this game, other than hints on what I should be doing. Like bringing the ball up and not dumping it off at the first sign of pressure (check), getting the ball at the high post so that I could feed cutters (check), getting back on defense to contest the shot (check).

It was still a good game nonetheless, marred by Josh’s finger sprain in the second half. Emre was being funny when he asked, “Is that your piano playing finger?” Everyone had to chuckle at that.

Interesting how quickly time goes by, it’s coming to the end of the season! Imagine that.

So you want to be an ISP, part 2

This carries on from part 1, where I talked about getting a layer 3 handoff, versus a layer 2 handoff from the upstream provider.

Let’s look at the differences in infrastructure setup on both options.

Layer 3 option setup
If you are thinking of going with a layer 3 option, infrastructure setup will be fairly straightforward. The upstream provider will usually have some sort of web interface for you for account creation along with some troubleshooting/monitoring tools. The rest is likely to be accomplished via alternative channels like phone, email or hardcopy forms.

Layer 2 option setup

This is where things become really tricky, because some areas need to be looked at in detail.

For example, authentication. You need some sort of authentication server setup so that your customers’ modems are able to send PPP authentication requests, prove that they have a valid account, and establish a connection.

Some frequently used terms for your reference:

  • Realm – for example, username@username.org where username.org is the realm. In a wholesale environment, a realm is required for your upstream provider to forward your customer’s authentication requests to your network.
  • Forwarding authentication – setting up the router, so that it knows where exactly to forward your authentication requests to. This requires some Cisco/Juniper/whateveritis know-how.
  • Authentication server – any form of RADIUS will do, in a pinch. Of course, you need certain attributes on the server:
    • Realm configuration – to allow requests with the right realm for authentication.
    • Username/password configuration – to allow the right username/password pair to be configured
    • IP address configuration – to either assign a static IP address, or to assign one from a dynamic pool, so one or the other. You will need either an IP address range from the upstream provider, or sign up for your own allocation from APNIC.
    • Optional attributes – for example, shaping the upload or download speed.
  • L2TP – this is the protocol used to establish a session from customer to your network.
  • LAC – L2TP Access Concentrator. This is the network router from your upstream provider, where they forward authentication requests to you.
  • LNS – L2TP Network Server. This is your router, the one that receives and establishes L2TP sessions.

I’ll break the post up again at this point, part 3 will be a closer look at a layer 2 option, authentication setup with regards to Cisco equipment – sorry, can’t do anything else as I’m only familiar with that.

Let me know what else you would like to see in this series, and I’ll be happy to elaborate.