Slashdot Mirror


User: adamy

adamy's activity in the archive.

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

Comments · 293

  1. Re:The phrase in question seems to be: on LGPL is Viral for Java · · Score: 1

    Well, the first requires the actual class to be present at compilation time and the second doesn't.

    In C and C++ you can distributre the header (.h) files separate from the code that implements them, and anyone can bind to them. Java doesn't have this. The only external representation of a library is doen through the library being tread by Javac.

    However, the more I read about this, I have to agree with some of the above poster's who say the linking mechanism that is part of the Java classloader meets the terms of the LGPL.

  2. The phrase in question seems to be: on LGPL is Viral for Java · · Score: 3, Insightful


    b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.

    So what you should do as a LGPL library developer is:

    1. Define interfaces for all the objects.
    2. But these into their own Jar files. Tag these as the interface.
    3. Both the Implementing Jar and the calling program refer to eah other through the interfaces only. Somewhere in the interface Jar is a Factory the various implementations can regster themselve with to provide dynamic loading.

    This is how Databse and Cryptography stuff works in Java. If it can't be done this way, it is probably not a library.

    Note that doing:

    List l = new LGPLList(); is probably Illegal but

    List l = (List) Class.forName("org.gnu.LGPLList").newINstance();

    Is probably OK. Note that I say probably. I'm not a lawyer, nor do I play one on TV.

  3. Re:new? on Bill Gates On Linux · · Score: 1

    I was trying to use Geos on my C64 long before I ever saw MS Windows.

    Graphical Windowing systems were well on the way w/o MS "Pushing" them.

    Coca Cola is the dominant soft drink in the world. doesn't mean it is good for you.

    Yes, I m drinking a coke right now, but at least I'm not using windows.

  4. Re:"Atlas Shrugged" becoming more likely. on UCITA Stalled At State Level · · Score: 1

    That would imply being able to read....

    I would venture to say that Atlas won't shrug until there is somewhere elase to go. Why do you think there has been such a populist push to get into space?

  5. TO the metal on Sun Pushes Java For Games Market · · Score: 4, Interesting

    It seems lately that most games are using a combination of C to the metal for the heavy ligfting, and Python or some other scripting language for lighter stuff. It seems to me that Java might be a good replacement for the scripting side. Take a game engine that is already portade (Unreal. Doom, Quake) and allow it to be customized using Java may make sense.

    Heavy lifting highly optimized code/ OTOH would still be in C or something else that goes to the metal.

  6. Re:mmmmm religious wars..... on The Exim SMTP Mail Server · · Score: 4, Insightful

    We call them religeous wars, but they are healthy disagreements about different approaches to problems.

    Most people that speak strongly about VI and emacs have used both. Most people that speak strongly about Exchange versus anything come from a MS background where there is only one main way to do it. If the software is free, there is nothing preventing you from trying it out. If the software costs a couple of grand, you are commited.

  7. Screw Extractor on Removing Cross-Threaded Screws from Hardware? · · Score: 5, Informative

    The one thing I've seen missing from these posts is the use of a screw extractor. Once you have a small hole drilled into the screw, replace the bit with a screw extractor. This is a wedge shaped bit the that has flanges designed to dig in to the hole as the bit is on reverse. You might have trouble finding one small enough for a motherboard. But it may save the housing , and you will have only lost the screw.

  8. Re:Wow. on Eclipse 2.1 Released · · Score: 1

    Try it with the Motif libraries and Qt instead. THats how I got it to work on Debian.

  9. Re:why an encrypted filesystem? on Multi-Platform Encrypted Disk Image Formats? · · Score: 1

    Why is there only two comments, and one is exactly what I was going to say.

    Think in layers.

  10. Re:OpenGL is used in Consoles on 3D Libraries for a Budding Game Programmer? · · Score: 1

    Thanks for answering. I remember even at the time that the info I had seemed a little suspect. This was long enough ago that I am left with only vague notions.

    And it ain't the number of PS[1|2] sold, it is the number of games sold that is so staggering. Which means they need a lot of designers, and a lot of coders.

    What is the track to get into PS development? Is there a PC based emulator that you can use for design? Or is it something reserved for good sized software houses that requires you to learn on the Job?

  11. OpenGL is used in Consoles on 3D Libraries for a Budding Game Programmer? · · Score: 3, Interesting

    I remember looking into this myself at one poiint and realizing that OpenGL, while not the lib of choice for PC gaming, was used else where. A little searching showed that , IIRC, it is the basios of PS/2 development. Can anyone prove right/wrong/insane (ok the last maybe easy). Is it used in Nintendo?

    Remember, the consoloe market alone is as Big as the Movie industry...supposedly.

  12. Recent Additions: on Top Ten Software Innovators? · · Score: 2

    Marin Fowler: Refactoring. Making code Maintainable.

    Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: AKA the Gang of Four

    Kent Beck:

    John Galt:

  13. Re:Type Safe Enum considered harmful on Scott Meyers on Programming C++ · · Score: 2

    Seems to me that if your type checking is failing due to different class loaders, you may have a bigger problems than just the enumerations.

    THe best thing about the type safe enum is that it can quite possibly grow into a full blown class. Many of my classes start off this way, gather functionality, and ended up being more than just a enumeration.

    That being said...does this pattern work in C++. I would think so but I haven't tried it.

  14. Re:population of your encompassing hashtables... on Scott Meyers on Programming C++ · · Score: 2

    Looks good. Have you done this in the past.

    Also, one thing I had wondered, do you overload toString to return the internationalized string, or do you return the key to the properties file for external use? The first controls all access in one place, but the second makes it easier to centralize internationalization one place and turn it over to the translators.

  15. Re:and do what? on Pushing Patches Across a Wide Area Windows Network? · · Score: 1

    Ugh, yeah. I was thinking straight windows networking, but that is TCP/IP based. What about that scheduler thing that always seemed to show up in my inbox?

    My old company uses some sort of startup script, but I promtly disabled it. Damn developers.

  16. Re:apt-get update virus for Windows 98 on Pushing Patches Across a Wide Area Windows Network? · · Score: 2, Insightful

    Can't you do something in autoexec.bat for just the win98 boxes. Last I checked, it still gets executed at startup, and most people reboot fairly frequently.

  17. Re:Standard APIs on Scott Meyers on Programming C++ · · Score: 2

    I was actually refereeing to what was written in the C++ Programming Language book. Don't have w/ me here at work so I can't get an exact quote, but the discussion dealt with something along the lines of:

    What should be in some library, everything. But what should be in the standard library...and he goes on to specify that it should a be a pretty small subset. I'll set if I can find it tonight at home.

  18. Re:Good articles on Scott Meyers on Programming C++ · · Score: 2

    Actuall, this is also covered in the effective Java book. He talks about overloading equals, as well as the serialization methods (I think it is writeObject, but I'd have to check). All in all a great book on getting better at some of the more esoteric portions of java

  19. Re:Good articles on Scott Meyers on Programming C++ · · Score: 2

    Actually, that is covered in the section of the book to which i referred. A Very good point.

    I noticed on your site you've developed a CM tool in Java. Did you use this pattern in your code? It makes for an interesting style when developing select boxes, doesn't it? I found we typically developed a static array with the required static elements. For Instance

    public static final MyEnum[] FIRST_AND_THIRD - {OPTION1, OPTION3};

    Also a strange thing we had to do was:

    private static final Hashtable all; //static block for init:
    {
    all = new Hashtable;
    all.put(OPTION1.getName(), OPTION1) //etc

    }
    public static MyEnum findByName(String name){
    return all.get(name);
    }

    Have you found this to be the case as well?

  20. Re:Good articles on Scott Meyers on Programming C++ · · Score: 2, Insightful

    One way that they are used is to define a short cut to a set of a constants. Put all you constants in an interface, and then any class that needs those constants can implmenbet the interface, and they car refere to the constants without using the entire class path.

    Also, many classes use them for related Symbolc constants to functions that are overly flexible. See the Calendar implementation for get/set (Yes, an ABC, not an interface, but the result is the same).

    I actually think of this as an indicator of Bad design. Use of symbolic constants, especially as a replacement for Enum, is a serious breach of OO design in most cases. Static immutable instances of classes that the enum represents are quite often a better way to go. This was a tip I got from the other Effective Book: Effective Java
    Found here at Amazon

  21. Standard APIs on Scott Meyers on Programming C++ · · Score: 2

    One reason Java has standard libraries is that Sun pushed big time for standard libraries. C++ Hasn't had anyone pushing for stuff like that. Bjarne Stroustrup says that he favors a minimal standard library, and so in C++ the standard library is minimal.

    Interfaces are the primary mechanism where Java has enforced the APIs for JDBC, EJB, Servlet etc.

    Now that Java is about to get Templates, I wonder how that will change the way they go about standard APIs, especially for collections.

    What libraries would make sense to have in C++? Network stuff, Database access, Web Programming, Graphics (OpenGL, DirectX), Windows Apps (Qt, MFC), XML, Logging, OS abstractions (Memory and Threading come to mind, Semaphore/Mutex, IPC). But the real question is, 'Does the lack of standard libraries help or hurt development in these fields?' I'd venture to say a both POV could be argued.

  22. Done similar things on Evolutionary Database Design · · Score: 3, Interesting

    In a small shop (4 people) we had a similar setup. We were doing J2EE/JBoss/Tomcat work and used PostgreSQL as the back end. We had no full time DBA or Sys Admin. We had to be flexible.

    The Good: Database changes were part of development. When our system worked right (58.3% of the time) All changes would go through QA, a small fix cycle, and we would push code and database changes during the evening (we were running a web site for people who used it during the business day only).

    The Bad: People tended to develop with live data. The main problem with this was that if something changed, It might break a unit test.This could be a real problem if Sensitive Data was involved as well.

    The Mechanism: We had a script (PERL) that executed a list of sql statements embedded. For a revision, we changed the name of the script (the first script ended in 0001, which for the next revision would be 0002 etc) and checked if that reision had been executed, and if all the previous revisions had been executed; script 0008 could only be run after script 0007 had been run etc. We had a single table that kept track of the current revision.

    The nightly backup from live was dumped into the Integration database. The current update script would be run against it, then all functional tests. Every few days we would push code live. Yes, every few days. This was an organisational issue and yes, it casue a lot of headaches.

    To improve:
    Better QA. We should have had a batch of scripts that could be run agains the DB. Instead, our QA person had to run through them manually.

    We should have had test data for the tables that were primarily used for collecting and reporting, instead of runnning against live data. I

    Instead of a self executing perl script being the required mechanism, I would have an executable on a machine that tracked the schema name, schema version number ,and currently available script. Scripts would be primarily straight SQL, run through a single program, and targeted against multiple schemas. Hmm, maybe I should explain more.

    For a give application, we had 3 databases running. One was for collection, one was for reporting, and one was reference data. Only the collection database was backup up, as the other two could be regenerated from source. However, we still needed to revision conrtol the reference databases source, and it was faster to send patches than to update the whole thing each time.

    We started moving to an Application Service Provider (ASP) setup where we uysed the same schemas, but with different data in them, for different clients. Since our clients were Local governments (County) we wanted to A) Be able to get a new county up and runniong quickly if we got them as a client, B)Be able to dump whatever existing data they had into that counties db quickly, C) Keep the counties data separate from each other, D) Maintain our versioning. So certain scripts had to be run against County X data of the collection scheme. If I had to do it agains, with what I know now,I'd have had a revision control database that kept track of the other databases (and be self maintaining, why not) With Schema name and data set name, current revision for each.

  23. Funniest Comment I came across on Linux Kernel Code Humor · · Score: 1

    I worked for the Artist formerly known as Walker Interactive Systems. Current Doing business as Elevon. Scrolling through the Gateway code I had recently inherited from a departed collegue, I came across a long stream of difficult code. I guess the half I scrolleed through wasn't as bad as what came after, because right there in the middle was: /* Job Security */

    THen it got really bad.

  24. Re:My gut reaction: Communism on European Copyrights Expire; RIAA Nervous · · Score: 1

    No that was Howard Rourke. But he built it, so he can demo it.

  25. Re:It's Microsoft, what did you think would happen on Lindows Legal Challenge · · Score: 2

    Actually, I suspected that, but hadn't seen the actual trademark. Thanks

    For those without the Man Page installed. Formatting changed to protext the lameness filter.

    bash-2.05$ man X
    Reformatting page. Please Wait... done
    Standards, Environments, and Macros X11(5)

    NAME
    X11, X - a portable, network-transparent window system

    SYNOPSIS
    The X Window System is a network transparent window system which runs on a wide range of computing and graphics machines. It should be relatively straightforward to build the X Window System software distribution on most ANSI C and POSIX compliant systems. ommercial implementations are also available for a wide range of platforms.
    The Open Group requests that the following names be used when referring to this software:
    X
    X Window System
    X Version 11
    X Window System, Version 11
    X11

    X Window System is a trademark of The Open Group.