An excellent story of quantum-ness.
You knew for a fact: this thing could execute an infinite loop in less than ten seconds.
via I don’t know, Timmy, being God is a big responsibility @ Things Of Interest.
An excellent story of quantum-ness.
You knew for a fact: this thing could execute an infinite loop in less than ten seconds.
via I don’t know, Timmy, being God is a big responsibility @ Things Of Interest.
In my previous job I spent roughly 4 years using Windows XP as my desktop (as that was the corporate rules at the time) with several FreeBSD boxes running as development servers. That was the norm. At that point I hadn’t had chance to use Ubuntu or any of the other Linux Gnome/KDE incarnations. I’d tried setting up a few desktops with KDE and Gnome on FreeBSD but it just didn’t seem right. Like a lot of other people, working on a laptop at home meant keeping the MS OS installed by the manufacturer, as Linux IMHO wasn’t working too well on laptops at that point.
At some point I came across Ubuntu 7.10 and tried it out on one of the spare development servers that I was rebuilding. It worked, mostly. For some reason it couldn’t find the right driver for the Dell onboard NIC, so I binned it. As I hadn’t paid too much attention to the Ubuntu site at that point it was only a few weeks before 8.04 came out. So I tried that on the same box. Excellent, it found everything on first install, and I was up and running in under and hour.
So now came the hard part of trying to move my development environment from XP to Ubuntu. Most things went ok. MY job was mostly ssh terminals and browser windows anyway. However the corporate monster reared it’s ugly head and told me that no way was I connecting Thunderbird to the Exchange server. I tried Evolution, as that had a plugin that connected to the web mail front end we have for Exchange. That mostly worked. A restart of Evolution every couple of hours to force it to reconnect wasn’t too much of an issue. It was either that or have the web front end open all the time, which again wasn’t a problem.
So things are going pretty well with the migration to Ubuntu at this point. Ah, but now we have the very useless, but cost-lots-of-money-so-management-would-never-ditch-it ticket system that only needs either a Windows client, or access to the web front end that only partly works under Firefox, and not at all in IE on Wine. And we have the newly purchased at high cost test management sytem, that only has a web front end, that doesn’t work at all under Firefox as it uses ActiveX for everything, and again doesn’t work at all under IE on Wine. So I keep the Windows desktop for a few things, and use Ubuntu for the rest.
As time rolls on I upgrade to Ubuntu 8.10, and 9.04, which both work great and add many new features, and look and perform better than their predecessors. And of course I’m doing pretty much everything on Ubuntu except for the things that needs IE/ActiveX.
But for some reason I’m drawn to wanting to move everything back to Windows, just so that I can have 1 desktop. I’ve tried the pretty much all of the Windows to Unix share-my-desktop-between them programs that there are. But I just want 1 desktop. Why doesn’t everything work on one?!
So fast forward to about 6 weeks or so ago. I started a new job back in September ’09, and luckily I’m working from home (or rather half of my garage converted into a ‘home office’). My employer buys me a new PC, which comes with Vista (yep Windows 7 was out by then, go figure). But I’m still trying to find the perfect environment for me. So about 6 weeks or so ago I backed everything up and installed Ubuntu 9.10. Again not paying attention it was only a short time until 10.04 was due out. But it worked great. I was very happy with everything. I’ve got my work email being picked up by GMail anyway, so that’s not an issue. Our live and development servers are al hosted at Rackspace, so it’s mostly ssh session and browser windows again. I’m so happy I even convert my laptop to Ubuntu too (by this time 10.04 is out and I’m on that on the laptop and upgraded the desktop as well). It’s all going so well.
But then….. a nagging doubt. I can’t seamlessly connect from the laptop with remote desktop (or one kind of another) to the desktop and get the screen to resize. I must point out at this point that previous to Ubuntu I’d been using logmein.com or Windows remote desktop to connect from the laptop to the desktop, both of which seem to handle automatic screen resizing with ease. So now I’m unhappy again. I can’t remote desktop without fighting with screen resizing. Add to that the desktop now is dual screened, and VNC looks like a right mess.
So 2 days ago I spend 2-3 hours backing up both my desktop and laptop, and reinstalling Vista on both. And now I’m pissed off that I’m back with Windows (which I don’t hate, but never been 100% keen on), and I’ve lost my built in ssh-ness and other command line tools which make Windows look awful from a developers perspective, or at least mine.
So I’m using Windows, on which developing my kind of code sucks. But I can’t really go back to Ubuntu without losing some of the remote connection goodies that Windows gives me. One other thing, is that I couldn’t ever get Ubuntu on my laptop to tether my Android phone, and I’ve tried dozens of different set ups. Windows, however, tethers my Android phone with the T-Mobile software it came with.
I’d love to go back to using Ubuntu, or frankly any other Linux distro, full time and stick with it. But there are just so many things that need fixing fo rme to do that. I know a lot of people will say, “well that’s the beauty of open source, you can fix it yourself”, but frankly I don’t have the time. I have a wife and 2 kids to feed. 1 son is autistic and needs a lot of care and supervision. My wife has arthritis and can’t always do the school runs. I work to feed my family, the same as a lot of people. I work through the day and evening to do my “day” job, because I split it around the school runs and helping with the kids. I’m not saying all this to make an excuse, but not everyone that wants to use open source software has the spare time to fix the things that they think need fixing.
The upshot of this long diatribe is that I’m not happy with my development environment. I never have been. I probably never will, because not everything that I want will be working on a Linux distro, and when it does, I guarantee I’ll want something else to work that Windows just does without too much hassle. But then I’m not happy with Windows either.
Somebody help!
Just a quick pointer to a very useful post about integrating git and svn, especially so that other team members can stay with svn while you get all the benefits of git. Git: how my life has improved since last month when I used SVN « No Relation To….
I’ve just come across this page from tlc-systems.com call Babbage – The language of the future. It’s very funny and definitely worth reading. Any coder with more than a few minutes experience with any language will undoubtedly be laughing by the end
Skorks has another fantastic article, this time explaining Closures – A Simple Explanation (Using Ruby). An example is worth a lot more than just a description, and Skorks makes it so easy in his usual funny and deft style.
A great article, that will be well worth the 2 minutes to read is: Before coding… Think! | Making Good Software. Thinking first is part of the agnostic coders toolkit, so don’t forget to do it!
Well it might be a good language if you’re coming from a .Net background. But for me coming from a Perl/Python/C background Cobra looks like the opposite of fun. The Simple Talk site has a post about Cobra, pointing out that it’s easier to read/code/understand than C#. Frankly I’ve never touched C#, or VB.Net or what ever all those languages are called these days. But if that’s a good example of Cobra, then <insert deity of choice> help the poor developer(s) that have to use either that or the .Net languages. If it takes that many lines of code to call a stored procedure then frankly there’s something very wrong with the language, and it’s should be shelved. And to claim in the first paragraph that it’s
so intuitive to use that it is almost like pseudocode
well frankly I think that’s a ridiculous statement. The example code in the post is not intuitive. For it to be intuitive someone that’s not well versed in the language should be able to read it at a quick glance, especially if you’re claiming that it’s almost pseudocode. Frankly the stored procedure example is confusing as hell. For that matter so are the other examples, but hey I’m not going to bash everything in the article. It’s nice to see effort being put into new languages, it really is. But surely at some point in the development of Cobra, someone must have looked at some code examples and said something along the lines of “Hey, this is crap, let’s bin it”? If not then there wasn’t much input from outside sources, which in itself leads to bad development. But that’s for another post…
There’s a great tutorial over at byte freeze explaining continuations extremely well. I’ll admit that it’s the first time that I’ve understood them properly. Congrats to PieSquared for a job well done.
Recently I’ve been making my way through the excellent book “Programming Erlang: Software for a Concurrent World” by Joe Armstrong. It’s a fabulous book, with great insight into the language, and gives excellent code examples. I really can’t fault the style or the contents.
However, this post isn’t about the book per se, but about my understanding of it’s contents. Initially I read the book from cover to cover. Normally I don’t have a problem understanding technical books or manuals, as I’m sure most technical people don’t. I’ve been reading this kind of things for nearly 20 years, so it’s nothing new. But having got to the end of the book I was under the impression that some of my initial thoughts about Erlang had been misguided. Some of the concepts and ideas I’d been led to believe about the language, from reading other sources, were wrong. Or so I thought.
Having taken a break from the book for a few days to try some Erlang code of my own, and to play with CouchDB, and MNesia, I had cause to re-read some of the chapters, particularly the OTP related ones. When I read these chapters the first time I really believed that I understood the code examples and the detailed descriptions, but that one or two things were not quite as I’d expected. My second reading however, brought much greater clarity and I now know that my “understanding” the first time through was partially incorrect. I now understand the descriptions, the code, the whole lot, and am successfully coding my own stuff without having to refer to the docs as much. And I can now see that the features that I previously thought were lacking are indeed there, and somehow ever more powerful that I’d been led to believe.
Whether it was due to me trying code after reading the book the first time, or the fact that I left it for a few days for the knowledge to sink in, or some other ethereal reason , I really can’t say. However I am certain that without reading those chapters a second time my understanding and appreciation of the language would not have been as complete as it is now.
Of course this doesn’t just apply to Erlang, it’s just a coincidence that I was reading that particular book and trying Erlang out. But it does lead me to wonder what other parts of my knowledge are lacking because I haven’t read something enough times…
I’d advise you all to take a quick look at DM’s Esoteric Programming Languages – Petrovich. I’m not sure if Petrovich is a real language/OS or not, but it’s funny either way