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.
 

miércoles, 8 de abril de 2015

Regexp puzzles!

I've been trapped into this http://regexcrossword.com/ for  the whole afternoon...  Pretty cool pastime.

I guess I'd enjoy a bit more complicated one with more usage of recursion, backreferences, and maybe lookaheads...  But it's fine.  A nice exercise to get your brain spinning for a while.

I'm now back to my haskell lectures.   Oh yeah, I'm trying to learn Haskell.

Again

martes, 24 de marzo de 2015

download youtube videos with conkeror

As internet is scarce in my new $HOME, now, when I have some, I tend to download lots of things in my $COWORKING-PLACE and schedule them for watching/reading later.

So I tried to automate the process a little bit. Obviously, using conkeror.

  • install youtube-dl  .
  • put this in your .conkerorrc file.
  • M-x youtube-dl RET
Done.

sábado, 21 de marzo de 2015

more about XEROX

You know I love to read about XEROX stories, right?

Here's an article titled How parc saved xerox.

Enjoy it, and the links of it.   Entertaining and nice

jueves, 19 de marzo de 2015

Wifislax and booting

This is not a particularly general tip or post, but Toni and I have been stuck with it for a few hours (day and 1/2, on and off).

Wifislax is this great auditing linux distro you can install and run from your usb.

But you have to know that even when burning it with either unetbootin or dd, the usb drive is not bootable.  Don't know why, but it's not.

You have to mount the drive, and  run a file called /boot/bootinst.sh .

Tada!.

Stupid, yes. But it took us hours to find out. It took more time to burn the iso than to do the actual 'auditing' job.