HTML All The Things - Web Development, Web Design, Small Business
The adventures of Matt Lawrence and Mike Karan through the world of web development, web design, and small business management. As web development agency owners for the better part of a decade, they’ve worked with all sorts of technologies, through the rise of responsive web design, the revolution of serverless computing, and the popularity gain of many no-code tools for small business owners. They commonly discuss foundational web development technologies like HTML, CSS, and JavaScript - including popular frameworks and tools such as Tailwind CSS, Svelte, WordPress, Vue, and more.
Episodes
Wednesday Jan 16, 2019
Coding Challenge Wrap-Up
Wednesday Jan 16, 2019
Wednesday Jan 16, 2019
In this episode we discuss our recently completed coding challenge, making "No BS News for Reddit"
Note: We had some audio issues with the first upload of this episode, if you hear nothing, simply delete your version and re-download to get the updated file. Apologies for the inconvenience.
Segment 1 - Pre-Planning & Design
As apart of this challenge we were allowed to plan, design, and research before the challenge began
To prepare we did some research on PWAs and their functionality
We also researched other news apps, and what subreddits would be the most useful
From a UX perspective, we took a look at which features a Reddit user would need and expect from a Reddit app - minus the social features of course
From this we came up with some wireframes to guide our design throughout the process, which we modified on the spot to accomodate for a “open Reddit post” button alongside alternative share options for PC users
We also had a discussion regarding the addition of custom news sets, where users could select a bunch of subreddits to pull into a single custom feed - this ended up using up a decent amount of time and we didn’t put it into the app in its current state
One other design challenge that we had was making the design pop
Since this sort of app is so text-heavy we were concerned that its monotone nature would end up making it boring, or otherwise, look unfinished and rushed. However, after spending more time on Reddit we realized that this type of app is more utilitarian than it is flashy, so we decided to place it in a dark theme and let the links “do the talking”
Segment 2 - App Development
Development went smoothly for the most part
We were able to complete almost all the features that we originally set out to make, including a few extra ones
We had a few bugs popup that were dealt with quickly, namely some responsivity issues with overlapping and some time stamps that were coming in as negative numbers
Vuejs seemed to almost accelerate development due too it’s built in development server and its short code nature for functions and listeners
Vuejs also created the template for the PWA functionality through the Vue CLI
App functionality implementation went as planned and didn’t pose much difficulty other then a couple of hiccups and glitches that had to be fixed
Showing how much time has elapsed since each post was posted showed to be kind of annoying because of how reddit handles UTC time. I have to multiple the time by 1000 to match with the the current UTC time
Working with the reddit api is awesome and a great way to learn API’s and working with json
The app is pretty much feature complete as in line with our MVP (minimum viable product)
Couple of features we are looking to add would be :
a way to create a custom news group
Light theme to go along with the current dark one
The motto for adding features to this is “Is that bullshit?” if we think it is, then we don’t add it
Segment 3 - App Deployment
So we’ve already had a few episodes where we talk about deployment in a little more detail but it’s valuable to mention how we went about doing this for the 24 hour challenge aspect
This was by far the most frustrating part of the entire day as this would be only my second time deploying with Docker and to digital ocean
It is simpler than the html all the things deployment because there is no server side containers but due to the time constraint and the fact we started deployment only at around 12am it turned into a problem
The initial deployment as a web app went ok until we hit the SSL certification
We used the same method as with HTML all the things, where we are trying to certify a docker container running nginx using certbot on our ubuntu digitalocean droplet
Unfortunately I didn’t have a lot of experience and combined with already being mentally exhausted I went into a try everything approach instead of using logic
Logically looking at it with a fresh head after getting some sleep got a solution in a matter of minutes
Although this was frustrating this is all part of these short time challenges and must be overcome if anyone wants to be able to work in crunch periods
Sometimes it’s important to step away, as I did that at least 2 or 3 times during the challenge to solve random issues
For next time I think we might do a initial pre deployment before the challenge to at least get the ssl and nginx container worked out, so we have more time to focus on actually developing
Web News - Personal Opinions on PWA
Disclaimer: We have minimal experience with PWAs in both the development and consumer side of things, so these are simply our opinions having minimal exposure
Progressive Web Apps fall into a strange segment of the market, because they’re not quite native apps, and not quite websites (at least under the hood)
We’ve entered into a time where the internet is relied upon to power a lot of things and therefore an internet browser of some kind is almost always open on people’s computers, or phones
On the PC, it’s rare that people use traditional “apps” like Facebook, for example, but rather use the website facebook.com which serves virtually the same purpose
PWAs seem to be the bridge between the two, adding accessible offline features to web developers that are creating websites, or web apps, that will eventually need a mobile app of some sort
With that being said, there seems to be a bit of a stigma against non-native software, things like WebViews and other app types are readily available, but the big apps seemt to almost always go the native route - even if that means making two entirely separate apps (iOS and Android), or dealing with porting between the two in some capacity
So where do we feel PWAs fit in?
Will they take off?
Will they displace native apps?
Are they here to stay?
You can find us on...
Facebook | Twitter | Instagram
RSS | Patreon | Spotify
Medium | YouTube | GitHub
Reddit
Monday Jan 14, 2019
Code Challenge - No BS News for Reddit
Monday Jan 14, 2019
Monday Jan 14, 2019
In this tidbit episode we discuss our code challenge, announcing official dates, and other considerations that we've thought up over the past few weeks.
We'll be calling our PWA (Progressive Web App) "No BS News for Reddit" and will be using: flexbox, Vue.js, and service workers to accomplish our task. The challenge will comprise of us trying to complete this app within a 24-hour period. As a PWA, we will be running it on Digital Ocean for hosting, which will also be our finish line. More specifically our goal will be to develop the app to completion, and have a functioning product live on our hosting package. We plan on releasing this app on an app store, or two, however, this will not be apart of the challenge. In addition, any time-based approvals (ie if Adsense needs to approve to run ads on the site) will not be apart of the challenge. We will work around them the best we can to provide an app that people can use before the 24-hour window closes. Before the challenge begins we're allowing ourselves research and design, but no development on the app itself - that will be all saved for the code challenge window.
You can find us on...
Facebook | Twitter | Instagram
RSS | Patreon | Spotify
Medium | YouTube | GitHub
Reddit
Wednesday Jan 09, 2019
Maintaining Your Skills
Wednesday Jan 09, 2019
Wednesday Jan 09, 2019
Happy New Year! 2019 has just kicked off, and so has another year of podcasts. In this episode we discuss maintaining your skills after long periods away from your desk. This is the perfect compliment to the recently completed holiday season as many of us are just now getting back to work.
Segment 1 - Keeping Things in Practice
Keep using the technology you deem valuable
The main way I stay on top of my skills is seemingly an obvious answer. By using them
This can be a little difficult though with so many technologies out there and as we’ve mentioned many times it’s easy to get overwhelmed with all the choice
What I try to do is choose projects that will incorporate the technology I value
Sometimes this requires convincing your employer and contractor to adopt something they are not familiar with. So it’s important to be knowledgeable of the positives and be very clear with the downsides right from the get go.
Recently I’ve been proposing using Vue.js for some contract projects
Keep up to date with updates
As technology evolves it usually get a wider feature set and perspective of when to use it can change
I try to stay on top of technologies such as node, Vue.js, react and read their change logs. If a new feature gets announced I try to figure out where I can use it and how to implement it (usually using the documentation). Even if I don’t implement it just by going through the exercise of figuring out how it works I retain a little bit of that knowledge and will more likely know to come back to it when a new project pops up.
Segment 2 - Combating the Loss of Knowledge
When you’re away from your desk for a long time, you’ll become rusty at your everyday tasks and may completely forget new things that you learned just before leaving
Furthermore, there are often times that certain snippets of code are used a single time per project and therefore don’t stay fresh in our minds because we rarely see them
It’s easy to stress over losing knowledge like this because we invested time in learning new skills and in a few short weeks they could be completely gone from our memory
There are a variety of ways to combat this, but it’s not something to stress over as it’s just a natural procedure that our brains do that is out of our control
Recording Snippets
Programmers of all kinds, whether it be web developers, game devs, or even hobbyists all have some sort of snippets manager
Often times these take the form of a snippets managing software, but it can be as simple as keeping old projects and files laying around in a folder somewhere
One key component to generating snippets is that your code is modularized rather than proprietary for each application, meaning you want to code up functions that can be used over and over again - If you have an application that uses AJAX for example, there should be an AJAX function that you can pass arguments into, rather than AJAX being done somewhere inside of another multipurpose function
Snippet managers are great when you code up something that you know you will use repeatedly, but rarely need to interact with directly
Example 1: You make functions that access and interact with an API once, then you focus on making the application using the data that comes from that API
Example 2: You make a collection of CSS buttons that you use on a variety of projects
Personally, I use a bunch of old projects and files inside of a folder because I always think of the project I did something in, in the past, rather than the name of a generic function. However, I’d like to build up a snippet library in a formal piece of software
There are a bunch of snippet managing software out there, I haven’t used any personally, but some of the ones that came up in a quick search include: Boostnote (https://boostnote.io/), Cacher (https://www.cacher.io/), and Bracket Snippets for Brackets (https://github.com/jrowny/brackets-snippets)
Letting Selective Knowledge Go
One of our programming teachers in college said that he would selectively let knowledge leave his brain once he had learned and implemented it
Specifically he was referring to a driver that he had written for a microcontroller that we were using in his lab class. He said that he only needed to learn the information for certain parts of the driver once, implement the driver they way he wanted based on his new knowledge, then he forgot about that specific piece of information he learned because he had already gotten from it what he needed
This might be a hard pill to swallow, especially since things take forever to learn when we’re new to them, but it’s a valid statement
If you think about it, if you were working at a company as a Ruby on Rails developer and suddenly got changed to a different team that exclusively uses jQuery for their projects, you’re going to forget Ruby on Rails pretty quickly if you don’t keep your practice up on your own time
I like to think of it as, I learned something to gain value in some way, expended that value to its fullest for my given situation, then moved on.
Web News - 2018 in Review, Road Ahead to 2019
2018 Podcast Download Numbers
July - 72 downloads
August - 378 downloads
September - 973 downloads
October - 1234 downloads
November - 1683 downloads
December - 1569 downloads
2018 total: 5909 downloads
2018 Spotify Stream Numbers
July - 0 streams
August - 84 streams
September - 333 streams
October - 618 streams
November - 718 streams
December - 686 streams
2018 total: 2439 streams
As of January 7, 2019
Instagram Followers - 448
Twitter Followers - 60
Facebook Page Likes - 57
2018 in Review
Higher numbers than expected across the board
Podcast was supposed to be a side thing in comparison to templates, snippets, etc, but has become a staple of HATT
Learned a bunch of social media tips and tricks, with a focus on Instagram, secondary focus on Twitter
Goals for 2019
Over 2k Instagram followers
Monetization of HATT through multiple means
Create a developer community through HATT where people can meet other developers going through similar paths to them, finding people to work with
Mikes Goals
Go all in on vue.js
Get a youtube tutorial series up
Become comfortable with webpack and code splitting
Matt’s Goals
Master CSS Grid
Start something on YouTube (Webflow guide? Something else?)
Further my knowledge of social media
Amass to: Get a steady passive income stream setup and running
You can find us on...
Facebook | Twitter | Instagram
RSS | Patreon | Spotify
Medium | YouTube | GitHub
Reddit
Wednesday Dec 19, 2018
Motivation
Wednesday Dec 19, 2018
Wednesday Dec 19, 2018
In this episode Mike and Matt discuss motivation in it's many forms, and how it affects working on variety of projects.
Segment 1 - Types of Motivation
Different types of motivation range from the tinkerer all the way to the passionate
Being in any of these camps generally dictates how much effort, and time, that you’ll put into a field that you’re checking out
In terms of web development & design, having a different level of motivation will no doubt determine where you fall within the field - maybe you’ll make a single website for fun, or maybe pursue a career
One thing of note, these classifications of motivation are from our own experiences and ideas, they aren’t some sort of “official” classification of any kind
Passionate
When you’re passionate about something you’ll typically take it more seriously and do in-depth research to learn new things
This type of motivation may steer your career decisions, or help you set up a side hustle of some kind
For the web field, this generally means you won’t be using your “local” website builder like Squarespace, but rather diving in head first to the code, determining what tools you’d like to use and how to use them efficiently
“Forced”
Sometimes you’re figuratively “forced” into a doing something due to outside pressures, such as financial situation, or availability of work
When this happens you may take your work seriously, however, you’ll be taking it more seriously and efficiently than someone who wants to be there, because generally you’ll want to get in there and just get the work done
Often times people get trapped into these types of situations due to the outside pressures never alleviating, or more that suddenly pile on, leaving you trying to find methods to get out of the field
Bringing this into the web industry, sometimes people will be “forced” to do professional web work, either full time, or by being in an associated tech field that suddenly requires web work. Generally this type of work will be rushed in some way, having tasks done in the quickest way possible - often leaving a lesser quality product
Hobbyist
Hobbyists are people that like to do a variety of things, and get into them all the way, stopping just before getting professional.
There are of course varying degrees of hobbyists, but generally, they could technically operate in the professional realm given a small amount of training
Bringing this again to the web industry, hobbyists will generally not focus on one tool, language, or segment of the industry, but rather fan out and use a bunch of different tools ranging from site builders like Squarespace, then dabble in some code - getting a full range of experience to build some sites that they’re interested in, sometimes these lead to a side hustle if they’re successful
Tinkerer
Tinkerers are one step below hobbyists, and are generally just interested in a field in some remote way
They’ll do a variety of “light duties” within their interest, things such as reading some material, or maybe dabbling slightly within the field itself, stopping well short of investing any sort of money, or serious time, into learning a given field
When it comes to the web industry, these people often need a single website for something they’re working on, they’ll read up on different site builders online and then just use a template so they can get to work - this of this as more of a blogger that doesn’t want to deal with their website, but instead their work is their writing itself, so they familiarize themselves with the path of least resistance to get a website up and running and that’s it
Segment 2 - What Motivates Us
Pure Enjoyment for coding
Creating something from scratch
Looking at examples of other people's work and striving to achieve something similar
Looking through sites and trying to find motivation for your work
Having someone or a group request something that you could make
Small amount of adrenalin from fixing difficult issues
Being part of the coding community
Having people reach out to you for help or opinion
Keeping up/learning new technology
Segment 3 - Motivation Blockers
To many projects on the go making it difficult to focus on one
Prioritize and use task management applications like Asana
Running into a problem that takes several days to solve
Take a step back from the problem and maybe try to complete a smaller easier task
Difficult clients
This is a tough one but try to understand where your client is coming from and if you can relate to their issues
Programmers envy
There will always be people that are better than you but also people that are still trying to catch up to your level. It is important to learn how to focus just on yourself
Procrastination
Just start something, start with smaller more accomplishable tasks and build up to the harder and longer ones.
Links
Dan Mace's Video: https://www.youtube.com/watch?v=dMTJRYmQkbc
Joe Rogan's show with Derren Brown: https://www.youtube.com/watch?v=n_tpWrv76Q8
Web News - Scams
Scams are becoming more frequent and more complex
There isn’t a day that goes by that some sort of scam hits our email inboxes, often times being screened out by the spam filter, however, with complexity growing these scams often get through that level of defense, leaving the user to further filter out their inbox
In addition to email scams, there’s phone scams, and even in-person ones that people have to avoid
One thing that we’ve found is that email scams are getting harder and harder to notice - the one tell-all used to be an incorrect “from” address but even that is now being spoofed to look legitimate
The other day I received a properly branded Cyber Monday email from what looked like the real amazon email, but it only lead to a website that was trying to get me to sign up
The worst most recent one is someone impersonating us in an email - basically one of our clients will receive an email that says it’s from us when it’s not, and asks to download an attachment - meanwhile we’ll receive the same thing, an email that looks like it’s from our client also trying to get us to download an attachment
We’ve even had a brand new business credit card compromised whilst it was still in a safe at home
What are you thoughts on scams? Have you fallen for any? What can be done about this?
You can find us on...
Facebook | Twitter | Instagram
RSS | Spotify | Reddit
Medium | YouTube | GitHub
Patreon
Wednesday Dec 12, 2018
Design, Develop, Deploy
Wednesday Dec 12, 2018
Wednesday Dec 12, 2018
This week we discuss breaking out of our comfort zone to finally develop an app via a coding challenge.
Segment 1 - The Idea
Parameters
Our idea needed to be something that was accessible, yet popular enough to get in front of people and actually get downloaded
In order to get downloads we knew the reach had to be decent, it had to be something that people would find useful, but it had to be simple enough in order to be developed quickly
We decided to analyze our previous experiences in launching apps, specifically our Chrome App and Chrome Extension collection
What we found was that, with very little promotion on our end, making a product that compliments an existing popular product gives you exposure through “osmosis”
Specifically speaking, our most popular app is Multiple Accounts for Outlook.com, which allows people to quickly switch between multiple outlook.com accounts and their associated web apps, like OneDrive
From there we took a look at our recent personal app experiences, as well as the Google Play store - our targeted app store
All of this ultimately boiled down to the next subsection “The Decision”
The Decision
We’ve decided to do a minimalist reddit news app that strips away any distraction from actually reading the news
We’ll get more into what I mean by “minimalist” in the next segment, but generally we’ll take away a bunch of the default reddit features that people can get distracted by
We also have experience pulling information from reddit, via Mike’s joke generator that he used on his Introduction to Vue.js Guide (https://medium.com/html-all-the-things/introduction-to-my-vue-js-guide-ee9f4baad61)
This app is far from reinventing the wheel, but it gets us going on finally releasing an app on Google Play, which we’ve been talking about for years, but never done
The app will be monetized by ads, however, we plan on making the ads non-fullscreen and non-intrusive so that users aren’t bogged down by ads that have issues loading - this will be our first encounter with ads in an app as well so we’ll see how this strategy moves forward, maybe it’ll change, maybe it won’t work at all
This app is rather simple in design and scope, but it’s actually accomplishing a great deal of smaller points that we’ve been aiming to get done specifically...
Accomplishments & Goals
Trying out a community event: One of our goals with HTML All The Things was to get the people involved to some extent if they wanted to try out new things for us. This coding challenge is the first of its kind for us, and we’ll be the guinea pigs to see if it works out - maybe if it goes well we’ll do a public version of some kind
Social media coverage - Right now we post about our podcast episode releases, share people’s work, etc. However, we’ve been wanting to try and “live post” to an extent. Share work as it’s being completed, so we’re aiming to share a bunch of content during this coding challenge’s time window. Things like posts of our progress as they happen, maybe get some videos in there - we’ll have to see how it pans out.
Releasing an App: We’ve been talking about releasing an app on Google Play for a long time and we’ve always brushed it off, this challenge should give us a push to actually get it done - even if we fail the challenge and don’t release the app on time, we’ll have dived into the app development so much that we’ll essentially have no choice but to release the app for fear of wasting all that time - forcing ourselves to take on the risk
Furthering Our Knowledge: We’re planning on using pwa for this project, however, we’ll be needing some plugins and functionality that we’ve never used with it, so we’ll be learning on the fly
Segment 2 - Design, Develop, Deploy
If we assume that our “decision” in Segment 1 is final, and we are actually doing an Reddit News App, let’s dive into how we would take this project on
One of the most important things we need for this challenge is to identify what our MVP (Minimum Viable Product)
Research, Design, Development, Deploy
Research is complete already, app decision has been made
Mission Statement: Simple Reddit new aggregate for people that want to quickly view the news in their area without any distractions.
Parameters of the challenge?
What can we do before/after?
What we need to accomplish during the challenge?
What’s the endgame?
Design
Use a css framework?
Light/Dark theme?
Simplistic no bs design to to make the news a quick scroll away
Naming
Features
Pull posts from multiple subreddits and display as one multi subreddit
Remove all unnecessary attributes like karma count, comments, etc to display a minimalistic news block
Allow user to select their regions news
Ability to share articles through android/iOS share menu
Ability to view articles in webview without leaving the app
Ability to switch between light/dark theme
Ability to switch between Top, new, controversial, hot
Develop
Vue.js
Vuex for state management
No accounts, but local storage and Vuex for data persistence and resource sharing
CSS Grid for layout
Deploy
Deploy on Nginx through docker on Digitalocean
Web News - Edge going Chromium?
Microsoft announced it will be moving away form EdgeHTML to Chromium for a future version of the Edge Browser
A Project Manager moderately confirmed that most chrome extensions will work
New Edge will be on Xbox One, MacOS as well as Android and iOS
Mozilla is not happy that Microsoft is giving Google a monopoly and has reaffirmed their efforts to provide users a choice
Developers will now not have to support EdgeHTML
Electron played a key role in the decision to switch to Chromium instead of Firefox
You can find us on...
Facebook | Twitter | Instagram
RSS | Spotify | Reddit
Medium | YouTube | GitHub
Patreon
Wednesday Dec 05, 2018
The Hustle
Wednesday Dec 05, 2018
Wednesday Dec 05, 2018
In this episode Mike & Matt discuss the entrepreneurial hustle, focusing in on the online freelance game for web developers and designers.
Segment 1 - Freelancing Online
There are a lot of developers, writers, virtual assistants, and more that work freelance online
As a small business, we have experience getting work from freelancing websites and other site resources, however, please note that we work almost exclusively in the web development/design segment of the business so your mileage may vary if you’re freelancing in a different field
There are a lot of different websites and services that are set up for freelancers and their customers, most of them are basically job boards with full service solutions that contain various features such as:
Portfolio Page: Set up a portfolio containing things like pricing per service, project showcase, history on the site (ie took successful jobs, their rating as a service providers, etc.), list of skills, and more
Job Board: A list of jobs typically posted by potential customers, this job board generally has a bunch of topics ranging from app development to content writing. Customers can also post things like their budget, how much they’ve spent on the site with other freelancers - to judge how serious they are, and customers can also have a profile that proves how “legitimate” they are, or show off what other projects they’ve had done so developers have an idea of their expectations
Payment Systems: A lot of these sites have some sort of payment system in-place that helps customers pay freelancers, and in turn, help freelancers get paid on time.
Premium Services: Often times these sites are free to use, but have premium features that are for sale for customers and/or freelancers. Some of these premium features include: bidding for jobs (limited bids for free, freelancers can pay for more), premium job listing (appear at the top of search results)
Services we’ve used include: Guru.com, Freelancer.com, Craigslist, and Kijiji
Segment 2 - Our Experience w/ Freelancer Online Services
Guru.com
We’ve applied to a few jobs on Guru without much success, however, we have had success via our portfolio on the site
Once we listed our skills and experience on there, we generated a few leads from people contacting us right from our portfolio page
Freelancer.com
This was the first freelancing site that we tried, it seemed really popular and active so we went in head first
We tried starting with smaller jobs, $100 or less, and ended up scoring a low-cost small adjustment job which ended up being an entire mess of a situation - mostly because the customer had an issue with his account and because we didn’t take a look at how Freelancer charges for their services
Kijiji & Craigslist
In the very beginning we tried to get some free advertising going in the “classifieds” space
We took a look at what other people were posting on there in the web development space, most were quick $500 or less websites that were all-in
Following in their footsteps we released a few different ads at different pricepoints, listing similar packages on our website
This resulted in one long-term customer relationship from a person that called us from the ad, but wanted general development services - not the package that we had advertised
We also got a call or two from people that wanted extravagant websites for extremely cheap, being offered $100CAD for an entire restaurant website at one point
Craigslist did not result in any leads, only Kijiji in our experience
Segment 3 - Creating Projects
This was a very important step for us as it gave us skills and portfolio work that we could then show potential clients
We created Chrome Apps, Chrome Extensions giving us a niche area of focus
Web templates and snippets have us experience with basic html and css
Not only can projects potentially generate revenue if monetized but they refine and showcase many soft and hard skills such as project management and coding style
A big thing for us is looking at projects as a potential revenue generators but with a worst case outcome of being a portfolio item that presents and refines our skills
For us we always needed to keep the the timelines on these projects very tight otherwise we would get sidetracked and lose focus
For Clicks to Riches we finished it within a week of intensive work
For Html All The Things it was also only a couple weeks
A project like Content Collector which has not been finished and is fully on the backburner suffered from loose timelines
The chrome app projects that we did directly affected getting our biggest client
Another flaw that we have when it comes to this is being hesitant to create a project:
Based on how many similar solutions to something are out there
Not knowing the audience well enough
Web News - Updates vs Stability
What do users prefer when it comes to their applications or operating systems receiving updates.
Having the same version for long periods of time with no features added or optimizations made but great stability
Having new features and optimizations every month or so but have the chance to lose stability
An example of fairly stable consistent operating systems with minimal updates would be iOS and partially android.
They usually receive one large update a year with only minor security updates in between almost like a hybrid system
Windows on the other hand will receive updates almost weekly that seem to be fairly untested and large updates also come multiple times a year and have the potential to introduce massive issues like with the last large scale fall update deleting a users documents folder
Updates to platforms can also cause problems such as Webflow or Wordpress releasing updates which makes features and plugins behave differently.
You can find us on...
Facebook | Twitter | Instagram
RSS | Patreon | Spotify
Medium | YouTube | GitHub
Reddit
Wednesday Nov 28, 2018
Cross-Platform Web Development
Wednesday Nov 28, 2018
Wednesday Nov 28, 2018
Matt's freshly back from vacation to discuss developing for multiple platforms using various tools such as Apache Cordova, React Native, and Ionic. Allowing developers to use what they're familiar with, and still make apps for a variety of platforms.
Segment 1 - When to Use/Not Use Cross-Platform Development
Cross Platform Web Development allows you to build apps in Javascript that you can then use as native apps on iOS, Android and even Windows
This allows developers that are already familiar with JavaScript to great native experiences without having to learn new languages
In some cases, like with Apache Cordova a team can use one single code base with some hooks for different platforms to build their application for the web, android and ios
This allows for more agile development and smaller development teams as you don’t have resources tied up in native app development
This issues arise when needing to perform complex multimedia tasks like constantly playing audio and video
As we’ve experienced heavy media tasks can cause crashes in webviews where native code might perform just fine
Just beware when decided to go with cross platform development because you can never simulate the performance of a native application, so if buttery smooth animations and lightening quick load actions are important to you, the native way is prefered
For a small business though, like a bakery or restaurant, if they want an application that resembles their website then using a cross platform framework is ideal because it can save them money and give them the functionality they desire
Segment 2 - Cross-Platform Technologies
Apache Cordovahttps://cordova.apache.org/
Its free and open source
A plugin that allows you to create native applications out of standard website code (HTML, JS, CSS)
Provides developers the opportunity to create only one main code base for all platform
Also the main advantages of cross platform technologies are they give you the ability to create a offline mode and access native api’s such as push notifications, file systems, etc
It is necessary to create hooks that change how the application loads depending on if it’s on the web or if it's packaged as a native application
React Native and Nativescript with Vue.js
https://facebook.github.io/react-native/
https://www.nativescript.org/vue
Both of these frameworks allow for development on both Android and iOS
They use a very similar structure to their corresponding technologies with some minor differences when it comes to views, as xml is used to construct layouts
Both use JS as their scripting language
These frameworks allow developers that a familiar with React or Vue to build Native applications that perform very close to their Obj C or Java counterparts
Ionic
https://ionicframework.com/
Allows you to make web apps into desktop applications for both MacOS and Windows
Segment 3 - Progressive Web Apps
These are websites or web applications that with minor adjustments give the user native functionality straight for the browser
This doesn’t require you to have to build the application and package it for a specific platform (i.e Android, iOS), the newest browsers, safari and chrome both can auto detect if you have a progressive web app in the browser and the prompt the user of the functionality
To create a PWA there are only a few steps required:
Site has to be HTTPS secured
Page need to be responsive for mobile devices
Page needs to use Service Workers to load URLS offline
A service work is a background script that can be created and tied to your webpage but which does not have access to your DOM elements
Through the service worker you can access the native API’s of you desired system like push notifications
They can also be used to process parallel tasks as service workers run on their own threads (cores)
A Web App Manifest file which allows you to put information and image data for adding your application right to the users home screen on their device (like a real application)
The site must be able to load ‘fast’ on a 3G connection
https://www.pwabuilder.com/
Really interesting utility that allows you put in your websites URL and gives you a list of steps plus helps you create the necessary changes to make it a PWA
PWA’s I’ve used
Twitter has a really good PWA, allowing you to not have to worry about installing another application
Telegram message application has a good PWA that work on both PC and Mobile
Web News - Strict Learning
Disclaimer: We are not education experts in any way, we discussed this and wrote the notes below based on our personal experiences.
Schools seem to want you to do it right the first time, or risk losing marks, time, or electronic components in the case of our college labs
Meanwhile actual learning is supposed to be filled with mistakes and experimenting so that you can figure out what works and what doesn’t
Example: In college, we would receive a new set of components for our labs that would be conducted throughout the semester, however, we would receive a limited set of components - sometimes with spares, sometimes we’d only have one of each
You could purchase more if they were in stock, but that’s expensive for a student
These components are generally cheap electronic components - yet we were expected not to break them, or have a bunch of DOA components
This discouraged messing around with circuits and caused a lot of checking over and over to ensure your circuit was correct before hooking it up to power
When we learn new web technologies we typically end up setting it up incorrectly a few times, and have plethora of errors throughout the process as we figure out how things should be working.
This type of learning I find personally the best for understanding what you’re doing and what you can/can’t do with a piece of technology, however, this could get you docked valuable marks in school
The counter argument is that you should make all your mistakes before the test, however, in college especially, those “in-between” marks can add up to 10% or more of your overall grade depending on the class.
You can find us on...
Facebook | Twitter | Instagram
RSS | Patreon | Spotify
Medium | YouTube | GitHub
Reddit
Wednesday Nov 21, 2018
Front-End Developer Roadmap
Wednesday Nov 21, 2018
Wednesday Nov 21, 2018
In this episode we dive into the the Front-End Developer Roadmap by Kamran Ahmed, going through all the technologies you need to learn from the basics, through the mastery phase of your career.
Segment 1 - Roadmap Discussion
We discuss the 18-20 main points of the developer roadmap
Source: https://github.com/kamranahmedse/developer-roadmap
Segment 2 - Update on HTML All The Things
Authentication for admins was added to edit the site
Pagination with infinite scroll was added
Major code refactoring
Created components out of reusable code
Got rid of redundant variable setting
Deployed database and server authentication on our Digital Ocean docker setup
Messed around with nginx configuration files
Web News - Microsoft Office vs Google Docs
Microsoft Office has a premium paid-for desktop experience in the form of the Office Suite (main programs: Word, Excel, PowerPoint) they also have a free Office Online counterpart that work at a basic level for editing, and allow people to view documents online
This plugs into OneDrive (desktop app, web app, and mobile app)
Both versions talk and work with each other
Google Docs has a similar offering, however, it is free.
Google Docs, Sheets, and Slides are the main programs within this suite.
Integrate well with Google Drive and have collaboration features
They have desktop “apps” if you’re using Chrome, as well as Chromebook apps and smartphone apps.
You can find us on...
Facebook | Twitter | Instagram
RSS | Spotify | Reddit
Medium | YouTube | GitHub
Patreon
Wednesday Nov 14, 2018
Developing with Vue.js, Node.js, and MongoDB
Wednesday Nov 14, 2018
Wednesday Nov 14, 2018
We've been hard at work, learning a new development stack on which the HTML All The Things website is built.
Note: Matt is on vacation for 1.5 weeks, this episode has been pre-recorded before his departure, some things that were discussed may have a different status (hopefully complete) upon the release of the episode.
Segment 1 - VueJS Frontend Development
Due to the nature of VueJS, we spun up an entirely new development environment
Switching from Notepad++ to Visual Studio Code w/ the Vetur plugin
Some of the most valuable/used parts of VueJS that we used include:
Components - are like small pieces that makeup the website, placed in separate files and used over and over again, can be imported into each other (component inside a component)
Scoped Stylesheets - limit the styles you're applying to the file you're writing them in, we limited many styles to specific components, allows you to use the same classnames and ids with completely different properties
Dynamic data was the most challenging part of using VueJS, not from a technical perspective, but more so from a procedural standpoint - not used to having them as apart of my workflow
Vuex, Vue Router, Axios
Vuex is a state management solution in vue that allows all components to share data between each other
We use it for storing our loggedIn status for our editing content
Vue router is used for handling any routes so that we can navigate around our site
Segment 2 - Nodejs and MongoDB Backend Development
Nodejs
Used as our server to serve webpage content from the Mongo Database and store content in the mongo database
The server has be handle many calls to it that request things like:
Get all content
Get content of a specific type
Add content of a specific type
Delete content
Authentication
These are standard server requests but still took some time to setup as we’ve never hooked in vue.js into Node, usually use the built in templating engines
MongoDB
A alternative to sql that stores objects in json blocks
Has great hookins into Nodejs using the Mongoose package
Used to store our content block data and admin user account for editing the site
Had to implement mongo admin and database users so that even if our site is hacked they can’t delete or modify the entire mongo database
Segment 3 - Digital Ocean and Docker Deployment
Digital Ocean provides a vps with an already installed Docker instance.
Docker is a way to create small virualizable containers for each technology in your stack
In our case we used docker to create 3 containers:
Nginx - serve static files and proxy routes to Nodejs server
Nodejs - run our server infrastructure
MongoDB - runs our mondodb server that communicates with Nodejs
Had to learn how to create a docker compose file which is a configuration file for building your containers together and letting them know how to communicate
Everything is launched and built through a SSH into your digital ocean server. You have to be familiar with using a Command Line Interface (CLI)
Web News - Wrapping it Up
In this Web News we had a discussion regarding our current status (at the time of recording) in the development of the HTML All The Things website, as well as what to complete for deployment.
Wednesday Nov 07, 2018
Gathering Project Scope & Requirements
Wednesday Nov 07, 2018
Wednesday Nov 07, 2018
Getting details from your customers can be a challenging experience, but it is vital so that you can deliver a complete produce on time.
Segment 1 - The Contact
There are a lot of way that customers can contact you
Some clients want to be hands-on, some want to hand over everything to you - the professional, and others get right to the point
Despite how many details these customers give you, every project has a unique spin on it, even if it seems run of the mill, this makes it vital that your communication is on point
Sometimes you need to resist customers requests/demands in order to deliver a complete and quality product (ie refusing to move forward on a project that hasn't had enough details communicated to begin accurately)
Segment 2 - Gather Project Requirements
Before sending the first quote we need to know what the client needs us to do
Ensure that you ask the right questions to get all the information you need, clients generally don't know how many details you need
When we work on a small business site some of the sample questions we might ask include:
How do your current clients find you?
If you have a site currently, what are some things you like about it, what are the things you really don't like
What is the intention with the new site, generate leads? Just a digital business card/a way to for people to find your phone number?
Who are your biggest competitors? And which of their sites do you like the most?
Do you have a database of products you want displayed on the site?
Do you want to be able to edit the main components of the site yourself?
How important is the google rank to you?
Do you see your website expanding in some way? Becoming a web app? Or growing a lot? Having a team of editors?
Generally you should gather details over a personal meeting or screen share
After gathering the details you can start creating the basis of the project including details on time to completion and what will be required
This is a major component in your quote for a client
Segment 3 - Changing Project Requirements
Changes can suddenly happen, even in the middle of a project
They can be brought on by customer preferences, market conditions, or company-wide strategy changes of some sort
When a project requirement changes, especially when it drastically changes from the original vision, it often falls to you as the creator to make the appropriate changes
It’s important to have a layout of what you’re willing to do with a client before you begin any work and to have a similar layout for what you're willing to do about changes that arise
Web News - What do yo want from a phone/Android launcher?
We all have different needs and wants from our mobile devices, they’re an extension of us and the main way the people communicate with one another these days
With that being said, they’re still mobile computers and can be used for a wide variety of tasks from working on the go, taking photos, chatting with friends, and much more.
With different use cases comes a variety of user preferences in terms of hardware and software
Are you a fan of Android fragmentation, or is there too much variation?
Apply to become our SubReddit Manager/Mod - matt_lawrence@digitaldynasty.ca
You can find us on...
Facebook | Twitter | Instagram
RSS | Patreon | Spotify
Medium | YouTube | GitHub
Reddit