frogware.com

BitWorking: Three orders of magnitude
“ At some point in the past rolling out an application to 300,000 people was the pinnacle of engineering excellence. Today it means you passed your second round of funding and can move out of your parents garage.”

Globe and Mail: 16,777,236
“ That's the number of outcomes that are possible when eight competitors each consider three strategic options. Waterloo's wizards of game theory reduce the number to 1”

Zack Urlocker: Disruption in the Software Industry
“ Yesterday, I wrote about some examples of disruption. When an industry gets disrupted, there's usually a consistent pattern that emerges”

Martin Atkins: Lambda expressions and expression trees in .NET and C#
“ One of the upcoming features of Microsoft's .NET framework is the System.Query assembly, where you'll find the Language INtegrated Query (LINQ) support. The matching new version of C# has gained lots of new syntactic sugar to make the query bits easier to use.”

Scott Hanselman
“ Stephen Nelson turned me on to Humanized Software's "Enso Launcher" (blog) earlier today, and I've been playing with it all evening. I've been on a quest to replace Start|Run for years (podcast). I've also done a lot of work in UI and UX and these guys are definitely fans of Jef Raskin's Humane Interface for good reason. Not just because Jef was brilliant - but also because they worked directly with him. The Enso Launcher is dedicated to Jef.”

XML.com: What's New in Prototype 1.5
“ The Prototype library is fairly compact (about 15K), and decidedly not a kitchen-sink library. It doesn't provide custom widgets or elaborate visual effects. Instead, it just strives to make JavaScript more pleasant to work with. In many ways, Prototype acts like the missing standard library for JavaScript—it provides the functionality that arguably ought to be part of the core language.”

Paul: The Google Development Algorithm
“ What Google appears to have done is to set up a system which avoids the downsides of starting a company (long hours and risk of bankruptcy) and greatly reduces the required non-technical skills (such as employment law and buttering up VCs), but keeps a fair proportion of the upsides (respect and wealth). Of course you don’t get to keep all the rewards. But as Paul Graham says”

O'Reilly: Building Enterprise Services with Drools Rule Engine
“ Weaving complex business logic into application code makes developers deeply responsible for understanding and maintaining that logic, and means that every change in a company's processes requires a recompile and redeploy. Using a rules engine like Drools offers an opportunity to split the rules into their own files, potentially editable by the subject-matter experts instead of developers.”

Steve Yegge: The Pinocchio Problem
“ See, it seems like there's a good way to design software. A best way, even. And nobody does it. Well, a few people do, but even in those rare instances, I think it's accidental half the time.”

Sun: Free Your Mind
“ Bonwick and Moore have had fun taking the Jeff and Bill Show on the road. "We've never had to sell ZFS. All we've had to do is explain it," Bonwick observes. "And it's fun to watch the dynamics of the room change. We often start out with a room full of crossed arms and a 45-minute time slot. Two hours later everyone's leaning forward in their seats, bug-eyed and asking questions." (ZFS is to filesystems what the iPhone is to phones.)”

Google: Browser Sync
“ Google Browser Sync for Firefox is an extension that continuously synchronizes your browser settings – including bookmarks, history, persistent cookies, and saved passwords – across your computers. It also allows you to restore open tabs and windows across different machines and browser sessions.”

Jason Snell: Not waiting on the world to change
“ What a shocking, stunning, surprising Macworld Expo keynote address Steve Jobs gave today. It was strange and different in so many ways, from the complete lack of new Mac announcements (at Macworld Expo!) to the surprising removal of “Computer” from the company’s name after thirty years.”

Elliotte Rusty Harold: Go ahead. Break the build.
“ There’s a philosophy in extreme programing circles that one should never break the build. As soon as the build is broken, everything stops until it can be fixed again.1 Some teams even hand out “dunce caps” to a programmer who breaks the build.”

James Gosling: Compiler Fun
“ There's lots of fun to be had playing around with javac. I've never been real happy with debates about language features, I'd much rather implement them and try them out. For example, over christmas, Rémi Forax did an implementation of the ":=" declaration syntax, along with some other type inferencing touches.”

Sam Ruby: Xhtml5lib
“ While there unquestionably are a lot of applications of XML for which strict, draconian, error handing is appropriate, there also are a number of use cases for which robust scavenging is required, as is evidenced by the popularity of libraries such as Beautiful Soup and the Universal Feed Parser.”

Joe Armstrong: Making reliable distributed systems in the presence of software errors
“ How can we program systems which behave in a reasonable manner in the presence of sodware errors? This is the central question that I hope to answer in this thesis. Large systems will probably always be delivered containing a number of errors in the software, nevertheless such systems are expected to behave in a reasonable manner.”

Martin Fowler: Atom Feeds
“ I asked Ade Oshineye, the man who keeps ThoughtBlogs running for his advice. He gave me a page of carefully considered reasons for either staying with RSS 0.91 or choosing a new format (and which one). In the end I followed his rather more passionate conclusion: "For the love of god please use Atom."”

O'Reilly: Faster Filtered SQL Server Imports
“ If you have ever tried to load large amounts of data using SQL inserts, you know how slow it method is. A million records loaded in this way could take over 40 minutes, which is why the various database providers have there own bulk-loading tools to speed up the task (SQL Server DTS, for example). If, however, you use Perl for all your data parsing, and would also like to perform database imports directly from Perl, how do you get around the speed issue?”

Jon Udell: Customer service and human dignity
“ This week’s podcast features Paul English. He’s a software veteran who’s been VP of technology at Intuit and runs the Internet travel search engine at Kayak.com, but is best known for the IVR Cheat Sheet. Now available at gethuman.com, this popular database of voice-system shortcuts makes it easier for people to get the human assistance they crave when calling customer service centers.”

MSDN Mag: Identify And Prevent Memory Leaks In Managed Code
“ The first reaction many developers have to the idea of memory leaks in managed code is that it's not possible. After all, the garbage collector (GC) takes care of all memory management, right? The garbage collector only handles managed memory, though. There are a number of places where unmanaged memory is used in Microsoft® .NET Framework-based applications, either by the common language runtime (CLR) itself, or explicitly by the programmer when interoperating with unmanaged code. There are also occasions where the GC seems to be shirking its duties and not efficiently handling managed memory. Usually this is caused by subtle (or not so subtle) programming errors that hinder the GC from performing its job. As good memory citizens, we still have to profile our applications to ensure they are leak-free and make efficient use of the memory they require.”

developerWorks: Manage the process, not the steps
“ The term process management is often broadly applied to all aspects of business processes. However, in theory, process management should drive, but not control, process steps. In this article, learn how to differentiate between process management and process steps to effectively design business processes in your organization.”

Bjarne Stroustrup: The Problem with Programming
“ Looking at "average" pieces of code can make me cry. The structure is appalling, and the programmers clearly didn't think deeply about correctness, algorithms, data structures, or maintainability. Most people don't actually read code; they just see Internet Explorer "freeze."”

Scott Hanselman: Best Practices Analyzer Tools
“ It'd be nice if there was some project inside (or outside) Microsoft to unify all "Best Practices" knowledge under one tool. Perhaps one of these tools is the beginning of that?”

Aaron Skonnard: Web Service Software Factory
“ As architects and developers, we always want to be confident that we're solving problems in the right way. For this reason, there has always been a demand for good guidance in the developer world. Often, this guidance has come from the community of developers, sharing and learning from each others' experiences. But nowadays, with so many emerging technologies, there's often very little communal experience to build on. This makes it increasingly important for software vendors to provide valuable guidance. After all, these vendors have designed and created the tools and technologies, so they should have good advice as to how to properly use these tools.”

Artima: Borland Spins Off CodeGear, Releases JBuilder 7
“ In the latest episode of a storied saga, Borland spun off its developer tools division into CodeGear, a wholly-owned subsidiary. It also released JBuilder 2007, now based on the Eclipse platform. Artima spoke with Michael Swindell, CodeGear's VP of products, and JBuilder product manager Joe McGlynn about the new company and JBuilder 2007.”

MSDN Mag: Inside Diagnostic Tools for .NET
“ Many diagnostic tools use the CLR Profiling API-even those that aren't strictly profilers. So if you've ever wondered how these tools work, a look at the Profiling API is a good start. In this column, you'll see how they work and look at some useful tips and tricks. You'll also find some essential resources in the "Other Profiling Resources" sidebar.”

InfoWorld: CodeGear
“ Set to be unveiled is the company's JBuilder 2007 IDE for Java, open source and the Web, formerly code-named "Peloton." The highlight of this version is it delivers on Borland's pledge to base the environment on the open source Eclipse platform. It is built on the Eclipse 3.2 core.”

Sam Ruby: That’s Not Write
“ I learned something new today. I’ve known for a while that pretty much all the browsers don’t implement document.write when found in the context of XHTML documents — even in the case where both the enclosing document and string are separately well formed. Because Google AdSense depends on document.write, the net result is that I only serve ads to users of browsers that don’t support XHTML, which increasingly means that only IE users see ads.”

O'Reilly: Top 10 Tips for Using Windows PowerShell
“ PowerShell is Microsoft's newest replacement for the command line. It's still in beta, and the latest version is available free for download here. For us older folks, we've had to deal with DOS in the past, and then we've held on to the CMD.exe program, which is pretty much the same as a DOS command prompt running under Windows. PowerShell is not an updated version of DOS.”

Robert Burke: .NET Framework 3.0 is completed
“ It was alluded to, almost as an aside, during this morning's keynote speech at Tech Ed Europe. But let's not let today's most impressive bit of Microsoft developer news pass us by”

Leonard: REST Web Services
“ I'm writing a new book and it's called REST Web Services. It will be be the only book of its kind, and everyone should buy it who writes computer programs that work over the web.”

MSDN Mag: Test Automation
“ If you are writing test automation, there are four complementary approaches you can take: buy and use a commercial test framework (including Visual Studio 2005 Team System, which has some neat new features), use an open source test framework, write custom heavyweight automation (generally more than four pages of code), or write lightweight automation (generally under four pages of code). Most of my Test Run columns focus on techniques for lightweight automation. When writing lightweight test automation, one of your best choices for test case data and test results storage is to use Microsoft Excel.”

MSDN Mag: The STRIDE Approach
“ Whether you're building a new system or updating an existing one, you'll want to consider how an intruder might go about attacking it and then build in appropriate defenses at the design and implementation stages of the system. At Microsoft, we approach the design of secure systems through a technique called threat modeling—the methodical review of a system design or architecture to discover and correct design-level security problems. Threat modeling is an integral part of the Security Development Lifecycle.”

Elliotte Rusty Harold: Why REST Failed
“ Representational State Transfer (REST) is the explicit architecture of HTTP and the World Wide Web. It is a well-designed, well thought out system that enables scalable applications that service millions of users. It is also a simpler system that enables developers who understand it to bring applications to market faster that perform better. Well, actually, no, it’s not. And therein lies a story.”

Alex Bosworth: 37Signals likes PHP
“ SWiK is coded in PHP 5.0 and Java, and most of the projects that I do are likewise in PHP 5.0 – although I have played around with Rails, I find PHP to be pretty productive and great for prototyping.”

InfoQ: How Many Rubies Does the Future Hold
“ There are now at least 8 active implementations of Ruby (Ruby, Yarv, JRuby, Cardinal, Rubinius, MetaRuby, Ruby.NET, IronRuby), and two interop bridges (RubyCLR and RubyCocoa)! The biggest news was that there are plans to revive the Ruby testing project (formerly the Rubicon) and share as many tests as possible among the implementations.”

Google Watch: Google Copies Rollyo's Business Plan
“ Google unveiled today a new customizable search engine that can be added to any Web site. The new service, called Google Custom Search Engine and built off the Google Co-op technology, will ostensibly help publishers attune search experiences to their specific audiences while giving Google more inventory on which to place its AdSense advertisements. ”

InfoWorld: Google unveils do-it-yourself search engine
“ In a move that will likely bolster Google's search dominance, the company late yesterday unveiled the Google Custom Search Engine, equipping anyone with the ability to set up a free, tailored Google-powered search engine on any Web site -- and make money in the process.”

Steve A: Google Co-Op Custom Search Engine
“ So, I've been playing around with the Google Co-Op Custom Search Engine tool, that got released today.”

Paul Graham: 18 Mistakes that Kill Startups
“ In the Q & A period after a recent talk, someone asked what made startups fail. After standing there gaping for a few seconds I realized this was kind of a trick question. It's equivalent to asking how to make a startup succeed—if you avoid every cause of failure, you succeed—and that's too big a question to answer on the fly. ”

Code Project: White Screen of Death
“ Imagine the following scenario. One morning you arrive at your workplace, turn your monitor on, and then try to open a form in your application that builds and runs perfectly well, and instead of seeing your handcrafted form, you see a big frightening screen with the following title in red, and a big X near it”

MSDN Mag: 8 Simple Rules For Developing More Secure Code
“ I have been lucky enough to work with thousands of good developers over the years who wanted to learn how to write more secure software. During this time, I've also learned a great deal from people who are very good at building secure systems, and this got me thinking. I wondered if there were common skills or habits the "secure developers" share. It turns out the answer is a resounding yes! This article presents that list of habits shared by developers of secure code.”

Terrasoft: Terra Soft to Provide Linux for the Sony PLAYSTATION
“ Yellow Dog Linux v5.0, Terra Soft's next generation Linux operating system for Power will support PLAYSTATION 3, providing an end-user experience far surpassing previous versions. Through an aggressive, rapid co-development project conducted by Carsten Haitzler and the Enlightenment development team, Yellow Dog Linux v5.0, built upon Fedora Core 5, now integrates the next generation "E17" desktop in order to provide an unprecedented level of function and interface aesthetic. Designed for users of all ages and all levels of experience, Yellow Dog Linux v5.0 is Terra Soft's most advanced distribution to date.”

ComputerWorld: Cobol Coders
“ Cobol, that mainstay of business programming throughout the 1960s, ’70s and ’80s, is not going away anytime soon. In a Computerworld survey early this year of IT managers at 352 companies, 62% of the respondents reported that they actively use Cobol. Of those, three quarters said they use it “a lot” and 58% said they’re using it to develop new applications.”

O'Reilly: Ballmer on the Web
“ In an interview on Businessweek, Steve Ballmer, CEO of MS, talks about the web, business models, XBOX, and Zune. It's a very thoughtful look at part of the tech landscape through Ballmer's eyes.”

LA Times: Google Puts Lid on New Products
“ In another sign of Google Inc.'s growth from start-up to corporate behemoth, the company's top executives said Thursday that they had begun telling engineers to stop launching so many new services and instead focus on making existing ones work together better.”

Martin Fowler: Designed Inheritance
“ One of the longest running arguments on object-oriented circles is the debate between OpenInheritance and Designed Inheritance. The principle of Designed Inheritance is probably best summed up by Josh Bloch: "Design and document for inheritance or else prohibit it". With this approach you take care to decide which methods can be inherited and Seal the others to stop them being overridden.”

Stan Lippman: The art of programming
“ The reason we say programming remains an art, not a science or an engineering discipline, is because we haven’t as yet been able to break it down into component steps and mechanize it. Once we succeed in that, a new scale of possibility emerges: programs to write programs from people-oriented design languages (PODL), programs to prove program correctness, and to analyze and support semantic query. Until then, however, programming remains an art, or so conventional wisdom has it.”

MSDN Mag: Build A Great User Experience With Windows Presentation Foundation
“ It goes without saying that standalone applications naturally support menu-driven navigation and browser applications naturally support hyperlink-driven navigation. But the Windows Presentation Foundation application model lets you mix and match elements of both. In most cases, this involves either partially or completely integrating a hyperlink-driven experience into a standalone application. The combination you use should be based upon the type of experience that will most benefit your users. Once you've decided on the experience you want to deliver, you can use the Windows Presentation Foundation application model to build it.”

MSDN Mag: IronPython
“ This column will give a brief overview of Python and what sets dynamic languages apart from other languages. I will discuss iterative development, describe how IronPython integrates with .NET while staying true to Python syntax, and show the advantages of using IronPython to utilize .NET.”

page footer graphic