Domain: goof.com
Stories and comments across the archive that link to goof.com.
Comments · 27
-
Re:OS X vs. Linux (green grass vs. freedom)
Sounds like you're in the same boat as me. Raw (Super CCD Raw is almost universally unsupported) is preceisely the reason I use GIMP! UFRaw (a GIMP plugin) includes live histograms and many, many options. There are other plugins and maybe some built-in support for Raw, but my Fujifilm S5200 is unsupported by all the others I've looked at. (Photoshop CS2 didn't even support Fujifilm S5200/S5600 last time I checked. Picasa's Support page states specifically that it doesn't support S5200!)
SourceForge page for Linux:
http://ufraw.sourceforge.net/Install.html
For OS X, this guy built an installer for use with GIMPshop (a commercial version of GIMP, without the X11, haven't tried it yet) but I used it on the PowerPC version of regular "GIMP for Mac" and it works great!
http://collectivity.goof.com/articles/2006/03/18/u fraw-gimpshop-app-plugin
Hope that helps. -
Top 10?
I only counted 6.
Torsmo
http://torsmo.sourceforge.net/
ImageMagick
http://imagemagick.org/
Aterm
http://aterm.sourceforget.net/
Root-tail
http://www.goof.com/pcg/marc/root-tail.html
Quod Libet
http://sacredchao.net/quodlibet
Transmission
http://transmission.m0k.org/
-
I'd recomend root-tailRoot-tail home page and freshmeat link. random screen shot.
About: root-tail is a program that allows printing of text directly to the X11 root window wherever you choose, much like running rxvt with a pixmap background but without the hassle and with more features.
Some code I use with it (there's TONS of options):
sudo root-tail --justify -g 600x250+20+350
/var/log/messages,lightblue -
hmmmm...You are grandstanding. Your use of "crap", "stupid", "moron", and idiot don't improve your arguments.
"SPEC is subject to all kinds of problems."
All benchmarks are subject to problems. If you are testing for the CPU, somehow you must control for variables of compiler, OS, system architecture, and the amount of time and expertise of the tester.
Uh, how exactly do you get "GCC, is said to generate code that less well optimised than Intel's" from "GCC, is said to generate code that less well optimised for x86"?
Sigh. read: "Dell's own figures were calculated using different compilers and host operating system: Windows XP Pro, Intel's own C++ and Fortran compilers, and the MicroQuill SmartHeap Library 6.01. Secondly, the compiler used by VeriTest, GCC, is said to generate code that less well optimised for x86." QED less well than intels compiler in the previous sentence
GCC for PowerPC is not as mature: "The gcc scheduler is not really designed ideally for a processor like the 970 and the Power4...that was one of the things that we're continuing to work on to try to get the best performance out of the processor."
GCC on intel is far more mature with a long history, read a little of the history: "...When Intel released the Pentium some of their team produced a version of gcc with enhancements which gave 30% speed improvements on some benchmarks..."
Look at these redhat GCC 3.3/4.0 benchmarks. Notice how the 2-way PPC970 is twice as fast as the 4-way P4 on many tests and at close to par on the others. Now this is not the end all, am I'm sure you could come up with a different test that shows the P4 beating the G5, but certianly the G5 is not a "peice of crap".
You arguement about standardizing compilers is equivalent...
Standardizing of compilers is scientific method. Ideally you'd do a bank of tests, and unroll the variables: Standard compilers, standard OS, standard CPUs. Or you could tune each system to the max and then compare, that was LinPack and you didn't like that one either.
Hmm, does this appear to be vector processing done by a compiler?
Exactly my point! Intels compiler does auto-vectorization. GCC doesn't. If you test C code, P4+intel against GCC+G5, you are crippling the G5 by leaving out the altivec unit, which is a more capacble vector unit than SSE2
"hand coding...becomes completely out of reach for humans"
Hand coding is still done frequently on high performance algorithms:
- "I've also recently started hand coding the low level math kernels... P4, this gives a ~30% boost to performance on this particular MILC code."
- "However, once that level of optimization becomes necessary it's generally just easiest to hand-code the instructions, rather than jumping through a bunch of hoops to try to trick the compiler into doing what you want."
- "In some cases, complete vectorization is not possible and you may want to include hand coded SIMD instructions for the best possible performance"
- "Altivec requires hand-coding to exploit"
-
Re:One man software
Indeed, RMS ceded control, but remember that control of GCC essentially had to be yanked away and placed into a steering committee
No matter who you are, these transitions are never easy. Linus has set Linux up better than most projects, but still there is by design one central kernel (a very good design by the way, so far, for now, and for quite a while to come). -
Re:Alternative to XCF?
For scripting I can thoroughly recommend the gimp-perl scripting extension. It's much nicer than the scheme language. On my Debian unstable/sid system it's built right into the main gimp package, so it might be standard part of the build now. Just write a perl script in you plugin directory and make it executable. It mirrors much of the script-fu interface, as well as adding an OO set of objects/classes. The documentaton is a little lacking, but I've figured out most of it from the built-in procedure browser. And there are lots of examples already in the plugin directory. Just use file to find the perl scripts amongst the native executables. It would be nicer if they left
.pl on the end of the filenames. There's also a python scripting extension.As to XCF files, I know what you mean. A few times I've wanted some CLI tools for working on XCF files, although for different reasons. The classic NetPBM tools allow me to do on the command-line most of the things I'd do in The Gimp.
-
Re: I'm disappointed
My personal favorite esoteric language is Bournegol
http://www.goof.com/pcg/marc/bournegol.html
Not really a language, but worthy of being considered one, I think.
-
Re:Pathetic
Steve Bourne did this when he wrote the Bourne Shell
-
It's getting slow - A Mirrorhttp://www.goof.com/swcar/
Posted anon so you peeps can't complain I'm a karma whore.
-
Forking is sometimes temporary...Another aspect it seems to me these guys overlook is that forks are sometimes temporary. Witness the 8 or so forks of gcc that got folded into "egcs". Within a year or so of its formation, egcs became the dominant gcc branch, and was officially so noted soon thereafter.
Unlike religion, when you merge several forks of an open source project effectively, you steal all the followers. Contrast this with religion -- somehow this doesn't seem to have worked for the Unitarians
-
In the spirit of keeping these things around
-
Re:Tranclucency and logtails
-
what happened to pgcc?
i remember the pgcc project aimed to distribute a pentium optimized version of gcc. i believe that the stampede linux project (defunct, resurrected and defunct again) used pgcc to deliver an optimized complete linux distribution. looking at what appears to be pgcc's website, it appears that pgcc is inactive as well ("last change: 2000-12-27"). Does anyone know the actual status of this project or have any information? It's last release is gcc 2.95.2.1 so direct comparison is not quite possible, but how does pgcc compare against intel's cc performance-wise? the only value i can see in an intel cc is performance improvements. because intel obviously has all the specs on their processors, they can heavily optimize the compiler output. since they are not opening their source or specs completely, some people who are willing to pay can at least get the performance gains, but if something like pgcc can offer similar performance, there seems to be no point. any comments...
-
PGCC Compiler Claims Same Performance Improvement
The Pentium Compiler Group (look here) has a compiler patch to optimize GCC for the Pentium family. It's been out for years -- my company uses it and we notice great improvement -- and claims about the same performance gain as this "new" intel compiler. Interesting thing is, it was based on patches from INTEL!From the PCG FAQ:
1.18 Where did PGCC come from?
When Intel released the Pentium some of their team produced a version of gcc with enhancements which gave 30% speed improvements on some benchmarks. Having demonstrated the improvements possible, they stopped development and released the code.
PGCC came from this work and further enhancements of the Intel code that had been produced. It aims to improve the stability of the compiler and to carry on improving the quality of the generated code.
1.19 How much speed improvement can I expect?
The 30% achieved by the Intel engineers is rare in the real world. Typically, the improvement will be about 5% using an intermediate optimization level like -O3 and no fine-tuning. Sometimes the 30% can be achieved - gzip-1.24 unzips about 20%-35% faster - but don't bank on it.
---
The interesting thing here is the note that the Intel engineers supposedly stopped work on the code. Apparently, they didn't.Anyway, I recommend checking this out if you want to stick with GCC. The optimizations that work the best:
gcc -O6 -march=pentiumpro
The pentiumpro switch will also optimize for PII and PIII (and presumably PIV).
As with the intel compiler, don't try to build the Linux kernel with this.
-
Umh, this isn't really surprising
I was always under the impression that a vendor supplied compiler would almost always out-perform a generic cross-compiler, which is available on much more other platforms. GCC is all fine and dandy, but it's it shines in other aspects than pure optimization and fast code (they may be faster on some architectures than the vendor supplied compiler, but that's not my point). The produced code x86 was always sub-optimal. Because of that, projects like pgcc exist(ed).
-
Athlon optimization
Get the optimizing compiler here. Then tweak arch/i386/Makefile for the required compiler flag. At least that's what I'm doing on my K6, running 2.2.18 OK.
-- -
Re:Do gcc/egcs support the new SIMD/3DNow! stuff?
GCC doesn't, but ld from GNU Binutils 2.9 and above should support 3dnow! extentions. You might want to check out PGCC, http://goof.com/pcg/, it optimizes quite well for non-Intel processors (I've used it with Cyrix and AMD processors on NetBSD).
-
Re:It's all about optimizationI would have to agree -- it's all about optimization. In addition to good code, you must have a good optimizing compiler (regardless of your language).
And the fact of the matter is, the author of the article neglected to mention that gcc's optimizer is well known to be horrible.
Conventional programming wisdom is that "the compiler's optimizer can do far more than you could ever do in your source code". This is an indisputable fact, since the compiler optimizes not only the high-level language (e.g., C), it also optimizes at the assembly level, even taking into account specific assembly instructions for the architecture that you are running on.
Don't get me wrong -- gcc is a fine compiler. But anyone who knows anything about high performance computing knows and acknowledges that gcc is not used for performance-oriented code. One reason for this is because one of gcc's main goals is to be portable. As an author of portable unix software, I can appreciate how demanding this task is. Making software portable is extremely time-consuming and resource-demanding. Making software high performace is doubly so, particularly across multiple platforms and operating systems. It is extremely difficult to get both high portability and high performance, particularly for something as large and complex (and system-depedant) as a compiler.
gcc has (rightly, IMHO) chosen to emphasize portability and give reasonable optimization (vs. extraordinary optimization).
More conventional wisdom -- this time from the "Beowulf" side of the fence -- get your hardware cheap (i.e., x86), pay for good RAM and hard disks, but don't pay for any software except for a commercial compiler. There are several vendors who produce very high quality C compilers for x86/Linux, and there's even at least one freeware effort that has produced a pentium-optimized version of gcc (Mandrake Linux uses this compiler, for example). The difference in real-world performance between code produced by gcc and code produced by a good optimizing compiler can be measured in orders of magnitude.
So while the rest of his article seemed to be reasonable (although admittedly short and incomplete), I believe that the results are extremely skewed by using gcc as the "base-C" and "max-C" cases. I would like to see the tests re-done with a better compiler.
Final note: why does it matter how long it takes you to come up with a good set of optimization flags for a C/C++ compiler? By definition, optizations are highly configuration-specific (e.g., OS, architecture, etc.). The fact of the matter is that they can provide substatintial performance improvements. Java, despite the uniformity of VM behavior across platforms, might very well benefit from the same thing (it may only be a matter of time before such specific optimization flags are introduced, anyway).
-
There are already E-publishers out there...
aliastnb asks
First off, IANAI (I Am Not An Author) but my Significant Other is. So I think I can contribute something here.: "I'm currently about halfway through writing my first novel.
: After the release of books to the net by such people as Stephen King
Stephen King is a Johnny-come-lately to the world of electronic publishing. There are several publishers already out there that cater to electronic/on-line books, such as New Concepts, EBooksOnThe.NET, Diskus, and so on. Some of them have been in business for several years, and there are many authors who have their works published by these companies. Also realize that the so-called phenomenal success King had with that (60 page) book was mainly because they gave it away. I'll bet the sales receipts would show a lot fewer than half a million copies from paying customers.
: I'm wondering if it might be worth my while to cut out the middleman,
: ie the publisher and release the book online.
The difficulies you'll face with this are:
- How to get payment for the work, assuming you're not giving it away for free. Shopping Cart type software is almost essential, and thence you get to deal with major credit card companies.
- Promotion. A good publisher will help you with this, though the companies that do mostly or exclusively electronic works will likely not have as many resources as the titans (big publishing houses based in New York).
I know of some authors who have "gone it alone" and one or two of these have had some modest success. Others have not. YMMV.
:
...I'd like to be able to get some sort of reward for my efforts,
: ie minimise the amount of unpaid-for copies made of the book
Then I would recommend you hunt around for a good electronic publisher.
: and release it to a multi-platform environment - not just Windows
: software but Linux, BSD, Solaris, etc. Are these goals mutually exclusive
No. Most "e-books" are released in HTML or PDF format, which are readable anywhere (just about). There's a palm pilot format too, but that doesn't strike me as a good platform for serious readers; and there's the Rocket Book Reader, but that requires a M$ system and the format is closed and proprietary. The new Crusoe based web pads will IMHO be far better at this sort of thing (and if they are wildly successful, may well create a huge new market for electronic books). Besides, they're based on Linux
:-)Many of the electronic publishers are also dipping their toes in print-on-demand technology. In this way, you could get the best of both worlds. There have also been many (apocryphal) stories going around about big (dead tree) publishers picking up e-published authors after said authors become successful and have a good book or two out there.
-
Re:You give up too easilyPlease prove that open source software is better than closed source software.
I'll bite.
You will always have one additional feature -- the source.
For a real-world example I present the commercial PKZip and the GPL'd zip/unzip package. Both are vitually identical. Both are "free" to use for non-commercial purposes. Yet I always use zip/unzip, rather than PKZip. Why? Because I have the source and I can use it if I need to.
No, I'm no programmer. I can tweak Makefiles and the compilation process, however. So for CPU-intensive apps like compression, encryption, raytracing (povray), I go the extra mile to use pgcc to compile with insane optimizations (I used the optimizations found in the GOGO mp3 encoder makefile) to wring every last bit of performace from my 700MHz Athlon.
In my mind, if all things are equal between 2 products, then having the source to one will make it better.
-
Re:Compiler optimizationsCheck out pgcc . It has K6 optimizations, and will utilize 3DNow assembly.
I use it on my 700MHz k7m system, and it works well.
-
Pentium GCC
pgcc can generate MMX code now. Check out The PGCC FAQ
#define X(x,y) x##y -
Dual "Cross" configuration
I have a fairly simple machine, PII 333 with two 4gig harddrives. I have it dual booted with Linux (Redhat 6.0) and NT 4.0 with LILO being the bootloader.
Here's the interesting part: when I boot under NT I can use VMWare to get at the raw Linux partition, and when I boot under Linux I can use VMWare to get to the raw NT partition. Each OS has a specific configuration depending on whether it's a guest or host (using Hardware Profiles under NT and VMWare's dualconf under Linux).
Then it starts getting complex with host-only networking under VMWare for each environment. I actually have 5 different IPs for my one machine:
192.168.0.2: Native (host) NT or native Linux
192.168.101.1: VMNet Bridge
192.168.101.2: NT host/Linux host
192.168.101.3: Linux guest
192.168.101.4: NT guest
So while I have NT as a host, I can use samba to send files to Linux and then test them out. As far as development goes on NT, I have Visual Studio 6.0, Borland's free compiler, and Cygnus's cygwin (with mingw32 built under cygwin). I also have cross tools under cygwin that target Linux and MSDOS (djgpp).
When I use Linux as a host (99.5% of the time), again I can use samba to send executables to the NT guest and try them out *immediately* after compilation. This is a plus for libraries such as SDL, etc. I use pgcc-2.95.2 targetted to mingw32, cygwin (for the hell of it), ms-dos, and Sony PlayStation.
The main reason I use this setup is for hardware/processor feasibility, I have a TNT2 Ultra that isn't supported in any way under VMWare, therefore booting NT means I get 3DSMax, etc. that takes full advantatge of my hardware. Also, I have an ISA card that talks to my PlayStation, and the majority of dev-tools (with the major exception of psxdev) for the PSX are Win32 only (VMWare can't handle non-standard hardware).
How I set this up:
Install NT on the second harddrive
Configure all drivers, etc. for NT (might want to wait for this step to make creating Hardware Profiles easier)
Install Linux on the first harddrive w/ LILO
Setup VMWare on Linux to talk to NT as a guest (using raw disk partitions)
Boot *NATIVELY* into NT and copy your existing profile into a new Hardware Profile (System Control Panel)
Disable any devices in your new profile (call it "Virtual Machine") that VMWare doesn't support (Devices Control Panel)
At this point if you want you can setup VMWare for NT to access Linux as a raw partition
Boot into Linux and test your NT under VMWare, if some drivers fail, disable them under the Devices Control Panel
If you installed VMWare for NT, tweak your Linux dualconf configuration (I had to manually add a condition for switching the links to the X server)
Setup Host-only networking, samba, etc.
I know I didn't go into any detail, I don't have the time to write everything out and I'm not at my machine so I might have missed something. I'll post a couple articles at my site, etc. when I have some time (this weekend?).
Marcus
-
Re:Probally because of IP
-
Use Perl Gimp and write a Perl CGI
http://www.goof.com/pcg/marc/gimp.html I've done it, it works nicely.
--
http://www.wholepop.com/
Whole Pop Magazine Online - Pop Culture -
pgcc?
Anyone think code from the pgcc fork will get re-integrated into gcc 3.0? IIRC, it does include some support for AMD processors, too.
Christopher A. Bohn -
Optimizations
BeroLinux is one man's recompile of RedHat with optimzations turned on... It was mentioned recently on
/. Of course, RedHat 6 will presumably have them all anyway...
PGCC ( no, not the portland group) pentium-optimising version of egcs gives great results on my system (which is actually an AMD K6-2, but what the hey)
it's at http://www.goof.com
Incidentally, can anyone recommend the best settings for the K6-2 ? I've just been experimenting, and there's a definite speed up pretty much no matter what (the kernel 2.2.2 recompile really made a difference, as did the Mesa+glut recompile) - It's just I don't fancy getting the profiler warmed up...