Privacy or paranoia?

It would appear that I'm not the only one who's worried about the privacy situation in this country. Unfortunately I fear that a lot of people couldn't give 2 hoots and will continue to give up their freedoms for greater convenience. To paraphrase the response on the topic, from a friend: "We're not living in dictatorship. Why should this bother me? I'm not doing anything wrong!".

And people wonder why I want to move out of this country. The question is; would it be worth it? Are we likely to see the rest of the world following in our collective apathetic footsteps?

How often do you have to bend over?

When it comes to insurance, particularly car insurance, it's usually worth it (not to mention a legal requirement). As a nice feature my insurance company have an email-in form to process changes so you don't have to phone their 0870 number. Brilliant I thought.

Not so. First off it takes a hell of a lot longer to get your response, and when you do its ambiguous:

Just to let you know we've changed the vehicle

Followed, later in the email, by

If you would like to proceed with this quotation

Urgh. What this means is that you then phone them up anyway to confirm what the hell is going on. Whats worse is that I've now spent a total of 2 phone calls trying to find out because I couldn't understand the first person. Sods law says that it's more than if I had just phoned up anyway.

You can't win.

This is what options are for

Why on earth is it that when you tell Skype that you don't want it to "adjust your sound device settings", you discover that it continues to do so?

This personally causes me an immense number of problems when it decides to do this, as I use Skype to communicate with my colleagues across the internet. Today was the last straw, but all was not lost as 30 seconds of searching has thrown up the answer (google still cuts it for me).

  1. Close Skype if its open.
  2. Open C:\Documents and Settings\\%USERNAME%\Application Data\Skype\YOURSKYPEACCOUNT\Config.xml, with your favourite text editor
  3. Find and edit the existing AGC element and change the 1 to a 0. For Example:
    <AGC>0</AGC>
  4. Add a new AGC element as a child to the Call element; again it should have a value of 0.
  5. Save and close Config.xml.
  6. Open C:\Documents and Settings\%USERNAME%\Application Data\Skype\Shared.xml, and add another AGC element as a child to VoiceEng element; again ensure that it has a value of 0.
  7. Restart Skype, and test using the echo123 service.

You should find your recording volume no longer randomly jumps about. Sorry it's only for Windows, but the linux version doesn't seem to give me any problems.... I wonder if its one unified code base?

500 times a day

It's suggested out there on the world wide web (so it must be true), that in Britain you are caught on camera anywhere upto 500 times a day. I worry about this. For a guy who works from home a lot, I worry for an inordinate amount of time about this. What if I'm suddenly deemed to be "unusual traffic" and get flagged? Do "they" have the right to monitor what we do every day? I see little proof that it significantly helps to combat crime.

So what's brought all this to the forefront of my mind? Getting caught, face on (whilst sitting in a static queue of traffic), as some leather-clad-biker in the other lane was speeding in a 30mph zone. Granted, this isn't a big issue, but can we trust those who monitor us?

Fear ECHELON. I have little doubt that it exists, in some form. I know for a fact that the constant video speed cameras send their data to a central repository. But does it get intercepted and are our current levels of encryption sufficient for the near future, or even now?

Paranoid yet? Or are you still annoyed about the speed cameras?

WebDev languages suck

As quite a few of you know, I'm rather dissatisfied with web development languages as a whole. I'm now 20 and I've tried or used quite a lot of languages, over the years; some of which were specifically designed for webdev, such as PHP, and others that were not, C or brainfuck for instance. I no longer feel that there are any suitable web development languages. None take my fancy and something about using C, for what is often a simple task where scablility isn't a concern, just feels a little dirty and C-snob-ish to me.

Every language has flaws; be it inconsistant API, strict whitespace rulings, poor or half hearted design decisions, or not actually being the best tool for the job. So could I do better? Most likely not.

The first thing I think I have to define is the fact that computer languages are just as much a product as the things you create with them. So why am I saying this? Often languages aren't engineered properly, with lack of fore-thought and design goals. This leads to what can only be described as the "PHP-Syndrome". Once you have a clear goal, you need to strive for that goal and hit it with full force and no deviation. If you do this, you'll have the Firefox of the web language community. If you don't, you'll end up being the bloated Mozilla Suite.

Unfortunately being the new kid on the block can be really difficult some times. You're going to be picked on, and you certainly won't be immediately popular, so how do you carve out a niche for yourself? After all everyone needs one? Absolutely not. Whilst it's true a new angle can help to sell your product, being different for the sake of being different can be a big mistake. Depending on your market, compatibility familiarity maybe the key.

Having defined these points of interest, I wanted to come down to the meat (and two veg) of my article. Unfortunately I've found it to be rather difficult. Having never designed a language and neither having the time nor money to put towards some serious R&D I'm already introducing anti-patterns into my architecture and I've not even discussed it yet. I'll battle on though.

The goals I intend for my ideal language to fulfill are fairly straight forward;

  • Easy to learn and use
  • Have an easy to maintain and simple API
    • Have a reduced API to prevent carpel tunnel-esque issues, yet still have the flexibility and power of a "full" API (without the complications of dual API's)
    • Have a consistant API
  • Security focused
  • Self documenting
  • Simple to extend
  • Use Memory Management
  • Allow for connection pooling
  • Thread safe
  • Flexible enough to create stateful applications without much work

Most of those points are quite obvious, but I think I might have to explain the final point. By design HTTP was originally stateless, unfortunately this meant that building real applications was a royal pain in the arse; which is why we have things like cookies tacked onto the end of the HTTP specs. I understand this, but I also see that a hell of a lot of web apps want to be stateful, and rolling your own system can be irritating even if its purely a case of wrapping some arbitrary functions. I will add a caveat to this intelligence, and that is it must not be like RoR and do what it thinks I want to do.

Before I get too heavily involved in implementation and start ranting again, I'll Segway neatly into synatx and semantics. Overall, in terms of general syntax I refuse to rock the boat and will stead fastly state that C-style is the One True Way(TM), with one exception; returning values from functions. Returning struct's implies a memory layout which shouldn't be applicable to a memory managed language, and so for this one reason I've got to go with Lua style of returning multiple values.

Data types can be a big one to handle in web applications. I personally really like having a clear set of datatypes which you can assign to variables, and dislike PHP's half hearted attempts of "type hinting". I do agree with an additional void or automatic type for certain use-cases, such as user input, which you can later sanitise.

With regards to OOP support, I used to find it a god-send for larger projects. Unfortunately you often find it being abused by many all over the digital universe. This is either because the person using it doesn't understand, or the language isn't up to it. For this reason I believe that either it should be supported with good documentation and a method to stop over use of singleton's, or not supported at all. For this reason I propose OOP support, with the proviso that we (that's the royal "we") find some way to stop the madness.

So that rounds off a few of the sharp corners that irritate me about web languages. I know theres a hell of a lot more work and thought involved, and as such you should really view this as a chance to moan. There's a lot of available languages out there, and I know that I've not tried them all yet, but it does make me wonder if there is that fabled webdev nirvana out there.