You are not logged in [login] | [register]

you are here: home » blogs (technical) » development news

SEARCH FOR A FEED

Google
Web RSSMad.com

Searching 176810 articles in 8938 feeds.

RSS CATEGORIES

TELL A FRIEND

Do you like RSS MAD? Why not spread the news and tell a friend about it - it's as easy as filling out this form!

Phil Windley's Technometria

added: Wed, 21st September 2005 | 494 views | 0x in favourites
feed url: http://www.windley.com/rss.xml

Organizations Get the IT They Deserve

Latest feed entries:

IT Conversations Needs Web Editors

As you're probably aware, IT Conversations, and other Conversations Network Channels, are made possible through the efforts of a small army of Web site editors and audio engineers.

We have a terrific team of people who help out and Doug's put together a great system for managing the workfow of producing shows Now, with a bit of attrition in the ranks of both our website editors and series producers and a new channel on the way, it's time to add to the team once again.

If you'd like to help us write descriptions for our programs, track down and crop photos and sync the occasional slideshow, here's your chance. The word "volunteer" isn't quite right since in fact Web editors are paid (thanks to donations from our paid members), but you're not going to get rich. You'll get a whopping US$15 for each description you write - US$25 if you also sync a presentation's slides to the audio.

You'll find details on TeamITC (as we call it for historical reasons) and our Apprenticeship Program on The Conversations Network web site.

Tags: itconversations

Pricing Bulk Cold Storage and Real Engineering

disks up close

Image by penguincakes via Flickr

James Hamilton has put together an analysis of the cost of bulk cold storage. That is, the cost of storing data, including the fully burdened cost of power in a data center, without the associated transport fees. The answer: $0.80/GB/year.

Wow--that's cheap. And of course it's getting cheaper. When James did a similar analysis using numbers from two years ago, the cost was $2.50/GB/year.

One thought I had as I looked at James' analysis is that we don't teach enough people to do these kinds of calculations. Not that there's anything particularly difficult about the math, but there are things to know and techniques to use.

I often say, quoting Pat Taylor, one of my professors in my undergraduates days in metallurgical engineering, that an engineer is some one who can do for a dollar what any fool could do for two. Of course, building performant, efficient code is part of this, but so is understanding the cost of bulk storage and other resources and using that in the trade-off.

Tags: storage s3 amazon aws engineering

Installing IE6 and IE7 Side by Side

Windows Internet Explorer

Image via Wikipedia

If you do Web design, and who doesn't these days, then you might be interested in seeing how your site operates in multiple browsers. You could, of course, create a virtual machine for each version of Internet Explorer that you want to test against. But there's a better way.

There is a repository of standalone IE versions all the way back to 3.0. Tredsoft has an installer that will install any or all of these in one convenient package. A few minutes after starting the download, I had IE6 up and running in all it's, ahem, glory. IE7 runs right along side without a hiccup.

Tags: internet+explorer web+design windows

Moving Jobs Between Printers in OS X

An Epson C45 Inkjet Printer.

Image via Wikipedia

My wife printed 6 documents to a printer that is configured on her laptop, but not available. She came to me and asked if I could help. I said she'd have to delete them from the print queue and reprint them to the right printer. "Can't you just grab them and move them to the right printer?" she asked innocently.

Of course not. Or, can you? Turns out you can. I opened the other printer, highlighted the jobs, and simple drug them over. They started printing. I was pleasantly surprised. File this under "sometimes we want to make things more complicated than they need to be."

Tags: osx printing

Asymmetric Follow a Core Web 2.0 Pattern

Scrabble used to try to find the Question to t...

Image via Wikipedia

James Governor wrote a post on asymmetrical follow as a core Web 2.0 pattern earlier this month. I ran across it when JP referenced it in his quest to decide if Twitter is a publishing platform.

James uses this metaphor to explain asymmetric follow:

You're sitting at the back of the room in a large auditorium. There is a guy up front, and he is having a conversation with the people in the front few rows. You can't hear them quite so well, although it seems like you can tune into them if you listen carefully. But his voice is loud, clear and resonant. You have something to add to the conversation, and almost as soon as you think of it he looks right at you, and says thanks for the contribution... great idea. Then repeats it to the rest of the group. That is Asymmetrical Follow.
From James Governor's Monkchips » Asymmetrical Follow: A Core Web 2.0 Pattern
Referenced Sat Dec 27 2008 16:49:30 GMT-0700 (MST)

Twitter is perhaps the best example of asymmetric follow. Most people don't follow everyone who follows them. If they did, the Twitterverse would be divided into cliques (in a graph theoretic sense). It's not. I suspect there are very few disconnected islands of uses on Twitter unless they've set out to intentionally create one.

Asymmetric follow is, in fact, one of the things that makes Twitter so interesting. As I see the interactions that those who I follow have with people I don't, I expand my circle of people who I follow. I see interesting things that I would never see any other way and hear interesting viewpoints that I would otherwise miss. That brings us to JP's post.

JP spent some time doing a little experiment:

Now for me one of the ways of testing something as a publishing platform (as opposed to a communications medium) is the depth of language used, the breadth of subjects covered. So I started "testing" Twitter. What I did was enter "random" words into Twitter search, and observe the results. I converted that into a game. The rules were simple:

  1. I had to know the word and what it meant
  2. It had to be a word that had found its way into the language proper, as opposed to one that was "technically" included, that made its way only because it formed part of an obscure branch of science.
  3. The number of results returned had to be zero.

I read a lot. I have been reading voraciously for over forty years. I read widely. And I have a good head for words, coupled with a decent memory. Years of playing around with crosswords and Scrabble have, if anything, sharpened my vocabulary.

Yet it took me several attempts before I found a zero. Aristology was my best for some time, with just one result returned, until I tried zeuglodont. Bugloss returned two, which was pretty good.

From Twitter from Aristology to Zeuglodont
Referenced Sat Dec 27 2008 16:54:40 GMT-0700 (MST)

JP's point is that people are discussing almost everything imaginable on Twitter--not just the innanities that we might presume at first glance. Asymmetric follow ensures that you'll be exposed to a wider range of those ideas than you would otherwise. A powerful one-two punch.

Note: James also discusses some of what's behind Twitter's rearchitecture, including Scala Lift and the use of the publish and subscribe metaphor for supporting asymmetric follow in his piece which is interesting in it's own right. He references one of JP's posts on Twitter's architecture from last December that's definitely worth a read.

Tags: twitter follow social+networking cs462

Infrastructure Automation Increases Operational Efficiency

Kynetx Logo

Last week Jeff Atwood wrote a piece about why throwing hardware at a problem makes sense in some situations. He's careful to avoid the trap of thinking that throwing hardware at a poorly designed program will do more than buy you a little time, but makes a good point:

Clearly, hardware is cheap, and programmers are expensive. Whenever you're provided an opportunity to leverage that imbalance, it would be incredibly foolish not to.
From Coding Horror: Hardware is Cheap, Programmers are Expensive
Referenced Sat Dec 27 2008 15:42:36 GMT-0700 (MST)

Riffing on that, Gordon Weakliem makes a related and somewhat contradictory argument: Programmers are Expensive, But Operations are More Expensive. Gordon's point is that hardware has to be managed:

It's pretty simple to manage a single server, but each additional server starts to increase operational complexity. Before long, you're hiring people to manage the additional servers, and these people have a different skill set. They're not programmers, they're experts at running networks. A good engineer is a godsend to a programming team, relieving programmers of all kinds of tasks that shouldn't be distracting them, and that programmers probably aren't that good at anyway. But operations experts aren't cheap either, maybe not the price of a programmer, but not cheap by any stretch. Furthermore, horizontal scale introduces new problems: power consumption, heat dissipation, etc.

Gordon later states that large, complex systems of servers have to be carefully deigned to be manageable.

It's true that services like Amazon and Google are examples of massive horizontal scale, but these systems didn't happen by accident. They were the result of careful planning and good architectural principles. The danger in the "throw hardware at the problem" aphorism is that it's really easy to ignore true architectural problems in the process. As always, there's a balance between thinking an acting that's at play. Like all silver bullets, Moore's Law comes with caveats.

Most modern as-a-service offerings rely on multiple servers with myriad functions. It's silly, and I'd sure Jeff would agree wholeheartedly with this, to ignore the architecture of this system. Further, not using infrastructure automation to take as much operational expense out of the system is foolish.

I've been singing the praises of Puppet for months. Kynetx is a long way from achieving our operational goals, but what we're done using Puppet and Nagios allows two very part time people to manage and monitor more than a dozen servers. If you're not using Puppet to manage your servers, you're spending more time and money on operations than you need to.

Tags: kynetx operations programming engineering puppet nagios automation cs462

Innovation and the Secret Sauce

Image of Craig Burton from IT Conversations

In this week's Technometria podcast, Craig Burton joined Scott and I to discuss some of his ideas about innovation. Craig reviews topics covered in three of his recent essays and talks about how innovation is often misunderstood. He reviews how technology companies make mistakes with customer demographics, as well as how to distinguish innovation myths from innovation realities. He also presents an example of true innovation as he describes how Novell created software infrastructure as a new software category.

Here's links to the essays:

Tags: itconversations technometria innovation

Working the Infrastructure

Die micrograph of Intel's Dunnington 6-core pr...

Image via Wikipedia

I ran across a couple of interesting blog posts that got me thinking about infrastructure and automation.

The first was from Markus Frind, the CEO of Plentyoffish.com. Markus reported that according to hitwise.com, Plentyoffish was the 13th most heavily trafficed site last year. It may be the most popular site you've never heard of if you're not into online dating.

The interesting part of that is that all this is done with just a handful of servers.

  • PlentyOfFish (POF) gets 1.2 billion page views/month, and 500,000 average unique logins per day. The peak season is January, when it will grow 30 percent.
  • POF has one single employee: the founder and CEO Markus Frind.
  • Makes up to $10 million a year on Google ads working only two hours a day.
  • 30+ Million Hits a Day (500 - 600 pages per second).
  • 1.1 billion page views and 45 million visitors a month.
  • Has 5-10 times the click through rate of Facebook.
  • A top 30 site in the US based on Competes Attention metric, top 10 in Canada and top 30 in the UK.
  • 2 load balanced web servers with 2 Quad Core Intel Xeon X5355 @ 2.66Ghz), 8 Gigs of RAM (using about 800 MBs), 2 hard drives, runs Windows x64 Server 2003.
  • 3 DB servers. No data on their configuration.
  • Approaching 64,000 simultaneous connections and 2 million page views per hour.
  • Internet connection is a 1Gbps line of which 200Mbps is used.
  • 1 TB/day serving 171 million images through Akamai.
  • 6TB storage array to handle millions of full sized images being uploaded every month to the site.

Did you catch that? The 13th biggest Web site by visitors is run on five servers! I'm in awe. Note that these are Windows servers.

The seconds was a post about Gnip's numbers:

  • 99.9%: the Gnip service has 99.9% up-time.
  • 0: we have had zero Amazon Ec2 instances fail.
  • 10: ten Ec2 instances, of various sizes, run the core, redundant, message bus infrastructure.
  • 2.5m: 2.5 million unique activities are HTTP POSTed (pushed) into Gnip's Publisher front door each day.
  • 2.8m: 2.8 million activities are HTTP POSTed (pushed) out Gnip's Consumer back door each day.
  • 2.4m: 2.4 million activities are HTTP GETed (polled) from Gnip's Consumer back door each day.
  • $0: no money has been spent on framework licenses (unless you include "AWS").

These too are impressive numbers in their own way. Built entirely on EC2, this is a service that represents a different way to skin the cat with cloud-based computing.

One of the things I liked about the Gnip post was their discussion of architecture and simplicity. One thing struck me: no database.

The reason that stands out is that that was a major design goal for me as I set out to design and build the Kynetx Network Service (KNS) that forms the core of out product offering. I've had such headaches managing services with databases that I was determined to keep them out. We made tough decisions sometimes that would have been easier to do with a database in that architecture.

Sometimes that works and sometimes it doesn't. In the case of a dating site, it's hard to imagine how some kind of database wouldn't be central to the design. In the case of Gnip or Kynetx, the service can and should be delivered without it. Plentyoffish has scaled well by scaling vertically (5 beefy servers) whereas Gnip and KNS are designed to scale horizontally virtually forever.

Tags:

Azigo's RemindMe Service and Kynetx

RemindMe service on Google.

Yesterday Azigo (Parity) launched it's RemindMe service. RemindMe uses Information Cards to represent relationships that are meaningful to the shopper and then overlays Google and Yahoo! with reminders to indicate when those relationships might be valuable. For example, if you're a AAA member, you get a discount at Hertz. RemindMe will alert you to that fact.

The reason I'm jazzed about it is that Kynetx Network Service (KNS) is being used to provide the overlays. In our partnership, Azigo is supplying the cards and selector (including the browser add-on). The add-on calls our service depending on what cards are installed and we update the page.

The selector only works on Windows for now, but the service works on both Internet Explorer and Firefox. KNS is browser and system independent, so it's a good combination. If you're on Windows, go install the selector and a card or two and try it out. As an example, install the AAA card and then do a search for "hertz" or "car rental."

Kynetx is convinced that Information Cards are a key technology that will be necessary to transform the current ad hoc Web experience. A firm foundation of identity allows context-aware services to be built that are both general and powerful. Combining cloud based services with an Information Card-based browser add-on yields real transformative power. Without it, Information Cards are all about data. With KNS, Information Cards are about action.

Tags: kynetx azigo infocards kns

Parallels Has a Command Line Tool Too!

Parallels command line tool suspending Vista

When I wrote the head to head review of Parallels and Fusion for InfoWorld, I also did a sidebar on remote control of hypervisors and guests.

At the time I wasn't aware that Parallels also has a command line tool called prlctl for managing the hypervisor and controlling guests. A simple "man prlctl" told me all I needed to know and a minute later, I was starting, stopping, and suspending guests from the terminal. The screenshot to the right (click to enlarge) shows it in the process of suspending a Vista operating system guest on my machine.

In addition to power-on settings, you can create, clone, delete, and perform other operations on guests, manage snapshots, and change guest settings. The tool can work remotely if needed--I just used it on my local machine. An API is available if you want to write your own tools to interface with Parallels.

There are a lot of little known power-user features in both Parallels and Fusion. Partly that's because both companies have targeted Windows users as the primary customer and thus highlight features that they'll appreciate.

Tags: parallels fusion virtualization infoworld

Javascript Debugging in IE

Windows Internet Explorer

Image via Wikipedia

I've spent the last several days immersed in debugging Javascript in Internet Explorer. It's not as bad as it could be. After all, I'm using jQuery and that cuts down on the cross-browser incompatibilities.

In it's normal usage, Kynetx Network Services (KNS) compiles our domain specific language, called KRL, into Javascript. Since we test that the Javascript is compatible with multiple browsers, normal rule evaluation is pretty safe.

However, like any good DSL, KRL has a way of dropping out of the DSL and into the base system--in this case Javascript. That's when things get dicey. There are so many ways of creating browser problems when you're working with Javascript and CSS.

In Firefox, the venerable Firebug add-on is the tool for debugging CSS and Javascript. I use it's console all the time to execute Javascript against the page and see what works and what doesn't.

Alas, Firebug isn't available for IE. There are a few "for pay" tools that are supposed to be similar, but I haven't been able to see to my satisfaction what I'd get for my money. I also understand that Visual Studio has good tools.

When I was at Add On Con last week, Joshua Allen from Microsoft said that you should develop in IE8 because it has the best developer tools. I found that to be true--although they still leave a lot to be desired compared the Firefox.

The first thing you have to do is turn on debugging in IE by making sure that the "Disable script debugging" options are unchecked.

Enabling debugging in IE

The error messages you get are pretty cryptic, but they at least give you a clue about where to look. The worst part is that they don't give you the name of the file where the error occurred. Ugh. @whitmer suggested Companion JS (not free for commercial use). I haven't tried it, but it looks like its a step above the stock debug messages.

Another good tool is the IE Developer Toolbar (free). This gives you the ability to browse the DOM, change CSS properties on the fly, clear the browser cache, etc. As far as I can tell there's no actual Javascript debugging and certainly no console. Still, being able to see the DOM, especially as its modified by Javascript components has been a great help.

I found this tutorial on using Web Developer Express Edition to debug Javascript, but I haven't tried it.

So far, that's what I've discovered. I'm sure there are better ways and tools. I look forward to someone educating me.

Tags: debugging internet+explorer kynetx firefox

Fusion vs. Parallels: The Horse Race Continues

My second review of Fusion and Parallels appeared today in InfoWorld. I reviewed Fusion 1.0 and Parallels 3.0 a little over a year ago. They've both had major upgrades since then, so it was time for another look.

The bottom line is that there's not a lot of difference between these two products. They both perform well and do what you'd expect them to. They both have lots of cool features--especially for Windows users on the Mac--the core audience. The differences are minor. While some of those differences might be the reason that you'd prefer one over the other, they've not a reason why everyone should prefer one to the other.

I concentrated on a few things that many people want to do that can be tricky for virtualized environments: printing, 3D graphics, P2V conversions, and integration. The biggest disappoint in those areas was the graphics. My conclusion was that while both have come a long way, they're not to the point where you can get rid of your Bootcamp partition if graphics performance is important to you.

I also put together a sidebar on remote control for guest machines. Parallels introduced an iPhone app whihc is mostly a cool way to illustrate that the hypervisor has a networked API. Fusion has support for vmrun, VMWare's command line control program.

Here are a few things I wrote up as part of the review that fell on the cutting room floor:

I ran into an occasion to expand an existing drive in Fusion (one of the big benefits of virtual machines) and found the process to be easy, but slow. One catch: you can't have existing snapshots on the drive. That makes sense, but deleting a snapshot is slow work and if you've enabled auto snapshots, you might have a lot of them.

If you've going to run applications using Unity or Confluence, the guest OS---XP or Vista---doesn't matter much. XP will run almost all the software that Vista will and presents a smaller workload for the hypervisor. In Unity and Confluence, the user is opting to run Windows application in an OS X experience. Vista may not present many advantages in that setup.

Parallels 4.0 uses a different virtualized hardware stack than earlier versions. As a consequence, when you convert a Vista machine from an earlier version of Desktop, you will probably be asked to "reactivate" you copy of Vista. The problem is that the reactivation has to occur before the Parallels Tools can be loaded and the tools have to be loaded before the network will work. You're forced to do a phone activation. I've put details describing how this works in an earlier post.

Fusion supports multiple displays in full screen mode while Desktop does not. Using multiple displays is as easy has selecting an option in the "View" menu and then entering full screen.

While both products allow you to choose whether the host or guest OS should be optimized for performance, Parallels has a feature called "adaptive hypervisor" that allocates host resources on the fly based on how you're using the machine.

Both systems have made strides in making Windows installation as painless as possible---an important feature for switchers who may have never installed an operating system before. For example, both now automatically detect the OS and version from the installation disk and set reasonable defaults.

Tags: infoworld virtualization fusion parallels

The Future of Browsers

The final session of the day is a panel on the future of the browser. On the panel are Joshua Allen of Microsoft, Mike Shaver of Mozilla, and Nick Baum of Google. Noticeably missing are Opera (excused due to distance) and Apple (absent without excuse). Douglas Crockford, of Javascript fame, is the moderator.

Douglas asks is the add-on the best model for letting users solve their frustrations with the lack of capability in a browser. Joshua talks about Microsoft's goal to move toward extensibility through Web standards where ever possible and get away from native apps. Mike says that add-ons solve the problem of having multiple special purpose applications. The browser allows a piece of software to accompany the user on the Web as part of the browser experience.

Mike says there will be convergence on similar functionality but doesn't think there will be a common set of touch points for all browsers and all plug-ins. I think that means no common API, but I'm not sure.

Douglas asks if there should be a standards process around the add-on. Joshua doesn't think we need standards for convergence to happen. He says "its pretty clear what others are doing for extensibility and it's pretty easy for others to adopt it." Mike doesn't think it makes sense to codify behaviors that we might want to change later. We don't know enough to create standards yet.

The Web is under attack by proprietary platforms like Air, Silverlight, etc. They have clear and obvious advantages but they have one big disadvantage: their lack of openness. Nick says that we need to accelerate the inclusion of the capabilities of these closed platforms in open standards and browsers. "We need more stuff in the browser faster." Mike says that the competition of Web browsers has led to improvements like Javascript being 10x faster now. Joshua thinks that stories about the threat to the Web are highly overrated. The Web has made great strides over the last few years.

Joshua says that no one controls enough of the market to have veto power, so everyone needs to work together.

Douglas: the biggest threat to openness is mobile. Mobile platforms have been trying to lock into closed systems since it's inception. Now they're moving to the Web, but trying to make the mobile Web something different in order to control it. Nick thinks that the trends are toward open platforms for the Web (references iPhone and Android). This is the right direction. Mike says that we need to continue to improve the mobile experience so that it's the same as the non-mobile web.

Joshua thinks there's some wishful thinking there because with a cell phone the company that supplies bandwidth controls the physical infrastructure. Without rules that require carriers to allow competing backend services, they will continue to create walled gardens. Mike argues that as mobile platforms get more capable it will be more and more difficult for service providers to lock users into their own services.

Tags: addoncon addons internet+explorer firefox browsers

Multi-Platform Add-On Lessons Learned

Words of advice from the multi-platform add-on session at AddOnCon:

  1. Start from the beginning to support multiple browsers by not using features that are specific to one or the other.
  2. Keep things like XPath expression standard
  3. Test IE add-ons on Vista and IE8 first--especially if you're going to use an external process.
  4. Using an external process in IE can greatly increase testability
  5. Modularity and code portability
  6. The learning curve for IE add-on development is steep. Once you're on top, it flattens out and gets easier.
  7. Crashing the browser is easy in IE and the opportunity for conflicts is high
  8. Make sure your code can generate debug reports and give the user the opportunity to forward them (debughelp.dll is your friend)

Tags: addoncon addons programming windows internet+explorer firefox

ADD A FEED

Is RSS MAD missing something? Tell us about new feeds here.