Slashdot Mirror


User: nonya

nonya's activity in the archive.

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

Comments · 35

  1. B-liner on Best To-Do List Software? · · Score: 1

    Check out B-liner. It's a hierarchical organizer and spreadsheet. I've been using it for about ten years (it used to be called sdt) and can't live without it.

  2. Re:Try the games industry on Why Learning Assembly Language Is Still Good · · Score: 2, Interesting

    > To take full advantage of processor features like SSE or AltiVec you don't really have a choice.

    This is true. However, the intel c++ compiler does a decent job of vectorizing code. I wrote some benchmarks comparing gcc, icc (intel) and hand coded
    assembler using mmx/sse/sse2. Icc did surprisingly well, often equivalant to my hand coded assembly (gcc did less well).

  3. Squeak on The Little Coder's Predicament · · Score: 5, Informative

    Squeak is an nice environment to learn programming. It is highly portable, includes graphics, sound, and a great programming environment. See www.squeak.org for more info.

  4. Don't bother. on Secret Empire · · Score: 3, Interesting

    I recently read this book. The material it covers should make a great book. It covers Kelly Johnson and his U-2 and SR-71 planes, Polaroid's Edwin Land, spy satellites - this book could have been great.

    My favorite book covering engineering projects is "The Making Of The Atomic Bomb" by Richard's Rhodes. It gives a good understanding of the science behind the bomb, the men who built it, and the historical setting that the work occurred in.

    In contrast, "Secret Empire" gives a little taste for the technology and personalities behind these machines, but it only left me hungry. This book never lives up to the material it covers.

  5. Camera w/ API recommendation on A Reconfigurable High-Res Network Camera · · Score: 1

    This is a little off topic, but I'll ask anyway:

    For a fun project, I am building an automated microscope and need to buy a camera. I would like >1000x1000 pixels, I have to be able to control the camera from a c++ program (snap, grab, window of interest, exposure time). I would also like to do the project in Linux, but Windows is also an option. Microscope cameras tend to be very expensive (I'd like to pay $1000). Do you think this camera would be appropriate? If not, does anyone have any suggestions?

    Thanks.

    ps.
    Many people use the Nicon coolpix 950 for microscope projects, but there doesn't seem to be an sdk for it, so this is not an option for me.

  6. Re:Plug for OnLisp on Paul Graham on Fighting Spam · · Score: 1

    First, I absolutely agree with your comments about comp.lang.lisp. I lurk there - most of the posters are unbelievably arrogant. The best solution for Erik is a killfile.

    I also took a look at the code from the thread you linked to. It really does not do the same thing as a closure, which is what I assume the challenge was (I looked in my copy of OnLisp, I could not find the challenge...). However, I did send Paul C++ code to his challange of this page (http://www.paulgraham.com/accgen.html) that I believe was correct. However, my code was never posted and I never heard back from him as to why my code was deficient. (I don't really care, I was just having fun.)

    I don't know Paul, and don't have an opinion on his character, but I think your statement: "I would not trust Paul Graham or his book to educate a new programmer in lisp" is a little unfair - judge the book by its own merits, not on your opinion of the author. I learned a great deal reading OnLisp, I enjoyed reading it, and I stand by my recommendation.

  7. Plug for OnLisp on Paul Graham on Fighting Spam · · Score: 1

    While you are there check out his book "OnLisp" (available for free at http://www.paulgraham.com/onlisptext.html). It is an extreamly well written book and gives a flavor of what makes lisp special - its macros. Because lisp has such a regular syntax you can do amazing things with macros.

    My only complaint about OnLisp is it only has one chapter on the common lisp object system, which is very powerful - multimethods, method combination, and a metaobject protocall - and could have used more explanation; I don't think it talks about lisp's exception handling at all.

    But for a flavor of why people love lisp give this well written book a try!

  8. No big deal... on Affective Computing: Teaching Machines About Emotion · · Score: 2, Interesting

    Two comments:

    First, let me state the obvious: There is a big difference between a
    computer recognizing emotions and a computer having emotions. The
    first problem is not hard to solve. It requires we identify a set of
    features that can be used to recognize emotions ("phonemes of
    emotional expression" from the article), and feed these features to
    some sort of classifier. From a research standpoint, the interesting
    part is finding the features that identify emotions. Once we find
    those features "discovering" that a computer can recognize these
    features is not surprising.

    Second, there is some interesting problems in AI. Really! Knowledge
    representation, vision, and language design are particular
    interesting. But I get very, very angry at people who hype AI to way
    beyond what it can do and/or do superficial projects like kismet (Rod
    Brooks is good salesman, but he is not a scientist).

  9. Re:Lots of overhead. on Downsides to the C++ STL? · · Score: 1

    Arg! The above code lost the "less than" and "greater than" chars when coverting to html. Of course, the above code should read: template "less than char" class TIter "greater than char".

  10. Re:Lots of overhead. on Downsides to the C++ STL? · · Score: 2, Interesting

    Standard Tamplate Library. It is a standard C++ library that provides containers and generic algorithms. The power of the STL comes from abstracting the concept of a sequence - the algorithms work on linked lists, c arrays, vectors - anything that provides iterators. For example, the following function will return the sum of all the elements in a sequence (off the top of my head, did really compile this):

    template
    double sumOf(TIter start,TIter end){
    double result=0.0;
    for(TIter curElement=start;
    curElement!=end;
    ++curElement){
    result+=*curElement;
    }
    return result;
    };

  11. Re:Lots of overhead. on Downsides to the C++ STL? · · Score: 4, Informative

    Um...you don't know what you're talking about. The STL does not make use of virtual functions.

  12. Gems Series of Books on What Kind of Books do You Want? · · Score: 1

    I have always enjoyed the Gems books:
    1) Graphic Gems
    2) Game Programming Gems
    3) C++ Gems (the first one is good, the second one not so good).
    4) Design Patterns by Gamma (kinda in the same style as a gems book).

    Some ideas for other Gems books:
    1) Perl/Python/Ruby Gems
    2) User Interface Gems
    3) Emacs/VIM Gems
    4) Lisp Gems (I know, I know...)

  13. Re:Here ya' go on What Kind of Books do You Want? · · Score: 1

    I think that book was "Exceptional C++" by Herb Sutter. You're right, the book is very good. Essential C++ is by Stanley Lippman. I haven't read that one (although I would highly recogmend C++ Gems edited by Lippman).

  14. Re:It's THEIR equipment... on A Search Engine For Corporate Desktops · · Score: 1

    They also own your phone. Do you think it's OK to monitor your phone conversations? Do you think you should have any privacy at work?

  15. Things I love/hate about lisp on Using Lisp to beat your Competition. · · Score: 5
    C++ is my first language. I'm not a lisp expert, but here's my thoughts on the language:

    Things I love about lisp.
    • Macros. Because the syntax is so regular and the whole lisp system is available during macro expansion, you can extend the language in very powerful ways with macros. *THIS* is a killer feature in lisp.
    • Generic Functions. This is a generalization of virtual functions where a function can dispatch based on more than one parameter. Anyone who has used the visitor pattern in C++ knows implementing multi-dispatch in C++ comes with tradeoffs.
    • Method Combination. Before/After, Around methods.
    • Higher Order Functions
    • Metaobject Protocol
    • Efficient Compilers. Checkout CMULisp for a free advanced compiler
    Things I hate about lisp.
    • Not many good libraries. I would especially like to find a good gui library. I understand there are people working on this (Free CLiM).
    • Language seems to be dying. Not many employers are interested in lisp people.
    • Typing Issues. I prefer stronger typing than lisp has. I think C++'s type system is just right. However, I understand there is no right answer to a type system. It is a tradeoff. Lisp allows some elegant tricks. For example, a pipe in lisp is built from a cons. The second element of the cons can either be another cons (the next element of the list), or a function to call to create the next element of the list. After the function is called, it (the cdr of the cons cells) is replaced with the new element. I can do the same thing in C++, but both the new cons cell and the function have to share a base class.
    Just some random thoughts on lisp. BTW, I highly recommend Paul Graham's "OnLisp" if you're interested in seeing what the language can do. Other good books are: Norvig's "Paradigms of Artificial Intelligence Programming" and if you're interested in Lisp's object model try "The Art of the Metaobject Protocol" by Kiczales, Rivieres, and Bobrow.
  16. I'm glad they know how to use a sniffer. on Answers from Carnivore Reviewer Henry H. Perrit, Jr. · · Score: 3
    He answers Question 8:

    A number of members of the review team are quite familiar with sniffing technology. Sniffers are routinely used as network management tools.

    My reading of this is members of the team have used sniffers. What the question asked is if the team has any skills in implementing a sniffer. Does anyone know the answer?

  17. Re:Python on Python 1.6 Final Released · · Score: 1

    Peter Norvig (author of Paradigms of Artificial Intelligence Programming and Artificial Intelligence: A Modern Approach) wrote an interesting article comparing Python and Lisp.

    Here's an excerpt from his conclusion:

    "Python is an excellent language for my intended use. It is a good language for many of the applications that one would use Lisp as a rapid prototyping environment for. The three main drawbacks are (1) execution time is slow, (2) there is very little compile-time error analysis, even less than Lisp, and (3) Python isn't called "Java", which is a requirement in its own right for some of my audience. I need to determine if JPython is close enough for them."

    "Python can be seen as either a practical (better libraries) version of Scheme, or as a cleaned-up (no $@&%) version of Perl. While Perl's philosophy is TIMTOWTDI (there's more than one way to do it), Python tries to provide a minimal subset that people will tend to use in the same way. One of Python's controversial features, using indentation level rather than begin/end or {/}, was driven by this philosophy: since there are no braces, there are no style wars over where to put the braces. Interestingly, Lisp has exactly the same philosphy on this point: everyone uses emacs to indent their code. If you deleted the parens on control structure special forms, Lisp and Python programs would look quite similar."

  18. Bad Charts on Market Share Reports On Linux · · Score: 2

    Slices in 3-D pie charts, like their figure 2, distort the underlying numbers. The area of the linux slice is smaller than 4.1% of the pie. They should use a table or a 2d chart. Guess that bad toilet training is showing again...

  19. "Worse is Better" paper on What About Functional Languages? · · Score: 2

    Richard Gabriel wrote a paper (in 1991) called Lisp: Good News, Bad News, How to Win Big that tries to explain why lisp didn't take over the world. The "Worse is Better" section is particularly relevant.

    On a slightly different topic, to understand why lisp is so interesting I highly recommend On Lisp by Paul Graham. A quick summary of cool lisp features are:

    • Very powerful macros. The full power of lisp is available when a macro is expanded.
    • An object system with mulitmethods and a metaobject protocall.

    Disclaimer: I'm a C++ programmer. I've spent much more time reading about lisp than witting lisp programs.

  20. I filter katz on Review: Engines of Our Ingenuity · · Score: 1

    This story should have been "Posted by Jon Katz" so my Katz filter would work. He doesn't belong on this site.

  21. Re:C++ as a teaching language/programming obscure? on Who's Afraid Of C++? · · Score: 1
    Nonsense. C++ mostly differs from C in two ways: trivial syntax, like writing object.method(...) instead of method(&object,...);

    The difference between the two is more than syntactic. Consider the following example. You have a graphics hierarchy:
    • class Graphic{virtual void Draw()=0;};
    • class Rectangle : public Graphic{virtual void Draw(){...};};
    • class Polygon : public Graphic{virtual void Draw(){...};};
    • class Picture : public Graphic{std::list<Graphic*> Elements;virtual void Draw(){...};};
    So I have some graphic classes, and a Picture class which is a collection of graphics (Rectangles, Polygons, and other Pictures). In C++, I can write code to draw all the graphics in the Picture like this:

    for(iterator i=Elements.begin();i!=Elements.end();++i){ (*i).draw(); /* will call the correct draw based on the element's type */ };

    (2) excessive complexity (the various gotchas related to...

    constructors

    I guess I'm at a loss at this. Could you be more specific? Constructors are much less error prone than doing initialization and clean-up manually.

    function overloading

    Function overloading is very useful. Consider building a matrix library. Or when dealing with graphics it is sometimes nice to "add" points like this p1+=p2, instead of p1=add(p1,p2), or add(p1,p2,p1). Or concatenating strings...

    exceptions

    I agree. It is very difficult to design C++ code to be "exception safe". See "Exception Handling: A False Sense of Security", reprinted in C++ Gems.

    templates

    Well, I agree. Sort of. The link issues with templates are a pain. C++ does have "external templates", but I don't know of any compilers that implement it. But the language needs it. Java would be a better language with templates.

    There is very little that C++ gives you that wouldn't be done better with a good module system plus true polymorphism...

    C++ give you compatibility with C. It is difficult to put "true polymorphism" in C++ (if by this you mean something like lisp's generic functions) without better linkers than Stroustrup wanted to assume. Multimethods were considered for C++ (with a syntax like void foo(virtual t1& a,virtual t2& b,int a...) or something like that). But it was rejected (needed too complex of a linker). Besides, the *vast* majority of polymoriphic functions (in languages that support multidispatch) dispatch off a single argument. But I agree, multidispatch is useful, especially for things like the visitor pattern.

    Templates are a better example of C++ polymorphism...

    I guess I don't call what templates do "polymorphism". They are very powerful, and allow for "generic programming", like the STL. But polymorphism usually means code like the "draw" example above. I do know know how to simulate that behavior with templates.

  22. Anyone have feedback on BitKeeper? on Open Source Development with CVS · · Score: 1

    BitKeeper is a source management system that claims to be "especially tuned to the needs of the Linux team". It has some interesting features for distributed development. The "trees of repositories" looks particularly useful for open source projects.

    I'm impressed with what I read about BitKeeper, but since CVS does the job for me I've never tried it. Anyone used it?

    You can get more info here

  23. Online Manual on Open Source Symbolic Math Program? · · Score: 1

    Here is an online manual for maxima. Browsing through this should give you some idea of what maxima has to offer. In particular, take a look at its pattern matcher and differential equations. Symbolic math is maxima's strong point - I'm not sure it really has a competitor in symbolic math - but it respectable at numerical calculations as well.

  24. Maxima (Macsyma) on Open Source Symbolic Math Program? · · Score: 3

    There is a gpl'd version of macsyma available here. They call it "Maxima" but it really is a fork of macsyma. I've used both this version (on linux) and the commercial version (on windows). It is an *outstanding* tool. Go get it.

  25. C optimizations can make gc difficult too. on The New Garbage Man · · Score: 1

    First of all, thanks for pointing out that hack for implementing a doubly-linked list with the XOR of prev and next. I love interesting tricks like that.

    Garbage Collection by Jones and Lins, point out that even if a programmer stays away from code like the hack in your example, an optimizing compiler can still make life difficult for a garbage collector. They give the following example (pg. 247):

    Strength reduction, for example, can destroy all direct references to an object. Given an array of size SIZE, the code fragment:

    for(i=0;i<SIZE;i++)
    .....x[i]...;
    ...x...;

    might be transformed into:

    xend=x+SIZE;
    for(;x<xend;x++)
    .....*x...;
    x-=SIZE;
    ...x...;

    if there us pressure on registers. Inside the loop the only references to the array are through interior pointers, and on exit x points one beyond the end of the array. If this is not regarded as a valid reference, any allocation may cause the array's space to be recycled.