Slashdot Mirror


User: Diomidis+Spinellis

Diomidis+Spinellis's activity in the archive.

Stories
0
Comments
86
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 86

  1. Re:A case for solar power on The Soaring Costs for New Data Center Projects · · Score: 1

    I'm not thinking about a conventional data center, but of self-contained, self-powered autonomous units sprouting up (as you put it) from the sand like cacti. I would expect these devices to be cooled by convection.

  2. Re:A case for solar power on The Soaring Costs for New Data Center Projects · · Score: 1

    I thought that cooling would be less of a problem, because with land on a desert being cheap there would be no need to pack the processor boards closely together. You would need to occupy a large area with solar panels, so why not distribute the computers sparsely under their shade. A 200 W photovolatic panel takes up 1.4 sq m (15 sq ft). Therefore, for a 1000W server you would need 7 sq m (75 sq ft) of panels; I doubt the extra heat generated by the server would be an issue in such conditions.

  3. A case for solar power on The Soaring Costs for New Data Center Projects · · Score: 0
    With electricity costs being a dominant factor in the selection of a data center's location, building one in a sunny desert begins to make sense. You use solar power for the servers; for round-the-clock operation you build centers around the world. Unlike electricity, bits are easy to transport from the place where they are produced to the place where they are consumed.

    Code Quality: The Open Source Perspective

  4. Re:"The web site will be unavailable from ... on ThinkFree Online Review · · Score: 1
    I don't know if thinkfree will continue to have to temporarily shutdown its website, thereby making your documents inaccessible, but do note that it *is* still in beta. I don't think the fact that they have to make updates makes them less trustworthy.

    The fact that they had to shut down the site for updates is an indication that they haven't solved the (difficult) problem of performing live software and hardware updates. This looks to me like a fundamental design constraint of their solution, rather than a bug that can be addressed in a beta-testing cycle. Other internet-based service providers, like Google, Akamai, and (to a limited extend) Wikipedia, addressed this problem from day one. (Wikipedia reverts to a static browsing mode during some update operations.)

    As I said, the reliable operation of a service is a difficult problem. At the Second Workshop on Real, Large Distributed Systems (WORLDS '05) Mike Afergan and his colleagues presented a very interesting paper detailing the design methodology used to achieve commercial-quality reliability in the Akamai content delivery network. As they write in the abstract, the Akamai network consists of 15,000+ servers in 1,100+ networks and spans 65+ countries. The paper makes very interesting reading.

    --
    Code Quality: The Open Source Perspective(Addison-Wesley 2006)

  5. "The web site will be unavailable from ... on ThinkFree Online Review · · Score: 2, Insightful
    ... 3:00 AM to 8:00 AM PDT on April 25. We apologize for the inconvenience"

    is the wording on a banner currently appearing on the thinkfree web site. Am I the only one feeling nervous about having my documents residing on an application service provider where their accessibility is beyond my control?

    --
    Code Quality: The Open Source Perspective (Addison-Wesley 2006)

  6. Disingenuous arguments on Gates Mocks MIT's $100 Laptop · · Score: 1
    Either Gates doesn't know what the project is about, or he pretends he doesn't. Gates said:
    "The last thing you want to do for a shared use computer is have it be something without a disk ... and with a tiny little screen,"
    However, the $100 laptop is not a shared computer. In fact, the goal of each child having ITS OWN computer is an explicit goal of the project.
    Why is it important for each child to have a computer? What's wrong with community-access centers?
    One does not think of community pencils--kids have their own. They are tools to think with, sufficiently inexpensive to be used for work and play, drawing, writing, and mathematics. A computer can be the same, but far more powerful. Furthermore, there are many reasons it is important for a child to own something--like a football, doll, or book--not the least of which being that these belongings will be well-maintained through love and care.

    Gates also said that big costs come from network connectivity, applications and support. The argument that applications are more expensive than hardware is similarly disingenious: if you pay Microsoft their extortionate retail prices, yes applications are expensive. The same goes for support: paid support is expensive, community-based support is cheap.

  7. Unlicensed Mobile Access on Microsoft To Offer Free Wireless VoIP · · Score: 2, Interesting

    Mobile operators are also moving in the same direction with the unlicensed mobile access (UMA) technology. With UMA you'll be able to make calls with your mobile phone through a Wi-Fi network. The operators know that this will eat into their wireless revenue stream, but they hope to recover the losses from a higher usage (you'll be using your mobile phone at home). So the real question is the choice between Microsoft's (nonstandard?) VoIP version and UMA.

  8. Re:Has anyone heard of X3? on The Future of Digital Camera Technology · · Score: 1
    You got it slightly wrong. Traditional CCD sensors have a color resolution one third of the stated pixel resolution, which (through filtering) applies to luminance. In the X3 CCD color and pixel resolution are them same. Keep however in mind that our eye also has a significantly higher luminance resolution (rods) than color resolution (cones).

    Also, cameras that capture precisely all three colors are still only matched to our limited human vision. The red, green, and blue colors are simply the colors that our cones can distinguish; our cameras and display processes are only good enough for what we humans can see. Important image information is lost every time we take a picture.

  9. The wheel was set in motion after the IPO on Google's Action Makes A Mockery Of Its Values · · Score: 1
    Nobody who has read Bakan's book The Corporation: The Pathological Pursuit of Profit and Power should be surprised by this development. Despite Google's You can make money without doing evil philosophy, its executives have a legal obligation toward its shareholders to maximize profits, in any legal, but not neccessarily ethical, way. Any other strategy could be seen as betrayal of their fiduciary duty and could, in theory and subject to the limitations of the business judgment rule, expose them to legal action.

    One could claim that doing business in China in the way Google decided to do it was not a smart business move, but that is an entirely different story.

  10. Re:Interval arithmetic on Rounding Algorithms · · Score: 1
    I read my comment again, and realize you're absolutely right. I overstated the advantages of interval arithmetic. I should have phrased it as follows.
    If you can't afford to perform error analysis, using an interval arithmetic package will often provide you with a reliable indication on the confidence you can place on the results of your calculation.
    I agree that error analysis isa very deep speciality, and therefore programmers not versed in it need every help they can get to produce reliable results, without having to rely on it. The IEEE 754 standard has helped a lot in this area.
  11. Interval arithmetic on Rounding Algorithms · · Score: 4, Interesting

    Rounding towards the nearest neighbour is the default and ubiquitously used rounding mode. The complementary rounding modes (round toward -+ infinity or 0) are useful for doing calculations with interval arithmetic: a calculation can be performed twice with opposing rounding modes to derive an interval value for the result. If all operations are performed in this way, the final result of a complex calculation is expressed as an interval providing the range in which the real value will be (remember, often floating point numbers only approximate the real number). Using such a package can save you the trouble of performing error analysis. An article in the Journal of the ACM provides the details for implementing this feature.

  12. PoP and TAoUP on A Programmer's Bookshelf · · Score: 1
    Kernighan and Pike's The Practice of Programming, and Raymond's The Art of Unix Programming, should also be in the list.

    Here is my bookshelf: with cover images, without cover images, and with cover images ordered by color.

  13. My web server log does not agree on Are Media Writers Biased Towards Apple? · · Score: 1
    The article claims that all the writers at NY Times are Mac users, but the one set of entries I found in my web server log does not agree.
    $ egrep '(nytimes|wsj|newsweek|fortune)\.com' access_log
    nytgate05.nytimes.com - - [22/Mar/2005:18:38:07 +0200] "GET /codereading/sdpa.gif HTTP/1.1" 200 3258 "http://www.spinellis.gr/codereading/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)"
    This looks like a Windows machine to me, and it also runs Internet Explorer.
  14. This can turn into a p2p CDN on Google Web Accelerator · · Score: 1
    In the future the client could fetch material, not from Google's cache, but from an idle Web Accelerator client of a nearby computer. Thus Google can gain traction and momentum to deploy a Google-controlled peer-to-peer content delivery network. This can then be used for delivering content that really requires a lot of bandwdith, like video. By aggregating web requests from millions of users Google can not only create smarter prefetch algorithms, but also deliver better search results, and even suggest personalized interesting content. Think of it like the web's TiVo.

    Google seems to have found a way to use network effects to gather the visiting habits of all the world's web surfers. The value of this data is priceless. Google's army of Computer Science PhDs is definitely not sitting idle.

  15. Re:What about version control? on Code Reading: The Open Source Perspective · · Score: 2, Interesting
    I discuss revision control systems in Chapter 6 of the Code Reading book, titled Tackling Large Projects. I also present revision control in the elective course Software Comprehension and Maintenance I am teaching. In that course students have to contribute to an open source project, in order to pass the course.

    You are right, version control should be part of "programming" education, and should probably be taught in a software engineering course.

    Diomidis

  16. Article summary on Microsoft Compares Windows And Linux · · Score: 4, Interesting
    • The developers really putting work in open source systems aren't that many; Microsoft can hire more developers to do a better job.
    • Commercial Linux distributors are forced to create incompatible solutions as value-added propositions.
    • Studies have shown that developers believe Microsoft is the top vendor in addressing their interoperability concerns.
    • Commercialized Linux distributions limit the flexibility of the available open source solutions.
    • Microsoft provides higher quality support and at a cheaper price than Linux vendors.
    • Microsoft stands behind Windows provididing an extremely hight level of IP protection and indemnification.
    • Microsoft has a faster turnaround between a security disclosure and a bug fix than other open source systems.
    • Microsoft commits resources to do comprehensive QA and testing; the open source model leaves that to chance.
    • The Windows ecosystem of certified compatible hardware and software is a lot larger than that of Linux.
    • Microsoft leads in software innovation.
  17. Even the 12-year old HP-100LX was better on Limitations in Current Breed of Palm Handhelds? · · Score: 5, Informative
    I am glad somebody has pointed out the lack of progress in the palmtop market. My 12-year old HP-100LX is literally falling appart, yet I can not find a worthwhile replacement.

    Things I am missing from the current generation of Palms, but I find as built-in features on my [tr]usted HP-100LX are:

    • A rechargable battery that runs for about three weeks.
    • The ability to plug in standard AA bateries when the rechargable battery runs out.
    • A plain vanilla 12V charger port and a backup batery when the two options fail. (In 12 years I have only lost data once, when the machine fell from my bike in a shallow water ditch).
    • Real (though not preemtive) context switching. When I enter one application, the other one is suspended in the state it was, and will be resumed at exactly the same state when I return to it.
    • An industry standard file system (FAT), and support for cheap standard PCMCIA memory cards.
    • A complete spreadsheet (not just a viewer) that includes macros, and graphs.
    • A customizable database supporting complex queries and a visual form builder.
    • Customizable calendar, phone book, and note-taking applications, based on the above database.
    • A scientific and financial calculator with an equation solver, and graphing capability.
    • Locale support for Greece (fonts, keyboard, sorting) out of the box.
    • A sturdy design that can withstand 12 years of (ab)use.
    The flexibility and stability of the machine's software is legendary. Over the years it has adapted to a change in the daylight savings time rule, Y2K, the introduction of the Euro symbol, and a number of phone renumbering exercises (it contains a world city database with a dialing prefixes and a map). The software is fixed in ROM; all needed changes were made via configuration files.
  18. Check-out the FreeBSD jail facility on Protecting Your Enterprise Network from Vendor App Servers? · · Score: 4, Informative
    [I know this will cost me karma points.]

    The FreeBSD operating system provides the jail(2) system call and the jail(1) command for imprisoning a process and its future decendants. The jail facility is based on the chroot(2) implementation, but prevents well-documented means to escape chroot confinement, offering partitioning of the file system, process, and networking namespaces. The facility removes all super-user privileges that would affect objects not entirely inside the jail.

    For more information read:

    • Poul-Henning Kamp and Robert Watson. Jails: Confining the omnipotent root. In Proceedings, SANE 2000 Conference. NLUUG, 2000.PDF, HTML.
    • Poul-Henning Kamp and Robert Watson. Building Systems to be Shared Securely ACM Queue vol. 2, no. 5 - July/August 2004 HTML
  19. Involving students with open source code on OSDDP: Involving Students With Open Source Docs · · Score: 4, Interesting
    In my course Software Comprehension and Maintenance I ask students to contribute to an open-source project, by adding a new feature or fixing an important bug. The course's grade is entirely determined by their performance on this project.

    The course is an elective, and was offered for the first time last year; not many students decided to take it. Those who did, got hooked; some commented that it was the course where they really understood what it meant to program.

    The following projects were completed last year:

    This year the course will be taught in English and will be offered to students across Europe through the EU's Erasmus student mobility programme. I hope to be able to report on new exciting results through slashdot next year.

  20. ToC vi macro on How To Build And Maintain A Good FAQ · · Score: 2, Informative
    I edit most of the small FAQs I maintain, such as the UMLGraph FAQ by editing the HTML file with vim. One element worth automating is the FAQs table of contents. For that I have on the top of the file the following comment:
    <!--
    To update the FAQs table of contents yank the following vim commands into a register ("ry4j) and execute it (@r).
    /^<h2>Contents
    jjma/ul>
    kmb/^$
    "qyy:g/^< a name/s,<a name="\([^>]*\)><h2>\(.*\)</h2></a>,<li& g t; <a href="\#\1>\2</a>,|y Q|u
    'ad'b"qP
    -->
    This will collect entry headings like the following
    <a name="antialias"><h2>How can I improve the quality of the bitmap images I generate?</h2></a>
    to create the hyperlinked table of contents.

    #include "/dev/tty"

  21. Re:This isn't exactly new... on Hydan: Steganography in Executables · · Score: 3, Interesting
    Metamorphic viruses use the same approach to make themselves undetectable by typical signature-based virus scanners. This technique can make viruses a lot more difficult to detect, because:
    1. determining whether a program is a virus or not is an undecidable problem (there exists no algorithm that can solve it), and
    2. determining whether a program is a variation of a known bounded-length virus is NP-complete (algorithms that solve the problem would take impracticably long time).
    #include "/dev/tty"
  22. More important to read than write on Why Learning Assembly Language Is Still Good · · Score: 5, Interesting
    It is vastly more important to be able to read assembly code than write it. In most cases this involves reading the code the compiler generates.

    An earlier poster mentioned how such a skill can help you find compiler bugs. This can be the case, but it is rare; I have located two such bugs in 20 years of programming. A more common use is to locate bugs in your code. When your brain refuses to see the missing braces around the wrongly indented code, or an spurious semicolon at the end of an if or while statement, reading the generated assembly code can save some extra hours of frustration. You will be able to see that the code the compiler generates differs from the code you think you wrote, and this will point you to the bug's location.

    As I argue in Code Reading, other cases where reading assembly code can be of use are:

    • to understand how an implementation-defined operation (e.g. a type cast) is actually performed,
    • to see how compiler optimizations affect the resulting code,
    • to verify that hardware-specific code written in C/C++ actually performs the operations you expect, and
    • to learn how a particular construct can be written in symbolic code.

    To read compiler-generated assembly code you need:

    • An understanding of the processor's architecture: registers, instruction format, addressing modes. See for example Intel's Pentium Architecture Manual.
    • A handbook of the processor's instruction set. Again, see for example Intel's Pentium Instruction Set Reference Manual A-M and Intel's Pentium Instruction Set Reference Manual N-Z.
    • An appreciation of how compilers generate code for modern structured languages. The key ideas here are the stack as a way to handle nested function and method calls, the frame pointer as a way to access function arguments and local variables, and the virtual function table often used for implementing dynamic dispatch in OO languages. The Red Dragon Book is the venerable classic here.
    • A way to obtain an assembly code listing of your high-level language code. The Unix compiler's -S switch, and the Java SDK "javap -c" command are two methods I often use. In gdb you can use the disassemble, nexti, and stepi commands to examine your program at the level of discrete processor instructions.

    Obligatory "hello, world" program written in i386 assembly:

    hello: .string "hello, world\n"
    .globl main
    main:
    pushl $13
    pushl $hello
    pushl $1
    call write
    addl $12, %esp
    xorl %eax, %eax
    ret

    Diomidis Spinellis - #include "/dev/tty"

  23. Computer languages form an ecosystem on C Alive and Well Thanks to Portable.NET · · Score: 5, Insightful
    Judging from some previous comments, I see that some fail to grasp that modern computer languages form a large ecosystem. Each language has its purpose, and one can not easily dismiss a language as dead, just because some other, ostensibly more powerful language has appeared on the block. Monkeys, whales, cockroaches, ants, and plants continue to coexist with humans.

    When I want to solve a program I choose the language I will use, taking into account the abstractions and facilities it offers.

    #include "/dev/tty"

  24. Re:What about us Windows users?! on Wicked Cool Shell Scripts · · Score: 1
    Download and install outwit. Outwit is a suite of tools based on the Unix tool design principles allowing the processing of Windows application data with sophisticated data manipulation pipelines. The outwit tools offer access to the Windows clipboard, the registry, the event log, relational databases, document properties, shell links, and the event log.

    As an example, you can change all registry entries pointing to a user's home directory by running

    winreg HKEY_CURRENT_USER |
    sed -n 's/C:\\home/D:\\home/gp' |
    winreg
    A Usenix technical conference paper describes the tools and a number of applications.

    #include "/dev/tty"

  25. Re:Dont' forget the old Digital Corporation Recipe on Cooking with the Internet? · · Score: 2, Informative
    The USENET Cookbook (recipes and food lore from the global vilage), as is the proper name of the collection, contains recipes edited by Brian K. Reid while moderating the alt.gourmand newsgroup.

    Brian states in the introduction:

    This is a community cookbook, from an invisible worldwide electronic community. Like all community cookbooks, it has the favorite recipes of the members of the community, suitably edited and organized. The USENET Cookbook is a collection of the favorite recipes of USENET readers worldwide.
    Brian took great care in moderating the group. All units of measure were handled in a way that allowed their conversion between imperial and metric units; Brian also tried to avoid tainting the collection with copyrighted material. The use of the troff macros resulted in recipes, that even today, appear very nice when typeset.

    In 1993 I converted the Cookbook into a Windows Help file. The conversion was done from the original unformated recipe troff texts, in order to properly translate all character codes, create a list of search keys, and hieararchical content tables. I downloaded the file from its web page, and it still works.

    Diomidis Spinellis - #include "/dev/tty"