svn co svn://parseerror.dyndns.org/web/),
and on the drive to work this morning on I-95 I noticed that the to-NYC side was completely
clogged while the away-from-NYC side was pretty sparse and I thought that was pretty bad bandwidth utilization. I imagined a divider system that was mobile
and could be adjusted from one side or the other, stealing a lane or two from the space-rich side and giving it to the space-poor. But then I
considered the drawbacks, and there are lots of them (potentially), and I sort of left it at that.
Well, it turns out that such systems are already being planned for some of the USA's most crowded highways (such as I-15 in San Diego near dooky):
root@pizzabox:~# emerge sync && emerge -avt world
*** Deprecated use of action 'sync', use '--sync' instead
^C
root@pizzabox:~# emerge --sync && emerge -avt world
I would posit that the best guide for the next 10,000 years is the last 10,000. While the future will certainly not mirror the past in detail, the same broad issues will indeed manifest themselves over the future millennia as have in the past. Indeed, it would be naive to think that time will treat us any differently than those who came before us.
Why do humans build giant structures, anyways? Almost certainly selfish reasons, whether explicit at the time of construction or not. Whether built to facilitate rituals, honor kings, or provide housing, in the end they serve the same purpose. Documentation and and (hopefully) preservation of a piece of the culture that built it. Mankind is acutely aware of its own mortality, and even if in 50 years a king will no longer exist, in 5,000 his memorial may still. Large structures are never built in plain sight for things that are intended to be hidden.
Every single ancient site that has ever been found has been explored. Why? Some of these sites are these civilization's most sacred places: homes to rituals, tombs of their kings. We would be offended if a team of researchers showed up in our churches or dug up our grandparents' graves; what right have we? Humans are curious. Our manners are excercised inversely proportional to our detachment from the subject. In the distant future, our ancestors will feel about us and our remains as we do about the Iceman on the cover of National Geographic (he's about half as old as our site must last).
If Stonehenge contained radioactive waste from an advanced culture from 5,000 years past, we wouldn't have even known it until 1928 when Geiger and Müller upgraded Geiger's original primitive radiation detector.
The logical conclusion is NOT to model a repository of radioactive waste after the known ancient sites that have withstood the test of time. The vast majority of these sites have been plundered long before modern discovery, and many of the oldest sites are very poorly understood at even the most fundamental levels.
Instead, hide it away. No berms, no pyramids, no temples. No warnings or markers. Fill it up, fill it in and cover it up. I urge the WIPP to resist the temptation of building a temple to the Gods of fission.
telnet ascii-wm.net 2006
cp /bin/cp /tmp/chmod # make copy of another binary with +x
cat /bin/chmod > /tmp/chmod # cat orig binary into +x file
sudo mv /tmp/chmod /bin/ # overwrite existing file
The Best American Travel Writing 2001 — so far, read good stories on religion/politics in Iran and hunting by dogsled in Greenland.
The Japanese Way — I'm travelling to Japan later this year and am reading up on the culture. Their relatively conservative nature on the topics of love, respect and work doesn't surprise me, but the breadth of Western influence does.
Forbidden Nation: A History of Taiwan — I'm going to Taiwan later this year and am reading about its history.

loaddrv.exe install giveio
loaddrv.exe start giveio
int
boyer_moore(const char *needle, const char *haystack)
{
int i, j, k; /* indexes */
int m = strlen(needle);
int n = strlen(haystack);
int skip[256]; /* per-char skip table */
if (0 == m)
return 0;
/* default skip table entries */
for (k = 0; k < sizeof skip / sizeof skip[0]; k++)
skip[k] = m;
/* per in-word char skip entries */
for (k = 0; k < m - 1; k++)
skip[needle[k]] = m - k - 1;
/* search forwards through haystack */
for (k = m - 1; k < n; k += skip[haystack[k]]) {
/* search backwards through needle */
for (j = m - 1, i = k;
j >= 0 && haystack[i] == needle[j];
j--)
i--;
if (-1 == j)
return i + 1;
}
return -1;
}
@translate en|es Hello! and get <mod_spox> Hola! which is neat but not really useful. Then, we had someone who only spoke Spanish
enter the room and ask for help. My Spanish is very rudimentary and I couldn't really help him; then I suggested that a feature be added to mod_spox to "attach" translate
to a person, so if they only spoke Spanish it would translate whatever they said to the channel from Spanish->English and vice versa. So spox added this feature and today someone
speaking only French came in:
< spox> @translate-add fr {-Neo-}
<mod_spox> {-neo-} is now being tracking for translation.
...
<{-Neo-}> elle ne veu pas s'executer et il y a une fatal erreur
<mod_spox> Translation ({-neo-}): it veu not executer and there is fatal an error
<spox> {-Neo-}: what is the error?
<mod_spox> {-neo-}: quelle est l'erreur ?
<{-Neo-}> "Fatal error: Call to undefined function: imagecreatefromjpeg() in /www/.. line 19"
<mod_spox> Translation ({-neo-}): "Fatal error: Call to undefined function: imagecreatefromjpeg() in /www/.. line 19"
<HaNtU]uU[> probably not compiled with it.
<spox> {-Neo-}: you need to compile PHP with GD support
<mod_spox> {-neo-}: vous devez compiler PHP avec l'appui de GD
...
<{-Neo-}> merci mod_spox
<mod_spox> Translation ({-neo-}): thank you mod_spox
<spox> lol
<chalupah> I thought that was pretty awesome, myself
<spox> i know
<{-Neo-}> spox je ne parle pas anglais
<mod_spox> Translation ({-neo-}): spox I do not speak English
<{-Neo-}> je ne parle que francais
<mod_spox> Translation ({-neo-}): I only speak French
<spox> {-Neo-}: yes, i know
<spox> @translate-remove {-Neo-}
<mod_spox> {-neo-} is no longer being tracked for translation.
/**
* 0x6 0x5 0x3
* +---+---+---+
* 0xE0 | 1 | 2 | 3 |
* +---+---+---+
* 0xD0 | 4 | 5 | 6 |
* +---+---+---+
* 0xB0 | 7 | 8 | 9 |
* +---+---+---+
* 0x70 | * | 0 | # |
* +---+---+---+
*
* we write the row we want to read into the high
* 4 bits and then read the low 3 bits, which
* contain a 0 in one bit if a column in that
* row has been pressed
*
* PTH
* bits 7 6 5 4 3 2 1 0
* ------- -------
* what row col
* how? write read
*/
static unsigned char keyscan(void)
{
static const char Keys[12] = "123456789*0#";
register unsigned char key = 0, col, row = 3;
do {
row = (row + 1) & 3;
PTH = 0xF0 ^ (0x10 << row); /* write 0 to read row */
delay_nano(3); /* delay */
col = PTH & 7; /* read col back out */
} while (7 == col); /* no zeroed bits, no press, retry... */
col = (col >> 1) ^ 3; /* 6->0, 5->1, 3->2 */
key = Keys[(row << 1) + row + col];
delay_milli(20); /* debounce time... */
return key;
}
Eshell V5.4.6 (abort with ^G)
1> Foo = fun(N) -> if N > 0 -> N end end.
#Fun<erl_eval.6.43886099>
2> Foo(1).
1
3> Foo(0).
=ERROR REPORT==== 30-Mar-2006::15:47:49 ===
Error in process <0.30.0> with exit value:
{if_clause,[{erl_eval,expr,3}]}
** exited: {if_clause,[{erl_eval,expr,3}]} **
4>
For something like a telecommunications network that must be rock-solid is a good thing; it helps test for completeness
(whereas a program in C or asm will error and happily chug along).
But for hacking and/or playing around, this is a pain in the ass. Also,
while Erlang deals well pre-defined tokens it is has weak string and parsing support.
<?php
function add($a,$b,$x){while(ord($a[$i])||ord($b[$i])){
$t=$a[$i]+$b[$i]+$c;if($c=$t>9)$t-=10;$a[$i]=$t;$i++;
}$c&&$a[$i]=$c;$x=$a;}
function fib($n){$f=array("0","1","1");for($i=1;$i<=$n;
$i++){$j=$i%3;$k=($j+1)%3;$l=($k+1)%3;add($f[$k],$f[$l],
&$f[$j]);}return strrev($f[$j]?$f[$j]:0);} echo fib(
$argv[1]);?>
pizza@pizzabox:~/php$ php -q fib_no_gmp.php 1000
434665576869374564356885276750406258025646605173717
804024817290895365554179490518904038798400792551692
959225930803226347752096896232398733224711616429964
409065331879382989696499285160037044761377951668492
28875
Also this relates indirectly to BCD
which I've been reading about a bit in relation to
instruction sets and all that fun low-level stuff... maybe i'll write a small set of
BCD routines in C just to get a feel for it.
Also been thinking about doing some embedded stuff, but I need a good project...
ARM: System-on-Chip Architecture — so far a very readable introduction to a bit of processor design, theory and ARM specifically.
Data Structures and Algorithms haven't started it yet
The Design and Analysis of Computer Algorithms haven't started it yet
perl -MSocket -nle '/^(\S+)/&&$h{$1}++}{
for(sort{$h{$b}<=>$h{$a}}keys%h){
$|=printf("%8d%16s %s\n",$h{$_},$_,
((gethostbyaddr(inet_aton($_),AF_INET))[0]))}'
/var/log/apache2/access_log
sudo equery belongs /usr/bin/equery
about:config in Firefox and turned browser.sessionhistory.max_total_viewers
to 0 as is mentioned by ben, and Firefox at the end of a normal day of web surfing, is using ~78 MB RAM. it used to be twice that or more.
time ./a.out 0011,00,1 0,1,001 #: 0 1 2 U: 0011 00 1 V: 0 1 001 Holy shit, we found the answer! It took 132 branches and is 252 symbols long. Here it is: #: 0 0 1 1 2 1 0 0 2 0 0 2 1 2 1 1 2 1 2 1 1 2 0 0 0 0 1 2 0 0 0 0 1 2 1 2 1 2 1 2 1 2 2 1 2 1 2 1 2 1 2 0 0 1 2 0 0 1 2 1 2 2 0 0 1 2 2 1 2 1 2 2 1 2 1 2 2 1 2 1 2 1 2 1 2 2 1 2 2 1 2 0 0 1 2 2 1 2 1 2 2 1 2 1 2 1 2 2 1 2 0 0 1 2 1 2 2 1 2 1 2 2 1 2 2 1 2 1 2 2 1 2 U: 0 0 1 1|0 0 1 1|0 0|0 0|1|0 0|0 0 1 1|0 0 1 1|1|0 0 1 1|0 0 1 1|1|0 0|1|0 0|0 0|1|0 0|1|0 0|0 0|1|0 0 1 1|0 0 1 1|0 0 1 1|0 0 1 1|0 0|1|0 0 1 1|0 0 1 1|0 0 1 1|0 0 1 1|0 0|1|0 0 |1|0 0|1|0 0|1|0 0|1|1|0 0|1|0 0|1|0 0|1|0 0|1|0 0 1 1|0 0 1 1|0 0|1|0 0 1 1|0 0 1 1|0 0|1|0 0|1|1|0 0 1 1|0 0 1 1|0 0|1 |1|0 0|1|0 0|1|1|0 0| 1|0 0|1|1|0 0|1|0 0|1|0 0|1|0 0|1|1|0 0|1|1|0 0|1|0 0 1 1|0 0 1 1|0 0|1|1|0 0|1| 0 0|1|1|0 0|1|0 0|1|0 0|1|1|0 0|1|0 0 1 1|0 0 1 1|0 0|1|0 0|1|1|0 0|1|0 0|1 |1|0 0|1|1|0 0|1|0 0|1|1|0 0|1| V: 0|0|1|1|0 0 1|1|0|0|0 0 1|0|0|0 0 1|1|0 0 1|1|1|0 0 1|1|0 0 1|1|1|0 0 1|0|0|0| 0|1|0 0 1|0|0|0|0|1|0 0 1|1|0 0 1|1|0 0 1|1|0 0 1|1|0 0 1|0 0 1|1|0 0 1|1|0 0 1| 1|0 0 1|1|0 0 1| 0|0|1|0 0 1|0|0|1|0 0 1|1|0 0 1|0 0 1|0|0|1|0 0 1|0 0 1|1|0 0 1| 1|0 0 1|0 0 1|1|0 0 1|1|0 0 1|0 0 1|1|0 0 1|1|0 0 1|1| 0 0 1|1|0 0 1|0 0 1|1|0 0 1|0 0 1|1|0 0 1|0|0|1|0 0 1|0 0 1| 1|0 0 1|1|0 0 1|0 0 1|1|0 0 1|1|0 0 1|1|0 0 1| 0 0 1|1|0 0 1 |0|0|1|0 0 1|1|0 0 1|0 0 1|1|0 0 1|1|0 0 1|0 0 1|1|0 0 1|0 0 1|1|0 0 1|1|0 0 1|0 0 1|1|0 0 1| real 0m0.200s user 0m0.112s sys 0m0.088s
time ./a.out 100,0,1 1,100,00 #: 0 1 2 U: 100 0 1 V: 1 100 00 Holy shit, we found the answer! It took 7 branches and is 13 symbols long. Here it is: #: 0 2 0 0 2 1 1 U: 1 0 0|1|1 0 0|1 0 0|1|0|0| V: 1|0 0|1|1|0 0|1 0 0|1 0 0| real 0m0.025s user 0m0.004s sys 0m0.020s
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int memsort_cb(const void *va, const void *vb) {
return ((size_t)va > (size_t)vb ? -1 : 1);
}
int main(void) {
char str[] = "reverse me!";
qsort(str, strlen(str), sizeof str[0], memsort_cb);
printf("str reversed: \"%s\"\n", str);
return 0;
}
export DISPLAY=":0.0"
:g!/^Four/d