Software Sagacity
Phone:

Software Sagacity

Node.js – Dynamically Loading EJS Templates

Node.jsNode.js offers a powerful engine for high-performance web development.  One of the challenges with the stock Express distribution, however, is it’s low-quality default templating system.  Jade is littered with obscure syntax, and often requires manual conversion from HTML templates in many development workflows.  Luckily, installing the EJS templating system is relatively easy, and developers can reap dividends in increased productivity throughout the lifecycle of the software.
Continue reading

RSS Twitter LinkedIn Facebook Email

Clearing all SVN folders in Windows or Linux

DeleteSubversion, despite its many competitors with more modern distributed version control technology, is still going strong today due to its robust architecture and large user base.  Although more modern subversion instances use only one “.svn” folder in the root of the checked-out repository, older versions may have a separate “.svn” folder in each individual subfolder in the project.
Continue reading

RSS Twitter LinkedIn Facebook Email

The Importance of Wireframing in Software Development

SculptureAt each stage of software development, from design, to development, to deployment, there is opportunity for either keeping the status quo, falling behind, or achieving glory.  Wireframing plays a crucial role in helping software projects achieve glory, as opposed to simply meeting goals.

First, a quick overview on the nature of wireframing.  Similar to CAD drawings or blueprints, wireframes of a software project provide a skeleton outline of how key elements of the system will be laid out on the screen.  The wireframing stage generally does not consist of finalized, high-end graphics or pixel-perfect positioning, but is rather focused on the general position of fields, elements, and user interface buttons.

Wireframes can be drawn on paper, however it is more effective to use a software tool such as Balsamiq, Axure, or Visio for the drawings.  These design tools can make it easy to implement changes, duplicate repetitive content, and handle versioning.  Balsamiq has achieved its own special standing among UI development tools with its quick rise to fame and popularity.  Instead of depicting clean lines and elegant results, Balsamiq makes the entire drawing look especially “sketchy”, so that project stakeholders have no illusion that they are looking at a final product.  Instead, Balsamiq produces wireframes more akin to something that would be sketched on a whiteboard, as opposed to an elegant CAD drawing.  This lets viewers focus on the layout and general concept, instead of on the design elements that may be subject to future change.  Regardless of the wireframing software, the end result will be a set of documents that provide a high-level view of the user interface and software functionality.

The key benefit of wireframing is how it provides a bridge between concept and creation.  Before wireframing, the software is a fuzzy amalgamation of database entities and software architecture components.  Once the wireframes are created, the software takes shape.  Similar to sculpting, that first set of blows to “rough out” the software design are often the most critical.  Not only do they define the final form of the application, they also provide the opportunity to implement creative ideas or enhancements.  While the system is still in the wireframing stage, interesting concepts or UI paradigms can be added relatively easily.  Once the system has progressed from wireframing into development, the UI is generally fixed and requires significant rework for any enhancements.

With all the benefits of wireframing, it can still be a challenging task to execute.  Out of all the development tasks, wireframing takes the most creativity and inertia.  Hewing the system out of rough stone, the architect or UI designer needs to bring everything together: the database, design, layout, and programming workflow.  For sizable systems, this is the task that separates the master from the apprentice, and brings the software to life.

RSS Twitter LinkedIn Facebook Email

Magento Custom Product Listing in the CMS Page

MagentoWhen developing applications on Magento’s Ecommerce platform, it’s occasionally necessary to customize the way products are displayed.  While the default store layout has the product listing built-in, custom product listings can highlight certain products and attributes, or make it easier for customers to find their desired products.  When integrated into a CMS page, the custom product listing will provide a robust and easy-to-maintain feature without the overhead of plugin development.
Continue reading

RSS Twitter LinkedIn Facebook Email

Dynamically Hide Custom Options in Magento

MagentoMagento offers a stable and extensible platform for online store development.  Its full-featured administration and reporting offer businesses the capability to leverage an open-source alternative to a fully custom system.  The stock cart can often handle most of the store requirements through its built-in configuration options, while the open-source backend can be modified as necessary for more advanced customizations.
Continue reading

RSS Twitter LinkedIn Facebook Email

Seven Deadly Sins of Software Development: Part 1 – Pride

PridePerhaps nothing instills more fear in the hearts and minds of mortals than disobedience against their Creator.  While the standard deadly sins may ruin a person’s life and soul, the corollary sins of software development can ruin a career.  The first of these deadly sins: Pride.
Continue reading

RSS Twitter LinkedIn Facebook Email

IBM’s Model M Keyboard – Is it still the best?

IBM Model MFirst manufactured in the 1985, IBM’s Model M keyboard grew to become the dominant keyboard of the burgeoning Personal Computer era.  Its excellent design, timeless sound, and sheer durability have made Model M’s the longest lasting and most popular keyboard in existence.
Continue reading

RSS Twitter LinkedIn Facebook Email

C# Design Patterns: #5 – Builder

BuilderThe Builder pattern is a narrowly-focused pattern that enables incremental creation of new products. This pattern, though limited in application, when applied correctly, brings significant power and flexibility.

The guiding concept behind the Builder pattern is separation of the actual “building” of an product from its design plan. The prototypical example of the builder pattern is saving files to multiple formats. If an application allows saving files to different formats, it will have an internal representation of the data, and will need to “build” different formats dynamically from the same source object.
Continue reading

RSS Twitter LinkedIn Facebook Email

Oracle CEO Steps Down Amid Titanic Shift

In-Memory DatabaseI usually don’t write about news, or in this case olds, but in this case the technology is amazing enough to merit mention. As most of the tech world knows, Oracle CEO Larry Ellison stepped down from his post earlier this week, after a 37 year career leading the company to become one of the dominant players in the IT industry. With all of the publicity and commotion that this move made, it had completely overshadowed an even more titanic shift happening in the database world: Oracle’s June launch of its In-Memory Database for 12c.
Continue reading

RSS Twitter LinkedIn Facebook Email

Are Programmers Resources?

Programmer ResourcesOne of the more amusing parts of my workday is getting 2-3 calls each day from offshore companies asking me to outsource our development work. A good portion of their pitches refer to their developers as “resources.” It’s a wistful thought, that I could simply pull out a checkbook and buy a programming resource or two to help out with work when we are overbooked.
Continue reading

RSS Twitter LinkedIn Facebook Email
Loading
Loading
Copyright  ©  Software Sagacity. All rights reserved.
Website Development by apHarmony