

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...
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...
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...
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...
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
- Vuex for state management
- CSS Grid for layout
- Vue.js
- 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...
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...
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 Cordova
- https://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...
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...