Develpreneur: Become a Better Developer and Entrepreneur

Rob Broadhead
undefined
Nov 2, 2018 • 21min

MS Office Alternatives - Free and Low Cost

In this episode, we will look at Microsoft Office alternatives.  The suite of applications can run up to over one thousand dollars which are not in the budget of many of us.  However, there is almost no need to ever pay that amount for your office suite needs and here are some excellent alternatives. Office Online https://www.office.com/ The full products can be purchased via a monthly subscription instead of that upfront cost.  This approach is not only less drain on your budget; it includes so many features that this is by far the best approach to using the MS suite.  This subscription contains online versions of the applications.  However, I do not recommend using those other than for reading documents.  The installed versions of the apps are faster and more reliable. Google Docs https://www.google.com/docs/about/ Of course, Google wants to get into this game as well.  What business does not need to use the applications in your typical Office suite.  This solution is focused on a cloud solution and provides excellent collaboration tools.  It does not have the finishing features and extensive fonts or layouts that Word and Pages have, but it is cheap and easy to use. Office Libre https://www.libreoffice.org This is currently the best non-commercial solution for office alternatives.  It has an intuitive interface, is not overly slow and large in the file space used, and includes robust tools for the typical usages of spreadsheets, word processing, and presentations. WPS Office https://www.wps.com/ This option is the current incarnation of the old Word Perfect application.  It has modernized along the way and has paid or free versions.  It is a nice tool, but dwindling in popularity so compatibility with other users may be an issue for you. Apple iWork https://www.apple.com/iwork/ This solution is available online at iCloud but is one I only recommend for Mac users with the included desktop applications.  I am a bit biased as a Mac user towards this option.  Nevertheless, I have to say I find the publishing of documents goes better with pages and keynote than Word and PowerPoint.  If you are doing nicely formatted documents, but do not need a professional quality production, then either option will do.  The iWork suite is free with any Mac and is a pleasurable experience as most things Mac are.  The downside is that compatibility with other office suites is one of the most significant weaknesses of this option.  Thus, you may need to use another solution that plays well with others depending on your situation. Calligra Office https://www.calligra.org This open source solution is aimed at Linux desktops.  The compatibility with other suites is not where I would like it to be.  However, it is open source and an elegant solution for Linux users.  This is one of those tools you should consider if you are considering a Linux Desktop environment. Open Office https://www.openoffice.org/ Open Office has been moved into the Apache project.  It is a reliable alternative with excellent compatibility across other formats and an intuitive interface.  This was my suite of choice for years until Libre advanced in speed and compatibility.  It is still one of the best solutions available and is widely used including on some Linux environments. Dropbox paper https://www.calligra.org This is a new contender in the collaboration space.  It is an alternative to Google Docs and offers the same merging of word processing, presentations, and spreadsheets.  Thus, you can even place videos and audio as well as images into your document.  It is more like a web page than traditional print or document creation.  Nevertheless, although it has an impressive set of features, it is still new enough that scalability and reliability may be a concern.
undefined
Oct 31, 2018 • 18min

Software Design - The Composite Pattern

The Composite Pattern is one that is not taken advantage of as often as it might outside of frameworks.  This is an approach to design that allows you to treat a family of objects the same.  It is a quintessential reason for and use of an interface.  The flexibility is critical to being able to handle groups of different objects the same way any individual one would be treated. The Composite Pattern Defined As always, we will start with the "Gang of Four" intent to set the stage for our discussion. "Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly." I think it may be most comfortable to focus on the second sentence in defining this pattern.  The tree structure feels a bit like an implementation detail rather than an abstract pattern.  The tree structure reference is often (if not always) seen in utilizing this pattern.  It usually breaks down to a concept of a container that holds other containers or primitives.  Graphics are a perfect example.  You have pixels, but then those can be combined into shapes or other container structures. Applying The Pattern The key to this pattern is an interface or top-level class.  It is more flexible to use an interface for this implementation, but you may find cases where a top-level class reduces code and allows for re-use.  The objects that implement the interface will either perform the action on themselves or have a way to execute the function on a collection of objects. For example, a square can be seen as a collection of four lines.  When you "draw" the square it will tell each of the four lines to draw themselves.  Each line is likely a collection of points.  Therefore, each line will instruct its points to draw themselves.  A point ends up doing the real work; everything else is a delegation.  This simple example can be extended to consider a square that also draws its center point.  That would be a collection of lines and a point.  Although it seems simple, the ability to mix and match primitives and collections has a broad range of uses. Java, PHP, C#, etc. All modern languages support an interface and thus look very similar in implementation.  You create an interface that contains the methods you want to be shared and then create the classes that implement it.  The implementation of a method in a class can either be handled within the class or passed through to objects it contains or controls.  We will see some other patterns that are similar in that they make it easy to apply functions across a heterogeneous collection.
undefined
Oct 29, 2018 • 25min

AWS Security Services (Part 1)

The compliance, identity, and security services of AWS covers a large number of offerings.  Therefore, we will review these in a multi-part series of episodes.  The power and infrastructure provided by choosing AWS for your cloud provider become apparent with these tools.  We have a lot to cover in this first part. Access and Identity Management This should be the first step in your use of the AWS services.  AIM is a framework or set of features to help you define users, permissions, roles, and manage them.  Nearly every function points back to AIM as the way to set up and configure access as well as security for that service.  If you do not have at least a fundamental understanding of AIM, then you should start there before looking further in the security-related services. Single Sign-On No one likes to log in to every application they launch.  Thus, single sign-on is practically a must for any organization that requires users to access multiple applications on a regular basis.  Unfortunately, that covers nearly every organization in the modern landscape.  Never fear, Amazon understands that need and has made single sign-on relatively easy to implement and embrace for all of your AWS solutions. Artifact The Artifact offering is a repository more than a service.  This is where you go to get the Amazon official documentation about their platform, SLAs, and recent audit reports.  Most small companies will not have need of these documents.  However, a security audit will require these to be available, and it never hurts to review them, so you know exactly how secure and reliable AWS is. Shield This is not the group out of Marvel comics.  The Shield service has a standard offering that is free and helps guard your systems from distributed denial of service attacks (DDOS).  The paid version includes analytics and reporting to help you assess and defend against attempted attacks.  This is an excellent service for those of us that always worry about how secure and protected our systems are. Macie The AI and machine learning features that Amazon has embraced are starting to result in a bevy of new services.  Macie is one such service.  This tool helps you search and classify your data to help avoid releasing personally identified information (PII) to external sources that should not access it.  If you are trying to assess how vital PII protection needs to be to your organization, then this is an excellent place to start that research. Directory Services The directory services offering is your path to moving Active Directory out to the cloud.  For better or worse, AD is a part of most organizations' access and permissions management.  Amazon recognizes this and provides this service to help you keep all that work as you move to the cloud. Organizations Another of the security services that is easily understood from its name alone, Organizations provides you with the ability to relate AWS accounts to each other.  This makes it easier to share permissions and also to roll up billing as needed.  It is free to use and worth a look as your AWS needs grow. Web Application Firewall (WAF) This is an application level service to protect your solutions with a firewall.  Rather than lock down access on a server basis, this works with the dynamic nature of cloud systems to allow you to secure offerings at the best level to manage.
undefined
Oct 26, 2018 • 26min

Social Site Management Tools - Free and Low-Cost

Social networking is all the rage.  Unfortunately, all of those platforms that allow us to share our story can be hard to keep up with.  When you want to reach out to customers on more than one platform then it is time to look at these social site management tools. Social Site Management Most of the tools we discuss start with the ability to post content to multiple platforms.  While that is highly useful (and time-saving), it is just the beginning.  The more advanced tools offer the ability to track responses, view analytics reports, and even manage all your social networking from one location. The List There is a broad range of solutions that fall into this family of applications.  Thus, it may help to see a list of products that may fall into this category that we did not cover in the podcast.  Here is a link to that list: Big list of possible tools: https://www.capterra.com/social-media-marketing-software/?utf8=%E2%9C%93&review_stars=4&users=&platform%5B1%5D=8&feature%5B1%5D=38280&commit=Filter+Results&sort_options= Buffer: buffer.com - This is a solid solution for anyone that wants to post to more than one or two sites on a regular basis.  The $10/month subscription should also be easy to manage in any budget and pays for itself in time saved. Planoly: https://www.planoly.com/ - This Instagram focused solution is well-suited for visual platforms.  It may not help a typical blogger, but if you use images and visual stories a lot then this tool will be a better fit than the other text focused tools.  There is a free plan or you can bump up starting as low as $7/month. Agora Pulse: Slightly expensive at $39/month: https://www.agorapulse.com/ but it does have a free trial and has some very useful features for marketing and analytics. Meet Edgar: https://meetedgar.com This runs $25/month and is an excellent solution for evergreen content.  It makes it easy to repost content and managing recurring touches. Sendible.com $24/month higher end buffer with more outputs and analytics Hoot Suite: https://hootsuite.com/ $29/month Co-schedule: This is more of a calendar and a full social content scheduling tool than just a way to post material.  It makes it easy to track mentions and manage relationships.  It starts at $40/month but also has a referral option that can reduce your costs to $0 Social Jukebox: https://www.socialjukebox.com/ $19.99 monthly
undefined
Oct 24, 2018 • 14min

Software Design - The Bridge Pattern

The Bridge Pattern is commonly configured but often due to templates and generators rather than understanding the true intent.  Since it is more of a design than code implementation, it can be easily missed.  Nevertheless, it is one we often have available and should probably take advantage of more often. The Bridge Pattern Defined As always, we will start with the "Gang of Four" intent to set the stage for our discussion. "Decouple an abstraction from its implementation so that the two can vary independently." This is simple and easy to see in code.  How often have you seen (for example) an interface and then a class that is the implementation of it?  I have worked on numerous Spring applications that follow this pattern where I may have a customerDAO and then a customerDAOImpl.  While this could be confused with a way to implement a C header file (*.h), that is not at all the goal.  If our design stays static, then we may not need to take advantage of the bridge (the relationship of the DAO and DAOimpl classes).  On the other hand, this makes extending that code much more manageable than pushing the two classes into one and using inheritance. Applying The Pattern The key to this pattern points to another common one we will cover another time, the MVC.  The application of a bridge allows us to address classes in pieces instead of having to jam a poor implementation into a design (or vice versa).  A good example is an interface and an implementation as noted above.  When we want to inherit from the interface we can extend it without having to drag along the implementation; we can also extend the class without having to adjust the interface.  Think of it as an extra layer of abstraction.  From a data perspective, this is similar to implementing a many-to-many relationship.  When we have multiple implementations to tie to some classes, then a bridge is needed. Java, PHP, C#, etc. This implementation is accomplished through an interface that is paired with a class that implements that interface.  The extension can be accomplished from either of those two classes.  That gives us the bridge.  This does not vary much from language to language as interfaces are almost ubiquitous.  As we have covered before, we typically can use the interface keyword to define an interface and class for the other side of the bridge.  If there is an option to place implementation within the interface (rather than leaving it completely abstract), then that must be avoided in a bridge.  Our goal is to push implementation as far down the relationship as possible.  Thus making it easier to plug and play the pieces along the way.
undefined
Oct 22, 2018 • 18min

AWS Customer Engagement Tools

You may think of Amazon web services as all technology-focused.  That is not the case.  There are plenty of offerings to help you run your business.  In this episode, we look at a perfect example of these business services via the AWS Customer Engagement Tools grouping.  There are only a few services in this group, but they are extremely powerful and useful. Simple Email Service This is different from WorkMail.  That service provides a server for managing your email accounts and directing email.  SES is a service that acts as a sender and receiver for your emails.  It is the purest form of handling email.  The CLI makes this a perfect tool for sending email to and from applications, maintaining mail lists, and using email as a primary notification method for your solution. Connect This is a pay as you go, cloud-based, call center.  It uses the same technology found in Alexa to direct your customers through a call flow and integrates with their data to help direct them as efficiently as possible.  This walks you through setting up a contact URL, a phone number they can call, then the queues (IVR) that you want them to experience.  This does provide 90 minutes of call time a month on the free tier to make it easy for you to do setup and testing. PinPoint This is high-powered customer notification tool.  You can send email, SMS, or push notifications to users of your applications and this service also provides detailed analytics to help you determine how effective they are.  Think of MailChimp with a greater ability to send and track notifications and engagement. I know, we suggest you look into services every week.  However, these can provide a surprising set of features for your business.  Even if you do not use these or currently need them, they are services that you should know are out there in the AWS space.  
undefined
Oct 19, 2018 • 24min

Software Ticketing Systems - Free and Low-Cost

Bug tracking and software ticketing systems are used in every shop I have ever worked with.  Some of these are decidedly low-tech solutions that are no more than a spreadsheet.  Some of these solutions can help you do far more than just track issues.  They can even help you raise the overall quality of your processes. Ticketing Systems Are Almost a Commodity Bug tracking and ticketing systems are ubiquitous.  A lot of companies have even built custom solutions for their internal use.  The problem space is that easy to address.  As mentioned before, even a spreadsheet can be sufficient for all of your bug tracking needs.  I know how easy it is to build these systems from personal experience.  Over the years, I have built about a dozen various solutions.  The ease of designing a solution makes the market for these tools one that is highly populated.  On the other hand, the applications are often reasonably priced for the functionality they provide. The List The list for this episode covers a couple of different technologies, open and closed source, and it has solutions that work with a variety of database engines.  These can easily provide a short list for your research or check out the larger list link to find a few other options. A good list of options: https://www.softwaretestinghelp.com/popular-bug-tracking-software/ Jira: The cloud solution is $10/month for up to 10 users and an unlimited number of projects.  You can also get the on-premise version for $10/year and get free upgrades throughout that year.  That version is also limited to 10 users.  This is offered by Atlassian and very popular as well as powerful. Mantis: A hosted version is available for $4.95/month (5 users but only one project) at mantishub.com.  There are other hosted solutions, or you can install it for free on-premise.  It is customizable but has a slightly aging interface. Bugzilla: This is open source and uses PHP.  It is highly popular with a good and active community. Redmine - This is a Ruby-based open source solution.  It is very similar to Bugzilla in look-and-feel.  There is a free hosting option at http://www.hostedredmine.com/. Zoho Bug Tracker: The free version limits you to 1 project and five users.  You can step up to $40/month to support up to 25 users.  It has a modern interface, good integrations, and professional features like notifications and SLA. GitHub Issues: This is simple, free, and perfect for project specific solution.  It is included with every Github project. Bug Genie: The free version allows one project and ten users.  You can move up to a paid solution for 10 pounds per month (this is limited to 5 projects and 25 users).
undefined
Oct 17, 2018 • 17min

Software Design - The Adapter Pattern

The Adapter Pattern is one of the easiest to understand and relate to the real world.  We see adapters used every day and they have become a critical factor in our daily success.  Almost every device we have utilizes an adapter in some way. The Adapter Pattern Defined As always, we will start with the "Gang of Four" definition to set the stage for our discussion. "Ensure a class only has one instance, and provide a global point of access to it." There are many names for an adapter pattern.  However, they all imply the same thing.  The implementation boils down to a translator between two parties.  A commonly experienced real-world example is a power or recharging adapter.  These accessories translate the power coming out of the wall to the input for the device.  The software approach is not fundamentally different. Applying The Pattern It is hard to imagine software without adapters.  In particular, the ideas of abstraction and implementation hiding would be impossible without an adapter.  That makes this pattern a solution to one of the most critical requirements of object-oriented applications and flexible software of any type. The implementation of this pattern is a simple structure.  There is an input/interface that talks to one object and it has an output/interface talking to another object.  The details often are handled by a class being the input/output of the method and the adapter translates from that object to recognizable parameters.  Those values are used to make a call and then the results are passed back to the caller. Java, PHP, C#, etc. The alternative of an adapter pattern is pulling values out of one object, translating them to a method on another class, and then repeating the process for the results.  There is nothing special about the solution outside of an interface.  The interface is what we are adapting to.  Thus, if we want to create an adapter for an employee to treat them as a contact like a customer we need an interface of CustomerAdpater that takes an employee instance.  Under the covers, the adapter translates the employee data to similar customer data for contacts and then implements the needed methods.  It all boils down to a map or translation step although it can sometimes be a complicated process.
undefined
Oct 15, 2018 • 25min

AWS Business and Productivity Tools

This episode tackles the AWS business and productivity tools group of services.  It includes Chime, Alexa for business, WorkMail, WorkDocs, and we add a quick look at WorkSpaces.  These combine to provide a set of solutions for small to large companies that are not focused on tech workers.  These services are aimed at handling everyday business needs like document storage and sharing, communication, and your workspace/desktop. WorkDocs This service is Amazon's answer to products like DropBox and Microsoft's OneDrive.  It does not have the same level of automated synchronization with a client application as the other solutions.  However, it is highly secure and a solution you can use even when you require compliance with PCI, HIPPA, or similar highly-secure standards. WorkSpaces The desktop computer is becoming a thing of the past.  Laptops are everywhere, but even lighter solutions are becoming popular with virtual machines used for the traditional business OS needs.  The WorkSpaces service makes this easy to manage and configure.  The pricing may seem high but think about being able to have a modern and up-to-date OS for your staff without the need for desktop support resources.  You also get the benefit of being able to avoid regular high hardware costs to replace outdated machines (and the related headaches from trying to dispose of old systems). WorkMail This is your one-stop shop for your email needs.  It provides you a mail server (like Exchange) and tools to manage users.  There are a lot of ways to handle email needs these days, but controlling your server has enough benefits to make this worth looking into. Chime Goto meeting and similar applications have been around for years.  These tools allow us to have virtual meetings, share desktops, and otherwise communicate across diverse geographical locations.  It includes features to communicate via text during a call and recording audio and video as well.  It is priced better than most solutions and provides a robust platform for your virtual meeting needs. Alexa for Business The last of the AWS Business Tools we look at is Alexa.  This service works with their Echo line of products and the Alexa voice recognition service.  It is becoming more powerful every day and well worth a look if you have any thoughts about automating your office.  If you have no such ideas, take a look anyway.  It can change your view of automation in the modern world.
undefined
Oct 12, 2018 • 23min

Customer Relationship Management Tools - Free and Low-Cost CRM

Customer Relationship Management Tools are big business.  You can see examples in vast and expensive solutions like SalesForce.com.  However, not every answer is world-class and focused on the enterprise customers.  There are also plenty of options all the way down to the free and low-cost arena.  We will look at some of these contenders that not only can serve your needs. They also can be easier to implement than SalesForce. CRM Tools Are Broad in Features One of the most significant challenges in selecting a CRM is matching the requirements.  There are a lot of directions a CRM can go and still be focused on customer management.  There is the sales pipeline approach that focuses on analytics about your customers.  On the other hand, your CRM can focus on contacts and building relationships through notes and regular communication.  Do not forget you can also focus on sales and who bought what.  This analytics can blur the line from CRM to ERP and other systems. We will still see some variance in the offerings at the level we are reviewing.  However, these tend to have a core set of features that most small businesses will find valuable.  These features include the ability to build a process for evaluating customers or prospects, contact tracking so you can keep up with what was said and when, and there is often email and other communication tool integrations. The List I tried to keep our list to a reasonable number of options.  You can easily spend weeks or months evaluating CRM tools, so I highly recommend you get to a short list of less than five very early in your process. https://www.insightly.com - Pricing: FREE for up to 2 users with 2,500 or fewer customer contacts.  The Paid plans range from $29-$99 per user per month. http://www.nimble.com - Pricing: They keep it simple and have only one plan. $19 per month per user. This has an unlimited number of customer contacts allowed. http://www.zoho.com/crm - Pricing: The Paid plans range from $12 - $100 per user per month. https://www.bitrix24.com - Pricing: There is an entirely free account (cloud based), you get five users and 5GB of storage. The vendor also offers an installed option for a one-time fee of $2,990, which gets you their small-business installed CRM (good for 50 to 500 users). If you need a system that has telephony and project management and don’t need a lot of handholding or the most natural UI this is a good option. Overall, I found Bitrix24 to be powerful but a bit slow in responding to requests.  On the other hand, they have great import tools. https://capsulecrm.co Pricing: Capsule is free for up to two users with 10MB of storage and 250 contacts.  I found it to be easy to use and easy to learn.  The mobile-responsive site appears easy to use as well although I did not spend much time with it.  This is a simple interface and product but strong on the functional side. https://monday.com - Pricing: $25/month for up to five users.  It is an elegant solution but more project management focused than a CRM.

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