Your search did not yield any results.

Feel free to contact us in the event that the training you require is not listed. We may be in a position to offer this training by way of our partners or by creating a tailored class.

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

Blog Entries publications that: entertain, make you think, offer insight

In programming, memory leaks are a common issue, and it occurs when a computer uses memory but does not give it back to the operating system. Experienced programmers have the ability to diagnose a leak based on the symptoms. Some believe every undesired increase in memory usage is a memory leak, but this is not an accurate representation of a leak. Certain leaks only run for a short time and are virtually undetectable.

Memory Leak Consequences

Applications that suffer severe memory leaks will eventually exceed the memory resulting in a severe slowdown or a termination of the application.

How to Protect Code from Memory Leaks?

Preventing memory leaks in the first place is more convenient than trying to locate the leak later. To do this, you can use defensive programming techniques such as smart pointers for C++.  A smart pointer is safer than a raw pointer because it provides augmented behavior that raw pointers do not have. This includes garbage collection and checking for nulls.

If you are going to use a raw pointer, avoid operations that are dangerous for specific contexts. This means pointer arithmetic and pointer copying. Smart pointers use a reference count for the object being referred to. Once the reference count reaches zero, the excess goes into garbage collection. The most commonly used smart pointer is shared_ptr from the TR1 extensions of the C++ standard library.

Static Analysis

The second approach to memory leaks is referred to as static analysis and attempts to detect errors in your source-code. CodeSonar is one of the effective tools for detection. It provides checkers for the Power of Ten coding rules, and it is especially competent at procedural analysis. However, some might find it lagging for bigger code bases.

How to Handle a Memory Leak

For some memory leaks, the only solution is to read through the code to find and correct the error. Another one of the common approaches to C++ is to use RAII, which an acronym for Resource Acquisition Is Initialization. This approach means associating scoped objects using the acquired resources, which automatically releases the resources when the objects are no longer within scope. RAII has the advantage of knowing when objects exist and when they do not. This gives it a distinct advantage over garbage collection. Regardless, RAII is not always recommended because some situations require ordinary pointers to manage raw memory and increase performance. Use it with caution.

The Most Serious Leaks

Urgency of a leak depends on the situation, and where the leak has occurred in the operating system. Additionally, it becomes more urgent if the leak occurs where the memory is limited such as in embedded systems and portable devices.

To protect code from memory leaks, people have to stay vigilant and avoid codes that could result in a leak. Memory leaks continue until someone turns the system off, which makes the memory available again, but the slow process of a leak can eventually prejudice a machine that normally runs correctly.

 

Related:

The Five Principles of Performance

In Demand IT Skills

The RSS feed, which commonly stands for Really Simple Syndication, is an internet protocol that helps spread the availability of frequently published or updated Internet content.

RSS Benefits for an Internet Content Provider or Blogger
The use of an RSS feed saves immeasurable time for a content provider. When an interested person subscribes to an RSS feed, the owner of that feed now has a way to reach large numbers of people without having to resort to spamming techniques. The RSS feed also allows a content provider to send the requested topical information without specifically asking, every time, to those people who have subscribed. The content provider uses a program, written in XML code to make the information they post available to each person that has requested a subscription to that particular RSS feed.

RSS Benefits for the Average Internet User
The Internet grows larger by the minute. It is easy for a person to have information overload. The use of an RSS feed gives an individual more control over what information they see while on the Internet. It is also very useful for anyone that wants to stay up to date. Subscribing to the RSS feed for a topic of interest automatically provides the subscriber continued availability of the latest information on that topic. The Internet user relies on a small program called an RSS Feeder to gather the information on the RSS feeds to which they have subscribed.

Most browsers these days have built in RSS readers making that gathering the desired information easier than ever to accomplish. Joining an RSS feed is a very simple thing to accomplish.
 

RSS Benefits for Small Businesses

More and more Small Business owners are adapting targeted online marketing campaigns such as RSS Feeds in order to provide relevant content to new and existing customers. Maintaining web content such as:  company news; contests; promotional events; related articles; notifications; product launches; directories; and newsletters are examples of ways of staying in touch with customers in any niche market.  As search engines retrieve information from RSS Feeds and content is syndicated to other websites, chances of increased traffic are inevitable.  For active websites, RSS feeds are invaluable tools for small business owners.

USA.gov Updates: News and Features

Search for RSS feeds (search topics)

Welcome to Google Reader (find and keep track of interesting stuff on the web.)

NPR public radio station (popular, news, program and topics RSS feeds)

RSS in Plain English (video)

10 Helpful Uses of RSS Feeds for Marketing

Incorporate Google RSS feeds onto your site

Adding RSS Content on Yahoo

Studying a functional programming language is a good way to discover new approaches to problems and different ways of thinking. Although functional programming has much in common with logic and imperative programming, it uses unique abstractions and a different toolset for solving problems. Likewise, many current mainstream languages are beginning to pick up and integrate various techniques and features from functional programming.

Many authorities feel that Haskell is a great introductory language for learning functional programming. However, there are various other possibilities, including Scheme, F#, Scala, Clojure, Erlang and others.

Haskell is widely recognized as a beautiful, concise and high-performing programming language. It is statically typed and supports various cool features that augment language expressivity, including currying and pattern matching. In addition to monads, the language support a type-class system based on methods; this enables higher encapsulation and abstraction. Advanced Haskell will require learning about combinators, lambda calculus and category theory. Haskell allows programmers to create extremely elegant solutions.

Scheme is another good learning language -- it has an extensive history in academia and a vast body of instructional documents. Based on the oldest functional language -- Lisp -- Scheme is actually very small and elegant. Studying Scheme will allow the programmer to master iteration and recursion, lambda functions and first-class functions, closures, and bottom-up design.

Supported by Microsoft and growing in popularity, F# is a multi-paradigm, functional-first programming language that derives from ML and incorporates features from numerous languages, including OCaml, Scala, Haskell and Erlang. F# is described as a functional language that also supports object-oriented and imperative techniques. It is a .NET family member. F# allows the programmer to create succinct, type-safe, expressive and efficient solutions. It excels at parallel I/O and parallel CPU programming, data-oriented programming, and algorithmic development.

Scala is a general-purpose programming and scripting language that is both functional and object-oriented. It has strong static types and supports numerous functional language techniques such as pattern matching, lazy evaluation, currying, algebraic types, immutability and tail recursion. Scala -- from "scalable language" -- enables coders to write extremely concise source code. The code is compiled into Java bytecode and executes on the ubiquitous JVM (Java virtual machine).

Like Scala, Clojure also runs on the Java virtual machine. Because it is based on Lisp, it treats code like data and supports macros. Clojure's immutability features and time-progression constructs enable the creation of robust multithreaded programs.

Erlang is a highly concurrent language and runtime. Initially created by Ericsson to enable real-time, fault-tolerant, distributed applications, Erlang code can be altered without halting the system. The language has a functional subset with single assignment, dynamic typing, and eager evaluation. Erlang has powerful explicit support for concurrent processes.

 

Computer Programming as a Career?

What little habits make you a better software engineer?

Machine learning systems are equipped with artificial intelligence engines that provide these systems with the capability of learning by themselves without having to write programs to do so. They adjust and change programs as a result of being exposed to big data sets. The process of doing so is similar to the data mining concept where the data set is searched for patterns. The difference is in how those patterns are used. Data mining's purpose is to enhance human comprehension and understanding. Machine learning's algorithms purpose is to adjust some program's action without human supervision, learning from past searches and also continuously forward as it's exposed to new data.

The News Feed service in Facebook is an example, automatically personalizing a user's feed from his interaction with his or her friend's posts. The "machine" uses statistical and predictive analysis that identify interaction patterns (skipped, like, read, comment) and uses the results to adjust the News Feed output continuously without human intervention. 

Impact on Existing and Emerging Markets

The NBA is using machine analytics created by a California-based startup to create predictive models that allow coaches to better discern a player's ability. Fed with many seasons of data, the machine can make predictions of a player's abilities. Players can have good days and bad days, get sick or lose motivation, but over time a good player will be good and a bad player can be spotted. By examining big data sets of individual performance over many seasons, the machine develops predictive models that feed into the coach’s decision-making process when faced with certain teams or particular situations. 

General Electric, who has been around for 119 years is spending millions of dollars in artificial intelligence learning systems. Its many years of data from oil exploration and jet engine research is being fed to an IBM-developed system to reduce maintenance costs, optimize performance and anticipate breakdowns.

Over a dozen banks in Europe replaced their human-based statistical modeling processes with machines. The new engines create recommendations for low-profit customers such as retail clients, small and medium-sized companies. The lower-cost, faster results approach allows the bank to create micro-target models for forecasting service cancellations and loan defaults and then how to act under those potential situations. As a result of these new models and inputs into decision making some banks have experienced new product sales increases of 10 percent, lower capital expenses and increased collections by 20 percent. 

Emerging markets and industries

By now we have seen how cell phones and emerging and developing economies go together. This relationship has generated big data sets that hold information about behaviors and mobility patterns. Machine learning examines and analyzes the data to extract information in usage patterns for these new and little understood emergent economies. Both private and public policymakers can use this information to assess technology-based programs proposed by public officials and technology companies can use it to focus on developing personalized services and investment decisions.

Machine learning service providers targeting emerging economies in this example focus on evaluating demographic and socio-economic indicators and its impact on the way people use mobile technologies. The socioeconomic status of an individual or a population can be used to understand its access and expectations on education, housing, health and vital utilities such as water and electricity. Predictive models can then be created around customer's purchasing power and marketing campaigns created to offer new products. Instead of relying exclusively on phone interviews, focus groups or other kinds of person-to-person interactions, auto-learning algorithms can also be applied to the huge amounts of data collected by other entities such as Google and Facebook.

A warning

Traditional industries trying to profit from emerging markets will see a slowdown unless they adapt to new competitive forces unleashed in part by new technologies such as artificial intelligence that offer unprecedented capabilities at a lower entry and support cost than before. But small high-tech based companies are introducing new flexible, adaptable business models more suitable to new high-risk markets. Digital platforms rely on algorithms to host at a low cost and with quality services thousands of small and mid-size enterprises in countries such as China, India, Central America and Asia. These collaborations based on new technologies and tools gives the emerging market enterprises the reach and resources needed to challenge traditional business model companies.

training details locations, tags and why hsg

the hartmann software group advantage
A successful career as a software developer or other IT professional requires a solid understanding of software development processes, design patterns, enterprise application architectures, web services, security, networking and much more. The progression from novice to expert can be a daunting endeavor; this is especially true when traversing the learning curve without expert guidance. A common experience is that too much time and money is wasted on a career plan or application due to misinformation.

The Hartmann Software Group understands these issues and addresses them and others during any training engagement. Although no IT educational institution can guarantee career or application development success, HSG can get you closer to your goals at a far faster rate than self paced learning and, arguably, than the competition. Here are the reasons why we are so successful at teaching:

  • Learn from the experts.
    1. We have provided software development and other IT related training to many major corporations since 2002.
    2. Our educators have years of consulting and training experience; moreover, we require each trainer to have cross-discipline expertise i.e. be Java and .NET experts so that you get a broad understanding of how industry wide experts work and think.
  • Discover tips and tricks about programming
  • Get your questions answered by easy to follow, organized experts
  • Get up to speed with vital programming tools
  • Save on travel expenses by learning right from your desk or home office. Enroll in an online instructor led class. Nearly all of our classes are offered in this way.
  • Prepare to hit the ground running for a new job or a new position
  • See the big picture and have the instructor fill in the gaps
  • We teach with sophisticated learning tools and provide excellent supporting course material
  • Books and course material are provided in advance
  • Get a book of your choice from the HSG Store as a gift from us when you register for a class
  • Gain a lot of practical skills in a short amount of time
  • We teach what we know…software
  • We care…
learn more
page tags
what brought you to visit us
nstore/product,  , nstore/product,  Classes, nstore/product,  Courses, nstore/product,  Course, nstore/product,  Seminar
nearsourcing, reshoring and insourcing
developing talent and expertise at home
Companies are beginning to realize that talent and skills developed within the United States are exceedingly more important for the growth of an organization than the alternative: outsourcing. Considerations include: security, piracy, cultural differences, productivity, maintainability and time to market delays.
In the past, the reason for outsourcing centered on cost savings, lack of resources at home and the need to keep up with market trends. These considerations are proving to be of little merit as many organizations have, consequently, experienced productivity declines, are now finding considerable talent within their immediate location and have realized a need to gain more control over product development.
As strong advocates of Agile/Scrum development, HSG whole heartedly embraces this new entrepreneurial spirit because we know it works and because we believe our country's future weighs in the balance.

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.