Code is Ethics: Part I

Ethics and Morals: Timeless and Universal?It's long past time that there was a discussion on Ethics within the context of software development, particularly since it is no longer the isolated area of expertise that it was prior to, and in the early stages of, the Internet.

Back in 1999, Lawrence Lessig wrote a great book that was revised in 2006: 'Code: And Other Laws of Cyberspace, Version 2.0'. Within the covers, the point was made that code is, in and of itself, a regulatory instrument of the Internet. If you're unfamiliar with it, you can read Lessig's article on it in Harvard Magazine.

Of course, code does regulate how things are done - more so than most people would like to think. Examples of it include what posts you see on Facebook and your search results on Google when you log in (you can log out to bypass it). What you see is 'regulated' - effectively censoring under the guise of giving you what you want. I'm sure that there's a semantic difference someone would wish to argue, but by determining what should be viewed by people you do have de facto censorship. 

As I have said and written many times in the past, Law is supposed to be built on Ethics. What ethics are involved in software development? To people who have taught themselves or who went through some short course, the concept of ethics in Software Development might be alien - but there are ethics. In fact, the ACM has published and maintained a Software Engineering Code of Ethics and Professional Practice - and for those who understand the underlying philosophies of Free Software and Open Source. 

So there are ethical standards when it comes to software development. They just got more complicated because software itself got more complicated as the personal computer era became the Internet era.

Windows: SFTP: Remember Filezilla

Ftp. Next will be httpAn email from a former student at The University of the West Indies School of Continuing Studies made me chuckle, since they were having the same problem I recently had. My Linux machine was down, so I was working from Windows 7 (yeah, I know). 

Myself and an IT Manager were going crazy trying to figure out why, on a particular server, we could log in to CPanel and change files one at a time, but when we tried to automate using SFTP with WinSCP, we were getting 'permission denied' errors. As far as we could tell, there was nothing wrong with the server itself. The issue was a Permission Denied (3) error, and as you can tell from the link, it's been reported off and on for about 8 years.

<InstructorHat>When you are using a tool and getting unexpected results, try a different tool</InstructorHat>

I logged in with trusty Filezilla and had no issues. Try it if you're in the suck - or find a Linux/OS X machine and try it. The issue, which apparently isn't that common (or I'm sure they would have fixed it. WinSCP is a great tool that normally works fine), shouldn't be a setback during a project. 

Of course, when downloading Filezilla, make sure you don't get one of the Adware bundles of it. It's unfortunate that to make a living developers sometimes resort to adware. There's a bigger problem in Free Software/Open Source where many don't donate for the software they do use, which is a philosophical and economical debate I've seen both sides of and I'm sick of. We all do what we must to eat. 

Rant: The AMD64 Distro Download.

wotd001cAs I mentioned here, I didn't use Gentoo because of the AMD64 in the name - and the fact that, verily, the system I installed on was not an AMD. Through mentioning it on Farcebook and getting some feedback, I found out that I apparently could have used the AMD64 Gentoo.

How dumb is that? How dumb is it to name a 64 bit architecture with a brand name that implies a specific processor? Now you can say that I should have known because, with 24 hours in the day, I should be getting notified about stuff like that in Linux distros. I take full responsibility for going out in the sunlight, taking my dog for a walk and otherwise not staring at a computer screen.

But really, whoever made that decision deserves some ire. It could easily have been simply named a 64 bit version rather than an AMD 64 bit version. Implicitly, a specific processor brand mentioned in any build means that it works with that brand of processor. This isn't something I made up. This is the way it has always worked, and while I like progress...

This change was not progress.

Name the distros right, people. If it works with any 64 bit processor, say it's 64 bit. Period. If it's for AMD or Intel alone, put that in the name. But don't just start fumbling around with names.