Archive

Posts Tagged ‘programming’

Programmers – Time to Make Up Your Own Mind

2011/10/02 2 comments

Puppet

In this day and age of being told what we should think, whether if we should like a film or not; a restaurant or not;  a make of car or not;  or what type of food we should minimise; so to is the almost equivalent to religious evangelism publicised by certain authors, speakers or even bloggers (yes I am a blogger too) on their idea on how we should program,  or SDLC patterns such as source code control or how to implement say continuous integration and/or deployment.   Many of the suggestions are brilliant, helpful and well deserved, particularly for those with little experience in the field.   However it is all too easy to become a disciple of the new religion without questioning what is being said.

As with most things,  a teacher with incorrect information or a teacher with an agenda is a bad teacher with a motive.  The same is said for programming authors or speakers.  Perhaps they want to sell you more books?  Have YOU thought about it?

I mentioned that many will accept an idea without questioning the mechanics behind it – take database object relational mapping (ORM) made arguably famous by a certain well known author and speaker.  People like it cause it makes the DB look like an object-orientated tree graph.  Nothing wrong with that, I particularly like canonical protocols or singular agnostic APIs.   If I were to take the critical approach to ORM I could encounter:

“awww everyone else is doing it;  It’s much easier!”  – they say

Is a common defence.   Fair enough, but it demonstrates the obvious and unfortunate scenario that certain developers will do a thing if there is sufficient evidence for doing so in the first place (particularly if it requires zero-coding on their part) or if it makes their job easier.  The alternative is not to use ORM but to use more complex and time consuming patterns such as say stored procedures.  I’m not saying stored procs are better as that would be hypocritical to this topic.  I’ll let you decide.  I find some developers are not aware or do not want to think about and or investigate for themselves the overhead of data transformation let alone network activity.

Which is faster –

  • the system where the majority of data processing happens inside the database in stored procs with minimal data transformation or
  • the system which the majority of data processing occurs external to the database,  subject to data transformation via an ORM data typically on another computer via a network?

I’ll let you decide that.

It doesn’t have to be an ORM either.  Perhaps they have not fully thought about log4net, StructureMap, ASP models.  Are they good tools?  What are the pros?  Are there any cons?  A project for the reader.

“Ease does not necessarily imply high performance in arguably the same way as complexity does not imply unreliability.” – Me

Many say simplicity is best.  Perhaps.    The question is have YOU thought about it?  What does it mean to you?  A project for the reader.

Which is better – a turn of the century zepplin or a contempory Boeing 747 Jumbo Jet?  Which is more reliable?  Which has more fail-safes?  A project for the reader.

Don’t let your instincts prejudice your eventual decision making process.  Think before you say something I always say.  Question and debate those in authority, but try not to disagree if the only evidence on your behalf is that others are doing it your way.  You have not contributed anything personal to the debate.  Again think for yourself and come up with your own evidence.  This is what I encourage of my juniors.

“Extraordinary claims requires extraordinary evidence”

Some programmers sadly are so keen to use well known off the shelf systems with little thought as to their actions.

e.g.

A need for inversion of control (IoC) such that a database or logging object can be wired to client objects is quite understandable.  Such things are quite nice and do seem to make our jobs easier.  IoC systems typically require configuration as I have blogged before.  You must ask yourself –

  • is the configuration difficult?
  • Is the configuration error prone?
  • Is the configuration open to security vulnerabilities?
  • Does it make it all worthwhile?
  • Have you considered a plain 1990s Class Factory Pattern?

A project for the reader.  Again ease may not necessarily mean correctness.  What do you think?

Don’t think something just because someone told you to – learn to think for yourself again.

Again, this is not specific purely in the IT field but can apply to our daily lives too.

Advertisements

Be Nice With Passwords

2011/10/01 Leave a comment

Ideally, if I can type it on my keyboard, then it should be an acceptable password character.  Don’t limit your software like this scenario below:

image

Categories: Development Tags: ,

Golly…Macs Really Do “Just Work”!

2011/03/13 Leave a comment

I was recently lucky enough to grab myself an iMac; in that time it has solved more problems than the time I have spent trying to solve a single problem on Windows.

Computer Specs

Memory Windows= iMac =4GB
CPU Windows=Intel Core 2 Extreme Quad @ 3GHz,  iMac=2.8GHz Quad-Core Intel Core i5
Video Windows=dual nVidia 8800 GTX,   iMac=ATI Radeon HD 5670


Before

Here is a list of my prior issues:

  • iTunes on PC and generation 1 Apple TV would “forget” their network connection
    • meaning my Apple TV could no longer sync/stream TV shows and movies from my PC
    • typically you buy on the Apple TV and after watching it is “archived” on your PC to make room for other purchases
    • I had lost a few purchases because of this.  Apple does not allow you to download to Apple TV again
  • Could not connect to a Canon MX850 printer via the network if it was connected to one PC via USB
    • basically allows you to share the printer over a single USB cable instead of a network cable
    • USB allows you to do certain things network cable cant
  • Lacie 4big Quadra 4TB RAID “big blue button” not recognized
    • allows for quick backup
    • Windows Backup is inefficient, slow and poorly designed
  • Access to Apple’s MobileMe email via Microsoft Outlook/Windows Live Essentials IMAP is incredibly slow – 5 seconds to delete a message
  • Opening the majority of any document takes considerable time on Windows
    • PDF
    • videos
    • Word/Excel documents
  • MSN Messenger takes considerable time to load; consumes excessive computer resources
  • Games such as the recent Civilization V consume excessive resources; takes considerable time to load considering nature of application – “its no Crysis!”
  • Windows Phone developer registration is more complex than applying for a home mortgage.  Took approximately 7 days to complete including various to and throw e-mails to Microsoft
  • Visual Studio has historically shown that with each new version requires a level of magnitude more computer memory and CPU resources.   VS is very expensive to buy for the Pro version. Express as a tool for serious development is questionable

After

  • Apple TV and iTunes on iMac just work; do not forget each other
  • Canon MX850 was automatically detected over wi-fi when plugged into Airport Extreme Base Station USB socket
  • Lacie 4big Quadra 4TB RAID was automatically detected and iMac kindly asked if I wished to use it for TimeMachine
    • Pressing big blue button on Lacie launched the brilliant TimeMachine app
    • TimeMachine is fast, intuitive, reliable
  • Apple’s iMail automatically configured e-mail server settings just by me typing in my @me.com address
    • iMail is fast
    • Like the central inbox
  • iMacs have a Preview application that very quickly opens a document for reading rather than loading bloatware Acrobat, Microsoft Word, Excel or similar
  • MS Messenger for iMac (via Office Mac) is much like pre-Windows Live Essentials meaning it doesn’t have the annoying ads but more importantly, uses less computer resources like memory and CPU in wlcomm.exe
  • Civilization V for iMac loads considerably quicker and exits to mac desktop much faster than Windows
  • Apple’s Mac Developer MacOS/iOS registration completed in 12 hours
  • Apple’s Xcode IDE is only $5.00 and uses minimal CPU and memory
  • Though Apple may make use of seemingly vertical standards such as Bonjour, historically it can be shown that Apple is more likely to adopt more popular standards with more realized use cases than say MS.  Calendering is a good example.

In summary, in only a short time does one really appreciate the high quality of the iMac, but also comes to the realization that pretty much everything PC is by way of poorly designed, badly integrating bloatware produced by capitalist-corporate-hugging software houses.   Take Microsoft Office 2010 is not only bloated but is also unintuitive and bloated; similarly for VS2010 as mentioned.

Stupid Game Download Mechanisms

2008/04/20 Leave a comment

Why is it that so many game publishers are so lazy to update a game client’s primary download link that when you go to install it, it must download a huge amount of update data that should have been part of the original download.

This is my story:

Many game publishers allow you to download full games directly to your hard drive without using any disk media.  This is especially so for MMO games.  Generally you visit a web site and click the link for what one assumes to be the latest client.  However as I have found out rarely does one’s assumptions prove to be correct.

The download generally occurs without incident and produces a setup.exe of some sort that you must run on your computer. The download size could be in the order of 1-4 GB for a modest MMO game.   It’s not until you run the installer that for an increasing number of games that it detects further updates an needs to download them before you can start.  This wouldn’t be so bad but unfortunately for some the download size for the updates pretty much equals the original download. This is just unacceptable and is a sign of lacking QA, design and just poor PR.

The latest culprit for this is Metal Gear Online Beta for the PS3. Now this only just released already as a beta.  Players had to download this from the PS3 Store. Running it I found an update was required, it wouldn’t have been so bad had it not relied on a peer-to-peer update mechanism which averaged 60KB/sec. The update was large and took ages.  Why not just update it on the PS Store where I could have the latest client much faster? Oh well.

MGO isn’t the only culprit, with it joins Pirates of the Burning Sea, City of Heroes, and Eve Online.

Categories: Games Tags: ,