Steve's Blog

Touch Pro 2 updates

As an update to a few previous posts, I decided to give HTC some credit where it is due.

HTC organised Fedex to come and pick up my Touch Pro 2 (after some confusion about the actual pickup date) and ship it off to HTC Singapore. While I was still annoyed that it had to travel to Singapore, the fact that HTC was going to pick up the tab for shipping - as well as sending it international priority (26 hours doorstep to doorstep!) made up for it.

I was expecting that my phone would be out of action until 2011 - however to my surprise, less than a week later I had a delivery from Fedex with my repaired Touch Pro 2. Later that day I even got a phone call from HTC to confirm that I had received it! Most of the issues seem to be fixed - some weren’t but are minor enough to ignore.

I have to say thank you to Francis from the HTC Australia call centre (I think he is in the Philippines?) for organising a lot of this. If this level of service was standard from HTC then I would have been singing their praises instead of almost converting to an iPhone guy.

My thoughts on the NBN

I hate politics. I hate both political parties. That being said, I would support any political party that drew up the same plans for the NBN as what we have on the table. It just makes sense. Australia has been short changed in broadband and all the wonderful advances that it can make possible for many, many years.

Telstra was sold off and now are driven by making profit for their shareholders – not what is in the best interest of every Australian. This kills expansion. This gives the bush a raw deal. This is not acceptable.

The NBN isn’t as much a political tool as it is a catalyst for change in ways that we never even imagined. It’s about supporting business and fostering growths in IT and technology. With much faster broadband, we open up the opportunity to decentralise city areas providing more jobs to regional Australia. We open the door to working at home more. A better work life balance. More time for the family.

Screw the politics – this is about changing a nation for the better.

The plan that was tabled by the Liberals was a good attempt, but fails to address the many weaknesses of wireless technology. Noise & Distance. I’ve been involved with wireless for over 10 years now - and I will attempt to explain some of the reasons WHY wireless is just not up to the task.

1) Speed needs Hertz! - The higher the frequency, the more data you can squeeze into it. 802.11b/g uses 2.4Ghz and gets ~54Mbit air speed. This translates to about 22Mbit wire speed - that is close enough to 2.2 Megabytes per second.

2) The more Hertz, the more you lose! - You can only squeeze so much data into a certain frequency. The higher you go in frequency, the quicker that signal fades. This is called Free Space Path Loss. This gives us a limit on both how high in frequency we can go, and how much distance a base station can cover. 802.11b/g using 2.4Ghz can be unusable past 500 meters!

3) Noise - Radio Frequency or electrical noise is a fact of life. There is not much you can do about it. To overcome noise, you need more output power from the radio. The down side of this is that the more power you use, the more likely you are to interfere with other users.

4) Security - Wireless is a broadcast transmission. This means that EVERYBODY can see what you are doing over your connection - as long as they can hear your signal. This means that over several kilometers there may be 50+ people who can eavesdrop on your connection. Encryption can solve this, however even current wireless security encryption can be cracked in as little as a few minutes.

There are still more reasons as to why wireless is not suitable for large scale deployments to entire suburbs - however I believe that these are some of the more basic ones that would cause major issues. In short, Fibre is one of the best solutions available. It will give us the flexibility that the copper network has since its installation - but without the limitations of copper! That is something to be really excited about.

More on the ongoing HTC drama

I’ve still been talking to HTC regarding my faulty Touch Pro 2. I even managed to get the case escalated to someone who says they do this all the time. He has agreed that HTC should cover the postage costs as per the Warranty Statement in my previous post and that he’d get back to me with more details within 24 hours. Sadly, this timeframe expired yesterday.

He did however inform me that the repairs may take up to 4 weeks plus shipping. I objected to that as this would mean that the phone has been off under warranty repair for 8 weeks in its lifetime. Apparently this has been raised with HTC management - I’ll wait and see what that actually means!

Sendmail and 'partly-there' domains

Just recently I had to set up a sendmail server for an office with 7 local users and more roaming users. The current setup had all users checking email via POP3 to the ISP. This is an issue as email sent locally within the office passed over the ADSL connection twice. Sendmail however is quite difficult to work with when it can’t handle the entire domain. As not all users on the domain have an account on the office server, email would bounce back as user unknown - even though a POP3 account existed with the ISP.

I’ll write up a dummy scenario to make this clearer.

  • local1 - Checks email on the local server via IMAP. Server downloads email via fetchmail and throws it in the users IMAP mailstore.
  • local2 - Same configuration as local1.
  • remote1 - This user doesn’t have an account on the local server but gets email via the ISPs POP3 mail account.

All users have the same domain name in their email address. For this example, we’ll use mydomain.com.au.

The issue starts with a couple of common problems.

a) If we put mydomain.com.au in /etc/mail/local-host-names, then email between local1 and local2 will be handled locally - which is great. The problem though is that mail between local1 and remote1 will bounce with a ‘user unknown’ error.

b) Having a smarthost defined to send email out via the ISPs mail server will also mean that mail between local1 and local2 will also go to the smarthost - essentially uploading it to be downloaded again. This adds delay and also slows things down.

To fix this, we can use the virtusertable to rewrite the addresses of the email addresses - but by default, sendmail does not run the virtusertable on any addresses of domains it does not own.

We can however modify our sendmail.mc with the following code to tell sendmail to run domains we specify through the virtusertable! The code is as follows:

1
2
3
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
LOCAL_CONFIG
F{VirtHost}/etc/mail/virtual-domains

Now we can add the domains we want to run the virtusertable on in /etc/mail/virtual-domains: mydomain.com.au

The final step in this solution is to then specify what users we want to rewrite to be local users. This is in /etc/mail/virtusertable:

1
2
local1@mydomain.com.au     local1@localhost
local2@mydomain.com.au     local2@localhost

Now when we test these addresses using sendmail -bt from the server, we see the address translation happen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> /parse local1@mydomain.com.au
Cracked address = $g
Parsing envelope recipient address
canonify           input: local1 @ mydomain . com . au
Canonify2          input: local1 < @ mydomain . com . au >
Canonify2        returns: local1 < @ mydomain . com . au . >
canonify         returns: local1 < @ mydomain . com . au . >
parse              input: local1 < @ mydomain . com . au . >
Parse0             input: local1 < @ mydomain . com . au . >
Parse0           returns: local1 < @ mydomain . com . au . >
ParseLocal         input: local1 < @ mydomain . com . au . >
ParseLocal       returns: local1 < @ mydomain . com . au . >
Parse1             input: local1 < @ mydomain . com . au . >
Recurse            input: local1 @ localhost
canonify           input: local1 @ localhost
Canonify2          input: local1 < @ localhost >
Canonify2        returns: local1 < @ intranet . mydomain . com . au . >
canonify         returns: local1 < @ intranet . mydomain . com . au . >
parse              input: local1 < @ intranet . mydomain . com . au . >
Parse0             input: local1 < @ intranet . mydomain . com . au . >
Parse0           returns: local1 < @ intranet . mydomain . com . au . >
ParseLocal         input: local1 < @ intranet . mydomain . com . au . >
ParseLocal       returns: local1 < @ intranet . mydomain . com . au . >
Parse1             input: local1 < @ intranet . mydomain . com . au . >
Parse1           returns: $# local $: local1
parse            returns: $# local $: local1
Recurse          returns: $# local $: local1
Parse1           returns: $# local $: local1
parse            returns: $# local $: local1
2                  input: local1
2                returns: local1
EnvToL             input: local1
EnvToL           returns: local1
final              input: local1
final            returns: local1
mailer local, user local1

Checking against any other email address should show the normal delivery method - either normal MX lookup and delivery, or via a defined smarthost.