Merge branch 'master' into dev-ayo

This commit is contained in:
Ayo Ayco 2019-03-27 19:06:45 +08:00
commit 08fe4da837
42 changed files with 1376 additions and 98 deletions

2
.gitignore vendored
View file

@ -1,4 +1,6 @@
_site _site
vendor
.bundle
.sass-cache .sass-cache
.jekyll-metadata .jekyll-metadata
*~ *~

3
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,3 @@
{
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\bash.exe",
}

View file

@ -28,3 +28,4 @@ end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'jemoji'

View file

@ -1,6 +1,11 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
activesupport (5.2.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
addressable (2.5.2) addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0) public_suffix (>= 2.0.2, < 4.0)
colorator (1.1.0) colorator (1.1.0)
@ -8,13 +13,17 @@ GEM
em-websocket (0.5.1) em-websocket (0.5.1)
eventmachine (>= 0.12.9) eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0) http_parser.rb (~> 0.6.0)
eventmachine (1.2.5) eventmachine (1.2.7)
ffi (1.9.18) ffi (1.9.25)
forwardable-extended (2.6.0) forwardable-extended (2.6.0)
gemoji (3.0.0)
html-pipeline (2.8.4)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.6.0) http_parser.rb (0.6.0)
i18n (0.9.1) i18n (0.9.5)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
jekyll (3.7.0) jekyll (3.7.4)
addressable (~> 2.4) addressable (~> 2.4)
colorator (~> 1.0) colorator (~> 1.0)
em-websocket (~> 0.5) em-websocket (~> 0.5)
@ -27,35 +36,50 @@ GEM
pathutil (~> 0.9) pathutil (~> 0.9)
rouge (>= 1.7, < 4) rouge (>= 1.7, < 4)
safe_yaml (~> 1.0) safe_yaml (~> 1.0)
jekyll-feed (0.9.2) jekyll-feed (0.11.0)
jekyll (~> 3.3) jekyll (~> 3.3)
jekyll-sass-converter (1.5.1) jekyll-sass-converter (1.5.2)
sass (~> 3.4) sass (~> 3.4)
jekyll-seo-tag (2.5.0)
jekyll (~> 3.3)
jekyll-watch (2.0.0) jekyll-watch (2.0.0)
listen (~> 3.0) listen (~> 3.0)
kramdown (1.16.2) jemoji (0.10.1)
gemoji (~> 3.0)
html-pipeline (~> 2.2)
jekyll (~> 3.0)
kramdown (1.17.0)
liquid (4.0.0) liquid (4.0.0)
listen (3.1.5) listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4) rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7) rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2) ruby_dep (~> 1.2)
mercenary (0.3.6) mercenary (0.3.6)
minima (2.1.1) mini_portile2 (2.3.0)
jekyll (~> 3.3) minima (2.5.0)
jekyll (~> 3.5)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.11.3)
nokogiri (1.8.4)
mini_portile2 (~> 2.3.0)
pathutil (0.16.1) pathutil (0.16.1)
forwardable-extended (~> 2.6) forwardable-extended (~> 2.6)
public_suffix (3.0.1) public_suffix (3.0.3)
rb-fsevent (0.10.2) rb-fsevent (0.10.3)
rb-inotify (0.9.10) rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2) ffi (>= 0.5.0, < 2)
rouge (3.1.0) rouge (3.2.1)
ruby_dep (1.5.0) ruby_dep (1.5.0)
safe_yaml (1.0.4) safe_yaml (1.0.4)
sass (3.5.5) sass (3.5.7)
sass-listen (~> 4.0.0) sass-listen (~> 4.0.0)
sass-listen (4.0.0) sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4) rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7) rb-inotify (~> 0.9, >= 0.9.7)
thread_safe (0.3.6)
tzinfo (1.2.5)
thread_safe (~> 0.1)
PLATFORMS PLATFORMS
ruby ruby
@ -63,9 +87,10 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
jekyll (~> 3.7.0) jekyll (~> 3.7.0)
jekyll-feed (~> 0.6) jekyll-feed (~> 0.6)
jemoji
minima (~> 2.0) minima (~> 2.0)
rouge rouge
tzinfo-data tzinfo-data
BUNDLED WITH BUNDLED WITH
1.16.0 1.16.4

View file

@ -1 +1,5 @@
This blog is build with Jekyll on top of the default [Minima theme](https://github.com/jekyll/minima). This blog is built with Jekyll on top of the default [Minima theme](https://github.com/jekyll/minima).
## Some things that will be included in this readme in the future:
1. Generating thumbnails and optimizing images

View file

@ -35,6 +35,7 @@ theme: minima
highighter: rouge highighter: rouge
plugins: plugins:
- jekyll-feed - jekyll-feed
- jemoji
defaults: defaults:
- -

View file

@ -0,0 +1,27 @@
---
title: "How To Take Back Your Online Privacy"
permalink: "/online-privacy"
description: "Information technology has boomed in recent history allowing humans interact and conduct businesses online, but what does this mean for our privacy?"
keywords: ""
image: "ubuntu-dev-setup"
image-attrib: ""
---
<span class="first-letter">I</span>f you are like me, there often comes a time when you are out and paranoia hits, and you begin to wonder whether you forgot to lock the doors of your house or car. <!--more-->
Fortunately, in the physical world it is easy to check whether your valuable stuff are secure, right? Just don't forget to lock the doors, set up some CCTV cameras, chain 'em, cage 'em, and lock 'em up.
These measures exist because we want our valuables to be protected from others.
Why then should our digital world be different?
How can we make sure that our valuable personal information are secure and private when we upload them online?
<!--
And in the physical world, privacy is something that we demand for automatically... can you imagine trying on some pants in the Department Store without privacy?
Here, in the Philippines, where I live, there is a proposal to implement a National ID system that aims to centralize all digital information of citizens.
-->

View file

@ -0,0 +1,111 @@
---
title: "For Developers: How To Deploy Your Angular App on the Web for Free Using Github Pages"
permalink: "/deploy-angular-ghpages"
description: "Did you know you can host your Angular App on Github Pages for free? Perfect for deploying prototypes and simple web apps"
keywords: ""
image: "ubuntu-dev-setup"
image-attrib: ""
---
<span class="first-letter">T</span>oday, as a learning exercise, I deployed a very simple [Angular app on the Web](https://fullhacker.com/cartph). This setup is perfect for when you just want to deploy your web app in a production environment but does not want to invest in a full-blown paid hosting service.
Yep, this is free.<!--more-->
This is how it works:
- All the code for the app is stored in a [Github repository](https://github.com/ayoayco/myapp) which has a dedicated branch for the production build of the app.
- The web app is automatically deployed and hosted by [Github Pages](https://pages.github.com) who listens to any changes made in this dedicated production branch.
That's it!
Here are the steps to setup an Angular project that you will deploy in Github Pages.
## Create a new Angular project on your computer
Before you can dream of having an Angular app deployed on the web, you first need to create it on your local machine. Angular CLI is the perfect tool to do this, as it automatically scaffolds a very basic Angular project which you can then hack to your heart's content.
Here's how you do that:
If you don't have Node.js and NPM yet, install them first.
After installing Node.js with NPM, we need to install Angular CLI globally. Open a terminal and type in:
```bash
npm i -g @angular/cli
```
Next, we use Angular CLI to generate a new project, and then navigate inside the directory:
```bash
ng new myapp
cd myapp
```
Then, install all necessary node modules for the project. Make sure you are inside the project directory before typing in this command:
```bash
npm i
```
After installing the required node modules, you now have a fully working Angular app on your machin. To debug and see it on your browser, just run the angular-cli local server:
```bash
ng serve
```
After this, you may browse to [http://localhost:4200](http://localhost:4200) to see the basic Angular app that angular-cli scaffolded for you.
{% include image.html url="assets/images/screenshots/github/HelloMyApp.png" description="A very basic Angular app build with Angular CLI" %}
For more information on Angular CLI and how it works, read up on the documentations in [their website](https://cli.angular.io).
## Create a new repository at Github
Now that you have a working Angular project on your local machine, you need to create a new Github repository that will hold all your project's files. This repository will contain the *production branch* which will contain the build files for your deployed production app.
Here's what you need to do.
If you don't have a Github account yet, head [over there](https://github.com) and create one now. Here's a previous post on [why every developer needs to do this anyway](/git-and-github).
{% include image.html url="assets/images/screenshots/github/Home.png" description="Github is built for developers. It's the world's leading software development platform." %}
Next, create the repository for your Angular project.
Just click the plus icon "+" in your Github dashboard, then click the "New repository" in the menu that pops up.
{% include image.html url="assets/images/screenshots/github/NewRepo.png" description="Your personal Github dashboard shows general information on your Github activities" %}
This will then lead you to a page where you need to input the details for your new Github repository.
{% include image.html url="assets/images/screenshots/github/NewRepoDetails.png" description="The creation of a new Github repository" %}
Put the repository name you want and an optional description for the project.
Then, just leave the checkbox "Initialize this repository with a README" unchecked.
When you are satisfied with the details, click the "Create repository" button.
Now that you have created a new Github repository, we can now upload your Angular project.
Just make sure your computer is authorized to do so. :smile:
This only needs to be done once for every computer so if your Github account is not new and you already authorized your computer to push codes to your Github account, you don't need to do this now.
Here's a good [document](https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/) on how to authorize your computer to upload to your Github account's repositories.
## Upload your Angular project to your new Github repository
Right after you create the Github repository, a page will detail some options on how to fill up the new repository with files:
{% include image.html url="assets/images/screenshots/github/UploadToRepo.png" %}
We will do the steps under the third option: **push an existing repository from the command line**
In your terminal, inside the project directory, type in the commands under the third option. It should be something like:
```bash
git remote add origin git@github.com:<username>/<repository_name>.git
git push -u master
```
After doing the commands, you may now refresh the Github repository page and find your files listed there.
{% include image.html url="assets/images/screenshots/github/RepoFiles.png" %}
With your files now up in your repository, it's now time to setup your project's Github Pages.
## Setup Github Pages for your Angular project

View file

@ -8,19 +8,41 @@
gtag('config', 'UA-113797180-1'); gtag('config', 'UA-113797180-1');
</script> </script>
<meta charset="utf-8"> <title>{{page.title}} | Web Technologies and Productivity Hacks | {{site.title}}</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="description" content="Learn how to use the best and latest web technologies to boost your productivity." />
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- start: fb open graph meta tags --> <!-- Schema.org markup for Google+ -->
<meta property="og:url" content="{{ page.url | absolute_url }}" /> <meta itemprop="name" content="{{ page.title }}" />
{% if page.type == "post" %}<meta property="og:type" content="article" />{% else %}<meta property="og:type" content="website" />{% endif %} <meta itemprop="description" content="{{ page.description }}" />
<meta itemprop="image" content="{{ '/assets/images/' | absolute_url }}{{ page.image }}.jpg" />
<!-- Twitter Card data -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@fullhackerblog" />
<meta name="twitter:title" content="{{ page.title}}" />
<meta name="twitter:description" content="{{ page.description }}" />
<meta name="twitter:creator" content="@ayoayco_public" />
<!-- Twitter summary card with large image must be at least 280x150px -->
<meta name="twitter:image:src" content="{{ '/assets/images/' | absolute_url }}{{ page.image }}.jpg" />
<!-- Open Graph data -->
<meta property="og:title" content="{{ page.title }}" /> <meta property="og:title" content="{{ page.title }}" />
{% if page.type == "post" %}
<meta property="og:type" content="article" />{% else %}<meta property="og:type" content="website" />{% endif %}
<meta property="og:url" content="{{ page.url | absolute_url }}" />
<meta property="og:image" content="{{ '/assets/images/' | absolute_url }}{{ page.image }}.jpg" />
<meta property="og:image:alt" content="{{ page.description }}" />
<meta property="og:description" content="{{ page.description }}" /> <meta property="og:description" content="{{ page.description }}" />
<meta property="og:image" content="{{ '/assets/images/' | absolute_url }}{{ page.image }}" /> <meta property="og:site_name" content="Full Hacker" />
<!-- end: fb open graph meta tags--> <meta property="fb:admins" content="748355687" />
<!--meta property="article:published_time" content="2013-09-17T05:59:00+01:00" />
<meta property="article:modified_time" content="2013-09-16T19:08:47+01:00" />
<meta property="article:section" content="Article Section" />
<meta property="article:tag" content="Article Tag" /-->
<title>Web Development and Productivity Hacks | {{site.title}}</title>
<link rel="stylesheet" href="{{ '/assets/main.css' | relative_url }}"> <link rel="stylesheet" href="{{ '/assets/main.css' | relative_url }}">
<link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ '/feed.xml' | relative_url }}"> <link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ '/feed.xml' | relative_url }}">
@ -34,5 +56,5 @@
<script <script
src="https://code.jquery.com/jquery-3.2.1.min.js" src="https://code.jquery.com/jquery-3.2.1.min.js"
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
crossorigin="anonymous"></script> crossorigin="anonymous"></script>
</head> </head>

4
_includes/image.html Normal file
View file

@ -0,0 +1,4 @@
<table class="image">
<caption align="bottom">{{ include.description }}</caption>
<tr><td><img src="{{ include.url }}" alt="{{ include.description }}"/></td></tr>
</table>

View file

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: " en " }}"> <html itemscope itemtype="http://schema.org/Article" lang="{{ page.lang | default: site.lang | default: " en " }}">
{% include head.html %} {% include head.html %}
@ -19,13 +19,8 @@
<div class="site-container"> <div class="site-container">
{% include header.html %} {% if page.type == "home" %} {% include header.html %} {% if page.type == "home" %}
<div class="jumbotron"> <!--div class="jumbotron">
<div class="jumbotron-content"> <div class="jumbotron-content">
<!-- div id="logo-div" class="float-left">
<img src="../assets/images/logo.png" />
</div -->
<!-- Begin MailChimp Signup Form -->
<div id="mc_embed_signup" class="float-left"> <div id="mc_embed_signup" class="float-left">
<form action="https://github.us17.list-manage.com/subscribe/post?u=85102052c447ce8a8bba06f24&amp;id=2366f7f35a" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> <form action="https://github.us17.list-manage.com/subscribe/post?u=85102052c447ce8a8bba06f24&amp;id=2366f7f35a" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll"> <div id="mc_embed_signup_scroll">
@ -45,10 +40,9 @@
</div> </div>
</form> </form>
</div> </div>
<!--End mc_embed_signup-->
<div class="clear-both"></div> <div class="clear-both"></div>
</div> </div>
</div> </div-->
{% endif %} {% endif %}
@ -65,8 +59,8 @@
<div class="ayo-thumb"> <div class="ayo-thumb">
<img src="../assets/images/ayo.jpg" alt="Free exclusive web development tips!" /> <img src="../assets/images/ayo.jpg" alt="Free exclusive web development tips!" />
</div> </div>
<h2 style="font-weight: bold; text-align: center">Hi! I'm Ayo!</h2> <h2>Web Technologies and Productivity Hacks</h2>
<p>Thanks for dropping by! I started this website with the hope of having a place to share things I think will be helpful to developers such as myself. I hope you come by more often and find some interesting stuff!</p> <p>Learn how to use the best and latest web applications and technologies to boost your productivity.</p>
<div class="post-readmore"><a class="button" href="/about/">About The Author</a></div> <div class="post-readmore"><a class="button" href="/about/">About The Author</a></div>
</div> </div>
{% endif %} {% endif %}

View file

@ -20,7 +20,7 @@ layout: default
<a class="post-link post-title" href="{{ post.url | relative_url }}">{{ post.title | escape }}</a> <a class="post-link post-title" href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
</h3> </h3>
<div class="float-left post-excerpt"> <div class="float-left post-excerpt">
<img class="float-right post-thumb" alt="{{ post.description | escape }}" src="../assets/images/{{ post.image }}" /> <img class="float-right post-thumb" alt="{{ post.description | escape }}" src="../assets/images/{{ post.image }}_small.jpg" />
{{ post.excerpt }} {{ post.excerpt }}
</div> </div>
<div class="clear-both"></div> <div class="clear-both"></div>

View file

@ -15,7 +15,7 @@ layout: default
</p> </p>
<h3 class="post-title p-name" itemprop="name headline">{{ page.title | escape }}</h3> <h3 class="post-title p-name" itemprop="name headline">{{ page.title | escape }}</h3>
<img alt="{{ page.title }} | Developer Blog How To" title="{{page.image-attrib}}" src="../assets/images/{{page.image}}" /> <img alt="{{ page.description }} | Developer Blog How To" title="{{page.image-attrib}}" src="../assets/images/{{page.image}}.jpg" />
</header> </header>
<div class="post-content e-content" itemprop="articleBody"> <div class="post-content e-content" itemprop="articleBody">

View file

@ -3,10 +3,10 @@ title: "Full Hacker: A New Site for Web Development and Productivity Hacks!"
permalink: "/hello-world" permalink: "/hello-world"
description: "Introducing Full Hacker: new site for web development and productivity hacks." description: "Introducing Full Hacker: new site for web development and productivity hacks."
keywords: "" keywords: ""
image: "hello-world.jpg" image: "hello-world"
image-attrib: "Photo stock by Lukas from Pexel." image-attrib: "Photo stock by Lukas from Pexel."
--- ---
It's kind of getting old, I know. <span class="first-letter">I</span>t's kind of getting old, I know.
A new blog... *again?* What's this all about? A new blog... *again?* What's this all about?

View file

@ -3,12 +3,10 @@ title: "Who We Are and What's Our Purpose"
permalink: "/who-we-are" permalink: "/who-we-are"
description: "First, I want to talk about the reason for this new blog: YOU!" description: "First, I want to talk about the reason for this new blog: YOU!"
keywords: "" keywords: ""
image: "who-we-are.jpg" image: "who-we-are"
image-attrib: "Photo stock by Lukas from Pexel." image-attrib: "Photo stock by Lukas from Pexel."
--- ---
First things first. <span class="first-letter">F</span>irst things first. Before I write any blog at all, I want to take this time to talk about YOU GUYS! --the people for whom I will be writing and the shared purpose we are going to have here in Full Hacker.
Before I write any blog at all, I want to take this time to talk about YOU GUYS! --the people for whom I will be writing and the shared purpose we are going to have here in Full Hacker.
You may be asking, "is this really going to be helpful for me?" You may be asking, "is this really going to be helpful for me?"

View file

@ -3,16 +3,18 @@ title: "What Is Github and Why Every Developer Needs It"
permalink: "/git-and-github" permalink: "/git-and-github"
description: "I strongly believe that every developer should know Git and Github. Here's why." description: "I strongly believe that every developer should know Git and Github. Here's why."
keywords: "" keywords: ""
image: "git-github.jpg" image: "git-github"
image-attrib: "Photo stock by Tim Gouw from Pexel." image-attrib: "Photo stock by Tim Gouw from Pexel."
--- ---
If you ask me for something that would greatly jumpstart your growth as a developer, I would place my bet on learning Git and exploring projects on [Github](https://github.com/explore). <span class="first-letter">I</span>f you ask me for something that would greatly jumpstart your growth as a developer, I would place my bet on learning Git and exploring projects on [Github](https://github.com/explore).
I say this because to be better in writing code, you must first read and use lots and lots of code by more experienced developers... and a good place to start with this is Github. I say this because to be better in writing code, you must first read and use lots and lots of code by more experienced developers... and a good place to start with this is Github.
<!--more--> <!--more-->
Now, what exactly is Github? ## Now, what exactly is Github?
{% include image.html url="assets/images/screenshots/github/Home.png" description="Github is built for developers. It's the world's leading software development platform." %}
Github is basically a website for communities of developers working on projects. It is sort of a place on the Web where developers get together to collaborate. Github is basically a website for communities of developers working on projects. It is sort of a place on the Web where developers get together to collaborate.
@ -20,28 +22,41 @@ Github hosts [all sorts of projects](https://github.com/explore) from Desktop ap
There are other websites that serve this same purpose (like [Bitbucket](https://bitbucket.org) and [Gitlab](https://gitlab.com)) but Github is now the preferred home for most Open Source projects due to it being the oldest and its culture of openness. There are other websites that serve this same purpose (like [Bitbucket](https://bitbucket.org) and [Gitlab](https://gitlab.com)) but Github is now the preferred home for most Open Source projects due to it being the oldest and its culture of openness.
## Learn How Others Do It
Because of this "openness", Github is not just the best place to start or contribute to an existing project. It is also a good place to see and learn how other developers write their code. You can even observe how collaborators communicate with each other to resolve their issues. Because of this "openness", Github is not just the best place to start or contribute to an existing project. It is also a good place to see and learn how other developers write their code. You can even observe how collaborators communicate with each other to resolve their issues.
This way, the things you learn from your observations can be used not just in the way you code but also in the way you communicate with your own colleagues. This way, the things you learn from your observations can be used not just in the way you code but also in the way you communicate with your own colleagues.
Just beware: you have to know which projects are good for your level of experience because some of them requires more advanced skills before you can contribute or even just understand what is going on. Just beware: you have to know which projects are good for your level of experience because some of them requires more advanced skills before you can contribute or even just understand what is going on.
## What if You Don't want to Join Other People's Projects?
In case you don't feel like joining others, you can always use Github to host your projects. Then, you can code at your own pace using your own style and preferred technologies. In case you don't feel like joining others, you can always use Github to host your projects. Then, you can code at your own pace using your own style and preferred technologies.
You might even find that it's always a good practice to have a copy of all your code backed up in a Github repository for safekeeping. You might even find that it's always a good practice to have a copy of all your code backed up in a Github repository for safekeeping.
If you don't want to start from scratch, you can just "fork" any interesting project to get a copy in your own account... then you can practically do *anything* you want with it! If you don't want to start from scratch, you can just "fork" any interesting project to get a copy in your own account... then you can practically do *anything* you want with it!
I find this very inspiring, that I can just start using other people's code and hack it up the way I want it. Try searching for one of your favorite apps over at Github, and you just might be surprised that it's open-sourced. ## Track Your Developer Journey
When you make it a habit to always push your code changes --whether its for a mini-exercise you did as you follow a tutorial or a huge project for a client-- you will find that your Github profile is growing as well.
{% include image.html url="assets/images/screenshots/github/Profile.png" description="It adds motivation for me when I find that my Github profile is growing." %}
Also, I find it very inspiring, that I can just start using other people's code and hack it up the way I want it. Try searching for one of your favorite apps over at Github, and you just might be surprised that it's open-sourced.
If it is open-sourced, then you can play with the code yourself... or submit an issue anytime you find a bug or think of a missing feature you want to be added. Submitting issues is the easiest way to contribute to a project even without writing a single line of code. If it is open-sourced, then you can play with the code yourself... or submit an issue anytime you find a bug or think of a missing feature you want to be added. Submitting issues is the easiest way to contribute to a project even without writing a single line of code.
{% include image.html url="assets/images/screenshots/github/Explore.png" description="You can find a collection of Github projects for almost anything." %}
Isn't that great? I hope, by now, you see how Github can greatly add to your developer skills. Isn't that great? I hope, by now, you see how Github can greatly add to your developer skills.
To cut the long story short, Github is a good place to start learning how to be a developer, and check out the technologies you will use along the way... To cut the long story short, Github is a good place to start learning how to be a developer, and check out the technologies you will use along the way...
But before you hurry and join Github, there's another thing we need to talk about. You won't be able to get the most out of it without this... But before you hurry and join Github, there's another thing we need to talk about. You won't be able to get the most out of it without this... You actually need to learn how to use Git.
Well, you must first learn how to use Git as your Source Control Management. Why don't we talk about that next? But that's for another weekend. :wink:
<!--a class="button up-next" href="#git-how-to">Up Next: Read How To Use Git</a--> <!--a class="button up-next" href="#git-how-to">Up Next: Read How To Use Git</a-->

View file

@ -0,0 +1,93 @@
---
title: "3 Steps How To Quickly Setup Ubuntu for Development"
permalink: "/ubuntu-dev-setup"
description: "In this post I go through how I quickly setup an Ubuntu machine for development"
keywords: ""
image: "ubuntu-dev-setup"
image-attrib: ""
---
<span class="first-letter">W</span>henever I get a new Ubuntu machine I intend to use for development, I go through so many articles around the Web just so I can install everything I need. This is because I work on several projects using different technologies.
So I decided to write this article for quickly setting up all I need on a new Ubuntu. Following these steps will enable you to quickly setup Node.js, Python, and Ruby (for Jekyll). <!--more-->
If you need instructions on how to setup the technologies separately, this article is not for you. Feel free to come back later to check for the separate posts I will be writing for Node.js, Python, and Ruby.
## 3 Steps: Quickly Setup Node.js, Python, and Ruby on Your New Ubuntu Machine
1. Open a terminal, and type the following to download the .deb installer of Node.js 8
```bash
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
```
1. Update your repositories. The terminal may have to ask your password before it proceeds.
```bash
sudo apt-get update
```
2. Install packages for development using nodejs, ruby, and python. This may take a while to finish (depending on your Internet connection speed).
```bash
sudo apt-get install -y nodejs ruby ruby-dev build-essential dh-autoreconf make python3-pip libssl-dev libffi-dev python3-dev virtualenv python3-venv
```
When the install finishes, you now have Node.js, Python, and Ruby installed. To verify if they are successfully installed and check for each of their versions, type the following on your terminal.
```bash
# to check for Node.js version
node --version
# this will also work
node -v
```
```bash
# to check for Python version
python --version
```
```bash
# to check for Ruby version
ruby --version
```
Of course, this is not yet totally complete because I still have to setup Angular CLI next, or React.js, or other frameworks/tools. But after these 3 steps, I will have all the package management tools I need to proceed with all other setups. :smile:
## Bonus: Here's How You Can Setup Ubuntu for Jekyll Development
[Jekyll](https://jekyllrb.com) is a technology that will "Transform your plain text into static websites and blogs." It's like **blogging for hackers**, and I use it for this very blog, hosted for free on Github Pages. When all you need is a quick way to put content online, you can never go wrong with it, believe me.
I will write more about Jekyll and Github Pages later, but for now, here's how I set it up.
1. Open a text editor, then add the following two lines at the end of the file ```~/.bashrc```:
```bash
export GEM_HOME=$HOME/gems
export PATH=$HOME/gems/bin:$PATH
```
2. On your terminal, run the following to reflect the changes:
```bash
source ~/.bashrc
```
3. Then, proceed to install necessary Ruby Gems:
```bash
sudo gem update
gem install jekyll bundler
```
4. Go to jekyll project directory (if you already have one) or generate a new Jekyll, then install the dependencies:
```bash
# create new jekyll project
jekyll new my-awesome-site
# go to directory
cd my-awesome-site
# install dependencies
bundle install
```
5. After installing the dependencies, you may now start the Jekyll server:
```bash
bundle exec jekyll serve
```
Your website will be accessible at ```http://localhost:4000``` by default.

View file

@ -0,0 +1,20 @@
---
title: "Feels FM: An Emoji-Powered Jukebox for Your Mental Health"
permalink: "/feels-fm"
description: "There's nothing worse for your productivity than an anxiety or depression attack. What do you do when you don't want to do anything or talk to anyone?"
keywords: ""
image: "feels-fm"
image-attrib: ""
---
<span class="first-letter">T</span>here's nothing worse for your productivity than an anxiety or depression attack. What if, just for the mean time, you don't have to talk to anyone to get your mood up?
Here's a tool that just might help when you don't feel like going out or doing anything at all.<!--more-->
[Feels FM](https://feelsfm.co.uk/) is an emoji-powered radio. It's really simple to use, you can do it even on days when you have zero motivation. Just choose an emoji that best represents your feels, answer some really simple questions like your birth year, and BOOM: a personalized music playlist to brighten up your day!
I'm listening to a playlist now as I write this. I have to say the music selection is on-point! You can even save the playlist to your Spotify account. Neeeeeat! :smile:
The web app was made in collaboration with mental health charity "See Me". It aims to create a playful, interactive space where young people can share how they are feeling without the pressure of having to have a big conversation.
Check it out for yourself at [https://feelsfm.co.uk](https://feelsfm.co.uk/)

View file

@ -5,9 +5,9 @@ permalink: /about/
type: about type: about
--- ---
[Ayo Ayco](http://AyoAyco.com) is the blogger behind the Full Hacker blog, and founder of Absorbing Design and Cart.ph. [Ayo Ayco](http://AyoAyco.com), also known as Ramon Ayco Jr., is the blogger behind the Full Hacker blog.
He has contributed software development expertise to the University of the Philippines Los Baños' IT Center, UNICEF's WebSAFE for Children, Infor, and various government-funded projects such as the University of the Philippines National Operational Assessment of Hazards (Fomerly DOST NOAH) and Ateneo Java Wireless (AJWCC). He has contributed software development expertise to [UPLB](http://itc.uplb.edu.ph), [DOST](http://dost.gov.ph), [Infor](http://infor.com), and various government-funded projects such as University of the Philippines' [National Operational Assessment of Hazards](http://noah.up.edu.ph) and Ateneo's [Cloud-Based Intelligent Total Analysis System](http://v2.citas.ph).
He is a passionate learner and is quite fond of explaining how things work. Now he works anywhere he wants with his beautiful wife, Jen, and adorable son, Kahel. He is a passionate learner and is quite fond of explaining how things work. Now he works on ERP software created for the Cloud.<!-- anywhere he wants with his beautiful wife, Jen, and adorable son, Kahel. -->

View file

@ -1,19 +0,0 @@
---
layout: page
title: "About the Author"
permalink: /about/
type: about
---
Let me introduce myself...
Hi! I'm [Ayo](http://ayoayco.com), a Software Engineer by profession who occasionally *delves* into some art, music, and literature.
I live in the Philippines with my wife, Jen, and our little boy, Kahel... with whom I often go travel around to take pictures, eat local delicacies, and make lots of fun memories. I work remotely so I don't really have to be physically at the office most of the time... meaning, I have more time to spend with the fam!
That's also why I think I can start blogging *again*. Let's talk more about the pros and cons of Remote Work sometime. :)
Here, I write my **notes on technology and life...** hoping to help, if not inspire, others to live more efficient, happier lives. If you want to learn more about the website, you can go read [the first post ever!!!](/hello-world)
I'm so glad you came by. Who knows? You just might enjoy reading some posts, right? :)

BIN
assets/images/ayo_small.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/images/feels-fm.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View file

@ -35,6 +35,7 @@ body {
.post-content h2, .post-content h2,
.post-content h3 { .post-content h3 {
padding-top: 20px; padding-top: 20px;
font-weight: bold;
} }
header.site-header { header.site-header {
@ -73,6 +74,29 @@ article .post-content ol li,
margin-top: 29px; margin-top: 29px;
} }
table, table.image,
table td, table th,
table.image td, table.image th {
border: 0px !important;
}
table td, table th,
table.image td, table.image th {
padding: 10px 0 !important;
}
table.image img {
border: 1px solid #cccccc;
}
caption {
font-size: 16px;
}
.page-content {
padding: 15px 0 !important;
}
.page-content-home { .page-content-home {
background-color: #e4e2dd; background-color: #e4e2dd;
} }
@ -167,11 +191,36 @@ article .post-content ol li,
width: 100%; width: 100%;
} }
#about-me h2 {
font-size: 23px;
font-weight: bold;
}
#about-me { #about-me {
padding: 30px 15px 15px; padding: 1rem 1rem 0.5rem;
position: relative;
text-align: center;
font-size: 14px;
}
#about-me::after {
content: "";
margin-left: -8px;
display: block;
width: 0;
height: 0;
position: absolute;
bottom: -8px;
left: 50%;
border-bottom: 0 inset transparent;
border-left: 8px inset transparent;
border-right: 8px inset transparent;
border-top: 8px solid #8dbf42;
} }
#donate-form { #donate-form {
background-color: #80ae3c !important;
height: 50px; height: 50px;
padding: 30px 0; padding: 30px 0;
} }
@ -244,7 +293,7 @@ article .post-content ol li,
} }
.subscription-message-text { .subscription-message-text {
width: 270px; width: 290px;
} }
.subscription-message-div:after { .subscription-message-div:after {
@ -284,7 +333,7 @@ article .post-content ol li,
.ayo-thumb img { .ayo-thumb img {
border-radius: 50%; border-radius: 50%;
border: 1px solid hsla(0, 0%, 100%, .3) !important; border: 1px solid hsla(0, 0%, 100%, .3) !important;
margin: 2px; margin: 2px 2px 15px;
} }
.ayo-thumb { .ayo-thumb {
@ -298,12 +347,12 @@ article .post-content ol li,
} }
main.page-content { main.page-content {
width: 70%; width: calc(70% - 20px);
} }
nav#side-nav { nav#side-nav {
width: calc(30% - 30px); width: calc(30% - 10px);
margin: 45px 0 30px; margin: 30px 0;
box-shadow: 5px 25px 30px -25px rgba(34, 34, 34, .25); box-shadow: 5px 25px 30px -25px rgba(34, 34, 34, .25);
} }
@ -321,13 +370,21 @@ nav#side-nav {
.page-content .wrapper .post { .page-content .wrapper .post {
padding: 30px; padding: 30px;
background-color: white; background-color: white;
margin-top: 15px; margin: 15px 0 30px;
} }
.site-container { .site-container {
background-color: #e4e2dd; background-color: #e4e2dd;
} }
.first-letter {
font-size: 75px;
line-height: 60px;
float: left;
padding: 0px 8px 0 3px;
color: #8A2BE2;
}
@media only screen and (min-width: 0px) and (max-width: 350px) { @media only screen and (min-width: 0px) and (max-width: 350px) {
div.subscription-message-div { div.subscription-message-div {
display: none !important; display: none !important;
@ -339,10 +396,15 @@ nav#side-nav {
article .post-content p, article .post-content p,
article .post-content ul li, article .post-content ul li,
article .post-content ol li, article .post-content ol li,
.home .post-excerpt p { .home .post-excerpt p
{
font-size: 16px; font-size: 16px;
} }
caption {
font-size: 12px;
}
.jumbotron { .jumbotron {
background: rgba(141, 191, 66, .97)!important; background: rgba(141, 191, 66, .97)!important;
width: 100%; width: 100%;
@ -430,3 +492,8 @@ nav#side-nav {
background: rgba(141, 191, 66, .97)!important; background: rgba(141, 191, 66, .97)!important;
} }
} }
table.image caption {
font-size: small;
font-style: italic;
}

910
emoji-cheat-sheet.md Normal file
View file

@ -0,0 +1,910 @@
```markdown
EMOJI CHEAT SHEET
Emoji emoticons listed on this page are supported on Campfire, GitHub, Basecamp, Redbooth, Trac, Flowdock, Sprint.ly, Kandan, Textbox.io, Kippt, Redmine, JabbR, Trello, Hall, plug.dj, Qiita, Zendesk, Ruby China, Grove, Idobata, NodeBB Forums, Slack, Streamup, OrganisedMinds, Hackpad, Cryptbin, Kato, Reportedly, Cheerful Ghost, IRCCloud, Dashcube, MyVideoGameList, Subrosa, Sococo, Quip, And Bang, Bonusly, Discourse, Ello, and Twemoji Awesome.
However some of the emoji codes are not super easy to remember, so here is a little cheat sheet.
✈ Got flash enabled? Click the emoji code and it will be copied to your clipboard.
People
:bowtie:
:smile:
:laughing:
:blush:
:smiley:
:relaxed:
:smirk:
:heart_eyes:
:kissing_heart:
:kissing_closed_eyes:
:flushed:
:relieved:
:satisfied:
:grin:
:wink:
:stuck_out_tongue_winking_eye:
:stuck_out_tongue_closed_eyes:
:grinning:
:kissing:
:kissing_smiling_eyes:
:stuck_out_tongue:
:sleeping:
:worried:
:frowning:
:anguished:
:open_mouth:
:grimacing:
:confused:
:hushed:
:expressionless:
:unamused:
:sweat_smile:
:sweat:
:disappointed_relieved:
:weary:
:pensive:
:disappointed:
:confounded:
:fearful:
:cold_sweat:
:persevere:
:cry:
:sob:
:joy:
:astonished:
:scream:
:neckbeard:
:tired_face:
:angry:
:rage:
:triumph:
:sleepy:
:yum:
:mask:
:sunglasses:
:dizzy_face:
:imp:
:smiling_imp:
:neutral_face:
:no_mouth:
:innocent:
:alien:
:yellow_heart:
:blue_heart:
:purple_heart:
:heart:
:green_heart:
:broken_heart:
:heartbeat:
:heartpulse:
:two_hearts:
:revolving_hearts:
:cupid:
:sparkling_heart:
:sparkles:
:star:
:star2:
:dizzy:
:boom:
:collision:
:anger:
:exclamation:
:question:
:grey_exclamation:
:grey_question:
:zzz:
:dash:
:sweat_drops:
:notes:
:musical_note:
:fire:
:hankey:
:poop:
:shit:
:+1:
:thumbsup:
:-1:
:thumbsdown:
:ok_hand:
:punch:
:facepunch:
:fist:
:v:
:wave:
:hand:
:raised_hand:
:open_hands:
:point_up:
:point_down:
:point_left:
:point_right:
:raised_hands:
:pray:
:point_up_2:
:clap:
:muscle:
:metal:
:fu:
:walking:
:runner:
:running:
:couple:
:family:
:two_men_holding_hands:
:two_women_holding_hands:
:dancer:
:dancers:
:ok_woman:
:no_good:
:information_desk_person:
:raising_hand:
:bride_with_veil:
:person_with_pouting_face:
:person_frowning:
:bow:
:couplekiss:
:couple_with_heart:
:massage:
:haircut:
:nail_care:
:boy:
:girl:
:woman:
:man:
:baby:
:older_woman:
:older_man:
:person_with_blond_hair:
:man_with_gua_pi_mao:
:man_with_turban:
:construction_worker:
:cop:
:angel:
:princess:
:smiley_cat:
:smile_cat:
:heart_eyes_cat:
:kissing_cat:
:smirk_cat:
:scream_cat:
:crying_cat_face:
:joy_cat:
:pouting_cat:
:japanese_ogre:
:japanese_goblin:
:see_no_evil:
:hear_no_evil:
:speak_no_evil:
:guardsman:
:skull:
:feet:
:lips:
:kiss:
:droplet:
:ear:
:eyes:
:nose:
:tongue:
:love_letter:
:bust_in_silhouette:
:busts_in_silhouette:
:speech_balloon:
:thought_balloon:
:feelsgood:
:finnadie:
:goberserk:
:godmode:
:hurtrealbad:
:rage1:
:rage2:
:rage3:
:rage4:
:suspect:
:trollface:
Nature
:sunny:
:umbrella:
:cloud:
:snowflake:
:snowman:
:zap:
:cyclone:
:foggy:
:ocean:
:cat:
:dog:
:mouse:
:hamster:
:rabbit:
:wolf:
:frog:
:tiger:
:koala:
:bear:
:pig:
:pig_nose:
:cow:
:boar:
:monkey_face:
:monkey:
:horse:
:racehorse:
:camel:
:sheep:
:elephant:
:panda_face:
:snake:
:bird:
:baby_chick:
:hatched_chick:
:hatching_chick:
:chicken:
:penguin:
:turtle:
:bug:
:honeybee:
:ant:
:beetle:
:snail:
:octopus:
:tropical_fish:
:fish:
:whale:
:whale2:
:dolphin:
:cow2:
:ram:
:rat:
:water_buffalo:
:tiger2:
:rabbit2:
:dragon:
:goat:
:rooster:
:dog2:
:pig2:
:mouse2:
:ox:
:dragon_face:
:blowfish:
:crocodile:
:dromedary_camel:
:leopard:
:cat2:
:poodle:
:paw_prints:
:bouquet:
:cherry_blossom:
:tulip:
:four_leaf_clover:
:rose:
:sunflower:
:hibiscus:
:maple_leaf:
:leaves:
:fallen_leaf:
:herb:
:mushroom:
:cactus:
:palm_tree:
:evergreen_tree:
:deciduous_tree:
:chestnut:
:seedling:
:blossom:
:ear_of_rice:
:shell:
:globe_with_meridians:
:sun_with_face:
:full_moon_with_face:
:new_moon_with_face:
:new_moon:
:waxing_crescent_moon:
:first_quarter_moon:
:waxing_gibbous_moon:
:full_moon:
:waning_gibbous_moon:
:last_quarter_moon:
:waning_crescent_moon:
:last_quarter_moon_with_face:
:first_quarter_moon_with_face:
:moon:
:earth_africa:
:earth_americas:
:earth_asia:
:volcano:
:milky_way:
:partly_sunny:
:octocat:
:squirrel:
Objects
:bamboo:
:gift_heart:
:dolls:
:school_satchel:
:mortar_board:
:flags:
:fireworks:
:sparkler:
:wind_chime:
:rice_scene:
:jack_o_lantern:
:ghost:
:santa:
:christmas_tree:
:gift:
:bell:
:no_bell:
:tanabata_tree:
:tada:
:confetti_ball:
:balloon:
:crystal_ball:
:cd:
:dvd:
:floppy_disk:
:camera:
:video_camera:
:movie_camera:
:computer:
:tv:
:iphone:
:phone:
:telephone:
:telephone_receiver:
:pager:
:fax:
:minidisc:
:vhs:
:sound:
:speaker:
:mute:
:loudspeaker:
:mega:
:hourglass:
:hourglass_flowing_sand:
:alarm_clock:
:watch:
:radio:
:satellite:
:loop:
:mag:
:mag_right:
:unlock:
:lock:
:lock_with_ink_pen:
:closed_lock_with_key:
:key:
:bulb:
:flashlight:
:high_brightness:
:low_brightness:
:electric_plug:
:battery:
:calling:
:email:
:mailbox:
:postbox:
:bath:
:bathtub:
:shower:
:toilet:
:wrench:
:nut_and_bolt:
:hammer:
:seat:
:moneybag:
:yen:
:dollar:
:pound:
:euro:
:credit_card:
:money_with_wings:
:e-mail:
:inbox_tray:
:outbox_tray:
:envelope:
:incoming_envelope:
:postal_horn:
:mailbox_closed:
:mailbox_with_mail:
:mailbox_with_no_mail:
:package:
:door:
:smoking:
:bomb:
:gun:
:hocho:
:pill:
:syringe:
:page_facing_up:
:page_with_curl:
:bookmark_tabs:
:bar_chart:
:chart_with_upwards_trend:
:chart_with_downwards_trend:
:scroll:
:clipboard:
:calendar:
:date:
:card_index:
:file_folder:
:open_file_folder:
:scissors:
:pushpin:
:paperclip:
:black_nib:
:pencil2:
:straight_ruler:
:triangular_ruler:
:closed_book:
:green_book:
:blue_book:
:orange_book:
:notebook:
:notebook_with_decorative_cover:
:ledger:
:books:
:bookmark:
:name_badge:
:microscope:
:telescope:
:newspaper:
:football:
:basketball:
:soccer:
:baseball:
:tennis:
:8ball:
:rugby_football:
:bowling:
:golf:
:mountain_bicyclist:
:bicyclist:
:horse_racing:
:snowboarder:
:swimmer:
:surfer:
:ski:
:spades:
:hearts:
:clubs:
:diamonds:
:gem:
:ring:
:trophy:
:musical_score:
:musical_keyboard:
:violin:
:space_invader:
:video_game:
:black_joker:
:flower_playing_cards:
:game_die:
:dart:
:mahjong:
:clapper:
:memo:
:pencil:
:book:
:art:
:microphone:
:headphones:
:trumpet:
:saxophone:
:guitar:
:shoe:
:sandal:
:high_heel:
:lipstick:
:boot:
:shirt:
:tshirt:
:necktie:
:womans_clothes:
:dress:
:running_shirt_with_sash:
:jeans:
:kimono:
:bikini:
:ribbon:
:tophat:
:crown:
:womans_hat:
:mans_shoe:
:closed_umbrella:
:briefcase:
:handbag:
:pouch:
:purse:
:eyeglasses:
:fishing_pole_and_fish:
:coffee:
:tea:
:sake:
:baby_bottle:
:beer:
:beers:
:cocktail:
:tropical_drink:
:wine_glass:
:fork_and_knife:
:pizza:
:hamburger:
:fries:
:poultry_leg:
:meat_on_bone:
:spaghetti:
:curry:
:fried_shrimp:
:bento:
:sushi:
:fish_cake:
:rice_ball:
:rice_cracker:
:rice:
:ramen:
:stew:
:oden:
:dango:
:egg:
:bread:
:doughnut:
:custard:
:icecream:
:ice_cream:
:shaved_ice:
:birthday:
:cake:
:cookie:
:chocolate_bar:
:candy:
:lollipop:
:honey_pot:
:apple:
:green_apple:
:tangerine:
:lemon:
:cherries:
:grapes:
:watermelon:
:strawberry:
:peach:
:melon:
:banana:
:pear:
:pineapple:
:sweet_potato:
:eggplant:
:tomato:
:corn:
Places
:house:
:house_with_garden:
:school:
:office:
:post_office:
:hospital:
:bank:
:convenience_store:
:love_hotel:
:hotel:
:wedding:
:church:
:department_store:
:european_post_office:
:city_sunrise:
:city_sunset:
:japanese_castle:
:european_castle:
:tent:
:factory:
:tokyo_tower:
:japan:
:mount_fuji:
:sunrise_over_mountains:
:sunrise:
:stars:
:statue_of_liberty:
:bridge_at_night:
:carousel_horse:
:rainbow:
:ferris_wheel:
:fountain:
:roller_coaster:
:ship:
:speedboat:
:boat:
:sailboat:
:rowboat:
:anchor:
:rocket:
:airplane:
:helicopter:
:steam_locomotive:
:tram:
:mountain_railway:
:bike:
:aerial_tramway:
:suspension_railway:
:mountain_cableway:
:tractor:
:blue_car:
:oncoming_automobile:
:car:
:red_car:
:taxi:
:oncoming_taxi:
:articulated_lorry:
:bus:
:oncoming_bus:
:rotating_light:
:police_car:
:oncoming_police_car:
:fire_engine:
:ambulance:
:minibus:
:truck:
:train:
:station:
:train2:
:bullettrain_front:
:bullettrain_side:
:light_rail:
:monorail:
:railway_car:
:trolleybus:
:ticket:
:fuelpump:
:vertical_traffic_light:
:traffic_light:
:warning:
:construction:
:beginner:
:atm:
:slot_machine:
:busstop:
:barber:
:hotsprings:
:checkered_flag:
:crossed_flags:
:izakaya_lantern:
:moyai:
:circus_tent:
:performing_arts:
:round_pushpin:
:triangular_flag_on_post:
:jp:
:kr:
:cn:
:us:
:fr:
:es:
:it:
:ru:
:gb:
:uk:
:de:
Symbols
:one:
:two:
:three:
:four:
:five:
:six:
:seven:
:eight:
:nine:
:keycap_ten:
:1234:
:zero:
:hash:
:symbols:
:arrow_backward:
:arrow_down:
:arrow_forward:
:arrow_left:
:capital_abcd:
:abcd:
:abc:
:arrow_lower_left:
:arrow_lower_right:
:arrow_right:
:arrow_up:
:arrow_upper_left:
:arrow_upper_right:
:arrow_double_down:
:arrow_double_up:
:arrow_down_small:
:arrow_heading_down:
:arrow_heading_up:
:leftwards_arrow_with_hook:
:arrow_right_hook:
:left_right_arrow:
:arrow_up_down:
:arrow_up_small:
:arrows_clockwise:
:arrows_counterclockwise:
:rewind:
:fast_forward:
:information_source:
:ok:
:twisted_rightwards_arrows:
:repeat:
:repeat_one:
:new:
:top:
:up:
:cool:
:free:
:ng:
:cinema:
:koko:
:signal_strength:
:u5272:
:u5408:
:u55b6:
:u6307:
:u6708:
:u6709:
:u6e80:
:u7121:
:u7533:
:u7a7a:
:u7981:
:sa:
:restroom:
:mens:
:womens:
:baby_symbol:
:no_smoking:
:parking:
:wheelchair:
:metro:
:baggage_claim:
:accept:
:wc:
:potable_water:
:put_litter_in_its_place:
:secret:
:congratulations:
:m:
:passport_control:
:left_luggage:
:customs:
:ideograph_advantage:
:cl:
:sos:
:id:
:no_entry_sign:
:underage:
:no_mobile_phones:
:do_not_litter:
:non-potable_water:
:no_bicycles:
:no_pedestrians:
:children_crossing:
:no_entry:
:eight_spoked_asterisk:
:sparkle:
:eight_pointed_black_star:
:heart_decoration:
:vs:
:vibration_mode:
:mobile_phone_off:
:chart:
:currency_exchange:
:aries:
:taurus:
:gemini:
:cancer:
:leo:
:virgo:
:libra:
:scorpius:
:sagittarius:
:capricorn:
:aquarius:
:pisces:
:ophiuchus:
:six_pointed_star:
:negative_squared_cross_mark:
:a:
:b:
:ab:
:o2:
:diamond_shape_with_a_dot_inside:
:recycle:
:end:
:back:
:on:
:soon:
:clock1:
:clock130:
:clock10:
:clock1030:
:clock11:
:clock1130:
:clock12:
:clock1230:
:clock2:
:clock230:
:clock3:
:clock330:
:clock4:
:clock430:
:clock5:
:clock530:
:clock6:
:clock630:
:clock7:
:clock730:
:clock8:
:clock830:
:clock9:
:clock930:
:heavy_dollar_sign:
:copyright:
:registered:
:tm:
:x:
:heavy_exclamation_mark:
:bangbang:
:interrobang:
:o:
:heavy_multiplication_x:
:heavy_plus_sign:
:heavy_minus_sign:
:heavy_division_sign:
:white_flower:
:100:
:heavy_check_mark:
:ballot_box_with_check:
:radio_button:
:link:
:curly_loop:
:wavy_dash:
:part_alternation_mark:
:trident:
:black_small_square:
:white_small_square:
:black_medium_small_square:
:white_medium_small_square:
:black_medium_square:
:white_medium_square:
:black_large_square:
:white_large_square:
:white_check_mark:
:black_square_button:
:white_square_button:
:black_circle:
:white_circle:
:red_circle:
:large_blue_circle:
:large_blue_diamond:
:large_orange_diamond:
:small_blue_diamond:
:small_orange_diamond:
:small_red_triangle:
:small_red_triangle_down:
:shipit:
Campfire also supports a few sounds
► /play secret► /play trombone► /play crickets► /play rimshot► /play vuvuzela► /play tmyk► /play live► /play drama► /play yeah► /play greatjob► /play pushit► /play nyan► /play tada► /play ohmy► /play bueller► /play ohyeah► /play 56k► /play dangerzone► /play horn► /play horror► /play loggins► /play yodel► /play sax► /play noooo► /play heygirl► /play inconceivable► /play deeper► /play whoomp► /play clowntown► /play what► /play bezos► /play trololo► /play makeitso► /play sexyback► /play bell► /play danielsan► /play greyjoy► /play story► /play dadgummit► /play rollout► /play cottoneyejoe► /play rumble► /play guarantee► /play unix► /play letitgo
This page was created by Arvid Andersson / @arvid_a at Oktavilla. Source code is available on GitHub.
❤ View all the super awesome people that have contributed to this page on the GitHub contributors page.
✔ Emoji-cheat-sheet.com is not affiliated with 37signals, LLC. or GitHub Inc. in any way.
♺ Built using bits from zClip, SubtlePatterns, jnotify, and list.js.
Fork me on GitHub
```

BIN
img1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View file

@ -5,7 +5,7 @@
layout: "home" layout: "home"
type: "home" type: "home"
title: "Full Hacker: Web Development and Productivity Hacks" title: "Full Hacker: Web Technologies and Productivity Hacks"
description: "Full hacker is a place to learn new web development and productivity hacks." description: "Full hacker is a place to learn new web technologies and productivity hacks."
image: "hello-world.jpg" image: "hello-world"
--- ---