LinkLog: Software

This blog is such a wonderful source of information. Here are just a few of the posts:

How a beautiful idea becomes a Frankenstein system is a must read for every software developer. Here is a small fragment of a much more comprehensive diagram in this post.


I always thought that we built tools to take boring repetitive parts of the work and automate it. How Tools Frame Programmer’s Mindset makes you reflect a lot more about the tools. What qualities should effective programmer tools have? The author identifies three:

  • Usability – enhance flow of programmer’s ideas or at least don’t impede and interrupt this flow.
  • Representation – enable easy for understanding and modification representation of the structure, ideas and domain concepts in the code.
  • Agile development friendly

From Beginners to master programmers – First Language and More is a problem that faces every training organization. When I started working on Learning Point, this was one of my constant worries. I have seen several threads of discussions on the choice of first language for programming.

This blog post is a good starting point. Hopefully I will have more to contribute after my current experiment with 5 interns for the next six months.

  1. Train clear logical thinking.
  2. Understand modern software concepts and environments.
  3. Learn to effectively implement customer needs.

Resources: Parallel Programming Research

Parallel Path from Berkeley, CA

I got this from ACM Tech News. Look at the links below the article. They lead to some cool resources.

Parallel Computing Lab, Berkeley, CA

Download the presentation from this page. It has a wealth of useful information.

Parallel Programming Model Watch

There is not just one model for parallel programming. I watch this page (with InfoMinder)

Dwarf Mine

A dwarf is an algorithmic method that captures a pattern of computation and communication.

I blogged about 13 dwarfs last year. I guess, they now changed the title to Dwarf Mine to keep the idea of mining more patterns.

Research at Intel

Intel, Microsoft have lots of efforts going on in this area. They fund research (like this Berkeley paralabs initiative). Sun is active too.

Parallel Programming will have the deepest impact on a wide variety of solutions to computational problems. It is an exciting area to follow.

See Also:

Design Patterns for Parallel Programming

Thirteen Dwarfs – Computational Kernels

The Fundamental Paradigms for Programming are going to be Challenged 

It is a River…

“It is a river, not a reservoir” from A guide to the overwhelmed: Part-II.  Rob articulates what most of us feel, so well.

One of the greatest and most depressing moments of enlightenment that ever dropped itself on me was the realization that I was not going to learn everything I wanted to learn in my lifetime. I was not going to do all the things I wanted to do.

I stopped worrying about it now.  I read a bit, blog a bit, talk about it a lot and think about it.  I feel happy when I get a few ideas and dream about a day where I can implement them.

via Stephen’s OLDaily.

Only Speak When It Improves the Silence

From  Flash Coder’s Etiquette:

Each email is a request for the time of other people… they have to spend at least some time with it, even if it’s just to delete your message unread. If you post too much, without offering corresponding value for the reading, then you risk diminishing the community, and risk getting yourself killfiled in the process.

That may be a good test for blogs, as well. I wonder how many of my posts qualify.

Resources: 7 Things You Should Know About

This is one of the most useful resources I found yesterday. It is called Seven Things You Should Know About from Educause Learning Initiative. From their page:

7 Things You Should Know About…pieces provide quick, no-jargon overviews of emerging technologies and related practices that have demonstrated or may demonstrate positive learning impacts. Any time you need to explain a new learning technology or practice quickly and clearly

They cover a variety of emerging technology topics.  For each topic, they describe:

  1. What is it?
  2. Who is doing it?
  3. How does it work?
  4. Why is it significant?
  5. What are the downsides?
  6. Where is it going?
  7. What are the implications of teaching and learning?

These questions (and the description) provides a much better overall perspectives of the topics covered. The coverage is non-technical and is a great way for any one curious about the topic to get a useful overview.

I like this format so much, that I plan to create a template and use it for our learning wiki.