Develpreneur: Become a Better Developer and Entrepreneur

Rob Broadhead
undefined
Jan 14, 2019 • 19min

AWS Services - New Since We Started and Looking Ahead

We started this series on AWS services in the late 3rd quarter of 2018.  As we start in 2019, there are over a dozen new AWS services that have come online during that time.  Although we have covered a few of these in an overview with one of the groups due to the timing of their release, most of these are yet to be looked at. AWS Services March On The good and bad news about these offerings from Amazon is that they do not show any sign of slowing down their advance.  There are new services, and even new groups created every quarter.  Therefore, you will need to put aside a little time each week or month to check out the latest services available.  This does not include the expansions that are made on an almost daily basis to the existing dozens of products we have discussed.  Thus, a weekly review of the AWS services and the latest news (subscribe here) is highly recommended. The List Ok, we have held off long enough.  Drum roll, please.  Here is the list of services mentioned in this episode of the podcast.  However, please note that time constraints have kept us from digging into any of these offerings.  I recommend you take a closer look at any that appear attractive. Media Services Application Manager AWS Client VPN AWS ThinkBox Resource Access Manager AWS Well-architected tool AWS Security Hub Amazon Fsx for Windows File Server AWS License Manager Amazon Elastic Inference Amazon Timestream AWS Cloud Map Amazon Personalize Amazon Forecast AWS DeepRacer Amazon Textract Amazon Quantum Ledger Database Managed Blockchain SageMaker Neo AWS Ground Station Robomaker S3 object lock Amplify Console Please note that this list covers a wide range of services.  Thus, we can see that Amazon is not standing still in any of the groups we have included.  It is worth the time invested to keep an eye on the latest advances in the groups of services that matter most to you. We may come back around to some of these in future episodes.  However, feedback from you and your experiences with any of these will be much appreciated.  As we wrap up this season, I hope you have learned a few things about Amazon AWS and have become a better developer because of it.
undefined
Jan 11, 2019 • 25min

Web Browsers - Free and Low Cost Tools

The Internet has become so pervasive that web browsers are everywhere.  It is hard to find anyone that does not at least know how to launch one on their phone or desktop.  Of course, there is more to be desired from your browser than merely surfing the web.  All of these examples are free, and each has its strengths and weaknesses.  If nothing else, here is an excellent way to expand your list of browsers that you use. Chrome This browser is from Google and available almost everywhere.  I cannot think of a platform that does not support Chrome, and it is reasonably feature-rich in all of those.  One of the best features of Chrome is the developer tools that are included in every install.  On the downside, it can be a bit resource heavy and even a little slow when you have a lot of tabs open. On the other hand, there are a large number of plugins and extensions available.  If you do not use Chrome, you should.  It is a common and useful browser for web developers along with the masses. Mozilla/Firefox Before we had Chrome, there was Firefox.  This browser used to be the primary developer browser with a robust set of extensions and developer tools.  Unfortunately, it has gotten a bit slow compared to others and is a bit of a resource hog.  The configuration is powerful, but not user-friendly so it is best to stick to the defaults.  It is also a browser you can find on almost any platform. Safari This one is a mostly Apple browser.  There are some other versions, but it is the default on Apple desktops and mobile devices so you should be aware of it including for your testing.  It is a lighter weight solution than Chrome or Mozilla, but it is not as extensible or as good in providing developer tools. Opera Once you move beyond the top five browsers, you will likely come across Opera.  Likewise, if you have not used it, then I recommend you give it a shot.  It is a lightweight and speedy web browser.  IT lacks the level of developer tools you find with Chrome or Firefox as well as the plugins.  However, it is an elegant solution for those that just want a browser and prefer to avoid using more resources than necessary. Maxthon This one is a solution I came across as part of testing some web applications.  It has a slick and straightforward interface along with a light need for resources.  Although this is not a popular browser, it is a pretty good stickler for standards and can be useful for general testing as well as keeping safe and current with your typical browsing.  I tend to use this one a lot for non-development browsing. Internet Explorer/Edge Where Safari is a mostly Apple browser, IE and Edge are mostly Windows browsers.  IE is the legacy version of this browser with Edge being the latest version and one that is significantly more advanced.  There are legacy applications that require IE to run, and it has some powerful, but non-standard features developer can take advantage of.  The problem is that the vendor lock-in offsets the power you get from using this.
undefined
Jan 9, 2019 • 14min

Software Design - The Iterator Pattern

At long last, we come to my number one pattern.  The iterator is one of those software concepts that you come across and do not know how you managed before you learned it.  Maybe it is just my frequent need to work through a collection of objects, but I think this is one of the most fundamental behavioral patterns you can master. The Iterator Pattern Defined As always, we will start with the "Gang of Four" intent to set the stage for our discussion. "Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation." Yes, this is the "while" syntax of software patterns.  The goal is to walk through a collection without regard to the underlying data or mechanism.  Thus, whether you have an array, a list, a linked list, a doubly linked list, or some other device for your collection, an iterator will give you sequential access. Applying The Pattern While a highly useful pattern, this also is one of the easiest to implement.  An iterator only requires a method for progressing to the next item in the collection.  It is helpful to include convenience functions like first, last, and a way to determine if you are at the beginning or end of a group.  However, those are not required to meet the stated intent.  While an iterator is roughly an interface, it does make sense to have concrete implementations of that interface that can be passed around.  That also gives the most flexibility.  A class can have a helper iterator class that progresses through properties and collections as needed for the utilization of the primary class. Java, PHP, C#, etc. There is nothing special required for an iterator (you do not even need inheritance).  However, most modern languages have built-in iterators for their core objects.  Thus, you might want to browse through the API before you try to build one on your own.  Likewise, there are numerous examples of how to use an iterator.  Therefore, if you are not comfortable with one then start there.
undefined
Jan 7, 2019 • 23min

AWS Internet of Things Services

One of the latest advances is the Internet of Things.  As one would think, this focus on small and connected devices has not been lost on Amazon.  They may be one of the most visible adopters of this wave of technology.  Thus, it should not be surprising that they have a large number of services to assist you in your IoT strategy. AWS IoT Core The core helps you connect devices to the cloud.  This is a quick way to connect your applications to the cloud and exchange data through it.  However, it is more than an API and provides a means to message and exchange data much more like a queue system. Amazon FreeRTOS This is an IoT Operating System for Microcontrollers.  It is not a service, but instead is an operating system that makes it easy to craft an IoT device and includes integrations to some AWS services. AWS Greengrass A challenge with mobile devices is that they are not always connected.  This fact can make it difficult to take advantage of cloud services and computing like lambda functions.  However, the Greengrass service addresses this challenge.  It provides a way to extend those cloud services to the device in a manner that makes them available even when it is not connected to the Internet or network. AWS IoT 1-Click The 1-click offering is as much a product as it is a service.  This is how you configure those Amazon order buttons you have likely seen advertised.  Of course, there is more that can be done with these outside of ordering a product.  They are preconfigured to connect to a lambda function and thus can do whatever a lambda function can. AWS IoT Analytics It is hard to make this simpler to understand.  This service provides analytics for IoT devices.  It is fully managed and allows you to dive right into analyzing the petabytes of data that IoT devices can generate. AWS IoT Button This is a 1-Click button for the related service.  There are a few different such hardware devices available.  Nevertheless, the button is an excellent entry point for learning about these. AWS IoT Device Defender One of the concerns about IoT devices is the massive effort required to secure them.  Device defender works like the web version of the service and provides assessments as well as monitoring to determine whether your network of devices is safe and secure. AWS IoT Device Management The number of IoT devices makes managing them a substantial effort.  This service makes it easy to onboard your devices, monitor them and send out updates.  Thus, you will find this an excellent service to learn early on in your Internet of Things build out. AWS IoT Events IoT devices are well suited to gather and share a lot of discrete data.  Thus, they are perfect for doing things like monitoring automated systems and detecting errors.  However, the work required to handle and analyze that data can be costly.  This service gives you a framework to track your devices for events such as these.  There are use cases for this from self-healing systems to early alert solutions across a broad number of industries. AWS IoT SiteWise We keep looking at the sheer size of data that we can get from the Internet of Things devices.  The SiteWise service provides a way to gather and report on all of that in a way that can help.  It even has some dashboard functionality to help you track what is working and where. AWS IoT Things Graph All of these devices and services can cause your head to explode when thinking about the network.  The graph service provides a tool to easily connect services and devices without a complicated bunch of coding. AWS Partner Device Catalog It is hard to argue a catalog as an actual service.  However, this may be precisely what you need if you are trying to build out an IoT solution or presence.  This gives you a curated list of options so you can trust they are real and not just some smoke-and-mirrors device someone is using to test the waters.
undefined
Jan 4, 2019 • 23min

Hosting Options - Free and Low Cost Solutions

[podcast src="https://html5-player.libsyn.com/embed/episode/id/8033606/height/360/theme/standard/thumbnail/yes/preload/no/direction/forward/" height="360" width="100%" placement="top" theme="standard"]We turn to hosting in this episode of our search for free and low-cost tools.  To be honest, free is not a long-term option with these tools although you can find a few that will start free.  These are popular, provide excellent support, and a solid list to begin with if you need to build out a hosting solution. Bluehost URL: https://www.bluehost.com/ This is a solution that is best suited to WordPress hosting.  It is easy to use and inexpensive, so it makes a perfect solution for a small business or consultancy that wants to provide an occasional blog article.  The plugins and customizations are a little limited.  However, these should be more than your typical customer will need. GoDaddy URL: https://www.godaddy.com/ When you ask people about hosting providers out there, it is likely that they will mention GoDaddy.  This option is well-known, has incredible entry level costs, and offers some additional features to launch a business (SEO, Web Design, email, etc.).  I am not a fan of heavy customization of a GoDaddy site, but they are suitable for hosting your domains, and the pricing makes them a cost-effective choice for testing out a series of names. Linode URL: https://www.linode.com/ When you are looking for more control and a full cloud solution then Linode is worth a look.  They do not have a lot of do-it-yourself tools.  However, they make it easy to price and launch a virtual machine with a wide range of options available.  There are also some additional services like backups and dynamic storage that you can add on to build your infrastructure in the cloud. AWS/Azure URL: https://aws.amazon.com/ URL: https://azure.microsoft.com/en-us/ We have spoken at length on the AWS services, but Azure is a solid competitor.  When you are comfortable with the technical skills required to build out your infrastructure, then these solutions can be a bargain.  They also make it easy to scale up (or down) your resources. Digital Ocean URL: https://www.digitalocean.com/ This is an interim cloud provider like Linode.  They have the advantage of using droplets to get you going quickly for a broad range of server needs. 1 and 1 URL: https://www.ionos.com/ When you are looking for cheap and simple then look no further.  1 and 1 has been around for a long time and has filled the niche of a low-cost solution for hosting a simple (HTML/PHP) site that is focused on marketing. HostGator URL: https://www.hostgator.com/ Arguably as popular and solid a solution as GoDaddy, HostGator is a solid web hosting provider of the traditional sense.  They provide standard tools and simple pricing options that are a good choice for most small and start-up businesses.
undefined
Jan 2, 2019 • 16min

Software Design - The Interpreter Pattern

In this episode, we look at a behavioral pattern that is key for solving certain types of problems.  These happen to be grammar and translation applications.  Thus, the interpreter pattern gives us a way to do precisely that.  We use this to interpret text into a set of commands. The Interpreter Pattern Defined As always, we will start with the "Gang of Four" intent to set the stage for our discussion. "Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language." This makes complete sense if you understand language grammars.  For the rest of us, let's break this down a little bit through an example.  We will assume you are reading a text file where each line is a value and either add, update, or delete.  When you process it, you can break it down into a value and a command.  The most simple interpreter would be able to determine which is which for a given line then translate into something the application understands.  This may be a conversion to output or could be a method call and fill out parameters. Applying The Pattern There are a few different ways to implement this pattern, but they tend to boil down to a set of classes that form the grammar.  The classes may all implement a specific interface (for a translate or calculate method).  However, that is not required, just helpful.  The trick in this pattern is to make sure that the grammar classes are interchangeable enough to support the language.  Think about mathematical expressions as an example.  The interpreter must be able to support literals and operators in any order as well as nested.  The result will always be a tree (ouch flashbacks of diagramming sentences comes to mind). Java, PHP, C#, etc. The interpreter pattern is supported in all languages as a class and some use of an interface.  However, some environments provide a dynamic assessment of values and code often referred to as reflection.  When a language supports this feature, then it can allow for far more complex grammars.  On the other hand, those can become difficult to write and debug.  Although this is not one of the more common patterns, it is one that can be critical to a solution, and proper use of this can help advance your career.
undefined
Dec 31, 2018 • 21min

Amazon AWS Analytics Services

The AWS analytics group of services has a lot of members.  These are some of the newer offerings from Amazon.  However, they are very effective to use in professional development and learning more about your enterprise environment. Amazon Athena Query Data in S3 using SQL.  Store your data in S3.  Then you can define your schema on top of the data set and run queries.  The UI is not very awesome currently, but it is a way to avoid building out a data warehouse for your needs.  This serverless query service can get you analytical data back quickly.  Better yet, it comes without all of the typical setup. Amazon CloudSearch Managed Search Service.  This service provides a way for you to upload data or documents, index them, and provide a search system for that data via HTTP requests.  This is flexible and allows you to custom define the indexes.  Thus, you can upload almost any document format or data style and utilize the service to handle search requests. Amazon EMR Hosted Hadoop Framework.  This service allows you to spin up a Spark or Hadoop system on top of your S3 data lake quickly.  It covers the headaches of getting those environments built.  Also, it is a cost-effective solution to your data science needs that can scale to avoid over-buying your resources. Amazon Elasticsearch Service Run and Scale Elasticsearch Clusters.  ES is a popular open-source search and analytics engine.  There are a broad number of uses for this including log file research, stream data analysis, application monitoring, and more.  This is quick and easy to set up so you can dive right into the analysis part of your work.  The fully managed service has an API and CLI, as you would expect so that you can automate it to your needs. Amazon Kinesis Work with Real-time Streaming Data.  This provides a way to analyze video streams in real time and was covered with the media group.  We included it in the media episode.  Therefore,  we will not spend time on it here. Amazon Managed Streaming for Kafka Fully Managed Apache Kafka Service.  I must admit that this is not an area where I am solid so it, is best to use Amazon's own words. "Amazon Managed Streaming for Kafka (Amazon MSK) is a fully managed service that makes it easy for you to build and run applications that use Apache Kafka to process streaming data. Amazon MSK provides the control-plane operations and lets you use Apache Kafka data-plane operations, such as those for producing and consuming data. It runs open-source versions of Apache Kafka. This means existing applications, tooling, and plugins from partners and the Apache Kafka community are supported without requiring changes to application code. This release of Amazon MSK supports Apache Kafka version 1.1.1." Amazon Redshift This service provides fast, simple, and cost-effective data warehousing.  If you wonder whether there is a fully managed data warehouse solution out there then here is your answer.  Redshift is fully managed, scales up to petabytes, and incorporates the security and administration tools you come to expect from AWS.  There are some excellent how-to and tutorials to help you get started and maybe even understand warehouses more in general. Amazon Quicksight This is a fast business analytics service.  Also known as a fully managed BI solution.  It is what you would expect from a BI solution.  Therefore, it requires setup and forethought to position your data.  Although this is a robust service, expect to spend a few hours (at least) to get going. AWS Data Pipeline Next is an orchestration service for periodic, data-driven workflows.  Yes, that is their words, not mine.  The AWS Data Pipeline is a web service that helps you reliably move data between different AWS compute and storage services.  The scope includes on-premises data sources as well.  Therefore, you can schedule moving all of your enterprise data to the proper destinations.  All of this includes being able to translate and manipulate it at scale.  Once you get to the point of having a lot of data in AWS services such as Amazon S3, Amazon RDS, Amazon DynamoDB, and Amazon EMR, this becomes critical.  Thus, while this is not of much use early on, it is essential to running an enterprise. AWS Glue This service helps you prepare and load data.  AWS Glue is a fully managed ETL (extract, transform, and load) solution.  Therefore, this makes it easy to prepare and load your data no matter the end goal.  You can create and run an ETL job with a few clicks in the AWS Management Console.  I have not used it beyond simple tests, but this may be your best solution to ETL needs.  When you store your data on AWS then why not try out this solution?  It catalogs the data and makes it easy to dive right into that ETL process. AWS Lake Formation This is advertised as how to build a secure data lake in days.  I find it hard to argue against that claim.  We have already seen how well AWS handles storing and cataloging (even indexing) data.  Therefore, it makes sense that their data lake tool would extend from those solutions.  With data lakes being a sort of new concept you might want to see the latest news and how-tos at this link. https://aws.amazon.com/big-data/datalakes-and-analytics/what-is-a-data-lake/
undefined
Dec 28, 2018 • 20min

Hot Technology and Advances for 2019

Every year it is common to see articles about the next hot technology that will be part of our lives in the year ahead.  We are not going to skip this opportunity to provide our thoughts on the matter as well.  These items may seem obvious, but that does not mean you can treat them lightly.  Here are some areas you should advance your knowledge to stay relevant in 2019. Azure and Office 365 Microsoft has been pouring features and applications into their Office 365 and now Azure offerings.  Every week seems to bring new things to learn about your subscription and what it has for you.  This includes hot areas like security and managing your cloud (structure and users).  There are no indications that Microsoft plans to slow down in 2019 so expect to keep them on your hot technology radar. Amazon AWS The other side of the Microsoft cloud solution is Amazon's AWS.  If you have followed episodes of season four of the podcast, then you are well aware of how much they provide.  As with Azure, AWS is not showing any signs of slowing down.  It feels like they may even be increasing the velocity of producing new services and enhancing the existing ones. Security - Single Sign-On The growth and availability of data have outpaced our ability to secure it.  In 2018 a lot of progress was made in this area.  In 2019 it looks like we will start to see the next step of being able to secure our data without demanding that we have dozens of elaborate and unrelated passwords in our head.  Biotech like fingerprint and facial recognition will continue to advance.  However, it looks like a single sign-on for the masses is on the horizon as well. Virtual Machines and Containers If you are not up-to-date with the latest technology and options for VMs and containers, then do not expect it to get simpler.  The speed of networks and comfort enterprises with the Cloud are increasing.  These combine to make it more likely that this area of technology will grow in 2019. Blockchain Virtual currencies are not a solid technology yet.  There is still a lot to be determined before we can list them as stable or a fad.  The underlying blockchain technology is a different case.  There are a lot of ways to use blockchain outside of those currencies that are looking like safe bets in the years ahead.  Expect this to be a hot technology for 2019 and several years to come.  
undefined
Dec 26, 2018 • 17min

A Look Back on What We Learned in 2018

One of our annual topics is a look back at the year we have completed.  In this episode, we cover precisely that and look at what we learned in 2018.  Ok, maybe this is what we should have learned.  In any case, this holiday special may give you some items to catch up on during your time off. Java Is Still Growing Microsoft has been pushing forward on C# and .NET languages.  Java is now joining that rapid change approach.  After some early rapid development (pre version 6) it stabilized for a few years.  However, it is now getting on a track where a lot of changes have come in the last year and are planned in the upcoming months and years. The JavaScript Libraries Competition May Have a Winner When you look at what developers use and what they prefer to use, you will often see the wave of the future.  The React Javascript library appears to have hit that sweet spot.  A lot of developers are using it, and they seem to like it.  This means that you should add it to your list of skills if you want to stay relevant in that sort of development.   The battle is not over, but the best money is on React at this time. IoT Is Here To Stay Everything from speakers to coffee makers to electric razors is connecting to the Internet.  Your ability to live "off the grid" is being hampered more every day, and it may be best to just embrace this next wave of technology.  Yes, we give up some freedoms and anonymity, but the life of tomorrow seems to be here today. BlockChain Is Sticking Around We learned in the last year that virtual currency is still going to require some work.  The underlying blockchain technology is not.  There has been a lot of stabilization in this area, and it is maturing quickly.  The idea of security and verifiable transaction history is valuable to many lines of business.  We have seen the maturity of this technology in 2018 and should expect more to come. Security is a Thing The news of security breaches in 2018 cannot have any of us feeling safe.  We have been punched in the face with the idea that security of our data is essential.  I do not know if this will cure the heavy use of simple passwords like "password," but it cannot hurt.  Security in 2018 became a concern on the radar of far more people including a lot that are not in the technology business. 2018 is almost over and was a year full of advances.  I hope this quick look back helps set the table for what 2019 is most likely to bring.
undefined
Dec 24, 2018 • 17min

Making The Most of Your Holiday or Vacation Downtime

In this special episode before the Holidays, we look at some ways to make the most of your downtime.  We have focused on how to squeeze more out of every minute.  However, there are also times we need to rest and relax.  When we use our downtime correctly, there will be a benefit in productivity, health, and even drive when our work schedule resumes. Downtime Rest Sleep and rest are often at the top of our list during these periods.  We do not tend to sleep very much or often.  Therefore, one of the most significant benefits of some downtime is the ability to recharge physically through proper sleep and rest.  The goal should be to use these vacation periods to sleep when we are tired.  Take a nap, sleep in, do the things related to rest that you usually skip. Change Of Focus Our focus can be all-consuming during our typical work weeks.  This is excellent for our productivity and pursuits.  On the other hand, it can make us a one-trick pony.  We can also end up in a mental rut if we do not occasionally switch gears.  A period of extended downtime (days instead of hours) is a perfect excuse to spend time on something new or at least different.  This may be some time learning to play an instrument, working on a jigsaw puzzle, catching up on recreational reading, or other "fun" things to do.  There are countless examples of stories where someone loses their ability to have fun, and their life takes a downturn.  Utilize your downtime to help yourself by avoiding such a situation. Change of Scenery Outside of rest, getting yourself somewhere that is different from your usual grind is the best thing to do during your downtime.  We all know that prison is punishment because someone is forced to live in a confined space day in and day out.  This might be a good time to consider whether you have managed to imprison yourself with your job or work.  Find somewhere else to be during this time off.  It will help you in many ways and may allow you to find that you enjoy being away from your desk.

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app