Just a reminder to anybody who is interested, this Monday is the second ProjectDrinks meetup. It will be at 6:30pm at Trois-Brasseurs, at the corner of St. Catherine and Crescent, downtown Montreal.
Last time people had some trouble finding the table, so it will be the one with a laptop on it.
I was contacted last time about Notman House, which is supposedly a meeting place for web developers and tech entrepreneurs. It looks kinda neat, although the idea of the house seems to be very startup-oriented, which isn't quite in the same direction that I'd like to see ProjectDrinks go. I'll check it out at some point once I'm done exams and let people know how it goes.
Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts
Apr 23, 2011
Mar 23, 2011
ProjectDrinks
Way back in September I tried to get together a group of programmers around Montreal to hang out, have drinks, and talk about various projects that we might be working on at the time. Unfortunately I only did the event once so it didn't really pick up any steam and ended up fizzling out.
I've decided to give it another go, but this time I'm giving it a name and a website: ProjectDrinks, largely inspired by StartupDrinks but without the startup aspect - these are projects and other fun little apps that may or may not have any commercial value, they're purely for enjoyment.
The meetups will be the last Monday of every month starting next Monday (March 28, 2011) at 6:30pm. The location will be Trois-Brasseurs at the corner of St. Catherine and Crescent in downtown Montreal, chosen largely because it's the first place I found that has both beer and wireless - at least according to Île sans fil.
I'll be heading out there with my laptop on Monday evening, having a few beers, and fiddle with a little project I've been messing around with. If anybody wants to come out and chat about any projects you might have on the go feel free to head on down!
I've decided to give it another go, but this time I'm giving it a name and a website: ProjectDrinks, largely inspired by StartupDrinks but without the startup aspect - these are projects and other fun little apps that may or may not have any commercial value, they're purely for enjoyment.
The meetups will be the last Monday of every month starting next Monday (March 28, 2011) at 6:30pm. The location will be Trois-Brasseurs at the corner of St. Catherine and Crescent in downtown Montreal, chosen largely because it's the first place I found that has both beer and wireless - at least according to Île sans fil.
I'll be heading out there with my laptop on Monday evening, having a few beers, and fiddle with a little project I've been messing around with. If anybody wants to come out and chat about any projects you might have on the go feel free to head on down!
Mar 15, 2011
Impressed
This canvas test runs at the same speed on my machine with IE9 and with Firefox 3.6. The difference? The IE9 one was running in VirtualBox.
I always thought it would be a strange day when I was congratulating Internet Explorer, but today I gotta say, not bad! Maybe I should try looking at various other canvas examples to see if this trend is not just confined to this one example.
I always thought it would be a strange day when I was congratulating Internet Explorer, but today I gotta say, not bad! Maybe I should try looking at various other canvas examples to see if this trend is not just confined to this one example.
Dec 3, 2010
Getting Your Files
I suppose I'm talking to the wrong group of people here, but I decided to write a quick post about how to access anybody's files without needing their username/password for their computer.
It's quite simple:
1) Put in an Ubuntu LiveCD/LiveUSB
2) Boot off it
3) Access their files by going to Places -> X GB/TB Volume
This doesn't work if they have any sort of encryption on their drives or a BIOS password, but otherwise you can do whatever you feel like! So if you have a laptop or a machine that is easily reachable by random people, then you should probably secure your files from something like this if there are things on there that you don't really want people getting to.
It's quite simple:
1) Put in an Ubuntu LiveCD/LiveUSB
2) Boot off it
3) Access their files by going to Places -> X GB/TB Volume
This doesn't work if they have any sort of encryption on their drives or a BIOS password, but otherwise you can do whatever you feel like! So if you have a laptop or a machine that is easily reachable by random people, then you should probably secure your files from something like this if there are things on there that you don't really want people getting to.
Aug 23, 2010
I Have Sold My Soul
I feel I must publicly admit this here to you all. I have purchase some Apple products. I have an interest in making apps for the iPad, so I went out and bought one. However it turned out to be fairly useless for development on its own, an actual Mac is necessary. So I picked up a Mac Mini off eBay for dirt cheap and have started working with that.
So what are my thoughts on it? Well, my first thoughts are that it is a pain in the ass. It isn't the interface really (learning a new OS is always tricky, so I'm not really factoring that into my considerations). What I'm talking about is Apple itself. The system is not that old, it is running Tiger, but it is a bit annoying to get things from Apple for it. They seem adamant on trying to get you to purchase Snow Leopard at every turn (which I ended up having to do anyway, since XCode with the correct iOS SDK does not work with Tiger). At least with Windows stuff still works on XP (I can't believe I'm sticking up for Microsoft) without having Windows 7 being stuffed down your throat. However to even things out, Mac software upgrades are far cheaper than Windows ones, so it doesn't hurt that much paying for it if I am considering it as a potential business investment.
Anyway, it might be that I am just not used to the system yet, but I still haven't seen what all the Mac fanboys are raving about. The only thing that I do know at this point is that Apple has bothered me enough that I have absolutely zero desire to purchase any more of their products - although I may end up doing it anyway, depending on how well this whole iPad app thing goes.
What about my Touch Book? Well, I wasn't especially enamoured with it. It was a bit too sluggish for the things I wanted to do and since I bought the iPad I really had no more use for it. I hope the new owner is happy and may it serve him well.
Anyway you can expect a few Objective-C related posts coming up here in the near future.
So what are my thoughts on it? Well, my first thoughts are that it is a pain in the ass. It isn't the interface really (learning a new OS is always tricky, so I'm not really factoring that into my considerations). What I'm talking about is Apple itself. The system is not that old, it is running Tiger, but it is a bit annoying to get things from Apple for it. They seem adamant on trying to get you to purchase Snow Leopard at every turn (which I ended up having to do anyway, since XCode with the correct iOS SDK does not work with Tiger). At least with Windows stuff still works on XP (I can't believe I'm sticking up for Microsoft) without having Windows 7 being stuffed down your throat. However to even things out, Mac software upgrades are far cheaper than Windows ones, so it doesn't hurt that much paying for it if I am considering it as a potential business investment.
Anyway, it might be that I am just not used to the system yet, but I still haven't seen what all the Mac fanboys are raving about. The only thing that I do know at this point is that Apple has bothered me enough that I have absolutely zero desire to purchase any more of their products - although I may end up doing it anyway, depending on how well this whole iPad app thing goes.
What about my Touch Book? Well, I wasn't especially enamoured with it. It was a bit too sluggish for the things I wanted to do and since I bought the iPad I really had no more use for it. I hope the new owner is happy and may it serve him well.
Anyway you can expect a few Objective-C related posts coming up here in the near future.
May 12, 2010
Why You Should or Shouldn't Use an Operating System
You should use Windows if:
- you respond more quickly to your WoW handle than to your given name
- you need to prove your 1337 h4xx0r skillz, yet can't figure out how to use Linux
- you want to use an operating system that doesn't look like it was designed by:
a) Fisher-Price, or
b) HAL 9000
- you work in a place where the manager buys the product from the salesman with the shiniest hair (or in the case of Steve Ballmer, the shiniest head)
You should not use Windows if:
- you compulsively click on every link you get on MSN or Facebook
- you ever use your credit card or something confidential online
- you want your computer to work right for over 6 months at a time without critical system files being somehow corrupted
You should use Mac if:
- you think a hard drive is something that involves at least 3 hours in a car
- your favourite letter is i, or your favourite colour is white
- you spend most of your time in a coffee shop
You should not use Mac if:
- you have a soul
- you want other people to like you after you talk to them about computers
- you're poor, like me
You should use Linux if:
- your first or second language is Klingon
- the idea of installing an operating system on a pacemaker gets you excited
- you want to stick it to the man
You should not use Linux if:
- you have friends
- you want your computer to work, period
- you think hexadecimal is a character from ReBoot
- you respond more quickly to your WoW handle than to your given name
- you need to prove your 1337 h4xx0r skillz, yet can't figure out how to use Linux
- you want to use an operating system that doesn't look like it was designed by:
a) Fisher-Price, or
b) HAL 9000
- you work in a place where the manager buys the product from the salesman with the shiniest hair (or in the case of Steve Ballmer, the shiniest head)
You should not use Windows if:
- you compulsively click on every link you get on MSN or Facebook
- you ever use your credit card or something confidential online
- you want your computer to work right for over 6 months at a time without critical system files being somehow corrupted
You should use Mac if:
- you think a hard drive is something that involves at least 3 hours in a car
- your favourite letter is i, or your favourite colour is white
- you spend most of your time in a coffee shop
You should not use Mac if:
- you have a soul
- you want other people to like you after you talk to them about computers
- you're poor, like me
You should use Linux if:
- your first or second language is Klingon
- the idea of installing an operating system on a pacemaker gets you excited
- you want to stick it to the man
You should not use Linux if:
- you have friends
- you want your computer to work, period
- you think hexadecimal is a character from ReBoot
May 10, 2010
Piracy Boosts Game Sales? Yeah right...
Some pirates in the Canadian Pirate Party are getting all excited about a certain paper, part of which says that file-sharers tend to buy more games more often than non-file-sharers.
First off, let's address some problems with the paper. The paper says that 61% of file-sharers have bought games in the last 12 months, vs. 57% of non-file-sharers. They say that this is evidence that file-sharers buy games more often. I say that there isn't enough information here to say who buys games more often. They don't specify any type of variance in the paper, so you can't actually say if the difference between these two figures is actually significant (this is an example of a difference of means).
The other numbers are 4.2 vs. 2.7, which represents the average number of games bought over the last year by file-sharers and non-file-sharers respectively. Again there is no mention of a variance measure, so you can't really take this difference seriously.
Next, they claim that only 53% of their sample answered questions about games. If their sample was random before, it's probably not anymore! This is an example of a self-selection bias. It could be that all the people who pirate games and never buy them chose not to answer the question, or it could be that people who always buy them and never pirate also chose not to answer (this one I think is a bit more unlikely, but not impossible). Basically you no longer have a guarantee that the sample that actually answered the questions about games is a random sample.
The next problem is with addressing the interpretation of the paper. Some people seem to think that this result shows that piracy causes more sales, and overall is a good thing for the gaming industry. This is a definite possibility, and the paper addresses this and claims it is due to something called the sampling effect - an example of this effect is trying a sample at Costco, you trying the good might increase your demand for it. I completely agree with this, it's entirely true that piracy can increase the demand for a game because they get a chance to try the game before they buy it - I've personally experienced this, I pirated Half-Life 2 and Oblivion and then later bought them because they are awesome games.
However the effect can go the opposite way. A lot of games are only fun the first time you play them. What might happen is that the person will pirate the game, play it through, and then never want to play it again. They may have loved the game, but don't really want to shell out the cash to buy it and not play it anymore. An example for me was Spore - it was kinda fun the first time around, but after I realized that the game wasn't really interesting for very long I had no incentive to buy it (let's ignore DRM-related issues for the moment too). In this case I might also say piracy would be a good thing, since it gives game creators an incentive to make games that don't suck.
It is also possible that there is no causal effect at all between these two. It could be that those hardcore gamers out there who buy a lot of games also pirate a lot of games; while the casual gamer who maybe buys a game once or twice a year has no idea that he can pirate a game or has no desire to "break the law" for something he doesn't really care about.
Anyway none of these points prove the paper wrong, however they show that you shouldn't really trust the results. If I saw several more studies come up that actually show the data that points to the same result then I might be more convinced, but for now I'm very skeptical of whether or not this paper is valid.
First off, let's address some problems with the paper. The paper says that 61% of file-sharers have bought games in the last 12 months, vs. 57% of non-file-sharers. They say that this is evidence that file-sharers buy games more often. I say that there isn't enough information here to say who buys games more often. They don't specify any type of variance in the paper, so you can't actually say if the difference between these two figures is actually significant (this is an example of a difference of means).
The other numbers are 4.2 vs. 2.7, which represents the average number of games bought over the last year by file-sharers and non-file-sharers respectively. Again there is no mention of a variance measure, so you can't really take this difference seriously.
Next, they claim that only 53% of their sample answered questions about games. If their sample was random before, it's probably not anymore! This is an example of a self-selection bias. It could be that all the people who pirate games and never buy them chose not to answer the question, or it could be that people who always buy them and never pirate also chose not to answer (this one I think is a bit more unlikely, but not impossible). Basically you no longer have a guarantee that the sample that actually answered the questions about games is a random sample.
The next problem is with addressing the interpretation of the paper. Some people seem to think that this result shows that piracy causes more sales, and overall is a good thing for the gaming industry. This is a definite possibility, and the paper addresses this and claims it is due to something called the sampling effect - an example of this effect is trying a sample at Costco, you trying the good might increase your demand for it. I completely agree with this, it's entirely true that piracy can increase the demand for a game because they get a chance to try the game before they buy it - I've personally experienced this, I pirated Half-Life 2 and Oblivion and then later bought them because they are awesome games.
However the effect can go the opposite way. A lot of games are only fun the first time you play them. What might happen is that the person will pirate the game, play it through, and then never want to play it again. They may have loved the game, but don't really want to shell out the cash to buy it and not play it anymore. An example for me was Spore - it was kinda fun the first time around, but after I realized that the game wasn't really interesting for very long I had no incentive to buy it (let's ignore DRM-related issues for the moment too). In this case I might also say piracy would be a good thing, since it gives game creators an incentive to make games that don't suck.
It is also possible that there is no causal effect at all between these two. It could be that those hardcore gamers out there who buy a lot of games also pirate a lot of games; while the casual gamer who maybe buys a game once or twice a year has no idea that he can pirate a game or has no desire to "break the law" for something he doesn't really care about.
Anyway none of these points prove the paper wrong, however they show that you shouldn't really trust the results. If I saw several more studies come up that actually show the data that points to the same result then I might be more convinced, but for now I'm very skeptical of whether or not this paper is valid.
Jan 28, 2010
The Touch Book
I figured with all this hubbub about the iPad, I'll give my bit overdue comment about the Touch Book, which is a netbook/tablet from a small company called Always Innovating.
I've had this little gadget for a few weeks now, although I ordered it last June. Which is fine, because I haven't had a strong need for it until now (convenient the way things happen!) It's a pretty good deal, although for netbooks it's a bit on the steep range. It starts at $399 if you buy the complete deal, but you're going to end up paying about $460-470 after exchange rates, shipping and customs. Not a problem though, we'd be paying that much in taxes anyway if we went out to Future Shop or Best Buy.
What are the good aspects?
I've had this little gadget for a few weeks now, although I ordered it last June. Which is fine, because I haven't had a strong need for it until now (convenient the way things happen!) It's a pretty good deal, although for netbooks it's a bit on the steep range. It starts at $399 if you buy the complete deal, but you're going to end up paying about $460-470 after exchange rates, shipping and customs. Not a problem though, we'd be paying that much in taxes anyway if we went out to Future Shop or Best Buy.
What are the good aspects?
- Tablet Mode - The screen comes off. Every part of the computer is actually inside the screen, the only parts inside the lower half are the keyboard, touch pad, and an extra battery (which means if you get the keyboard too, you'll have double the battery life). After the screen is off, it becomes a touch screen and you do everything you normally would with the machine - read an eBook, write notes, etc. It comes with software that is great for this thing; the program called "Note Taker" by default gives you a ruled piece of paper that you can draw on to your heart's content, and it even opens up PDFs for you to draw on - keep in mind it does not copy the PDF (which is a good thing, since it won't alter the PDF) so you can't delete the PDF.
Anyway, when you're in tablet mode it will automatically pop up an onscreen keyboard for you to use - Battery Life - You can get about 7 hours of actually usage out of it before needing a recharge. Why/how? It uses an ARM CPU, which has a lower power consumption than Intel/AMD CPUs. This also means that you can't run anything x86 on it, so don't think about using Windows. You're limited to anything that runs on an ARM (the built-in Touch Book OS is pretty good, and Ubuntu has an ARM port so we don't really have a problem here!)
- Solid State - the hard drive for this is actually an SD card, so there's no hard drive noise. Combine this with the fact that - as far as I can tell - there are no fans in this thing, so there isn't really any noise that comes from it.
- Tinkerable - the back panel of the screen comes off, revealing the SD card slot and several internal USB ports. This means that if you have a USB drive that you want to keep in the computer for a while but don't want it poking out the side, you can just stick it inside and it is nice and out of the way.
- It's a small company - as an economist-in-training, I naturally dislike monopolies and small oligopolies. It is good to see a small company marketing a product so that we don't always have to go with Apple or HP or whatever for a laptop.
- Software - while I do like Linux, I've been a bit spoiled by how bug-free and smooth things go in Ubuntu. You can put Ubuntu onto this machine, although I think I'd rather keep the niftier features that come with the Touch Book OS. There are a few UI problems and other bugs, like for example when I double-click the title bar of a window, the window decorator seems to crash. All my windows are still there open, they just don't have title bars or borders (UPDATE: This bug has been fixed in the latest version, I will try and update). Another problem is that the only way to check free space (that I can find) is through the 'df' command line utility, since at the bottom of the file browser it says "check the Storage Control Panel", which unfortunately does not exist - or if it does, I can't find it. Finally, to upgrade the thing the upgrader that it comes with doesn't work, so you need to grab the image of the new OS off their website and copy it to the flash drive. I'm not sure how to do that yet (it will be my project for the next little while) but it definitely won't be happening on another computer since the only things in my house that can read an SD card other than this laptop are my printer and my camera.
- A bit sluggish - I know that it is a netbook and it's not supposed to be blazing fast, but one of the main things I'd like to use this for is an eBook reader and when it takes 20-30 seconds to go to the next page of an 11MB PDF it interrupts the flow a bit (good thing I haven't tried Russell & Norvig yet, that thing clocks in at 36MB!).
- Tablet UI - this is not in the special UI they have, but for the regular one in tablet mode. While the screen is quite precise when you're pressing in the centre of the screen, you can't quite reach the edge. This is really bad for scroll bars and close buttons, so when reading a PDF that doesn't fit on the page you can't actually read the bottom of the page, because you can't scroll down. It would be nice if when you dragged your finger along the screen it would scroll it, but the only app that really does that is Midori (the browser that comes with it) and the Note Taker - although now that I think about it I can probably just try opening the PDF in the Note Taker and just not writing on it...
- A bit flimsy - one issue with the flap on the cover is that it doesn't fit back on perfectly and you can actually fit your fingernail underneath and lift it up without unlocking it. I think this is a disaster waiting to happen, a piece of paper slips in there or something gets caught and pulls up on the flap, etc. Another is that it doesn't quite stay closed after you close it, if you bump something the cover sorta bounces up and down. A simple fix would be to put some kind of latch there, although I'm not sure how that would fit in with the tablet idea so maybe it isn't a great fix.
- Not quite as advertised - I think that the pictures and statements on the site aren't quite as accurate as they seem. As I mentioned before, the battery life is definitely not 10 hours, despite them plastering that on their site.
Second, it is not always on, it turns on and off like a regular computer. You can put it into standby by pushing the power button and it will be instant-on/off, but that drains the battery life big-time. If you used this like a phone you would be recharging the battery on a daily basis.
Third, although they say 7 USB ports, 2 of those are mini-USB ports, and while there are three internal regular USB ports two of them are already in use by what I am guessing to be the wireless adapter and the Bluetooth adapter. It's not a huge issue, I just think they're hiding a bit of the details from the front page.
Fourth, the screen does not bend all the way back and around (or maybe it does and mine just made bad noises when I tried which scared me), instead you take the screen off, turn it around, and put it back on.
Finally, I wish they'd say on the front page that it is still beta software - it might not be officially beta software, but it certainly feels like it.
Jan 21, 2010
CUSEC: Day 1
Today was the first day of CUSEC 2010, and despite being tired and hopped up on caffeine all day (this entry might sound really odd, and is susceptible to slight changes when I am more coherent) it was an excellent start - in fact the day hasn't finished yet, there are still drinks to be had this evening!
The speakers today were:
The speakers today were:
- Matt Knox - You'd probably know him better as that guy who wrote adware that was posted on Slashdot a while back, and he'll probably be known as that for the rest of his programming career ;) The talk was quite interesting. He began talking about his adware career and how he basically was slowly talked into doing shadier and shadier things for the company. The most interesting part in this section was the various security exploits in Windows he spoke about (and they scared the shit out of me, it really rationalizes my decision to not use Windows anymore). One of them is CreateRemoteThreadEx, which to paraphrase Matt you say, "hey, process over there, please execute this arbitrary code!" So basically you don't even need your process running anymore to have your code still executing. The second one (that I can remember) was that while Windows stores strings internally as 16-bit unicode strings, the Win32 API uses null-terminated ASCII strings. So if you have a null byte in say, a filename or a registry entry, the programs written using the Win32 API can see the file/registry entry but can't actually do anything about it. I don't know if this is true or not, I'd have to do some research, but that is how I remember it.
The talk then went to explain the Milgram experiment, which I will leave to the reader to explore further. He explained that basically these tests show that about 70% of people will do evil if they are made to by an authority figure, and described this as basically a remote security exploit in 70% of the installed base. But, he wondered, if people have security exploits that cause them to do evil, is it possible that people have security exploits to make them do good? It was an interesting question, but what makes you (or perhaps only me) wonder more is that if the people knew that they had an "exploit" that caused them to do good, would the exploit still work? So yes, it was an interesting moral speech, and Matt is an entertaining speaker so when they post the videos (if ever) I recommend checking it out. - Pete Forde (music warning) from Unspace was one of the corporate speakers. Unfortunately for these speakers, there are two going on at the same time so I can only see one of them speak, but oh well. Pete spoke about his life, risk-taking, doing new things, etc. I really enjoyed the talk, even though I wasn't paying attention for half of it because when he started talking about side projects I'd start thinking about my side projects and forget that I was in a conference. I enjoyed the talk and hope to get a copy of the notes since there was a lot of suggestions for books and blog articles that I'd like to read but couldn't remember.
- Sergei Savchenko from EA (I don't know of a link to put for his stuff) - he gave a talk about video game programming, focusing on network topologies and various memory management techniques. It was pretty neat since I'm interested in that kind of thing, however I felt like it was a bit more of a lecture than a conference presentation.
- Reg Braithwaite (slides)- it seemed they saved the best for last. While I did like all the presentations, this one was packed full of insight in Reg's style of taking your brain out and prodding at it to figure out what makes it work and how to make it better. I feel like that once they publish the recording of this one I could download it, cut it up into 10 minute slices, watch each slice individually and after watching each slice get a class of wine, sit down in my thinking chair (yes, I do have a thinking chair) and dig down into what he is saying and determine if he's "a guy who smoked too much weed in the 70's" or a guy with some really good advice to give. He started off with a Ruby example and how to use his extension methods to fix the problem. However he said that the important thing about the example was not the extension methods themselves, but the fact that they were necessary in the first place. Basically if we're having to put dirty patches onto things in order to make them work, it is a pretty good indication that those things are broken. Another point was that if you listen to the single responsibility principle, then by using extension methods or monkey-patching then you're breaking that principle; however by breaking that principle and successfully creating good software with it, you're showing that perhaps it is not you that is the problem, but that the single responsibility principle itself is broken. Or to be more general, how much of what is considered "good practice" isn't really good practice, but rather holding us back from creating something better? It makes you think, what else are we taking for granted? Not only in software, but in the rest of our lives? The issue is even once we decide that there are things that we can do better, how do we find those things?
There was a lot more, however I will wait until the video comes out before I talk about it in any more detail (all that coffee is having an effect on my memory).
Jan 7, 2010
Nearly Free Speech
I thought I'd give out a little thanks to a company called NearlyFreeSpeech.NET, which is a server hosting company with a rather unique model for their business. Most hosting companies will give you some space for a fixed amount per month, some even go as cheap as $5/month (CAD) - I'd provide a link here but I've forgotten who it was.
I like these guys because you only pay for the bandwidth you use. You put a certain amount of money onto your account, and then as your site(s) use bandwidth, they bill a few cents per day. You have to pay extra for dynamic sites and for a MySQL instance, but it's something like an extra 3 cents per day, which is like a dollar a month.
You can then easily set up extra sites and tie them to your same billing account. If you end up making a lot of small sites, this type of thing is really handy!
One catch though: they don't support anything that requires a persistent process other than the web server and database. So no Rails, unfortunately. Also they don't support mod_python, mod_ruby, or a few other things. Which kinda sucks, but oh well.
So if you're needing a small hosting company, maybe give these guys a try and see if you like them!
I like these guys because you only pay for the bandwidth you use. You put a certain amount of money onto your account, and then as your site(s) use bandwidth, they bill a few cents per day. You have to pay extra for dynamic sites and for a MySQL instance, but it's something like an extra 3 cents per day, which is like a dollar a month.
You can then easily set up extra sites and tie them to your same billing account. If you end up making a lot of small sites, this type of thing is really handy!
One catch though: they don't support anything that requires a persistent process other than the web server and database. So no Rails, unfortunately. Also they don't support mod_python, mod_ruby, or a few other things. Which kinda sucks, but oh well.
So if you're needing a small hosting company, maybe give these guys a try and see if you like them!
Dec 1, 2009
CUSEC 2010
I'm fairly certain that anybody actually reading this blog and is able to go to this is already planning on going, but in the odd case that you are not I would highly recommend you check out CUSEC 2010 if you are at all interested in software development. I've been going for the last few years and it has been quite interesting each time. They've always had some great speakers including Tim Bray, Richard Stallman, Joey Devilla and Zed Shaw who usually give quite informative and inspiring talks.
This year the lineup is equally interesting, with folks like Reg Braithwaite and Matt Knox (guy who wrote some adware in Scheme, read article here).
So if you're interested in this kind of thing, are within reasonable travel distance from Montreal, and can handle the Canadian winter, feel free to come on out this January. The tickets are only $60 for students or $150 for non-students, which is ridiculously cheap when it comes to conferences. Plus Montreal is pretty sweet, so you'd definitely be having a good time.
This year the lineup is equally interesting, with folks like Reg Braithwaite and Matt Knox (guy who wrote some adware in Scheme, read article here).
So if you're interested in this kind of thing, are within reasonable travel distance from Montreal, and can handle the Canadian winter, feel free to come on out this January. The tickets are only $60 for students or $150 for non-students, which is ridiculously cheap when it comes to conferences. Plus Montreal is pretty sweet, so you'd definitely be having a good time.
Jul 30, 2009
Gmail password recovery
After reading this post on password recovery, it turns out that if you don't log into your secondary email address, it could expire. This is pretty obvious, however we don't really think about this very often. It also poses a security risk, since if say your old account expires, but someone else comes along and registers it, they can do a password reset on your current email account. And if they control your current email account, they pretty much control your online identity.
So if you're using Gmail, maybe it is a good idea to update your alternate email, and make sure that you can still log into it. It turns out that my alternate email was my Bishop's email, which is no longer available. The instructions for updating your alternate email are here: http://mail.google.com/support/bin/answer.py?hl=en&answer=6566
One thing I noticed is you can put your phone number in to SMS your password reset code to you. Does anybody know if this is a security risk or not?
So if you're using Gmail, maybe it is a good idea to update your alternate email, and make sure that you can still log into it. It turns out that my alternate email was my Bishop's email, which is no longer available. The instructions for updating your alternate email are here: http://mail.google.com/support/bin/answer.py?hl=en&answer=6566
One thing I noticed is you can put your phone number in to SMS your password reset code to you. Does anybody know if this is a security risk or not?
Jul 12, 2009
The Value of Twitter
A while back I wrote a post about Twitter and how I didn't really like it. This was mainly from a personal perspective, where it was just me and my friends on Twitter and people would just tweet about random stuff.
These days however I've been using Twitter as an advertising tool for the Pirate Party of Canada and it is really working well. I tweet about a meeting or an announcement, and people retweet it, and the news gets spread really quickly. Compare this to Facebook (well Facebook now has a more Twitter-esque model on the front-page but we don't really have a Pirate Party page on the site other than the group) where you can't really broadcast a message easily to lot's of followers. Well, you can send a message to all the people in a group, but there are a lot of people that the message doesn't apply to and it's probably annoying for some people in say, Vancouver to always be receiving messages like "there's a meetup in Saint John, NB". Whereas on Twitter you can just ignore the tweet.
So in summary, Twitter is a pretty good communication tool for a one-to-many broadcast. In case you hadn't figured that one out already :)
These days however I've been using Twitter as an advertising tool for the Pirate Party of Canada and it is really working well. I tweet about a meeting or an announcement, and people retweet it, and the news gets spread really quickly. Compare this to Facebook (well Facebook now has a more Twitter-esque model on the front-page but we don't really have a Pirate Party page on the site other than the group) where you can't really broadcast a message easily to lot's of followers. Well, you can send a message to all the people in a group, but there are a lot of people that the message doesn't apply to and it's probably annoying for some people in say, Vancouver to always be receiving messages like "there's a meetup in Saint John, NB". Whereas on Twitter you can just ignore the tweet.
So in summary, Twitter is a pretty good communication tool for a one-to-many broadcast. In case you hadn't figured that one out already :)
Jun 11, 2009
Actors and Distributed Computing
During my last post I spaced a fair bit and forgot to include a very important part about actors. I will now dedicate a whole post to that important part.
There are two requirements in an actor model: there is a way for an actor to reference another actor, and there is a way for the actor to send a message to that other actor. In a typical sequential OO program, this is done using instruction pointers and memory addresses and all that jazz. While it can also be done this way in an actor model, it is not restricted to this. For example, the way of referencing an actor can be done through the magical thing known as an IP address, and the way of calling an actor could be to send an HTTP request to that IP address. So in effect, many of us have already used the actor model without even knowing it!
The most important part of what I'm trying to say is that with an actor model when given two actors, these two actors may or may not be executing on the same machine.
An interesting thing is that this starts breaking down the definition of "program". A program can consist of several actors running across multiple machines within the same code-base, or can consist of several programs running across multiple machines and communicating with one another. Where does one draw the line? I can assume the Internet will not be referred to as a program, although technically it seems to follow the actor pattern.
There are two requirements in an actor model: there is a way for an actor to reference another actor, and there is a way for the actor to send a message to that other actor. In a typical sequential OO program, this is done using instruction pointers and memory addresses and all that jazz. While it can also be done this way in an actor model, it is not restricted to this. For example, the way of referencing an actor can be done through the magical thing known as an IP address, and the way of calling an actor could be to send an HTTP request to that IP address. So in effect, many of us have already used the actor model without even knowing it!
The most important part of what I'm trying to say is that with an actor model when given two actors, these two actors may or may not be executing on the same machine.
An interesting thing is that this starts breaking down the definition of "program". A program can consist of several actors running across multiple machines within the same code-base, or can consist of several programs running across multiple machines and communicating with one another. Where does one draw the line? I can assume the Internet will not be referred to as a program, although technically it seems to follow the actor pattern.
Jun 10, 2009
Actors
Concurrency is an interesting topic these days. Actually, it has been an interesting topic for a long time. Yet it is strange that many of us still only know of one way to write a concurrent program: using threads. This is not a bad approach - in fact it is the approach that seems to give the most control over how a program executes because it is close to the machine.
There are other models of concurrency that you can use. Being the ignorant boor that I am, I really only know about the actor model, however if you have the interest you can read about others here. I am not going to talk about those today, I will be telling you about actors.
While some may disagree, the main idea behind object-oriented programming is that there are objects which send messages to one another - in most OO languages, this involves calling the other objects' methods. Things like inheritance and encapsulation and all that are secondary - although no less important.
The actor model is the same thing. There are actors (instead of objects) which send messages to one another. The difference between actors and objects is that every actor is always running, and when it sends a message it does not wait for the message recipient to finish processing before it continues to execute. Let's illustrate this with an example:
With actors however, foo will have finished long before bar does. Why? Because after foo makes the call to bar, it just continues on executing in parallel with bar. Pretty neat eh?
That's pretty much all there is to actors. You can try playing around with them yourself by trying out Scala which has built-in support for actors and is not too far away from Java, or you can take a deeper plunge and try out Erlang. Unfortunately I do not have much experience with either language, in fact my experience with actors comes from a research project in university I did using a C++ library for actors. You can probably find libraries that implement the actor model for most modern languages, if you're not interested in learning a new language.
There are other models of concurrency that you can use. Being the ignorant boor that I am, I really only know about the actor model, however if you have the interest you can read about others here. I am not going to talk about those today, I will be telling you about actors.
While some may disagree, the main idea behind object-oriented programming is that there are objects which send messages to one another - in most OO languages, this involves calling the other objects' methods. Things like inheritance and encapsulation and all that are secondary - although no less important.
The actor model is the same thing. There are actors (instead of objects) which send messages to one another. The difference between actors and objects is that every actor is always running, and when it sends a message it does not wait for the message recipient to finish processing before it continues to execute. Let's illustrate this with an example:
method fooIn a traditional OO language like C++, Java, or basically any other OO language that I've worked with, nothing will happen in foo until bar has finished. So foo ends up taking a long time to execute, even though nothing really in foo takes a long time.
call bar
.. do stuff which does not take a long time
end
method bar
.. do stuff that make take a long time
end
With actors however, foo will have finished long before bar does. Why? Because after foo makes the call to bar, it just continues on executing in parallel with bar. Pretty neat eh?
That's pretty much all there is to actors. You can try playing around with them yourself by trying out Scala which has built-in support for actors and is not too far away from Java, or you can take a deeper plunge and try out Erlang. Unfortunately I do not have much experience with either language, in fact my experience with actors comes from a research project in university I did using a C++ library for actors. You can probably find libraries that implement the actor model for most modern languages, if you're not interested in learning a new language.
Jun 8, 2009
Blocking Reddit from Blogger
Over the year and a half or so that I've been writing this blog, a number of my posts have been put onto reddit by their search bot, gst - at least I think it is a search bot, I don't think anybody could have posted as many articles as they have unless they are sitting there reading blogs 24/7 - or maybe it is actually multiple people, who knows. Anyway, some posts were well liked, some were not, but in the end it doesn't really matter to me.
There is a good and a bad side to reddit. The people who like my stuff either just leave (possibly putting a vote up on reddit) or they subscribe and continue reading and occasionally share an intelligent comment. This is welcome. What does bug me is the people who just come in, leave a nasty comment or two like "yer gay" or something and fuck off. These people contribute absolutely nothing and when I'm having a bad day it is not the kind of email I want to come home to.
So anyway, I wrote up a little script to block out reddit traffic. To install this on your Blogger blog, just click the "Layout" tab, go to "Edit HTML" and drop this somewhere outside of a CSS tag:
There is a good and a bad side to reddit. The people who like my stuff either just leave (possibly putting a vote up on reddit) or they subscribe and continue reading and occasionally share an intelligent comment. This is welcome. What does bug me is the people who just come in, leave a nasty comment or two like "yer gay" or something and fuck off. These people contribute absolutely nothing and when I'm having a bad day it is not the kind of email I want to come home to.
So anyway, I wrote up a little script to block out reddit traffic. To install this on your Blogger blog, just click the "Layout" tab, go to "Edit HTML" and drop this somewhere outside of a CSS tag:
<script>This basically just boots them back to reddit. It won't affect them if they copy+paste the URL into their browser, but I figure if they're willing to go through that much effort to read your stuff they actually want to read your stuff and probably aren't going to troll.
if (document.referrer.match(/reddit\./)){
window.location = document.referrer;
}
</script>
Apr 24, 2009
My Problems with Twitter
While many people claim that Twitter ate their blog, I can't really say it has eaten mine - while I have been much more quiet lately than 6 months ago, I think it more due to lack of enthusiasm/inspiration/commitment than anything else. I have several reasons why I'm not a huge fan of Twitter for "microblogging", at least compared to a lot of the other people who are on it. Don't get me wrong, it is great for small little things, but I don't think it is a great substitute for an actual blog.
Why I don't like it:
Why I don't like it:
- Lack of expressiveness - while some people could say that Twitter makes them more efficient in saying what they want to say, I think shortening your message to 140 characters really limits what you can say. A lot of the time I have stuff to say that is too short to make into a real blog entry, but I'd like to talk about in more depth than a simple tweet (perhaps I should lower my minimum blog entry length, but for some reason I don't like to write really short ones. Not sure why).
- The Chaos - It is completely chaotic. I forget to check Twitter every day. In fact, sometimes a week goes by. What happens when I finally do remember to check is I sign on and there's absolutely no way I can see what people have said except for in the last few hours. Fortunately the good response to this was to just stop following a whole bunch of people who just spammed out tweets like there's no tomorrow, so now my timeline shows probably a day or two worth of tweets - though still no good if I haven't checked it in a week. In fact, just today I found out that several weeks ago someone sent me a "message" - not a real direct message mind you, but an @robbrit message - with a link to a cool book and I just got it today because I was messing around the Twitter Search API. If you're reading this, thanks! It is definitely interesting!
- Level of Satisfaction - This somewhat relates to my first point, but is a bit different. I find that tweeting does not give the level of satisfaction as a good blog entry (I find it odd that I'm saying this, since I tend to tweet more than I blog these days) mainly because with a blog entry I sit down and write something that people may actually care about. While shouting out random things to my followers on Twitter may be temporarily gratifying (just got to work! sitting in my chair now!), there is a deeper feeling of satisfaction when you receive a comment on a year-old article saying how you helped someone out so much, or when someone links you on Reddit because they like what you've written - although there is an awful lot of negative attention from sites like those that really bugs me, but I suppose it is unavoidable on the Internet.
Jan 25, 2009
Open Source Websites?
I've had an interesting thought over the last little while. I've been thinking about a cool website to build (I'll write more about this in a later post once I get more shit together) and I'm hoping to release all the code for it under the GPL, with the exception of things like DB username/passwords and things like that.
A problem is that websites cost money. If they get popular, then that amount of money is not exactly trivial depending on how complex and bandwidth-intensive your site is. Some kind of revenue stream is important, unless you want to shell out cash from your pocket for your expenses. There are a few easy methods of gaining revenue like advertising and donations, however if I were a businessman I wouldn't want to rely on these too heavily (unless I was Google) as they aren't exactly reliable.
I had the interesting pleasure of hearing RMS speak yesterday at CUSEC. He defined three sort of groups in which you can put works and explained how copyright "should" (in RMS's definition of should) apply to these different things. The three groups were: tools, subjective works, and creative works. The first included things like software, and he stated that they all should be free. My idea for a site is a platform on top of which creative content is built, and according to Stallman this is a tool and should therefore be free. The second one I'll sorta gloss over because it doesn't really apply to my project, but it is things like news articles and blog posts and what-not. The third one is things like music, movies, or art. This, he states, should have some sort of copy protection to provide incentive for creators to create, but the length of the copyright should be quite limited to like 5-10 years. Therefore the content which the users of my site create is copyright-able.
This gives me another idea. While the code for my site would be open-source and anybody would be allowed to take it and use it however they choose, the content hosted on the site would not always be open-source - I would give the option for users to release their content to the public domain, which they may or not do. Content creators will then be able to restrict access to their works through payment, and a percentage of this payment would go to the site as a hosting fee or something1. However I could add something that say if they have a non-public-domain work, then if they leave it or something for a year it transfers to the public domain, something like that. Then other people would be able to take it and mess around with it and potentially make it better.
This type of site no longer requires the privacy of source code as a barrier to entry of competition, but instead relies on the built-up content base of the site. The way you would remain competitive is by constantly improving the quality of your content and your application.
But what would keep people from "stealing" your code? What if they take it and make a better product? Well that is where the GPL comes in. Suppose they "steal" my code and alter it to add a sweet feature or something. Since it is under the GPL, I can just take their source code and put the feature into my site.
There is always this risk that they will make a huge feature that makes the site so much better that they gain a huge user/content-base advantage over me in a short amount of time, but whatever. I'll take the risk.
Another question to ask is how well does the open-source model apply to websites? While the four freedoms still apply to these types of software, the value behind the software is quite different. In a content-based website, much of the value is in the content and not just in the application itself. Compare this to an application like OpenOffice, where the value of the program is in what it does for you as a tool - in the case of OpenOffice, it makes it easier to write documents.
I'm not saying that there is no value in making a website open source (it has done wonders for Wordpress), however there is less value in its use as a tool and therefore there is less applicability of open-source.
1 This has probably been done before, and I'm expecting to get like 5 comments with sites that are doing this.
A problem is that websites cost money. If they get popular, then that amount of money is not exactly trivial depending on how complex and bandwidth-intensive your site is. Some kind of revenue stream is important, unless you want to shell out cash from your pocket for your expenses. There are a few easy methods of gaining revenue like advertising and donations, however if I were a businessman I wouldn't want to rely on these too heavily (unless I was Google) as they aren't exactly reliable.
I had the interesting pleasure of hearing RMS speak yesterday at CUSEC. He defined three sort of groups in which you can put works and explained how copyright "should" (in RMS's definition of should) apply to these different things. The three groups were: tools, subjective works, and creative works. The first included things like software, and he stated that they all should be free. My idea for a site is a platform on top of which creative content is built, and according to Stallman this is a tool and should therefore be free. The second one I'll sorta gloss over because it doesn't really apply to my project, but it is things like news articles and blog posts and what-not. The third one is things like music, movies, or art. This, he states, should have some sort of copy protection to provide incentive for creators to create, but the length of the copyright should be quite limited to like 5-10 years. Therefore the content which the users of my site create is copyright-able.
This gives me another idea. While the code for my site would be open-source and anybody would be allowed to take it and use it however they choose, the content hosted on the site would not always be open-source - I would give the option for users to release their content to the public domain, which they may or not do. Content creators will then be able to restrict access to their works through payment, and a percentage of this payment would go to the site as a hosting fee or something1. However I could add something that say if they have a non-public-domain work, then if they leave it or something for a year it transfers to the public domain, something like that. Then other people would be able to take it and mess around with it and potentially make it better.
This type of site no longer requires the privacy of source code as a barrier to entry of competition, but instead relies on the built-up content base of the site. The way you would remain competitive is by constantly improving the quality of your content and your application.
But what would keep people from "stealing" your code? What if they take it and make a better product? Well that is where the GPL comes in. Suppose they "steal" my code and alter it to add a sweet feature or something. Since it is under the GPL, I can just take their source code and put the feature into my site.
There is always this risk that they will make a huge feature that makes the site so much better that they gain a huge user/content-base advantage over me in a short amount of time, but whatever. I'll take the risk.
Another question to ask is how well does the open-source model apply to websites? While the four freedoms still apply to these types of software, the value behind the software is quite different. In a content-based website, much of the value is in the content and not just in the application itself. Compare this to an application like OpenOffice, where the value of the program is in what it does for you as a tool - in the case of OpenOffice, it makes it easier to write documents.
I'm not saying that there is no value in making a website open source (it has done wonders for Wordpress), however there is less value in its use as a tool and therefore there is less applicability of open-source.
1 This has probably been done before, and I'm expecting to get like 5 comments with sites that are doing this.
Dec 8, 2008
Responsibility
Once upon a time, when I was in my second year at university, I was taking these two courses (I was taking more than two courses of course, but these are the two that have any relevance to my story). One of them was called Computer Graphics, where you learn about how computer graphics are done. Things like transformation matrices, perspective, anti-aliasing techniques, things like that. While the lectures were mostly theoretical using formulae, diagrams and pseudo-code, the assignments were to be done in C++ with OpenGL and GLUT - and for the most part the only function in OpenGL you were allowed to use was glDrawPixels. This meant that we were going to be working with pointers a lot, and doing pointer arithmetic and things like that since glDrawPixels only accepts a single-dimensional array of pixels. Not a big deal, pointer arithmetic is pretty damn basic. On top of that, we had a required first-year course on assembly language where if you want to get anything done you use mostly pointers (aka memory addresses) so pointers weren't really a foreign concept.
The second one was a class on programming languages. We learned about things like static vs. dynamic typing, functional programming, parsing, etc. It was pretty interesting (it was during this course that the FP light bulb went on in my head). However about halfway through we had to do a small unit on pointers and pointer arithmetic because the Graphics prof was complaining that nobody understood them and students were failing the assignments because of this - and in a class where there is no final, the assignments have quite a heavy weight.
I found it somewhat sad that people actually needed this. It's not like we were doing anything advanced with C++, the objects we were making were very basic, the standard libraries we used were no more advanced than std::list or std::vector. If you want to get familiar with pointers there is this thing called a search engine that you can use to find this stuff out, or another thing called the school library which was full of books on C++. Yet people blamed the prof for using things that they hadn't been taught in class - it is important to note that the C++ course was not required for the graphics course, probably because the scope of C++ that you use (pointers) is covered by a single lecture.
The thing that was holding these people back was their lack of responsibility. The lack of understanding that not everything is spoon-fed to you and that you actually need to go out and learn things on your own time (consider it homework). Isn't that what university is all about? Learning things? How about learning how to learn things?
Here's a fact (might be widely known, might not be). A computer science education does not give you the direct skills you will need in the workplace. You'll probably learn the basics of Java and some of the libraries for it like Swing or the collection classes, but it's doubtful you'll be able to use just that to develop enterprise applications. You might take a course on PHP, but that won't tell you how to build quality websites - if your university has a class anything like the one at the university I went to, chances are the stuff you'll be learning is well out of date. They have classes that teach you Haskell or Prolog, which have a gigantic market share and will grab you a job in no time.
Then there's other things - no class ever taught me how to use version control. Or how to do unit testing. Or how to use vi/emacs (some universities do force you to use these, mine didn't).
So if they don't teach you the things you'll need to know, how are you supposed to get a job? This is where that responsibility comes in. You have a lot of free time when you're at school - at least this is the way it seemed like to me. You have lots of resources at your disposal. Any of these things, be it a language or a software or a technique, can be learned just by sitting down in a lab for a little while and looking online for it. I learned how to manage Ubuntu because there was a lab run by students, and you could volunteer to manage a machine (due to dropping enrolment/interest, by my 4th year I ended up administering all the machines). I learned how to use SVN because I was working on a personal project and decided it should be under version control.
Responsibility doesn't just apply to the computer world - although it is really relevant here. Not happy with your job? Find something else. Think you're overweight? Go to the gym. Something bothering you? Figure out why it is bothering you, and attempt to find a solution (preferably a solution that solves the problem, not just puts it off) instead of sitting back complaining about it.
We live in a (mostly) free society. Your choices are ultimately the ones that direct what happens to you, so the only thing that really holds you back is yourself. I'd guess that the main thing holding people back is fear. It's what holds me back most of the time. I'm afraid right now, that after I post this article people will read it and leave nasty comments saying how dumb I am, or how inexperienced I sound, or how I'm completely wrong about everything.
That's part of learning. There's been several times when I write something and somebody will leave an insightful or informative comment telling me how I'm wrong. As much as I hate being wrong, it is a good experience and after the initial annoyance at being wrong subsides, I feel like I've learned something and am a better person due to my failure.
So if you're young and unhappy/unsatisfied, now is the time to go out and take risks. Ignore your fear of failure. What have you got to lose at this point? It's not like you have dependants or anything (if you do, ignore that last comment). Your life at this stage is mostly a blank slate, and what becomes of it is what you make of it. Don't let others dictate what goes on it, take responsibility for your own actions.
The second one was a class on programming languages. We learned about things like static vs. dynamic typing, functional programming, parsing, etc. It was pretty interesting (it was during this course that the FP light bulb went on in my head). However about halfway through we had to do a small unit on pointers and pointer arithmetic because the Graphics prof was complaining that nobody understood them and students were failing the assignments because of this - and in a class where there is no final, the assignments have quite a heavy weight.
I found it somewhat sad that people actually needed this. It's not like we were doing anything advanced with C++, the objects we were making were very basic, the standard libraries we used were no more advanced than std::list or std::vector. If you want to get familiar with pointers there is this thing called a search engine that you can use to find this stuff out, or another thing called the school library which was full of books on C++. Yet people blamed the prof for using things that they hadn't been taught in class - it is important to note that the C++ course was not required for the graphics course, probably because the scope of C++ that you use (pointers) is covered by a single lecture.
The thing that was holding these people back was their lack of responsibility. The lack of understanding that not everything is spoon-fed to you and that you actually need to go out and learn things on your own time (consider it homework). Isn't that what university is all about? Learning things? How about learning how to learn things?
Here's a fact (might be widely known, might not be). A computer science education does not give you the direct skills you will need in the workplace. You'll probably learn the basics of Java and some of the libraries for it like Swing or the collection classes, but it's doubtful you'll be able to use just that to develop enterprise applications. You might take a course on PHP, but that won't tell you how to build quality websites - if your university has a class anything like the one at the university I went to, chances are the stuff you'll be learning is well out of date. They have classes that teach you Haskell or Prolog, which have a gigantic market share and will grab you a job in no time.
Then there's other things - no class ever taught me how to use version control. Or how to do unit testing. Or how to use vi/emacs (some universities do force you to use these, mine didn't).
So if they don't teach you the things you'll need to know, how are you supposed to get a job? This is where that responsibility comes in. You have a lot of free time when you're at school - at least this is the way it seemed like to me. You have lots of resources at your disposal. Any of these things, be it a language or a software or a technique, can be learned just by sitting down in a lab for a little while and looking online for it. I learned how to manage Ubuntu because there was a lab run by students, and you could volunteer to manage a machine (due to dropping enrolment/interest, by my 4th year I ended up administering all the machines). I learned how to use SVN because I was working on a personal project and decided it should be under version control.
Responsibility doesn't just apply to the computer world - although it is really relevant here. Not happy with your job? Find something else. Think you're overweight? Go to the gym. Something bothering you? Figure out why it is bothering you, and attempt to find a solution (preferably a solution that solves the problem, not just puts it off) instead of sitting back complaining about it.
We live in a (mostly) free society. Your choices are ultimately the ones that direct what happens to you, so the only thing that really holds you back is yourself. I'd guess that the main thing holding people back is fear. It's what holds me back most of the time. I'm afraid right now, that after I post this article people will read it and leave nasty comments saying how dumb I am, or how inexperienced I sound, or how I'm completely wrong about everything.
That's part of learning. There's been several times when I write something and somebody will leave an insightful or informative comment telling me how I'm wrong. As much as I hate being wrong, it is a good experience and after the initial annoyance at being wrong subsides, I feel like I've learned something and am a better person due to my failure.
So if you're young and unhappy/unsatisfied, now is the time to go out and take risks. Ignore your fear of failure. What have you got to lose at this point? It's not like you have dependants or anything (if you do, ignore that last comment). Your life at this stage is mostly a blank slate, and what becomes of it is what you make of it. Don't let others dictate what goes on it, take responsibility for your own actions.
Nov 24, 2008
FOSS and the Software Industry
I read an article on Slashdot about how open source is slowly eroding a lot of the commercial applications out there. This isn't really anything new, it's been happening for years. However it seems like the quality of open-source is continually getting better and it's just a matter of time before it becomes "good enough" for other people to want to use it over the proprietary equivalents. Even the Economist thinks that open-source is going to be bigger - not that we really needed them to tell us it was, we knew it already.
I'm not trying to say open-source will eventually wipe out the market for proprietary software. Here's what I think will happen. Anything that's fun or interesting to code will eventually be taken over by open-source. These are things that programmers such as myself would not mind doing in our free time as one of those things, you know... what are they called? Oh right, a hobby. Like how some people spend tons of time building model trains or burning wood, we sit at our computers and churn out code that does cool stuff - well some people do, I tend to do more experimentation with random things and blog about them.
So what does that mean for professional software developers? Probably that demand for us will shrink. People won't need us to develop their software, since there are open-source versions that are as good as whatever we'll put out. People will still need custom-made software, or they won't want to comply with the GPL, or will want to make games (note to self: write about how the open-source development model doesn't really fit gaming), or whatever. There will still be jobs for us.
What I'm worried about is that most of the interesting jobs will be gone. We'll all be stuck either working for slave shops, fancy new web 2.x startup ideas, or content-management systems. Or things like that.
So I'll stop and make a confession here. I'm going to school. Not in anything really related to computers. I've been doing classes on and off since I graduated, but I'm starting to look into it more seriously. My rationale is this: I enjoy programming, but there is such thing as too much of something you enjoy, and it makes you not enjoy it any more. Therefore, I want to work in something else I enjoy, and then come home and mess around with software. Much more fun that way.
I'm not trying to say open-source will eventually wipe out the market for proprietary software. Here's what I think will happen. Anything that's fun or interesting to code will eventually be taken over by open-source. These are things that programmers such as myself would not mind doing in our free time as one of those things, you know... what are they called? Oh right, a hobby. Like how some people spend tons of time building model trains or burning wood, we sit at our computers and churn out code that does cool stuff - well some people do, I tend to do more experimentation with random things and blog about them.
So what does that mean for professional software developers? Probably that demand for us will shrink. People won't need us to develop their software, since there are open-source versions that are as good as whatever we'll put out. People will still need custom-made software, or they won't want to comply with the GPL, or will want to make games (note to self: write about how the open-source development model doesn't really fit gaming), or whatever. There will still be jobs for us.
What I'm worried about is that most of the interesting jobs will be gone. We'll all be stuck either working for slave shops, fancy new web 2.x startup ideas, or content-management systems. Or things like that.
So I'll stop and make a confession here. I'm going to school. Not in anything really related to computers. I've been doing classes on and off since I graduated, but I'm starting to look into it more seriously. My rationale is this: I enjoy programming, but there is such thing as too much of something you enjoy, and it makes you not enjoy it any more. Therefore, I want to work in something else I enjoy, and then come home and mess around with software. Much more fun that way.
Subscribe to:
Posts (Atom)
