2015-01-22 22:05:35 +00:00
<!DOCTYPE html>
< html >
< head >
2019-12-11 13:32:34 +00:00
< meta name = "generator" content = "Hugo 0.60.1" / >
2015-01-22 22:05:35 +00:00
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" >
2019-01-10 18:35:05 +00:00
< title > Balkian' s site - Balkian' s site< / title >
2015-01-22 22:05:35 +00:00
< meta name = "viewport" content = "width=device-width" >
2019-01-10 18:35:05 +00:00
< link rel = "stylesheet" href = "./font-awesome/css/all.css" >
2015-01-22 22:05:35 +00:00
2019-01-10 18:35:05 +00:00
2015-01-22 22:05:35 +00:00
2019-01-10 18:35:05 +00:00
< link rel = "stylesheet" media = "only screen" href = "./css/main.css" >
2015-01-22 22:05:35 +00:00
< 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" >
2019-01-08 17:22:33 +00:00
< header id = "header" >
< ul class = "navbar" id = "navbar" >
2019-01-10 18:35:05 +00:00
< a href = "./" >
2019-12-11 13:32:34 +00:00
< li >
2019-01-08 17:22:33 +00:00
< i class = "fa fa-home fa-large" > < / i >
< / li > < / a >
2019-01-10 18:35:05 +00:00
< a href = "./post/" > < li class = '' > Blog
< / li > < / a >
< a href = "./tags/" > < li class = '' > Tags
2019-01-08 17:22:33 +00:00
< / li > < / a >
2019-01-10 18:35:05 +00:00
< a href = "./cheatsheet/" > < li class = '' > Cheatsheets
2019-01-08 17:22:33 +00:00
< / li > < / a >
2019-01-10 18:35:05 +00:00
< a href = "./project/" > < li class = '' > Projects
2019-01-08 17:22:33 +00:00
< / li > < / a >
2019-01-10 18:35:05 +00:00
2019-01-11 14:45:46 +00:00
< a href = "./page/todo/" > < li class = '' > To-do
< / li > < / a >
2019-01-08 17:22:33 +00:00
< a href = "//jfernando.es" target = "_blank" > < li >
CV
< / li > < / a >
2019-01-11 14:45:46 +00:00
< a href = "./search" > < li >
< i class = "fa fa-search" > < / i >
< / li > < / a >
2019-01-08 17:22:33 +00:00
< / ul >
< / header >
2019-01-10 18:35:05 +00:00
2013-08-22 23:57:31 +00:00
2019-12-11 13:32:34 +00:00
< div class = "entry" >
< div class = "posthead" >
< span class = "date" > 2019/06/01< / span >
< h2 > < a href = "./post/2019-05-01-surface-go/" class = "title" > Linux on the Microsoft Surface Go< / a > < / h2 >
< a class = "tag" href = './tags/linux' > < span class = "label" > linux< / span > < / a >
< a class = "tag" href = './tags/surface-go' > < span class = "label" > surface go< / span > < / a >
< a class = "tag" href = './tags/config' > < span class = "label" > config< / span > < / a >
< / div >
These are some useful notes to get Ubuntu installed in your surface go, as of Summer 2019.
< div > < a href = "./post/2019-05-01-surface-go/" > < div class = "readmore" > Read more...< / div > < / a > < / div >
< / div >
< div class = "entry" >
< div class = "posthead" >
< span class = "date" > 2019/06/01< / span >
< h2 > < a href = "./post/surface-go/" class = "title" > Linux on the Microsoft Surface Go< / a > < / h2 >
< a class = "tag" href = './tags/linux' > < span class = "label" > linux< / span > < / a >
< a class = "tag" href = './tags/surface-go' > < span class = "label" > surface go< / span > < / a >
< a class = "tag" href = './tags/config' > < span class = "label" > config< / span > < / a >
< / div >
Believe it or not, Surface tablets have pretty good linux support, except for the webcams in newer models.
These are some useful notes to get Ubuntu installed on your surface go, as of Summer 2019.
< div > < a href = "./post/surface-go/" > < div class = "readmore" > Read more...< / div > < / a > < / div >
< / div >
2019-01-10 18:35:05 +00:00
< div class = "entry" >
< div class = "posthead" >
< span class = "date" > 2019/01/06< / span >
< h2 > < a href = "./post/2019-01-06-zigbee2mqtt/" class = "title" > Controlling Zigbee devices with MQTT< / a > < / h2 >
< 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 >
2016-02-03 17:56:30 +00:00
2015-12-10 14:44:33 +00:00
< / div >
2019-01-10 18:35:05 +00:00
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.
2019-12-11 13:32:34 +00:00
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.
2019-01-10 18:35:05 +00:00
< div > < a href = "./post/2019-01-06-zigbee2mqtt/" > < div class = "readmore" > Read more...< / div > < / a > < / div >
< / div >
< div class = "entry" >
< div class = "posthead" >
< span class = "date" > 2016/09/28< / span >
< h2 > < a href = "./post/2016-09-28-tqdm/" class = "title" > Progress bars in python< / a > < / h2 >
< a class = "tag" href = './tags/python' > < span class = "label" > python< / span > < / a >
2015-01-22 22:05:35 +00:00
< / div >
2019-01-10 18:35:05 +00:00
< p > < a 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 >
2019-12-11 13:32:34 +00:00
< p > < img src = "https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" alt = "image" > < / p >
2019-01-10 18:35:05 +00:00
< 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;" >
2019-12-11 13:32:34 +00:00
< pre style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4" > < code > < span style = "margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" > 1
< / span > < span style = "margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" > 2
< / span > < span style = "margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" > 3
< / span > < span style = "margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" > 4
< / span > < span style = "margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" > 5
2019-01-10 18:35:05 +00:00
< / span > < / code > < / pre > < / td >
2019-12-11 13:32:34 +00:00
< td style = "vertical-align:top;padding:0;margin:0;border:0;;width:100%" >
2019-01-10 18:35:05 +00:00
< 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 = "color:#f92672" > from< / span > tqdm < span style = "color:#f92672" > import< / span > tqdm
< span style = "color:#f92672" > import< / span > time
< span style = "color:#66d9ef" > for< / span > i < span style = "color:#f92672" > in< / span > tqdm(range(< span style = "color:#ae81ff" > 100< / span > )):
2019-12-11 13:32:34 +00:00
time< span style = "color:#f92672" > .< / span > sleep(< span style = "color:#ae81ff" > 1< / span > )
< / code > < / pre > < / td > < / tr > < / table >
2019-01-10 18:35:05 +00:00
< / div >
< / div >
< / div >
< div class = "entry" >
< div class = "posthead" >
< span class = "date" > 2015/04/10< / span >
< h2 > < a href = "./post/2015-04-10-github-dotfiles/" class = "title" > Sharing dotfiles< / a > < / h2 >
< 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 >
2019-01-08 17:22:33 +00:00
< / div >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
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.
2019-01-10 18:35:05 +00:00
As part of moving to emacs, I starting using the incredibly useful gh.el. When you first use it, the extension saves either your password or an OAuth token in your .
< div > < a href = "./post/2015-04-10-github-dotfiles/" > < div class = "readmore" > Read more...< / div > < / a > < / div >
< / div >
2013-08-22 23:57:31 +00:00
< div class = "pagination pag-bottom" >
2019-01-10 18:35:05 +00:00
< span class = "previouspage" style = "display:none;" > < i class = "icon-chevron-sign-left" > < / i > Previous Page< / span >
< span class = "nextpage" > < a href = "./page/2/" > Next Page< / a > < i class = "icon-chevron-sign-right" > < / i > < / span >
2013-08-22 23:57:31 +00:00
< / div >
2019-01-10 18:35:05 +00:00
2015-01-22 22:05:35 +00:00
< / div >
2019-01-10 18:35:05 +00:00
< div id = "sidebar" class = "fixed" >
2019-01-08 17:22:33 +00:00
< div id = "badge" class = "flip-container" ontouchstart = "this.classList.toggle('hover');" >
2019-12-11 13:32:34 +00:00
< div class = "flipper sticky expand" >
2019-01-08 17:22:33 +00:00
< div class = "front" >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< img id = "avatar" class = "expandx" src = "./img/me.png" >
2019-01-08 17:22:33 +00:00
< / div >
< div class = "back" >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< div id = "about" >
< div class = "icons vertical-center" >
< 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 >
2019-01-08 17:22:33 +00:00
< / div >
< / div >
< / div >
< div class = "entries" >
< h2 class = "title" > Latest entries< / h2 >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< dt > < a href = "./post/2019-05-01-surface-go/" > Linux on the Microsoft Surface Go< / a > < / dt >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< a class = "tag" href = './tags/linux' > < span class = "label" > linux< / span > < / a >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< a class = "tag" href = './tags/surface-go' > < span class = "label" > surface go< / span > < / a >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< a class = "tag" href = './tags/config' > < span class = "label" > config< / span > < / a >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< dt > < a href = "./post/surface-go/" > Linux on the Microsoft Surface Go< / a > < / dt >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< a class = "tag" href = './tags/linux' > < span class = "label" > linux< / span > < / a >
< a class = "tag" href = './tags/surface-go' > < span class = "label" > surface go< / span > < / a >
< a class = "tag" href = './tags/config' > < span class = "label" > config< / span > < / a >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< dt > < a href = "./post/2019-01-06-zigbee2mqtt/" > Controlling Zigbee devices with MQTT< / a > < / dt >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< a class = "tag" href = './tags/mqtt' > < span class = "label" > mqtt< / span > < / a >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< a class = "tag" href = './tags/iot' > < span class = "label" > iot< / span > < / a >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< a class = "tag" href = './tags/zigbee' > < span class = "label" > zigbee< / span > < / a >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< dt > < a href = "./post/2016-09-28-tqdm/" > Progress bars in python< / a > < / dt >
2019-01-10 18:35:05 +00:00
2019-12-11 13:32:34 +00:00
< a class = "tag" href = './tags/python' > < span class = "label" > python< / span > < / a >
2019-01-10 18:35:05 +00:00
2019-01-08 17:22:33 +00:00
< / div >
2019-01-10 18:35:05 +00:00
< / div >
< div class = "clear" > < / div >
2015-01-22 22:05:35 +00:00
< / div >
2019-01-10 18:35:05 +00:00
< footer class = "pagefooter" role = "contentinfo" >
2015-01-22 22:05:35 +00:00
< div class = "contact" >
< p >
J. Fernando Sánchez Rada | balkian
< / p >
< / div >
< ul id = "social" >
2019-01-10 18:35:05 +00:00
< 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 >
2015-01-22 22:05:35 +00:00
< / ul >
< p >
2019-01-10 18:35:05 +00:00
< i class = "fab fa-creative-commons" > < / i > Creative Commons A-SA-NC
2015-01-22 22:05:35 +00:00
< / p >
< / footer >
< / div >
2019-01-10 18:35:05 +00:00
< script src = "./js/jquery-2.0.2.min.js" > < / script >
2019-01-11 14:45:46 +00:00
2015-01-22 22:05:35 +00:00
< / body >
2019-01-10 18:35:05 +00:00
< / html >