Widgets Flotsam and Jetsam

Flotsam and Jetsam #23

By Nick at February 01, 2011 08:15
Filed Under: Delphi, Flotsam and Jetsam
  • Do you have TestComplete skills?  Do you know someone who has TestComplete skills? If so, we want to hire you. (Well, we don't necessarily want to hire you if you merely know someone with TestComplete skills, but you get the idea.  Money mouth)
  • StackOverflow Question of the Week:  What are the pros and cons of using interfaces in Delphi? Lot’s of good discussion and some nice answers.
  • THTMLWriter Update: I have finished and checked changes to fully support the <table> tag and its subordinate tags, including ensuring that they aren’t used out of order.  I have but three tags left (<dd>, <dl>, <dt>), and then I think I will be “done” in that I’ll declare it to be a “1.0” release.  At that point I’ll “freeze” the interface and won’t make any more changes to it.  Any subsequent additions will require a new interface at that point.  Your feedback gratefully accepted.  In addition, the IHTMLWriter interface now descends from ILoadSave to remove the duplication.
  • I hereby officially declare Hodges’ Law: “The first person in an argument to compare the software development process to building automobiles loses that argument.”
  • Danny Thorpe pointed me to this interesting article talking about using existing Wi-Fi connections to expand the coverage of a given network.  I’ve often wondered about this – that is, why don’t cell networks make it easy for people to expand their networks?  I’d be willing to bet that if you go to the mall, the Sprint Store (or the Verizon store, or the AT&T Store or the T-Mobile store) all have some sort of repeater or other type of device that ensure that their store has a five-bar signal.  (Who would buy a phone at the store where there is a weak phone signal?)   Why not put those all over the place?  Why not install them in office buildings, malls, airports, etc., where people are? Why not sell them (give them) to people to install in their homes?  Or why not make the phone able to call over any given WiFi network, allowing the phone to work even where there is no cell tower at all?  It seems to me that this is an unexplored and unexploited feature for cell network providers, and something that could drastically increase the already high value of a cell phone. Heck, I’d be willing to share some of my bandwidth with my neighbors to increase and improve the coverage in my neighborhood.
  • Another great argument about why unit-testing is so cool and powerful from Uncle Bob.

Flotsam and Jetsam #22

By Nick at January 28, 2011 04:35
Filed Under: Flotsam and Jetsam, Delphi, Tech Stuff
  • SDTimes has an interesting article about a “Delphi Starter Edition”.  It appears that the Starter version will limit the revenue of a user to $1000 in overall revenue, as well as limiting all database access.  They are going to be priced at $199.  It also seems like there can only be five of them in any given organization.  Folks in the community are discovering that the Starter Edition will be available February 1.  And now Tim Del Chiaro has confirmed it in his blog.
  • We recently changed the name of our “Inside Sales Representatives” to be “Account Relationship Managers”.   This lead to the following statement in our weekly Manager’s Meeting: “Well, that’s really in the hands of the ARMs”.  Heh Heh.
  • I want a Rovio.
  • I just realized that I have a Windows key on my keyboard and that I don’t think I’ve ever used it once. Now, I know that the key has been there for a long time, but I just now realized that I simply never press it. Maybe I should be.  Do you guys actually ever hit the Windows key?
  • Today marks the the 25th year after the Challenger explosion, and I heard them on the Radio talking about it, saying “Do you remember where you were"?”   I remember it as clear as day. I was standing in the front office at Pasadena High School, where I was a Latin and English teacher.  Our principal, Tom Hancock, came out of his office with an ashen look on his face and said “Challenger just exploded”.  It hit our area particularly hard, as Pasadena is a suburb of Houston, with a major NASA facility nearby (The famous “Houston Control”), and the astronauts had lived and trained in the area.  That moment is a very start memory for me.

Flotsam and Jetsam #21

By Nick at January 21, 2011 08:58
Filed Under: Flotsam and Jetsam, Delphi

Flotsam and Jetsam #20

By Nick at January 13, 2011 20:25
Filed Under: Delphi, Flotsam and Jetsam, Unit Testing
  • My Dad got me this clock for Christmas and I now have it hanging on my wall at the office here at the World-wide Headquarters of Gateway Ticketing.  It is definitely an eye catcher and a conversation starter.  I was able to figure out some of the numbers (12, 6, 7, 8, and 11), but the rest I had to get from a blog post that explains them all. 
  • I happy and honored to say that the Delphi Feed for my blog is now part of DelphiFeeds. Hopefully this will mean that these amazing pearls of wisdom will benefit a broader audience than just you fine people.
  • We here at Gateway are in the process of migrating to Mercurial for our source control (I’ve probably mentioned that before….) and we are considering using to host our repository.  Thus, I’ve created a small Delphi project there called DelphiClean. It’s not much right now, but it is serving the purpose of letting me see how things work on BitBucket.  I will update it in the future, particularly with the ability to provide a custom list of extensions to be “cleaned”.
  • Now that Delphi has cool language features like Generics and Anonymous Methods, there is a lot of very cool code being written. Combine that with the ease of sharing code on places like GoogleCode, BitBucket, SourceForge, etc., and it ‘s a pretty cool time to be a developer.  The indefatigable Alex Ciobanu is a guy who is producing some amazing code.  Alex create the DeHL project, and now he’s created out of that a project called Collections.  Well worth a look.  The fun part is that Alex creates a full suite of unit tests for his code, so you can use it with confidence, and if you find a bug, you can write a failing unit test for him, and he can fix it, incorporate the now passing test, and we’ll all know if that bug appears again.  (There’s my daily pitch for unit testing….) In any event, Alex’s code is quite remarkable, and he’s a valuable member of the Delphi RTL team.  Here’s hoping some of this great code finds its way into the RTL.
  • Danny Magin posts about the Developer Solutions Conference.  I wish I could go – alas, duty calls – but you can. (I’m particularly interested in the Android development stuff.  Alas)  Plus, it’s in Vegas, baby!

Flotsam and Jetsam #19

By Nick at January 11, 2011 03:58
Filed Under: Flotsam and Jetsam

Flotsam and Jetsam #18

By Nick at December 30, 2010 02:30
Filed Under: Flotsam and Jetsam
  • Cool Thing Done with Delphi of the Week:  Now this is the kind of thing where Delphi can really shine – connecting to hardware.  I’m sure some of you got an XBox 360 Kinect controller for Christmas, and if so, you can now write a Delphi app to use it.  Simon Stuart (aka LaKraven) continued his string of writing Delphi interfaces to interesting things (he started with TTwitter, or maybe even something before that that I don’t know about!)  by writing TKinect, a component to connect to, well, a Kinect controller.  Smile  And then the folks at the IT Security Lab made some really cool demos.  The 3D stuff is particularly cool. Definitely worth a look, just for the coolness factor. 
  • As a general rule, I find most everything Seth Godin says to be interesting, but I thought that this post was particularly interesting.  Made me thing “Grow where you are planted”. And it made me think that your job doesn’t have to be that which it is “supposed” to be.  For instance, being a waiter might seem mundane, but you can make it an opportunity to learn how to delight people, as Godin deftly points out. 
  • Great list -- 29 tech phrases you should be punched in the face for using.  And just for the record, I only type “LOL” when I actually do LOL.  Winking smile  (And while we are at it, here’s another great list.)
  • I ran across an interesting coding technique called “Spartan Programming”.  I agree with much, but not all, of the tenants.  I’m definitely in favor of limiting scope as much as possible, creating small interfaces, limiting horizontal and vertical complexity, and minimizing coupling,  But I can’t say I’m a fan of limiting the size of variable names or limiting character count in general.  In that area, I think it pays to be clear and verbose.  I do agree, though, that routines should be short and sweet.  In any event, interesting ideas.
  • Cool Delphi Code of the Week:  TKBDynamic in the kblib project on GoogleCode.  This is a small but really useful library that lets you easily write records to streams, even if the records have relatively complex structures.  Pretty cool – and it isn’t even yet taking advantage of the new RTTI.

Flotsam and Jetsam #17

By Nick at December 15, 2010 08:24
Filed Under: Flotsam and Jetsam, Delphi

Flotsam and Jetsam #16

By Nick at November 30, 2010 03:42
Filed Under: Flotsam and Jetsam
  • New Delphi Blog of the Week: From Zero To One  The author made an interesting comment on my THMLWriter post, and has given me some ideas.  Looks like an useful set of downloads as well.
  • THTMLWriter Update:  As per the excellent suggestion by Francisco Ruiz, I’ve added a new feature for attributes, enabling you to declare attributes as an indexed property with two strings.  Great idea. 
  • Document Insight has been released and for the present, it is on sale for half price.  I have been making extensive use of Document Insight with the THTMLWriter project, and can easily say that it is one of the coolest Delphi plugins I’ve ever used.  It does exactly what I want, and it is utterly intuitive.  Very nice.  The XMLDoc feature of Delphi is cool once you really start using it, and Document Insight makes it pathetically easy to do.
  • Cool Delphi Open Source Project of the Week:  DotNet4Delphi – This is a brilliant idea, actually.  First, it utilizes generics to create a nice set of collections and lists based on the same set of .Net classes.  But the fun part is that it creates TDataset descendants than enable you to hook those lists and collections to data-aware controls for display and editing.  Very cool idea indeed.  Add this to the growing list of very excellent libraries for Delphi that are taking advantage of generics, RTTI,  and anonymous methods.
  • In Flotsam and Jetsam #14, I mentioned Cliff Stoll’s horrifically inaccurate prediction about the Internet.  Could this be the greatest single example of “Claim Chowder” in the history of the tech business?

Flotsam and Jetsam #15

By Nick at November 22, 2010 07:42
Filed Under: Flotsam and Jetsam
  • A lot of things bug me, but the thing that is bugging me a lot lately is a seeming proliferation of popup windows without a button that says – more or less -- “Save and make me go away”.  For instance, I use LiveWriter to write these posts, and the category drop down box doesn’t have any way to tell it “I’m finished”.  Apparently  you are supposed to just nookaybuttonknow that the way to apply your selections is to click somewhere outside the dialog.  I find this to be bad design and, well, irritating.  I like to know that when a dialog goes away, it has either definitely or definitely not saved my settings.  When clicking outside the box to make it go away, there’s no way to know for sure.  Very irritating.  What’s wrong with a good ol’ “Okay/Cancel” set of buttons? 
  • Hey, this is cool:  The mighty Joel Spolsky himself answered one of my questions on StackOverflow
  • Not surprisingly, since I added moderation to the comments here, I’ve gotten very few of the “Great post, this is exactly what I was looking for, I’m going to bookmark this site and come back later” comments.  What a shocker, eh?  Smile
  • I just discovered that there is a Reddit just for Delphi stuff.
  • If you are looking forward to 64-bit Delphi, then this StackOverflow answer from the prolific and always informative Barry Kelly is must reading.
  • Interesting Article of the Week: Implementing a Partial Serial Number Verification System in Delphi by Brandon Staggs.  Ever wonder where those four-chunked serial numbers come from and how they work?  Brandon does a pretty good job explaining it all and giving a “getting you started” implementation.  Good, interesting stuff.
  • As Allen Bauer taught me – “Shipping is a feature”.

Flotsam and Jetsam #14

By Nick at November 12, 2010 07:10
Filed Under: Flotsam and Jetsam
  • One hidden benefit of working at a ticketing company:  Unlimited book marks!
  • Video of the WeekTeacher has trouble showing a video.
  • This article by Cliff Stoll cracked me up. Written in 1995, it basically says “This whole Internet thing is a big mess and will never take off”. The article was a companion piece to his book Silicon Snake Oil: Second Thoughts on the Information Highway.  Stoll is probably most famous for writing one of the first tales of hacking and security on the Internet called The Cuckoo's Egg .  I’m sure that he’s utterly embarrassed by the article – and probably the book -- today. And if he’s not, he should be.  Winking smile
  • I posted this comment on StackOverflow: “Empty catch/except blocks aren't code smells, they are code putrids.” By the way, that whole question is worth reading.  Some good wisdom there.
  • And while we are on the topic of good questions to read, this one about people’s favorite programming quotes is pretty fun to read.  My favorite quote:  “Some people, when confronted with a problem, think ‘I know, I'll use regular expressions.
    Now they have two problems.
    ”  What is your favorite?

Flotsam and Jetsam #13

By Nick at October 29, 2010 05:53
Filed Under: Flotsam and Jetsam
  • Okay, as you’ve might have noticed, I’ve had to turn on moderation for comments until I can figure out how to keep spammers from posting to the comments.  They usually post some comment with a link that they want to be more popular on Google.    Most of them are banal – “Thanks for this great post!  This was exactly what I was looking for!” – but some are funny – “STOP DELETING OUR LINKS!!!”.  That’s what they want, of course, a link to a particular site to try to sway Google into ranking that link higher.  The spam filter catches a lot, but not all, and I am just having to spend too much time deleting these comments.  It’s irritating.  Suggestions gladly accepted.
  • One of the divisions I manage here at Gateway is the folks that do documentation, training, and marketing support.  Basically, if it needs to be written or otherwise communicated outside the company, this team does it.  The team name is “Product Communications”, which I think is a cool name for them.
  • I think I posted this link on my Embarcadero blog, but it is such a good presentation that I want to post it again: Drive: The surprising truth about what motivates us.  Sometimes something you want, read or hear really resonates, and this video really resonates with me.  The notion that people really want the ability to direct themselves,  to master something, and to find purpose in what they do is a profound truth.  I think if companies were to really ingrain this into their culture, you’d see a lot more people doing a lot more amazing things.
  • By the way, you can see more of the excellent whiteboard presentations at the RSAnimate channel on YouTube.  That is a really cool and effective way to listen to/watch a presentation.  For instance, here’s a fascinating presentation called “Changing Education Paradigms” that uses the whiteboard animation technique.
  • “Item Worth Reading” of the Week:  How We Got Rid of Time Reports

Flotsam and Jetsam #12

By Nick at October 25, 2010 09:25
Filed Under: Flotsam and Jetsam, Personal
  • Here’s a great article about roadmaps and how they generally, well, suck.  Smile My favorite quote: “You can’t predict which unexpected events will occur, but you can predict that some unexpected events will occur. Therefore, a rational person builds adequate buffer room into a schedule to accommodate unexpected events.”  That is sound advice for anyone involved in software development.  This is actually one of the best articles I’ve read in the software development field in quite a while. (You can Digg the article if you like.)
  • There is now a chat room for us Delphi people over at StackOverflow.  Seems like a nice centralized place for Delphi developers to hang out.
  • One of the common complaints about the Delphi Market is that there are not many new guys or young guys coming in to the market.  There are a number of reasons for this, and among them is the fact that many young people consider NNTP-based newsgroups to be archaic and old, and when they see that is how most online Delphi discussions get done, they think the same of Delphi.  And I think it is interesting that the same people asking for new, younger customers seem to me to be the same ones that would go into meltdown if the NNTP news server went away.  Winking smile
  • Off-Topic Comment of the Week:  My Economics professor from the Navy Postgraduate School, Dr. David Henderson,  pointed to this amazing collection of interviews by actor/singer Will Smith. I confess I had no idea that Mr. Smith wasn’t just another Hollywood knucklehead, but is instead a rather remarkable man of substance and depth. I’m actually quite stunned and moved by what he had to say.  I loved the story about the brick wall in particular.    I feel bad for my misconception, and am happy to say that I am now a great admirer. And he can even do the Rubik’s Cube in less than a minute.

Flotsam and Jetsam #11

By Nick at October 16, 2010 23:44
Filed Under: Flotsam and Jetsam
  • You Delphi people are probably well aware of the excellent documentation and reference site -- Did you know that you can support them financially by purchasing a desktop version of the site for only $10?  I didn’t realize that, and thought that it was a nice way to support an excellent site.  I’m going to look at getting some copies for some of the new developers on our team here.
  • Question of the Week: Can you be agile if you have a fixed ship date?
  • I just upgraded to Pandora One.  I am a huge Pandora fan – it’s really all I listen to on my PC at work – and I am happy to pay the meagre $3.00 a month for the service.  One of the reasons that I really like it is that it constantly is feeding me new artists and new music.  I’ve come to love a lot of singers – Sarah Bareilles, Matt Nathanson, 3 Doors Down – that I might not have otherwise heard of.  The music industry should also take note that I’ve bought quite a few CD’s as a result of finding new music to love via Pandora.  Pandora has had trouble with the music industry regarding royalites, etc.  I’m sure I’m not the only one that  has bought more music because of Pandora, not less.
  • Clever Item of the Week:   The name of the company that inspected the house that I am buying is “Sherlock Homes Inspections”.  I like that.
  • Craig Stuntz posted this fascinating video on his Twitter feed.  A town in England had an intersection that was notorious for being jammed and hard to get through as people waited at traffic signals.  One day, they simply turned off the traffic lights (with ample warning).  The result?  Smoother traffic and less congestion for both cars and pedestrians.  I really enjoy when someone goes radically against the forces of “You can’t do that!  It will never work and cause chaos!”.  I actually saw the link in the newsgroups, where Craig made the insightful connection between this video and the “Lock/Unlock” model of source control management.

Flotsam and Jetsam #10

By Nick at October 12, 2010 09:10
Filed Under: Flotsam and Jetsam
  • I wish that my iPhone was too big for my pocket and couldn’t make phone calls.
  • I mentioned in my Smartphone rant that I have an Android phone.  The actual phone that I have is an HTC Hero from Sprint.  I like it a lot, especially the HTC version of Android.  I was worried about the no physical keyboard thing, but the predictive typing has worked out pretty well now that I’m used to it.  However, I’m not here to talk great things about it, I’m hear to bitch.  Here’s some things I don’t like:
    • I often put the phone in my pocket without locking it.  This drives me crazy, because it leads to butt-dialing, strange emailing, and other things that can go wrong as the touch screen interacts with my pocket.  Here’s the solution – and a great idea for an app.  I almost always end up putting the phone in my pocket upside down.  The phone should detect if it is upside down, and if it is, immediately lock itself.    I guess that could be a problem when just carrying the phone, but there has to be some way to get this to work.
    • There are some apps that come loaded on it that cannot be removed.  I find this astounding.  My phone came with “Peep”, a very mediocre Twitter client, and I’d like to get rid of it.  But no, I can’t.  I have to “root” the phone to do that, and I’m not sure I want to take that drastic step.
    • The process of working with the phone call part of the phone is really, weirdly, slow.  If I press on a contact to make a call, it can take up to 20 seconds for the phone to place the call.  If there is one thing a smartphone should do well, it’s place phone calls. 
  • This is really cool:  The folks at DevJet --- they most famously produce the Spring for Delphi Framework – have fully documented the XMLDoc features in the Delphi compiler and IDE.  These are the “triple slash”  (///), XML-based comments that you can add to your code that enable both automatic documentation generation as well as live help hints in the IDE. It has always been kind of a dark art to know exactly what the tags are, and these guys have produced a great document with examples and pictures showing you how it all works. It’s actually quite feature rich what you can do with the comments.  I hope this great information can make its way into the the Delphi documentation itself.
  • The DevJet guys are also working on an IDE plugin that will let you write your comments in a WYSIWYG editor. 
  • I would be remiss if I didn’t point out once again that TSmiley has its code rather thoroughly documented with XMLDoc.  Winking smile

Flotsam and Jetsam #9

By Nick at October 06, 2010 08:13
Filed Under: Flotsam and Jetsam
  • We here at Gateway Ticketing are looking to migrate to a Distributed Version Control System, and so naturally I’m scouring the Internet for information, thoughts, opinions, ideas, etc. (Your thoughts and comments gladly accepted, BTW).  I ran across this document about Mercurial and found a curious thing – per-paragraph comments in the documentation.  Interesting.  People there are making some good comments about each individual paragraph to help improve the document and the book.  Pretty cool.
  • I’m sure that some of you may have an opinion on this particular question at the Programmers StackExchange site. 
  • Are you guys reading Mason Wheeler’s blog?  If you are a Delphi guy, I’d recommend it.  Mason is a really smart guy who likes to stay out on the bleeding edge of what is going on with Delphi, and his blog always makes for an interesting an educational read.  This post is no exception, in which he does a little digging and discusses some things he’s heard and how it might be culminating in native LINQ for Delphi. Exactly the kind of blog post that is fun to read.
  • It’s not often that you see an invention that is so simple and yet so useful that you say “Why didn’t I think of that?”.  Well. here’s one:  The PageKeeper. Ingeniously and fiendishly simple.  Why didn’t I think of that?
  • It is readily apparent to me that the people who make those copier/scanner/fax/printer machines that we all have in our offices now have done a negative amount of usability testing.  That is, these devices are so utterly unapproachable and completely un-figure-out-able that they actually seem to have done some sort of testing that actually made their usability go negative.  Unbelievable how bad the interfaces are.  Seriously.

My Book

A Pithy Quote for You

"Just the knowledge that a good book is awaiting one at the end of a long day makes that day happier."    –  Kathleen Norris

Amazon Gift Cards

General Disclaimer

The views I express here are entirely my own and not necessarily those of any other rational person or organization.  However, I strongly recommend that you agree with pretty much everything I say because, well, I'm right.  Most of the time. Except when I'm not, in which case, you shouldn't agree with me.