class: center, middle, bgGradient ![image](img/jamstack.png) [![img](https://d3ui957tjb5bqd.cloudfront.net/op/font-preview/2772760/3/14?2&s=%7B%22size%22%3A72%2C%22text%22%3A%22by%20Ahmad%20Awais%22%7D)](https://twitter.com/mrahmadawais/) .footCenter.bio[โ ๏ธ Press f to go full-screen.] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bright.png), linear-gradient(to bottom, #7F16F2, #1E1D40) .column_t2.font10em[ <a class="imgLnk" href="https://twitter.com/mrahmadawais/"> <img class='w100p ' src="img/aa.jpg" /> </a> ] .column_t2[.vmiddle.pushfront[ #### ๐ I'm # Ahmad Awais --- ๐ฅ Open Source JS Developer Advocate ๐ WordPress Core Dev (Full Stack) ๐จโ๐ป EE-CS Engineer turned Emojineer ๐ Worked with Google, Microsoft, HP, etc ๐คฏ Over 1,767,883 devs use my open source code ๐ Over 892,330 sites use the products I have built --- .bio[Rants on Twitter [@MrAhmadAwais โ](https://twitter.com/mrahmadawais/)] .bio.smLnk[[FOSS GitHub](https://github.com/ahmadawais) | [AhmadAwais.com](https://AhmadAwais.com/) | [LinkedIn](https://www.linkedin.com/in/mrahmadawais/)] ]] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #875EFF, #28A1F2) .column_t2[.vmiddle.pushfront.padRight[ #### ๐ฆ Follow # .noLnk[[@MrAhmadAwais](https://twitter.com/mrahmadawais/)] --- ๐ฅ #OneDevMinute video dev tips! ๐คฃ Developer jokes/rantsโ you name it ๐ฏ I Retweet/Like Good Content <small><i>- No Automation there</i></small> --- .bio.smLnk[MOAR: [FOSS GitHub](https://github.com/ahmadawais) | [AhmadAwais.com](https://AhmadAwais.com/) | [LinkedIn](https://www.linkedin.com/in/mrahmadawais/)] ]] .column_t2.font10em[ <a class="imgLnk" href="https://twitter.com/mrahmadawais/"> <img class='w100p ' src="img/twtaa.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #373277, #4D43D1) .column_t2[.vmiddle.pushfront.padRight[ # ๐จโ๐ซ VSCode.pro --- After ten years of Sublime, in 2017 I completely switched over to this new open source code editor called Visual Studio Code. I couldn't be happier. --- โ JavaScript Based Open Source Editor ๐ I was able to contribute ๐จโ๐ป to VSCode ๐ [Shades of purple โฃ](https://marketplace.visualstudio.com/items?itemName=ahmadawais.shades-of-purple) my first code editor theme is used by over 50,000 developers in .smLnk[[VSCode](https://marketplace.visualstudio.com/items?itemName=ahmadawais.shades-of-purple)], .smLnk[[iTerm2](https://github.com/ahmadawais/shades-of-purple-iterm2)], .smLnk[[Hyper](https://github.com/ahmadawais/shades-of-purple-hyper)], .smLnk[[Slack](https://github.com/ahmadawais/shades-of-purple-slack)], .smLnk[[Alfred](https://github.com/ahmadawais/shades-of-purple-alfred)], .smLnk[[Highlight.js](https://github.com/ahmadawais/Shades-of-Purple-HighlightJS)], etc. --- ๐ Sign up to [become a VSCode Power User โ](https://VSCode.pro/) --- ]] .column_t2.font10em[ <a class="imgLnk" href="https://VSCode.pro/"> <img class='w100p pulseImg ' src="img/vspro.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bright.png), linear-gradient(to bottom, #F2C54B, #E44E27) .column_t2.font10em[ <i class="pulse twa twa-2x twa-expressionless" style="position:absolute; bottom:2rem; left:7rem; margin:0 !important;"></i> ] .column_t2[.vmiddle.pushfront[ # STORY TIME --- Let's talk about a the **THEETA FAMILY**. --- ๐ Class gets an assignment ๐ Doing everything on time score 100% ๐ Name of assignments are `assignment.pdf` ๐ Just another day, just another assignment <!-- โ ๏ธ Press `f` to go full-screen --> ]] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #F2C54B, #EA0E0A) .column_t2[.vmiddle.pushfront.padRight[ # YO! --- **ANOTHER** assignment in the same week. --- โ What's wrong with teachers? ๐ฉ Copy-pasta skill-score 110% ๐ฏ Name of the assignment `??????.pdf` ]] .column_t2.font10em[ <i class="pulse twa twa-2x twa-weary" style="position:absolute; bottom:2rem; right:7rem; margin:0 !important;"></i> ] --- class: center, middle, bgGradient layout: false # Phenomena of Naming An Assignment <!-- class: center, middle, bgGradient --> <hr> ๐ Copy pasta โ name the assignment? <hr> -- โ One student `assignment.1.pdf` <hr> -- โ Another student `assignment.final.pdf` <hr> -- โ Yet another student `2015-CS-XYZ-assignment.pdf` <hr> --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #F5AE16, #EA0E0A) .column_t2[.vmiddle.pushfront.padRight[ # YO! --- Oh let me think of an **ORIGINAL NAME**. --- ]] .column_t2.font10em[ <i class="pulse twa twa-2x twa-face-with-monocle" style="position:absolute; bottom:2rem; right:7rem; margin:0 !important;"></i> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #F5AE16, #E65143) .column_t2[.vmiddle.pushfront.padRight[ # YO! --- ๐คฃ Names the assignment --- # `ass.pdf` ]] .column_t2.font10em[ <img class='w100p ' src="img/trollface.png" /> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #F5AE16, #E65143) .column_t2[.vmiddle.pushfront.padRight[ # YO! --- ๐คฃ Names the assignment --- # `ass.pdf` # `ass.2.pdf` ]] .column_t2.font10em[ <img class='w100p ' src="img/trollface.png" /> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #F5AE16, #E65143) .column_t2[.vmiddle.pushfront.padRight[ # YO! --- ๐คฃ Names the assignment --- # `ass.pdf` # `ass.2.pdf` # `ass.3.pdf` ]] .column_t2.font10em[ <img class='w100p ' src="img/trollface.png" /> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bright.png), linear-gradient(to bottom, #4285F1, #72D0FC) .column_t2.font10em[ <img class='w100p ' src="img/folders.jpg" /> ] .column_t2[.vmiddle.pushfront[ # New Folder Algorithm --- **STANFORD** did a research and found out. --- 1๏ธโฃ UETians best at creating `NEW FOLDERS` 2๏ธโฃ More `NEW FOLDERS` than regular folders ]] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #7F16F2, #1E1D40) .column_t2[.vmiddle.pushfront.padRight[ ## WHY IS THIS HAPPENING? --- Two hardest things in Computer Science: โ Phil Karlton --- 1๏ธโฃ Naming things 2๏ธโฃ Cache invalidation ]] .column_t2.font10em[ <i class="pulse twa twa-2x twa-question" style="position:absolute; bottom:2rem; right:7rem; margin:0 !important;"></i> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #7F16F2, #1E1D40) .column_t2[.vmiddle.pushfront.padRight[ ## WHY IS THIS HAPPENING? --- Two easiest things in Computer Science: โ Steve Jobs --- ๐ Ignoring your health ๐ข Getting fat ]] .column_t2.font10em[ <img class='w100p ' src="img/sj.png" /> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #7F16F2, #1E1D40) .column_t2[.vmiddle.pushfront.padRight[ ## WHY IS THIS HAPPENING? --- Two easiest things in Computer Science: โ Ahmad Awais --- ๐ Ignoring your health ๐ข Getting fat ]] .column_t2.font10em[ <img class='w100p ' src="img/aa.jpg" /> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #424242, #000000) .column_t2[.vmiddle.pushfront.padRight[ # ๐ฏ GIT --- Git is a version-control system for tracking changes in computer files and coordinating work on those files among multiple people. --- ๐ [Download and install Git โ](https://git-scm.com/downloads) โ Every good developer uses it ๐พ Complete history of a project ๐ Collaborate with others ๐จโ๐ซ Resources to [learn Git โ](https://github.com/ahmadawais/hacktoberfest) ]] .column_t2.font10em[ <a class="imgLnk" href="https://git-scm.com/downloads"> <img class='w100p pulseImg w90p git' src="img/git.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #424242, #000000) .column_t2[.vmiddle.pushfront.padRight[ # ๐ฏ GIT IS AWESOME --- Git is a version-control system for tracking changes in computer files and coordinating work on those files among multiple people. --- ๐ [Download and install Git โ](https://git-scm.com/downloads) โ Every good developer uses it ๐พ Complete history of a project ๐ Collaborate with others ๐จโ๐ซ Resources to [learn Git โ](https://github.com/ahmadawais/hacktoberfest) ]] .column_t2.font10em[ <a class="imgLnk" href="https://git-scm.com/downloads"> <img class='w100p pulseImg w90p gitbr' src="img/gitflow.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #7D15EE, #24243E) .column_t2[.vmiddle.pushfront.padRight[ # [JAMstack](https://jamstack.org/) --- A revolution in itself. Modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup. --- ๐ **JavaScript**: Running entirely on the client ๐คฏ **APIs**: Reusable APIs, accessed over HTTPS ๐คฉ **Markup**: Templated markup e.g. Markdown ]] .column_t2.font10em[ <a class="imgLnk" href="https://jamstack.org/"> <img class='w100p pulseImg jam' src="img/jam.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bright.png), linear-gradient(to bottom, #F0DB4F, #F0DB4F) .column_t2.font10em[ <img class='w100p pulseImg js' src="img/js.jpg" /> ] .column_t2[.vmiddle.pushfront[ # JavaScript --- Best programming language at the moment. --- โ **JOBS**: Highly paid job ๐ฅ **FUN**: Seriously to code jS โก **CUTTING EDGE**: Always improving ]] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bright.png), linear-gradient(to bottom, #E435AA, #703993) .column_t2.font10em[ <img class='w100p pulseImg api' src="img/api.png" /> ] .column_t2[.vmiddle.pushfront[ # APIs --- Application programming interface --- โ **REST**: GET, POST ๐ฅ **GraphQL**: Query language for APIs โ **WHAT API**: Best [explanation for APIs โ](https://www.youtube.com/watch?v=s7wmiS2mSXY) ]] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bright.png), linear-gradient(to bottom, #DCE35B, #48B749) .column_t2.font10em[ <img class='w100p pulseImg md' src="img/md.png" /> ] .column_t2[.vmiddle.pushfront[ # Markup --- Markups are converted into HTML via build tools. --- ๐ [**Markdown**](https://guides.github.com/pdfs/markdown-cheatsheet-online.pdf): The best lightweight [markup](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) ๐ฅ [**MDX**](https://github.com/mdx-js/mdx): Markdown + JSX for JavaScript + React ๐ **MOAAR**: [Pug](https://pugjs.org/) | {{ [mustache](http://mustache.github.io/) }} | [Handlebars.js](https://handlebarsjs.com/) ]] --- class: center, middle, bgGradient layout: false # ๐ญ โ ๐ซ โ ๐ โ ๐ โ ๐ค โ ๐ง โ โ <br> <hr> <br> ## FEELING OVERWHELMED? --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #0E1E25, #2D3B41) .column_t2[.vmiddle.pushfront.padRight[ # Let's DO A PROJECT --- Let's build a blog with JAMstack. --- ๐ Demo [UET-JAMstack.netlify.com โ](https://uet-jamstack.netlify.com/) โ๏ธ **Gatsby**: React.js based Static Site Generator โ [**Netlify**](https://netlify.com/): #JAMstack Hosting & a lot more ๐ฅ **MOAAR**: [Linode](https://www.linode.com/) | [DigitalOcean](https://www.digitalocean.com/) โ ]] .column_t2.font10em[ <a class="imgLnk" href="https://uet-jamstack.netlify.com/"> <img class='w100p pulseImg prjt' src="img/project.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #6EC049, #333333) .column_t2[.vmiddle.pushfront.padRight[ # Node.js --- An open-source, cross-platform JavaScript run-time environment that executes JavaScript code outside of a browser. --- โฌ๏ธ [Download & Install โ](https://nodejs.org/) ๐ Cross platform JavaScript ๐ฒ Built on Chrome's V8 JavaScript engine ๐ฏ Incredibly amazing eco-system for developers ]] .column_t2.font10em[ <a class="imgLnk" href="https://www.npmjs.com/"> <img class='w100p pulseImg node' src="img/node.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #CA3534, #611014) .column_t2[.vmiddle.pushfront.padRight[ # npm --- [`npm`](https://www.npmjs.com/) is the node package manager. --- โ It's used for the JavaScript language ๐ฏ It is the default package manager for Node.js ]] .column_t2.font10em[ <a class="imgLnk" href="https://www.npmjs.com/"> <img class='w100p pulseImg ' src="img/npm.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #663399, #1E1D40) .column_t2[.vmiddle.pushfront.padRight[ # Gatsby --- Blazing fast modern site generator for React. --- ๐ฏ Impressive [documentation โ](https://www.gatsbyjs.org/docs/) ๐ฏ Learn everything with this [Gatsby tutorial โ](https://www.gatsbyjs.org/tutorial/) ๐ React.js/GraphQL/Plugins/Community has it all ]] .column_t2.font10em[ <a class="imgLnk" href="https://www.gatsbyjs.org/"> <img class='w100p pulseImg gatsby' src="img/gatsby.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bright.png), linear-gradient(to bottom, #663399, #1E1D40) .column_t2.font10em[ <a class="imgLnk" href="https://www.gatsbyjs.org/docs/"> <img class='w100p ' src="img/gatsby.gif" /> </a> ] .column_t2[.vmiddle.pushfront[ ## .center[โ๏ธ Gatsby Usage] --- ```shell # 1. Install Gatsby CLI globally. npm install --global gatsby-cli # 2. Create a new Gatsby blog. gatsby new blog gatsbyjs/gatsby-starter-blog # 3. Browse the new blog folder. cd blog # 4. Start the gatsby gatsby develop # 5. To build gatsby site gatsby build ``` --- .center[๐ Read the [documentation โ](https://www.gatsbyjs.org/docs/)] --- ]] --- class: center, middle, bgGatsby layout: false .vidTtl[ ### Gatsby Blog in Markdown ] <video controls muted src="img/gatsby.mp4" > Sorry, your browser doesn't support embedded videos. </video> --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #0E1E25, #2D3B41) .column_t2[.vmiddle.pushfront.padRight[ # Netlify --- It's a #JAMstack hosting but a lot more than that. --- ๐ค Automatic deployment / Cache invalidation โก HTTPS, Custom domain, DNS Management ๐ฎ Serverless: Deploy AWS Lambda functions ๐จ Contact forms without JS or server-side code ๐ฆ Authentication signups, logins, & pass recovery ๐คซ [MOAR features โ](https://www.netlify.com/features/) ]] .column_t2.font10em[ <a class="imgLnk" href="https://www.netlify.com/"> <img class='w100p pulseImg netlifyLogo' src="img/netlify.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #0E1E25, #2D3B41) .column_t2[.vmiddle.pushfront.padRight[ # Netlify: Connect --- It's a #JAMstack hosting but a lot more than that. --- 1๏ธโฃ Connect your repository ]] .column_t2.font10em[ <a class="imgLnk" href="https://www.netlify.com/"> <img class='w100p pulseImg netlify' src="img/1netlify.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #0E1E25, #2D3B41) .column_t2[.vmiddle.pushfront.padRight[ # Netlify: Build --- It's a #JAMstack hosting but a lot more than that. --- 1๏ธโฃ Connect your repository 2๏ธโฃ๏ธโฃ Add your build settings ]] .column_t2.font10em[ <a class="imgLnk" href="https://www.netlify.com/"> <img class='w100p pulseImg netlify' src="img/2netlify.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #0E1E25, #2D3B41) .column_t2[.vmiddle.pushfront.padRight[ # Netlify: Deploy --- It's a #JAMstack hosting but a lot more than that. --- 1๏ธโฃ Connect your repository 2๏ธโฃ๏ธโฃ Add your build settings 3๏ธโฃ๏ธโฃ๏ธ Deploy your website ]] .column_t2.font10em[ <a class="imgLnk" href="https://www.netlify.com/"> <img class='w100p pulseImg netlify' src="img/3netlify.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bleft.png), linear-gradient(to bottom, #070741, #200EA2) .column_t2[.vmiddle.pushfront.padRight[ # Personal Branding --- As a CS Engineer, you must have a blog on a domain with your own name. --- โ Buy `YourName.tld` right away โ๏ธ Write content to share what you stand for ๐ฏ Create `Contact Me` + `About Me` Pages ๐จ You must have a clear email address โ E.g. `hello@yourname.tld` โ E.g. `MrName@gmail.com` โ E.g. `NameMe@gmail.com` ]] .column_t2.font10em[ <a class="imgLnk" href="https://AhmadAwais.com/"> <img class='w100p pulseImg ' src="img/aacom.png" /> </a> ] --- class: split-50 nopadding bkgpos_00 background-image: url(img/bright.png), linear-gradient(to bottom, #542B3E, #542B3E) .column_t2.font10em[ <a class="imgLnk" href="https://hacktoberfest.digitalocean.com/"> <img class='w100p pulseImg ' src="img/hacktoberfest.png" /> </a> ] .column_t2[.vmiddle.pushfront[ # HACKTOBERFEST --- Event for open source awareness. --- ๐ Earn a limited edition T-shirt โ๏ธ Do 5 pull requests on GitHub ๐บ Watch my [#OneDevMinute to learn how โ](https://www.youtube.com/watch?v=MnCfVxSw3ak) ]] --- class: center, middle, bgGradient layout: false # ๐ค โ ๐ โ ๐ง โ ๐ค โ ๐คซ โ ๐ โ ๐ค <br> <hr> <br> ## BE PROFESSIONAL! --- class: center, middle, bgGradient, sponsors layout: false [![sponsors](img/sponsors.jpg)](https://2018.theopendev.com/#sponsors) <br> <hr> <br> ## THANKS TO OUR SPONSORS! --- class: split-50 nopadding bkgpos_00 background-image: url(img/bright.png), linear-gradient(to bottom, #292F33, #654500) .column_t2.font10em[ <i class="pulse twa twa-2x twa-smiling-face-with-sunglasses" style="position:absolute; bottom:2rem; left:7rem; margin:0 !important;"></i> ] .column_t2[.vmiddle.pushfront[ .center[ # Questions?! --- ๐ฏ Follow Ahmad on Twitter [@MrAhmadAwais โ](https://twitter.com/mrahmadawais/) ๐ฏ I'll share the slides [link on Twitter โ](https://twitter.com/mrahmadawais/)] --- ] ]]