When compiled, it could report its type.
Thursday, January 25, 2007
Improvements to "undefined"
Wednesday, January 24, 2007
Virtual Machine Shared Filesystems
Virtual machines (VMware, Xen, Parallels) is today's Big Thing. But each virtual machines takes up a lot of disk space. One should share data between virtual machines and or between a virtual machine and the host machine. One can imagine a "clone yourself" operation for a (host) OS, which immediately produces a guest VM that does a copy-on-write (-ish?) filesystem for the guest. Thus, one can have separate OS for each application to insulate applications from one another (another approach is SELinux).
After sharing disk space is sharing memory. After that is sharing compute cycles (if both machines are running the same code on shared memory, only execute it once).
One can use string matching to find shared blocks of memory or disk.
UNIONFS might be useful.
AI webpage adblock
Greasemonkey / other extension UI
Will it lead to an arms race?
Tuesday, January 23, 2007
Domed cylinder
Consider a cylinder with a dome. What dimensions maximize volume with respect to total surface area? Is it the largest vaguely stable shape? Vaguely stable meaning flat bottom, sides that rise perpendicularly from the bottom, and convexly curving in, like most bottles. To add one additional parameter, make the dome an ellipsoid.
A related problem: Given a circular field, construct a dome over it that maximizes the volume inside with respect to the surface area of the dome. Is it a section of a sphere (spherical cap)? Is it a hemisphere?
Thursday, January 18, 2007
delayed file overwrite
( sleep 10 ; echo hello ) >| foo (bash syntax) to wait 10 seconds before overwriting the file? That is, when an already existing file is opened for writing, don't zero it until the first byte is written, or it is closed.
Global Thermonuclear War on another planet
Sunday, January 07, 2007
GMP Mandelbrot
Some code to calculate the Mandelbrot set at arbitrary precision using GMP. It does orbit detection. I release this code under the GNU Public License.
#include <gmp.h>
#include <iostream>
#include <cassert>
using std::cout;
using std::endl;
typedef unsigned int Iter;
#define ORBIT
long long total_iterations=0;
long long saved_iterations=0;
void inner_loop(int bits, const mpz_t a, const mpz_t b, const mpz_t threshold, Iter max_iter,
Iter *iterations, bool *in_m_set) {
//NOTE that a,b is expected to be premultiplied by 2^bits, and threshold is 4*4^bits;
mpz_t x2,y2,add;
mpz_init(x2);
mpz_init(y2);
mpz_init(add);
mpz_t xfast,yfast;
mpz_init_set(xfast,a);
mpz_init_set(yfast,b);
//fast starts with an advantage already
#ifdef ORBIT
mpz_t xslow,yslow;
mpz_init_set_si(xslow,0);
mpz_init_set_si(yslow,0);
#endif
*in_m_set=true;
for(*iterations=0;*iterations<max_iter;++*iterations){
mpz_pow_ui(x2,xfast,2);
mpz_pow_ui(y2,yfast,2);
mpz_add(add,x2,y2);
if (mpz_cmp(add,threshold)>0) {
*in_m_set=false;
break;
}
mpz_mul(yfast,yfast,xfast);
mpz_tdiv_q_2exp(yfast,yfast,bits-1); //y=2*x*y
mpz_sub(xfast,x2,y2);
mpz_tdiv_q_2exp(xfast,xfast,bits);
#ifdef ORBIT
mpz_pow_ui(x2,xslow,2);
mpz_pow_ui(y2,yslow,2);
mpz_add(add,x2,y2);
mpz_mul(yslow,yslow,xslow);
mpz_tdiv_q_2exp(yslow,yslow,bits-1); //y=2*x*y
mpz_sub(xslow,x2,y2);
mpz_tdiv_q_2exp(xslow,xslow,bits);
if (mpz_cmp(xslow,xfast)==0 && mpz_cmp(yslow,yfast)==0) {
//orbit detection
saved_iterations+= (max_iter-*iterations);
break;
//in_m_set is already true
}
#endif
mpz_add(yfast,yfast,b);
mpz_add(xfast,xfast,a);
++*iterations;
++total_iterations;
mpz_pow_ui(x2,xfast,2);
mpz_pow_ui(y2,yfast,2);
mpz_add(add,x2,y2);
if (mpz_cmp(add,threshold)>0) {
*in_m_set=false;
break;
}
mpz_mul(yfast,yfast,xfast);
mpz_tdiv_q_2exp(yfast,yfast,bits-1); //y=2*x*y
mpz_sub(xfast,x2,y2);
mpz_tdiv_q_2exp(xfast,xfast,bits);
#ifdef ORBIT
if (mpz_cmp(xslow,xfast)==0 && mpz_cmp(yslow,yfast)==0) {
//orbit detection
saved_iterations+= (max_iter-*iterations);
break;
//in_m_set is already true
}
mpz_add(xslow,xslow,a);
mpz_add(yslow,yslow,b);
#endif
mpz_add(yfast,yfast,b);
mpz_add(xfast,xfast,a);
++total_iterations;
}
}
const int pixel_bits=10;
/* two experiments saw convergence around 50. 40 is pushing it. as low as 10 if
you don't need it to be perfect. 60 or 70 to be safe. */
const int screen_half_width=100;
void calc2(Iter max_iter, mpz_t Cx0, mpz_t Cy0, int Cbits, int bits) {
cout << "P5" << endl << 2*screen_half_width+1 << " " << 2*screen_half_width+1 << endl << 255 << endl;
assert(bits>=Cbits);
mpz_t cx,cy;
mpz_init(cx);
mpz_init(cy);
mpz_mul_2exp(cx,Cx0,bits-Cbits);
mpz_mul_2exp(cy,Cy0,bits-Cbits);
mpz_t threshold;
mpz_init_set_si(threshold,4);
mpz_mul_2exp(threshold,threshold,2*bits);
mpz_t a,b;
mpz_init(a);
mpz_init(b);
for(int dx=-screen_half_width;dx<=screen_half_width;++dx){
mpz_set_si(a,dx);
mpz_mul_2exp(a,a,pixel_bits);
mpz_add(a,a,cx);
for(int dy=-screen_half_width;dy<=screen_half_width;++dy){
mpz_set_si(b,dy);
mpz_mul_2exp(b,b,pixel_bits);
mpz_add(b,b,cy);
Iter i;
bool in_m_set;
inner_loop(bits,a,b,threshold,max_iter, &i,&in_m_set);
if (in_m_set) {
putchar(0);
//putchar('M');
}
else {
putchar(1+(i%255));
//putchar(' ');
}
}
//putchar('\n');
}
}
int main(int argc, char**argv){
assert(argc==2);
int mag=atoi(argv[1]);
mpz_t cx,cy;
mpz_init_set_si(cx,-1314468); // -1
mpz_init_set_si(cy,-397404);
calc2(100000,cx,cy,20,mag+pixel_bits);
std::cerr << total_iterations << endl << saved_iterations << endl;
}
Friday, January 05, 2007
Document Keyword Summary
One can also produce a section-by-section "map" or overview of the document by scanning for keywords that occur more frequently in a section than compared with the rest of the document.
26th step of the square root pyramid
The square root of 26, in base 26 written with the Phonetic Alphabet. 262=676 digits.
Corrected version:
Foxtrot Charlie Oscar Yankee Juliet Oscar Bravo Whiskey Xray India Lima Kilo Yankee Romeo Tango Oscar Hotel Victor Kilo Alpha Uniform Hotel Zulu Echo Delta Sierra Kilo Echo Hotel Hotel Uniform Papa Golf Juliet Sierra India Juliet Charlie Echo Echo Kilo Mike Bravo Kilo Yankee Charlie Tango Papa Zulu Romeo November Romeo Yankee Xray Golf Oscar Delta Foxtrot November Victor Mike Charlie Whiskey Alpha Foxtrot Lima Victor Tango Whiskey Mike Alpha November Xray Charlie Whiskey Quebec Alpha Zulu Delta Sierra Sierra Foxtrot Hotel November Papa Bravo India Whiskey Mike Zulu Quebec Golf Yankee Zulu Quebec Romeo Bravo Alpha Sierra Kilo India Golf Whiskey Golf Lima Alpha Oscar Victor Alpha Echo Whiskey Romeo Zulu Romeo Yankee Papa Alpha Oscar Victor Victor India Sierra Echo Yankee Uniform Yankee Victor Zulu Juliet Charlie Juliet Uniform Alpha November Sierra Kilo India November November Alpha Quebec Golf Kilo Romeo Juliet Zulu Lima Oscar Foxtrot Kilo Mike Alpha Whiskey Mike Sierra November Romeo November Whiskey Charlie Hotel November Sierra Mike India Papa Echo Oscar Yankee Whiskey Tango Whiskey Xray Zulu Papa Quebec Echo Uniform India Foxtrot Papa Alpha Alpha Alpha Alpha Golf Bravo Oscar Papa Papa Yankee November Zulu Tango Charlie Alpha Uniform Bravo Papa India Victor Romeo Uniform Hotel Tango Delta Mike Mike Delta Foxtrot Alpha Uniform Tango Oscar Tango Tango Juliet Mike Kilo Zulu Alpha Quebec Oscar Yankee India Lima Mike Sierra Whiskey Kilo Delta Tango Xray Zulu Tango Oscar Uniform India Yankee Papa Charlie India Lima Lima Papa Lima Yankee Hotel Charlie Juliet India Echo Bravo Bravo Bravo Alpha Uniform Delta Alpha Echo Oscar Sierra Juliet Quebec Kilo Yankee Romeo Lima Sierra Foxtrot Sierra Papa Charlie Tango Tango Quebec Alpha November Alpha Tango Bravo Victor Whiskey Yankee November Romeo Delta Echo Foxtrot Mike Charlie Uniform Romeo Delta Bravo Echo Bravo Yankee Juliet Tango Charlie Victor Xray Victor Whiskey Hotel Foxtrot Whiskey Golf Alpha Zulu Yankee Yankee Alpha Echo India Bravo Mike Yankee Lima Kilo Bravo Echo Sierra Oscar Zulu Charlie Quebec Xray Mike Bravo Golf Hotel Romeo Lima Papa November Yankee Yankee Hotel Xray Kilo Xray Tango Mike Alpha Zulu Echo Delta Hotel Romeo Bravo Whiskey Foxtrot November Whiskey Charlie Tango Romeo Uniform Zulu Papa Delta Tango Xray Oscar India Xray Uniform Kilo Oscar Mike Golf Lima Bravo Oscar Papa Uniform Hotel Foxtrot Victor Tango Xray Delta Xray Foxtrot Quebec Charlie Golf Yankee India Hotel Charlie Golf Oscar Papa Charlie November Sierra Oscar Victor Zulu Hotel Romeo Sierra Hotel Sierra Kilo Echo Sierra Kilo Oscar India Echo Juliet November November Quebec Quebec November Foxtrot Kilo Tango Xray Xray Kilo Delta Yankee Bravo Kilo Romeo Hotel Charlie Tango Charlie Foxtrot Hotel Mike Xray Alpha Golf Kilo Foxtrot Kilo Foxtrot Juliet Uniform Bravo Lima Alpha Charlie Delta Zulu Papa Delta Hotel Hotel Lima Uniform Alpha Mike Delta Yankee Zulu Victor Whiskey Bravo Kilo Lima Kilo Xray Xray Echo Golf Juliet Uniform Quebec Juliet India Uniform Oscar Foxtrot Delta Juliet Hotel Golf Echo Zulu Yankee November Zulu Echo Uniform Delta Kilo Romeo Quebec Yankee Echo Oscar Bravo Whiskey Golf Sierra Mike Papa Alpha Oscar Tango Papa Xray Victor Mike November Victor Tango Hotel Mike Papa Romeo Lima Charlie Hotel Xray Golf Bravo Lima Whiskey Hotel Bravo Charlie Papa November Foxtrot Delta India Oscar Yankee Kilo Oscar Quebec Tango November Hotel India Yankee Golf Yankee Alpha Sierra Zulu Oscar India Oscar Alpha Whiskey Bravo Xray Xray Uniform India Mike Delta Foxtrot Quebec Lima Yankee Foxtrot Bravo Lima Zulu Alpha Victor Foxtrot November Tango Delta Echo Oscar Kilo Hotel India Whiskey Bravo Kilo Echo Foxtrot Hotel Charlie Kilo Romeo Juliet Sierra Yankee Whiskey Uniform Yankee Hotel Romeo Yankee Uniform Delta Alpha Victor Alpha Charlie India Uniform Juliet Zulu Victor Tango Victor Sierra Victor Quebec Echo Sierra Hotel Lima November Charlie Oscar Alpha Echo Oscar Foxtrot Xray Uniform Uniform Romeo November Romeo Xray Yankee Charlie Foxtrot Charlie Alpha Tango Hotel Foxtrot Yankee Echo Alpha Lima Xray Yankee Golf Whiskey Lima Kilo Quebec Xray November Sierra Victor Romeo Zulu Charlie Hotel Delta Foxtrot Mike Golf Charlie Sierra Charlie Tango Hotel Victor Bravo Papa Victor Uniform Yankee
Incorrect (old) version:
Foxtrot Charlie Oscar Yankee Juliet Oscar Bravo Whiskey Xray India Lima Kilo Yankee Romeo Tango Oscar Hotel Victor Kilo Alpha Uniform Hotel Charlie Foxtrot Echo Delta Sierra Kilo Echo Hotel Hotel Uniform Papa Golf Juliet Sierra India Juliet Charlie Echo Echo Kilo Mike Bravo Kilo Yankee Charlie Tango Papa Zulu Romeo November Romeo Yankee Xray Golf Oscar Delta Foxtrot November Victor Mike Charlie Whiskey Alpha Foxtrot Lima Victor Tango Whiskey Mike Alpha November Xray Charlie Whiskey Quebec Alpha Zulu Delta Sierra Sierra Foxtrot Hotel November Papa Bravo India Whiskey Mike Zulu Bravo Golf Golf Yankee Zulu Quebec Romeo Bravo Alpha Sierra Kilo India Golf Whiskey Golf Lima Alpha Oscar Victor Alpha Echo Whiskey Romeo Zulu Romeo Yankee Papa Alpha Oscar Victor Victor India Sierra Echo Yankee Uniform Yankee Victor Zulu Juliet Charlie Juliet Uniform Alpha November Sierra Kilo India November November Alpha Quebec Golf Kilo Romeo Juliet Zulu Lima Oscar Foxtrot Kilo Mike Alpha Whiskey Mike Sierra November Romeo November Charlie Charlie Charlie Hotel November Sierra Mike India Papa Echo Oscar Yankee Whiskey Tango Whiskey Xray Zulu Papa Quebec Echo Uniform India Foxtrot Papa Alpha Alpha Alpha Alpha Golf Bravo Oscar Papa Papa Yankee November Zulu Tango Charlie Alpha Uniform Bravo Papa India Victor Romeo Uniform Hotel Tango Delta Mike Mike Delta Foxtrot Alpha Uniform Tango Oscar Tango Tango Juliet Mike Kilo Zulu Alpha Quebec Oscar Yankee India Lima Bravo Charlie Sierra Whiskey Kilo Delta Tango Xray Zulu Tango Oscar Uniform India Yankee Papa Charlie India Lima Lima Papa Lima Yankee Hotel Charlie Juliet India Echo Bravo Bravo Bravo Alpha Uniform Delta Alpha Echo Oscar Sierra Juliet Quebec Kilo Yankee Romeo Lima Sierra Foxtrot Sierra Papa Charlie Tango Tango Quebec Alpha November Alpha Tango Bravo Victor Whiskey Yankee November Romeo Delta Echo Foxtrot Mike Charlie Uniform Romeo Delta Alpha Bravo Echo Bravo Yankee Juliet Tango Charlie Victor Xray Victor Whiskey Hotel Foxtrot Whiskey Golf Alpha Zulu Yankee Yankee Alpha Echo India Bravo Mike Yankee Lima Kilo Bravo Echo Sierra Oscar Zulu Charlie Quebec Xray Mike Bravo Golf Hotel Romeo Lima Papa November Yankee Yankee Hotel Xray Kilo Xray Tango Mike Alpha Zulu Echo Delta Hotel Romeo Bravo Whiskey Foxtrot November Whiskey Charlie Tango Romeo Uniform Zulu Papa Alpha Delta Tango Xray Oscar India Xray Uniform Kilo Oscar Mike Golf Lima Bravo Oscar Papa Uniform Hotel Foxtrot Victor Tango Xray Delta Xray Foxtrot Quebec Charlie Golf Yankee India Hotel Charlie Golf Oscar Papa Charlie November Sierra Oscar Victor Zulu Hotel Romeo Sierra Hotel Sierra Kilo Echo Sierra Kilo Oscar India Echo Juliet November November Quebec Quebec November Foxtrot Kilo Tango Xray Xray Kilo Delta Yankee Bravo Kilo Bravo Hotel Hotel Charlie Tango Charlie Foxtrot Hotel Mike Xray Alpha Golf Kilo Foxtrot Kilo Foxtrot Juliet Uniform Bravo Lima Alpha Charlie Delta Zulu Papa Delta Hotel Hotel Lima Uniform Alpha Mike Delta Yankee Zulu Victor Whiskey Bravo Kilo Lima Kilo Xray Xray Echo Golf Juliet Uniform Quebec Juliet India Uniform Oscar Foxtrot Delta Juliet Hotel Golf Echo Zulu Yankee November Zulu Echo Uniform Delta Kilo Romeo Quebec Yankee Alpha Echo Oscar Bravo Whiskey Golf Sierra Mike Papa Alpha Oscar Tango Papa Xray Victor Mike November Victor Tango Hotel Mike Papa Romeo Lima Charlie Hotel Xray Golf Bravo Lima Whiskey Hotel Bravo Charlie Papa November Foxtrot Delta India Oscar Yankee Kilo Oscar Quebec Tango November Hotel India Yankee Golf Yankee Alpha Sierra Zulu Oscar India Oscar Alpha Whiskey Bravo Xray Xray Uniform India Mike Delta Foxtrot Quebec Lima Charlie Echo Foxtrot Bravo Lima Zulu Alpha Victor Foxtrot November Tango Delta Echo Oscar Kilo Hotel India Whiskey Bravo Kilo Echo Foxtrot Hotel Charlie Kilo Romeo Juliet Sierra Yankee Whiskey Uniform Yankee Hotel Romeo Yankee Uniform Delta Alpha Victor Alpha Charlie India Uniform Juliet Zulu Victor Tango Victor Sierra Victor Quebec Echo Sierra Hotel Lima November Charlie Oscar Alpha Echo Oscar Foxtrot Xray Uniform Uniform Romeo November Romeo Xray Charlie Echo Charlie Foxtrot Charlie Alpha Tango Hotel Foxtrot Yankee Echo Alpha Lima Xray Yankee Golf Whiskey Lima Kilo Quebec Xray November Sierra Victor Romeo Zulu Charlie Hotel Delta Foxtrot Mike Golf Charlie