Slashdot Mirror


User: Latent+Heat

Latent+Heat's activity in the archive.

Stories
0
Comments
1,567
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 1,567

  1. What about Mac? on Portable.NET Now 100% Free Software · · Score: 3, Informative
    It is generally regarded that Mac is software-wise a Microsoft "client state", i.e. a platform for Office. Mac creates the appearance of independence, but sales of Macs and OS-X are no skin off Microsoft's back if they can sell copies of Office.

    Why aren't they porting .NET/Windows Forms and so on to OS-X? For starters, it would make it easier to maintain their Office software base on a common platform. Are they worried that independant developers would do the same and mess up their master plan?

    Sun has to strive for true platform independence with its Java, but since Microsoft is the Apple silent partner, what would be wrong, from Microsoft's dark, evil perspective, of running .NET on both Windows and Mac -- they run Office both places while there is no such thing as Linux-Office.

  2. Now take ActiveX . . . please! on The Law of Leaky Abstractions · · Score: 2

    ActiveX is an important abstraction in the Windows world, and boy is it a leaky abstraction if there ever was one. I desperately want to know how ActiveX works at the low level, but Microsoft either doesn't want to explain it or won't explain it. Yeah, yeah, every Microsoft Press book starts with an explanation of IUnknown -- QueryInterface, AddRef, and Release -- but once they cover the basic mechanics of vtable interfaces the explanation is that some kind of miracle occurs and they you have have ActiveX containers and objects in their full glory, and don't worry your pretty little head worrying about how to roll your own, simply using the wizards (gosh how I hate that term for automatic code generation that obfuscates). Maybe Microsoft doesn't encourage going inside their abstraction because internally they are so baroque (i.e. ornate to no known functional purpose) or just plain broke. And yes, if you want to do one tiny little thing that is outside the scope (or perhaps the documented scope) of that abstraction, one spends hours banging one's head against the wall with Google and MSDN searches and software code experiments.

  3. Limitations of GoF book on Design Patterns · · Score: 2
    You mention Iterator, and the discussion of Iterator is representative of much of the book.

    Suppose I want to implement my own Iterator rather than relying on STL. The idea that there should be a collection object and a separate "cursor" object to point into the collection object is good. I then look at their example. The collection is a linear list which which exposes a public reference to GetItemAtIndex(i). All the cursor object does is keep a private copy of int i and does a GetNextItem() by i++ and calling GetItemAtIndex(i) on the collection.

    Ok, ok, they need a simple example to show the basic concept. But if a collection has a GetItemAtIndex(int i) method, I fail to see why I need the cursor object except as a wrapper around an int i. To me, the Iterator pattern is interesting if the collection is implemented as a linked list and if GetNextItem() actually interacts with the collection on the level of traversing the list.

    So the Iterator pattern needs to give the cursor access to some of the non-public workings of the collection, so as to not break encapsulation of the collection while making the cursor efficient in its access. A Google on Java Iterator turns up the use of inner classes on the collection to do just that. I didn't find anything C++ specific, but I imagine that the cursor could be a friend class to the collection class.

    I would like to see some more concrete examples on how to implement GoF in both C++ and in Java that solves some of the technical details of how to pull these patterns off. Yes, I know about C++ friend and Java inner classes, but I would like to see the GoF show what implementations they have in mind and to comment on usage of, say C++ friend declaration, in terms of advantages and pitfalls in terms of the degree of coupling between cursor and collection and what are good design practices in terms of trading off efficiency for encapsulation.

    GoF is good at the conceptual level but weak at the concrete level.

  4. Oh, if Qt only used C++ on KDE Developer Sirtaj Singh Kang Interviewed · · Score: 2

    Qt doesn't even use C++ -- they have this MOC preprocessor dealy to handle their signals-and-slots connections (delegates in C# speak), so they have invented a new language (C+++) which they handle with a macro processor (as C++ once was implemented as a preprocessor to C).

  5. Cooperative and Preemptive Multitasking on Realtime OS Jaluna · · Score: 2
    I've done cooperative multitasking, and I have done preemptive multitasking, and maybe I am an EE who didn't study all that fancy computer science theory, but I have found cooperative is so much easier to work with, and to get any real performance out of preemptive your threads need to block (wait on signals) in order to pass control to other threads rather than wait for the preemption to come along, so you are programming in a cooperative fashion after all.

    A popular book on the Space Shuttle talked about the flight control software: Rockwell (those hard-headed EE's) wanted to use a simple round-robin schedular (pretty much what cooperative does -- you are dependant on each task not being a hog) while IBM (which did the primary -- Rockwell got the backup) went with their fancy-schmanzy preemptive system, which I believe was blamed for scrubbing a Shuttle launch early in the program. You know, Keep It Simple and Stupid, and for some applications the dumb way is simple, reliable, high performance, and cost-effective.

  6. Clarification of "try this" on LCD Round-up · · Score: 2
    If you drag the scrollbar thumb control, you will indeed get the chunky updates.

    To see the effect, you need to scroll at a slow, constant rate. You can either click on the arrow buttons on the left or the right of the scrollbar thumb, or you can select from the Play menu to scroll at the speed of waveform playback (a 2-4 second display interval of a music or speech WAV file is an optimal display interval).

    I am not trying to diss folks who spent money on LCD screens -- I have one at home and one at work. I am trying to convince people that there is something going on with the physiology of vision here, and the difference in the slow spectrogram scroll between the CRT and LCD is something that hits you over the head -- it is not something subtle like the tube amp/transistor amp audio listening example.

    The spectrogram is a very narrow, specialized application, but if they stop making CRT's any time soon (like Apple going all-LCD), I am not going to have hardware on which to show smooth-scrolling spectrograms. The spectrogram is not like a 3-D game where you have multiple things moving at different rates. I would concede that the LCD blurries for that kind of scene is something like the people who swear by tube amps and others who think the tube amp people are fanatics.

  7. Try it for yourself on LCD Round-up · · Score: 2
    I am not a CRT vendor -- I am an application developer and I can't get my app to look good on an LCD.

    Click on this link, download the program called TF32, open any WAV file, click with the left mouse to first place left cursor than right cursor, click to down arrow to zoom in, and work the scroller control to scroll the spectrogram. Try this on a CRT and then on an LCD, and then contact cspeech@chorus.net if you think I don't know what I am talking about.

  8. More to the picture than pixel response time on LCD Round-up · · Score: 5, Interesting
    Remember those old DEC monitors which had this slow-crawl text scroll which actually allowed you to read text while it was scrolling?

    I use a sound spectrogram (voice print) display that I scroll in the same way. Synched to the vertical retrace using DirectX and viewed on a glass monitor at over 80 Hz, the scroll is rock solid and blur free. Try this scroll on ANY LCD (even the 20 ms response kind) and it looks like a blurred mess.

    I got the same blurred mess when I bumped the glass monitor refresh to 120 Hz but only updated the scroll every other frame (60 Hz). I pointedly don't get a blurred mess when refreshing and updating at 60 Hz.

    What this tells me is that a glass monitor gives a stroboscobic image (it flashes the image and goes dim in between refreshes), and for certain kinds of motion (i.e. a scroll or pan of the entire field), you can do amazing things with glass and get garbage with LCD. It also tells me that LCD will never be any good for motion, no matter how fast the response time, because it is not strobing the image.

    In your typical game (or even a movie), only part of the scene is changing over a pretty much static background. On the other hand, if you want a game with a scrolling 2-D display, like a moving "treasure map", you are going to notice this difference. With the right image, the effect is quite striking -- you don't need a "Golden Ear" to hear the difference between a tube and transistor amp.

    I suppose LCD will eventually take over, and there will be us few glass monitor holdouts, but the LCD will NEVER do motion well, but the masses of people will resign themselves to LCD's being good enough.

  9. Re:LOTR: an allegory for WW-II on Felten Follower Examines Crippled Music Disks · · Score: 2
    Of course Tolkien and Himmler were speaking of the same myths because they were talking about the same thing, although they were on different sides of that thing. In Tolkein, Sauron was evil while for Himmler, Sauron was glorified.

    It is widely regarded that the hobbits represented the simple virtues of the English working classes, who were drafted into service in a conflict about an outside world for which they had little regard, but for which they perceived the danger to their liberty and took up force of arms to fight.

  10. Max Faget's straight-wing shuttle on Japanese Shuttle has Successful Test Flight · · Score: 3, Insightful
    Max Faget (pronounced Fah-zhay -- he's a Cajun from Louisiana), designer of the pioneering blunt-face reentering Mercury spacecraft, commented on his proposal for straight wings in an early iteration of the Shuttle in an interview you can find be doing a Google on his name.

    Max Faget was the early and leading proponent of a blunt "capsule" instead of a winged reentry vehicle as a cost-effective solution to the reentry problem. His unique contribution was to have the "capsule" (Tom Wolfe tells us that astronauts hated that word -- they preferred "spacecraft", although capsule distinguishes the thing from lifting-body or winged-reentry vehicle) reenter ass-backwards -- the Air Force Corona/Discoverer capsule reentered face forward.

    An axi-symmetric capsule is zero lift, meaning you have little control over where it lands once you fire the retro rockets, and the G-forces can get quite high. You can give a capule a small amount of lift by shifting its center of gravity by rearranging stuff inside, reducing the G's a little bit and giving some control over where you land by doing a roll in the direction you want to head, all without sacrificing the minimal heat shielding requirement compared to a winged reentry vehicle. Gemini, Apollo, and Soyuz use this trick.

    The Faget straight-wing Shuttle was supposed to reenter belly first. His critics complained that straight-wing hypersonic vehicles aren't the most stable: Chuck Yeager's famous recovery of the X-1B going end or end and Mike Adam's fatal reentry in the X-15. What Faget explains is that by reentering belly first (think of it as angle of attack of 90 degrees -- in a full stall if you weren't going hypersonic), his straight winged shuttle works just like a capsule -- the belly of the Shuttle and the underside of the wing are like a cookie cutter applied to the underside of a traditional capsule. He argues that it is perfectly stable and works just like proven capsules.

    The trick is that as you come out of reentry, you have to do this kind of stall recovery maneuver descending from 80,000 to 60,000 feet and start flying like a conventional glider or airplane. This stomach-dropping transition maneuver, the higher G-load of a capsule style reentry, the limited choice of a landing spot compared to a delta wing Shuttle (the Defense department did not want to make emergency landings in Communist China), all conspired to shelve the straight-wing shuttle. The consequence of going with the delta wing, however, was much higher heat shielding requirements for which the infamous tiles were the answer, and now you know THE REST OF THE STORY.

  11. Mediator Pattern: AKA Visual Basic on Complex GUI Architecture Discussion? · · Score: 2
    The Mediator Pattern is pretty much the one note on the piano keyboard that Visual Basic plays.

    You have a main form, and you have widgets, and widgets are pretty much only able to fire events that notify the main form -- the main form is the mediator. So if you want to link a bunch of widgets together, they cannot talk directly but have to signal their main form (mediator) by firing events, and the main form has to sort out which widgets need to be updated in response. So the main form acquires this blob of spaghetti code that ties all the widgets together.

    There are instances when you want widgets to be in an observer/observable relationship -- to communicate with each other and sort out their differences without telling Mom (i.e. the main form mediator). VB makes this difficult to do. Delphi/C++ Builder allow this to be done -- one widget can have a reference to another widget as a property to set up and observer relation, although not many widgets use this capability. The Anders Hejlsberg-influenced C#/Visual Studio .NET also has this capability.

    You may say, why the whole purpose of mediator is to avoid a rat's nest of multiple observer relationships among a network of widgets. Yes, and the whole purpose of giving employees a supervisor is that expecting a company to run on an ad-hoc network of relationships without the ability to get direction from a boss is the same thing. On the other hand, if the boss is the pure mediator pattern, the boss is overwhelmed by employee queries and the boss will wish that the employees could talk to each other and not involve the boss in every last decision.

  12. Eclipse? Feh! on Tuning Java Swing apps for Mac OS X · · Score: 3
    I could download and install Borland JBuilder and build and run their sample apps without breaking a sweat.

    I have given up on the Eclipse IDE -- the checklists for downloading samples are all two pages long, their menus and dialogs are all non-standard, and I have not yet figured out what options to specify to actually run any of the samples I have built.

    Is it just me or is Eclipse just impossible to figure out? I have used (for C++) everything from Code Warrior to Borland to VC++, but Eclipse has me completely stumped. I suppose I could figure it out if I devoted a couple weeks to it, but I just don't have that kind of time to evaluate something I am not sure is of any use.

    As to the SWT, isn't that the kind of thing Microsoft got sued for?

    As SWT is tightly coupled through JNI to the target system, you have to distribute a .DLL (some kind of extra software blob) with your SWT app for every possible target system. Yeah, yeah, AWT/Swing has to eventually call something native, but those customizations are part of the Java runtime you install for each target system, not some extra blob that you need to distribute.

    Also, SWT is much more complete on Windows while the Linux version is "in progress" and the OS-X version is a distant dream. Now isn't this kind of write-once, run under Windows just the thing Microsoft got sued for?

  13. Re:Try telling that to my students on Engineer in a Box? · · Score: 3, Interesting
    What happens when you need a cubic spline inside an embedded system and you can't afford to pay royalties more than 5 cents a unit?

    I am not saying you have to derive/understand/program every numerical algorithm and not use the packages, but at some point you are going to have to know, as a DSP person, some numerical algorithms and how to represent numerical algorithms in non-proprietary programming systems (such as C/C++/FORTRAN/Lisp).

    OK, another analogy. I don't expect an engineer to design an op amp -- op amps are things you go out and buy. But op amps are unlike software: black-box IC like things are this 30-year-old dream in the software field, but interoperable software IC-like components only exist within various proprietary sandboxes (Visual Basic/COM/Windows, LabView, Cocoa). It is like to use an op amp you have to purchase one vendors circuit card substrates and power supplies. Maybe that's why Miguel De Izeca is so fire up about C#/Mono -- to come up with a non-proprietary component sandbox.

    Also, op amps cost, say 50 cents a piece in small quantities, 5 cents a piece in volume. Is there a piece of commercial component software that can be reused with such generous terms? Oh, and the 741 op amp has been around for 30 years with the same specs. What piece of numerical software (apart from published source code form) has been around and conforming to its spec for that long?

    And one more thing. The op-amp people may have patents up the wazoo on op-amps, but they will sell you the op-amp to do what you please with it. They are not greedy SOB's who say, "We hold the op-amp patent -- any thing incorporating the op-amp, even if you have bought the op-amp part, falls under our patent and you pay us tons of money.

  14. Try telling that to my students on Engineer in a Box? · · Score: 2, Interesting
    The boxed software will never substitute for proper engineering, but it may lead to eventual brain death among engineers.

    The proper role for the boxed software is to substitute for the slaving minions working under the tutelage of a chief engineer. The slaving minions traditionally grind out endless gruntwork calculations, while the chief engineer does back-of-the-envelope calculations. These back-of-the-envelope calculations are not accurate enough to base a design, but they tell the chief engineer if one of the minions misplaced a decimal or is way off in some kind of way.

    I try to teach my engineering students to yes, use software to do the grunt work, but one needs methods to calculate by hand to at least 2 or 3 significant figures to check up on the software. The software can have bugs. Total reliance on software will breed a kind of innumeracy where engineers won't have a handle on what things should be.

    My other gripe is, as a DSP person, the complete reliance on Matlab or worse yet, LabView. My own preference is to code stuff up in Delphi Pascal (I learned Pascal from a data-structures course taught by Pascal-partisan Brinch Hansen), but I teach DSP algorithms and filter design in C++ (OK, don't flame me that I should use C for efficiency -- besides, object-oriented programming is an degree program accredidation bullet point). I guess Matlab is OK because it has amassed the FORTRAN numeric libraries, and LabView, we can debate, but shouldn't engineers who use computers express themselves in C++? Especially DSP engineers who will go to work for Motorola to do things like implement GSM speech coders in firmware, and I am not aware that LabView is available for a mobile phone. Actually, such engineers should be able to go all the way through assembly language down to bare metal, but C++ is such a universal standard, and they probably have C++ for DSP chips by now.

    My point is that not only are engineering students not soldering hardware, they don't want to be bothered programming anything more low-level than LabView, the Visual Basic of electrical engineering. Doesn't C++ experience look just awesome on the resume of an electrical engineer (much of what I have done in my engineering career is write computer programs of one kind or another, and C++ is the lingua-franca in this day and age)? Students seem uninterested.

  15. Believe it when I see it on HP to Heavily Support and Invest in .Net · · Score: 1

    I will believe it when I see it if Mono ever supports System.Windows.Forms. Mono may become a competitor to wxWindows and perhaps Java in developing portable desktop GUI's that conform to a Mono class library for doing the GUI, but it will be a long time coming before Mono will run a GUI cranked out by Visual Studio, unless they want to go the WINE route.

  16. Re:Or the clever Soviet-era cheap alternative... on Developing a 21st Century Public Transportation System? · · Score: 1

    You're always late for the previous train and always in time for the next!

  17. Diesel fuel economy on Gas/Electric Hybrids, Air Cars in the News · · Score: 1
    #2 Diesel have about 10 percent more BTU's gallon than gasoline, so you need to take 10 percent off your Diesel EPA ratings (38/44) to come up with equal numbers to any gas-engine car.

    Why doesn't #2 Diesel cost 10 percent more than gasoline. Well, actually it does, or it would. During the winter, gasoline is about 10 cents a gal cheaper than 87-octane nolead, but in the summer, with everyone sucking up gas in the RV's and SUV's, and refining capacity fixed by a conspiracy of refiners and environmentalists (heck, I wouldn't want a refinary next door either, and limiting capacity boosts prices and serves industry interests as well), there is a 20 cent premium for gas over Diesel.

  18. Why it still smells of bubble gum! on Gas/Electric Hybrids, Air Cars in the News · · Score: 1
    I coulda told ya GM was planning on crushing EV-1's the day you could only drive one on a lease.

    Tucker didn't crush his 50 "beta-test" cars, and now each one is this priceless collectors item. Chrysler crushed all the Chrysler Turbine cars, supposedly for tax reasons but the real reason was not providing a windfall for lucky collectors. GM has done the same thing. Don't you think those EV-1's would become incredible trophies for collectors?

  19. Indiana Jones on Firefly Premieres Tonight · · Score: 1
    The big Russian guy threatens to hunt Malcom down to the ends of the universe, and just when you think this is going to set up a premise of the show (as in the Fugitive), he gets sucked into the engine. Guess not.

    Kinda like Indiana Jones is about to fight a guy with swords, takes out his gun and shoots the guy, and then shrugs.

  20. Singleton anxiety on Applied Java Patterns · · Score: 1

    I think I have been looking for an inherit-from-a-base-class instead of using a template.

  21. Burn, baby burn on Applied Java Patterns · · Score: 1
    Patterns are the wheel that anyone who was ever tried to do anything serious with objects reinvents.

    Hey I got this main window object that has got all these child window widget objects -- they call that Composite. When I click on a widget, it notifies the main window -- they call that Observer. What I really want is to synch my edit box with the spin control, but I don't want to complicate the edit box by making it an Observer -- I will have the main window observe the spin control and forward that action to the edit box -- they call it Mediator (it is also known in the industry as Visual Basic).

    If GoF patterns are putting a name to commonly used OO techniques that you have probably already reinvented yourself, they are tres useful in explaining what you are doing to students, new programmers. If GoF patterns are "PHB says that I have to restructure my code to use patterns", I would agree with your flame -- they become a tool in search for a use.

    My biggest Pattern gripe is Singleton -- I have yet to see a clean implementation that does not require a lot of cut-and-paste to implement each Singleton. That darned thing is friggin hard to implement right -- Vlissides even admits in Pattern Hatching that he does not have a bulletproof C++ version of Singleton.

  22. Can you recommend . . . on Applied Java Patterns · · Score: 1

    Can you recommend a language/relational dB combination under Windows that allows you to do what you advocate, including using relational tables to dispatch code?

  23. Why Gang of Four is appropriate on Applied Java Patterns · · Score: 1
    Design Patterns got referenced so much, and Gamma, Helm, Johnson and Vlissides was such a mouthful that some wag probably called them the "Gang of Four" on account of having the same notoriety in the field of OO as the original Gang of Four had in post-Mao China.

    The only way I would find this offensive if it somehow demeaned any of the authors, which it doesn't, and it is a catchy title, and while Gamma et al are famous, they are also notorious (where is Tablizer when we need him?), so the name is fitting.

  24. Terminal Velocity on Skydriving · · Score: 1

    Wasn't there this lame Charlie Sheen film where he drives a car out the back of a cargo plane in flight to get away from the Russian Mafia guys, and then in free fall he has to open the trunk to rescue "the girl" and then land the both of them safely with his parachute.

  25. Lame Chrysler joke on Skydriving · · Score: 1

    Daimler Chrysler tested the integrity of the Mercedes E-Class by locking a cat inside -- it suffocated from lack of fresh air. They then tested an LHS by locking a cat inside. The cat vanished!