Thursday, 15 November 2007
Erlang
I decided, I'm learning Erlang. I've installed it (port install erlang - too easy) and I've order the pragmatic programmer's book. If you have any tips, pitfalls or general suggestions, drop me a note.
One downer is a quick search this morning came up with no jobs advertised for Erlang in Australia. I hope that changes soon. If you know of any Australian companies that use Erlang, please let me know !
Wednesday, 7 November 2007
Seven habits of highly effective developers
Thursday, 25 October 2007
Friday, 19 October 2007
What is the easiest/best first functional language to learn ?
If you have any advice, please let me know !
Wednesday, 26 September 2007
(Spenser) for Hire !
What I'm trying to say is I've decided that in a couple of months I will move on from my current position and after a couple of months break I will be looking for a new position. If you think you might have anything for me starting Feb/March next year, let me know !
Wednesday, 15 August 2007
Mobits Adam A221Tablet PC - Help !
I bought a Mobits Adam A221 mini-tablet PC on Ebay. My plan was to get Linux working on it, but so far I have been unable to get either the WiFi or the Tablet/Pen interface working.
There seems to be next to no info on these on the web - if you have one and you have had any success could you let me know ?
Under windows the drivers it uses are:
Tablet - Fujitsu touchscreen driver. It is running on COM1
WiFi - Uses PRISM USB drivers.
Any ideas ? If I spend anymore time mucking around with this my wife will kill me !
Tuesday, 7 August 2007
The cost of hiring poor programmers
One thing I have seen several times is that when companies can't find the person they want, they lower their expectations. They keep doing this until they can hire 'someone'.
This has several negative effects on the company, and not many positive ones:
- The person can't possibly fill the requirements the company had in the first place.
- Existing Employees will resent the fact that inferior people are being bought in, pushing more work to them without them receiving the benefits (which in a buyers market the new, inferior guy gets).
- 2 leads to more turnover, which can lead to more of these people being hired, which can cause things to snowball.
While I never appreciate being overworked, I really don't appreciate making up for people who aren't up to the job.
My view is if you can't find the right people you need to look at why you aren't appealing to those people. And if you are budget constrained don't throw your hands up in the air. Money is rarely the biggest factor in these things. You need to ask yourself what sort of people you need and what those people want. Things to think about include:
- Leave/working hours - not everyone is a 9-5*5*48 weeks a year kind of guy. The best person working 3 days a week or 9 months a year, is a far better asset than an inferior person doing 9-5 all year.
- work environment - If you insist your storage engineer wears a suit you will miss out on all the good storage engineers. If you insist your LAMP installation is deployed on a Windows, you will miss out on all the good Apache/Perl/etc. people.
- Telecommuting. If you trust people enough to let them work where they are most comfortable, they will do more work. If you don't trust your employees to work from home they won't trust you to reward them for the work they do.
So don't settle. Become the employer people want to work for !
Monday, 30 July 2007
Tuesday, 17 July 2007
101 Ways To Know Your Software Project Is Doomed
Friday, 13 July 2007
World's youngest criminal ?
Why do Management get to make the technical decisions ?
How much time and money is wasted I wonder, because the decisions get made by the people higher up the chain as opposed to the people closest to the issues ?
Things never go well when people people aren't expected to 'eat their own lunch'.
Wednesday, 4 July 2007
Jobs Vacancies and me
- Please don't contact me about jobs in the finance industry. I already work in this industry and have lots of contacts here (unless you are offering 7 figure salaries ! )
- Please do contact me about jobs in other industries
- Please do contact me about jobs with flexible hours/days.
- Please do contact me if your project involves new and interesting technologies.
Monday, 2 July 2007
Signs you (or someone else) are no longer technically relevant
Here are what I believe some of the signs of this are:
- They consider Java a new and inovative technology
- They don't bother following industry news and developments
- They are resistant to the introduction of new technologies
- They worry about whether the open source software you propose will scale while they continue writing excel macros in vb script
- They think Linux is radical
- They are concerned about certifications from old school vendors
- They have been in the same job for more than 5 years
what do you think ? Am I being a bit harsh ?
Friday, 27 April 2007
Keira
( http://www.flickr.com/photos/7992966@N04/ ) if i've worked that flickr thing out properly.
Otherwise, I'll get back to you shortly.
Thursday, 29 March 2007
Workers walk away from bad bosses
Personally, I have done this twice in my career and should have done it a 3rd time.
One thing that has always disappointed me is that companies seem to be willing to put up with bad managers and see their other staff leave. When the market is as good as it is now, you can easily see teams completely turnover in a year. You would think companies would learn !
So if your a manager complaining about the cost of new staff, ask yourself why the old staff left in the first place...
Friday, 23 March 2007
The Active Record pattern (or why I love Ruby on Rails)
If you are one of those people that think struts and Hibernate are the best combination since the Captain and Tennille (cause I know you Struts people are into that shit :-) ), then you won't like it at all, because it takes you away from messing about with configurations files and makes you work on the problem at hand.
I really buy into the convention over configuration mantra for a couple of reasons:
- Opinions are like arseholes
- Most object-only guys can't (or don't bother to) get the database right, and activerecord encourages sorting out the design first
Wednesday, 21 March 2007
TPC-C to die
Whether the new benchmark (TPC-E) is any better, is the question. It is based on a financial scenario, which may work against Oracle (which has never been great at high volumes of small transactions which are typical of financial systems) a bit, but its unlikely to be much more real-world than the old one. Good companies will have to run their own benchmarks, like they always have.
Wednesday, 14 March 2007
Putt's Law
"Technology is dominated by two types of people: those who understand what they do not manage, and those who manage what they do not understand."
—Putt's Law
Monday, 12 March 2007
Cursors (I RANT)
Wednesday, 21 February 2007
On CIO's (part 2)
http://it.slashdot.org/article.pl?sid=07/02/20/1924218&from=rss
Tuesday, 13 February 2007
On CIO's
I was reading an article on itnews.com.au about how CIO's are moving ahead of CFO's in some companies these days. I've never seen it myself , but I can't help but thinking this isn't a particularly good thing. In my career I have worked under probably a dozen CIO's (I won't count those when the organisation was a software house or an IT consultancy). Only one of those CIO's I would define as good at what they did (an ironically he was only an 'acting' CIO). If I was to characterise the CIO's I've worked under, the following are true of almost all of them:
They started off their careers in technical positions, but moved into the management side of IT as soon as they could.
They have never done any study in IT beyond undergraduate level (if your lucky), but always seem to have an MBA or other degree that looks good to non-IT people.
They don't understand current technology at all, but do understand vendor management.
They give the impression that they see being CIO as a stepping stone into becoming CEO (although i've never seen that happen).
Their direct reports are wannabe CIO's themselves, so all the above points are true of them also.
All together this paints a pretty ugly picture. These people are so out of touch, and it shows. The end result is you only ever get one of two messages from a CIO, ether:
"We need to cut costs and place better controls on out environment"
or
"We need to invest more and allow our people the freedom to innovate"
Thus it ends up being left to lower level people to run the organisation as best they can in between doing their real jobs.
Personally, I think the days of these CIO dinosaurs is slowly coming to an end. But it isn't us I.T. people that will bring them down.
Its the Marketing manager who asks why he can't install FireFox, only to realise the CIO has never heard of FireFox. Or the research analyst who it prohibited from using Python to develop their financial simulations because the CIO thinks Excel is what he should be using. These CIO's now know less about IT than your average person under 40, and once tech savvy non-IT people becomes CEO's these technically incompetent CIO's will disappear.
Good riddance to bad rubbish !
Monday, 12 February 2007
MySQL vs Sybase / MS SQL Server – a comparison
As I database consultant that has been working with Sybase and MS SQL Server for a long time I have been interested to see the rapid growth of MySQL. I decided to evaluate MySQL from the point of view of porting a database to it from Sybase/Ms SQL Server.
For those of you who don’t know, the two (Syb & MS) are still about 90% the same, at least from a Transact SQL point of view. They also both still come with that old friend – the pubs database (pubs2 & 3 on Sybase, pubs on MS SQL Server). Therefore what better to use for my sample database as pubs ! Note that I will not provide my converted script due to copyright issues, but if you are a Sybase of SQL Server user feel free to do the same. This is a very good test as pubs has been purpose build to try and use many of the different features available. Here is the results of my test starting from the point of my download of MySQL 5.0 alpha (the newest version available when I started this) :
Steps
1. Install MySQL, client tools & documentation.
2. RTFM for about 10 minutes.
3. set up my server using the winmysqladmin program. It gives me a working server ! Connect to the server: from a command prompt, type ‘mysql’ (no options).
I'm in a 'test' database. Follow a basic tutorial from the manual.
Learn a few basic commands like "show databases;" "select now();", & "select user();" - This seems pretty easy !
4. Decided to create a database. I'm going to create pubs2. Following the tutorial I find the syntax:
"create database pubs2;" Fails. Go back to RTFM.
5. Find out that there is a "test" user that I am connected as with no privileges. Find out I should be using the 'root' login. connect as root with no password:
mysql -uroot mysql. Follow recommendations to set a root password:
SET PASSWORD FOR root@localhost=PASSWORD('new_password');
Log out and login with the password:
mysql -uroot mysql -pnew_password
I'm in. Now try again:
create database pubs2; - Success !
Run "show databases;" - its there.
6. type "use pubs2"; - It works !
7. Cut and paste create table authors... from instpubs2. Get an error:
ERROR 1064 (42000): You have an error in your SQL syntax. Check the manual that
corresponds to your MySQL server version for the right syntax to use near 'id not null,
au_lname varchar(40) not null,
au_fname varchar(20) not null,
ph' at line 2
Sounds like a simple error, as id is a user define data type. Don't know how
to create those yet, so I'll replace it with the underlying type - varchar(11).
8. Try again - Success ! Now for Rest:
Publishers - ok
royshed - replaces tid with varchar(6), then ok.
sales - ok
-- Decided to work ou how to create udfs so I don't have to keep editing the scripts.
Spent about 1 hour earching the web and manuals. It doesn’t support them. Ill continue the way I was.
salesdetail - ok
titlesauthor - ok
titles - Error:
ERROR 1064 (42000): You have an error in your SQL syntax. Check the manual that
corresponds to your MySQL server version for the right syntax to use near 'money null,
advance money null,
total_sales int null,
notes varchar(200) null' at line 6
Thats right - no money datatype ! That wouldn't be a big deal if we had UDFs, but we don't. More re-writing ! (I’ll use decimal) and I am going to try replace image with the blob type. I don't know what the difference really is, but this is just a basic test. It works.
9.
After getting through the tables. I get to constraints. Primary key constraints seem ok, but foreign keys can’t be created. After looking on the manual I find I need to create indexes before foreign keys. I do this, and can then progress. At this point however alarm bells are ringing about how it handles constraints. The manual is warning me that when using not null and default constraints that behaviour will not be as I would expect. For example if you try to insert a null into a not null column, MySQL will replace the null with a '0' or a '' (empty string) rather than rejecting the insert. Is sort of defeats the purpose and I would avoid using these features until they 'fix' them. The manual says you can recompile MySQL to change this, but doesn't make
it clear on what the new behaviour will be.
10.
We need to skip some default clauses here. This requires editing the table creation scripts and manually placing the defaults on the relevant columns, or editing the inserts to include this. I have chosen to edit the data. Note I also had to replace
some occurrences of "" with a single ' as I am not sure how MySQL handles double quotes inside double quotes.
11. Indexes. MySQL doesn't seem to support the clustered/non clusters index types. I created the indexes without specifying the type and it works fine. The manual says that all MySQL indexes are b-trees with some compression.
12. Rules. Rules are not supported. I am going to ignore them as I think the only way to work around them would be to put the functionality in the app (not desirable) or in triggers.
13. Triggers. The manual says triggers are scheduled for 5.1. I can confirm they don't work in 5.0. I am having to push a lot of functionality back to the app (it theory – I’m not actually building an app).
14. Views. Not yet supported. Should be in 5.1 Derived tables (unnamed views) are supported, but this doesn’t help here.
15. Stored procedures. Apparently they are supported in 5.0 but I need to recompile the server. My C skills are probably not us to this, and it obviously isn't ready for prime time is it isn't in the server, so I'll forget them.
16. Grants. Grant all succeeded. Grant create table etc... didn’t. Give the number of things I have had to leave out, I don’t think I’ll worry about fixing this, but the manual suggest you can grant these things at the user level.
Other notes:
- Temporary tables have limited functionality and cannot be used in the same way as a real table. For example the following doesn’t work:
SELECT * FROM temporary_table, temporary_table AS t2;
- BCP like functionality is provided by the load data command. I only did some basic testing, but is seemed very fast (faster than bcp).
- The security model seems quite basic; groups and roles seem absent, so granting seems to need to be done on each user.
So what do I think of MySQL ?
This product has great potential. By the time version 5.1 becomes a stable production release it will be usable for a lot of applications. By the time 6.x comes out I would expect they have caught up in the important areas of data and domain integrity to the point where is will become a feasible option to companies out their. It wasn't that long ago that people tried to write off Apache & Linux. I can see MySQL being the next big thing in Open source, if it isn't already.
Having said that, as it stands now (5.0) I would not be willing to use MySQL for anything more critical than a reporting database. The lack of system wide rules, defaults and the problems with constraints mean that you would have to build all
of your referential and domain integrity into the app. That’s a DBA's worst nightmare!
It is worth noting here that there is an offshoot of MySQL called MaxDB (formally SAPDB). This has been developed by MySQL and SAP and has been developed to try and address these enterprise limitations. I have yet to look at it, but if I have time I will also try and conduct the same exercise against this.
The future of Sybase
People often ask me if Sybase will still be around in X years. The short answer is absolutely.
Firstly, this is my own personal opinion. As I used to work for Sybase I am somewhat biased, but I am presenting my reasons here and you can judge for yourself. Note also my figures are just to illustrate my point. If I did know the real figures (which I dont) I would not be allowed to use them anyway.
Since I first started working for Sybase around 7 years ago Sybase has grown in terms of RDBMS sales every year. "What ?" you say, I thought Sybase had lost market share. That really depends on what you are asking. The database industry (as has the whole software industry) has been growing every year for decades. There has been an explosion in the number of RDBMS systems deployed over the past 10 years and Sybase has grown with it. What you have probably heard (which is true) is that Sybase has lost market share as a percentage of market size. So when the world wide market for RDBMS systems was say, 500,000 (for arguments sake - I dont know the figures) Sybase had 20% of the market, or 100,000 customers. Due to Market growth the world wide market is now at least tens of millions (a conservative guess I would think). So if the worldwide market is now 20,000,000 (which does not seem as unreasonable guess) and Sybase has 3% of that market then Sybase has 600,000 customers - growth of 600% !
This of course refers to Enterprise RDBMS sales alone. Sybase sells over 100 other products (including several other databases) and some of those products are the most popular in their industry segment, for Example Adaptive Server Anywhere, which has around 70% of the mobile and embedded database market. Sybase is doing quite well really.
Update: Since I wrote this a few years ago, Sybase has acquired several companies, ASE 15 has been released and Sybase has continued to do fine.
My First Post
From now on I'll replace it with this blog. Hopefully I actually keep this up to date !
Cheers,
Leigh Kennedy.