summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlog/2010-11-12-reboot.org20
-rwxr-xr-xlog/2010-11-12-sync-with-text-files.org71
-rwxr-xr-xlog/2011-02-16-less-code-more-dance.org113
-rwxr-xr-xlog/2011-02-17-ubuntu-shows-its-true-colors.org83
-rwxr-xr-xlog/2011-04-30-gsoc-2011-and-dancer.org46
-rwxr-xr-xlog/2011-05-25-may-updates.org40
-rwxr-xr-xlog/2011-08-01-june-july-updates.org52
-rwxr-xr-xlog/2013-09-25-a-quick-update-in-ten-points.org40
-rwxr-xr-xlog/2013-09-30-back-to-emacs.org37
-rwxr-xr-xlog/2013-10-09-keep-fun-in-computing.org31
-rwxr-xr-xlog/2015-03-15-alife-of-todos.org267
-rwxr-xr-xlog/2015-03-29-helping-the-multilineal-culture.org143
-rw-r--r--log/2015-08-12-spqr.markdown59
-rw-r--r--log/2015-10-07-rosa-rosa-rosam.markdown46
-rw-r--r--log/2015-11-28-carpe-diem.markdown50
-rw-r--r--log/2015-12-07-tu-quoque.markdown58
-rw-r--r--site.hs52
17 files changed, 971 insertions, 237 deletions
diff --git a/log/2010-11-12-reboot.org b/log/2010-11-12-reboot.org
new file mode 100755
index 0000000..f5b052a
--- /dev/null
+++ b/log/2010-11-12-reboot.org
@@ -0,0 +1,20 @@
+---
+title: reboot
+date: 2010-11-12
+layout: post
+category: log
+---
+
+Hello, I decided to reboot my blog. Starting with four new sections, I
+will try to convey more with less.
+
+Looking for a balance between the personal and the technical entries,
+the technical focus from my last blog won't be the main topic, hence,
+the new ideal is to write more about everything.
+
+This are the sections:
+
+ - *info*: My contact information, FAQs, blogroll, and other goodies.
+ - *archive*: I guess it speaks for itself.
+ - *feed*: Subscribe to this blog via RSS.
+ - *code*: Articles, scripts, snippets, and content related with prog.lang. and code.
diff --git a/log/2010-11-12-sync-with-text-files.org b/log/2010-11-12-sync-with-text-files.org
new file mode 100755
index 0000000..82adea7
--- /dev/null
+++ b/log/2010-11-12-sync-with-text-files.org
@@ -0,0 +1,71 @@
+---
+title: sync with text files
+date: 2010-11-12
+layout: post
+category: log
+---
+
+One of the advantages of Unix applications and services are the OS
+configuration files. Most of them are flat text files. A portable
+solution for any synchronization task.
+
+Storing Data in text files is a unique style originated by the Unix
+philosophy. Those familiar with this can always recall the Unix motto:
+"In Unix everything is a file."
+
+To emphasize on this, here are several principles of the Unix
+Philosophy:
+
+ 1. /Small is beautiful./
+ 2. /Write programs to handle text streams./
+ 3. /Choose portability over efficiency./
+ 4. /Store data in flat text files./
+
+In comparison with other bulky encoded solutions to store Data, there
+is always a medium or an interpreter in the process to obtain a
+readable output, for this text files are an open, manegable, lean, and
+light solution.
+
+With the emerging scene of gadgets, specially smart-phones, people in
+the IT and Design industry moved to a complex handle of notes,
+contacts, and files. The need to sync between devices became eminent.
+However, this imploded into a mess of different encodings and file
+schemes. Users went back to a minimalist handle of files. Then came
+the services like [[https://www.dropbox.com/][Dropbox]] and [[http://www.simpletext.ws/][SimpleText.ws]], which became the main
+topic of the IT blogosphere of that time. By now, there is a whole
+market for backup and sync solutions, but the last mentioned have
+maintained a notable position among the paid and the free services.
+
+[[http://www.instapaper.com][Instapaper]] is the name of the new contender. In the same field, but
+with different goal. Instapaper was made as a quick bookmark solution,
+like storing a magazine article for reading later.
+
+I use Dropbox on a daily basis, but I use SimpleText.ws for storing my
+address book along with my calendar file. Instapaper was my handy tool
+for the reading weekends, and became my new companion in traffic and
+long trips.
+
+On Dropbox:
+
+ - Config Files: =.bashrc= - =.vimrc= - =/etc/=
+ - Recent Code: files, scripts and snippets I haven't finished.
+ - Recent Images: Photos and graphics to be uploaded to my flickr account.
+ - School Work: Essays, research papers and other reports. Basically, homework.
+
+On SimpleText.ws:
+
+ - Address Book: Phones, email address and contact information.
+ - Personal Finance Spreadsheet: Believe it or not, CSV files can be used as spreadsheets.
+ - Calendar File: With the use of [[http://search.cpan.org/~rfrankel/iCal-Parser-1.16/lib/iCal/Parser.pm][iCal::Parser]] and [[http://search.cpan.org/~rfrankel/iCal-Parser-HTML-1.07/lib/iCal/Parser/HTML.pm][iCal::Parser::HTML]], I can generate XML and HTML files of my calendar.
+ - Grocery List: Most important thing of the day.
+ - TODO: To-do list
+
+Just to make a point, each service has it own purpose. On another
+note, *never upload important information* like passwords list, your
+savings spreadsheets and such. Always revise and review what is stored
+in your sync service. Keep an eye on the export option that your
+favorite applications use, look for a flat text file export.
+
+A good example is the [[http://en.wikipedia.org/wiki/OpenDocument][.odt format]] from [[http://openoffice.org/][OpenOffice.org]]. .odt file
+format like others share a common goal, to be edited by any text
+editor.
diff --git a/log/2011-02-16-less-code-more-dance.org b/log/2011-02-16-less-code-more-dance.org
new file mode 100755
index 0000000..2384dd9
--- /dev/null
+++ b/log/2011-02-16-less-code-more-dance.org
@@ -0,0 +1,113 @@
+---
+title: Less code more dance
+date: 2011-02-16
+layout: post
+category: log
+---
+
+Yes, I've migrated my blog framework again. After several migrations,
+there's finally a web framework that works for me. It's called Dancer,
+and as redundant as this might sound; [[http://perldancer.org/][Dancer]], is an effortless web
+framework.
+
+Last year, I started writing my own mini-blog engine with several
+modules from CPAN; however, the engine became complicated and robust.
+Processing different tasks with more than 5 modules, I was calling
+more objects than actually outputting any useful data. I've known
+about Dancer since its early development, but never expected to run in
+my VPS hosting, [[http://nearlyfreespeech.net][NearlyFreeSpeech]].
+
+*How does it work*\\
+Dancer works like [[http://www.sinatrarb.com/intro][Sinatra]] for Ruby. Just like Sinatra,
+Dancer works with routes. I like to call them, dance moves.
+
+*For every request, there's a dance move...*\\
+A route is an HTTP request with an URL pattern. For every request, there is an associated block of code
+that will handle a task in your web-app.
+
+Simple example:\\
+#+begin_src perl
+#!/usr/bin/env perl
+use Dancer;
+
+get '/' => sub {
+ ...do something
+ ...display something
+ ...call something
+};
+
+dance;
+#+end_src
+
+Working example:\\
+#+begin_src perl
+#!/usr/bin/env perl
+use Dancer;
+
+get '/feed/:format' => sub {
+ my $db = connect_db();
+ my $sth = $db->prepare($sql) or
+ die $db->errstr;
+ $sth->execute or die $sth->errstr;
+ my $feed = create_feed(
+ format => params->{format},
+ entries => _get_entries(
+ $sth->fetchall_arrayref({}))
+ );
+ $sth->finish();
+ return $feed;
+};
+
+dance;
+#+end_src
+
+To sum it up, the first example shows the structure of a route. The
+second, shows a working example of my mini-blog engine feed request.
+To get the working example, there has to be a request to
+[[http://log.gnusosa.net/feed/rss][http://log.gnusosa.net/feed/rss]] or [[http://log.gnusosa.net/feed/atom][http://log.gnusosa.net/feed/atom]];
+which ever is the case, the route will display the desired feed
+format.
+
+It took me more time studying Dancer's features and specs, than the
+time it took for me to write the whole mini-blog app. In my case, my
+runtime errors were caused by external modules. Debugging was an easy
+task thanks to the logs generated by the Dancer core, and the error
+message from Dancer's development environment. By the time, I finished
+writing the main routes, there were several examples on how to deploy
+the web-app in a CGI environment.
+
+*An environment becomes a dance floor...*\\
+Dancer comes with a standalone development server, that can bring up
+your apps at http://127.0.0.0:3000/ . This is a handy feature that
+helps to develop without a testing server, that way your focus stays
+on building the web-app, instead, of focusing on transferring files.
+
+Easy as running:\\
+#+begin_src sh
+$ cd App
+$ perl bin/app.pl
+>> Dancer server 16222 listening on http://0.0.0.0:3000
+== Entering the development dance floor ...
+#+end_src
+
+Like most recent Web frameworks for Perl, Dancer supports [[http://plackperl.org/][Plack]]/[[http://plackperl.org/][PSGI]],
+and work together as a built-in script that deploys the web-app in any
+webserver.
+
+*In the dance floor...*\\
+Dancer is known to be fast, and minimalistic. PSGI compatible, Dancer
+can be deployed in any recent webserver, including, the dominant
+Apache. I've seen several instances of Dancer using Nginx, Lighttpd,
+and even Apache with mod_proxy. However, many people don't recommend
+robust web-apps in a CGI deployment, and mid-size apps in Fast-CGI.
+Many add to this discussion that Dancer is capable of handling robust,
+complicated, and resourceful web apps. I subscribe to that idea; with
+a good webserver in a fast enviroment like Fast-CGI or in a lean
+webserver like Nginx, Dancer can show its moves.
+
+To get a better idea of the cases in which Dancer can be opted for,
+there is the [[http://search.cpan.org/dist/Dancer/lib/Dancer/Cookbook.pod][Dancer::Cookbook]], and the [[http://advent.perldancer.org/2010][Dancer Advent Calendar]]. For big
+projects, there is always [[http://www.mojolicious.org/][Mojolicious]].
+
+This log was made with Dancer, and is deployed in a CGI enviroment on
+Apache in a VPS webserver.
diff --git a/log/2011-02-17-ubuntu-shows-its-true-colors.org b/log/2011-02-17-ubuntu-shows-its-true-colors.org
new file mode 100755
index 0000000..cc38880
--- /dev/null
+++ b/log/2011-02-17-ubuntu-shows-its-true-colors.org
@@ -0,0 +1,83 @@
+---
+title: Ubuntu shows its true colors
+date: 2011-02-17
+layout: post
+category: log
+---
+
+Before you start reading, let me point out that I haven't use [[http://www.ubuntu.com/][Ubuntu]]
+since its early development, and by the time the first install images
+came out, my interest on the [[http://en.wikipedia.org/wiki/GNU/Linux_distro][distro]] rapidly banished. It came out as
+something new, and it truly was; however, back then in late 2005, it
+just felt like it was a reinvention of the wheel. Another distro based
+on [[http://debian.org][Debian]], another philosophy that half-matched Debian's solid
+policies.
+
+By the time Ubuntu was a stable release, it was mastering the end-user
+experience that they promised: The Linux Desktop Experience. So what
+made me move away from it? the Desktop feeling; add-ons everywhere,
+GNOME in here and there, GTK+ in that, and the icons Oh! The icons!
+Those were my pet peeves on any GNU/Linux distro. I like to keep it
+minimal, clean, and CLI friendly.
+
+*Ubuntu shows off* \\
+Last weekend, while my girlfriend was using her laptop, I found myself
+intrigue by the fact that it fulfilled all the expectations of my
+girlfriend's daily tasks with an OS. Before that, I vaguely remembered
+that she told me, she was going to install Ubuntu, well this seemed
+more of a testing phase than an actual full migration. By now, with
+the help of her friends, she fully migrated from Windows, and she
+couldn't be happier since her first remarks of Ubuntu were "Everything
+is faster, and it feels more natural now."
+
+#+CAPTION: I have a Totoro tattoo on my right arm.
+#+ATTR_HTML: :alt Totoro and Mei image :title I have a Totoro tattoo on my right arm. :align center
+[[file:images/ubuntu-gf.png][file:images/thumbs/thumb-ubuntu-gf.png]]
+
+After the full installation, my girlfriend didn't install anything,
+until she needed several applications for her college courses. For
+example, [[http://www.mono-project.com][Mono]] for C#/.Net, and Skype to talk to her Mom. For the
+normal user tasks like writing and social media, she uses the default
+installed applications. You know the basics: OpenOffice.org suite,
+Empathy, Gwibber, Gnome Media Player, etc... You get the idea.
+
+#+CAPTION: Enjoying Ubuntu's Desktop.
+#+ATTR_HTML: :alt Enjoying Ubuntu's Desktop. :align center
+[[file:images/ubuntu-gf2.png][file:images/thumbs/thumb-ubuntu-gf2.png]]
+
+What amazes me the most, is the feeling of everything working right
+out of the box, and this includes the installation process. No further
+configuration, everything well thought for the common user. I can't
+stress how much GNU/Linux distros needed to take this route to be
+attractive to the common user. Of course, there are other
+distributions built for the Desktop user, yet they lack the convincing
+Desktop features that Ubuntu offers. The spaces, the menu bar well
+placed, the menus categories, and how everything works around the
+Desktop; brings some comfort for everyone new to Ubuntu. The menu bar
+placed in the top, is a natural feature to the Mac user, and for those
+coming from a Windows environment, the speed captivates them.
+
+*Continuous learning* \\
+It never occurred to me that my girlfriend was using the
+gnome-terminal to install different packages. "I use the Package
+Manager to search for a program, grab the package short-name, and
+after that I installed via =apt-get= in the Terminal."
+
+#+CAPTION: My girlfriend's apt-get action in gnome-terminal.
+#+ATTR_HTML: :alt My girlfriend's apt-get action in gnome-terminal. :align center
+[[file:images/ubuntu-gf3.png][file:images/thumbs/thumb-ubuntu-gf3.png]]
+
+This is a good starting point for her, it shows that her interest in
+the distro is still fresh. Like any new user, the disposition to learn
+becomes a fun stage. The fun of learning turns into useful work, and
+in the end, the user is gaining a new set of skills.
+
+Any OS has its learning curve, specially, GNU/Linux distros. But
+Ubuntu seems to take the best from both modern popular OS. This makes
+the transition funner, and inspires to try new things. Recently, one
+of my friends, told me about her girlfriend doing the Ubuntu to Debian
+testing transition. Which is great, and proves the point of trying new
+things.
+
+I can't wait to see my girlfriend using Vim.
+
diff --git a/log/2011-04-30-gsoc-2011-and-dancer.org b/log/2011-04-30-gsoc-2011-and-dancer.org
new file mode 100755
index 0000000..98a5f20
--- /dev/null
+++ b/log/2011-04-30-gsoc-2011-and-dancer.org
@@ -0,0 +1,46 @@
+---
+title: GSoC 2011 and Dancer
+date: 2011-04-30
+layout: post
+category: log
+---
+
+As of Monday, April 25th, I'm an accepted student to be part of [[http://www.google-melange.com/gsoc/homepage/google/gsoc2011][Google
+Summer of Code 2011]] for [[http://www.perlfoundation.org/][The Perl Foundation]] and the [[http://perldancer.org/][Perl Dancer]]
+project. I feel like this is more of an opportunity to learn from my
+mentors and others in the Perl community. Not that they will be my
+teachers, but mentors for the work that is expected from me. Even
+though my proposal is simple, the work won't be. We are still in the
+process of reworking the proposal schedule.
+
+You can find my proposal [[http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/gnusosa/1][here]].
+
+I will be working on an update module for the Dancer core. Since its
+stable releases, Dancer as been deployed without an update script or
+module. In my case, I've had to rewrite routes and functions to each
+new update for my blog to be up-to-date. This module will come in
+handy for each deployed web-app that hasn't been updated.
+
+My mentors are Sawyer X (=sawyer=) and Franck Cuny (=franck=),
+however, just like my mentors, Florian Ragwitz (=rafl=) helped me a
+lot in the whole process of applying and getting to know everyone.
+
+At first, I wanted to apply, but wasn't too sure about the whole idea.
+After communicating with =sawyer= back and forth via irc and mail, I
+decided to apply with a basic idea of what I wanted to do. =sawyer=
+decided that the update module would be a better idea to work on
+rather than fixing the multiple applicatons in one app.psgi file
+feature that was also proposed.
+
+As cheesy as this might sound, GSoC for me is more about the
+experience gained and networking with the community than the actual
+payments or intership. I know everything counts, but in the end, all
+this work is to give back to the Perl community and the Perl Dancer
+project.
+
+Thanks to my mentors, the Perl Dancer developers, the Perl community,
+and GSoC officials for the opportunity.
+
+Shout'out to =Hugmeir= for taking on the task of [[http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/hugmeir/1][cleaning the Perl
+core]], and to everyone else who was [[http://mdk.per.ly/2011/04/25/gsoc-the-tpf-accepted-students/][accepted to represent the Perl
+Foundation in GSoC]].
diff --git a/log/2011-05-25-may-updates.org b/log/2011-05-25-may-updates.org
new file mode 100755
index 0000000..24a6743
--- /dev/null
+++ b/log/2011-05-25-may-updates.org
@@ -0,0 +1,40 @@
+---
+title: may updates
+date: 2011-05-25
+layout: post
+category: log
+---
+
+I finally added the sorting logic for the entries in the code &
+[[/archive][archive]] section. With those changes made, the milestone I had set is
+finally done. But that also opened my interest to add more changes,
+specially, on the feeds. I guess the work is never over. So be on the
+lookout for new entries in the [[/code][code]] section, but be aware that this
+are long posts, similar to the typical documentation formats. My
+apologies if you were expecting the 650 words limitation of a normal
+entry format.
+
+On other news, [[http://google-opensource.blogspot.com/2011/05/google-summer-of-code-students-start.html][GSoC coding period]] started yesterday. This week it's
+expected from Google to send out the packages to the selected
+students, I'm mostly thrill, but cautious. Since that box symbolizes
+to me the responsibility that has been put on my shoulders. So I'm
+eager to learn and work for the project. Let's see what happens in the
+week.
+
+If you want to learn about my work of these week, see the [[/code/gsoc][gsoc section]]
+in the code section.
+
+On a less geekier side of life, summer has started in my border
+hometown of [[http://en.wikipedia.org/wiki/Mexicali][Mexicali]], and it isn't as hot as it always seems to be.
+The daily commute is simple and chill for the moment. I'm hoping it
+continues to be like that for more than two weeks. If not, then one of
+the days of June will be marked as a "visit to the beach" day in the
+calendar.
+
+I also did a move to a Flickr account, and I will be constantly
+uploading to it. So if you care to join me in the graphical side of
+life, the account name is the same as usual.
+
+For the ones who speak the hacking lingo/slang, fork me in my [[http://github.com/gnusosa/][github
+account]]. Check out my work for GSoC and [[http://perldancer.org/][Perl Dancer]] in my [[http://github.com/gnusosa/Dancer][Dancer repo]].
+
diff --git a/log/2011-08-01-june-july-updates.org b/log/2011-08-01-june-july-updates.org
new file mode 100755
index 0000000..6b37b2a
--- /dev/null
+++ b/log/2011-08-01-june-july-updates.org
@@ -0,0 +1,52 @@
+---
+title: june - july updates
+date: 2011-08-01
+layout: post
+category: log
+---
+Much has happened in these fast paced months, first and foremost,
+every week I was blessed with the presence of [[http://kdeveze.tumblr.com][my beautiful girlfriend]].
+Her constant care and help is what makes our days work for better. For
+that and more, I'm grateful.
+
+In a more egocentric agenda, I've been working non-stop for my next
+move to the big city. Of course, of the closest big cities in my area,
+the most =techie= is /[[http://en.wikipedia.org/wiki/San_Francisco][San Francisco]]/. So expect me soon in the
+streets of /[[http://en.wikipedia.org/wiki/North_Beach,_San_Francisco,_California][North Hill]]/, /[[http://en.wikipedia.org/wiki/South_of_Market,_San_Francisco][SoMa]]/, and /[[http://en.wikipedia.org/wiki/Russian_Hill,_San_Francisco][Russian
+Hill]]/. I haven't found a job nor a place to stay in SF, but I'm
+pretty sure that as soon as I get to the city, I will start seeking
+and settling in the beautiful city of massive sunsets.
+
+*Why San Francisco?*\\
+Well, simple answer:
+
+ - Techie city: Half of the population of professionals in SF is involved/works with technology.
+ - Beautiful city: [[http://www.flickr.com/search/?q=san%20francisco][Search for "San Francisco" in Flickr]], and you'll see what I mean.
+ - Fun city: Beach, restaurants, shows, mostly everything I like in walking distances.
+ - Diversity city: There is a huge diversity of races, cultures and activities.
+
+Born and raised in a border city, I've learned that the more I travel
+the more I learn, so moving to a city with such rich diversity will
+nourish and teach me more than any experience in my hometown will ever
+do.
+
+*I want to learn from all these key-points* that make\\
+/San Francisco/ such a magnificent metropolis.
+
+*What about School?*\\
+Well, what about it? I'm going to continue, probably enroll to a
+community college of the area, and continue until I can enroll in
+[[http://www.sfsu.edu/][SFSU]], [[http://www.ucsc.edu/][UCSC]] or [[http://berkeley.edu/][UCB]] (of course, if the gods of UC will grant me access).
+
+*On another note*, I'm almost done with =Google Summer of Code=. I've
+learned a lot, and I've experienced communicating remotely with other
+to other developers. To be honest, I don't want =GSoC= to end, I've
+learned a lot from my mentors, people that work with =Dancer=, and
+from the people that put so much time and effort to develop great
+projects in =Perl=.
+
+I have written about [[http://gnusosa.net/gsoc/2011/07/20/midterm-evaluations.html][my experience passing the midterms]], and also
+about [[http://gnusosa.net/gsoc/2011/07/27/current-state-dancer-script.html][the current status of my project with Perl Dancer]].
+
+I'm pretty sure my log will be more active in the following weeks.
+
diff --git a/log/2013-09-25-a-quick-update-in-ten-points.org b/log/2013-09-25-a-quick-update-in-ten-points.org
new file mode 100755
index 0000000..34bd592
--- /dev/null
+++ b/log/2013-09-25-a-quick-update-in-ten-points.org
@@ -0,0 +1,40 @@
+---
+title: a quick update in ten points
+date: 2013-09-25
+layout: post
+category: log
+---
+
+The last post was two years ago. San Francisco and the bay area offer
+attractions, conferences, and events of all kind. Therefore, the
+delay.
+
+I've enjoyed every single event with my new friends. Travel is now a
+usual task in my agenda. However, this will stop after my wife finds a
+job. Living with my wife is a beautiful adventure. She adapted to the
+city faster than I. Her goals are now to study, while maintaining a
+work-life balance.
+
+In retrospective, my life in ten points:
+
+ - Got married to my beautiful girlfriend.
+ - Worked in three important start-ups; two failed, and one gave me
+ great friends and mentors.
+ - Got involved in the Hacker space community of [[https://noisebridge.net][Noisebridge]] and
+ [[http://sudoroom.org][Sudoroom]].
+ - Lived in two popular San Francisco districts.
+ - Back to studying and playing [[http://en.wikipedia.org/wiki/Go_(game)][Go]].
+ - [[http://log.gnusosa.net/back-to-study-nihon][Back to studying Japanese]] 日本語.
+ - Traveled often to my hometown.
+ - Attended my first [[http://yapcna.org/yn2013/][YAPC::NA]].
+ - Rediscovered my love for LISP and [[http://mitpress.mit.edu/sicp/][SICP]].
+ - [[http://gnusosa.net/log/2013/09/30/back-to-emacs.html][Back to Emacs]].
+
+/The knowledge obtained in the past solves most challenges of the
+future./
+
+My personal life spectrum has grown. My new friends are now closer
+to my wife and I; my brothers are on the path of their own careers.
+Change is inspiring—I wouldn't change this two years in San
+Francisco for anything—my next move might be Berkeley, it's still
+undecided.
diff --git a/log/2013-09-30-back-to-emacs.org b/log/2013-09-30-back-to-emacs.org
new file mode 100755
index 0000000..5a433b6
--- /dev/null
+++ b/log/2013-09-30-back-to-emacs.org
@@ -0,0 +1,37 @@
+---
+title: back to Emacs
+date: 2013-09-30
+layout: post
+category: log
+---
+
+When I was attending college; both the teachers and the faculty of
+computer science recommended Emacs. Most course work and homework
+was designed for it. Every student I knew used Emacs. It wasn't a
+matter of personal decision, but an imposition of a tool.
+
+Six years ago, my devotion for Vim and fast text editing started. It
+turned into a habit that I no longer need. For the past years, most
+of my craft was dedicated to the end user, and the pragmatic design.
+My current job activities are to fine tune application logic and
+re-factor code. On a daily basis, aside from Emacs, I use ack, a pen,
+and some paper.
+
+*Why Emacs?*
+
+ - I think before typing
+ - complies with the [[http://www.moolenaar.net/habits.html][seven habits of effective text editing]]
+ - adheres to configuration conventions
+ - [[http://orgmode.org/guide/Preface.html#Preface][Org Mode]] - The killer feature
+ - LISP dialect interpreter integrated
+ - configuration and extensions in a LISP dialect
+ - extensions and packages for every task out there
+ - [[http://melpa.milkbox.net/][MELPA]]
+ - [[Http://emacswiki.org][Emacs Wiki]]
+
+Vim taught me what fast text editing is, how an editor should
+behave, how to edit text effectively, and how the OS & editor
+combination works. Both editors suffice the opinionated, and most
+user cases.
+
+The war is over.
diff --git a/log/2013-10-09-keep-fun-in-computing.org b/log/2013-10-09-keep-fun-in-computing.org
new file mode 100755
index 0000000..8a4c54c
--- /dev/null
+++ b/log/2013-10-09-keep-fun-in-computing.org
@@ -0,0 +1,31 @@
+---
+title: keep fun in computing
+date: 2013-10-09
+layout: post
+category: log
+---
+
+Taken from [[http://mitpress.mit.edu/sicp][Structure and Interpretation of Computer Programs]]:
+
+#+BEGIN_QUOTE
+"I think that it's extraordinarily important that we in computer
+science keep fun in computing. When it started out, it was an awful
+lot of fun. Of course, the paying customers got shafted every now
+and then, and after a while we began to take their complaints
+seriously. We began to feel as if we really were responsible for
+the successful, error-free perfect use of these machines. I don't
+think we are. I think we're responsible for stretching them,
+setting them off in new directions, and keeping fun in the house. I
+hope the field of computer science never loses its sense of fun.
+Above all, I hope we don't become missionaries. Don't feel as if
+you're Bible salesmen. The world has too many of those already.
+What you know about computing other people will learn. Don't feel
+as if the key to successful computing is only in your hands. What's
+in your hands, I think and hope, is intelligence: the ability to
+see the machine as more than when you were first led up to it, that
+you can make it more.”
+#+END_QUOTE
+
+/Alan J. Perlis (April 1, 1922-February 7, 1990)/
+
+Dear friends, let's keep having fun.
diff --git a/log/2015-03-15-alife-of-todos.org b/log/2015-03-15-alife-of-todos.org
new file mode 100755
index 0000000..b5b7ea0
--- /dev/null
+++ b/log/2015-03-15-alife-of-todos.org
@@ -0,0 +1,267 @@
+---
+title: A life of TODOs
+date: 2015-03-15
+layout: post
+category: log
+---
+
+It's been a year and seven months since I reintegrated Emacs to my
+life. I do most of my daily tasks with Emacs. From reading my favorite
+mailing lists with [[http://www.gnus.org/about.html][Gnus]], to replying to my work's [[https://github.com/baohaojun/org-jira][bug-tracker issues]].
+I do all of it inside of Emacs, well, almost all of it, [[http://www.gnu.org/software/emacs/manual/html_node/emacs/EWW.html][EWW]] is only
+good for browsing documentation..
+
+It came by surprise to me, but the data of my =TODO= says, that the
+major mode that drove me into the Emacs ecosystem, is [[http://orgmode.org/][Org-mode]].
+
+*** Decomposing Org-mode
+
+So what is *Org-mode*? That's usually the main question from the
+newcomers.
+
+At first, *Org*, short for Org-mode, looks like another markup
+language. To others, it's the way to export to multiple document
+formats from Emacs. To the ones that read the [[http://orgmode.org/manual/index.html][Org-mode manual]] or [[https://www.gnu.org/software/emacs/manual/html_node/org/index.html][Emacs
+info reader]], it's just a =TODO= list and Agenda suite that mimics
+other software that they know of, for example, Evernote and Trello.
+
+Org is that and more. To quote the Org-mode website:
+
+#+begin_quote
+Org mode is for keeping notes, maintaining TODO lists, planning
+projects, and authoring documents with a fast and effective plain-text
+system.
+#+end_quote
+
+*** Everything is a TODO
+
+Org-mode revolves around plain text headings, which makes all of the
+entries generated by it manageable and portable. In Org-mode, all of
+the headings start with a =*=, followed by the state of the heading.
+The state usually changes from =TODO= to =NEXT=, and ends in =DONE=.
+For example:
+
+#+begin_src org
+,* TODO Example to do
+ This is a paragraph inside of the heading.
+ [[http://example.com][this is a link to example]]
+
+,* NEXT Next example to do
+ ** Child heading with list
+ - Item A
+ - Item B
+ - Item C
+
+,* DONE Example done
+#+end_src
+
+This examples show the markup language that Org-mode uses. There's a
+full list of the elements in the [[http://orgmode.org/manual/Markup.html#Markup][markup section of the manual]].
+
+*** But why TODOs?
+
+The brilliance behind the selection of =TODO= headings, is based on
+the fact that everything you write to be addressed later is a task to
+be done soon. To give an example of this, if I recommended you the
+works of Op-art artist [[http://en.wikipedia.org/wiki/Victor_Vasarely][Victor Vasarely]] in the middle of a party or an
+event conversation, one usually doesn't interrupt the conversation,
+and goes searching for Victor Vasarely's artwork in his smart-phone.
+Usually, what people do is to create a =TODO= in whichever format and
+in whatever software. For example:
+
+#+begin_example
+Artists to checkout:
+ - Victor Vasarely <- Recommended by Carlos
+#+end_example
+
+As you can see, this basic note of the task is enough, but the problem
+arises if you were to sort it and search for this =TODO= later. This
+can be solved by having a markup or syntax with parseable definitions.
+Now what would that =TODO= look in Org-mode:
+
+#+begin_src org
+,* Personal
+,** Arts
+,*** Victor Vasarely
+ :LOGBOOK:
+ CLOCK: [2015-03-15 Sun 23:34]--[2015-03-16 Mon 00:30] => 0:56
+ :END:
+ [2015-03-15 Sun 23:33]
+
+#+end_src
+
+In the example above, there's a =TODO= entry in the correct tree
+(category), this way we can sort and order for fast searching. It
+seems like an overkill, but trust me, after a couple of =TODO=, you
+forget why you added that =TODO= and what to do =NEXT= with it.
+
+The example above shows a timestamp and clock to track the time spent
+on that =TODO=. This is useful for keeping track of the type of [[http://orgmode.org/manual/Tracking-your-habits.html#Tracking-your-habits][habits]]
+you commit.
+
+*** Outline structure with TODOs
+
+Giving the nature of Org-mode, you can outline a text with different
+heading levels. With this you can create sections, a hierarchy of
+topics, or a simple tree that works as the main outline of a text
+file. For instance, this text's outline so far:
+
+#+begin_src org
+,* A life of TODOs
+,** Decomposing Org-Mode
+,** Everything is a TODO
+,** Outline structure
+,** Agenda made of TODOs
+#+end_src
+
+With these you can create projects or topics based on the headings
+levels. So it becomes fairly easy to order your ideas, and author
+documents. Org-mode well defined markup can be exported to any format.
+
+Org-mode can export to most common markups and documents, see the
+[[http://orgmode.org/manual/Exporting.html#Exporting][Exporting]] section of the Org-mode manual for more information.
+
+This document is rendered to HTML from Org markup, thanks to =jekyll=
+and [[https://github.com/wallyqs/org-ruby][org-ruby]].
+
+
+*** Agenda made of TODOs
+
+With hierarchy and levels of your tasks, it makes sense to prioritize
+headings based on their schedule, deadline, and priority. That's when
+the [[http://orgmode.org/manual/Agenda-Views.html#Agenda-Views][Org-mode Agenda]] comes in the picture.
+
+#+CAPTION: Org-mode Agenda view
+#+NAME: block-agenda-nonproject.png
+[[http://gnusosa.net/img/block-agenda-nonproject.png]]
+
+Agenda views render and display the current projects you have, the
+child headings of the projects, in these case the =NEXT= headings
+entries. The Agenda divides work into what is active, stuck, and
+scheduled. At the top of the Agenda, you have the headings with
+[[http://orgmode.org/manual/Deadlines-and-scheduling.html#Deadlines-and-scheduling][DEADLINES and SCHEDULED tags]]. Timestamps and Clocks help with your habits,
+but they can be used as a way to schedule tasks that need to be
+repeated or have a higher priority.
+
+For example, a =TODO= about doing your laundry weekly:
+
+#+begin_src org
+,* TODO [#B] Laundry :CLEANING:
+:LOGBOOK:
+- State "DONE" from "TODO" [2015-02-23 Mon 13:01]
+- State "DONE" from "NEXT" [2015-01-16 Fri 18:54]
+CLOCK: [2015-01-10 Sat 12:17]--[2015-01-10 Sat 12:18] => 0:01
+:END:
+:PROPERTIES:
+:LAST_REPEAT: [2015-02-23 Mon 13:01]
+:END:
+:DEADLINE: <2015-03-01 Sun +1w>
+[2015-01-10 Sat 12:17]
+
+#+end_src
+
+The above =TODO= entry has a priority of level B, and will be repeated
+every week after it's set to the =DONE= state, that's what the tag
+=:DEADLINE:= says. The last time this entry was re-inserted was on
+Monday February 23, this was introduced after the state was set to
+=DONE=. The =:LOGBOOK:= tells us when was the last time the state was
+changed from "=TODO=" to "=DONE=", and also a clock of the time it
+took for this =TODO= to be captured. The last timestamp tells us the
+time this =TODO= was captured(inserted), which was on Saturday January
+the 10th.
+
+*** Capture quickly, take care of it later
+
+Like mentioned before, you usually want to capture a =TODO=, and add
+as much information as you can in a give set of time. This means that
+you should write down as fast as possible the task you have in mind or
+the information just given. This a great habit and it works for
+anybody, since not all retain that much information, at least, not me.
+
+Because we want to capture as soon as you think about the =TODO=,
+captures occur directly from any mode or place in ~Emacs~. Capturing
+is done by calling =org-capture=, this will bring a selection frame
+that will give you hooks based on a set of templates in your
+configuration. For instance:
+
+#+CAPTION: Org-mode Capture selection
+#+NAME: org-capture.png
+[[http://gnusosa.net/img/org-capture.png]]
+
+For example, you just realized that you have to reply to a
+collaborator or compose an email. You want to capture as fast as
+possible this =TODO=, you make use of the email template in
+=org-capture= by pressing =m=. This will give you a template to fill
+out, in these case the email address and the name.
+
+To generate new capture templates you can call =C-c c C=, this will
+bring up a customize group frame. For more information on the
+templates, check the Org-mode manual section on [[http://orgmode.org/manual/Capture-templates.html][Capture Templates]].
+
+To understand how capturing a =TODO= works, read the Org-mode manual
+section on [[http://orgmode.org/manual/Capture-_002d-Refile-_002d-Archive.html#Capture-_002d-Refile-_002d-Archive][Capturing, Refiling and Archiving]].
+
+*** Refile and archive later
+
+This is one of my least favorite parts, but in order to keep a sane
+=TODO= entries tree and to keep tidy projects, you have to refile them
+and archive them.
+
+Refile, literally, means reorganize and file the entries in their
+corresponding hierarchy. For example, move your recently captured
+=TODO= entry about Cats into Personal/Animals.
+
+#+begin_src org
+,* Cats
+
+,* Personal
+,** Animals
+#+end_src
+
+You can refile any heading in any view of Org-mode with =C-c C-w=,
+that calls =org-refile=, and that will ask you in what hierarchy or
+project do you want to file a =TODO= heading. org-refile takes care
+about assigning a hierarchy to the entry, for instance, the Cats
+=TODO= entry it was first heading, it will now be filed under Personal/Animals/,
+turning into a third hierarchy heading. For example:
+
+#+begin_src org
+,* Personal
+,** Animals
+,*** Cats
+#+end_src
+
+You should capture and refile all the uncatalogued =TODO= entries into
+a file dedicated as a staging step before refiling each to the correct
+project. Usually, the community makes use of the '=refile.org=' file
+as a staging space, and it's turn into a community standard.
+
+The *advice* is to ~refile when you have time~, make it your last
+errand, the same goes for archiving. Org-mode Agenda views will tell
+you what entries are ready to be archived.
+
+** TODOs make my life easier
+
+Org-mode is part of my work flow with Emacs, and I love it. On a daily
+basis, I create =TODO= entries for every task or activity I take part
+of, for instance, keeping track of meetings, email replies to write,
+mailing list articles to reply, documentation to finish. This is all
+thanks to how well Org-mode is integrated with Emacs base modes, like
+[[http://www.gnus.org/about.html][Gnus]] and [[http://magit.github.io/][Magit]]. All kind of modes provide integration with Org-mode,
+at least [[http://orgmode.org/manual/External-links.html][org-links]], for example, =org-mu4e=, that provides org-links
+to mails and drafts to later to be finished or to be later send.
+
+According to what I've witness and what I've found online, it looks
+like I don't even take full advantage of Org-mode. You can find
+hardcore users and org-veterans in the Org-mode mailing list -
+[[http://news.gmane.org/gmane.emacs.orgmode][http://news.gmane.org/gmane.emacs.orgmode]]. One of those hardcore users
+is Bernt Hansen. To see how Bernt Hansen makes use of Org-mode and his
+work flow, go read his famous article [[http://doc.norang.ca/org-mode.html][Organize your life in Text]].
+
+Thanks to [[http://orgmode.org/manual/MobileOrg.html#MobileOrg][MobileOrg]], you can capture =TODO= entries from your
+Smart-phone. I capture =TODO= entries everywhere, that I later
+synchronize with the ones in my laptop.
+
+I hope that with the given points of how you can make use of Org-mode,
+and how I make use of it, I'm able to explain why Org-mode is the
+killer feature of Emacs.
diff --git a/log/2015-03-29-helping-the-multilineal-culture.org b/log/2015-03-29-helping-the-multilineal-culture.org
new file mode 100755
index 0000000..fe3765e
--- /dev/null
+++ b/log/2015-03-29-helping-the-multilineal-culture.org
@@ -0,0 +1,143 @@
+---
+title: Helping the Multilineal Cultural Evolution
+date: 2015-03-29
+layout: post
+category: log
+---
+
+This weekend I attended the FTCWest, short for [[http://ftcwest.org/][FIRST® Tech Challenge
+West Super-Regional Championship]]. It was held in the Oakland
+Convention Center, and it was an eye opening experience from a
+cultural perspective. The [[https://en.wikipedia.org/wiki/FIRST_Tech_Challenge][FTC]] is one of the main DIY Robot
+championship intended only for grades 7-12. The FTC offers a kit to
+design, build, and program a robot that is able to compete according
+to given yearly rules. The components of the robots are mostly Lego
+NXT motors and sensors, attached to well crafted pieces of metal and
+plastic used as base and arms. Most robots in the competition are
+similar in sizes and shapes, but what differs in each are the
+extensions of the robots that interact with the challenge's physical
+elements. Be it gathering plastic balls almost the size of a ping-pong
+ball and transport them to a location, to opening a compartment full
+of these plastic balls, the extensions display the amount of work put
+into them.
+
+#+CAPTION: Typical FTCWest robot
+#+NAME: ftcrobot_thumb.jpg
+[[http://gnusosa.net/img/ftcrobot.jpg][http://gnusosa.net/img/thumbs/ftcrobot_thumb.jpg]]
+
+#+CAPTION: High-school students working on an FTCWest robot
+#+NAME: studentsftcrobot_thumb.jpg
+[[http://gnusosa.net/img/studentsftcrobot.jpg][http://gnusosa.net/img/thumbs/studentsftcrobot_thumb.jpg]]
+
+** Youth of today
+
+While there might be similar competitions to the FTCWest, and
+activities surrounding technology and science have almost become a
+norm in extra-curricular activities in the U.S.A. What amazes and
+intrigues me is the interaction of the many-to-many cultures, and I
+don't mean nationalities and regional cultures crossing, I'm referring
+to the modern subset of cultures of our post-service oriented
+lifestyle.
+
+#+CAPTION: High-school student getting ready to compete with his FTCWest robot
+#+NAME: kidftcrobot_thumb.jpg
+[[http://gnusosa.net/img/kidftcrobot.jpg][http://gnusosa.net/img/thumbs/kidftcrobot_thumb.jpg]]
+
+It took a decade, but we might be in the end of the full adaptation of
+the technology mindset into the common lifestyle cultures. How my
+generation differentiates race, sex, nerd, geek, hacker, cracker,
+scriptkiddie, devops, hardware hacker, real engineer, labrat,
+librarian addict, and such terms from each other, are radically of
+none existing matter to this new generations. I might depict myself as
+an old guy from writing this, and, well, you might say "you're in your
+late twenties, how can you say that.", I say that because it's
+becoming the norm in my daily media consumption to find an article or
+blog post with regards of discrimination of any type. We don't
+directly discriminate, but we do alienate in order to avoid conflict
+and maintain the "Chill" "Avoid any hassle and keep the peace on"
+mentality. In another spectrum, my beloved industry of software making
+is slowly alienating women and the diversity that brought it to its
+current grounds.
+
+Not even the now part of the popular culture terms, 'geek' and 'nerd',
+were in no way mentioned or thought of. All I saw was the youth
+collaborating with each other to solve one problem. The best part of
+the teams ensemble, was the fact that they were composed of teenagers
+with different backgrounds, nationalities, and races. Each with unique
+varying taste. To give two examples, one of the "mechanical
+engineers", the kid with the knowledge in handy tools, is a part-time
+break-dancer, unafraid to be mocked; the other team member is an
+advanced student in AP math and AP science courses, that preferred to
+take on the "industrial designer" role, since she wanted to take the
+influence of her art and design classes into the team's robot design.
+
+#+CAPTION: Same number of girls and boys attend FTCWest each year
+#+NAME: ftcwest2015_thumb.jpg
+[[http://gnusosa.net/img/ftcwest2015.jpg][http://gnusosa.net/img/thumbs/ftcwest2015_thumb.jpg]]
+
+
+** Nurturing cultural evolution
+
+I can't believe I'm saying this, but the small gap of information
+access that my generation and past one doesn't value, is all the
+change we needed to break with the continuous linear relationship of
+cultures. The content that makes 90s NYC comedy sitcoms to a certain
+degree funny, is broken down. No wonder, I can't make the sons of my
+cousins watch Seinfeld with me. I can see how most of it, is
+completely unrelated to them, when they could be watching a Korean
+Drama show, and probably after that, a Wes Anderson movie. So what
+happened?
+
+#+CAPTION: All cultures progress through set stages, while in the multilineal evolution model mixes and shares culture aspects.
+#+NAME: cultural_evolution.png
+[[https://upload.wikimedia.org/wikipedia/commons/8/82/Cultural_evolution.PNG]]
+
+Multilineal Cultural evolution happened. Thanks to the irresistible
+craze for knowledge and how easy it's to access today's information,
+new generations have benefited from this new accesses to different
+sets of behaviors that revolve around well-established cultures. There
+are certain fruits of this lines turning into one, for instance,
+higher tolerance that arises from the teachings of independence of
+thought and liberation through knowledge. While my generation and the
+past one, have worked hard to eradicated fascism, sexism, and racism,
+we were at the same time eradicating terms and notions of how can and
+what work and what role the individual can take in her or his life.
+It's known that nobody is born a xenophobic, we teach xenophobia, but
+we first teach the concept of a stranger, there can't be xenophobia
+without the idea of a stranger. We have been slowly merging lines, and
+lines, to come out with a new line of culture without all the elements
+that we, my generation, keeps fighting.
+
+** New culture, new conflicts
+
+I'm excited to see what the future holds for the new generations, and
+their ideas of what is fair and just. More on that is the emergence of
+Nerdcore and other 'nerd' culture related content that is now basic
+cultural norm to each new teenager, and not even considered a mix by
+them. I can't believe a culture that was bullied and made fun of for
+an entire decade is now mixed with a culture that was speaking for the
+oppressed and angry that later became the billion dollar phenomena
+that it's now. That same culture, I'm referring to the Hip-Hop
+culture, is now interested in the bullied and the one that was made
+fun of, the tech-nerd-geek culture that seems to no longer exists in
+the current youth, since this culture is now ingrained to them as part
+of their normal activities.
+
+They can market to them as much as they want, but it seems that the
+new cultural line is not buying the formulated separation made by the
+media and the big Telcos, and I say good for them. I hope they don't
+jump in the same abusive behavior that was re-sold to past
+generations, like the grunge movement, and the horrible late 90s
+popular culture. New generations keep on fighting the good fight, you
+have the internet on your side, the old media conglomerates only have
+dead near them, just wait, it's only a matter of time.
+
+Now we can think of this multilineal cultural lines as nodes. Imagine
+what will happen when each node mixes to create a new multilineal
+culture, but now with massive cultural points that range from language
+to thought evoking processes.
+
+#+CAPTION: Each node is a multilineal cultural line
+#+NAME: 500px-Social_Network_Diagram_(segment).svg.png
+[[https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Social_Network_Diagram_%28segment%29.svg/500px-Social_Network_Diagram_%28segment%29.svg.png]]
+
diff --git a/log/2015-08-12-spqr.markdown b/log/2015-08-12-spqr.markdown
deleted file mode 100644
index 3704aa5..0000000
--- a/log/2015-08-12-spqr.markdown
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: S.P.Q.R.
----
-
-Mauris in lorem nisl. Maecenas tempus facilisis ante, eget viverra nisl
-tincidunt et. Donec turpis lectus, mattis ac malesuada a, accumsan eu libero.
-Morbi condimentum, tortor et tincidunt ullamcorper, sem quam pretium nulla, id
-convallis lectus libero nec turpis. Proin dapibus nisi id est sodales nec
-ultrices tortor pellentesque. Vivamus vel nisi ac lacus sollicitudin vulputate
-ac ut ligula. Nullam feugiat risus eget eros gravida in molestie sapien euismod.
-Nunc sed hendrerit orci. Nulla mollis consequat lorem ac blandit. Ut et turpis
-mauris. Nulla est odio, posuere id ullamcorper sit amet, tincidunt vel justo.
-Curabitur placerat tincidunt varius. Nulla vulputate, ipsum eu consectetur
-mollis, dui nibh aliquam neque, at ultricies leo ligula et arcu. Proin et mi
-eget tellus sodales lobortis. Sed tempor, urna vel pulvinar faucibus, lectus
-urna vehicula ante, at facilisis dolor odio at lorem. Morbi vehicula euismod
-urna, et imperdiet urna ornare vitae.
-
-Sed tincidunt sollicitudin ultrices. In hac habitasse platea dictumst. Morbi
-ligula lectus, egestas at ultricies nec, fringilla et tellus. Duis urna lorem,
-bibendum a ornare sed, euismod sed nunc. Aliquam tempor massa at velit fringilla
-fringilla. Praesent sit amet tempor felis. Maecenas id felis ac velit aliquam
-tempor a sit amet orci. Nunc placerat nulla pellentesque sem commodo cursus.
-Praesent quis sapien orci, quis ultricies augue. Nam vestibulum sem non augue
-semper tincidunt pellentesque ipsum volutpat. Duis congue, nunc a aliquam
-luctus, quam ante convallis nisi, ac pellentesque lacus orci vel turpis. Cum
-sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
-mus. Suspendisse hendrerit nisl eu felis sagittis faucibus. Nunc eu congue
-lorem. Quisque non nibh nisi, et ultrices massa. Sed vitae erat vitae nulla
-pellentesque fermentum.
-
-Ut diam nunc, consectetur ut ultrices eu, iaculis sed felis. Sed lacinia, odio
-et accumsan luctus, arcu ipsum accumsan erat, sit amet malesuada libero lacus et
-velit. Donec accumsan tristique tristique. Proin a metus magna, vitae mattis
-nisl. Integer a libero ipsum. Mauris faucibus eleifend metus id sodales. Morbi
-ornare, nibh nec facilisis imperdiet, turpis sem commodo lorem, id commodo
-mauris metus vitae justo. Etiam at pellentesque tortor. Proin mollis accumsan
-ligula, nec tempus augue auctor quis. Nulla lacinia, mi quis lobortis auctor,
-nisi diam posuere dui, pulvinar feugiat dui libero eget quam. Fusce eu risus
-nunc, a consectetur orci. Class aptent taciti sociosqu ad litora torquent per
-conubia nostra, per inceptos himenaeos. Maecenas venenatis aliquet orci, a
-ultricies sem facilisis eu. Donec dolor purus, porta condimentum convallis nec,
-dignissim nec libero.
-
-Etiam rutrum ultricies dui, et interdum metus elementum et. Nulla sapien nunc,
-interdum tristique porttitor in, laoreet vitae mi. Ut vehicula auctor mauris sit
-amet bibendum. Phasellus adipiscing mattis libero, eget adipiscing erat
-dignissim at. Vivamus convallis malesuada metus nec cursus. Ut cursus, lorem
-eleifend sollicitudin condimentum, felis tortor sodales augue, ac tempus lacus
-ipsum vitae quam. Vestibulum vitae lacus non tortor vehicula iaculis faucibus
-quis massa.
-
-Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
-mus. Duis malesuada neque nec ante porttitor accumsan. Suspendisse potenti.
-Aliquam in lacus magna, imperdiet laoreet lectus. Praesent id diam nec ante
-commodo rhoncus nec vel augue. Pellentesque tortor massa, dignissim ut sagittis
-sed, hendrerit vitae nunc. Nam gravida, urna vitae hendrerit rutrum, felis augue
-vulputate tortor, ut varius velit libero nec lectus. In adipiscing massa in est
-scelerisque ullamcorper. Vivamus in nisi metus.
diff --git a/log/2015-10-07-rosa-rosa-rosam.markdown b/log/2015-10-07-rosa-rosa-rosam.markdown
deleted file mode 100644
index bbda8fd..0000000
--- a/log/2015-10-07-rosa-rosa-rosam.markdown
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: Rosa Rosa Rosam
-author: Ovidius
----
-
-Suspendisse pharetra ullamcorper sem et auctor. Suspendisse vitae tellus eu
-turpis dignissim gravida ut ut tortor. Cum sociis natoque penatibus et magnis
-dis parturient montes, nascetur ridiculus mus. Morbi aliquam sapien quis nisl
-sodales non aliquet nisl iaculis. Curabitur fermentum orci vel sapien
-pellentesque id condimentum metus vehicula. Curabitur turpis purus, scelerisque
-at interdum quis, placerat sit amet tortor. Aliquam erat volutpat.
-
-Integer posuere felis non arcu suscipit ullamcorper. Nam tempus risus venenatis
-orci sagittis eu aliquam ante tincidunt. Aenean vehicula ipsum id sapien
-tincidunt commodo. Aliquam erat volutpat. Curabitur vehicula libero ac turpis
-cursus consectetur. Praesent posuere egestas purus et dapibus. Mauris egestas,
-lectus vitae scelerisque ultricies, metus lorem tempor nisi, sed vehicula tortor
-mauris nec urna. Quisque urna tellus, facilisis at mollis eget, adipiscing in
-nisl. Proin quam arcu, euismod et imperdiet sed, ultricies sed orci.
-
-Nulla malesuada sem eget lectus scelerisque nec rhoncus metus interdum. In dui
-felis, rhoncus id scelerisque eget, vulputate id sem. Nulla facilisi. Vestibulum
-eleifend, metus dignissim lacinia ornare, magna nulla vehicula nisi, sed
-molestie mauris ipsum vel turpis. Class aptent taciti sociosqu ad litora
-torquent per conubia nostra, per inceptos himenaeos. Nulla urna leo, vehicula
-eget dignissim a, hendrerit ut risus. Fusce ultricies elementum placerat. Nam at
-dolor sed nisi mollis sollicitudin vitae at urna. Vestibulum iaculis adipiscing
-eros et mollis.
-
-Phasellus ultricies elit eu risus sagittis eu dictum ante ultrices. Nulla
-congue, augue ac placerat tempor, orci mi luctus nisi, at varius ipsum sem sed
-eros. Vivamus eget velit eget felis posuere ornare. In sed metus non est iaculis
-facilisis dapibus sit amet enim. Aliquam viverra tortor eget neque volutpat in
-auctor urna rutrum. Aliquam ligula augue, congue sit amet rutrum in, semper vel
-nulla. Sed tempus porttitor faucibus. Donec cursus sodales nulla, quis lacinia
-mi vehicula vel. Sed nec purus orci. Nam leo sapien, rutrum a ultrices quis,
-placerat vel ligula. Donec massa quam, pellentesque et molestie nec, hendrerit
-id mauris. In hac habitasse platea dictumst. Cras quis quam sem. Curabitur in
-arcu diam, in interdum mauris.
-
-Proin lorem sapien, iaculis et faucibus nec, dictum sed nunc. Pellentesque in
-purus justo. Vestibulum facilisis rutrum nisi, a egestas nunc suscipit sed. Ut
-quis tortor a arcu bibendum placerat non sed ante. Praesent orci sem, posuere
-sit amet cursus molestie, volutpat ut purus. Curabitur aliquam, purus in
-pharetra viverra, lorem leo aliquam tellus, vel consequat felis neque et mauris.
-Aliquam erat volutpat.
diff --git a/log/2015-11-28-carpe-diem.markdown b/log/2015-11-28-carpe-diem.markdown
deleted file mode 100644
index bd115da..0000000
--- a/log/2015-11-28-carpe-diem.markdown
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: Carpe Diem
----
-
-Fusce tortor quam, egestas in posuere quis, porttitor vel turpis. Donec
-vulputate porttitor augue at rhoncus. Proin iaculis consectetur sagittis.
-Curabitur venenatis turpis sit amet purus tristique nec posuere risus laoreet.
-Nullam nisi sem, dapibus id semper id, egestas vel arcu. Morbi porttitor ipsum
-placerat erat consequat sed consequat purus feugiat. Donec auctor elit ut risus
-mattis facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-
-Proin vulputate sapien facilisis leo ornare pulvinar. Fusce tempus massa a risus
-semper iaculis. Suspendisse sollicitudin posuere nunc, sit amet rutrum leo
-facilisis mattis. Sed ornare auctor dui, vitae rutrum neque auctor sit amet.
-Proin ac dui magna. Mauris vehicula interdum augue, nec ultrices libero egestas
-quis. Nunc convallis euismod ipsum, id sollicitudin orci consequat ac. Fusce
-bibendum congue libero, in rutrum nulla congue non. Cras sit amet risus tortor,
-eu pellentesque dui. Phasellus euismod enim non nibh sodales quis consectetur
-lorem laoreet. Vivamus a egestas quam. Curabitur in tortor augue, vitae varius
-tellus. Integer varius, elit ac gravida suscipit, eros erat pellentesque nisi,
-et tristique augue odio id nulla. Aliquam sit amet nunc vel tellus hendrerit
-tempus ac vel sem.
-
-Aenean tincidunt sollicitudin sapien ut porttitor. Curabitur molestie adipiscing
-lorem vel scelerisque. Donec vitae interdum est. Proin rutrum vulputate
-faucibus. Suspendisse sit amet felis odio, non volutpat ante. Sed eu lectus
-quam. Curabitur tristique rhoncus est, vel commodo tortor suscipit semper.
-Maecenas feugiat vestibulum nisi id facilisis. Nulla non tincidunt libero.
-Praesent ultrices interdum commodo. Sed euismod nisl auctor leo ultrices rutrum.
-Aliquam nibh felis, congue molestie blandit at, bibendum at eros. Aenean
-tincidunt, tortor iaculis placerat sollicitudin, lorem justo tempor diam, et
-posuere sapien leo et magna. Quisque vel aliquam mauris.
-
-Proin varius tempus fermentum. Cum sociis natoque penatibus et magnis dis
-parturient montes, nascetur ridiculus mus. Sed tincidunt nunc id magna
-adipiscing non sollicitudin turpis tempor. Etiam vel elit ipsum, quis euismod
-velit. Quisque elementum magna vitae quam venenatis lacinia. Sed at arcu ipsum.
-Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
-himenaeos. Donec ut lorem ac sapien cursus lacinia sit amet mollis dolor.
-Vivamus tempus odio nec magna faucibus sed hendrerit lorem tempor.
-
-Vestibulum eu nisi arcu. Curabitur nisi risus, fermentum ut lacinia ut, interdum
-nec magna. Nunc aliquet gravida massa, eu aliquam lorem faucibus at. Sed
-sollicitudin volutpat velit id tempor. In nibh justo, pharetra et pretium
-dignissim, tempus in turpis. Phasellus eget lobortis nisl. Phasellus sed
-fermentum diam. Nam tempus pharetra odio, quis congue eros imperdiet eu. Aliquam
-dui eros, hendrerit et vulputate vel, porta eu eros. Nullam nisi dui, commodo
-eget pharetra ut, ornare sit amet nunc. Fusce vel neque urna. Maecenas nulla
-ante, egestas at consequat quis, fermentum a enim. Aliquam id tristique urna.
-Integer augue justo, scelerisque et consectetur id, rhoncus eget enim.
diff --git a/log/2015-12-07-tu-quoque.markdown b/log/2015-12-07-tu-quoque.markdown
deleted file mode 100644
index bdf2ea4..0000000
--- a/log/2015-12-07-tu-quoque.markdown
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Tu Quoque
-author: Julius
----
-
-Vestibulum leo turpis, dignissim quis ultrices sit amet, iaculis ac ligula.
-Pellentesque tristique, velit eget scelerisque scelerisque, est dolor ultrices
-arcu, quis ullamcorper justo arcu luctus mauris. Integer congue molestie nisi id
-posuere. Fusce pellentesque gravida tempus. Integer viverra tortor nec eros
-mollis quis convallis sem laoreet. Nulla id libero ac erat varius laoreet. Proin
-sed est est. Curabitur lacinia fermentum lorem, elementum malesuada ipsum
-malesuada ut. Donec suscipit elit id leo vehicula mattis non sed leo. Morbi
-varius eleifend varius. Nulla vestibulum, neque vitae aliquam eleifend, nisi
-tellus placerat nunc, quis suscipit elit turpis eu tortor. Etiam euismod
-convallis lectus quis venenatis. Phasellus laoreet magna in nibh cursus eu
-egestas nulla convallis. Aliquam vel ullamcorper risus. Fusce dictum, massa id
-consequat viverra, nulla ante tristique est, a faucibus nisi enim nec dui. Donec
-metus ligula, condimentum at porttitor eget, lobortis at quam.
-
-Aenean vel libero in magna ultricies congue in a odio. Donec faucibus rutrum
-ornare. Fusce dictum eleifend fermentum. Vestibulum vel nibh a metus porttitor
-rhoncus. Pellentesque id quam neque, eget molestie arcu. Integer in elit vel
-neque viverra ultricies in eget massa. Nam ut convallis est. Pellentesque eros
-eros, sodales non vehicula et, tincidunt ut odio. Cras suscipit ultrices metus
-sit amet molestie. Fusce enim leo, vehicula sed sodales quis, adipiscing at
-ipsum.
-
-Nunc tempor dignissim enim, sed tincidunt eros bibendum quis. Curabitur et dolor
-augue, id laoreet mi. Nulla cursus felis id dui vehicula vitae ornare lorem
-blandit. Cras eget dui nec odio volutpat pharetra. Fusce hendrerit justo justo,
-vel imperdiet enim. Vivamus elit risus, interdum ultrices accumsan eleifend,
-vestibulum vitae sapien. Integer bibendum ullamcorper tristique. Nulla quis odio
-lectus, quis eleifend augue. Integer a ligula mauris. Aenean et tempus tortor.
-Quisque at tortor mi. Vivamus accumsan feugiat est a blandit. Sed vitae enim ut
-dolor semper sodales. Duis tristique, ante et placerat elementum, nulla tellus
-pellentesque sapien, quis posuere velit mi eget nulla. Sed vestibulum nunc non
-est porttitor ut rutrum nibh semper. Pellentesque habitant morbi tristique
-senectus et netus et malesuada fames ac turpis egestas.
-
-Nulla adipiscing ultricies lobortis. Vivamus iaculis nisl vitae tellus laoreet
-vitae aliquet lacus mollis. Phasellus ut lacus urna, sed sagittis ante. Etiam
-consectetur pretium nisl sed dignissim. Pellentesque convallis, nisl eget
-commodo mollis, sem magna consequat arcu, sed pretium ipsum arcu sit amet neque.
-Aliquam erat volutpat. Morbi sed mi sed urna vestibulum placerat vitae vel
-metus. Fusce ac ante at justo pharetra vehicula. Vivamus vel tortor eget augue
-aliquet aliquet at vel odio. Nunc venenatis, magna quis facilisis fringilla,
-augue tellus varius neque, in vulputate est eros ut tortor. Duis lorem neque,
-aliquam congue posuere id, condimentum non dui. Phasellus ut dui massa,
-porttitor suscipit augue. Praesent quis tellus quam, vel volutpat metus. Vivamus
-enim est, aliquam in imperdiet et, sagittis eu ligula. Vestibulum hendrerit
-placerat orci et aliquet. Cras pharetra, dolor placerat lobortis tempor, metus
-odio cursus ligula, et posuere lacus ligula quis dui.
-
-Donec a lectus eu nibh malesuada aliquam. Proin at metus quam, et tincidunt leo.
-Quisque lacus justo, scelerisque sodales pulvinar sed, dignissim ut sapien.
-Vivamus diam felis, adipiscing sollicitudin ultricies id, accumsan ac felis. In
-eu posuere ligula. Suspendisse potenti. Donec porttitor dictum dui id vehicula.
-Integer ante velit, congue id dictum et, adipiscing a tortor.
diff --git a/site.hs b/site.hs
index b980948..1913d6f 100644
--- a/site.hs
+++ b/site.hs
@@ -1,6 +1,6 @@
--------------------------------------------------------------------------------
{-# LANGUAGE OverloadedStrings #-}
-import Data.Monoid (mappend)
+import Data.Monoid ((<>))
import Hakyll
@@ -21,51 +21,55 @@ main = hakyll $ do
>>= loadAndApplyTemplate "templates/default.html" defaultContext
>>= relativizeUrls
- match "log/*.markdown" $ do
+ match "log/*.org" $ do
route $ setExtension "html"
compile $ pandocCompiler
- >>= loadAndApplyTemplate "templates/post.html" postCtx
+ >>= loadAndApplyTemplate "templates/post.html" postCtx
>>= relativizeUrls
create ["log/index.html"] $ do
route idRoute
compile $ do
- posts <- recentFirst =<< loadAll "log/*.markdown"
- let archiveCtx =
- listField "posts" postForArchiveCtx (return posts) `mappend`
- constField "title" "archive of log posts" `mappend`
- defaultContext
-
makeItem ""
- >>= loadAndApplyTemplate "templates/archive.html" archiveCtx
+ >>= loadAndApplyTemplate "templates/archive.html" postForArchiveCtx
>>= loadAndApplyTemplate "templates/post.html" archiveCtx
>>= relativizeUrls
-
match "index.html" $ do
route idRoute
compile $ do
- posts <- recentFirst =<< loadAll "posts/*"
- let indexCtx =
- listField "posts" postCtx (return posts) `mappend`
- constField "title" "Home" `mappend`
- defaultContext
-
- getResourceBody
- >>= applyAsTemplate indexCtx
- >>= loadAndApplyTemplate "templates/default.html" indexCtx
- >>= relativizeUrls
+ getResourceBody
+ >>= applyAsTemplate indexCtx
+ >>= loadAndApplyTemplate "templates/default.html" indexCtx
+ >>= relativizeUrls
match "templates/*" $ compile templateBodyCompiler
--------------------------------------------------------------------------------
+posts :: Compiler [Item String]
+posts = recentFirst =<< loadAll "log/*.org"
+
+indexCtx :: Context String
+indexCtx =
+ listField "posts" postCtx posts <>
+ constField "title" "Home" <>
+ defaultContext
+
+archiveCtx :: Context String
+archiveCtx =
+ constField "title" "archive of log posts" <>
+ defaultContext
+
postCtx :: Context String
postCtx =
- dateField "date" "%B %e, %Y" `mappend`
- defaultContext
+ dateField "date" "%B %e, %Y" <> defaultContext
postForArchiveCtx :: Context String
postForArchiveCtx =
- dateField "date" "%d %b %Y" `mappend`
+ listField "posts" dateForArchiveCtx posts <>
defaultContext
+
+dateForArchiveCtx :: Context String
+dateForArchiveCtx =
+ dateField "date" "%d %b %Y" <> defaultContext