> The problem is that it's very hard to do this in a way that's easy to mark.
I used to have prof who did the semi-creative assignment thing, and this assessment is bang on the money.
I once had to write a blackjack game in SmallTalk. The only mark I lost is because I made the dealer inherit from the player class, instead of the deck.
WTF?! The deck? HELLO! Maybe, MAYBE I could see him wanting to inherit from the game, and make him part of game play. But making him inherit from the deck means replicating draw and hit methods, and makes no sense whatsoever.
10 years later and about a billion lines of code later, I'm still pissed at that TA.
That's okay; you know the trick whenever you have an unsupported postscript printer, under any operating system? Yeah, that one! The one where you just set it up as an Apple Laserwri.. oh, never mind.
> for those who haven't been beaten over the head > with alginment and register offsets from schooling
Or by SIGBUS when porting sloppy x86 code to Sparc.
An intermediary port to Alpha/Linux was actually useful, since you could make the application *RUN* and it *syslogs* alignment problems. Way cool. Then you just have "lucky" alignment problems to find (argh) and endianness-foo.
There is no problem using reboot on Solaris, as long as you understand what it does. In fact, I use it more often than shutdown -g0 -i0 -y because the few times I ever reboot a box it's because I want to pass arguments to the kernel or generate a crash dump.
Of course, if you have any running apps which can handle an off-the-cuff reboot, you should probably either stop 'em or pop down the run level first..
BrainBoost seems to trying to fill the void left by AJ.
I asked "Who wrote The Call of The Wild"; the first result "A year later, in 1903, he published The - Call - of - the - Wild . In that same year, London left [...]"
Although, stupidly, the fourth result was "Shakespeare wrote over 150 sonnets!"
Next, I asked "What detective books did Jack London write?" and got nothing useful.
Too bad it's so Goddamned slow, if it was faster it might may a fun toy.
I used to have a Kenwood stacker. Does that count? 'Cause you could throw six or eight disks on the spindle and it would pull 'em down and play 'em one at a time.
> s to your comment on segfault, if a program is > correct, where can it get its bad pointer from? > Misaligned struct members, of course.
No, that generates SIGBUS.
Otherwise -- valid points.
Oh wait, I see where you're coming from. You should n't be able to get misaligned struct members in that struct; GCC doesn't know anything special about it and pads per Solaris ABI -- not that it matters, since everything is pointer-sized, anyhow.
I'd be more willing to bet that your software was doing an ifdef _GNUC_ and assuming something about the architecture it shouldn't have.
I run 2.95.3 professionally under Solaris 8, and have been running the 2 series since 1997 with Solaris 2.5.1, 7/x86, and 8.
We've played a bit with 3.x but it broke in a few places (__FUNCTION__), and we haven't had the time to go re-validate the enormous "tested correct" codebase. For us, correctness is more important than ANYTHING.
Anyhow, your problem under the 2 series would be resolvable by running a special script which messes with the Solaris headers. I can't remember the name of the script, but it shipped with GCC2, and presumably three. Also, the packages from sunfreeware.com have always installed without problems, including the 3.2 package we installed on one of our testbed dev platforms (we want to leverage constant functions and a few other things in 3 someday, for a performance boost).
> Also, some programs compiled with gcc tends to segfault. > I haven't found the exact reason,
You're trying to dereference a pointer to a memory address which isn't yours. That's what segfault means.
> I think it's an ABI problem.
gdb programname corefile bt
You'll know in two seconds flat if it's an ABI problem, because it'll be crashing in the middle of a system call.
Of course, it probably isn't, since the function arguments and their behaviour are dictated by the code and the system libraries.
GCC works VERY WELL (excluding raw speed) under Solaris. You must be doing something wrong.
I'm interested, but I'll flake out almost immediately. Work load is WAY too high.
Feel free to drop me a line if you feel like doing a little brainstorming. A simple version of this project could be done in a man week or two (assuming that man is an experienced RDBMS + C/UNIX coder). After that, it's a tuning exercise.:)
I *WOULD* be interested in being a tester. 'Specially if it runs under Solaris and Oracle.
You don't need to hack stdio to make Samba work with an Oracle DB as storage -- unless you really want your Samba config files, etc, in that database.
The reason is that Samba has an EXCELLENT internal VFS implementation which happens to use the stdio as its back-end storage. Add another filesystem type to their VFS structs, and all of a sudden you can share it. Magic! In fact, Samba probably has the cleanest VFS-type implementation I have ever seen. Well done, Samba dudes.
> Does Oracle's raw storage system really work? > Like with no OS, as I've heard?
I've heard of this, never done it. It works just fine with raw partitions, though -- although there doesn't really seem to be any benefit to using them if your operating system has a decent aio implementation.. And using an underlying filesystem for Oracle makes it a lot easier to do backup/recovery.
> The problem is that it's very hard to do this in a way that's easy to mark.
I used to have prof who did the semi-creative assignment thing, and this assessment is bang on the money.
I once had to write a blackjack game in SmallTalk. The only mark I lost is because I made the dealer inherit from the player class, instead of the deck.
WTF?! The deck? HELLO! Maybe, MAYBE I could see him wanting to inherit from the game, and make him part of game play. But making him inherit from the deck means replicating draw and hit methods, and makes no sense whatsoever.
10 years later and about a billion lines of code later, I'm still pissed at that TA.
Sometimes it's 0L. At other times, it's ((void *)0). And I'm sure that at sometime in the past it was ((char *)0).
> So long as it's a laserwriter II or better;
That's okay; you know the trick whenever you have an unsupported postscript printer, under any operating system? Yeah, that one! The one where you just set it up as an Apple Laserwri.. oh, never mind.
> And don't get me started on the IPC blunders I've
> seen over the years from "professional" programmers
Ask some of those programmers how to portably pass a file descriptor between processes, when one isn't a child of the other.
That's always good for a laugh.
(In case you care, IIRC the answer is in Stevens:UNP1)
> for those who haven't been beaten over the head
> with alginment and register offsets from schooling
Or by SIGBUS when porting sloppy x86 code to Sparc.
An intermediary port to Alpha/Linux was actually useful, since you could make the application *RUN* and it *syslogs* alignment problems. Way cool. Then you just have "lucky" alignment problems to find (argh) and endianness-foo.
> I mean, who has "Gay" in the name?
There is a law firm in town named "Gay and Associates".
I almost pissed myself laughing one day when I had to drop some papers off there.
Don't worry, it was created by NASA. It will be easy to convince it that it is imperfect.
> Yes, I'm afraid that I've seen that episode of Star Trek many times
Um, yes, but have you seen ST:TMP???
kiloton is an imperial unit.
kilotonne is the metric unit.
1 kilotonne = ~1.1025 kilotons (assuming my mental math skills are not affected by caffeine deprevation)
How about Spiced Ham over Ip Telephony?
Spam is already a contraction of Spiced Ham (Hormell). SHIT seems to be as an acronym here as any.
Sigh. Not another jackass who thinks it is legitimate to turn away mail based on HELO.
(Hint: See RFC 1123)
> our office is short on Linux command line vi experts,
That's okay -- emacs runs just fine from the console.
Red-haired John? Is that really you??!
There is no problem using reboot on Solaris, as long as you understand what it does. In fact, I use it more often than shutdown -g0 -i0 -y because the few times I ever reboot a box it's because I want to pass arguments to the kernel or generate a crash dump.
Of course, if you have any running apps which can handle an off-the-cuff reboot, you should probably either stop 'em or pop down the run level first..
telinit doesn't tell init about any special actions.
/etc/inittab and /etc/rc?.d/[SK]*
It tells init what run level to initialize.
What happens at that run level is defined by (depending on OS)
> since non-SQL formats like DBase have always been
> a little funky when they start having to deal
> with million-record tables.
Oh, yes, SQL the magic bullet. I have a database problem! No matter what it is, I can solve it by migrating to a database system which uses SQL!
> It's amazing how ugly legacy databases can be
> compared to today's tech.
Yes, today's tech! SQL, the magic bullet! Why, we should use Oracle! It's SQL and thus must be modern! It's only been around since 1979!
Wait!
1979 was a long time ago.
Oh, dear?
Could it be that Oracle is not modern tech? But, how could it not be? It uses SQL, the magic bullet!
Hint: query language and scalability are not related.
Hint II: RDBMS is no magic bullet, either.
BrainBoost seems to trying to fill the void left by AJ.
I asked "Who wrote The Call of The Wild"; the first result "A year later, in 1903, he published The - Call - of - the - Wild . In that same year, London left [...]"
Although, stupidly, the fourth result was "Shakespeare wrote over 150 sonnets!"
Next, I asked "What detective books did Jack London write?" and got nothing useful.
Too bad it's so Goddamned slow, if it was faster it might may a fun toy.
If you ask Google if Jeeves is gay, Google will send you off to the old Jovial page -- which still contains the answer.
> Anyone make a six-disc record player?
I used to have a Kenwood stacker. Does that count? 'Cause you could throw six or eight disks on the spindle and it would pull 'em down and play 'em one at a time.
> "Remove End of Line". Not sure what that even means
If it's "Remove text until End of Line", it would be equivalent to emacs' yank function; also control-k.
> s to your comment on segfault, if a program is
> correct, where can it get its bad pointer from?
> Misaligned struct members, of course.
No, that generates SIGBUS.
Otherwise -- valid points.
Oh wait, I see where you're coming from. You should n't be able to get misaligned struct members in that struct; GCC doesn't know anything special about it and pads per Solaris ABI -- not that it matters, since everything is pointer-sized, anyhow.
I'd be more willing to bet that your software was doing an ifdef _GNUC_ and assuming something about the architecture it shouldn't have.
I run 2.95.3 professionally under Solaris 8, and have been running the 2 series since 1997 with Solaris 2.5.1, 7/x86, and 8.
We've played a bit with 3.x but it broke in a few places (__FUNCTION__), and we haven't had the time to go re-validate the enormous "tested correct" codebase. For us, correctness is more important than ANYTHING.
Anyhow, your problem under the 2 series would be resolvable by running a special script which messes with the Solaris headers. I can't remember the name of the script, but it shipped with GCC2, and presumably three. Also, the packages from sunfreeware.com have always installed without problems, including the 3.2 package we installed on one of our testbed dev platforms (we want to leverage constant functions and a few other things in 3 someday, for a performance boost).
> Also, some programs compiled with gcc tends to segfault.
> I haven't found the exact reason,
You're trying to dereference a pointer to a memory address which isn't yours. That's what segfault means.
> I think it's an ABI problem.
gdb programname corefile
bt
You'll know in two seconds flat if it's an ABI problem, because it'll be crashing in the middle of a system call.
Of course, it probably isn't, since the function arguments and their behaviour are dictated by the code and the system libraries.
GCC works VERY WELL (excluding raw speed) under Solaris. You must be doing something wrong.
> I've timed it: SIX SECONDS
How large was your sample size?
You DO know what "half life" means, don't you?
I'm interested, but I'll flake out almost immediately. Work load is WAY too high.
:)
Feel free to drop me a line if you feel like doing a little brainstorming. A simple version of this project could be done in a man week or two (assuming that man is an experienced RDBMS + C/UNIX coder). After that, it's a tuning exercise.
I *WOULD* be interested in being a tester. 'Specially if it runs under Solaris and Oracle.
You don't need to hack stdio to make Samba work with an Oracle DB as storage -- unless you really want your Samba config files, etc, in that database.
The reason is that Samba has an EXCELLENT internal VFS implementation which happens to use the stdio as its back-end storage. Add another filesystem type to their VFS structs, and all of a sudden you can share it. Magic! In fact, Samba probably has the cleanest VFS-type implementation I have ever seen. Well done, Samba dudes.
> Does Oracle's raw storage system really work?
> Like with no OS, as I've heard?
I've heard of this, never done it. It works just fine with raw partitions, though -- although there doesn't really seem to be any benefit to using them if your operating system has a decent aio implementation.. And using an underlying filesystem for Oracle makes it a lot easier to do backup/recovery.