Life and "deeds" of a .NET programmer. Not a programming wizard, not a guru, not an überhacker. Your every-day average Joe Programmer, that's me. A worker of the key, as opposed to a key worker. A code-cruncher. We also have a right to speak, haven't we?
After more than a year, I'm moving this blog. Blogger has given me an excellent service, but I wanted to try new things.
The main (spanish) version of this blog has its own domain now, (picacodigos.com
) and it's done with dasBlog. The new translation is at Blogsome
, and uses WordPress 2.0.
Thanks for all, Blogger!!
First (showable) managed C# DirectX test. The results aren't exactly the next generation Quake
engine, but I'm really proud of it:
For another project I have in mind (yes, it's a game), I've thought on using DirectX for simulating a six sided dice rolling. The screen capture you see is from an executable file, but I want to convert it to a user control, so anyone can use it on their projects... if there's anyone who sees this as something usable, that is. When it's converted to user control and I had published the code somewhere (I'm thinking CodeProject) I'll post the link here.
But for now I just wanted to brag a little. :)
Well, today's my birthday. 34 years now, ain't it amazing?
Anyway, I can't complain. Although I lack some things in my life that some people would consider basic, such as a mortgage of my own, a car, or a girl(*); well, I work in what I love and I'm surrounded by great friends. The very best.
Besides, I've got a light sabre
Who the heck cares about a place of their own, having a light sabre?
(*) Notes for the not-spanish: Well, it's not that strange being 34 and single, and not having a car (nor a driving license), and still living with your parents in Spain. I know, I know, in the USA for example that's pretty much the nerdiest resume ever, but hey, try buying a house with our
prices and our
Try Ruby online
At Try Ruby! (in your browser)
you have a Ruby part mini test-drive, mini tutorial. You can see the simplicity of the language, the ease of use and the slight strangeness of its syntax. Oh, well. Just another thing added to the I have to try this!
No, just to set a difference with all my fellow bloggers out there I'm not going to talk about Google Talk
. Yes, I've installed it and tested it. Minimalist, simple, beautiful and everything else.
But among all the sound and the fury of Google Talk there's another news item that has gone uncovered: Microsoft's Web Messenger
, which is just now in its first beta version.
It esentially is, as you can see from its name, a web flavor of its popular instant messaging service, Messenger. It has, logically, some reduced functionality but it works really good towards the basic goal of every IM program: to communicate with your contacts.
Advantages? You don't have to install anything in your computer, you log in with your Passport email and password (just like in the desktop version) and if you happen to be inside a corporate network full of firewalls and other nuisances, you can still talk without a trouble...
As all of you already know, on Web development (be it with PHP, or Java, or .NET or plain HTML) there are some files called Cascade Style Sheets, or CSS, which force all our Web pages to share a coherent and uniform visual style. They are text files one can specify global styles for our pages, so we can specify that all our tables are gonna have a 5 pixel wide yellow border, or the background of all of our pages is gonna be an specified image, etc. It has several undeniable advantages: besides giving a coherent look to all the pages of our application or Web site, it allows us to forget
about the visual aspects of our pages and in order to change the appearance of our Web app we'll only have to edit a single text file form which all our pages will feed automatically. Try CSS Zen Garden
so you can check by yourself the true power of style sheets.
Why the hell can't we have this for Windows Forms?
First of all we'd have to design a file (XML, for example) containing the design we want to apply to our forms, text boxes, dropdown lists, grids and so on. Of course, at first our XML based style file (XSS?) would only admit standard .NET controls, but I believe it could be easily extended to third-party controls.
Having those XSS files as a starting ground, the thing
could work two ways.
First, as a Visual Studio add-in
, we could have a button in the IDE with which we could select one of our premade XSS files and apply, on design time
, the styles to all the forms and the controls of our application. Of course, if we later on add controls to the forms or forms to the application we should have to push that button again to make the new controls adhere
to the norm. The controls would be saved and compiled with the chosen visual style already implemented on them.
Second, we could include a DLL made to read XSS files and change the appearance of our Windows application in runtime
. If a user of our add-in
wants the visual styles to be applied on his application at runtime, or wants the user to be able to change between several predefined visual styles (several premade XSS files), he'd only have to reference the DLL that allows him to make this changes.
First question: what do you think about it?
Second question: do you think there's already something like this avaliable?
What phony dog poo?
The more or less a month without writing anything here is not because a roughly equivalent holiday time span, lying down doing nohing on a beach somewhere without a keyboard. My wish
IT's mainly because an inordinate amount of work and the lack of commentable news, or the lack of willingness to comment the news, I don't really know.
But there are a few things I've done worth commenting something, besides working my a$$ out: I (finally!) tried Visual Studio 2005 Beta 2, I'm trying to get my third star
, I've written my first tech article
(spanish), I've begin to read my four new books and I have finished none, and I've generally tried to get the most out of my time.
About Visual Studio 2005, after the very little time I've spent with it, I'm impressed. My first thinking about it was that if VS 2003 was a Ferrari, VS 2005 is an X-Wing.
It includes MS Build, or Microsoft's answer to NAnt, which we'll have to test something more to see if it can really leave unemployed
the amazing NAnt's development group or if we'll have to stick to that tool for our automated building needs. Ditto to NUnit and unit testing, task already included to VS 2005. The IDE includes some of the refactoring capabilities brought by ReSharper
, which leads me to wonder what ReSharper for 2005 will be able to do, and I'm already grinning. Partial clases are a blast: we'll be able to arrange much more elegantly our source code. If I tell you that Intellisense is simply better I'm making a big understatement. Tooltips
showing you your variable values on runtime are light-years away from VS 2003. IDE toolbar and windows docking handles like a dream. Custom data viewers are simply amazing. The creation and handling of controls on Win Forms has been exponentially improved, so the form grid is not really that useful right now. And I haven't tested it for Web Forms yet (you know is not my favorite programming flavour); but only not needing Internet Information Server on the development machine anymore and having its own application server simplifies the IDE installation procedure big time
, just for starters.
So when I come to work and I have to fire up VS 2003 I feel almost, almost like the time I had to use VB 6 after having used VS 2003. Obsolete. I'm dying for November.[EDITED].-
I forgot a VS 2005 detail I haven't liked so much. On all the previous versions of Visual Studio, when you wanted to align several controls, you clicked on them while having the CTRL key pressed down, and the you clicked on any of the alignment buttons on the Form tool bar. The order
on which we selected controls was important: the last
selected control was the leader, so every other selected control was aligned taking that one as a reference. Now, in VS 2005, the leader is the first
selected control, which can create some confusion 'til we get used to this fact. There may be an option to make this behave as always, but I haven't investigated the matter further.
I bought yesterday four books in Amazon, two on the english site and two more on the american mothersite. Such diversification does not respondo to any master plan of mine to save two pennies, it's simply because I followed a link from someone's blog (damn if I remember who) and from there I kept on clicking and ended up four books richer and almost $150 poorer. Amazon socres, no doubt, a 10 in usability: buying stuff there is too easy
This are the books I'm awaiting:
I hope those books lift me above Mort's
You are NOT inadequate
There are times when I must visit this blog entry
from Secret Geek's amazing blog, dot nuts about dot net
. Because there are times when I feel exactly like he describes...
Under so curious a name we find a library for managing configuration files on .NET applications: Nini
It allows to handle INI files, XML files, .NET specific configuration files (the .config
files), Windows registry and command line arguments. I'm hoping I'll try this in no time, because it will come really handy for an application I'm doing when I have the time.
[Via Version Cero
Style over substance
Taking about it, as in the previous post, I've found the Huh? Corporation
, a highly ironic website about how the high level consultancy field works for the most part. You don't wanna miss it.
Rock stars and programmers
On his more recent post, Hitting the high notes, Joel Spolsky is wrong. There are some things with which I agree. But there are other with which I disagree with a passion. For example:Is software really about artistic high notes? "Maybe some stuff is," you say, "but I work on accounts receivable user interfaces for the medical waste industry." Fair enough. This is a conversation about software companies, shrinkwrap software, where the company's success or failure is directly a result of the quality of their code.So, if you don't work making Office's next version or 3DsMax or McAffee Antivirus; or any other software anyone can buy off the shelf the quality of your code means much less. And there, among other points of view, is where Mr. Spolsky is dead wrong.He keeps at it:Sadly, this doesn't really apply in non-product software development. Internal, in-house software is rarely important enough to justify hiring rock stars. Nobody hires Dolly Parton to sing at weddings. That's why the most satisfying careers, if you're a software developer, are at actual software companies, not doing IT for some bank. I absolutely negate this vision about software development. It may be super-cool at parties to say "I'm the guy who coded MS Excel" or "I made WinZip". Heck, who knows, maybe in some parties if could get you the hoties. That that shouldn't be the main reason why one wants to be a programmer. If one wants to be famous there are more easy ways, don't you agree?Ours, like policemen, should be a calling of service. And never, ever, loose track of the final user. If the work we do at a bank, a government agency, or a video-store makes the people working at that bank, government agency or video-store perform their jobs more efficiently, more quickly or simply better, we've achieved. That should be our goal when it comes to create software, and not being famous on forums, blogospheres, mailing lists and the rest of the crap that only geeks care about.By the way, two of the bloggers I've sindicated have also answered Mr. Spolsky, and way better than me. Scott Reynolds and Phil Haaack.PS.- Of course Mr. Spolsky keeps talking crap on his post, at least from where I stand, because of the excessive admiration he has for that beautiful piece of crap called iPod. Mr. Spolsky:Or look at the iPod. You can't change the battery. So when the battery dies, too bad. Get a new iPod. Actually, Apple will replace it if you send it back to the factory, but that costs $65.95. Wowza.Why can't you change the battery?My theory is that it's because Apple didn't want to mar the otherwise perfectly smooth, seamless surface of their beautiful, sexy iPod with one of those ghastly battery covers you see on other cheapo consumer crap, with the little latches that are always breaking and the seams that fill up with pocket lint and all that general yuckiness. The iPod is the most seamless piece of consumer electronics I have ever seen. It's beautiful. It feels beautiful, like a smooth river stone. One battery latch can blow the whole river stone effect.Apple made a decision based on style, in fact, iPod is full of decisions that are based on style. And style is not something that 100 programmers at Microsoft or 200 industrial designers at the inaptly-named Creative are going to be able to achieve, because they don't have Jonathan Ive, and there aren't a heck of a lot of Jonathan Ives floating around.With demonstrates that Joel Spolsky is another member of that sad army of idiots which prefer style over substance. I can imagine Mr. Spolsky buying a very, very beautiful and sexy car that cannot be refueled once you finish the factory loaded full deposit; all thanks to a really good (but maybe not very intelligent) designer who has decided that a latch accessing the fu[...]
Giving each one...
...it's due, as I-don't-know-who said. Eclipse
is an IDE primarily focused on Java, although it can be configured to use with another programming languages. In the short interval that I worked with J2EE and used this environment I found good things, and others not so good.
One of the good things is actually very feeble, but I got so used to it that I decided to bring it to VS 2003. On Microsoft's IDE, if you want to comment away a selected source code block, the default keyboard shortcut is Ctrl + K
and then Ctrl+C
. That's, saying it nicely, quite cumbersome compared to the simple and elegant Ctrl + 7
commenting on/off switch on Eclipse.
So I've made a custom keyboard layout (VS 2003 doesn't allow you to modify the base layout) which I've called Eclipse
, of course, and I've entered that way of commenting and un-commenting code.
The procedure is quite simple: at Tools, Options
menu you have to select Keyboard
. On there you search for Edition.SelkectionWithComments
and then you asign the new keyboard combination clicking on Shortcut keys
replacing the one there with your own. It'll ask you how you want to name the new keyboard layout VS is going to create. And that's it. For un-commenting code you'll want to search for Edition.SelectionWithoutComments
and assign the keys combination of your choosing.[NOTE]
.- This post is translated from Spanish (as all the rest, this blog's primary language is Spanish). Although I do my best with the translations and do them by hand instead of using Google or Bablefish, I don't have a english copy of VS 2003, so the actual names of menus may change. You have been warned.
If you're like me and you're too lazy (or too incompetent) to install and configure a Linux distro and the Mono implementation of the .NET Framework for Linux but still
are curious to see how it works, look no further: Monoppix
, or Mono + Knoppix.
Edited: I've learned there's yeat another live CD ready for using Mono. This one's based on Ubuntu: Mono-Live
Contact grouping in GMail
Let's say we want to create a group containing three emails: firstname.lastname@example.org, email@example.com y firstname.lastname@example.org. You want the group to be called Buddies
, for example.
What you need to do is create a new contact, just as if you were adding a new email adress to our GMail adresses list, and call it Buddies. In the textbox for the email, you have to insert the following character string:email@example.com>,,
As you can see, this means that each email adress you add to this contact is to be separated with a comma (b>,) from the next adress and between the lesser than (<) and the greater than (>) symbols, except the first and the last email adresses. The frist one doesn't need the < character at the beginning and the last adress doesn't need the > character at the end. This is so because GMail automatically adds this two characters to the string you enter as email.
Once you're finished, presto! you'll have a contact containing three (or as many as you want) email adresses. =)
attitude by its owners, that zealot-like misticism, the unsufferable snob and designed stench of this piece of junk and its horde of fanatics, and the no-arguments-possible fact
that there are better and cheaper alternatives in the market; make me join the movement:
(image) I DISLIKE iPOD
Beta 2 DVD
Microsoft has finally released Team Studio 2005 to the european developers. You can order your free DVD here
Another funny test
Your Linguistic Profile:
70% General American English
5% Upper Midwestern
Visual Studio 2005 Beta 2
It's gone live. You can find here
a complete breakdown on all the different editions the next Visual Studio will have, and which capabilities will each have. I'm happy to see that the Express
editions, previously mentioned on this same blog, will have official
editions beyond beta stage. And, of course, they also have Express editions for this Beta 2. If you download them (herer
) be very careful
and uninstall previously all the previous versions, Framework 2 included.
The Beta 2 edition of Visual Studio 2005 is avaliable for downloading if you are an MSDN subscriber, and free on a DVD edition
if you ask for it nicely. If you're European of African, you'll have to wait till the 25th to ask for it.
I've just learned that the Express Editions have database connectivity only
to SQL Server 2005 Beta (except for the Web Developer Express Edition). It seems to be an strategyt: by seriously handicapping the Express Editions Microsoft ensures they will only be used as learning tools. This is not a step in the right direction, for several reasons:
- Going back.- Beta 1 editions of the Express IDEs did have connectivity to several databases, including Access, MSDE and the full fledged SQL Server 2000. Removing functionality in the step from a Beta 1 to a Beta 2 is odd, to say the least.
- Marketing.- It's completely legitimate from Microsoft to try and make money selling their products. Nobody (at least nobody with a little sense) is going to complain about that. But, and this is a big but, I thought Express Editions were a great tool for us to legally develop applications independently. Most of us are employees of big firms, with the big bucks to pay for the full fledged Visual Studio editions, so that's what we use at work. For those of us who like to program also in our leisure time, for our little-to-no-profit (or just for fun) endeavors, the Express Editions would be a great tool. Now, we are again compelled by Microsoft to use P2P to download illegal versions of their software, if we want to use it at all.
Just plain wrong, and a step back. Same old, same old.
VB vs C#
by Philippe Lacoude exposing the similarities and differences between VB and C#. Just as we programmer (at least, some of us with a remainder of common sense) been saying for months and project managers, customers and some other über-snob programmer don't want to hear: the differences between the two languages are minimal.
Paraphrasing Bill Clinton: It's the framework
New SharpDevelop version
, the free open source IDE for C# has just released a PR of its version 1.1. As the developers warn in the site, this Preview Release is not even a beta, as has some bugs. But we can download it and take a look at the new and exciting possibilities that will make this excellent IDE even better.
And they are:
- New help system.- Now SharpDevelop includes an online help, MSDN style. In fact, the help system included in SharpDevelop can be configured to open its own help files, or the Microsoft ones, or any other.
- XML edition.- XML edition has been greatly upgraded in this version. We can, for example, create our own schema and set it as the default schema for every XML created from that point on. It comes complete with a schema validator.
- NAnt integration.- NAnt has been integrated onto the IDE in a most intuitive manner: we can use the open source tool to build our solutions, customize it and so on.
- PInvoke integration.- Personally, this addin has touched my heart. Thanks to it we'll be able to handle our calls to Win32 or any other unmanaged code, without further problems. It's very similar to the old API editor included in the Visual Basic 6 IDE. Speaking of this, if you're interested in PInvoke and what can you do by invoking unmanaged code (in fact, everything) add to your bookmarks the following right now: PInvoke, the wiki specialized in this rather obscure and undocumented characteristic. Complete with examples, it's very, very good.
- SharpReport.- Yes! At long last somebody has taken the gauntlet: SharpDevelop will have its own addin to create reports, just like Crystal Reports .NET embedded in Visual Studio 2003. Let's hope their tool works better than the crap from Bussines Objects.
All these features can be previewed with some videos
the SharpDevelop developers have made avaliable to download from the site. When 1.1 goes from PR to stable, and all this addins are official, SharpDevelop would have taken another step (and a big one!) to establish itself as a serious and viable alternative to Microsoft and its Visual Studio, chiefly among all of us who can't afford a legal
version of VS.