Debugging Applications

Every significant piece of software will contain defects, typically two to five per 100 lines of code. These mistakes lead to programs and libraries that don’t perform as required, often causing a program to behave differently than it’s supposed to. Bug  tracking, identification, and removal can consume a large amount of a programmer’s time during software development.

Types of Errors:

  • Specification Errors: If a program is incorrectly specified, it will inevitably fail to perform as required. Even the best programmer in the world can  sometimes write the wrong program. Before you start programming (or designing), make sure that you know and understand clearly what your program needs to do. You can detect and remove many (if not all) specification errors by reviewing the requirements and agreeing that they are correct withthose who will use the program.
  • Design Errors: Programs of any size need to be designed before they’re created. It’s not usually enough to sit down at a computer keyboard, type source code directly, and expect the program to work the first time. Take time to think about how you will construct the program, what data structures you’ll need, and how they will be used. Try to work out the details in advance, because it can save many rewrites later on.
  • Coding Errors: Of course, everyone makes typing errors. Creating the source code from your design is an imperfect process. This is where many bugs will creep in. When you’re faced with a bug in a program, don’t overlook the possibility of simply rereading the source code or asking someone else to. It’s surprising just how many bugs you can detect and remove by talking through the implementation with  someone else.

Try executing the core of the program on paper, a process sometimes called dry running. For the most important routines, write down the values of inputs and calculate the outputs step by step. You don’t always have to use a computer to debug, and sometimes it can be the computer causing the problems. Even the people who write libraries, compilers, and operating systems make mistakes! On the other hand, don’t be too quick to blame the tools; it is more likely that there’s a
bug in a new program than in the compiler.

Five Stages of Debugging:

  1. Testing: Finding out what defects of bugs exist
  2. Stabilisation: Making the bugs reproducable
  3. Localisation: Identifying the line(s) of code responsible
  4. Correction: Fixing the Code
  5. Verification: Making sure the fix works
Watch on

I really wanted to have a victoria’s secret fashion show theme.. So there it is. 😉👯👠💄💎 #commgathering #starofthenight #atcomm

Five Things To Do To Defend Agaisnt Duqu

Protect your infrastructure from Duqu in the interim, just in case — with a new “hot fix” released by Microsoft, among other precautions

Whether Duqu is related to Stuxnet’s authors or its source code is the least of your worries if your organization ends up in the bull’s eye of this new targeted attack. Microsoft says it considers the threat “low risk” at this point. Trouble is, the names of the organizations that have been targeted thus far have been kept confidential, so we don’t know just what Duqu is after exactly, and whether it’s focused on a particular industry or region.

"I don’t expect Duqu to stop. It looks to be manned on the inside and not on autopilot — they are actively setting up new modules, etc., to keep the operation alive," says Don Jackson, a director with Dell Secureworks Counter Threat Unit. "So [right now] it’s an intelligence game."

Even so, there are still some things organizations can do to protect themselves while the world waits for more information on this attack, as well as for Microsoft’s patch for the zero-day flaw that was exploited and used with Word to spread the infection. Microsoft late today issued a “hot fix” along with an advisory about Duqu and assured users that antivirus vendors in its MAPP program would soon be updating their products with Duqu signatures very soon.

Even if you’re not a certificate authority or manufacturing firm — the two industries cited publicly so far as having Duqu victims — security experts say there are some steps you can take to help protect your infrastructure from this new targeted attack.

1. Install the just-released “hot fix” from Microsoft and workaround.
Microsoft is working on a patch, and it will do so via its regular security bulletin release — just not in time for next week’s batch. So in the meantime, Microsoft today began offering a hot fix for the threat that blocks access to t2embed.dll used in the zero-day attack in Duqu.

The flaw lays in the Win32k TrueType font parsing engine, according to Microsoft: “An attacker who successfully exploited this vulnerability could run arbitrary code in kernel mode. The attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. We are aware of targeted attacks that try to use the reported vulnerability; overall, we see low customer impact at this time. This vulnerability is related to the Duqu malware,” Microsoft said in an advisory today.

Jerry Bryant, group manager for response communications in Microsoft’s Trustworthy Computing Group, says Microsoft is closely monitoring further developments with Duqu. “As previously stated, the risk for customers remains low. However, that is subject to change, so we encourage customers to either apply the workaround or ensure their anti-malware vendor has added new signatures based on the information we’ve provided them to ensure protections are in place for this issue,” he says.

2. Run updated anti-malware — and use standard security best practices.
Not all antivirus products can detect Duqu yet, but security experts say to keep updating to be sure you get protection for Duqu as soon as it’s released.

"Detections related to Duqu are mapped to the W32.Duqu family of signatures. We also highly encourage people not to click on attachments in email that seems suspicious, even if it comes from someone they know," says Kevin Haley, director of product management for Symantec.

Secureworks recommends using any host-based protection in addition to the typical network monitoring and user access controls that would help thwart Duqu. Tarek Saadawi, professor of electrical engineering at The City College of New York’s Grove School of Engineering, says because Duqu sniffs keyboard strokes and tries to steal passwords to internal systems, users should also protect their home computers and networks. Aside from updating AV and Windows, be sure to update third-party applications and shut down computers at night, he says.

3. Scan or filter Word documents from unknown sources.
One handy tool here is Microsoft’s MOICE (Microsoft Office Isolated Conversion Environment), which checks for malformed Word documents, Secureworks’ Jackson says. “That’s how Duqu starts: with a malformed Word file. It’s playing a trick on Microsoft Word to run this code,” he says.

Jackson suggests filtering Word documents from unknown sources and scanning them with MOICE until there’s a patch for the new zero-day attack. Another option is to use something like FireEye’s software: “FireEye loads the Word document inside the VM and [executes] malicious detection,” he says.

4. Monitor for traffic from potentially infected machines trying to “phone home” to Duqu.
Be on the lookout for machines trying to connect to a Duqu command-and-control (C&C) server or trying to resolve to a Duqu-related domain. Two C&C servers have been taken down thus far, but there are likely new ones. The IP addresses of the C&Cs that were found and ultimately shuttered: and

"I’m confident that there are other command-and-control servers either going up now or that are already up," Jackson says. "We are a step behind them in spotting new ones.

"Duqu has a stay-alive module … and has the ability to change itself, so anything you can do to block IP addresses will help," he says.

5. Watch for any Port 443 traffic that’s unencrypted, and keep an eye out for ~DQ files.
Watching for unencrypted traffic on the HTTP-S or SSL-based traffic port can help detect malware, including a possible Duqu infection. “If it’s not encrypted [traffic there], it’s probably bad,” says Secureworks’ Jackson.

Meanwhile, a Duqu-infected file may start with “~DQ” in the Windows temporary file directory, so be on the lookout for that as well, Secureworks recommends.

Watch on

We love it!!! #atcomm #childhood #ultimatethrowback 😁😂💚👍🔊

Watch on

They gone wild!!! Presenting the host of today’s assembly @yhannehh @therjgo #AtComm

The Future of OpenGL

Over the lifetime of OpenGL, many features have been added to improve the performance of rendering complex scenes. Unfortunately, the API has become very large, with a whole array of options to choose from for each particular rendering task. Such a large number of options makes it very difficult to determine which technique will perform the most efficiently; in other words, it has became difficult to find what’s known as the ‘‘fast path.’’ The introduction of the deprecation model in OpenGL 3.0 promises to rectify this situation. The majority of the API (specifically the fixed-function part) has been marked as deprecated; the remaining functions provide the fastest methods of rendering.

Here is a list of the main functionality deprecated in Version 3.0. If you have some previous knowledge of OpenGL, this list may be of interest to you.

  • Color Index mode
  • OpenGL shading language versions 1.10 and 1.20 (now replaced with 1.30)
  • Immediate mode
  • Fixed-function vertex processing
  • Matrix stacks
  • Client vertex arrays
  • Rectangles
  • Raster position
  • Non-sprite points
  • Wide lines and line stipple
  • Quadrilateral and polygon primitives
  • Separate polygon drawing mode
  • Polygon stipple
  • Pixel drawing
  • Bitmaps
  • Texture wrap mode—GL_CLAMP
  • Display lists
  • The selection buffer
  • The accumulation buffer
  • Alpha test
  • Attribute stacks
  • Evaluators
  • Unified extention string

It’s quite a lot isn’t it! Most of the above functionality is now implemented using shaders, and some parts (such as the matrix stack) can be implemented in separate libraries. There are a few items listed above that are no longer relevant because they have been replaced by more efficient methods (e.g., display lists), and some have been removed because they don’t really belong in a rendering API (e.g., the selection buffer). By the end of this chapter, you will understand how to render using future-proof, non-deprecated functionality by replacing the fixedfunction features we have relied on so far (vertex arrays and the matrix stack) with new techniques using shaders.

Association of Technical Communicators

The SYTC is now the Association of Technical Communicators. I’ve outlined some of the key changes.

  • We are no longer a society. We are an association. This is for all the reasons everyone voiced in the Shifting Focus thread and on Twitter. I think this also serves to keep our focus people-centric.
  • Our new slogan is Innovation • Collaboration. Two concepts that everyone seems very excited about. I’d say the third most popular concept is technology, but that’s already right in our title, so I didn’t see the need to highlight that in our slogan.
  • The URL is now, but the old URL should continue to work, so previous links should continue to function properly.

I’m very excited about these changes and I hope that you are, too. Please help our community grow by inviting others to join and posting linking to discussions on your blogs and Twitter feeds. Speaking of Twitter: We even have a new ATC Twitter account! Follow your ATC community via @ATC_intl and use the hashtag #ATComm.

Thanks again to everyone who made these changes possible. If you are reading this right now, that means you. Yes, you. Thanks for being passionate about what you do and for sharing your passion here with our community.

In this tutorial, I describe various common graphic design elements in modern web (“2.0″) design style.

I then attempt to explain why they work (i.e. why they have become common), as well as how, when and where you might use each element in your designs.

It follows on from my Current Style article, and analyses in greater depth the design features of the current “Web 2.0″ design style.

To learn how to design Web2.0 sites yourself, you must read “Save the Pixel – The Art of Simple Web Design”, which is a comprehensive guidebook to the principles and techniques of Web2.0 design. Read more »