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.
- Train clear logical thinking.
- Understand modern software concepts and environments.
- Learn to effectively implement customer needs.
Some interesting resources on how to do things and how things work – words, pictures and videos. Pick your favorite media for learning.
While browsing through the presentation Berkeley View2, I came across this interesting slide (dated 2003).
The presentation itself is a wealth of very useful information on the research in parallel programming. Also see:
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)
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.
Design Patterns for Parallel Programming
Thirteen Dwarfs – Computational Kernels
The Fundamental Paradigms for Programming are going to be Challenged
“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.
Read an ad in an airline magazine. A reason for blogging:
Because in my world, there are no strangers. Only family and people, I’ve never met.
This is an ad for Reliance Mobile. One of those nice ads.
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.
What happens when you discover a cool blogger? In his/her blogroll, you are guaranteed to find several other cool bloggers too.
This is what happened when a friend sent me a link to this one which led me to this and this. One of life’s pleasures – finding people with a sense of humor and passion.
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:
- What is it?
- Who is doing it?
- How does it work?
- Why is it significant?
- What are the downsides?
- Where is it going?
- 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.
The Self Describing Web
From the Introduction:
The World Wide Web has at least two characteristics that distinguish it from many other shared information spaces:
- The Web is global: the documents on the Web are contributed by and accessed by a very large number of users.
- Supporting ad-hoc exploration is a goal of the Web. Users must therefore be able to get useful information from documents prepared by people whom they don’t know, and with whom they have not coordinated in advance.
Why it is worthwhile to make the web self-describable:
The Web is designed to support flexible exploration of information, by human users and by automated agents.
When self-describing resources are linked together, the Web as a whole can support reliable, ad hoc discovery of information.