Pathfinder Solutions

PathTECH Login

Making Systems Development Successful

TechBlog

March 20, 2012

Hacker Health: Promoting Eye Care at Work

People say that “the eyes are the gateway to the soul.” Whether you’re a computer scientist, an office manager, marketing specialist, or CEO, most working Americans spend a majority of their day in front of a computer screen. While computers and other technologies have made the day-to-day activities of work more easy and convenient, we often forget that it all comes at a price- that is the health of our eyes.

According to the American Optometric Association, Computer Vision Syndrome (CVS) is considered the No. 1 occupational hazard of the 21st Century. Surprised? Well, probably not when you really think about it. The reality is, that in order to work in modern business, we’re forced to stare at a computer screen for hours on end in order to get our tasks done. We largely communicate via computer, either by email, Skype, instant messaging, or social media, and rely heavily on various computer applications to generate our technical working activities. However, did you know that 50%-90% of people who work on a computer, experience some sort of eye strain or discomfort? And although there’s a large gap in these statistics, as well as it’s still somewhat unclear as to the actual extent computer screens damage our vision in the long-term,  does not change the fact that our bodies are trying to tell us something.

In order to be efficient in the workplace (and at home for that matter), it’s imperative to be mindful about our health and how our work habits affect our overall well-being. And just as you need to take vitamins to boost your immune system, you need to adjust your environment in a way that promotes good eye care. Trust us, your eyes (and soul) will thank you.

To learn more about how you can avoid bothersome visual symptoms at the workplace, check out this great eye strain Infographic we found:

(To enlarge please double click on the graphic below. Image courtesy of Mashable.com)

 

March 16, 2012

Cyber Theft: Tips to Protect Your Business from International Hacker Thugs

Most of us are aware that the threat of cyber-espionage has become an increasingly serious problem. For years, the U.S. government, business executives, and private citizens have expressed concerns about the security of computer networks and its overall affect on national security and individual freedom. Did you know that there are an estimated 55,000 new pieces of malware found each day and another 200,000 computers worldwide that are turned into “zombies?” If you, your system, or your computer network is even the slightest bit vulnerable, you could be in some serious trouble. According to former Director of National Intelligence and the National Security Agency, Mike McConnell, “There’s good evidence…of very deliberate, focused cyber-espionage to capture very valuable research and development information, or innovative ideas, or source code or business plans for their own advantage.”

While it’s no secret that countries like China and Russia are particularly interested in gaining a competitive edge over the United States, American officials have not been able to say much about the topic… that is until recently. Just this past fall, an official report surfaced explaining how China is “the world’s most active and persistent perpetrators of economic espionage.” It’s no shocker that these findings have made relations between the U.S. and China just a little bit frosty.

However, even more important than the actual growing numbers behind the malicious use of the Internet by international criminal networks, state-related espionage, and military, is the fact that the minds behind these efforts are only getting more clever. So, what can you do to help mitigate the risk of a potential hacker thug tapping into your intellectual property? Here are a few tips:

1) Take steps to first identify and protect intellectual property- The first step is knowing what your intellectual property is, where it’s located, who has access to it, its value, and what could potentially happen if the IP was ever lost. Next, it’s imperative to perform a risk assessment to identify existing security vulnerabilities. By identifying your security weaknesses upfront, you’ll be in a better position to protect your IP down the road.

2) Travel digitally naked- Leave any digital device (mobile phone, computer, tablet, etc.) that may contain any sort of sensitive, confidential, or top secret information or data at home. Instead, bring ‘loaner’ devices that are cleaned before and after traveling. In addition, never use an open Internet connection. Hackers can tap into your emails, social networks and download any content that has been transfered from these portals.

3) Just because your business meeting is private doesn’t mean it actually is- Be aware that hackers can easily access your digital devices by enabling their recording functions in order to listen in on your so-called “private” meeting. Therefore, don’t bring any device with a camera, microphone, or audio recording capability with you in the meeting or conference room.

4) Beef up security training- Tailor security awareness education to the appropriate audience. For instance, train security guards and receptionists of proper identification protocol and educate employees who travel about the heightened risks.

5) Consider security software- By implementing data leakage prevention, data fingerprinting, log monitoring, and identity-based encryption software, you can better track how intellectual property is being accessed and by whom.

6) Be mindful about what you say and where you say it- Security experts warn to not discuss confidential or top secret information out in the open. There have actually been numerous reports of first-class airplane cabins being bugged to capture the conversations of business travelers. Just remember there could be ears and eyes anywhere.

7) Do not assume you’re too insignificant to be a target- Just because you may work for a smaller firm or may not be a top business executive, does not mean you aren’t a target. Actually, you may be even more vulnerable.

While the interconnectedness of cyberspace has certainly broken down all sorts of boarders, we are reminded that no open sea is free from pirates. Do all you can to protect what’s yours.

March 12, 2012

The Gradual Introduction of TDD Part 1

By Bart Shappee

Being a fan and advocate of TDD, I believe that most projects should begin with this approach. That said, I’ve found that in the real world (or at least in the world of high-performance embedded systems), most projects don’t start off with TDD in mind. In my experience, I’ve learned that it doesn’t matter if you work for a medical startup or a well-established defense contracting firm, teams are always under the gun to produce. The heightened pressure to not only deliver quality software and products, but to do so against strict timelines and budgets, creates challenging work environments for development teams. This is especially true for smaller development teams who must meet incredible demands with limited support and resources. And although every team is initially driven to deliver working functionality, it is not necessarily true that their projects have been well tested or constructed with a framework for future development. Without preaching what management styles I believe are most successful, I do believe that the implementation of some test-driven techniques can help mitigate a lot of potential chaos. Professionally speaking, it’s my opinion that TDD is an all-right approach.

For many already established developers, doing TDD, or really any unit-based non-integration level testing without hardware is fairly new (note: for these engineers I would recommend Grenning’s Test Driven Development for Embedded C). Therefore, many development teams are all just starting to really get their feet wet with TDD. It’s easy to ease into. Team members can use the first phase of a project to develop TDD skills and its thought paradigm to move forward in the long run, into well-tested product development.

How do you know if TDD is right for you?

Well, the key to answering this question is recognizing what is the current driving force influencing your team. If it’s to just simply deliver new functionality, then it’s possible you’re not considering the importance of quality metrics and thorough test/code coverage. With this in mind, it can become quite easy for rollout deadlines to slip because the integration process is always evolving in some way or another. I’m sure this happens to you, because it sure happens to me.

I remember the first project I was brought to consult on. It was a complex project and had a three-month iteration cycle. We were able to finish the first cycle early, the second on time, and the third with only a slip of a week or two. But by the fourth cycle (and without a test focus) we were over a month behind schedule. These slips presented themselves during the integration effort, taking longer and longer each iteration. Starting with the fifth iteration, however, we guided the team to take a heavy, up-front TDD focus, and by the end of the sixth iteration, we were back on schedule. By administering TDD in this case, we drastically scaled the integration period to the two weeks allotted, back from the two-month effort it had become.

The team was able to accomplish this using test-oriented development practices because:

  1. After the initial year the development the team had a better understanding of the problem space and proficiency with the tools.
  2. They had a better understanding of why and how their traditional integration and QA testing methodologies had not achieve the desired business goals.
  3. While this team did not follow actual standard TDD practices, their knowledge of the system, its environment, and its unique challenges enabled them to focus more heavily on API testing their 15 or so domains.
  4. By utilizing custom external tools, they were also able to perform scripted testing through simulating the integration of their product into the final network of systems- all without requiring actual hardware.
  5. By building a nightly Automated Test Suite (aka Continuous Integration Environment), all the error feedback had been introduced into the system nightly instead of at the end of each iteration. The gradual documentation of corrective changes taken by this team allowed for the successful and continuous development of their software product.

I’ve been lucky to have had the pleasure to work with many different teams and businesses throughout my years as a systems engineer and software developer. This is just one of my many success stories of how a team I’ve worked with, had benefited from TDD and other similar automation methods. Please stay tuned for the next part of my blog series, “Real World Embedded Testing Experiences” as I will discuss unit level testing confidence and its important role for successful TDD adoption.

February 22, 2012

Problem Space: Secrets of Multi-Task Performance Tuning

Making a complex system run correctly can be tough. Making a complex system run rapidly and efficiently – essentially making it a high-performance system – multiplies the difficulties.  This is the world that most of Pathfinder’s customers inhabit. Sometimes from the worm’s eye view it’s sufficient to build your piece, make it efficient, and things just come together nicely. Of course then there are the other times.

Problem Space

I’m working with a customer on a high-throughput message conversion system for defense systems. Completely data-driven and reconfigurable for a wide range of message sets, the original push to reach complete functional capability has been a substantial success. But now the drive is on for PerformanceMeasured in messages per second (mps), message receipt/conversion/transmission throughput is the dominant metric. The minimum target is 24,000 mps with a stated “reach” goal of 30,000 mps. Before any efficiency or performance optimization work is done, the benchmark scenario run on the “performance test” machine yields 4000 mps. Yikes! Boosting performance over 5x can be rough, and the architecture team for the product that this system is to be deployed in – my customer’s customers – are very skeptical.

An initial performance push streamlines and simplifies two of the more heavily used components and this effort yields 12,000mps.  A great move forward, but still another 2X – or more – is needed.

So I came on to assist with the next round of performance work. The classes defining the message definitions and their mappings needed to handle a wide range of message sizes and variability, so their instance populations were managed by very flexible containers. In a multi-task context, the containers needed mutex protection to permit parallel message processing. We knew these complex containers were costing us, but the system requirements called for the flexibility.

Yet we kept staring at the XML instance data files that defined the messages and mapping.  These were the most tangible manifestation of the problem space, and they seemed to somehow limit our problem for us.  Could we leverage the fact we knew at startup time what the populations were?  There were over a dozen classes that we could affect, but we chose to focus on one – the one with the most instances. Our profiling logs said the container overhead for this one class constituted about 6% of the total time consumed.

We experimented with one of the classes by dumping the flexible instance population containers for a simple array tailored to the as-loaded population. Our performance went up about 12%!  Where did the extra boost come from?  The elimination of the mutex overhead paid back more than the base container cost. Bonus!  Once we applied the pattern to the code generator and leveraged it across the rest of the classes we got a 53% overall gain!

So what did we learn here?  There are a lot of false paths to improving system performance, but careful investigation into objective data, and a returning focus on the problem space helped us find a genuine gain. For more information on Multi-Process Message Formats please feel free to download our tech note.

(Specific details about customer projects are omitted for privacy and security.)

February 17, 2012

Introducing Peter’s “Worm’s Eye View”

(Image courtesy of D7000Nikon)

Hi! My name’s Peter Fontana and I’m the President and CEO of Pathfinder Solutions. This is the “Worm’s Eye View” – a blog series about my adventures and observations as a software developer and systems engineering mentor while in the field for Pathfinder Solutions. I think it’s important for computer scientists to share information and experiences with one another. That said, my motive for this blog series will focus on the technical work we do while engaging with our customers and their software engineers. Essentially, the work is hands on- “in the trenches” so to speak. Hopefully that by blogging about my experiences helping my customers learn and apply Agile, Test-Driven and Model-Driven approaches to their projects, you too will learn a bit more about how you can apply our practices to your own.

I find work at this level very satisfying. Sitting with another person or two, sharing tips and insights while wading into it and actually creating something complex and functional is really fantastic. This is where the rubber hits the road. Working through the tangle and bulk of code that inhabits most complex and high performance systems – at times a universe away from the artificially orderly worlds of methodology and architecture – we are delivering the only thing that really matters in the end: a functional system. Before this point, it is all just promise and speculation. The raw beauty of a running system, the glow of true capability is first seen from the worm’s eye view.  Down here in the trenches, making it happen, it’s as real as it gets.  I’m privileged to be part of this, and to share with you the amazing things I see from this glorious vantage point.

January 30, 2012

Impact 2012: The Premier Conference for Business and IT Leadership

On April 29-May 4, 2012, IBM Software will be hosting its annual IMPACT Conference at The Venetian and Palazzo hotels in Las Vegas. If you’ve never been to an IBM conference before, let us assure that this event is one you won’t want to miss! As an attendee you will get the latest insights into future technological trends and modern-day business best practices.

If you feel dry, uninspired, and feel as though you have lost your innovative edge, maybe it’s time to get that all back! If hanging out with other computer/technology geeks in the City of Sin sounds like a good ol’ fun time, make sure to register for IMPACT 2012 before March 2nd to still receive your Early Bird rate!

January 26, 2012

New Age of Innovation for Systems Development

It’s a new dawn. It’s a new day. It’s a new age of innovation for systems development. Are you a software engineer or a systems developer? Do you work with software for complex/embedded/real-time systems? If you answered “YES!” to both of these questions, maybe it’s time you do yourself a favor. Watch this video to learn how you and your engineering team can get 10X improvement on productivity and a 90% decrease in defects. It’s okay! Walk into the light!

December 9, 2011

Pathfinder Partner IBM to Acquire DemandTec, Inc.

Today, one of Pathfinder’s most trusted partners, IBM, announced this afternoon that they are in a definitive merger agreement to acquire the cloud-based analytics solutions provider, DemandTec. According to IBM’s official press release, “The acquisition of DemandTec will extend IBM’s Smarter Commerce initiative by adding cloud-based price, promotion and other merchandising and marketing analytics to help companies better define the best price points and product mix based on customer buying trends.”

In recent years, many companies have “struggled to meet the demands” of changing consumer behavior. And, in an era where social media and mobile devices have drastically shifted buying patterns, it is more essential for organizations to successfully track and understand how these patterns will continue to evolve.

“IBM Smarter Commerce is redefining how brands buy, market, sell and service their customers in ways that their customers want,” said Craig Hayman, General Manager of Industry Solutions at IBM. “Bringing science to the art of pricing and promotion is a big part of this strategy, and the combination of DemandTec and IBM will help marketing and sales executives in retail and other industries drive more revenue and increase profitability.”

DemandTec’s cloud-based analytics software enables businesses to spot and analyze an array of customer purchasing scenarios in order to make more accurate marketing decisions to increase value and profitability.

“DemandTec has unprecedented capability to improve customers’ price and promotion tactics on a stand-alone basis and connect retailers and manufacturers for collaborative planning through the cloud,” said Dan Fishback, President and Chief Executive Officer of DemandTec. “IBM Smarter Commerce is the perfect fit for DemandTec. IBM is the only provider of price and promotion offerings within a rich solution set that supports companies’ buy, market, sell and service processes.”

The acquisition is scheduled to close by the first quarter of 2012 and is subject to DemandTec shareholder approval.

December 1, 2011

Press Release: Pathfinder Solution’s Announces Elevated Partnership Level with IBM

Pathfinder Solutions today announced it has achieved certification to become an Authorized seller of IBM Rational software at the elevated level of IBM’s new Software Value Plus initiative.

Pathfinder Solutions delivers expert training and mentoring services for the adoption of proven model based approaches for systems engineering and software development. Pathfinder Solutions PathMATE is the industry’s most open and flexible model automation and transformation environment. It is the only MDD solution that integrates with IBM Rational editing environments and offers real-time and other high performance software developers the control and performance they need to automate and test the production of applications in real-time or constrained environments.