As a reader of Hacker News, I have to say that the substantial majority of the content seems to be aimed towards web developers. I don't think this is on purpose; I think it just reflects the current state of technology.
For the last few years, even the last decade, we have been in a boom as far as web technology goes. The advancement of the state-of-the-art in software development, combined with the browser wars and subsequent arms race, has created an amazing array of technologies so advanced and comprehensive that Microsoft has chosen to base the GUI toolkit for Windows 8 on it. We have a range of programming languages and servers to choose from, combined with a huge amount of functionality on the client end thanks to innovations like HTML5, WebGL, and CSS3. This means we can now create real solutions to real problems using both client and server side processing in the browser. Where once there would have been dedicated terminals and a centralized mainframe, companies now use a web server and web-capable devices.
Games continue to push client hardware to the very edge, but games have also become a significant part of the web. Online game companies such as Popcap and Zynga command huge networks of players in online browser-based or flash-based games. Despite this, client-side games are still very popular, and when it comes to squeezing the very best out of hardware, native games still beat out browser-based games.
Game development as a profession is traditionally very desirable to young programmers. I may be over-generalizing, but the dream of most young programmers is to make it big creating games for studios like Epic, Bungie, and Blizzard. The reality is somewhat different. The industry has been rocked by reports of substandard work conditions and huge studio break-ups. Because game development is such a desirable job, it is widely seen as an easy market to recruit new programmers in. This leads to problems like high burnout rates, high stress levels, and high staff turnover in some companies. I myself am at this stage as far as game development goes; the reality of long days and low wages has left me feeling burnt out and tired of game programming.
Web development is also a bit of a rock-star profession at the moment, because of the success of consumer-focused online websites, especially those in the social web space. Companies like Facebook, Google, and Microsoft are ready to pay top dollar to top-end web developers so they can compete head-to-head. At the same time, small scrappy startups are trying to offer developers a share of the pie and the chance to make it big, in exchange for long hours and low wages. At this point in my blog post, the two types of programming are really starting to sound very similar.
I guess in the end they are both similar professions in terms of the pressures applied to individual programmers. In reality to be doing anything at the extreme (and interesting) end of the technology spectrum, you have to be willing to compete with others by taking on risks like pay cuts and high-stress positions. In the end both high-end game developers and high-end web developers working with the latest technology both pay the price for their passion.
I sort of started this post aiming to let off some steam about how game development sucks because of the pressure and conditions (not that i'm really in "game" development), but i guess in reality, anything that pushes the boundary is going to come with high pressure. Competition is created by the mass of programmers who want to be challenged, who want to push themselves further. I suppose in reality, there are highs and lows in all sorts of development and programming, and in end end no matter what sub-field you choose, you will still get the full range of experiences, both the highs and the lows.
In then end, it's all just part of being a developer.
Wednesday, July 13, 2011
Thursday, May 26, 2011
The Next Console Generation
After reading through the news today and seeing that Sony has outed active development of a next generation console, I can't help but feel like we could actually be seeing a new console generation beginning next year (2012). Sony is the last console company from the current generation to publicly acknowledge that it is working on a new console, after Nintendo revealed Project Cafe and Microsoft put out an ad looking for hardware architects for a new console graphics system.
After thinking about this, I wondered what the lead time was between the Xbox 360 reveal and the actual release of hardware to the public. While researching, I found an article trumpeting the launch of the 360 and had to have a laugh at what had changed:
Overall I think Microsoft can chalk the 360 up as a success; they didn't beat out Nintendo on pure sales or profit this generation, but I believe they delivered value and quality through experience on their platform. The platform features that are still recognizable on the platform to this day, such as voice chat and the Live Marketplace, are a testament to the decisions that were made correctly on day 1. Progress since then has been supported through continual investment into the platform and community.
Back to my original point. the official announcement for the Xbox 360 was made in May 2005, and the console was released about 6 months later, in November. This gives a lead-time of about 6 months over their official announcement. Given the stage of rumors around development of the next generation console, it seems unlikely that Microsoft would announce and release a console this year. My bet would be on a possible hint this year at E3, even if just to give people something to look forward to, with a reveal at E3 2012 and possible launch before Christmas 2012.
Of course this is all pure speculation! As much as would all like to know when new hardware will be arriving, it seems for now we will simply have to wait.
After thinking about this, I wondered what the lead time was between the Xbox 360 reveal and the actual release of hardware to the public. While researching, I found an article trumpeting the launch of the 360 and had to have a laugh at what had changed:
Every Xbox 360 game is designed for high-definition, wide-screen televisions. Regardless of the television Xbox 360 connects to, gamers will experience smooth, cinematic experiences that far exceed anything they’ve seen or felt in games before.I think we can all agree that the current generation of consoles does not push our 1080p HDTVs to their limits; most high-performance games still run at 720p, or lower.
Xbox 360 also features software so smart it remembers what gamers have achieved, continually evolving and enhancing the game experience.Achievements must have been such a huge thing at the time (I certainly don't remember), but these days such features are expected, thanks to their success as part of the Xbox platform. Since it's release the software on the Xbox 360 has continued to evolve; by the current standards, the original Xbox dashboard seems so quaint.
Players can express their digital identity through their Gamer Profile; connect with friends anytime, anywhere through Xbox Live voice chat; send and receive text and voice message; and access Xbox Live Marketplace to download demos and trailers along with new game levels, maps, weapons, vehicles, skins, classic arcade and card and board games, community-created content, and more to the detachable Xbox 360 hard drive — all right out of the box at no extra cost.I don't think anyone could have predicted how much of a success Xbox Live would be with it's tiered pricing plan. The value proposition for gamers seems to have paid off, with the platform receiving regular updates and additions such as party chat and the various dashboard redesigns.
Overall I think Microsoft can chalk the 360 up as a success; they didn't beat out Nintendo on pure sales or profit this generation, but I believe they delivered value and quality through experience on their platform. The platform features that are still recognizable on the platform to this day, such as voice chat and the Live Marketplace, are a testament to the decisions that were made correctly on day 1. Progress since then has been supported through continual investment into the platform and community.
Back to my original point. the official announcement for the Xbox 360 was made in May 2005, and the console was released about 6 months later, in November. This gives a lead-time of about 6 months over their official announcement. Given the stage of rumors around development of the next generation console, it seems unlikely that Microsoft would announce and release a console this year. My bet would be on a possible hint this year at E3, even if just to give people something to look forward to, with a reveal at E3 2012 and possible launch before Christmas 2012.
Of course this is all pure speculation! As much as would all like to know when new hardware will be arriving, it seems for now we will simply have to wait.
Friday, January 14, 2011
Rooting/Flashing Samsung Galaxy 3
I have just finished flashing my brand new Samsung Galaxy 3 (New Zealand model) to the latest 2.2 firmware found on the xda developers forum.
Here's the complete guide from xda-developers:
It still took me quite a while to figure out how to flash the phone, there are quite a few little quirks. Here is the process I followed:
- Install the Samsung Kies application (comes with the phone on a CD), back up all your contacts, calendar, etc.
- Use the z4root easy root app.
- Install Titanium Backup for android, requires root access.
- Run Titanium Backup and back up all applications and settings.
- Shut down your phone.
- Hold the Home, Menu, Volume Down and Power keys until a "download" screen appears.
- Connect the phone to your PC via USB.
- Follow the instructions from xda-developers on updating the firmware for the I5800 (Europe firmware seems to work fine for New Zealand phones).
Note: when using the ODIN downloader to update your firmware, wait approximately 10 seconds after loading each firmware file. If these files are loaded too quickly in succession (before ODIN has finished checking the previous one), ODIN crashes with an "ODIN has stopped responding" hang.
Once you've completed the updating process you should be able to restore any apps and settings from the titanium backups.
UPDATE:
The latest firmware at time of writing (I5800XXJPF) turned out to be a bit flaky when trying to sync with the Samsung Kies utility, and in a few other places. Since I wanted to port my contacts over, this was less than ideal. The next most recent firmware does not seem to share this problem (I5800XXJPB).
UPDATE:
The latest firmware at time of writing (I5800XXJPF) turned out to be a bit flaky when trying to sync with the Samsung Kies utility, and in a few other places. Since I wanted to port my contacts over, this was less than ideal. The next most recent firmware does not seem to share this problem (I5800XXJPB).
Tuesday, December 1, 2009
Ubuntu Touchpad Disable
Just as a note, i've also been having problems with my touchpad since installing Ubuntu 9.10.
With 9.04 i was able to get my disable touchpad hotkey working with minimal configuration ( i think i had to install gsynaptics), but in this version of Ubuntu it is not nearly as simple.
Apparently the change in hardware manager and lack of a global variable within Ubuntu. Several people have come up with fixes which usually involve some sort of a shell script, but i haven't been bothered actually implementing one. It would be good to see a fix actually committed to Karmic for this, but personally i don't have the experience with Ubuntu packaging and operating system structure to even know where to start with developing a solution.
Might possibly be a good idea for a project in the future.
With 9.04 i was able to get my disable touchpad hotkey working with minimal configuration ( i think i had to install gsynaptics), but in this version of Ubuntu it is not nearly as simple.
Apparently the change in hardware manager and lack of a global variable within Ubuntu. Several people have come up with fixes which usually involve some sort of a shell script, but i haven't been bothered actually implementing one. It would be good to see a fix actually committed to Karmic for this, but personally i don't have the experience with Ubuntu packaging and operating system structure to even know where to start with developing a solution.
Might possibly be a good idea for a project in the future.
Problems with Ubuntu + Skype
I recently upgraded to Ubuntu 9.10 Karmic Koala from 9.04 Jaunty Jackalope (a blog post in itself), and reinstalled all of my applications from scratch. As part of this process i had to download and install Skype for Linux.
This has always been a sore point for me as far as Linux is concerned. The version of Skype i used previously was deemed the "latest stable" version, but i constantly has problems. One example was with multiple conversation windows being spawned for a single conversation; i would say "hi" so someone, and their response would somehow be directed to another Skype window which i would also have to open. Another common occurrence was false status updates; a friend would come online, but Skype would still show them offline until i send them a message, at which time it finally updates their status.
This was all for a "stable" version.
About this time i found out a new beta version was being tested. I installed it, and then uninstalled it about 10 minutes later. The program which has been delivered to me was completely unacceptable by open source beta standards, let alone commercial standards. There were obvious glitches with text not updating, and many of the problems i had with the previous version still remained.
Most recently, when i updated to version 2.1.0.47, i found that overall Skype has improved slightly for Linux. Very slightly.
This version eliminates many of the bugs found in previous versions, although development seems to move at the same speed as a river of bricks; my guess is there is one poor Linux developer slaving away behind the scenes to iron out all the many wrinkles and creases in the current application, while trying to keep the features up to date with Skype for Windows.
the one major bug i can find is that since installing this new version of skype under Ubuntu 9.04 every now and then my input devices are paralysed: i can only type text into certain windows, and with limited success. Sometimes alt-tab works, somtimes not. About the only way i've found of seemingly solving the problem is switching between the ctrl-alt-f1 terminal and gnome desktop repeatedly until i regain control over the desktop. Even if the restart-gdm shortcut was still active in Ubuntu i wouldn't want to be restarting it every 10 minutes.
I'm not even entirely sure if this is a problem with Skype, but i suspect it is because of the history i have with Skype, and because focusing the Skype chat window usually seems to set off this bug.
I would be interested to know if anyone else has had similar experiences with Ubuntu 9.10/Skype, and if anyone knows a more permanent fix?
This has always been a sore point for me as far as Linux is concerned. The version of Skype i used previously was deemed the "latest stable" version, but i constantly has problems. One example was with multiple conversation windows being spawned for a single conversation; i would say "hi" so someone, and their response would somehow be directed to another Skype window which i would also have to open. Another common occurrence was false status updates; a friend would come online, but Skype would still show them offline until i send them a message, at which time it finally updates their status.
This was all for a "stable" version.
About this time i found out a new beta version was being tested. I installed it, and then uninstalled it about 10 minutes later. The program which has been delivered to me was completely unacceptable by open source beta standards, let alone commercial standards. There were obvious glitches with text not updating, and many of the problems i had with the previous version still remained.
Most recently, when i updated to version 2.1.0.47, i found that overall Skype has improved slightly for Linux. Very slightly.
This version eliminates many of the bugs found in previous versions, although development seems to move at the same speed as a river of bricks; my guess is there is one poor Linux developer slaving away behind the scenes to iron out all the many wrinkles and creases in the current application, while trying to keep the features up to date with Skype for Windows.
the one major bug i can find is that since installing this new version of skype under Ubuntu 9.04 every now and then my input devices are paralysed: i can only type text into certain windows, and with limited success. Sometimes alt-tab works, somtimes not. About the only way i've found of seemingly solving the problem is switching between the ctrl-alt-f1 terminal and gnome desktop repeatedly until i regain control over the desktop. Even if the restart-gdm shortcut was still active in Ubuntu i wouldn't want to be restarting it every 10 minutes.
I'm not even entirely sure if this is a problem with Skype, but i suspect it is because of the history i have with Skype, and because focusing the Skype chat window usually seems to set off this bug.
I would be interested to know if anyone else has had similar experiences with Ubuntu 9.10/Skype, and if anyone knows a more permanent fix?
Wednesday, October 21, 2009
The PC: changing roles
This isn't a new observation, nor am i the first to point it out. If we look at the Technology industry recently, it becomes obvious the role of the PC in people's lives has changed markedly over the last few years.
First i will mention PC gaming, a topic very dear to my heart. It is my opinion that the demise of the PC as the standard gaming platform was partially a result of console hardware coming in well below the cost of a gaming PC. As a student living off next to nothing, making the most of my money is very important. With a gaming PC i was forced to upgrade something every 6 months in order to keep up with game requirements. Then every 2-3 years came the obligatory upgrade as new technology rolled in the door. But it was somehow worth it. Why? Because PC display technology was far ahead of console display technology. Previous consoles ran on very low resolution PAL or NTSC displays, and had generally used a 1-chip-does-it-all approach. Comparatively, computers at the time were already running resolutions of 1024x768 or higher (much higher for an exclusive elite in the gaming community) with dedicated graphics processors. Modern consoles run resolutions as high as most HDTVs or computer monitors will allow, with little or no lag. From a development perspective consoles are unified standard platforms, reducing the amount of time spent testing different hardware configurations and fixing subsequent bugs.
As computers have hit the speed barrier, the technology in hand-held devices has continued to surge onward. Cell phones can now act as mobile computers, with internet connectivity and fairly modest processing power. Netbooks have also helped bridge a gap in mobile computing, and MID devices look to soon do the same. The mobile phone and computer paradigms are merging into one central device which is both a computer and a communications platform.
In the business space, Google has transformed the internet with their server farm designs. Suddenly large scale computing power is achieved with large networks of PCs, where previously only a mainframe system would have been suitable or viable. Supercomputers are also being affected, with many new systems being built from standard PC CPUs and GPUs.
The current period of computing spells out a interesting crossroad for the PC and its role in computing; the number of computing devices available to us is increasing, each with shifting roles in our everyday lives. At the same time, these devices are becoming far more convenient and cost-effective than the PC. What the future holds, no one knows?
First i will mention PC gaming, a topic very dear to my heart. It is my opinion that the demise of the PC as the standard gaming platform was partially a result of console hardware coming in well below the cost of a gaming PC. As a student living off next to nothing, making the most of my money is very important. With a gaming PC i was forced to upgrade something every 6 months in order to keep up with game requirements. Then every 2-3 years came the obligatory upgrade as new technology rolled in the door. But it was somehow worth it. Why? Because PC display technology was far ahead of console display technology. Previous consoles ran on very low resolution PAL or NTSC displays, and had generally used a 1-chip-does-it-all approach. Comparatively, computers at the time were already running resolutions of 1024x768 or higher (much higher for an exclusive elite in the gaming community) with dedicated graphics processors. Modern consoles run resolutions as high as most HDTVs or computer monitors will allow, with little or no lag. From a development perspective consoles are unified standard platforms, reducing the amount of time spent testing different hardware configurations and fixing subsequent bugs.
As computers have hit the speed barrier, the technology in hand-held devices has continued to surge onward. Cell phones can now act as mobile computers, with internet connectivity and fairly modest processing power. Netbooks have also helped bridge a gap in mobile computing, and MID devices look to soon do the same. The mobile phone and computer paradigms are merging into one central device which is both a computer and a communications platform.
In the business space, Google has transformed the internet with their server farm designs. Suddenly large scale computing power is achieved with large networks of PCs, where previously only a mainframe system would have been suitable or viable. Supercomputers are also being affected, with many new systems being built from standard PC CPUs and GPUs.
The current period of computing spells out a interesting crossroad for the PC and its role in computing; the number of computing devices available to us is increasing, each with shifting roles in our everyday lives. At the same time, these devices are becoming far more convenient and cost-effective than the PC. What the future holds, no one knows?
Saturday, September 12, 2009
Iterating through multiple objects at once in python
As part of my project coding some image processing using OpenCV/Python I needed to iterate through two images at once (the images have identical dimensions). Please note that for this i'm using the OpenCV 1.1pre1 build and Python 2.6. After a quick Google search i found this page which details the various methods for iterating through multiple objects at once in python.
I used the "zipping" method; this basically takes both iteratable objects and joins one sequential item from each iterable object together to form a tuple. This tuple is then added to a list which contains all the object pairs. The zip will stop at the end of the shortest iterable object (so the final list will be as long as the shortest object).
Subscribe to:
Posts (Atom)