Although Panther Software’s greatest skill is strategic thinking, it’s important to have technical skills to give these strategies merit.
Not every new technology is an improvement. In many cases, you see people adopting a technology that isn’t best suited to them. Being too strict with your requirements can make a project unfeasible. Being too lax can also have the same effect. Expecting staff to cover the costs of bad decisions is not sustainable. Your best bet is to be open-minded when faced with technical choices.
Below are some software and hardware proficiencies that Panther Software believes are essential today. The concepts behind them are the most important part, so if you use a competing technology, with the same fundamental purpose, that’s great too!
The premiere Integrated Development Environment (IDE) for software development is, without a doubt, Visual Studio. There are other similar tools out there, but few have the features needed to deploy high quality software, for less man hours of labour.
Visual Studio is essentially a glorified text editor, with add-ons that let you view HTML, auto-complete coding, and provide you instant access to help for the 1000’s of options available in high-level programming languages. Technically, with a compiler and notepad, you can deploy any software, but after having tested several different IDE’s over the years, Visual Studio just does it best.
The Community version of the software is free for anyone to use. However, the paid versions provide enough essential tools to justify the upgrade. You can automatically download 1000’s of popular libraries into Visual Studio, with just a few clicks. Bootstrap, JQuery, Arduino, Xamarin all work seamlessly in this IDE. Many other IDE’s have shortcomings in the technologies they support.
Visual Studio tends to recommend using Microsoft products, such as their web server operating systems and SQL Server for deployment, but, the IDE effectively lets you choose whichever technology you want to operate with, if you know how to use it properly. You could literally compile the Linux operating system with it, if you customized it enough!
Of course, every business is different, and the best IDE may differ, depending on the details. Having a familiarity with a certain set of tools definitely has value, so long as it does everything it needs to do, and everything it will ever need to do.
Model View Controller (MVC)
This website was last updated several years ago. The content here is static, so it made sense to keep using the same flat file system approach, purely to save time. It was edited in a text editor, and refreshed in a browse, all done in under a week.
But for larger enterprises, such as AdPtz, you need to ensure your software has consistent definitions, both visually, and for its data, for all people involved in your business process. You need security to control who can access what resources, and it has to be inexpensive to maintain bug fixes and enhancements.
MVC is the internet cloud standard for companies such as Google, Amazon and Facebook. Though it takes some time to master, MVC breaks a large scale web application into 3 basic components:
- Model: What is the company-wide definition of the data object?
- View: What does a component of the user interface look like?
- Controller: How do these views and models operate together? Security and business rules govern this.
Developers can then specialize in one of these areas of code, to create low maintenance systems. The MVC core is an application that runs on the server itself, and parses these 3 elements when serving out information. Keep in mind too, that the View, not only includes HTML and CSS appearances, but the front end user code, often done with JQuery, a great high level language that encompasses essential JSON and AJAX methods. If you are unfamiliar with these technologies, you should probably do a bit more research on the topic. Long story short, all modern websites that use this architecture only update portions of the page, not the entire page, as you perform activities on them. Old websites will often reload the page, on each user click.
Because the MVC pattern is such a widely standardized approach, there are numerous shortcuts that allow you to designate security and behavioral rules. You probably couldn’t think of a business need, that isn’t already supported. Role decorators for example, are all you need to prevent unauthorized access to server resource. Automatic minification also comes with all MVC projects.
MVC supports popular themes, such as the Twitter Bootstrap, if you want the most professional modern appearance. Make no mistake, there is plenty of expertise needed to master each component, but from a large scale enterprise perspective, MVC is the most efficient. You need only look at what all the major tech companies are doing, to see why.
Bluetooth Low Energy (BLE)
Bluetooth devices are everywhere. But, so is the bad software that operates them! Why is this? Older Bluetooth protocols transmit blocks of data that are unnecessarily large, and it repeats it too much. Early developers thought it would be wise to do it this way, but at the time it was spec’d out, the long term effect on battery life was not on anyone’s mind.
With the incredible popularity of mobile devices, and other wireless electronics that required batteries, a new standard was needed. Enter, Bluetooth Low Energy.
Beginning with version 4.0 of the protocol, commands, and the mechanisms in which these commands were sent, were specified with far less overhead than before. As a result, the battery life of devices that adopted it, increased dramatically.
Though other technologies, such as LORA are technically more efficient, it is only useful for extremely low data rates. For the majority of cases, BLE is the appropriate way for systems to communicate wirelessly over short distances.
This isn’t to say that WIFI, or older Bluetooth systems are completely obsolete. In cases where your system transmits large packets of information, or you need added security, you may in fact not benefit from BLE. The best way is to monitor the power and performance differences, and analyze the results.
Arduino makes development of embedded systems far easier than it used to be. The sky is the limit, in terms of automating hardware. You want to build a robotic arm to fill out forms using a pen? Remarkably easy to do once you get accustomed to this technology.
Arduino is both a hardware and software platform designed to simplify the building of robots. Unlike other technologies, the software is not ‘for profit’. It has its own IDE, but also works as an add-on in Visual Studio too. However, anything you do design, in terms of electronics, likely will have a chip manufacturing cost to consider later. Though not verified, it is highly likely that the chip manufacturers subsidize Arduino software tools, purely to sell more products.
Arduino has a very large community, and dozens of ‘stock’ sensors, servos and common controls you can assemble in minutes. That said, it takes a lot of time, to fine tune it, and mechanical fabrication can be very time consuming too. Servos, for example, have torque limits, and temperature sensors, need protection from rain.
Using Arduino will not turn your company into Toshiba overnight. But, it will let you test out various concepts quicker and cheaper than was ever previously possible. Once you have a design you like, you should then source out each chip component, and have a custom board designed and sent to a board manufacturer. There is at least one company in Winnipeg that can produce these custom boards, but this service is available in many places in the world too. If you are really certain of the profitability of your design, you can then even buy your own board production machine!
What is Xamarin you ask? In a nutshell, it is an emerging universal standard to develop code that behaves consistently on Android, iOS and Windows mobile devices. Most notably, if you build an app without it, you need to convert that software, paying engineers and QA staff to test it, for each operating system.
When you build an app using the Xamarin framework, you create a single project, with target platform output options.
That said, Xamarin doesn’t guarantee perfectly identical behavior across all devices. After all, they all have different hardware designs. However, the business logic, which is usually the largest component of any phone application, will be standardized between all your devices, since you only have a single project file to work with.
The framework does allow for exceptions in behavior for specific devices, via coding overrides. Suppose, you wanted a better resolution, for example, taking advantage of Apple’s retinal display, or, a particular camera option, available in another phone, you could specify the behavioral change, and the target device it applies to.
Either way, if you are interested in designing a business application for mobile devices, Xamarin is the recommended choice for both initial and long term maintenance costs. If you ignore a particular platform to save costs, just think of all the revenues you are losing!
Scalable Vector Graphics (SVG)
Though not the most complicated technology listed here, it deserves mention that proficiency in SVG is emerging as an essential skill in organizations of all sizes. Photoshop (PSD) and GIMP (XCF) project files have comparative shortcomings, and using raw file formats such as JPEG, PNG or GIF, are difficult to edit later. Even businesses that are relatively low-tech would benefit from embracing the technology in their marketing department, for many reasons.
The short description is that SVG is a markup language that describes a graphic. Inkscape is a free editor that lets you create and modify SVG images, and export them to other formats, hiding much of this markup from you. However, you can also paste this markup in any html web page, and most modern browsers will render it, without needing separate downloads for images.
When comparing SVG to PSD (or XCF file) file formats, SVG has several advantages. It lets you alter details to a photo, even after the layers have been compressed. Not only that, it allows for very unusual, and precise modifications to the shape and colors of components. It is especially good at logo and icon manipulation.
In addition to having master graphics templates in SVG for these reasons, you also have the infinite potential precision in your marketing material, when you need to expand it. By definition, it cannot lose resolution, if you expanded the image to the size of a billboard. The amount of data needed to describe a large and a small version of the graphic, is the same either way, since the size is simply a command argument.
However, one of the most unique aspects to using SVG, is that it works the best with internet marketing. You see, you can add scripts, to make your animations morph and come to life. Here is an example using the AdPtz sign up page.
You would be amazed at the artwork created using this language from a web search. All the major companies in business are making the conversion!