In her talk titled "The Power Of Abstraction" given in OOPSLA2009, Barbara Liskov mentioned that she started to learn web services programming, and the language or framework she used has many global variables. I really wonder what she was using.
The talk is good and especially reveals the history of development of abstract data type by the list of influential papers.
Wednesday, December 30, 2009
Friday, December 11, 2009
Zero copy for Java HTTP file server
This makes it impossible for normal Java-based HTTP service to take the advantage of zero copy.
in reference to:"It is not possible to create a channel for an arbitrary, pre-existing socket, nor is it possible to specify the SocketImpl object to be used by a socket associated with a socket channel."
- SocketChannel (Java 2 Platform SE 5.0) (view on Google Sidewiki)
Friday, December 4, 2009
Free DNS servers
Maybe some ISP's like this. The last time I tried to find a free DNS is two years ago when the ISP DNS was down. I like the ip they choose, easy to remember.
Maybe DNS is the first place that browsing statistic can be collected.
"To try it out: Configure your network settings to use the IP addresses 8.8.8.8 and 8.8.4.4 as your DNS servers or Read our configuration instructions."
- Google Public DNS (view on Google Sidewiki)
Friday, November 27, 2009
Rich Hickey on function, time, and process
All the concurrency and timing puzzles suddenly become reasonable after listening to his talk titled "Are we there yet". I borrowed the book of "Process and Reality" from the library, and started to learn Whitehead's system.
If you do multithreading programming, or play with JavaScript and XHR, or like Erlnag, Clojure, or Scala, then you would perhaps enjoy his talk.
Wednesday, September 30, 2009
/bin/perl^M: bad interpreter
After digging for a while, it turns out the cause is the perl interpreter on Linux cannot recognize the end of line character CRLF in windows files. What it expects is LF.
Using EOL as end of statement is not system independent.
Using EOL as end of statement is not system independent.
Wednesday, September 16, 2009
Friday, May 15, 2009
Ubuntu 9.04 on Dell Optiplex 760
The issue was reported as Bug #348694.
I experienced the same problems reported there. When installing from liveCD, during the first stage you have to push the power switch to generate interruptions until the keyboard is on. Then you can start to strike a key. When the mouse is on, you can move mouse to keep the system awake. I am not sure if there is way to keep the mouse always busy in that way you will save time for installation.
The next day morning, you will find installation is finished, and you need to restart. Then you need to set the kernel options when the grub screen is on.
ftp.us.dell.com/bios/O760-A03.EXE
You need to have windows system installed to fix though.
I experienced the same problems reported there. When installing from liveCD, during the first stage you have to push the power switch to generate interruptions until the keyboard is on. Then you can start to strike a key. When the mouse is on, you can move mouse to keep the system awake. I am not sure if there is way to keep the mouse always busy in that way you will save time for installation.
The next day morning, you will find installation is finished, and you need to restart. Then you need to set the kernel options when the grub screen is on.
- hpet=disable helps, but does not solve the problem.
- acpi=off solve the problem, but you will lose a CPU.
- acpi_skip_timer_override is the best solution.
You need to have windows system installed to fix though.
Friday, March 13, 2009
Google search is the biggest server-side mashup
Each search result page is a mashup of multiple pages, their snapshots, and possibly different representations. Of course, some contents are old, but some "important" pages are refreshed constantly in Google's index. Now they even add features like SearchWiki to personalize it. Maybe people will like the idea of SearchWiki more and more. In fact, we have used a personal mashup for a long time --- the Google Reader.
Monday, February 23, 2009
Friday, February 20, 2009
A page about the wide finder
I have published the page of wide finder, which was created for a group discussion on Erlang.
The problem of wide finder was coined by Tim Bray, and is summarized in http://www.tbray.org/ongoing/When/200x/2007/09/20/Wide-Finder
The task is to read an Apache logfile and figure out which pages have been fetched the most.
The reference Ruby code
# 11 lines
counts = {}
counts.default = 0
ARGF.each_line do |line|
if line =~ %r{GET /ongoing/When/\d\d\dx/(\d\d\d\d/\d\d/\d\d/[^ .]+) }
counts[$1] += 1
end
end
keys_by_count = counts.keys.sort { |a, b| counts[b] <=> counts[a] }
keys_by_count[0 .. 9].each do |key|
puts "#{counts[key]}: #{key}"
end
Bray's original idea was to check if Erlang is good option for this problem on multi-core platforms.
Read more ...
Wednesday, February 4, 2009
Friday, January 9, 2009
The reverse C10K problem
The original C10K problem studies how to provide reasonable service to 10,000 simultaneous clients or HTTP requests using a normal web server. I call the following problem the reverse C10K problem, or RC10K --- how to support 10,000 simultaneous outbound HTTP requests running on a web server. The RC10K problem can be found in scenarios like service orchestrations and server-side mashups. A server-side mashup needs to send several simultaneous HTTP requests to partner services for each inbound request.
Many approaches to improving the performance and scalability of HTTP servers can be applied to tackle the original C10K problem. However, whether these approaches can tackle the reverse C10K problem needs to be verified. My recent paper discussed the RC10K problem, and presented some experiment results got from a prototype mashup server application.
Many approaches to improving the performance and scalability of HTTP servers can be applied to tackle the original C10K problem. However, whether these approaches can tackle the reverse C10K problem needs to be verified. My recent paper discussed the RC10K problem, and presented some experiment results got from a prototype mashup server application.
Subscribe to:
Posts (Atom)