

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 Sep 19, 2018
CSS Transitions & Animations
Wednesday Sep 19, 2018
Wednesday Sep 19, 2018
In this episode we focus on CSS transitions and animations, what they are, why they both exist, and when you should use one or the other.
Segment 1 - Transitions vs Animations
- AdobePress Article - reference link
- Transitions
- Only have two states (triggered and not triggered)
- Always run forward when triggered, and backwards when the trigger is removed
- Common triggers are: hover, link, active, visited, focus, checked, disabled
- Common use case: hover over a button and have the box shadow get darker as long as the cursor is hovering over it
- Animations
- More control than transitions
- Can start, stop, pause, run forwards, run backwards
- Complex animations are possible by manipulating various properties within keyframes
- May be more difficult to manipulate with Javascript
- Use animations if you need the complexity
- Use transitions if you have a simple affect that only needs two states (triggered, not triggered)
Segment 2 - How Transitions and Animations Improve UX
- Build your site with animations in mind so they don't look tacked on after the fact
- Don't be too flashy - your animations need to have purpose, shouldn't get in the way of the user experience
- Don't overwhelm the user with animations - may cause performance issues, can distract the user
- Keep animations consistent with the associated action - swipes with sliding animation, taps w/ pebble drop in water animation
Segment 3 - Performance
- Too many transitions or complex animations can cause serious performance issues
- The browser runs animations better over time (device starts to dedicate resources to the tab, cache builds up) so tests need to be done on a fresh incognito (or equivalent) window to ensure performance is good for first time users
- Test on older devices that may have slow hardware, or may have older browsers due to lack of support for newer updates
- Performance "hacks" - translate3d, translatez
- More modern method "will-change"
- Check out José Rosário’s page on Medium article: https://medium.com/outsystems-experts/how-to-achieve-60-fps-animations-with-css3-db7b98610108 for an in-depth breakdown
Segment 4 - Animation Frameworks
- Three.js
- Dependant on WebGL
- Full 3D render capable
- Is complex to start with
- has been around now for 8+ years so a little bit bloated yet still supported
- Anime.js
- Fastest/best performance large scale animation library
- Extremely lightweight
- Could replace Three.js due to simplicity and modern architecture
- ScrollReveal.js
- Specific library for animation while scrolling
- Using specific libraries for certain tasks maskes code more lightweight
- Usually easier to implement then a larger more customizable library
Web News - Inconsistencies and Separation
- Mobile versions (app or mobile site) vs Desktop versions (apps or site)
- Separation of apps (multiple apps - same service/function)
- Inconsistent development features in an ecosystem
Patreon Supporters
Grigory Rechkin
You can find us on...
Facebook | Twitter | Instagram
New! - Reddit
Wednesday Sep 12, 2018
Our Gear
Wednesday Sep 12, 2018
Wednesday Sep 12, 2018
In this episode we discuss the tools that help us get the job done, with a specific focus on the hardware. Things like the PCs we use, the headphones we listen to, and some stories behind our hardware decisions.
Segment 1 - Desktop Setups
- Matt's Desktop Setup
- Custom PC
- FX-8350 (8 core AMD processor)
- 16GB RAM DDR3
- 2x XFX 7970 (GPUs)
- Windows 10
- CM Storm Sentinel Advance 3 Mouse
- Logitech G15 Keyboard
- Blue Snowball
- SteelSeries Flux
- Bose Companion 2 Series II Multimedia Speaker System
- Custom PC
- Mike's Desktop Setup
- Custom PC
- Ryzen 1800x
- 16GB RAM DDR4
- Samsung 860 512GB SSD
- Vega 64 8GB GPU
- Windows 10
- Corsair Strafe RGB Keyboard
- Logitech G502 Proteus Spectrum Mouse
- Sennheiser HD 598 SR Open-Back Headphones
- Blue Snowball
- Server
- Old used PC running Windows 7 Ultimate
- NAS D-Link DNS-323 with 2x 3tb drives running raid 1
- Custom PC
Segment 2 - Mobile Setups
- Matt's Mobile Setup
- Lenovo Y500 laptop
- Samsung Galaxy Tab Pro S w/ pen
- Microsoft Sculpt Comfort Mouse
- Jaybird X3
- Sony MDR-ZX220BT
- SteelSeries Vault-Tec Mouse
- Samsung Galaxy S8+
- BlackBerry KEY2 (silver, 64GB)
- ASUS Zenwatch 2
- Mike's Mobile Setup
- ASUS Zenphone 5Z
- ASUS Zenbook 330ua
- Microsoft Sculpt Comfort Mouse
- Bluedio F2 Noise Cancelling Bluetooth Headphones
- Bagsmart Convertible Laptop Backpack
- Jakery 10000mAh quick charge battery
- Cable clip organizers
- Xiaomi 5000mAh
Segment 3 - Other Setups
- Matt's Test Devices
- iPhone 5
- iPad Mini (original)
- Mike's Test Devices
- Lenovo Tab 10
- iPad Air 2
- Nexus 6P
- Nexus 7 (2013)
- Tablet mount holder (attached to desk)
- Smart Home
- Google Home Mini
- Echo Dot (2nd Generation)
- TP Link Smart Switch
Web News - Desktop PC vs Laptop w/ Dock
- Desktop Computers
- Pros:
- Always more powerful
- Easier to upgrade
- Customizable features
- Cons:
- Might be too much time investment for building
- Can be finicky and tough to troubleshoot
- Pros:
- Laptop with Dock
- Pros:
- Versatile
- Simple buy and use process
- Easy warranty handling if you go with a good company
- Is upgradeable now through thunderbolt 3 interface
- Cons:
- Usually more expensive for similar performance (in comparison to desktop)
- Some stuff is not upgradable (soldered to board)
- Once warranty runs out repairs can be expensive or impossible
- Pros:
Become a Patreon!
Our Patreon Page - click here
Buy Some Gear!
Note: These are Amazon affiliate links, we get a kickback from you using them, they are for amazon.com. Some items may be variants of those mentioned in the episode, ensure you check the product page before purchasing.
Thank you for using the links below!
- Mice:
- Audio (headphones, speakers, microphones):
- Computer Components
- Keyboards
- Tablets
- Smartphones
- Smartwatch
- Miscellaneous
You can find us on...
Friday Sep 07, 2018
Tidbit: Website Planning Session
Friday Sep 07, 2018
Friday Sep 07, 2018
In this first mini podcast episode, we record one of the first meetings for planning out the HTML All The Things website. The meeting was unscripted, microphones on and that's it (intro and outro are exceptions). This should give you a good idea what a typical meeting is like for us, specifically how we collaborate on projects with our different talents.
You can find us on...
Wednesday Sep 05, 2018
Learning New Technologies
Wednesday Sep 05, 2018
Wednesday Sep 05, 2018
Learning new technologies can be a difficult thing to start, let alone master. In this episode we discuss how we started with new technologies and how to expand those introductions into mastery with a given framework, plugin, or other product.
Segment 1 - Getting Started
- Identify Objectives
- Ensure that your selected technology cover as many of your objectives as possible
- Sometimes your objective is just to learn a given technology - with no specific project objective(s)
- Do the "My First App" example
- Most documentation have users go through a first introductory app to get them started quickly
- Use this first app as a way to get your foot in the door - use it as a foundation for your project, or as a learning platform
- Documentation Open
- Don't shy away from documentation - I always have it open!
- As you look up each and every piece of a given technology you're slowly learning its ins and outs
- Eventually you won't need the documentation to complete a given task
- Easiest Start
- There are typically a lot of different ways to get started with a given technology (ie install via npm, use via CDN, etc.)
- Use the easiest starting point - probably the one that compliments your existing development environment - so that you don't get caught in a rut trying to learn how install something
- Find the fastest route to learning
Segment 2 - When to Learn New Technologies
- Personal vs Client Work Projects
- You must find the balance between learning something new, or using something familiar because you're working on your client's time
- Let the client know what you're doing or planning, they may want you to work on learning a new technology - maybe they want a new feature
- Do extensive research into a given technology to prevent issues down the line, costing you time and your client needless money
- Performance
- Sometimes performance becomes important when applications get large, make sure you use the technology that best compliments your objective and gives the best performance
- For example: NodeJS is good at concurrent connections
- Popularity
- Popular apps typically have a job market
- Learning React or Angular, as of writing this, would put you in a good position for finding a job
- You can also participate in an up and coming technology to get into a growing community
- Need
- Sometimes you have no choice but to learn a new library, framework, language, etc.
Segment 3 - Get Up and Running Quickly
- Researching
- Google your issues
- Check documentation
- At this stage ensure that the tech can cover all your needs
- Watching/Reaching Tutorials
- Before commiting, watch some YouTube tutorials to see if you like any of them
- If you continue working with the technology you now have a reference/video series to learn more
- Documentation
- Great documentation can make learning a lot easier
- Bad documentation does the exact opposite, makes it harder
- Community
- Take a look at the community and try to avoid toxicity
- Check various communities (ie Reddit, Discord, Stack Overflow, etc.)
- Your own "My First App"
- Choose a simple function that might be a single piece of a project
- Gives you a good view on learning and implementing
Web News - Cell Phone Longevity & Endurance
- Battery life on cell phones is typically not great, after several product generations of fighting for better battery life (specifically more capacity), it seems that consumers have given up to a degree
- Android seems have issues managing background tasks
- Apps dont' close completely sometimes
- Sometimes they close too early from the "recent apps"
- Manufacturers try and combat this by having various battery management software added to their Android versions
- More efficient processors like those in the Snapdragon 600 series offer more efficient battery usage, but don't offer flagship speed like those in the 800 series
- Flagship phones have the best features and specs, but typically lack in battery life
- Android phones seem to drop in battery performance when you're on the go - GPS turns on a lot even when not navigating
You can find us on...
Wednesday Aug 29, 2018
Troubleshooting Your Code
Wednesday Aug 29, 2018
Wednesday Aug 29, 2018
In this episode we dive into the world of troubleshooting and debugging exploring different methodologies and tools that should help you take out any pesky bugs you might come across.
Segment 1 - Troubleshooting Methodologies
- Process of Elimination
- Slowly eliminate parts of your code that might be the culprit
- Narrow down the culprit then perform the process of elimination on the section that is causing the issue
- Don't be afraid to Google/research
- Researching is nothing to be ashamed of, it does not mean you don't know what you're doing
- As you look things up you'll be enhancing your researching skills, which is helpful when treading into new technologies
- Learn the Source
- Don't just bandaid the issue
- Find out the who, what, where, when, why, and how
- Apply an actual fix to the issue wherever possible and take measure to prevent it from happening again
Segment 2 - Debugging in the Browser
- UI/UX Debugging
- Using console window on Google Chrome
- Inspecting elements to determine proper positioning and check if something is overlapping
- Primarily use: Elements View, Styles View, and Console
- Using console.log to check how a program is running
- Advanced Console Debugging
- JS Breakpoints to check on parts of programs
- Better than console logs in some more advanced cases
- Can check all local variables at a select breakpoint
- Postman for DB Debugging
- JS Breakpoints to check on parts of programs
Segment 3 - Application/Storytime
- Troubleshooting Cordova Apps on Android
- Longevity testing
- Wireless adb debugging
- Passing console logs through from webview to Android through an interface
- Crashing issues
- Media playback issues
- VPN Gateway Failure (some details changed for security procedure
- IT support issue
- Establishing a tunnel worked but routing internally didn't work
- Ended up being an NDP issue
- Most advanced troubleshooting Matt has possibly done (most involved - over 2 weeks of work)
Web News - Experience Doesn't Trump Research
- Don't shy away from research
- We typically have the documentation of a given framework or library that we are using, pulled up on a tab at all times
- Impossible to commit everything to memory
- Getting muscle memory, intuition, and research skills down pat makes you a proper "technician" for software engineering and IT work
You can find us on...
Facebook | Twitter | Instagram | Medium | YouTube | GitHub | Spotify
Wednesday Aug 22, 2018
Planning and Working on Projects
Wednesday Aug 22, 2018
Wednesday Aug 22, 2018
In this episode we dive deep on how to tackle projects, whether they be something for the company, or something for a client. We take a look at the tools we use to organize it all, and how we stay on top of working in a small team.
Segment 1 - Idea Filtering
- Brainstorming and how to track it all
- Jot down informal notes, even if ideas are obviously bad
- Sleep on your ideas - don't develop them too much too quickly or you'll get ahead of yourself
- Sometimes you get a "packed idea" that needs attention immediately
- Bouncing ideas off of technical and non-technical people
- Live prototyping of easy to try ideas
- Having meetings to filter the good from the bad
- Grilling each others ideas - will the product make it in the market?
Segment 2 - Planning With and Using Tools
- Using a variety of tools for communication and organization
- Examples: Slack, Twist, Monday.com, Asana, Git (gitlab, github, bitbucket), email/contacts/calendar, trello, etc.
- Our procedure on handling projects that we do for ourselves (for Digital Dynasty Design)
- Day to day tools including things like: Google Hangouts, Git, OneDrive, Trello, Asana
Segment 3 - Client Work vs Personal Projects
- Matt works on small business client work as well as any projects that Digital Dyansty Design has running
- Mike focuses on client works and assists with Digital Dynasty Design projects whenver he can
- We treat client projecs differently than our own projects
- Get client objectives written down crystal clear
- Cost analysis
- Deadlines
- Design suggestions and comparative materials
- Daily Meetings
- Dealing with client and personal schedule needs
Segment 4 - Completion and Accountability
- Accountability is difficult when you're your own boss
- Need dicipline and hard deadlines that you need to keep
- Sometimes deadlines need to be changed due to project changes or other issues, but don't make a habit of it
- Fill out a log book to keep track of the work you do on a daily basis
Web News - Stress When Deploying to Production
- Even senior developers get stress when they are pushing to production
- Make backups, make an easy recovery path if possible
- Test everything you can to prepare
You can find us on...
Facebook | Twitter | Instagram | Medium | YouTube | GitHub | Spotify
Wednesday Aug 15, 2018
Reactive Frameworks - Vue.js
Wednesday Aug 15, 2018
Wednesday Aug 15, 2018
In this episode we discuss our journey from static and CMS driven sites to reactive frameworks, specifically Vue.js.
Segment 1 - Static to Reactive
- Started by creating simple static sites - no need for reactive elements
- When dynamic/reactive content was needed we would use document.createElement
Segment 2 - CMS to Reactive
- We would use Wordpress, CouchCMS, or Webflow for any content management that our users would need
- Eventually elements became too varied and a dynamic solution was needed - reactive frameworks
- The "Hub" presented a unique issue of not having a standard layout while still being "posts" (the episode clarifies this point)
Segment 3 - How We Plan to Use Vue.js
- Quick start guide for people to get up and running
- HexDash a collaborative project that people can contribute to
- Vue.js components - great for reusability
- Vue.js will be used in the making of the HTML All The Things website
Segment 4 - Matt's Experience Getting Quickly Started with Vue.js
- Moving over from a typical experience using vanilla HTML/CSS/JS, SASS, Bootstrap, Webflow, or CouchCMS
- Prior experience with CLI and NPM
- First time using Visual Studio Code
Web News - Trendy & Loud vs Silence
- NodeJS vs PHP
- Big frameworks vs old ones
- WordPress power 31% of the internet (Source: https://wordpress.com)
- WordPress vs Webflow
- Workflow conflicts
- Are freelancers using bleeding edge technology, while the rest of the industry (specifically big enterprise) still using "old" tech?
Wednesday Aug 08, 2018
Failures and Shortcomings
Wednesday Aug 08, 2018
Wednesday Aug 08, 2018
In this episode we explore our failures and shortcomings on a variety of our projects ranging from a stock photo resource to a fully-fledged Chrome App game.
Show Layout
Segment 1 - Starting Up
- Originally going to be an IT company
- Opportunity caused us to pivot before the opportunity fell through
- Decided to continue working in the web development and design field
Segment 2 - Lists by Design
- Product Page: Link
- First Chrome extension
- Was mean't to be a bookmarks replacer
- Added a lot of functionality that bookmarks don't have
Segment 3 - Clicks to Riches
- Product Page: Link
- Clicker/Idle game in the form of a Chrome App
- Was supposed to be a smaller version of a larger project
- Designed to generate revenue whilst working on the larger project
Segment 4 - Free Photos Hamilton
- Website: Link
- Free stock photo resouce
- Designed to offer free photos, focussing on the local area of Hamilton, Ontario
Segment 5 - Dealing and Mitigating Failure
- How to deal with failure and get ready for it before it even happens
- Always learn new things even if a project has failed totally
Web News - Windows vs MacOS
- The age old argument, who will win?