Developer

Utilities|Multimedia and Graphics|Games|Network and Internet|Cellphones|Business|Shell and Desktop|Misc. Gadgets|Web Authoring|Programming|Laptops|Networking|Portable Audio|Gaming|Portable Video|Information Management|Digital Cameras|Handhelds|Email Tools|Home Entertainment|Peripherals|Robots|HDTV|CES|Displays|Storage|Desktops|Transportation|Wireless|Household|GPS|Announcements|Blogging|Themes|OS|Developer|Beta|Wearables|Palm Pilot|Media PCs|Office|Security|Tablet PCs|Features|Software|Productivity|Photo|Ask|Podcasts|Design|Search|Meta|VoIP|P2P|Finance|BlueHost|Interviews|InmotionHosting|SeaDVD.com|

Dev Chair : A geek solution to the writers strike

As the Writer’s Strike continues into the end of January with no real end in sight, most people are running out of quality TV programs to watch. Heck, we’re even running out of quality-less programs to watch. Unless you are a fan of reality shows such as Gladiator, there isn’t much coming in the next month or so, if at all, for this rapidly evaporating season.

I think it is time we in the software industry step up to the plate and offer our help. With what we know about artificial intelligence (AI), genetic algorithms, and natural-language parsing, it should be possible to develop a software program where TV scripts are created based on previous episodes.

What we need are:

  • Characters in the series and their attributes (gender, personality, etc.)
  • Tons of previous scripts
  • The series formula, e.g. The new clue to solve the case between minutes 39 and 40 in Law & Order, or CSI.
  • A genetic algorithm that learns the characteristic of the series through all the existing episodes, e.g. how each character behaves, their favorite catchphrases, and how the general plot line evolves. For many shows, just the catchphrase would suffice.
  • A software bot to trawl the net for bizarre news as seed to generate new stories.

The scripts generated by this AI program would probably not very good at first — but hey, neither was Seinfeld — they might not make sense at all. But, after some teaching sessions by a human — perhaps volunteers from the audience? It’s all about crowd-sourcing these days, right? — some reasonable scripts should result.

Granted this strategy would not work for proper drama like 24, Dexter, Weeds, etc. which all have major story arcs running through entire seasons but, it should work great for formulaic shows such as Law & Order, CSI, Numbers, Psych, where almost everything stays the same from episode to episode with only minor plot device differences in between.

How much effort would it take to develop this AI program? I don’t have the faintest idea. I just suggest stuff, it’s up to other people to handle the sticky details of implementation. I can imagine modifying an existing AI algorithm to accept TV scripts instead of whatever scientific research data, let it run on some beefy servers (may be run it as adistributed project like SETI@home? New TV shows are at least as important as finding aliens, maybe moreso.), and see what comes out at the other end.

Remember, this idea is hardly new. It has already been done with financial news by Thomson Financial as reported by Wired back in 2006. Is it such a big leap from news to formulaic drama?

Come on, doesn’t this sound like a fantastic final year college project? Surely the prospect of getting your final assignment done and being the hero who breaks the Writer’s Strike deadlock sounds appealing to someone?

More interesting question is: Which one is smarter? Law & Order, or an artificial intelligence program? With Fred Thompson dropping out of the presidential race, our money is on the AI.

Schnippselchen: manage frequently-used code snippets

Schnippselchen code snippet managerSchnippselchen is a source code management app that lets software developers manage multiple types of code that may need to be reused. The program has a sidebar with a “Categories” section (helpful for separating code by language) and a “Snippets” section for the actual titles of your code snippets. So you could have a PHP category with five snippets of PHP code that run your LOLcats social-network site.

Syntax highlighting is supported for many languages and code types including CSS, Perl, Python, XML, Applescript, and SQL. There is also a “Go to Line” feature and the ability to comment on your snippets (so you can remind yourself what those C functions do).

Schnippselchen can run from a thumbdrive (or iDisk) because your snippets are stored in the .app package; keep this in mind if you remove or update the program.

[Via i use this]

Microsoft allows more Vista virtualization

Vmware Virtual VistaMicrosoft issued a press release today stating, among other things, that Vista Home Basic and Home Premium editions can now be run in a virtual environment. This is good news for those of us who don’t want to buy the more expensive editions of Vista just to run it virtualized on our Mac or Linux machines.

We checked the EULA for Vista Home Premium today, and it still says you can’t virtualize it, but they will be updating that soon since this announcement wasn’t supposed to go live until tomorrow.

Virtualization basically means you can run Vista in an intermediate piece of software so that it’s contained and separate from your base OS. If you have a copy of Vista lying around and would like to virtualize it, try Parallels or VMware Fusion for Mac, or VirtualBox for Linux.

[via ZDNet]

Dev Chair : Do we want scientists or engineers?

Good computer science graduates do not make good software developers. Really, I mean it. But for the polar opposite reason that these two New York University computer science professors think.

When I was in high school my physics teacher once told us, All physics experiments work. They just may not work the way you want them to.”

This encapsulates neatly what software development is all about. On one hand, it is science. It is deterministic. Each programming language statement performs exactly as stated (baring bugs in the compiler, or the SDK, or the OS). On the other hand, software development is closer to engineering where years of experience allows a software developer to spot patterns in the model and apply them to build a system.

Unfortunately, just as in physics, computer science courses do not prepare students for what comes after graduation. Skills that are considered crucial in almost all commercial software projects are either not taught in college or are only touched upon. This disparity between the skills graduates possess and what the industry is looking for means it generally takes one to two years of working in real life project for a graduate to become fully trained.For example, here is Stanford University Computer Science course schedule for 2007 & 2008 (spring, summer, autumn, and winter). There are plenty of computer science courses such as Object-Oriented Programming (in C ), plenty of advanced topics such as Artificial Intelligence (AI) and algorithm design. But there is only one course that teaches software engineering, and one on C# and .Net Framework.

Where do students learn about project management, requirement gathering, testing, builds & deployment? Or soft skills such as how to interact with customers and clients? Do colleges expect students to acquire these skills by themselves on the side? How would the students know they are picking up the ‘right’ skills, and not just acquiring bad habits?

Look at it from another angle. How useful is it for students to know how to design and program an OS kernel? Or to know object oriented programming in C , verses a ‘modern’ languages such as Java, C#, Ruby, or even VB.NET? How many OS programmers do we need compared with the number of regular commercial software application programmers? Unless the products are a new OS or a new programming language, I would rather have engineers who build applications on my team than computer scientists who theorize and argue the merits of a design pattern.

One explanation given by colleges is that they are not there to dictate what type of role a graduate would/should take in the industry and therefore they are there to teach the fundamentals so the graduates will have the basic skills to further specialize. One may wish to be a developer while another may wish to be a tester, but personally I feel it is more of an excuse than an explanation.

Yes, the industry changes rapidly. Tools or techniques fashionable a last yeara are replaced by something new and shiny this year. Does it not sound oxymoronic to anyone that a computer science department is unable to react to these changes like the industry? Why bother teaching students how powerful and wonderful computers are and how they can improve our lives when the very people teaching these concepts are not keeping pace with the industry?

If computer science departments are not willing to prepare students for real life jobs, perhaps another department (Electrical Engineering for example) or a completely new one should take over that role? After all, you wouldn’t want a scientist to build a bridge now, would you?

Paint-Mono - A GIMP alternative?

Screen shot of Paint-Mono from Paint-Mono ProjectThe Download Squad team got really excited this morning. When we contemplated installing Paint-Mono, we pictured it and GIMP arming themselves with swords, screaming “There can be only one!” We thought there would be an epic battle, and the victor would lop off the other’s head in a firestorm of light.

Instead, we ended up compiling Mono.

Paint-Mono is a Unix port of Paint.NET. To install, it requires Mono 1.2.6, your favorite flavor of Unix (OSX, BSD, Linux, or Solaris), and a Subversion client. (Here’s a little warning: if you’re running Ubuntu Gutsy, you don’t have the right version of Mono. Deb packages for this version are hard to find, so that most likely means compiling from source. The Mono installer didn’t work for us).

So is it a GIMP killer? At this point we’d have to say no. We couldn’t get Paint-Mono to compile (even after installing Mono 1.2.6). According to Miguel de Icaza, most of the features in Paint.NET have been ported over to Paint-Mono, with more to come. It might be a nice alternative as it develops, but we’ll have to wait and see. Right now, it could have all the features of GIMP and more, but we’d still recommend GIMP to our friends just because they’d actually be able to install it and run it on their Windows, Linux, or even Mac computers.

[via Digg]

Google Chart API released

google chart api
Have you ever had the need to quickly and dynamically generate charts for a web based application? Google can help.

The new Google Chart API is a tool that one can use to create charts and graphs that can be embedded in websites. Basically, you type a few commands into a URL string and Google will spit out a PNG image with a line chart, bar chart, pie chart, venn diagram, or scatter plot. You can customize colors, points, and sizes. The developers guide walks through everything you might want to accomplish with the API.

When complete, copy the charts URL, and wrap a set of images tags around it to embed it into websites.

For example, the chart you see on the right was generated by entering this URL in a browser.

If you are thinking about doing more than 50,000 queries per day, you might have issues, that’s the limit Google places on users per day. Right click on our image in this post, and take a peek at the URL, thats the guts of the image.

QuickRibbon website announcements

QuickRibbon website announcements
Want to wish a happy holiday to your web site’s visitors today? Or put up a spiffy little banner announcing the birth of your child or pretty much anything else? QuickRibbon is an online tool that allows users to plug in a few choices and get a nifty ribbon banner that can be displayed on websites to announce something special. No fiddling with code and images, this online tool does almost all the work for you.

All you have to do is type in what text you want to appear on your ribbon, and its color. Next, choose a ribbon style and colors and enter a link to the ribbon for when it’s clicked. QuickRibbon then spits out a JavaScript code that can be easily placed in the body of html docs.

Of course, if a ribbon isn’t something you are after, you can always redesign your logo to meet Web 2.0 standards, or maybe just stay clear of this phase altogether.

Meebo gets into games

www.meebo.comAbout a month ago Meebo announced they had a new third party development platform. With it, developers can create multi user applications where users can connect to each other. Now the fun starts rolling out, starting with games.

With over 200 registered developers, Meebo has pushed out 20 multiplayer games and made them available for users to play through the online instant messaging platform. Some head to head challenging games include Backgammon, Checkers, Chess, Connect4, Sudoku wars and Texas Hold’em, making the online messaging location even more tempting to use and replace current standard IM’s with.

Although gaming is just a start, the next round of Meebo platform categories include shopping, productivity, work applications, music and video.

Flex for free

Flex for freeAdobe is reaching out to students and faculty by offering them Flex Builder 2 for free.

Adobe Flex Builder is an application for developing rich internet applications using the Flex framework. With this, developers can build intuitive interactive apps quickly. Why would Adobe be doing this? To try and gain some interest from new developers of course. Taking the lead from some fast food joints out there, hit them while at University and get them addicted, especially since some schools will begin offering Flex based training.

With retail prices sitting at $499, why not pick up a free copy for yourself if you are a student or faculty member and test your luck at application development. And hey, grab a copy for your non university friends too, it can sure make a great gift!

Dev Chair : Faster, better, cheaper with Agile?

Nokia N800
As NASA starts to wind down their Space Shuttle activity in the next three years, the space agency’s effort to return to the Moon has been ramping up quietly in the background. With their new Orion/Ares space vehicle combination, crew automation will definitely be on the top of software priorities for NASA. But with a much smaller budget and shorter timescale than the last lunar attempt, would NASA and its contractors embrace new approaches and techniques so our tax dollars are better spent? Can Dan Goldin’s “Faster, Better, Cheaper” approaches be finally achieved?

A couple of months ago I was fortunate enough to join ThoughtWorks, a company that advocates the use of Agile software development practices (Extreme Programming, Scrum, TDD, etc.) to bring business value to our customers. I have been using Agile practices on my previous project for over three years and it had proved to be highly successful. And ThoughtWorks’ experience in this area proves that Agile can also be applied successfully on large enterprise software projects. But can Agile be used on a highly mission-critical software project such as the one for the Orion spacecraft?

Over ten years ago my first programming job was for small software company developing real-time, safety critical software for controlling railway trains. The work we did was the embodiment of the Waterfall model. The system requirements were collected and analyzed. The model was designed and validated. Then we mere programmers set out to write code to realize the model. Huge amount of unit tests and integration tests were created to make sure our code did what the model said it should do. All the while, the project manager kept track of our progress to ensure that, hopefully, we delivered the product on time and on budget.

At first glance, Agile sounds like a good fit with this type of project where requirements are generally very well defined and correctness are paramount. Short iteration and test-driven development will ensure features are delivered often and proved to be working by the unit tests. Continuous integration means there will be fewer surprises as multiple systems are joined up to work with together. The costs of requirement changes will be reduced and can be implemented quickly, rather than in the next version.

But would the world of safety /mission critical software development, dominated by engineers and scientists, be receptive to the less rigid world of Agile development? Would they feel that without the top down approach, its highly structured development process, and the tightly prescribed set of delivery artifacts, the project delivery cannot be guaranteed?

I would love to hear from people who have more recent experiences in this area of software development with regard to Agile. Is it being used, is it being used widely, and how effective it has been?

  • Categories

  • Meta

  • Sponsors