Asia/Pacific Computer Services - link to home page
AsiaPac

Asia/Pacific Computer Services  
USEFUL LINKS - Programming Languages. Tools, Training, Systems Theory & Thinking
 

Search for other topics, tips, news, technical information...
How to search - click here for tips about performing effective searches.
We highly recommend PicoSearch
Click to view Asia/Pacific Computer Services products, services. and alliances.
Our information-crammed links ... Tips, Tools, Techniques, Services, Resources for Operators, Designers, Developers, Contractors, Consultants, Managers, Marketeers - and general users
Add this Asia/Pacific Computer Services page to your browser's list of Favorites.Our own selection of important IT news items, interesting developments and tips, plus key guides for IT managers, web designers, programmers, security administrators and more!Send an e-mail to a friend or colleague about a product, service or resource described on our web site."Love me and leave me!" ... Please give this web site a rating. Use the e-mail link (at the top of this page) to give us more detailed feedback, and help us make the site better.
Contact us using Skype ... Click this button to start a Skype call.
You must have Skype installed on your computer.
          - - - - - - - - - - -
Our user name for Skype is "notestracker"
(also for MSN Messenger, Yahoo Messenger, and ICQ, but we don't always have these running). (click this button to call)

Our Weblogs ...
Notes Tone Unturned ~ Basic Questions ~ NotesTracker news
~ Leave Good Enough Alone


QUICK LINKS FOR THIS PAGE

PROGRAMMING IN GENERAL - STANDARDS BODIES - USER GROUPS

The young man is smoking and blowing smoke rings.  His irritated girlfriend says, "Can't you read the warning on the cigarette packet that smoking is dangerous for your health!!" The boyfriend responds, "Darling, I'm a programmer.  We only worry about errors. We ignore warnings."

There are 10 types of people in this world. ... Those who know binary and those who don't.

Why did the programmer always confuse Christmas and Halloween? ... Because Dec 25 equals Oct 31.
"In ancient times they had no statistics so they had to fall back on lies." ... Stephen Leacock

The Joy of Tech
The Joy Of Programming
Teach Yourself Programming in Ten Years - Why is everyone in such a rush?
and The Evolution of a Programmer - from High School through to CEO!
52 Reasons Why Programmers Work On Weekends
5 Things that Really Make a Senior Developer
------------------------
Curriki - your world of open source educational resources and curricula.
So, you think you're a good programmer, do you? ... Take the data literacy test!
------------------------
"Any programming language is at its best before it is implemented and used."
------------------------
Epigrams on Programming - such as: "Every program is a part of some other program and rarely fits."
How To Write Unmaintainable Code -- Ensure a Job for Life
How to Write a Banking Application
------------------------
Google Code Search - Search public source code, using search strings or regular expressions -- and it can be quite surprising what you find!
Also: Google Wrecked the Internet
------------------------

 

 THE SOFTWARE DEVELOPMENT PROJECT 
  How the customer wanted it, and what he got instead 

The classic comic strip...
(Click to see a larger image)
(Click to see a larger image)


------------------------
"Every program has at least one bug and can be shortened by at least one instruction -- from which, by induction, one can deduce that every program can be reduced to one instruction which doesn't work."
------------------------


errorwear ... T-shirts that fuse geek culture with high fashion.
"Be the envy of anyone who has ever crashed."
------------------------
Monsters of the Programming World
------------------------
 
The C Family of Languages: Interview with Dennis Ritchie, Bjarne Stroustrup, and James Gosling (published in 2000)

Bugs are expensive to fix: Software Engineers Aren't Doing Enough To Really Create Error-Free Software
Are YOU willing to "stand under the bridge you designed"? (Read the full article to find out what this signifies.)
"Testing can only prove the presence of bugs, not their absence. ... Testing therefore is not the verification that a program works, but a search for whatever bugs can be found within the time and scope constraints of its execution. ... If debugging is the process of removing bugs, then programming must be the process of putting them in."

 

The Reality of Bad Programmers
"There aren’t bad programmers, there are bad programs… and even those often aren’t “bad” if they are taken into context. ... Why is this still a problem? After over fifty years of code, we still cannot figure out what makes a program good!"

"Over the last 20 years, programmers around the world have been hard at work building abstraction upon abstraction on top of the IBM-PC to make it easier to program and more powerful. ... But the Law of leaky abstractions means that even as they built the abstractions that are supposed to make programming easier, the sheer amount of stuff you have to know to be a great programmer is expanding all the time. ... Becoming proficient, really proficient, in just one programming world takes years. Sure, lots of bright teenagers learn Delphi one week and Python the next week and Perl the next week and think they are proficient. Yet they don't have the foggiest clue how much they're missing. ... There are a lot of programming worlds, each of which requires a tremendous amount of knowledge for real proficiency."

Quoted from:
Lord Palmerston on Programming  -- an article by Joel Spolsky
(for more, see also: Joel on Software below)

"The pure and simple truth is rarely pure and never simple. -- Oscar Wilde
"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." --
Antoine de Saint Exupery (French Poet, 1900-1940)
 

Why Software Sucks (a Dr. Dobb's podcast)
Author David Platt has some theories about why users are so frustrated with current software. Ultimately, he says, it's all down to losing touch with what users care about.
 

Ethics and software development
"The ethical issues involved in managing and developing information technology are many, and they are increasingly complicated by the power of individuals and infrastructures."


Butler Group >> Application Development for Mortals
"Some of us remember attempts in the late 80s and early 90s to bring a human face to the business of developing applications. A variety of suppliers developed fourth generation languages (4GLs) that could supposedly be used by non-programmers to build systems. The fact that very few of these products are used today is a measure of how successful they were. ... What happened after the era of the 4GL was something of a backlash. Instead of the fluffy, cuddly 4GL we saw the emergence of  C++ and Java as the dominant programming languages – indecipherable and totally unfriendly. Java has spawned the Java 2 Enterprise Edition phenomenon with dozens of protocols, standards and skills that need to be acquired – to the point that it is pretty well beyond the scope of any single individual to master the whole lot. C++ has acquired the accolade of being the world’s first write only language – because it is impossible to read. ... In most organisations the job of application development has become something of a secret esoteric art. ... The focus of the CIO is therefore turning away from the details of technology, such as server availability, network performance, and application functionality, towards more strategic issues, such as IT budgeting and investment planning, governance, service quality and availability, IT risk management, and offshore development. However, in contrast with other business functions, there has been a distinct lack of both tools and methodologies to assist in adopting this strategic view. The dichotomy for CIOs is therefore that whilst they are keen to move their IT departments up the organisational value chain, and to increase their own contribution to the business, there is still a distinct and substantial separation between the business, financial, and technology views of the IT department. ... I consider that deploying an IT investment planning and control system, and adopting a formal methodology to manage the associated processes, is the single most effective step that an organisation can take to improve the accuracy and validity of its IT investment strategy. ..."
 

Accomodate really simple user and programmer models (the KISS approach)
Adam Boswprth writes: "It is an ironic truth that those who seek to create systems which most assume the perfectibility of humans end up building the systems which are most soul destroying and most rigid, systems that rot from within until like great creaking rotten oak trees they collapse on top of themselves leaving a sour smell and decay. We saw it happen in 1989 with the astonishing fall of the USSR. Conversely, those systems which best take into account the complex, frail, brilliance of human nature and build in flexibility, checks and balances, and tolerance tend to survive beyond all hopes."

What's New Is Old Again - "How little regard or study we give to the history of our profession."
"Those who do not remember the past are condemned to repeat it." - Santayana


A contrary opinion, bucking the fashionable trend:
The Internet Changes Nothing
"What matters is that it doesn't fundamentally change a thing... no way, no how will it ever 'change everything'..."

A Computer Geek's History of the Internet

Windows XP Service Pack 3 Revealed

The Matrix - movie special effects using only ASCII characters

Granny's Pearls of Coding Wisdom
Software Development Risks
 

The Pessimistic Programmer - "a good programmer needs to be pessimistic; always thinking about what can go wrong and how to prevent it."
 

A Developer’s Guide to Surviving Meetings
Did you know that there's only one type of meeting you literally need to survive?
 

THE DAILY WTF - "Curious Perversions in Information Technology"

DesiBoyz Masala >> Techie Jokes >>
An old man was sitting in a park reading the book "Learn C in 21 days" ...
 

Help is at hand! (click on this link)


[ Back to Top ]

SD Times, the industry newspaper of record for software development managers

  • The Open Group - "a vendor-neutral and technology-neutral consortium, whose vision of Boundaryless Information Flow™ will enable access to integrated information within and between enterprises based on open standards and global interoperability." (Open standards, not necessarily open source.)

  • Open Source Middleware ... Breaking the rules with open source and Open source's next frontier - Open source software, increasingly popular with budget-conscious companies, is beginning to expand into a new area: The lucrative infrastructure-software market dominated by industry giants such as Microsoft. Individual open-source database and other applications are already popular. Now two open-source projects have launched efforts to assemble "stacks" of software applications that offer an open-source equivalent to commercial software from Microsoft, IBM, Oracle, BEA Systems and others. ... Though it's too soon to tell just how much these new stacks will shake up the multibillion-dollar market for back-end software, it's clear there's a growing number of open-source alternatives to commercial software makers' most profitable products.
  • Suites, Open Source Shake Up Application Server Market

  • WHATWG - Web Hypertext Application Technology Working Group - a loose unofficial collaboration of Web browser manufacturers and interested parties who wish to develop new technologies designed to allow authors to write and deploy Applications over the World Wide Web. ... The term "Web Application" in this context refers to applications accessed over the World Wide Web by using a Web browser. (This group is not attempting to describe APIs for writing high-end sophisticated programs such as office productivity suites, graphics manipulation packages, or 3D games.) This working group aims to make their development easier, and hopes to specify new technologies that make it possible to make much prettier and more usable interfaces with less dependence on complex scripts, less dependence on server-generated pages, and a more seamless user experience.
    • Web Applications 1.0 - Working Draft - "The main area that has not been adequately addressed by HTML is a vague subject referred to as Web Applications. This specification attempts to rectify this, while at the same time updating the HTML specifications to address issues raised in the past few years."
       
  • The Economics of Programming Languages - the author hopes "to give language users some insight into selecting a language that best suits their needs." and to "also help language designers and advocates to better market their products by giving them a common language, that of economics, to discuss the challenges and opportunities inherent in the market for computer programming languages."
     
  • COBOL ... El lenguaje Inmortal - COBOL is far from dead! This Argentinian community site has many COBOL resource links, together with some online demonstrations.
     
  • Michael Yuan's Java Blog: "Is Ruby Replacing Java? – Not So Fast" -- This kind of talk has some serious logical problems. First of all, as the short history of high technology has proven again and again, the "superior" solution does not always win over "inferior" ones. ... The reason, in economics terms, is that the choice of a technically "better" programming language does not bring you competitive advantage in terms of overall cost and productivity. ... for rich UI application developers, the dominant languages are still C / C++ / VB. Even heavily marketed languages like C# and VB.Net have little traction -- let alone Java.  ... One language does NOT replace another one. The rise of a new programming language always comes with the opening of a new application area and an influx of new developers who are willing to try out a new language -- since there is simply no incumbent language in this brand new area.


  • Source Code Indemnity - You and your insurance company had better share a common understanding of what protection you've bought, against what hazards, for any source code on which your organization depends. ... "If you have multiple copies of your code that you lose in separate events and even one of those events is not your insurer's problem, then you might be completely out of luck—if it's found that you suffered no harm at all until the last, uninsured copy was lost."


  •  
  • Survey suggests new computers will drive up software costs - major changes in how computers are designed and used (such as multi-core processors and shared on-demand usage) are underway and few software makers are preparing for it. The fact that all four are happening at the same time is a recipe for software pricing mayhem.

  • Re-negotiate software license deals now - Emerging trends in IT hardware could force software licensing costs up by more than 50 percent over the next year, unless businesses renegotiate existing contracts now. Gartner claims the move to multicore-chip architectures, virtualized hardware and utility computing threatens existing capacity-based, or CPU-based, licensing agreements offered by the major software vendors.



  • The EUSES Consortium - "End Users Shaping Effective Software" - They state: "Errors are pervasive in software created by end users and the resulting impact is sometimes enormous. ... We do not propose to transform end users into engineers. Rather, our plan is to enable systems to create software to collaborate with those users, in a software development paradigm that combines traditionally separate functions -- blending specification, design, implementation, component integration, debugging, testing, and maintenance into tightly integrated, highly interactive environments."



  • Elbrus - a provider of custom test automation solutions for development, manufacturing and service stages of the product life-cycle...
  • Debugging For Dummies - Computer bugs can mess up just about anything and be costly to the economy ... But they're difficult pests to eliminate, because doing so requires programmers to perform "an elaborate detective investigation."

  • Learn the essentials of debugging - Systematically take on mysterious errors with confidence ... Debugging software is challenging. Without a process to follow, resolving problems can seem impossible. Most inexperienced programmers find themselves in precisely that situation when confronted with a bug. In this article, walk through a sample problem-solving session to learn the art of debugging and highlight six essential elements of the debugging process.

  • A Guide to DEBUG (the Microsoft DEBUG.EXE program)

  • The first rule of debugging - "The mistake is in failing to be sure that the program that they are trying to debug is actually the program that they are running."
    and then there's
    The zeroth rule of debugging

  • Introduction to Power Debugging - "If you know how to use them, even the simplest of debugging tools can be powerful."

[ Back to Top ]

  • Put Your Apps to the Test - "As smart as the people are who design the code and the systems, the systems are complex enough that if you don't get to see how they all interact before you field the code, you're usually in for a horrible embarrassment." ... That sort of commentary points to the need for application performance testing software-along with the expertise to apply it correctly. Rapidly increasing user loads, wildly complex software and distributed development that includes worldwide outsourcing all ratchet up the need for more and better application testing processes and tools. ... Purchasing a performance testing package, creating tests, running them and interpreting the results is one way to beef up your software application testing process. However ... a good software performance testing strategy requires a degree of expertise that many companies lack.


  •  
  • Compliance-driven development: the IBM Compliance Resource Kit - can help teams adopt a proactively prepare for an audit of their software development environment. IBMM created this Compliance Resource Kit to help project managers and testers improve the functionality, usability, reliability and scalability of their software applications.



  • Software Crashes Deserve a Closer Look - An airplane crash triggers a painstaking investigation. But when software fails, the user is told to hope that it works the next time. "Is this any way to run an airline?"
  • Software Testing Shouldn't Be Rocket Science - "Good testing is about attitude, where a developer takes pride not just in the elegance or volume of his or her code, but in whether it meets the user's requirements and performs reliably in its first incarnation."
     
  • 64-bit Computing with Intel EM64T and AMD AMD64 - There are now three 64-bit implementations in the “Intel® compatible processor” marketplace -- Intel IA64 (as implemented on the Itanium 2 processor), Intel EM64T(as implemented on the Xeon DP “Nocona” and future Xeon MP processors), and AMD AMD64 (as implemented on the Opteron processor). There is some uncertainty as to what a 64-bit processor is and even more importantly, what the benefit of 64-bit computing is. This document introduces the EM64T and AMD64 architectures and explains where 64-bit processing is useful and relevant for customers in this marketplace.


  •  
  • GripeLog - "a place where customers of technology products can air their beefs with vendors and read about the problems and issues other customers are raising."
  • This Is Broken - places, things, and websites that are just "broken"
  • Annoyances.org


  • Systems Must Be Designed to Doubt - What about building systems that don't take the normal routine for granted? What about building systems that don't merely repeat what they've been told, but that ask semi-intelligent questions about what's going on around them? And that know an unbelievable answer when they hear it? ... In the long run, technology has to improve service to the highest level that still leaves room to earn a reasonable rate of return while offering services at a competitive price. ... When online systems lie to customers, or when errors in those systems waste the time of both customers and employees, then the negative good will that results is expensive. Web services enable a wealth of customer-facing systems, but they also raise the bar for the level of reliability and self-knowledge that those systems must possess.
  • Using Threat Analysis to Design More Secure Systems - See how to design and build more secure systems by evaluating threats and selecting technologies to counter those threats.
     
  • The i-Technology Right Stuff - Searching for the Twenty Top Software People in the World and Sung and Unsung i-Technology Heroes and Who's Missing From the i-Technology Top Twenty?
     
  • Sticks and Stones: Who Needs "Hardship Programming"? - It's time we all got beyond such rites of passage.
     
  • "Things I Wish I Learned in Engineering School" (book by Rick Cattell) - about "pitfalls that engineers should be aware of in their careers, e.g. to avoid spending years working on projects that don’t succeed as products." ... and the associated university talk, covering the most important rules from the book: online at Carnegie-Mellon University and the University of Illinois. The slides for the talk can be found here.
  • The Things I Wish I Learned in Engineering School - a conversation with Sun Microsystems Distinguished Engineer Rick Cattell
     
  • What makes a good Programmer? - "All programmers should be Analyst/Programmers; they might have a 'big A' and a 'little p' - the emphasis being more on the analysis side – or a 'small a' and a 'big P' with the emphasis on the programming side."
  • Top 5 Attributes of Highly Effective Programmers
     
  • The Next Move in Programming - a conversation with Sun's Victoria Livschitz - "Here's what's really sad -- the overwhelming majority of so-called successful development projects produce mediocre software." ... The parallel between chess and programming is rather obvious. Programming is also about knowledge, creativity, and technique. Good programmers must have a vast body of knowledge at their fingertips: the programming syntax of one or more languages, standard and special-purpose data structures, typical (as well as advanced) coding techniques, many kinds of libraries and APIs, a multitude of design patterns, and so on. Good programmers use their creative vision to recognize many patterns that may be relevant to the solution of the specific design problem at hand, and correctly choose the best approach. Finally, no matter how good the architecture and design are, to deliver bug-free software with optimal performance and reliability, the implementation technique must be flawless."
     
  • Confessions of a Used Programming Language Salesman (Getting the Masses Hooked on Haskell) - Erik Meijer writes: "After a long journey through theoretical computer science, database theory, functional programming, and scripting, abstract concepts such a monoids, lambda-expression, and comprehensions have finally reached the day-to-day world of ordinary programmers. The LINQ framework effectively introduces monads, monad comprehensions, and lambda expressions into the upcoming versions of C# 3.0 and Visual Basic 9. ... This paper is a personal account of my journey to democratize the three-tier distributed programming problem. It starts with my attempt to use Haskell as the language to write threetier distributed data intensive applications, then continues with my brief flirtation with the Internet Scripting Language Mondrian, the C! language, the LINQ framework and C# 3.0 and Visual Basic 9, and ultimately comes to a happy end with my devotion to Visual Basic."
     
  • The Serious Games Initiative - is focused on uses for games in exploring management and leadership challenges facing the public sector.
     


  • PROGRAMMING FOR KIDS ...
    • Tomorrow's programmers, tools and e-learning - Interactive games and simulations may make online learning fun but they add significant cost and production time. But this will not always be the case.
      • Game Maker - "Did you always want to design computer games? But you don't want to spend a lot of time learning how to become a programmer? Then you came to the right place. Game Maker is a program that allows you to make exciting computer games without the need to write a single line of code. Making games with Game Maker is great fun. Using easy to learn drag-and-drop actions you can create professional looking games in little time. ... What is best, Game Maker can be used free of charge. And you can use the games you produced in any way you like. You can even sell them!"
    • Kid’s Programming Language (KPL) ... "designed and developed based on the principle that programming is fun." -- KPL is available as a freeware download from: www.kidsprogramminglanguage.com and here's an Overview of KPL for parents
    • Scratch - a programming language (for Windows and Mac) that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web. Scratch is designed to help young people (ages 8 and up) develop 21st century learning skills.

[ Back to Top ]


Bruce Eckel
  • Computing Thoughts - weblog (focuses on software development productivity improvement)
  • Free Electronic Books - these HTML books are fully indexed, use Frames for easy navigation through the chapters, and have color syntax highlighting on all the source-code listings. Each HTML download contains an entire book and source code in a single zipped file:
    • Thinking in C++
    • Thinking in Enterprise Java
    • Thinking in Java, 3rd Edition (1st and 2nd editions also available)

    • Thinking in Patterns
    In our opinion, these books represent a masterly effort. Thank you Bruce!

[ Back to Top ]