Posts By Christopher Johnson

Scaffolding – The Future of Software Development

As science and technology evolve, new features are compounded upon old features like building blocks. Most people agree that in this linear fashion you can’t get to point ‘C’ without starting at point ‘A’. But should you really have to start from point ‘A’ every single time? Let’s talk math for a bit. Don’t worry, you don’t actually have to solve anything. Take this equation: ∫6x = 3×2 + c. Since we’re taking the integral of 6x, this is labelled as Integral Calculus. According to Kahn Academy, one of the leading sites for learning mathematics, before learning Integral Calculus, you should know Algebra, Geometry, Trigonometry, Probability and Statistics, Pre-calculus and Differential Calculus (in roughly that order). It would be insane to do an exercise in all of those every single time you had to do an integration problem. But in software development, that’s exactly what we do. If you’re a software developer, you’re probably thinking I’m crazy, but hear me out. One more hypothetical scenario: let’s look at what it would take to make an Android app. First, we need to design the login page. Well, that’s got to be easy, since all login pages look pretty much the same, except some mild theme rolling. So we put up fields for username and password, then buttons for submission, registration, and password retrieval. We’ll take care of login itself first, so we write a method to encrypt the password to SHA-256 before submitting it to our server. That’s when you find out that newer versions of Android can’t do network calls on the UI thread, and you scream out in frustration, “Why am I making something as mundane as a login screen? People have done this a thousand times, this is ridiculous!” Think about how many applications haven’t been made because the tasks leading up to it were too complicated, took too long, or were just too boring. As software grows and requires more boilerplate code, the effort of a developer grows greatly – and this is just to ensure a sturdy foundation. Thankfully, there’s an answer – scaffolding. Scaffolding, in the software development sense, is the technique of generating a generic application with features common to most modern applications already built-in. A decent scaffold would include, for instance: login and registration pages, server connections, routing, model templates, controllers, security mechanisms. By using a scaffold, you can cut days, if not weeks, off of your development time – and we’re just getting started. So, how can you start scaffolding your next application? Well, luckily, Yeoman makes that part super easy. The downside – Yeoman is geared primarily toward web development with NodeJS. Why aren’t there really scaffolds for mobile or desktop applications? The only real answer is because nobody’s created it yet. Keep an eye out, though; the market is prime for a major scaffolding company any day now. - Christopher Johnson

Hacking for a Job

I found out about RSI’s Hackathon via a school information board at Aiken Technical College. At the time I didn’t know what it was, or even who RSI was, but it sounded like something I would be interested in as a software developer. As I learned more by asking around, I realized that this would be a good opportunity to put some of my programming skills to the test. After an easy sign-up process online, I was then emailed with more info as to where, when, and what the event was going to entail. I was excited to find out that the goal of this RSI Hackathon was to create a mobile web application, which immediately reminded me of jQuery Mobile. I just happened to have been studying jQuery Mobile at the time, and it would be a good opportunity to put it into practice on an actual project.  My wife Eva and I decided to participate in the event together as she is a programmer also, and was studying jQuery Mobile as well. Upon arriving to the Hackathon, the participants were given a “goodie bag” that included an RSI T-Shirt, a pen, and a flash drive with the needed content and instructions, as well as some other neat odds and ends. Because of the large number of participants, Eva and I were also given three additional teammates to work with. While some software developers might not like the idea of working with unfamiliar faces, this is similar to a real work environment and turned out to be a good experience for all involved. I had the opportunity to get more leadership experience in a programming team environment, as the team agreed to have me take the lead. In this role, I was able to assess each individual team member’s strengths and try to give each person a part of the project where they could reach their full potential. Our teammates had the opportunity to learn a lot more about jQuery Mobile, as they primarily only had HTML and CSS website development experience prior to the Hackathon. In addition to this, we all were able to get further experience completing a programming project with a team, and then presenting our website in a clear and positive way that showed its value. We had the chance to meet many people that we did not know before, who we continued to keep in communication with through email and other means. It’s been a year since I first met the team at RSI, but I now have the pleasure of saying I am a part of this team that, through continuous effort, is a positive force in the community.  This team is growing rapidly and has recently placed No. 1634 on the 2014 Inc. 5000 list with a three-year sales growth of 261 percent.

The Visual Web

In this blog, I will be examining the concept known as the Visual Web. Take moment and look around you – the web is changing, now more than ever. More and more, websites and even mobile applications are joining what is being called the Visual Web. This begs the question: What is the Visual Web, where does it come from, and what does it mean to you? First, let’s take a brief look back to the design origins of the web. When websites were first created, they were designed to mimic documents; web pages were essentially sheets of paper in the giant filing cabinet of the internet. Even up until the mid-2000s, almost every web-page was devoted to a singular purpose: relaying text. Then something subtle occurred. People received ever-increasing access to smart devices and high-quality media. With a camera in every pocket, it was no longer necessary to share these long, in-depth recollections of current events. YouTube had a big red ‘Upload’ button right on the home page. People didn’t have to host their own site just to upload some pictures onto a webpage. As media became more prevalent, the web began to reshape itself into the internet we know today. At the time of this writing, Cisco cited The Internet of Things, A Study in Hype, Reality, Disruption, and Growth report by Raymond James that over 12.5 billion devices connected to the internet. That is a lot of devices, each with different form factors, resolutions, input devices, software and hardware. How are you supposed to show your Instagram selfie on 12 billion devices?! Luckily, this new ‘Visual Web’ thing accounts for this using something called responsive design. This means that the flow of the website can change based on the screen it’s on so you always get the best version. On top of that, many sites are designed mobile-first, meaning that the site is built to look good on a phone and then scaled to a larger screen to avoid compromise. Another huge aspect is iconography. By representing well-known actions or ideas with images, a site can convey a great deal of information in a single element. Of course, people have been making icons for years – you have the floppy disk, the printer, clipboard, scissors, etc., but until recently websites could only display glossy images which were large, didn’t scale well and had a plethora of download issues. The icons used today are simply fonts; they’re rendered exactly the same as the letters you’re reading now, perfect on any screen. Lastly, Visual Web sites are fast. Using content delivery networks, front-end code can be held on a central repository. This is so that if you browse to a site that uses a library you’ve already encountered, your browser can recognize the repository and load the library from cache. This is much faster, and saves a lot of data in the long-run. Many of these websites also use a one-page design so that most or all of the site is hosted on a single page; this prevents the browser from reloading everything when you click a button or link, and also means the site can respond to you in real-time. So what does it all mean? Faster, cleaner browsing wherever you go and more access to the content you enjoy without the clutter. Plus accessible information in the form that fits you most. The truth is, it’s hard to say for sure what the limits are. People are finding new ways to use and improve the Visual Web every day, and it’ll soon evolve into yet another discernable version of the internet. Just be sure to pay attention; things are about to get really cool.