Archive for the ‘Information Technology’ Category

How to Bypass Facebook Photo Security… by editing the URL?

Thursday, November 29th, 2007

It turns out that Facebook’s idea of security is bullshit. Besides all the recent problems with 3rd party apps, you can also bypass photo security be simply deleting one of the URL parameters. Basically, if you look at a picture in an album, and you want to see the other pics in that album, but don’t have permission, you just delete the “&Subj=#########” parameter from the URL. Then you can see the whole album.

I’m not posting this to help all the Facebook stalkers out there. The point is that if everyone finds out about something, Facebook is more likely to fix it. This is not exactly nuanced, expert hacking we’re talking about. It shouldn’t be this easy.

Here is a more comprehensive discussion on the subject.

Top Skills Wanted by Agile Employers

Wednesday, September 26th, 2007

I’ve often read lists like this one, that suggest the skills IT employers want. Well, today at the Agile Vancouver conference, a room full of agile development employers was asked what they look for. I was expecting “machine learning,” “security,” “mobile applications,” and maybe “artificial intelligence.” Nope.

Here is the list they gave:

  • Understanding principles of object oriented development
  • Conceptual understanding of relational databases
  • Knowledge of [design] patterns
  • Ability to think abstractly
  • Basic accounting
  • Understanding of the Software Development Life Cycle
  • Ability to prototype to the correct level
  • I’m not making any claims about the generalizability of this list. I’m just throwing it out there to let you know that maybe some of those popular lists floating about the web are not consistent with what one room full of presidents, CEOs and team leaders spent an hour and a half discussing.

    Top 5 Reasons Software License Agreements are Unlawful

    Wednesday, September 5th, 2007

    A Software License Agreement is a contract between a software producer and a software user that grants the user a license; an End-User License Agreement (EULA) is a Software License Agreement that indicates terms of use. EULAs are fine in principle, but the way many EULAs are written makes them legally meaningless, unenforceable nonsense. This article explores five reasons why EULAs are bogus: the first three are based on legal and commonsense principles, the last two are specific to US laws.

    1. One Way Contract

    In common law systems, for a contract to be legally binding, both sides must provide “consideration.” When you buy an apple, you give money and you get an apple. The money and the apple are consideration. Many EULAs have a clause to the effect that the Software Provider can change the terms of the contract at any time, without notice. In other words, after you have agreed to the contract, the Provider can remove all of its obligations from the contract, and change your obligations to whatever it wants. I call this a one way contract because you are bound by the contract, but the Provider is not, because the Provider can just change it. This means the Provider has not given consideration, and the contract is invalid.

    2. False Advertising

    Often times, the advertising for a software packages makes promises that the software does not keep. Voice recognition software is a prime example. If you buy software that doesn’t work as promised, any contract you may have entered into is null and void. It’s like ordering a car off Ebay and finding out when you get it that it won’t start. If the ad said the car was in working order, the sale is invalid.

    3. Agreement Unavailability

    When you buy software at a store, you don’t see the agreement. Usually, you don’t see the agreement until you’ve opened the box and tried to install it. Some EULA’s say, if you don’t agree to this contract, return the software to the vendor for a full refund. Except, the vendor won’t take it back because it’s open. Does this make sense to anyone?

    4. Adhesion Contracts

    In some countries, such as the USA, a Contract of Adhesion or Standard Form Contract is a take-it-or-leave-it contract with no negotiation and unequal bargaining power between parties. If a term in an Adhesion Contract is outside the normal expectations of the weaker party, it is not enforceable. For instance, terms that say ‘the Provider is never liable for anything, ever,’ or ‘the Povider can change the terms of the contract whenever we damn-well please and to whatever our lawyers can dream up’ would be considered unreasonable and not enforceable.

    5. Unconscionability

    In same countries, a contract is unconscionable if the consideration from one side is so dismal as to make the contract unfair to one party. For instance, if you buy software that crashes every five minutes or produces the wrong outputs, it’s not worth the money you spent on it, and therefore the contract is unconscionable. Unconscionable contracts are not enforceable as-is and courts have a fair bit of leeway in dealing with them.

    On Liability

    In closing, not everyone can exempt themselves for the damage done by their crappy software. An open source programmer who makes no claims and takes no money for his or her work is perfectly safe in declaiming responsibility. Microsoft, Oracle, Cisco, IBM, etc. are not. The difference is in their advertising. Lying to customers about one’s products is generally illegal. If GE makes a hot water boiler that explodes and ruins someone’s basement, GE is responsible. Similarly, if Oracle claimed that its database software safeguards information, but an actual Oracle database spontaneously emptied itself, Oracle would be responsible: not because it broke the contract but because it lied in the advertising.

    Now if everybody would please stop accepting these bullshit EULAs, we might foster some responsibility in the software community.