Home Page
Welcome
Thank you for visiting my website.
I am a Front End Web Developer in Toronto and I have been building websites for more than 10 years. My background is making websites with HTML, CSS and JavaScript from Photoshop mockups. I have worked with PHP, mySql, Wordpress, jQuery and many other technologies. When mobile devices arrived, I learned responsive web design with fluid grids as well as the importance of web standards, cross browser compatibility and accessibility.
With the arrival of task managers such as Gulp and Grunt, minifying CSS and Javascript as well as optimizing images was no longer a chore and the benefits of faster load times became obvious using these techniques. Flexbox and CSS Grid gave us the ability to design web pages in ways that we could never have imagined. At any rate, the industry has moved on and new technologies have appeared. React, Angular, Vue and Gatsby are just a few that are changing the way we now present content blazingly fast.
Staying on top of the latest technologies and techniques is challenging but I want to keep building websites using the latest and greatest. This site is built using React - a JavaScript library for building user interfaces.
So what's here?
The first thing to understand about React is that it is component based. This makes it easy to build reusable elements.
You can design simple views for each state of the application and React will update and render only the components that are affected when the state changes. That's one way that React seems to load so quickly - it only reloads the piece of the page that has changes and not the whole page.
This is not a tutorial, but other concepts such as state and props are important to understand. When I was building the mobile menu I wanted to add an animation to the hamburger menu. Simply attaching an event listener to an element with getElementById
no longer works the way it used to be done. You need to setState
for that element so that when an event is clicked for example, the state is changed and the element is re-rendered adding a class.
I have tried to explain more on this in the Code Snippets Section.
Code Snippets Section
In this section I have converted some past side projects written in HTML, CSS and Javascript.
The original code is shown in the syntax highlighting sections - usually one section for each. For the syntax highlighting I used Prism which is a lightweight, extensible syntax highlighter. Check out the Prism website to learn more.
If you want to see how the original snippets worked, you can copy/paste from the snippets into separate files (i.e. index.html, styles.css and scripts.js) and run them in a browser.
There is a short explanation as to what was required to convert the snippet for use with React at the top of each snippet's page.
News Feeds Section
I have always added a news feeds section to my site.
In React we can use the Fetch API
or even a node package such as axios
to fetch JSON data from the Internet and display it on our site.
For the news feed on this site I am pulling the data from the News API.
Turns out the NewsAPI was way too expensive for this site, so I'm pulling some RSS feeds from the CBC. Thanks CBC!
Contact Form Section
Every website should have a contact form, even a simple one.
I am hosting this site with Netlify and they provide a (mostly) simple way to add a contact form.
Go ahead - send me a message. I promise to get back to you.