Develpreneur: Become a Better Developer and Entrepreneur

Rob Broadhead
undefined
Nov 26, 2018 • 22min

AWS Media Services

The AWS media services are among their more recent offerings.  Nevertheless, these are applications you may find critical to your cloud strategy.  These may not be very familiar to you if media processing is not your thing.  On the other hand, they are what you hope for if it is your focus.   Amazon Elastic Transcoder: Easy-to-use Scalable Media Transcoding The first service we look at is the transcoder.  It has a simple function of translating video media from one format to another.  Fortunately, it has a free tier of twenty minutes of transcoding each month.  Thus, you can "play around" with it and avoid fees.  Once you get beyond the free threshold, it is priced based on the resolution and length of the video.  There will also be storage costs on S3 as that is used for the input and output.  It is quick and easy to use so may be the perfect solution for a one-off transcoding need. Amazon Kinesis Video Streams: Process and Analyze Video Streams This service is aimed at automatic storage, translation, analysis, cataloging, etc. of video streams.  It is priced based on GB streamed and is perfect for services like Rekognition and other stream analysis tools.  It may seem a bit much currently.  However, this sort of functionality is becoming more popular in use every day as technology advances to make science fiction IT a reality. AWS Elemental MediaConvert: Convert File-based Video Content The MediaConvert service provides media conversion and processing for video on demand applications.  It takes a source video and then transcodes, encrypts, and converts it to the desired formats.  As with many of the other media services it uses S3 for its storage.  On top of that is pricing based on the FPS level of the output. AWS Elemental MediaLive: Convert Live Video Content This service provides broadcast grade live streaming content.  If you want to look as good as any organization streaming video, then take a look at this tool.  The pricing is based on resolution and per hour of streaming so it is best suited for things like training and conference streams. AWS Elemental MediaPackage: Video Origination and Packaging Use this service to prepare and protect video for delivery to devices or players.  It is priced by the GB ingested and is perfect for pay to view solutions and special offerings for your customers.  You might even look at this as an alternative to a UDemy or similar platform to do it all on your own. AWS Elemental MediaStore: Media Storage and Simple HTTP Origin This service is tailored to store and deliver a video for live streaming.  The pricing is based on GB optimized, and storage costs apply as well.  When you want to provide a video without allowing a download of the entire file and otherwise protect your IP, this is the solution you are looking for. AWS Elemental MediaTailor: Video Personalization and Monetization We all like to make money.  In the video world, the way to make money is often inserting advertising.  This service provides a way to insert personalized ad videos into your streams.  It is priced per one thousand inserts.  It also offers some tools to help you in finding advertisers as well as push the ads.  When you want to monetize your streaming videos, then this service is the one you want to look at.
undefined
Nov 23, 2018 • 20min

Technology Toys for the Holidays

It is a great time for us to talk about technology toys you can give or put on your list.  As we wrap up our Holiday week episodes we have some fun and provide a few suggestions. Alternatives to Amazon Alexa devices: https://beebom.com/amazon-echo-alternatives-2018/ USB Toys: https://www.babble.com/tech/20-usb-desk-toys-to-keep-you-and-your-co-workers-entertained/ Popular USB Items: https://www.amazon.com/Best-Sellers-Computers-Accessories-USB-Gadgets/zgbs/pc/11548961011 Nintendo Switch: https://www.nintendo.com/switch/
undefined
Nov 21, 2018 • 16min

Technology-based Reasons to be Thankful

We continue the Holiday week of episodes by dishing out some of what we are thankful for.  It is beneficial for all of us to occasionally sit back and revel in our blessings.  This episode shares our list of reasons for thanks and food for thought as you enjoy this week.
undefined
Nov 19, 2018 • 17min

Affiliate Marketing Opportunities During the Holidays

Affiliate marketing is a  popular form of passive income.  You just put out content and hope that visitors take advantage of your partners.  This approach can be improved by offering the latest deals from your affiliates to your community.  The passive part of income can be less so during the Holidays as retailers turn to weekly and even daily deals or coupons.  The good news is that this time of year should provide you a boost over your typical affiliate revenues. Build On Your Affiliate Marketing Relationships There are many ways to work with affiliates.  For example, make sure your advertisements and special offers are up to date.  This path may require you to build some automation into your advertising process.  However, the extra work and automation can pay off big. Here are some tips and documentation for popular sites: https://developer.cj.com/webServices https://www.npmjs.com/package/rakuten-api https://blog.peerfly.com/2010/07/12/peerfly-xmlrss-feeds/ https://supportpro.flexoffers.com/web-services-api-documentation/
undefined
Nov 16, 2018 • 24min

Cloud Storage Tools - Free and Low-Cost

Cloud storage is one of the most game-changing products in recent decades.  We have seen the cost of storage drop on a regular basis, and these tools are amazingly affordable.  These applications combine with high-speed connections to make it almost invisible to store data on the cloud instead of your device. Many Cloud Storage Options The product landscape for these tools is full of players.  However, a few have distinguished themselves from the pack.  Nevertheless, we have found a more extensive list of examples in case you want to learn more or find other options.  You can see those options here: https://beebom.com/dropbox-altenatives-cloud-storage-services. The Features At first glance, you might not care what differentiates these products outside of price.  Space is space, right?  Well, not exactly.  I want to make it clear that all of these options have browser-based solutions and generally available clients.  Thus, these applications are all available across desktop operating systems and mobile devices as well.  The functionality varies a little among the client types, but any of these are candidates no matter your primary OS. Security and speed are going to be the two most important ways to score these options.  Then close behind those is the collaboration feature.  The good news is that these features are still affordable and the providers make them an excellent deal.  The client applications, in particular, are being updated on a regular basis so your mileage may vary in speed comparisons.  The security in many cases is at a higher level than you likely have on your own.  Likewise, some of these may be better than keeping your files on a local network as far as security is concerned. Trials are available, and many have free forever storage options at 5GB or more.  Thus, they are more than worth a look and may help you never have to use a "sneaker net" again. Dropbox https://www.dropbox.com Google Drive https://www.google.co.in/drive/ OneDrive https://onedrive.live.com/about/en-gb/ Box https://www.box.com/ Tresorit https://tresorit.com/ Sync.com https://www.sync.com/ pCloud https://www.pcloud.com/ Mega https://mega.nz/  
undefined
Nov 14, 2018 • 17min

Software Design - The Facade Pattern

In this episode, we look at the facade pattern.  This is one we have likely run into when we have dealt with complex systems.  In general, a facade pattern is an interface that summarizes a group of interfaces or objects in a functional group.  Without further ado, let's take a look at this simplifying pattern. The Facade Pattern Defined As always, we will start with the "Gang of Four" intent to set the stage for our discussion. "Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use." That last bit of the intent is the most import.  They saved the best for last.  The goal of the decorator pattern is to provide an interface that makes a complex system easier to use.  It provides us with another layer of abstraction when building complex systems.  There are a lot of API examples that fall into this category.  There are the core API calls and then there are underlying (often undocumented) interfaces and classes that can be called directly in some cases. Applying The Pattern A facade is much like a roadmap or a menu for other functions.  It is important to note that this is a one-way street.  The facade can call its group classes/objects but they do not know if it even exists.  It may also be thought of as a controller in a way.  This pattern knows how the sub-objects should be called or interact.  Thus, it can be used to reduce the steps a developer calls or that need to be exposed to the user code. Therefore, large systems will be the ones where a facade is most useful.  A case where you only have a few objects will not be served by this pattern and will just be another level of abstraction without benefit.  A good rule-of-thumb is what the facade methods do.  If it is basically a one-to-one pass through then the facade serves no purpose.  Typically, a facade will hide multiple calls per method on the top-level class or interface. Java, PHP, C#, etc. Finally, a facade is almost always a class.  An interface will not be able to roll-up functionality as is required of this pattern.  If you have a language that allows implementation within an interface then you could go that route for a facade.  However, that approach implies you are not building a proper facade.  Each method on a facade should translate to executing steps across multiple other objects.
undefined
Nov 12, 2018 • 23min

AWS Management Tools

The AWS Management Tools are an excellent way to set up, configure, and monitor a cloud infrastructure.  Many of these are free or have low fees that make them a no-brainer when considering whether to utilize them.  There are several services in this group so let's take each in turn. CloudWatch Monitor your Amazon AWS resources with this service.  You can select metrics and alarms related to variances in those values.  The free tier allows for a few alerts and dashboards.  This is a valuable resource to keep up with how your production services are doing.  You can even look for trends that imply a failure to make changes before its too late. CloudTrail The prior service is for monitoring your resources.  CloudTrail is very similar but for tracking your users.  You can keep up with valid users and also look for potential hackers by analyzing the data in this service.  It tracks activities through API calls, the User Interface, and any other ways to access the systems.  Think of it as an access log file for all of your AWS services in a single location. Service Catalog When you want to build a filter or layer on top of AWS services for your organization, this is the tool you are looking for.  It allows you to provide a catalog for your users of specific AWS services they can access and pre-configured resources as well.  This is a perfect solution for maintaining compliance while still allowing for quick access and deployment of AWS resources. Personal Health Dashboard The number of AWS services can be overwhelming.  This is a bit of an issue when you want to see how the current resource families are doing (Up, Down, or Other) and focus on those that matter to you.  The PHD provides precisely that information.  You are shown a dashboard of how the services that impact your subscription are doing and any scheduled changes.  Instead of going to a generic dashboard to see if your services are having any issues at the Amazon level, use this to get right to what matters to you. Auto Scaling This service allows you to adjust up and down the capacity of your AWS services on a dynamic basis.  That means this is one of the most valuable resources for any cloud solution.  It is here that you configure the rules for when to make adjustments to how you use resources. Config All of these Amazon services require configuration.  That administrative work can quickly become a headache.  Enter, Amazon Config.  This provides you with a way to track all of those configuration steps and create an inventory of them.  If change management is something important to you (it should be) then Amazon Config is going to reduce your headaches. Systems Manager Like all of these other management tools, Systems Manager helps you run your AWS resources.  This is quite possibly the best way to view your entire infrastructure in one location.  It includes a centralized approach to store configuration, secrets and to separate them from code.  You can group resources, set up automation, and make changes directly to them all from this tool. Cloud Formation This service provides a common language to describe and provision your resources.  Although tools like Config and Systems Manager help you manage your systems, this takes it to the next level.  You can use Cloud Formation to model, implement, and even version control your entire infrastructure. OpsWorks Of course, Amazon is up to speed with the tools the cool kids use.  This coverage includes Chef and Puppet for automated configuration and management.  That is where OpsWorks comes in.  It provides managed instances for either of these or the option of OpsWorks Stacks. Trusted Advisor The AWS family of services require some know-how to do it right.  The Trusted Advisor service provides help with that.  IT is a resource for reducing cost, improving security, and increasing performance.
undefined
Nov 9, 2018 • 26min

Integrated Development Environment Tools (IDE) - Free and Low Cost

One of the most significant choices a developer makes is the integrated development environment (IDE) they use.  Nevertheless, there are new options that become available each year and niche solutions that may improve productivity.  It never hurts to review what is out there and avoid getting in a rut. Eclipse http://www.eclipse.org/ The odds are that this will look familiar, even if you have not used it.  Eclipse is the basis for a large number of IDE's due to its flexibility and expandability.  Few (if any) languages are not supported by at least one plugin on Eclipse.  This ability to expand it from the core along with a healthy set of standard tools like version control, syntax highlighting, project-based search, integrated debugging, and more combine to make a solid IDE.  It is free in many forms and more than worth the time to see if it may be the best solution for your needs. Visual Studio https://visualstudio.microsoft.com/downloads/ This should be your default IDE if you live on Windows and develop for those systems.  Although Visual Studio has grown to become a solid challenger to Eclipse in many areas, it still does not have the breadth of language support.  That being said, it is a better solution (IMHO) for any C# or other .NET related development.  It provides some tools and debugging features that make it perfect for a solo developer of teams of any size. Android Studio https://developer.android.com/studio/ This IDE is focused on, you guessed it, developing for Android devices.  It is Eclipse-based and the best alternative (IMHO) for building applications on those target platforms.  It does allow for plugins and can be used for more as well. Xcode https://developer.apple.com/xcode/ This application is effectively the default IDE for building iOS applications on mobile or Mac desktops.  It is not as extensible as the other IDEs on this list.  However, it is packed with features and makes developing native Apple applications easier than any other option out there.  XCode has at times been a little behind the others in modern features but has grown in the last few years to include everything you need for your mobile or desktop development in the Apple world. Cloud9 https://aws.amazon.com/cloud9/ Amazon bought this IDE/Service after realizing it was a perfect fit for their Cloud services.  Cloud9 is an IDE that includes connections to a virtual machine for your development and deployment.  That consists of a browser-based IDE so you can remotely do all of your code writing.  Better yet, it provides ways to quickly create a development environment for a substantial number of languages and environments. Aptana Studio http://www.aptana.com/ Although this is yet another Eclipse-based tool, it includes a cross-platform mobile development framework that is one of the best.  The primary coding is javascript-based and makes it easy to create applications targeted for Android, Apple, or other platforms.  It is also a robust IDE without additional extensions for web application development if you primarily use HTML, JavaScript, CSS, and maybe PHP. IntelliJ Idea (JetBrains) https://www.jetbrains.com/ The JetBrains family of IDEs cover a surprising number of environments.  Their tools are all high quality, easy to love, and one of (if not THE) the best solutions for their niche products.  For example, many Java developers prefer IntelliJ for those coding needs over all other Java IDEs.  This is the only solution on this list that often requires a paid license.  However, I think it is money well spent if you try one of their applications and like it. NetBeans https://netbeans.org/ This tool has been moved to an Apache project and is a little behind the other options we have covered.  However, they have a new version that is more what one expects in a modern tool.  It is not quite as popular as some of the other options.  Thus, the user community has not contributed to the level you see in an Eclipse or Visual Studio. Codenvy https://codenvy.com/ This solution is similar to Cloud9 except it uses Docker containers for your development environment.  That means you can quickly convert development to production deployments as is typical for a Docker solution.  It also uses Eclipse CHE which is a highly impressive browser-based IDE.  If you are looking for a remote development solution, then you must check this one out.
undefined
Nov 7, 2018 • 19min

Software Design - The Decorator Pattern

The Decorator Pattern is not only a common one, but it is also one of the best ways to embrace object-oriented design.  This approach is a form of "helper," and the idea of a decoration fits it perfectly.  It is an addition to a class without being a part of the class.  Let's look at this useful pattern. The Decorator Pattern Defined As always, we will start with the "Gang of Four" intent to set the stage for our discussion. "Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality." As I mentioned, the idea of a decorator as a decoration or accessory for a class is an excellent analogy. The goal of a decorator is to add functionality to a class without impacting the hierarchy.  Thus, you can add the functionality to the parent without forcing child classes to take that on as well.  This pattern works for optional features as well as situations where a hierarchy is not well-suited for linear growth of complexity.  Graphical objects make a good example.  You can add a border or not, shadowing or not, an audio component or not, and similar decorations to an object. Applying The Pattern The critical piece of a decorator is to create a hook for it in the hierarchy.  Therefore, the root (or at least the parent class) needs to provide a way to utilize a decorator.  In interface is the best way to meet this requirement.  Thus, you have an interface that decorators implement, a way to attach decorators to an object, and then a call structure that looks for and executes decorators. As an example, let's think of a person object that we want to use to print out personal data.  The core class has a first name and last name.  We then have a collection of attributes that implement the Attribute interface of "printOut."  We can add an Address decorator that implements that interface, then a Phone, and an Email, etc.  This is a simple but powerful example when you see that your core class can essentially be extended at each level.  I can create a child class of Person called Employee and utilize those decorators or not.  Adding an address to a Person does not force me to carry that in the child objects. Java, PHP, C#, etc. Your implementation language will not change how to address this pattern.  It is as simple as a class, a property that expects a specific interface, and then specify the interface.  Thus, this is not only a useful pattern it can also be very lightweight.
undefined
Nov 5, 2018 • 25min

AWS Compliance, Identity and Security Services (Part 2)

This second part of AWS compliance, identity, and security-related services should feel familiar.  These are solutions that nearly everyone needs, and has used, at some point.  Fortunately, these have free tiers and tutorials to help any user get started with them and building them into your environment in the cloud. Cloud Directory This is an all-important LDAP related service.  The power that the Amazon service brings to this universal need is the ability to integrate and go across multiple directories instead of a single one at a time.  There is a free tier along with some excellent examples to help you get started. Guard Duty This is an attack analytics tool that does not require an installation on your servers.  That alone should be enough to pique your interest if you have ever had to use these applications before.  Although powerful, these applications tend to be a bit of a chore to install and configure.  Guard Duty takes that annoying setup out of the equation and removes all excuses for being proactive with your security Certificate Manager Google has made sure we all care about security certificates.  All web applications that are not secured with a certificate are dinged in search scoring.  Therefore, Amazon provides us with a tool for management of those certificates. Firewall Manager All of the services and servers we are building in Amazon's cloud need to be secured by a firewall.  This alone can mean some administrative headaches.  However, Amazon is nice enough to provide us with this service to make that a non-issue.  The Firewall manager tool is easy to use and applies throughout your system.  Thus, you have one central location to manage all of those security decisions. Secret Manager, HSM, and Key Management Service These services are not much more than the names imply.  They allow you to manage your keys and secrets (authentication credentials) in a single location and link those to the resources you use as they are needed.  This is highly important when you consider the dynamic nature of the resources we use in the cloud and tracking authentication across those. Cognito Your experience includes sites where the authentication is done through Google or Facebook.  This service provides you with a way to easily allow users to register in your directory and manage them.  Note, this is an application level registration and authentication service and not a way for users to be added to your Amazon organization. Inspector When you come to the time of needing to get your site audited for security this service is where you should start.  The Inspector service does an assessment based on best practices and security concerns.  Then it provides you with a report about your application.  Therefore, this service provides you with a list of what is correct and what is not compliant.  Use these results to do the best on your upcoming security audit.  

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