Postcards from the Bleeding Edge
Thursday, December 26, 2019

  Designing for the disconnect

I gave a version of this talk, dramatically cut down in size to the Adelaide users group, back in 2008.

I totally forgot I had it in draft here... I lost the accompanying slides (which help a lot) but the video is still in australia. I've been trying to tie it all together for year in some format that will make sense. I'm close. Perhaps getting this draft out will help me find a way to pull it together. It's important.

[PROPS] – broom,
perfume, nokia, cellphone, laptop, goggles, ball, glasses, bluetooth
keyboard

[TOOLS] – ACCESS POINT, LAPTOP,

I'd stopped being homo sapiens and become google sapiens.

I wanted to be here – [slide showing water scene] - to be able
to spend a productive day – getting in some exercise and sun –
but still able to work – unattached to the internet.

This is the first chance I've had to give a talk in about a year,
I have a lot of slides to get through, so I'm going to take a 5
minute break in the middle. This talk is not particularly technical
in the first half, but it does wax and wane through some deeply
technical matters in the second.

Today's talk was actually inspired by last month's talk here,
where [author] showed off all sorts of neat web and linux based tools
for managing the information in your business.

And several times through the talk, he lost his internet
connection. [disconnect slide]

The presentation... and all coherent thought... ceased. It
Stopped. Cold. I'm really glad our mission critical systems – like
the ABS brakes in your car, or the gas valve in your stove - are not
reliant on a SLA from your ISP or a genuine advantage guarantee from
Microsoft.

He got back online after a frenzy of clicking, it was high stress,
but we've all been there, and we cut him some slack.

That is what the last year has been like for me. I have been
offline far more often than I have been on... In some places I've
been I haven't even had electric power for days at a time. The
fundamental point I'm going to be bashing to death today is that you
have to design for the disconnect.

You need to design around the inevitable disconnect. There's a lot
of forms that can take, whether accidental or deliberate.

We have a generation growing up now that has almost never been
offline, and doesn't know how to function without a connection to
something. A good name for them, like generation X before them, is
“millenial”, and there's all sorts of writings on that generation
on the web, I'm not going to go into it.

I'm a dinasour. I believe -

Having to be connected all the time is a bad thing. That we need to be able to fly without the Net.

We are all getting closer and closer ties to services like the
crackberry. The profits of those businesses, and google, and myspace,
and youtube, etc, is measured in stickyness, in talk or hang time, in
advertising pages delivered, not by how more effective you are in
conducting your daily business. Your traversals of their tollbooths
is measured in the stock prices and sale prices of the corporations
that are making you do it. Your dependency on them is not much
different than an addict's dependence on his drug dealer.

Everybody wants to be building tollbooths. Few want to be building
new roads.

[internet roads and the speed of transport]

To get from point A to point B, you have to get through someone's
road, and go through their tollbooth. It might be faster – or a
nicer trip – to get to point B via point C, but services like that
aren't going to tell you about that, because you won't go through
their tollbooth then. Other services might advertise on your A-B
service, if possible, but no one is going to tell you about the
delightful trail through the mountain that goes past the waterfall,
you have to find that for yourself. They'd rather send you through
their big, glitzy tollbooth as often as possible.

If you want to go off the map, a GPS helps.

Portable GPS's are wonderful. Rental car agencies are renting them
out by the truckfull at 25 bucks a day. They save so much time and
stress and worry for someone moving around a strange place that they
are worth every penny, but they have limitations. Outsourcing all
your thinking to them is not always a good idea.

I got a GPS once that decided that the best way to get where I was
going... was right through Newark, NJ's ghetto at 1 oclock in the
morning. I was so focused on the turn by turn directions on that trip
was – that I – ALMOST – didn't notice the prostitutes slouching
in the doorways or the three dudes crouching around a burning
trashcan. I DID notice the hulking guy that came up to my car window
and tried to sell me cocaine, but the light changed and I sped away
before I could be tempted.

Those rental GPS costs add up quickly. Inside of a few weeks of
travelling around you can pay for one of your own. I was travelling a
lot so I bought one. It didn't work in New Zealand. but it works just
fine here in Oz.

Actually, spending a day figuring out the public transport system,
involves even lower costs and less stress, you can outsource the
driving to a cab driver when needed, and read a newspaper, and having
the GPS along, even when walking, means you are generally lost only
for a few minutes and meters at a time.

But - what do you do when you are in the middle of a strange
wilderness and the batteries to your GPS give out? [next slide]

TIP for the Millenials: If you are in the northern hemisphere, the
topmost star in the little dipper is Polaris, the north star. IF you
are facing that way, east is to your right, west is to your left, and
south is behind you.

[next slide] If you're in southern hemisphere, the closest
equivalent is the bottom star on the southern cross, which is here. I
think. I haven't got lost enough down here long enough to have to try
this one out.

None of these alternatives is a good as a simple compass, which
requires no batteries, works in darkness and rain, and can be made
very small... not that I've ever seen a cell phone with one. It's
rare I see a car with one. I have seen a pocketknife with one –
that even had mp3 capability.

Now there's a lot of people that think that the distance between
two points is measured by the number of highways and subway exits
between them. [new slide] This is a picture of ping times between all
the points on the internet taken a few years ago by caida.org. It
takes about 1/3 of a second, max, to get anywhere on the internet
that's up. Pretty neat – all this data that is out there...

I've had this happen three times now. I'll have a kid over for a
day, and to distract them I'll put them in front of one of my
computers, a laptop, an OLPC, something... and the kid will ask me:
Can I get on the internet with your computer? Why? I want to play
tetris. [bring up tetris running locally]. No joke – I'll bring it
up here, on my machine, and they are amazed... The idea that
everything interesting exists – out there – not here – is one
of the things I'm trying to combat.

It's NOT true that in order to be productive and functional, you
have to be online, all the time. Everything that's good about your
computer can exist on it.

DISORGANIZER

Back in the 90s there was a brief trend towards the personal
organizer.

There's a <a
href=http://www.youtube.com/watch?v=6bcTc8e2-6U>famous palm pilot
ad</a>. <a href=Palm.mpg>local copy</a> There's two
people, in different trains, that spot each other - It's love at
first sight, but they are in two different trains! As their trains
pull away, in different directions, in desperation they aim their
palm pilots at each other, with their contact information, and
presumably ring each other up, and live happily ever after.

I can't do that with these. [point to laptop, nokia, cell] You
can't do that with anything being made today. My physical presence
has shrunk to my physical presence, and that's it. I've had to go
back to exchanging business cards and bothering to type them up when
I can.

Look, I've got my laptop up on the net here, it's got all my
stuff, including this presentation, up at 54Mbit, on this address. If
you want it, logon while I talk for a while and snag yourself a copy.
[pause on this slide]

Back when I had a personal organiser, all my contacts, all my
phone numbers, etc, etc, I could function without the net.

Cell phones do much of that now, but not enough, and in some ways,
too much.

I was in Boston last year, and saw that Richard Stallman was in
town. The GPL has had something of a large influence on my life, so I
rung him up, and asked to take him to dinner. He insisted on calling
my cell phone a “Government tracking device”, and we talked more
about 14 tone music and art than anything else. Some of that music
was incredible! I love listening to the music brilliant minds listen
to, to get people like that to play dj for me. But the phrase
“Government tracking device” stuck with me, and I stopped
carrying a cell phone a while back, which I hope makes Richard
happier. I kind of like not spending 50 bucks a month on it – ever
since I got off the regular phone network and switched to sip and
skype, my telephony cost has dropped below a fifteen dollars a month,
fourteen bucks of which is spent on keeping a regular phone number.
If you were to get off the regular phone system and adopt a free
service like those, my costs would drop to zero, as would yours.

My disconnect from the cell phone network makes my Millenial
friends crazy. Hi greg.

There is one cellphone out there for every two humans on the
planet, they have far more penetration than the desktop computer ever
had, or will have, and they are mostly locked down, fixed function
devices that could be amazingly useful as an organizer, web tool, and
brain enhancer if only you could get code onto them without having to
pass through some vendor's tollbooth. easily.

Google's android looks like a good start. I'd still prefer a phone
that wasn't a government tracking device, though – but that's the
price of centralization, bandwidth monopolies, and huge
infrastructure buildouts, I'm not going to rant about that today.

There's one thing that drives me absolutely insane about
cellphones. Voicemail. Despite the fact that you have a perfectly
usable data connection on your phone – voicemail requires that you
make a call to a system – to listen, respond, or delete it – it
requires that you be online, and in range. If you are on a fuzzy
connection, tough, you have to listen through it.

Voicemail is DATA. There's enough storage on today's cellphones to
store thousands of voicemails, have the message get transmitted to
you reliably in the background whenever you have a good connect, and
let you listen to it – and even reply – offline.

I transfer my voip voicemail to email – which is great – but
convincing the average carrier to route missed calls to my voicemail
system is an exercise in frustration.

DISCONNECT

We used to build LANs so we could SHARE files. I go to internet
cafe's and hotels nowadays only to find that their wireless access
points have got local access turned off, so two machines in the same
room can't talk to each other. Now, they do this because it stops
worms dead, but it also means that, for example, I can't play a game
with someone in the same room without routing the packets over the
internet and back. Nor can I connect my 3 wireless devices together
to sync them up. My computers run linux, which has no issues with
worms...

Lots of stuff that used to just work between two computers on the
same lan has stopped working... it makes me feel – disconnected –
why should all our traffic have to go out to a server located in
timbuktu and back because we are afraid to share files with each
other, directly?

[hold up nokia] This is a nokia 810. It's got wireless. I love it
– but it doesn't – by default – come with any file sharing
software. I'd LOVE it if I could drag and drop files over to it. File
sharing used to be what networks were for, now people are debating
about the legality of it.

One time I was sitting in the San Francisco airport, fiddling with
this thing, feeling really disconnected, trying to get online, to get
through another Internet tollbooth, tediously filling out yet another
credit card form – 10 minutes to fill it out so I could get online,
for 2 hours of access – bored off my nut – lonely - and all of a
sudden a message popped up on my screen – somebody within 30 feet
of me, was offering me an mp3 to listen to!! Over bluetooth!? Cool. I
downloaded the file. The song sucked. But it was the thought that
counted.

Somebody still wanted to share...

HISTORY

Back in the early 90s – and I've been on the net for far longer
than that - I had a very different vision for what the internet would
be like today. I thought the net would be an extension of your home
into cyberspace. Your files, your devices, would all be reachable
from anywhere on the net that had authorized access, that we'd do all
the authorizations with digitally encrypted certificates – never
have to type in more than one password a day - And that we'd pay for
it all with micro-transactions.

I thought that email would come right into your server –
directly to your house - just like postal mail – and it would have
the same protections and security of regular mail – in fact –
more – it would be encrypted and private all the way up to your
eyeballs.

I thought everybody would have a static ip address, and be able to
route back to their homes so they could turn on or off the heat.

I thought that your car would download your favorite music, news
reports, and reminders. Your fridge would tell your car that you
needed milk, your mp3 player would flush itself out to your servers
and reload itself with new stuff – and that it would all be
entirely under your control and easy... your cat would be able to get
itself in and out of the house... That that 1/3 of a second latency
on everything I keep mentioning wouldn't exist...

For the record. I
never thought we'd be flying biplanes to work
. [pic from
metropolis]

It didn't work out that way... In the case of email...

A few bad guys have buggered it up for all of us. To get a single
piece of email accepted onto my server requires something like 5 http
requests to the various realtime blackhole mechanisms, and seperate
runs through a spam filter, and an antivirus filter. And before I can
accept an email from someone for the first time, my server greylists
that user, delaying that first delivery by 4 hours or so.

All this happens even I'm sending email to the guy the next
cubicle over. And now people are outsourcing their email to gmail.
I'm incapable of doing that – my mail is my mail and I don't want
big brother having his shot at it first.

It's no wonder to me that various IM schemes have virtually
replaced email in some environments. Email is too much hassle, it's
too slow, and you have to work at it...

I never imagined that vendors would arbitrarily split upload and
download bandwidth – Oh I knew the cable guys basically only wanted
enough backchannel bandwidth for a buy button. I didn't think that
the ISPs would rate limit transfers within their own country - I did
think a tiered pricing scheme would develop, where you'd pay more for
international data than national data – those undersea cables are
expensive! and for data off your net than on it – much like how the
cell phone biz evolved – but a general bandwidth limitation? Never
thunk it.

The incentives are perverse. There's no percentage – aside from
access speed – to locate services inside your own country – when
you can buy hosting in the states for tons less money. Unless you are
aware of the costs when the undersea cable is cut or those servers go
down... there's this built in assumption that servers must exist
because clients must exist, and I'd prefer a world where everybody is
more equal.

Sharecroppers by the information superhighway. We get our
information from the company store, we accept company scrip, we get
paid in devalued dollars, and we all voted in the first ICANN
election only to be disenfranchised. I really get grumpy about not
being able to get a dedicated ip address, and that's why I tend to be
hot on ipv6.

This isn't so much a disconnect as a purposeful slowing down...
That 1/3 of a second is too long...

OVERCLIENTIZATION = SLAVERY

I've worked primarily on embedded Linux applications for the last
8 years, and ... [talk about the gap between what you could do then
and what you can do now]

Now the consumer mentality is leaking over into Linux – ubuntu,
which I otherwise like – doesn't install the manual pages or
documentation for many applications – there's no way – it doesn't
install “server” applications like a webserver or windows
filesharing by default, nor a development system, the search engine,
trackerd.

OLPC

Now when I went to Nicaragua for 6 months last year, I didn't have
the ideas I'm sharing today, I was all set, and hyped, to work on the
one laptop per child project.

[random fill]

And I got utterly stopped by this: [new slide]

I'm a product of the post literate internet society. I was fat,
out of shape, tired, and I really admired the fun that they were
having with a ball that cost maybe 8 bucks, split 20 ways.

What right did I have to take their ball away, and replace it with
something else?

I sat on the beach and thought about it a while, and observed the
populace, how they interacted, what they needed. [OODA slide]

Cell phones – ubiquitous. Roads – universally terrible.
Connectivity – bad. Electricity – unreliable. Garbage –
everywhere. Food – always fresh. Surfing... excellent. People...
happy....

[COMPLETE RIFF THATS ON THE VIDEO AND NOT WRITTEN DOWN YET]

MEMORY

How do we remember things? The scent, the place, the time, the
words ...

INPUT VS OUTPUT

It's like a 1000x1 ratio for me, of input to output.

Observe, Orient, Decide, take action - <a
href=http://en.wikipedia.org/wiki/John_Boyd_(military_strategist)>OODA
Loop</a>

The folk over at olpc, compressed the heck out of Wikipedia, a few
months ago. It fit into 59GB, heavily compressed – 15 of these or
half of one of these. [lift 2 ½ inch hard disk]

What Doc Searls calls the attention economy would collapse, if
nobody was producing. Production is more import. You PAY for
attention, you COLLECT for creation. How do you create stuff?

I have a couple answers:

Ipv6 <a
href=http://www.caida.org/analysis/geopolitical/bgp2country/ipv6.xml>courtesy
of caida.org</a>

There's a law on the books making it illegal to share.... theres's
quite a few people that have forgotten everything they learned in
kindergarden, especially over at the RIAA.

[BACK TO INTERNET PING TIMES]

That by pushing more and more stuff out into the nether regions of
the Net, we've increased the duration of the quantum between our own
neurons - Click on a web page – kerchunk! get it back – send
email – kerchunk!

Executable content was hard. Java tried to solve it and then
dissolved into a steaming pile of version numbers, specifications,
and revisions, just like everything else. CSS is hard. There's
actually a thing in the spec for handhelds. It bugs me nobody but lwn
uses it.

That the only way to speed this up, is to move the data closer to
me. You'll note that while

they are using it to build really, really big caches

What I did instead was setup my laptop to only accept email over
Ipv6 , and so far it hasn't been a problem.

d being a dinosaur.

[point at laptop] This is my big external brain. [hold handheld]
This is my personal brain [point to head]

I started to realize, was that I'd finally got was enough distance
from the problems, sitting on that beach, That what I was doing was
actually back on the bleeding edge - I was starting to build
Intelligent Agents for myself, fragmenting parts of my personality to
live, full time on the internet, where they needed to be, and keeping
the parts that needed to be off it, off it.

relentless tilting towards the center is in itself, that in order
to make further progress the pendulum needs to swing back

It doesn't need to be this hard. We can build autonomy back into
the internet. If we so choose.

You don't have to suffer a stroke every time you disconnect from
the Internet – You can take it with you... you can function
autonomously

The beauty of this talk – to this audience – is that I can get
technical. I could go on and on to make my point to a more general
audience, and perhaps will – but that's your job. I have a lot of
technical stuff I skipped

autonomous

And not have to pay rent or royalty every time I have a new
thought.

I don't want anyone – government or corporation or cracker –
to hack my brain.

AFFLUENZA AND AUTISM

A couple months back my cousin and I went to buy some DVDs. He
picked up 4, but the store where we were at, had a 2 for 1 special.
My cousin then spent the next 20 minutes looking for two more disks
so he could get one of those for half price. I know I'm weird. I'd
have put one back. Dinner was getting cold.

We as a society are going autistic. Maybe we're retreating into
second life because this life isn't worth living?! I know people
unable to have an orgasm without two laptops and a cellphone present.

Fragrance-Free zones. There was a library back in felton, ca,
where I used to live, that had declared itself a fragrance free zone
– and right outside the door – a lovely hydrangea, and a bed of
roses. I kept wondering when they would pull those out by the roots
and replace them with sterile concrete. What's next, banning flowers
because they smell? Or food because it's too spicy? There's one thing
I've really liked about all the Australians I've met this month.
Every last one of 'em supports more immigration – why? because
every culture brings in a new cuisine. I keep thinking that America
would be far more supportive of immigration if it meant less Mexican
food...

A trained nose can do tens of thousands more

[open a bottle of perfume]

Other senses – smell, taste, touch – pain - are important for
memory formation, and none of our internet society is presenting
those sensations to those senses. When we encounter them in the Real
World, we recoil...

SAVING ENERGY

[david rowe cranking the olpc]

I'd love it, if I could have a bicycle wheel tied to a generator
under my desk.

so if I had to pedal faster to make my drain on the earth more
apparent, I would. If I'd had to crack virtual 30kph just to get the
darn cpu to kick into overdrive and finish my compile... - I used to
compile 9 million lines of code on a regular basis – I'd be buff
now.

IM

You'll note that

It's great – it's spam free -

But you can't send a message, unless you are online...

[END OF RIFF]

FIRST HALF CLOSE

Do we really want to create a world where the sole muscles
developed in the human species are the mind, eyes, and a massively
overdeveloped clicking finger?

I'm exaggerating the problems to make a point. And in the winter
of my disconnect, I found a few ways to make it better, I'm working
on some more.

I've spent most of the last 8 years working in the embedded space,
mostly on devices that sit between you and the internet – routers,
voip phones, pbxes, caches, filters...

Openwrt and nslug are showing the way
for the devices in the middle... what we have inbetween us and
everything 1/3 of a second out there is a relic of when we didn't
have enough local storage.



There are some great trends that are
making room now for all kinds of neat new services on your firewall,
on the router, on the cable modem that we didn't have room for
before. There's room on your laptop. There's room on your handheld.



These trends have made it possible to move a whole lot of formerly
server code into the edge of your network or onto your own computer.

And I'll get to that, after the break. Thanks.

SECOND HALF

Some of this, I know, is a bit extreme.

I keep going back to this slide:

The only way to break the speed of internet light is to move the
relevant data closer to you. And keep it there. And run services
locally that do on a small scale what the services out there do on
the large.

FIXING SEARCH

Probably the biggest thing I had to do to get offline on a more
regular basis was find a way to dramatically reduce the amount of
internet searching I had to do to get my job done. I'm involved in a
lot of really complex stuff, and every twenty minutes, I had to ask
google, I had to ask google, I had to ask google, I had to ask
google... usually finding what I was looking for in the first 4-5
entries... I was productive, but I had to be online all the time.

I solved that. Using the Google API and python toolkit you can
write a script that not only googles from the command line, but also
mirrors the contents of whatever sites it suggests, so with one
command you

goog for whatever. It's like having a live human research
assistant doing all the heavy lifting for you. When the data gets
back to me, it's indexed by my own local search engine – and best
of all, it's permanently on my machine now until I chose to delete
it. Let me show you that. My blog is all on here, so...

Sometimes I just say screw it, and mirror the whole website
involved, at one point I had mirrors of ubuntu, and linux-faqs.org
just lying around. I wish I could mirror all of wikipedia, but that's
a lot.

I fixed search. I've moved to where 95% of the data I need most of
the time is in a cache nearby, up from nearly 0%. I'm happy about
that.

The code is actually, at present, pathetically simple and works
really, really good. It's as fast as contacting google directly... I
can't run it now but it's only a page of python, and the cgi version
is not that much longer.

FIXING IRC

Most open source developers don't use
services like MSN, etc – they all congregate on irc.freenode.org.
IRC has one major advantage over other chat servers - people
congregate in groups dedicated to their projects – and one major
problem – it doesn't do reliable delivery of the messages you
missed while offline. IRC is probably the most valuable tool to doing
productive development available today – it's an incredible brain
amplifier. Somewhere, in the thousand + minds I communicate with
every day, is someone with the domain knowledge to solve nearly any
problem I face. Most – nearly all - of the design discussion and
programming work that I'm involved in is discussed exclusively on
IRC. And as I said if you aren't on irc – all the time – you are
going to miss something important.

so on my permanent server -
toutatis.isc.org I run a bot – supybot – with a name of dtahtbot
- that stays up all the time and logs all the conversations that take
place on the irc channels I care about -

#asterisk #ardour #freeswitch #astfin
#emacs #gtk #iforgetwhatelse

And whenever I get online, I rsync my
laptop or handheld with those channel logs, after a little filtering.
These are character files, very short, it only takes a couple of
seconds to sync up with a day's conversations, and another split
second for them to be indexed and available to my local search
engine, so I can keep up or help out.

GOING BACK TO SEARCH (probably skip)

There's still a bigger, unsolved problem with search. With google
– you always get what you are looking for – even if it's not what
you need.

We have a lot of web tools for positive reinforcement of how you
already think – the virtual equivalent of yes-men - and not a whole
heck of a lot of tools for challenging how you think.

I've fantasied about this a lot – some sort of anti-oogle – a
service that would give you not what you were looking for but was
appropriate - A white supremacist would be forced to read the works
of Martin luther king, a socialist, key market oriented facts, a
austrian economist, some actual history about the development of
Central America, and so on. It might challenge a few minds.

Recently I went through a 4 month period of infatuation with
politics. Although I'd started with an opinion, I forced myself to
read sites from all points of view – places like redstate,
dailycos, nolanchart, and many others. In the end I'd learned a lot,
and changed a few of my own opinions. It was astonishing, though, how
virulent the virtual tribes of the left, right, center, and other
orientations could be, and how intolerant they were of other points
of view.

If I had one wish for people using the internet today, it would be
that more people would consciously go looking for information and
people that challenge their point of view, and to try to sort it out.
In the long run, it would be a better world.

[Someone on the internet is wrong graphic]

If I had a second wish, it would be that babelfish.altavista.com
could translate arabic and hebrew. But all this is offtopic. I note
that babelfish was really popular in Nicaragua, though. With the
girls, especially.

FILTERING OUT ADS FROM THE WEB

There's all kinds of things out there that can cut down on the
kerchunk, that 1/3 second of delay between thoughts that you have
when surfing the web.

Whenever I get to feeling even slightly kind towards advertising
companies, I think of the drug rep that slammed down a tissue box –
with her company's logo and drug of the day emblazoned all sides
right in the middle of my doc's chess set. Drug reps – blond, blue
eyed girls – 22, 23 – fresh out of college after studying
volleyball for four years - flounce into doctors offices across the
land bearing gifts of this sort – and encourage physicians to
prescribe drugs of dubious value and extreme cost... And gifts like
that really screw with human psychology. It's a gift! you can't move
it! It took us three weeks to recognize the problem before I removed
that glaring tissue box for him so we could resume our game....

And thus I have no pity on the advertisers, and use firefox
adblock plus and privoxy to filter most of their stuff out before I
even see it.

Back before I had the filters I do I kept noticing that every
Linux related article seemed to have a large flash ad with a sexy
girl pimping Microsoft in it. Is this still going on? This sort of
cognitive dissonance is what normal people have to deal with. I
don't.

Stripping out ads has huge benefits. Ads take up, I don't know,
90% of the bandwidth on a typical web page. Stripping out the ads
makes up for all the extra mirroring I do to pull down the top 6
results from google on every search.

Firefox Adblock Plus and Privoxy – install them, you'll love
'em. They make browsing the web on this thing a tolerable experience.
Squid helps cut your bandwidth requirements too, if you have enough
users.

Yea, I collect
searchable data like some people collect mp3s – but just the good
stuff...



TIME AND SPACE SHIFTING

I don't have any mp3s except of my own songs, what I do is rip a
stream using “streamripper” from several of the internet radio
stations I like, at night, so I can listen to 14 hours of them in the
morning on whatever device I want. This is time and space shifting of
the purest sort and I sure hope it stays legal - I don't feel any
compulsion to horde the music I get, it's all good, and it all gets
deleted after a couple days.

GRABBAG Solutions (client side)

I run my own DNS. I'm old fashioned and tend to run my own copy of
bind. I don't like it when someone elses's DNS starts returning
results filled with malware. Run a caching server, on your laptop, at
least, you'll cut a tenth of a millisecond off most queries. I run my
own database server, too.

SKIP FROM HERE

I run my own name servers with split dns. Why? Well, statistics
are showing that an increasing number of nameservers are corrupt –
delivering ad or malware pages – and it's about 1/30th
of a second faster than relying on an external nameserver, and also
guaruntees when I'm running ipv6 that ipv6 actually works. Also –
and most importantly – with split dns - I can configure
pbx.hm.taht.net to resolve to my internal voip server when at home –
and the voip server in the co-lo when on the road – when at home
internal calls stay internal, never touch the external network –
and I never have to change the configurations on my laptop and
handheld. I know it's hard to do the first time, but it's worth it.

SKIP - In the embedded space, dnsmasq is actually really easy to
configure, and you can at least.

I run my own database client and server? Why? Most databases are
client/server – they were designed to operate that way - I like
being able to type as fast as possible, keep my code on my own
machine, and just let the connection handle the latency – most
people are sufficiently paranoid that I have to connect to the
database through a couple ssh tunnels, but it works really good.

I run my own web server...

I run my own pbx. I don't do this for any particular reason, at
the moment – besides the fact I'm working on some code - does
anybody here have a connection to the internet? Well, if you – over
there – were willing to share that connection, and offered it up as
a viable route, I could get a phone call right now - and since I'm in
the middle of a talk, I'd ignore it - I could let it drop right to
voicemail on my machine and get mailed to me.

TO HERE

The total effect of running all this extra stuff on my laptop is
about 100MB. I've 4GB of RAM, I can spare that, for the benefits.

Solutions (server side)

Avoid dynamitism wherever possible. Mask latency with caching.

Grabbag:

Do set expiry times for as many static files as possible. Make
sure your clients follow the caching rules.

This file – the one that describes the format of a HTML
document, is in almost every modern web page. It hasn't changed in
years, it's expiry time is set to a week – and yet w3.org is
overwhelmed by 130 million requests a day for it. w3.org is begging
people to cache their own copies, and implementing things like
tarpitting to slow the abusers down.

I would argue that if you have a website, you should audit it for
proper caching, fix it up, and you'll make your user experience
better. In particular, most images, javascript and css files are
static, and almost never change.

Example – I was running an RT (request tracker) server at a
co-location facility a while back, and it wasn't properly expiring
static data. To move from one web page to the next, from next door,
it was taking 3 seconds and 14 http requests. From overseas, it was
taking 5 seconds. The server was getting pretty overloaded. After
looking at the data, and convincing apache to mark it properly, I got
it down to 2 HTTP requests and .3 seconds to switch between pages,
and I saved almost 100k per page view, saving everybody on time and
bandwidth, and I saved them a new server. A day spent doing that cut
a lot of people's stress levels down a lot. Do it... You can look at
it in firefox or with a sniffer or with the HEAD command...

COMPRESSION and TIMESHIFTING

My dad can get through an entire American style football game,
which is 5 hours long in the real world using his tivo's remote
control, in 2 hours and twenty minutes flat. He fast forwards –
impeccably – from the tackle on one play all the way through the
huddle right into the snap. Commercials. Hah. He never sees them. My
dad's got muscles on his thumb to rival chuck norris's pectorals.

This sort of 2 to 1 compression of every day experience seems
however to be about the best we can do for football. There are
probably other games that would compress down even better. Cricket
for example.

The rest of him is going to hell, but he's got muscles on that
thumb. In some ways this gives me hope, if we can play back life at 2
times normal speed, we can get more living in... spend more time
doing stuff rather than consuming it.

Modern compression goes both ways though. I watch two minutes of
what passes for tv news today, and then spend another 58 minutes
analyzing what I just saw, trying to sort out what the window on the
bottom was saying as it scrolled in different directions, with what
the talking head was saying, what he or she was implying by his
facial responses, and trying to get a grip on just how expert the
expert on the screen was... I try not to watch the news.

VERBAL NOTETAKING

My laptop, two years ago, half this speed, could function as a
wireless access point. My more modern one, twice as fast, with twice
as much storage – can't. This is progress? I can't even convince
ad-hoc mode to work on it. The special usb cable that the nokia uses
to connect? Lost it in New Zealand. This special micro-SD to SD
adaptor? I keep misplacing the teeny little thing in some compartment
of my luggage. My laptop's bluetooth dongle? God knows where that
went. So I have these two GREAT devices separated by an air gap of a
few centimeters – two devices capable of transmitting 54Mbit a
second, but not directly to each other.... right now the only way I
reliably have to get data from here to here is copy it to this ram
card, using these 2 adapters, to wedge it back into this with another
2.

And yet for all my bitching, the nokia is still the closest thing
to an auxiliary brain that I've ever had...

For the first time since the invention of the laptop, I can leave
the laptop behind - I can walk around without a heavy backpack. For
what I've saved in chiropractic bills alone, the nokia's paid for
itself. And it could get so much better, the devkit for it is great,
I can cross compile any, absolutely anything, for it, in a matter of
seconds, and then transfer it with those 5 adaptors....

Here's a device I like. It's an olympus WS-110. The standard AAA
battery lasts a really long time. It lasts a lot longer when I
actually remember to press the hold button before I put it in my
pocket, otherwise I end up recording a lot of random stuff. [toilet
flushing].

I'll spend an hour wandering around my house, saying things like –
call the plumber. pay the mortgage. get flowers for my girlfriend –
and then I can play it back, later at something like 30 to 1
compression so I can plan out my day in the car or when I get a spare
moment.

But, even with that level of compression, it's incapable of
recognizing what's important to my internal monologue.

[recorder says - You idiot. Get flowers for your girlfriend!]

Or reminding me to get new batteries
for it the next time I'm at the store, because a gps isn't integrated
into it and there's no such thing as speaker independent voice
recognition yet.



And, unlike my two other
recorders, it's standard. You plug it into your USB port, and it
looks just like a hard disk. [ try to plug WS-110 into nokia, fail ]



The WS-110 timestamps everything, and the nokia has a GPS built
in, that can keep a log of where I've been and when... If I could tie
the two together I could have an audiological record of everything I
was thinking, where I thought it, and when. I'd be able to point to
an otherwise random filename and bring up that amazing conversation I
had with David while we were in that restaurant... or the restaurant
and get the same – upload it all to google maps - But in order to
connect it from here to here, I need to build a custom USB OTG
adaptor, and carry it around. USB did not have to be designed as a
master/slave connector, but it was – and now we have to cope with
kluges like that.

My point is that this is one of the
negative results of designing for disconnection, on purpose, because
it generates profits on all the accessories for the makers.



WAP

In my mind, owning a wireless access point is no different than
owning a truck. As soon as you buy a truck, anywhere, you become the
instant buddy of everybody that needs to move something. I don't run
security on my access point, neither does bruce shneir -

We don't because their aren't sufficiently transparent services
running on most access points to let you divvy up the guest traffic
from your own, and that's a shame.

ENDING

Back in January at some festival or another I was at a routine
traffic stop in New Zealand. The cop shoved a Breathalyzer into my
face and said – “say your name into the machine!”. I said:

“Rip Van Winkle”

The cop looked at his machine and said: “You can move on”.

Taking this past year off has been kind of good. I've seen a lot
more of the world than I've ever seen before, and met more people in
a year than I've met in my whole life. Also...

A lot of software projects I worked on and was frustrated at –
things like LV2, ardour, rosegarden, jack – have all moved along at
a nice clip and are shaping up handsomely, without my help. It was
nice to know – this guy here actually has working floating point –
that I can slow down.

I didn't think that after a year off that I'd have difficulty
finding work. I am. Maybe it's because of this crusade I'm on about
bypassing tollbooths, eliminating billboards, and battering down
citadels, and my focus on building roads, and saving bandwidth,
creating bridges and new ways to operate autonomously, and things
like that.

A truly western life is hard on me, some things, like fast food,
getting on the internet, etc are all too easy to do, and kind of hard
on me physically. I'd rather live near the ocean and have the
periodic power failures remind me that there are other things in life
worth doing. So I'm going back soon, or maybe somewhere else, like
china, to see what else I can learn, or what else I can create...


[last side]


Lastly, I just want to point out that web surfing is nothing like
real surfing. Getting pounded flat by the waves really clears the
mind... and dropping in on one like this is a real rush.


Thank you





Labels:

 
Monday, October 05, 2009

  Some news from the life and death and life of Pocobelle, the 300mw mail router



The Pocobelle project, day 10



Pocobelle has been acting as a backup email router for a few days now.

I get several hundred emails per day. It used to be thousands, but I switched to using netnews & gmane for my more high-traffic mailing lists, the lists that I mostly read and don't write to, such as lkml. Pocobelle successfully coped with the email I get in the dribs and drabs I get it in - I didn't have any complaints. It was transparent to me, and everybody. It did STARTTLS crypto without cracking 10% of cpu. My tests included sending a few dozen mails from a server outside my network, but that was it. Most of the time mail goes right to my laptop...

Today was the perfect day to try pocobelle out in a real world scenario.

I was without power or internet for 8 hours. My generator didn't work. (Most likely, I'm out of gas). My ice cream melted. Oh, well. I needed to defrost the chicken anyway.

The UPS that pocobelle was running on showed 95% of it's battery available after that period. I was really happy about that. Assuming I have a week when the internet stays up and power doesn't I should be able to have my email delivered without a problem, and periodically fire up the laptop to read it.

At 7PM, power and internet came back on simultaneously. I had previously turned off email to my laptop (and turned the laptop off, to save power). I booted up the laptop just to watch pocobelle do it's stuff...

Pocobelle got on the Net... Got an ipv6 address... And started getting the backlog of mail...

The Bind9 DNS server rapidly got to 23MB in size... The cpu went to 100%... 93% of it, gone, waiting for disk access.. the Loadavg lept past 5... available memory dropped to zero... My ssh session locked up...

Midway through the 15th email it bounced 3 messages, then it died.

Pocobelle ran completely out of memory and came to a screeching halt.

Sigh. The perils of engineering.

I hadn't thought deeply about the interaction between DNS services and email. Freshly booted, there is no DNS cache on the system.

I hadn't thought about a complete and utter cold start of absolutely everything pocobelle was connected to. There were no DNS caches anywhere it talked to that weren't "cold".

I'd got into a pathological situation, where the bandwidth being chewed up by all the mail being sent, and the time it took to "walk" DNS to verify it as "good" mail, competed and combined to bounce mails it couldn't do a reverse lookup on.

At the same time, the load on the system was such as to put it on the moon in short order.

As crashes go, it was not pretty. It brought back a flashback from 1995 where a CEO I knew, ecstatic with his new 26MB powerpoint presentation, emailed it to everyone in the company, and everyone he knew in the world, besides. That was an age, also, when a *good* mail server only had 64MB of ram....

1) Pocobelle only has 64MB of memory. (Pocobelle 2 will have 256MB or more) An easy "cure" for the memory problem was to enable swapping. When running without swap a Linux system will free up memory by discarding unused (read-only) program text pages, which are read-only, and swapping them in from the filesystem when they get used.

While there are a lot of binary pages you can do this to, it doesn't work on pages that have been modified by the linker, and it (especially) doesn't work on interpreted languages like python and perl. These languages often do have plenty of little-used pages, but they are *data* and can't get discarded because some day they MIGHT be modified further.

This arm build does not appear to have Jakub Jelinek's prelink utility installed, which will free up more memory by prelinking the various binaries. Prelink solved a few problems, but in the arm world, most people (I'm not) use a libc that wasn't compatable with prelink. I'm still researching this...

So, anyway, there are plenty of things that can't get swapped out that could, if swap was enabled. So I added 128MB of swap on the flash. Linux doesn't require that you have swap on a raw partition (although it is a good idea), so I just did a:

dd if=/dev/zero bs=1024k of=/etc/swap count=128
mkswap /etc/swap
swapon /etc/swap # and add to /etc/fstab

An even better cure for this would be to use a box with more memory but that's a problem reserved for pocobelle 2.

With swapping enabled, pocobelle grew decidedly less "chunky" in the general case. There is always a lot more free memory available for general use - for example, bind9 dropped from 23MB of ram down to 14MB. In normal use, 16MB is living on swap by default.

Whenever I get around to reformatting this USB key, I will put swap on a raw partition. I might put it on the built-in flash on the board, actually. We'll see.

2) Pocobelle was configured to use one DNS server - it's own - and forward to several local servers attached to my wireless network, provided by my provider. While this is a decent config... One that a normal client would use... given that all of the servers it was connecting to were ALSO freshly booted and ALSO had to walk DNS there, they ALL failed within the default DNS timeouts.

What I decided to do was establish a robust set of DNS servers (5), having pocobelle talk to itself twice - once in the beginning of the loop and another time at the end. In the middle it talks to my main mail server, which having already done the anti-spam protection in the first place should have a cached record of the remote server's origin already.

It should effectively put a 10 second timeout on the DNS lookup instead of a 2 second one, AND get to at least one server that has a good, primed, cache; a server in the US that's impervious to power failures.

(Getting this to work was a little tricky in that I'm using bind views internally to give me a consistent picture of my network and routing configuration(s), but I'm not going to go into that here)

I hope this is sufficiently robust. I'm not going to purposely instigate another 8 hour delay on my email, at least, not in the near future.

Another answer to this is to cache more of the internet's DNS service at the start, before accepting mail. (My mail is mostly not random, but comes from a limited number of mailing list servers). I have a buddy that used to cache the entire DNS root zones back in 1995. Maybe that's still possible.

It would be good to have some sort of cache log that I could replay on name service startup (or at certain times of the day, for example, shortly before I wake up in the morning) to prime the cache(s). I can sort of do this by replaying the mail logs through the DNS system, but it would be cleaner if I could figure out a way to get my top 100 sites out of bind periodically.

3) Given that write speeds to the flash are so slow it would be best to always keep at least 512K reserved for disk buffers. Smaller writes than 128k at a time are *bad* with flash.

I used to know how to do that, but the interface to the Linux swapper has changed so much that I have to google to figure it out. (Most of this blog was written after the power failed again)

4) Given that one of pocobelle's purposes is to be a mail router, and it lives on ipv6 which has little to no spam on it, it's somewhat pointless having even the minimal anti-spam services I have on it (like those reverse lookups that caused the bounces in the first place)

I'm not going to do that, I actually want to make this into a system capable of the best anti-spam measures I can come up with because spam is just never going to go away.

...

So, after fixing 1 and 2, I fired up rss2email on a new user on pocobelle. Rss2email is written in python. It took 12 seconds to start, and 16MB of ram, and was really going slow, so I decided that I didn't need to do that on pocobelle itself, but on my smart host elsewhere. Pocobelle just needs the mail itself, not the process that generates it.

Result: I got 25 messages as fast as they could be delivered.

It ran happily with 16MB of ram out on swap.

I'm happy with pocobelle today. I'm going to turn off my laptop tonight and see what happens.

AM Update: I turned the laptop on again, and got about 60 emails sent in rapid succession. The night before I'd double the default number of connections to 12 in a burst of optimism.... Pocobelle handled the load, but I think I'm going to limit the number of inbound and outbound connections to 4. At 12, it ran at 93% of cpu and got down to very little memory during it's burst of email. Pocobelle needs to remain responsive to DNS, in particular, as it's the main DNS server for the household, and has quite a few other things to do besides email.

Now, I'm running full starttls (encrypted) email inside of my household, which probably accounts for some of the cpu usage, but I think the overhead was of startup and running all those processes, not the crypto.

Maybe I'll try rate-limiting the number of inbound connections via iptables, tarpitting them maybe, to keep the mail server on the other side happy once pocobelle it gets past 3, keeping it from rescheduling the mail repeatedly. That will ensure a burst of email actually gets sent, albeit slowly. (this is also a good anti-spam measure)

On to figuring out 3 and 4...

Labels: , , , , , , ,

 
Saturday, July 04, 2009

  Side benefits of the universal information system



I don't think Andrei Sakharov got it entirely right, but man, did the internet come close to fulfilling his prediction!

I keep wondering what was in the ellipsis between "development. ...But the true historic role" - but that information is not on the Internet, yet. Books - at least the ones still covered by copyright, and those long out of print, but still covered by copyright - are only readily accessible via amazon, or not at all.

Babelfish was an early start at breaking down those barriers of language and culture, and google translate is taking that to a whole new level.

New forms of media have arisen, usenet, blogging, twitter, facebook... People can run simulations of the Hubble repair on their desktops, crowdsourcing has become popular where people routinely collaborate, in real time, all around the planet, from richest country to the poorest...

And yet, so many problems are still with us. Do I think they are intractable? No! If I didn't think that we could solve all the problems remaining for humanity, in part, via better technology, I'd be really depressed all the time, instead of just some of the time.

Most of my last week or three of blogging (A New Grand Tour of the Solar System,Sunday Space grabbag,Big Waves, Bad Knees) have been, indirectly, in response to what Chip commented on a blog post of mine last month.His point stung. I DO try to read multiple viewpoints but sometimes fall into a rut of reading stuff that re-inforces my pre-existing opinions. So I read his links - Kunstler, about the cluster-f*** nation, and Orlov, about the effects of Peak Oil and definancialization...

I was depressed for days.

Yet, my reaction, my self-trained reaction, of looking for an opposing viewpoint, and exploring the history of the ideas and predictions, finally kicked in... I went and researched Kunzler, and found he'd made specific predictions that turned out to be wrong, so far. It doesn't mean that he's wrong on everything, it just means he isn't God. I completely agree with Kunzler about the core problem - today's civilization relies on cheap energy, and it is running out. His solutions are interesting, and no doubt there are others that both agree with (both of us) and are trying to solve the problem.

So, Chipper - I have a suggestion - go read someone optimistic for some balance, and some optimism, once in a while. I still find Buckminster Fuller comforting...

I have spent the last days being relentlessly optimistic, and arguing with people that I think are making the wrong decisions, or doing the wrong thing over and over again, because of habit.

Yesterday I ran into a lady with a BS in Social work, who was taking a quick two week tour of Central America before returning to America to study for a Masters. Getting more education is a worthy goal, but her reasoning was flawed - there were no jobs for her existing background and school was all she knew how to do. She had no debt but was preparing to take on a lot of it to get her Masters... I strongly encouraged her to continue her wanderjahr, if she could, find something that she loved to do, that paid, and stay out of debt....

Last week I also went and reviewed the current state of the climate change debate, and found no reason to change my opinion that waiting for more data to come in was the right thing. I am especially looking forward to Anthony Watt's report on the effects of bad siting for temperature measurement on the global warming average.

And to balance out the bad news in Honduras...

I read about solar power satellites being funded, and about improving tuna aquaculture, about the accomplishments of legendary engineer Isambard Brunel, and the Age of discovery... and drooled over the upcoming model S all electric sedan, from Tesla Motors. After witnessing 10s of billions of dollars poured down the rathole bailout of America's failed carmakers, seeing Tesla - an American company, based in California, a company trying to build cars people actually want, after being forced to sell part of themselves to Daimler - finally get a loan sufficient to build the plant to create that car, in California - really cheered me up.

And - thanks to the universal information system, predicted, more or less accurately, by Sakharov, in 1974, I was content to believe, once again, that somehow, we'll muddle through.

Labels: , , , , ,

 
David Täht writes about politics, space, copyright, the internet, audio software, operating systems and surfing.


Resume,Songs,
My new blog, NeX-6, My facebook page
Orgs I like
The EFF - keeping free speech in the world
Musical stuff I like
Jeff, Rick, Ardour, Jack
Prior Rants - New song: Log Off Now Sharing your home network better in a time of covi... Designing for the disconnect Email lists going down the memory hole Instituting saner, professional source code manage... Wireless and Wifi in 2015 - not what I dreamed of Saving wifi! Fixing Bufferbloat! Fighting the vend... Virgin Media - Fixing the epidemic of bufferbloat ... 49... and trying to find my navel Wheels down on mars!
Best of the blog:
Uncle Bill's Helicopter - A speech I gave to ITT Tech - Chicken soup for engineers
Beating the Brand - A pathological exploration of how branding makes it hard to think straight
Inside the Internet Mind - trying to map the weather within the global supercomputer that consists of humans and google
Sex In Politics - If politicians spent more time pounding the flesh rather than pressing it, it would be a better world
Getting resources from space - An alternative to blowing money on mars using NEAs.
On the Columbia - Why I care about space
Authors I like:
Doc Searls
Where's Cherie?
UrbanAgora
Jerry Pournelle
The Cubic Dog
Evan Hunt
The Bay Area is talking
Brizzled
Zimnoiac Emanations
Eric Raymond
Unlocking The Air
Bob Mage
BroadBand & Me
SpaceCraft
Selenian Boondocks
My Pencil
Transterrestial Musings
Bear Waller Hollar
Callahans
Pajamas Media BlogRoll Member

If you really want to, you can poke through the below links as well.

ARCHIVES
06/09/2002 - 06/16/2002 / 07/28/2002 - 08/04/2002 / 08/11/2002 - 08/18/2002 / 08/18/2002 - 08/25/2002 / 08/25/2002 - 09/01/2002 / 09/22/2002 - 09/29/2002 / 11/10/2002 - 11/17/2002 / 12/15/2002 - 12/22/2002 / 12/22/2002 - 12/29/2002 / 12/29/2002 - 01/05/2003 / 01/05/2003 - 01/12/2003 / 01/19/2003 - 01/26/2003 / 01/26/2003 - 02/02/2003 / 02/09/2003 - 02/16/2003 / 02/16/2003 - 02/23/2003 / 03/02/2003 - 03/09/2003 / 03/16/2003 - 03/23/2003 / 04/06/2003 - 04/13/2003 / 04/13/2003 - 04/20/2003 / 04/20/2003 - 04/27/2003 / 05/04/2003 - 05/11/2003 / 05/18/2003 - 05/25/2003 / 05/25/2003 - 06/01/2003 / 06/01/2003 - 06/08/2003 / 06/08/2003 - 06/15/2003 / 06/15/2003 - 06/22/2003 / 06/22/2003 - 06/29/2003 / 06/29/2003 - 07/06/2003 / 07/20/2003 - 07/27/2003 / 07/27/2003 - 08/03/2003 / 08/03/2003 - 08/10/2003 / 08/10/2003 - 08/17/2003 / 08/17/2003 - 08/24/2003 / 08/24/2003 - 08/31/2003 / 08/31/2003 - 09/07/2003 / 09/07/2003 - 09/14/2003 / 09/14/2003 - 09/21/2003 / 09/21/2003 - 09/28/2003 / 09/28/2003 - 10/05/2003 / 10/05/2003 - 10/12/2003 / 10/12/2003 - 10/19/2003 / 10/19/2003 - 10/26/2003 / 10/26/2003 - 11/02/2003 / 11/02/2003 - 11/09/2003 / 11/09/2003 - 11/16/2003 / 11/30/2003 - 12/07/2003 / 12/07/2003 - 12/14/2003 / 12/14/2003 - 12/21/2003 / 12/28/2003 - 01/04/2004 / 01/11/2004 - 01/18/2004 / 01/18/2004 - 01/25/2004 / 01/25/2004 - 02/01/2004 / 02/01/2004 - 02/08/2004 / 02/08/2004 - 02/15/2004 / 02/15/2004 - 02/22/2004 / 02/22/2004 - 02/29/2004 / 02/29/2004 - 03/07/2004 / 03/14/2004 - 03/21/2004 / 03/21/2004 - 03/28/2004 / 03/28/2004 - 04/04/2004 / 04/04/2004 - 04/11/2004 / 04/11/2004 - 04/18/2004 / 04/18/2004 - 04/25/2004 / 04/25/2004 - 05/02/2004 / 05/02/2004 - 05/09/2004 / 05/09/2004 - 05/16/2004 / 05/16/2004 - 05/23/2004 / 05/30/2004 - 06/06/2004 / 06/06/2004 - 06/13/2004 / 06/13/2004 - 06/20/2004 / 06/20/2004 - 06/27/2004 / 06/27/2004 - 07/04/2004 / 07/04/2004 - 07/11/2004 / 07/11/2004 - 07/18/2004 / 07/18/2004 - 07/25/2004 / 08/08/2004 - 08/15/2004 / 08/22/2004 - 08/29/2004 / 08/29/2004 - 09/05/2004 / 09/05/2004 - 09/12/2004 / 09/19/2004 - 09/26/2004 / 09/26/2004 - 10/03/2004 / 10/03/2004 - 10/10/2004 / 10/10/2004 - 10/17/2004 / 10/17/2004 - 10/24/2004 / 10/24/2004 - 10/31/2004 / 10/31/2004 - 11/07/2004 / 11/07/2004 - 11/14/2004 / 11/14/2004 - 11/21/2004 / 11/21/2004 - 11/28/2004 / 11/28/2004 - 12/05/2004 / 12/05/2004 - 12/12/2004 / 12/12/2004 - 12/19/2004 / 12/19/2004 - 12/26/2004 / 12/26/2004 - 01/02/2005 / 01/02/2005 - 01/09/2005 / 01/16/2005 - 01/23/2005 / 01/23/2005 - 01/30/2005 / 01/30/2005 - 02/06/2005 / 02/06/2005 - 02/13/2005 / 02/13/2005 - 02/20/2005 / 02/20/2005 - 02/27/2005 / 02/27/2005 - 03/06/2005 / 03/06/2005 - 03/13/2005 / 03/27/2005 - 04/03/2005 / 04/03/2005 - 04/10/2005 / 04/10/2005 - 04/17/2005 / 05/29/2005 - 06/05/2005 / 06/05/2005 - 06/12/2005 / 06/12/2005 - 06/19/2005 / 06/19/2005 - 06/26/2005 / 06/26/2005 - 07/03/2005 / 07/03/2005 - 07/10/2005 / 07/10/2005 - 07/17/2005 / 07/24/2005 - 07/31/2005 / 07/31/2005 - 08/07/2005 / 08/07/2005 - 08/14/2005 / 08/14/2005 - 08/21/2005 / 08/21/2005 - 08/28/2005 / 08/28/2005 - 09/04/2005 / 09/04/2005 - 09/11/2005 / 09/11/2005 - 09/18/2005 / 09/18/2005 - 09/25/2005 / 09/25/2005 - 10/02/2005 / 10/02/2005 - 10/09/2005 / 10/09/2005 - 10/16/2005 / 10/16/2005 - 10/23/2005 / 10/23/2005 - 10/30/2005 / 10/30/2005 - 11/06/2005 / 11/06/2005 - 11/13/2005 / 11/13/2005 - 11/20/2005 / 11/20/2005 - 11/27/2005 / 11/27/2005 - 12/04/2005 / 12/04/2005 - 12/11/2005 / 12/11/2005 - 12/18/2005 / 12/18/2005 - 12/25/2005 / 01/01/2006 - 01/08/2006 / 01/08/2006 - 01/15/2006 / 01/15/2006 - 01/22/2006 / 01/22/2006 - 01/29/2006 / 01/29/2006 - 02/05/2006 / 02/19/2006 - 02/26/2006 / 03/05/2006 - 03/12/2006 / 03/19/2006 - 03/26/2006 / 03/26/2006 - 04/02/2006 / 04/02/2006 - 04/09/2006 / 04/09/2006 - 04/16/2006 / 04/23/2006 - 04/30/2006 / 05/07/2006 - 05/14/2006 / 05/14/2006 - 05/21/2006 / 05/21/2006 - 05/28/2006 / 06/04/2006 - 06/11/2006 / 06/11/2006 - 06/18/2006 / 06/18/2006 - 06/25/2006 / 06/25/2006 - 07/02/2006 / 07/02/2006 - 07/09/2006 / 07/09/2006 - 07/16/2006 / 07/23/2006 - 07/30/2006 / 08/06/2006 - 08/13/2006 / 08/13/2006 - 08/20/2006 / 09/03/2006 - 09/10/2006 / 09/17/2006 - 09/24/2006 / 09/24/2006 - 10/01/2006 / 10/01/2006 - 10/08/2006 / 10/22/2006 - 10/29/2006 / 11/19/2006 - 11/26/2006 / 11/26/2006 - 12/03/2006 / 12/03/2006 - 12/10/2006 / 12/10/2006 - 12/17/2006 / 12/17/2006 - 12/24/2006 / 12/24/2006 - 12/31/2006 / 01/07/2007 - 01/14/2007 / 01/14/2007 - 01/21/2007 / 01/28/2007 - 02/04/2007 / 02/11/2007 - 02/18/2007 / 02/18/2007 - 02/25/2007 / 02/25/2007 - 03/04/2007 / 03/04/2007 - 03/11/2007 / 03/18/2007 - 03/25/2007 / 04/01/2007 - 04/08/2007 / 04/08/2007 - 04/15/2007 / 04/15/2007 - 04/22/2007 / 04/22/2007 - 04/29/2007 / 04/29/2007 - 05/06/2007 / 05/06/2007 - 05/13/2007 / 05/20/2007 - 05/27/2007 / 05/27/2007 - 06/03/2007 / 06/03/2007 - 06/10/2007 / 06/10/2007 - 06/17/2007 / 06/17/2007 - 06/24/2007 / 07/01/2007 - 07/08/2007 / 07/08/2007 - 07/15/2007 / 07/22/2007 - 07/29/2007 / 07/29/2007 - 08/05/2007 / 08/05/2007 - 08/12/2007 / 08/26/2007 - 09/02/2007 / 09/09/2007 - 09/16/2007 / 09/23/2007 - 09/30/2007 / 09/30/2007 - 10/07/2007 / 10/07/2007 - 10/14/2007 / 10/14/2007 - 10/21/2007 / 10/21/2007 - 10/28/2007 / 10/28/2007 - 11/04/2007 / 11/04/2007 - 11/11/2007 / 11/11/2007 - 11/18/2007 / 11/18/2007 - 11/25/2007 / 11/25/2007 - 12/02/2007 / 12/02/2007 - 12/09/2007 / 12/09/2007 - 12/16/2007 / 12/16/2007 - 12/23/2007 / 12/23/2007 - 12/30/2007 / 01/06/2008 - 01/13/2008 / 02/03/2008 - 02/10/2008 / 02/17/2008 - 02/24/2008 / 02/24/2008 - 03/02/2008 / 03/02/2008 - 03/09/2008 / 03/09/2008 - 03/16/2008 / 03/16/2008 - 03/23/2008 / 03/23/2008 - 03/30/2008 / 03/30/2008 - 04/06/2008 / 04/20/2008 - 04/27/2008 / 04/27/2008 - 05/04/2008 / 05/04/2008 - 05/11/2008 / 05/11/2008 - 05/18/2008 / 05/18/2008 - 05/25/2008 / 05/25/2008 - 06/01/2008 / 06/01/2008 - 06/08/2008 / 06/08/2008 - 06/15/2008 / 06/15/2008 - 06/22/2008 / 06/22/2008 - 06/29/2008 / 07/06/2008 - 07/13/2008 / 07/13/2008 - 07/20/2008 / 07/20/2008 - 07/27/2008 / 07/27/2008 - 08/03/2008 / 08/03/2008 - 08/10/2008 / 08/10/2008 - 08/17/2008 / 08/17/2008 - 08/24/2008 / 08/31/2008 - 09/07/2008 / 09/07/2008 - 09/14/2008 / 09/14/2008 - 09/21/2008 / 09/21/2008 - 09/28/2008 / 09/28/2008 - 10/05/2008 / 10/05/2008 - 10/12/2008 / 10/12/2008 - 10/19/2008 / 10/19/2008 - 10/26/2008 / 10/26/2008 - 11/02/2008 / 11/02/2008 - 11/09/2008 / 11/09/2008 - 11/16/2008 / 11/16/2008 - 11/23/2008 / 12/07/2008 - 12/14/2008 / 12/21/2008 - 12/28/2008 / 12/28/2008 - 01/04/2009 / 01/18/2009 - 01/25/2009 / 01/25/2009 - 02/01/2009 / 03/22/2009 - 03/29/2009 / 05/10/2009 - 05/17/2009 / 05/17/2009 - 05/24/2009 / 05/31/2009 - 06/07/2009 / 06/14/2009 - 06/21/2009 / 06/21/2009 - 06/28/2009 / 06/28/2009 - 07/05/2009 / 07/05/2009 - 07/12/2009 / 07/12/2009 - 07/19/2009 / 07/26/2009 - 08/02/2009 / 08/09/2009 - 08/16/2009 / 08/23/2009 - 08/30/2009 / 09/06/2009 - 09/13/2009 / 09/20/2009 - 09/27/2009 / 09/27/2009 - 10/04/2009 / 10/04/2009 - 10/11/2009 / 10/11/2009 - 10/18/2009 / 10/18/2009 - 10/25/2009 / 10/25/2009 - 11/01/2009 / 11/29/2009 - 12/06/2009 / 12/27/2009 - 01/03/2010 / 01/31/2010 - 02/07/2010 / 02/07/2010 - 02/14/2010 / 02/28/2010 - 03/07/2010 / 03/07/2010 - 03/14/2010 / 03/28/2010 - 04/04/2010 / 04/18/2010 - 04/25/2010 / 05/16/2010 - 05/23/2010 / 05/30/2010 - 06/06/2010 / 06/13/2010 - 06/20/2010 / 06/20/2010 - 06/27/2010 / 07/04/2010 - 07/11/2010 / 07/11/2010 - 07/18/2010 / 07/18/2010 - 07/25/2010 / 08/08/2010 - 08/15/2010 / 08/29/2010 - 09/05/2010 / 09/05/2010 - 09/12/2010 / 09/19/2010 - 09/26/2010 / 09/26/2010 - 10/03/2010 / 10/10/2010 - 10/17/2010 / 10/17/2010 - 10/24/2010 / 10/31/2010 - 11/07/2010 / 11/28/2010 - 12/05/2010 / 12/05/2010 - 12/12/2010 / 12/12/2010 - 12/19/2010 / 12/26/2010 - 01/02/2011 / 03/06/2011 - 03/13/2011 / 03/13/2011 - 03/20/2011 / 05/22/2011 - 05/29/2011 / 08/07/2011 - 08/14/2011 / 08/14/2011 - 08/21/2011 / 09/18/2011 - 09/25/2011 / 10/02/2011 - 10/09/2011 / 10/09/2011 - 10/16/2011 / 11/06/2011 - 11/13/2011 / 01/15/2012 - 01/22/2012 / 04/22/2012 - 04/29/2012 / 06/24/2012 - 07/01/2012 / 08/05/2012 - 08/12/2012 / 08/11/2013 - 08/18/2013 / 03/01/2015 - 03/08/2015 / 10/04/2015 - 10/11/2015 / 11/08/2015 - 11/15/2015 / 12/22/2019 - 12/29/2019 / 04/05/2020 - 04/12/2020 / 07/21/2024 - 07/28/2024 /


Powered by Blogger