I didn't think you could/. a Torrent, but the tracker is refusing my connections.
Pull the ftp and http access to the actual files, and leave just the torrents and tracker -- make people HELP you distribute the data, not just plow your server into a smoking heap hot enough to melt any nearby glaciers.
Seriously though, there is no generalized answer. Good compilers will do what you want. Bad compilers (and there are more than you realize out there) will make lousy code.
If your target involves an environment where you might be using a more primitive compiler, or you can't predict the environment and compiler, it might be an issue. This is why code like the PNG and JPEG libs go for tight/cryptic. As well, the performance of the runtime platform (CPU, memory, bus) have bearing. In some cases, though one piece of assembly might look less efficient than the other, the sheer brute force of CPU parallelism, out of order execution and other black juju might render it meaningless.
Finally, you have to consider the cost/benefit of the situtation. Making cryptic fast code is worthwhile if you're writing some wicked FFT code or image processor main loop, where it'll run a few quadrillion times. Other places in the same codebase though, it's probably worthwhile to trade absolute performance for a bit better code readability and maintainability.
Remember, profile before optimizing. Only optimize things that will really make a significant performance difference. Rewriting the UI display loop to use pointers instead of lists is probably pointless. Heh. Pointless.
I'm a big fan of C++ STL containers now. If I _know_ a block of code is going to be a critical bottleneck, I'll use something else from the start. I've known people who coded UIs in assembly, for no good reason, and others who wrote image processing code in interpreted RAD scripting environments. I've written and optimized code (C++/C and assembly) on systems all the way back to the 6502 (yay! two 8-bit index registers!) and it's not hard, as long as you proceed sensibly and logically.
That being said, the Microsoft VC++6 compiler (still in common use today) has a terrible code generator. It fails to perform simple loop invariant hoisting operations that my old SAS/C++ compiler (Amiga, yah, I'm one of _them_...) did in 1990. VC++7/2003 and Whidbey/2005 are showing signs of being MUCH more caught-up, and the Intel and Codeplay compilers (despite Intel's AMD-phobia) are much better too.
When performance really counts, a whole new set of tools and processes come into play.
The Max/Viz line of products is built entirely upon a COM infrastructure. At one time they tried porting it to DEC Alpha (stil under WinNT for Alpha) and were basically unsuccessful, cancelling the port just as it went into beta.
I doubt you'll ever see Max or Viz for anything other than Windows, barring maybe HEAVY use of Wine/Winelib.
I can clarify. Replacing the supplied GPL-covered parts of the 721 (and I assume 921) Linux OS with versions you have compiled from the Dish-network-released source, will fail.
The OS has been modified to prevent this. Those modifications have not been released. I had a page to cite about all of this, but it seems to have disappeared from the internet. There was a page about digging into the 721's guts, probably on DBSForums.com long ago.
It's not an idle threat. It is enforced by software. Replacing GPL code with GPL code will break the system, because the GPL'ed code you are replacing is not 100% the same as what is generated by their 'released' source. This, I believe is where the violation comes in.
Get over yourself. Why do I want to run Firefox on my PVR? Because this is Slashdot. Because we all want a home media convergence device. Because that's the promise of a media platform. The 721 is the perfect platform for this, if it wasn't under lock and key.
I don't think I _deserve_ anything that I don't actually deserve. I'm not asking for ANY trade secret crap. I think the rules, as they are stated (the GPL) require you to make all of your Linux changes public. If you don't like the rules, don't use Linux, and I'll be less interested in your non-Linux-using device. But if it runs Linux, I believe there are certain ground rules you gotta obey. I think Dish has broken one of them. I don't care if they keep their DVR application and their secret decryption code closed. It was never under the GPL, they can do what they like. But you can't close up an OS that was open and free under the GPL.
Yes, Dish loses money (LOSE, one O, got it?) from piracy. But you know what? It's not any easier to crack a Linux DVR than it is to crack any other nagra1 or nagra2 device. They don't crack the OS, doofus. They have to crack the encryption on the video stream. The OS has nothing to do with it, and running hacking tools on the Linux OS isn't going to get you squat for an advantage. The 721 is powered by a National Semiconductor Geode GX1 CPU, which is a Pentium-class at about 180Mhz. If you think this is a great encryption cracking platform you're smoking crack.
Why do I want to run a web browser on it? Well, for one, Dish Network originally announced we'd be able to do JUST THAT. It never was delivered. Being able to run our own Linux apps would help make up for promises never made good.
Why do I think open Linux would be good for the 721 and not bad? I dunno, why don't you look over at Tivo land, where their Linux OS _is_ open and moddable, and they have piles of happy users buying Tivos and doing cool stuff with it. I don't see Tivo freaking out about it, even with DirecTivo, the DBS/satellite analog to the 721.
I'm not asking for Dish to bend over backwards to give me free stuff. Quite the contrary -- do you know how much effort they had to put into making a Linux that _wouldn't_ run normal Linux apps? Making it run like a normal Linux would have been LESS work, not more.
In short, don't vent your uninformed drivel without knowing the situation you're dealing with. I'm not some "everything should be free because I don't want to pay for it" zealot. I paid a large amount of cash for the 721. I'm a consumer who wants to get capabilities they thought they paid for -- a web browser -- and an OS they thought they already had -- an open Linux. If Dish doesn't like GPL terms, they shouldn't play GPL. But, you can't shake the devil's hand and say you're only kidding.
The KHTML thing is totally different. Apple is adhering to the letter of the GPL, even if the KHTML guys don't like how they do it. I don't believe Dish is, period.
I own a DISH 721, which is closely related, and also runs a Linux OS.
I've always wondered how they are able to make this work, legally. Seems to me that you can't compile a working Linux installation out of what they have provided. They have made modifications to the Linux kernel itself. They have presumably made changes to call unreleased code from within Linux. Ity seems to me that that unreleased code is bound to the GPL. The LGPL allows non-LGPL code to be called form LGPL code, but the full GPL doesn't. So, if the DISH Linux is doing anything other than calling user-space programs, I think they're in violation.
And, my understanding is that they are doing far more than calling user-space code. They have modified the program loader to refuse to load any programs that aren't code-signed. To accomplish this would require modifying the actual kernel, AFAIK, and those changes appear to have never been released (completely, at least). They can't withold the key. Maybe the key is loaded at runtime from the hardware flash, but I kind of doubt it.
Why do I have a problem with this? Because my 721 ought to be able to run Firefox and Thunderbird, damnit, and it can't because of some paranoia. And play MP3s. And have a decent screensaver. Yes, I understand the need for video datastream security, but that's all already taken care of in hardware. Why do you need to lock up the whole OS?
I'm a former Amigan, and we had a file manager tool called Directory Opus that was the king of all file managers. It goes for usability, especially for power users.
Now they have a Windows version, and I bought it as soon as I heard about it:
I have yet to find anything that can touch it. Seriously. If you have to use windows, go download the demo, but I warn you, once you see what it can do, and how powerful and customizable it is, you won't want to give it up. Plus, they're a bunch of really good, hardworking chaps, who listen to what their users want. I don't get any benefit from plugging their software, but I want everyone to know about it. Death to Explorer!
We (small software developers) all _have_ to do support. But we don't want to make support our Way of Life. We want to make great software (and docs too) so that we can concentrate on a living of making the software better, not a living of hand-hoding nitnoids who can't figure out our obscure tool.
I seem to recall RMS once suggested programmers should make a living as waiters or something to support their non-profitable programming lifestyle. Where is he waiting tables these days? I could use a good meal.
While I admit that at all of _my_ software companies I do both development _and_ support, this is not a desirable model. Developers HATE support, and it's not a good thing (usually) having developers do support. Developers should develop. So, it comes back to this. You need someone to pay for support in order to pay your support staff in order to subsidize your development staff. Ergo, you have to make sure your development staff doesn't make software that's _too_ easy to use, or no one will ever need your support and you'll starve.
People writing software should be paid to write software. This is somewhat counter to what F/OSS advocates, but I think it's grounded in the reality of the software world.
This is why I feel Open Source software is its own Achilles Heel. If you give away the software and documentation, and rely on selling the support (installation and technical) then you have set up a hidden incentive to make difficult software. If you live by the support, then you have no incentive to make software that is intuitive and easy to install and operate. In fact, you have a DISincentive. You're cutting your own throat to do so. So, this invariably leads to software that is difficult to install and use.
When I write commercial software, I sell the software and include free support (mostly -- advanced telephone support is non-free for some of my products, but basic e-mail support is always free). So, support is a COST to me, not a profit center. Therefore, it's my goal and incentive to make my software as easy to install and use as possible.
Somebody prove me wrong here, but I don't think it's a real stretch of logic or anything.
Only projects that are created and maintained by people who DON'T make a living from support -- projects that are funded by some other generosity/subsidy, or driven by pure altruism -- can be completely free of this yoke. Mozilla seems to be a good example. Somewhere between subsidy (originally Netscape/AOL) and altruism, they seem to have done a great job.
I'm sure there are plenty of others too, but they don't prove the "survive on support" business model any more than they disprove it.
I'm sure I'll be flamed to a crisp by zealots who find some specific project that doesn't fit my theory. Theories are not grounded on individual cases, they're built on a trend. Show me my logic is counter to the general trend, and I'll be a convert.
Compiler support is critical. Forget GCC. It's not a high-performance compiler. Look into the CodePlay C++ compiler under Windows, or the Portland Compiler Group products under Windows and Linux.
OpenSceneGraph (http://www.openscenegraph.org) had a pretty good showing at SIGGraph. I attended the BOF (Birds of a Feather) meeting, and presented what my company has done with it.
OSG as it is known is a modified LGPL -- modified to allow code to be included in commercial projects via C++ inline functions, which technically would violate the pure-LGPL stipulation of dynamic-linking only.
OSG is an excellent example of the marriage of commercial/proprietary software and Open Source. Tons of people use OSG to build Open Source and commercial apps. No one minds if my company, or anyone else builds commercial, closed-source apps with OSG, because it's the meat of OSG that is valuable to the community. There may be useful parts in other people's applications, but it's the improvements of the core code that drives the project. If enough closed-source people need the same capability, befor elong, it will ge developed and put into the code OSG project for all to benefit from.
It's a profitable deal for everyone involved, and I think it's a great example of how Open Source and proprietary projects aren't necessarily at odds with each other, and can mutually benefit from their relationship.
I can back this up. McMurdo uses a satellite earthstation located at an uninhabited island several miles south of "town" itself, which is on the southern coast of Ross Island:
The connection is a T1 that goes from town to Black Island via point-to-point microwave. Part of the T1 is used to carry voice telecom, fax lines, and MPEG-encoded television from the US.
Black Island was chosen because it can see (looking north) over the large bulk of Mt Erebus to make LOS with a geosync bird at the equator. See photo on the page, above. That's the dish in the dome, and you can see how high up the horizon Mt Erebus protrudes. McMurdo is at 77.88 degrees south, so a equatorial sat is still above the horizon.
Pole, at a full 90 degrees south cannot see a real equatorial geosync bird. But, birds that are decaying in orbit become highly variable in the N/S direction, so they appear to wobble up and down on the horizon. When it's up, it's usable. There are no mountains or ground clutter at Pole, so it only has to be up a little bit. Geosync birds do not move in the E/W direction, so the dish only has to track up and down. A previous poster who described the dish spinning around to track the horizon is sniffing skua dung.
I participated in a project to try to establish other lines of communication out of McMurdo via the NASA TDRS sats. I think I'm the sitting guy in this photo.
Black Island is 'uninhabited', but people stay there for various periods of time to keep an eye on troublesome equipment. They brew a lot of beer there, during the down times.
I was present during the season of the construction of the current dome and dish on Black Island (though I was not at BI itself at the time). During a critical period of construction, part of the dome was finished, but it still had gaps in it. A massive storm (Herbie) came up, and shredded the whole dome with 120+Mph winds, spreading debris for miles. A new dome had to be flown in at the last minute, and landed in a heavy cargo plane on the rapidly-melting ice runway. But the new system has worked very well for the last 10 years, and McMurdo has excellent connectivity.
In my experience...
on
Open Maps?
·
· Score: 2, Informative
Your best (free) bet is probably TIGER data in either its original form or in shapefile form, updated and corrected locally.
TIGER is made from USGS DLG or DRG files, combined with some updating done by the US Census Bureau. Since the census is only done periodically, the TIGER data gets out of date.
Some organizations take TIGER data and update it and resell it in various forms. One of these is NAVTEQ, who has people out on the road constantly driving around and updating their maps. As a result, this information tends to be rather expensive, but pretty high quality. Other companies in the same business are DeLorme and UnderTow (formerly Chicago Mapping, I believe). I think UnderTow's Precision Mapping product has pretty decent licensing terms, last I looked at it (several years ago). Much better than DeLorme.
If you want to get your own imagery and work from that, there are several good free sources:
University of Maryland's GLCF site serves up 30m color imagery and 15m monochrome imagery for most of the world. To make the color imagery useful, you'll want to take a look at Scott Cherba's Tutorial using Photoshop or Terrainmap's tutorial using PaintShop Pro. One of the software companies I've founded makes an inexpensive utility called PixelSense (Windows, $49) to do this process automatically.
The United States Department of Agriculture Lighthouse Server serves up a variety of data including free 1m monochrome mosaics of virtually every county in the US. These are large files, and come in MrSID format, for which you'll need to download a Viewer (time-limited trial version) that can save out the portions you want. The nice thing about this is that they are mosaiced and brightness-balanced, whereas if you just go buy/download a bunch of DOQQs elsewhere, they may not match well at the edges of each file.
Finally, in urban areas, you may be able to take advantage of the USGS Urban Areas High-Resolution Orthoimagery available for some cities from the USGS Seamless Server. This data is fantastic, 1ft resolution color airphotos. You can see cars and individual people. It's very recent, having been aquired after 2001 for national disaster planning and response purposes.
Good luck. I'd be happy to answer questions you might have privately, as a lot of my customers do cartography.
Re:Maps are not copyrighted
on
Open Maps?
·
· Score: 1
I think I'd get a second opinion on that. I know mapmakers often put intentional errors in maps in unimportant areas to detect if someone else is copying their map versus working from the real (correct) data.
US government data is _usually_ released under a license that is effectively public domain, so it's a good source to start from or copy from.
I actually agree with almost 100% of what the article proposes, and the above poster clarifies. I've been sketching ideas about this for about 5 years, a project I nicknamed 'Babel'.
Let me address some common misconceptions I see here:
Lisp/Scheme/yourfavoriteprojectorlanguage already does this. Yes, but this is a proposal to take a number of features that have been done in various places and make a better whole of them. Also, my interpretation is that the proposal doesn't necessarily involve substantial runtime support beyond what current languages like C++ require, making it quite a bit different from LISP.
Also, I don't want to read/write Lisp. I don't want to read/write XML. I want to read/write something that looks like languages I'm already comfortable with, like C++. This proposal would store the data as XML (not that XML is the crux of the matter, it's just a convenient form -- you could do the same thing and store it in binary form, or more ASCII-like) and on-the-fly translate it into a form the programmer wants. Something like the CSS mentioned by the above poster could be used to control or assist this. No more bracket/indent style holy wars. Each person's editor/browser can display it in the form they prefer, and yet all the merges and diffs work out fine because the actual code format is agnostic to all this window-dressing.
Because the 'meat' is stored in a structured format, with standardized tools and procedures for parsing it, making batch tools to work with it will be much easier. How about writing a tool to find all variable names and de-Hungarian them? Try that with flat text. Or, even tougher, HUNGARIAN them! (Not that you'd want to, but...) How about locating all references in the project to any floating-point variables named something like Fred? All methods that take a Barney object as an argument? Any method that has the word Purple in it that calls a method in the Dino library and uses a Yabba object. I bet you could find laborious or exotic ways to do this now, but if code starts being stored in a structured way, and you have the opportunity to hook into the language data inside the lexer/parser, you can do quite a bit.
Smart editors like this could, as pointed out elsewhere, do syntactic and semantic checking on the fly. Move a block of code around and immediately see that you missed moving the scope of a variable, or that in this scope, WhiffyObject doesn't have a Fubar method. Sort these things out at edit time, not parse/compile time.
Even better, a really smart development system could be doing the lexing/compiling behind your back, as you edit, because it's doing a lot of that work anyway to do syntax highlighting and checking.
Yes, there are downsides to all of these things, but the upsides are very attractive. Allow me to cite from my own notes about this sort of thing:
Babel
Current ASCII flat-text parsed languages are an outgrowth of a time when editing was cheap but compiling was expensive. They rely on intelligence and resources of programmer in favour of intelligence and resources of computer.
Intelligence and resources of computers are increasing, of programmers are not. Effective balance begun to swing -- computers can relieve tedious tasks from programmers allowing programmers extra resources/intelligence to execute more sophisticated and complex designs, or better quality of existing designs.
Languages are fundamentally very similar at heart, each with own bells & whistles, and each with own peculiar syntax. Many are very similar to some degree -- withness moderate success of fortran-to-c, pascal-to-c converters. GNU compiler suite uses different front-ends on a common middle and back end to implement ADA, Fortran, C/C++, etc. In the beginning (and many would argue, today) C compilers were just C-to-asm translators. Many original C++ compilers were (few still are) C++-to-C compilers. Java source code can be compiled into JVM code or native code (Metrowerks, etc). C/C++ can be compiled in
I won't be able to give you much advice for doing this on Linux, or with Open Source software, since I'm actually not aware of anything that meets both those criteria. I know you didn't stipulate those criteria, but this is Slashdot.
The first issue you face is converting bitmapped contour data into a heightfield. This is not the same as converting greyscale to heightfields, which is a trivial matter. Most of the links proposed already cover using a greyscale image.
A helpful site for you will be http://terrainmap.com/. He has an application (Windows, $free) called Blackart that tries to extract meaning from scanned topo map contours and build a DEM/heightfield out of it. A commercial app (Windows, $1500) that does the same thing is R2V. I've not used either so I can't comment on what you get for your $1500.
Once you have a DEM, you can probably find a way to convert it into a file format that Blender can use as a 3D object and apply texturing to.
The next step is, what kind of texturing? If you just want to be able to slap some pretty-looking colors or natural-looking dirt/rock/grass/snow effects onto it, you can probably do that in Blender. If Blender can't do everything you want, you might try Terragen (Windows/Mac, $free), which is a little more landscape-oriented. I would not recommend VistaPro at this point, it's pretty outdated. TG is at least still being developed, although it's going commercial.
If you need to be able to place real-world image information onto the terrain (airphoto or satellite images, GIS databases, other scanned maps, etc) then Blender is really becoming a poor choice for your needs. (What were your criteria for choosing Blender anyway? It's not known for its landscape capabilities.) The trouble becomes that data like these are usually stored in a different Coordinate System (read the whole VTP site while you're there, Ben's got GREAT info). This means that lining up the position, size and rotation of the two pieces of data is difficult if your software doesn't know how to do it for you. Even most low-end landscape software (Terragen, VistaPro, more free here) can't do this. This is the realm of typically fairly expensive commercial 3D landscape software with a GIS tie-in, such as ESRI's 3D Analyst (Windows, $3500) read info on commercial page above) and my company's Visual Nature Studio (Windows/Mac, $2500).
I won't pretend that my company's product meets your needs, but I have to mention it. I suspect that you'll be able to meet your requirements using some of the tools I outlined first. If however, you find yourself doing this sort of stuff a lot, that's where the polish, integration, support and other frills of commercial software like mine may start to become valuable to you.
Hope you find what you're looking for. If you (or anybody else) have more questions about this, I'd be happy to answer them privately or publicly. As you can see from the above, despite selling my software, I try to be objective and don't always tell you my product is what you need.;)
In my ten years in the computer graphics business, I can't tell you how many specialized hardware rendering platforms I've seen come, and go. Renderdrive has hung on longer than others, but I still feel that nothing beats the bang/buck of a stable of nice commodity hardware.
A lot depends on what application you plan on running. Each app has their own approach to distributed processing, and their support (or lack thereof) for any given hardware is critical.
I would lean towards AMD 64-bit CPUs at this time. Some renderers are optimized for P4, but the AMD chips seem to run P4 code quite well, and they run all other X86 code wonderfully.
You can rack up a bunch of commodity boxes for a great price, and render to your heart's content on them. In some cases, depending on support from your rendering software vendor, you might even be able to run Linux on them.
I will put in a plug here for an open-source program I created, SuperConductor (http://super-conductor.org/ that is a multi-application portable render farm controller. It's written in Qt 3, and runs on Linux and Windows right now (no Mac Qt dev kit to try it on). It currently supports my rendering software (World Construction Set/Visual Nature Studio) but is designed to be extensible to other renderers. We could use someone to add support for Maya, POV-Ray, or other apps. The freshest source (a complete rewrite) is in SourceForge CVS right now!
I have a poor-quality picture of the vehicle itself under thrust (after seperation) that I grabbed from NASA TV. I haven't seen it posted anywhere, but my server can't handle a slashdotting. Anymody who might be able to host it for me, drop me a note.
account name is xenon and the domain is arcticus.com
I've followed this story carefully for some time, and the cynical interpretation among Slashdotters is actually not the case. While the article talks about Microsoft, the evidence submitted to the USPTO was submitted by the W3C, who wants to see this overturned just as much as Microsoft. I doubt Eolas has a soft side for free software, they just realize that they needed to bag a big prize early on to fund bringing everyone else into line.
The 906 patent was a farce, and was contradicted by numerous pieces of prior art. It's a Good Thing for everyone (except perhaps, Eolas) that this turd is thrown out.
If MS could have bought their way out of this problem, they'd have done it a long time ago. They've lost decision after decision up to this point, and were basically SOL. This was essentially the last thing that could have saved their bacon. It is very convenient for the W3C and the web as a whole that the legal might of Microsoft happened to be aligned with their purposes.
Microsoft isn't lilly white themselves -- they already have a number of dubious web-related patents of their own. But I'm still glad to see them win in this case.
RMS says that coders should give code away. You work as a waiter, or do something else for a living. I don't want to be a waiter. I want to write code. So, "something else" has become service and support.
Here's the rub -- when you make your pennies on service and support, you have no economic motivation to make it easy and self explanitory! You make MONEY when it's hard to use.
This I think is the downfall of the current OSS business models, and I haven't found a way out of it. OSS projects are destined to remain difficult as long as there is no economic motivation (and we've already established that there's no artistic/ego motivation) to make it beautiful and easy.
I'm not saying that Windows is right or that Mac drool-proof design is right, or that OSS is fundamentally wrong. But I'd like people to understand the motivations that their choices steer them to. I feel bad when I get harangued by OSS types for making non-OSS products. Just understand that not everything is as cut and dried, and that most OSS business models have yet to be proven successful.
Let the GNU/GPL/RMS/OSS/ESR flaming begin. I'm ready for it. I've thought this out for a long time, and I make a living writing software. And no, my software is not a paradigm of simplicity, but I'm not having delusions of taking the desktop away from Bill G by conquest.
I've done the brain swap successfully before (about 10 years ago). I have heard anecdotally since then that this may not work with more modern drives that may store calibration data in non-volatile storage on the electronics board. I can't confirm if this is true.
I've never tried freezing one. I think I'd try a brain swap first, as it's unlikely to cause physical harm. I can't say the same for the freeze operation for sure. If you do freeze it, put a bunch of dessicant (silica gels) in with the drive for a few days beforehand. You don't want moisture in with the drive freezing, expanding and damaging something.
I bought an adapter to hook my Olympus 3020 digicam up to my scopes (one is a Meade ETX-90, one an old custom-built 6" Equatorial reflector). The Scopetronix parts are well made and high quality, and I'm very happy with them. I will continue buying from them.
Ok, I'm in the same situation. I have a great plan and phone here, and I'm going to be traveling in Europe for a couple weeks later this year. Business requires me to keep in touch. What's a good plan and carrier?
I didn't think you could /. a Torrent, but the tracker is refusing my connections.
Pull the ftp and http access to the actual files, and leave just the torrents and tracker -- make people HELP you distribute the data, not just plow your server into a smoking heap hot enough to melt any nearby glaciers.
http://geotorrent.org/ would probably be a good cohort too.
And what of STL container classes under C++?
Seriously though, there is no generalized answer. Good compilers will do what you want. Bad compilers (and there are more than you realize out there) will make lousy code.
If your target involves an environment where you might be using a more primitive compiler, or you can't predict the environment and compiler, it might be an issue. This is why code like the PNG and JPEG libs go for tight/cryptic. As well, the performance of the runtime platform (CPU, memory, bus) have bearing. In some cases, though one piece of assembly might look less efficient than the other, the sheer brute force of CPU parallelism, out of order execution and other black juju might render it meaningless.
Finally, you have to consider the cost/benefit of the situtation. Making cryptic fast code is worthwhile if you're writing some wicked FFT code or image processor main loop, where it'll run a few quadrillion times. Other places in the same codebase though, it's probably worthwhile to trade absolute performance for a bit better code readability and maintainability.
Remember, profile before optimizing. Only optimize things that will really make a significant performance difference. Rewriting the UI display loop to use pointers instead of lists is probably pointless. Heh. Pointless.
I'm a big fan of C++ STL containers now. If I _know_ a block of code is going to be a critical bottleneck, I'll use something else from the start. I've known people who coded UIs in assembly, for no good reason, and others who wrote image processing code in interpreted RAD scripting environments. I've written and optimized code (C++/C and assembly) on systems all the way back to the 6502 (yay! two 8-bit index registers!) and it's not hard, as long as you proceed sensibly and logically.
That being said, the Microsoft VC++6 compiler (still in common use today) has a terrible code generator. It fails to perform simple loop invariant hoisting operations that my old SAS/C++ compiler (Amiga, yah, I'm one of _them_...) did in 1990. VC++7/2003 and Whidbey/2005 are showing signs of being MUCH more caught-up, and the Intel and Codeplay compilers (despite Intel's AMD-phobia) are much better too.
When performance really counts, a whole new set of tools and processes come into play.
The Max/Viz line of products is built entirely upon a COM infrastructure. At one time they tried porting it to DEC Alpha (stil under WinNT for Alpha) and were basically unsuccessful, cancelling the port just as it went into beta.
I doubt you'll ever see Max or Viz for anything other than Windows, barring maybe HEAVY use of Wine/Winelib.
I can clarify. Replacing the supplied GPL-covered parts of the 721 (and I assume 921) Linux OS with versions you have compiled from the Dish-network-released source, will fail.
The OS has been modified to prevent this. Those modifications have not been released. I had a page to cite about all of this, but it seems to have disappeared from the internet. There was a page about digging into the 721's guts, probably on DBSForums.com long ago.
It's not an idle threat. It is enforced by software. Replacing GPL code with GPL code will break the system, because the GPL'ed code you are replacing is not 100% the same as what is generated by their 'released' source. This, I believe is where the violation comes in.
Get over yourself. Why do I want to run Firefox on my PVR? Because this is Slashdot. Because we all want a home media convergence device. Because that's the promise of a media platform. The 721 is the perfect platform for this, if it wasn't under lock and key.
I don't think I _deserve_ anything that I don't actually deserve. I'm not asking for ANY trade secret crap. I think the rules, as they are stated (the GPL) require you to make all of your Linux changes public. If you don't like the rules, don't use Linux, and I'll be less interested in your non-Linux-using device. But if it runs Linux, I believe there are certain ground rules you gotta obey. I think Dish has broken one of them. I don't care if they keep their DVR application and their secret decryption code closed. It was never under the GPL, they can do what they like. But you can't close up an OS that was open and free under the GPL.
Yes, Dish loses money (LOSE, one O, got it?) from piracy. But you know what? It's not any easier to crack a Linux DVR than it is to crack any other nagra1 or nagra2 device. They don't crack the OS, doofus. They have to crack the encryption on the video stream. The OS has nothing to do with it, and running hacking tools on the Linux OS isn't going to get you squat for an advantage. The 721 is powered by a National Semiconductor Geode GX1 CPU, which is a Pentium-class at about 180Mhz. If you think this is a great encryption cracking platform you're smoking crack.
Why do I want to run a web browser on it? Well, for one, Dish Network originally announced we'd be able to do JUST THAT. It never was delivered. Being able to run our own Linux apps would help make up for promises never made good.
Why do I think open Linux would be good for the 721 and not bad? I dunno, why don't you look over at Tivo land, where their Linux OS _is_ open and moddable, and they have piles of happy users buying Tivos and doing cool stuff with it. I don't see Tivo freaking out about it, even with DirecTivo, the DBS/satellite analog to the 721.
I'm not asking for Dish to bend over backwards to give me free stuff. Quite the contrary -- do you know how much effort they had to put into making a Linux that _wouldn't_ run normal Linux apps? Making it run like a normal Linux would have been LESS work, not more.
In short, don't vent your uninformed drivel without knowing the situation you're dealing with. I'm not some "everything should be free because I don't want to pay for it" zealot. I paid a large amount of cash for the 721. I'm a consumer who wants to get capabilities they thought they paid for -- a web browser -- and an OS they thought they already had -- an open Linux. If Dish doesn't like GPL terms, they shouldn't play GPL. But, you can't shake the devil's hand and say you're only kidding.
The KHTML thing is totally different. Apple is adhering to the letter of the GPL, even if the KHTML guys don't like how they do it. I don't believe Dish is, period.
I own a DISH 721, which is closely related, and also runs a Linux OS.
I've always wondered how they are able to make this work, legally. Seems to me that you can't compile a working Linux installation out of what they have provided. They have made modifications to the Linux kernel itself. They have presumably made changes to call unreleased code from within Linux. Ity seems to me that that unreleased code is bound to the GPL. The LGPL allows non-LGPL code to be called form LGPL code, but the full GPL doesn't. So, if the DISH Linux is doing anything other than calling user-space programs, I think they're in violation.
And, my understanding is that they are doing far more than calling user-space code. They have modified the program loader to refuse to load any programs that aren't code-signed. To accomplish this would require modifying the actual kernel, AFAIK, and those changes appear to have never been released (completely, at least). They can't withold the key. Maybe the key is loaded at runtime from the hardware flash, but I kind of doubt it.
Why do I have a problem with this? Because my 721 ought to be able to run Firefox and Thunderbird, damnit, and it can't because of some paranoia. And play MP3s. And have a decent screensaver. Yes, I understand the need for video datastream security, but that's all already taken care of in hardware. Why do you need to lock up the whole OS?
I'm a former Amigan, and we had a file manager tool called Directory Opus that was the king of all file managers. It goes for usability, especially for power users.
Now they have a Windows version, and I bought it as soon as I heard about it:
http://gpsoft.com.au/
I have yet to find anything that can touch it. Seriously. If you have to use windows, go download the demo, but I warn you, once you see what it can do, and how powerful and customizable it is, you won't want to give it up. Plus, they're a bunch of really good, hardworking chaps, who listen to what their users want. I don't get any benefit from plugging their software, but I want everyone to know about it. Death to Explorer!
You don't get it.
We (small software developers) all _have_ to do support. But we don't want to make support our Way of Life. We want to make great software (and docs too) so that we can concentrate on a living of making the software better, not a living of hand-hoding nitnoids who can't figure out our obscure tool.
I seem to recall RMS once suggested programmers should make a living as waiters or something to support their non-profitable programming lifestyle. Where is he waiting tables these days? I could use a good meal.
Amen, brother.
This is the crux of the matter.
Sir, I protest.
While I admit that at all of _my_ software companies I do both development _and_ support, this is not a desirable model. Developers HATE support, and it's not a good thing (usually) having developers do support. Developers should develop. So, it comes back to this. You need someone to pay for support in order to pay your support staff in order to subsidize your development staff. Ergo, you have to make sure your development staff doesn't make software that's _too_ easy to use, or no one will ever need your support and you'll starve.
People writing software should be paid to write software. This is somewhat counter to what F/OSS advocates, but I think it's grounded in the reality of the software world.
This is why I feel Open Source software is its own Achilles Heel. If you give away the software and documentation, and rely on selling the support (installation and technical) then you have set up a hidden incentive to make difficult software. If you live by the support, then you have no incentive to make software that is intuitive and easy to install and operate. In fact, you have a DISincentive. You're cutting your own throat to do so. So, this invariably leads to software that is difficult to install and use.
When I write commercial software, I sell the software and include free support (mostly -- advanced telephone support is non-free for some of my products, but basic e-mail support is always free). So, support is a COST to me, not a profit center. Therefore, it's my goal and incentive to make my software as easy to install and use as possible.
Somebody prove me wrong here, but I don't think it's a real stretch of logic or anything.
Only projects that are created and maintained by people who DON'T make a living from support -- projects that are funded by some other generosity/subsidy, or driven by pure altruism -- can be completely free of this yoke. Mozilla seems to be a good example. Somewhere between subsidy (originally Netscape/AOL) and altruism, they seem to have done a great job.
I'm sure there are plenty of others too, but they don't prove the "survive on support" business model any more than they disprove it.
I'm sure I'll be flamed to a crisp by zealots who find some specific project that doesn't fit my theory. Theories are not grounded on individual cases, they're built on a trend. Show me my logic is counter to the general trend, and I'll be a convert.
Compiler support is critical. Forget GCC. It's not a high-performance compiler. Look into the CodePlay C++ compiler under Windows, or the Portland Compiler Group products under Windows and Linux.
OpenSceneGraph (http://www.openscenegraph.org) had a pretty good showing at SIGGraph. I attended the BOF (Birds of a Feather) meeting, and presented what my company has done with it.
OSG as it is known is a modified LGPL -- modified to allow code to be included in commercial projects via C++ inline functions, which technically would violate the pure-LGPL stipulation of dynamic-linking only.
OSG is an excellent example of the marriage of commercial/proprietary software and Open Source. Tons of people use OSG to build Open Source and commercial apps. No one minds if my company, or anyone else builds commercial, closed-source apps with OSG, because it's the meat of OSG that is valuable to the community. There may be useful parts in other people's applications, but it's the improvements of the core code that drives the project. If enough closed-source people need the same capability, befor elong, it will ge developed and put into the code OSG project for all to benefit from.
It's a profitable deal for everyone involved, and I think it's a great example of how Open Source and proprietary projects aren't necessarily at odds with each other, and can mutually benefit from their relationship.
I can back this up. McMurdo uses a satellite earthstation located at an uninhabited island several miles south of "town" itself, which is on the southern coast of Ross Island:
Black Island
The connection is a T1 that goes from town to Black Island via point-to-point microwave. Part of the T1 is used to carry voice telecom, fax lines, and MPEG-encoded television from the US.
Black Island was chosen because it can see (looking north) over the large bulk of Mt Erebus to make LOS with a geosync bird at the equator. See photo on the page, above. That's the dish in the dome, and you can see how high up the horizon Mt Erebus protrudes. McMurdo is at 77.88 degrees south, so a equatorial sat is still above the horizon.
Pole, at a full 90 degrees south cannot see a real equatorial geosync bird. But, birds that are decaying in orbit become highly variable in the N/S direction, so they appear to wobble up and down on the horizon. When it's up, it's usable. There are no mountains or ground clutter at Pole, so it only has to be up a little bit. Geosync birds do not move in the E/W direction, so the dish only has to track up and down. A previous poster who described the dish spinning around to track the horizon is sniffing skua dung.
I participated in a project to try to establish other lines of communication out of McMurdo via the NASA TDRS sats. I think I'm the sitting guy in this photo.
Black Island is 'uninhabited', but people stay there for various periods of time to keep an eye on troublesome equipment. They brew a lot of beer there, during the down times.
I was present during the season of the construction of the current dome and dish on Black Island (though I was not at BI itself at the time). During a critical period of construction, part of the dome was finished, but it still had gaps in it. A massive storm (Herbie) came up, and shredded the whole dome with 120+Mph winds, spreading debris for miles. A new dome had to be flown in at the last minute, and landed in a heavy cargo plane on the rapidly-melting ice runway. But the new system has worked very well for the last 10 years, and McMurdo has excellent connectivity.
Your best (free) bet is probably TIGER data in either its original form or in shapefile form, updated and corrected locally.
TIGER is made from USGS DLG or DRG files, combined with some updating done by the US Census Bureau. Since the census is only done periodically, the TIGER data gets out of date.
Some organizations take TIGER data and update it and resell it in various forms. One of these is NAVTEQ, who has people out on the road constantly driving around and updating their maps. As a result, this information tends to be rather expensive, but pretty high quality. Other companies in the same business are DeLorme and UnderTow (formerly Chicago Mapping, I believe). I think UnderTow's Precision Mapping product has pretty decent licensing terms, last I looked at it (several years ago). Much better than DeLorme.
If you want to get your own imagery and work from that, there are several good free sources:
University of Maryland's GLCF site serves up 30m color imagery and 15m monochrome imagery for most of the world. To make the color imagery useful, you'll want to take a look at Scott Cherba's Tutorial using Photoshop or Terrainmap's tutorial using PaintShop Pro. One of the software companies I've founded makes an inexpensive utility called PixelSense (Windows, $49) to do this process automatically.
The United States Department of Agriculture Lighthouse Server serves up a variety of data including free 1m monochrome mosaics of virtually every county in the US. These are large files, and come in MrSID format, for which you'll need to download a Viewer (time-limited trial version) that can save out the portions you want. The nice thing about this is that they are mosaiced and brightness-balanced, whereas if you just go buy/download a bunch of DOQQs elsewhere, they may not match well at the edges of each file.
Finally, in urban areas, you may be able to take advantage of the USGS Urban Areas High-Resolution Orthoimagery available for some cities from the USGS Seamless Server. This data is fantastic, 1ft resolution color airphotos. You can see cars and individual people. It's very recent, having been aquired after 2001 for national disaster planning and response purposes.
Good luck. I'd be happy to answer questions you might have privately, as a lot of my customers do cartography.
I think I'd get a second opinion on that. I know mapmakers often put intentional errors in maps in unimportant areas to detect if someone else is copying their map versus working from the real (correct) data.
US government data is _usually_ released under a license that is effectively public domain, so it's a good source to start from or copy from.
I actually agree with almost 100% of what the article proposes, and the above poster clarifies. I've been sketching ideas about this for about 5 years, a project I nicknamed 'Babel'.
Let me address some common misconceptions I see here:
Lisp/Scheme/yourfavoriteprojectorlanguage already does this. Yes, but this is a proposal to take a number of features that have been done in various places and make a better whole of them. Also, my interpretation is that the proposal doesn't necessarily involve substantial runtime support beyond what current languages like C++ require, making it quite a bit different from LISP.
Also, I don't want to read/write Lisp. I don't want to read/write XML. I want to read/write something that looks like languages I'm already comfortable with, like C++. This proposal would store the data as XML (not that XML is the crux of the matter, it's just a convenient form -- you could do the same thing and store it in binary form, or more ASCII-like) and on-the-fly translate it into a form the programmer wants. Something like the CSS mentioned by the above poster could be used to control or assist this. No more bracket/indent style holy wars. Each person's editor/browser can display it in the form they prefer, and yet all the merges and diffs work out fine because the actual code format is agnostic to all this window-dressing.
Because the 'meat' is stored in a structured format, with standardized tools and procedures for parsing it, making batch tools to work with it will be much easier. How about writing a tool to find all variable names and de-Hungarian them? Try that with flat text. Or, even tougher, HUNGARIAN them! (Not that you'd want to, but...) How about locating all references in the project to any floating-point variables named something like Fred? All methods that take a Barney object as an argument? Any method that has the word Purple in it that calls a method in the Dino library and uses a Yabba object. I bet you could find laborious or exotic ways to do this now, but if code starts being stored in a structured way, and you have the opportunity to hook into the language data inside the lexer/parser, you can do quite a bit.
Smart editors like this could, as pointed out elsewhere, do syntactic and semantic checking on the fly. Move a block of code around and immediately see that you missed moving the scope of a variable, or that in this scope, WhiffyObject doesn't have a Fubar method. Sort these things out at edit time, not parse/compile time.
Even better, a really smart development system could be doing the lexing/compiling behind your back, as you edit, because it's doing a lot of that work anyway to do syntax highlighting and checking.
Yes, there are downsides to all of these things, but the upsides are very attractive. Allow me to cite from my own notes about this sort of thing:
Babel
Current ASCII flat-text parsed languages are an outgrowth of a time when editing was cheap but compiling was expensive. They rely on intelligence and resources of programmer in favour of intelligence and resources of computer.
Intelligence and resources of computers are increasing, of programmers are not. Effective balance begun to swing -- computers can relieve tedious tasks from programmers allowing programmers extra resources/intelligence to execute more sophisticated and complex designs, or better quality of existing designs.
Languages are fundamentally very similar at heart, each with own bells & whistles, and each with own peculiar syntax. Many are very similar to some degree -- withness moderate success of fortran-to-c, pascal-to-c converters. GNU compiler suite uses different front-ends on a common middle and back end to implement ADA, Fortran, C/C++, etc. In the beginning (and many would argue, today) C compilers were just C-to-asm translators. Many original C++ compilers were (few still are) C++-to-C compilers. Java source code can be compiled into JVM code or native code (Metrowerks, etc). C/C++ can be compiled in
Considering this is what I do for a living.
;)
I won't be able to give you much advice for doing this on Linux, or with Open Source software, since I'm actually not aware of anything that meets both those criteria. I know you didn't stipulate those criteria, but this is Slashdot.
The first issue you face is converting bitmapped contour data into a heightfield. This is not the same as converting greyscale to heightfields, which is a trivial matter. Most of the links proposed already cover using a greyscale image.
A helpful site for you will be http://terrainmap.com/. He has an application (Windows, $free) called Blackart that tries to extract meaning from scanned topo map contours and build a DEM/heightfield out of it. A commercial app (Windows, $1500) that does the same thing is R2V. I've not used either so I can't comment on what you get for your $1500.
Once you have a DEM, you can probably find a way to convert it into a file format that Blender can use as a 3D object and apply texturing to.
The next step is, what kind of texturing? If you just want to be able to slap some pretty-looking colors or natural-looking dirt/rock/grass/snow effects onto it, you can probably do that in Blender. If Blender can't do everything you want, you might try Terragen (Windows/Mac, $free), which is a little more landscape-oriented. I would not recommend VistaPro at this point, it's pretty outdated. TG is at least still being developed, although it's going commercial.
If you need to be able to place real-world image information onto the terrain (airphoto or satellite images, GIS databases, other scanned maps, etc) then Blender is really becoming a poor choice for your needs. (What were your criteria for choosing Blender anyway? It's not known for its landscape capabilities.) The trouble becomes that data like these are usually stored in a different Coordinate System (read the whole VTP site while you're there, Ben's got GREAT info). This means that lining up the position, size and rotation of the two pieces of data is difficult if your software doesn't know how to do it for you. Even most low-end landscape software (Terragen, VistaPro, more free here) can't do this. This is the realm of typically fairly expensive commercial 3D landscape software with a GIS tie-in, such as ESRI's 3D Analyst (Windows, $3500) read info on commercial page above) and my company's Visual Nature Studio (Windows/Mac, $2500).
I won't pretend that my company's product meets your needs, but I have to mention it. I suspect that you'll be able to meet your requirements using some of the tools I outlined first. If however, you find yourself doing this sort of stuff a lot, that's where the polish, integration, support and other frills of commercial software like mine may start to become valuable to you.
Hope you find what you're looking for. If you (or anybody else) have more questions about this, I'd be happy to answer them privately or publicly. As you can see from the above, despite selling my software, I try to be objective and don't always tell you my product is what you need.
In my ten years in the computer graphics business, I can't tell you how many specialized hardware rendering platforms I've seen come, and go. Renderdrive has hung on longer than others, but I still feel that nothing beats the bang/buck of a stable of nice commodity hardware.
A lot depends on what application you plan on running. Each app has their own approach to distributed processing, and their support (or lack thereof) for any given hardware is critical.
I would lean towards AMD 64-bit CPUs at this time. Some renderers are optimized for P4, but the AMD chips seem to run P4 code quite well, and they run all other X86 code wonderfully.
You can rack up a bunch of commodity boxes for a great price, and render to your heart's content on them. In some cases, depending on support from your rendering software vendor, you might even be able to run Linux on them.
I will put in a plug here for an open-source program I created, SuperConductor (http://super-conductor.org/ that is a multi-application portable render farm controller. It's written in Qt 3, and runs on Linux and Windows right now (no Mac Qt dev kit to try it on). It currently supports my rendering software (World Construction Set/Visual Nature Studio) but is designed to be extensible to other renderers. We could use someone to add support for Maya, POV-Ray, or other apps. The freshest source (a complete rewrite) is in SourceForge CVS right now!
I have a poor-quality picture of the vehicle itself under thrust (after seperation) that I grabbed from NASA TV. I haven't seen it posted anywhere, but my server can't handle a slashdotting. Anymody who might be able to host it for me, drop me a note.
account name is xenon
and the domain is arcticus.com
I've followed this story carefully for some time, and the cynical interpretation among Slashdotters is actually not the case. While the article talks about Microsoft, the evidence submitted to the USPTO was submitted by the W3C, who wants to see this overturned just as much as Microsoft. I doubt Eolas has a soft side for free software, they just realize that they needed to bag a big prize early on to fund bringing everyone else into line.
The 906 patent was a farce, and was contradicted by numerous pieces of prior art. It's a Good Thing for everyone (except perhaps, Eolas) that this turd is thrown out.
If MS could have bought their way out of this problem, they'd have done it a long time ago. They've lost decision after decision up to this point, and were basically SOL. This was essentially the last thing that could have saved their bacon. It is very convenient for the W3C and the web as a whole that the legal might of Microsoft happened to be aligned with their purposes.
Microsoft isn't lilly white themselves -- they already have a number of dubious web-related patents of their own. But I'm still glad to see them win in this case.
Ok, personal OSS rant.
RMS says that coders should give code away. You work as a waiter, or do something else for a living. I don't want to be a waiter. I want to write code. So, "something else" has become service and support.
Here's the rub -- when you make your pennies on service and support, you have no economic motivation to make it easy and self explanitory! You make MONEY when it's hard to use.
This I think is the downfall of the current OSS business models, and I haven't found a way out of it. OSS projects are destined to remain difficult as long as there is no economic motivation (and we've already established that there's no artistic/ego motivation) to make it beautiful and easy.
I'm not saying that Windows is right or that Mac drool-proof design is right, or that OSS is fundamentally wrong. But I'd like people to understand the motivations that their choices steer them to. I feel bad when I get harangued by OSS types for making non-OSS products. Just understand that not everything is as cut and dried, and that most OSS business models have yet to be proven successful.
Let the GNU/GPL/RMS/OSS/ESR flaming begin. I'm ready for it. I've thought this out for a long time, and I make a living writing software. And no, my software is not a paradigm of simplicity, but I'm not having delusions of taking the desktop away from Bill G by conquest.
I've done the brain swap successfully before (about 10 years ago). I have heard anecdotally since then that this may not work with more modern drives that may store calibration data in non-volatile storage on the electronics board. I can't confirm if this is true.
I've never tried freezing one. I think I'd try a brain swap first, as it's unlikely to cause physical harm. I can't say the same for the freeze operation for sure. If you do freeze it, put a bunch of dessicant (silica gels) in with the drive for a few days beforehand. You don't want moisture in with the drive freezing, expanding and damaging something.
I bought an adapter to hook my Olympus 3020 digicam up to my scopes (one is a Meade ETX-90, one an old custom-built 6" Equatorial reflector). The Scopetronix parts are well made and high quality, and I'm very happy with them. I will continue buying from them.
Ok, I'm in the same situation. I have a great plan and phone here, and I'm going to be traveling in Europe for a couple weeks later this year. Business requires me to keep in touch. What's a good plan and carrier?
Also, how about a Wifi plan?