drone-in-clear-sky

Drone Regulations – What you need to know about Part 107

drone-in-clear-skyDrones are coming. I know…you already know. But seriously, you will soon see more of them. Why? Well, for one, as technology in general continues to forge ahead, the control systems for unmanned aircraft systems (UAS) (or “drones” as they are most commonly referred to) become more and more advanced, while also dropping in price. With the massive growth of ready-to-fly systems targeting the consumer and prosumer market, it’s never been easier to get into this hobby/sport/industry. And with the new FAA Part 107 regulations about to go into effect, you will likely see even more drones in the skies as the barriers to entry for commercial use have been reduced.

Remote controlled aircraft have been around for many, many years, but it is the advancement of technology-enabled, easy-to-fly features that have really opened up the mainstream adoption and launched an entirely new industry. The new growth is also slowly chipping away at the stigma attached to drones stemming from their use in military operations or from general privacy concerns. Any new technology is met with some apprehension, but it will diminish as time goes by.

What does this mean for you? If you just want to fly these as a hobby, then you can certainly do that. They are lots of fun and allow you to capture cool perspectives in photos and videos. You can also experience the adrenaline rush of first-person view (FPV) close-proximity drone racing. Whether you build your own or buy one off the shelf, the hobby is certainly destined to grow. There are some FAA regulations around the hobbyist’s use of drones to ensure other aircraft, people, and property are safe. If your drone weighs between 0.55 pounds and 55 pounds, you need to register it with the FAA for a fee of $5. Your registration is good for 3 years. In addition, you should follow these safety rules:

  • Fly at or below 400 feet
  • Keep your UAS within sight
  • Never fly near other aircraft, especially near airports
  • Never fly over groups of people
  • Never fly over stadiums or sports events
  • Never fly near emergency response efforts such as fires
  • Never fly under the influence
  • Be aware of airspace requirements

The airspace requirements refer to the different classifications of airspace as defined by the FAA to facilitate manned aircraft flight. Depending on how close you are to surrounding airports, this may not impact you very much, but you should be aware of the information. Particularly if you live in or near a city that has a large airport and likely numerous smaller towered airports. You can click here to read up on the classes of airspace.

logoFAAIf you want to fly for commercial purposes, it’s not so easy. There are several more steps involved to do so. Whether you are capturing aerial photography, videography, performing inspections, etc., you will need to make sure you comply with the new FAA regulations defined as Part 107. Part 107 goes into effect on August 29, 2016, and will essentially supersede the existing exemption process for commercial drone flights known as Section 333. Even if you were to fly for free, if the resulting data captured is used for a commercial business or organization, that would classify it as a commercial flight and should only be executed under the Part 107 regulations.

So how do you get a Part 107 certification for commercial flights? You must be at least 16 years of age, you must pass an FAA aeronautical knowledge test, and you must be vetted by the Transportation Safety Administration (TSA). The knowledge test is not unlike the knowledge exam required for a private pilot’s license, but will cover more drone specific regulations defined in Part 107. You do need to know general aeronautical information, so the test will require deliberate study to learn all of the information.

After completing those steps, you must follow operational guidelines as listed here:

  • Your aircraft must be less than 55 pounds and must be registered
  • Operate in Class G airspace*
  • Must keep the aircraft in sight (visual line-of-sight)*
  • Must fly under 400 feet*
  • Must fly during the day*
  • Must fly at or below 100 mph*
  • Must yield right of way to manned aircraft*
  • Must NOT fly over people*
  • Must NOT fly from a moving vehicle*

*  All of these marked items can be waived although the specific process for Part 107 waivers is not yet available.

There are plenty of resources available from the FAA on commercial use of drones under Part 107. The FAA also has information and study guides relating to the remote pilot certification. Please take care to operate your aircraft within the guidelines outlined by the FAA. You must also take into consideration state and local laws or ordinances as there are frequently additional restrictions imposed by those entities. Responsible flights by everyone are important to reflect positively on the drone and RC community as well as avoid more strict rules and policies in the future.

While it may seem a bit onerous to deal with these FAA regulations, I have to say that I’m impressed that these new regulations have come about as fast as they have. Keep in mind also, that Part 107 is brand new and will almost certainly see significant changes over the next year or two as remote pilots explore the limitations and shortcomings of the regulations in practice. Check out the FAA UAS site for more information. The new regulations do not quite open the door yet for carrier services like Amazon is working on, but it is a step closer and will almost certainly be opened up soon.

Dellinger Technologies has a Section 333 exemption pending and is scheduled for Part 107 certification as soon as the process goes into effect next week. As a manned aircraft private pilot myself and drone enthusiast, I’m very excited about the commercial opportunities available in this new industry. Should you need any professional aerial services, please contact Dellinger Technologies. Don’t settle for illegal service providers without FAA certification or those that deliver lower quality results to meet a low price point. We would love to leverage our years of technical and professional expertise to develop the perfect solution to meet your needs with quality and attention to detail that you will not regret.

Kotlin-logo

Kotlin – The Next Language You Thought You Didn’t Need

Kotlin-logoAt a recent conference, I happened upon some information about the programming language, Kotlin. I had heard of it, but never looked into anything about it. After taking a casual look at it, I’m strongly considering giving it a shot on a “real” project. Read on to find out why. My background is primarly Java programming, followed closely by Ruby. I’ve had experience with numerous other languages over the years, but usually only on a small number of projects, or on projects old enough that I don’t consider myself current. Java is my favorite overall. Ruby has lots of great benefits in certain types of projects, so it’s a handy tool to have around as well. So what about Kotlin?

Kotlin was developed by JetBrains, the makers of IntelliJ IDEA and other IDE variants as well as other developer tools. Kotlin is a statically typed language that runs on the Java Virtual Machine. It is not syntax compatible with Java, but both Java and Kotlin source files can seamlessly interoperate within the same code base. That is a pretty huge benefit if you’d like to try it out in an existing Java project and can not afford to spin up an entirely new rewrite. The language was first announced in 2011 and was open sourced in 2012. The version 1.0 release became available earlier this year. The language supports object oriented and procedural programming. And, like Scala, it tackles many of the shortcomings and inconveniences from Java. For example, Kotlin makes a distinction between nullable and non-nullable types, so you must explicitly indicate that variables can be null.  It allows you to write concise, clear code and reduce lots of boilerplate which is often a big complaint with Java.

So why not just use Scala? In my case, a language needs to really sell me on the benefits and low cost of adoption for it to be worth my time to consider incorporating it into my toolset. Scala just never seemed convenient enough in my cursory glances at it. But Kotlin seems to have knocked down those barriers to entry. It has fantastic tool support in IntelliJ. You can even have the IDE automatically convert Java code to Kotlin if you want. Since Kotlin source code is perfectly happy to live alongside Java code, it is trivial to transition at your own pace or give it a trial run without too much overhead. You can call any existing Java code directly and easily from Kotlin code and vice versa. Kotlin is even quickly gaining ground as a go to platform for Android development.

At this point, I’ve only looked at a few tutorial examples to start getting my feet wet, so I can’t speak to the long term transition and adoption. However, it was ridiculously easy to get started and that is a serious win in my book. I enjoyed it enough to actually take a look at using it on some upcoming personal projects. I’m interested to see how it plays alongside some of my goto Java frameworks like Spring Boot, etc., although it will almost certainly be pretty seamless. JetBrains has committed to long term support of the language so it’s not going away anytime soon.

I’m not one to jump over to the latest and greatest languages that show up on the radar. They usually turn out to be more effort than they are worth for me. However, Kotlin has definitely piqued my interest and I will be taking a closer look at how I can incorporate it my projects. Great benefits to efficiency, low barriers to entry, and low risk. With features like that, if you are a Java developer, it might be a language you are interested in as well. If you’ve tried it already, let me know about your experiences with it.

Prog-languages

Polyglot programming in an Enterprise World

Prog-languagesHaving worked in the software industry for quite some time, I’ve had my share of experiences in lots of different languages, tech stacks, deployment environments, databases, and so on, etc. Over time, I have certainly developed biases, but I’ve tried to be somewhat of a generalist. There are almost always numerous ways to tackle a problem, and it’s practically impossible to have a one-size-fits-all solution. Throw in the added variable of how quickly things change in software development and you essentially MUST broaden your knowledge base just to stay relevant. Enter the polyglot programming moniker. What’s that? Well that’s the label most often used to describe a software developer that has broad knowledge touching all manner of tools and technologies from the mainstream to downright obscure. The polyglot programmer is rarely an expert in any one language…who has time for that? You are much more marketable to have a broad set of skills, right? Well, yes and no. Let’s take a closer look.

Being Agile and Startup Culture

Startups are all about moving fast, focusing features, and meeting needs faster than all of your competitors. It makes sense that agile software development practices are practically written in the handbook for startups. Agile software development allows to you focus discrete value adds and quickly receive feedback from stakeholders. This allows you to pivot quickly when needed to zero in on the optimal goal much like firing tracer bullets at a target. You can see how you need to adjust and you can make those adjustments quickly. Frequently, this results in multiple programming languages in use and varied technology stacks. The best choice always wins if it adds the most immediate value.

If the product or business model you are operating under IS focused on a specific goal and you can clearly refine your specific direction, then great…you are all set. But what if you are not breaking new ground or changing an entire industry? Well, you might find agile is not as magical as it is often presented. Regardless, experience with multiple languages will serve you well when searching for optimal solutions. Make no mistake, agile is certainly a streamlined process. However, if you have complicated, interdependent goals that involve numerous other systems, then you will benefit from more design work up front before diving into short iteration cycles. Wait…that sounds like…*gasp*…waterfall?!

The Enterprise Behemoth

enterpriseVery large corporations will typically have large, aging IT departments leveraging legacy systems and software libraries that are vitally important and often misunderstood. How do you deal with that? Often it results in bypassing certain legacy systems with more modern implementations and bolting them on to the existing system. It’s difficult to remove the old code because it’s difficult to determine what the impacts will be. If startups are like driving speedboats on open water, then enterprise IT is certainly like maneuvering cargo ships in small harbors. Can agile work within the enterprise? Yes, but only if certain considerations are made. Long term stability and support are typically more important than time to market and features. There is slightly less competition, because you likely already have a loyal customer base. You goal is to wow them with solid reliability and not so much with cutting edge features. Flooding your IT environment with excess languages and tech stacks makes resources hard to find and often causes more problems than it solves, at least in terms of finances. So is the enterprise polyglot programmer useful? I’d say yes…being open to various languages can often help you move past the limitations of a legacy system. And just because a company is “enterprise” scale, doesn’t mean they don’t innovate on cutting edge tools and methods…it just means they also likely have some legacy baggage to drag around.

So Which Way Do We Go?

Well, the nebulous answer of course is…it depends. If you are moving fast and trying to change an industry, or breaking new ground, then you will certainly need to choose the absolute best choices of languages, tools, etc. that you need to accomplish your goals. If you are working within an established company with large amounts of existing code, then more than likely, you will need to back off of the buzz words and avoid the “next big thing”. Instead, focus on the tried and true solid technologies. It won’t be as flashy, it may not attract the latest prodigies right out of high school, but it will give you predictable costs and performance. And that is pure gold when you working with a more mature, respected business. However, you must make room for trying new technologies because the improvements commonly outweigh the risks.

My advice is to avoid dogmatic software development methodologies and staunch defenders of legacy code. Look at your specific situation and pick-and-choose whatever elements you want to make your process work. If it’s not going like you planned…change it. Make your own rules. Just like politics…study up on all the various popular options, then make up your own mind. Anyone that argues with you in favor of a process for the sake of the process itself, is almost certainly wrong. Innovation requires exploring uncharted territory, but make sure it’s purposeful.

So, is there room for polyglot programmers in the enterprise environment? Absolutely. With the rise of devops and increased efficiencies in cross functional team roles, the polyglot programmer is well poised and capable of choosing the best tool in his or her toolbox to solve the problem at hand. You just have to include the enterprise-y requirements of long term support, stability, and resource allocation when making your selections. Be open to new languages. Pick them up when you can. Become a polyglot programmer, but consider the risks and make solid, stable choices where possible. It will serve you well in your career whether it’s a brand new startup or an enterprise juggernaut.