Yuki TV
Akí teneis a Yuki en vivo y en diferido!
No estaba muy activa en ese momento, pero a veces se pone a dar vueltas por el sofa y no hay quien le haga una foto, así que mejor así.
The Chuck Norris Facts Bash Script
Pon un Chuck Norris en tu vida! O mejor aun, pon miles de Chuck Facts en tu consola!
Bored STenyaK Productions presents: chuckfacts.sh!

Coming this winter to a console in front of you…
#!/bin/bash
# check for parameters
if [ -z $1 ]
then
echo "Please specify the destination chuck norris facts file."
echo "E.g.: $0 ~/.chuckfacts.txt"
exit
fi
ffile=$1
old=0
if [ -s $ffile ]
then
old=$(wc -l $ffile |sed "s/\s.*//g")
fi
echo -n "Getting facts pack"
# download the 170 first chuck norris pages of 4q.cc site to disk
for i in $(seq 1 170)
do
echo -n " $i"
# only store facts
wget -qO - \
"http://4q.cc/index.php?pid=listfacts&person=chuck&page=$i" \
| grep "index.php?pid=fact&person=chuck" >> $ffile
done
echo ""
echo -n "Post-processing facts..."
# remove unnecessary html code
perl -pi -e "s/.*id=.{32,32}\">//g;s/<\/a>.*//g" $ffile
# replace most common html entities
perl -pi -e "s/"/\"/g" $ffile
perl -pi -e "s/&/&/g" $ffile
# remove empty lines
perl -ni -e "print unless /pid=/" $ffile
# remove redundant lines
cat $ffile |sort |uniq > /tmp/chuckfacts.tmp
mv /tmp/chuckfacts.tmp $ffile
new=$(wc -l $ffile |sed "s/\s.*//g")
echo " OK"
echo "Generated $(($new-$old)) new facts ($new in total) facts."
# show how to add a fortune-like command to bashrc
echo ""
echo "You can add this to your ~/.bashrc file:"
echo 'test -s '$ffile' && cowsay -f $(ls /usr/share/cowsay/cows
| shuf |head -1) "$(cat '$ffile' |shuf |head -1)"'
Mira que no me aburro a veces ni nada eh…
11.12.09Google’s “go” simple & stupid benchmark (2nd round: memspeed)
Continued from Round 1: I/O
Thanks to Juanval for the suggestion.
$ cat hello.cpp && g++ hello.cpp &&
> time for i in $(seq 10); do ./a.out; done
int main (int argc, char** argv)
{
const int size = 250;
int a[size],b[size],c[size];
for(int i=0;i<size;++i)
for(int j=0;j<size;++j)
for(int k=0;k<size;++k)
c[k]+=a[i]*b[j];
}
real 0m1.041s
user 0m0.944s
sys 0m0.020s
$ cat hello.py &&
> time for i in $(seq 10); do python hello.py; done
size = 250
a,b,c = [0]*size, [0]*size, [0]*size
for i in a:
for j in b:
for k in range(0,size):
c[k] += i*j
real 1m7.210s
user 1m4.924s
sys 0m0.084s
$ cat hello.go && 8g hello.go && 8l hello.8 &&
> time for i in $(seq 10); do ./8.out; done
package main
func main()
{
var a,b,c [250]int;
for i := range a
{
for j := range b
{
for k := range c
{
c[k] += a[i] * b[j];
}
}
}
}
real 0m3.000s
user 0m2.812s
sys 0m0.020s
11.11.09 Google’s “go” simple & stupid benchmark (1st round: I/O)
Systems programming language? They gotta be kiddin…
$ cat hello.cpp && g++ hello.cpp &&
> time for i in $(seq 100); do ./a.out >/dev/null; done
#include <stdio.h>
int main (int argc, char** argv)
{
for (int i=10000;i--;)
{
printf("hello, world\n");
}
}
real 0m0.427s
user 0m0.220s
sys 0m0.164s
$ cat hello.py &&
> time for i in $(seq 100); do python hello.py >/dev/null; done
for i in range(1,10001):
print "hello, world"
real 0m3.809s
user 0m2.800s
sys 0m0.724s
$ cat hello.go && 8g hello.go && 8l hello.8 &&
> time for i in $(seq 100); do ./8.out >/dev/null; done
package main
import "fmt"
func main()
{
for i:=10000;i>0;i--
{
fmt.Printf("hello, world\n")
}
}
real 0m7.528s
user 0m6.388s
sys 0m0.664s
Continued in Round 2: memspeed
09.11.09Puls, 256 bytes intro by Arriola
This post is twice the size of Puls
Little Big Planet feat. Daft Punk
Hacía mucho que no posteaba nada por aquí, así que ahí va un post facilón de mítico video empotrao xD
04.3.09Ladies and gentlemen, may I introduce you…
Just a small vid (edited by Silverghost) of the first day of my new baby bimmer, a 118D 5d. More info, pictures and a thorough review coming soon!
Un montaje (editao por Javi) del primer día del peque, mi nuevo 118D 5p. Otro dia con más tiempo le hago una review en plan, con foticos y esas chorradas
.
En efecto, éste es el digno sucesor elegido para el viejo Renault 21.
So yeah, that’s the worthy replacement for the now sadly defunct Renault 21.
03.8.09Mad oversteer
Some old vids in which I’m just the wheelman. Thanks to Darth Joules and Geert, the simracers who did the video capturing and editing (my crappy 1k ghz putter couldn’t handle all that stuff, 30 constant FPS was already a great achievement), and of course thanks to Eero Piitulainen for the excelent RBR physics (hope to see another physics engine of yours soon…).
Edit: fuck, the first video’s been taken down. i’m not making any money out of this blog, you stupid record labels!
Edit 2: yeah!! a counter-dispute and the video is back online! let’s see how long it lasts..
Ahora lo que es en castellano: un par de viejos videos, de cuando solía quemar rueda (virtual) semanalmente, en este caso con RBR. Gracias a Darth Joules y Geert por la captura y edición, y Eero por el brutal motor físico que programó a contrarreloj para SCi y que aún hace vibrar a la comunidad. Una pena que el código se haya perdido en el limbo legal gracias a los 6 años de abandono, los Ferraris de dudosa legalidad estrellados, la mierda que salpicó a Warthog Studios por sus relaciones con cierta mafia sueca de blanqueo, las detenciones de algunos CEOs y los consiguientes enchironamientos, y weno… mejor no seguir que escribo un libro
Richard Alexander Burns
January 17, 1971 – November 25, 2005
R.I.P.
01.20.09Consistent Desktop UI proposal
I’ve always been a bit particular with my desktop preferences. After using WindowMaker, Gnome+Sawfish, Ion2, WMII, Kde+Kwin, Gnome+Metacity, Compiz Fusion+AWN and testing out some more, I’ve yet to see one that fully addresses my needs.
One of my main complaints is the waste of screen real estate. Both window managers and applications themselves are at fault for this. The influence of Windows UI style in panels and windows has prevented most designers from getting the most out of the users’ screens. Ion2 is the window manager i’m currently most happy with, but it’s still not perfect if applications don’t properly cooperate, which is only possible if they follow some sort of guidelines (such as those discussed and published by the FreeDesktop project).
This blog post shows a suggestion that could, IMHO, improve the desktop experience, although maybe at the cost of reduced usability for computer illiterates.
As an introduction, here’s a quickly gimped draft of the idea I had some months ago:
The increase in usable space is obvious (well, at least to power users). The famous and ancient “title bar” is gone. We already have the window title in the so-called task bar, so why repeat it again using a whole horizontal bar for it? And what’s with the habit of dedicating another whole bar for 5 tiny application menues? Furthermore, the old status bar can be set to automatically hide for additional real estate (with a behaviour similar to that of Google browser Chrome).
Most interactive widgets have been moved to the top of screen (but they might as well have been placed on the bottom or aside). Personally, I see no reason for spreading buttons all over the screen, other than following the current desktop environment trends. Having them all close together greatly reduces the need to move the mouse.
Keep in mind that the tabs depicted in that draft are not supposed to be fullscreen-only, but have a mixed TDI & MDI behaviour (similar to Opera but, instead, leaving the management of those document windows to… well, the window manager
).
But it doesn’t stop there. While we’re at it, why not merge the ideas behind desktops and apps? Here’s the natural evolution of the original idea:
There, the concept of virtual desktops is applied as a way to organize tabs (instead of using yet more windows for the same application instance).
The key is what I’ve just decided to name generic-bar. This bar contains an “app” icon (gnome icon, firefox icon, favicon…), abstracted pager, “tabs” and applets (menues, buttons, traditional applets…) in any desired number and order. For example, in the last draft there are two generic bars: the first one contains “applications”, while the second one contains what we currently know as “tabs”. In essence, both applications and tabs would be handled the same way by the proposed desktop environment. Furthermore, this hypothetical desktop environment could handle generic-bar nesting of any depth.
The good thing is that this desktop proposal does not remove any functionality currently found on most desktop environment UIs, but actually adds more while freeing up even more space for your valuable applications to use.
11.25.08Nope, not 42 this time
At last! After several weeks of search, I’ve finally found it: it’s a short story writen by Asimov. One of those that make you ponder about the meaning of life. A story that should be read by many a politician, in order for them to realize how moronically oxymoronic it is to talk about the so called “sustainable development” (amongst other things).
I have another brain melting story waiting in the chamber, in case someone cares. It explores the idea of multiverses and how to detect nested virtual worlds. Unfortunately, I’m a bit thick with google today, so I’ll leave that for a different post.
Meanwhile, you can discover the answer to…
THE LAST QUESTION
(by Isaac Asimov)
The last question was asked for the first time, half in jest, on May 21, 2061, at a time when humanity first stepped into the light. The question came about as a result of a five dollar bet over highballs, and it happened this way:








