viernes, 19 de junio de 2015

Clasp. Implementation and its applications. Just wow

A talk that just left me shitting bricks. And makes me want to return to the drug discovery world via Common Lisp.

If you have any work for me, mail me at raimonster+nospam@gmail.com .

Wow Wow Wow.




And here's another neat story about lisp hackers: Crash Bandicoot in Lisp

domingo, 24 de mayo de 2015

Farewell Mr.Nash. Games and complexity. p vs np

Today, 24 of may 2015,  John Nash passed away in a traffic accident. His wife also passed away in the same accident....

Apart from his work on Game Theory (which I studied a bit back in university), he also had great implications in cryptography and problem complexity.

Here are a couple of good videos about P vs NP. The first one pretty approachable to everyone. Second one is a class from MIT 6.006 by Eric Demaine.





Here's a great talk by Eric Demain I just stumbled upon. This guy is really impressive, follow him everywhere. A true inspiring guy. He's teaching 'Introduction to Algorithms' and 'Advanced Algorithms and Data Structures'




miércoles, 13 de mayo de 2015

[ANN] - Helm-dash 1.2.1 released

It's been a long time since any announcement on helm-dash. Now that we hit 100stars, we are happy to release a new version which supports third party docsets.

Kapeli keeps a list of user contributed docsets which aren't officially supported but in a contrib repo.

As the way to fetch the docsets changes completely from the official ones, I created a kind of adapter that fetches the docsets info and offers a curated version through a very simple API. The app that manages this is called dashes-to-dashes .  Every 20something minutes it updates the list of user contributed docsets, and makes it available for any helm-dash user who runs `m-x helm-dash-install-user-docset'.  The official ones are still available on 'm-x helm-dash-install-docset'.

There are some improvements in the support for windows, and a few bugfixes here and there.

Also, there's a branch waiting to land that will improve the userdoc trimming. When searching "rails | controller" it'll narrow the search just to 'ruby on rails' docset.

Stay tunned, and thanks for the support!

lunes, 4 de mayo de 2015

feh image viewer

My need for viewing images is really low. Just a few screenshots and funny pics, but I need some app to view them.

I usually use emacs for this task, but there's this little suckless app, feh , which is doing its job quite well. I use it to set the background image on my laptop

exec feh --bg-scale ~/dotfiles/wallpapers/sun.png

and I just configured it to accept vim-ish keybindings.

martes, 14 de abril de 2015

Cache is the new GC

Now all rubyists are pros in all Garbage Collection techniques.

And we all have to know the difference between mark&sweep, reference counting, generational, and whatnot (I also see more references to this in the lua mail list lately).

And we're already optimizing for not creating so many objects. And we pray Rust and Nim for being so powerful and fast and allow us to manage memory manually. and we decide that checking for existence of an element in a short Array is probably faster than checking in a small Set.  Even more if we know the distribution of the expected values.... Well... now, the next step is Cache.

Interesting points here http://dev.mensfeld.pl/2015/04/ruby-global-method-cache-invalidation-impact-on-a-single-and-multithreaded-applications/ .

And after that, Locality of variables, and compiler tricks to optimize code. Here's a nice StackOverflow thread.

Inside this thread the thing that brings you back to reality is that compilers are allowed to do pretty amazing things . Things that are so complex, that if you have to have that in mind... well.... good luck.  I guess for real time systems it makes sense, or very low level programming, but there are really complex techniques which seem really hard to anticipate .

What's the point of all that? No idea. it's just funny that sometimes we try to push low level languages to higher levels, and then, we program ruby as if we were forging asm.  Funny :) . In the end, all benchmarks are made to lie in one or other regard, so I guess the most important thing, is having Amdahl's law in mind (or an adaptation of it): All the optimizations you'll do, will apply only to the percentage of code where the optimization is feasible.  The original speaks about intrinsically serial code that cannot be parallelized.   My idea is that optimizing for cache hits in ruby when you have a webapp which does http calls here and there to external systems is not really the way.