The collected works of hamei - Page 44

Thinking about dumping this piece of crap. It's no faster than a Fuel but ten times as noisy, takes up more space in an awkward configuration, the added memory does no good since the modern groovy software can't use it, the box is less versatile, has fewer pci slots, is generally a worthless piece of shit. Dual 700's with a V10. Offers considered. Thank you.
Hakimoto wrote:
Hahaha... love it! If no-one takes it hamei, send it to Kabul ...

The nice thing about Kabul is, you could take the roaring little bastard out back and introduce him to Mr Kalashnikov ...
bluecode wrote:
Is this the 2U Origin 350? I've been wanting one of those but can't afford to ship it most likely.

Yes. And I have to be honest, I am not impressed with the performance. It's either the software or the software but this thing is not responsive. The only reason to keep it is so I can get enough dvi outputs to drive the monitor. Otherwise, esad, O350.

It's odd, too, because I had a quad 5 O300 that *did* impress, even over the network.

I think the Fuel is a better workstation. Or I could go to an Octane, which at least is built nicely.

No wonder they went broke.Three times.
jan-jaap wrote:
I'm happy with mine . But I use it as a compile/compute/storage server, not a wannabe Tezro.

Okay le, let's be realistic. As a storage server, it's ridiculous. 2U, 19" wide, 27" deep (plus all the crap sticking out the back) to hold two disks.

Compile box, it *might* be a little faster than a Fuel but not enough to notice. I've run both.

Compute, maybe. But only if you are running fea analyses or similar. For general use the Fuel is just as fast.

I'll go another couple steps : I like smp. SMP means never having to sit there while the computer hops and jumps from task to task. But either Irix or the software or a combination of both do not do the job very well. Fireflop is a pile of shit, absolute total unutterable bear squat. This is one application where smp should be gloating over all the uni-p applications but instead, we get "Our javascript is ten times faster so we can hide ten times as much spyware on our website ! Aren't you excited ?!"

No. If I could get the asshole who invented Javascript in a dark alley I'd rip his balls off and feed them to an alligator at the zoo.

And the desktop just does not use smp to best advantage. It crashes on me, in fact. Not all the time and it's trained me to not do certain things but it ain't as good as OS/2. Seriously. In fact, overall, Irix is not as good as OS/2. Lots of nice features, graphics are much better, no point crying over OS/2 cuz it's well and truly dead but Supercomputer my ass, Warp 3 works better than this shit. I like Irix better but no use lying to ourselves, it's basically junk. It's just better junk than OS X or Loonix or (gag) Windows.

All of this stuff is pretty much crap. Computing hasn't really improved in fifteen years. Sure, the whole environment is more polished but the fundamentals have rotted, if anything.

(For a quick illustration, my neighbor just came over to look at our printer. They just "upgraded" to Windows 7 [probly to be able to read the worthless modern ! docx files every nitwit in the world is sending out now]. Their $500 printer no longer works. This is beyond retarded. In 1995 I can understand it but now ? WHY DO PEOPLE PUT UP WITH THIS CRAP ??! Take Monkeyboy out and give him a last cigarette. Are people ever going to grow any balls ?)

About the wannabe Tezro, once again the invisible hand of Satan enters the photo. Yes, a deskside Tezro should be quieter. That's what it's designed for. Why not buy one ?

Because the loser arrogant greedy asshole dickwads at SGI decided to emasculate the thing so they could make more money. If you want two graphics heads you have to buy the rackmount (that's rackmount as in "wannabe" :D ) version. "Oh no, two V12's would draw too much current, we can't allow that ! We best put a software safety switch in there so no one can ever do that to their own computer which they bought and paid for !"

Put a bigger trace on the board, assholes. Billion dollar company and you can't figure that out ? What, you think we are too stupid to figure out you are manipulating us ? ESAD. (So they did, but Bozo is doing fine, thank you very much.)

Commerce. Capitalism. Business logic. The US is fucking worthless. Go read the story about Midas, fools.

The O350 is okay, I shouldn't say it is total junk. But it's not really any more useful for most things than a Fuel. If it didn't sit here roaring like a buffalo in heat I wouldn't hate it so much.

Quote:
I keep it in a server room, so the noise isn't bothering me and I can run it 24.7 without worrying about the power/airco bill :mrgreen:

Not complaining about the power or air conditioning. On the other hand, in mid-winter when we were wearing jackets it was okay. But now, even in an air-conditioned room when you'd almost want a sweater, the idiot thing howls like a 50 hp Sullair. I guess it could easily be watercooled - in the toilet.

recondas wrote:
Probably directly related to the redneck re-engineering it underwent .

I disagree. Most likely the redneck engineering is better than what the factory did. By the time they built these, I think the janitor at Safeway probably had more imagination and skill than the average SGI employee. Stick a $50 Adaptec card in it, write a shitty driver that half works, and charge $500 for it. What a business plan ! We'll be rich ! Rich, I tell you, filthy stinking IPO-class rich !

Fucking losers.

You know, this whole computing thing is just shit. Where have all the "innovations" (barf, puke, gag me with a spoon) gone ? Let me reach out ... has all the "innovation" beyond patenting a rectangle with round corners gone into NSA spying on all the citizens of the US ? Snowden is a "traitor" for telling the truth but those cocksuckers are patriots for trampling the 4th amendment into a pulp under their jack-booted heels ? We need people keeping track of what kind of underwear we buy to "keep us safe fwum tewwowists" ? how about all the police departments tracking license plates 24 hours a day and building huge databases of where every car in the US is at all times ? how about Google bringing the telescreen to all our homes ? Nice, eh ? Where's my Big Brother poster ?! That's an integral part of my rich internet experience !

How about throwing all this worthless trash in the garbage and living on five acres in the Yukon instead .... this world sucks, and computing is the enabler of all that.

It's all about power, Winston. And we got it, you don't. You want to know the future ? A laptop-carrying Gestapo agent grinding your face into the ground over and over and over again. Forever.

Thanks, Intel. You're a real sport.
If anyone does try this program, here's something strange I came across, could use a little confirmation on :

This is the gtk version, I built that to eliminate the possibility that it's a Motif problem. However, the gtk ver behaves exactly like the Motif version.
Attachment:
ted-margins-gtk.jpg
ted-margins-gtk.jpg [ 124.08 KiB | Viewed 362 times ]

Helvetica does not seem to space correctly. If you type a line across the page, it line-breaks far too early. Yet the margin itself is fine : right-align and the text goes all the way to the right where it belongs (except that it still does not fill up the line.)

Other fonts don't seem to do this. I haven't tried every font on the system tho ... The author suggests that it's a fontconfig problem. I thought it was perhaps Type 1 vs Truetype but both Helvetica and Formata are Type 1's yet they display different behavior ....

Anyway, confirmation of the problem would be a good start to fixing it (maybe).
jan-jaap wrote:
My O350 also serves as a regression bot. This is why the company is hosting it. Before that I used a Fuel (1x500Mhz), that was a joke. Couldn't keep up. Replaced with a 2x600MHz O300. At some point the O300 was > 80% busy running the regression tests if people were committing frequently and sometimes the next regression job would kick in before the previous had finished. Makes a big mess of our build dash. The O350 (8x700MHz) doesn't break a sweat and has enough time left to do whatever I feel like doing.

I'd be the last person to diss anyone's choice of ... pretty much anything, actually. People should use what they like. They just shouldn't ram it down everyone else's throat ... (not you, J. I'm thinking of the "It's not moooodern ! that's deprecated !!" children)

btw, if replacing the 2p @600 by 8p @700 wasn't effective, something woulda been wrong :D

Quote:
Of course our Makefiles are crafted to keep all CPUs busy all the time.

That's a big part of it. Software is, in general, terrible.

The stuff the NSA and police departments use to spy on us is better, I expect.

Quote:
BTW I wasn't trying to diss people who convert an O350 to a gfx workstation. I'm just saying that *I* still have a niche where an O350 can be useful. Once it stops being useful, it will be retired and join the rest of the museum.

And I didn't mean an O350 is useless. But in many (most ?) ways it's no better than a Fuel. In some ways it's a lot worse. If someone wrote all new software ..... they could put that with the million dollars the tooth fairy is going to leave under my pillow.

If it doesn't stfu tho, one of these days I'm going to hit it with a hammer.

ClassicHasClass wrote:
Actually, I can answer that: JavaScript has run-to-completion semantics (everywhere it's implemented, not just Gecko) dating back to Brendan Eich's sleepless nights at Netscape, meaning that you can't have simultaneous script actions running -- a previous action must complete before another can be done or coherency goes out the window.

Cool. So we can put all our efforts into gtk1, gtk2, gtk3, qt 1-2-3, gnome1, gnome2, compiz, no more nasty ./configure throw that all out now we'll use cmake ! and wow ! anti-aliased fonts ! but the core software we run is designed for DOS 3.3

Now, this is just software so it's hard to say that is the stupidest thing ever , but ... it's surely a temptation.
foetz wrote:
hehe no idea why you think so ...

Cuz I've had both, still have most of a Fuel I can make back into a running computer, and seriously considering it.

The O350 performs slightly better in the real world (my world, anyway, which intersects the real world in one or two places) but in all other ways it's worse. The smart thing to do would be to trade everything I have for a single 900 mhz Fuel and a spare power supply.
kubatyszko wrote:
You haven't seen Japanese folks on Tokyo's subway - or worse - Hong Kong, or even worse - Shanghai...

Hong Kong subway is okay. Kongkers are pretty friendly, imo.

Shanghai, not so much. But they are so busy being unfriendly that you can ogle all the tits and they don't even notice, so there is that :D
WolvesOfTheNight wrote:
... I want one fully working computer that Just Works.

Then you will have to make it yourself.

Sorry, but the fact is that every single consumer computer now uses 80% of its awesome power Just Spying On You.

If that is not what you want, then you have to make your own. Every single one of them looks at you as nothing but a cash cow.
jan-jaap wrote:
Just putting the pieces together :D

Oh, it's amazing what you can see on the subway here ... once I even saw the US Secretary of State headed into the station ....
Attachment:
hillary.jpg
hillary.jpg [ 178.47 KiB | Viewed 202 times ]
skywriter wrote: We used to be friends hamei, but you just turned into a jerk to me and treated me like everyone else you treat unfairly. I felt it had to be said after so many mail in requests for me to come back.

Hey Sky - why don't you stay, and I can go ? You're a lot more of a computer person than me and you were here first anyhow. I do not have a problem with that. The fact is, my world is gone anyhow so what's the point of dragging it out forever ?

hasta luego, muchacho :D
canavan wrote:
Helvetica seems to work for me in any size in left, right or justified text.

I wonder if this is a difference between Helvetica and Heavenetica ?

Quote:
If you want ted to be more SGIified, you'll have to add Mnemonics to the Menu and reduce the height of the menu bar.

Ted isn't exactly what I would like if'n I had my druthers ... so, not sure how much more effort I will put in. But at least if someone else gets inspired, the Neko Crew has done a lot of the heavy lifting.

Quote:
Any Idea how I can set the default page format to A4?

How do I zoom the page display?

The Help entry on the menubar actually opens a pretty decent tutorial. It's more thorough than you might expect.

Also, in /usr/nekoware/Ted/etc there is a config directory with a sample of .Ted.properties which is the configuration file. Not exactly standard ... but it has a lot of settings which you can configure. Also, many of them can be called from the command line when you start it.

The sample configuration file only mentions 100% and 120% but any percentage works. Or 200 and 300% work, at least. I did not try anything bigger. Unfortunately, I don't think you can zoom in or change the window size while it's in operation.

My main complaint would be, it does a good job of making rtf's, Word can read any Ted file fine and Ted reads any sample rtf's I have found online. But some of the files that Word 2000 saves as rtf's do not open correctly at all. I don't know if that is because our version of Word is Chinese or if that is a common problem.

Quote:
It sometimes spills a few warnings / messages:
Code:
Warning:
Name:
Class: XmScrollBar
The specified scrollbar value is greater than the maximum
scrollbar value minus the scrollbar slider size.

Code:
tedMouseInput.c(766) docX=197 docY=212

I have not seen those particular warnings but yeah, it's not perfect. If I knew how to write programs I would want to make some changes. Any of you talented people are welcome to step in here :D

I have talked with the Ted author and he's pretty amenable to working on it, if you have concrete suggestions. My comments were not as helpful as they should have been but he still jumped in there and found the problems.

But as it is, at least the program works and it's a useful word processor for people who don't have one in Irix. In fact, I think it runs better than Wordperfect and it's a lot lighter to use than Framemaker, so I'll probably continue to use it for small stuff. And the html capabilities are not bad at all for simple web pages. If you need to give documents to Windows-users, Ted's rft seems more cross-platform accurate than Open Office output. And it does direct to pdf pretty well. I've been using it a little, it's not so bad.

Thank you for giving it a run-through.
johnsmith wrote:
Thanks jpstewart, I added sys/time.h and it compiled!

The linker is now throwing errors :( Do I have to recompile everything as MIPS1?

First thing to try is change the linker instructions in the Makefile from /usr/lib to /usr/lib32 .... Irix is probably the only system that has o32 and n32 choices so you have to deal with that manually sometimes..
Here is maybe a slightly better clue than usual about what might be causing my std::bad alloc crashes :
Code:
(firefox-bin:5637): Gtk-CRITICAL **: file gtkdnd.c: line 3044: assertion `GDK_IS_DRAG_CONTEXT (context)' failed
terminate called after throwing an instance of 'std::bad_alloc'
what():  std::bad_alloc
moz_run_program[36]: 5637 Abort

And then again, it could just be a false pregnancy ....

btw, it wasn't doing anything when this happened. I was outside walking, getting a little air and patrolling the block in case there were any dangerously weak bra straps that might fail and hurt some inocent bystanders. When I got back, Fireflop had left the building.
At least the font thing is not just me ...

https://bugzilla.redhat.com/show_bug.cgi?id=226973
foetz wrote:
do you have multiple versions of gtk or related programs installed by any chance?

gtk1 and gtk2 ... that should not be a problem tho ?
johnsmith wrote:
I try to link them like this:
Code:
ld -call_shared -n32  -o glchess  -L/usr/freeware/lib  -L/
usr/bin -L/usr/freeware/lib -L/usr/lib -lgtkgl -lgtk -lgdk -lgmodule -lglib -lX
i -lXext -lX11 -lGLU -lGL -lm -s -v  -L/usr/lib  *.o
ld32: Trying to open /usr/freeware/lib/libgtkgl.so...
ld32: FATAL   12 : Expecting n32 objects: /usr/freeware/lib/libgtkgl.so is o32.

So I'm still scratching my head over this o32 n32 issue.

There is no /usr/freeware/lib32/libgtkgl ? I believe that is what you should be linking to.

If not, you may need to make one. If you just want to use period code, then the freeware tardist should have all the parts you need.
jan-jaap wrote:
IRIX 6.2 doesn't have snprintf(), you'll have to code a replacement.

http://www.ijs.si/software/snprintf/

Quote:
The three GL functions require OpenGL 1.1 or newer ...

Woops :(
johnsmith wrote:
It's been a while since I've done this, so please bear with me. I've got GNUchess to build, and I have GTK installed.

I just took a look at this program ... jesus, johnsmith. This is a Gnome application that depends on Gtk2 and Python, and you want to run it in an Indy on 6.2 ?

Isn't there a time limit per move even in computer chess ? Somewhat less than one hour, I expect ? I wouldn't even try this on a dual-600 Octane.

There must be a chess game out there that's a little less top-heavy ...
I am kinda tired of the Fireflop crashes, thought I'd try a newer gtk2.

gtk+-2.12.12
Code:
checking for GLIB - version >= 2.13.5... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
configure: error:
*** GLIB 2.13.5 or better is required. The latest version of
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.

Oh goody ...
Code:
urchin 13% versions neko_glib
I = Installed, R = Removed
Name                 Date        Description
I  neko_glib            06/04/2013  glib-2.26.1 - Core libraries for GTK+ and GNOME

Looks like in Fossyland 13 is bigger than 26 ... sigh
Code:
./configure  --disable-glibtest  --prefix=/usr/nekoware

disable glib test, shouldn't check, right ? Not exactly ...
Code:
...
checking for GLIB - version >= 2.13.5... yes (version 2.26.1)
...

wtf ?
Code:
checking Pango flags... -pthread -I/usr/nekoware/include/pango-1.0 -I/usr/nekoware/include/glib-2.0 -I/usr/nekoware/lib/glib-2.0/include -I/usr/nekoware/include/cairo -I/usr/nekoware/include/pixman-1 -I/usr/nekoware/include -I/usr/nekoware/include/freetype2 -I/usr/nekoware/include/libpng12   -pthread -L/usr/nekoware/lib -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
configure: error:
*** Can't link to Pango. Pango is required to build
*** GTK+. For more information see http://www.pango.org

wtf is this with the -pthread ? I didn't put it there, it's not in configure, it's not in any of the related scripts I can find, it just appears out of nowhere and MIPSPro does not like it ...
Code:
configure:33504: checking Pango flags
configure:33510: result: -pthread -I/usr/nekoware/include/pango-1.0 -I/usr/nekoware/include/glib-2.0 -I/usr/nekoware/lib/glib-2.0/include -I/usr/nekoware/include/cairo -I/usr/nekoware/include/pixman-1 -I/usr/nekoware/include -I/usr/nekoware/include/freetype2 -I/usr/nekoware/include/libpng12   -pthread -L/usr/nekoware/lib -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
configure:33559: cc -o conftest -mips4 -O3 -c99  -I/usr/nekoware/include -I/usr/include -pthread -I/usr/nekoware/include/pango-1.0 -I/usr/nekoware/include/glib-2.0 -I/usr/nekoware/lib/glib-2.0/include -I/usr/nekoware/include/cairo -I/usr/nekoware/include/pixman-1 -I/usr/nekoware/include -I/usr/nekoware/include/freetype2 -I/usr/nekoware/include/libpng12   -mips4 -O3 -c99  -I/usr/nekoware/include -I/usr/include  -mips4 -L/usr/nekoware/lib -L/usr/lib32 -Wl,-rpath -Wl,/usr/nekoware/lib conftest.c -pthread -L/usr/nekoware/lib -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl    >&5
cc WARNING:  -p is no longer supported, use speedshop(1) instead
cc ERROR parsing -pthread:  unknown flag
cc WARNING:  -p is no longer supported, use speedshop(1) instead
cc ERROR parsing -pthread:  unknown flag
configure:33566: $? = 2
configure: failed program was:
| /* confdefs.h.  */

but more to the point ....
Code:
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char pango_context_new ();
| int
| main ()
| {
| return pango_context_new ();
|   ;
|   return 0;
| }
configure:33579: error:
*** Can't link to Pango. Pango is required to build
*** GTK+. For more information see http://www.pango.org

Sigh. Okay, let's grab 2.10.4 from nekoware adn see when this occurs ...
Code:
checking for GLIB - version >= 2.12.0... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
configure: error:
*** GLIB 2.12.0 or better is required. The latest version of
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.

shit
neko_relnotes_gtk+2.10.4 wrote:
CONFIGURE FLAGS

./configure --prefix=/usr/nekoware

KNOWN DEPENDANCIES

atk-1.10.1, cairo-1.0.2, expat-2005-01-28, fontconfig-2.3.2,
freetype2-2.1.10, gettext-0.14.1, glib-2.8.4, glitz-20050806,
libiconv-1.9.2, libjpeg-6b, libpixman-0.1.6, libpng-1.2.8,
libxrender-0.8.4, pango-1.10.1, tiff, zlib,

ERRORS/MISCELLANEOUS

None

PACKAGED BY

Jeremy Meng (voo.foo at someplace dot somehow)
based on 2.8.2 package by

Tobias Paprotta ( [email protected] )
version bump by Pete Plank (nekonoko)

Zoooo .... zomething, zomewhere is rotten in Denmark ?? It built fine for voofoo but not here ? Wei shenma ?

(Yes, I tried with the Dreamer's environment settings as well)

In for a penny, in for a pound ... let's see what happens if we build a newer pango, maaaybe there's some incompatibility, isn't this diegel's gcc pango ?

pango-1.32.6, all good numbers, divisible by 2, yummy ...
Code:
checking for HARFBUZZ... no

absolutely, I left it in the shitter about an hour ago, along with my breakfast ...
Code:
checking for CAIRO... yes
checking which cairo font backends could be used... none
configure: Disabling cairo support
configure: error: *** Could not enable any backends.
*** Must have at least one backend to build Pango.

Do these fucking loser shitforbrains test anything ?

First thing let's do, let's burn all the nincompoops who write trendy gnu software ...
jpstewart wrote:
Check your $PKG_CONFIG_PATH environment variable ...

Thank you, will do that in the a.m., gotta go home and pee the dog now ...
vishnu wrote:
hamei will probably be along shortly but until then, I'll say it for him: Fuck you guys! :evil:

Thanks, vish. Couldn't have said it better myself ... gtk2 is like a nice hot bath in a tub full of shit.

jp, thanks much, in the various pkg-config files we had
Code:
urchin 1# nedit gmodule.pc
urchin 2# nedit gmodule-2.0.pc
urchin 3# nedit gmodule-export-2.0.pc
urchin 4# nedit gmodule-no-export-2.0.pc
urchin 5# nedit gthread-2.0.pc
urchin 6# nedit gmodule-2.0.pc
urchin 7# nedit gmodule-export-2.0.pc
urchin 8# nedit gmodule-no-export-2.0.pc
urchin 9# nedit gthread.pc
urchin 10# nedit gthread-2.0.pc

Every one of them had a wrong -pthread flag. Doesn't work with MIPSPro.

Soooo ... anyhoo I took a chance and added Xinput (beat me some more ! it feels so good !), deleted the cups ( spit ) system and did ./configure --disable-cups --enable-debug=no --with-xinput=yes --prefix=/usr/nekoware

Made it through. Built Makefiles. We're on our way ... (thanks jp)
Code:
Making all in gdk-pixbuf
gmake[2]: Entering directory `/usr/people/dev/gtk+-2.12.12/gdk-pixbuf'
( cd . && glib-mkenums \
--fhead "#ifndef __GDK_PIXBUF_ENUM_TYPES_H__\n#define __GDK_PIXBUF_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
--fprod "/* enumerations from \"@filename@\" */\n" \
--vhead "GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define GDK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
--ftail "G_END_DECLS\n\n#endif /* __GDK_PIXBUF_ENUM_TYPES_H__ */" \
gdk-pixbuf.h gdk-pixbuf-core.h gdk-pixbuf-transform.h gdk-pixbuf-io.h gdk-pixbuf-animation.h gdk-pixbuf-simple-anim.h gdk-pixbuf-loader.h ) > tmp-gdk-pixbuf-enum-types.h \
&& (cmp -s tmp-gdk-pixbuf-enum-types.h gdk-pixbuf-enum-types.h || cp tmp-gdk-pixbuf-enum-types.h gdk-pixbuf-enum-types.h ) \
&& rm -f tmp-gdk-pixbuf-enum-types.h \
&& echo timestamp > s-enum-types-h
env: perl -w: No such file or directory
gmake[2]: *** [s-enum-types-h] Error 127
gmake[2]: Leaving directory `/usr/people/dev/gtk+-2.12.12/gdk-pixbuf'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/people/dev/gtk+-2.12.12'
gmake: *** [all] Error 2

Well, that joy was short-lived.

Gtk2 ? Here's for you :
Attachment:
gtk2.jpg
gtk2.jpg [ 27 KiB | Viewed 280 times ]
jwp wrote:
Ah, I was foolishly looking for only the plural form "Processors" rather than the singular "Processor" ... Fixed. :)

You realize this entire exercise is totally wrong, I hope ? It is not the application's job to determine how many processors are available or how to assign resources. That's what the operating system's scheduler is for.

Stand back and let the o.s. do its job. All you are doing with this shit is making a mess.
bluecode wrote:
It depends.

Absolutely agree with you on this and I knew someone would kick my ass (justifiably) over that statement.

But in the context of nekochan / amateur coders / desktop software / &c I think I can make a good case that it's bascially a true statement ...

Quote:
Increasingly in the UNIX world things seem to be moving in the direction you're going.

That's kind of funny because I personally think Unix sucks in this area ... do you remember when The Man hisself said "Linux will never support smp !" ? :D

From a desktop user perspective, Irix may be able to handle 1024 processors but a dual-p box running OS/2 will kick Irix ass. Part of that is Irix' fault and part is the software's fault but the end result is the same - Irix does not handle mullitple processors as well as OS/2 from a user standpoint. It's probaly great for massively parallel mathematical calculations but for responsiveness, it sucks. Don't know about BeOS but that's possibly better as well (It ran well when I had it but there were so few applications I never really got to thrash it.) Yewnix is not really multiple-processor friendly at the desktop level.

(Yes, I am aware that OS/2 has its own peculiar problems as well. I'm not talking about those tho, I am thinking of how the operating system handles resources and multiple threads.)

((footnote two, let's not even talk about Fireflop which is apparently massively multi-threaded but the braindead dog turd sits there locked up solid waiting an hour for a non-existent link to twitter.com to show up. What effing clown wrote that piece of shit ?))

Quote:
There is the issue of how one application fits into the OS and shares resources with other applications and the OS itself. But there is also the issue of what the app is designed to do, and how it can best be organized to do that. That is not something the OS or these new APIs can do. It depends on having fairly low-level access to stuff like controlling serialization directly,resource managing {threads|tasks|processes|memory} etc.

I am sure you have a good point. But let's look at the real world for a second. The bozos writing software can't even design a configure make make install scenario that works. The most popular web browser in the world is total shit. Consumer grade software is stinking worthless garbage.

These are the people I am supposed to trust to make intelligent decisions about resource management ?

The biggest accolades for Macintosh is that "it just works !" Wull kiss my rosy red ass, Jackson ! Something that actually works ? Wow. I best rush out and buy that !

Quote:
In practice the "it's not the application's job" and "let the OS do it" approach devolves to a "throw more hardware at the problem" approach since it removes control from the very place where the issues are most understood- the resource consumer.

This is probaly true in the Linux world. In the OS/2 world, the people who wrote the scheduler and the kernel were smart. They actually knew what they were doing, and the scheduler was very very effective.

Quote:
This is a separate issue from the fact many/most coders are unskilled and shouldn't be coding.

Unfortunately, as software users we can't entirely separate those issues :D

Quote:
I think your comment is too general on one hand and too UNIX-specific on the other. There are other (older) paradigms which have been working just fine in alternative universes, and they involve letting the application designer/coder set up his program in the best way possible and then the OS allocates resources when available. The same program can run on a uniprocessor box or a multiprocessor box without changes. It just usually runs a lot better on a multiprocessor box, up to a point where even throwing more threads|tasks etc. at the problem don't help.

This is exactly how OS/2 works, so I am not going to argue with you on this :D

In fact, I don't particularly like Yewnix. It's really not that good. It just happens to be better than the other choices we commonly have.

I still think that in the majority of cases, the people writing the OS are smarter and more capable than an application developer. Especially since almost all application developers are convinced their application has to be the most important thing running on the computer.

Oh, wait ... now that we have Linux, maybe that's not a valid viewpoint.

Oh shit :(
bluecode wrote:
The race conditions and buffer overflows never seem to end.

It does seem that many real problems never get fixed, while new toolkits multiply like rabbits.

Quote:
I believe in giving the application designer as much control as possible over managing resources because that enables the best possible design for that specific application. After that it becomes the OS' job to make sure the applications live together harmoniously which is something most OS don't seem particularly good at.

I think that was what I was trying to say :D

Quote:
A good simple example is an email client. Most people have multiple email accounts but most (all?) email clients fetch mail serially and most of them lock the UI while the mail is being fetched. This is obviously the easy, "safe" way to write an email client because serialization is hard. But there's no reason there couldn't be a UI thread so the UI stays unlocked and you could compose and search and read mail while you're fetching from *all* the mail servers in parallel. It's just that nobody did this (AFAIK).

Ah. But this is exactly what OS/2 did. The IBM recommended practices for OS/2 programs were "For any non-trivial application (i.e., takes more than 1/10th second to complete - this was on a 386, btw) then immediately spin off three threads." One is to listen for user input, one to do the work, and I forget what the third was. At the time I used MR/2 ICE for mail - it was very uncommon to have more than one mailbox so I never tried fetching mail from several places at once, but MR/2 did spin off worker threads to fetch mail while you could browse through your mail directories, read messages in another window, write mail in another window, etc - all while other threads fetched mail in the background AND the user interface never went dead while any single task waited for completion.

This was the whole design philosophy of OS/2, in a time when Unix didn't even have posix threads.

It worked, too. It was nice. (The braindead SIQ was not so nice though - although, in a way, the crappy siq forced people to write programs correctly.)


Quote:
No OS is intelligent enough to split up this work into meaningful logical components.

Agreed, it isn't ... but the os schedular is smart enough to assign resources to all the different programs which want them. So if one program needs ten threads and three processes while another needs one process with nine threads and five other processes need to run in the background, then let the scheduler do that. Don't let Joe Sixpack decide that since the computer has four cores, wull by gawd I'm gonna make my application use four cores !

Not smart :(


Quote:
The external parallelizing layers and tools aren't a real solution. They're just a po-man's way of getting an extra bump for not much effort. People have to buy more and more hardware to keep up with lamer and lamer software.

I didn't mean to promote that crap. Let me hop down to making friends and influencing people below and you can see what I meant ...

jwp wrote:
Your comments seem to make the presumption that one program only needs one process.

No, my quote does not make that presumption at all . In fact, your statement scares me. Do you know how a computer works ?

Quote:
knowing about the resources available is important for multiprocessing.

For general computing and desktop use, no it is not

Quote:
Otherwise, how many processes should the task be divided into? There are basically a few choices: (1) do one thing at a time, (2) use some magic number conjured out of thin air, or (3) make a very large number of processes (potentially wasting a lot of time and memory).

Jesus. The task should be divided up according to what needs to get done.

Using Bluecode's example of an email client :

Open the app with one thread, immediately spin off another thread to actually draw the windows, another to do the work to fill them. Thread One is listener thread for user input. User decides to collect mail, clicks [email protected] and one new thread created to collect those emails. User has two more accounts, clicks [email protected] and tommy@the_grill.org . One worker thread each. Three sets of mails being collected (seemingly) simultaneously, user interface still responsive. Mr User can even browse the main window and open last week's mail (another thread) or if he likes, open another window and write a happy birthday letter to his Mom (another thread.)

These threads and/or processes are all dependent on what he needs to do , not some peculiar calculation based on how many cores are available.

Now, what happens in the larger picture ? Due to the fact that an operating system has a scheduler, with a single core computer the scheduler will decide when each of these threads is handled. The scheduler will also be handling a lot of other tasks, because nowadays even a laptop is doing a lot of things "at once" (not really at once but it seems that way.)

The beauty of doing this correctly is that you can now take this exact same program and put it on a 4-core computer. Now, if the application has sixteen threads, instead of them lining up in a row like a freight train, the scheduler can hand out a task to every cores as the cores become available. You can't just decide that since you have four cores you're going to have four threads. First off, there's other stuff going on in the computer. Second, that's no more effective than having four DOS computers under one piece of sheet metal. Multi-tasking isn't about having an army of little computers that don't talk to each other. It's about doing a number of things in a way which seems simultaneous (although it really isn't.)

Quote:
There are many very useful programs that do need to know how to divide up work in order for them to fork the correct number of processes.

Sure. But there is no need for them to have any idea whatsoever about how many processors the computer has. If the app needs ten threads, give it ten threads. Then let the scheduler decide how to hand out cpu time.

Here's how it works in real life - let's say you have four cores available. There are 76 tasks running (I just ran top, that's what's going right now on my O350.) Your app opens, it adds another x # of tasks, let's say three threads to open. Are you going to choose 4 threads just because the box has four cores ? What's the point of that ? It's already processing another 76 tasks, how does 4 fit in there ? (Don't say 19 times.) You think it's going to preempt everything else just because your app wants four threads NOW , like a spolied child ?

Bullshit. There's no reason whatseover to know how many cores the box has. Divide the app up into what it needs, then let Mr Scheduler hand out cpu-time as a core becomes available.

Quote:
For example, pbzip2 (parallel bzip2) and pigz (parallel gzip) can run an order of magnitude faster than just using bzip2 and gzip, respectively. Likewise, GNU Make can take advantage of parallelism when building a project. The same goes for GNU Parallel -- that program splits up work into subprocesses and does tasks in parallel.

Just had this discussion with smj a little ... knowing the number of cores available is once again not the way to decide how to program this. For example, you have a 512 p O3900 and a 256k zip file. What are you going to do, check the number of cores and split it into 512 tasks ? That's stupid.

That's an extreme example but the point is valid. There are other factors that decide the proper nuber of threads. For general use, the number of cores available is not a factor.

Quote:
There are also special libraries that are used specifically for parallelism, and they also need to be able to detect the number of processors.

There is probably a good use for those libraries but general desktop computing is not one of them. An application should be correctly written for the job is has to do, not shoehorned into some one-size-fits-all shortcut that doesn't work worth a shit.

Quote:
I was reading through the code for GNU Parallel, and the code for detecting the number of processors was lacking, to say the least. If I remember correctly, it basically just works for Linux, FreeBSD, Solaris, AIX, and Darwin. Libraries and utilities specifically meant to execute tasks in parallel (and therefore remove the low-level detection from the application itself), should have better processor detection code that works for IRIX, HP-UX, NetBSD, OpenBSD, etc.

My instinctive feeling is to say, "GNU Parallel sounds like worthless shit." :P

Quote:
I want to create a small reference implementation so developers who need to write software like this can refer to the script.

I'd be the last one to criticize someone for writing software that includes Irix :D

However, I disagree with the idea that you can just stuff these things into some kind of script-kiddy package. If we take Fireflop as an example, I have read that it's actually heavily multi-threaded. But the thing is, it doesn't fucking work. What it should be doing does not even resemble what it does do. That piece of crap should be ajoy on a 4p box, but instead it's a nightmare. Multi-processing has to fit what the job is, not some easy-peasy 'pour in single-thread code at one end and get ha-chachachacha multi-thread code out the other end' fantasy.

You know, IBM is not a bunch of dummies. Really. The longer you hang out in computerland, the more you have to respect them.
ShadeOfBlue wrote:
This is partially true. It works great for IO-bound tasks, but for CPU-bound tasks it's different.

I expected a bigger ass-whuppin' than that ! Of course any broad beneralization is going to be wrong a lot of the time, which is why I tried to cover my butt with the "general desktop use" proviso. Didn't work tho :D

But I think your points are in a way the same as mine : how one handles multiple processors depends on what one needs to do, not on "how many cpu's does this box have ?"

Quote:
In a 3D renderer, you can trivially parallelize rendering by splitting rendering of individual lines of the output image into separate threads. However, if you ignore how many cores the system has and spawn all the threads at once, the OS scheduler will try to execute them all at the same time, there will be a lot of context switching and the program will run slower than if it knew how many cores it has.

I immediately think of the reason that SGI would not put faster processors in the Octane - the memory system couldn't feed them. And I'll go out on a limb and bet that the memory system in "modern" commodity computers can't feed the cpu's either.

In fact, if this were the main job of a computer, wouldn't it be better to have fifty little DOS computers with a single cpu and their own memory systems, with each one doing one task without interruption, then joining their answwers at the end ? A non-multitasking cluster ? Multi-tasking operating systems may not be the best solution for every requirement ?

jwp wrote:
Multiprocessing within a program is often for things that are not simple "general use."

For example, I have a SQLite database that is several gigabytes in size. When I want to run the backup, I use pbzip2 (parallel bzip2) which works several times faster than normal bzip2 on my computer. The database dump is a single text stream sent through a pipe, so the alternative is just to use normal bzip2 and wait for the whole task to complete, using a fraction of the computer's power. Logically it is only one task, but splitting it up into more tasks makes sense because it is CPU-bound.

jwp, you're scary. Did you know that you don't have a clue ? I hope you are not in the "IT" world but fear that you probably are ?
jpstewart wrote:
Ah, yes. Sadly, I've seen that one before, too. Edit /usr/nekoware/bin/glib-mkenums to change the first ( shebang ) line from:
Code:
#!/usr/bin/env perl -w
to:
Code:
#!/usr/nekoware/bin/perl -w
It has the effect of making Glib depend on neko_perl, but it'll work.

neko_perl is fine by me, it's going to be a lot newer than SGI perl for sure !

That worked, by the way :D

Quote:
(Not that you care about the reason behind the change.... I'm just rambling.)

No, thank you, the reason is more important than a recipe. I'll probaly forget but at least the information is here so others can use it in the future. In fact, that's one good reason to come here and make an ass of myself - these threads should help other people (if anyone ever bothers to make more Irix software ...) It's not magic and more people should be doing this. A big thanks to all the people who understand programming and are willing to take the time to help us buffoons out :D

2.12.12 has finished making ... time for gmake install. If I disap

edit: dang, 2.12.12 .... looks a little different. Let's see what happens. Thank you, jp.

edit 2 : hmm. So far no fireflop crashes. Knock on wood ....
vishnu wrote:
Hey wait a minute, are you sure firefox links against the gtk shared lib on your fuel? Because I'm pretty sure it doesn't... :shock:

We are speaking of firefox here, the most dangerous and unpredictable program known to man. Of course I'm not certain :D
Code:
urchin 26# ldd firefox-bin
libpthread.so  =>        /usr/lib32/libpthread.so
libsmime3.so  =>         /usr/nekoware/lib/firefox-3.0.19/libsmime3.so
libssl3.so  =>   /usr/nekoware/lib/firefox-3.0.19/libssl3.so
libnss3.so  =>   /usr/nekoware/lib/firefox-3.0.19/libnss3.so
libnssutil3.so  =>       /usr/nekoware/lib/firefox-3.0.19/libnssutil3.so
libsoftokn3.so  =>       /usr/nekoware/lib/firefox-3.0.19/libsoftokn3.so
libcairo.so.3  =>        /usr/nekoware/lib/firefox-3.0.19/libcairo.so.3
libfreetype.so.7  =>     /usr/nekoware/lib/libfreetype.so.7
libfontconfig.so.2  =>   /usr/nekoware/lib/libfontconfig.so.2
libXrender.so.1  =>      /usr/nekoware/lib/libXrender.so.1
libX11.so.1  =>  /usr/lib32/libX11.so.1
libXt.so  =>     /usr/lib32/libXt.so
libgthread-2.0.so.1  =>  /usr/nekoware/lib/libgthread-2.0.so.1
libXft.so.2  =>  /usr/nekoware/lib/libXft.so.2
libpangocairo-1.0.so.1  =>       /usr/nekoware/lib/libpangocairo-1.0.so.1
libpangoft2-1.0.so.1  =>         /usr/nekoware/lib/libpangoft2-1.0.so.1
libpango-1.0.so.1  =>    /usr/nekoware/lib/libpango-1.0.so.1
libgobject-2.0.so.1  =>  /usr/nekoware/lib/libgobject-2.0.so.1
libgmodule-2.0.so.1  =>  /usr/nekoware/lib/libgmodule-2.0.so.1
libglib-2.0.so.1  =>     /usr/nekoware/lib/libglib-2.0.so.1
libintl.so.9  =>         /usr/nekoware/lib/libintl.so.9
libsqlite3.so.1  =>      /usr/nekoware/lib/firefox-3.0.19/libsqlite3.so.1
libfastm.so  =>  /usr/lib32/libfastm.so
libmozjs.so  =>  /usr/nekoware/lib/firefox-3.0.19/libmozjs.so
libxpcom.so  =>  /usr/nekoware/lib/firefox-3.0.19/libxpcom.so
libxpcom_core.so  =>     /usr/nekoware/lib/firefox-3.0.19/libxpcom_core.so
libplds4.so  =>  /usr/nekoware/lib/firefox-3.0.19/libplds4.so
libplc4.so  =>   /usr/nekoware/lib/firefox-3.0.19/libplc4.so
libnspr4.so  =>  /usr/nekoware/lib/firefox-3.0.19/libnspr4.so
libdl.so  =>     /usr/lib32/libdl.so
libgtk-x11-2.0.so.1  =>  /usr/nekoware/lib/libgtk-x11-2.0.so.1
libatk-1.0.so.1  =>      /usr/nekoware/lib/libatk-1.0.so.1
libgdk-x11-2.0.so.1  =>  /usr/nekoware/lib/libgdk-x11-2.0.so.1
libgdk_pixbuf-2.0.so.1  =>       /usr/nekoware/lib/libgdk_pixbuf-2.0.so.1
libm.so  =>      /usr/lib32/libm.so
libsocket.so  =>         /usr/lib32/libsocket.so
libc.so.1  =>    /usr/lib32/libc.so.1
libsqlite3.so  =>        /usr/nekoware/lib/firefox-3.0.19/libsqlite3.so
libpixman-1.so.1  =>     /usr/nekoware/lib/libpixman-1.so.1
libglitz.so.2  =>        /usr/nekoware/lib/libglitz.so.2
libpng12.so.0  =>        /usr/nekoware/lib/libpng12.so.0
libz.so  =>      /usr/nekoware/lib/libz.so
libbz2.so.1.0  =>        /usr/nekoware/lib/libbz2.so.1.0
libiconv.so.3  =>        /usr/nekoware/lib/libiconv.so.3
libexpat.so.2  =>        /usr/nekoware/lib/libexpat.so.2
libgen.so  =>    /usr/lib32/libgen.so   delay-load
libXi.so  =>     /usr/lib32/libXi.so
libXext.so  =>   /usr/lib32/libXext.so
libpng.so.3  =>  /usr/nekoware/lib/libpng.so.3

But there are a few in there that look suspiciously like gtk2 conspirators ... No idea if this will really fix my crashes but so far so good. The message screens are even goofier than before and the tab-closing x'es look like hell but I can live with that.
Okay, I'm retarded, since 2.12.12 worked I figured I'd attempt a little more upgrading ..

glib-2.28.8
Code:
cc-1020 cc: ERROR File = gmain.c, Line = 2058
The identifier "_SC_MONOTONIC_CLOCK" is undefined.

if (sysconf (_SC_MONOTONIC_CLOCK) >= 0)
^

cc-1020 cc: ERROR File = gmain.c, Line = 2059
The identifier "CLOCK_MONOTONIC" is undefined.

clockid = CLOCK_MONOTONIC;
^

I'm guessing that the monotonic clock is a gnu invention ?

(btw, the earlier corrections in this thread are a tremendous help in building the gtk2 family. I wonder if a wiki section describing solutions people have found for building Irix apps would be a nice addition ? Search is okay but our info is so spread out ... )
jan-jaap wrote:
CLOCK_MONOTONIC is 'good enough' to measure time increments rather than the absolute time. IRIX has a similar clock: CLOCK_SGI_CYCLE. If the code really needs a cycle timer you can cook up replacement code using CLOCK_SGI_CYCLE.

It seems like it shouldn't even be checking this ...
gmain.c
Code:
#ifdef HAVE_MONOTONIC_CLOCK
/* We have to check if we actually have monotonic clock support.
*
* There is no thread safety issue here since there is no harm if we
* check twice.
*/
{
static gboolean checked;

if G_UNLIKELY (!checked)
{
if (sysconf (_SC_MONOTONIC_CLOCK) >= 0)
clockid = CLOCK_MONOTONIC;
checked = TRUE;
}
}
#endif

configure
Code:
cc-1020 cc: ERROR File = gmain.c, Line = 2064
The identifier "CLOCK_MONOTONIC" is undefined.

clockid = CLOCK_MONOTONIC;
^

Let me go see if I can butcher this some more .... thanks, J.
Have a little V100 box running Solaris 10, it makes an okay light-duty server. Has two fast ethernet interfaces
Code:
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
dmfe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.16.30.25 netmask ffffff00 broadcast 172.16.30.255
ether 0:3:ba:f8:9e:b9
dmfe1: flags=1000803<UP,BROADCAST,MULTICAST,IPv4> mtu 1500 index 3
inet 172.16.30.26 netmask ffffff00 broadcast 172.16.30.255
ether 0:3:ba:f8:9e:ba

So far so good ... but the other day this foo unplugged the switch, both interfaces went down, the second one never came back up. This has happened before, dmfe1 is stubborn.

< ifconfig dmfe1 up > doesn't bring it up ...
Code:
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
dmfe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.16.30.25 netmask ffffff00 broadcast 172.16.30.255
ether 0:3:ba:f8:9e:b9
dmfe1: flags=1000803<UP,BROADCAST,MULTICAST,IPv4> mtu 1500 index 3
inet 172.16.30.26 netmask ffffff00 broadcast 172.16.30.255
ether 0:3:ba:f8:9e:ba

I know I can reboot but stubborn. Is there a simple way to force the second interface into a running state ?
bluecode wrote:
Yes, of course. If you're using dhcp ...

Static ip :(
Quote:
The interfaces already have ip addresses assigned. What isn't working?

See the RUNNING part missing from the second interface in the printout ? It's like a Cisco port that's administratively down. Everything is there but it doesn't work. Dead as a doornail.

Quote:
BTW I'm far from an expert on this stuff but I don't see any difference in your two printouts. Did I miss something?

That was the point :D I ifconfig dmfe1 upped it, no change. Also tried a few similar commands (plumb) with same result .... I'm not much of a Solaris prison either. Luckily, it usually doesn't give any trouble.
bluecode wrote:
I'll get back to you in a few hours if nobody else does.

I gave up and hit < reboot -- -r > It came back up with both interfaces without touching a thing. Every hint I could find of that problem on the innertubes was about a bad cable or switch but pretty sure that's not the problem here, since a reboot fixed everything.

Strange.
Quote:
I actually get along pretty well with Solaris.

As long as you stick to the command line, it's pretty decent. Reliable as hell, that's for sure.
tgc99 wrote:
I couldn't resist the challenge and with a bit of grunt work glchess 0.4.7 builds on IRIX 6.2.

That's pretty cool. If you could take a moment and write up a short description of your grunt work, that'd be a big help to some of us dummies out here :D
yetanother**ixuser wrote:
he provided the patch files ...

You're right of course, but patch files are not searchable ... I'm a little concerned about the ongoing situation with software. If threads like this can get into a searchable structure with some explanation, then even if everyone here gets bored and disappears, at least some day someone else could come along and pick it up.

Also, from the beginner aspect of things ... if it looks like it is way too difficult to even start, no one will. I would hope that with these threads, even a person who was not a C programmer could see that basic tarbaby building is possible.

... somewhere over the rainbow ... ... oh well :D
bluecode wrote:
If this happens again try

ifconfig interface plumb up
ifconfig interface ipaddress

This should work, it's supposed to, but I tried it several times in different ways and it does not. I wonder what is going on that both interfaces go down when the switch powers off (that part makes sense) but only one comes back up ? Yet the second one says everything is correct, except it is not RUNNING. :( And it's not the cable or switch because a full reboot resets everything with no other chages..

zmttoxics wrote:
The other way is to check your configs, down the interfaces and do a "svcadm restart physical".

Good idear. I will probly get another chance, that plug is too easy to disconnect by mistake ...
Sorry, backed up a little bit, thought I'd see how high we can go in gtk2land before upgrading nekoware ... 2.13.7 was going well until almost the end :
Code:
cc-1196 cc: WARNING File = testfilechooserbutton.c, Line = 318
The indicated function is declared implicitly.

chooser = gtk_file_chooser_button_new_with_backend ("Select A File - testfilechooserbutton",
^

cc-1515 cc: ERROR File = testfilechooserbutton.c, Line = 318
A value of type "int" cannot be assigned to an entity of type "GtkWidget *".

chooser = gtk_file_chooser_button_new_with_backend ("Select A File - testfilechooserbutton",
^

cc-1515 cc: ERROR File = testfilechooserbutton.c, Line = 348
A value of type "int" cannot be assigned to an entity of type "GtkWidget *".

chooser = gtk_file_chooser_button_new_with_backend ("Select A Folder - testfilechooserbutton",
^

2 errors detected in the compilation of "testfilechooserbutton.c".
gmake[2]: *** [testfilechooserbutton.o] Error 2

I'm gonna make a wag that "chooser" should be something other than an integer ? What would be the most loverly way to achieve that ?

I'm also kind of wondering what a testfilechooserbutton is but maybe I don't want to know .....
ShadeOfBlue wrote:
Those errors are because of a missing function prototype for gtk_file_chooser_button_new_with_backend().

By default (if you forget the prototype or leave out types in the implementation), every C function returns an int, so this is the reason for the last two errors.

Makes sense. So I am going to ass ume that one would need the function prototype no matter what compiler one was using ? In other words, it's got to be in there somewhere or this code wouldn't build ? where is the damned thing ?
SunForSun wrote:
Still nothing. My hands is broken :-(

Don't give up yet. Try here :

http://www.sgidepot.co.uk/netboot.html

This is Ian Mapleson's site, he's a helpful person here, I have used this description before but it was years ago. I do remember one thing that was a problem - not all the files on the CD's are in the directories you expect. Some are in sub-directories that you have to open as well.

If it's your first time, the whole thing is stressful but it's possible to succeed. If I did, anyone can.

Here in northeast Ohio
Back in eighteen-o-three
James and Dan Heaton
Found the ore that was linin' Yellow Creek.

They built a blast furnace
Here along the shore
And they made the cannonballs
That helped the Union win the war.

Software patents ...
Software patents ...
My sweet Jenny I'm sinkin' down
Here darlin' in Youngstown.

Well my daddy worked the furnaces
Kept 'em hotter than hell.
I come home from 'Nam worked my way to scarfer
A job that'd suit the devil as well.

Taconite coke and limestone
Fed my children and make my pay
Them smokestacks reachin' like the arms of God
Into a beautiful sky of soot and clay.

Software patents ...
Software patents ...
Sweet Jenny I'm sinkin' down
Here darlin' in Youngstown.

Well my daddy come on the Ohio works
When he come home from World War Two.
Now the yard's just scrap and rubble
He said "Them big boys did what Hitler couldn't do."

These mills they built the tanks and bombs
That won this country's wars.
We sent our sons to Korea and Vietnam
Now we're wondering what they were dyin' for.

Software patents ...
Software patents ...
My sweet Jenny I'm sinkin' down
Here darlin' in Youngstown.

From the Monongahela valley
To the Mesabi iron range
To the coal mines of Appalachia
The story's always the same.

Seven hundred tons of metal a day
Now sir you tell me the world's changed
Once I made you rich enough
Rich enough to forget my name.

Software patents ...
Software patents ...
My sweet Jenny I'm sinkin' down
Here darlin' in Youngstown.

When I die I don't want no part of heaven
I would not do heaven's work well.
I pray the devil comes and takes me
To stand in the fiery furnaces of hell.

Software patents ...
Software patents ...