views:

51

answers:

4

Sometimes i would like to know how a cool software is made or the brilliant architecture behind an hot web service; but the software is not open-source and the web service have no public documentation.

Do you have any techniques to discover some hints on how a software is made?

Is it possible to do it?

Do you know some site that publish architectures\technologies used by softwares\web service?

EDIT:
Found this for Windows software

+1  A: 

Check the response headers. It might say things like operating system and web server.

Cache-Control   private
Content-Type    text/plain; charset=utf-8
Content-Encoding    gzip
Vary    Accept-Encoding
Server  Microsoft-IIS/7.5
Date    Sun, 25 Apr 2010 12:24:05 GMT
Content-Length  40

Check urls format. It might say things like server technology (.aspx .php .do (java)) etc.)

www.a.com/Stuff.aspx

Check if the same request can respond to two different HttpAccept headers. Might be rails. Check if www.a.com/public/images/rails.png exist. etc... many things you can do.

clyfe
A: 

You can learn a certain amount by observation, but if it's a closed source web service then the best source of information will be the original authors of the software. This might be:

  • White papers on the company web site.
  • Conference papers.
  • Developer blogs.
  • Company staff at trade shows.
  • ... or, you could write to the company and ask.

There is no guarantee, but people are often extraordinarily helpful if you are genuinely interested in their work.

Good luck.

richj
+1  A: 

The best site for reading about the architecture of hot web sites is definitely High Scalability. It has lots of stories covering different aspects of architecture, not just scalability. It covers the usual suspects - eBay, Facebook, Google - but also some more obscure sites as well, such as our own StackOverflow. The articles generally combine a summary of whatever is in the public domain plus informed analysis. The site also includes interviews with sites' architects.

APC
+1  A: 

If you are on Mac you can use F-Script to inspect the view hierarchy of a cocoa application. Not only lets it you see how it's put together it also allows you to tweak with it.

Also on Mac, Apple Instruments lets you monitor all system calls that an application is making. I have used it to learn about iPhoto loads thumbnails (because I was making a thumbnail viewer).

neoneye
Pretty good advice, thanks.
systempuntoout