last data update: 2011/10/15, 16:43

Website loading time

during the test: 1.41 s

cable connection (average): 1.6 s

DSL connection (average): 1.8 s

modem (average): 12.07 s

HTTP headers

Information about DNS servers

stevehanov.caSOAns3.zoneedit.comsoacontact.zoneedit.com2011427817300 300 300 300 IN 7200
stevehanov.caA69.196.135.15IN300
stevehanov.caMX0mail.zoneedit.comIN7200
stevehanov.caMX0mail3.zoneedit.comIN7200
stevehanov.caNSns18.zoneedit.comIN7200
stevehanov.caNSns3.zoneedit.comIN7200

Received from the first DNS server

Request to the server "stevehanov.ca"
You used the following DNS server:
DNS Name: ns18.zoneedit.com
DNS Server Address: 50.22.254.159#53
DNS server aliases:

HEADER opcode: REQUEST, status: NOERROR, id: 45703
flag: qr aa rd REQUEST: 1, ANSWER: 6, AUTHORITY: 2, ADDITIONAL: 0

REQUEST SECTION:
stevehanov.ca. IN ANY

ANSWER SECTION:
stevehanov.ca. 7200 IN MX 0 mail.zoneedit.com.
stevehanov.ca. 7200 IN MX 0 mail3.zoneedit.com.
stevehanov.ca. 7200 IN NS ns3.zoneedit.com.
stevehanov.ca. 7200 IN NS ns18.zoneedit.com.
stevehanov.ca. 300 IN A 69.196.135.15
stevehanov.ca. 7200 IN SOA ns3.zoneedit.com. soacontact.zoneedit.com. 2011427817 300 300 300 300

AUTHORITY SECTION:
stevehanov.ca. 7200 IN NS ns3.zoneedit.com.
stevehanov.ca. 7200 IN NS ns18.zoneedit.com.

Received 214 bytes from address 50.22.254.159#53 in 13 ms

Received from the second DNS server

Request to the server "stevehanov.ca"
You used the following DNS server:
DNS Name: ns3.zoneedit.com
DNS Server Address: 76.74.236.21#53
DNS server aliases:

HEADER opcode: REQUEST, status: NOERROR, id: 54433
flag: qr aa rd REQUEST: 1, ANSWER: 6, AUTHORITY: 2, ADDITIONAL: 0

REQUEST SECTION:
stevehanov.ca. IN ANY

ANSWER SECTION:
stevehanov.ca. 7200 IN MX 0 mail.zoneedit.com.
stevehanov.ca. 7200 IN MX 0 mail3.zoneedit.com.
stevehanov.ca. 7200 IN NS ns3.zoneedit.com.
stevehanov.ca. 7200 IN NS ns18.zoneedit.com.
stevehanov.ca. 300 IN A 69.196.135.15
stevehanov.ca. 7200 IN SOA ns3.zoneedit.com. soacontact.zoneedit.com. 2011427817 300 300 300 300

AUTHORITY SECTION:
stevehanov.ca. 7200 IN NS ns3.zoneedit.com.
stevehanov.ca. 7200 IN NS ns18.zoneedit.com.

Received 214 bytes from address 76.74.236.21#53 in 82 ms

Subdomains (the first 50)

Typos (misspells)

atevehanov.ca
ztevehanov.ca
xtevehanov.ca
dtevehanov.ca
etevehanov.ca
wtevehanov.ca
srevehanov.ca
sfevehanov.ca
sgevehanov.ca
syevehanov.ca
s6evehanov.ca
s5evehanov.ca
stwvehanov.ca
stsvehanov.ca
stdvehanov.ca
strvehanov.ca
st4vehanov.ca
st3vehanov.ca
stecehanov.ca
stebehanov.ca
stegehanov.ca
stefehanov.ca
stevwhanov.ca
stevshanov.ca
stevdhanov.ca
stevrhanov.ca
stev4hanov.ca
stev3hanov.ca
steveganov.ca
stevebanov.ca
stevenanov.ca
stevejanov.ca
steveuanov.ca
steveyanov.ca
stevehznov.ca
stevehsnov.ca
stevehwnov.ca
stevehqnov.ca
stevehabov.ca
stevehamov.ca
stevehajov.ca
stevehahov.ca
stevehaniv.ca
stevehankv.ca
stevehanlv.ca
stevehanpv.ca
stevehan0v.ca
stevehan9v.ca
stevehanoc.ca
stevehanob.ca
stevehanog.ca
stevehanof.ca
tevehanov.ca
sevehanov.ca
stvehanov.ca
steehanov.ca
stevhanov.ca
steveanov.ca
stevehnov.ca
stevehaov.ca
stevehanv.ca
stevehano.ca
tsevehanov.ca
setvehanov.ca
stveehanov.ca
steevhanov.ca
stevheanov.ca
steveahnov.ca
stevehnaov.ca
stevehaonv.ca
stevehanvo.ca
sstevehanov.ca
sttevehanov.ca
steevehanov.ca
stevvehanov.ca
steveehanov.ca
stevehhanov.ca
stevehaanov.ca
stevehannov.ca
stevehanoov.ca
stevehanovv.ca

Location

IP: 76.10.136.23

continent: NA, country: Canada (CAN), city: Etobicoke

Website value

rank in the traffic statistics:

There is not enough data to estimate website value.

Basic information

website build using CSS

code weight: 74.59 KB

text per all code ratio: 45 %

title: Steve Hanov's Programming Blog

description:

keywords:

encoding: utf-8

language: en

Website code analysis

one word phrases repeated minimum three times

PhraseQuantity
the308
to124
of104
in101
is95
we53
for52
and52
The39
it35
you33
are32
that31
data30
can27
with27
words25
if25
var25
be24
using24
return23
files21
not20
an20
as19
//18
If18
word18
We17
each17
will16
by16
It16
number16
use15
In15
all15
then14
file.14
trie14
or14
so13
reading13
index13
search13
hash13
on13
file13
This13
this13
up12
node12
def12
totalBytes11
which11
function11
ptr11
store11
first11
find11
);11
only11
do11
one10
have10
table10
functions10
function(10
need10
when10
});9
at9
):9
it.9
into9
heap9
has9
==9
but9
they9
no9
from9
given9
could8
web8
array8
its8
Here8
To8
contains8
does8
read8
0;8
would8
on:8
keys8
+=8
error8
list8
know8
two8
results8
promises8
code7
bits7
some7
buckets7
promise7
MA-FSA7
our7
memory7
program7
any7
time7
them7
else7
value7
More...7
encoding7
example6
But6
returns6
Promises6
loop6
simply6
took6
load6
dictionary6
print6
want6
related6
more6
top6
many6
look6
take6
position6
create6
encode6
there6
information6
very6
child6
go6
--6
function.6
table.5
105
values5
size5
bigArray,5
nodes5
dictionary.5
structures5
item5
much5
browser5
time,5
long5
Here's5
add5
binary5
users5
after5
You5
},5
new5
because5
about5
how5
structure5
import5
what5
parts5
on-disk5
process5
see5
like5
always5
items5
easy5
same5
callback5
contents5
Javascript5
start5
operation5
python4
where4
word:4
---4
current4
self,4
string.4
different4
file,4
possible4
rank4
since4
most4
operating4
[]4
through4
probe4
bit4
sequence,4
don't4
build4
Since4
Reading4
By4
everything4
get4
being4
may4
takes4
known4
large4
memory.4
your4
smallest4
cannot4
other4
way4
->4
Minimal4
even4
while4
linear4
",4
files.4
console.log("Done4
second4
Succinct4
both4
my4
keep4
For4
remaining4
However,4
operations4
fs4
example,4
All4
error,4
console.log("Error4
When4
between4
require("fs");4
function,3
Blog3
result3
run3
best3
They3
way,3
Perfect3
Creating3
faster3
class3
There3
bytes:3
trie.3
below,3
ones3
place3
also3
space3
doesn't3
succinct3
Instead3
check3
used.3
asynchronous3
toy3
empty3
out3
described3
hashing3
intermediate3
errors3
callbacks3
write3
above3
perfect3
(time.time()3
uses3
performance3
should3
Steve3
SQLITE3
self.getDword(3
word.3
low3
work3
candidate3
I've3
row3
amount3
than3
encoded3
found3
difference3
searching3
problems3
level3
just3
were3
Fortunately,3
So3
needed3
s"3
%g3
Using3
element3
lot3
start)3
words.3
compact3
step3
links3
#!/usr/bin/python3
An3
string3
text3
byte3
around3
time.time()3
needs3
containing3
structure.3
totalBytes);3
gets3
once,3
(also3
done.3
instead3
implemented3
i++3
order3
directory3
files.length;3
console.log(3
fs.readFile(3
folder3
system3
until3
Read3
usually3
sort3
readFile()3

two word phrases repeated minimum three times

PhraseQuantity
of the34
in the32
number of15
to the14
the files12
the number11
on the10
find the10
files in9
for each9
to find8
It is8
the data8
of words8
need to8
for the8
you can7
Here is7
is the7
it is7
all of7
the file.7
the keys7
with the7
the top6
does not6
the trie6
to be6
we can6
to create5
the words5
process the5
is not5
the first5
can be5
to store5
would be5
the given5
store the5
the same5
words in5
If you5
first child5
the web5
all the5
the value5
want to5
contains the5
have to5
If we5
ptr +=4
the current4
to use4
Reading the4
parts of4
way to4
the nodes4
the smallest4
console.log("Done reading4
totalBytes 0;4
var totalBytes4
list of4
reading files.4
that we4
function( error,4
if error4
the word4
totalBytes +=4
fs require("fs");4
var fs4
using the4
on-disk data4
contents of4
we use4
we could4
is an4
we are4
related words4
the dictionary.4
is in4
and the4
to load4
hash table4
for in4
search took4
the loop3
s" (time.time()3
to build3
needed to3
lot of3
index ==3
if index3
the bit3
check if3
search is3
%g s"3
took %g3
data is3
array of3
In the3
encoding is3
an array3
start time.time()3
use the3
the contents3
implemented in3
data structures3
): return3
is no3
We then3
(also known3
an MA-FSA3
how to3
described how3
); else3
data structure3
using Promises3
reading file.3
then the3
(time.time() start)3
information about3
of its3
the buckets3
and it3
of memory3
console.log("Error reading3
the operating3
that the3
of related3
that is3
data if3
error, data3
so that3
to do3
}); Reading3
of bits3
This is3
operating system3
loop is3
so you3
For example,3
the difference3
once, and3
All of3
each node3
example of3
we know3
the rank3
amount of3
folder in3
the folder3
// Read3
Read all3
heap search3
in this3
an on-disk3
create the3
// The3
that return3
easy to3
it will3
we want3
we will3
Instead of3
has to3
the program3
child is3
child of3
can use3
as the3
they are3
possible to3
look up3
in an3
the file3
which is3
through the3
using callbacks3
not need3

three word phrases repeated minimum three times

PhraseQuantity
the number of11
the files in8
to find the7
files in the7
all of the5
number of words5
parts of the4
is in the4
words in the4
Reading the files4
var totalBytes 0;4
the first child4
of the file.4
of words in4
var fs require("fs");4
function( error, data3
in the dictionary.3
that we want3
// Read all3
in the folder3
the folder in3
we want to3
console.log("Done reading files.3
first child of3
if index ==3
described how to3
an array of3
error, data if3
not need to3
does not need3
s" (time.time() start)3
%g s" (time.time()3
so you can3
took %g s"3
the operating system3
number of bits3
of the files3
all the files3
}); Reading the3
the contents of3
data if error3

B tags

fs.readdir(path, [callback])

fs.readFile(filename, [encoding], [callback])

encodes data very efficiently,

does not need to be decoded to be used.

rank(x)

select(y)

By trial and error.

In step 1

In step 2

mathematically proven that your choice is optimal?

U tags

I tags

promise

future

channel

EventEmitter

reject

resolve

Promise.all()

Animal.coffee

pointers

succinct data structures

tries use a lot of memory

yth

select

level order

data

i

select0(i + 1) - i

i+1

directory

trie

Minimal

for sure

d

largest first

sounds like

images

file namealternative text
Number of items vs. Time (s) in Perfect Hashing algorithm

headers

H1

Other posts by Steve

H2

Reading the files in parallel using callbacks

Reading the files sequentially using callbacks

Reading the files in parallel using Promises

Reading the files sequentially using Promises

No waiting

Toy example

When shouldn't you use this?

The Heap

Succinct Data Structures

A Succinct Trie

Demo

H3

Reading the files in parallel using callbacks

Reading the files sequentially using callbacks

Reading the files in parallel using Promises

Reading the files sequentially using Promises

No waiting

Toy example

When shouldn't you use this?

The Heap

Succinct Data Structures

A Succinct Trie

Demo

H4

H5

H6

internal links

addressanchor text
View all posts
Resume
About
Four ways of handling asynchronous operations in node.js
More...
Type-checked CoffeeScript with jzbuild
More...
Creating binary RPM/DEB packages the easy way
More...
Zero load time file formats
More...
Finding the top K items in a list efficiently
I usually end up rewriting everything in C++ eventually
More...
An instant rhyming dictionary for any web site
More...
Succinct Data Structures: Cramming 80,000 words into a Javascript file.
It doesn't work in RSS readers -- go to my blog to see it
how to create an MA-FSA
More...
Throw away the keys: Easy, Minimal Perfect Hashing
part 1
part 2
More...
Why don't web browsers do this?
More...
Fun with Colour Difference
my blog
my blog
Colours.js
driver.js
exploiting colour difference for edge detection
More...
More Posts
steve.hanov@gmail.com
Four ways of handling asynchronous operations in node.js
Type-checked CoffeeScript with jzbuild
Creating binary RPM/DEB packages the easy way
Zero load time file formats
Finding the top K items in a list efficiently
An instant rhyming dictionary for any web site
Succinct Data Structures: Cramming 80,000 words into a Javascript file.
Throw away the keys: Easy, Minimal Perfect Hashing
Why don't web browsers do this?
Fun with Colour Difference
Compressing dictionaries with a DAWG
Fast and Easy Levenshtein distance using a Trie
The Curious Complexity of Being Turned On
Cross-domain communication the HTML5 way
Five essential steps to prepare for your next programming interview
Minimal usable Ubuntu with one command
Finding awesome developers in programming interviews
Compress your JSON with automatic type extraction
JZBUILD - An Easy Javascript Build System
Pssst! Want to stream your videos to your iPod?
"This is stupid. Your program doesn't work," my wife told me
Google Buzz gets less awful every day
The simple and obvious way to walk through a graph
Asking users for steps to reproduce bugs, and other dumb ideas
Creating portable binaries on Linux
Bending over: How to sell your software to large companies
Regular Expression Matching can be Ugly and Slow
C++: A language for next generation web apps
qb.js: An implementation of QBASIC in Javascript (part 1)
Zwibbler: A simple drawing program using Javascript and Canvas
You don't need a project/solution to use the VC++ debugger
Boring Date (comic)
barcamp (comic)
How IE tag emulation works
I didn't know you could mix and match (comic)
Sign here (comic)
It's a dirty job... (comic)
The PenIsland Problem: Text-to-speech for domain names
Pitching to VCs #2 (comic)
Building a better rhyming dictionary
Does Android team with eccentric geeks? (comic)
Comment spam defeated at last
Pitching to VCs (comic)
How QBASIC almost got me killed
Blame the extensions (comic)
How to run a linux based home web server
Microsoft's generosity knows no end for a year (comic)
Using the Acer Aspire One as a web server
When programmers design web sites (comic)
Finding great ideas for your startup
Game Theory, Salary Negotiation, and Programmers
Coding tips they don't teach you in school
When a reporter mangles your elevator pitch
Test Driven Development without Tears
Drawing Graphs with Physics
Free up disk space in Ubuntu
Keeping Abreast of Pornographic Research in Computer Science
Exploiting perceptual colour difference for edge detection
Experiment: Deleting a post from the Internet
Is 2009 the year of Linux malware?
Email Etiquette
How a programmer reads your resume (comic)
How wide should you make your web page?
Usability Nightmare: Xfce Settings Manager
Usability Nightmare: ktoon
cairo blur image surface
Automatically remove wordiness from your writing
Why Perforce is more scalable than Git
A complete blogging system in 1900 lines of php
Optimizing Ubuntu to run from a USB key or SD card
UMA Questions Answered
Make Windows XP look like Ubuntu, with Spinning Cube Effect
See sound without drugs
Standby Preventer
Stock Picking using Python
Spoke.com scam
Stackoverflow.com
Copy a cairo surface to the windows clipboard
Simulating freehand drawing with Cairo
Free, Raw Stock Data
Installing Ubuntu on the Via Artigo
Why are all my lines fuzzy in cairo?
A simple command line calculator
Tool for Creating UML Sequence Diagrams
Exploring sound with Wavelets
A Fast Calorie Calculator for Windows
UMA and free long distance
UMA's dirty secrets
Creating a Todo list in Ajax
Installing the Latest Debian on an Ancient Laptop
How to make the MSDN style tree view in Javascript
Dissecting Adsense
HTML/ Javascript/ CSS Pretty Printer
Comment Spam
Web Comic Aggregator
Experiments in making money online
How much cash do celebrities make?
Draw waveforms and hear them
Cell Phones on Airplanes
Detecting C++ memory leaks
What does your phone number spell?
A Rhyming Engine
Rules for Effective C++
Cell Phone Secrets
Speaking engagements

external links

addressanchor text
Software
RhymeBrain
Zwibbler
Google Buzz!
Erlang
channel
from the 1970's
promise
PromiseSequence
Coffeescript
Debian Policy Manual
Creating an RPM file
mmap
Download 11 MB of it
SQLITE
wikipedia
priority queue
Selection Algorithm
RhymeBrain.com
my API
Word Game
flash memory
a more compact format
other papers
since
then.
to implement select in constant time
Bits.js
according to this paper
CMPH
Botelho's thesis
Gperf
the way the human eye works
George Takei is hawking TVs
LAB
LUV
names commonly recognized by most browsers
this wikipedia article
Matthias Wandel's Home Page
Direct Threaded Daydreams
Papers in Computer Science
a canadian startup
Coding Horror
Successful Software
Gary Will's Tech Digest
The Old New Thing
Linux Hater's Blog
Ridiculous Fish