PLAY PODCASTS
HTML All The Things - Web Development, AI, and Developer Careers

HTML All The Things - Web Development, AI, and Developer Careers

493 episodes — Page 10 of 10

Ep 41Bootstrap, Materialize, Tailwind CSS

In this episode of the podcast, Matt and Mike discuss CSS frameworks, with a particular focus on Bootstrap, Materialize, and Tailwind CSS. Each of these frameworks comes with their own pros and cons that make them a great fit for particular projects offering UI developers a bunch of options when choosing the tools they need for a given project. Full show notes: https://www.htmlallthethings.com/hub/Podcast/5cd34bab2c5a92001836b76b You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

May 8, 20191h 21m

Ep 40Choosing the Right Equipment

In this episode Mike and Matt discuss selecting, purchasing, and shopping for the equipment you need to get the job done. Whether you're on a budget, or ready to spend a bunch of money on something fancy, this episode covers how to make sure you get the most bang for your buck. We start off discussing the balance between pricing, your use-case, and future proofing, then we lay out ways to ensure you get all the features you need, followed by a discussion on some specific peripherals and equipment that you'll most likely encounter in the web development field. To top it off, we end with our recurring Web News segment, this week covering the various app install methods (PWA, app store, web app, browser) that are available on different devices, and which one is the most "legitimate" or more specifically, which one do you use depending on what the app does. Full show notes can be found here: https://www.htmlallthethings.com/hub/Podcast/5cc9e4282c5a92001836b769 You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

May 1, 20191h 19m

Ep 39MacBook Adventures & Podcast Update

This week our episode was cut short and released late due to a bit of a fiasco with our only in-house MacBook. We're also using this opportunity to announce some changes that we're going to be applying to future episodes based on some feedback that we've received. If you're a fan of our Web News segment, this week the episode was dominated by a discussion around exactly what happened to our MacBook and the various attempts we made to fix the issue. A standard full episode is planned for next week.

Apr 25, 201937 min

Ep 38Full Time and Side Hustles w/ David Lindahl

In this episode we sit down once again with David Lindahl to discuss his full time job and many side hustles. Segment 1 - What’s New? Tell us a little bit about yourself and what’s happened since we last spoke. Segment 2 - UI Developer How long did it take you to fully settle into your role? Before you got a full time position you were working on a variety of side hustles, many of which are still online today. How was the transition from being your own boss to working under a company? Is there any sort of issue with you running side hustles and working at your day job? Conflict of interest? Do they own a piece of that income as apart of an agreement? How fast were you expected to “spin-up” when you were hired? For example, were you just thrown a bunch of work and expected to know how to do it on the first day/week? How are the hours? Are you doing a lot of overtime? If so, is it mandatory? Which do you prefer? Working a day job, or being your own boss? How involved are you in the work environment? (ie company sports teams and events) Do you recommend being active within a company in this way? Segment 3 - Side Hustles What side hustles do you have going on? Are you planning on generating a passive income from these projects, or do you have different goals in mind? Rainier Watch is a big side hustle that seems to be getting bigger all the time, what’s your secret? Any tips and tricks for people that are trying to build a side hustle on Instagram? How’s your work/life balance work out with your day job and side hustles together? Are you planning for your side hustles to eventually take over your day job and becoming your full time occupation? Web News - Organic vs Algorithm on Social Media Whenever you look up growing on social media, most of the advice is specifically for exploiting the algorithm in some way With that being said you need to have a good amount of content ready to go so that you actually have something to post, understanding how the algorithm works is great, but if you don’t have anything to post then you can’t get any exposure at all. In terms of content, higher quality is obviously preferred, but if it doesn’t generate good numbers then it seems like putting in the extra time for quality isn’t worth it How much time should you spend on your content? Should you just keep posting quality content and expect results over time - with consistent posting? Should you be prioritizing algorithm “hacks” to get your content more exposure? Is there a balance between using the algorithm and organically making quality content? Should you work on getting a following on multiple networks (ie Instagram, Twitter, Facebook) or should you focus on one? David's Links "Made With Spark: https://madewithspark.com (The MVP site David mentioned in the show) - New website coming really soon" RainierWatch - https://www.rainierwatch.com Basecamp - https://basecamp.com You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

Apr 17, 20191h 40m

Ep 37When to Start

In this episode Matt and Mike discuss when to start your business, a project, or whatever it is you're putting off. It's easy to get bogged down, luckily there are some tips and tricks to prevent it. Segment 1 - When to Start One of the things you’ll hear as an entrepreneur, and we’ve mentioned on the show several times is to “just start” This means that instead of being bogged down by “what ifs” that you should just jump in and get started on whatever it is you’re working on A prime example: a would-be entrepreneur gets stuck reading into the basics of how to start a business, what pitfalls could happen, what issues may occur, etc. While it’s good to be prepared, you could read for years upon years and still have things to flip through. It’s generally better to understand the basics, do your best to cover all the bases that you need to and then just start - avoiding the paranoia of reading all the laws and issues that others have fallen into in the past. Definitely read and understand these things, but there is a point where you’ve read enough and it’s time to take action, there’s no way you can cover every base all the time or else you’ll never get started Keep in mind that being cautious isn’t a bad thing either, if you think you need to check a law or regulation out before doing something, then it’s best to check to ensure you’re operating legally. Just don’t get bogged down for years without acting, or your competition will fly by you. If you need to, get a lawyer to explain things to you in everyday terms so you can move forward with peace of mind Now that, that’s out of the way and you’re ready to get programming your new app, website, or whatever other program you’re working on, you’re bound to hit another wall - the learning curve Unless you’re experienced in everything your project needs, you’ll end up hitting a lot of walls, maybe you don’t even know where to start and this is another major point of contention that people get stuck in. Let’s say you want to make a PWA and you’re not experienced at all with service workers - a situation we recently found ourselves in - you could read example after example, look at tons of different solutions, try different plugins and even try different programming languages but at the end of the day you’re just reading up on what you want to be doing, you’re not doing what you want to be doing. Obviously guides, tutorials, and research do go a long way and are very valuable, but it’s easy to get stuck reading through the plethora of different ways that you can implement a solution for your given app and if it’s a passion project you want to make sure you’re using the best solution so you keep looking through different options and never actually start making that service worker (in our example) This is another major area where you need to “just start” The time differs from person to person, and from project to project, but at the end of the day you need/want to make that deliverable and we’re all human so it’s not going to be perfect (especially if you’re a beginner), so read up enough so you can navigate Google searches on that thing you’re working on and then just start making it If you end up pivoting a few times, who cares, as long as you keep moving towards the goal - you’ll end up learning way more working on the solution rather than just reading about it As a I said above the “just start” point is different for each person, and furthermore per project - in the next two segments we’ll be discussing our differing approaches to this problem Segment 2 - Matt’s Process When we first started our business, we had a hard time trying to figure out exactly what we needed to do We weren’t sure whether you needed a lawyer, or if you had to declare your business somewhere - there was nothing of the sort covered in our schooling other than the different types of businesses like partnerships, corporations, etc. We ended up calling a few places that didn’t get back to us, so we ended up having a meeting with a lawyer which gave us some information on opening, what at the time, was an IT business From that though, we decided that we wanted to go into web development due to an opportunity that popped up and from that pivot we ended up finding a business advisor that took us through the procedure, which ended up being very easy to get started We’ve mentioned this origin story in a past episode, but it’s an example of how we got bogged down in the beginning, but kept pushing through and then eventually just got started - later than we wanted - but we still finally got the job done In terms of a web development project, one of the more recent examples that we’ve mentioned on that show was learning about service workers, which resulted in getting bogged down in the research - my procedure for this was: Google “service workers” and read up on the very basics, learn how they work and how to implement them at a very high level so I know what tools I’ll need to have at my disposal U

Apr 10, 20191h 26m

Ep 36Progressive Web Apps

In this episode we'll be discussing the ins and outs of progressive web apps including what they are, some of their functionality, and what challenges/limitations they still face. Segment 1 - What is a PWA As mentioned on the show a few times before, PWA stands for Progressive Web App, which is the evolution of the standard web app If you’re new to all of this, the breakdown is rather simple: Website - A website is a more basic presence on the web, it delivers content to a visitor (ie blog posts, news articles) Popular examples would be news websites, tech blogs, marketing websites, and small business sites. Web App - Functions similarly to a website, however, acts more like an app that you’d see on your phone that performs a function. For example, there are online image editors where you can upload your photo and edit it right in the browser. This editor is a web app because the user interacts with it and computing happens (via the photo edits), content isn’t being delivered in the same way as a written article, or marketing information to the user. Unlike apps that run on your phone however, web apps are limited by the browsers limitations meaning that natively they can’t be installed, and they generally don’t have access to certain functions that natively installed apps can take advantage of, usually due to permissions/security on a given device. Progressive Web App - PWAs are the natural evolution of the standard web app, whose arguably biggest feature is the ability to run offline through the usage of service workers. Basically, they’re a web app that runs in the browser like any other, however, they can be installed and start leveraging more of those features that natively installed Android apps can . They’re still limited by the same restraints you can see from other webview apps and they still run the same codebase as their web app counterparts, not the native Java like other Android apps. In addition, they aren’t in a centralized location like the apps found in the Google Play store, you generally have to grab them from the web app’s website. If you visit the Twitter web app from your Chrome browser on Android you’ll see an “Add to Home Screen” button, if you do that you’re installing the Twitter PWA, but if you look up Twitter in the Google Play Store that’s a different native app PWAs are getting more and more powerful and a lot of the walled off features are being broken down. Just a few short years ago you couldn’t get push notifications from your browser, now they’re rather commonplace for chat and news sites. Accessing hardware was also an issue years ago, getting access to things like a webcam or a microphone, but now you can use a chat app like Skype right in the browser via video or voice chat - these limitations are quickly being done away with. Things like NFC access, however, is still a limitation last time I checked. In terms of accessing PWAs, as mentioned before, there isn’t a centralized location for them all. Unlike on Android where the Google Play Store houses the vast majority of the available native apps, PWAs are generally downloaded from the web app’s website. However, even this limitation is starting to change with new ways to list PWAs in both the Google Play Store and Microsoft Store starting to make their way into the developer toolbelt With these restrictions breaking down the main limitation is really with the codebase. Since a PWA isn’t written in the native language of a given platform, but rather runs more like a website/web app, Javascript does come with some limitations namely that it is a single-threaded process. However, there are workarounds for this, and Javascript itself is becoming more user friendly and more functional with every release - just like PWAs From my experience, iOS has “less adopted” PWAs as of right now, however, I can see that limitation being lifted at some point in the near future in my opinion. One example would be that No BS News for Reddit can be installed on Android phones in it’s demo form right now, but that’s not the case on an iPhone. However, the app does still function in the browser which shows off the versatility of a PWA Another thing to keep in mind is that a lot of corporations will have strict policies on what they support. For example, some places may say that if a certain browser’s usage worldwide is above 2% then that browser must be supported. This creates a problem because oftentimes it’s an older version of a browser like Internet Explorer, and since PWAs are so new, there will be severe limitations on what a developer can do if he needs features to work on such old software In conclusion, a PWA is the evolution of the standard web app. It runs in the browser like any other website/web app, but has additional features like offline functionality and the ability to be installed. PWAs are quickly approaching the functionality of standard native apps, which is good news for small developer teams that have a web app and no ti

Apr 3, 20191h 22m

Ep 35Refactoring

In this solo episode, Mike discusses the code refactoring process and then deep dives on work/life balance. Segment 1 - What is Refactoring Refactoring definitionChanging your code to improve its organization and structure without directly influencing it’s performance Explanation of terminologyCode SmellsSomething you notice as your coding that you think will later require a restructure/reorganization ExtensibilityAbility to later down the road use your current code to extend the capabilities of your program without having to rewrite large portions of code Maintainability Make it easier to fix bugs and find issues in your code down the line when you’re not as familiar with it Extraction/componentizationTaking functionality from a method and creating its own method so that it becomes reusable to other functions Segment 2 - Tips Refactor often Create a refactor listWhen you notice a code smell but need to focus on functionality, jot it down in a refactor to do list so you don’t forget to go back and correct Change obscure variable names to proper named variables (Maintainability)Also use appropriate variable types. In JS we are limited but we still have the choice between let, const, var When you notice you’re using the same of similar functionality in multiple functions, externalize that functionality into its own function (extraction/componentization)That could be a seperate function, or it can be a seperate file with a it’s own class and extensible functionalities In vuejs currently you can used Mixins which allow the use of methods across components (in the future this will be handled with hooks) Remove old code that you previously commented out Clean up unused files, folders, functions and images Change code to be extensible to your needs (Extensibility)During sprints with short deadlines sometimes you’ll write code to just get something working while realizing that certain functionality that needs to be implemented in the future won’t work with the current implementation Example: Internationalization Remove unused librariesWe all add libraries as we code to try to meet deadlines faster, but sometimes they don’t work the way we want and we move on to the next one. It’s important to remove them when we realise they don’t fit Use tools like prettier and lint to help maintain code structure on a daily basisExample making sure everything is in spaces instead of tabs Arrow functions instead of expression functions Add comments to sections of code you think need explanation (maintainability) Web News - Work/Life Balance One of the disadvantages of being a contractor/freelancer is not having that 9-5 work structure that you have to follow Depending on your situation though it might be an advantage, if your wife works from home also, you can sometimes spend the best parts of the day together. Instead of going shopping at peak times you can go earlier and just work when you get back Take advantage of off hours for traffic A structured day is great, but everyone has a different work rhythm and being able to structure your day based on that can greatly increase productivity. If you work better in the mornings and early evenings you can make the middle of the day your time off for instance If your considering freelancing you have to be able to structure your own days, which seems simple but can really be a challenge. You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

Mar 28, 201934 min

Ep 34Advanced Topics w/ Little Experience

In this episode we take a look at taking on complex tasks in a field where you're not very experienced, something all programmers must do at one point or another in their career. Segment 1 - The Newcomer Effect This segment is going to focus on our experience configuring a vuejs service worker - I went in with no previous hand-on experience, a complete newcomer to service workers and an amateur at vuejs. Therefore this process is no doubt clunky, but as you’ll hear that’s exactly the point I want to be clear before I dive in here that we’re using the following particular scenario because it was recent, we are not pointing the finger at any of the plugins, apps, or resources that we mention below. The issues we’re discussing are industry-wide, and not on a specific service, platform, or individual. Recently we went to work with service workers on a Vue.js app (No BS News for Reddit) As apart of the coding challenge we had already had a basic service worker setup that allowed the local assets to load when the app was offline This functionality was made using a pwa plugin for vuejs We left this plugin mostly, if not completely, in its default configuration This default configuration registers a service worker and then generates a service worker file which caches those offline assets Mike got the project to this point during the coding challenge and then I took over This is where things all fell apart for me: I had done a couple of days on reading basic service worker configurations and functionality and then finally decided to dive into our project First thing I did was look around the file structure and I find a file named registerServiceWorker.js This file contained an import line regarding register-service-worker (which fueled my initial Google searches) as well as the registration and basic responses that you’d expect such as successfully registered, detecting offline, etc. Searching register-service-worker led me to the page that I linked above, which had some very brief documentation and a code example that looked like our registerServiceWorker.js file (so far so good) From there I ran some tests in Chrome, checking for service worker install, checking offline mode, etc to get my bearings At that point I wanted to start adding some code of my own to the service worker, from my readings I knew that the service worker was definitely a separate file and from the registerServiceWorker.js file I could see that it was referring to a file called service-worker.js Searching the directory for said file revealed that it didn’t exist I then went and checked in the browser again, taking a look at the sources tab to find out what file was running the service worker, it showed that it was definitely service-worker.js - which indicated that the file was being created dynamically as apart of the build process This led us down a rabbit hole of finding how to inject my service worker code into this autogenerated file Overall, we eventually did find a solution for the code injection, however, it was not in the original register-service-worker documentation, nor was it discussed a lot on stack overflow We did find one Stack Overflow thread that did help, which led us to a useful blog and a couple of interesting links - I also found a separate page on npmjs.com somewhere along the lines which contained the missing code we were looking for Basically we needed to add some injection configuration into the vue.config.js file and then from there make our service worker script Now I know that’s long winded, but it points out some very important problems/concerns: The newcomer effect is alive and well, I wrote an article on Medium about what I call the newcomer effect a long time ago, it basically means that any documents/signs/directions that are available for any given experience rarely take into account the needs of those that are complete beginners - increasing the entry “budget” for newbies I’m not sure how documentation writers do it - maybe it’s because they’ve been working on their projects for so long - that they completely miss major steps in their documentation. It’s got to be mentioned that we desperately need better documentation for beginners and furthermore, more linking between potentially helpful guides In this particular case, maybe it’s because many folks won’t write their own service worker, but rather just want the default to cache the local assets and that’s it, but shouldn’t it at least be mentioned that if you want to write your own service worker - please see x Toxicity and useless comments are alive and well - on various forum posts, comments, and of course Stack Overflow posts there are typically an abundance of comments that dismiss questions due to “user not being experienced enough” or similar reasons. Or questions that are marked as duplicates, when really the question was indeed unique enough to be answered I want to be reiterate here, that I’m simply mentioning some of the roadblocks that we face wh

Mar 20, 20191h 19m

Ep 33Leadership w/ Scott McCarthy

In this episode we sit down with leadership expert Scott McCarthy, to discuss leadership skills related to small business and independent entrepreneurs. Segment 1 - Introduce Yourself Segment 2 - Starting Out Do you think that leadership is more of a school-learned skill (note-taking, reading, etc.) or more of one that you learn by putting it into practice? How closely would you relate self-discipline with leadership skills? Should you work on self-discipline before trying to lead others? When entrepreneurs are first starting out, they’re generally alone, or with a small group of other company founders. This leaves them partially or completely isolated from leading other people, a skill they would need to develop should their company grow and hire employees down the road. What advice would you give to someone looking to up their leadership game, before they hire employees? A common mentality for new entrepreneurs is to just dive in and figure things out when you get there, which could lead your business into disaster. What’s your opinion on this mentality? Should people prepare more before they dive in? How tied up should leaders get in the details? Should staff worry about details and leaders focus more on the big picture? (ie setting a sales goal without having the intricate details of how to reach it) Many people that are thinking of starting a business are looking to stash some money away from their day jobs so that they can slowly lower their hours to work on their business idea. Given that their day job is a different experience from their would-be business, how would these entrepreneurs transfer any leadership skills they’re learning on the daily, to their new business? Segment 3 - Types of Leader One of the things that I struggle with a lot, is trying to determine what kind of leader I want to be. I want to maximize my team’s output, but that the same time, I don’t want to be a “force to be reckoned with” when entering the office. I often flip between being a ruthless money-only kind of leader, a laid back “tech culture” leader, or something in between. Does this kind of decision naturally work itself out as you gain more management experience, or is it more dictated by the stage of the company? (ie only the richer companies can afford to be laid back) How much, if at all, does the job dictate the type of leader needed? Should leaders have “modes” that they snap into in certain situations? (ie Be really monetarily aggressive during an economic downturn, and lighten up when the business improves) Web News - Difficult Situations When faced with a difficult situation, having a strong leader is critical to guide the team through the storm. This is easier said than done, however, because there are so many aspects of a business that a leader has to keep in mind Things like: employees, asset management, capital, revenue, expenses, etc. In an example scenario, let’s say that there is a struggling app development business that has 1 boss and 5 employees. The business is struggling to find customers and therefore can’t afford to pay their staff’s wages for any more than a couple of months.The company does have some valuable assets in the form of useful apps that could be put up for sale to raise capital. In this situation... How critical is employee loyalty? Should layoffs be step 1? Should assets be sold off before layoffs are considered? If layoffs are inevitable, how do leaders soften the blow? Or do they just move on? What is the main goal the leader should push for? (ie keeping the people employed, maximizing profit, liquidating to gain capital for themselves, retaining assets, etc.) Scott's Links Website w/ Social Links https://movingforwardleadership.com Facebook Group https://movingforwardleadership.com/mastermind Free eBook Preview of "The 9 Foundations of Leadership" https://movingforwardleadership.com/download Email Scott for a free 15 minute coaching call [email protected] You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

Mar 13, 20191h 35m

Ep 32jQuery to Vue.js

With Vue.js' popularity steadily rising, many of you are probably thinking of migrating from jQuery. Segment 1 - State of jQuery https://jquery.com/ jQuery is a javascript library mainly targeted at HTML document traversal and manipulation, event handling, animation* and ajax requests. Meant to simplify your code and reduce the amount you would have to write doing simple things such as Assigning event listeners to all elements of the same class Creating DOM elements such as DIVs Using the $.ajax shorthand to interact with API’s/server calls So main theoretical advantages areCode becomes easier to read You write less code Familiarity, lots of developers have used jQuery for years and can write it without looking at documentation. Switching from something you are extremely familiar with can be a tough and costly venture jQuery has now been around for over a decade (since 2006) and as with everything in our field, it has started to be seen as ‘ancient’ technology. I wouldn’t agree with that kind of labeling but having used jQuery for the better part of my web development career it does have some pitfalls Transitions and animation rendering isn’t well optimized and can lag Large transversal are often bulky and execution time lags in comparison to native Javascript solutions Javascript api’s have improved over the past decade to the point where it is easier to implement and has more features then a jquery solution With the emergence of large javascript frameworks like React and Vue.js jquery has lost some ground as integrating with these frameworks, although possible, is usually viewed as resource costly and redundant Segment 2 - From jQuery to Vue As with anything new, it will take some time to adapt to a new way of developing when going from your typical jQuery workflow to a more framework based Vue.js workflow There are key differences with how jQuery handles things vs the way Vue does. Examples of those differences: Assigning a function to DOM element such as a div or a button In jQuery assigning a function is done in the script tag by using the $(‘.class or #id) selector and then extending it with a .click/.change(function(){dosomething;}) In Vue a dom/template element is tied to a method that is created in the vue instance. You can assign them to any event weather it be a click event or a change event using the @click, @change syntax on the dom element Transitions/Animations jQuery has plenty of . extenders that handle simple transitions like fading in and out (.fadeIn .fadeOut) and most other simple animations. They can be activated within your js scripts on any element using the typical $ selectors. These do not use css animations or transitions and have notably worse performance then them Vue has a tag that can then be tied to a css animation or transition. The transition can be activated on any state change, such as a simple v-if show hide Adding and removing classes conditionally/programmatically from DOM elements jQuery can do this by using the $ selector to get all elements of a particular class, or just a single element with an ID. It can then using the .addClass or .removeClass extension to do either function In Vue.js you have to bind classes to each element using the : notation. So on each element you need a conditional class, like a active class for a button, you assign the :class with a condition. Like active : isActive which binds the ‘active’ class to the isActive data property/variable. So anytime isActive is set to true, the element will gain the active class There are many other differences, like Ajax requests, which are handled by the axios library in vuejs and dynamic DOM element creation which is a major feature of Vuejs but is considerably more janky using jQuery. In the end making the transition from jQuery to Vue was quite hands on and involved a significant amount of adapting and learning new skills. Not to say it was overly difficult, as we’ve been saying many times in this podcast, having a good base knowledge of pure Javascript makes it easier to pick up new technologies and switch between libraries and frameworks. My advice for developers just starting out would be to still get a good grasp of native javascript and then jump into a framework like Vue.js or React. With native javascript getting most of the features of jQuery, it doesn’t make sense for a developer to invest their time into learning it. Useful Resource - Meta Tags https://metatags.io/ MetaTags.io can help you investigate existing, modify, or create meta tags for your website, across multiple platforms You’re able to type in a URL, which will pull in all the detected meta tags such as a photo, the title, and the description From there you’re able to see exactly what your metadata will look like in Google as well as other popular services such as: Facebook, Twitter, Linkedin, Pinterest, and Slack If there’s something you need to add or change, you can do that right on the web page. When you’re done, simply click on

Mar 6, 20191h 8m

Ep 31Pivoting a Project

Pivoting a project can be a blessing, or a curse. It's important to know when and when not to pivot to avoid derailing your development cycle. Segment 1 - Our Pivots When first starting out it’s important to be open to all avenues to you In our case we chose to try to get into the IT and Web Design/Development business from the get go. Although we did have a few IT clients we both seemed to prefer the web development side of the business as time went on. Eventually we landed a larger Web development account and at the same time had an opportunity to take on a medium size IT contract for a medical clinic. This was when we had to decide to go fully into web development or try to keep up both sides. It seemed like if we tried to keep both sides our preferable side would suffer so we chose to Pivot fully into web development Recently we decided on another Pivot Our choices were continuing trying to expand our service industry and get more clients for a steadier income or try to build a audience and get more in touch with the developer community in an attempt to eventually generate a more ‘passive’ income source Of course if you’re listening to this podcast you know the route we chose, as HTML all the Things is our way of connecting with all of you This wasn’t an easy decision as the temptation of more stable income was high. I was engaged at the time (married now) and obviously with that was a little worried to dump a bunch of potential income for a chance at building a community When we didn’t pivot Situations will constantly arise in your life, especially if you are trying to make your own path, that will tempt you to Pivot what you are doing Sometimes you will pivot, and sometimes it’s better to stick to your guns and forge ahead An example a time a we didn’t pivot was when we were coming up with project ideas and after launching our first html5 based game (Click to Riches) we wanted to create more games and almost become a html5 based gaming studio. This sounded really fun and we had a blast making Clicks to Riches but looking at it analytically the competition was extremely high and to generate any sort of consistent profit would have potentially taken years. Segment 2 - Pivoting a Project Generally when you’re first coming up with a project, you’ll list all the ideas, features, and systems that will be included either at release, or down the road These features should be categorized into various groups, some of the common ones are: MVP - all the vital features that are needed to make the project function/solve the problem it’s out to solve First Updates - Some features that are close-to-vital or easy to implement and will be added to the project soon after release Wishlist - Features that would be “cool” to have in the project, but aren’t vital to it’s core functionality Pivoting a project is not a decision to be taken lightly Whenever you pivot a project’s direction, it almost always adds a bunch more work to the original plan, typically some of those wishlist features are bubbled up to the MVP, or first updates category Pivoting at any stage of a project can have some terrible results: At the beginning - You might end up pivoting before or during the first days of development, which throws off the entire plan and can render any work done so far as completely useless Later on - Pivoting when a bunch of the work is completed can completely disrupt the development procedure and can ultimately derail a development cycle. For example, QA might not be able to test everything they want to because some of the features they were planning to test are now going to be radically changed. In addition, pivoting later into development often can result in added features that will be undercooked in the release, and therefore can produce a less quality product On the flip side, sometimes pivoting can have some great results: Better product that is more fitted to the marketplace More features that were initially thought to be useless, but ended up being vital in some way Matching, or beating, a competitors offering where the original MVP wasn’t capable of doing so Ultimately, pivoting is something that will come up on many projects, but you should be resistant to it Ensure that the reasons for pivoting far outweigh the reasons for keeping the project the way it is There is great value in sticking to a plan because people get familiar with it, and know what to expect. Changing said plan can result in chaos for the development team We slightly pivoted No BS News due to Google Play’s new PWA application system that allows for PWAs to more easily be put onto the Google Play store. As a result of this change, we decided it best to have some offline features and to tie up any lose ends. The benefits of pivoting No BS News in this way are: Better exposure and marketing on Google Play (discovery engine) More functionality will be added that will make it function more like a real app that relies on the internet, but caches some of

Feb 27, 20191h 9m

Ep 30Git Workflow

In this episode we talk about keeping our projects together with OneDrive and eventually upgrading to git for full version control. Segment 1 - Starting Without Git We used to use OneDrive to keep each other on the same page We had the same OneDrive directory sync to our computers so that our work would carry over However, this is not proper version control and therefore a bunch of conflicts would happen if we were working on the same projects, luckily most were minor and just required someone save their work again This solution did work for us, however, and we used it for well over a year with only a few major sync issues - which is pretty good for a program that’s not meant for version control To this day we still use OneDrive to keep some common files around, like graphical assets, however, our projects are not housed there anymore Our experience with using OneDrive rather than a proper version control did show us that it is possible to get started working as a team, even without the “industry standard” tools (in this case git) This is especially true if you work on projects yourself, or don’t touch any of the same files as another developer, so you can still have reliable file access across various computers while you learn how to use git Segment 2 - Transition to Git Working on your own is still a good time to learn and practice your Git skills. Even though it might seem like it’s slowing you down it really is just preparing you for the eventuality of working in a team environment and is something that is definitely going to come up during interviews and jobs Learn the basics first Cloning - initial act of taking the repository from your git source to your local computer Pulling - taking the changes from the remote (git source) repository is updating your local repository Committing - This is an action that ties the current changes you’ve made in your local repository to a ‘commit’ object that you are able to label/message with references to the changes you’ve made Pushing - Taking all your local commits and transferring them (pushing them) to the git source repository Fetching - Updating your local git file with the current updates that are on the git repository (origin) Branches - A system where you can create ‘branches’ that are essentially copies of your repository. This allows you to develop code ‘risk-free’ without touching what is referred to as ‘master’ (master-copy). Usually branches are used for feature development, and best practice is to create a branch for each feature and once that feature i complete to close that branch Merges - This is a system in place to handle taking your current branch and merging it into another one (usually a master copy or a pre-defined integration branch). The trick here is to avoid working on the same portions of code in different branches as the merge will create a conflict that you will have to manually resolve These base core concepts make up most of the functionality you’ll need to know to at least have a good base and be able to integrate easily into any companies workflow Sometimes learning specific workflow habits (like we’ll cover in segment 3) can pigeon hole you as almost every company has a different workflow and if you don’t understand the basic concepts it’ll be tougher to go from one workflow to another Segment 3 - Workflow and Benefits Recently we’ve begun working in larger teams and that has pushed us to develop a Workflow This is just going to be a example of the one we developed. Other companies will use different approaches depending on project complexity, team size, technologies available, etc. Our branch structure is as follow: No one codes in master, it is the production branch and only once the application is fully tested do we promote to master The main development branch is called dev-integration Here is where everyone's feature and design branches will merge into for testing Every developer gets their own branch, usually just one at a time although there are a few exceptions if multiple large features are being worked on at once. Once a developer feels like they have a good section of their feature is done and ready for testing they will create a pull request A pull request is a system within gits infrastructure to signify the attempt to merge branches Usually it’s easier to use your git service (bit bucket, github, gitlab) as they have a UI designed for this feature It allows the team to view all the changes that will take place during the merge, and gives them a chance to provide feedback in a thread style format Once approved, the lead developer can initiate the merge A developer does not need to initiate a pull request to merge dev-integration into their local branch as there are no consequences of that, they can just a do a git pull origin [branch name] Pull requests also provide a good history on your project, as long as the team names their requests appropriately you can look back easily to when a feature when merged in Like I m

Feb 20, 201959 min

Ep 29Site Builders and Webflow

In this episode we discuss website builders in general, then do a deep dive into Webflow. Segment 1 - Site Builders There are many reasons out there to use a site builder, they can range anywhere from convenience aspects, to pricing. I think it’s fairly important for a web developer to be at least familiar with these reasons and also the downfalls of site builders so that when it comes time for them to explain to their customer why they need a custom website, they will be coming at if from a place of knowledge and truth First thing to get out of the way, some customers will actually benefit from a site builder over a custom website. People that can find a good template on a popular site builder that fits all* their needs right off the bat People that like to tinker but don’t have the time to learn a whole new skill like web development Someone just starting off with a bootstrap budget and a ton of time on their hands for their business If you ever run into these people and they ask for advice on what they should do in terms of hiring a web design firm or doing it themselves, and they meet any of the specific categories above, you should definitely not hesitate to offer advice on using a site builder. Being honest with potential customers is key to earning trust, and maybe now they won’t be paying for your service but they will remember your advice and honesty when it comes time to update their site in the future Now with that out of the way, with a lot of clients a site builder just won’t cut it. If a client brings up a site builder and shows you a template they found and like but then immediately says they want to change x, y, and z. That is a red flag that a site builder just won’t work for them. Changing anything on a site builder can be a huge hassle (sometimes possible) but a lot of the time will require some knowledge in web development anyway. If security is a huge concern some site builders should be avoided. We’ve had many issues with multiple clients getting hit at the same time with WordPress hacks. The disadvantage of using a large platform like some site builders is that if a hacker finds a way into one site, they find a way into all sites. Shopify seems to be a fairly safe alternative for ecommerce as they treat security as a extremely high priority. If the client doesn’t have the time to completely manage their entire website If they need something very specific like integration into their customer database or their item database. If your customer thinks their business will grow quickly. Site builders are usually not designed to take on a huge influx of visitors and can have serious performance issues when that happens. This leads us to something that can be seen a happy medium between a traditional site builder that usually a client would manage, and a custom website/cms that a developer manages. Webflow is kind of a site builder for the web developer. It does require knowledge in css and layouts but is also very visual. If you have a client that you think would like to sit down with you while doing some design changes, or A B testing, webflow allows for easy live manipulation of design and can be a good tool for something like that. Segment 2 - Webflow Overview Webflow Designer The Webflow designer is the tool that is used to create the website itself. It has the more advanced tools that allow a developer to “code visually” meaning that the majority of the controls they’re using are actual CSS properties that they would be typing in manually For example, if you want to use flexbox on a particular section of your website, and have those flex items centered horizontally. You would add a div for the flex container, add divs for your flex items then with the UI actually set the display property to “flex” and then set your alignment. Instead of typing in CSS properties you’d be toggling the identical options in the Webflow UI You have a lot of other standard CSS controls as well including things like: Classes & “Combo Classes” Width, max-width, min-width, height, max-height, min-height Padding Float and clear Overflow Position Typography & Fonts: family, font-weight, color, size, text decorations Borders Transitions etc. Because this is an editor there are a bunch of non-standard CSS elements that you can add to your pages as well such as Containers that keep your content within a centered not full-width container, or social media widgets that have you entering in your username, or profile URL to setup a “like” or “follow” button Symbols are a piece of a website that you use over and over on a website. Things like a navbar, footer, sidebar, or widget of some kind all make for great symbols Symbols allow you to just add them to a page with a couple clicks without having to copy+paste, or remake them in any way Although I’m only now just starting to use this feature, a lot of the Webflow community seem to really enjoy what Webflow calls Interactions, which allows you to chain together events to cr

Feb 13, 20191h 26m

Ep 28Your First Website Contract

In this episode Mike and Matt discuss what it's like to take on your first website contract as a complete beginner web developer, focusing on a small business website refresh. Segment 1 - Gathering Requirements We’ve talked about requirements a few times but this whole conversation will be very specific to a typical first site that a developer will have to do for their first project. So in this scenario a small business call Happy Coffee has approached you with a request for their old site to be updated. The site is from the early 2000 and is very old, not responsive and has outdated information about their business. They would like you to update their online presence with the new web standards and make their site look more modern. Your job here is to figure out what the clients preferences are and if they align with your vision for the new site Ask them to send you some sites of the their competitors they like and to highlight the specific sections that appeal to them Ask them about specific features that you know are common to these kinds of ‘business card/online presence’ type sites. Contact forms Large cover images Services offered Map of the location Hours of operation Small “Our Story” section Photo Gallery It’s also important to gauge if they have content for you or if you will need to generate content yourself, whether that is images or text. This will give you a great starting point for either creating a static site from scratch or choosing a template to fill in and adjust Now usually during the more general portion of this process you’ll also be discussing pricing but I’m going to intentionally leave that part out as it’s a whole other can of worms and can be discussed in a separate episode. But usually for a first project, my advice is to be reasonable with your pricing, don’t do it for free but know that this is a stepping stone and the client is taking as much of a risk on you as you are sacrificing price wise for the client. Segment 2 - Design and Iteration Generally when someone wants a basic website, especially when it’s a small business, they’ll want to keep the budget low, cutting down on hours is probably one of the easiest ways to lower the price for a customer, having a basic design allows you to cut down some hours while maintaining quality Often times on larger websites clients will want a wireframe, as well as a prototype, or a fully done-up visual design before they’ll approve the look and you can start coding When it comes to smaller projects we’ll generally skip a lot of the designing procedure and rely solely on wireframes for a visual aid As a brief aside, even some of our larger customers accept wireframes as the basis of their design in order to keep costs down and get the project up and running as quickly as possible Typically we’ll make 3-4 different wireframe layouts based on what the customer has requested, often times we’ll get a few reference sites (as Mike mentioned) from them during the gathering requirements stage of our interaction to speed up our wireframe creation After showing off the various wireframe designs, we’ll get the client to choose their favourite one, get general feedback if they’re not happy with any of them, or get them to mix-and-match pieces of the wireframes together (slider from design 1, footer from design 3, etc.) This part of the procedure can take anywhere from a few hours, to over a week depending on how involved your client would like to be in the design - sometimes the design will flip-flop between a few options before finally landing on the one that will be put into production, so this step requires patience One thing of note, all clients are different, but from our experience if you’re struggling with the basics of choosing one of the designs that you made (ie the client doesn’t like any of them) sometimes you need to have a discussion with them to reiterate what their goals are to ensure that you’re on the same page (ie you might be focusing on showing off their photos, while they just want people to see the phone number and call the office) Luckily with simple designs the selection procedure is often the least painful and you’ll be off to the development stage in no time Segment 3 - Development Since this is a simple static site development is fairly straight forward There are a few choices you will be faced with Go with a template Create a static site from scratch If time allows I would recommend creating a site from scratch as you will learn the basics a lot better, and give yourself a better understanding of CSS, HTML and JS The workflow I do when creating a site is I first create a skeleton file structure with the typical css and js and img folders. Depending on how you were taught you can either do this manually or with webpack and babel. I’ll focus more on just a simple file structure now but don’t be afraid to use the tools you were taught if you are comfortable with them. When creating the folder structure create all the necessa

Feb 6, 20191h 12m

Ep 27Negative Customer Relations

In this episode we discuss the difficult conversations we all face when dealing with customers including pricing, misunderstandings, and more. Segment 1 - Saying No Sometimes customers relations aren’t just selling them on your latest theme, service, or skill - there comes a time where you have to deal with intricacies that have a negative connotation attached to them Specifically these are often: pricing, value (of work and of the product to the customer), bad content (low quality images, bad copy, etc.) - essentially you’re saving them from themselves, their web presence should start out on the right foot when you’re done with it Pricing Pricing is almost always a major point of contention between you and your customer People always want a lower price, and they’ll try anything to get it The issue with you constantly lowering your price is that even if you don’t intentionally do this, you will have a lesser quality product because your motivation to complete it will drop. Scope creep (customers adding features onto the original scope of the project) is especially bad when you’re doing a project and being underpaid - and the outcome will be of lesser quality You should go into a pricing meeting with a price range in your head, or one solid price if you aren’t willing to negotiate, and stick to the plan. If the customer is unwilling to pay a price that you’re okay with, then you just have to back out politely (this isn’t gonna work, thanks for your time) When it comes to older businesses, or specifically ones that don’t run off the internet, they have issues paying for online services like web development because their business doesn’t generally value the web too much Value Value and pricing go hand-in-hand, everyone wants what they paid for and preferably a low price on a high value Sell customers on the value of your work can be difficult depending on how much they rely on their website For example, if a company if almost completely reliant on their eCommerce site then upgrading it - even for a high price - may be something they’re willing to do to ensure the revenue keeps flowing On the flip side, if you are working with a customer that simply has an online presence, like a basic website with a phone number - they’ll generally generate their customer via other means (newspapers, word of mouth, billboards, etc.) and therefore will value their online presence less. When you have a customer that doesn’t value your services much, often times the project will be less complex, however, they won’t offer you a fair dollar for it because it doesn’t generate them enough business to pay for itself over the short term. Sometimes a customer is looking to become more active online, which is why you were contacted, but they still don’t know the value of a good online presence, what it takes to generate traffic, how to manage social media, etc. In this case it can be very difficult to get a customer on-board with a price that you’re good with, versus the amount of work he wants done to become relevant online because they don’t understand the value of the work you’ll be doing for them Bad Content We’ve all been there, you’ve been hired to look at an old website that was designed for old SD monitors, you come up with a plan to revitalize it which results in a list of photos and other content that you require the customer send to you (ie staff photos, office photos, staff bios, etc.) and they just say to use the old ones because they look good This is one of the hardest things to convince people to change, they’re attached to the old photos and text that they wrote years ago, but those small SD photos just aren’t equipped to handle the HD screens of today and will look awful It’s your job, as unfortunate as it is, to politely push back on customers explaining to them that if they’re refreshing their site, they can’t have old assets on there or else it will look awful. You need to try and convince them to update everything to modern standards and to ensure that any copy is up-to-date In order to do this try and tell them that their customers will take notice that their site looks messy, or slapped together for cheap which will leave them with a bad first impression. You can also offer to make some of the content for them, if you’re willing and able to, for a price of course. Ultimately it's your job to ensure that their web presence gets off on the right foot when you’re done with the project, ensure that things are as high of quality as you can. Segment 2 - Aggressive Interactions Handling a client that is angry can be a challenge There are a few strategies that we use to to handle these situations when they arise Let the client say their piece fully without interrupting them because if they are angry it’s important to figure out why before you can diffuse the situation Once they seem to be done try to show empathy and don’t deflect their problem back at them. Even if it’s fully their fault take some time to think of it fro

Jan 30, 20191h 7m

Ep 26Tips and Tricks

In this episode we share some of our tips and tricks that we've picked up along our many web development and design adventures. Segment 1 - Matt’s Tips & Tricks Server/Hosting Management Common things like this include: WordPress updates (plugin updates), migrating to a different server/host, testing a new major feature, adding something a client has requested - but you think won’t work out which will result in a rollback Always backup files and databases that you won’t be able to get back in their existing state Be wary of new commands if you have command line access, especially if they’re aimed at deleting files, or folders Have a recovery plan before you begin so that you can quickly and easily rollback your changes if something goes terribly wrong - planning this out properly may require you to take full backups, prepare a re-upload solution, research re-installation information on some of the software you’re using Have a testing environment setup that mimics your production environment preferably CSS Don’t be afraid of simply setting up a skeleton before moving onto a different part of the site - having a skeleton of the top bar while branding is being figured out is a good way to get started on the site, and frees you up to spend more time on other elements that are more definitive (ie slider, contact form, etc.) Make your class names easily identifiable, whether you use a naming convention or not, at the very least use something that you’ll be able to identify later and that other developers would be able to pickup on if they interact with your project in the future (example classnames: navbar, nav-item, footer, topbar) Comments (and this goes for other languages to) should be done to clarify things for yourself in the future, or for other developers down the road, however, sometimes you understand something using references in your own head - do not hesitate to make comments specific to you if you’re actively working on the project, using references that only you understand - making the comments more generic for others when production hits Test responsivity with true window widths, not just responsive tools, sometimes these tools don’t reflect exactly how different browser window widths will actually react which can result in some overflow left-to-right or some broken elements altogether Segment 2 - Mikes Tips and Tricks (JS Tips) Use a scope variable If you’re using just straight javascript for a single page or multipage website create a scope global variable. Make sure that this is your only global variable for the whole project but if you need to pass state or variables between files or pages then use only scope to keep some form of structure and minimize conflicts Use libraries when necessary Make sure it has been updated in the past year at least Make sure the documentation is fairly easy to understand Check the Open issues tab in github and make sure that there are plenty of closed issues and check those closed issues to make sure you are fine with the answers given as if you have an issue you will have a similar experience When working on a large project there will be times when you’ve gotta complete features under a time limit. This is where libraries can really save you a huge amount of time and headache. I recently had to create a searchable list for an application with the ability to auto filter the visible list as you type. Even though this is definitely something I could have created from scratch I didn’t want to waste my clients time if that is unnecessary. Doing a quick google search yielded plenty of well maintained, small and feature rich libraries. One called list.js really exceeded my expectations. Here are some tips for checking if a library is worth using: Do your best to write self documenting code with comments being used only when necessary I am very deliberate in my function and variable names to make it easy to go back to my code and understand what is going on If a function is calculating the taxes on the order then call that function calculateTax() Try to avoid using ternary operators (condition ? true expression : false expression) in code that will need to be maintained by multiple people over long periods of time. As ‘professional’ as they make you look they are not easier to understand then a simple if statement. Nor do they impact performance in any way Refactor and clean up code often With larger projects code can get out of hand really fast. If you’re programming at speed and do a lot of testing where you comment out sections and write new ones to see differences those commented out sections can add up and can contribute to confusion and maintainability in the future Sometimes you can preemptively create variables and functions and then never use them going forward. These are just taking up space in memory and adding even more complexity to your code for no reason. These are prime candidates for removal in a refactor Chrome Dev tools are your friend These are a hug

Jan 23, 20191h 2m

Ep 25Coding Challenge Wrap-Up

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

Jan 16, 20191h 7m

Code Challenge - No BS News for Reddit

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

Jan 14, 201929 min

Ep 24Maintaining Your Skills

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 fulles

Jan 9, 20191h 0m

Ep 23Motivation

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 beco

Dec 19, 20181h 22m

Ep 22Design, Develop, Deploy

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 persiste

Dec 12, 20181h 24m

Ep 21The Hustle

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 optim

Dec 5, 20181h 16m

Ep 20Cross-Platform Web Development

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, how

Nov 28, 20181h 23m

Ep 19Front-End Developer Roadmap

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

Nov 21, 20181h 40m

Ep 18Developing with Vue.js, Node.js, and MongoDB

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.

Nov 14, 20181h 10m

Ep 17Gathering Project Scope & Requirements

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 - [email protected] You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

Nov 7, 20181h 22m

Ep 16Responsive Design

Responsive design has revolutionized how websites are developed, but static layouts still have their place. We explore these two different layout methods in this episode of the podcast. Reference from Treehouse: https://blog.teamtreehouse.com/which-page-layout Segment 1 - What is Responsive Design? Responsive design responds to its environment, in the case of web design it’s specifically referring to how a website’s user interface responds to different window sizes and technologies available. This gives us the ability to have a single design that changes and adapts to various devices from ultrawide PC displays, down to older smartphones. It also allows users to make the most of the screen real estate they have Responsive design makes the use of a variety of tactics that are generally found in CSS including: media queries, relative positioning, relative length units, whitespace Having two browsers snapped to each side of a 1080p display for more information, rather than always having a webpage open at full resolution Responsive design makes the use of a variety of tactics that are generally found in CSS including: media queries, relative positioning, relative length units, whitespace Segment 2 - How to Implement Responsive Design CSS Responsive Tactics: Media Queries Offer breakpoints to a design, allowing developers to apply design changes at a specific breakpoint, such as a certain max-width (probably most popular breakpoint) Relative Positioning Position: relative; Positioning absolute elements within a relative container and then controlling that relative container to automatically move the elements within the container Relative Length Units Units that allow your elements to be responsive. These units are dynamic and change based on their environment Unlike exact, or absolute length units which are (cm, mm, px, etc.) 3 examples: rem - relative to the font-size of the root element % - relative to the parent element Vw - relative to 1% of the width of the viewport Reference link: https://www.w3schools.com/cssref/css_units.asp Whitespace The space between elements (ie the space between columns) It’s basically blank space on the web page Responsive design uses this as a buffer zone to move elements around various elements Filling a site up too much (minimal whitespace) requires space for elements to be displaced and the site will become too crowded on smaller screens (infinite scrolling, or a lot of pagination) Main high-level CSS responsive tactics include: Flexbox, CSS Grid Mobile or Large screen first design? It seems currently it’s more popular to design for mobile first and then create media queries for larger displays This is useful if you are also designing for older browsers and want to use newer technologies like Grid of even Flexbox Older browsers will see a mobile design (one column) while any larger screen or new browser can utilize the newer technology for a more advanced/easier to set up layout Traditionally we design for larger screen and adapted for mobile/smaller This is still viable depending again on your audience, an older audience for example still prefers larger screens Segment 3 - When to use Static instead of Responsive Design Static layouts/static design is when the page is laid out in a fixed way The elements on the page do not adjust to the screen resolution, or window changing size, generally, overflow is used in order to scroll all around the page Older sites, especially those that appear left aligned and not fullscreen are done in a static layout, as they’re typically 640px or 800px wide and remain left aligned, if the screen shrinks below this point, as with a phone screen, the user must scroll around the design Elements are generally not optimized for all platforms, which results in very small buttons, and text on high definition and mobile phone screens Modern Static Design or Static Layouts We’ve experiences situations in which a single device, or a single type of monitor will be used, adding responsivity in any way would add additional development and testing time and obviously cost more money With a single screen in mind you can use the space at your disposal more effectively, have content blocks that perfects fill any available whitespace (within reason) and take advantage of any unique characteristics (ie notch) Industrial equipment is often like this, when they use a technology called PLCs to control them, generally an HMI (Human Machine Interface) is required to control it via a touch screen, with the web steadily expanding it’s not outrageous to assume that one day a browser version of an HMI may be used on these touch screens, which are all one specific size and don’t update like consumer products (remain the same for years, even decades) When we first got into business we set out with the idea that we’d never make a static layout, all our websites were going to be mobile-friendly and responsive Even a few years ago when we opened, there was a lot of production websi

Oct 31, 20181h 21m

Ep 15Developer to CTO w/ Azhar Zuberi

We sit down with Azhar Zuberi to discuss his unique professional journey from developer to CTO of a startup. Segment 1 - Introduce Yourself Segment 2 - A little backstory What would you say was the most important topic or lesson you learned in your schooling when it comes to being a developer? How important was your first job as a developer in defining your coding style/knowledge base? When first starting out what were the ‘popular’ technologies that you learned (i.e. angular, bootstrap, wordpress etc) Segment 3 - Our connection What was the reason you decided to choose us (Digital Dynasty Design) when we first started working together? What is your workflow/process for working with and hiring off site/outsourced developers? What are the benefits of having a small development team versus increasing funding and hiring a full staff? What are some of the biggest challenges when have a off site/outsourced development team? Our current development process has us using a very base Jquery, Bootstrap, JS, HTML and CSS stack. What were some of the reasons behind this vs using a more robust framework i.e. angular or react? Segment 4 - Running a company What are some additional responsibilities that you were not expecting when transitioning to being a CTO What do you miss most about being just a contract developer As CTO how important was it to have all those technical skills and years of work in a company and as a contractor How did you learn the business side of your role as CTO and what is the most challenging part for you? Web News - Incomplete Ecosystems What is an ecosystem? A collection of software - typically from the same manufacturer - that all compliment each other A primary example would be iCloud storing all your contacts and other data from your iPhone for use on your Mac, or on a new iPhone if you need to sync them up Ecosystems have been a key part of people’s workflow for the past few years They’re often a key feature that people look for when they purchasing a device Apple’s ecosystem stands out in this particular example There are a lot of ecosystems out there including: productivity, smarthome, etc. Examples of incomplete ecosystems (rough notes/points of reference): Samsung has software primarily on the phone, such as Notes, Bixby, Email, etc. but has no clients for PC use, other than things that mirror or use the phone (ie SideSync) Microsoft’s is more focused on productivity (email, contacts, calendar, Cortana), but has no focus on smart home functionality (ie hardware). Windows Phone hardware is basically dead and therefore there is no mobile experience for Windows, with the exception of Android apps (which is a decent solution - but not as integrated as first party) Android has no full desktop experience (A Pixelbook doesn’t have all the pro software that Windows has, Google Assistant is on Google hardware, but not on Windows 10) You can find Azhar via... Contentlinq Website - www.contentlinq.com Contact Email - [email protected] LinkedIn - Profile Page You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

Oct 24, 20181h 52m

Ep 14Communicating with Customers

Communicating with your customers is a difficult, yet necessary part of doing business. In this episode we discuss best practices when dealing with various types of customers. Segment 1 - Establishing Channels Establishing which channels you're willing to talk on is critical Steer new customers to the proper channels that you check regularly (ie email, Twitter DM, phone call, etc.) so that you don't miss out on potential business Make sure that you check your unused channels on occasion (maybe weekly) in order to ensure nobody has reached out to you on those channels mistakenly and steer them towards the channels that you do use Steering customers to the correct channels is as easy as stating which communication method you prefer in meetings, in your social media bio/profile, or starting the conversation on your method of choice (if you're starting the conversation) Segment 2 - Different Types of Communicators As you work with clients you will start to understand how they work, but more importantly how they communicate and what they generally expect Some clients are entirely hands-off, while others want to be updated whenever something small is done There’s no clear cut way to determine which type of communicator your client is, other than working with them and slowly learning their expectations, just as you would with a friend, we all contact different friends in different ways depending on how we’ve communicated with them in the past Some people are more face-to-face oriented and want in-person meeting more than emails or messaging, while others just want quick messages, emails It’s important that you don’t necessarily go way out of the way for people (ie doing in-person meetings for something that a single email would deal with) Segment 3 - Dos and Don'ts Dos Establish a timeframe for a customer to contact you. Can be different between customers. Also take into account time zones and try to use them to your benefit to split up your day between customers. Use that timeframe to do callbacks as well if you miss a call Being prompt and consistent in your communications Be professional and don’t use needless slang, but keep in mind that as your relationship with the customer builds you can be more friendly and approachable Take responsibility for missed communication If you forget to answer an email and your customer reminds you make sure to apologize and try not to make excuses Don’ts Don’t neglect answering just because you feel the customer won’t like what you have to say. Be upfront and honest Don’t answer customers emails right when they come in everytime, pick a time or a few set times a day when you answer emails. Obviously use discretion as some situations can be urgent Don’t put yourself in situations where you will be overwhelmed with communications and all your accounts will suffer Web News - Social Overload Social media is the vehicle that drives traffic to most online projects, with so many social media networks out there it can easily become a project just to keep up with posting new material, let alone making said material Phones manufacturers and other apps are now tracking usage on various apps, letting people know when they’re using their phone a lot - watching too much YouTube for example Social media, and especially our mobile devices have in a way made us “addicts” to social media and other apps since we can now access them everywhere Work on the parts of social media that you want to work out, make sure you put work into your craft, but you can’t excel at everything IGTV content idea Making content out of a single piece of content (ie get an article, photo for instagram, and an opinion tweet out of a single design idea) You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

Oct 17, 20181h 11m

Ep 13UX Considerations

We dive into the world of UX in this episode, analyzing some basic tactics you can use to ensure that your users have a great experience on your site or app! UX Rules Source: https://theblog.adobe.com/15-rules-every-ux-designer-know/ UX is not (only) UI User Interface is a part of User Experience Are glitches part of UX? Know your audience User research is a natural first step in the design process Designing a site for a specific industry will very much influence your decisions. You are not the user Testing with real users is an essential part of the design process Many examples where we thought something was simple but a small test group immediately got confused Adapt design for short attention spans Don’t overwhelm users with too much information Short blocks of text because people don’t read Keep interactions quick, don’t make people fill out massive forms The UX process isn’t set in stone Adapt your design process for the product you design Designing a small one page site for a small business is drastically different than a ecommerce website Prototype before you build a real product The design phase for digital products should include a prototyping stage We always make at least a wireframe to show the interactions and pages to clients so they know at a high level what the experience will be For larger clients a full clickthrough mockup can be made before any development begins to iron out all misunderstandings and conflicts Use real content when designing Avoid Lorem Ipsum and dummy placeholders Our customers have been confused before asking what is this “gibberish” in reference to lorem ipsum Also confused as to why the pictures are different then what he had in mind when we use generic stock photos Keep things simple and consistent The hallmark of a great user interface is simplicity and consistency For example I find it confusing when a one page scroll website has a navigation that then opens up a different page. Don’t combine the two. Recognition over recall Showing users elements they can recognize improves usability versus needing to recall items from scratch People know what buttons look like and usually know to click them, same with links and form inputs. Don’t try to reinvent the wheel Make design usable and accessible Design for a diverse set of users that will interact with your products Keep in mind that some users are color blind or even blind so make sure to follow the accessibility guidelines Don’t try to solve a problem yourself Design is team sport — don’t work in isolation Don’t try to solve everything at once Design is an iterative process Preventing errors is better than fixing them Whenever possible, design products to keep potential errors to a minimum Offer informative feedback An app or website should always keep users informed about what is going on Transitions are a great way to show what is happening without holding the users hand Avoid dramatic redesigns Remember Weber’s Law of Just Noticeable Differences Example digg redesign killed the site Web News - Microsoft Latest windows update has a chance to delete your user files without a chance at recovery Randomly corrupted hard drives Unskippable updates Windows store Troubleshooting steps are ridiculous You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub New! - Reddit

Oct 10, 20181h 51m

Ep 12Bootcamp to Web Developer w/ David Lindahl

In this episode we sit down with David Lindahl, a friend and colleague that recently pivoted his career from a the financial sector to web development. Segment 1 - Introduce Yourself Introductions and pathway to today Segment 2 - Bootcamp You mentioned that Code Fellows, which is where you took your classes, prefers to call it more of a coding school, or coding academy. What differences are there between traditional boot camps and a course at Code Fellows? In general how was the experience? Would you recommend the coding academy route for developers starting in the industry in 2018? Would you say the connections you made during your time at Code Fellows has helped you finding work or been beneficial in any way so far? What are some of the frameworks you learned? What were some of the example projects you made? Segment 3 - First month on the job How many interviews did you end up getting, and how many positions did you apply for? How did the interview process play out? What did you end up doing in your first week? Are you applying the skills you learned in your schooling to your daily work, if yes then how? How challenging has it been adapting to your new job, this being your first web development one? Segment 4 - Comparisons of Class Training vs Self-Taught We worked together on the very first steps of The Appex, where you were fresh out of the code academy, whereas I more or less self-taught frontend development to myself. What do you think about class training vs the self-taught mentality?Pros and Cons? How much have you had to self-teach yourself after working on projects outside of your schooling?I think you mentioned learning flexbox as an example? You can find David via... Twitter & Instagram Rainier Watch Made with Spark The Appex Lindahl Studios You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub New! - Reddit

Oct 3, 20181h 36m

Ep 11Box, Flexbox, and Grid

We dive into the different CSS layout methods that have evolved over recent years including box model, flexbox, and grid. Segment 1 - Layout Models StackChief reference article Box Model Elements comprise of: content, padding, border, margin Dimensions like height and width Floats and clearfix CSS Box Model - W3Schools article Flexbox Evolution of the box model Comprises of a container element called the flex container, which "control" their child elements called flex items Flexbox is fantastic for responsive layouts 1 dimensional layouts CSS Grid New CSS layout method that is supported in the latest version of major browsers (IE doesn't have support) 2 dimensional layouts Can customize every property of the grid # of rows and columns size of row in various metrics (px, %, vh, vw, auto) spacing between rows and columns Very clean code - no need for row and column containers Segment 2 - Box vs Flexbox vs Grid Responsivity Box, flexbox, and grid can all be used to make responsive layouts Many of our production websites are still in box layout, they still work without issue on modern browsers and devices Layouts Basic sites can use any of the layout models Site components (ie navbar) can be made easily with flexbox due to their one dimensional layout Full site structures are easier to make with CSS grid due to two dimensional column and row functionality Easy of Use Matt believes the box model is easiest to learn - especially when learning how web pages flow Box model is more human readable, whilst flexbox allows for more complex layouts with less code and micromanaging Links Box Model - https://caniuse.com/#feat=inline-block Flexbox - https://caniuse.com/#search=flex Web News - 'Unobtrusive Ads' Ad strategies - which are you ok with? Sponsored posts Banner ads (Google Ads, etc.) Full page timed ads Sidebar ads Chumbox (From around the web, recommended for you) What are some ad strategies that annoy you? Do you think ads on a web page or app are a fair way to monetize? (freemium ad supported) Do you care what companies' ads are served to you? (ie you don't like Coke but like Pepsi) Support Us TP Link Deco Whole Home Mesh WiFi System (Amazon Affiliates Link) Become a Patreon Supporter You can find us on... Facebook | Twitter | Instagram | RSS | Spotify | Reddit Medium | YouTube | GitHub

Sep 26, 20181h 30m

Ep 10CSS Transitions & Animations

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 RSS | Patreon | Spotify Medium | YouTube | GitHub New! - Reddit

Sep 19, 20181h 24m

Ep 9Our Gear

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 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 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 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 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: CM Storm Sentinel Advance 3 Logitech G502 Proteus Spectrum Microsoft Sculpt Comfort Mouse SteelSeries Vault-Tec Mouse Audio (headphones, speakers, microphones): SteelSeries Flux Bose Companion 2 Series II Multimedia Speaker System Sennheiser HD 598 Open-Back Headphones Blue Snowball Jaybird X3 Sony MDR-ZX220BT Bluedio F2 Noise Cancelling Bluetooth Headphones Computer Components Ryzen 1800x Samsung 860 512GB SSD Vega 64 8GB Graphics Keyboards Corsair Strafe RGB Tablets Samsung Galaxy Tab Pro S Lenovo Tab 10 iPad Air 2 Smartphones Samsung Galaxy S8+ BlackBerry KEY2 (silver, 64GB) ASUS Zenphone 5Z Smartwatch Fossil Gen 3 Explorist Miscellaneous Bagsmart Convertible Laptop Backpack Cable Clip Organizers Tablet Mount Holder (attachable to desk) Echo Dot (2nd Generation) TP Link Smart Plug You can find us on... Facebook | Twitter | Instagram | RSS Medium | YouTube | GitHub | Spotify

Sep 12, 20181h 36m

Tidbit: Website Planning Session

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... Facebook | Twitter | Instagram | RSS Medium | YouTube | GitHub | Spotify

Sep 8, 201820 min

Ep 8Learning New Technologies

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... Facebook | Twitter | Instagram | RSS Medium | YouTube | GitHub | Spotify

Sep 5, 20181h 18m

Ep 7Troubleshooting Your Code

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 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

Aug 29, 20181h 15m

Ep 6Planning and Working on Projects

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

Aug 22, 20181h 0m

Ep 5Reactive Frameworks - Vue.js

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?

Aug 15, 20181h 2m

Ep 4Failures and Shortcomings

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? Social Links Facebook | Twitter | Instagram | Medium

Aug 8, 20181h 13m

Ep 3Workflow

In this episode we discuss our different workflows individually and collaboratively as a company. Segment 1 - Infrastructure Started out using OneDrive Later started using BitBucket and GitHub Version control was needed more as projects grew in productivity Segment 2 - Mike's Workflow Primary IDE is VS Code Xcode and Android Studio whenever a project calls for it Asana and Todoist Xampp Daily routine Segment 3 - Matt's Workflow Notepad++ CMD Chrome Testing browsers Balsamiq Cloud Workflow for small business basic site Workflow for projects Segment 4 - Working Together/Collaborative Workflow Working together on OneDrive Dividing up parts of projects Code reviews/peer reviews Project management software Whiteboard project management Web News - App Overload Discussion on how to manage app overload There are so many solutions to every problem and many of them have apps, this can cause app overload if you work on several projects.

Aug 1, 20181h 6m

Ep 2Where to Start

In this episode we explore how to get started in web development and web design. We discuss some of the methods we used to get up and running and share some stories on our initial experiences in the field. Topics covered in this episode include: Segment 1 - Mike's Beginnings Original exposure to code & first projects Segment 2 - Matt's Beginnings Original exposure to code & first projects Segment 3 - Libraries & Frameworks SASS - Official Site Bootstrap - Official Site Tailwind CSS - Official Site jQuery - Official Site Lightbox - Official Site NodeJS - Official Site Vue - Official Site Flutter - Official Site Segment 4 - When to Choose a Premade Solution Website builders Service providers Snippets & Plugins Examples include: Webflow - Official Site Podbean - Official Site Carrd - Official Site CouchCMS - Official Site Segment 5 - Web News Flutter You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

Jul 25, 20181h 17m

Ep 1Pathways & Foundations

In this episode Matt Lawrence and Mike Karan discuss their professional experiences that led them to today. These experiences form a foundation for future podcasts and act as a reference moving forward. Topics covered in this episode include: Personal Introductions Segment 1 - Synopsis of Today Digital Dynasty Design Web design and development business Passive income projects Segment 2 - Education College and University educations and experiences Mohawk College McMaster University Segment 3 - Work Experience IT and administration Electrical drafting Co-ops Segment 4 - HATT What is HTML All The Things? You can find us on... Facebook | Twitter | Instagram RSS | Patreon | Spotify Medium | YouTube | GitHub Reddit

Jul 17, 20181h 4m