Adam Meola - logo

Adam Meola

Site notes:

This site was constructed with:
  • code sharing between this page, and fallback for older browsers here
    • html (ejs)
    • css (scss)
    • javascript modules
      • written in es6, compiles to es4-6
  • Node JS
    • as a static site generating compiler
      • compiles
        • EJS to html
        • app.js (uses includes), compiles to es6 and es5 (using webpack)
        • oldBrowser.js (uses includes), compiles to es4 (using browserify
        • style.scss using node-sass (c++ module, much faster than the java compiler)
    • as a live build server
      • compiles any of the above, when a relevant file changes
      • serves to web site (over local IP or localhost is an option)
  • Sizzle
    • that's the selector engine from jQuery, but JUST that bit.
      • (way lighter)
  • SCSS
    • variables and for loops are handy.
    • mixins are ok...
      • most of these animations are CSS3
        • unless you're on the fallback page, in which case; it's all javascript
  • post-css
    • just for automatic vendor prefixing

Build Process:



This gif shows my build script
  • please note the nifty Cylon i've made, which runs in the terminal, whhile tasks are completing or the program is waiting
  • building HTML from EJS
  • compiling commonJS ES6 javascript (requires) to:
    • ES6
    • ES5
    • ES4 (for a seperare fallback page)
      • shares EJS, SCSS, and JS with the main app
  • compiling SCSS to CSS
    • using node-sass
      • written in C++, way faster than the ruby lib



  • creates an express server for the newsly created "dev" folder
    • CSS and JS are both source mapped
  • creates an express server for the newsly created "prod" folder
    • source maps cleaned
    • files minified
  • launches a web page with links to the relevant pages
  • watches files for changes, recompiling and/or copying files as needed

Free Stuff:

Desktop Backgrounds:

HorizonBG Just 1px wide slice of a sunset i liked, stretche

...which can also be used to make things run in sequnce, by setting the size aregument to 1

The "size" argument sets how many functions are allowed to run simultaniously

Mac apps:

copyPath A simple utility app. Keep it in your dock to easily copy the file path of documents and folder

(very handy for pasting network paths in emails)
macKeys A silly little "always on top" app, which simply shows a legend of those odd glyphs
openInAtom A simple shortcut written in apple-script
use "⌘ + space" or a dock shortcut to open your current focussed finder folder in Atom Editor
openInTerminal A simple shortcut written in apple-script
use "⌘ + space" or a dock shortcut to open your current focussed finder folder in the terminal
toggleHidden A simple shortcut written in apple-script
use "⌘ + space" or a dock shortcut to toggle the visibility of hidden items in the finder
toggleKeys A simple shortcut written in apple-script
use "⌘ + space" or a dock shortcut to toggle the "Use F1, F2, etc. keys as standard function keys" setting in OSX
(very handy for photoshop, pro-tools, Final Cut, and Mya users)

Node Packages:

FuncCon An old strategy for executing a function after a serious of asynchronous functions run to completion.

...which can also be used to make things run in sequnce, by setting the size aregument to 1

The "size" argument sets how many functions are allowed to run simultaniously
Git Loop This is a simple interactive CLI, which commits every 2, 5, 10, 15, 30, 45, or 60 minutes, with the date and time as the commit' s message.
Mass Sass A simple interactive CLI, for compiling all SCSS files in a given folder, via node-sass (way faster than the original ruby build)
Busy Cylon A nifty little cylon, to run in the terminal; to let you know that your process is still working, and not frozen. Basically, an alternative to the 3 dots...

Demos:

Adam Meola - Demo App

Download for Mac
Download for Windows (32-bit)
Download for Windows (64-bit)

Note: You'll have to give your system permission to run the app. This is because i'm an "unidentified developer"

This would of course not be the case in production.