mirror of
https://github.com/balkian/balkian.github.com.git
synced 2024-12-25 01:38:13 +00:00
rebuilding site Thu Jan 10 19:35:05 CET 2019
This commit is contained in:
parent
9c911acb83
commit
ada5e605a2
265
about/index.html
Normal file
265
about/index.html
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>Balkian's site - WELCOME</title>
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../font-awesome/css/all.css">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" media="only screen" href="../css/main.css">
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container" class="container">
|
||||||
|
<div id="contentwrapper">
|
||||||
|
<div id="content">
|
||||||
|
<header id="header">
|
||||||
|
<ul class="navbar" id="navbar">
|
||||||
|
<a href="../">
|
||||||
|
<li >
|
||||||
|
<i class="fa fa-home fa-large"></i>
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../post/"><li class='' >Blog
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../tags/"><li class='' >Tags
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../cheatsheet/"><li class='' >Cheatsheets
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../about/"><li class=' active' >About
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../project/"><li class='' >Projects
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="//jfernando.es" target="_blank"><li>
|
||||||
|
CV
|
||||||
|
</li></a>
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Hi!</p>
|
||||||
|
|
||||||
|
<p>My name is Fernando. I’m a researcher and developer from Madrid, Spain.</p>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
about ul {
|
||||||
|
position: relative;
|
||||||
|
width: 900px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#about li {
|
||||||
|
line-height:1.5em;
|
||||||
|
border-bottom:1px solid #DDD;
|
||||||
|
float:left;
|
||||||
|
display:inline;
|
||||||
|
width: 33.333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#about i {
|
||||||
|
/*background-color: #ffd700;*/
|
||||||
|
/*padding: 5px;*/
|
||||||
|
/*border-radius: 10px;*/
|
||||||
|
}
|
||||||
|
.icons {
|
||||||
|
text-align: center;
|
||||||
|
color: #333;
|
||||||
|
/* text-shadow: 2px 2px #FFD700; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.coolicon {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.coolicon:hover .icon-stack {
|
||||||
|
visibility: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.coolicon:hover .explanation {
|
||||||
|
white-space: nowrap;
|
||||||
|
background: #FFD700;
|
||||||
|
display: block;
|
||||||
|
position:absolute;
|
||||||
|
border: 1px solid black;
|
||||||
|
z-index: 99;
|
||||||
|
top: 1em;
|
||||||
|
color: black;
|
||||||
|
font-family: Comfortaa;
|
||||||
|
/* width: 100%; */
|
||||||
|
padding: 0.5em;
|
||||||
|
/* border-radius: 0 10px 10px; */
|
||||||
|
overflow: visible;
|
||||||
|
left: 0;
|
||||||
|
/* transform-origin: 95% 50%; */
|
||||||
|
/* -moz-transform-origin: 95% 50%; */
|
||||||
|
/* -webkit-transform-origin: 95% 50%; */
|
||||||
|
-webkit-transform: rotate(-4deg);
|
||||||
|
-moz-transform: rotate(-4deg);
|
||||||
|
transform: rotate(-4deg);
|
||||||
|
}
|
||||||
|
/* .coolicon:hover { */
|
||||||
|
/* width: 5em; */
|
||||||
|
/* } */
|
||||||
|
|
||||||
|
.explanation {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="about" style="clear:both;">
|
||||||
|
<!-- <h1 class="title">Interests</h1> -->
|
||||||
|
<div class="icons">
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x"></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
||||||
|
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x"></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="sidebar" class="fixed">
|
||||||
|
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
||||||
|
<div class="flipper sticky">
|
||||||
|
<div class="front">
|
||||||
|
|
||||||
|
<img id="avatar" src="../img/me.png">
|
||||||
|
</div>
|
||||||
|
<div class="back">
|
||||||
|
|
||||||
|
<img id="picture" src="../img/me-bat.png">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="about">
|
||||||
|
|
||||||
|
<div class="icons">
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-linux"></i></span><span class="explanation">Linux user</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-android"></i></span><span class="explanation">Android dev and user</span></span>
|
||||||
|
<a href="http://github.com/balkian" target="_blank"><span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-github"></i> </span><span class="explanation">Github user</span></span></a>
|
||||||
|
<a href="http://gitlab.com/balkian" target="_blank"><span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-gitlab"></i> </span><span class="explanation">GitLab user</span></span></a>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-moon"></i> </span><span class="explanation">Night owl</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-flag"></i></span> <span class="explanation">I love languages</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-code"></i> </span> <span class="explanation">I love programming</span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="entries">
|
||||||
|
<h2 class="title">Latest entries</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2019-01-06-zigbee2mqtt/">Controlling Zigbee devices with MQTT</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/mqtt'><span class="label">mqtt</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/iot'><span class="label">iot</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/zigbee'><span class="label">zigbee</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2016-09-28-tqdm/">Progress bars in python</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/python'><span class="label">python</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2015-04-10-github-dotfiles/">Sharing dotfiles</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/github'><span class="label">github</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/git'><span class="label">git</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/dotfiles'><span class="label">dotfiles</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2014-12-09-zotero/">Zotero</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/zotero'><span class="label">zotero</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/webdav'><span class="label">webdav</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/nginx'><span class="label">nginx</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/apache'><span class="label">apache</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<footer class="pagefooter" role="contentinfo">
|
||||||
|
<div class="contact">
|
||||||
|
<p>
|
||||||
|
J. Fernando Sánchez Rada | balkian
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ul id="social">
|
||||||
|
<li><a href="http://github.com/balkian"><i class="fab fa-github"></i></a></li>
|
||||||
|
<li><a href="http://lab.gsi.upm.es/balkian"><i class="fab fa-gitlab"></i></a></li>
|
||||||
|
<li><a href="http://twitter.com/balkian"><i class="fab fa-twitter"></i></a></li>
|
||||||
|
<li><a href="http://git.sinpapel.es/balkian"><i class="fab fa-git"></i></a></li>
|
||||||
|
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fab fa-linkedin"></i></a></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<i class="fab fa-creative-commons"></i> Creative Commons A-SA-NC
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="../js/jquery-2.0.2.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,171 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - Arch Linux Fixes
|
|
||||||
</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li class="active"
|
|
||||||
>
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li >
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<div class="postnav">
|
|
||||||
<span class="previouspost"><i class="fa fa-chevron-left"></i> <a href="org-mode-tricks.html">Org-mode tricks</a></span>
|
|
||||||
<span class='nextpost'><a href="/progress-bars-in-python.html">Progress bars in python</a> <i class="fa fa-chevron-right"></i></span>
|
|
||||||
</div>
|
|
||||||
<div class="posthead">
|
|
||||||
<h2 class="title">Arch Linux Fixes</h2>
|
|
||||||
<span class="meta date">2016-02-03</span>
|
|
||||||
<span class="tag"><a href="/tag/arch.html" class="label label-default">arch</a></span>
|
|
||||||
<span class="tag"><a href="/tag/linux.html" class="label label-default">linux</a></span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
<div class="section" id="black-screen-and-lightdm-doesn-t-unlock">
|
|
||||||
<h2>Black screen and LightDM doesn't unlock</h2>
|
|
||||||
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
|
|
||||||
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/mqtt.html">mqtt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/iot.html">iot</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zigbee.html">zigbee</a></dd>
|
|
||||||
<dt><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/rpi.html">rpi</a></dd>
|
|
||||||
<dt><a href="/pptp-connections.html">PPTP connections</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/openwrt.html">openwrt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/router.html">router</a></dd>
|
|
||||||
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
177
archives.html
177
archives.html
@ -1,177 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - WELCOME</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li >
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li >
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<h1>Archives for balkian.com</h1>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>Sun 06 January 2019</dt>
|
|
||||||
<dd><a href="http://balkian.com/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dd>
|
|
||||||
<dt>Sat 07 January 2017</dt>
|
|
||||||
<dd><a href="http://balkian.com/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dd>
|
|
||||||
<dt>Sun 01 January 2017</dt>
|
|
||||||
<dd><a href="http://balkian.com/pptp-connections.html">PPTP connections</a></dd>
|
|
||||||
<dt>Wed 28 September 2016</dt>
|
|
||||||
<dd><a href="http://balkian.com/progress-bars-in-python.html">Progress bars in python</a></dd>
|
|
||||||
<dt>Wed 03 February 2016</dt>
|
|
||||||
<dd><a href="http://balkian.com/arch-linux-fixes.html">Arch Linux Fixes</a></dd>
|
|
||||||
<dt>Thu 10 December 2015</dt>
|
|
||||||
<dd><a href="http://balkian.com/org-mode-tricks.html">Org-mode tricks</a></dd>
|
|
||||||
<dt>Fri 10 April 2015</dt>
|
|
||||||
<dd><a href="http://balkian.com/sharing-dotfiles.html">Sharing dotfiles</a></dd>
|
|
||||||
<dt>Tue 09 December 2014</dt>
|
|
||||||
<dd><a href="http://balkian.com/zotero.html">Zotero</a></dd>
|
|
||||||
<dt>Thu 09 October 2014</dt>
|
|
||||||
<dd><a href="http://balkian.com/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dd>
|
|
||||||
<dt>Sat 27 September 2014</dt>
|
|
||||||
<dd><a href="http://balkian.com/publishing-on-pypi.html">Publishing on PyPi</a></dd>
|
|
||||||
<dt>Thu 27 March 2014</dt>
|
|
||||||
<dd><a href="http://balkian.com/updating-eurolovemap.html">Updating EuroLoveMap</a></dd>
|
|
||||||
<dt>Thu 22 August 2013</dt>
|
|
||||||
<dd><a href="http://balkian.com/remove-git-files-with-globbing.html">Remove git files with globbing</a></dd>
|
|
||||||
<dt>Thu 22 August 2013</dt>
|
|
||||||
<dd><a href="http://balkian.com/creating-my-web.html">Creating my web</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/mqtt.html">mqtt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/iot.html">iot</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zigbee.html">zigbee</a></dd>
|
|
||||||
<dt><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/rpi.html">rpi</a></dd>
|
|
||||||
<dt><a href="/pptp-connections.html">PPTP connections</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/openwrt.html">openwrt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/router.html">router</a></dd>
|
|
||||||
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,350 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - WELCOME</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li >
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li >
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<div class="pagination pag-top">
|
|
||||||
<span class="previouspage" style="visibility:hidden;"><i class="icon-chevron-sign-left"></i> Newer Posts</span>
|
|
||||||
<!-- <span class="page_number ">Page 1 of 2</span> -->
|
|
||||||
<span class="nextpage"><a href="/page2"> Older Posts </a> <i class="icon-double-angle-right"></i></span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- This loops through the paginated posts -->
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/controlling-zigbee-devices-with-mqtt.html" class="title">Controlling Zigbee devices with MQTT</a></h2>
|
|
||||||
<span class="date">2019-01-06</span>
|
|
||||||
<a class="tag" href="/tag/mqtt.html"><span class="label">mqtt</span></a>
|
|
||||||
<a class="tag" href="/tag/iot.html"><span class="label">iot</span></a>
|
|
||||||
<a class="tag" href="/tag/zigbee.html"><span class="label">zigbee</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>This is a short tutorial on connecting a zigbee device (an Aqara cube) to an MQTT server, so you can control your zigbee devices from the network.</p>
|
|
||||||
<p>If you're anything like me, you're probably a sucker for IoT devices.
|
|
||||||
For a long time, I've been using WiFi-enabled lights, and Amazon …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/controlling-zigbee-devices-with-mqtt.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html" class="title">HDMI-VGA adapter issues with Raspberry Pi</a></h2>
|
|
||||||
<span class="date">2017-01-07</span>
|
|
||||||
<a class="tag" href="/tag/rpi.html"><span class="label">rpi</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>Avoid HDMI flickering/intermittent blanking on RPI with a 1400x1050 VGA monitor.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">hdmi_drive</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_group</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_mode</span><span class="o">=</span><span class="mi">42</span>
|
|
||||||
<span class="n">disable_overscan</span><span class="o">=</span><span class="mi">1</span>
|
|
||||||
<span class="n">config_hdmi_boost</span><span class="o">=</span><span class="mi">7</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/pptp-connections.html" class="title">PPTP connections</a></h2>
|
|
||||||
<span class="date">2017-01-01</span>
|
|
||||||
<a class="tag" href="/tag/openwrt.html"><span class="label">openwrt</span></a>
|
|
||||||
<a class="tag" href="/tag/linux.html"><span class="label">linux</span></a>
|
|
||||||
<a class="tag" href="/tag/router.html"><span class="label">router</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>PPTP VPN connections will fail on a vanilla openwrt installation.
|
|
||||||
You need to install this module:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>opkg install kmod-nf-nathelper-extra
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/pptp-connections.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/progress-bars-in-python.html" class="title">Progress bars in python</a></h2>
|
|
||||||
<span class="date">2016-09-28</span>
|
|
||||||
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
|
|
||||||
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
|
|
||||||
<span class="kn">import</span> <span class="nn">time</span>
|
|
||||||
|
|
||||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
|
|
||||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/progress-bars-in-python.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/arch-linux-fixes.html" class="title">Arch Linux Fixes</a></h2>
|
|
||||||
<span class="date">2016-02-03</span>
|
|
||||||
<a class="tag" href="/tag/arch.html"><span class="label">arch</span></a>
|
|
||||||
<a class="tag" href="/tag/linux.html"><span class="label">linux</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<div class="section" id="black-screen-and-lightdm-doesn-t-unlock">
|
|
||||||
<h2>Black screen and LightDM doesn't unlock</h2>
|
|
||||||
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
|
|
||||||
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/arch-linux-fixes.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/org-mode-tricks.html" class="title">Org-mode tricks</a></h2>
|
|
||||||
<span class="date">2015-12-10</span>
|
|
||||||
<a class="tag" href="/tag/emacs.html"><span class="label">emacs</span></a>
|
|
||||||
<a class="tag" href="/tag/productivity.html"><span class="label">productivity</span></a>
|
|
||||||
<a class="tag" href="/tag/editor.html"><span class="label">editor</span></a>
|
|
||||||
<a class="tag" href="/tag/org.html"><span class="label">org</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<div class="section" id="show-plain-text-version">
|
|
||||||
<h2>Show plain text version</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/org-mode-tricks.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/sharing-dotfiles.html" class="title">Sharing dotfiles</a></h2>
|
|
||||||
<span class="date">2015-04-10</span>
|
|
||||||
<a class="tag" href="/tag/github.html"><span class="label">github</span></a>
|
|
||||||
<a class="tag" href="/tag/git.html"><span class="label">git</span></a>
|
|
||||||
<a class="tag" href="/tag/dotfiles.html"><span class="label">dotfiles</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>Today's post is half a quick note, half public shaming. In other words, it is a reminder to be very careful with OAuth tokens and passwords.</p>
|
|
||||||
<p>As part of moving to emacs, I starting using the incredibly useful <a class="reference external" href="https://github.com/defunkt/gist.el">gh.el</a>.
|
|
||||||
When you first use it, the extension saves either your …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/sharing-dotfiles.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/zotero.html" class="title">Zotero</a></h2>
|
|
||||||
<span class="date">2014-12-09</span>
|
|
||||||
<a class="tag" href="/tag/zotero.html"><span class="label">zotero</span></a>
|
|
||||||
<a class="tag" href="/tag/webdav.html"><span class="label">webdav</span></a>
|
|
||||||
<a class="tag" href="/tag/nginx.html"><span class="label">nginx</span></a>
|
|
||||||
<a class="tag" href="/tag/apache.html"><span class="label">apache</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p><a class="reference external" href="https://www.zotero.org/">Zotero</a> is an Open Source tool that lets
|
|
||||||
you organise your bibliography, syncing it with the cloud. Unlike other
|
|
||||||
alternatives such as <a class="reference external" href="http://www.mendeley.com">Mendeley</a>, Zotero can
|
|
||||||
upload the attachments and data to a private cloud via WebDav.</p>
|
|
||||||
<p>If you use nginx as your web server, know that even though it provides …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/zotero.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/proxies-with-apache-and-python.html" class="title">Proxies with Apache and python</a></h2>
|
|
||||||
<span class="date">2014-10-09</span>
|
|
||||||
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
|
|
||||||
<a class="tag" href="/tag/apache.html"><span class="label">apache</span></a>
|
|
||||||
<a class="tag" href="/tag/proxy.html"><span class="label">proxy</span></a>
|
|
||||||
<a class="tag" href="/tag/gunicorn.html"><span class="label">gunicorn</span></a>
|
|
||||||
<a class="tag" href="/tag/uwsgi.html"><span class="label">uwsgi</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>This is a quick note on proxying a local python application (e.g. flask)
|
|
||||||
to a subdirectory in Apache. This assumes that the file wsgi.py contains
|
|
||||||
a WSGI application with the name <em>application</em>. Hence, wsgi:application.</p>
|
|
||||||
<div class="section" id="gunicorn">
|
|
||||||
<h2>Gunicorn</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt"><Location</span> <span class="s">/myapp/</span><span class="nt">></span>
|
|
||||||
<span class="nb">ProxyPass</span> http://127.0.0 …</pre></div></td></tr></table></div>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/proxies-with-apache-and-python.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/publishing-on-pypi.html" class="title">Publishing on PyPi</a></h2>
|
|
||||||
<span class="date">2014-09-27</span>
|
|
||||||
<a class="tag" href="/tag/github.html"><span class="label">github</span></a>
|
|
||||||
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
|
|
||||||
<a class="tag" href="/tag/pypi.html"><span class="label">pypi</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>Developing a python module and publishing it on Github is cool, but most
|
|
||||||
of the times you want others to download and use it easily. That is the
|
|
||||||
role of PyPi, the python package repository. In this post I show you how
|
|
||||||
to publish your package in less than 10 …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/publishing-on-pypi.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="pagination pag-bottom">
|
|
||||||
<span class="previouspage" style="display:none;"><i class="icon-chevron-sign-left"></i> Newer Posts</span>
|
|
||||||
<span class="page_number ">Page 1 of 2</span>
|
|
||||||
<span class="nextpage"><a href="/page2"> Older Posts </a> <i class="icon-chevron-sign-right"></i></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/mqtt.html">mqtt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/iot.html">iot</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zigbee.html">zigbee</a></dd>
|
|
||||||
<dt><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/rpi.html">rpi</a></dd>
|
|
||||||
<dt><a href="/pptp-connections.html">PPTP connections</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/openwrt.html">openwrt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/router.html">router</a></dd>
|
|
||||||
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,212 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - WELCOME</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li >
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li >
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<div class="pagination pag-top">
|
|
||||||
<span class="previouspage"><i class="icon-double-angle-left"></i><a href="/"> Newer Posts</a></span>
|
|
||||||
<!-- <span class="page_number ">Page 2 of 2</span> -->
|
|
||||||
<span class="nextpage" style="visibility:hidden;">Older Posts <i class="icon-chevron-sign-right"></i></span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- This loops through the paginated posts -->
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/updating-eurolovemap.html" class="title">Updating EuroLoveMap</a></h2>
|
|
||||||
<span class="date">2014-03-27</span>
|
|
||||||
<a class="tag" href="/tag/javascript.html"><span class="label">javascript</span></a>
|
|
||||||
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
|
|
||||||
<a class="tag" href="/tag/heroku.html"><span class="label">heroku</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>As part of the <a class="reference external" href="http://www.opener-project.org/2013/07/18/opener-hackathon-in-amsterdam/">OpeNER
|
|
||||||
hackathon</a>
|
|
||||||
we decided to build a prototype that would allow us to compare how
|
|
||||||
different countries feel about several topics. We used the OpeNER
|
|
||||||
pipeline to get the sentiment from a set of newspaper articles we
|
|
||||||
gathered from media in several languages. Then we aggregated …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/updating-eurolovemap.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/remove-git-files-with-globbing.html" class="title">Remove git files with globbing</a></h2>
|
|
||||||
<span class="date">2013-08-22</span>
|
|
||||||
<a class="tag" href="/tag/git.html"><span class="label">git</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>A simple trick. If you want to remove all the '.swp' files from a git
|
|
||||||
repository, just use:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">'\*\*.swp'</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/remove-git-files-with-globbing.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/creating-my-web.html" class="title">Creating my web</a></h2>
|
|
||||||
<span class="date">2013-08-22</span>
|
|
||||||
<a class="tag" href="/tag/starters.html"><span class="label">starters</span></a>
|
|
||||||
<a class="tag" href="/tag/javascript.html"><span class="label">javascript</span></a>
|
|
||||||
<a class="tag" href="/tag/ruby.html"><span class="label">ruby</span></a>
|
|
||||||
<a class="tag" href="/tag/github.html"><span class="label">github</span></a>
|
|
||||||
<a class="tag" href="/tag/git.html"><span class="label">git</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>Finally, I've decided to set up a decent personal page. I have settled
|
|
||||||
for github-pages because I like the idea of keeping my site in a
|
|
||||||
repository and having someone else host and deploy it for me. The site
|
|
||||||
will be really simple, mostly static files. Thanks to Github,
|
|
||||||
<a class="reference external" href="http://jekyllrb.com">Jekyll …</a></p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/creating-my-web.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="pagination pag-bottom">
|
|
||||||
<span class="previouspage"><i class="icon-chevron-sign-left"></i><a href="/page<bound method Page.previous_page_number of <Page 2 of 2>>"> Newer Posts</a></span>
|
|
||||||
<span class="page_number ">Page 2 of 2</span>
|
|
||||||
<span class="nextpage" style="display:none;">Older Posts <i class="icon-chevron-sign-right"></i></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/mqtt.html">mqtt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/iot.html">iot</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zigbee.html">zigbee</a></dd>
|
|
||||||
<dt><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/rpi.html">rpi</a></dd>
|
|
||||||
<dt><a href="/pptp-connections.html">PPTP connections</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/openwrt.html">openwrt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/router.html">router</a></dd>
|
|
||||||
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
151
authors.html
151
authors.html
@ -1,151 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - WELCOME</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li >
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li >
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<h1>Authors on balkian.com</h1>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://balkian.com/author/j-fernando-sanchez.html">J. Fernando Sánchez</a> (13)</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/mqtt.html">mqtt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/iot.html">iot</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zigbee.html">zigbee</a></dd>
|
|
||||||
<dt><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/rpi.html">rpi</a></dd>
|
|
||||||
<dt><a href="/pptp-connections.html">PPTP connections</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/openwrt.html">openwrt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/router.html">router</a></dd>
|
|
||||||
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
152
categories.html
152
categories.html
@ -1,152 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - WELCOME</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li >
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li >
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<h1>Categories on balkian.com</h1>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://balkian.com/category/cheats.html">cheats</a> (4)</li>
|
|
||||||
<li><a href="http://balkian.com/category/misc.html">misc</a> (9)</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/mqtt.html">mqtt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/iot.html">iot</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zigbee.html">zigbee</a></dd>
|
|
||||||
<dt><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/rpi.html">rpi</a></dd>
|
|
||||||
<dt><a href="/pptp-connections.html">PPTP connections</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/openwrt.html">openwrt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/router.html">router</a></dd>
|
|
||||||
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
180
categories/index.html
Normal file
180
categories/index.html
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>Balkian's site - WELCOME</title>
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../font-awesome/css/all.css">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" media="only screen" href="../css/main.css">
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container" class="container">
|
||||||
|
<div id="contentwrapper">
|
||||||
|
<div id="content">
|
||||||
|
<header id="header">
|
||||||
|
<ul class="navbar" id="navbar">
|
||||||
|
<a href="../">
|
||||||
|
<li >
|
||||||
|
<i class="fa fa-home fa-large"></i>
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../post/"><li class='' >Blog
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../tags/"><li class='' >Tags
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../cheatsheet/"><li class='' >Cheatsheets
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../about/"><li class='' >About
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../project/"><li class='' >Projects
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="//jfernando.es" target="_blank"><li>
|
||||||
|
CV
|
||||||
|
</li></a>
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<h1>Categories</h1>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="sidebar" class="fixed">
|
||||||
|
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
||||||
|
<div class="flipper sticky">
|
||||||
|
<div class="front">
|
||||||
|
|
||||||
|
<img id="avatar" src="../img/me.png">
|
||||||
|
</div>
|
||||||
|
<div class="back">
|
||||||
|
|
||||||
|
<img id="picture" src="../img/me-bat.png">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="about">
|
||||||
|
|
||||||
|
<div class="icons">
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-linux"></i></span><span class="explanation">Linux user</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-android"></i></span><span class="explanation">Android dev and user</span></span>
|
||||||
|
<a href="http://github.com/balkian" target="_blank"><span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-github"></i> </span><span class="explanation">Github user</span></span></a>
|
||||||
|
<a href="http://gitlab.com/balkian" target="_blank"><span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-gitlab"></i> </span><span class="explanation">GitLab user</span></span></a>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-moon"></i> </span><span class="explanation">Night owl</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-flag"></i></span> <span class="explanation">I love languages</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-code"></i> </span> <span class="explanation">I love programming</span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="entries">
|
||||||
|
<h2 class="title">Latest entries</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2019-01-06-zigbee2mqtt/">Controlling Zigbee devices with MQTT</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/mqtt'><span class="label">mqtt</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/iot'><span class="label">iot</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/zigbee'><span class="label">zigbee</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2016-09-28-tqdm/">Progress bars in python</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/python'><span class="label">python</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2015-04-10-github-dotfiles/">Sharing dotfiles</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/github'><span class="label">github</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/git'><span class="label">git</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/dotfiles'><span class="label">dotfiles</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2014-12-09-zotero/">Zotero</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/zotero'><span class="label">zotero</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/webdav'><span class="label">webdav</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/nginx'><span class="label">nginx</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/apache'><span class="label">apache</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<footer class="pagefooter" role="contentinfo">
|
||||||
|
<div class="contact">
|
||||||
|
<p>
|
||||||
|
J. Fernando Sánchez Rada | balkian
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ul id="social">
|
||||||
|
<li><a href="http://github.com/balkian"><i class="fab fa-github"></i></a></li>
|
||||||
|
<li><a href="http://lab.gsi.upm.es/balkian"><i class="fab fa-gitlab"></i></a></li>
|
||||||
|
<li><a href="http://twitter.com/balkian"><i class="fab fa-twitter"></i></a></li>
|
||||||
|
<li><a href="http://git.sinpapel.es/balkian"><i class="fab fa-git"></i></a></li>
|
||||||
|
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fab fa-linkedin"></i></a></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<i class="fab fa-creative-commons"></i> Creative Commons A-SA-NC
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="../js/jquery-2.0.2.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
15
categories/index.xml
Normal file
15
categories/index.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Categories on Balkian's site</title>
|
||||||
|
<link>/categories/</link>
|
||||||
|
<description>Recent content in Categories on Balkian's site</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<copyright>This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.</copyright>
|
||||||
|
|
||||||
|
<atom:link href="/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
@ -1,238 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - cheats</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li class="active"
|
|
||||||
>
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li >
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<div class="pagination pag-top">
|
|
||||||
<span class="previouspage" style="visibility:hidden;"><i class="icon-chevron-sign-left"></i> Newer Posts</span>
|
|
||||||
<!-- <span class="page_number ">Page 1 of 1</span> -->
|
|
||||||
<span class="nextpage" style="visibility:hidden;">Older Posts <i class="icon-chevron-sign-right"></i></span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- This loops through the paginated posts -->
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html" class="title">HDMI-VGA adapter issues with Raspberry Pi</a></h2>
|
|
||||||
<span class="date">2017-01-07</span>
|
|
||||||
<a class="tag" href="/tag/rpi.html"><span class="label">rpi</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>Avoid HDMI flickering/intermittent blanking on RPI with a 1400x1050 VGA monitor.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">hdmi_drive</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_group</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_mode</span><span class="o">=</span><span class="mi">42</span>
|
|
||||||
<span class="n">disable_overscan</span><span class="o">=</span><span class="mi">1</span>
|
|
||||||
<span class="n">config_hdmi_boost</span><span class="o">=</span><span class="mi">7</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/pptp-connections.html" class="title">PPTP connections</a></h2>
|
|
||||||
<span class="date">2017-01-01</span>
|
|
||||||
<a class="tag" href="/tag/openwrt.html"><span class="label">openwrt</span></a>
|
|
||||||
<a class="tag" href="/tag/linux.html"><span class="label">linux</span></a>
|
|
||||||
<a class="tag" href="/tag/router.html"><span class="label">router</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>PPTP VPN connections will fail on a vanilla openwrt installation.
|
|
||||||
You need to install this module:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>opkg install kmod-nf-nathelper-extra
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/pptp-connections.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/arch-linux-fixes.html" class="title">Arch Linux Fixes</a></h2>
|
|
||||||
<span class="date">2016-02-03</span>
|
|
||||||
<a class="tag" href="/tag/arch.html"><span class="label">arch</span></a>
|
|
||||||
<a class="tag" href="/tag/linux.html"><span class="label">linux</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<div class="section" id="black-screen-and-lightdm-doesn-t-unlock">
|
|
||||||
<h2>Black screen and LightDM doesn't unlock</h2>
|
|
||||||
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
|
|
||||||
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/arch-linux-fixes.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/org-mode-tricks.html" class="title">Org-mode tricks</a></h2>
|
|
||||||
<span class="date">2015-12-10</span>
|
|
||||||
<a class="tag" href="/tag/emacs.html"><span class="label">emacs</span></a>
|
|
||||||
<a class="tag" href="/tag/productivity.html"><span class="label">productivity</span></a>
|
|
||||||
<a class="tag" href="/tag/editor.html"><span class="label">editor</span></a>
|
|
||||||
<a class="tag" href="/tag/org.html"><span class="label">org</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<div class="section" id="show-plain-text-version">
|
|
||||||
<h2>Show plain text version</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/org-mode-tricks.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="pagination pag-bottom">
|
|
||||||
<span class="previouspage" style="display:none;"><i class="icon-chevron-sign-left"></i> Newer Posts</span>
|
|
||||||
<span class="page_number ">Page 1 of 1</span>
|
|
||||||
<span class="nextpage" style="display:none;">Older Posts <i class="icon-chevron-sign-right"></i></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/rpi.html">rpi</a></dd>
|
|
||||||
<dt><a href="/pptp-connections.html">PPTP connections</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/openwrt.html">openwrt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/router.html">router</a></dd>
|
|
||||||
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dt><a href="/org-mode-tricks.html">Org-mode tricks</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/emacs.html">emacs</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/productivity.html">productivity</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/editor.html">editor</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/org.html">org</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,331 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - misc</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li >
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li class="active"
|
|
||||||
>
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<div class="pagination pag-top">
|
|
||||||
<span class="previouspage" style="visibility:hidden;"><i class="icon-chevron-sign-left"></i> Newer Posts</span>
|
|
||||||
<!-- <span class="page_number ">Page 1 of 1</span> -->
|
|
||||||
<span class="nextpage" style="visibility:hidden;">Older Posts <i class="icon-chevron-sign-right"></i></span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- This loops through the paginated posts -->
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/controlling-zigbee-devices-with-mqtt.html" class="title">Controlling Zigbee devices with MQTT</a></h2>
|
|
||||||
<span class="date">2019-01-06</span>
|
|
||||||
<a class="tag" href="/tag/mqtt.html"><span class="label">mqtt</span></a>
|
|
||||||
<a class="tag" href="/tag/iot.html"><span class="label">iot</span></a>
|
|
||||||
<a class="tag" href="/tag/zigbee.html"><span class="label">zigbee</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>This is a short tutorial on connecting a zigbee device (an Aqara cube) to an MQTT server, so you can control your zigbee devices from the network.</p>
|
|
||||||
<p>If you're anything like me, you're probably a sucker for IoT devices.
|
|
||||||
For a long time, I've been using WiFi-enabled lights, and Amazon …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/controlling-zigbee-devices-with-mqtt.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/progress-bars-in-python.html" class="title">Progress bars in python</a></h2>
|
|
||||||
<span class="date">2016-09-28</span>
|
|
||||||
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
|
|
||||||
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
|
|
||||||
<span class="kn">import</span> <span class="nn">time</span>
|
|
||||||
|
|
||||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
|
|
||||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/progress-bars-in-python.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/sharing-dotfiles.html" class="title">Sharing dotfiles</a></h2>
|
|
||||||
<span class="date">2015-04-10</span>
|
|
||||||
<a class="tag" href="/tag/github.html"><span class="label">github</span></a>
|
|
||||||
<a class="tag" href="/tag/git.html"><span class="label">git</span></a>
|
|
||||||
<a class="tag" href="/tag/dotfiles.html"><span class="label">dotfiles</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>Today's post is half a quick note, half public shaming. In other words, it is a reminder to be very careful with OAuth tokens and passwords.</p>
|
|
||||||
<p>As part of moving to emacs, I starting using the incredibly useful <a class="reference external" href="https://github.com/defunkt/gist.el">gh.el</a>.
|
|
||||||
When you first use it, the extension saves either your …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/sharing-dotfiles.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/zotero.html" class="title">Zotero</a></h2>
|
|
||||||
<span class="date">2014-12-09</span>
|
|
||||||
<a class="tag" href="/tag/zotero.html"><span class="label">zotero</span></a>
|
|
||||||
<a class="tag" href="/tag/webdav.html"><span class="label">webdav</span></a>
|
|
||||||
<a class="tag" href="/tag/nginx.html"><span class="label">nginx</span></a>
|
|
||||||
<a class="tag" href="/tag/apache.html"><span class="label">apache</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p><a class="reference external" href="https://www.zotero.org/">Zotero</a> is an Open Source tool that lets
|
|
||||||
you organise your bibliography, syncing it with the cloud. Unlike other
|
|
||||||
alternatives such as <a class="reference external" href="http://www.mendeley.com">Mendeley</a>, Zotero can
|
|
||||||
upload the attachments and data to a private cloud via WebDav.</p>
|
|
||||||
<p>If you use nginx as your web server, know that even though it provides …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/zotero.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/proxies-with-apache-and-python.html" class="title">Proxies with Apache and python</a></h2>
|
|
||||||
<span class="date">2014-10-09</span>
|
|
||||||
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
|
|
||||||
<a class="tag" href="/tag/apache.html"><span class="label">apache</span></a>
|
|
||||||
<a class="tag" href="/tag/proxy.html"><span class="label">proxy</span></a>
|
|
||||||
<a class="tag" href="/tag/gunicorn.html"><span class="label">gunicorn</span></a>
|
|
||||||
<a class="tag" href="/tag/uwsgi.html"><span class="label">uwsgi</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>This is a quick note on proxying a local python application (e.g. flask)
|
|
||||||
to a subdirectory in Apache. This assumes that the file wsgi.py contains
|
|
||||||
a WSGI application with the name <em>application</em>. Hence, wsgi:application.</p>
|
|
||||||
<div class="section" id="gunicorn">
|
|
||||||
<h2>Gunicorn</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt"><Location</span> <span class="s">/myapp/</span><span class="nt">></span>
|
|
||||||
<span class="nb">ProxyPass</span> http://127.0.0 …</pre></div></td></tr></table></div>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/proxies-with-apache-and-python.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/publishing-on-pypi.html" class="title">Publishing on PyPi</a></h2>
|
|
||||||
<span class="date">2014-09-27</span>
|
|
||||||
<a class="tag" href="/tag/github.html"><span class="label">github</span></a>
|
|
||||||
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
|
|
||||||
<a class="tag" href="/tag/pypi.html"><span class="label">pypi</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>Developing a python module and publishing it on Github is cool, but most
|
|
||||||
of the times you want others to download and use it easily. That is the
|
|
||||||
role of PyPi, the python package repository. In this post I show you how
|
|
||||||
to publish your package in less than 10 …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/publishing-on-pypi.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/updating-eurolovemap.html" class="title">Updating EuroLoveMap</a></h2>
|
|
||||||
<span class="date">2014-03-27</span>
|
|
||||||
<a class="tag" href="/tag/javascript.html"><span class="label">javascript</span></a>
|
|
||||||
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
|
|
||||||
<a class="tag" href="/tag/heroku.html"><span class="label">heroku</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>As part of the <a class="reference external" href="http://www.opener-project.org/2013/07/18/opener-hackathon-in-amsterdam/">OpeNER
|
|
||||||
hackathon</a>
|
|
||||||
we decided to build a prototype that would allow us to compare how
|
|
||||||
different countries feel about several topics. We used the OpeNER
|
|
||||||
pipeline to get the sentiment from a set of newspaper articles we
|
|
||||||
gathered from media in several languages. Then we aggregated …</p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/updating-eurolovemap.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/remove-git-files-with-globbing.html" class="title">Remove git files with globbing</a></h2>
|
|
||||||
<span class="date">2013-08-22</span>
|
|
||||||
<a class="tag" href="/tag/git.html"><span class="label">git</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>A simple trick. If you want to remove all the '.swp' files from a git
|
|
||||||
repository, just use:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">'\*\*.swp'</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/remove-git-files-with-globbing.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="article-entry">
|
|
||||||
<div class="posthead">
|
|
||||||
<h2><a href="/creating-my-web.html" class="title">Creating my web</a></h2>
|
|
||||||
<span class="date">2013-08-22</span>
|
|
||||||
<a class="tag" href="/tag/starters.html"><span class="label">starters</span></a>
|
|
||||||
<a class="tag" href="/tag/javascript.html"><span class="label">javascript</span></a>
|
|
||||||
<a class="tag" href="/tag/ruby.html"><span class="label">ruby</span></a>
|
|
||||||
<a class="tag" href="/tag/github.html"><span class="label">github</span></a>
|
|
||||||
<a class="tag" href="/tag/git.html"><span class="label">git</span></a>
|
|
||||||
</div>
|
|
||||||
<div class="excerpt">
|
|
||||||
<p>Finally, I've decided to set up a decent personal page. I have settled
|
|
||||||
for github-pages because I like the idea of keeping my site in a
|
|
||||||
repository and having someone else host and deploy it for me. The site
|
|
||||||
will be really simple, mostly static files. Thanks to Github,
|
|
||||||
<a class="reference external" href="http://jekyllrb.com">Jekyll …</a></p>
|
|
||||||
</div>
|
|
||||||
<div class="readmore"><a href="/creating-my-web.html"> Read more...</a></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="pagination pag-bottom">
|
|
||||||
<span class="previouspage" style="display:none;"><i class="icon-chevron-sign-left"></i> Newer Posts</span>
|
|
||||||
<span class="page_number ">Page 1 of 1</span>
|
|
||||||
<span class="nextpage" style="display:none;">Older Posts <i class="icon-chevron-sign-right"></i></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/mqtt.html">mqtt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/iot.html">iot</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zigbee.html">zigbee</a></dd>
|
|
||||||
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dt><a href="/sharing-dotfiles.html">Sharing dotfiles</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/github.html">github</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/git.html">git</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/dotfiles.html">dotfiles</a></dd>
|
|
||||||
<dt><a href="/zotero.html">Zotero</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zotero.html">zotero</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
|
|
||||||
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
104
cheatsheet/emacs/index.html
Normal file
104
cheatsheet/emacs/index.html
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>Balkian's site - WELCOME</title>
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../../font-awesome/css/all.css">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" media="only screen" href="../../css/main.css">
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container" class="container">
|
||||||
|
<div id="contentwrapper">
|
||||||
|
<div id="content">
|
||||||
|
<header id="header">
|
||||||
|
<ul class="navbar" id="navbar">
|
||||||
|
<a href="../../">
|
||||||
|
<li >
|
||||||
|
<i class="fa fa-home fa-large"></i>
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../../post/"><li class='' >Blog
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../tags/"><li class='' >Tags
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../cheatsheet/"><li class=' active' >Cheatsheets
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../about/"><li class='' >About
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../project/"><li class='' >Projects
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="//jfernando.es" target="_blank"><li>
|
||||||
|
CV
|
||||||
|
</li></a>
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Emacs</h2>
|
||||||
|
|
||||||
|
<h1 id="show-plain-text-version">Show plain text version</h1>
|
||||||
|
|
||||||
|
<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4">
|
||||||
|
<table style="border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
|
||||||
|
<pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-lisp" data-lang="lisp"><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7c7c79">1
|
||||||
|
</span></code></pre></td>
|
||||||
|
<td style="vertical-align:top;padding:0;margin:0;border:0;">
|
||||||
|
<pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-lisp" data-lang="lisp">(font-lock-mode)</code></pre></td></tr></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="sidebar" class="fixed">
|
||||||
|
<div class="toc">
|
||||||
|
<h3>Contents:</h3>
|
||||||
|
<nav id="TableOfContents">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#show-plain-text-version">Show plain text version</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<footer class="pagefooter" role="contentinfo">
|
||||||
|
<div class="contact">
|
||||||
|
<p>
|
||||||
|
J. Fernando Sánchez Rada | balkian
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ul id="social">
|
||||||
|
<li><a href="http://github.com/balkian"><i class="fab fa-github"></i></a></li>
|
||||||
|
<li><a href="http://lab.gsi.upm.es/balkian"><i class="fab fa-gitlab"></i></a></li>
|
||||||
|
<li><a href="http://twitter.com/balkian"><i class="fab fa-twitter"></i></a></li>
|
||||||
|
<li><a href="http://git.sinpapel.es/balkian"><i class="fab fa-git"></i></a></li>
|
||||||
|
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fab fa-linkedin"></i></a></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<i class="fab fa-creative-commons"></i> Creative Commons A-SA-NC
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="../../js/jquery-2.0.2.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
243
cheatsheet/index.html
Normal file
243
cheatsheet/index.html
Normal file
@ -0,0 +1,243 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>Balkian's site - Cheatsheets</title>
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../font-awesome/css/all.css">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" media="only screen" href="../css/main.css">
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container" class="container">
|
||||||
|
<div id="contentwrapper">
|
||||||
|
<div id="content">
|
||||||
|
<header id="header">
|
||||||
|
<ul class="navbar" id="navbar">
|
||||||
|
<a href="../">
|
||||||
|
<li >
|
||||||
|
<i class="fa fa-home fa-large"></i>
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../post/"><li class='' >Blog
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../tags/"><li class='' >Tags
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../cheatsheet/"><li class=' active' >Cheatsheets
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../about/"><li class='' >About
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../project/"><li class='' >Projects
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="//jfernando.es" target="_blank"><li>
|
||||||
|
CV
|
||||||
|
</li></a>
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="entry default-entry">
|
||||||
|
<div class="posthead">
|
||||||
|
|
||||||
|
<h2><a href="../cheatsheet/emacs/" class="title">Emacs</a></h2>
|
||||||
|
<h3>Configuration files and tricks for emacs</h3>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/emacs'><span class="label">emacs</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/org'><span class="label">org</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/productivity'><span class="label">productivity</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/lisp'><span class="label">lisp</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="entry default-entry">
|
||||||
|
<div class="posthead">
|
||||||
|
|
||||||
|
<h2><a href="../cheatsheet/linux/" class="title">Linux</a></h2>
|
||||||
|
<h3></h3>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/linux'><span class="label">linux</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/arch'><span class="label">arch</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="entry default-entry">
|
||||||
|
<div class="posthead">
|
||||||
|
|
||||||
|
<h2><a href="../cheatsheet/python/" class="title">Python</a></h2>
|
||||||
|
<h3></h3>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/python'><span class="label">python</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="entry default-entry">
|
||||||
|
<div class="posthead">
|
||||||
|
|
||||||
|
<h2><a href="../cheatsheet/rpi/" class="title">Raspberry Pi</a></h2>
|
||||||
|
<h3></h3>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="pagination pag-bottom">
|
||||||
|
|
||||||
|
<span class="previouspage" style="display:none;"><i class="icon-chevron-sign-left"></i> Previous Page</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<span class="nextpage" style="display:none;">Older Posts <i class="icon-chevron-sign-right"></i></span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="sidebar" class="fixed">
|
||||||
|
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
||||||
|
<div class="flipper sticky">
|
||||||
|
<div class="front">
|
||||||
|
|
||||||
|
<img id="avatar" src="../img/me.png">
|
||||||
|
</div>
|
||||||
|
<div class="back">
|
||||||
|
|
||||||
|
<img id="picture" src="../img/me-bat.png">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="about">
|
||||||
|
|
||||||
|
<div class="icons">
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-linux"></i></span><span class="explanation">Linux user</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-android"></i></span><span class="explanation">Android dev and user</span></span>
|
||||||
|
<a href="http://github.com/balkian" target="_blank"><span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-github"></i> </span><span class="explanation">Github user</span></span></a>
|
||||||
|
<a href="http://gitlab.com/balkian" target="_blank"><span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-gitlab"></i> </span><span class="explanation">GitLab user</span></span></a>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-moon"></i> </span><span class="explanation">Night owl</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-flag"></i></span> <span class="explanation">I love languages</span></span>
|
||||||
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-code"></i> </span> <span class="explanation">I love programming</span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="entries">
|
||||||
|
<h2 class="title">Latest entries</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2019-01-06-zigbee2mqtt/">Controlling Zigbee devices with MQTT</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/mqtt'><span class="label">mqtt</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/iot'><span class="label">iot</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/zigbee'><span class="label">zigbee</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2016-09-28-tqdm/">Progress bars in python</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/python'><span class="label">python</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2015-04-10-github-dotfiles/">Sharing dotfiles</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/github'><span class="label">github</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/git'><span class="label">git</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/dotfiles'><span class="label">dotfiles</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt><a href="../post/2014-12-09-zotero/">Zotero</a></dt>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/zotero'><span class="label">zotero</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/webdav'><span class="label">webdav</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/nginx'><span class="label">nginx</span></a>
|
||||||
|
|
||||||
|
<a class="tag" href='../tags/apache'><span class="label">apache</span></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<footer class="pagefooter" role="contentinfo">
|
||||||
|
<div class="contact">
|
||||||
|
<p>
|
||||||
|
J. Fernando Sánchez Rada | balkian
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ul id="social">
|
||||||
|
<li><a href="http://github.com/balkian"><i class="fab fa-github"></i></a></li>
|
||||||
|
<li><a href="http://lab.gsi.upm.es/balkian"><i class="fab fa-gitlab"></i></a></li>
|
||||||
|
<li><a href="http://twitter.com/balkian"><i class="fab fa-twitter"></i></a></li>
|
||||||
|
<li><a href="http://git.sinpapel.es/balkian"><i class="fab fa-git"></i></a></li>
|
||||||
|
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fab fa-linkedin"></i></a></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<i class="fab fa-creative-commons"></i> Creative Commons A-SA-NC
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="../js/jquery-2.0.2.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
55
cheatsheet/index.xml
Normal file
55
cheatsheet/index.xml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Cheatsheets on Balkian's site</title>
|
||||||
|
<link>/cheatsheet/</link>
|
||||||
|
<description>Recent content in Cheatsheets on Balkian's site</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<copyright>This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.</copyright>
|
||||||
|
|
||||||
|
<atom:link href="/cheatsheet/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Emacs</title>
|
||||||
|
<link>/cheatsheet/emacs/</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
|
||||||
|
<guid>/cheatsheet/emacs/</guid>
|
||||||
|
<description><h1 id="show-plain-text-version">Show plain text version</h1></description>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Linux</title>
|
||||||
|
<link>/cheatsheet/linux/</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
|
||||||
|
<guid>/cheatsheet/linux/</guid>
|
||||||
|
<description> Black screen and LightDM doesn&rsquo;t unlock Add this to your /etc/lightdm/lightdm.conf file:
|
||||||
|
[LightDM] logind-check-graphical=true </description>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Python</title>
|
||||||
|
<link>/cheatsheet/python/</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
|
||||||
|
<guid>/cheatsheet/python/</guid>
|
||||||
|
<description> Interesting libraries TQDM From tqdm&rsquo;s github repository:
|
||||||
|
tqdm means &ldquo;progress&rdquo; in Arabic (taqadum, تقدّم) and an abbreviation for &ldquo;I love you so much&rdquo; in Spanish (te quiero demasiado).
|
||||||
|
</description>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Raspberry Pi</title>
|
||||||
|
<link>/cheatsheet/rpi/</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
|
||||||
|
<guid>/cheatsheet/rpi/</guid>
|
||||||
|
<description> HDMI flickering Avoid HDMI flickering/intermittent blanking on RPI with a 1400x1050 VGA monitor.
|
||||||
|
1 2 3 4 5 hdmi_drive=2 hdmi_group=2 hdmi_mode=42 disable_overscan=1 config_hdmi_boost=7 </description>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
104
cheatsheet/linux/index.html
Normal file
104
cheatsheet/linux/index.html
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>Balkian's site - WELCOME</title>
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../../font-awesome/css/all.css">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" media="only screen" href="../../css/main.css">
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container" class="container">
|
||||||
|
<div id="contentwrapper">
|
||||||
|
<div id="content">
|
||||||
|
<header id="header">
|
||||||
|
<ul class="navbar" id="navbar">
|
||||||
|
<a href="../../">
|
||||||
|
<li >
|
||||||
|
<i class="fa fa-home fa-large"></i>
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../../post/"><li class='' >Blog
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../tags/"><li class='' >Tags
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../cheatsheet/"><li class=' active' >Cheatsheets
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../about/"><li class='' >About
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../project/"><li class='' >Projects
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="//jfernando.es" target="_blank"><li>
|
||||||
|
CV
|
||||||
|
</li></a>
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Linux</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1 id="black-screen-and-lightdm-doesn-t-unlock">Black screen and LightDM doesn’t unlock</h1>
|
||||||
|
|
||||||
|
<p>Add this to your /etc/lightdm/lightdm.conf file:</p>
|
||||||
|
|
||||||
|
<pre><code>[LightDM]
|
||||||
|
logind-check-graphical=true
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="sidebar" class="fixed">
|
||||||
|
<div class="toc">
|
||||||
|
<h3>Contents:</h3>
|
||||||
|
<nav id="TableOfContents">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#black-screen-and-lightdm-doesn-t-unlock">Black screen and LightDM doesn’t unlock</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<footer class="pagefooter" role="contentinfo">
|
||||||
|
<div class="contact">
|
||||||
|
<p>
|
||||||
|
J. Fernando Sánchez Rada | balkian
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ul id="social">
|
||||||
|
<li><a href="http://github.com/balkian"><i class="fab fa-github"></i></a></li>
|
||||||
|
<li><a href="http://lab.gsi.upm.es/balkian"><i class="fab fa-gitlab"></i></a></li>
|
||||||
|
<li><a href="http://twitter.com/balkian"><i class="fab fa-twitter"></i></a></li>
|
||||||
|
<li><a href="http://git.sinpapel.es/balkian"><i class="fab fa-git"></i></a></li>
|
||||||
|
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fab fa-linkedin"></i></a></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<i class="fab fa-creative-commons"></i> Creative Commons A-SA-NC
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="../../js/jquery-2.0.2.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
1
cheatsheet/page/1/index.html
Normal file
1
cheatsheet/page/1/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<!DOCTYPE html><html><head><title>/cheatsheet/</title><link rel="canonical" href="/cheatsheet/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=/cheatsheet/" /></head></html>
|
111
cheatsheet/python/index.html
Normal file
111
cheatsheet/python/index.html
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>Balkian's site - WELCOME</title>
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../../font-awesome/css/all.css">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" media="only screen" href="../../css/main.css">
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container" class="container">
|
||||||
|
<div id="contentwrapper">
|
||||||
|
<div id="content">
|
||||||
|
<header id="header">
|
||||||
|
<ul class="navbar" id="navbar">
|
||||||
|
<a href="../../">
|
||||||
|
<li >
|
||||||
|
<i class="fa fa-home fa-large"></i>
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../../post/"><li class='' >Blog
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../tags/"><li class='' >Tags
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../cheatsheet/"><li class=' active' >Cheatsheets
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../about/"><li class='' >About
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../project/"><li class='' >Projects
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="//jfernando.es" target="_blank"><li>
|
||||||
|
CV
|
||||||
|
</li></a>
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Python</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1 id="interesting-libraries">Interesting libraries</h1>
|
||||||
|
|
||||||
|
<h2 id="tqdm-https-github-com-tqdm-tqdm"><a href="https://github.com/tqdm/tqdm">TQDM</a></h2>
|
||||||
|
|
||||||
|
<p>From tqdm’s github repository:</p>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<p>tqdm means “progress” in Arabic (taqadum, تقدّم) and an abbreviation for “I love you so much” in Spanish (te quiero demasiado).</p>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<p><img src="https://raw.githubusercontent.com/tqdm/tqdm/master/images/tqdm.gif" alt="TQDM in action" /></p>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="sidebar" class="fixed">
|
||||||
|
<div class="toc">
|
||||||
|
<h3>Contents:</h3>
|
||||||
|
<nav id="TableOfContents">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#interesting-libraries">Interesting libraries</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#tqdm-https-github-com-tqdm-tqdm"><a href="https://github.com/tqdm/tqdm">TQDM</a></a></li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<footer class="pagefooter" role="contentinfo">
|
||||||
|
<div class="contact">
|
||||||
|
<p>
|
||||||
|
J. Fernando Sánchez Rada | balkian
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ul id="social">
|
||||||
|
<li><a href="http://github.com/balkian"><i class="fab fa-github"></i></a></li>
|
||||||
|
<li><a href="http://lab.gsi.upm.es/balkian"><i class="fab fa-gitlab"></i></a></li>
|
||||||
|
<li><a href="http://twitter.com/balkian"><i class="fab fa-twitter"></i></a></li>
|
||||||
|
<li><a href="http://git.sinpapel.es/balkian"><i class="fab fa-git"></i></a></li>
|
||||||
|
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fab fa-linkedin"></i></a></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<i class="fab fa-creative-commons"></i> Creative Commons A-SA-NC
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="../../js/jquery-2.0.2.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
115
cheatsheet/rpi/index.html
Normal file
115
cheatsheet/rpi/index.html
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>Balkian's site - WELCOME</title>
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../../font-awesome/css/all.css">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" media="only screen" href="../../css/main.css">
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container" class="container">
|
||||||
|
<div id="contentwrapper">
|
||||||
|
<div id="content">
|
||||||
|
<header id="header">
|
||||||
|
<ul class="navbar" id="navbar">
|
||||||
|
<a href="../../">
|
||||||
|
<li >
|
||||||
|
<i class="fa fa-home fa-large"></i>
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../../post/"><li class='' >Blog
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../tags/"><li class='' >Tags
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../cheatsheet/"><li class=' active' >Cheatsheets
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../about/"><li class='' >About
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="../../project/"><li class='' >Projects
|
||||||
|
</li></a>
|
||||||
|
|
||||||
|
<a href="//jfernando.es" target="_blank"><li>
|
||||||
|
CV
|
||||||
|
</li></a>
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Raspberry Pi</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1 id="hdmi-flickering">HDMI flickering</h1>
|
||||||
|
|
||||||
|
<p>Avoid HDMI flickering/intermittent blanking on RPI with a 1400x1050 VGA monitor.</p>
|
||||||
|
<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4">
|
||||||
|
<table style="border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
|
||||||
|
<pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-python" data-lang="python"><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7c7c79">1
|
||||||
|
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7c7c79">2
|
||||||
|
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7c7c79">3
|
||||||
|
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7c7c79">4
|
||||||
|
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7c7c79">5
|
||||||
|
</span></code></pre></td>
|
||||||
|
<td style="vertical-align:top;padding:0;margin:0;border:0;">
|
||||||
|
<pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-python" data-lang="python"> hdmi_drive<span style="color:#f92672">=</span><span style="color:#ae81ff">2</span>
|
||||||
|
hdmi_group<span style="color:#f92672">=</span><span style="color:#ae81ff">2</span>
|
||||||
|
hdmi_mode<span style="color:#f92672">=</span><span style="color:#ae81ff">42</span>
|
||||||
|
disable_overscan<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
|
||||||
|
config_hdmi_boost<span style="color:#f92672">=</span><span style="color:#ae81ff">7</span></code></pre></td></tr></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="sidebar" class="fixed">
|
||||||
|
<div class="toc">
|
||||||
|
<h3>Contents:</h3>
|
||||||
|
<nav id="TableOfContents">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#hdmi-flickering">HDMI flickering</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<footer class="pagefooter" role="contentinfo">
|
||||||
|
<div class="contact">
|
||||||
|
<p>
|
||||||
|
J. Fernando Sánchez Rada | balkian
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ul id="social">
|
||||||
|
<li><a href="http://github.com/balkian"><i class="fab fa-github"></i></a></li>
|
||||||
|
<li><a href="http://lab.gsi.upm.es/balkian"><i class="fab fa-gitlab"></i></a></li>
|
||||||
|
<li><a href="http://twitter.com/balkian"><i class="fab fa-twitter"></i></a></li>
|
||||||
|
<li><a href="http://git.sinpapel.es/balkian"><i class="fab fa-git"></i></a></li>
|
||||||
|
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fab fa-linkedin"></i></a></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<i class="fab fa-creative-commons"></i> Creative Commons A-SA-NC
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="../../js/jquery-2.0.2.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,269 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - Controlling Zigbee devices with MQTT
|
|
||||||
</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li >
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li class="active"
|
|
||||||
>
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<div class="postnav">
|
|
||||||
<span class="previouspost"><i class="fa fa-chevron-left"></i> <a href="hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></span>
|
|
||||||
</div>
|
|
||||||
<div class="posthead">
|
|
||||||
<h2 class="title">Controlling Zigbee devices with MQTT</h2>
|
|
||||||
<span class="meta date">2019-01-06</span>
|
|
||||||
<span class="tag"><a href="/tag/mqtt.html" class="label label-default">mqtt</a></span>
|
|
||||||
<span class="tag"><a href="/tag/iot.html" class="label label-default">iot</a></span>
|
|
||||||
<span class="tag"><a href="/tag/zigbee.html" class="label label-default">zigbee</a></span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
<p>This is a short tutorial on connecting a zigbee device (an Aqara cube) to an MQTT server, so you can control your zigbee devices from the network.</p>
|
|
||||||
<p>If you're anything like me, you're probably a sucker for IoT devices.
|
|
||||||
For a long time, I've been using WiFi-enabled lights, and Amazon dash buttons to control them.
|
|
||||||
To keep these (cheap Chinese) internet enabled devices away from your network and their respective cloud services, you'll probably want to set up a dedicated network in your router (more on this on a future post, maybe).
|
|
||||||
Another disadvantage of WiFi devices is that they're relatively power hungry.</p>
|
|
||||||
<p>A popular alternative is using ZigBee for communication.
|
|
||||||
It is a dedicated protocol similar to bluetooth (BLE), with lower power requirements and bitrate.</p>
|
|
||||||
<p>Take the (super cute) aqara cube as an example.
|
|
||||||
It is a small cube that detects rotation on all of its axes, and tapping events.
|
|
||||||
Here's a video:</p>
|
|
||||||
<div class="youtube youtube-16x9"><iframe src="https://www.youtube.com/embed/5YtqG1wEnng" allowfullscreen seamless frameBorder="0"></iframe></div><p>To connect to zigbee devices you will need a zigbee enabled gateway (a.k.a. hub), which connects to your WiFi network and your zigbee devices.
|
|
||||||
Once again, this means adding an internet-enabled device to your home, and probably a couple of cloud services.</p>
|
|
||||||
<p>As an alternative, you can set up your own zigbee gateway, and control it to your home automation platform of choice (e.g. home assistant).
|
|
||||||
We will cover how to set up a zigbee2mqtt gateway that is also connected to an MQTT server, so you can use MQTT to control your devices and get notifications.</p>
|
|
||||||
<p>What you need:</p>
|
|
||||||
<ul class="simple">
|
|
||||||
<li><a class="reference external" href="https://www.aliexpress.com/item/Original-Xiaomi-Mi-Aqara-Cube-Smart-Home-Controller-6-Action-Operation-Fr-Home-Device-Zigbee-Version/32892947622.html?spm=a2g0s.9042311.0.0.3da24c4dXV8sBI">Aqara cube</a>.</li>
|
|
||||||
<li><a class="reference external" href="https://www.aliexpress.com/item/Wireless-Zigbee-CC2531-CC2540-Zigbee-Sniffer-Bluetooth-BLE-4-0-Dongle-Capture-Module-USB-Programmer-Downloader/32907587711.html?spm=a2g0s.9042311.0.0.3da24c4dXV8sBI">CC2531 zigbee sniffer</a>.</li>
|
|
||||||
<li><a class="reference external" href="https://www.aliexpress.com/item/CFSUNBIRD-CC-DEBUGGER-Debugger-and-Programmer-for-RF-System-on-Chips-TI-ORIGINAL-Fast-hipping/32813122315.html?spm=a2g0s.9042311.0.0.3da24c4dXV8sBI">CC-debugger</a>.</li>
|
|
||||||
</ul>
|
|
||||||
<p>You will need to flash your sniffer.
|
|
||||||
For that, you only need to follow the instructions from the <a class="reference external" href="https://koenkk.github.io/zigbee2mqtt/">zigbee2mqtt documentation</a>.</p>
|
|
||||||
<p>Once you're done flashing, you're ready to set up the zigbee2mqtt server.
|
|
||||||
For convenience, I wrote a simple docker-compose to deploy a zigbee2mqtt server and a test mosquitto server:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
13
|
|
||||||
14
|
|
||||||
15
|
|
||||||
16
|
|
||||||
17
|
|
||||||
18
|
|
||||||
19
|
|
||||||
20
|
|
||||||
21
|
|
||||||
22
|
|
||||||
23
|
|
||||||
24
|
|
||||||
25
|
|
||||||
26
|
|
||||||
27
|
|
||||||
28
|
|
||||||
29
|
|
||||||
30
|
|
||||||
31
|
|
||||||
32
|
|
||||||
33</pre></div></td><td class="code"><div class="highlight"><pre><span></span>version: '2.1'
|
|
||||||
services:
|
|
||||||
zigbee2mqtt:
|
|
||||||
image: koenkk/zigbee2mqtt
|
|
||||||
container_name: zigbee2mqtt
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./z2m-data/:/app/data/
|
|
||||||
devices:
|
|
||||||
- "/dev/ttyACM0"
|
|
||||||
networks:
|
|
||||||
- hass
|
|
||||||
mqtt:
|
|
||||||
image: eclipse-mosquitto
|
|
||||||
ports:
|
|
||||||
- 1883:1883
|
|
||||||
- 9001:9001
|
|
||||||
networks:
|
|
||||||
- hass
|
|
||||||
volumes:
|
|
||||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf
|
|
||||||
hass:
|
|
||||||
image: homeassistant/home-assistant
|
|
||||||
ports:
|
|
||||||
- "8123:8123"
|
|
||||||
networks:
|
|
||||||
- hass
|
|
||||||
volumes:
|
|
||||||
- ./hass-config:/config
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
networks:
|
|
||||||
hass:
|
|
||||||
driver: overlay
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>You can test your installation with:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6</pre></div></td><td class="code"><div class="highlight"><pre><span></span> ❯ mosquitto_sub -h localhost -p <span class="m">1883</span> -t <span class="s1">'zigbee2mqtt/#'</span>
|
|
||||||
online
|
|
||||||
<span class="o">{</span><span class="s2">"battery"</span>:17,<span class="s2">"voltage"</span>:2925,<span class="s2">"linkquality"</span>:149,<span class="s2">"action"</span>:<span class="s2">"rotate_right"</span>,<span class="s2">"angle"</span>:12.8<span class="o">}</span>
|
|
||||||
<span class="o">{</span><span class="s2">"battery"</span>:17,<span class="s2">"voltage"</span>:2925,<span class="s2">"linkquality"</span>:141,<span class="s2">"action"</span>:<span class="s2">"slide"</span>,<span class="s2">"side"</span>:2<span class="o">}</span>
|
|
||||||
<span class="o">{</span><span class="s2">"battery"</span>:17,<span class="s2">"voltage"</span>:2925,<span class="s2">"linkquality"</span>:120<span class="o">}</span>
|
|
||||||
<span class="o">{</span><span class="s2">"battery"</span>:17,<span class="s2">"voltage"</span>:2925,<span class="s2">"linkquality"</span>:141,<span class="s2">"action"</span>:<span class="s2">"wakeu</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>zigbee2mqtt supports the following events for the aqara cube: shake, wakeup, fall, tap, slide, flip180, flip90, rotate_left and rotate_right.
|
|
||||||
Every event has additional information, such as the sides involved, or the degrees turned.</p>
|
|
||||||
<p>Now you are ready to set up home assistant support in zigbee2mqtt following <a class="reference external" href="https://koenkk.github.io/zigbee2mqtt/integration/home_assistant.html">this guide</a>.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/mqtt.html">mqtt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/iot.html">iot</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zigbee.html">zigbee</a></dd>
|
|
||||||
<dt><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/rpi.html">rpi</a></dd>
|
|
||||||
<dt><a href="/pptp-connections.html">PPTP connections</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/openwrt.html">openwrt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/router.html">router</a></dd>
|
|
||||||
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,204 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title>balkian.com - Creating my web
|
|
||||||
</title>
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
|
||||||
<link rel="stylesheet" href="/theme/css/solarized.css">
|
|
||||||
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
|
|
||||||
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
|
|
||||||
|
|
||||||
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
|
||||||
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div id="contentwrapper">
|
|
||||||
<div id="content">
|
|
||||||
<header id="header">
|
|
||||||
<ul class="navbar" id="navbar">
|
|
||||||
<a href="/">
|
|
||||||
<li >
|
|
||||||
<i class="fa fa-home fa-large"></i>
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/cheats.html"><li >
|
|
||||||
Cheats
|
|
||||||
</li></a>
|
|
||||||
<a href="/category/misc.html"><li class="active"
|
|
||||||
>
|
|
||||||
Misc
|
|
||||||
</li></a>
|
|
||||||
<a href="/tags.html"><li >
|
|
||||||
Tags
|
|
||||||
</li></a>
|
|
||||||
<a href="/pages/projects.html"><li >
|
|
||||||
Projects
|
|
||||||
</li></a>
|
|
||||||
<a href="//jfernando.es" target="_blank"><li>
|
|
||||||
CV
|
|
||||||
</li></a>
|
|
||||||
</ul>
|
|
||||||
</header>
|
|
||||||
<!--Body content-->
|
|
||||||
<div class="postnav">
|
|
||||||
<span class='nextpost'><a href="/remove-git-files-with-globbing.html">Remove git files with globbing</a> <i class="fa fa-chevron-right"></i></span>
|
|
||||||
</div>
|
|
||||||
<div class="posthead">
|
|
||||||
<h2 class="title">Creating my web</h2>
|
|
||||||
<span class="meta date">2013-08-22</span>
|
|
||||||
<span class="tag"><a href="/tag/starters.html" class="label label-default">starters</a></span>
|
|
||||||
<span class="tag"><a href="/tag/javascript.html" class="label label-default">javascript</a></span>
|
|
||||||
<span class="tag"><a href="/tag/ruby.html" class="label label-default">ruby</a></span>
|
|
||||||
<span class="tag"><a href="/tag/github.html" class="label label-default">github</a></span>
|
|
||||||
<span class="tag"><a href="/tag/git.html" class="label label-default">git</a></span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
<p>Finally, I've decided to set up a decent personal page. I have settled
|
|
||||||
for github-pages because I like the idea of keeping my site in a
|
|
||||||
repository and having someone else host and deploy it for me. The site
|
|
||||||
will be really simple, mostly static files. Thanks to Github,
|
|
||||||
<a class="reference external" href="http://jekyllrb.com">Jekyll</a> will automatically generate static
|
|
||||||
pages for my posts every time I commit anything new to this repository.</p>
|
|
||||||
<p>But Jekyll can be used independently, so if I ever choose to host the
|
|
||||||
site myself, I can do it quite easily. Another thing that I liked about
|
|
||||||
this approach is that the generated html files can be used in the
|
|
||||||
future, and I will not need Jekyll to serve it. Jekyll is really simple
|
|
||||||
and most of the things are written in plain html. That means that
|
|
||||||
everything could be easily reused if I ever choose to change to another
|
|
||||||
blogging framework (e.g. pelical). But, for the time being, I like the
|
|
||||||
fact that Github takes care of the compilation as well, so I can simply
|
|
||||||
modify or add files through the web interface should I need to.</p>
|
|
||||||
<p>I hadn't played with HTML and CSS for a while now, so I also wanted to
|
|
||||||
use this site as a playground. At some point, I realised I was doing
|
|
||||||
mostly everything in plain HTML and CSS, and decided to keep it like
|
|
||||||
that for as long as possible. As of this writing, I haven't included any
|
|
||||||
Javascript code in the page. Probably I will use some to add my
|
|
||||||
<a class="reference external" href="http://gist.github.com/balkian">gists</a> and
|
|
||||||
<a class="reference external" href="http://github.com/balkian">repositories</a>, but we will see about
|
|
||||||
that.</p>
|
|
||||||
<p>I think the code speaks for itself, so you can check out <a class="reference external" href="http://github.com/balkian/balkian.github.com">my repository
|
|
||||||
on Github</a>. You can
|
|
||||||
clone and deploy it easily like this:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git clone
|
|
||||||
https://github.com/balkian/balkian.github.com <span class="nb">cd</span> balkian.github.com
|
|
||||||
jekyll serve -w
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>I will keep updating this post with information about:</p>
|
|
||||||
<ul class="simple">
|
|
||||||
<li>Some Jekyll plugins that might be useful</li>
|
|
||||||
<li>What CSS tricks I learnt</li>
|
|
||||||
<li>The webfonts I used</li>
|
|
||||||
<li>The badge on the left side of the page</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar" >
|
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
|
||||||
<div class="flipper sticky">
|
|
||||||
<div class="front">
|
|
||||||
<!-- front content -->
|
|
||||||
<img id="avatar" src="/theme/img/me.png">
|
|
||||||
</div>
|
|
||||||
<div class="back">
|
|
||||||
<!-- back content -->
|
|
||||||
<img id="picture" src="/theme/img/me-bat.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
|
||||||
<h2 class="title">Latest entries</h2>
|
|
||||||
<dl>
|
|
||||||
<dt><a href="/controlling-zigbee-devices-with-mqtt.html">Controlling Zigbee devices with MQTT</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/mqtt.html">mqtt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/iot.html">iot</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/zigbee.html">zigbee</a></dd>
|
|
||||||
<dt><a href="/hdmi-vga-adapter-issues-with-raspberry-pi.html">HDMI-VGA adapter issues with Raspberry Pi</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/rpi.html">rpi</a></dd>
|
|
||||||
<dt><a href="/pptp-connections.html">PPTP connections</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/openwrt.html">openwrt</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/router.html">router</a></dd>
|
|
||||||
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
|
|
||||||
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
|
|
||||||
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="about" style="clear:both;">
|
|
||||||
<!-- <h2 class="title">About me</h2> -->
|
|
||||||
<div class="icons">
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
|
|
||||||
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Sidebar content-->
|
|
||||||
</div> <div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<div class="contact">
|
|
||||||
<p>
|
|
||||||
J. Fernando Sánchez Rada | balkian
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul id="social">
|
|
||||||
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
|
|
||||||
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
|
|
||||||
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
|
|
||||||
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
|
|
||||||
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="/theme/js/jquery-2.0.2.min.js"></script>
|
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _paq = _paq || [];
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//piwik.sinpapel.es/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
|
||||||
_paq.push(['setSiteId', 2]);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Code -->
|
|
||||||
|
|
||||||
<!--<script src="/js/bootstrap.min.js"></script>-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
107
css/highlight.css
Normal file
107
css/highlight.css
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
/*
|
||||||
|
IR_Black style (c) Vasily Mikhailitchenko <vaskas@programica.ru>
|
||||||
|
*/
|
||||||
|
|
||||||
|
.hljs {
|
||||||
|
display: block;
|
||||||
|
overflow-x: auto;
|
||||||
|
/*padding: 0.5em;*/
|
||||||
|
background: #272b2d;
|
||||||
|
color: #d0d0d0;
|
||||||
|
-webkit-text-size-adjust: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-shebang,
|
||||||
|
.hljs-comment {
|
||||||
|
color: #777279;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-keyword,
|
||||||
|
.hljs-tag,
|
||||||
|
.tex .hljs-command,
|
||||||
|
.hljs-request,
|
||||||
|
.hljs-status,
|
||||||
|
.clojure .hljs-attribute {
|
||||||
|
color: #ebde68;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-sub .hljs-keyword,
|
||||||
|
.method,
|
||||||
|
.hljs-list .hljs-title,
|
||||||
|
.nginx .hljs-title {
|
||||||
|
color: #ffffb6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-string,
|
||||||
|
.hljs-tag .hljs-value,
|
||||||
|
.hljs-cdata,
|
||||||
|
.hljs-filter .hljs-argument,
|
||||||
|
.hljs-attr_selector,
|
||||||
|
.apache .hljs-cbracket,
|
||||||
|
.hljs-date,
|
||||||
|
.coffeescript .hljs-attribute {
|
||||||
|
color: #c1ef65;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-subst {
|
||||||
|
color: #daefa3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-regexp {
|
||||||
|
color: #e9c062;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-title,
|
||||||
|
.hljs-sub .hljs-identifier,
|
||||||
|
.hljs-pi,
|
||||||
|
.hljs-decorator,
|
||||||
|
.tex .hljs-special,
|
||||||
|
.hljs-type,
|
||||||
|
.hljs-constant,
|
||||||
|
.smalltalk .hljs-class,
|
||||||
|
.hljs-doctag,
|
||||||
|
.nginx .hljs-built_in {
|
||||||
|
color: #c1ef65;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-symbol,
|
||||||
|
.ruby .hljs-symbol .hljs-string,
|
||||||
|
.hljs-number,
|
||||||
|
.hljs-variable,
|
||||||
|
.vbscript,
|
||||||
|
.hljs-literal,
|
||||||
|
.hljs-name {
|
||||||
|
color: #77bcd7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.css .hljs-tag {
|
||||||
|
color: #96cbfe;
|
||||||
|
}
|
||||||
|
|
||||||
|
.css .hljs-rule .hljs-property,
|
||||||
|
.css .hljs-id {
|
||||||
|
color: #ffffb6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.css .hljs-class {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-hexcolor {
|
||||||
|
color: #c6c5fe;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-number {
|
||||||
|
color:#77bcd7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.coffeescript .javascript,
|
||||||
|
.javascript .xml,
|
||||||
|
.tex .hljs-formula,
|
||||||
|
.xml .javascript,
|
||||||
|
.xml .vbscript,
|
||||||
|
.xml .css,
|
||||||
|
.xml .hljs-cdata {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
825
css/main-old.css
Normal file
825
css/main-old.css
Normal file
@ -0,0 +1,825 @@
|
|||||||
|
html,
|
||||||
|
body {
|
||||||
|
margin:0;
|
||||||
|
padding:0;
|
||||||
|
height:100%;
|
||||||
|
font-family: 'Open Sans', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
overflow-y: scroll;
|
||||||
|
background: url(../img/noise.jpg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
min-height: 100%;
|
||||||
|
position:relative;
|
||||||
|
margin: 0 auto;
|
||||||
|
background-color: rgba(255, 255, 255, 0.5);
|
||||||
|
border: 1px solid #CCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentwrapper {
|
||||||
|
position: relative;
|
||||||
|
padding-bottom: 14em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#contentwrapper,
|
||||||
|
#content,
|
||||||
|
#sidebar {
|
||||||
|
//change the box model for simplicity
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentwrapper {
|
||||||
|
font-size: 1em;
|
||||||
|
padding: 1.5em;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content,
|
||||||
|
#sidebar {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: top;
|
||||||
|
width: 100%;
|
||||||
|
padding-bottom: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content p {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.icons {
|
||||||
|
text-align: center;
|
||||||
|
color: #333;
|
||||||
|
/* text-shadow: 2px 2px #FFD700; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.coolicon {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.coolicon:hover .icon-stack {
|
||||||
|
visibility: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.coolicon:hover .explanation {
|
||||||
|
white-space: nowrap;
|
||||||
|
background: #FFD700;
|
||||||
|
display: block;
|
||||||
|
position:absolute;
|
||||||
|
border: 1px solid black;
|
||||||
|
z-index: 99;
|
||||||
|
top: 1em;
|
||||||
|
color: black;
|
||||||
|
font-family: Comfortaa;
|
||||||
|
/* width: 100%; */
|
||||||
|
padding: 0.5em;
|
||||||
|
/* border-radius: 0 10px 10px; */
|
||||||
|
overflow: visible;
|
||||||
|
left: 0;
|
||||||
|
/* transform-origin: 95% 50%; */
|
||||||
|
/* -moz-transform-origin: 95% 50%; */
|
||||||
|
/* -webkit-transform-origin: 95% 50%; */
|
||||||
|
-webkit-transform: rotate(-4deg);
|
||||||
|
-moz-transform: rotate(-4deg);
|
||||||
|
transform: rotate(-4deg);
|
||||||
|
}
|
||||||
|
/* .coolicon:hover { */
|
||||||
|
/* width: 5em; */
|
||||||
|
/* } */
|
||||||
|
.explanation {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #111;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
font-family: Comfortaa;
|
||||||
|
background-color: #000;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 auto;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer div, footer p, footer ul{
|
||||||
|
color: white;
|
||||||
|
padding: 2px;
|
||||||
|
margin: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site .footer {
|
||||||
|
font-size: 80%;
|
||||||
|
color: #666;
|
||||||
|
border-top: 4px solid #eee;
|
||||||
|
margin-top: 2em;
|
||||||
|
margin: 0em;
|
||||||
|
padding: 1em;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a {
|
||||||
|
color: #FFF;
|
||||||
|
text-shadow: 1px 1px 1px #069;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a:hover {
|
||||||
|
text-shadow: 0.1em 0.1em 0.1em #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site .footer .contact {
|
||||||
|
float: left;
|
||||||
|
margin-right: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site .footer .contact a {
|
||||||
|
color: #8085C1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site .footer .rss {
|
||||||
|
margin-top: 1.1em;
|
||||||
|
margin-right: -.2em;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site .footer .rss img {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todo {
|
||||||
|
list-style-type: none;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todo ul {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todo li.done {
|
||||||
|
}
|
||||||
|
|
||||||
|
.todo li.done:after {
|
||||||
|
content: "\2714";
|
||||||
|
padding-left: 0.5em;
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todo li.cancelled:after {
|
||||||
|
content: "\2718";
|
||||||
|
padding-left: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.postnav {
|
||||||
|
height: 1em;
|
||||||
|
width: 100%;
|
||||||
|
padding: 15px 9px;
|
||||||
|
margin-left: -10px;
|
||||||
|
background-color: white;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nextpost, .nextpage {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.previouspost, .previouspage {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pag-top{
|
||||||
|
/*margin: -9px auto;*/
|
||||||
|
/*margin-bottom 0;*/
|
||||||
|
/*border-radius: 0 0 15px 15px;*/
|
||||||
|
/*border: dashed 1px #AAA;*/
|
||||||
|
/*border-top-width: 0;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.pag-bottom {
|
||||||
|
/* bottom: -10px; */
|
||||||
|
/*margin: 0 auto;*/
|
||||||
|
/*border-radius: 15px 15px 0 0;*/
|
||||||
|
/*border: dashed 1px #AAA;*/
|
||||||
|
/*border-bottom-width: 0;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#social {
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#social li {
|
||||||
|
position: relative;
|
||||||
|
list-style-type: none;
|
||||||
|
display: inline-block;
|
||||||
|
height: 80px;
|
||||||
|
width: 80px;
|
||||||
|
padding: 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#social li a {
|
||||||
|
text-align: center;
|
||||||
|
width:100%;
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
font-size: 60px;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#social li a:hover {
|
||||||
|
position: absolute;
|
||||||
|
font-size: 80px;
|
||||||
|
top: -20px;
|
||||||
|
left: 0px;
|
||||||
|
/*left: 10px;*/
|
||||||
|
/*top: -50px;*/
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlighttable {
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
position: relative;
|
||||||
|
background-color: #FEFEFE;
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 80%;
|
||||||
|
padding: 0;
|
||||||
|
border: solid 1px #CCC;
|
||||||
|
/* border-radius: 5px 0px 5px 5px; */
|
||||||
|
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
|
||||||
|
-moz-box-sizing: border-box; /* Firefox, other Gecko */
|
||||||
|
box-sizing: border-box; /* Opera/IE 8+ */
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
/*background-color: #EEE;*/
|
||||||
|
overflow: auto;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0.5em;
|
||||||
|
position: relative;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
width: 80%;
|
||||||
|
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.linenos {
|
||||||
|
color: #AAA;
|
||||||
|
padding-right: 0.5em;
|
||||||
|
border-right: solid 1px #DDD;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navbar {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination {
|
||||||
|
position: relative;
|
||||||
|
height: 1em;
|
||||||
|
min-width: 60%;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #FFF;
|
||||||
|
z-index: 0;
|
||||||
|
text-weight: bold;
|
||||||
|
color: #AAA;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pag-top{
|
||||||
|
margin: 0px auto;
|
||||||
|
margin-bottom: 0;
|
||||||
|
border-top-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pag-bottom {
|
||||||
|
bottom: 0px;
|
||||||
|
margin: 0 auto;
|
||||||
|
border-bottom-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.previouspage {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nextpage {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clear { clear: both; }
|
||||||
|
|
||||||
|
.post {
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#headline {
|
||||||
|
position: relative;
|
||||||
|
margin: 0em;
|
||||||
|
font-size: 4em;
|
||||||
|
padding-top: 5px;
|
||||||
|
font-family: comfortaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
#headline a {
|
||||||
|
color: black;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#headline a.inv {
|
||||||
|
font-size: 0.8em;
|
||||||
|
color: white;
|
||||||
|
text-shadow: 1px 1px #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#headline a:hover {
|
||||||
|
color: white;
|
||||||
|
text-shadow: 1px 1px #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#social {
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entries dt {
|
||||||
|
font-weight: bold;
|
||||||
|
clear: both;
|
||||||
|
border-top: dashed 1px #CCC;
|
||||||
|
padding: 0.2em;
|
||||||
|
padding-top: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entries dd {
|
||||||
|
float: right;
|
||||||
|
margin: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-shadow: 0.5px 0.5px #CCC, -0.5px -0.5px 0 #CCC, 0.5px -0.5px 0 #CCC, -0.5px 0.5px 0 #CCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag:hover * {
|
||||||
|
-webkit-transform: rotate(-4deg);
|
||||||
|
-moz-transform: rotate(-4deg);
|
||||||
|
transform: rotate(-4deg);
|
||||||
|
color: black;
|
||||||
|
text-shadow: none ;
|
||||||
|
transform-origin: 95% 50%;
|
||||||
|
-moz-transform-origin: 95% 50%;
|
||||||
|
-webkit-transform-origin: 95% 50%;
|
||||||
|
background-color: #ffd700; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
margin: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag * {
|
||||||
|
display: inline-block;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hll {
|
||||||
|
background: yellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
font-family: comfortaa;
|
||||||
|
border-radius: 10px 0px 0px 10px;
|
||||||
|
padding: 5px;
|
||||||
|
color: black;
|
||||||
|
font-size: 10px;
|
||||||
|
padding-left: 10px;
|
||||||
|
border: 1px solid #777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label:after{
|
||||||
|
content: " •";
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.readmore {
|
||||||
|
/* background: #EAEAEA; */
|
||||||
|
padding: 0.5em;
|
||||||
|
/* color: white; */
|
||||||
|
border-radius: 0.5em 0.5em 0em 0em;
|
||||||
|
/* border-bottom: 1px solid; */
|
||||||
|
margin: 1em auto;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.readmore:hover a {
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.readmore a {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content:after {
|
||||||
|
content: ".";
|
||||||
|
display: block;
|
||||||
|
clear: both;
|
||||||
|
visibility: hidden;
|
||||||
|
line-height: 0;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#headline {
|
||||||
|
padding-left: 20%;;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
/* color: #069; */
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.previouspost {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* about ul { */
|
||||||
|
/* position: relative; */
|
||||||
|
/* width: 900px; */
|
||||||
|
/* margin: 0 auto; */
|
||||||
|
/* } */
|
||||||
|
|
||||||
|
/* #about li { */
|
||||||
|
/* line-height:1.5em; */
|
||||||
|
/* border-bottom:1px solid #DDD; */
|
||||||
|
/* float:left; */
|
||||||
|
/* display:inline; */
|
||||||
|
/* width: 33.333%; */
|
||||||
|
/* } */
|
||||||
|
|
||||||
|
/* #about i { */
|
||||||
|
/* /\*background-color: #ffd700;*\/ */
|
||||||
|
/* /\*padding: 5px;*\/ */
|
||||||
|
/* /\*border-radius: 10px;*\/ */
|
||||||
|
/* } */
|
||||||
|
|
||||||
|
@-webkit-keyframes toright {
|
||||||
|
from {
|
||||||
|
padding-left: 0px;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
padding-left: 150px;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes toright {
|
||||||
|
from {
|
||||||
|
padding-left: 0px;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
padding-left: 150px;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes appear{
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes appear{
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#subheadline {
|
||||||
|
-webkit-animation-name: toright;
|
||||||
|
-webkit-animation-duration: 4s;
|
||||||
|
-webkit-animation-iteration-count: 1;
|
||||||
|
-webkit-animation-timing-function: linear;
|
||||||
|
-webkit-animation-fill-mode: forwards;
|
||||||
|
animation-name: toright;
|
||||||
|
animation-duration: 4s;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disappear {
|
||||||
|
-webkit-animation-name: appear;
|
||||||
|
-webkit-animation-duration: 4s;
|
||||||
|
-webkit-animation-timing-function: linear;
|
||||||
|
-webkit-animation-iteration-count: 1;
|
||||||
|
-webkit-animation-fill-mode: forwards;
|
||||||
|
animation-name: appear;
|
||||||
|
animation-duration: 4s;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar {
|
||||||
|
font-size: 1.2em;
|
||||||
|
margin: 0;
|
||||||
|
list-style-type: none;
|
||||||
|
list-style-image: none;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar li {
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0.3em;
|
||||||
|
padding-bottom: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar li:hover {
|
||||||
|
border-bottom: solid 0.2em black;
|
||||||
|
padding-bottom: 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.navbar li:hover {
|
||||||
|
position: relative;
|
||||||
|
color: #000;
|
||||||
|
background-color: #fff;
|
||||||
|
text-shadow: 2px 2px #fff, -2px -2px 0 #fff, 2px -2px 0 #fff, -2px 2px 0 #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar li.active {
|
||||||
|
border-bottom: solid 0.2em #C00;
|
||||||
|
padding-bottom: 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar a:hover {
|
||||||
|
color: #c00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.previouspost {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
.toc li:before {
|
||||||
|
content: "";
|
||||||
|
border-color: transparent #111;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0.35em 0 0.35em 0.45em;
|
||||||
|
display: block;
|
||||||
|
height: 0;
|
||||||
|
width: 0;
|
||||||
|
left: -1em;
|
||||||
|
top: 0.9em;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 699px) {
|
||||||
|
#sidebar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (min-width: 700px) {
|
||||||
|
|
||||||
|
#contentwrapper{
|
||||||
|
position: absolute;
|
||||||
|
padding-bottom: 10em;
|
||||||
|
padding-left: 350px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
#content {
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
width: 100%;
|
||||||
|
position: absolute;
|
||||||
|
height: 10em;
|
||||||
|
padding-left: 300px;
|
||||||
|
bottom: -0em;
|
||||||
|
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
|
||||||
|
-moz-box-sizing: border-box; /* Firefox, other Gecko */
|
||||||
|
box-sizing: border-box; /* Opera/IE 8+ */
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
width: 25%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#badge{
|
||||||
|
position: relative;
|
||||||
|
margin: 0px auto 10px;
|
||||||
|
width: 90%;
|
||||||
|
height: 180px;
|
||||||
|
padding: 0;
|
||||||
|
/* margin-top: -2em; */
|
||||||
|
-webkit-transform: rotate(-4deg);
|
||||||
|
-moz-transform: rotate(-4deg);
|
||||||
|
transform: rotate(-4deg);
|
||||||
|
transition: 0.2s;
|
||||||
|
transition-delay: 0.4s;
|
||||||
|
z-index: 1000;
|
||||||
|
height: 250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#badge * {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* entire container, keeps perspective */
|
||||||
|
|
||||||
|
.flip-container {
|
||||||
|
perspective: 1000;
|
||||||
|
-webkit-perspective: 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#badge:hover {
|
||||||
|
-webkit-transform: translate(5px, 20px) rotate(0.5deg) scale(1.1);
|
||||||
|
-moz-transform: translate(5px, 20px) rotate(0.5deg) scale(1.1);
|
||||||
|
transform: translate(5px, 20px) rotate(0.5deg) scale(1.1);
|
||||||
|
transition-delay: 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* flip the pane when hovered */
|
||||||
|
.flip-container:hover .flipper, .flip-container.hover .flipper {
|
||||||
|
-webkit-transform: rotateY(180deg);
|
||||||
|
-moz-transform: rotateY(180deg);
|
||||||
|
transform: rotateY(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* .flip-container, .front, .back { */
|
||||||
|
/* width: 100%; */
|
||||||
|
/* } */
|
||||||
|
|
||||||
|
/* flip speed goes here */
|
||||||
|
.flipper {
|
||||||
|
transition: 0.8s;
|
||||||
|
transform-style: preserve-3d;
|
||||||
|
-webkit-transform-style: preserve-3d;
|
||||||
|
-moz-transform-style: preserve-3d;
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* hide back of pane during swap */
|
||||||
|
.front, .back {
|
||||||
|
backface-visibility: hidden;
|
||||||
|
-webkit-backface-visibility: hidden;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
padding: 1%;
|
||||||
|
padding-bottom: 10%;
|
||||||
|
background-color: black;
|
||||||
|
box-shadow: -5px 5px 5px #555;
|
||||||
|
-webkit-box-shadow: -5px 5px 15px #555;
|
||||||
|
-moz-box-shadow: -5px 5px 15px #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* front pane, placed above back */
|
||||||
|
.front {
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* back, initially hidden pane */
|
||||||
|
.back {
|
||||||
|
transform: rotateY(180deg);
|
||||||
|
-webkit-transform: rotateY(180deg);
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sticky:after {
|
||||||
|
content: "";
|
||||||
|
height: 20px;
|
||||||
|
width: 80px;
|
||||||
|
background: rgba(255,255,255,0.5);
|
||||||
|
position: absolute;
|
||||||
|
-webkit-box-shadow: 0px 1px 3px rgba(0,0,0,0.4);
|
||||||
|
-moz-box-shadow: 0px 1px 3px rgba(0,0,0,0.4);
|
||||||
|
box-shadow: 0px 1px 3px rgba(0,0,0,0.4);
|
||||||
|
top: 0;
|
||||||
|
right: 8px;
|
||||||
|
margin: -8px -40px 0 0;
|
||||||
|
z-index: 1000;
|
||||||
|
-webkit-transform:rotate(43deg);
|
||||||
|
-moz-transform:rotate(43deg);
|
||||||
|
backface-visibility: hidden;
|
||||||
|
-moz-backface-visibility: hidden;
|
||||||
|
-webkit-backface-visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sticky:hover:after {
|
||||||
|
content: "";
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
position: absolute;
|
||||||
|
right: 5px;
|
||||||
|
width: 10em;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 0px 0px 0px 15px;
|
||||||
|
padding: 0.5em;
|
||||||
|
background-color: #EEE;
|
||||||
|
/* color: white; */
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 + .date {
|
||||||
|
margin-top: -3.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 + .date {
|
||||||
|
margin-top: -2.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.posthead {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.posthead h2, h1 {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc {
|
||||||
|
/* padding: 1em 3em; */
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc h3 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.toc li {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar.fixed {
|
||||||
|
top: 0;
|
||||||
|
/* left: 0; */
|
||||||
|
height: 100%;
|
||||||
|
width: 300px;
|
||||||
|
min-height: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 1em 3em;
|
||||||
|
/* background-color: white; */
|
||||||
|
background: url(../img/noise.jpg);
|
||||||
|
z-index: 1000;
|
||||||
|
border-right: solid 1px black;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
#contentwrapper {
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -40,6 +40,7 @@ body {
|
|||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
padding: 1.5em;
|
padding: 1.5em;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
min-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content,
|
#content,
|
||||||
@ -55,6 +56,22 @@ body {
|
|||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.toc ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
.toc li:before {
|
||||||
|
content: "";
|
||||||
|
border-color: transparent #111;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0.35em 0 0.35em 0.45em;
|
||||||
|
display: block;
|
||||||
|
height: 0;
|
||||||
|
width: 0;
|
||||||
|
left: -1em;
|
||||||
|
top: 0.9em;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 700px) {
|
@media (max-width: 700px) {
|
||||||
#sidebar {
|
#sidebar {
|
||||||
display: none;
|
display: none;
|
||||||
@ -193,24 +210,16 @@ body {
|
|||||||
|
|
||||||
.date {
|
.date {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 5px;
|
|
||||||
width: 10em;
|
width: 10em;
|
||||||
text-align: center;
|
/* top: 25px; */
|
||||||
border-radius: 0px 0px 0px 15px;
|
right: 0;
|
||||||
|
|
||||||
|
text-align: right;
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
background-color: #428bca;
|
border-right: 2px solid #428bca;
|
||||||
color: white;
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 + .date {
|
|
||||||
margin-top: -3.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 + .date {
|
|
||||||
margin-top: -2.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.posthead {
|
.posthead {
|
||||||
margin-bottom: 1.5em;
|
margin-bottom: 1.5em;
|
||||||
}
|
}
|
||||||
@ -219,12 +228,18 @@ body {
|
|||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.article-entry {
|
.entry {
|
||||||
|
position: relative;
|
||||||
/* border-left: 5px solid blue; */
|
/* border-left: 5px solid blue; */
|
||||||
padding: 10px;
|
padding: 5px;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.toc {
|
||||||
|
position: fixed;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 1200px) {
|
@media (min-width: 1200px) {
|
||||||
@ -300,6 +315,7 @@ body {
|
|||||||
|
|
||||||
a {
|
a {
|
||||||
color: #111;
|
color: #111;
|
||||||
|
font-weight: bolder;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,6 +445,7 @@ footer a:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#social li a {
|
#social li a {
|
||||||
|
font-weight: normal;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width:100%;
|
width:100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@ -448,13 +465,13 @@ footer a:hover {
|
|||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
.highlighttable {
|
.highlight, #content>pre{
|
||||||
display: block;
|
display: block;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
position: relative;
|
position: relative;
|
||||||
background-color: #FEFEFE;
|
background-color: #FEFEFE;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 80%;
|
width: 90%;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border: solid 1px #CCC;
|
border: solid 1px #CCC;
|
||||||
/* border-radius: 5px 0px 5px 5px; */
|
/* border-radius: 5px 0px 5px 5px; */
|
||||||
@ -463,25 +480,6 @@ footer a:hover {
|
|||||||
box-sizing: border-box; /* Opera/IE 8+ */
|
box-sizing: border-box; /* Opera/IE 8+ */
|
||||||
}
|
}
|
||||||
|
|
||||||
.highlight {
|
|
||||||
/*background-color: #EEE;*/
|
|
||||||
overflow: auto;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0.5em;
|
|
||||||
position: relative;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.code {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.linenos {
|
|
||||||
color: #AAA;
|
|
||||||
padding-right: 0.5em;
|
|
||||||
border-right: solid 1px #DDD;
|
|
||||||
}
|
|
||||||
|
|
||||||
#navbar {
|
#navbar {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
@ -612,6 +610,7 @@ a:hover {
|
|||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
border: 1px solid #777;
|
border: 1px solid #777;
|
||||||
|
font-weight: initial;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label:after{
|
.label:after{
|
||||||
@ -623,21 +622,16 @@ a:hover {
|
|||||||
/* background: #EAEAEA; */
|
/* background: #EAEAEA; */
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
/* color: white; */
|
/* color: white; */
|
||||||
border-radius: 0.5em 0.5em 0em 0em;
|
|
||||||
/* border-bottom: 1px solid; */
|
/* border-bottom: 1px solid; */
|
||||||
margin: 1em auto;
|
margin: 1em auto;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.readmore:hover a {
|
.readmore:hover {
|
||||||
border-bottom: 1px solid;
|
border-left: 1px solid;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.readmore a {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content:after {
|
#content:after {
|
||||||
content: ".";
|
content: ".";
|
||||||
display: block;
|
display: block;
|
||||||
@ -789,3 +783,13 @@ a {
|
|||||||
.previouspost {
|
.previouspost {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
background-color: #EEE;
|
||||||
|
padding: 1em 2em;
|
||||||
|
border-left: 1px solid black;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
margin: 0;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
4
css/main.min.css
vendored
Normal file
4
css/main.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
25
css/monosocialiconsfont.css
Executable file
25
css/monosocialiconsfont.css
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Mono Social Icons Font';
|
||||||
|
src: url('../fonts/MonoSocialIconsFont-1.10.eot');
|
||||||
|
src: url('../fonts/MonoSocialIconsFont-1.10.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('../fonts/MonoSocialIconsFont-1.10.woff') format('woff'),
|
||||||
|
url('../fonts/MonoSocialIconsFont-1.10.ttf') format('truetype'),
|
||||||
|
url('../fonts/MonoSocialIconsFont-1.10.svg#MonoSocialIconsFont') format('svg');
|
||||||
|
src: url('../fonts/MonoSocialIconsFont-1.10.ttf') format('truetype');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.symbol, a.symbol:before {
|
||||||
|
font-family: 'Mono Social Icons Font';
|
||||||
|
-webkit-text-rendering: optimizeLegibility;
|
||||||
|
-moz-text-rendering: optimizeLegibility;
|
||||||
|
-ms-text-rendering: optimizeLegibility;
|
||||||
|
-o-text-rendering: optimizeLegibility;
|
||||||
|
text-rendering: optimizeLegibility;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-font-smoothing: antialiased;
|
||||||
|
-ms-font-smoothing: antialiased;
|
||||||
|
-o-font-smoothing: antialiased;
|
||||||
|
font-smoothing: antialiased;
|
||||||
|
}
|
895
css/style.css
Normal file
895
css/style.css
Normal file
@ -0,0 +1,895 @@
|
|||||||
|
/* Reset */
|
||||||
|
|
||||||
|
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
|
||||||
|
border: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
|
||||||
|
display: block
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
line-height: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote, q {
|
||||||
|
quotes: none
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote:before, blockquote:after, q:before, q:after {
|
||||||
|
content: none
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
*, *:before, *:after {
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Clearfix */
|
||||||
|
|
||||||
|
.clearfix:after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Icons */
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'icons';
|
||||||
|
src: url('../fonts/icons.eot');
|
||||||
|
src: url('../fonts/icons.eot#iefix') format('embedded-opentype'), url('../fonts/icons.woff') format('woff'), url('../fonts/icons.ttf') format('truetype'), url('../fonts/icons.svg#icons') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||||
|
font-family: "icons";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
speak: none;
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: inherit;
|
||||||
|
text-align: center;
|
||||||
|
font-variant: normal;
|
||||||
|
text-transform: none;
|
||||||
|
line-height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-facebook:before {
|
||||||
|
content: '\e802';
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-facebook-squared:before {
|
||||||
|
content: '\e800';
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-twitter:before {
|
||||||
|
content: '\e801';
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-twitter-1:before {
|
||||||
|
content: '\e804';
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-facebook-circled:before {
|
||||||
|
content: '\e805';
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-twitter-circled:before {
|
||||||
|
content: '\e806';
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-facebook-rect:before {
|
||||||
|
content: '\e803';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Spacing */
|
||||||
|
|
||||||
|
.post h1, h3, h4, h5, p, .post-body ul, #post-list li, pre {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Base */
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font: 16px/1 "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
color: #666;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
text-rendering: optimizeLegibility;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 30px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
color: #222;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font: italic 19px/1.3em Georgia, serif;
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile #wrapper {
|
||||||
|
padding: 100px 40px 0px;
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile #header {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
padding-bottom: 40px;
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile #avatar {
|
||||||
|
display: inline-block;
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile h1 {
|
||||||
|
font-weight: 400;
|
||||||
|
letter-spacing: 0px;
|
||||||
|
font-size: 20px;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile h2 {
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 300;
|
||||||
|
color: #aaa;
|
||||||
|
margin-top: 10px;
|
||||||
|
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav.main-nav {
|
||||||
|
padding: 20px 20px 0;
|
||||||
|
/*max-width: 600px;*/
|
||||||
|
/*width:100%;*/
|
||||||
|
background: #fff;
|
||||||
|
background: rgba(255, 255, 255, .90);
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: right;
|
||||||
|
/*position: fixed;*/
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav.main-nav a {
|
||||||
|
top: 8px;
|
||||||
|
right: 6px;
|
||||||
|
padding: 8px 12px;
|
||||||
|
color: #5badf0;
|
||||||
|
font-size: 13px;
|
||||||
|
/*font-weight: bold;*/
|
||||||
|
line-height: 1.35;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav.main-nav a.cta {
|
||||||
|
background: #5badf0;
|
||||||
|
color: #fff;
|
||||||
|
margin-left: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper {
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 60px 40px 100px 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper.home {
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0px 40px 20px 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home #avatar {
|
||||||
|
float: right;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Typography */
|
||||||
|
|
||||||
|
|
||||||
|
/*Accent color*/
|
||||||
|
|
||||||
|
a, #title, #post-list a:hover, #post-list li:hover .dates, #title:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #5badf0;
|
||||||
|
color: #5694f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
p a {
|
||||||
|
color: #5694f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*Transitions*/
|
||||||
|
|
||||||
|
a, #post-nav a, #post-list a {
|
||||||
|
-webkit-transition: all 0.15s ease;
|
||||||
|
-moz-transition: all 0.15s ease;
|
||||||
|
-ms-transition: all 0.15s ease;
|
||||||
|
-o-transition: all 0.15s ease;
|
||||||
|
transition: all 0.15s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
list-style-type: circle;
|
||||||
|
list-style-position: inside;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Line Height */
|
||||||
|
|
||||||
|
#post-body, p {
|
||||||
|
line-height: 1.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
b, strong {
|
||||||
|
font-weight: 500;
|
||||||
|
color: #1E2025;
|
||||||
|
}
|
||||||
|
|
||||||
|
em, i {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
#title {
|
||||||
|
display: inline-block;
|
||||||
|
line-height: 100%;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 19px;
|
||||||
|
margin: 0;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description {
|
||||||
|
float: right;
|
||||||
|
font: italic 14px/1.4em Georgia, serif;
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home h1 {
|
||||||
|
font-size: 30px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
color: #222;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home h2 {
|
||||||
|
font: italic 19px/1.3em Georgia, serif;
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post header {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post h1 {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
color: #222;
|
||||||
|
font: 300 32px/1.4em "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post h2 {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
font: 300 24px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
color: #111;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post h2.headline {
|
||||||
|
font: normal 13px/1.5em "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
margin: -5px 0 40px 0;
|
||||||
|
color: #b2b9be;
|
||||||
|
font-size: 13px;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post h2.headline .tags {
|
||||||
|
font: normal 13px/1.5em "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
margin: -5px 0 40px 0;
|
||||||
|
color: #b2b9be;
|
||||||
|
font-size: 13px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
margin-top: 5px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list h2 {
|
||||||
|
font: normal 17px/1.5em "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
color: #aaa;
|
||||||
|
max-width: 400px;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3, h4, h5 {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #666;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.small {
|
||||||
|
color: #bbb;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.5;
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding-left: 15px;
|
||||||
|
border-left: 3px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
display: block;
|
||||||
|
border: none;
|
||||||
|
height: 1px;
|
||||||
|
margin: 40px auto;
|
||||||
|
background: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.code {
|
||||||
|
font-family: Menlo, Monaco, Courier;
|
||||||
|
background-color: #EEE;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
/*font-family: Menlo, Monaco, Courier;*/
|
||||||
|
/*white-space: pre-wrap;*/
|
||||||
|
overflow-x: scroll;
|
||||||
|
/*border: 1px solid #ddd;*/
|
||||||
|
/*padding: 20px;*/
|
||||||
|
/*background-color: #fdfdfd;*/
|
||||||
|
/*font-size:14px;*/
|
||||||
|
/*overflow: auto;*/
|
||||||
|
/*border-radius: 3px;*/
|
||||||
|
/*background: #272b2d;*/
|
||||||
|
/*font-family: 'Source Code Pro', Menlo, monospace;*/
|
||||||
|
/*font-size: 13px;*/
|
||||||
|
/*line-height: 1.5em;*/
|
||||||
|
/*font-weight: 500;*/
|
||||||
|
/*color: #d0d4d7;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
margin: 40px 0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
th, td {
|
||||||
|
text-align: left;
|
||||||
|
padding-right: 20px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td, td {
|
||||||
|
border-spacing: none;
|
||||||
|
border-style: solid;
|
||||||
|
padding: 10px 15px;
|
||||||
|
border-width: 1px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr>td {
|
||||||
|
border-top: 1px solid #eaeaea;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr:nth-child(odd)>td {
|
||||||
|
background: #fcfcfc;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead th, th {
|
||||||
|
text-align: left;
|
||||||
|
padding: 10px 15px;
|
||||||
|
height: 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #444;
|
||||||
|
border-bottom: 1px solid #dadadc;
|
||||||
|
cursor: default;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Made with Cactus Badge */
|
||||||
|
|
||||||
|
#badge {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 8px;
|
||||||
|
right: 8px;
|
||||||
|
height: 48px;
|
||||||
|
width: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*=========================================
|
||||||
|
Post List
|
||||||
|
=========================================== */
|
||||||
|
|
||||||
|
#post-list, #archive-list {
|
||||||
|
/*margin-top: 100px;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list li, #archive-list li {
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list li:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list li+li {
|
||||||
|
padding-top: 20px;
|
||||||
|
/*border-top: 1px solid #eee;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list a {
|
||||||
|
color: #333;
|
||||||
|
display: block;
|
||||||
|
font: bold 19px/1.7 "Helvetica Neue", helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list .dates {
|
||||||
|
float: right;
|
||||||
|
position: relative;
|
||||||
|
top: 1px;
|
||||||
|
font: 300 17px/1.8 "Helvetica Neue", helvetica, Arial, sans-serif;
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list-footer {
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
margin-top: 20px;
|
||||||
|
padding-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#archive-link {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 3px 10px 6px;
|
||||||
|
box-shadow: 0 0 0 1px hsla(207, 83%, 80%, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#archive-link:hover {
|
||||||
|
background: #5694f1;
|
||||||
|
color: #fff;
|
||||||
|
box-shadow: 0 0 0 1px #5694f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#archive-link span {
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer {
|
||||||
|
/*box-shadow: inset 0 1px 0 #eee;*/
|
||||||
|
padding: 40px 0 0 0;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Post Page */
|
||||||
|
|
||||||
|
#header {
|
||||||
|
/*border-bottom: 1px solid #eee;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.post {
|
||||||
|
margin: 80px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-meta {
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 1.4;
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
padding-top: 40px;
|
||||||
|
margin-bottom: 40px;
|
||||||
|
padding-bottom: 40px;
|
||||||
|
margin-top: 40px;
|
||||||
|
color: #444;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-meta div span {
|
||||||
|
color: #aaa;
|
||||||
|
font-weight: 500;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-meta div span.dark {
|
||||||
|
color: #1E2025;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-meta div {
|
||||||
|
margin: 0 25px 0 0;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sharing {
|
||||||
|
float: right;
|
||||||
|
margin: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sharing a {
|
||||||
|
font-size: 20px;
|
||||||
|
font-size: 23px;
|
||||||
|
margin-left: 1px;
|
||||||
|
margin-top: 4px;
|
||||||
|
color: #d4d4d4;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sharing a:hover {
|
||||||
|
/*color: #444;*/
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Post Navigation */
|
||||||
|
|
||||||
|
#post-nav {
|
||||||
|
/*border-top:1px solid #eee;*/
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-nav span {
|
||||||
|
-webkit-transition: all 0.1s linear;
|
||||||
|
-moz-transition: all 0.1s linear;
|
||||||
|
-ms-transition: all 0.1s linear;
|
||||||
|
-o-transition: all 0.1s linear;
|
||||||
|
transition: all 0.1s linear;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-nav span.prev {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-nav span.next {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-nav span .arrow {
|
||||||
|
position: relative;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-nav span.prev:hover .arrow {
|
||||||
|
left: -4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-nav span.next:hover .arrow {
|
||||||
|
right: -4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-nav span.prev:hover {
|
||||||
|
left: -3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-nav span.next:hover {
|
||||||
|
right: -3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Archive */
|
||||||
|
|
||||||
|
h1.archive {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2.month {
|
||||||
|
width: 100%;
|
||||||
|
font: bold 13px/1 "Helvetica Neue", helvetica, Arial, sans-serif;
|
||||||
|
text-transform: uppercase;
|
||||||
|
margin-top: 40px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
#archive-list li:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#archive-list a {
|
||||||
|
display: block;
|
||||||
|
font: bold 17px/1.7 "Helvetica Neue", helvetica, Arial, sans-serif;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
#archive-list .dates {
|
||||||
|
float: right;
|
||||||
|
position: relative;
|
||||||
|
top: 1px;
|
||||||
|
font: 300 17px/1.7 "Helvetica Neue", helvetica, Arial, sans-serif;
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#archive-list li a:hover, #archive-list li:hover .dates {
|
||||||
|
color: #5694f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-meta img.avatar {
|
||||||
|
height: 36px;
|
||||||
|
width: 36px;
|
||||||
|
float: left;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-right: 20px;
|
||||||
|
box-shadow: 0 0 0 3px #fff, 0 0 0 4px #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list.archive.readmore {
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list.archive.readmore h3 {
|
||||||
|
font: 400 20px "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list.archive.readmore a {
|
||||||
|
font: 400 16px/1.6 "Helvetica Neue", helvetica, Arial, sans-serif;
|
||||||
|
color: #5694f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list.archive.readmore a:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list.archive.readmore .dates {
|
||||||
|
font: 300 16px/1.6 "Helvetica Neue", helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#disqus_thread, #ds-thread {
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sharing a.facebook {
|
||||||
|
background: #4361b3;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sharing a.twitter {
|
||||||
|
background: #4fafed;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sharing a {
|
||||||
|
font-size: 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #fff;
|
||||||
|
padding: 6px 10px;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Media Queries */
|
||||||
|
|
||||||
|
@media screen and (max-width: 540px) {
|
||||||
|
#wrapper {
|
||||||
|
padding: 20px 20px 20px 20px;
|
||||||
|
}
|
||||||
|
#header {
|
||||||
|
margin-bottom: 60px;
|
||||||
|
/*border-bottom: 1px solid #eee; */
|
||||||
|
}
|
||||||
|
.post {
|
||||||
|
margin: 40px 0;
|
||||||
|
}
|
||||||
|
#footer {
|
||||||
|
margin-top: 60px;
|
||||||
|
}
|
||||||
|
#post-list, #archive-list {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
#post-meta {
|
||||||
|
margin-top: 60px;
|
||||||
|
}
|
||||||
|
#title {
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
#post-list .dates {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#post-list-footer {
|
||||||
|
margin-top: 20px;
|
||||||
|
padding-top: 40px;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 26px;
|
||||||
|
}
|
||||||
|
.post h2.headline {
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
.post h1 {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
.post h2 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive {
|
||||||
|
margin: 0 0 50px 0;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive .post-item {
|
||||||
|
padding: 10px 10px;
|
||||||
|
/*border-left: 1px solid #cacaca;*/
|
||||||
|
overflow-x: hidden;
|
||||||
|
white-space:nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive .post-time {
|
||||||
|
display: inline-block;
|
||||||
|
width: 60px;
|
||||||
|
margin: 0 10px;
|
||||||
|
color: #8a8a8a;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 768px) {
|
||||||
|
.archive .post-time {
|
||||||
|
margin: 5px 0;
|
||||||
|
width: auto;
|
||||||
|
font-size: 13px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive .post-link {
|
||||||
|
color: #8a8a8a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive .post-item:hover {
|
||||||
|
color: #5694f1;
|
||||||
|
padding-left: 13px;
|
||||||
|
/*border-left: 1px solid #5badf0;*/
|
||||||
|
transition: 0.3s ease-out;
|
||||||
|
}
|
||||||
|
.archive .post-item:hover .post-time,.archive .post-item:hover .post-link {
|
||||||
|
color: #5694f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa.fa-heart:hover {
|
||||||
|
color: #ff3356;
|
||||||
|
transition: 0.7s ease-out;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* CUSTOM ADDITIONS */
|
||||||
|
|
||||||
|
#social {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.symbol {
|
||||||
|
color: #cdd4da;
|
||||||
|
font-size: 2rem;
|
||||||
|
text-decoration: none;
|
||||||
|
margin-right: 0.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.symbol:hover {
|
||||||
|
color: #BCD4DA;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: Menlo, Monaco, Courier;
|
||||||
|
background-color: #EEE;
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 4px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tags page
|
||||||
|
*/
|
||||||
|
|
||||||
|
#wrapper.tags {
|
||||||
|
padding: 0px 40px 20px 40px;
|
||||||
|
}
|
||||||
|
.page-tags {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-tags .tags {
|
||||||
|
font: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
margin: 10px 15px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-tags .tags a {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-tags .tags:hover a {
|
||||||
|
color: #5694f1;
|
||||||
|
}
|
@ -1,687 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>balkian.com</title><link href="http://balkian.com/" rel="alternate"></link><link href="http://balkian.com/feeds/all.atom.xml" rel="self"></link><id>http://balkian.com/</id><updated>2019-01-06T10:00:00+01:00</updated><entry><title>Controlling Zigbee devices with MQTT</title><link href="http://balkian.com/controlling-zigbee-devices-with-mqtt.html" rel="alternate"></link><published>2019-01-06T10:00:00+01:00</published><updated>2019-01-06T10:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2019-01-06:/controlling-zigbee-devices-with-mqtt.html</id><summary type="html"><p>This is a short tutorial on connecting a zigbee device (an Aqara cube) to an MQTT server, so you can control your zigbee devices from the network.</p>
|
|
||||||
<p>If you're anything like me, you're probably a sucker for IoT devices.
|
|
||||||
For a long time, I've been using WiFi-enabled lights, and Amazon …</p></summary><content type="html"><p>This is a short tutorial on connecting a zigbee device (an Aqara cube) to an MQTT server, so you can control your zigbee devices from the network.</p>
|
|
||||||
<p>If you're anything like me, you're probably a sucker for IoT devices.
|
|
||||||
For a long time, I've been using WiFi-enabled lights, and Amazon dash buttons to control them.
|
|
||||||
To keep these (cheap Chinese) internet enabled devices away from your network and their respective cloud services, you'll probably want to set up a dedicated network in your router (more on this on a future post, maybe).
|
|
||||||
Another disadvantage of WiFi devices is that they're relatively power hungry.</p>
|
|
||||||
<p>A popular alternative is using ZigBee for communication.
|
|
||||||
It is a dedicated protocol similar to bluetooth (BLE), with lower power requirements and bitrate.</p>
|
|
||||||
<p>Take the (super cute) aqara cube as an example.
|
|
||||||
It is a small cube that detects rotation on all of its axes, and tapping events.
|
|
||||||
Here's a video:</p>
|
|
||||||
<div class="youtube youtube-16x9"><iframe src="https://www.youtube.com/embed/5YtqG1wEnng" allowfullscreen seamless frameBorder="0"></iframe></div><p>To connect to zigbee devices you will need a zigbee enabled gateway (a.k.a. hub), which connects to your WiFi network and your zigbee devices.
|
|
||||||
Once again, this means adding an internet-enabled device to your home, and probably a couple of cloud services.</p>
|
|
||||||
<p>As an alternative, you can set up your own zigbee gateway, and control it to your home automation platform of choice (e.g. home assistant).
|
|
||||||
We will cover how to set up a zigbee2mqtt gateway that is also connected to an MQTT server, so you can use MQTT to control your devices and get notifications.</p>
|
|
||||||
<p>What you need:</p>
|
|
||||||
<ul class="simple">
|
|
||||||
<li><a class="reference external" href="https://www.aliexpress.com/item/Original-Xiaomi-Mi-Aqara-Cube-Smart-Home-Controller-6-Action-Operation-Fr-Home-Device-Zigbee-Version/32892947622.html?spm=a2g0s.9042311.0.0.3da24c4dXV8sBI">Aqara cube</a>.</li>
|
|
||||||
<li><a class="reference external" href="https://www.aliexpress.com/item/Wireless-Zigbee-CC2531-CC2540-Zigbee-Sniffer-Bluetooth-BLE-4-0-Dongle-Capture-Module-USB-Programmer-Downloader/32907587711.html?spm=a2g0s.9042311.0.0.3da24c4dXV8sBI">CC2531 zigbee sniffer</a>.</li>
|
|
||||||
<li><a class="reference external" href="https://www.aliexpress.com/item/CFSUNBIRD-CC-DEBUGGER-Debugger-and-Programmer-for-RF-System-on-Chips-TI-ORIGINAL-Fast-hipping/32813122315.html?spm=a2g0s.9042311.0.0.3da24c4dXV8sBI">CC-debugger</a>.</li>
|
|
||||||
</ul>
|
|
||||||
<p>You will need to flash your sniffer.
|
|
||||||
For that, you only need to follow the instructions from the <a class="reference external" href="https://koenkk.github.io/zigbee2mqtt/">zigbee2mqtt documentation</a>.</p>
|
|
||||||
<p>Once you're done flashing, you're ready to set up the zigbee2mqtt server.
|
|
||||||
For convenience, I wrote a simple docker-compose to deploy a zigbee2mqtt server and a test mosquitto server:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
13
|
|
||||||
14
|
|
||||||
15
|
|
||||||
16
|
|
||||||
17
|
|
||||||
18
|
|
||||||
19
|
|
||||||
20
|
|
||||||
21
|
|
||||||
22
|
|
||||||
23
|
|
||||||
24
|
|
||||||
25
|
|
||||||
26
|
|
||||||
27
|
|
||||||
28
|
|
||||||
29
|
|
||||||
30
|
|
||||||
31
|
|
||||||
32
|
|
||||||
33</pre></div></td><td class="code"><div class="highlight"><pre><span></span>version: &#39;2.1&#39;
|
|
||||||
services:
|
|
||||||
zigbee2mqtt:
|
|
||||||
image: koenkk/zigbee2mqtt
|
|
||||||
container_name: zigbee2mqtt
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./z2m-data/:/app/data/
|
|
||||||
devices:
|
|
||||||
- &quot;/dev/ttyACM0&quot;
|
|
||||||
networks:
|
|
||||||
- hass
|
|
||||||
mqtt:
|
|
||||||
image: eclipse-mosquitto
|
|
||||||
ports:
|
|
||||||
- 1883:1883
|
|
||||||
- 9001:9001
|
|
||||||
networks:
|
|
||||||
- hass
|
|
||||||
volumes:
|
|
||||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf
|
|
||||||
hass:
|
|
||||||
image: homeassistant/home-assistant
|
|
||||||
ports:
|
|
||||||
- &quot;8123:8123&quot;
|
|
||||||
networks:
|
|
||||||
- hass
|
|
||||||
volumes:
|
|
||||||
- ./hass-config:/config
|
|
||||||
- &quot;/etc/localtime:/etc/localtime:ro&quot;
|
|
||||||
networks:
|
|
||||||
hass:
|
|
||||||
driver: overlay
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>You can test your installation with:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6</pre></div></td><td class="code"><div class="highlight"><pre><span></span> ❯ mosquitto_sub -h localhost -p <span class="m">1883</span> -t <span class="s1">&#39;zigbee2mqtt/#&#39;</span>
|
|
||||||
online
|
|
||||||
<span class="o">{</span><span class="s2">&quot;battery&quot;</span>:17,<span class="s2">&quot;voltage&quot;</span>:2925,<span class="s2">&quot;linkquality&quot;</span>:149,<span class="s2">&quot;action&quot;</span>:<span class="s2">&quot;rotate_right&quot;</span>,<span class="s2">&quot;angle&quot;</span>:12.8<span class="o">}</span>
|
|
||||||
<span class="o">{</span><span class="s2">&quot;battery&quot;</span>:17,<span class="s2">&quot;voltage&quot;</span>:2925,<span class="s2">&quot;linkquality&quot;</span>:141,<span class="s2">&quot;action&quot;</span>:<span class="s2">&quot;slide&quot;</span>,<span class="s2">&quot;side&quot;</span>:2<span class="o">}</span>
|
|
||||||
<span class="o">{</span><span class="s2">&quot;battery&quot;</span>:17,<span class="s2">&quot;voltage&quot;</span>:2925,<span class="s2">&quot;linkquality&quot;</span>:120<span class="o">}</span>
|
|
||||||
<span class="o">{</span><span class="s2">&quot;battery&quot;</span>:17,<span class="s2">&quot;voltage&quot;</span>:2925,<span class="s2">&quot;linkquality&quot;</span>:141,<span class="s2">&quot;action&quot;</span>:<span class="s2">&quot;wakeu</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>zigbee2mqtt supports the following events for the aqara cube: shake, wakeup, fall, tap, slide, flip180, flip90, rotate_left and rotate_right.
|
|
||||||
Every event has additional information, such as the sides involved, or the degrees turned.</p>
|
|
||||||
<p>Now you are ready to set up home assistant support in zigbee2mqtt following <a class="reference external" href="https://koenkk.github.io/zigbee2mqtt/integration/home_assistant.html">this guide</a>.</p>
|
|
||||||
</content><category term="mqtt"></category><category term="iot"></category><category term="zigbee"></category></entry><entry><title>HDMI-VGA adapter issues with Raspberry Pi</title><link href="http://balkian.com/hdmi-vga-adapter-issues-with-raspberry-pi.html" rel="alternate"></link><published>2017-01-07T18:00:00+01:00</published><updated>2017-01-07T18:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2017-01-07:/hdmi-vga-adapter-issues-with-raspberry-pi.html</id><summary type="html"><p>Avoid HDMI flickering/intermittent blanking on RPI with a 1400x1050 VGA monitor.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">hdmi_drive</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_group</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_mode</span><span class="o">=</span><span class="mi">42</span>
|
|
||||||
<span class="n">disable_overscan</span><span class="o">=</span><span class="mi">1</span>
|
|
||||||
<span class="n">config_hdmi_boost</span><span class="o">=</span><span class="mi">7</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></summary><content type="html"><p>Avoid HDMI flickering/intermittent blanking on RPI with a 1400x1050 VGA monitor.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">hdmi_drive</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_group</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_mode</span><span class="o">=</span><span class="mi">42</span>
|
|
||||||
<span class="n">disable_overscan</span><span class="o">=</span><span class="mi">1</span>
|
|
||||||
<span class="n">config_hdmi_boost</span><span class="o">=</span><span class="mi">7</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="rpi"></category></entry><entry><title>PPTP connections</title><link href="http://balkian.com/pptp-connections.html" rel="alternate"></link><published>2017-01-01T00:00:00+01:00</published><updated>2017-01-01T00:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2017-01-01:/pptp-connections.html</id><summary type="html"><p>PPTP VPN connections will fail on a vanilla openwrt installation.
|
|
||||||
You need to install this module:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>opkg install kmod-nf-nathelper-extra
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></summary><content type="html"><p>PPTP VPN connections will fail on a vanilla openwrt installation.
|
|
||||||
You need to install this module:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>opkg install kmod-nf-nathelper-extra
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="openwrt"></category><category term="linux"></category><category term="router"></category></entry><entry><title>Progress bars in python</title><link href="http://balkian.com/progress-bars-in-python.html" rel="alternate"></link><published>2016-09-28T18:47:00+02:00</published><updated>2016-09-28T18:47:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2016-09-28:/progress-bars-in-python.html</id><summary type="html"><p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
|
|
||||||
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
|
|
||||||
<span class="kn">import</span> <span class="nn">time</span>
|
|
||||||
|
|
||||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
|
|
||||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></summary><content type="html"><p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
|
|
||||||
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
|
|
||||||
<span class="kn">import</span> <span class="nn">time</span>
|
|
||||||
|
|
||||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
|
|
||||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="python"></category></entry><entry><title>Arch Linux Fixes</title><link href="http://balkian.com/arch-linux-fixes.html" rel="alternate"></link><published>2016-02-03T20:00:00+01:00</published><updated>2016-02-03T20:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2016-02-03:/arch-linux-fixes.html</id><summary type="html"><div class="section" id="black-screen-and-lightdm-doesn-t-unlock">
|
|
||||||
<h2>Black screen and LightDM doesn't unlock</h2>
|
|
||||||
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
|
|
||||||
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</summary><content type="html"><div class="section" id="black-screen-and-lightdm-doesn-t-unlock">
|
|
||||||
<h2>Black screen and LightDM doesn't unlock</h2>
|
|
||||||
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
|
|
||||||
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</content><category term="arch"></category><category term="linux"></category></entry><entry><title>Org-mode tricks</title><link href="http://balkian.com/org-mode-tricks.html" rel="alternate"></link><published>2015-12-10T11:34:00+01:00</published><updated>2015-12-10T11:34:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2015-12-10:/org-mode-tricks.html</id><summary type="html"><div class="section" id="show-plain-text-version">
|
|
||||||
<h2>Show plain text version</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</summary><content type="html"><div class="section" id="show-plain-text-version">
|
|
||||||
<h2>Show plain text version</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</content><category term="emacs"></category><category term="productivity"></category><category term="editor"></category><category term="org"></category></entry><entry><title>Sharing dotfiles</title><link href="http://balkian.com/sharing-dotfiles.html" rel="alternate"></link><published>2015-04-10T17:47:00+02:00</published><updated>2015-04-10T17:47:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2015-04-10:/sharing-dotfiles.html</id><summary type="html"><p>Today's post is half a quick note, half public shaming. In other words, it is a reminder to be very careful with OAuth tokens and passwords.</p>
|
|
||||||
<p>As part of moving to emacs, I starting using the incredibly useful <a class="reference external" href="https://github.com/defunkt/gist.el">gh.el</a>.
|
|
||||||
When you first use it, the extension saves either your …</p></summary><content type="html"><p>Today's post is half a quick note, half public shaming. In other words, it is a reminder to be very careful with OAuth tokens and passwords.</p>
|
|
||||||
<p>As part of moving to emacs, I starting using the incredibly useful <a class="reference external" href="https://github.com/defunkt/gist.el">gh.el</a>.
|
|
||||||
When you first use it, the extension saves either your password or an OAuth token in your .gitconfig file.
|
|
||||||
This is cool and convenient, unless you <a class="reference external" href="https://github.com/balkian/dotfiles">happen to be publishing your .gitconfig file in a public repo</a>.</p>
|
|
||||||
<p>So, how can you still share your gitconfig without sharing your password/token with the rest of the world?
|
|
||||||
Since Git 1.7.0, you can <a class="reference external" href="http://stackoverflow.com/questions/1557183/is-it-possible-to-include-a-file-in-your-gitconfig">include other files in your gitconfig</a>.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span>[include]
|
|
||||||
path = ~/.gitconfig_secret
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>And now, in your .gitconfig_secret file, you just have to add this:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3</pre></div></td><td class="code"><div class="highlight"><pre><span></span>[github]
|
|
||||||
user = balkian
|
|
||||||
token = &quot;&lt; Your secret token &gt;&quot;
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="github"></category><category term="git"></category><category term="dotfiles"></category></entry><entry><title>Zotero</title><link href="http://balkian.com/zotero.html" rel="alternate"></link><published>2014-12-09T12:12:12+01:00</published><updated>2014-12-09T12:12:12+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2014-12-09:/zotero.html</id><summary type="html"><p><a class="reference external" href="https://www.zotero.org/">Zotero</a> is an Open Source tool that lets
|
|
||||||
you organise your bibliography, syncing it with the cloud. Unlike other
|
|
||||||
alternatives such as <a class="reference external" href="http://www.mendeley.com">Mendeley</a>, Zotero can
|
|
||||||
upload the attachments and data to a private cloud via WebDav.</p>
|
|
||||||
<p>If you use nginx as your web server, know that even though it provides …</p></summary><content type="html"><p><a class="reference external" href="https://www.zotero.org/">Zotero</a> is an Open Source tool that lets
|
|
||||||
you organise your bibliography, syncing it with the cloud. Unlike other
|
|
||||||
alternatives such as <a class="reference external" href="http://www.mendeley.com">Mendeley</a>, Zotero can
|
|
||||||
upload the attachments and data to a private cloud via WebDav.</p>
|
|
||||||
<p>If you use nginx as your web server, know that even though it provides
|
|
||||||
partial support for webdav, Zotero needs more than that. Hence, you will
|
|
||||||
need another webdav server, and optionally let nginx proxy to it. This
|
|
||||||
short post provides the basics to get that set-up working under
|
|
||||||
Debian/Ubuntu.</p>
|
|
||||||
<div class="section" id="setting-up-apache">
|
|
||||||
<h2>Setting up Apache</h2>
|
|
||||||
<p>First we need to install Apache:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo apt-get install apache2
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Change the head of &quot;/etc/apache2/sites-enabled/000-default&quot; to:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;VirtualHost</span> <span class="s">*:880</span><span class="nt">&gt;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Then, create a file /etc/apache2/sites-available/webdav:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
13</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nb">Alias</span> <span class="sx">/dav</span> <span class="sx">/home/webdav/dav</span>
|
|
||||||
<span class="nt">&lt;Location</span> <span class="s">/dav</span><span class="nt">&gt;</span>
|
|
||||||
<span class="nb">Dav</span> <span class="k">on</span>
|
|
||||||
<span class="nb">Order</span> Allow,Deny
|
|
||||||
<span class="nb">Allow</span> from <span class="k">all</span>
|
|
||||||
<span class="nb">Dav</span> <span class="k">On</span>
|
|
||||||
<span class="nb">Options</span> +Indexes
|
|
||||||
<span class="nb">AuthType</span> Basic
|
|
||||||
<span class="nb">AuthName</span> DAV
|
|
||||||
<span class="nb">AuthBasicProvider</span> file
|
|
||||||
<span class="nb">AuthUserFile</span> <span class="sx">/home/webdav/.htpasswd</span>
|
|
||||||
<span class="nb">Require</span> valid-user
|
|
||||||
<span class="nt">&lt;/Location&gt;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Ideally, you want your webdav folders to be private, adding
|
|
||||||
authentication to them. So you need to create the webdav and zotero
|
|
||||||
users and add the passwords to an htpasswd file. Even though you could
|
|
||||||
use a single user, since you will be configuring several clients with
|
|
||||||
your credentials I encourage you to create the zotero user as well. This
|
|
||||||
way you can always change the password for zotero without affecting any
|
|
||||||
other application using webdav.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo adduser webdav
|
|
||||||
sudo htpasswd -c /home/webdav/.htpasswd webdav
|
|
||||||
sudo htpasswd /home/webdav/.htpasswd zotero
|
|
||||||
sudo mkdir -p /home/webdav/dav/zotero
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Enable the site and restart apache:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo a2enmod webdav
|
|
||||||
sudo a2enmod dav_fs
|
|
||||||
sudo a2ensite webdav
|
|
||||||
sudo service apache2 restart
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>At this point everything should be working at
|
|
||||||
<a class="reference external" href="http:/">http:/</a>/&lt;your_host&gt;:880/dav/zotero</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="setting-up-nginx">
|
|
||||||
<h2>Setting up NGINX</h2>
|
|
||||||
<p>After the Apache side is working, we can use nginx as a proxy to get
|
|
||||||
cleaner URIs. In your desired site/location, add this:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">location</span> <span class="s">/dav</span> <span class="p">{</span>
|
|
||||||
<span class="kn">client_max_body_size</span> <span class="s">20M</span><span class="p">;</span>
|
|
||||||
<span class="kn">proxy_set_header</span> <span class="s">X-Real-IP</span> <span class="nv">$remote_addr</span><span class="p">;</span>
|
|
||||||
<span class="kn">proxy_set_header</span> <span class="s">X-Forwarded-For</span> <span class="nv">$remote_addr</span><span class="p">;</span>
|
|
||||||
<span class="kn">proxy_set_header</span> <span class="s">Host</span> <span class="nv">$host</span><span class="p">;</span>
|
|
||||||
<span class="kn">proxy_pass</span> <span class="s">http://127.0.0.1:880</span><span class="p">;</span>
|
|
||||||
<span class="p">}</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Now just reload nginx:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo service nginx force-reload
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
<div class="section" id="extras">
|
|
||||||
<h2>Extras</h2>
|
|
||||||
<ul class="simple">
|
|
||||||
<li><a class="reference external" href="http://zoteroreader.com/">Zotero Reader</a> - HTML5 client</li>
|
|
||||||
<li><a class="reference external" href="https://github.com/ajlyon/zandy">Zandy</a> - Android Open Source
|
|
||||||
client</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</content><category term="zotero"></category><category term="webdav"></category><category term="nginx"></category><category term="apache"></category></entry><entry><title>Proxies with Apache and python</title><link href="http://balkian.com/proxies-with-apache-and-python.html" rel="alternate"></link><published>2014-10-09T10:00:00+02:00</published><updated>2014-10-09T10:00:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2014-10-09:/proxies-with-apache-and-python.html</id><summary type="html"><p>This is a quick note on proxying a local python application (e.g. flask)
|
|
||||||
to a subdirectory in Apache. This assumes that the file wsgi.py contains
|
|
||||||
a WSGI application with the name <em>application</em>. Hence, wsgi:application.</p>
|
|
||||||
<div class="section" id="gunicorn">
|
|
||||||
<h2>Gunicorn</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
|
|
||||||
<span class="nb">ProxyPass</span> http://127.0.0 …</pre></div></td></tr></table></div></summary><content type="html"><p>This is a quick note on proxying a local python application (e.g. flask)
|
|
||||||
to a subdirectory in Apache. This assumes that the file wsgi.py contains
|
|
||||||
a WSGI application with the name <em>application</em>. Hence, wsgi:application.</p>
|
|
||||||
<div class="section" id="gunicorn">
|
|
||||||
<h2>Gunicorn</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
|
|
||||||
<span class="nb">ProxyPass</span> http://127.0.0.1:8888/myapp/
|
|
||||||
<span class="nb">ProxyPassReverse</span> http://127.0.0.1:8888/myapp/
|
|
||||||
<span class="nb">RequestHeader</span> set SCRIPT_NAME <span class="s2">&quot;/myapp/&quot;</span>
|
|
||||||
<span class="nt">&lt;/Location&gt;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p><strong>Important</strong>: <em>SCRIPT_NAME</em> and the end of <em>ProxyPass</em> URL <strong>MUST BE
|
|
||||||
THE SAME</strong>. Otherwise, Gunicorn will fail miserably.</p>
|
|
||||||
<p>Try it with:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>venv/bin/gunicorn -w <span class="m">4</span> -b <span class="m">127</span>.0.0.1:8888 --log-file - --access-logfile - wsgi:application
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
<div class="section" id="uwsgi">
|
|
||||||
<h2>UWSGI</h2>
|
|
||||||
<p>This is a very simple configuration. I will try to upload one with more
|
|
||||||
options for uwsgi (in a .ini file).</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
|
|
||||||
<span class="nb">SetHandler</span> uwsgi_handler
|
|
||||||
<span class="nb">uWSGISocker</span> <span class="m">127.0.0.1</span>:8888
|
|
||||||
<span class="nt">&lt;/Location&gt;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Try it with:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>uwsgi --socket <span class="m">127</span>.0.0.1:8888 -w wsgi:application
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><div class="section" id="extra-supervisor">
|
|
||||||
<h3>Extra: Supervisor</h3>
|
|
||||||
<p>If everything went as expected, you can wrap your command in a
|
|
||||||
supervisor config file and let it handle the server for you.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
13
|
|
||||||
14
|
|
||||||
15
|
|
||||||
16
|
|
||||||
17
|
|
||||||
18
|
|
||||||
19</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[unix_http_server]</span>
|
|
||||||
<span class="na">file</span><span class="o">=</span><span class="s">/tmp/myapp.sock ; path to your socket file</span>
|
|
||||||
|
|
||||||
<span class="k">[supervisord]</span>
|
|
||||||
<span class="na">logfile</span> <span class="o">=</span> <span class="s">%(here)s/logs/supervisor.log</span>
|
|
||||||
<span class="na">childlogdir</span> <span class="o">=</span> <span class="s">%(here)s/logs/</span>
|
|
||||||
|
|
||||||
<span class="k">[rpcinterface:supervisor]</span>
|
|
||||||
<span class="na">supervisor.rpcinterface_factory</span> <span class="o">=</span> <span class="s">supervisor.rpcinterface:make_main_rpcinterface</span>
|
|
||||||
|
|
||||||
<span class="k">[supervisorctl]</span>
|
|
||||||
<span class="na">logfile</span> <span class="o">=</span> <span class="s">%(here)s/logs/supervisorctl.log</span>
|
|
||||||
<span class="na">serverurl</span><span class="o">=</span><span class="s">unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket</span>
|
|
||||||
|
|
||||||
<span class="k">[program:myapp]</span>
|
|
||||||
<span class="na">command</span> <span class="o">=</span> <span class="s">venv/bin/gunicorn -w 4 -b 0.0.0.0:5000 --log-file %(here)s/logs/gunicorn.log --access-logfile - wsgi:application</span>
|
|
||||||
<span class="na">directory</span> <span class="o">=</span> <span class="s">%(here)s</span>
|
|
||||||
<span class="na">environment</span> <span class="o">=</span> <span class="s">PATH=%(here)s/venv/bin/</span>
|
|
||||||
<span class="na">logfile</span> <span class="o">=</span> <span class="s">%(here)s/logs/myapp.log</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</div>
|
|
||||||
</content><category term="python"></category><category term="apache"></category><category term="proxy"></category><category term="gunicorn"></category><category term="uwsgi"></category></entry><entry><title>Publishing on PyPi</title><link href="http://balkian.com/publishing-on-pypi.html" rel="alternate"></link><published>2014-09-27T10:00:00+02:00</published><updated>2014-09-27T10:00:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2014-09-27:/publishing-on-pypi.html</id><summary type="html"><p>Developing a python module and publishing it on Github is cool, but most
|
|
||||||
of the times you want others to download and use it easily. That is the
|
|
||||||
role of PyPi, the python package repository. In this post I show you how
|
|
||||||
to publish your package in less than 10 …</p></summary><content type="html"><p>Developing a python module and publishing it on Github is cool, but most
|
|
||||||
of the times you want others to download and use it easily. That is the
|
|
||||||
role of PyPi, the python package repository. In this post I show you how
|
|
||||||
to publish your package in less than 10 minutes.</p>
|
|
||||||
<div class="section" id="choose-a-fancy-name">
|
|
||||||
<h2>Choose a fancy name</h2>
|
|
||||||
<p>If you haven't done so yet, take a minute or two to think about this. To
|
|
||||||
publish on PyPi you need a name for your package that isn't taken.
|
|
||||||
What's more, a catchy and unique name will help people remember your
|
|
||||||
module and feel more inclined to at least try it.</p>
|
|
||||||
<p>The package name should hint what your module does, but that's not
|
|
||||||
always the case. That's your call. I personally put uniqueness and
|
|
||||||
memorability over describing the functionality.</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="create-a-pypirc-configuration-file">
|
|
||||||
<h2>Create a .pypirc configuration file</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
13</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="na">[distutils] # this tells distutils what package indexes you can push to</span>
|
|
||||||
<span class="na">index-servers</span> <span class="o">=</span><span class="s"></span>
|
|
||||||
<span class="s"> pypi # the live PyPI</span>
|
|
||||||
<span class="s"> pypitest # test PyPI</span>
|
|
||||||
|
|
||||||
<span class="na">[pypi] # authentication details for live PyPI</span>
|
|
||||||
<span class="na">repository</span> <span class="o">=</span> <span class="s">https://pypi.python.org/pypi</span>
|
|
||||||
<span class="na">username</span> <span class="o">=</span> <span class="s">{ your_username }</span>
|
|
||||||
<span class="na">password</span> <span class="o">=</span> <span class="s">{ your_password } # not necessary</span>
|
|
||||||
|
|
||||||
<span class="na">[pypitest] # authentication details for test PyPI</span>
|
|
||||||
<span class="na">repository</span> <span class="o">=</span> <span class="s">https://testpypi.python.org/pypi</span>
|
|
||||||
<span class="na">username</span> <span class="o">=</span> <span class="s">{ your_username }</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>As you can see, you need to register both in the <a class="reference external" href="https://pypi.python.org/pypi?%3Aaction=register_form">main pypi
|
|
||||||
repository</a> and
|
|
||||||
the <a class="reference external" href="https://testpypi.python.org/pypi?%3Aaction=register_form">testing
|
|
||||||
server</a>.
|
|
||||||
The usernames and passwords might be different, that is up to you!</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="prepare-your-package">
|
|
||||||
<h2>Prepare your package</h2>
|
|
||||||
<p>This should be the structure:</p>
|
|
||||||
<pre class="literal-block">
|
|
||||||
root-dir/ # Any name you want
|
|
||||||
setup.py
|
|
||||||
setup.cfg
|
|
||||||
LICENSE.txt
|
|
||||||
README.md
|
|
||||||
mypackage/
|
|
||||||
__init__.py
|
|
||||||
foo.py
|
|
||||||
bar.py
|
|
||||||
baz.py
|
|
||||||
</pre>
|
|
||||||
<div class="section" id="setup-cfg">
|
|
||||||
<h3>setup.cfg</h3>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[metadata]</span>
|
|
||||||
<span class="na">description-file</span> <span class="o">=</span> <span class="s">README.md</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>The markdown README is the <em>de facto</em> standard in Github, but you can
|
|
||||||
also use rST (reStructuredText), the standard in the python community.</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="setup-py">
|
|
||||||
<h3>setup.py</h3>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">distutils.core</span> <span class="kn">import</span> <span class="n">setup</span>
|
|
||||||
|
|
||||||
<span class="n">setup</span><span class="p">(</span><span class="n">name</span> <span class="o">=</span> <span class="s1">&#39;mypackage&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">packages</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;mypackage&#39;</span><span class="p">],</span> <span class="c1"># this must be the same as the name above</span>
|
|
||||||
<span class="n">version</span> <span class="o">=</span> <span class="s1">&#39;{ version }&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">description</span> <span class="o">=</span> <span class="s1">&#39;{ description }&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">author</span> <span class="o">=</span> <span class="s1">&#39;{ name }&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">email</span> <span class="o">=</span> <span class="s1">&#39;{ email }&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://github.com/{user}/{package}&#39;</span><span class="p">,</span> <span class="c1"># URL to the github repo</span>
|
|
||||||
<span class="n">download</span>\<span class="n">_url</span> <span class="o">=</span> <span class="s1">&#39;https://github.com/{user}/{repo}/tarball/{version}&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">keywords</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;websockets&#39;</span><span class="p">,</span> <span class="s1">&#39;display&#39;</span><span class="p">,</span> <span class="s1">&#39;d3&#39;</span><span class="p">],</span> <span class="c1"># list of keywords that represent your package</span>
|
|
||||||
<span class="n">classifiers</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>You might notice that the download_url points to a Github URL. We could
|
|
||||||
host our package anywhere, but Github is a convenient option. To create
|
|
||||||
the tarball and the zip packages, you only need to tag a tag in your
|
|
||||||
repository and push it to github:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git tag <span class="o">{</span>version<span class="o">}</span> -m <span class="s2">&quot;{ Description of this tag/version}&quot;</span>
|
|
||||||
git push --tags origin master
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="push-to-the-testing-main-pypi-server">
|
|
||||||
<h2>Push to the testing/main pypi server</h2>
|
|
||||||
<p>It is advisable that you try your package on the test repository and fix
|
|
||||||
any problems first. The process is simple:
|
|
||||||
<tt class="docutils literal">python setup.py register <span class="pre">-r</span> {pypitest/pypi} python setup.py sdist upload <span class="pre">-r</span> {pypitest/pypi}</tt></p>
|
|
||||||
<p>If everything went as expected, you can now install your package through
|
|
||||||
pip and browse your package's page. For instance, check my senpy
|
|
||||||
package: <a class="reference external" href="https://pypi.python.org/pypi/senpy">https://pypi.python.org/pypi/senpy</a> <tt class="docutils literal">pip install senpy</tt></p>
|
|
||||||
</div>
|
|
||||||
</content><category term="github"></category><category term="python"></category><category term="pypi"></category></entry><entry><title>Updating EuroLoveMap</title><link href="http://balkian.com/updating-eurolovemap.html" rel="alternate"></link><published>2014-03-27T14:00:00+01:00</published><updated>2014-03-27T14:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2014-03-27:/updating-eurolovemap.html</id><summary type="html"><p>As part of the <a class="reference external" href="http://www.opener-project.org/2013/07/18/opener-hackathon-in-amsterdam/">OpeNER
|
|
||||||
hackathon</a>
|
|
||||||
we decided to build a prototype that would allow us to compare how
|
|
||||||
different countries feel about several topics. We used the OpeNER
|
|
||||||
pipeline to get the sentiment from a set of newspaper articles we
|
|
||||||
gathered from media in several languages. Then we aggregated …</p></summary><content type="html"><p>As part of the <a class="reference external" href="http://www.opener-project.org/2013/07/18/opener-hackathon-in-amsterdam/">OpeNER
|
|
||||||
hackathon</a>
|
|
||||||
we decided to build a prototype that would allow us to compare how
|
|
||||||
different countries feel about several topics. We used the OpeNER
|
|
||||||
pipeline to get the sentiment from a set of newspaper articles we
|
|
||||||
gathered from media in several languages. Then we aggregated those
|
|
||||||
articles by category and country (using the source of the article or the
|
|
||||||
language it was written in), obtaining the &quot;overall feeling&quot; of each
|
|
||||||
country about each topic. Then, we used some fancy JavaScript to make
|
|
||||||
sense out of the raw information.</p>
|
|
||||||
<p>It didn't go too bad, it turns out <a class="reference external" href="http://eurosentiment.eu/wp-content/uploads/2013/07/BOLv9qnCIAAJEek.jpg">we
|
|
||||||
won</a>.</p>
|
|
||||||
<p>Now, it was time for a face-lift. I used this opportunity to play with
|
|
||||||
new technologies and improve it:</p>
|
|
||||||
<ul class="simple">
|
|
||||||
<li>Using Flask, this time using python 3.3 and Bootstrap 3.0</li>
|
|
||||||
<li>Cool HTML5+JS cards (thanks to
|
|
||||||
<a class="reference external" href="http://pastetophone.com">pastetophone</a>)</li>
|
|
||||||
<li>Automatic generation of fake personal data to test the interface</li>
|
|
||||||
<li>Obfuscation of personal emails</li>
|
|
||||||
</ul>
|
|
||||||
<p>The result can be <a class="reference external" href="http://eurolovemap.herokuapp.com/">seen here</a>.</p>
|
|
||||||
<div class="section" id="publishing-a-python-3-app-on-heroku">
|
|
||||||
<h2>Publishing a Python 3 app on Heroku</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>mkvirtualenv -p /usr/bin/python3.3 eurolovemap
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Since Heroku uses python 2.7 by default, we have to tell it which
|
|
||||||
version we want, although it supports python 3.4 as well. I couldn't get
|
|
||||||
python 3.4 working using the
|
|
||||||
<a class="reference external" href="https://launchpad.net/~fkrull/+archive/deadsnakes">deadsnakes</a> ppa,
|
|
||||||
so I used python 3.3 instead, which works fine but is not officially
|
|
||||||
supported. Just create a file named <em>runtime.txt</em> in your project root,
|
|
||||||
with the python version you want to use:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>python-3.3.1
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Don't forget to freeze your dependencies so Heroku can install them:
|
|
||||||
<tt class="docutils literal">bash pip freze &gt; requirements.txt</tt></p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="publishing-personal-emails">
|
|
||||||
<h2>Publishing personal emails</h2>
|
|
||||||
<p>There are really sophisticated and effective ways to obfuscate personal
|
|
||||||
emails so that spammers cannot easily grab yours. However, this time I
|
|
||||||
needed something really simple to hide our emails from the simplest form
|
|
||||||
of crawlers. Most of the team are in academia somehow, so in the end all
|
|
||||||
our emails are available in sites like Google Scholar. Anyway, nobody
|
|
||||||
likes getting spammed so I settled for a custom <a class="reference external" href="http://en.wikipedia.org/wiki/Caesar_cipher">Caesar
|
|
||||||
cipher</a>. Please, don't
|
|
||||||
use it for any serious application if you are concerned about being
|
|
||||||
spammed.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">blur_email</span><span class="p">(</span><span class="n">email</span><span class="p">):</span>
|
|
||||||
<span class="k">return</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="nb">chr</span><span class="p">(</span><span class="nb">ord</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="mi">5</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">email</span><span class="p">])</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>And this is the client side:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nb">window</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(){</span>
|
|
||||||
<span class="nx">elems</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="s1">&#39;profile-email&#39;</span><span class="p">);</span>
|
|
||||||
<span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">e</span> <span class="k">in</span> <span class="nx">elems</span><span class="p">){</span>
|
|
||||||
<span class="kd">var</span> <span class="nx">blur</span> <span class="o">=</span> <span class="nx">elems</span><span class="p">[</span><span class="nx">e</span><span class="p">].</span><span class="nx">innerHTML</span><span class="p">;</span>
|
|
||||||
<span class="kd">var</span> <span class="nx">email</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span>
|
|
||||||
<span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">s</span> <span class="k">in</span> <span class="nx">blur</span><span class="p">){</span>
|
|
||||||
<span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="nx">blur</span><span class="p">.</span><span class="nx">charCodeAt</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
|
||||||
<span class="nx">email</span> <span class="o">=</span> <span class="nx">email</span><span class="o">+</span><span class="nb">String</span><span class="p">.</span><span class="nx">fromCharCode</span><span class="p">(</span><span class="nx">a</span><span class="o">-</span><span class="mi">5</span><span class="p">);</span>
|
|
||||||
<span class="p">}</span>
|
|
||||||
<span class="nx">elems</span><span class="p">[</span><span class="nx">e</span><span class="p">].</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">email</span><span class="p">;</span>
|
|
||||||
<span class="p">}</span>
|
|
||||||
<span class="p">}</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Unfortunately, this approach does not hide your email from anyone using
|
|
||||||
<a class="reference external" href="http://phantomjs.org/">PhantomJS</a>,
|
|
||||||
<a class="reference external" href="http://zombie.labnotes.org/">ZombieJS</a> or similar. For that, other
|
|
||||||
approaches like generating a picture with the address would be
|
|
||||||
necessary. Nevertheless, it is overkill for a really simple ad-hoc
|
|
||||||
application with custom formatting and just a bunch of emails that would
|
|
||||||
easily be grabbed manually.</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="generation-of-fake-data">
|
|
||||||
<h2>Generation of fake data</h2>
|
|
||||||
<p>To test the contact section of the site, I wanted to populate it with
|
|
||||||
fake data. <a class="reference external" href="https://github.com/joke2k/faker">Fake-Factory</a> is an
|
|
||||||
amazing library that can generate fake data of almost any kind: emails,
|
|
||||||
association names, acronyms... It even lets you localise the results
|
|
||||||
(get Spanish names, for instance) and generate factories for certain
|
|
||||||
classes (à la Django).</p>
|
|
||||||
<p>But I also wanted pictures, enter <a class="reference external" href="http://lorempixel.com/">Lorem
|
|
||||||
Pixel</a>. With its API you can generate
|
|
||||||
pictures of almost any size, for different topics (e.g. nightlife,
|
|
||||||
people) and with a custom text. You can even use an index, so it will
|
|
||||||
always show the same picture.</p>
|
|
||||||
<p>For instance, the picture below is served through Lorem Pixel.</p>
|
|
||||||
<div class="figure">
|
|
||||||
<img alt="This picture is generated with LoremIpsum" src="http://lorempixel.com/400/200/nightlife/" />
|
|
||||||
</div>
|
|
||||||
<p>By the way, if you only want cat pictures, take a look at
|
|
||||||
<a class="reference external" href="http://placekitten.com/">Placekitten</a>. And for NSFW text, there's
|
|
||||||
the <a class="reference external" href="http://slipsum.com/">Samuel L. Jackson Ipsum</a></p>
|
|
||||||
</div>
|
|
||||||
</content><category term="javascript"></category><category term="python"></category><category term="heroku"></category></entry><entry><title>Remove git files with globbing</title><link href="http://balkian.com/remove-git-files-with-globbing.html" rel="alternate"></link><published>2013-08-22T23:14:00+02:00</published><updated>2013-08-22T23:14:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2013-08-22:/remove-git-files-with-globbing.html</id><summary type="html"><p>A simple trick. If you want to remove all the '.swp' files from a git
|
|
||||||
repository, just use:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></summary><content type="html"><p>A simple trick. If you want to remove all the '.swp' files from a git
|
|
||||||
repository, just use:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="git"></category></entry><entry><title>Creating my web</title><link href="http://balkian.com/creating-my-web.html" rel="alternate"></link><published>2013-08-22T14:14:22+02:00</published><updated>2013-08-22T14:14:22+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2013-08-22:/creating-my-web.html</id><summary type="html"><p>Finally, I've decided to set up a decent personal page. I have settled
|
|
||||||
for github-pages because I like the idea of keeping my site in a
|
|
||||||
repository and having someone else host and deploy it for me. The site
|
|
||||||
will be really simple, mostly static files. Thanks to Github,
|
|
||||||
<a class="reference external" href="http://jekyllrb.com">Jekyll …</a></p></summary><content type="html"><p>Finally, I've decided to set up a decent personal page. I have settled
|
|
||||||
for github-pages because I like the idea of keeping my site in a
|
|
||||||
repository and having someone else host and deploy it for me. The site
|
|
||||||
will be really simple, mostly static files. Thanks to Github,
|
|
||||||
<a class="reference external" href="http://jekyllrb.com">Jekyll</a> will automatically generate static
|
|
||||||
pages for my posts every time I commit anything new to this repository.</p>
|
|
||||||
<p>But Jekyll can be used independently, so if I ever choose to host the
|
|
||||||
site myself, I can do it quite easily. Another thing that I liked about
|
|
||||||
this approach is that the generated html files can be used in the
|
|
||||||
future, and I will not need Jekyll to serve it. Jekyll is really simple
|
|
||||||
and most of the things are written in plain html. That means that
|
|
||||||
everything could be easily reused if I ever choose to change to another
|
|
||||||
blogging framework (e.g. pelical). But, for the time being, I like the
|
|
||||||
fact that Github takes care of the compilation as well, so I can simply
|
|
||||||
modify or add files through the web interface should I need to.</p>
|
|
||||||
<p>I hadn't played with HTML and CSS for a while now, so I also wanted to
|
|
||||||
use this site as a playground. At some point, I realised I was doing
|
|
||||||
mostly everything in plain HTML and CSS, and decided to keep it like
|
|
||||||
that for as long as possible. As of this writing, I haven't included any
|
|
||||||
Javascript code in the page. Probably I will use some to add my
|
|
||||||
<a class="reference external" href="http://gist.github.com/balkian">gists</a> and
|
|
||||||
<a class="reference external" href="http://github.com/balkian">repositories</a>, but we will see about
|
|
||||||
that.</p>
|
|
||||||
<p>I think the code speaks for itself, so you can check out <a class="reference external" href="http://github.com/balkian/balkian.github.com">my repository
|
|
||||||
on Github</a>. You can
|
|
||||||
clone and deploy it easily like this:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git clone
|
|
||||||
https://github.com/balkian/balkian.github.com <span class="nb">cd</span> balkian.github.com
|
|
||||||
jekyll serve -w
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>I will keep updating this post with information about:</p>
|
|
||||||
<ul class="simple">
|
|
||||||
<li>Some Jekyll plugins that might be useful</li>
|
|
||||||
<li>What CSS tricks I learnt</li>
|
|
||||||
<li>The webfonts I used</li>
|
|
||||||
<li>The badge on the left side of the page</li>
|
|
||||||
</ul>
|
|
||||||
</content><category term="starters"></category><category term="javascript"></category><category term="ruby"></category><category term="github"></category><category term="git"></category></entry></feed>
|
|
@ -1,58 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>balkian.com - cheats</title><link href="http://balkian.com/" rel="alternate"></link><link href="http://balkian.com/feeds/cheats.atom.xml" rel="self"></link><id>http://balkian.com/</id><updated>2017-01-07T18:00:00+01:00</updated><entry><title>HDMI-VGA adapter issues with Raspberry Pi</title><link href="http://balkian.com/hdmi-vga-adapter-issues-with-raspberry-pi.html" rel="alternate"></link><published>2017-01-07T18:00:00+01:00</published><updated>2017-01-07T18:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2017-01-07:/hdmi-vga-adapter-issues-with-raspberry-pi.html</id><summary type="html"><p>Avoid HDMI flickering/intermittent blanking on RPI with a 1400x1050 VGA monitor.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">hdmi_drive</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_group</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_mode</span><span class="o">=</span><span class="mi">42</span>
|
|
||||||
<span class="n">disable_overscan</span><span class="o">=</span><span class="mi">1</span>
|
|
||||||
<span class="n">config_hdmi_boost</span><span class="o">=</span><span class="mi">7</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></summary><content type="html"><p>Avoid HDMI flickering/intermittent blanking on RPI with a 1400x1050 VGA monitor.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">hdmi_drive</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_group</span><span class="o">=</span><span class="mi">2</span>
|
|
||||||
<span class="n">hdmi_mode</span><span class="o">=</span><span class="mi">42</span>
|
|
||||||
<span class="n">disable_overscan</span><span class="o">=</span><span class="mi">1</span>
|
|
||||||
<span class="n">config_hdmi_boost</span><span class="o">=</span><span class="mi">7</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="rpi"></category></entry><entry><title>PPTP connections</title><link href="http://balkian.com/pptp-connections.html" rel="alternate"></link><published>2017-01-01T00:00:00+01:00</published><updated>2017-01-01T00:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2017-01-01:/pptp-connections.html</id><summary type="html"><p>PPTP VPN connections will fail on a vanilla openwrt installation.
|
|
||||||
You need to install this module:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>opkg install kmod-nf-nathelper-extra
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></summary><content type="html"><p>PPTP VPN connections will fail on a vanilla openwrt installation.
|
|
||||||
You need to install this module:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>opkg install kmod-nf-nathelper-extra
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="openwrt"></category><category term="linux"></category><category term="router"></category></entry><entry><title>Arch Linux Fixes</title><link href="http://balkian.com/arch-linux-fixes.html" rel="alternate"></link><published>2016-02-03T20:00:00+01:00</published><updated>2016-02-03T20:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2016-02-03:/arch-linux-fixes.html</id><summary type="html"><div class="section" id="black-screen-and-lightdm-doesn-t-unlock">
|
|
||||||
<h2>Black screen and LightDM doesn't unlock</h2>
|
|
||||||
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
|
|
||||||
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</summary><content type="html"><div class="section" id="black-screen-and-lightdm-doesn-t-unlock">
|
|
||||||
<h2>Black screen and LightDM doesn't unlock</h2>
|
|
||||||
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
|
|
||||||
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</content><category term="arch"></category><category term="linux"></category></entry><entry><title>Org-mode tricks</title><link href="http://balkian.com/org-mode-tricks.html" rel="alternate"></link><published>2015-12-10T11:34:00+01:00</published><updated>2015-12-10T11:34:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2015-12-10:/org-mode-tricks.html</id><summary type="html"><div class="section" id="show-plain-text-version">
|
|
||||||
<h2>Show plain text version</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</summary><content type="html"><div class="section" id="show-plain-text-version">
|
|
||||||
<h2>Show plain text version</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</content><category term="emacs"></category><category term="productivity"></category><category term="editor"></category><category term="org"></category></entry></feed>
|
|
@ -1,631 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>balkian.com - misc</title><link href="http://balkian.com/" rel="alternate"></link><link href="http://balkian.com/feeds/misc.atom.xml" rel="self"></link><id>http://balkian.com/</id><updated>2019-01-06T10:00:00+01:00</updated><entry><title>Controlling Zigbee devices with MQTT</title><link href="http://balkian.com/controlling-zigbee-devices-with-mqtt.html" rel="alternate"></link><published>2019-01-06T10:00:00+01:00</published><updated>2019-01-06T10:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2019-01-06:/controlling-zigbee-devices-with-mqtt.html</id><summary type="html"><p>This is a short tutorial on connecting a zigbee device (an Aqara cube) to an MQTT server, so you can control your zigbee devices from the network.</p>
|
|
||||||
<p>If you're anything like me, you're probably a sucker for IoT devices.
|
|
||||||
For a long time, I've been using WiFi-enabled lights, and Amazon …</p></summary><content type="html"><p>This is a short tutorial on connecting a zigbee device (an Aqara cube) to an MQTT server, so you can control your zigbee devices from the network.</p>
|
|
||||||
<p>If you're anything like me, you're probably a sucker for IoT devices.
|
|
||||||
For a long time, I've been using WiFi-enabled lights, and Amazon dash buttons to control them.
|
|
||||||
To keep these (cheap Chinese) internet enabled devices away from your network and their respective cloud services, you'll probably want to set up a dedicated network in your router (more on this on a future post, maybe).
|
|
||||||
Another disadvantage of WiFi devices is that they're relatively power hungry.</p>
|
|
||||||
<p>A popular alternative is using ZigBee for communication.
|
|
||||||
It is a dedicated protocol similar to bluetooth (BLE), with lower power requirements and bitrate.</p>
|
|
||||||
<p>Take the (super cute) aqara cube as an example.
|
|
||||||
It is a small cube that detects rotation on all of its axes, and tapping events.
|
|
||||||
Here's a video:</p>
|
|
||||||
<div class="youtube youtube-16x9"><iframe src="https://www.youtube.com/embed/5YtqG1wEnng" allowfullscreen seamless frameBorder="0"></iframe></div><p>To connect to zigbee devices you will need a zigbee enabled gateway (a.k.a. hub), which connects to your WiFi network and your zigbee devices.
|
|
||||||
Once again, this means adding an internet-enabled device to your home, and probably a couple of cloud services.</p>
|
|
||||||
<p>As an alternative, you can set up your own zigbee gateway, and control it to your home automation platform of choice (e.g. home assistant).
|
|
||||||
We will cover how to set up a zigbee2mqtt gateway that is also connected to an MQTT server, so you can use MQTT to control your devices and get notifications.</p>
|
|
||||||
<p>What you need:</p>
|
|
||||||
<ul class="simple">
|
|
||||||
<li><a class="reference external" href="https://www.aliexpress.com/item/Original-Xiaomi-Mi-Aqara-Cube-Smart-Home-Controller-6-Action-Operation-Fr-Home-Device-Zigbee-Version/32892947622.html?spm=a2g0s.9042311.0.0.3da24c4dXV8sBI">Aqara cube</a>.</li>
|
|
||||||
<li><a class="reference external" href="https://www.aliexpress.com/item/Wireless-Zigbee-CC2531-CC2540-Zigbee-Sniffer-Bluetooth-BLE-4-0-Dongle-Capture-Module-USB-Programmer-Downloader/32907587711.html?spm=a2g0s.9042311.0.0.3da24c4dXV8sBI">CC2531 zigbee sniffer</a>.</li>
|
|
||||||
<li><a class="reference external" href="https://www.aliexpress.com/item/CFSUNBIRD-CC-DEBUGGER-Debugger-and-Programmer-for-RF-System-on-Chips-TI-ORIGINAL-Fast-hipping/32813122315.html?spm=a2g0s.9042311.0.0.3da24c4dXV8sBI">CC-debugger</a>.</li>
|
|
||||||
</ul>
|
|
||||||
<p>You will need to flash your sniffer.
|
|
||||||
For that, you only need to follow the instructions from the <a class="reference external" href="https://koenkk.github.io/zigbee2mqtt/">zigbee2mqtt documentation</a>.</p>
|
|
||||||
<p>Once you're done flashing, you're ready to set up the zigbee2mqtt server.
|
|
||||||
For convenience, I wrote a simple docker-compose to deploy a zigbee2mqtt server and a test mosquitto server:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
13
|
|
||||||
14
|
|
||||||
15
|
|
||||||
16
|
|
||||||
17
|
|
||||||
18
|
|
||||||
19
|
|
||||||
20
|
|
||||||
21
|
|
||||||
22
|
|
||||||
23
|
|
||||||
24
|
|
||||||
25
|
|
||||||
26
|
|
||||||
27
|
|
||||||
28
|
|
||||||
29
|
|
||||||
30
|
|
||||||
31
|
|
||||||
32
|
|
||||||
33</pre></div></td><td class="code"><div class="highlight"><pre><span></span>version: &#39;2.1&#39;
|
|
||||||
services:
|
|
||||||
zigbee2mqtt:
|
|
||||||
image: koenkk/zigbee2mqtt
|
|
||||||
container_name: zigbee2mqtt
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./z2m-data/:/app/data/
|
|
||||||
devices:
|
|
||||||
- &quot;/dev/ttyACM0&quot;
|
|
||||||
networks:
|
|
||||||
- hass
|
|
||||||
mqtt:
|
|
||||||
image: eclipse-mosquitto
|
|
||||||
ports:
|
|
||||||
- 1883:1883
|
|
||||||
- 9001:9001
|
|
||||||
networks:
|
|
||||||
- hass
|
|
||||||
volumes:
|
|
||||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf
|
|
||||||
hass:
|
|
||||||
image: homeassistant/home-assistant
|
|
||||||
ports:
|
|
||||||
- &quot;8123:8123&quot;
|
|
||||||
networks:
|
|
||||||
- hass
|
|
||||||
volumes:
|
|
||||||
- ./hass-config:/config
|
|
||||||
- &quot;/etc/localtime:/etc/localtime:ro&quot;
|
|
||||||
networks:
|
|
||||||
hass:
|
|
||||||
driver: overlay
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>You can test your installation with:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6</pre></div></td><td class="code"><div class="highlight"><pre><span></span> ❯ mosquitto_sub -h localhost -p <span class="m">1883</span> -t <span class="s1">&#39;zigbee2mqtt/#&#39;</span>
|
|
||||||
online
|
|
||||||
<span class="o">{</span><span class="s2">&quot;battery&quot;</span>:17,<span class="s2">&quot;voltage&quot;</span>:2925,<span class="s2">&quot;linkquality&quot;</span>:149,<span class="s2">&quot;action&quot;</span>:<span class="s2">&quot;rotate_right&quot;</span>,<span class="s2">&quot;angle&quot;</span>:12.8<span class="o">}</span>
|
|
||||||
<span class="o">{</span><span class="s2">&quot;battery&quot;</span>:17,<span class="s2">&quot;voltage&quot;</span>:2925,<span class="s2">&quot;linkquality&quot;</span>:141,<span class="s2">&quot;action&quot;</span>:<span class="s2">&quot;slide&quot;</span>,<span class="s2">&quot;side&quot;</span>:2<span class="o">}</span>
|
|
||||||
<span class="o">{</span><span class="s2">&quot;battery&quot;</span>:17,<span class="s2">&quot;voltage&quot;</span>:2925,<span class="s2">&quot;linkquality&quot;</span>:120<span class="o">}</span>
|
|
||||||
<span class="o">{</span><span class="s2">&quot;battery&quot;</span>:17,<span class="s2">&quot;voltage&quot;</span>:2925,<span class="s2">&quot;linkquality&quot;</span>:141,<span class="s2">&quot;action&quot;</span>:<span class="s2">&quot;wakeu</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>zigbee2mqtt supports the following events for the aqara cube: shake, wakeup, fall, tap, slide, flip180, flip90, rotate_left and rotate_right.
|
|
||||||
Every event has additional information, such as the sides involved, or the degrees turned.</p>
|
|
||||||
<p>Now you are ready to set up home assistant support in zigbee2mqtt following <a class="reference external" href="https://koenkk.github.io/zigbee2mqtt/integration/home_assistant.html">this guide</a>.</p>
|
|
||||||
</content><category term="mqtt"></category><category term="iot"></category><category term="zigbee"></category></entry><entry><title>Progress bars in python</title><link href="http://balkian.com/progress-bars-in-python.html" rel="alternate"></link><published>2016-09-28T18:47:00+02:00</published><updated>2016-09-28T18:47:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2016-09-28:/progress-bars-in-python.html</id><summary type="html"><p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
|
|
||||||
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
|
|
||||||
<span class="kn">import</span> <span class="nn">time</span>
|
|
||||||
|
|
||||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
|
|
||||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></summary><content type="html"><p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
|
|
||||||
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
|
|
||||||
<span class="kn">import</span> <span class="nn">time</span>
|
|
||||||
|
|
||||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
|
|
||||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="python"></category></entry><entry><title>Sharing dotfiles</title><link href="http://balkian.com/sharing-dotfiles.html" rel="alternate"></link><published>2015-04-10T17:47:00+02:00</published><updated>2015-04-10T17:47:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2015-04-10:/sharing-dotfiles.html</id><summary type="html"><p>Today's post is half a quick note, half public shaming. In other words, it is a reminder to be very careful with OAuth tokens and passwords.</p>
|
|
||||||
<p>As part of moving to emacs, I starting using the incredibly useful <a class="reference external" href="https://github.com/defunkt/gist.el">gh.el</a>.
|
|
||||||
When you first use it, the extension saves either your …</p></summary><content type="html"><p>Today's post is half a quick note, half public shaming. In other words, it is a reminder to be very careful with OAuth tokens and passwords.</p>
|
|
||||||
<p>As part of moving to emacs, I starting using the incredibly useful <a class="reference external" href="https://github.com/defunkt/gist.el">gh.el</a>.
|
|
||||||
When you first use it, the extension saves either your password or an OAuth token in your .gitconfig file.
|
|
||||||
This is cool and convenient, unless you <a class="reference external" href="https://github.com/balkian/dotfiles">happen to be publishing your .gitconfig file in a public repo</a>.</p>
|
|
||||||
<p>So, how can you still share your gitconfig without sharing your password/token with the rest of the world?
|
|
||||||
Since Git 1.7.0, you can <a class="reference external" href="http://stackoverflow.com/questions/1557183/is-it-possible-to-include-a-file-in-your-gitconfig">include other files in your gitconfig</a>.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span>[include]
|
|
||||||
path = ~/.gitconfig_secret
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>And now, in your .gitconfig_secret file, you just have to add this:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3</pre></div></td><td class="code"><div class="highlight"><pre><span></span>[github]
|
|
||||||
user = balkian
|
|
||||||
token = &quot;&lt; Your secret token &gt;&quot;
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="github"></category><category term="git"></category><category term="dotfiles"></category></entry><entry><title>Zotero</title><link href="http://balkian.com/zotero.html" rel="alternate"></link><published>2014-12-09T12:12:12+01:00</published><updated>2014-12-09T12:12:12+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2014-12-09:/zotero.html</id><summary type="html"><p><a class="reference external" href="https://www.zotero.org/">Zotero</a> is an Open Source tool that lets
|
|
||||||
you organise your bibliography, syncing it with the cloud. Unlike other
|
|
||||||
alternatives such as <a class="reference external" href="http://www.mendeley.com">Mendeley</a>, Zotero can
|
|
||||||
upload the attachments and data to a private cloud via WebDav.</p>
|
|
||||||
<p>If you use nginx as your web server, know that even though it provides …</p></summary><content type="html"><p><a class="reference external" href="https://www.zotero.org/">Zotero</a> is an Open Source tool that lets
|
|
||||||
you organise your bibliography, syncing it with the cloud. Unlike other
|
|
||||||
alternatives such as <a class="reference external" href="http://www.mendeley.com">Mendeley</a>, Zotero can
|
|
||||||
upload the attachments and data to a private cloud via WebDav.</p>
|
|
||||||
<p>If you use nginx as your web server, know that even though it provides
|
|
||||||
partial support for webdav, Zotero needs more than that. Hence, you will
|
|
||||||
need another webdav server, and optionally let nginx proxy to it. This
|
|
||||||
short post provides the basics to get that set-up working under
|
|
||||||
Debian/Ubuntu.</p>
|
|
||||||
<div class="section" id="setting-up-apache">
|
|
||||||
<h2>Setting up Apache</h2>
|
|
||||||
<p>First we need to install Apache:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo apt-get install apache2
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Change the head of &quot;/etc/apache2/sites-enabled/000-default&quot; to:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;VirtualHost</span> <span class="s">*:880</span><span class="nt">&gt;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Then, create a file /etc/apache2/sites-available/webdav:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
13</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nb">Alias</span> <span class="sx">/dav</span> <span class="sx">/home/webdav/dav</span>
|
|
||||||
<span class="nt">&lt;Location</span> <span class="s">/dav</span><span class="nt">&gt;</span>
|
|
||||||
<span class="nb">Dav</span> <span class="k">on</span>
|
|
||||||
<span class="nb">Order</span> Allow,Deny
|
|
||||||
<span class="nb">Allow</span> from <span class="k">all</span>
|
|
||||||
<span class="nb">Dav</span> <span class="k">On</span>
|
|
||||||
<span class="nb">Options</span> +Indexes
|
|
||||||
<span class="nb">AuthType</span> Basic
|
|
||||||
<span class="nb">AuthName</span> DAV
|
|
||||||
<span class="nb">AuthBasicProvider</span> file
|
|
||||||
<span class="nb">AuthUserFile</span> <span class="sx">/home/webdav/.htpasswd</span>
|
|
||||||
<span class="nb">Require</span> valid-user
|
|
||||||
<span class="nt">&lt;/Location&gt;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Ideally, you want your webdav folders to be private, adding
|
|
||||||
authentication to them. So you need to create the webdav and zotero
|
|
||||||
users and add the passwords to an htpasswd file. Even though you could
|
|
||||||
use a single user, since you will be configuring several clients with
|
|
||||||
your credentials I encourage you to create the zotero user as well. This
|
|
||||||
way you can always change the password for zotero without affecting any
|
|
||||||
other application using webdav.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo adduser webdav
|
|
||||||
sudo htpasswd -c /home/webdav/.htpasswd webdav
|
|
||||||
sudo htpasswd /home/webdav/.htpasswd zotero
|
|
||||||
sudo mkdir -p /home/webdav/dav/zotero
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Enable the site and restart apache:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo a2enmod webdav
|
|
||||||
sudo a2enmod dav_fs
|
|
||||||
sudo a2ensite webdav
|
|
||||||
sudo service apache2 restart
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>At this point everything should be working at
|
|
||||||
<a class="reference external" href="http:/">http:/</a>/&lt;your_host&gt;:880/dav/zotero</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="setting-up-nginx">
|
|
||||||
<h2>Setting up NGINX</h2>
|
|
||||||
<p>After the Apache side is working, we can use nginx as a proxy to get
|
|
||||||
cleaner URIs. In your desired site/location, add this:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">location</span> <span class="s">/dav</span> <span class="p">{</span>
|
|
||||||
<span class="kn">client_max_body_size</span> <span class="s">20M</span><span class="p">;</span>
|
|
||||||
<span class="kn">proxy_set_header</span> <span class="s">X-Real-IP</span> <span class="nv">$remote_addr</span><span class="p">;</span>
|
|
||||||
<span class="kn">proxy_set_header</span> <span class="s">X-Forwarded-For</span> <span class="nv">$remote_addr</span><span class="p">;</span>
|
|
||||||
<span class="kn">proxy_set_header</span> <span class="s">Host</span> <span class="nv">$host</span><span class="p">;</span>
|
|
||||||
<span class="kn">proxy_pass</span> <span class="s">http://127.0.0.1:880</span><span class="p">;</span>
|
|
||||||
<span class="p">}</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Now just reload nginx:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo service nginx force-reload
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
<div class="section" id="extras">
|
|
||||||
<h2>Extras</h2>
|
|
||||||
<ul class="simple">
|
|
||||||
<li><a class="reference external" href="http://zoteroreader.com/">Zotero Reader</a> - HTML5 client</li>
|
|
||||||
<li><a class="reference external" href="https://github.com/ajlyon/zandy">Zandy</a> - Android Open Source
|
|
||||||
client</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</content><category term="zotero"></category><category term="webdav"></category><category term="nginx"></category><category term="apache"></category></entry><entry><title>Proxies with Apache and python</title><link href="http://balkian.com/proxies-with-apache-and-python.html" rel="alternate"></link><published>2014-10-09T10:00:00+02:00</published><updated>2014-10-09T10:00:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2014-10-09:/proxies-with-apache-and-python.html</id><summary type="html"><p>This is a quick note on proxying a local python application (e.g. flask)
|
|
||||||
to a subdirectory in Apache. This assumes that the file wsgi.py contains
|
|
||||||
a WSGI application with the name <em>application</em>. Hence, wsgi:application.</p>
|
|
||||||
<div class="section" id="gunicorn">
|
|
||||||
<h2>Gunicorn</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
|
|
||||||
<span class="nb">ProxyPass</span> http://127.0.0 …</pre></div></td></tr></table></div></summary><content type="html"><p>This is a quick note on proxying a local python application (e.g. flask)
|
|
||||||
to a subdirectory in Apache. This assumes that the file wsgi.py contains
|
|
||||||
a WSGI application with the name <em>application</em>. Hence, wsgi:application.</p>
|
|
||||||
<div class="section" id="gunicorn">
|
|
||||||
<h2>Gunicorn</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
|
|
||||||
<span class="nb">ProxyPass</span> http://127.0.0.1:8888/myapp/
|
|
||||||
<span class="nb">ProxyPassReverse</span> http://127.0.0.1:8888/myapp/
|
|
||||||
<span class="nb">RequestHeader</span> set SCRIPT_NAME <span class="s2">&quot;/myapp/&quot;</span>
|
|
||||||
<span class="nt">&lt;/Location&gt;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p><strong>Important</strong>: <em>SCRIPT_NAME</em> and the end of <em>ProxyPass</em> URL <strong>MUST BE
|
|
||||||
THE SAME</strong>. Otherwise, Gunicorn will fail miserably.</p>
|
|
||||||
<p>Try it with:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>venv/bin/gunicorn -w <span class="m">4</span> -b <span class="m">127</span>.0.0.1:8888 --log-file - --access-logfile - wsgi:application
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
<div class="section" id="uwsgi">
|
|
||||||
<h2>UWSGI</h2>
|
|
||||||
<p>This is a very simple configuration. I will try to upload one with more
|
|
||||||
options for uwsgi (in a .ini file).</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
|
|
||||||
<span class="nb">SetHandler</span> uwsgi_handler
|
|
||||||
<span class="nb">uWSGISocker</span> <span class="m">127.0.0.1</span>:8888
|
|
||||||
<span class="nt">&lt;/Location&gt;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Try it with:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>uwsgi --socket <span class="m">127</span>.0.0.1:8888 -w wsgi:application
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><div class="section" id="extra-supervisor">
|
|
||||||
<h3>Extra: Supervisor</h3>
|
|
||||||
<p>If everything went as expected, you can wrap your command in a
|
|
||||||
supervisor config file and let it handle the server for you.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
13
|
|
||||||
14
|
|
||||||
15
|
|
||||||
16
|
|
||||||
17
|
|
||||||
18
|
|
||||||
19</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[unix_http_server]</span>
|
|
||||||
<span class="na">file</span><span class="o">=</span><span class="s">/tmp/myapp.sock ; path to your socket file</span>
|
|
||||||
|
|
||||||
<span class="k">[supervisord]</span>
|
|
||||||
<span class="na">logfile</span> <span class="o">=</span> <span class="s">%(here)s/logs/supervisor.log</span>
|
|
||||||
<span class="na">childlogdir</span> <span class="o">=</span> <span class="s">%(here)s/logs/</span>
|
|
||||||
|
|
||||||
<span class="k">[rpcinterface:supervisor]</span>
|
|
||||||
<span class="na">supervisor.rpcinterface_factory</span> <span class="o">=</span> <span class="s">supervisor.rpcinterface:make_main_rpcinterface</span>
|
|
||||||
|
|
||||||
<span class="k">[supervisorctl]</span>
|
|
||||||
<span class="na">logfile</span> <span class="o">=</span> <span class="s">%(here)s/logs/supervisorctl.log</span>
|
|
||||||
<span class="na">serverurl</span><span class="o">=</span><span class="s">unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket</span>
|
|
||||||
|
|
||||||
<span class="k">[program:myapp]</span>
|
|
||||||
<span class="na">command</span> <span class="o">=</span> <span class="s">venv/bin/gunicorn -w 4 -b 0.0.0.0:5000 --log-file %(here)s/logs/gunicorn.log --access-logfile - wsgi:application</span>
|
|
||||||
<span class="na">directory</span> <span class="o">=</span> <span class="s">%(here)s</span>
|
|
||||||
<span class="na">environment</span> <span class="o">=</span> <span class="s">PATH=%(here)s/venv/bin/</span>
|
|
||||||
<span class="na">logfile</span> <span class="o">=</span> <span class="s">%(here)s/logs/myapp.log</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</div>
|
|
||||||
</content><category term="python"></category><category term="apache"></category><category term="proxy"></category><category term="gunicorn"></category><category term="uwsgi"></category></entry><entry><title>Publishing on PyPi</title><link href="http://balkian.com/publishing-on-pypi.html" rel="alternate"></link><published>2014-09-27T10:00:00+02:00</published><updated>2014-09-27T10:00:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2014-09-27:/publishing-on-pypi.html</id><summary type="html"><p>Developing a python module and publishing it on Github is cool, but most
|
|
||||||
of the times you want others to download and use it easily. That is the
|
|
||||||
role of PyPi, the python package repository. In this post I show you how
|
|
||||||
to publish your package in less than 10 …</p></summary><content type="html"><p>Developing a python module and publishing it on Github is cool, but most
|
|
||||||
of the times you want others to download and use it easily. That is the
|
|
||||||
role of PyPi, the python package repository. In this post I show you how
|
|
||||||
to publish your package in less than 10 minutes.</p>
|
|
||||||
<div class="section" id="choose-a-fancy-name">
|
|
||||||
<h2>Choose a fancy name</h2>
|
|
||||||
<p>If you haven't done so yet, take a minute or two to think about this. To
|
|
||||||
publish on PyPi you need a name for your package that isn't taken.
|
|
||||||
What's more, a catchy and unique name will help people remember your
|
|
||||||
module and feel more inclined to at least try it.</p>
|
|
||||||
<p>The package name should hint what your module does, but that's not
|
|
||||||
always the case. That's your call. I personally put uniqueness and
|
|
||||||
memorability over describing the functionality.</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="create-a-pypirc-configuration-file">
|
|
||||||
<h2>Create a .pypirc configuration file</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
13</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="na">[distutils] # this tells distutils what package indexes you can push to</span>
|
|
||||||
<span class="na">index-servers</span> <span class="o">=</span><span class="s"></span>
|
|
||||||
<span class="s"> pypi # the live PyPI</span>
|
|
||||||
<span class="s"> pypitest # test PyPI</span>
|
|
||||||
|
|
||||||
<span class="na">[pypi] # authentication details for live PyPI</span>
|
|
||||||
<span class="na">repository</span> <span class="o">=</span> <span class="s">https://pypi.python.org/pypi</span>
|
|
||||||
<span class="na">username</span> <span class="o">=</span> <span class="s">{ your_username }</span>
|
|
||||||
<span class="na">password</span> <span class="o">=</span> <span class="s">{ your_password } # not necessary</span>
|
|
||||||
|
|
||||||
<span class="na">[pypitest] # authentication details for test PyPI</span>
|
|
||||||
<span class="na">repository</span> <span class="o">=</span> <span class="s">https://testpypi.python.org/pypi</span>
|
|
||||||
<span class="na">username</span> <span class="o">=</span> <span class="s">{ your_username }</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>As you can see, you need to register both in the <a class="reference external" href="https://pypi.python.org/pypi?%3Aaction=register_form">main pypi
|
|
||||||
repository</a> and
|
|
||||||
the <a class="reference external" href="https://testpypi.python.org/pypi?%3Aaction=register_form">testing
|
|
||||||
server</a>.
|
|
||||||
The usernames and passwords might be different, that is up to you!</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="prepare-your-package">
|
|
||||||
<h2>Prepare your package</h2>
|
|
||||||
<p>This should be the structure:</p>
|
|
||||||
<pre class="literal-block">
|
|
||||||
root-dir/ # Any name you want
|
|
||||||
setup.py
|
|
||||||
setup.cfg
|
|
||||||
LICENSE.txt
|
|
||||||
README.md
|
|
||||||
mypackage/
|
|
||||||
__init__.py
|
|
||||||
foo.py
|
|
||||||
bar.py
|
|
||||||
baz.py
|
|
||||||
</pre>
|
|
||||||
<div class="section" id="setup-cfg">
|
|
||||||
<h3>setup.cfg</h3>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[metadata]</span>
|
|
||||||
<span class="na">description-file</span> <span class="o">=</span> <span class="s">README.md</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>The markdown README is the <em>de facto</em> standard in Github, but you can
|
|
||||||
also use rST (reStructuredText), the standard in the python community.</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="setup-py">
|
|
||||||
<h3>setup.py</h3>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">distutils.core</span> <span class="kn">import</span> <span class="n">setup</span>
|
|
||||||
|
|
||||||
<span class="n">setup</span><span class="p">(</span><span class="n">name</span> <span class="o">=</span> <span class="s1">&#39;mypackage&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">packages</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;mypackage&#39;</span><span class="p">],</span> <span class="c1"># this must be the same as the name above</span>
|
|
||||||
<span class="n">version</span> <span class="o">=</span> <span class="s1">&#39;{ version }&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">description</span> <span class="o">=</span> <span class="s1">&#39;{ description }&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">author</span> <span class="o">=</span> <span class="s1">&#39;{ name }&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">email</span> <span class="o">=</span> <span class="s1">&#39;{ email }&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://github.com/{user}/{package}&#39;</span><span class="p">,</span> <span class="c1"># URL to the github repo</span>
|
|
||||||
<span class="n">download</span>\<span class="n">_url</span> <span class="o">=</span> <span class="s1">&#39;https://github.com/{user}/{repo}/tarball/{version}&#39;</span><span class="p">,</span>
|
|
||||||
<span class="n">keywords</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;websockets&#39;</span><span class="p">,</span> <span class="s1">&#39;display&#39;</span><span class="p">,</span> <span class="s1">&#39;d3&#39;</span><span class="p">],</span> <span class="c1"># list of keywords that represent your package</span>
|
|
||||||
<span class="n">classifiers</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">)</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>You might notice that the download_url points to a Github URL. We could
|
|
||||||
host our package anywhere, but Github is a convenient option. To create
|
|
||||||
the tarball and the zip packages, you only need to tag a tag in your
|
|
||||||
repository and push it to github:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git tag <span class="o">{</span>version<span class="o">}</span> -m <span class="s2">&quot;{ Description of this tag/version}&quot;</span>
|
|
||||||
git push --tags origin master
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></div>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="push-to-the-testing-main-pypi-server">
|
|
||||||
<h2>Push to the testing/main pypi server</h2>
|
|
||||||
<p>It is advisable that you try your package on the test repository and fix
|
|
||||||
any problems first. The process is simple:
|
|
||||||
<tt class="docutils literal">python setup.py register <span class="pre">-r</span> {pypitest/pypi} python setup.py sdist upload <span class="pre">-r</span> {pypitest/pypi}</tt></p>
|
|
||||||
<p>If everything went as expected, you can now install your package through
|
|
||||||
pip and browse your package's page. For instance, check my senpy
|
|
||||||
package: <a class="reference external" href="https://pypi.python.org/pypi/senpy">https://pypi.python.org/pypi/senpy</a> <tt class="docutils literal">pip install senpy</tt></p>
|
|
||||||
</div>
|
|
||||||
</content><category term="github"></category><category term="python"></category><category term="pypi"></category></entry><entry><title>Updating EuroLoveMap</title><link href="http://balkian.com/updating-eurolovemap.html" rel="alternate"></link><published>2014-03-27T14:00:00+01:00</published><updated>2014-03-27T14:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2014-03-27:/updating-eurolovemap.html</id><summary type="html"><p>As part of the <a class="reference external" href="http://www.opener-project.org/2013/07/18/opener-hackathon-in-amsterdam/">OpeNER
|
|
||||||
hackathon</a>
|
|
||||||
we decided to build a prototype that would allow us to compare how
|
|
||||||
different countries feel about several topics. We used the OpeNER
|
|
||||||
pipeline to get the sentiment from a set of newspaper articles we
|
|
||||||
gathered from media in several languages. Then we aggregated …</p></summary><content type="html"><p>As part of the <a class="reference external" href="http://www.opener-project.org/2013/07/18/opener-hackathon-in-amsterdam/">OpeNER
|
|
||||||
hackathon</a>
|
|
||||||
we decided to build a prototype that would allow us to compare how
|
|
||||||
different countries feel about several topics. We used the OpeNER
|
|
||||||
pipeline to get the sentiment from a set of newspaper articles we
|
|
||||||
gathered from media in several languages. Then we aggregated those
|
|
||||||
articles by category and country (using the source of the article or the
|
|
||||||
language it was written in), obtaining the &quot;overall feeling&quot; of each
|
|
||||||
country about each topic. Then, we used some fancy JavaScript to make
|
|
||||||
sense out of the raw information.</p>
|
|
||||||
<p>It didn't go too bad, it turns out <a class="reference external" href="http://eurosentiment.eu/wp-content/uploads/2013/07/BOLv9qnCIAAJEek.jpg">we
|
|
||||||
won</a>.</p>
|
|
||||||
<p>Now, it was time for a face-lift. I used this opportunity to play with
|
|
||||||
new technologies and improve it:</p>
|
|
||||||
<ul class="simple">
|
|
||||||
<li>Using Flask, this time using python 3.3 and Bootstrap 3.0</li>
|
|
||||||
<li>Cool HTML5+JS cards (thanks to
|
|
||||||
<a class="reference external" href="http://pastetophone.com">pastetophone</a>)</li>
|
|
||||||
<li>Automatic generation of fake personal data to test the interface</li>
|
|
||||||
<li>Obfuscation of personal emails</li>
|
|
||||||
</ul>
|
|
||||||
<p>The result can be <a class="reference external" href="http://eurolovemap.herokuapp.com/">seen here</a>.</p>
|
|
||||||
<div class="section" id="publishing-a-python-3-app-on-heroku">
|
|
||||||
<h2>Publishing a Python 3 app on Heroku</h2>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>mkvirtualenv -p /usr/bin/python3.3 eurolovemap
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Since Heroku uses python 2.7 by default, we have to tell it which
|
|
||||||
version we want, although it supports python 3.4 as well. I couldn't get
|
|
||||||
python 3.4 working using the
|
|
||||||
<a class="reference external" href="https://launchpad.net/~fkrull/+archive/deadsnakes">deadsnakes</a> ppa,
|
|
||||||
so I used python 3.3 instead, which works fine but is not officially
|
|
||||||
supported. Just create a file named <em>runtime.txt</em> in your project root,
|
|
||||||
with the python version you want to use:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>python-3.3.1
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Don't forget to freeze your dependencies so Heroku can install them:
|
|
||||||
<tt class="docutils literal">bash pip freze &gt; requirements.txt</tt></p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="publishing-personal-emails">
|
|
||||||
<h2>Publishing personal emails</h2>
|
|
||||||
<p>There are really sophisticated and effective ways to obfuscate personal
|
|
||||||
emails so that spammers cannot easily grab yours. However, this time I
|
|
||||||
needed something really simple to hide our emails from the simplest form
|
|
||||||
of crawlers. Most of the team are in academia somehow, so in the end all
|
|
||||||
our emails are available in sites like Google Scholar. Anyway, nobody
|
|
||||||
likes getting spammed so I settled for a custom <a class="reference external" href="http://en.wikipedia.org/wiki/Caesar_cipher">Caesar
|
|
||||||
cipher</a>. Please, don't
|
|
||||||
use it for any serious application if you are concerned about being
|
|
||||||
spammed.</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">blur_email</span><span class="p">(</span><span class="n">email</span><span class="p">):</span>
|
|
||||||
<span class="k">return</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="nb">chr</span><span class="p">(</span><span class="nb">ord</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="mi">5</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">email</span><span class="p">])</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>And this is the client side:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nb">window</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(){</span>
|
|
||||||
<span class="nx">elems</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="s1">&#39;profile-email&#39;</span><span class="p">);</span>
|
|
||||||
<span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">e</span> <span class="k">in</span> <span class="nx">elems</span><span class="p">){</span>
|
|
||||||
<span class="kd">var</span> <span class="nx">blur</span> <span class="o">=</span> <span class="nx">elems</span><span class="p">[</span><span class="nx">e</span><span class="p">].</span><span class="nx">innerHTML</span><span class="p">;</span>
|
|
||||||
<span class="kd">var</span> <span class="nx">email</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span>
|
|
||||||
<span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">s</span> <span class="k">in</span> <span class="nx">blur</span><span class="p">){</span>
|
|
||||||
<span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="nx">blur</span><span class="p">.</span><span class="nx">charCodeAt</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
|
||||||
<span class="nx">email</span> <span class="o">=</span> <span class="nx">email</span><span class="o">+</span><span class="nb">String</span><span class="p">.</span><span class="nx">fromCharCode</span><span class="p">(</span><span class="nx">a</span><span class="o">-</span><span class="mi">5</span><span class="p">);</span>
|
|
||||||
<span class="p">}</span>
|
|
||||||
<span class="nx">elems</span><span class="p">[</span><span class="nx">e</span><span class="p">].</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">email</span><span class="p">;</span>
|
|
||||||
<span class="p">}</span>
|
|
||||||
<span class="p">}</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>Unfortunately, this approach does not hide your email from anyone using
|
|
||||||
<a class="reference external" href="http://phantomjs.org/">PhantomJS</a>,
|
|
||||||
<a class="reference external" href="http://zombie.labnotes.org/">ZombieJS</a> or similar. For that, other
|
|
||||||
approaches like generating a picture with the address would be
|
|
||||||
necessary. Nevertheless, it is overkill for a really simple ad-hoc
|
|
||||||
application with custom formatting and just a bunch of emails that would
|
|
||||||
easily be grabbed manually.</p>
|
|
||||||
</div>
|
|
||||||
<div class="section" id="generation-of-fake-data">
|
|
||||||
<h2>Generation of fake data</h2>
|
|
||||||
<p>To test the contact section of the site, I wanted to populate it with
|
|
||||||
fake data. <a class="reference external" href="https://github.com/joke2k/faker">Fake-Factory</a> is an
|
|
||||||
amazing library that can generate fake data of almost any kind: emails,
|
|
||||||
association names, acronyms... It even lets you localise the results
|
|
||||||
(get Spanish names, for instance) and generate factories for certain
|
|
||||||
classes (à la Django).</p>
|
|
||||||
<p>But I also wanted pictures, enter <a class="reference external" href="http://lorempixel.com/">Lorem
|
|
||||||
Pixel</a>. With its API you can generate
|
|
||||||
pictures of almost any size, for different topics (e.g. nightlife,
|
|
||||||
people) and with a custom text. You can even use an index, so it will
|
|
||||||
always show the same picture.</p>
|
|
||||||
<p>For instance, the picture below is served through Lorem Pixel.</p>
|
|
||||||
<div class="figure">
|
|
||||||
<img alt="This picture is generated with LoremIpsum" src="http://lorempixel.com/400/200/nightlife/" />
|
|
||||||
</div>
|
|
||||||
<p>By the way, if you only want cat pictures, take a look at
|
|
||||||
<a class="reference external" href="http://placekitten.com/">Placekitten</a>. And for NSFW text, there's
|
|
||||||
the <a class="reference external" href="http://slipsum.com/">Samuel L. Jackson Ipsum</a></p>
|
|
||||||
</div>
|
|
||||||
</content><category term="javascript"></category><category term="python"></category><category term="heroku"></category></entry><entry><title>Remove git files with globbing</title><link href="http://balkian.com/remove-git-files-with-globbing.html" rel="alternate"></link><published>2013-08-22T23:14:00+02:00</published><updated>2013-08-22T23:14:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2013-08-22:/remove-git-files-with-globbing.html</id><summary type="html"><p>A simple trick. If you want to remove all the '.swp' files from a git
|
|
||||||
repository, just use:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></summary><content type="html"><p>A simple trick. If you want to remove all the '.swp' files from a git
|
|
||||||
repository, just use:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table></content><category term="git"></category></entry><entry><title>Creating my web</title><link href="http://balkian.com/creating-my-web.html" rel="alternate"></link><published>2013-08-22T14:14:22+02:00</published><updated>2013-08-22T14:14:22+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2013-08-22:/creating-my-web.html</id><summary type="html"><p>Finally, I've decided to set up a decent personal page. I have settled
|
|
||||||
for github-pages because I like the idea of keeping my site in a
|
|
||||||
repository and having someone else host and deploy it for me. The site
|
|
||||||
will be really simple, mostly static files. Thanks to Github,
|
|
||||||
<a class="reference external" href="http://jekyllrb.com">Jekyll …</a></p></summary><content type="html"><p>Finally, I've decided to set up a decent personal page. I have settled
|
|
||||||
for github-pages because I like the idea of keeping my site in a
|
|
||||||
repository and having someone else host and deploy it for me. The site
|
|
||||||
will be really simple, mostly static files. Thanks to Github,
|
|
||||||
<a class="reference external" href="http://jekyllrb.com">Jekyll</a> will automatically generate static
|
|
||||||
pages for my posts every time I commit anything new to this repository.</p>
|
|
||||||
<p>But Jekyll can be used independently, so if I ever choose to host the
|
|
||||||
site myself, I can do it quite easily. Another thing that I liked about
|
|
||||||
this approach is that the generated html files can be used in the
|
|
||||||
future, and I will not need Jekyll to serve it. Jekyll is really simple
|
|
||||||
and most of the things are written in plain html. That means that
|
|
||||||
everything could be easily reused if I ever choose to change to another
|
|
||||||
blogging framework (e.g. pelical). But, for the time being, I like the
|
|
||||||
fact that Github takes care of the compilation as well, so I can simply
|
|
||||||
modify or add files through the web interface should I need to.</p>
|
|
||||||
<p>I hadn't played with HTML and CSS for a while now, so I also wanted to
|
|
||||||
use this site as a playground. At some point, I realised I was doing
|
|
||||||
mostly everything in plain HTML and CSS, and decided to keep it like
|
|
||||||
that for as long as possible. As of this writing, I haven't included any
|
|
||||||
Javascript code in the page. Probably I will use some to add my
|
|
||||||
<a class="reference external" href="http://gist.github.com/balkian">gists</a> and
|
|
||||||
<a class="reference external" href="http://github.com/balkian">repositories</a>, but we will see about
|
|
||||||
that.</p>
|
|
||||||
<p>I think the code speaks for itself, so you can check out <a class="reference external" href="http://github.com/balkian/balkian.github.com">my repository
|
|
||||||
on Github</a>. You can
|
|
||||||
clone and deploy it easily like this:</p>
|
|
||||||
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
|
||||||
2
|
|
||||||
3</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git clone
|
|
||||||
https://github.com/balkian/balkian.github.com <span class="nb">cd</span> balkian.github.com
|
|
||||||
jekyll serve -w
|
|
||||||
</pre></div>
|
|
||||||
</td></tr></table><p>I will keep updating this post with information about:</p>
|
|
||||||
<ul class="simple">
|
|
||||||
<li>Some Jekyll plugins that might be useful</li>
|
|
||||||
<li>What CSS tricks I learnt</li>
|
|
||||||
<li>The webfonts I used</li>
|
|
||||||
<li>The badge on the left side of the page</li>
|
|
||||||
</ul>
|
|
||||||
</content><category term="starters"></category><category term="javascript"></category><category term="ruby"></category><category term="github"></category><category term="git"></category></entry></feed>
|
|
34
font-awesome/LICENSE.txt
Normal file
34
font-awesome/LICENSE.txt
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
Font Awesome Free License
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||||
|
commercial projects, open source projects, or really almost whatever you want.
|
||||||
|
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||||
|
|
||||||
|
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||||
|
packaged as SVG and JS file types.
|
||||||
|
|
||||||
|
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
|
||||||
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||||
|
packaged as web and desktop font files.
|
||||||
|
|
||||||
|
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||||
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||||
|
non-icon files.
|
||||||
|
|
||||||
|
# Attribution
|
||||||
|
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||||
|
Awesome Free files already contain embedded comments with sufficient
|
||||||
|
attribution, so you shouldn't need to do anything additional when using these
|
||||||
|
files normally.
|
||||||
|
|
||||||
|
We've kept attribution comments terse, so we ask that you do not actively work
|
||||||
|
to remove them from files, especially code. They're a great way for folks to
|
||||||
|
learn about Font Awesome.
|
||||||
|
|
||||||
|
# Brand Icons
|
||||||
|
All brand icons are trademarks of their respective owners. The use of these
|
||||||
|
trademarks does not indicate endorsement of the trademark holder by Font
|
||||||
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
|
to represent the company, product, or service to which they refer.**
|
4222
font-awesome/css/all.css
vendored
Normal file
4222
font-awesome/css/all.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
font-awesome/css/all.min.css
vendored
Normal file
1
font-awesome/css/all.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
9
font-awesome/css/brands.css
vendored
Normal file
9
font-awesome/css/brands.css
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: url("../webfonts/fa-brands-400.eot");
|
||||||
|
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
|
||||||
|
|
||||||
|
.fab {
|
||||||
|
font-family: 'Font Awesome 5 Brands'; }
|
1
font-awesome/css/brands.min.css
vendored
Normal file
1
font-awesome/css/brands.min.css
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}
|
4192
font-awesome/css/fontawesome.css
vendored
Normal file
4192
font-awesome/css/fontawesome.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
font-awesome/css/fontawesome.min.css
vendored
Normal file
1
font-awesome/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
10
font-awesome/css/regular.css
vendored
Normal file
10
font-awesome/css/regular.css
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url("../webfonts/fa-regular-400.eot");
|
||||||
|
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
|
||||||
|
|
||||||
|
.far {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-weight: 400; }
|
1
font-awesome/css/regular.min.css
vendored
Normal file
1
font-awesome/css/regular.min.css
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}
|
11
font-awesome/css/solid.css
vendored
Normal file
11
font-awesome/css/solid.css
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
src: url("../webfonts/fa-solid-900.eot");
|
||||||
|
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
|
||||||
|
|
||||||
|
.fa,
|
||||||
|
.fas {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-weight: 900; }
|
1
font-awesome/css/solid.min.css
vendored
Normal file
1
font-awesome/css/solid.min.css
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}
|
341
font-awesome/css/svg-with-js.css
vendored
Normal file
341
font-awesome/css/svg-with-js.css
vendored
Normal file
@ -0,0 +1,341 @@
|
|||||||
|
svg:not(:root).svg-inline--fa {
|
||||||
|
overflow: visible; }
|
||||||
|
|
||||||
|
.svg-inline--fa {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: inherit;
|
||||||
|
height: 1em;
|
||||||
|
overflow: visible;
|
||||||
|
vertical-align: -.125em; }
|
||||||
|
.svg-inline--fa.fa-lg {
|
||||||
|
vertical-align: -.225em; }
|
||||||
|
.svg-inline--fa.fa-w-1 {
|
||||||
|
width: 0.0625em; }
|
||||||
|
.svg-inline--fa.fa-w-2 {
|
||||||
|
width: 0.125em; }
|
||||||
|
.svg-inline--fa.fa-w-3 {
|
||||||
|
width: 0.1875em; }
|
||||||
|
.svg-inline--fa.fa-w-4 {
|
||||||
|
width: 0.25em; }
|
||||||
|
.svg-inline--fa.fa-w-5 {
|
||||||
|
width: 0.3125em; }
|
||||||
|
.svg-inline--fa.fa-w-6 {
|
||||||
|
width: 0.375em; }
|
||||||
|
.svg-inline--fa.fa-w-7 {
|
||||||
|
width: 0.4375em; }
|
||||||
|
.svg-inline--fa.fa-w-8 {
|
||||||
|
width: 0.5em; }
|
||||||
|
.svg-inline--fa.fa-w-9 {
|
||||||
|
width: 0.5625em; }
|
||||||
|
.svg-inline--fa.fa-w-10 {
|
||||||
|
width: 0.625em; }
|
||||||
|
.svg-inline--fa.fa-w-11 {
|
||||||
|
width: 0.6875em; }
|
||||||
|
.svg-inline--fa.fa-w-12 {
|
||||||
|
width: 0.75em; }
|
||||||
|
.svg-inline--fa.fa-w-13 {
|
||||||
|
width: 0.8125em; }
|
||||||
|
.svg-inline--fa.fa-w-14 {
|
||||||
|
width: 0.875em; }
|
||||||
|
.svg-inline--fa.fa-w-15 {
|
||||||
|
width: 0.9375em; }
|
||||||
|
.svg-inline--fa.fa-w-16 {
|
||||||
|
width: 1em; }
|
||||||
|
.svg-inline--fa.fa-w-17 {
|
||||||
|
width: 1.0625em; }
|
||||||
|
.svg-inline--fa.fa-w-18 {
|
||||||
|
width: 1.125em; }
|
||||||
|
.svg-inline--fa.fa-w-19 {
|
||||||
|
width: 1.1875em; }
|
||||||
|
.svg-inline--fa.fa-w-20 {
|
||||||
|
width: 1.25em; }
|
||||||
|
.svg-inline--fa.fa-pull-left {
|
||||||
|
margin-right: .3em;
|
||||||
|
width: auto; }
|
||||||
|
.svg-inline--fa.fa-pull-right {
|
||||||
|
margin-left: .3em;
|
||||||
|
width: auto; }
|
||||||
|
.svg-inline--fa.fa-border {
|
||||||
|
height: 1.5em; }
|
||||||
|
.svg-inline--fa.fa-li {
|
||||||
|
width: 2em; }
|
||||||
|
.svg-inline--fa.fa-fw {
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.fa-layers svg.svg-inline--fa {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0; }
|
||||||
|
|
||||||
|
.fa-layers {
|
||||||
|
display: inline-block;
|
||||||
|
height: 1em;
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: -.125em;
|
||||||
|
width: 1em; }
|
||||||
|
.fa-layers svg.svg-inline--fa {
|
||||||
|
-webkit-transform-origin: center center;
|
||||||
|
transform-origin: center center; }
|
||||||
|
|
||||||
|
.fa-layers-text, .fa-layers-counter {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
.fa-layers-text {
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
-webkit-transform-origin: center center;
|
||||||
|
transform-origin: center center; }
|
||||||
|
|
||||||
|
.fa-layers-counter {
|
||||||
|
background-color: #ff253a;
|
||||||
|
border-radius: 1em;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #fff;
|
||||||
|
height: 1.5em;
|
||||||
|
line-height: 1;
|
||||||
|
max-width: 5em;
|
||||||
|
min-width: 1.5em;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: .25em;
|
||||||
|
right: 0;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
top: 0;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: top right;
|
||||||
|
transform-origin: top right; }
|
||||||
|
|
||||||
|
.fa-layers-bottom-right {
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
top: auto;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: bottom right;
|
||||||
|
transform-origin: bottom right; }
|
||||||
|
|
||||||
|
.fa-layers-bottom-left {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
top: auto;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: bottom left;
|
||||||
|
transform-origin: bottom left; }
|
||||||
|
|
||||||
|
.fa-layers-top-right {
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: top right;
|
||||||
|
transform-origin: top right; }
|
||||||
|
|
||||||
|
.fa-layers-top-left {
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
top: 0;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: top left;
|
||||||
|
transform-origin: top left; }
|
||||||
|
|
||||||
|
.fa-lg {
|
||||||
|
font-size: 1.33333em;
|
||||||
|
line-height: 0.75em;
|
||||||
|
vertical-align: -.0667em; }
|
||||||
|
|
||||||
|
.fa-xs {
|
||||||
|
font-size: .75em; }
|
||||||
|
|
||||||
|
.fa-sm {
|
||||||
|
font-size: .875em; }
|
||||||
|
|
||||||
|
.fa-1x {
|
||||||
|
font-size: 1em; }
|
||||||
|
|
||||||
|
.fa-2x {
|
||||||
|
font-size: 2em; }
|
||||||
|
|
||||||
|
.fa-3x {
|
||||||
|
font-size: 3em; }
|
||||||
|
|
||||||
|
.fa-4x {
|
||||||
|
font-size: 4em; }
|
||||||
|
|
||||||
|
.fa-5x {
|
||||||
|
font-size: 5em; }
|
||||||
|
|
||||||
|
.fa-6x {
|
||||||
|
font-size: 6em; }
|
||||||
|
|
||||||
|
.fa-7x {
|
||||||
|
font-size: 7em; }
|
||||||
|
|
||||||
|
.fa-8x {
|
||||||
|
font-size: 8em; }
|
||||||
|
|
||||||
|
.fa-9x {
|
||||||
|
font-size: 9em; }
|
||||||
|
|
||||||
|
.fa-10x {
|
||||||
|
font-size: 10em; }
|
||||||
|
|
||||||
|
.fa-fw {
|
||||||
|
text-align: center;
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.fa-ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-left: 2.5em;
|
||||||
|
padding-left: 0; }
|
||||||
|
.fa-ul > li {
|
||||||
|
position: relative; }
|
||||||
|
|
||||||
|
.fa-li {
|
||||||
|
left: -2em;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: 2em;
|
||||||
|
line-height: inherit; }
|
||||||
|
|
||||||
|
.fa-border {
|
||||||
|
border: solid 0.08em #eee;
|
||||||
|
border-radius: .1em;
|
||||||
|
padding: .2em .25em .15em; }
|
||||||
|
|
||||||
|
.fa-pull-left {
|
||||||
|
float: left; }
|
||||||
|
|
||||||
|
.fa-pull-right {
|
||||||
|
float: right; }
|
||||||
|
|
||||||
|
.fa.fa-pull-left,
|
||||||
|
.fas.fa-pull-left,
|
||||||
|
.far.fa-pull-left,
|
||||||
|
.fal.fa-pull-left,
|
||||||
|
.fab.fa-pull-left {
|
||||||
|
margin-right: .3em; }
|
||||||
|
|
||||||
|
.fa.fa-pull-right,
|
||||||
|
.fas.fa-pull-right,
|
||||||
|
.far.fa-pull-right,
|
||||||
|
.fal.fa-pull-right,
|
||||||
|
.fab.fa-pull-right {
|
||||||
|
margin-left: .3em; }
|
||||||
|
|
||||||
|
.fa-spin {
|
||||||
|
-webkit-animation: fa-spin 2s infinite linear;
|
||||||
|
animation: fa-spin 2s infinite linear; }
|
||||||
|
|
||||||
|
.fa-pulse {
|
||||||
|
-webkit-animation: fa-spin 1s infinite steps(8);
|
||||||
|
animation: fa-spin 1s infinite steps(8); }
|
||||||
|
|
||||||
|
@-webkit-keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg); }
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg); } }
|
||||||
|
|
||||||
|
@keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg); }
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg); } }
|
||||||
|
|
||||||
|
.fa-rotate-90 {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
|
||||||
|
-webkit-transform: rotate(90deg);
|
||||||
|
transform: rotate(90deg); }
|
||||||
|
|
||||||
|
.fa-rotate-180 {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
|
||||||
|
-webkit-transform: rotate(180deg);
|
||||||
|
transform: rotate(180deg); }
|
||||||
|
|
||||||
|
.fa-rotate-270 {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
|
||||||
|
-webkit-transform: rotate(270deg);
|
||||||
|
transform: rotate(270deg); }
|
||||||
|
|
||||||
|
.fa-flip-horizontal {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
|
||||||
|
-webkit-transform: scale(-1, 1);
|
||||||
|
transform: scale(-1, 1); }
|
||||||
|
|
||||||
|
.fa-flip-vertical {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||||
|
-webkit-transform: scale(1, -1);
|
||||||
|
transform: scale(1, -1); }
|
||||||
|
|
||||||
|
.fa-flip-horizontal.fa-flip-vertical {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||||
|
-webkit-transform: scale(-1, -1);
|
||||||
|
transform: scale(-1, -1); }
|
||||||
|
|
||||||
|
:root .fa-rotate-90,
|
||||||
|
:root .fa-rotate-180,
|
||||||
|
:root .fa-rotate-270,
|
||||||
|
:root .fa-flip-horizontal,
|
||||||
|
:root .fa-flip-vertical {
|
||||||
|
-webkit-filter: none;
|
||||||
|
filter: none; }
|
||||||
|
|
||||||
|
.fa-stack {
|
||||||
|
display: inline-block;
|
||||||
|
height: 2em;
|
||||||
|
position: relative;
|
||||||
|
width: 2.5em; }
|
||||||
|
|
||||||
|
.fa-stack-1x,
|
||||||
|
.fa-stack-2x {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0; }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-stack-1x {
|
||||||
|
height: 1em;
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-stack-2x {
|
||||||
|
height: 2em;
|
||||||
|
width: 2.5em; }
|
||||||
|
|
||||||
|
.fa-inverse {
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.sr-only {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px; }
|
||||||
|
|
||||||
|
.sr-only-focusable:active, .sr-only-focusable:focus {
|
||||||
|
clip: auto;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
overflow: visible;
|
||||||
|
position: static;
|
||||||
|
width: auto; }
|
1
font-awesome/css/svg-with-js.min.css
vendored
Normal file
1
font-awesome/css/svg-with-js.min.css
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}
|
2162
font-awesome/css/v4-shims.css
vendored
Normal file
2162
font-awesome/css/v4-shims.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
font-awesome/css/v4-shims.min.css
vendored
Normal file
1
font-awesome/css/v4-shims.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
3843
font-awesome/js/all.js
Normal file
3843
font-awesome/js/all.js
Normal file
File diff suppressed because one or more lines are too long
1
font-awesome/js/all.min.js
vendored
Normal file
1
font-awesome/js/all.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
536
font-awesome/js/brands.js
Normal file
536
font-awesome/js/brands.js
Normal file
File diff suppressed because one or more lines are too long
1
font-awesome/js/brands.min.js
vendored
Normal file
1
font-awesome/js/brands.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1997
font-awesome/js/fontawesome.js
Normal file
1997
font-awesome/js/fontawesome.js
Normal file
File diff suppressed because one or more lines are too long
1
font-awesome/js/fontawesome.min.js
vendored
Normal file
1
font-awesome/js/fontawesome.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
273
font-awesome/js/regular.js
Normal file
273
font-awesome/js/regular.js
Normal file
@ -0,0 +1,273 @@
|
|||||||
|
(function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var _WINDOW = {};
|
||||||
|
var _DOCUMENT = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (typeof window !== 'undefined') _WINDOW = window;
|
||||||
|
if (typeof document !== 'undefined') _DOCUMENT = document;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
var _ref = _WINDOW.navigator || {},
|
||||||
|
_ref$userAgent = _ref.userAgent,
|
||||||
|
userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;
|
||||||
|
|
||||||
|
var WINDOW = _WINDOW;
|
||||||
|
var DOCUMENT = _DOCUMENT;
|
||||||
|
var IS_BROWSER = !!WINDOW.document;
|
||||||
|
var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
|
||||||
|
var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
|
||||||
|
|
||||||
|
var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
|
||||||
|
var PRODUCTION = function () {
|
||||||
|
try {
|
||||||
|
return "production" === 'production';
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}();
|
||||||
|
|
||||||
|
function bunker(fn) {
|
||||||
|
try {
|
||||||
|
fn();
|
||||||
|
} catch (e) {
|
||||||
|
if (!PRODUCTION) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) {
|
||||||
|
if (key in obj) {
|
||||||
|
Object.defineProperty(obj, key, {
|
||||||
|
value: value,
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
obj[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _objectSpread(target) {
|
||||||
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
|
var source = arguments[i] != null ? arguments[i] : {};
|
||||||
|
var ownKeys = Object.keys(source);
|
||||||
|
|
||||||
|
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||||
|
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||||||
|
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
ownKeys.forEach(function (key) {
|
||||||
|
_defineProperty(target, key, source[key]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
var w = WINDOW || {};
|
||||||
|
if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
|
||||||
|
if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
|
||||||
|
if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
|
||||||
|
if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
|
||||||
|
var namespace = w[NAMESPACE_IDENTIFIER];
|
||||||
|
|
||||||
|
function define(prefix, icons) {
|
||||||
|
var normalized = Object.keys(icons).reduce(function (acc, iconName) {
|
||||||
|
var icon = icons[iconName];
|
||||||
|
var expanded = !!icon.icon;
|
||||||
|
|
||||||
|
if (expanded) {
|
||||||
|
acc[icon.iconName] = icon.icon;
|
||||||
|
} else {
|
||||||
|
acc[iconName] = icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
|
|
||||||
|
if (typeof namespace.hooks.addPack === 'function') {
|
||||||
|
namespace.hooks.addPack(prefix, normalized);
|
||||||
|
} else {
|
||||||
|
namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
|
||||||
|
* of new styles we needed to differentiate between them. Prefix `fa` is now an alias
|
||||||
|
* for `fas` so we'll easy the upgrade process for our users by automatically defining
|
||||||
|
* this as well.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
if (prefix === 'fas') {
|
||||||
|
define('fa', icons);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var icons = {
|
||||||
|
"address-book": [448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],
|
||||||
|
"address-card": [576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"],
|
||||||
|
"angry": [496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"],
|
||||||
|
"arrow-alt-circle-down": [512, 512, [], "f358", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"],
|
||||||
|
"arrow-alt-circle-left": [512, 512, [], "f359", "M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"],
|
||||||
|
"arrow-alt-circle-right": [512, 512, [], "f35a", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"],
|
||||||
|
"arrow-alt-circle-up": [512, 512, [], "f35b", "M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"],
|
||||||
|
"bell": [448, 512, [], "f0f3", "M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"],
|
||||||
|
"bell-slash": [640, 512, [], "f1f6", "M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],
|
||||||
|
"bookmark": [384, 512, [], "f02e", "M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"],
|
||||||
|
"building": [448, 512, [], "f1ad", "M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"],
|
||||||
|
"calendar": [448, 512, [], "f133", "M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"],
|
||||||
|
"calendar-alt": [448, 512, [], "f073", "M400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm0 96v80h-96v-80h96zM176 352v-80h96v80h-96zm96 32v80h-96v-80h96zm-128-32H48v-80h96v80zm32-112v-80h96v80h-96zm128 32h96v80h-96v-80zM144 160v80H48v-80h96zM48 458v-74h96v80H54c-3.3 0-6-2.7-6-6zm346 6h-90v-80h96v74c0 3.3-2.7 6-6 6z"],
|
||||||
|
"calendar-check": [448, 512, [], "f274", "M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"],
|
||||||
|
"calendar-minus": [448, 512, [], "f272", "M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||||
|
"calendar-plus": [448, 512, [], "f271", "M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||||
|
"calendar-times": [448, 512, [], "f273", "M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||||
|
"caret-square-down": [448, 512, [], "f150", "M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||||
|
"caret-square-left": [448, 512, [], "f191", "M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||||
|
"caret-square-right": [448, 512, [], "f152", "M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||||
|
"caret-square-up": [448, 512, [], "f151", "M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||||
|
"chart-bar": [512, 512, [], "f080", "M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"],
|
||||||
|
"check-circle": [512, 512, [], "f058", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"],
|
||||||
|
"check-square": [448, 512, [], "f14a", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"],
|
||||||
|
"circle": [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"],
|
||||||
|
"clipboard": [384, 512, [], "f328", "M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24"],
|
||||||
|
"clock": [512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"],
|
||||||
|
"clone": [512, 512, [], "f24d", "M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"],
|
||||||
|
"closed-captioning": [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"],
|
||||||
|
"comment": [512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],
|
||||||
|
"comment-alt": [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"],
|
||||||
|
"comment-dots": [512, 512, [], "f4ad", "M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],
|
||||||
|
"comments": [576, 512, [], "f086", "M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"],
|
||||||
|
"compass": [496, 512, [], "f14e", "M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],
|
||||||
|
"copy": [448, 512, [], "f0c5", "M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"],
|
||||||
|
"copyright": [512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"],
|
||||||
|
"credit-card": [576, 512, [], "f09d", "M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"],
|
||||||
|
"dizzy": [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"],
|
||||||
|
"dot-circle": [512, 512, [], "f192", "M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"],
|
||||||
|
"edit": [576, 512, [], "f044", "M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"],
|
||||||
|
"envelope": [512, 512, [], "f0e0", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"],
|
||||||
|
"envelope-open": [512, 512, [], "f2b6", "M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"],
|
||||||
|
"eye": [576, 512, [], "f06e", "M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"],
|
||||||
|
"eye-slash": [576, 512, [], "f070", "M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"],
|
||||||
|
"file": [384, 512, [], "f15b", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"],
|
||||||
|
"file-alt": [384, 512, [], "f15c", "M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"],
|
||||||
|
"file-archive": [384, 512, [], "f1c6", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z"],
|
||||||
|
"file-audio": [384, 512, [], "f1c7", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"],
|
||||||
|
"file-code": [384, 512, [], "f1c9", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z"],
|
||||||
|
"file-excel": [384, 512, [], "f1c3", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"],
|
||||||
|
"file-image": [384, 512, [], "f1c5", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"],
|
||||||
|
"file-pdf": [384, 512, [], "f1c1", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"],
|
||||||
|
"file-powerpoint": [384, 512, [], "f1c4", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"],
|
||||||
|
"file-video": [384, 512, [], "f1c8", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"],
|
||||||
|
"file-word": [384, 512, [], "f1c2", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"],
|
||||||
|
"flag": [512, 512, [], "f024", "M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"],
|
||||||
|
"flushed": [496, 512, [], "f579", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
|
||||||
|
"folder": [512, 512, [], "f07b", "M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"],
|
||||||
|
"folder-open": [576, 512, [], "f07c", "M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z"],
|
||||||
|
"font-awesome-logo-full": [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],
|
||||||
|
"frown": [496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"],
|
||||||
|
"frown-open": [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"],
|
||||||
|
"futbol": [496, 512, [], "f1e3", "M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"],
|
||||||
|
"gem": [576, 512, [], "f3a5", "M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"],
|
||||||
|
"grimace": [496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"],
|
||||||
|
"grin": [496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"],
|
||||||
|
"grin-alt": [496, 512, [], "f581", "M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"],
|
||||||
|
"grin-beam": [496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"],
|
||||||
|
"grin-beam-sweat": [496, 512, [], "f583", "M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],
|
||||||
|
"grin-hearts": [496, 512, [], "f584", "M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"],
|
||||||
|
"grin-squint": [496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"],
|
||||||
|
"grin-squint-tears": [512, 512, [], "f586", "M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"],
|
||||||
|
"grin-stars": [496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"],
|
||||||
|
"grin-tears": [640, 512, [], "f588", "M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],
|
||||||
|
"grin-tongue": [496, 512, [], "f589", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
|
||||||
|
"grin-tongue-squint": [496, 512, [], "f58a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"],
|
||||||
|
"grin-tongue-wink": [496, 512, [], "f58b", "M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"],
|
||||||
|
"grin-wink": [496, 512, [], "f58c", "M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],
|
||||||
|
"hand-lizard": [576, 512, [], "f258", "M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"],
|
||||||
|
"hand-paper": [448, 512, [], "f256", "M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"],
|
||||||
|
"hand-peace": [448, 512, [], "f25b", "M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"],
|
||||||
|
"hand-point-down": [448, 512, [], "f0a7", "M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"],
|
||||||
|
"hand-point-left": [512, 512, [], "f0a5", "M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],
|
||||||
|
"hand-point-right": [512, 512, [], "f0a4", "M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],
|
||||||
|
"hand-point-up": [448, 512, [], "f0a6", "M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],
|
||||||
|
"hand-pointer": [448, 512, [], "f25a", "M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"],
|
||||||
|
"hand-rock": [512, 512, [], "f255", "M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"],
|
||||||
|
"hand-scissors": [512, 512, [], "f257", "M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"],
|
||||||
|
"hand-spock": [512, 512, [], "f259", "M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z"],
|
||||||
|
"handshake": [640, 512, [], "f2b5", "M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"],
|
||||||
|
"hdd": [576, 512, [], "f0a0", "M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"],
|
||||||
|
"heart": [512, 512, [], "f004", "M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"],
|
||||||
|
"hospital": [448, 512, [], "f0f8", "M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"],
|
||||||
|
"hourglass": [384, 512, [], "f254", "M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"],
|
||||||
|
"id-badge": [384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],
|
||||||
|
"id-card": [576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],
|
||||||
|
"image": [512, 512, [], "f03e", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"],
|
||||||
|
"images": [576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"],
|
||||||
|
"keyboard": [576, 512, [], "f11c", "M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"],
|
||||||
|
"kiss": [496, 512, [], "f596", "M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
|
||||||
|
"kiss-beam": [496, 512, [], "f597", "M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"],
|
||||||
|
"kiss-wink-heart": [504, 512, [], "f598", "M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"],
|
||||||
|
"laugh": [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
|
||||||
|
"laugh-beam": [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
|
||||||
|
"laugh-squint": [496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
|
||||||
|
"laugh-wink": [496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
|
||||||
|
"lemon": [512, 512, [], "f094", "M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"],
|
||||||
|
"life-ring": [512, 512, [], "f1cd", "M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"],
|
||||||
|
"lightbulb": [352, 512, [], "f0eb", "M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"],
|
||||||
|
"list-alt": [512, 512, [], "f022", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"],
|
||||||
|
"map": [576, 512, [], "f279", "M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"],
|
||||||
|
"meh": [496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
|
||||||
|
"meh-blank": [496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
|
||||||
|
"meh-rolling-eyes": [496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
|
||||||
|
"minus-square": [448, 512, [], "f146", "M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||||
|
"money-bill-alt": [640, 512, [], "f3d1", "M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"],
|
||||||
|
"moon": [512, 512, [], "f186", "M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"],
|
||||||
|
"newspaper": [576, 512, [], "f1ea", "M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"],
|
||||||
|
"object-group": [512, 512, [], "f247", "M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"],
|
||||||
|
"object-ungroup": [576, 512, [], "f248", "M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"],
|
||||||
|
"paper-plane": [512, 512, [], "f1d8", "M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"],
|
||||||
|
"pause-circle": [512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"],
|
||||||
|
"play-circle": [512, 512, [], "f144", "M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"],
|
||||||
|
"plus-square": [448, 512, [], "f0fe", "M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||||
|
"question-circle": [512, 512, [], "f059", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"],
|
||||||
|
"registered": [512, 512, [], "f25d", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"],
|
||||||
|
"sad-cry": [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"],
|
||||||
|
"sad-tear": [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"],
|
||||||
|
"save": [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"],
|
||||||
|
"share-square": [576, 512, [], "f14d", "M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"],
|
||||||
|
"smile": [496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"],
|
||||||
|
"smile-beam": [496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"],
|
||||||
|
"smile-wink": [496, 512, [], "f4da", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"],
|
||||||
|
"snowflake": [448, 512, [], "f2dc", "M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z"],
|
||||||
|
"square": [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"],
|
||||||
|
"star": [576, 512, [], "f005", "M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"],
|
||||||
|
"star-half": [576, 512, [], "f089", "M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"],
|
||||||
|
"sticky-note": [448, 512, [], "f249", "M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"],
|
||||||
|
"stop-circle": [512, 512, [], "f28d", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"],
|
||||||
|
"sun": [512, 512, [], "f185", "M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z"],
|
||||||
|
"surprise": [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
|
||||||
|
"thumbs-down": [512, 512, [], "f165", "M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"],
|
||||||
|
"thumbs-up": [512, 512, [], "f164", "M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],
|
||||||
|
"times-circle": [512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"],
|
||||||
|
"tired": [496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"],
|
||||||
|
"trash-alt": [448, 512, [], "f2ed", "M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z"],
|
||||||
|
"user": [448, 512, [], "f007", "M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"],
|
||||||
|
"user-circle": [496, 512, [], "f2bd", "M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"],
|
||||||
|
"window-close": [512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"],
|
||||||
|
"window-maximize": [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"],
|
||||||
|
"window-minimize": [512, 512, [], "f2d1", "M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"],
|
||||||
|
"window-restore": [512, 512, [], "f2d2", "M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"]
|
||||||
|
};
|
||||||
|
|
||||||
|
bunker(function () {
|
||||||
|
define('far', icons);
|
||||||
|
});
|
||||||
|
|
||||||
|
}());
|
1
font-awesome/js/regular.min.js
vendored
Normal file
1
font-awesome/js/regular.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1037
font-awesome/js/solid.js
Normal file
1037
font-awesome/js/solid.js
Normal file
File diff suppressed because it is too large
Load Diff
1
font-awesome/js/solid.min.js
vendored
Normal file
1
font-awesome/js/solid.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
64
font-awesome/js/v4-shims.js
Normal file
64
font-awesome/js/v4-shims.js
Normal file
File diff suppressed because one or more lines are too long
1
font-awesome/js/v4-shims.min.js
vendored
Normal file
1
font-awesome/js/v4-shims.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
19
font-awesome/less/_animated.less
vendored
Normal file
19
font-awesome/less/_animated.less
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// Animated Icons
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-spin {
|
||||||
|
animation: fa-spin 2s infinite linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-pulse {
|
||||||
|
animation: fa-spin 1s infinite steps(8);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
@ -2,24 +2,15 @@
|
|||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
.@{fa-css-prefix}-border {
|
.@{fa-css-prefix}-border {
|
||||||
padding: .2em .25em .15em;
|
|
||||||
border: solid .08em @fa-border-color;
|
|
||||||
border-radius: .1em;
|
border-radius: .1em;
|
||||||
|
border: solid .08em @fa-border-color;
|
||||||
|
padding: .2em .25em .15em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{fa-css-prefix}-pull-left { float: left; }
|
.@{fa-css-prefix}-pull-left { float: left; }
|
||||||
.@{fa-css-prefix}-pull-right { float: right; }
|
.@{fa-css-prefix}-pull-right { float: right; }
|
||||||
|
|
||||||
.@{fa-css-prefix} {
|
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
|
||||||
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
|
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||||
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
|
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Deprecated as of 4.4.0 */
|
|
||||||
.pull-right { float: right; }
|
|
||||||
.pull-left { float: left; }
|
|
||||||
|
|
||||||
.@{fa-css-prefix} {
|
|
||||||
&.pull-left { margin-right: .3em; }
|
|
||||||
&.pull-right { margin-left: .3em; }
|
|
||||||
}
|
|
12
font-awesome/less/_core.less
vendored
Normal file
12
font-awesome/less/_core.less
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// Base Class Definition
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
display: inline-block;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
text-rendering: auto;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
// Fixed Width Icons
|
// Fixed Width Icons
|
||||||
// -------------------------
|
// -------------------------
|
||||||
.@{fa-css-prefix}-fw {
|
.@{fa-css-prefix}-fw {
|
||||||
width: (18em / 14);
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
width: (20em / 16);
|
||||||
}
|
}
|
1333
font-awesome/less/_icons.less
vendored
Normal file
1333
font-awesome/less/_icons.less
vendored
Normal file
File diff suppressed because it is too large
Load Diff
27
font-awesome/less/_larger.less
vendored
Normal file
27
font-awesome/less/_larger.less
vendored
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// Icon Sizes
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.larger(@factor) when (@factor > 0) {
|
||||||
|
.larger((@factor - 1));
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-@{factor}x {
|
||||||
|
font-size: (@factor * 1em);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* makes the font 33% larger relative to the icon container */
|
||||||
|
.@{fa-css-prefix}-lg {
|
||||||
|
font-size: (4em / 3);
|
||||||
|
line-height: (3em / 4);
|
||||||
|
vertical-align: -.0667em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-xs {
|
||||||
|
font-size: .75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-sm {
|
||||||
|
font-size: .875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.larger(10);
|
@ -2,18 +2,17 @@
|
|||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
.@{fa-css-prefix}-ul {
|
.@{fa-css-prefix}-ul {
|
||||||
padding-left: 0;
|
|
||||||
margin-left: @fa-li-width;
|
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
|
margin-left: @fa-li-width * 5/4;
|
||||||
|
padding-left: 0;
|
||||||
|
|
||||||
> li { position: relative; }
|
> li { position: relative; }
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{fa-css-prefix}-li {
|
.@{fa-css-prefix}-li {
|
||||||
position: absolute;
|
|
||||||
left: -@fa-li-width;
|
left: -@fa-li-width;
|
||||||
width: @fa-li-width;
|
position: absolute;
|
||||||
top: (2em / 14);
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
&.@{fa-css-prefix}-lg {
|
width: @fa-li-width;
|
||||||
left: (-@fa-li-width + (4em / 14));
|
line-height: inherit;
|
||||||
}
|
|
||||||
}
|
}
|
57
font-awesome/less/_mixins.less
vendored
Normal file
57
font-awesome/less/_mixins.less
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
// Mixins
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
.fa-icon() {
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
display: inline-block;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1;
|
||||||
|
vertical-align: -.125em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-icon-rotate(@degrees, @rotation) {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
|
||||||
|
transform: rotate(@degrees);
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-icon-flip(@horiz, @vert, @rotation) {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
|
||||||
|
transform: scale(@horiz, @vert);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Only display content to screen readers. A la Bootstrap 4.
|
||||||
|
//
|
||||||
|
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||||
|
|
||||||
|
.sr-only() {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0,0,0,0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||||
|
//
|
||||||
|
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||||
|
//
|
||||||
|
// Credit: HTML5 Boilerplate
|
||||||
|
|
||||||
|
.sr-only-focusable() {
|
||||||
|
&:active,
|
||||||
|
&:focus {
|
||||||
|
clip: auto;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
overflow: visible;
|
||||||
|
position: static;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
@ -7,14 +7,17 @@
|
|||||||
|
|
||||||
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
|
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
|
||||||
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
|
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
|
||||||
|
.@{fa-css-prefix}-flip-horizontal.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(-1, -1, 2); }
|
||||||
|
|
||||||
// Hook for IE8-9
|
// Hook for IE8-9
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
:root .@{fa-css-prefix}-rotate-90,
|
:root {
|
||||||
:root .@{fa-css-prefix}-rotate-180,
|
.@{fa-css-prefix}-rotate-90,
|
||||||
:root .@{fa-css-prefix}-rotate-270,
|
.@{fa-css-prefix}-rotate-180,
|
||||||
:root .@{fa-css-prefix}-flip-horizontal,
|
.@{fa-css-prefix}-rotate-270,
|
||||||
:root .@{fa-css-prefix}-flip-vertical {
|
.@{fa-css-prefix}-flip-horizontal,
|
||||||
filter: none;
|
.@{fa-css-prefix}-flip-vertical {
|
||||||
|
filter: none;
|
||||||
|
}
|
||||||
}
|
}
|
5
font-awesome/less/_screen-reader.less
vendored
Normal file
5
font-awesome/less/_screen-reader.less
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Screen Readers
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.sr-only { .sr-only(); }
|
||||||
|
.sr-only-focusable { .sr-only-focusable(); }
|
2062
font-awesome/less/_shims.less
vendored
Normal file
2062
font-awesome/less/_shims.less
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -2,19 +2,21 @@
|
|||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
.@{fa-css-prefix}-stack {
|
.@{fa-css-prefix}-stack {
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 2em;
|
|
||||||
height: 2em;
|
height: 2em;
|
||||||
line-height: 2em;
|
line-height: 2em;
|
||||||
|
position: relative;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
width: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
|
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
position: absolute;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{fa-css-prefix}-stack-1x { line-height: inherit; }
|
.@{fa-css-prefix}-stack-1x { line-height: inherit; }
|
||||||
.@{fa-css-prefix}-stack-2x { font-size: 2em; }
|
.@{fa-css-prefix}-stack-2x { font-size: 2em; }
|
||||||
.@{fa-css-prefix}-inverse { color: @fa-inverse; }
|
.@{fa-css-prefix}-inverse { color: @fa-inverse; }
|
1342
font-awesome/less/_variables.less
vendored
Normal file
1342
font-awesome/less/_variables.less
vendored
Normal file
File diff suppressed because it is too large
Load Diff
17
font-awesome/less/brands.less
vendored
Normal file
17
font-awesome/less/brands.less
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: url('@{fa-font-path}/fa-brands-400.eot');
|
||||||
|
src: url('@{fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-brands-400.woff') format('woff'),
|
||||||
|
url('@{fa-font-path}/fa-brands-400.ttf') format('truetype'),
|
||||||
|
url('@{fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
}
|
12
font-awesome/less/fontawesome.less
vendored
Normal file
12
font-awesome/less/fontawesome.less
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
@import "_variables.less";
|
||||||
|
@import "_mixins.less";
|
||||||
|
@import "_core.less";
|
||||||
|
@import "_larger.less";
|
||||||
|
@import "_fixed-width.less";
|
||||||
|
@import "_list.less";
|
||||||
|
@import "_bordered-pulled.less";
|
||||||
|
@import "_animated.less";
|
||||||
|
@import "_rotated-flipped.less";
|
||||||
|
@import "_stacked.less";
|
||||||
|
@import "_icons.less";
|
||||||
|
@import "_screen-reader.less";
|
18
font-awesome/less/regular.less
vendored
Normal file
18
font-awesome/less/regular.less
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url('@{fa-font-path}/fa-regular-400.eot');
|
||||||
|
src: url('@{fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-regular-400.woff') format('woff'),
|
||||||
|
url('@{fa-font-path}/fa-regular-400.ttf') format('truetype'),
|
||||||
|
url('@{fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.far {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
19
font-awesome/less/solid.less
vendored
Normal file
19
font-awesome/less/solid.less
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
src: url('@{fa-font-path}/fa-solid-900.eot');
|
||||||
|
src: url('@{fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-solid-900.woff') format('woff'),
|
||||||
|
url('@{fa-font-path}/fa-solid-900.ttf') format('truetype'),
|
||||||
|
url('@{fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa,
|
||||||
|
.fas {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
2
font-awesome/less/v4-shims.less
vendored
Normal file
2
font-awesome/less/v4-shims.less
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
@import '_variables.less';
|
||||||
|
@import '_shims.less';
|
1902
font-awesome/metadata/categories.yml
Normal file
1902
font-awesome/metadata/categories.yml
Normal file
File diff suppressed because it is too large
Load Diff
46719
font-awesome/metadata/icons.json
Normal file
46719
font-awesome/metadata/icons.json
Normal file
File diff suppressed because one or more lines are too long
17383
font-awesome/metadata/icons.yml
Normal file
17383
font-awesome/metadata/icons.yml
Normal file
File diff suppressed because it is too large
Load Diff
2307
font-awesome/metadata/shims.json
Normal file
2307
font-awesome/metadata/shims.json
Normal file
File diff suppressed because it is too large
Load Diff
294
font-awesome/metadata/shims.yml
Normal file
294
font-awesome/metadata/shims.yml
Normal file
@ -0,0 +1,294 @@
|
|||||||
|
area-chart:
|
||||||
|
name: chart-area
|
||||||
|
arrow-circle-o-down:
|
||||||
|
name: arrow-alt-circle-down
|
||||||
|
prefix: far
|
||||||
|
arrow-circle-o-left:
|
||||||
|
name: arrow-alt-circle-left
|
||||||
|
prefix: far
|
||||||
|
arrow-circle-o-right:
|
||||||
|
name: arrow-alt-circle-right
|
||||||
|
prefix: far
|
||||||
|
arrow-circle-o-up:
|
||||||
|
name: arrow-alt-circle-up
|
||||||
|
prefix: far
|
||||||
|
arrows:
|
||||||
|
name: arrows-alt
|
||||||
|
arrows-alt:
|
||||||
|
name: expand-arrows-alt
|
||||||
|
arrows-h:
|
||||||
|
name: arrows-alt-h
|
||||||
|
arrows-v:
|
||||||
|
name: arrows-alt-v
|
||||||
|
bar-chart:
|
||||||
|
name: chart-bar
|
||||||
|
prefix: far
|
||||||
|
bitbucket-square:
|
||||||
|
name: bitbucket
|
||||||
|
prefix: fab
|
||||||
|
calendar:
|
||||||
|
name: calendar-alt
|
||||||
|
calendar-o:
|
||||||
|
name: calendar
|
||||||
|
prefix: far
|
||||||
|
caret-square-o-down:
|
||||||
|
name: caret-square-down
|
||||||
|
prefix: far
|
||||||
|
caret-square-o-left:
|
||||||
|
name: caret-square-left
|
||||||
|
prefix: far
|
||||||
|
caret-square-o-right:
|
||||||
|
name: caret-square-right
|
||||||
|
prefix: far
|
||||||
|
caret-square-o-up:
|
||||||
|
name: caret-square-up
|
||||||
|
prefix: far
|
||||||
|
cc:
|
||||||
|
name: closed-captioning
|
||||||
|
prefix: far
|
||||||
|
chain-broken:
|
||||||
|
name: unlink
|
||||||
|
circle-o-notch:
|
||||||
|
name: circle-notch
|
||||||
|
circle-thin:
|
||||||
|
name: circle
|
||||||
|
prefix: far
|
||||||
|
clipboard:
|
||||||
|
prefix: far
|
||||||
|
clone:
|
||||||
|
prefix: far
|
||||||
|
cloud-download:
|
||||||
|
name: cloud-download-alt
|
||||||
|
cloud-upload:
|
||||||
|
name: cloud-upload-alt
|
||||||
|
code-fork:
|
||||||
|
name: code-branch
|
||||||
|
comment-alt:
|
||||||
|
name: comment-dots
|
||||||
|
prefix: far
|
||||||
|
commenting:
|
||||||
|
name: comment-dots
|
||||||
|
compass:
|
||||||
|
prefix: far
|
||||||
|
copyright:
|
||||||
|
prefix: far
|
||||||
|
creative-commons:
|
||||||
|
prefix: fab
|
||||||
|
credit-card:
|
||||||
|
prefix: far
|
||||||
|
credit-card-alt:
|
||||||
|
name: credit-card
|
||||||
|
cutlery:
|
||||||
|
name: utensils
|
||||||
|
diamond:
|
||||||
|
name: gem
|
||||||
|
prefix: far
|
||||||
|
eercast:
|
||||||
|
name: sellcast
|
||||||
|
prefix: fab
|
||||||
|
eur:
|
||||||
|
name: euro-sign
|
||||||
|
exchange:
|
||||||
|
name: exchange-alt
|
||||||
|
external-link:
|
||||||
|
name: external-link-alt
|
||||||
|
external-link-square:
|
||||||
|
name: external-link-square-alt
|
||||||
|
eye:
|
||||||
|
prefix: far
|
||||||
|
eye-dropper:
|
||||||
|
name: eye-dropper
|
||||||
|
prefix: far
|
||||||
|
eye-slash:
|
||||||
|
prefix: far
|
||||||
|
eyedropper:
|
||||||
|
name: eye-dropper
|
||||||
|
facebook:
|
||||||
|
name: facebook-f
|
||||||
|
prefix: fab
|
||||||
|
facebook-official:
|
||||||
|
name: facebook
|
||||||
|
prefix: fab
|
||||||
|
file-text:
|
||||||
|
name: file-alt
|
||||||
|
files-o:
|
||||||
|
name: copy
|
||||||
|
prefix: far
|
||||||
|
floppy-o:
|
||||||
|
name: save
|
||||||
|
prefix: far
|
||||||
|
gbp:
|
||||||
|
name: pound-sign
|
||||||
|
glass:
|
||||||
|
name: glass-martini
|
||||||
|
google-plus:
|
||||||
|
name: google-plus-g
|
||||||
|
prefix: fab
|
||||||
|
google-plus-circle:
|
||||||
|
name: google-plus
|
||||||
|
prefix: fab
|
||||||
|
google-plus-official:
|
||||||
|
name: google-plus
|
||||||
|
prefix: fab
|
||||||
|
hand-o-down:
|
||||||
|
name: hand-point-down
|
||||||
|
prefix: far
|
||||||
|
hand-o-left:
|
||||||
|
name: hand-point-left
|
||||||
|
prefix: far
|
||||||
|
hand-o-right:
|
||||||
|
name: hand-point-right
|
||||||
|
prefix: far
|
||||||
|
hand-o-up:
|
||||||
|
name: hand-point-up
|
||||||
|
prefix: far
|
||||||
|
header:
|
||||||
|
name: heading
|
||||||
|
id-badge:
|
||||||
|
prefix: far
|
||||||
|
ils:
|
||||||
|
name: shekel-sign
|
||||||
|
inr:
|
||||||
|
name: rupee-sign
|
||||||
|
intersex:
|
||||||
|
name: transgender
|
||||||
|
jpy:
|
||||||
|
name: yen-sign
|
||||||
|
krw:
|
||||||
|
name: won-sign
|
||||||
|
level-down:
|
||||||
|
name: level-down-alt
|
||||||
|
level-up:
|
||||||
|
name: level-up-alt
|
||||||
|
life-ring:
|
||||||
|
prefix: far
|
||||||
|
line-chart:
|
||||||
|
name: chart-line
|
||||||
|
linkedin:
|
||||||
|
name: linkedin-in
|
||||||
|
prefix: fab
|
||||||
|
linkedin-square:
|
||||||
|
name: linkedin
|
||||||
|
prefix: fab
|
||||||
|
list-alt:
|
||||||
|
prefix: far
|
||||||
|
long-arrow-down:
|
||||||
|
name: long-arrow-alt-down
|
||||||
|
long-arrow-left:
|
||||||
|
name: long-arrow-alt-left
|
||||||
|
long-arrow-right:
|
||||||
|
name: long-arrow-alt-right
|
||||||
|
long-arrow-up:
|
||||||
|
name: long-arrow-alt-up
|
||||||
|
map-marker:
|
||||||
|
name: map-marker-alt
|
||||||
|
meanpath:
|
||||||
|
name: font-awesome
|
||||||
|
prefix: fab
|
||||||
|
mobile:
|
||||||
|
name: mobile-alt
|
||||||
|
money:
|
||||||
|
name: money-bill-alt
|
||||||
|
prefix: far
|
||||||
|
object-group:
|
||||||
|
prefix: far
|
||||||
|
object-ungroup:
|
||||||
|
prefix: far
|
||||||
|
paste:
|
||||||
|
prefix: far
|
||||||
|
pencil:
|
||||||
|
name: pencil-alt
|
||||||
|
pencil-square:
|
||||||
|
name: pen-square
|
||||||
|
pencil-square-o:
|
||||||
|
name: edit
|
||||||
|
prefix: far
|
||||||
|
picture:
|
||||||
|
name: image
|
||||||
|
pie-chart:
|
||||||
|
name: chart-pie
|
||||||
|
refresh:
|
||||||
|
name: sync
|
||||||
|
registered:
|
||||||
|
prefix: far
|
||||||
|
repeat:
|
||||||
|
name: redo
|
||||||
|
rub:
|
||||||
|
name: ruble-sign
|
||||||
|
scissors:
|
||||||
|
name: cut
|
||||||
|
shield:
|
||||||
|
name: shield-alt
|
||||||
|
sign-in:
|
||||||
|
name: sign-in-alt
|
||||||
|
sign-out:
|
||||||
|
name: sign-out-alt
|
||||||
|
sliders:
|
||||||
|
name: sliders-h
|
||||||
|
sort-alpha-asc:
|
||||||
|
name: sort-alpha-down
|
||||||
|
sort-alpha-desc:
|
||||||
|
name: sort-alpha-up
|
||||||
|
sort-amount-asc:
|
||||||
|
name: sort-amount-down
|
||||||
|
sort-amount-desc:
|
||||||
|
name: sort-amount-up
|
||||||
|
sort-asc:
|
||||||
|
name: sort-up
|
||||||
|
sort-desc:
|
||||||
|
name: sort-down
|
||||||
|
sort-numeric-asc:
|
||||||
|
name: sort-numeric-down
|
||||||
|
sort-numeric-desc:
|
||||||
|
name: sort-numeric-up
|
||||||
|
spoon:
|
||||||
|
name: utensil-spoon
|
||||||
|
star-half-empty:
|
||||||
|
name: star-half
|
||||||
|
star-half-full:
|
||||||
|
name: star-half
|
||||||
|
support:
|
||||||
|
name: life-ring
|
||||||
|
prefix: far
|
||||||
|
tablet:
|
||||||
|
name: tablet-alt
|
||||||
|
tachometer:
|
||||||
|
name: tachometer-alt
|
||||||
|
television:
|
||||||
|
name: tv
|
||||||
|
thumb-tack:
|
||||||
|
name: thumbtack
|
||||||
|
thumbs-o-down:
|
||||||
|
name: thumbs-down
|
||||||
|
prefix: far
|
||||||
|
thumbs-o-up:
|
||||||
|
name: thumbs-up
|
||||||
|
prefix: far
|
||||||
|
ticket:
|
||||||
|
name: ticket-alt
|
||||||
|
trash:
|
||||||
|
name: trash-alt
|
||||||
|
trash-o:
|
||||||
|
name: trash-alt
|
||||||
|
prefix: far
|
||||||
|
try:
|
||||||
|
name: lira-sign
|
||||||
|
usd:
|
||||||
|
name: dollar-sign
|
||||||
|
video-camera:
|
||||||
|
name: video
|
||||||
|
vimeo:
|
||||||
|
name: vimeo-v
|
||||||
|
prefix: fab
|
||||||
|
volume-control-phone:
|
||||||
|
name: phone-volume
|
||||||
|
wheelchair-alt:
|
||||||
|
name: accessible-icon
|
||||||
|
prefix: fab
|
||||||
|
window-maximize:
|
||||||
|
prefix: far
|
||||||
|
window-restore:
|
||||||
|
prefix: far
|
||||||
|
youtube-play:
|
||||||
|
name: youtube
|
||||||
|
prefix: fab
|
660
font-awesome/metadata/sponsors.yml
Normal file
660
font-awesome/metadata/sponsors.yml
Normal file
@ -0,0 +1,660 @@
|
|||||||
|
accusoft:
|
||||||
|
icons:
|
||||||
|
- accusoft
|
||||||
|
label: Accusoft
|
||||||
|
url: 'https://www.accusoft.com'
|
||||||
|
administrator-technology:
|
||||||
|
icons:
|
||||||
|
- stream
|
||||||
|
label: Administrator Technology
|
||||||
|
url: 'https://administrator.de'
|
||||||
|
adversal:
|
||||||
|
icons:
|
||||||
|
- adversal
|
||||||
|
label: Adversal
|
||||||
|
url: 'https://www.adversal.com'
|
||||||
|
affiliatetheme:
|
||||||
|
icons:
|
||||||
|
- affiliatetheme
|
||||||
|
label: affiliatetheme
|
||||||
|
url: 'https://affiliatetheme.io/en'
|
||||||
|
algolia:
|
||||||
|
icons:
|
||||||
|
- algolia
|
||||||
|
label: Algolia
|
||||||
|
url: 'http://www.algolia.com'
|
||||||
|
amazon-web-services:
|
||||||
|
icons:
|
||||||
|
- aws
|
||||||
|
label: Amazon Web Services
|
||||||
|
url: 'https://aws.amazon.com'
|
||||||
|
amilia:
|
||||||
|
icons:
|
||||||
|
- amilia
|
||||||
|
label: Amilia
|
||||||
|
url: 'http://www.amilia.com'
|
||||||
|
angry-creative:
|
||||||
|
icons:
|
||||||
|
- angrycreative
|
||||||
|
label: Angry Creative
|
||||||
|
url: 'https://angrycreative.se'
|
||||||
|
app-signal:
|
||||||
|
icons:
|
||||||
|
- stroopwafel
|
||||||
|
label: AppSignal
|
||||||
|
url: 'https://appsignal.com'
|
||||||
|
apper-systems-ab:
|
||||||
|
icons:
|
||||||
|
- apper
|
||||||
|
label: Apper Systems AB
|
||||||
|
url: 'http://www.apper.com'
|
||||||
|
'asymmetrik,ltd':
|
||||||
|
icons:
|
||||||
|
- asymmetrik
|
||||||
|
label: 'Asymmetrik, Ltd.'
|
||||||
|
url: 'http://asymmetrik.com'
|
||||||
|
avianex:
|
||||||
|
icons:
|
||||||
|
- avianex
|
||||||
|
label: avianex
|
||||||
|
url: 'https://www.avianex.de'
|
||||||
|
bi-mobject:
|
||||||
|
icons:
|
||||||
|
- bimobject
|
||||||
|
label: BIMobject
|
||||||
|
url: 'http://bimobject.com'
|
||||||
|
bity:
|
||||||
|
icons:
|
||||||
|
- bity
|
||||||
|
label: Bity
|
||||||
|
url: 'http://bity.com'
|
||||||
|
blackpulp-designs:
|
||||||
|
icons:
|
||||||
|
- pray
|
||||||
|
label: Blackpulp Designs
|
||||||
|
url: 'https://www.blackpulp.com'
|
||||||
|
blissbook:
|
||||||
|
icons:
|
||||||
|
- pen-fancy
|
||||||
|
label: Blissbook
|
||||||
|
url: 'https://blissbook.com'
|
||||||
|
büromöbel-experte-gmb-h &co-kg:
|
||||||
|
icons:
|
||||||
|
- buromobelexperte
|
||||||
|
label: Büromöbel-Experte GmbH & Co. KG.
|
||||||
|
url: 'https://www.bueromoebel-experte.de'
|
||||||
|
c-panel:
|
||||||
|
icons:
|
||||||
|
- cpanel
|
||||||
|
label: cPanel
|
||||||
|
url: 'http://cpanel.com'
|
||||||
|
centercode:
|
||||||
|
icons:
|
||||||
|
- centercode
|
||||||
|
label: Centercode
|
||||||
|
url: 'https://www.centercode.com'
|
||||||
|
cibltd:
|
||||||
|
icons:
|
||||||
|
- drum-steelpan
|
||||||
|
label: Comprehensive Insurance Brokers Limited
|
||||||
|
url: 'http://www.cibltd.com'
|
||||||
|
clear-blue-technologies:
|
||||||
|
icons:
|
||||||
|
- solar-panel
|
||||||
|
label: Clear Blue Technologies
|
||||||
|
url: 'http://www.clearbluetechnologies.com'
|
||||||
|
cloudscale-ch:
|
||||||
|
icons:
|
||||||
|
- cloudscale
|
||||||
|
label: cloudscale.ch
|
||||||
|
url: 'https://www.cloudscale.ch'
|
||||||
|
cloudsmith:
|
||||||
|
icons:
|
||||||
|
- cloudsmith
|
||||||
|
label: Cloudsmith
|
||||||
|
url: 'https://cloudsmith.io'
|
||||||
|
cloudversify:
|
||||||
|
icons:
|
||||||
|
- cloudversify
|
||||||
|
label: cloudversify
|
||||||
|
url: 'https://www.cloudversify.com'
|
||||||
|
cuttlefish:
|
||||||
|
icons:
|
||||||
|
- cuttlefish
|
||||||
|
label: Cuttlefish
|
||||||
|
url: 'http://wearecuttlefish.com'
|
||||||
|
darren-wiebe:
|
||||||
|
icons:
|
||||||
|
- church
|
||||||
|
label: Darren Wiebe
|
||||||
|
deploy-dog:
|
||||||
|
icons:
|
||||||
|
- deploydog
|
||||||
|
label: deploy.dog
|
||||||
|
url: 'http://deploy.dog'
|
||||||
|
deskpro:
|
||||||
|
icons:
|
||||||
|
- deskpro
|
||||||
|
label: Deskpro
|
||||||
|
url: 'http://www.deskpro.com'
|
||||||
|
discourse:
|
||||||
|
icons:
|
||||||
|
- discourse
|
||||||
|
label: Discourse
|
||||||
|
url: 'https://discourse.org'
|
||||||
|
doc-hub:
|
||||||
|
icons:
|
||||||
|
- dochub
|
||||||
|
label: DocHub
|
||||||
|
url: 'https://dochub.com'
|
||||||
|
draft2-digital:
|
||||||
|
icons:
|
||||||
|
- draft2digital
|
||||||
|
label: Draft2Digital
|
||||||
|
url: 'http://draft2digital.com'
|
||||||
|
dyalog-apl:
|
||||||
|
icons:
|
||||||
|
- dyalog
|
||||||
|
label: Dyalog APL
|
||||||
|
url: 'http://www.dyalog.com'
|
||||||
|
firstdraft:
|
||||||
|
icons:
|
||||||
|
- firstdraft
|
||||||
|
label: firstdraft
|
||||||
|
url: 'http://www.firstdraft.com'
|
||||||
|
fleetplan:
|
||||||
|
icons:
|
||||||
|
- helicopter
|
||||||
|
label: FLEETPLAN
|
||||||
|
url: 'https://www.fleetplan.net'
|
||||||
|
getaroom:
|
||||||
|
icons:
|
||||||
|
- archway
|
||||||
|
- dumbbell
|
||||||
|
- hotel
|
||||||
|
- map-marked
|
||||||
|
- map-marked-alt
|
||||||
|
- monument
|
||||||
|
- spa
|
||||||
|
- swimmer
|
||||||
|
- swimming-pool
|
||||||
|
label: getaroom
|
||||||
|
url: 'https://www.getaroom.com'
|
||||||
|
git-kraken:
|
||||||
|
icons:
|
||||||
|
- gitkraken
|
||||||
|
label: GitKraken
|
||||||
|
url: 'https://www.gitkraken.com'
|
||||||
|
gofore:
|
||||||
|
icons:
|
||||||
|
- gofore
|
||||||
|
label: Gofore
|
||||||
|
url: 'http://gofore.com'
|
||||||
|
'gripfire,inc':
|
||||||
|
icons:
|
||||||
|
- gripfire
|
||||||
|
label: 'Gripfire, Inc.'
|
||||||
|
url: 'http://gripfire.io'
|
||||||
|
harvard-medical-school:
|
||||||
|
icons:
|
||||||
|
- allergies
|
||||||
|
- ambulance
|
||||||
|
- band-aid
|
||||||
|
- briefcase-medical
|
||||||
|
- burn
|
||||||
|
- capsules
|
||||||
|
- diagnoses
|
||||||
|
- dna
|
||||||
|
- file-medical
|
||||||
|
- file-medical-alt
|
||||||
|
- first-aid
|
||||||
|
- heart
|
||||||
|
- heartbeat
|
||||||
|
- hospital
|
||||||
|
- hospital-alt
|
||||||
|
- hospital-symbol
|
||||||
|
- id-card-alt
|
||||||
|
- notes-medical
|
||||||
|
- pills
|
||||||
|
- plus
|
||||||
|
- prescription-bottle
|
||||||
|
- prescription-bottle-alt
|
||||||
|
- procedures
|
||||||
|
- smoking
|
||||||
|
- stethoscope
|
||||||
|
- syringe
|
||||||
|
- tablets
|
||||||
|
- thermometer
|
||||||
|
- user-md
|
||||||
|
- vial
|
||||||
|
- vials
|
||||||
|
- weight
|
||||||
|
- x-ray
|
||||||
|
label: Harvard Medical School
|
||||||
|
url: 'https://hms.harvard.edu'
|
||||||
|
hips:
|
||||||
|
icons:
|
||||||
|
- hips
|
||||||
|
label: Hips
|
||||||
|
url: 'https://hips.com'
|
||||||
|
hire-a-helper:
|
||||||
|
icons:
|
||||||
|
- archive
|
||||||
|
- box-open
|
||||||
|
- couch
|
||||||
|
- dolly
|
||||||
|
- people-carry
|
||||||
|
- route
|
||||||
|
- sign
|
||||||
|
- suitcase
|
||||||
|
- tape
|
||||||
|
- truck-loading
|
||||||
|
- truck-moving
|
||||||
|
- wine-glass
|
||||||
|
label: HireAHelper
|
||||||
|
url: 'https://www.hireahelper.com'
|
||||||
|
hornbill:
|
||||||
|
icons:
|
||||||
|
- hornbill
|
||||||
|
label: Hornbill
|
||||||
|
url: 'https://www.hornbill.com'
|
||||||
|
hotjar:
|
||||||
|
icons:
|
||||||
|
- hotjar
|
||||||
|
label: Hotjar
|
||||||
|
url: 'https://www.hotjar.com'
|
||||||
|
hub-spot:
|
||||||
|
icons:
|
||||||
|
- hubspot
|
||||||
|
label: HubSpot
|
||||||
|
url: 'http://www.HubSpot.com'
|
||||||
|
in-site-systems:
|
||||||
|
icons:
|
||||||
|
- toolbox
|
||||||
|
label: InSite Systems
|
||||||
|
url: 'https://www.insitesystems.com'
|
||||||
|
inspira-bvba:
|
||||||
|
icons:
|
||||||
|
- chess-knight
|
||||||
|
label: Inspira bvba
|
||||||
|
url: 'https://www.inspira.be'
|
||||||
|
joe-emison:
|
||||||
|
icons:
|
||||||
|
- blender-phone
|
||||||
|
label: Joe Emison
|
||||||
|
joget:
|
||||||
|
icons:
|
||||||
|
- joget
|
||||||
|
label: Joget
|
||||||
|
url: 'http://www.joget.org'
|
||||||
|
jon-galloway:
|
||||||
|
icons:
|
||||||
|
- crow
|
||||||
|
label: Jon Galloway
|
||||||
|
kevin-barone:
|
||||||
|
icons:
|
||||||
|
- file-contract
|
||||||
|
label: Kevin Barone
|
||||||
|
key-cdn:
|
||||||
|
icons:
|
||||||
|
- keycdn
|
||||||
|
label: KeyCDN
|
||||||
|
url: 'https://www.keycdn.com'
|
||||||
|
korvue:
|
||||||
|
icons:
|
||||||
|
- korvue
|
||||||
|
label: Korvue
|
||||||
|
url: 'https://korvue.com'
|
||||||
|
max-elman:
|
||||||
|
icons:
|
||||||
|
- frog
|
||||||
|
label: Max Elman
|
||||||
|
med-apps:
|
||||||
|
icons:
|
||||||
|
- medapps
|
||||||
|
label: MedApps
|
||||||
|
url: 'http://medapps.com.au'
|
||||||
|
megaport:
|
||||||
|
icons:
|
||||||
|
- megaport
|
||||||
|
label: Megaport
|
||||||
|
url: 'https://www.megaport.com'
|
||||||
|
mix:
|
||||||
|
icons:
|
||||||
|
- mix
|
||||||
|
label: Mix
|
||||||
|
url: 'http://mix.com'
|
||||||
|
mizuni:
|
||||||
|
icons:
|
||||||
|
- mizuni
|
||||||
|
label: Mizuni
|
||||||
|
url: 'http://www.mizuni.com'
|
||||||
|
mrt:
|
||||||
|
icons:
|
||||||
|
- medrt
|
||||||
|
label: MRT
|
||||||
|
url: 'https://medrt.co.jp'
|
||||||
|
mylogin-info:
|
||||||
|
icons:
|
||||||
|
- user-shield
|
||||||
|
label: mylogin.info
|
||||||
|
url: 'https://www.mylogin.info'
|
||||||
|
napster:
|
||||||
|
icons:
|
||||||
|
- napster
|
||||||
|
label: Napster
|
||||||
|
url: 'http://www.napster.com'
|
||||||
|
nimblr:
|
||||||
|
icons:
|
||||||
|
- nimblr
|
||||||
|
label: Nimblr
|
||||||
|
url: 'https://nimblr.ai'
|
||||||
|
nompse:
|
||||||
|
icons:
|
||||||
|
- chalkboard
|
||||||
|
- chalkboard-teacher
|
||||||
|
label: Nomp.se
|
||||||
|
url: 'https://nomp.se'
|
||||||
|
ns8:
|
||||||
|
icons:
|
||||||
|
- ns8
|
||||||
|
label: NS8
|
||||||
|
url: 'https://www.ns8.com'
|
||||||
|
nutritionix:
|
||||||
|
icons:
|
||||||
|
- nutritionix
|
||||||
|
label: Nutritionix
|
||||||
|
url: 'http://www.nutritionix.com'
|
||||||
|
page4-corporation:
|
||||||
|
icons:
|
||||||
|
- page4
|
||||||
|
label: page4 Corporation
|
||||||
|
url: 'https://en.page4.com'
|
||||||
|
pal-fed:
|
||||||
|
icons:
|
||||||
|
- palfed
|
||||||
|
label: PalFed
|
||||||
|
url: 'https://www.palfed.com'
|
||||||
|
pcsg:
|
||||||
|
icons:
|
||||||
|
- horse-head
|
||||||
|
label: PCSG
|
||||||
|
url: 'https://www.pcsg.de'
|
||||||
|
phabricator:
|
||||||
|
icons:
|
||||||
|
- phabricator
|
||||||
|
label: Phabricator
|
||||||
|
url: 'http://phacility.com'
|
||||||
|
promo-wizard:
|
||||||
|
icons:
|
||||||
|
- hat-wizard
|
||||||
|
label: Promo Wizard
|
||||||
|
url: 'https://promowizard.co.uk'
|
||||||
|
pulse-eight:
|
||||||
|
icons:
|
||||||
|
- volume-mute
|
||||||
|
label: Pulse-Eight
|
||||||
|
url: 'https://pulse-eight.com'
|
||||||
|
purely-interactive:
|
||||||
|
icons:
|
||||||
|
- kiwi-bird
|
||||||
|
label: Purely Interactive
|
||||||
|
url: 'https://www.purelyinteractive.ca'
|
||||||
|
pushed:
|
||||||
|
icons:
|
||||||
|
- pushed
|
||||||
|
label: Pushed
|
||||||
|
url: 'https://pushed.co'
|
||||||
|
quin-scape:
|
||||||
|
icons:
|
||||||
|
- quinscape
|
||||||
|
label: QuinScape
|
||||||
|
url: 'https://www.quinscape.de'
|
||||||
|
reacteurope:
|
||||||
|
icons:
|
||||||
|
- reacteurope
|
||||||
|
label: ReactEurope
|
||||||
|
url: 'https://www.react-europe.org'
|
||||||
|
readme-io:
|
||||||
|
icons:
|
||||||
|
- readme
|
||||||
|
label: Readme.io
|
||||||
|
url: 'http://readme.io'
|
||||||
|
red-river:
|
||||||
|
icons:
|
||||||
|
- red-river
|
||||||
|
label: red river
|
||||||
|
url: 'https://river.red'
|
||||||
|
replyd:
|
||||||
|
icons:
|
||||||
|
- replyd
|
||||||
|
label: replyd
|
||||||
|
resolving:
|
||||||
|
icons:
|
||||||
|
- resolving
|
||||||
|
label: Resolving
|
||||||
|
url: 'https://resolving.com'
|
||||||
|
rev-io:
|
||||||
|
icons:
|
||||||
|
- rev
|
||||||
|
label: Rev.io
|
||||||
|
url: 'https://rev.io'
|
||||||
|
rock-rms:
|
||||||
|
icons:
|
||||||
|
- rockrms
|
||||||
|
label: Rock RMS
|
||||||
|
url: 'http://rockrms.com'
|
||||||
|
rocket-chat:
|
||||||
|
icons:
|
||||||
|
- comment
|
||||||
|
- comment-alt
|
||||||
|
- comment-dots
|
||||||
|
- comment-slash
|
||||||
|
- comments
|
||||||
|
- frown
|
||||||
|
- meh
|
||||||
|
- phone
|
||||||
|
- phone-slash
|
||||||
|
- poo
|
||||||
|
- quote-left
|
||||||
|
- quote-right
|
||||||
|
- rocketchat
|
||||||
|
- smile
|
||||||
|
- video
|
||||||
|
- video-slash
|
||||||
|
label: Rocket.Chat
|
||||||
|
url: 'https://rocket.chat'
|
||||||
|
rodney-oliver:
|
||||||
|
icons:
|
||||||
|
- folder-minus
|
||||||
|
- folder-plus
|
||||||
|
label: Rodney Oliver
|
||||||
|
schlix:
|
||||||
|
icons:
|
||||||
|
- schlix
|
||||||
|
label: SCHLIX
|
||||||
|
url: 'http://schlix.com'
|
||||||
|
search-eng-in:
|
||||||
|
icons:
|
||||||
|
- searchengin
|
||||||
|
label: SearchEng.in
|
||||||
|
url: 'http://searcheng.in'
|
||||||
|
service-stack:
|
||||||
|
icons:
|
||||||
|
- servicestack
|
||||||
|
label: ServiceStack
|
||||||
|
url: 'https://servicestack.net'
|
||||||
|
shawn-storie:
|
||||||
|
icons:
|
||||||
|
- teeth
|
||||||
|
- teeth-open
|
||||||
|
label: Shawn Storie
|
||||||
|
shopware:
|
||||||
|
icons:
|
||||||
|
- shopware
|
||||||
|
label: Shopware
|
||||||
|
url: 'https://shopware.de'
|
||||||
|
shp:
|
||||||
|
icons:
|
||||||
|
- school
|
||||||
|
label: SHP
|
||||||
|
url: 'http://shp.com'
|
||||||
|
silicon-barn-inc:
|
||||||
|
icons:
|
||||||
|
- project-diagram
|
||||||
|
label: Silicon Barn Inc
|
||||||
|
url: 'https://siliconbarn.com'
|
||||||
|
sistrix:
|
||||||
|
icons:
|
||||||
|
- sistrix
|
||||||
|
label: SISTRIX
|
||||||
|
url: 'https://www.sistrix.de'
|
||||||
|
smup:
|
||||||
|
icons:
|
||||||
|
- shoe-prints
|
||||||
|
label: Smup
|
||||||
|
url: 'https://www.atomsoftware.com.au'
|
||||||
|
speakap:
|
||||||
|
icons:
|
||||||
|
- speakap
|
||||||
|
label: Speakap
|
||||||
|
url: 'https://speakap.com'
|
||||||
|
stay-linked:
|
||||||
|
icons:
|
||||||
|
- box
|
||||||
|
- boxes
|
||||||
|
- clipboard-check
|
||||||
|
- clipboard-list
|
||||||
|
- dolly
|
||||||
|
- dolly-flatbed
|
||||||
|
- pallet
|
||||||
|
- shipping-fast
|
||||||
|
- truck
|
||||||
|
- warehouse
|
||||||
|
label: StayLinked
|
||||||
|
url: 'https://www.staylinked.com'
|
||||||
|
sticker-mule:
|
||||||
|
icons:
|
||||||
|
- sticker-mule
|
||||||
|
label: Sticker Mule
|
||||||
|
url: 'https://stickermule.com'
|
||||||
|
studio-vinari:
|
||||||
|
icons:
|
||||||
|
- studiovinari
|
||||||
|
label: Studio Vinari
|
||||||
|
url: 'https://studiovinari.com'
|
||||||
|
supple:
|
||||||
|
icons:
|
||||||
|
- ad
|
||||||
|
- bullhorn
|
||||||
|
- bullseye
|
||||||
|
- comment-dollar
|
||||||
|
- comments-dollar
|
||||||
|
- envelope-open-text
|
||||||
|
- funnel-dollar
|
||||||
|
- mail-bulk
|
||||||
|
- poll
|
||||||
|
- poll-h
|
||||||
|
- search-dollar
|
||||||
|
- search-location
|
||||||
|
- supple
|
||||||
|
label: Supple
|
||||||
|
url: 'https://supple.com.au'
|
||||||
|
the-red-yeti:
|
||||||
|
icons:
|
||||||
|
- the-red-yeti
|
||||||
|
label: The Red Yeti
|
||||||
|
url: 'http://theredyeti.com'
|
||||||
|
the-us-sunnah-foundation:
|
||||||
|
icons:
|
||||||
|
- dollar-sign
|
||||||
|
- donate
|
||||||
|
- dove
|
||||||
|
- gift
|
||||||
|
- globe
|
||||||
|
- hand-holding-heart
|
||||||
|
- hand-holding-usd
|
||||||
|
- hands-helping
|
||||||
|
- handshake
|
||||||
|
- heart
|
||||||
|
- leaf
|
||||||
|
- parachute-box
|
||||||
|
- piggy-bank
|
||||||
|
- ribbon
|
||||||
|
- seedling
|
||||||
|
label: The us-Sunnah Foundation
|
||||||
|
url: 'https://www.ussunnah.org'
|
||||||
|
themeco:
|
||||||
|
icons:
|
||||||
|
- themeco
|
||||||
|
label: Themeco
|
||||||
|
url: 'https://theme.co'
|
||||||
|
think-peaks:
|
||||||
|
icons:
|
||||||
|
- think-peaks
|
||||||
|
label: Think Peaks
|
||||||
|
url: 'https://thinkpeaks.com/'
|
||||||
|
typo3:
|
||||||
|
icons:
|
||||||
|
- typo3
|
||||||
|
label: Typo3
|
||||||
|
url: 'https://typo3.org'
|
||||||
|
uniregistry:
|
||||||
|
icons:
|
||||||
|
- uniregistry
|
||||||
|
label: Uniregistry
|
||||||
|
url: 'https://uniregistry.com'
|
||||||
|
us-sunnah-foundation:
|
||||||
|
icons:
|
||||||
|
- ussunnah
|
||||||
|
label: us-Sunnah Foundation
|
||||||
|
url: 'https://www.ussunnah.org'
|
||||||
|
vaadin:
|
||||||
|
icons:
|
||||||
|
- vaadin
|
||||||
|
label: Vaadin
|
||||||
|
url: 'http://vaadin.com'
|
||||||
|
via:
|
||||||
|
icons:
|
||||||
|
- car-crash
|
||||||
|
- draw-polygon
|
||||||
|
- house-damage
|
||||||
|
- layer-group
|
||||||
|
- skull-crossbones
|
||||||
|
- user-injured
|
||||||
|
label: VIA Traffic Software Solutions
|
||||||
|
url: 'https://www.via.software'
|
||||||
|
victor-costan:
|
||||||
|
icons:
|
||||||
|
- otter
|
||||||
|
label: Staphany Park and Victor Costan
|
||||||
|
vnv:
|
||||||
|
icons:
|
||||||
|
- vnv
|
||||||
|
label: VNV
|
||||||
|
url: 'https://www.vnv.ch'
|
||||||
|
weedable:
|
||||||
|
icons:
|
||||||
|
- bong
|
||||||
|
- cannabis
|
||||||
|
- hippo
|
||||||
|
- joint
|
||||||
|
- mortar-pestle
|
||||||
|
- prescription
|
||||||
|
label: Weedable
|
||||||
|
url: 'https://www.weedable.com'
|
||||||
|
whmcs:
|
||||||
|
icons:
|
||||||
|
- whmcs
|
||||||
|
label: WHMCS
|
||||||
|
url: 'https://www.whmcs.com'
|
||||||
|
workrails:
|
||||||
|
icons:
|
||||||
|
- briefcase
|
||||||
|
label: WorkRails
|
||||||
|
url: 'https://www.workrails.com'
|
||||||
|
wpressr:
|
||||||
|
icons:
|
||||||
|
- wpressr
|
||||||
|
label: wpressr
|
||||||
|
url: 'https://wpressr.com'
|
20
font-awesome/scss/_animated.scss
vendored
Normal file
20
font-awesome/scss/_animated.scss
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// Animated Icons
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-spin {
|
||||||
|
animation: fa-spin 2s infinite linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-pulse {
|
||||||
|
animation: fa-spin 1s infinite steps(8);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
@ -2,24 +2,19 @@
|
|||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
.#{$fa-css-prefix}-border {
|
.#{$fa-css-prefix}-border {
|
||||||
padding: .2em .25em .15em;
|
|
||||||
border: solid .08em $fa-border-color;
|
border: solid .08em $fa-border-color;
|
||||||
border-radius: .1em;
|
border-radius: .1em;
|
||||||
|
padding: .2em .25em .15em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.#{$fa-css-prefix}-pull-left { float: left; }
|
.#{$fa-css-prefix}-pull-left { float: left; }
|
||||||
.#{$fa-css-prefix}-pull-right { float: right; }
|
.#{$fa-css-prefix}-pull-right { float: right; }
|
||||||
|
|
||||||
.#{$fa-css-prefix} {
|
.#{$fa-css-prefix},
|
||||||
|
.fas,
|
||||||
|
.far,
|
||||||
|
.fal,
|
||||||
|
.fab {
|
||||||
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
|
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||||
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
|
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Deprecated as of 4.4.0 */
|
|
||||||
.pull-right { float: right; }
|
|
||||||
.pull-left { float: left; }
|
|
||||||
|
|
||||||
.#{$fa-css-prefix} {
|
|
||||||
&.pull-left { margin-right: .3em; }
|
|
||||||
&.pull-right { margin-left: .3em; }
|
|
||||||
}
|
|
20
font-awesome/scss/_core.scss
vendored
Normal file
20
font-awesome/scss/_core.scss
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// Base Class Definition
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.#{$fa-css-prefix},
|
||||||
|
.fas,
|
||||||
|
.far,
|
||||||
|
.fal,
|
||||||
|
.fab {
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
display: inline-block;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
text-rendering: auto;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
%fa-icon {
|
||||||
|
@include fa-icon;
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
// Fixed Width Icons
|
// Fixed Width Icons
|
||||||
// -------------------------
|
// -------------------------
|
||||||
.#{$fa-css-prefix}-fw {
|
.#{$fa-css-prefix}-fw {
|
||||||
width: (18em / 14);
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
width: $fa-fw-width;
|
||||||
}
|
}
|
1333
font-awesome/scss/_icons.scss
vendored
Normal file
1333
font-awesome/scss/_icons.scss
vendored
Normal file
File diff suppressed because it is too large
Load Diff
23
font-awesome/scss/_larger.scss
vendored
Normal file
23
font-awesome/scss/_larger.scss
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// Icon Sizes
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
// makes the font 33% larger relative to the icon container
|
||||||
|
.#{$fa-css-prefix}-lg {
|
||||||
|
font-size: (4em / 3);
|
||||||
|
line-height: (3em / 4);
|
||||||
|
vertical-align: -.0667em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-xs {
|
||||||
|
font-size: .75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-sm {
|
||||||
|
font-size: .875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
@for $i from 1 through 10 {
|
||||||
|
.#{$fa-css-prefix}-#{$i}x {
|
||||||
|
font-size: $i * 1em;
|
||||||
|
}
|
||||||
|
}
|
@ -2,18 +2,17 @@
|
|||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
.#{$fa-css-prefix}-ul {
|
.#{$fa-css-prefix}-ul {
|
||||||
padding-left: 0;
|
|
||||||
margin-left: $fa-li-width;
|
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
|
margin-left: $fa-li-width * 5/4;
|
||||||
|
padding-left: 0;
|
||||||
|
|
||||||
> li { position: relative; }
|
> li { position: relative; }
|
||||||
}
|
}
|
||||||
|
|
||||||
.#{$fa-css-prefix}-li {
|
.#{$fa-css-prefix}-li {
|
||||||
position: absolute;
|
|
||||||
left: -$fa-li-width;
|
left: -$fa-li-width;
|
||||||
width: $fa-li-width;
|
position: absolute;
|
||||||
top: (2em / 14);
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
&.#{$fa-css-prefix}-lg {
|
width: $fa-li-width;
|
||||||
left: -$fa-li-width + (4em / 14);
|
line-height: inherit;
|
||||||
}
|
|
||||||
}
|
}
|
57
font-awesome/scss/_mixins.scss
vendored
Normal file
57
font-awesome/scss/_mixins.scss
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
// Mixins
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
@mixin fa-icon {
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
display: inline-block;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1;
|
||||||
|
vertical-align: -.125em;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin fa-icon-rotate($degrees, $rotation) {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
|
||||||
|
transform: rotate($degrees);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin fa-icon-flip($horiz, $vert, $rotation) {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
|
||||||
|
transform: scale($horiz, $vert);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Only display content to screen readers. A la Bootstrap 4.
|
||||||
|
//
|
||||||
|
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||||
|
|
||||||
|
@mixin sr-only {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||||
|
//
|
||||||
|
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||||
|
//
|
||||||
|
// Credit: HTML5 Boilerplate
|
||||||
|
|
||||||
|
@mixin sr-only-focusable {
|
||||||
|
&:active,
|
||||||
|
&:focus {
|
||||||
|
clip: auto;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
overflow: visible;
|
||||||
|
position: static;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
@ -7,14 +7,17 @@
|
|||||||
|
|
||||||
.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
|
.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
|
||||||
.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
|
.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
|
||||||
|
.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); }
|
||||||
|
|
||||||
// Hook for IE8-9
|
// Hook for IE8-9
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
:root .#{$fa-css-prefix}-rotate-90,
|
:root {
|
||||||
:root .#{$fa-css-prefix}-rotate-180,
|
.#{$fa-css-prefix}-rotate-90,
|
||||||
:root .#{$fa-css-prefix}-rotate-270,
|
.#{$fa-css-prefix}-rotate-180,
|
||||||
:root .#{$fa-css-prefix}-flip-horizontal,
|
.#{$fa-css-prefix}-rotate-270,
|
||||||
:root .#{$fa-css-prefix}-flip-vertical {
|
.#{$fa-css-prefix}-flip-horizontal,
|
||||||
filter: none;
|
.#{$fa-css-prefix}-flip-vertical {
|
||||||
|
filter: none;
|
||||||
|
}
|
||||||
}
|
}
|
5
font-awesome/scss/_screen-reader.scss
vendored
Normal file
5
font-awesome/scss/_screen-reader.scss
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Screen Readers
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.sr-only { @include sr-only; }
|
||||||
|
.sr-only-focusable { @include sr-only-focusable; }
|
2062
font-awesome/scss/_shims.scss
vendored
Normal file
2062
font-awesome/scss/_shims.scss
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -2,19 +2,30 @@
|
|||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
.#{$fa-css-prefix}-stack {
|
.#{$fa-css-prefix}-stack {
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 2em;
|
|
||||||
height: 2em;
|
height: 2em;
|
||||||
line-height: 2em;
|
line-height: 2em;
|
||||||
|
position: relative;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
width: ($fa-fw-width*2);
|
||||||
}
|
}
|
||||||
.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
|
|
||||||
position: absolute;
|
.#{$fa-css-prefix}-stack-1x,
|
||||||
|
.#{$fa-css-prefix}-stack-2x {
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
position: absolute;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-stack-1x {
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-stack-2x {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-inverse {
|
||||||
|
color: $fa-inverse;
|
||||||
}
|
}
|
||||||
.#{$fa-css-prefix}-stack-1x { line-height: inherit; }
|
|
||||||
.#{$fa-css-prefix}-stack-2x { font-size: 2em; }
|
|
||||||
.#{$fa-css-prefix}-inverse { color: $fa-inverse; }
|
|
1347
font-awesome/scss/_variables.scss
vendored
Normal file
1347
font-awesome/scss/_variables.scss
vendored
Normal file
File diff suppressed because it is too large
Load Diff
17
font-awesome/scss/brands.scss
vendored
Normal file
17
font-awesome/scss/brands.scss
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
@import 'variables';
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: url('#{$fa-font-path}/fa-brands-400.eot');
|
||||||
|
src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
||||||
|
url('#{$fa-font-path}/fa-brands-400.woff') format('woff'),
|
||||||
|
url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'),
|
||||||
|
url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
}
|
12
font-awesome/scss/fontawesome.scss
vendored
Normal file
12
font-awesome/scss/fontawesome.scss
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
@import 'variables';
|
||||||
|
@import 'mixins';
|
||||||
|
@import 'core';
|
||||||
|
@import 'larger';
|
||||||
|
@import 'fixed-width';
|
||||||
|
@import 'list';
|
||||||
|
@import 'bordered-pulled';
|
||||||
|
@import 'animated';
|
||||||
|
@import 'rotated-flipped';
|
||||||
|
@import 'stacked';
|
||||||
|
@import 'icons';
|
||||||
|
@import 'screen-reader';
|
18
font-awesome/scss/regular.scss
vendored
Normal file
18
font-awesome/scss/regular.scss
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
@import 'variables';
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url('#{$fa-font-path}/fa-regular-400.eot');
|
||||||
|
src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
||||||
|
url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),
|
||||||
|
url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),
|
||||||
|
url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.far {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user