diff options
| author | Carlos Sosa <gnusosa@gnusosa.net> | 2019-08-11 17:18:45 -0700 |
|---|---|---|
| committer | Carlos Sosa <gnusosa@gnusosa.net> | 2019-08-11 17:18:45 -0700 |
| commit | e6f4ca04ba1e8a8f2ae299e5a2ec09f26a89e736 (patch) | |
| tree | e2df289f8a6bf08ccda5b32d857ef63e6c6db127 | |
| parent | e48a9d406fbd5489dc25bcdd92b1df2b0c862105 (diff) | |
Add log entries, and move to better context functions
| -rwxr-xr-x | log/2010-11-12-reboot.org | 20 | ||||
| -rwxr-xr-x | log/2010-11-12-sync-with-text-files.org | 71 | ||||
| -rwxr-xr-x | log/2011-02-16-less-code-more-dance.org | 113 | ||||
| -rwxr-xr-x | log/2011-02-17-ubuntu-shows-its-true-colors.org | 83 | ||||
| -rwxr-xr-x | log/2011-04-30-gsoc-2011-and-dancer.org | 46 | ||||
| -rwxr-xr-x | log/2011-05-25-may-updates.org | 40 | ||||
| -rwxr-xr-x | log/2011-08-01-june-july-updates.org | 52 | ||||
| -rwxr-xr-x | log/2013-09-25-a-quick-update-in-ten-points.org | 40 | ||||
| -rwxr-xr-x | log/2013-09-30-back-to-emacs.org | 37 | ||||
| -rwxr-xr-x | log/2013-10-09-keep-fun-in-computing.org | 31 | ||||
| -rwxr-xr-x | log/2015-03-15-alife-of-todos.org | 267 | ||||
| -rwxr-xr-x | log/2015-03-29-helping-the-multilineal-culture.org | 143 | ||||
| -rw-r--r-- | log/2015-08-12-spqr.markdown | 59 | ||||
| -rw-r--r-- | log/2015-10-07-rosa-rosa-rosam.markdown | 46 | ||||
| -rw-r--r-- | log/2015-11-28-carpe-diem.markdown | 50 | ||||
| -rw-r--r-- | log/2015-12-07-tu-quoque.markdown | 58 | ||||
| -rw-r--r-- | site.hs | 52 |
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. @@ -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 |
