Blog https://geisel.software/ en Embedded Vision: Looking Forward https://geisel.software/blog/embedded-vision-looking-forward <span>Embedded Vision: Looking Forward</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/default_images/blog-post1.jpg" width="800" height="566" alt="Default Blog Image" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/user/102077" lang="" about="/user/102077" typeof="schema:Person" property="schema:name" datatype="">kwattu</a></span> <span>Wed, 03/17/2021 - 15:50</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">127</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Embedded vision technology is growing rapidly and finding its way into applications across the tech spectrum. These embedded systems are comprised of two main elements: a compact camera connected to a compact processing board. The minimalist size of these systems allows them to be integrated into larger pieces of tech. Additionally, embedded vision systems yield the benefits of being lightweight, energy-efficient, and low cost compared to traditional PC-based vision systems. The practicality and cost-efficiency of embedded systems have made them a fast-growing tech segment with new applications popping up every day.</p> <p>In this short video, our CEO, Brian Geisel, discusses the major applications of embedded vision systems and where the tech is headed.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Wed, 17 Mar 2021 15:50:47 +0000 kwattu 279 at https://geisel.software Back to The Office With Big News! https://geisel.software/blog/back-office-big-news <span>Back to The Office With Big News!</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/default_images/blog-post1.jpg" width="800" height="566" alt="Default Blog Image" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Tue, 09/15/2020 - 06:21</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>As companies are returning to the "New Normal", we've reopened our offices following recommended guidelines. We're so excited to be back and we even have some big news! Watch this message from our CEO to hear how our company is growing, news about swarming space robots, and even learn about some exciting new job opportunities.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 15 Sep 2020 05:21:01 +0000 geisel 266 at https://geisel.software Develop Your Next UI Using a Web Stack. Your Schedule (And Your Engineers!) Will Thank You. https://geisel.software/blog/develop-your-next-ui-using-web-stack-your-schedule-and-your-engineers-will-thank-you <span>Develop Your Next UI Using a Web Stack. Your Schedule (And Your Engineers!) Will Thank You.</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2020-05/Webstack%20User%20Interface%20blog.jpg" width="800" height="656" alt="Webstack use interface" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Mon, 05/04/2020 - 16:55</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">136</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Ever wonder why the first Ford Model T came out 22 years after the introduction of the 1886 Benz, often considered the first practical car? And while only 25 Benz Patent Motorwagens were built between 1886 and 1893, Ford’s Model T was produced for 19 years with over 16 million sold?  </span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">We all know that the invention of the assembly line was what propelled Henry Ford and his car empire. It was the division of labor that allowed his car to be produced so quickly, in such numbers and so inexpensively. It was true for Henry Ford’s Model T and it is true of user interfaces across IoT, mobile devices, web and desktop applications, and embedded devices today.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>The Unicorn.</b></span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">You see, for years, we’ve relied on a method for user interface (UI) design that was native to the type of software that was being written. If you were writing a program for Microsoft Windows, you used win32, or eventually the .NET Framework. In UNIX or Linux, developers would use the X Windows interface, or now the GTK or other libraries. </span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Then came mobile devices and we wrote their user interfaces in Cocoa, OpenGL or the Android SDK. Even embedded devices had libraries and other custom ways to build a UI. The list goes on, but it never gets better. Just longer.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">The problem with all these technologies was that the software developer was writing the code of the application, so the burden of the UI was also on that software developer. If you were writing something for Windows, then your software developer was writing a UI in .NET or win32. First, this reduces your ability to develop your product in parallel. The more developers you add to a project, the more complex it becomes and the more overall time it takes to develop.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Second, it doesn’t make sense to have your mathematical genius designing your artwork. In software, we call someone who is very good at code and also very good at design (artwork) a unicorn. There are rumors that they exist, but no one has ever seen one!</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Division of labor is an obvious solution to this problem. However, there was no way to separate the software development from the design. There was a technical hurdle.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Enter HTML.</b></span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">In recent years, almost everything can run a web-based interface. Tools like HTML, CSS, and JavaScript, which started out very clunky, have been refined and become the de facto standard for how technologies should be built to develop a UI. These technologies will run on your desktop application, your embedded IoT device and your mobile app. In fact, using a web-based interface has become so popular on mobile apps that it has its own term, a hybrid app. A hybrid app is one written using HTML, CSS and JavaScript so that it can be written once and used on both iOS and Android. Wait! Did you catch that? Not only does it offer division of labor between your developers and your graphic artists, but now it means you’ve also cut your workload in half (as compared to writing distinct apps for both iOS and Android).</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">This deal just keeps getting better. Not only is that true for mobile devices, but it’s even applicable to IoT devices, desktop apps and more. In fact, if you’re using HTML to develop your UI, you often save in development time/cost across all of your platforms. That’s not to say that each UI will be identical, but they usually share many, if not most UI elements.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Tandem Development.</b><br /> An additional benefit of using a web stack to develop your UI is the ability for engineers to work more smoothly in parallel with each other. With traditional UI tools, it was difficult to have multiple engineers work together without stepping on each other. Now, UI Designers can do UI tasks and software engineers can stick to what they’re best at – writing code!</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Because of the proliferation of HTML, CSS, and JavaScript, it is more common to find designers who can write the code portion of the UI as well. For example, any time you see visual tricks where things fade, slide, flip, morph or animate, there was some form of coding required to make that happen. It used to be that only software developers could design those. Now that things are so regularly done using web technologies, UI designers are often capable of handling that gray area between development and artwork, which saves the software engineers time.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">So, is it better to use web-based or native tools to develop your UI? It always depends on the specifics of your project. The web stack runs on top of whatever platform you’re using, meaning that it requires more resources. If you’re doing work that is especially CPU-intensive (think fully animated video games), then you might still need to go with a native interface. However, as hardware continues to improve, there will be more and more opportunity for web-based UI development.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Win-Win-Win.</b><br /> Next time you are resourcing a development project, consider a web stack for developing your UI. It has the potential to reduce the amount of code that needs to be written, shorten development time and speed time to market, and improve the quality of your product. It may be the perfect win-win-win for your engineers, company and customers.</span></span></span></p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Mon, 04 May 2020 15:55:02 +0000 geisel 241 at https://geisel.software A Foundational Overview of AI & Machine Learning https://geisel.software/blog/foundational-overview-ai-machine-learning <span>A Foundational Overview of AI &amp; Machine Learning</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/default_images/blog-post1.jpg" width="800" height="566" alt="Default Blog Image" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/user/102077" lang="" about="/user/102077" typeof="schema:Person" property="schema:name" datatype="">kwattu</a></span> <span>Thu, 04/30/2020 - 17:10</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif">Artificial intelligence (AI) and machine learning (ML) are two exciting areas of technological development that are making headlines and becoming indispensable to businesses from all sectors. The AI market is expected to grow rapidly over the next decade as new uses for the technologies are being discovered and implemented at a speedy pace. One thing is for sure, AI and ML are here to stay and you should get familiar with them because if you’re not already using them, odds are, you will be soon. </span></span></span></p> <p style="margin-bottom:11px"> </p> <p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif">First, it’s important to understand the differences between AI and ML ( they’re not exactly the same thing). AI is defined as the development of computer systems able to perform tasks that normally require human intelligence, such as visual perception, speech recognition, decision-making, and more. So, then what’s ML? ML is an application of artificial intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed. Some of the tools used to develop machine learning include:</span></span></span></p> <ul><li style="margin-bottom: 11px;"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif">genetic algorithms – models that utilize a survival-of-the-fittest approach to evaluate and refine the functions of artificial intelligence agents, and</span></span></span></li> <li style="margin-bottom: 11px;"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif">neural networks – complex, interconnected networks of artificial neurons called perceptrons that can interpret sensory data.</span></span></span></li> </ul><p style="margin-bottom:11px"> </p> <p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif"> In this video, “A Foundational Overview of AI and ML”, Geisel Software engineer, Liz Couture, explains the differences between AI and ML, discusses foundational concepts, and demonstrates some of their most exciting applications.</span></span></span></p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Thu, 30 Apr 2020 16:10:38 +0000 kwattu 260 at https://geisel.software Physically Distant But Connected During COVID-19 https://geisel.software/blog/physically-distant-connected-during-covid-19 <span>Physically Distant But Connected During COVID-19</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2020-04/Physically%20distant%20but%20connected_0.png" width="771" height="557" alt="Connected During COVID-19" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/user/102077" lang="" about="/user/102077" typeof="schema:Person" property="schema:name" datatype="">kwattu</a></span> <span>Mon, 04/20/2020 - 14:06</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif">There wasn’t a great deal of warning before the COVID-19 restrictions hit. We were in our office conducting business as usual on a Friday and by Monday everything had changed. And although our work with the Department of Defense and medical device companies classify us as “essential”, the decision was made that the company would move to working remotely to ensure the safety of all our employees. </span></span></span></p> <p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif"><b>SET YOURSELF UP FOR SUCCESS</b><br /> Some of our team already had home offices outfitted with the latest technology. Others, not so much. Brian Geisel, our CEO, encouraged us to set ourselves up in a way that would allow us to be productive and minimize issues. Some made a quick run into the office and transferred their entire workstations to their homes, others were encouraged to order what they needed to get the job done whether that was downloading software or buying new headphones. Our engineers patiently helped the less technical folks establish remote access to servers and storage drives. A shared goal developed: let’s help everyone get set up for success.</span></span></span></p> <p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif"><b>PHYSICALLY DISTANT BUT CONNECTED</b><br /> Let’s face it, working at home can be lonely – especially when you are used to the camaraderie of working in an office. We are no longer bumping into coworkers in the kitchen or hallways, chatting about weekend plans or the latest Netflix binge. </span></span></span></p> <p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif">To replace this type of sharing and team building, we created a “Remote Breakroom” channel on Slack, our internal messaging platform. To get the conversation rolling, a question is posted every day for employees to comment on. Some of the conversation starters included “If you could choose one superpower what would it be and why?” “If you had a time machine would you travel to the past or the future?”  “What’s the most adventurous food you’ve ever eaten?” (I won’t be trying the microwaved Circus Peanuts suggested by one coworker!) </span></span></span></p> <p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif">The channel has evolved into people sharing memes, photos of their home projects they are working, artwork and projects they are tackling during this time of sheltering at home. We’ve shared opinions on paint colors (Who knew there are so many different shades of blue?) and commiserated about projects gone wrong. Someone even shared a Richard Simmons workout video for those of us who have been quarantine eating. This has been a great way to get to know our team better and has encouraged people to share things about themselves that build connections on a personal level.</span></span></span></p> <p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif"><b>IT’S ALL ABOUT BALANCE</b><br /> It’s easy to blur the lines when you are working at home, hopping on to your computer to just update one thing or answer one message. Brian makes sure to remind us to be mindful of balancing work and home life. Someone may send a direct message saying they are taking a break to go for a walk, and it’s met with a thumbs up emoji or “enjoy!” During phone calls he may mention he’s seen you logged in more than usual and ask how you are doing balancing your work schedule with home demands. He encourages us to reach out to check in with our teammate to lift their spirits or offer help where we can. Recently, we’ve even started a “workout” channel for those of us who need a little encouragement to take care of ourselves physically while stuck at home. </span></span></span></p> <p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif"><b>SCHEDULED FACE TIME</b><br /> While the asynchronous communication provided by messaging platforms has its benefits, it’s also important to connect in real-time. We’ve established a Friday virtual company Zoom meeting which allows us to not only share what’s going on across the company, but to chat “face-to-face”, share some jokes, meet our team’s home co-workers (kids and four-legged friends alike) and stay connected.  </span></span></span></p> <p style="margin-bottom:11px"><span style="font-size:11pt"><span style="line-height:107%"><span style="font-family:Calibri,sans-serif">One of my favorite sayings is “This too shall pass.” Eventually, this crisis will too. And the silver lining is that we will have gotten to know our coworkers in a way that under “normal” circumstances never would have happened. That can go a long way towards strengthening teams and professional relationships once we return to the office. Until then, be well and stay safe!</span></span></span></p> <p style="margin-bottom:11px"> </p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Mon, 20 Apr 2020 13:06:22 +0000 kwattu 240 at https://geisel.software How to Make Code Reviews Suck Less https://geisel.software/blog/how-make-code-reviews-suck-less <span>How to Make Code Reviews Suck Less</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2020-01/MakeCodeReviewSuckLess.jpg" width="800" height="534" alt="Software code review" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Wed, 01/29/2020 - 15:19</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">127</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">The first thing to know about code reviews is if you think they’re easy, you’re probably terrible at them. But don’t feel bad. Code reviews are incredibly hard to do correctly, but I have met a few people in my career who are exceptional at them. I’ll share what makes them rock stars a bit later. </span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Before we get to any of that, let’s quickly cover what a code review is and its true purpose. A code review is when one or more developers review the code written by another software developer. Ideally, these reviewers will be familiar with the code base in general and maybe even with the specific modules that are being worked on. It’s a chance to get another set of eyes on the problem. It’s the whole idea that two heads (or a room full of them) are better than one.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Code reviews are often done in a formal meeting environment. The developers responsible for a certain section of the code or a particular product are invited. Reviews can last anywhere from a few minutes to several days, depending on what’s being reviewed. However, you generally want to keep the amount of code short enough that everyone can mentally survive the meeting. That means it’s better to review code more often, rather than trying to review vast amounts of code in one sitting.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">There are also “over the shoulder” reviews. This is where another developer will stop by your office to review code that you’ve written. This is most often done before you check the code in and is less formal than a meeting style review. Developers use over the shoulder reviews to do a quick pass with another set of eyeballs when shorter code is being submitted. They’re also often used as a quick sanity check when an urgent fix must go in quickly. You don’t have time for the more formal review, but it’s still better to make sure you’re not crazy before you push that new code into the wild.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">The purpose of a code review is to make the overall software code base better. Now “better” can be a pretty subjective word, so we need a little more definition around that. What makes good software? First, software that works. It’s also important that other people can read the software, so more than just one developer can work on it, fix bugs, etc. You don’t want to create a lot of technical debt when you’re building your product, so it needs to be well architected. These are all things that a software developer learns in Software 101. Correction: software developers are taught that in Software 101. It turns out, sometimes it takes a lifetime to truly learn some of those lessons.</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">How do we make sure that we accomplish this in a code review? And why are they so hard? Well, like many things in life, it all starts with priorities. In many code reviews the priorities are never defined and, by default, they’re never met. Here are some good guidelines you can use for prioritizing your code reviews.</span></span></span></p> <ol><li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Architectural Issues with Integration</b></span></span></span></span></li> </ol><p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Most software isn’t monolithic anymore. Whatever you’re writing will need to integrate with other parts of a system in a way that allows you to accomplish your task while still allowing everyone else to accomplish theirs. Often when you’re writing a module, you are integrating it with other modules that someone else wrote. This means there is an especially high chance that you’ll break something in someone else’s code. A code review is the right time to catch those breaks, which means you should make sure the owners of the other modules are at the code review so they can help evaluate if there are any integration issues.</span></span></span></span></p> <ol start="2"><li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Bugs</b></span></span></span></span></li> </ol><p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">No one would bet QA that they couldn’t find any bugs in a large section of code that you wrote. Why? Because bugs are just a fact of life. If you’re writing software, then you’re writing bugs. Denying it won’t solve the problem. QA will. And so will a good code review! It’s hard enough to look at a piece of code and grok it. (Don’t believe me? How often have you heard developers say, “I’ll just rewrite this from scratch. It’ll be easier that way.”? That’s because it’s hard to understand someone else’s code.) This is the number one reason good code reviews are so hard to do.</span></span></span></span></p> <p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">In a good code review, you need to look at someone else’s code, understand it, and then find bugs. And not stupid bugs. You need to find the important bugs, the ones that are hard to find because really smart developers were already looking for them. My recommendation: examine the code beforehand so when you walk into the code review you have a good understanding of what’s being written and can ask good questions.</span></span></span></span></p> <ol start="3"><li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Modularity, Code Reuse, and Good Coding Practice</b></span></span></span></span></li> </ol><p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Now this is the part of a code review that draws on Software 101. It is very important. However, we must consider it in context; if the code doesn’t work (i.e. has bugs) or breaks other code, then nothing else matters. I know, I know, some will say if the modularity or good coding practice isn’t present then we’ll never be able to fix the bugs, but that aspect remains academic if the code doesn’t work. It’s definitely very important, it’s just we must remember our priorities.</span></span></span></span></p> <p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Making sure code is readable, abstracted correctly, takes advantage of code reuse techniques and the like is important to the sustainability of your code base. Remember, this isn’t just to look good in front of your peers, or to come up with sarcastic things to say. The purpose is to make our product better, to save ongoing maintenance costs and to improve our ability to add new features in the future. </span></span></span></span></p> <p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">We don’t have the space in this post to describe all the features of good code. We’ll save that for another post, another time (or another 50 posts, perhaps!). Suffice it to say, it’s important not to create technical debt ­­– debt from hacking things together that will eventually need to be paid back with interest!</span></span></span></span></p> <ol start="4"><li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Style Conformance</b></span></span></span></span></li> </ol><p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">This goes hand in hand with point #3. Style conformance is an important part of good coding practice. However, setting everything to “high priority” is the same as setting no priorities at all. Some companies have great coding standards, while others have pedantic standards that can impede good coding practice. Additionally, this tends to be syntactic. We make sure to review for style conformance at Geisel Software, but this is much easier to spot and fix than priorities #1-3, which deal more with the nature of the code.</span></span></span></span></p> <ol start="5"><li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Anything Else of Importance</b></span></span></span></span></li> </ol><p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">This is a bit of a catch-all. Maybe there are things that aren’t necessarily in the style guide that we should conform to because they contribute to a code philosophy. Or perhaps our client has asked for something to be done in a specific manner. This is a good check and balance for things that don’t fall neatly into a defined category.</span></span></span></span></p> <p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Let’s review our code review priorities:</span></span></span></span></p> <ol><li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="background:white" xml:lang="EN"><span style="color:#222222">Architectural issues with other modules. Will the way this is developed be an issue for anyone else's features/modules/implementation?</span></span></span></span></span></span></li> <li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="background:white" xml:lang="EN"><span style="color:#222222">Bugs.</span></span></span></span></span></span></li> <li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="background:white" xml:lang="EN"><span style="color:#222222">Modularity, code reusability, good coding practice.</span></span></span></span></span></span></li> <li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="background:white" xml:lang="EN"><span style="color:#222222">Style conformance</span></span></span></span></span></span></li> <li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="background:white" xml:lang="EN">Anything else of importance that pops out at you.</span></span></span></span></span></li> <li><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="background:white" xml:lang="EN"><span style="color:#222222">Grammar and punctuation.</span></span></span></span></span></span></li> </ol><p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="background:white" xml:lang="EN"><span style="color:#222222">Oh, we seem to have skipped “Grammar and punctuation.” What a gross oversight! Um, not so much. The least important thing in a code review is grammar and punctuation. BUT, it is the easiest to spot, so it’s usually the first thing to be criticized. At Geisel Software we have a rule for code reviews: If your first two comments in a code review relate to grammar or punctuation, you are not permitted to speak for the rest of the code review. Let that sink in for a minute.</span></span></span></span></span></span></p> <p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="background:white" xml:lang="EN"><span style="color:#222222">It is so easy to make comments about grammar and punctuation – even if they’re already right! These are the easiest errors to spot, but the least important to writing good software. This is one of the keys to why code reviews can be so tedious and useless. It takes a lot of time to really understand the code, its purpose, and why certain design decisions were made. If we’re all forced to listen to you recite your favorite passage </span></span><span lang="EN" style="color:#222222" xml:lang="EN">from The Chicago Style Manual<span style="background:white">, we’re going to lose our minds before we get the chance to make a great bug find.</span></span></span></span></span></span></p> <p><span style="font-size:11pt"><span style="tab-stops:center .25in"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="background:white" xml:lang="EN"><span style="color:#222222">So, what about those rock star reviewers? I’ve worked with a few people who could regularly spot really nasty bugs in code reviews. A huge part of what made them so successful was their ability to focus on the areas of the code that are the most complex. It takes brain power and energy to read complex code and really comprehend it. Hence, most people tend to avoid it. But, if you take the time to focus, avoid distractions (like should there be a comma before “and”?), and strive to understand the code you’re reading, you can be a rock star reviewer too!</span></span></span></span></span></span></p> <p> </p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Wed, 29 Jan 2020 15:19:15 +0000 geisel 230 at https://geisel.software Why IoT Security Must Be Built-in From the Start https://geisel.software/blog/why-iot-security-must-be-built-start <span>Why IoT Security Must Be Built-in From the Start</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2018-03/bigstock%20Colorful%20Painted%20Door%20Padlock-800x431-108956531.jpg" width="800" height="431" alt="Colorfully painted wooden door with padlock" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Wed, 09/18/2019 - 15:49</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">128</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p dir="ltr">Developments within the Internet of Things (IoT) space are happening at tremendous speed, but the pace of this change creates challenges from a security standpoint.</p> <p>Recent research from Capgemini Consulting found most organizations are not providing adequate security and privacy safeguards within their IoT products.</p> <p>Much of this is a result of a lack of specialized security skills, but also glaring inefficiencies within the IoT product development process. Capgemini’s survey found only 48 percent of companies focus on securing their IoT products from the very beginning of product development.</p> <p>This is potentially disastrous. Given the expanding potential attack base being created by the huge growth in connected devices, security needs to be just as much at the heart of any IoT development as the product’s basic functionalities.</p> <p>Stopping hackers, and preventing holes from being left in any IoT system, is something that must be thought out from the very beginning. This goes beyond even the system itself, and how it connects devices together and to the cloud. Developers need to think even further ahead. For example, they need to plan how they are going to carry out necessary firmware upgrades down the line in a secure manner.</p> <p>Ensuring security is woven into the product development should not be too difficult. Security is a customer’s major concern when it comes to IoT, and ensuring they are adequately protected can be key to future sales and revenues. The security solutions are out there, manufacturers just have to make sure they use them.</p> <p>This is slightly complicated by the fact that, because the industry is still in its early stages, people are still figuring security out. There are so many companies coming up with IoT solutions, that we are yet to have any one-stop security solutions because of the diversity of devices.</p> <p>This means that what secures one device will not necessarily be sufficient for the next device because it might be completely different. Plus, each device has so many different aspects to it - say Bluetooth, or Wi-Fi, or radio - that they cannot all fold into a solution.</p> <p>Nonetheless, the solutions are out there, and they must be built into IoT products at the earliest stage. Nordic, for example, has software on its devices that conducts encrypted firmware uploads. Those are starting to emerge for a variety of aspects of IoT devices. So when commencing your top-level design, you need to look at the particular things that should be secured on each device, and make sure they are tackled from the start.</p> <p>This will obviously depend on what components are involved in each case, on a client-by-client basis. There is no one solution to IoT security, it is different to every device. But ensuring you have in-built the security solutions from the very beginning will ensure it is not an ongoing burden for your company, and will save time and aggravation in the long run.</p> <p>Don’t get caught unaware. When you start mapping out your product functionality, map out how you propose to deal with security every step of the way, identifying the solutions that work for each particular issue. Your client, and your business, will thank you in the long term.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Wed, 18 Sep 2019 14:49:23 +0000 geisel 204 at https://geisel.software The Art of Good UI Design https://geisel.software/blog/art-good-ui-design <span>The Art of Good UI Design</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2019-09/ArtofGoodUIDesignpic%20%281%29.jpg" width="800" height="534" alt="The Art of Good UI Design" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/user/105052" lang="" about="/user/105052" typeof="schema:Person" property="schema:name" datatype="">adamfog61</a></span> <span>Mon, 09/09/2019 - 14:24</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">136</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>A good user interface is an essential part of great software development. A user interface is the “front-end” that allows the user to easily interact with your software. But trying to balance visual attractiveness, usability and performance to create a good user interface for a device, app or website can be challenging. </p> <p><b>So, how do you begin a new UI design project?</b><br /> The first step when starting a new project is to <b>talk to the client.</b> Get to know their products and their industry and then find out what their goals and priorities are for the project. </p> <ul><li>Do they want to increase daily use of a product or are they trying to solve an entirely new problem? </li> <li>Are they replacing or improving an existing product? If so, what did they like/not like about it? </li> <li>Do they have design guidelines for you to follow or will you need to create them? </li> </ul><p>These are all key pieces of information to have before beginning your design.</p> <p><b>Most important components to consider when designing an interface</b><br /> One of the most important components of your design is <b>function</b>. Functionality always takes precedence over style. The interface should look nice, but not at the expense of its usability. For example, if it’s a Voice User Interface (VUI) shorter commands that give users quick access what they need are better than long, verbose explanations that delay access to information.</p> <p>Your design should also be <b>intuitive</b>. Don’t make your users think! There are always certain basic assumptions made such as presuming the user knows how to use a mouse or keyboard, or how basic touch gestures work. Beyond that, try to make using the product as straight-forward as possible. Make sure the product features are easily discoverable, use visual clues such as familiar icons to show users what a button will do, and give users feedback regarding the success of their actions.</p> <p> </p> <p><b>Key factors that should influence your design plan</b></p> <p> </p> <p><b>HOW.</b><br /> When you begin your design it’s important to know <b>how the user will be interacting with the product</b>. Will they have a full desktop with mouse and keyboard? A touch screen interface? A smart phone? A voice-activated interface? Custom hardware with physical buttons? </p> <p>Knowing how the user will be interacting with the device will help dictate the inputs and outputs of an interface. For instance, a well-designed automobile interface should be easy-to-use and provide feedback with minimal distraction of the driver. If the driver needs look down at a touch screen to see if he’s pressing the correct command, the interaction points should either be very large. Or perhaps a touch interface isn’t the ideal interface for this functionality, and a physical button that is easier to interact with is a better choice? </p> <p> </p> <p><b>WHO.</b></p> <p>Next, you need to consider <b>who will be using the product</b>. Is it a consumer-level product that should provide a great deal of guidance to the user, or is it a professional grade product that assumes the user already has a lot of technical knowledge? An expert user has different requirements than a beginner user.</p> <p>For instance, if you are creating an interface to remotely control a robot for the military, the users are most likely going to be expert-level and the interface shouldn’t have to provide a great deal of guidance. Instead, the user is looking for speedy performance, feedback data, and a great deal of control.</p> <p>If we are creating an interface for a drone for casual users, it needs to guide the user more with familiar icons and an easy-to-navigate menu. You may also choose to selectively remove controls that aren’t needed to avoid confusing the user. </p> <p> </p> <p><b>WHAT.</b><br /> You should then determine <b>what the product will do.</b> Is it a relatively passive product that needs minimal user interaction such as a notification alert for a news source that a user just needs to receive and dismiss? Or is it something that requires precision control and quick responsiveness like a portable life support system where an expert user is monitoring critical physiological responses? What the product will do will determine how much data/control you give the user and impacts the complexity of your design.</p> <p> </p> <p><b>Why you need a dedicated UI designer</b><br /> A UI designer’s job is about more than creating a visually appealing product; it’s about understanding the user’s mindset, predicting what they will expect, and then creating a design that is easy to use. Having a dedicated UI designer allows developers to focus on what they do best – code. It also streamlines the process and can reduce development time when you have someone prototyping and designing the interface before the product gets developed rather than during the development process. In the end, not only will your product look better, it will function better too.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Mon, 09 Sep 2019 13:24:41 +0000 adamfog61 229 at https://geisel.software IoT Architecture: Build it Right the First Time https://geisel.software/blog/build-it-right-first-time <span>IoT Architecture: Build it Right the First Time</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2019-06/Optimized-image_2019_06_12T17_14_53_468Z.png" width="800" height="535" alt="Build it Right the First Time" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Wed, 06/12/2019 - 06:47</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">135</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>IoT can be an amazing enabler for your product, but it’s important to make sure you get the architecture right. Because IoT solutions involve so many complex, integrated components, a sound IoT architecture is a make-or-break part of product development.  A successful IoT architecture addresses a mix of technical requirements, business implications and delivery considerations. Your IoT architecture should provide a roadmap for reliable, secure data transport, as well as methods to manage and deploy your devices.  </p> <p> </p> <p><b>Begin at The Beginning</b><br /> So, where do you begin? At the beginning, of course! The very first thing you should consider when creating your IoT architecture is the use case of your device. How your product will be used should guide how you define your architecture and whether your networking should be local or cloud-based. Is your application local, where your data can be processed at the edge of your network, close to the source? Maybe you want to walk around a factory floor and check all the smart sensors. You could accomplish this using Bluetooth and a mobile application on a smart phone.</p> <p> </p> <p>But, if you had a light switch that is installed in someone’s home so they can turn lights on and off while they are away, then a local architecture doesn’t make sense. You’d need to design it for the Cloud, where data is gathered and processed in a centralized location, and all devices that need to access this data or use applications associated with it must first connect to the Cloud. The question of whether your device architecture should be local or cloud-based – or a combination of the two – can only be answered by considering its application. You should also take analytics into account when answering that question. If you want to gather analytics from your device without sending out a field engineer, then you need to be thinking about architecting to the Cloud. </p> <p> </p> <p><b>Hardware Matters</b><br /> Evaluating your device hardware and protocol is another important part of planning your IoT architecture. In a typical IT environment, we send as much data as we want with few restrictions. But, the amount of data we can send in an IoT environment is often limited because of battery size, distance, or accessibility. You need to consider several different factors: What is your power source? How much data are you sending? How far are you sending the data? For example, if you are using a sensor to test pH levels in a remote bog, you may only need to send small amounts of data – the pH level results – once a day or once a week.  Because sensors are equipped with very small batteries, you would want to choose a low power networking protocol like MQTT so you reduce your bandwidth and maximize the battery life. Or if you are connecting millions of devices, you may need to reduce bandwidth just because of the sheer volume of data you are collecting. Before choosing your hardware architecture you should analyze the type of sensors/actuators, the communication interface, the amount of data to be captured and the frequency of the data transportation.</p> <p> </p> <p><b>Phone Home</b><br /> Communication between your server and your device is also a vital part of your IoT architecture. Technically, your server does not have the ability to reach out to your IoT device. If you drop a robot in the Pacific Ocean, how does your server know how to communicate with it? Or maybe you have a home intrusion detection system set up behind your firewall? How does your server know how to get through the firewall? Like Steve Speilberg’s infamous E.T., your device must “phone home” to your server to to check for operations and events that need to be carried out on the device. The server can then respond with data back to the device. </p> <p>Part of your architecture should include how often your device will “phone home”. If you are collecting pH levels from a remote bog, it might be fine if your sensor checks in once a day or once a week. But if you are trying to turn on a light in your home, you wouldn’t want to wait a day or an hour for the device to check in with the server to turn on your light. How many devices you have and how often they are “phoning home” all impact the time it takes to push out a message as well as server and resource allocation. The cost of your device-server communication becomes part of your architecture.</p> <p> </p> <p><b>Plays Well With Others</b></p> <p>Your IoT architecture will also be impacted by whether you will be integrating with other devices, components or services.  Do you need to integrate with Google Home, Apple Home Kit, Alexa or some industrial software?  What types of integrations you are supporting will impact whether you need to be in the Cloud. Beyond the question of integration, you need to decide whether you will expose a public API. By making your API public, users can build their own applications to your device. This is where the early adopters live and it represents an opportunity to get feedback on how customers are really interested in using your device and may provide ideas for additional business opportunities.</p> <p> </p> <p><b>Safe And Sound</b><br /> We hear about it every day: security. You must address security when creating your IoT plan. Adding security to your device adds cost. You need to decide if your data needs to be encrypted across the network, at rest, or not at all.  If you are collecting pH levels in a bog, you probably don’t want to chew up battery life encrypting your data. But if you are designing a wearable insulin pump for diabetes, encryption is going to be critical. </p> <p>In addition to security on the device, you also need to think about protecting your data in the Cloud. For instance, many manufacturers put their MySQL database right on the public Internet, collecting data from all their devices which are secured with the same password. If someone cracks the password, they have access to all the data from all your devices. This is a solved problem: simply put your database behind a Web API that will provide user authentication. Many other security issues also have addressed and resolved. Don’t reinvent the wheel – approach these issues with existing systems, methodologies and technologies or find an experienced IoT solutions provider to do it for you.  </p> <p> </p> <p>Planning out your IoT architecture at the beginning of your project is essential for success. Take the time to do it right the first time. Changing an architecture that doesn’t work is like changing the foundation of house; sometimes it can be done, but it’s not easy. Other times you may find that your hardware is all wrong for the features you want to deliver, and you must start all over again. It’s important to design a scalable, flexible architecture that meets not only today’s requirements, but will allow you to add features in the future without starting again from ground zero. </p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Wed, 12 Jun 2019 05:47:38 +0000 geisel 227 at https://geisel.software Consumers Need to Get Wise to IoT Security https://geisel.software/blog/consumers-need-get-wise-iot-security <span>Consumers Need to Get Wise to IoT Security</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-10/Bigstock%20-%20Consumer%20Shopping%20-%20800x431.jpg" width="800" height="431" alt="Abstract of consumers in mall area" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Wed, 10/11/2017 - 18:01</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">128</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Too many consumers of Internet of Things solutions do not pay enough attention to security. This level of apathy may have serious repercussions down the line.</p> <p>The research bears this out. An opinion poll by the US Chamber of Commerce’s Technology Engagement Center found that the majority of IoT consumers rely wholly on device manufacturers to detect threats and safeguard them against malicious activity.  </p> <p>In the UK, similar research by tech firm Canonical found almost half of people are not even aware of the dangers surrounding IoT, ignorant of the fact that their devices could be targets for hackers. </p> <p>Almost 40 percent of people say they are not “sufficiently aware” of IoT security dangers, while 79 percent say they have never even read a news article focused on these issues. Of even more concern, the majority of people say their distrust of IoT security has not grown over the last year.</p> <p>This demonstrates that those educational campaigns on the risk of IoT devices are not hitting home. This failure to take security seriously on the part of the consumer could have serious repercussions for the industry as a whole.</p> <p>Firstly, as the Canonical research suggested, the lack of awareness of security issues on the side of consumers means the majority are failing to adequately secure their devices. A shockingly low 31 percent of consumers said they update their devices when updates are released by manufacturers. 40 percent have never, ever, updated their firmware.</p> <p>This obviously comes with huge associated risks. Devices are therefore more susceptible to attack. Such hacks can have dire consequences for users, and could harm the industry in the long-term once people are suddenly made aware in the worst possible way of the potentially catastrophic effects of unsecured connected “things”.</p> <p>The lack of consumer awareness over security places the burden of responsibility on manufacturers. Yet, in many cases, this is not working out for the best. Many companies fail to ensure security is treated as a paramount part of the IoT product development cycle.</p> <p>Other companies fail to ensure they will be able to run future updates on their devices in a secure way. These mechanisms need to be built in from the start, but in a way that they cannot be compromised. Too often this aspect of security is also overlooked.</p> <p>The industry is still in the process of getting security right. The solutions are out there, you just need to know to use them. That is why we need to get consumer education right, to ensure the security and sustained growth of the IoT industry.</p> <p>Aside from ensuring they update their devices, there is not alot consumers can do security-wise. But while they continue to lack understanding of the potentially disastrous repercussions of lax IoT security, manufacturers do not have a financial imperative to build in security solutions.</p> <p>Consumers should ensure they pay attention to things like security reviews for IoT products. This serves a dual purpose. Not only will it ensure their connected devices are secure, but it will place the responsibility back with the manufacturers to ensure they are up to scratch. This way, we can make certain we get security right and allow the industry to fulfill its potential.</p> <p dir="ltr"> </p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Wed, 11 Oct 2017 17:01:11 +0000 geisel 203 at https://geisel.software IoT Security a Challenge As Device Numbers Rise https://geisel.software/blog/iot-security-challenge-device-numbers-rise <span>IoT Security a Challenge As Device Numbers Rise</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-09/Bigstock%20Security%20a%20Challenge%20800-431.jpg" width="800" height="431" alt="Padlocks with Binary background of orange and blue" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Tue, 09/26/2017 - 20:01</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">128</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p dir="ltr">It is indisputable that the Internet of Things (IoT) is the next Industrial Revolution, given the impact it will have on the way people, businesses and governments live and work.</p> <p dir="ltr">Boston Consulting Group (BCG) predicts $267 billion USD will be spent on IoT technologies, products, and services within 3 years.</p> <p dir="ltr">IoT, then, is the future. But it is also very much the present. As many as 8.3 billion connected things are in use this year, according to Gartner, up 30 percent from last year. The already sizeable proliferation of connected devices means we have to get security right now if we are not to face greater problems down the line.</p> <p dir="ltr">For all the opportunities inherent in IoT, it comes with its fair share of dangers. The growing number of connected devices opens up new opportunities for hackers, making it vital that IoT device manufacturers ensure they have built-in security functions to protect their customers.</p> <p dir="ltr">The problem is that there are so many potentially vulnerable points, and so much potential negative impact. Holes in the security systems of IoT devices can put consumer data, corporate IP, and a firm’s entire IT infrastructure at risk.</p> <p dir="ltr">There are various aspects to this. Manufacturers need to ensure devices - possibly pre-hacked - that come into the network cannot compromise it. We need to make sure an IoT device cannot be used as a trojan horse to get into other devices. We need to make sure someone can’t buy one of our devices and use it to hack others.</p> <p dir="ltr">But it is not just about the devices. The device connects to the cloud, which opens up a whole new world of possibilities for hackers, so we need to focus on security there too. Data being transferred needs to be encrypted, though this is an area that has generally been sorted out.</p> <p dir="ltr">Meanwhile, even after these secure devices have been rolled out to the market, they are going to need their firmware to be updated at some point in the future. This needs to be secure to ensure only the manufacturer can carry out updates, and so these mechanisms need to be built in from the start.</p> <p dir="ltr">These issues need to be adequately addressed if the industry is to develop as predicted. According to research conducted by management consultancy firm Capgemini, 71 percent of executives say security concerns will influence purchase decisions on IoT products.</p> <p dir="ltr">Of even more concern, only 33 percent of executives believe IoT products are highly secure from cyber security attacks. In spite of this, less than 50 percent of organizations provide privacy-related information regarding their IoT products, and only 48 percent of IoT companies focus on security from the start when designing their products.</p> <p dir="ltr">This dangerous lack of emphasis was demonstrated late last year when a distributed denial-of-service (DDoS) attack against DYN’s DNS infrastructure saw a number of major sites taken offline, including Spotify and Twitter. This is something that could happen time and time again if we don’t get security right.</p> <p dir="ltr">The industry is still at an early stage, and still getting to grips with challenges such as security. But with the IoT space expected to develop at a dazzling pace, now is the time to make sure we make the security of our devices - and therefore our clients - a central plank of the development of the sector.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 26 Sep 2017 19:01:16 +0000 geisel 202 at https://geisel.software Tackling Security Issues With the Internet of Things https://geisel.software/blog/tackling-security-issues-internet-things <span>Tackling Security Issues With the Internet of Things</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-03/Tackling%20Security%20Issues%20Hoodie%20800x431%20Final.jpg" width="800" height="431" alt="Hacker With Abstract Blue Background" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Tue, 04/18/2017 - 04:10</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">128</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p dir="ltr">The Internet of Things is big, and getting bigger. Breakthroughs in technology, falling costs, and a growing market mean it is an increasingly exciting space to get into. Yet, as with all growing technological innovations, it has its security challenges. Let’s take a look at some of the security concerns thrown up by IoT and how to tackle them.</p> <p>Many companies don’t think about the security of IoT devices, as before embedded devices could be connected to the cloud there was no need. Connect any device to the internet, however, be it a laptop or a toaster, and all of a sudden security concerns arise. As IoT devices connected to the cloud proliferate, so do opportunities for hackers to gain entry to your devices and - through them - your server.</p> <p>Often vendors don’t understand that the simple process of adding internet functionality to their devices - even if they are not traditionally internet devices - could compromise the whole network.</p> <p dir="ltr">This risk only becomes greater as devices gradually become more interconnected, and when we take into account the fact device protocols used by IoT may not have gone through the same testing for vulnerabilities as that which traditional software goes through. It is a new industry, with developers unable to work from a manual in many cases and solving new problems. Though devices will be functional, they need to be properly tested for security issues.</p> <p dir="ltr">These potential threats are scary enough when it comes to the Connected Home and your personal security, but let’s not forget IoT goes far beyond that, into the likes of financial services, healthcare, oil and gas, electric, and government. Yet awareness of security risks still seems to be lacking, with perhaps only a well publicized attack with serious loss of data likely to make people sit up and take notice.</p> <p>Still, there are some companies handling security for IoT, though major firms have not yet taken the lead on it. Yet companies and individuals using IoT also need to be aware that these security firms can’t do everything. If a user doesn’t change a preset password, and a hacker gains access to their device and server, it is out of the company’s hands. Preparation needs to go in from all sides before devices are rolled out to ensure security.</p> <p>This preparation is hampered by the fact that patching vulnerabilities as you go along is usually cheaper than making sure the IoT product is secure from the start. Patching can actually make issues worse, confusing customers and leaving products open to attacks. Best to make sure security protocols are in place from the beginning, and that customers know what they need to do to keep themselves secure at the time of purchase.</p> <p>Better encryption is necessary. Many analysts believe poor implementation of cryptographic features could be a major weakness in the face of attackers who could reset them. Poor passwords are another issue, with customers needing to be educated on the need to reset passwords upon purchase, and how to make those passwords most effective. Currently, too, IoT devices might lack of the processing power, compounding security issues. However, this will change, but in the meantime companies need to be aware that there are potential problems and make sure they are covered.</p> <p>You might think that as an IoT business your first priority is functionality, but in terms of keeping you and your customers secure, making sure your solutions are protected against malicious attacks must come at the top of the list.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 18 Apr 2017 03:10:01 +0000 geisel 196 at https://geisel.software IoT Goes Beyond the Connected Home https://geisel.software/blog/iot-goes-beyond-connected-home <span>IoT Goes Beyond the Connected Home</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-03/bigstock-800x431-BEYO%10ND-iot-Female-Medi-158633783.jpg" width="800" height="431" alt="Medical Abstract Background with Laptop" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Mon, 04/10/2017 - 13:00</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p dir="ltr">When most people think of IoT, they think of the Connected Home. The idea that your car can talk to your front door, which can talk to your lighting, which can talk to your stove. The standard example of IoT is that your car - using embedded software and the cloud - is able to inform your front door when you pull into your driveway, which in turn unlocks and informs your lights they need to switch on now.</p> <p>Things haven’t quite gone that far - yet - but it is heading that way. But IoT is much more than just your house. Companies are using IoT for manufacturing and enterprise. Last year, the installed base of IoT devices in industrial automation reached 10.3 million. Of all the niche markets, however, healthcare is one of the major ones.</p> <p>According to research from MarketResearch.com, the healthcare IoT market segment is set to grow to US $117 billion by 2020. Increasingly, connected devices in a number of forms are being introduced to patients to regularly track health information. Smart beds detect if they are occupied and when a patient tries to get up, while also adjusting to ensure appropriate pressure. Home medication dispensers can automatically upload data if a patient does not take medication.</p> <p>There are other innovations.<a href="http://mimobaby.com/"> Mimo</a> has rolled out an infant monitor providing parents with real-time information on their baby, including its breathing and skin temperature, with data sent straight to a smartphone. Pixie Scientific has developed smart diapers analyzing a patient's urine in order to track any urinary tract infection (UTI), with a caregiver able to scan a QR code on the front of the diaper and have the data sent to their smartphone.</p> <p>Vigilant, a Swiss firm, has meanwhile developed a smart insulin injection tracker, which comes in the form of an electronic cap fitting most insulin pens, and transmitting insulin injection data to an app.<a href="http://proteusdigitalhealth.com/proteus-digital-health-announces-fda-clearance-of-ingestible-sensor/"> Proteus Digital Health</a>, on the other hand, is bringing IoT to pills, launching an ingestible sensor within a pill that tracks a patient’s medication schedule.</p> <p>These devices also serve to open new markets for companies looking to get into the IoT healthcare space. Since many of them require follow-up consultation with a doctor or other type of healthcare professional, there is an opening for more, smarter devices that can deliver more valuable data and further decrease the need for direct patient-doctor interaction.</p> <p>One of the major benefits of these advancements in IoT in the healthcare sector is that support can become more efficient, enabling healthcare professionals to keep an eye on the health of their patients without the need for hospitalization or regular visits. Senior citizens particularly stand to benefit. With IoT technologies employed in the home, they can live more independently, with reduced costs and less need for additional caregiver resources.</p> <p>Some obstacles remain to the development of the sector, however, most notably, as ever, around data privacy and security. Most of the above devices have secure methods of communicating health information to the cloud, but they are still targets for hackers and could be vulnerable. Increasingly, however, regulators will develop frameworks for connected devices utilized in the healthcare sector, something already evident with the release by the United States Food and Drug Administration of guidelines for medical IoT devices. Regulation will catch up, but it will always be behind the pace of innovation in a sector that looks to be as lucrative for investors as it is efficient for healthcare professionals and patients alike.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Mon, 10 Apr 2017 12:00:45 +0000 geisel 194 at https://geisel.software Sizing Up the Internet of Things Opportunity https://geisel.software/blog/sizing-internet-things-opportunity <span>Sizing Up the Internet of Things Opportunity</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-03/Sizing-Up-Toddler-With-Binoculars-800x431.jpg" width="800" height="431" alt="Toddler in Safari Uniform with Binoculars" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Tue, 03/28/2017 - 04:06</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p dir="ltr">When the Internet of Things (IoT) first became a “thing”, just a few years ago, expectations for the space were astronomical. Analysts were predicting the market for connected devices by 2020 could be as high as 100 billion units.</p> <p>Thankfully, in terms of managing expectations and pleasing investors, forecasts these days are less hyperbolic. But the opportunity is still huge. The market for connected devices could be as high as 30 billion units. And the global IoT will be a seriously big business.</p> <p>Technavio believes the market will experience an annual growth rate of 54.93 percent over the next five years. The International Data Corporation (IDC) says the market will grow to US $1.7 trillion by 2020 from US $655.8 billion in 2014. With relatively few companies currently operating in this market, there is a chance to grab market share relatively quickly.</p> <p>Not that doing that is easy. Developing for IoT is difficult and requires certain skills. Interconnectivity issues are yet to be sorted adequately. It is still not clear how comfortable people are with certain wearable devices - see the issues with Google Glass for an example. Yet other things are falling into place that mean taking IoT devices and solutions to market is becoming easier and potentially lucrative.</p> <p>For one, tools and products are now more readily available than they were a few years ago. Apple has released HealthKit and HomeKit developer tools, while the likes of Samsung are rolling out devices. Google acquired Nest to speed this process along. Before, developing for IoT was a very difficult job, but as devices increasingly come with operating systems built in, and Linux becomes more pervasive in IoT, it is becoming easier to develop products.</p> <p>Technological advances have also helped with this. Semiconductor components are available for lower prices, often with more functionality. Processors are becoming more energy efficient. And smart watches have arrived. The smart watch industry alone is projected to grow by 18 percent this year, with 28.5 million units being shipped, and IoT can ride on the back of that. Smart watches are many times more powerful and functional than they were back in 2012, and prices have come down in a big way.</p> <p>IoT devices are also becoming more standardized, with more formal standards emerging. Semiconductor players have partnered networking, hardware and software companies, as well as industry associations, in order to develop formal and informal standards for IoT. This will play an important role in fixing the interconnectivity problem, as the industry seeks interoperability. APIs are also gradually becoming more standardized.</p> <p>Demand is rising, linked to the evolution of technologies and falling costs. These same criteria played a huge role in the growth of the smartphone market over the last few years. Of course, it remains to be seen just how comfortable people are with just how “connected” their lives can become, but that will be up to individual companies to test, adapt, reject and accept certain products. The main thing is that people have already shown they want IoT products and that demand will increase over time.</p> <p>Of course, all this said, once you have an IoT product, you still need to take it to market and see how it plays. The challenges are still there, the opportunities are immense, but the real test will be how individual IoT devices play out with consumers in a growing market that is slowly becoming more affordable, more interoperable and more standardized.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 28 Mar 2017 03:06:18 +0000 geisel 195 at https://geisel.software How To Get Your IoT Project Off the Ground https://geisel.software/blog/how-get-your-iot-project-ground <span>How To Get Your IoT Project Off the Ground</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-03/bigstock-800x431-FINAL-airplane-taking-off-143775560.jpg" width="800" height="431" alt="Jumbo Jet Taking Off From Runway" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Sat, 03/18/2017 - 02:48</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p dir="ltr">We all know IoT is on the way to becoming a seriously big business in the next few years, with a likely annual growth rate of as high as 50 percent, taking the market worldwide to US$1.7 trillion by 2020. This growth will be based on more vendors and enterprises embracing IoT and its opportunities.</p> <p>Developing for IoT is tough, but it used to be tougher. It is not easy going from being a desktop developer to developing on a device, you can’t Google how to do it, and you’re solving a problem nobody else has ever solved. Devices used not to have a driver for Linux, as they were brand new. Developers would have to read and understand the electrical specifications for the device, and write software out of that.</p> <p>The process is easier now, with IoT becoming more standardized and “out of the box” code becoming more common. Embedded devices used to be too small for an operating system, but now almost everything has one. Things are steadily becoming more generic. Meanwhile, the proliferation of devices such as 3D printers and the Raspberry Pi is assisting with the development of IoT projects.</p> <p>If you’ve decided you think you have what it takes to roll out an IoT solution, you need to consider three main aspects. All IoT solutions are based around the Mechanical, the Electrical, and the Software. Get these three aspects in place, and your IoT product is just another product that needs taking to market and selling.</p> <p><strong>Mechanical</strong></p> <p>Mechanical essentially refers to what the device looks like. What is your circuit board and compatibility going to fit into? How is it designed, how small is it, what does it attach onto? Technology is improving, and devices are becoming smaller and more manageable. There are any number of companies or freelance engineers that can build this part of your device. Even better, you can have it designed and then either you or your customers can print it on a 3D printer.</p> <p><strong>Electrical</strong></p> <p>What is inside your device? What is its processing power? All IoT solutions need wireless connectivity. Many companies specialize in this area, and as noted above, with technology developing and an increasing number of devices already having operating systems, it is now possible to do pretty much 90 percent of what you want to do using off the shelf equipment.</p> <p><strong>Software</strong></p> <p dir="ltr">Once you’ve got your mechanical and your electrical aspects all set, you get to the crux of the matter, the aspect which is going to set your solution aside and sell it. What does your device need to do? What capabilities must it have? How does it connect to the cloud? Is it a web app? Technological developments are steadily making building software for IoT more manageable, but it is still a specialized area not suitable for regular developers. You need to find your company, check their track record, and then explain to them exactly what your solution does and what it will be used for. You’ll also need to find out what they require from those dealing with the mechanical and electrical sides.</p> <p>Once you’ve got all your ducks in a row with these three key aspects, it is simply a question of taking your product to market and selling it to consumers. How does your IoT solution play in the market? What models will you employ? Will customers pay a subscription? Or will they have to buy a device? What are your ongoing costs, such as cloud servers? IoT may be the business of the future, but once your solution is built, it is just another product. Sell it.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Sat, 18 Mar 2017 02:48:57 +0000 geisel 192 at https://geisel.software How to Control LED Lights with a Raspberry Pi https://geisel.software/blog/how-control-led-lights-raspberry-pi <span>How to Control LED Lights with a Raspberry Pi</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-02/bigstock-800x461-Colors-Of-The-Led-117316820.jpg" width="800" height="461" alt="LED Lighting in purple blue and green lights" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/nreed" lang="" about="/users/nreed" typeof="schema:Person" property="schema:name" datatype="">nreed</a></span> <span>Tue, 02/28/2017 - 18:50</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">127</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p dir="ltr">    As an IoT (Internet of Things) shop, we love working with new technology and creating fun useful side projects.  We have worked on everything from a temperature sensor for the office, to a boost controller for a Subaru WRX.  So when one of our staff was working on a theater room for his house, we were more than ready to lend a hand with a fun IoT project!</p> <p dir="ltr">   There is a half stair that leads into the theater room that presented such an opportunity.  In traditional theaters, there are usually small lights attached under the stairs to give people enough light to walk down the aisle, but not too much to distract from the movie.  It would be so cool if this theater room had such a light that was also interactive!</p> <p dir="ltr">    In order to accomplish this, we needed to attach a multicolored LED light strand underneath the stair.  It would need to be a compact, unobtrusive, and easily controllable.  The options were endless!  We wanted to be able to customize patterns, colors, and change the lights to fit the mood of the room (or the movie!).  With the size requirements for the project, in came the Raspberry Pi Zero.</p> <p dir="ltr"><img alt="Carpeted stair with LED strip" data-entity-type="" data-entity-uuid="" src="/sites/default/files/blue-rug-natalies-blog-576x432.jpg" /></p> <h3 dir="ltr"><strong>How to Build your own Web Controlled LED Strip</strong></h3> <p dir="ltr"><strong>Prototyping Phase</strong></p> <p dir="ltr">    There are two stages of this project, the prototyping phase and the final solution phase.  This way you can get the project to work in an unconstrained environment before worrying about the size and cost of the final project.  For the prototyping phase, it would be easiest to grab a Raspberry Pi 3 for testing.  This way you have more USB ports, a full-sized HDMI port, built in Bluetooth and Wifi, and you don’t have to solder pins in the prototype phase.  </p> <p dir="ltr">    You then need a breadboard and some basic materials like jumper wires, individual LEDs, MOSFETS, and resistors (I would suggest ~100 ohms to prevent your LEDs from combusting spontaneously).  A T-Cobbler would make prototyping easier, but you could get individual wires that would work too.  If you are a DIY enthusiast, you can grab a cheap breadboard kit with most of these materials for under $20.  If you aren’t planning on making more projects, all of these individual parts can be bought separately (<em>see "Bill of Materials" at the end of this article</em>).</p> <p dir="ltr"> </p> <p dir="ltr"><img alt="Prototyping Parts" data-entity-type="" data-entity-uuid="" src="/sites/default/files/Prototyping%20Parts%20-image2-576-natalies-blog.jpg" /></p> <p dir="ltr">    The T-Cobbler connects to the 40 pin on the Raspberry Pi and connects and labels the 40 pins on the Breadboard.  The 4 pin connectors (in my case, two of the two pin connectors) connect the breadboard to the LED wires.  The Barrel Connector is for powering the LED strip (power cable on the LED strip connects to a barrel connector). Though we will be using a LED strip in the final project, it's easier to start with some individual LEDs to test.  Also, if you messed up, you would only ruin a 15 cent LED instead of an $18 LED strip.</p> <p dir="ltr"><strong>Setup 1</strong></p> <p dir="ltr">    For those of you who have never worked with a Raspberry Pi before, <a href="https://www.raspberrypi.org/">raspberrypi.org</a> has a lot of great resources.  I would highly recommend their <a href="https://www.raspberrypi.org/learning/physical-computing-with-python/">physical computing-with python tutorial</a>.  Also, a basic understanding of <a href="http://www.learnpython.org/en/Hello,_World!">python</a> would be helpful.</p> <p>    To get started, line up 3 different colored LEDs and connect each to a resistor.  We are using 3 different LEDs because on the LED strip, each color is handled separately (with a 4th wire for power).  After the LEDs and resistors are in, connect 3 MOSFETs to the Pi and each to its own LED + resistor pair.     </p> <p>    For those of you who have never worked with MOSFETs before, a MOSFET is a transistor that allows you to reduce the current put out by the Pi.  We are using it because we have an LED strand with 300 LEDs connected on the strand, which would draw a large amount of current, which could potentially fry the Pi.  The MOSFET will allow the Pi to only have to power the signal for the LEDs, while an external power source can power the actual LEDs.  On the MOSFET, the gate connects to the Pi GPIO, drain connects to the led and resistor, and source connects to ground.  Depending on your MOSFET, the order of the gate, drain, source pins may change.  </p> <p dir="ltr"><img alt="MOSFET and LED" data-entity-type="" data-entity-uuid="" src="/sites/default/files/MOSFET%20and%20LEDs-image3-576.jpg" /></p> <p dir="ltr"><em>Each GPIO is connected to the Gate pin on the MOSFET (GREEN).  The Drain pin on each MOSFET is connected to a LED (YELLOW), which is connected to a resistor, which is connected to power (RED).  The Source pin on each MOSFET is connected to ground (BROWN).</em></p> <p> </p> <p dir="ltr"><img alt="T-Cobbler" data-entity-type="" data-entity-uuid="" src="/sites/default/files/image4%20T-Cobbler-576.jpg" /></p> <p dir="ltr"><em>The LEDs need to be placed such that the anode (the longer leg) points towards the power source and the cathode (the shorter leg) points toward the MOSFET.</em></p> <p dir="ltr"> </p> <p><img alt="Gate Drain Source" data-entity-type="" data-entity-uuid="" src="/sites/default/files/Gate%2C%20Drain%2C%20Source%20576x474.jpg" /></p> <p dir="ltr"><em>Note: I placed the MOSFETS facing away from the LEDs, so the pin order is (from top to bottom) Gate, Drain, Source.</em></p> <p> </p> <p><strong>Programming LED Library</strong></p> <p dir="ltr">    First, it’s helpful to have a library to control your LEDs based on their pin number.  I chose the <a href="http://abyz.co.uk/rpi/pigpio/download.html">pigpio</a> library because it has smooth PWM transitions.  Next, experiment with what you can do with the LEDs.  Come up with your own library of patterns that you want your LED strip to be able to do.  I personally wanted to be able to control the color through RGB values and play various patterns like fading between two colors or cycling through the colors of the rainbow.</p> <p><strong>Setup 2</strong></p> <p dir="ltr">    Once you have your python library of patterns, replace your individual LEDs with the LED strip.  You will also have to power the LEDs with the power source the LED strip came with, otherwise you will not have enough power to light up the LEDs.</p> <p dir="ltr"><img alt="LED Strip Diagram" data-entity-type="" data-entity-uuid="" src="/sites/default/files/LED%20Strip%20Diagram-576-150_0.jpg" /></p> <p dir="ltr"><em>Each GPIO is connected to the Gate pin on the MOSFET (GREEN).  The Drain pin on each MOSFET is connected to its corresponding color on the LED strip (YELLOW).  The 4th pin on LED strip connects to power (RED).  The Source pin on each MOSFET is connected to ground (BROWN).</em></p> <p dir="ltr"> </p> <p dir="ltr"><img alt="Strip Diagram" data-entity-type="" data-entity-uuid="" src="/sites/default/files/Copy%20of%20LED%20Strip-4%20pin%20connector.jpg" /></p> <p dir="ltr"><br /><strong>Programming External Control</strong></p> <p dir="ltr">    Next, we need to be able to control this Raspberry Pi externally.  The quickest, easiest, and most straightforward way to control the Pi remotely is by creating a website.  This will definitely not be the most secure or cohesive way to do it, but it is the fastest.  We need three different pages, an HTML site for us to input our LED commands, a PHP page to save information to the database, and a page that simply prints out data for our Pi.  </p> <p><strong>Server Side</strong></p> <p dir="ltr">    On the HTML page, you need the user to input commands like on or off, what color the lights should be, or what pattern you want to run.  When the user clicked the submit button, the page would save the data in the database.</p> <p dir="ltr">    The second page just needs to export the information currently in the database in JSON.</p> <p><strong>Client Side</strong></p> <p>    Back on the Pi, you need a script that continuously pulls the JSON data from the web server, parses it, and sends the proper commands to the LED Strip.  Again, this is not a secure or efficient solution, but it is a really quick way to get something working.  </p> <p dir="ltr"><em>    All of this code can be downloaded below.</em></p> <p> </p> <p><strong>Final Project Phase</strong></p> <p dir="ltr">    Once the project is functional, it’s time to condense the project into one compact solution.  First, you need to condense the sprawling breadboard configuration.  I knew I wanted my final solution to be small, so I converted my setup to a PCB board the size of a Raspberry Pi Zero.   </p> <p dir="ltr">    I also didn’t want to have both my Pi and my LED strip running off two different power sources, but the LED strip runs off 12V while the Pi runs off 5V.  So we grabbed a 12V to 5V buck converter to my PCB setup.  I also added a power and ground hole on my PCB to send power to the Pi through a micro USB cable.</p> <p dir="ltr">    I then still needed the LED power jack, 3 MOSFETs, 40 pin connector for Pi (so that the board can sit right on top of the Raspberry Pi Zero), a 4 pin connector for the LED strip (I used a 4 pin audio jack in my PCB), a wifi dongle, and a micro USB to USB cable to be able to connect the wifi dongle to the Raspberry Pi Zero.</p> <p dir="ltr"><img alt="New barrel connector" data-entity-type="" data-entity-uuid="" src="/sites/default/files/New%20PCB%20-barrel%20connector-green-576.jpg" /></p> <p dir="ltr">    I used <a href="https://easyeda.com/">EasyEDA</a> to design and print my PCB.  I had to solder the pieces separately, but I was able to get the PCB up and running quickly.</p> <p dir="ltr"><img alt="Soldered cable" data-entity-type="" data-entity-uuid="" src="/sites/default/files/Soldered%20PCB-cable%20to%20micro%20USB-576.jpg" /></p> <p dir="ltr">    You need to move the Pi image or SD card you used in the practice phase of the project from the Raspberry Pi 3 to the Raspberry Pi Zero.  You also need to have your JSON search script run on boot.</p> <p dir="ltr">    Also, I designed my board such that my PCB rests right on top of the Raspberry Pi Zero.  This requires some sort of non-conductive layer in between the two boards.  I just used a Raspberry Pi Zero case, but you can also use electrical tape or hot glue.</p> <p dir="ltr"><img alt="Wires" data-entity-type="" data-entity-uuid="" src="/sites/default/files/LAST%20IMAGE%20360x480%20green%20bar%20orange%20black%20wire.jpg" /></p> <p dir="ltr">    Feel free to stick your contraption in a case of some sort.  An Altoid tin would easily fit, but you would have to line the inside with a non-conductive material and cut holes for the power cord and for the power switch.  You could always customize your own case with a 3D printer too.</p> <p><br /><strong>Future Additions</strong></p> <p dir="ltr">    There are plenty of other ways to control your LED strip!  We had another intern work with Slack’s interface and add commands on our internal slack channel to control the LED strip.  You could also experiment with connecting your phone via bluetooth or create your own creative controller.</p> <p dir="ltr"><em>    We'd love to hear how you improve on this -- make sure that you let us know how your own project went!</em></p> <p dir="ltr"><a href="/sites/default/files/Bill%20of%20Materials.xlsx">Bill of Materials</a> and <a href="https://bitbucket.org/gsi/led-project">Example Code</a></p> <p><iframe allowfullscreen="" frameborder="0" height="361" mozallowfullscreen="" src="https://player.vimeo.com/video/200393685" webkitallowfullscreen="" width="640"></iframe></p> <p><a href="https://vimeo.com/200393685">LED Project Demo</a> from <a href="https://vimeo.com/geiselsoftware">Geisel Software</a> on <a href="https://vimeo.com">Vimeo</a>.</p> <p dir="ltr"> </p> <p dir="ltr"> </p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 28 Feb 2017 18:50:22 +0000 nreed 191 at https://geisel.software Introducing Kids to CS https://geisel.software/content/introducing-kids-cs <span>Introducing Kids to CS</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/Elementary-kids-computer%20800x461.jpg" width="800" height="461" alt="Four Elementary School kids at keyboards learning Computer Science" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/nreed" lang="" about="/users/nreed" typeof="schema:Person" property="schema:name" datatype="">nreed</a></span> <span>Tue, 09/20/2016 - 17:37</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><em>[Editors Note:] Natalie is a regular intern at Geisel Software who has a passion for helping others learn -- especially kids! We're thrilled to have her manage our internship program and to introduce her as a contributor to our company blog!</em></p> <p>Despite the fact that the technology industry is one of the fastest growing industries in the US, many schools cannot afford computer science programs.  According to Newswire, only about 25% of high schools in the US offer computer science classes.  With our schools not yet able to provide this education, we must look for alternative ways to expose students to computer science.  Luckily for us, there are a variety of alternative methods to expose kids to computer science.</p> <p><strong>Why is CS education important?</strong></p> <p>Computer science education is so much more than knowing how to code.  It teaches how to approach a program logically, how to break down large, overwhelming projects into smaller, easily-digestible projects, and how to work together.  All of these skills are important, no matter what career the students end up going into.</p> <p>Also, the earlier a student starts learning and becoming familiar with using a computer, the easier it is for them to navigate our new digital world.  More and more industries rely on computers, making a base familiarity with computers critical for any industry.</p> <p><strong>Getting a first introduction into computer science terms and concepts</strong></p> <p>So what are the best ways to introduce kids to basic computer science concepts?  One great free resource doesn’t even require a computer at all!  It’s <a href="http://csunplugged.org/">CS Unplugged</a>, a free computer science curriculum that uses logic puzzles and interactive games to teach kids basic problem solving and algorithmic thinking.  Their curriculum is for all ages, levels of experience, and topics within computer science.</p> <p>Another great (and free) tool is <a href="https://code.org/">Code.org</a>.  Code.org provides a variety of fun online games that teach basic problem solving and introduces kids to basic computer science concepts like functions and conditionals.  This is a great tool to get kids who have never before been exposed to computer science to enjoy programming...</p> <p><strong>Interactive coding environments to use coding concepts</strong></p> <p>There are plenty of other kid-friendly coding environments that are meant to get kids to learn computer science concepts (and have fun while they do it).  Probably the most popular and well-known platform is MIT’s <a href="https://scratch.mit.edu/">Scratch</a> platform.  It allows kids to create games and animations using a block-based interface.  It’s great for all ages because its interface is simple, but powerful enough to cover more advanced coding concepts.  </p> <p>Microsoft’s <a href="http://www.kodugamelab.com/">Kodu</a> platform is also great for younger kids just getting introduced to coding.  It provides an amazing 3D environment for kids to create games and animations, while giving them a simple, block-based flowchart to code on.  </p> <p>Some other similar coding environments are Alice, AppInventor, Pencil Code, and TouchDevelop.  These are more geared towards middle schoolers and have slightly more complex interfaces and features.  Alice provides a 3D environment that can be used for games and animations, while AppInventor and TouchDevelop create apps for your phone.  Pencil Code uses coding to draw designs and patterns.</p> <p><strong>Hackathons and classes (both online and in-person)</strong></p> <p>Though many schools don’t have a computer science curriculum, they may still have computer science after school clubs.  Programs like <a href="http://www.technovationchallenge.org/?utm_source=rss&amp;utm_medium=rss">Technovation</a>, <a href="http://www.firstinspires.org/">FIRST Lego League/FIRST Tech Challenge/FIRST</a> <a href="http://www.firstinspires.org/">Robotics Competition</a>, Programming clubs, and more offer a great environment to continue learning computer science.   If your school doesn’t offer one, check in see if there is one in a neighboring town’s school (you’ll often be able to join if you just ask).  </p> <p>Because of the lack of widespread computer science courses, many companies, non-profits, and volunteers have worked together to try to spread computer science education.  Microsoft, Google, and Apple have especially been known to promote computer science education.  Depending on the location, <a href="https://www.microsoft.com/about/philanthropies/youthspark/youthsparkhub/programs/yscamps/">Microsoft</a> and <a href="http://www.apple.com/retail/learn/">Apple</a> have in the past run classes in their stores over the summer or after school.  <a href="https://coderdojo.com/">Coder Dojo</a> is a pretty notable non-profit group that hosts clubs globally.  Local student groups have also been popping up to teach kids how to code (ask local librarians/highschools!).</p> <p>Hackathons are a great place to get a quick introduction into coding.  They can last anywhere from an hour to a weekend and are usually centered around one specific coding concept/platform.  They are especially popular during <a href="https://csedweek.org/">Computer Science Education Week</a> (annually on the week of December 9th).  A lot of high schools, libraries, and museums will host these hackathons for the general public.  <a href="https://www.learningu.org/current-programs">Colleges</a> will also offer quick hackathon-like classes that are taught by college students for middle and high schoolers. </p> <p>To do a quick sum up presented by Barack Obama, “Don’t just play on your phone, program it.”</p> <p>By, Natalie Reed</p> <p> </p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 20 Sep 2016 16:37:40 +0000 nreed 185 at https://geisel.software Nest Thermostat Disaster, When IoT Goes Wrong https://geisel.software/content/nest-thermostat-disaster-when-iot-goes-wrong <span>Nest Thermostat Disaster, When IoT Goes Wrong</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/nest%20thermostat%20800x461wBorder.jpg" width="800" height="461" alt="Thermostat set at high heat but has icicles hanging from it" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Thu, 01/14/2016 - 20:00</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>The Nest thermostat has been an iconic example of an Internet of Things device, but today it is the epitome of IoT failures. Nest had an epic meltdown for devices all across the world that left homeowners out in the cold… literally. As the New York Times reports, “The problems with the much-hyped thermostat...affected an untold number of customers when the device went haywire across America.” The device, which is an Internet of Things, or connected thermostat started shutting off, leaving many without heat in their homes.</p> <p>As the temperature dropped, tempers flared as users took to Twitter to add fuel to the fire (which I suppose is what they were frantically trying to do at home too!).</p> <p> </p> <blockquote class="twitter-tweet" lang="en" xml:lang="en"> <p dir="ltr" lang="en" xml:lang="en">I trust nest 2 keep my pipes from freezing @ 2nd home 450 miles from where I live; but nest is offline-hope my pipes don't burst <a href="https://twitter.com/hashtag/nest?src=hash">#nest</a> <a href="https://twitter.com/hashtag/fail?src=hash">#fail</a></p> — brad_reichard (@brad_reichard) <a href="https://twitter.com/brad_reichard/status/687447130844303360">January 14, 2016</a></blockquote> <blockquote class="twitter-tweet" lang="en" xml:lang="en"> <p dir="ltr" lang="en" xml:lang="en"><a href="https://twitter.com/nest">@nest</a> Please communicate to users what the problem is that many are experiencing and eta on a fix. It's winter and we're cold. <a href="https://twitter.com/hashtag/nest?src=hash">#nest</a> <a href="https://twitter.com/hashtag/fail?src=hash">#fail</a></p> — maxroman (@maxroman) <a href="https://twitter.com/maxroman/status/684974685637902336">January 7, 2016</a></blockquote> <blockquote class="twitter-tweet" lang="en" xml:lang="en"> <p dir="ltr" lang="en" xml:lang="en"><a href="https://twitter.com/bbolan1">@bbolan1</a> Yes. Offline. Not enough battery for WIFI. Called nest. Known problem. No solution. Nothing on web site. <a href="https://twitter.com/hashtag/nest?src=hash">#nest</a> <a href="https://twitter.com/hashtag/fail?src=hash">#fail</a></p> — Tim Shea (@timothy_shea) <a href="https://twitter.com/timothy_shea/status/684857107145883649">January 6, 2016</a></blockquote> <script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p> </p> <p>With temperatures approaching 0-degrees Fahrenheit in parts of the United States, an unheated house can be perilous for the very old and the very young. I would imagine Nest never included “...and possibly death” in the “Risks and Mitigation” section of their original business plan. That’s a bit tongue and cheek, but the reality is that this is a serious problem that affects people in a more drastic way than if, say, their iPad quit working overnight. We're so used to mechanical devices working, or their method of failure that we need to look hard at the potential issues as we build out the Internet of Things. Mechanical devices certainly fail, but with connected devices there's the risk that they'll fail all at once which is certainly a bigger problem.</p> <p>So, how did this happen? Well, Internet of Things devices like the Nest thermostat have software in them, which we call firmware. Most of these devices have the ability to update that firmware remotely, which is what happened with the Nest several weeks ago. Unfortunately, that firmware had a bug that caused the battery life to drain -- apparently over the course of “several weeks”. Over the last several days users have started reporting that their thermostats shut off as a result of that battery drain and were no longer heating their homes.</p> <p>As an IoT software developer, this is one of the major things Geisel Software works with our clients to help prevent. There are two major sources of prevention here that we could all learn from. The first is to roll out your firmware in waves. No matter how good you think your new firmware is, you should always roll it out to a portion of your customer base first. That way, if there is an epic failure like with the Nest, it doesn’t affect all of your users and you have time to provide a fix before 100% of your customer base has been affected. This is similar to what Apple does with the iPhone and Sony and Microsoft with the PS4 and XBox One, as examples. It isn’t clear that Nest didn’t take this step, but it certainly would have been worse if they hadn’t (or better if they did!).</p> <p>The second aspect of this is the same one that <a href="https://www.cs.princeton.edu/courses/archive/fall12/cos109/mars.rover.pdf">got the Spirit rover on Mars</a>. The system needs to be tested, but also to be tested for equal lengths of time as it will be used. The Spirit rover had a memory leak that developed in certain conditions, which eventually led to a failure. A similar issue happened with the Nest, where the battery would be slowly drained, but the issue didn’t become apparent for several weeks.</p> <p>In the case of the Nest, it’s pretty clear they’ll make sure they check for battery drains in future firmware releases. However, if looked at closely, this problem could have been anticipated early. For example, the <a href="https://nest.com/support/article/A-low-battery-level-will-cause-Nest-to-disconnect-from-the-Internet">Nest disconnects itself from wifi if it ever loses battery power</a>, which is an obvious and immediate loss of the ability to update firmware. When you’re creating a connected device, one of the first things you need to assess is what are the things that could cause us to fail (and what are the possible consequences of those failures). When you realize that battery loss is a weak link in the update process, you need to be sure that it is well established in your testing routine before firmware is deployed.</p> <p>Today Nest brings us a firm reminder that things can go wrong with our IoT devices. It’s vitally important that we understand what could go wrong and how devastating those failures could be so we can properly protect against their failure and test releases to keep them running smoothly.</p> <div> </div> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Thu, 14 Jan 2016 20:00:58 +0000 geisel 177 at https://geisel.software Help! How to Get Hired in Software in 5 Easy Steps https://geisel.software/content/help-how-get-hired-software-5-easy-steps <span>Help! How to Get Hired in Software in 5 Easy Steps</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/Time-To-Start-800x461.jpg" width="800" height="461" alt="Time To Start with clock on blue background" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Fri, 03/13/2015 - 23:51</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>You've probably heard about stories from the Dot-com bubble where companies were giving away BMW Roadsters as signing bonuses and developers were turning down jobs because the company didn't (yet) have a foosball table. Even now, LinkedIn advertisers are pushing developer positions that claim <strong>average</strong> salaries are over $130k. Silicon Valley is reportedly paying upwards of $1 million over 3 years to key developers in acquired companies to retain them.</p> <p>But somehow it all seems to have missed you. You're a software developer! Maybe you learned your craft in college, or maybe you just picked it up in your free time. Now, when everyone else is receiving cash deposits from a dump truck, you can't even find a job. Life just isn't fair.</p> <p>Well, maybe life isn't fair, but that doesn't mean you can't jump start your career in a hurry. Here are some real life steps you can take right now and get your career on the fast track.</p> <h3>#1 - Start or Join a Project</h3> <p>You already learned to code, or you're in the process of learning right now. As you'll see in my article about hiring developers, I encourage business owners to hire developers who are passionate about what they do. My dirty little secret? I would write software for the rest of my life, <strong>even if no one ever paid me another dime</strong>. If you're truly passionate about writing software, then you feel the same way, so why aren't you actually writing software?</p> <p>Too many people think they need to have some big, complex project -- or, someone else assigning them tasks. Trust me, when you start working for someone and they're assigning you tasks all day you'll wish you had weeks of freedom to do whatever you want. Take advantage of that now! </p> <h3>#2 - Initiating a Creative Project</h3> <p>Have you had a business idea that you have thought of for years, and never got started on it? Give it a try! Think about existing products that you'd like to make "suck less" and just go for it. This is the best stage in the world to be in, you can't fail! Challenge Google's dominance in the search engine market. It's not necessarily about how well it works, it's more about what you learn in the process.</p> <p><img alt="Photo of Beagleboard Black unit" src="/sites/default/files/Beagleboard.jpg" style="width: 195px; height: 288px; float: left; margin-right: 20px;" /></p> <p>Interested in the Internet of Things? Take a dive into the <a href="http://beagleboard.org/BLACK" target="_blank">Beaglebone Black</a>for $55. This is a computer that fits inside an Altoids  case. If you can't think of something interesting to do with that, just go be a chef! (Ok, or you can go to the<a href="http://elinux.org/Beagleboard:BeagleBone_Capes" target="_blank">Capes page</a>, which will give you enough add-ons that you can create your own chef!)</p> <p>The path couldn't be easier for those wanting to do app development. Walk to your local grocery store and you're likely to hear 3 new app ideas. Go create them. You aren't worried about success or fail, you're looking for a way to give yourself a focused purpose that let's you explore some aspect of computer science for it's learning experience. If it works so well that you're making thousands per day in the app store, then you've solved your own job problem and can start hiring others!</p> <p>There are a thousand terrible web apps waiting to be improved. Write a time tracker, or create a catalog for your favorite collectibles. There are a lot of existing APIs with tons of data that you can use. Take a look at <a href="http://www.programmableweb.com/" target="_blank">ProgrammableWeb</a> to see some of the APIs available and come up with ideas of what you can do with all that data.</p> <h3>#3 - When You Can't Beat 'Em, Join 'Em!</h3> <p>Sometimes it's difficult to come up with a new project, but you just need to dig in and do something. There are plenty of open source projects that are looking for developers. This is an easy one for me, because if I had free time I would pick up about a dozen of these projects myself. Content Management Systems like Drupal or Wordpress have lots of Open source modules that are in desperate need of your coding skills.</p> <p>Enjoy doing 3D work, how about jumping in to help a great resource called <a href="http://www.blender.org/" target="_blank">Blender</a>. They even have <a href="http://wiki.blender.org/index.php/Dev:Doc/New_Developer_Info" target="_blank">a page to help new developers get started</a>. Looking for more engineering type problems to solve, go find a Linux kernel driver that is getting a lot of complaints online, or a device you own yourself that's having issues. The <a href="http://www.tux.org/lkml/" target="_blank">Linux kernel mailing list</a> is a very helpful place if you listen for a while first and learn how to ask a question.</p> <p> </p> <h3>#4 - Line Up the Resources</h3> <p>Web Developers - Setup an Amazon EC2 cloud instance under the <a href="http://aws.amazon.com/free/" target="_blank">free tier</a>. Or find a cheap hosting solution. You don't care about bandwidth right now, you just need SSH access and a couple of gigabytes to start your project. </p> <p><img alt="Photo of Raspberry Pi Unit" src="/sites/default/files/Raspberry-Pi-2.jpeg" style="line-height: 20.7999992370605px; width: 275px; height: 155px; float: right;" /></p> <div> <div> <p>If you're thinking about IoT, but need something a little easier than the BeagleBone Black, then take a look at the <a href="http://www.raspberrypi.org/" target="_blank">Raspberry Pi</a> for $35. The coding language is a little simpler, but if you're more mechanical engineer than software engineer, there are a lot of hardware extensions that will let you experiment. You can even search the Internet for other ideas and try to recreate them. Remember, it's all about the learning, so your idea doesn't have to be unique, the world over.</p> <p>Whether your code is for web, Windows, Linux, mobile, or something completely different, there are some great common places to host your source code. <a href="https://github.com/" target="_blank">GitHub</a> is probably chief among them, if for no other reason than that they're popular and employers will know how to find your code there easily. It's free to host Open source projects, and if you want employers to see your code then it should be Open source anyway. Besides helping present your source code, GitHub will help you learn how to revise your source code with a tool called git. One more notch to add to your resume and one more skill that will be uber helpful to your new employer.</p> <h3>#5 - Don't Wait!</h3> </div> <div> <p>This I can't stress enough. Even if you can't do anything else, setup a profile on <a href="https://www.odesk.com/" target="_blank">oDesk</a>, <a href="https://www.elance.com/" target="_blank">Elance</a>, or one of the other software freelance sites. It will take some work to setup a profile, but show future employers that you have initiative. In fact, you might even find your future employer after you've worked a few jobs for them online first. It's not uncommon to get hired into a company on a job that first started out as a simple freelancer position.</p> <p>Another basic way to get started is to begin reading the topics on <a href="http://stackoverflow.com/" target="_blank">stackoverflow</a>. There are some really brilliant people who are active on that site and you can learn a lot of insight about your language or platform just by reading the questions and answers of others. In fact, you might even run into a few questions that give you some ideas for what project you can start.</p> <p>When you get started with these things online, don't expect to make a lot of money right away. In fact, set your cost very low and work for peanuts. You aren't doing this for the money, you're doing it for the experience. Get the experience and money will show up.</p> <p>Honestly, the biggest part of all of this is that you're doing something. That's really valuable to an employer. When employers see that you're so passionate about software that you're doing it on your own, your resume will start to turn heads. But by that time, you may have already accidentally started your <a href="http://www.cnet.com/news/google-closes-3-2-billion-purchase-of-nest/" target="_blank">own billion-dollar enterprise</a>.</p> </div> </div></div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Fri, 13 Mar 2015 23:51:31 +0000 geisel 166 at https://geisel.software Responsive Web Design: More Than Just Mobile https://geisel.software/content/responsive-web-design-more-just-mobile <span>Responsive Web Design: More Than Just Mobile</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/pvpc-desktop800x461.jpg" width="800" height="461" alt="New Web Design for PVPC" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Fri, 05/09/2014 - 23:49</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">30</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Your business is already responsive to customer needs, but is your website responsive? Responsive web design is a popular term, but not everyone knows what a responsive website is. That's a mistake you can't afford to make for you business. Here's everything you need to know to know what responsive web design is and to talk about it like a pro.</p> <p>The term "responsive" describes what your website should do for different devices -- it should respond! That means that when someone visits your website from an iPad it "responds", or adapts its shape and display to fit the display of an iPad. With so many devices out there you could never design for each individual device, not to mention for portrait and landscape (sideways) modes. Responsive web design is a technique that recent web technologies have made available to tackle this challenge. So, the concept itself arose out of 1) the need and 2) the technology providing a mechanism to solve the problem.</p> <p>Let's take a look at what responsive web design actually looks like. We recently completed a website project for the Pioneer Valley Planning Commission which was a full-featured website that needed to work on mobile devices as well. Above is what their website looks like on the desktop for comparison (red tractor image). You can see that it is laid out very similar to what you've seen with other desktop sites. There is a menu at the top with a couple of columns of content down below and a slider in the center part of the page.</p> <p><img alt="PVPC iPad vertical screenshot" data-entity-type="" data-entity-uuid="" src="/sites/default/files/pvpc-ipad.jpg" style="height: 363px; line-height: 1.6; padding-bottom: 20px; padding-right: 20px; width: 300px;" /></p> <p>The next step down in size is an iPad (or other tablet) in portrait mode. The responsive design does a few things here. Notice how there aren't borders on the left and right sides now. We're more constrained on our width, so we use all of the width space for the site. We also stack images and some of the buttons so that everything fits on the page. </p> <div style="clear: both;"> </div> <p><img alt="PVPC mobile site example" data-entity-type="" data-entity-uuid="" src="/sites/default/files/pvpc-iphone-200.jpg" style="padding-left: 20px; padding-right: 20px;" />Once we go to the phone resolution (in portrait), you'll notice that the page changes significantly -- not in terms of content, but in terms of design. We've removed the big slider image since we no longer have room for it and we can save the download time if the phone is stuck on 3G. The main menu folds out into a format that allows individual phones to handle it natively. The content links are important, so they are listed vertically and allow for scrolling. Finally, you'll notice that the content is no longer laid out in two columns, but is listed one set of data after the next. This allows visitors to scroll through the content, which is more intuitive on a mobile device anyway.</p> <p>Obviously the visual effect is the most apparent, but it's not the only change for good responsive design. The change for the phone is clearly a mobile-targeted change, but one thing people often forget about when designing sites for mobile that there is no mouse cursor on a tablet or phone, so you can't use things with mouse-over tricks, like drop-down menus. There are two primary options for dealing with that. The easiest is to use a select-based menu (like "Main menu" in the phone example).</p> <p>The other option is to use a JavaScript library that understands a simulated mouse-over. The idea is pretty simple for drop-down menus. When the visitor clicks on the drop-down, the JavaScript detects if it was a quick click and turns it into a mouse-over event. In effect, when a user taps a drop-down menu, it still performs a drop down, just like in the desktop version. This is a handy little trick to keep a similar look and feel between devices.</p> <p>As you can see, there's a lot more to good responsive design than just a "mobile version" of your website. It takes a lot of planning and forethought, but your resulting website will be the modern, user-friendly centerpiece that people talk about.</p> <div style="clear: both;"> </div> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Fri, 09 May 2014 22:49:43 +0000 geisel 153 at https://geisel.software Improve Yourself and Your Company: Learn Something New https://geisel.software/content/improve-yourself-and-your-company-learn-something-new <span>Improve Yourself and Your Company: Learn Something New</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-FOOTBALL-119772911-800x461.jpg" width="800" height="461" alt="Football player catching the pass with player chasing him" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Fri, 05/09/2014 - 06:45</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Sometimes I like to imagine what life would have been like if I had become a professional football player. Now, don't get too excited, there was little chance of that ever happening, but I find it an interesting thought exercise. Call it Monday morning quarterback with life. What kind of player would I have been? What position would I play, and how would I improve myself? I like the strategy of the game, so think about what it would be like to compete with Tom Brady or Peyton Manning. Or perhaps I'd play the other side of the ball, a la Troy Polamalu and analyze the attack, looking for a way to defend against it. On second thought, I'm afraid I just don't have the hair for that.</p> <p>I've decided that if I were an NFL receiver, my first step to improvement would be to go rock climbing. This is just the kind of out-of-the-box thinking that is hard to do if you actually are a football player, but thankfully I don't have that restriction holding me back! The first season after I had begun rock climbing, I discovered something amazing. I found myself with Spiderman-like hands. You could throw a football as hard as you wanted and if it hit even one of my hands, it would stick! Bam! It was like an instant football superpower. I didn't train for football, but suddenly I was a whole lot better at it just from doing something unrelated (or so I thought) that I found I really enjoyed. As it turns out, the muscles and tendons that you strengthen in rock climbing are the same ones that catch a football. Who knew!</p> <p>These same things are true in the business world as well. You might even find rock climbing helps your business acumen. In that case, think of it more as an alternative to golf. You're sitting around talking with a group of young, energetic people who have all sorts of professional careers. Or, think about something completely sideways to your professional career and think about how it could help.</p> <p>I just recently completed a course from Coursera called "<a href="https://class.coursera.org/otherearths-001/">Imagining Other Earths</a>". Though it is a science class that focuses on astronomy, biology, physics and several other mathematical disciplines, the course seemed to be mostly populated by writers. Yeah, like fiction writers. They all flocked to the course to find out how the actual science worked so that they could draw on creative ideas for their next book or story. What a fantastic idea! Here I was, taking the class to learn about exoplanets, while my classmates were focusing on the "imagining". What a novel idea! (Some puns just can't be avoided, I'm afraid.) There are several places online where you can take college-like courses, some of which are even free. Check out <a href="http://coursera.com">Coursera</a>, <a href="http://www.thegreatcourses.com/">The Great Courses</a>, or iTunes U.</p> <p>Another great resource is called Barnes and Noble. You might have heard of it, it's like Amazon.com, but with bricks. And coffee. Grab a coffee at B&amp;N and take a walk through the store, except walk to a section you don't usually spend time in. Take your time and pick up a few books on the history of the Ottoman Empire, or how to learn Python in 24 hours, maybe even children's books. You may go there with the thought that you want to learn about the Hubble Space Telescope, but end up with an idea for a great new product. The world's best business minds are constantly stressing the importance of reading, so if you're not already a reader it's a good idea to make the time for it. The important part is that you keep learning, forcing your brain to be elastic, to handle new types of tasks.</p> <p>Speaking of working your brain, check out a site like <a href="http://lumosity.com">Lumosity.com</a>, where you can exercise your brain and practice memorization techniques. We could all use a little better memorization ability (well, except for maybe <a href="http://news.yahoo.com/blogs/the-sideshow/u-s--memory-champion-nelson-dellis-shares-his-secrets-for-strengthening-your-mind-194920556.html">this guy</a>). There are obviously a lot of things you can do online, but another of my favorites is <a href="http://www.meetup.com/">Meetup</a> where you can find all sorts of people doing all sorts of things near you. The groups have such diversity that it is easy to find something that would be fun an interesting, but outside of your normal routine. There are groups learning languages, playing Frisbee or just hanging out.</p> <p>One way you may not have thought of is leaving a comment on this post! Seriously, leave your favorite new thing that you're doing to be out-of-the-box in your learning and read the comments to see suggestions from other users that are doing the same. It's like "Leave a penny, take a penny", except we'll just keep adding pennies! Grab some ideas, get into something new and send your brain sideways into a new adventure!</p> <p> </p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Fri, 09 May 2014 05:45:33 +0000 geisel 151 at https://geisel.software Mobile Applications: The Heart of the Matter https://geisel.software/content/mobile-applications-heart-matter <span>Mobile Applications: The Heart of the Matter</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/Heart-of-the-matter-istock-800x461.jpg" width="800" height="461" alt="Toddler holding phone in one hand and cash in the other" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Fri, 01/10/2014 - 20:24</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">19</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Let’s be frank, shall we? You’re considering creating a mobile app for your business, and it’s not just because it sounds cool. The bottom line is you would create a mobile app if you knew it would create more revenue for your business. You can’t build revenue without understanding how apps make money, so here are the primary ways a mobile app generates revenue, directly or indirectly.</p> <p><!--break--><strong>1. App Sales and In-app Sales</strong> First and foremost, apps can be sold. There is some kind of app market for each of the major platforms. Apple has the iTunes App Store and Android uses Google Play. In both cases, the app market takes a percentage of your sales of around 30%. That means for every app that you sell for $1, you receive 70 cents and the app market commission is the other 30 cents. Simple enough. On average, apps tend to sell for between $1 and $2. You will find apps like Tom Tom’s GPS app which sells for $59.99 in the iTunes app store. It’s a great application and I myself purchased it as one of the first apps when I originally picked up an iPhone. Many apps sell for 99 cents, but there are also exceptions like Tom Tom that pull revenue more from their selling price than from the millions of sales they hope to generate. In-app sales are a new sub-genre of standard selling practices which have been available for the last several versions of iOS and Android. This presents some new options for making money, but you’re still effectively getting the user to directly purchase items and the app store still takes a 30% commission. In that sense, it’s very similar to selling the app itself.</p> <p>There are some interesting options that are presented by in-app purchases though. First, an example of how they work. Angry Birds, is one of the most popular apps available on iPhone and it sells for $0.99 in the app store. However, Angry Birds generates a significant amount of their revenue from in-app purchases. Once inside the game, you may purchase hints, boosts, and extra functionality. Some games offer level packs for sale. Buy the game for $0.99 and pay $2.99 when you are addicted and want to get the next 100 levels, for example. Content providers might sell additional content within their app. Olive Tree Bible Study, for example, is a free app, but allows users to purchase study guides, additional translations, etc. Whether selling the app itself, or leveraging in-app purchases to boost your revenue, this is the most direct method for making money from your app. However, it tends to work best with applications that stand well on their own. This wouldn’t be a good model for expanding your market for an online store, for example. The last thing you want to do is charge someone for access to your catalog of products. Clearly, the direct sales model is a great way to make money on some apps, but certainly not suited for others.</p> <p><strong>2. Advertising</strong> Advertising is a less direct way to make money from an app than the direct sales model. The advertising model is a good one if you’re going to create an app that will get a lot of usage, but that is difficult to charge for. This is one option used by content providers, where users may be less likely to pay for daily articles, but the flood of traffic may be interested in well-targeted advertisements. As in web advertising, there are several models for advertising on mobile. Effectively you can be paid per click or per view for ads. There are native platforms for advertising as well as 3rd party solutions and it really just depends on your particular app as to the right way to go. Ask yourself, “How can I present ads in a way that interests my users without detracting from the overall experience of the app?” As you can see, advertising on mobile closely resembles the experience on the web. Mobile apps still need to stand on their own to generate revenue this way. Additionally, and not unlike the web, you will need to drive a lot of traffic to create a significant revenue stream from advertising.</p> <p><strong>3. Hidden Revenue from Marketing</strong> Marketing is one of the fastest growing methods to make money from mobile apps. Here, we’re talking about an app that you would give away and not sell advertising. The purpose of the app is to bring interest, recognition, and excitement to your brand or product. This is clearly different from the first two methods we discussed because it is much less direct and requires an existing business. However, for those with an existing business, this is often the most significant method for generating revenue through mobile apps. One of my favorite examples of this is with takeout restaurants. Several restaurants have their own apps now, and they certainly wouldn’t sell them. You can download the app for free, sign up with an account and maybe even add a credit card. Now, when you want to order a burrito, you just open the appropriate app and swing by the restaurant in a few minutes to pick up your order.</p> <p>Frankly, I don’t understand why every restaurant in the country doesn’t have its own app for this yet. There was a famous marketing campaign in Hong Kong which required users to download a free app from Coke-a-cola and use it to interact with a television ad. What a unique concept! They managed to create an exciting user experience that extended their television marketing campaign and generated a lot of powerful marketing for Coke. Marketing on mobile is a blue ocean for exploring at this point. Obviously, this doesn’t work well as a standalone app trying to make money, but for existing businesses this is a very important marketing stream that can’t be ignored. This isn’t the market of “I have this great idea for an app”, but experienced marketers are salivating over the potential still on the table for mobile marketing.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Fri, 10 Jan 2014 20:24:34 +0000 geisel 143 at https://geisel.software Thought leadership 101: 3 places to build your online authority https://geisel.software/content/thought-leadership-101-3-places-build-your-online-authority <span>Thought leadership 101: 3 places to build your online authority</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-157887890-thought-leadership800x461.jpg" width="800" height="461" alt="3 Lightbulbs on stairs signifying thoughts moving upward" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/users/jperez" typeof="schema:Person" property="schema:name" datatype="">jperez</span></span> <span>Sun, 09/29/2013 - 17:08</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Since the birth of commerce, business owners have assumed that directly promoting a product was the best way to sell it. For a long time, this worked. Over the years, thanks to the drip drip drip of advertorials, paid reviews, and infotainment, consumers became deeply suspicious about promotion. So business owners needed a different way to sell. Enter thought leadership. What if you could promote your product by becoming a wise, neutral and trusted person in your field of business? With thought leadership, your reputation as someone who knows what they're talking about can easily persuade people to explore (and buy) your products and services. To build up a rep as a thought leader, you need to set a foundation to promote your knowledge. Here are three places to do that: <strong>LinkedIn</strong></p> <p> </p> <p>Most people use LinkedIn to build up business contacts, but thanks to thousands of topic-focused groups, the service is a publicity machine. Your first task is to flesh out both your business and personal profile. Next, find groups focused on your business. While most of the people in these groups will be your peers, many groups let outsiders (consumers) ask questions. By finding questions by potential customers and acting fast to answer them, you'll not only earn the respect and interest of the person asking the question, but the others viewing the conversation seeking the very same info. Driving people to your site through LinkedIn is quick and effective, and you can limit yourself to one or two short answers per week if you're busy with other things. <strong>Your Google+ Page</strong></p> <p> </p> <p>Over the last few years, Google has made major algorithm changes that have changed the very nature of SEO. In fact, with Google, keyphrases are no longer king. New SEO rewards the knowledgeable thought leader, and keyword-focused content has been shoved to the back of the line. Google+ is a huge component of “new SEO”. For huge search engine visibility, create a Google+ post in two parts. The headline should be a question commonly-asked by your customers. The body copy should be – you guessed it – the answer. With Google's SEO changes, your answer to a popular question will get you far more mileage than a page stuffed with keywords. When people seek answers to very specific questions, they'll find your profile – and your response. If you want a big impact, build up your Google+ author reputation by following lots of other people and giving their content a “+1”. The more people you have in your circles, the better chance you'll get +1s on your own posts. <strong>Your Blog</strong></p> <p> </p> <p>If you want to be a thought leader, you'll need a home for all your knowledge: a blog. Connect your blog with your website, and use it to dispense tips, opinion and news. Forget about the the hard sell – you want people to come to your blog to get unbiased info. Worried about coming up with content? Search Google news and trade sites for the latest developments in your field. Create FAQs and tips sheets for customers, and if you're really ambitious, you can create a series of posts on one particular topic. Once you've written a handful of good posts, expand to guest blogging. Start by finding blogs in your niche that welcome guest writers. Use the posts on your own blog to show that you can write neutral content, and come up with a small list of articles you'd like to write. Ideally, you want to guest blog on sites that have a better Google Page Rank or Alexa Rank than yours, but if you just want to broaden your audience, don't restrict yourself with those guidelines. When you spend most of your waking hours running your business, finding the time to build up your rep as a thought leader might seem both trivial and impossible. Don't be intimidated. Set aside several hours per week to work on your rep, and eventually your sales (and customers) will thank you for it.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Sun, 29 Sep 2013 16:08:04 +0000 jperez 136 at https://geisel.software Core of the Apple: What the iPhone 5s means for consumers and developers https://geisel.software/content/core-apple-what-iphone-5s-means-consumers-and-developers <span>Core of the Apple: What the iPhone 5s means for consumers and developers</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-apple-core-145933460-800x461.jpg" width="800" height="461" alt="Red Apple with apple core laying next to it." typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Mon, 09/16/2013 - 19:00</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Since the big announcement last week, one question has dominated the minds of consumers and developers alike: What's so new about the Apple iPhone 5s? Sure, Apple added a new 64-bit A7 processor, but the technology here is just the facilitator. The truly interesting part is what can be done with the technology. The vision Steve Jobs laid down was to make the device about the user. If you want to understand where Apple is going with their new devices, you must keep that in mind.</p> <p>Let's take stock. There have been a lot of new innovations lately. 3D printers have taken off, Nike has changed exercise technology, and smart watches have been the buzz since the Kickstarter campaign that launched Pebble. With all of these developments, there have been lots of rumors about an Apple iWatch. Whether or not Apple has an iWatch cooking at the moment, you can be sure they won’t be left out of a market they initiated.</p> <p>Whenever new phone technology comes out, I always like to think about what will happen when it is the old man on the block. Think about the iPhone 4S today. Apple introduced Siri when it first came out and today all their current phones support Siri (current in the sense that they are still being sold). The new A7 processor means developers can officially look forward at what Apple phones will do in the next two years, when the iPhone 5S is the old man on the block. The A7 might make some things smoother today, but mostly this change is about what sort of apps can run in the future.</p> <p>Let’s simplify some complex technology so we can understand what 64-bit is really all about. If you’ve ever been in grade school, then you know how to multiply 2, 2-digit numbers. Remember? 45 times 67: First multiply 7 by 45, then multiply 6 by 45, then add 315 to 2700 and you get 3015. Well, believe it or not, the reason you use a 64-bit processor is very similar.</p> <div style="margin:10px; padding: 10px; border: 1px #bbb solid; width: 25%;"> <pre>   45 <u>x 67</u>   315 <u>+270 </u>  3015 </pre> </div> <p>With very large numbers, a 32-bit processor has to do all the work you just did to multiply those two simple numbers. A 64-bit processor can do that all in one swoop - and actually does it about four times faster. However, this isn’t something your phone always has to do, so it’s only faster in certain cases. Usually this new speed works best with encryption, video graphics and a few other things. The trade-off of this new processing ability is it will use more battery. This is the last thing Apple needs: An operating system that’s already notoriously poor at multitasking and running background tasks.</p> <p>Case in point: Say you wanted to track your movement throughout the day with the phone in background mode. Right now that would mean running your processor all day. With a more powerful and power-hungry processor, that means dropping your battery life considerably. Enter the M7 motion coprocessor. Adding this coprocessor to the iPhone 5S means that Apple can shut down their main processor and rely on the coprocessor for certain tasks. Now Apple can track your running or other personal activities without draining the battery at the rate of the main processor. In the end, you get more processing power and more features, but longer battery life because the light-weight coprocessor is the only one running during background mode.</p> <p>Let's face it: This isn’t the revolutionary change analysts were looking for, but it wasn’t a total letdown either. To see the Big Picture, look beyond what the phone can do today and think about what it can do in the future. In other words, the new features make processing speed and battery life better for the user, but ultimately they give developers a whole new set of tools to work with. When developers implement new features in apps over the next months, you'll see the world of potential Apple has opened up.</p> <p>Overall, the iPhone 5s is a decent step forward, especially if Apple can continue improving the OS and provide better support for getting things done in the background.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Mon, 16 Sep 2013 18:00:21 +0000 geisel 135 at https://geisel.software Crowdfunding crusade: 3 super simple ways to get press for your project https://geisel.software/content/crowdfunding-crusade-3-super-simple-ways-get-press-your-project <span>Crowdfunding crusade: 3 super simple ways to get press for your project</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/Newspaper-Boy-800x461.jpg" width="800" height="461" alt="Newspaper Boy cartoon holding paper that says EXTRA" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/users/jperez" typeof="schema:Person" property="schema:name" datatype="">jperez</span></span> <span>Tue, 09/10/2013 - 11:33</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Before Kickstarter, Indiegogo, and other crowdfunding sites took flight, a decent video, a small bit of background and an interesting concept were enough to fund a project. Unfortunately, today’s crowdfunding sites are exactly that - crowded - and it has gotten tougher to get media attention for projects. Having a dedicated “team publicist” is the bare minimum if you want to get good press for your crowdfunding project. To get journalists and bloggers to reach out to you instead of the other way around, the following three things must be done: <p><strong>Develop a strong, deeply interesting backstory</strong></p> Before you launch your project, flesh out the details that make you, your project or your team interesting. Is launching the <a href="http://www.geisel-software.com/content/crowdfunding-disasters-3-big-sins-kickstarter-videos">Kickstarter</a> project a dream from when you were a little kid? Did something historically significant (a famous person’s death, a global crisis) inspire the birth of the project? Did your team quit their jobs, work day and night, or risk something big to forward your project? Write down a list of what makes you different, and then ask yourself this key question: Is the project or team’s history so fascinating that it would make an interesting documentary or feature story? If not, drill down into the details and rework your bio until it does. A tiny bit of embellishment is okay, but lies are not. For instance, if you claim that you came up with your project idea while tracking rare reptiles in the Amazon and the closest you’ve been to any jungle is over burgers at Rainforest Cafe, you’re setting yourself up for collosal embarrassment when your story falls apart. <p><strong>Designate a “face” for your project</strong></p> When journalists skim crowdfunding projects and they stumble upon something revolutionary and gripping, the first thing they look at is a bio. Why? Because they need to know who can speak knowledgably about the project, but also capture its spirit and tell a story, from the project’s birth to the blood sweat and tears shed to make it a reality. Choosing the spokesperson for your dream project or team might be a tough choice because the person who created the project might not be the best individual to interface with the media. If you have a big team, many people may feel like they’re the best choice. Unfortunately, you’re going to have to narrow it down to one or two articulate, charismatic, readily-available people if you want serious press. This may mean hurting some egos on the way. <p><strong>Build a robust local angle</strong></p> Time and again, crowdfunding teams refuse to exploit the local angle to their projects. It makes sense: Having a story about your project featured in a local newspaper, local blog, or local television station seems almost quaint when you look at the big, wide world of social media and blogs. However, having a local angle to your project delivers two things that cannot be overlooked: Local pride and easy donations. With tiny towns and big cities alike, residents watch the news, read the their local news blog, and listen to local radio to find stories (and people) they identify with. When residents hear that someone in their neighborhood is developing something amazing, they often share this news with their friends both in and outside the area. Beyond the extra exposure that local press delivers, you’ll find that people from your home town are often extremely eager to donate to “on of their own”. Numerous crowdfunding campaigns have hit their goal thanks to regional press and fundraisers, so don’t wave off the benefits of exploiting your local angle. With real-time deadlines and a pressing need for interesting, on-the-fly content, many bloggers and journalists see crowdfunding sites as a goldmine for story ideas. Make your crowdfunding project as appealing and fleshed-out as possible and the storytellers will come to you. </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 10 Sep 2013 10:33:52 +0000 jperez 134 at https://geisel.software Hit and run web surfing: 4 content tricks to keep readers on your site https://geisel.software/content/hit-and-run-web-surfing-4-content-tricks-keep-readers-your-site <span>Hit and run web surfing: 4 content tricks to keep readers on your site</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/GSI-Hit-and-Run-Surfing-Content-Blog-800x461.jpg" width="800" height="461" alt="Man at Computer Desk with Text that says Content Strategy" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/users/jperez" typeof="schema:Person" property="schema:name" datatype="">jperez</span></span> <span>Wed, 08/28/2013 - 17:17</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">30</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>We know you've seen this website: Huge blocks of text. Shoe-horned keyphrases. A tinny-sounding Star Wars midi playing in the background (with no way to turn it off). Amusing? Yes. Ugly? Beyond all belief. Most of us evolved from the Geocities age, when a single page, Papyrus font, and a phone number were the sum-all of a company web presence. However, now that readers land on pages, skim them, and skip on to somewhere else, here are ways to keep them on your pages:</p> <p><strong>1. Remove all passive voice</strong></p> <p>I've been writing for more than 20 years, and guess what? I still struggle with passive language. What is passive language? According to the Princeton Website, passive language is this: The voice used to indicate that the grammatical subject of the verb is the recipient (not the source) of the action denoted by the verb; “The ball was thrown by the boy” uses passive voice. “The ball was thrown” is an an abbreviated passive. Here's a more simple explanation: Extra language that a) slows down momentum and b) sounds like copy in an old British novel. Reread all the web copy you've written. Can you flip-flop or rearrange sentences to make them active? If so, go for it.</p> <p><strong>2. Cull any corporate-style language</strong></p> <p>The following businesses are the corporate language plague's frequent victims: IT, customer relationship management, logistics, and human resources and staffing. Does the list stop there? No, but it's a start. Corporate language, which caught on like wild fire in the 1990s, was supposed to make companies seems smarter and more professional. Unfortunately, they only turn the reader off. If you've stuffed your page with words like “in order to facilitate” or “fostering synergy between”, it's time for a rewrite. If your company hires the best IT talent, for instance, the simple explanation “We hire the best IT talent” is best.</p> <p><strong>3. Learn to love bullet points</strong></p> <p>You have lots to say, your business is complicated, and the short explanation simply wont' do. What's your solution? Bullet points. Write a list of what your company does. Who your audience is. Why your business is head and shoulders above the rest. Split everything into sentences or phrases. Write a short intro paragraph and make your list. Remember: Most people spend less than 10 seconds on a website that they find via search engine. You want to hook that person right away - and keep them there.</p> <p><strong>4. Break paragraphs into one or two sentences</strong></p> <p>On your “about us”, mission statement or any other page where you must tell a story, there's no way around it: You need paragraphs. Do they have to be long-winded, turning your readers away the first time they land on your page? No. Break each paragraph into one or two sentences, with three being the absolute maximum. You can split most paragraphs up naturally without losing meaning or making your copy sound awkward. Widespread Internet use has not just changed the way we read, but the way we process information. If you've made it to this paragraph and read this entire blog post, it's evidence in itself that the four tips above will work for your own web pages.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Wed, 28 Aug 2013 16:17:31 +0000 jperez 132 at https://geisel.software Crowdfunding disasters: 3 big sins of Kickstarter videos https://geisel.software/content/crowdfunding-disasters-3-big-sins-kickstarter-videos <span>Crowdfunding disasters: 3 big sins of Kickstarter videos</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/CAUTION-HAZARD-Fotolia_97590695-800x461.jpg" width="800" height="461" alt="Caution, Hazard and Warning Tape in Yellow and Black" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/users/jperez" typeof="schema:Person" property="schema:name" datatype="">jperez</span></span> <span>Mon, 08/19/2013 - 23:41</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>If only there were a real, accurate math formula that could calculate how important a good video is for a Kickstarter project. While 90 percent seems a bit extreme, it's no secret that a great Kickstarter video can mean all the difference between going big and going home. While some videos have all the precision and quality of a professionally-filmed commercial, you can strike gold with Kickstarter using a cheap video camera - even the one on your cell phone. Regardless of your budget, here are some Kickstarter video mistakes that can kill a project faster than you can hit the “stop” button:</p> <p><strong>1. Losing perspective while explaining a project</strong></p> <p>Let's face it: No one is going to spend a dime on a project that can't be explained in a short video - unless the project is so bizarre that funding is irresistible. If you're shilling something simple that can be explained in a few sentences, you probably have nothing to worry about. If you're promoting something complex, that's a different story. Take a step back and put yourself in your audience's shoes. Would they understand what you're promoting? Are you going down a rabbit hole of unnecessary details? If you're not sure, find someone unfamiliar with your project and rehearse your pitch before you film your video. Remember: you've probably worked on your project from the very beginning. The little details that you find fascinating might confuse donors or put them to sleep.</p> <p><strong>2. Omitting third-party excitement</strong></p> <p>Whether you're going solo or have a group of partners, promoting your crowdfunding project might feel like you're a one-person (or one big) cheerleading squad. And it's a delicate balance, getting people pumped about your product without sounding like an obnoxious carnival barker. To spread out the enthusiasm and give your project more legitimacy, film an outside person talking about why they're also excited about your project. Get a soundbite that sums up why other people should donate. If you can get someone of high stature in your industry to give you a nice quote, make them your first choice for the video. If you can't get a big (or medium-sized name), use friends or family members. Just make sure that whoever you use can a) deliver a clean, juicy soundbite, b) show personal enthusiasm without giving the hard sell, and c) show some sort of neutrality that focuses on the project, not your personal characteristics. In other words, having a parent say that they love the project because you were always a nice kid who cleaned up their room on demand is only going to hurt your Kickstarter campaign (and your mom's reputation).</p> <p><strong>3. Failing to show other victories</strong></p> <p>If you were the chairman of a major company and someone who never worked a day in their life sent you a resume for the CEO job, would you call them in for an interview? No. In fact, you'd probably crumple that CV and skyhook it right into the trash can. In some ways, Kickstarter videos are similar. You have to show that you've accomplished other things if you want people to give up their hard-earned cash. What are your professional highlights? Have you created a popular project before, run a successful company, learned the ins-and-outs of running a business? Can you balance numbers like a pro, have you made significant industry partnerships, or have you won awards? Stating in your video that you dreamed up your product when you were still in Spider-Man PJs isn't enough. If you're going to be the custodian of funds from good people of all walks of life, showing that you're capable, responsible and forward-thinking is essential. Creating an average Kickstarter video is easy. Creating one that pulls donors into your vision and makes them believers, not so much. Let the mistakes and solutions above guide you when you record your video and make your pitch. Your donors (and your mom) will thank you for it.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Mon, 19 Aug 2013 22:41:29 +0000 jperez 130 at https://geisel.software Photos, social media and SEO: 4 tips for optimizing images https://geisel.software/content/photos-social-media-and-seo-4-tips-optimizing-images <span>Photos, social media and SEO: 4 tips for optimizing images</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2016-12/typingYoungWoman.jpg" width="800" height="461" alt="A clearly optimized stock image" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/users/jperez" typeof="schema:Person" property="schema:name" datatype="">jperez</span></span> <span>Thu, 08/08/2013 - 17:16</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>For solopreneurs and huge companies alike, a Google update is more than enough to strike fear into the heart of even the most skilled marketer. Ranks drop. Techniques stop working. Strategies are scrutinized like the footage of the JFK assassination. While good content rules above all (and always will), images can pack a social and SEO punch as effective as blog posts or web pages. Here's how to make your images more SEO and social-friendly so you can squeeze as much juicy traffic out of photos as possible.</p> <p><strong>1. Size and format images for both social media and blogs</strong></p> <p>Have you ever come across a great image, wanted to use it on your blog (with attribution, of course) or Pinterest board, but found it was too small to use? Every single one of your web pages or articles should have a linkable image, sized for Pinterest, blog posts, and more. Keep your images under 70 mb, but feel free to pick the jpeg as your go-to format. While .pngs offer the best quality overall, jpegs can take up less space while delivering more than adequate quality for the web.</p> <p><strong>2. Be conservative and straightforward with file names</strong></p> <p>When searching for an image of a specific product, I once did a Google image search and came across a funny photo of a famous actor. The blogger who posted the image (and named it) complained bitterly that a) she was only getting traffic from that image, and b) she couldn't understand why people kept finding it in search engines. While most of us appreciate a clever nickname, pun or “play on words” phrase, resist the temptation to write pithy image titles that have nothing to do with your photo or graphic. Keep image names straightforward and meaty, use dashes instead of underscores in titles, and you'll get much more SEO value when people search for the same keywords in your photo titles.</p> <p><strong>3. Take advantage of the alt image tags</strong></p> <p>For bloggers or website owners, images that load quickly are mandatory. Unfortunately, when your image hosting site or even your favorite search engine has hiccups when loading photos, things are completely out of your control...or are they? With alternate titles, you can write a short phrase or description of your image that appears if your photo or graphic doesn't load. Site visitors will see the title or description of the image, and those alternate titles can give you an SEO boost.</p> <p><strong>4. Be extra concise with image tags</strong></p> <p>Like a radio ad for AARP that blares on in a 21-year-old's Prius, vague image tags can deliver unwanted, untargeted traffic to your blog or website. Now that Google has completely overhauled their image search, letting web surfers see images without visiting the site that hosts them, extremely targeted keywords in image tags are essential. Instead of going wide, go narrow. On-point tags will deliver quality traffic to your site, instead of large amounts of visitors that never make it past your photo preview in Google. While so many people pick up the pieces after Google's latest update, take this time to change your image optimization strategy so you can pinpoint and land better traffic. Images still deliver good attention from both SEO searches and social media, so make the most of these easily-executable tips.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Thu, 08 Aug 2013 16:16:17 +0000 jperez 129 at https://geisel.software Kickstarter killers: 4 mistakes that will completely sink your project. https://geisel.software/content/kickstarter-killers-4-mistakes-will-completely-sink-your-project <span>Kickstarter killers: 4 mistakes that will completely sink your project.</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/Fotolia_Sinking-Ship800x461.jpg" width="800" height="461" alt="Man on raft in sea with smart phone" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/users/jperez" typeof="schema:Person" property="schema:name" datatype="">jperez</span></span> <span>Wed, 07/31/2013 - 00:17</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>For every over-funded Kickstarter project with a cash haul of hundreds of thousands of dollars, there are at least three or four projects that never fill up that goal bar. While some of the hottest products often have full-fledged social media teams working strictly on promotion, even solopreneurs with far less loftier goals routinely undercut their own precious projects. If you're considering going all-in with Kickstarter and want to pop that champagne rather than send endless let-down emails, you'll need to avoid common mistakes that strangle projects in the crib. Here are four big missteps people make when pushing their Kickstarter projects:</p> <p><strong>Mistake #1: Failing to strategically fund other projects</strong></p> <p>When you've filled out your profile, got your social ducks in order, and laid out your prizes list, you might find yourself short on both time and treasure. This is normal: hustling your project can easily be a full-time job, only without the pay, benefits or (sometimes) personal sense of accomplishment. No matter how strapped you are, in the Kickstarter world, the quid pro quo is alive and well. Giving to other projects is practically mandatory. However, don't just spend your hard-earned cash indiscriminately. Instead, help fund projects that have a passionate following, a large social media presence, or an influence over other campaigns. In the end, even if you throw a just few dollars at a strategically-sound project, there's a good chance you'll get additional attention and extra cash for your own dream product.</p> <p><strong>Mistake #2: Failing to research demand for your product</strong></p> <p>Zombie comics. Photo books featuring dancers. Accessories for iPads, iPhones and other popular tech products. You might feel like your project is unique, well-developed and a necessity for customers, but making it stand out from other projects can be a huge roadblock. Keep an eye on products in the same family as yours. Did those other projects get funding? Are they limping along at 25 percent with just a few days left? Do serious research on the demand for similar products before you even consider putting your stuff out there.</p> <p><strong>Mistake #3: Ignoring a green angle</strong></p> <p>It's a fact: Kickstarter users are notoriously eco-conscious. They love projects that not only serve a great purpose, but help the environment simultaneously. Think about your project or product. Is there some sort of green aspect you've overlooked? Can you truly say your product is green, and if not, find a way to make it less of a strain on the environment? From recycled materials to streamlined, energy-conscious manufacturing, try to find some way to “green up” your project.</p> <p><strong>Mistake #4: Asking for the wrong amount of money</strong></p> <p>Although this seems like a no-brainer, finding that “sweet spot” goal amount is tricky. Ask for too much money and you'll never get your funding. Ask for too little money and your project or product will never see the light of day (nor will your prizes and rewards for donors). Instead of taking a wild guess, consider working with a company that specializes in publicizing and getting solid funding for Kickstarter projects. <a href="http://www.dragoninnovation.com">Dragon Innovation</a> (one of Geisel Software's clients - full disclosure), was the engine behind several projects funded at more than $1 million, including the customizable Pebble Watch ($10,000,000+ in funding), and Formlabs, a 3-D printer (almost $3 million). With Dragon Innovation and similar companies, you'll get an experienced team to ask all the right questions. If you're looking for a lot of money, how long it will take before your donors see results? Have you fully-fleshed out your project? Have you answered each and every question, from A to Z, that donors might ask about your project? Kickstarter is one of the most powerful crowdfunding tools out there, and the right strategy can turn a little-known project into a cash cow that rakes in thousands of dollars. While no project is a sure bet, avoid these blunders to seriously boost your chances at success.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 30 Jul 2013 23:17:33 +0000 jperez 128 at https://geisel.software Kickstarter killers: 4 mistakes that will completely sink your project. https://geisel.software/content/kickstarter-killers-4-mistakes-will-completely-sink-your-project <span>Kickstarter killers: 4 mistakes that will completely sink your project.</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/Fotolia_Sinking-Ship800x461.jpg" width="800" height="461" alt="Man on raft in sea with smart phone" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/users/jperez" typeof="schema:Person" property="schema:name" datatype="">jperez</span></span> <span>Wed, 07/31/2013 - 00:17</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>For every over-funded Kickstarter project with a cash haul of hundreds of thousands of dollars, there are at least three or four projects that never fill up that goal bar. While some of the hottest products often have full-fledged social media teams working strictly on promotion, even solopreneurs with far less loftier goals routinely undercut their own precious projects. If you're considering going all-in with Kickstarter and want to pop that champagne rather than send endless let-down emails, you'll need to avoid common mistakes that strangle projects in the crib. Here are four big missteps people make when pushing their Kickstarter projects:</p> <p><strong>Mistake #1: Failing to strategically fund other projects</strong></p> <p>When you've filled out your profile, got your social ducks in order, and laid out your prizes list, you might find yourself short on both time and treasure. This is normal: hustling your project can easily be a full-time job, only without the pay, benefits or (sometimes) personal sense of accomplishment. No matter how strapped you are, in the Kickstarter world, the quid pro quo is alive and well. Giving to other projects is practically mandatory. However, don't just spend your hard-earned cash indiscriminately. Instead, help fund projects that have a passionate following, a large social media presence, or an influence over other campaigns. In the end, even if you throw a just few dollars at a strategically-sound project, there's a good chance you'll get additional attention and extra cash for your own dream product.</p> <p><strong>Mistake #2: Failing to research demand for your product</strong></p> <p>Zombie comics. Photo books featuring dancers. Accessories for iPads, iPhones and other popular tech products. You might feel like your project is unique, well-developed and a necessity for customers, but making it stand out from other projects can be a huge roadblock. Keep an eye on products in the same family as yours. Did those other projects get funding? Are they limping along at 25 percent with just a few days left? Do serious research on the demand for similar products before you even consider putting your stuff out there.</p> <p><strong>Mistake #3: Ignoring a green angle</strong></p> <p>It's a fact: Kickstarter users are notoriously eco-conscious. They love projects that not only serve a great purpose, but help the environment simultaneously. Think about your project or product. Is there some sort of green aspect you've overlooked? Can you truly say your product is green, and if not, find a way to make it less of a strain on the environment? From recycled materials to streamlined, energy-conscious manufacturing, try to find some way to “green up” your project.</p> <p><strong>Mistake #4: Asking for the wrong amount of money</strong></p> <p>Although this seems like a no-brainer, finding that “sweet spot” goal amount is tricky. Ask for too much money and you'll never get your funding. Ask for too little money and your project or product will never see the light of day (nor will your prizes and rewards for donors). Instead of taking a wild guess, consider working with a company that specializes in publicizing and getting solid funding for Kickstarter projects. <a href="http://www.dragoninnovation.com">Dragon Innovation</a> (one of Geisel Software's clients - full disclosure), was the engine behind several projects funded at more than $1 million, including the customizable Pebble Watch ($10,000,000+ in funding), and Formlabs, a 3-D printer (almost $3 million). With Dragon Innovation and similar companies, you'll get an experienced team to ask all the right questions. If you're looking for a lot of money, how long it will take before your donors see results? Have you fully-fleshed out your project? Have you answered each and every question, from A to Z, that donors might ask about your project? Kickstarter is one of the most powerful crowdfunding tools out there, and the right strategy can turn a little-known project into a cash cow that rakes in thousands of dollars. While no project is a sure bet, avoid these blunders to seriously boost your chances at success.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 30 Jul 2013 23:17:33 +0000 jperez 128 at https://geisel.software Affiliate marketing: 5 questions to ask before joining a program https://geisel.software/content/affiliate-marketing-5-questions-ask-joining-program <span>Affiliate marketing: 5 questions to ask before joining a program</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-money-mouse-20201465-800x461.jpg" width="800" height="461" alt="Dollar sign with computer mouse with text that says Money" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Sun, 07/21/2013 - 19:44</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>For most people looking for a great income source, affiliate marketing is an incredible draw. Think about it: The most successful affiliates make hundreds, thousands or even millions each month, without ever driving to an office, punching a clock or even changing out of their pajamas. However, great affiliate marketing has as much to do with the program you choose as how motivated you are to sell. Before you even think of filling out that affiliate program application, ask - and answer - the following important questions:</p> <p><strong>Reports: What types of data can I access?</strong></p> <p>Visit any affiliate message board and you'll find affiliate marketers wishing for more transparency. It makes sense: Affiliate marketing is a complicated process, and without reporting tools to show each and every detail, there's simply no way to know you're marketing to the max. When you're shopping around for an affiliate program, take a serious look at reporting tools. Will you have access to a full suite that lists out visitors, profits, refunds, conversion rates and more? Will your reports give you real-time data so you can make campaign adjustments on the fly? Some affiliate programs will send a thin weekly or monthly report and expect you to take it as gospel - Don't. Instead, go for the program that gives you full access to as much data as possible, so you can keep meticulous track of your commissions and change and improve your campaigns on the fly.</p> <p><strong>Customer service: How long before someone gets back to me?</strong></p> <p>Affiliate marketing is a machine with lots of parts, so as a partner, you will face technical glitches. Links will stop working. Commission tracking will get turned off. Images in ads will stop loading. When these things happen, good customer service can mean the difference between paying your rent or getting evicted. Visit FAQs or affiliate program message boards and gather intel. If you call, will someone pick up the phone? If you email, what type of response time can you expect? If social media is an affiliate program's #1 communication tool, will you send out a tweet and have to wait five days for a private message back? Some of the best affiliate programs are focused on customer service, so don't settle if your requests won't be met promptly.</p> <p><strong>Residual commissions: How long will clients subscribe to services?</strong></p> <p>Affiliate programs offer two ways to collect commissions. With one-time commissions, you sell something, get paid a commission, and the transaction is complete. With residuals, things get a bit more complicated. Residual payments let you earn ongoing commissions for months or even years. For instance, if you're selling monthly subscriptions to web-based photo editing tools, you'll get paid a commission each month your customer pays their subscription fee. However, if your customer signs up for the photo editing service, doesn't like it, and quits after a month, there goes your ongoing commission from that client. Before you sign up for any residual commission program, find out how long customers typically use the tools you're trying to sell. If customers stick with the service for six months, a year, or more, it's worth your time to join that program. If customers sign up and fizz out after a few months, look to other programs to fill your residual income niche.</p> <p><strong>Collateral: What will you give me to help me sell?</strong></p> <p>In a perfect world, we'd each be part social media expert, part web designer and part publicist. In reality, however, many people need help making sales, and one banner ad and a few paragraphs of sales-y copy isn't going to cut it. Before you join any affiliate program, you must know, from start to finish, what types of material you'll be given to help you sell. Ask around. Will you get a customizable landing page? Banner ads in the most common sizes? Web badges, pre-made tweets, or testimonial videos? A good affiliate program not only offers a wide array of sales tools, but frequently creates new material or updates old material to stay ahead of the curve. If the affiliate program you want to join hasn't updated their banners since 1972, it's best to look to other programs.</p> <p><strong>Cookie length: How long will my sales be tracked?</strong></p> <p>If we had to break down the perfect affiliate transaction, it would go like this: Customer clicks on your link, customer makes a purchase, and you get your commission. The end. Unfortunately, many customers love to browse before they buy, and they may revisit the point of sale site multiple times before they take the plunge. Since most affiliate programs use cookies to track the origin of sales, having a longer-length tracking cookie on the website where the sale is made is essential. So, if your client clicks on your sales link, but doesn't make a purchase until almost two months later, a 60, 90 or longer-length cookie will still track your sale and get you the commission you deserve. Whether you want to make affiliate marketing a part-time venture or your only source of income, you must find programs that deliver your best chance for success. No program can guarantee massive commissions or steady income, but you'll significantly up your odds of making money if you use the questions above as your guide.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Sun, 21 Jul 2013 18:44:03 +0000 geisel 125 at https://geisel.software Is your SEO team cheating you? 5 ways to know for sure https://geisel.software/content/your-seo-team-cheating-you-5-ways-know-sure <span>Is your SEO team cheating you? 5 ways to know for sure</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/Burglar%20-%20Thief%20-%20SOS-Cheating-800x461.jpg" width="800" height="461" alt="Cartoon of burglar sneaking away with sack on his back" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Tue, 07/09/2013 - 02:43</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Anyone who has owned a business for more than a day has probably gotten a dozen emails from SEO companies saying things like “I noticed your site is not ranking in the most important search engines. We can change that”. In fact, as a business owner, you may already be paying thousands of dollars a month for a Gold SEO Package. But the real question is, what are you getting in return? As you might have guessed, SEO is just like most things in business: you can spend thousands of dollars per month and get a great deal, or spend $50 per month and overpay for services. Good SEO may seem difficult to measure, but here are ways to know if you're getting a steal, or getting ripped off:</p> <p><strong>You're site is ranking, but only for non-competitive keywords</strong></p> <p>The whole purpose of SEO is to get good quality traffic to your website, and lots of it. Getting ranked for lots of keywords, or ranked first on Google for low-traffic phrases, isn’t going to accomplish that. If you were a charity that sold gift baskets in Baltimore named Benevolent Baskets, it would be much more important to rank for “<a href="http://www.benevolentbaskets.com/">Baltimore gift baskets</a>” than for “<a href="http://www.benevolentbaskets.com/">Benevolent Baskets</a>”. When SEO firms guarantee first-page Google rankings, they’re typically gunning for those easy phrases that aren’t going to generate a lot of traffic. A good firm is going to give you a list of phrases and keywords that will generate lots of traffic, even if they can’t get you in the first spot on Google. I’d much rather be ranked second in a phrase that gets a million hits per month than first for a phrase that only gets twenty.</p> <p><strong>Your agency tells you that on-page or off-page SEO is irrelevant</strong></p> <p>You could probably find a couple of Google engineers to argue about which is more important, on-page or off-page SEO, but the bottom line is that they both affect your rankings. On-page SEO is probably more important for simple search terms. Your company name, for example, will almost always rank first if you just apply some good on-page techniques. However, this won’t usually get you where you need to be for more competitive terms. In fact, many people suggest that after Panda and Penguin (and Platypus or whatever comes next), off-page isn’t as important anymore. Do a quick search for “click here” and you’ll see strong evidence to the contrary. Adobe Acrobat Reader doesn’t have any meaningful text on the whole page that says “click here” (certainly not in title tags or headings), yet they are ranked number two. That’s because every website on the planet shares their PDFs with a comment that says, “To get Adobe Acrobat Reader, click here”, thus generating off-page rank. By the same token, don't get roped in on "link generating schemes" that don't allocate any time to on-page optimization. Any significant SEO campaign will include pieces of both techniques. It’s ok to work one first, but if you want lots of traffic, you can't ignore either.</p> <p><strong>You're getting thousands of links on shady websites</strong></p> <p>Google is focusing more and more on quality links. An SEO company that says they'll get you hundreds of thousands of links is wasting your time, period. You may get some benefit from these links, but nowhere near the benefit you’d get from just a few higher quality links. These junk links can even cause push you off Google SERPs (Search Engine Result Pages) if they are placed on certain sites. Google tries to filter out spam and if your site gets listed with a bunch of other spammy sites, you're going to suffer from guilt by association. Make sure your firm is keeping you out of the dark corners of the Internet. Links should only be built on reputable sites.</p> <p><strong>Your team treats SEO link building like a classified operation</strong></p> <p>This is my pet peeve. Would you ever pay a marketing firm thousands of dollars for TV ads if they refused to tell you on which channels or what times these ads were running? Don’t get roped into this tradecraft nonsense. You need to know where your links are going – especially when Google could punish you if those links come from questionable websites. It’s perfectly fine for SEO companies to not tell you where their links go generally, but if you’re buying their service you should have a regular report that shows where they have been building links for you. You should be able to verify that the link actually exists and that it’s on a reputable site. It’s also important to know that you’re working with keywords that are generating meaningful traffic.</p> <p><strong>Your own analytics show no real results</strong></p> <p>Yes, you can – and should – verify that an SEO campaign is actually working. Some results you’ll see in a matter of a few days, and yes, others still take months. Either way, you need to have a handle on your analytics from day one. On the Internet, not tracking your analytics is tantamount to running a business without tracking your finances. You’ll know pretty quickly if your SEO firm is targeting good keywords. In fact, in Google Analytics, you can even set up goals to track user actions on your website. This allows you to associate keywords with the resulting action a user takes. So, while you may have 10,000 hits from “goofy backflip” you may need to focus on other keywords if those visitors aren’t signing up for gymnastics classes. A good SEO company will focus on results that matter to your business, not just drive random traffic to your website. So, how much does good SEO cost? It all depends on the results.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 09 Jul 2013 01:43:36 +0000 geisel 124 at https://geisel.software What's a web app and how is it different than a mobile app? https://geisel.software/content/whats-web-app-and-how-it-different-mobile-app <span>What&#039;s a web app and how is it different than a mobile app?</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-Question-Marks-67761199-800x461.jpg" width="800" height="461" alt="Colorful question marks on blue background" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Tue, 07/02/2013 - 14:50</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">30</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>To truly understand what a web application is (or isn't), you must start by contrasting it with a basic website. A web app can itself be a website, or just part of a website. However, the difference between a web application and typical website is very significant. You're probably familiar with a basic web page. Web pages started out as a static, efficient way to present basic information. Basic web pages are still good at what they do, and for someone who needs a no-frills site to promote a plumbing company or their love for model airplanes, a basic web page is more than adequate.</p> <p>However, web applications go beyond that, allowing you to interact over the Internet. An example of this would be Google. The Google website itself is simple, but the web application is terribly complex. Ultimately, you view information on Google, but you also interact with Google to search for whatever keywords you'd like. So, web applications provide a way to interact. When you use them, you probably don't even notice you're using a web application, but you're certainly using it to interact.</p> <p>Facebook is a good example. Facebook does more than display information, it allows users to interact - even with each other. Ebay allows you to browse for items to purchase, on a site where someone used eBay's web application to post their items in the first place. Each of these sites provides a very different service, but all contain a lot of software on the backend.</p> <p>An example of how complex a web app can be behind the scenes would be one of Geisel Software's sites, DVDCorral.com. DVD Corral is an <a href="http://www.dvdcorral.com">online DVD library</a> where users can track their DVD collections. On the website, there is a page for each of the nearly a million DVDs in the DVDCorral.com database. We didn't hire a million monkeys to type in all that information for those million pages, so how does this work? Each DVD on the site gets their own page featuring all the information related to that DVD. However, whenever you request that page by clicking on a link or image, the web application code searches through the database, finds the item you need, and populates that single page all the information related to that query. In other words, there are 1 million pages in a single document, but the web application part only brings up what you're looking for at the time.</p> <p>The analogy of an iceberg works perfectly in the web application model. Only 8 percent of an iceberg is above the surface, while the bulk of the iceberg, 92 percent worth, is underneath water where you can't see it. With web apps, when you visit a website, you won't see it, but there are a few pages worth of HTML that make up each page. With Google, that little white page with a single search bar is most likely backed by millions of lines of code and algorithms for completing your search. Just like Mr. Rogers taught us, it's what's on the inside that counts!</p> <p>Now you're probably asking, how does a web application relate to a mobile application? The backend of a web application can be quite extensive. Imagine a site like eBay and the huge database they have backing all the items available on their site. That database is part of the web application. Now, let's say we're going to create a mobile app for eBay. The mobile app would need the information from the web database, so the web application serves as the database for the mobile app as well.</p> <p>The mobile app receives its data about items and pricing from the web app, and presents the information on your iPhone or Android device in a mobile-friendly format. So in other words, the web app and the mobile app can interact, but they aren't two different types of the same thing. So, when you surf the Internet today, think about those web apps. Now that you know what web apps are, you'll be surprised at how many sites use them!</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 02 Jul 2013 13:50:00 +0000 geisel 123 at https://geisel.software Mobile App Testing Phase: A Primer https://geisel.software/content/mobile-app-testing-phase-primer <span>Mobile App Testing Phase: A Primer</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/default_images/blog-post1.jpg" width="800" height="566" alt="Default Blog Image" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Tue, 06/25/2013 - 04:16</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Hey, I’m Brian Geisel, CEO of Geisel Software and this video is about what you should expect during the testing phase of your web or mobile app. Before we go into the testing phase of development, let’s take a minute to talk about the difference between a demo and a final product.</p> <p>Too often, developers push out a demo in a few days, and then everyone expects that the final product will follow a few days later. In truth, software products look a lot like an iceberg – it’s only 10% that you see on top, but to make it work there’s 90% under the surface that you’ll never see. Unless you’re a porpoise or something I guess. This underwater part of the iceberg is what you’re going to start running into in the testing phase, and it’s why your testing phase will usually take a percentage of the total development time. The bigger the project, the more test time you’re going to need to find bugs and fix them. In any project, it’s an important phase to go through.</p> <p>However, some products are more difficult to test than other. For example, I come from the storage world, 6 9’s of reliability (rather than 100%) just means you’re going to go out of business. In the web world, it’s not as bad because you can make changes quickly. Mobile is somewhere in between, where you have to wait for submitted apps to reach your end users, and wait for them to run the updates. Also, remember that in projects dealing with money or security, the test time is going to increase. That’s just the nature of the beast when you’re dealing with people’s money and/or something that’s likely to get hacked (a security product, for example).</p> <p>Now, once you’ve started testing, understand that you’re going to go through phases. With each set of fixes, there is the potential that something else has been broken. This is what I call software whack-a-mole. Smack one of those guys and another one pops up somewhere else. Assuming you’re developer knows what they’re doing, that process will continually decrease until you feel secure you’re releasing a quality product. NEVER release a product immediately after your developer has just made a change. You’re going to be tempted to rush something out the door, but the price you pay is always worse when you find out that 100,000 users downloaded your iOS app on the first day and it crashes on everything but the iPad… the thing you had your last bug on. Taking the extra time will almost always be a little frustrating, but honestly, that’s the price we pay for quality. Get a developer who encourages you to just get the product out there too soon, and you may pay for it in customers when your first release is hated by everyone you just marketed too – or for mobile applications, everyone who just gave you a crappy rating in the app store.</p> <p>If this is for a mobile app, I strongly recommend going through a beta test phase. The best apps on the app store usually have gone through a rigorous beta test phase where no only do they find other bugs, but they find things users hate. Do this right, and you have the potential for a really nice pop on your release day. Miss it, and you’ll spend a lot of time in recovery. Once you’ve gone through the cycle, you’ll usually have a few bugs that you’ve decided are low enough priority (aesthetic or what have you) that you’re going to go ahead and release.</p> <p>Get it through your testing phases and it’s time to add features, fix bugs you missed last version, and generally keep improving your product until you’re selling more than you know what to do with!</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 25 Jun 2013 03:16:45 +0000 geisel 122 at https://geisel.software New tech: A basic introduction to cloud applications https://geisel.software/content/new-tech-basic-introduction-cloud-applications <span>New tech: A basic introduction to cloud applications</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-table-cloud-20947823-800x461.jpg" width="800" height="461" alt="Hand holding tablet amongst the clouds" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Mon, 06/24/2013 - 15:03</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">30</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>The era of the app is upon businesses and it seems as if there is no going back. The swiftly changing server-based computing environment has triggered the shift from applications that are the older-style standalone software installations, to apps that are the newer cloud-based programs.</p> <p>The essential difference is that when you install conventional software such as Microsoft Office 2013, all of the aspects of the application are running on your local computer, but when you go with the cloud version program such as Microsoft Office 365, you’re just installing on your PC the bare essentials to access the bulk of the software that resides in a server farm somewhere far away. By this description, the cloud Office version is an app in the truest sense as most of the computing that is required to perform the functions you require are executed in banks of exceptionally powerful computers in air conditioned racks not on your device.</p> <p><strong>Apps rely on net access</strong></p> <p>The advantages of this cloud paradigm are considerable, as you can use a computer that is far more limited in processing power and memory capacity since the heavy lifting to run your complex software is being done elsewhere. Another advantage is that since your files are stored on the remote server, it’s easy to access them from anywhere and on any device. You don’t have to worry once you’re travelling across the country that you’ve forgotten the vital presentation file back at your desk.</p> <p>However, there are some significant drawbacks as well. When you use fully standalone installed software you can use it anywhere at any time, whether or not you have an internet connection. With apps if you have no net connection you’re essentially limited to watching the colorful boot-up screen as there isn’t much more your mobile device can do.</p> <p><strong>Business apps have a better survival rate</strong></p> <p>Given that the availability of network connections is no longer as much of a hindrance as it was just a few years ago, the proliferation of WiFi in nearly every urban setting has created an always-online lifestyle that was unimaginable in the last century. The entire industry is mutating to a cloud-based app computing archetype as is demonstrated by the astounding statistic that nearly sixty billion apps have been downloaded to date. This number equates to more than eight apps for every man, woman, and child on Earth.</p> <p>Not all apps turn out to be invaluable to the user as more than a quarter of all downloaded apps are used only once and then either deleted or ignored for the life of the mobile device. Business apps have a slightly better survival rate as they tend to be more fundamentally useful than the average public app which is generally gaming or socially-related. But the bottom line is clear: Businesses that rapidly embrace this Brave New Cloud-y World will find themselves technologically ahead of competitors reticent to take the plunge.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Mon, 24 Jun 2013 14:03:24 +0000 geisel 121 at https://geisel.software Technology tips: 5 key traits of good software developers https://geisel.software/content/technology-tips-5-key-traits-good-software-developers <span>Technology tips: 5 key traits of good software developers</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-Jigsaw-puzzle-88884263-800x461.jpg" width="800" height="461" alt="Hand placing correct piece into a puzzle on glowing background" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Thu, 06/13/2013 - 03:39</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>If Hollywood had to choose one actor to represent every software developer character in movies and television shows, they'd no doubt choose the same nondescript guy wearing a solid-colored polo shirt, boring khaki pants, and eyeglasses. Fortunately (and unfortunately), real-life software developers are as different as snowflakes, and their work-ethic, organizational skills, and code vary from one person to the next. Despite their differences, there are certain things that really good developers have in common, separating them from the amateurs and the poseurs. Here are five key traits you'll find in top-notch developers:</p> <p><strong>1. They love to learn</strong></p> <p>To get better at development, you have to be able to learn. In fact, becoming a good developer has everything to do with learning. Sure, part of this is aptitude, but the rest is having an open mind to see the world full of new things to learn. Good developers are lifelong learners who understand that it takes a continued effort and conscious decision to constantly pursue new knowledge.</p> <p><strong>2. They are great problem solvers</strong></p> <p>More than any other single thing, developing software is about solving problems. A good developer will not just understand 23 languages, they’ll understand the basic principles of problem solving. There are many sub-disciplines of computer science, but whether the developer is into mathematically-complex algorithms or debugging microprocessor boot code, problem solving is always at the center of each and every project.</p> <p><strong>3. They don't live on search engines</strong></p> <p>The availability of information has changed a lot of aspects of software development, but it hasn’t changed the core. It’s easy to Google for solutions to repetitive or simple problems. Relying too much on code from search engines can fragment code, and ultimately provide a pile of spaghetti code reminiscent of the days of COBOL. When this happens, solutions become patchwork and your project can fall prey to constantly-missed deadlines.</p> <p><strong>4. They are self-disciplined</strong></p> <p>Being disciplined in the work environment and schedule can be beneficial, but the multiplication factor is huge when you think about source code with dozens of other developers contributing. If your developer writes code that no one else can read, or doesn’t have well-written documentation, they will grind the other developers to a halt. It doesn’t matter how many developers are on a project if they all spend their time trying to figure out each other’s code. They say, "you can't teach height". Well, it's pretty hard to teach discipline too. Developer's who have the ability to discipline themselves will always rise to the top.</p> <p><strong>5. They have an acute focus</strong></p> <p>Ironically, some of the best code I’ve ever written happened during a 170-hour sprint lasting just eight days (for reference, there are 168 hours in a week). How could a hungry, sleep-deprived developer write better code than their peers? Two words: profound focus. There’s something amazing that happens when the brain is able to align all of its resources to a singular goal. When all synapses are firing for a common goal, there is an unexplainable clarity that happens. Hours of development seem like minutes, but accomplish weeks of normal workloads.</p> <p>This is the crux of why outstanding developers can sometimes freak out about the most minor of interruptions. Disrupt a focus like that with a single stray thought and you could lose weeks of work. Countless hours of productivity have gone down the drain because someone didn’t understand the importance of focus to a developer. With so many developers to choose from, finding the right one can be an intimidating experience for even the most experienced business owner. Improve your chances by checking references, doing your homework, and getting detailed information on the traits listed above.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Thu, 13 Jun 2013 02:39:56 +0000 geisel 119 at https://geisel.software Mobile apps: 5 ways to know if your business needs one https://geisel.software/content/mobile-apps-5-ways-know-if-your-business-needs-one <span>Mobile apps: 5 ways to know if your business needs one</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-Mobile-Apps-Five-Ways-71663239-800x461.jpg" width="800" height="461" alt="Mobile Phones displaying colorful mobile apps" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Fri, 06/07/2013 - 18:52</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">19</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>When social media broke big, the peer pressure to go all-in was astounding. Businesses routinely created Facebook and Twitter accounts, bombarded them with content, and then wondered why followers dwindled off or they couldn’t break 100 “Likes”. With mobile apps, the peer pressure is just as staggering, but the financial stakes are much higher. So, before you invest in the development of an app for your business, ask these critical questions first:</p> <p><strong>1. Are your customers demanding it?</strong></p> <p>As a business owner or manager, you're probably familiar with unrealistic client demands. From calls for expensive changes to a product to bizarre and costly service requests, there seems to be no end to passionate, odd suggestions by people who feel like they're working toward the better good. If a tiny group bands together to request an app for your product or service, and they represent .00001% of your client base, it might not be something worth pursuing. However, if your clients, independent of each other, are posting in forums, hitting you up on Twitter, or filling up your email suggestions inbox with requests for an app, it's time to take things seriously.</p> <p><strong>2. Do your closest competitors have one?</strong></p> <p>Unless you're the only company creating something extremely magical, ultra-rare and totally proprietary, you know exactly who your competitors are. Your rivals might be smaller companies that are growing quickly, larger companies with better name recognition, or peer businesses with a similar number of customers (or estimated sales). There may be a $200 million company with global recognition that produces a similar product to yours, but adding them to the equation will only skew the results. Be realistic. Find out which of your true competitors have apps, which ones have mobile Websites, and explore either (or both) options.</p> <p><strong>3. Is your company suffering by comparison?</strong></p> <p>If a rival company develops their own app and it becomes popular, you'll probably see the signs when you balance the books. However, if a rival company develops an app and a major review site does a side-by-side comparison, and your company ends up the loser, it's an entirely different scenario. Remember: many new customers use reviews, blog posts, social media and other online comparisons to pick the company they're going to buy from next. If word spreads quickly that you're “the company that makes what I like but doesn't have an app”, a total evaluation is in order.</p> <p><strong>4. Will it lighten the load for your employees?</strong></p> <p>Before the days of ubiquitous ATMs, patrons had to go inside a bank, fill out a slip of paper, stand in line, and then wait for another human being to process a transaction. While this quaint little scenario had its social merits, at the end of the day it was a time waster for both people involved. A solid business app not only saves customers time, it saves your employees time. If you've ever wished you could automate something and give you or your staff more time to work on bigger, better things, it makes perfect sense to think seriously about having someone develop your app.</p> <p><strong>5. Will a mobile site work instead?</strong></p> <p>For many businesses, only two scenarios make sense: having a website, and having a website AND an app. But there's one more option that may deliver the best of both worlds, and possibly cost less as well: a mobile website. With a mobile website, clients can do everything from order products to access info from their mobile phone, tablet or other device. Because a mobile site is optimized for handheld devices, customers instantly get most (if not all) of the conveniences and functions of your website, without you having to commit to a long app development cycle. There are so many reasons, from convenience to cost-saving, that apps make sense for businesses, whether they are small, living room-based operations or larger companies working out of vast warehouses. But before you commit to a developer, a design or a timeframe, use your answers to the questions above as your compass.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Fri, 07 Jun 2013 17:52:21 +0000 geisel 118 at https://geisel.software Four Tell-Tale Signs Your Mobile Developer is Off Track https://geisel.software/content/four-tell-tale-signs-your-mobile-developer-track <span>Four Tell-Tale Signs Your Mobile Developer is Off Track</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-derailment-44995828-800x461.jpg" width="800" height="461" alt="Train track that is bent and will cause derailment" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Fri, 05/24/2013 - 19:42</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">19</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Picture this. You've spent thousands of dollars to build your first mobile app. You think you've found the perfect developer. The first weeks of your project are seamless and everything goes perfectly. And then suddenly, out of nowhere, your project is totally derailed.</p> <p>Though sometimes projects run swimmingly and software is delivered on time and within budget, other projects languish thanks to development problems. It’s often hard to tell if something has gone wrong. Things might feel weird, but how do you know that your development is off track? Here are the clues:</p> <p><strong>You're no longer getting clear explanations</strong></p> <p>No matter where things are in your app development project, you should always know where the project is at the moment, and where it is heading. A good developer knows where the software is at every time, where the architecture is leading, and how to explain both. Remember: an important part of the app development process is taking complex things and breaking them down into simple tasks. So, if your developer is having a hard time clearly explaining what they’re doing, it may be an indication that something has gone awry.</p> <p><strong>A key person leaves your project</strong></p> <p>Sometimes software companies change developers or program managers on projects. This doesn’t happen all the time, but it does happen occasionally. There are plenty of legitimate reasons that a company changes who is working on your project, but this is a good time to start paying special attention to the details. Start by making sure that the person they’re bringing in is at least as competent as the person who signed on initially.</p> <p>Don't forget: with new developers, there’s going to be a ramp up period. So when there’s only one developer working on your project and they need days or weeks to get familiar with your project, you can expect significant delays to the development schedule. If there's a change of the guard, find out what your developer or project manager is doing to make sure your project is finished by your original deadline.</p> <p><strong>You're told “it can't be done”</strong></p> <p>There is very little that can’t be done in software. It can make your coffee in the morning, transport you across country, even take you to the moon or Mars! When your developer starts telling you things like “it can’t be done”, it's not a good sign. It may be true that it can’t be done within your budget, but the developer should be able to tell you that instead of dismissing your requests out of hand. A simple declaration that a feature simply can’t be implemented may be a sign that your developer or development firm is having trouble with the architecture.</p> <p>If you were building a bridge, you wouldn’t want any trouble with the architecture. The same goes for software. Good architecture is essential to the success of a project, so if your developer has problems with it, you must get involved.</p> <p><strong>Your developer stops communicating</strong></p> <p>Generally, after the first week or two of a project, you’ll start seeing some quick progress, but you can expect that to slow a little as the developer gets past the common setup and into the unique part of your development. The key here is not that something is taking a long time, but that it’s taking longer than expected, with little explanation or no communication.</p> <p>It isn’t unheard of for a one week task to end up taking two weeks or more, but there should always be a clear explanation to accompany the delay. When the developer isn’t talking, or starts talking in circles, it’s definitely time to start paying attention to the reasons why.</p> <p><strong>Solving the problem quickly and easily</strong></p> <p>Should you fall into the unfortunate situation of having your project derailed, you must act quickly. The biggest downfall of business owners is waiting too long to do something about a developer who is lost in the weeds. When you see these telltale signs, take decisive action and get control of the reigns quickly. Like anyone working on a big project, developers sometimes get in over their heads.</p> <p>So when you confront a lost developer, they will initially want to try to keep pushing through, but eventually, if you press hard enough, they will admit that things have gone wrong along the way. If this happens, you have to decide whether to get another developer, or see if your current developer can find a way to make things right. Let your developer make a proposal. If they’re completely out of their league, they’ll usually just recommend a friend or colleague to help bail them out.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Fri, 24 May 2013 18:42:39 +0000 geisel 117 at https://geisel.software 5 Air-Tight Ways to Find a Cracking Good Software Developer https://geisel.software/content/5-air-tight-ways-find-cracking-good-software-developer <span>5 Air-Tight Ways to Find a Cracking Good Software Developer</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-Freelance-desktop-97766846-800x461.jpg" width="800" height="461" alt="Desk with laptop and desk accessories" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Wed, 05/15/2013 - 16:54</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>When you need a hardworking, skilled and inspired web or mobile app developer, separating the stars from the slackers can seem as complex as code itself. Should you focus on a developer's work style? Programming language mastery? A degree from a top-notch school?</p> <p> The great news is, there are basic things you can do to stay organized and swing the odds in your favor. Here are five important ways to locate a top-notch software engineer without over-thinking the entire hiring process: </p> <p><strong>1. Dig into open source projects</strong></p> <p>Many developers have lots of projects floating around on sourceforge.net and github.com. But it isn't enough to see that a developer has written a project, you need to understand the project. Did the developer write it in a weekend because they were bored? Did they dedicate a year to a project without writing a single line of documentation? If you're not sure a developer would know good code even if it brought them breakfast in bed, grab another developer and ask them to make their own assessment.</p> <p><strong>2. Always conduct a technical interview</strong></p> <p>If you're nixing a technical interview, hiring a developer will be like renting an apartment to the first person who shows up. Not only will they miss their rent payment, they might trash the place. While a lot of developers balk at having to do a very technical interview, the technical interview is critical in finding a good worker. In other words, the only way to tell one developer's experience from another's is to make your potential hire write some code, period. </p><p><strong>3. Expect the best candidates to break the mold</strong></p> <p>Ace coders come in many different shapes and sizes, but what makes them great is usually the same thing that prevents them from being a typical 9-to-5 employee. If your potential developer didn't finish school, dig past the what and into the why. Did they fail college because they spent finals week writing an n-dimensional ray tracer? Then they'll probably pour their life into your product because they'll want it to be perfect.</p> <p><strong>4. Explore a developer's real work style</strong></p> <p>If there's one way to reveal how a developer functions on projects, it's exploring their personal work style. Ask a developer how they've worked on team projects in the past. If they give you a stock answer like “We shared responsibilities and divvied up the work evenly”, they're the wrong person for your project. Instead, if they tell you they delegated documentation writing to someone who was really good at it, but they personally finished the coding in a single weekend, they're most likely entrepreneurial and dedicated. Find someone who plays well with others and understands their own strengths and weaknesses and you'll be golden.</p> <p><strong>5. Broaden the language set you're looking for</strong></p> <p>Here's the straight truth: if you hire a crappy Java programmer, you're stuck with a crappy programmer. However, if you hire an ace C++ developer, you've hired yourself an ace developer. A true ace C++ (or whatever else) developer will learn Java AND your project faster than an average developer ever will. Languages are about syntax and skills are about knowledge, but remember: you're looking for someone who knows how to think on their own, see the big picture, and work on multiple facets of your project.</p> Finding that diamond-in-the-rough developer when the stakes are sky-high and you're low on time or patience, can bring some serious pressure. However, if you use these tips as a master checklist, you'll track down and hire someone who shares your passion, work-ethic, and vision for your project. </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Wed, 15 May 2013 15:54:07 +0000 geisel 113 at https://geisel.software Geisel Software on Mobile Applications https://geisel.software/content/geisel-software-mobile-applications <span>Geisel Software on Mobile Applications</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/default_images/blog-post1.jpg" width="800" height="566" alt="Default Blog Image" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Tue, 04/16/2013 - 23:50</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>iOS, Android, Windows Phone. We are constantly being asked, "What's the right platform?", "Should we support Android?", "Is anyone running Windows Phone?". The real question is, what's the right answer for your business. The truth is, it really depends on your business and purpose.<br /><br /> I recently saw an entrepreneur invest heavily on iOS, for an idea that will never work on iOS (for technical reasons). It was awful to see all that work go down the drain, because that CEO wasn't given the information he needed to properly steer his business.<br /><br /> At Geisel Software, we don't just "write apps." We make it our business to understand your business. In the end, that means getting the information you need, to turn every app release into a home run.<br />  </p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 16 Apr 2013 22:50:56 +0000 geisel 108 at https://geisel.software Why Internationalization is Critical in Your App Development https://geisel.software/content/why-internationalization-critical-your-app-development <span>Why Internationalization is Critical in Your App Development</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-international-currency-155624525-800x461.jpg" width="800" height="461" alt="international currency and flags on stock market chart background" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Wed, 04/03/2013 - 05:59</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">30</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>If you're developing apps for the Web or mobile devices, you've definitely come across the word “i18n”. While i18n seems like yet another in a long list of software acronyms, this one, a substitute for the word “internationalization”, will probably affect almost every app you make. Today, technology is moving faster than ever, but so is the global environment. You can't open a paper or read a financial blog without reading about the BRICs and how the world economic stage is changing.</p> <p>How did this happen? In the late 90's, the tech bubble really blew open the doors of the Internet to Asia. And that pretty much changed everything. Initially, this meant a lot more software developers were available to western companies. However, as growth continued for these (and other) countries, it has been parlayed into significant buying power.</p> <p>Don't believe me? Produce an iPhone app and iTunes will sell it in iTunes stores all over the world. Produce a successful web app and you'll receive hits from the entire planet. Web application sales know no  international  borders, but they do have language barriers. And I'm guessing that the phrase "It's all Greek to me" means something a little different in Greece!</p> <p><strong>The startling evolution of international apps</strong></p> <p>Internationalization  used to be avoided for two reasons (three if you count the spelling). The first reason was it was hard to do and yielded low ROI. Anyone spending money was spending U.S. dollars and spoke English. Whether this was true or not, it was the perception. Today the case for investing development in foreign markets is a lot clearer. They're spending money, so that certainly helps the "R" in ROI.</p> <p>The second reason is that i18n is a lot easier to code than it was five or 10 years ago. Back then, everything had to be done meticulously by hand. Every iota of text in the program had to be imported from an external data file. These files and their translations all had to be handled manually, and with great effort. Today, things have been simplified merely by the fact that software has evolved. For instance, 10 years ago, if you wanted a simple database, you had to build the data structures from the ground up.</p> <p>Today, every web application in the world is already running on a well-known, easy-to-maintain database like MySQL, and hardware developers have taken steps to make translation a simple part of their operating systems. With a simplified software development cycle on translation, the investment for successful  internationalization  is much lower than it has traditionally been. By lowering the "I" and raising the "R" in ROI, i18n has become an important value play in any product, mobile, web, or otherwise. In other words, internationalization has become a straight-forward way to increase the potential revenue for a product, without having to change features or redesign it.</p> <p><strong>How good internationalization is done</strong></p> <p>For a better understanding of internationalization, let's talk about a product that doesn't support i18n. In these products, developers put text, or strings, all throughout the code. These strings are inserted in the place where the code uses them, not necessarily related to where they appear in the end product. So when we  internationalize  a product, we essentially replace each of those strings with a token.</p> <p>For example, "Continue" might be replaced with @cont. (For developers: @cont isn't meant to represent a particular language here, rather to denote that this is a variable and not raw text. The "@" is just used to set if off from English text here.) Next, we'll teach the software that everywhere it sees @cont, it needs to replace that with a particular string, based on the current language. This not only makes it easier to translate, it also allows us to group text by usage and separate it from code. This makes other business practices easier, for example, having the marketing team adjust the messaging or feel, directly in the product.</p> <p>The specifics of this implementation vary by platform. For web application services, this would typically be implemented as part of a database. Since we're probably already using a database for our web application, it's a convenient next step to add lookups for strings that simply pull them in from the database.</p> <p><strong>Why Internationalization is easier than ever</strong></p> <p>Some platforms, iOS for example, actually include an API (Application Programming Interface) specifically for translation. On iPhone apps, the developer will simply replace text with a call to Apple's  internationalization  library. This is particularly convenient as they are drawn from a file. So, to have a translator create a new language file, you simply hand them the empty German file (for example) and the populated English file. Obviously, you'd want to include your application as well, so the translators can understand how the English is being used in context.</p> <p>In my opinion, the coolest part of all of this is actually that the actual language translation has gotten easier. Technology is making languages easier to translate, imagine that. And for anyone who speaks a second language, about two minutes on Google with some idioms is some of the most fun you can have! Missing out? Just type some idiomatic phrases into Google and translate them to another language and then copy and paste them and translate them back to English (Need an example? Try "He sits like a bump on a log" to Spanish and back to English). Obviously, that won't do.</p> <p><strong>Why real-life translators matter, especially today</strong></p> <p>Translation software does a lot of the heavy lifting in app development, but to get a good translation for your product, you really need to use a good translator. The amazing technology I refer to isn't the translator themselves, but rather the availability of experienced translators. The exact same mechanism of the Internet that has opened the doors to new markets has opened the exact same doors to the translators you need. Now, not only is there an influx of consumers to buy your products, but it is accompanied by the same influx of people to translate it into their own languages.</p> <p>I never thought technology would change something so fundamental and human as  language, but it kind of has. Not only has it made translators more accessible, it has also made them more necessary for ultimately getting your products and services into the hands of more consumers. After reading this, hopefully you will see the need for  internationalization, how you can use it, and why we just call it i18n.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Wed, 03 Apr 2013 04:59:54 +0000 geisel 107 at https://geisel.software Business Summary: What Can HTML5 Canvas Do for You? https://geisel.software/content/business-summary-what-can-html5-canvas-do-you <span>Business Summary: What Can HTML5 Canvas Do for You?</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-canvas-4938632-800x461.jpg" width="800" height="461" alt="Canvas on easel of eye for the future" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Mon, 02/25/2013 - 15:00</span> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Whether you've heard of HTML5 or the HTML Canvas object, you're going to. HTML5 is real and it's here. If you're going to leverage technology the way you need to for success in today's business world, HTML5 has to be a part of your overall plan.</p> <p>You've got to understand this technology today. First, let's take a brief history lesson of the web. The web really got its first bubble treatment when HTML was a fully recognized standard. This resulted in the ugly web pages of the late 90's, but we thought they were beautiful back then. They were static pages, but we were adding images to text -- not just on the page, but in backgrounds, menus and everywhere else we could squeeze them.</p> <p>After the tech crash in 2000 or so, we saw a reemergence in what became known as Web 2.0. The real differentiating factor in Web 2.0 was the ability to interact, brought by DHTML (Dynamic HTML) aka JavaScript. Now you were able to mouse-over a button and have it indent. Menus could drop-down -- we take it for granted now, but that was the exciting part of the interactivity brought by Web 2.0. Since the release of JavaScript and an interactive web, technology has continued to improve. We've seen a consistent growth since then, not an individual release of a major technological step.</p> <p>Because there wasn't a particular, single release, the progression lately has gone along without a lot of hype. However, there have been a lot of improvements to both the client and server side of the web. On the server side, we've seen PHP and MySQL open up to allow the deployment of large, dynamic databases via the web. This was previously technology that was only available on an internal server network, reducing the applications for utilizing large databases.</p> <p>We've also seen desktop PC speeds continue to increase, which means that JavaScript can do a lot more today than it could 10 years ago. However, the web still couldn't handle complete applications. Think about the <a href="http://www.apple.com/hotnews/thoughts-on-flash/">Apple denouncement of Flash</a>. There were videos, and video-like graphics that could only be done in Flash. To really do something resembling a desktop application, you'd need to have Flash again. Apple's refusal to support Flash on iOS devices isn't the only issue with Flash. Flash is largely unsearchable, which means you hurt yourself in Google searches. It also requires a completely independent plugin to run the code, so you also limit the amount of interaction you have with your website. If that sounds confusing, imagine how your visitors feel about it!</p> <p>Then there was HTML5. The canvas element of HTML5 is the next game changer. ALMOST all the necessary components were a part of HTML, but it was missing the ability to truly integrate audio and video. HTML5 will let you stream video, but you don't need to be building the next youtube for this to be a game changer.</p> <p>Imagine taking customer data, collating it and displaying it in a live, adaptable chart. (For a great demo, check out the example charts at <a href="http://www.highcharts.com/">Highcharts.com</a>). This can all be done using the HTML5 element known as the canvas. With a canvas, it's like having a piece of your desktop in a webpage. More than that, it's a piece of your desktop that can seamlessly interact directly with the technologies of the Internet.</p> <p>Now the desktop meets the cloud. Yes, the canvas element is handy for creating games or other interesting multimedia uses. But the real crux of the canvas element is how you integrate it into your applications or the new applications you can create for your business with this new availability. Let me put this another way for businesses -- you can now write your desktop application for the web and have users run it on Windows, Mac OSX, Linux, Android, et al. You could get pretty close with JavaScript, but when you needed real graphics work, you were still out of luck. The canvas element is really the first time you have all the necessary components of a desktop application available via the web.</p> <p>Additionally, with support by operating systems like Android, your desktop app may get you into the mobile space for free. That's a good discussion for a separate article, but suffice it to say that if you're application doesn't require an enormous amount of horsepower (processor or graphics), there's a good chance it will run well on Android as well.</p> <p>How does this open the possibilities for your company or product? The canvas is a very powerful tool. We laid out a few different ways it could be used to integrate the desktop with the cloud, or to bridge the gap of cross-platform development. There are still a few things to be worked out, such as local file access, but all in all, the canvas element is a pretty powerful one that may just be the final piece of the puzzle for <em>your</em> needs.</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Mon, 25 Feb 2013 15:00:00 +0000 geisel 103 at https://geisel.software "Hello World!" - The Birth of Great Software https://geisel.software/content/hello-world-birth-great-software <span>&quot;Hello World!&quot; - The Birth of Great Software</span> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/2017-01/bigstock-Hello-World-13672289-800x461.jpg" width="800" height="461" alt="Abstract Graphic of Globe with Technology Streams" typeof="foaf:Image" class="img-responsive" /> </div> <span><a title="View user profile." href="/users/geisel" lang="" about="/users/geisel" typeof="schema:Person" property="schema:name" datatype="">geisel</a></span> <span>Tue, 06/12/2012 - 18:33</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>A lot of great things in my life have started with those very words: "Hello World!". It seemed an appropriate start here, as well. Most developers speak nostalgically of their first "computer" (I use quotes because we might have to stretch to actually call it that). Younger developers simply spit it out full of excitement: "...with 32 Gigs of RAM and an SSD!" Either way, there's a vigor for the knowledge that is yet to come, the anticipation of unlocking something new and creative, the passion that comes with developing software.<br /><br /> There's the runner's high and the addict's high, but there's a completely different kind of high that can keep you up for two nights in a row, staring at a series of characters that's illegible to most of the world. I once heard someone say, "I'd like to be a meth-addict -- just for a day -- to understand what it's like to have such singularity of purpose." Developers know. Maybe there's a physical response, but I've never heard of it. It's just something inside you, something that drives you. It's a strive for perfection in something that more closely resembles a work of art than it does a scientific medium. That hunger, that drive, and that need for perfection is what defines a software engineer. When great software is about to be written, developers understand what it's like to have such "singularity of purpose".<br /><br /> At some level, we can all appreciate the drive and passion that separates good software from great software. We tend to create a chasm, however, between great software and great product. Great software is allowed to be theoretical. Comments, style, and design are all part of the intangibles of great software. However, great product must be practical. It exists only because of its tangibility. Business thrives on great people, building great product. Suddenly, business tears the intangibles out of great software -- sometimes to deliver any product at all. Developers become disappointed and even protective of the beauty of their software. Experienced developers understand the cost of losing the intangibles. Sure, it lowers morale in the ranks of software engineers, but even more directly, it causes maintainability to fall. The development cycle slows. Sales insists on features for new, potential clients. Engineers become defensive and protect themselves in Ivory Towers of Software -- impenetrable by other developers and completely debilitating to the organization. So the chasm forms...<br /><br /> Enter "Hello World!". Solving this problem requires a new level of knowledge, for business and engineering alike. In both cases, it means learning a precarious balance that sagely avoids the precipice of the chasm. For business, it is quintessential to recognize the importance of the intangibles of software. For engineering, it is equally as necessary to recognize that the ultimate goal is a product, not perfect software. Without both, you have no product or no maintainability of that product into the future. While it's important for business to get out in front of their competition, your software needs to remain maintainable and flexible to stay on top of the competition. Getting in front is of little value if you're unable to finish the race.<br /><br /> There is a time for learning on both sides, in fact, it really is a never ending quest of knowledge and understanding. Other products can be sold with the "goop in a bottle" method, but software truly requires an understanding of the process and a marriage of the tangibles and intangibles. The King James Version of the Bibles says, "Wisdom is the principal thing; therefore get wisdom: and with all thy getting get understanding." (Proverbs 4:7). There is an understanding that's required on both sides of the business/software fence that -- when united -- turn great software into great product.<br /><br /> One of our goals at Geisel Software is to help you <strong>understand</strong> the software that's being written (the design choices, the alternatives, the trade-offs). Handing you great software "in a bottle" isn't enough. We want you to have the understanding of that software that can propel your company to deliver great product as a part of your own business strategy.<br /><br /> So, when your software is released to revolutionize the world in your own unique way, we'll be with you to say, "Hello World!"</p> </div> <div id="field-language-display"><div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <label class="control-label">Language</label> English </div> </div> Tue, 12 Jun 2012 17:33:59 +0000 geisel 89 at https://geisel.software