Archive for the ‘links’ tag
Today I ran across a thought provoking article on Dr. Dobb’s. The thesis is that there is a perception that Open Source projects copies what already exists and it’s in Closed Source where the real innovation occurs. This perception exists in part because how geeks choose what to work on.
There is most definitely evidence to the contrary and also to support that perception, but the main point of the article is that there is a fundamental problem in Open Source which manifests itself as this perception. The problem is with project selection.
Now, Dijkstra wrote a memo in 1982 that describes 3 steps to use when selecting a topic for your research. These rules translate really well to hacking and all geeks should consider them when selecting an Open Source project to work on. The rules are:
- Raise your quality standards as high as you can live with, avoid wasting your time on routine problems, and always try to work as closely as possible at the boundary of your abilities. Do this, because it is the only way of discovering how that boundary should be moved forward.
- We all like our work to be socially relevant and scientifically sound. If we can find a topic satisfying both desires, we are lucky; if the two targets are in conflict with each other, let the requirement of scientific soundness prevail.
- Never tackle a problem of which you can be pretty sure that (now or in the near future) it will be tackled by others who are, in relation to that problem, at least as competent and well-equipped as you.
Let’s break this down a little so it can be easily digested.
Rule 1 is an internal one and it tells us that the obviously possible should be shunned as well as the obviously impossible: the first would not be instructive, the second would be hopeless, and both in their own way are barren.
Next, Dijkstra was referring to scientific projects, but Rule 2 can be easily mapped to software projects also.
Rule 3 is the most important from an Open Source perspective. It ensures that your contributions are unique and move the-state-of-the-art forward. As Dijkstra so eloquently puts “If others will come up with as good a solution as you could obtain, the world doesn’t loose a thing if you leave the problem alone. A corollary of the third rule is that one should never compete with one’s colleagues. If you are pretty sure that in a certain area you will do a better job than anyone else, please do it in complete devotion, but when in doubt, abstain.”
I will be applying this rules to my future project selection. I hope you do too.
Nicholas Firth-McCoy makes a really great point regarding the pricing conventions used today for SaaS applications. The question is Should customers be charged more for security?
Nicholas nails the answer right on the head with this remark:
However, I think we should draw the line at inventing “security features”.
Imagine a service that offered you ‘hashed passwords’, ‘encrypted credit card storage’, ‘backed up data’ or ‘up to date libraries’ if you pay for their advanced plan. Not cool, right?
So why are we charging extra for SSL?
Script Junkie | Introduction to Complex UIs Using jQuery UI
Dabeaz: Class decorators might also be super!
Python’s super() considered super! « Deep Thoughts by Raymond Hettinger
VMware Communities: Eth0 disapears in VMware and Ubuntu…
Set up a minimal Ubuntu server in VirtualBox « The Well-Tempered Studio
How to Use the Django Sites Framework
AtomEnabled / Developers / Atom Syndication Format
Cloning and Copying VirtualBox virtual machines « Stuart’s Notes
How to start VirtualBox automatically? No “boot.local&q (View topic) • virtualbox.org
Start a VirtualBox VM as a Service – Ubuntu Forums
How to Setup VirtualBox as a Service in Linux [Glump.net]
The Geek Manifesto
Dorophone: Deep Emacs Lisp Part 1
EmacsWiki: Zen Coding
Post to WordPress blogs with Emacs & Org-mode | Nethazard.net
Kristian Kristensen’s Blog » Installing Clojure, SLIME in Emacs Via ELPA on Windows With a Bit on Swank
Ben’s Journal: 11 Concepts The Emacs Newbie Should Master
The Cicada Principle and Why It Matters to Web Designers » HTML & CSS, Layout » Design Festival
Jetpack Flight Log » io-language
Dynamic Binding in C# – CodeProject
Plain English Explanation of Big O Notation ~ C for Coding
Understanding Parallel Computing: Amdahl’s Law | Linux Magazine
ConfigParserShootout – PythonInfo Wiki
Vivek Haldar : The levels of Emacs proficiency
JSON Interpreter – ANTLR 3 – ANTLR Project
Make: Online | Why the Arduino Won and Why It’s Here to Stay
Work with Git from Emacs
Dabeaz: The Superboard Takes Pycon!
How this site was created
Brushing up on Computer Science Part 1, Big O » Victus Spiritus
VIM as Python IDE | Alain M. Lafon
Python and vim: Make your own IDE | tail -f findings.out
Studio Styles – Visual Studio color schemes
Code Snippets – Snipplr Social Snippet Repository
An O(ND) Difference Algorithm for C#
How to Create Server-Side Paging for DataTables.Net with ASP.Net « ActiveEngine
How to make a transparent PNG image for IE6 using The GIMP « Matthew Capewell’s Blog
jQuery plugin: Tablesorter 2.0
DataTables (table plug-in for jQuery)
jQuery Grid Plugin
ASP.NET MVC 2 Templates
Take a Mulligan with Redo Backup & Recovery | Linux Magazine
Network Load Balancing : Web Farm Support : Configuring Servers : The Official Microsoft IIS Site
Network Load Balancing, Session State and IP Affinity
Using org-mode as a Day Planner – Lost in Technopolis
Org Mode – Organize Your Life In Plain Text!
The Hacker’s Diet
GNU Emacs Theme Generator
Video : Using Application Settings – The Official Microsoft Silverlight Site
Django | Outputting CSV with Django | Django documentation
13.1. csv — CSV File Reading and Writing — Python v2.7.1 documentation
In the Box – MVVM Training « Karl On WPF – .Net
20 Interesting WPF Projects on CodePlex (Some for Silverlight too) – Pete Brown’s 10rem.net
gitcheat.png (PNG Image, 1422×1355 pixels) – Scaled (78%)
.NET and Certificate Stores
Extending .NET Cryptography with CAPICOM and P/Invoke
P/Invoking CryptoAPI in .NET (C# version) – Decrypt my World – Site Home – MSDN Blogs
Extending .NET Cryptography with CAPICOM and P/Invoke
GetLastError and managed code – Adam Nathan’s Old Blog – Site Home – MSDN Blogs
Diceware Passphrase Home
Schneier on Security: Changing Passwords
Playing with LINQ For SQL in a Windows Forms Application
HTML5 Boilerplate – A rock-solid default for HTML5 awesome.
Running Shells in Emacs: An Overview | Mastering Emacs
PyPy Status Blog: Efficiently Implementing Python Objects With Maps
IBuffer « A Curious Programmer
The Abstract Factory: ibuffer: If you do not use it, you are insane
emacs-fu: dealing with many buffers: ibuffer
Understanding continuations | Lambda the Ultimate
How to obtain and install an SSL/TLS certificate, for free
HTTP cookies, or how not to design protocols
Memoization in Python: easier than what it should be
Setting up Emacs Org-mode for Windows on Vimeo
Bob: a Scheme interpreter, compiler, and VM in Python
Emacs Pretty Mode: Substitute lambda with λ and many more…
Icon category support in Emacs Org-mode
Simple tip for browsing python using emacs : emacs