Domain: liu.se
Stories and comments across the archive that link to liu.se.
Comments · 544
-
you should have prototyped the argument types
Then maybe you should have prototyped the argument types so they would be checked or converted as appropriate. Dynamic typing does work (in some languages better than others); you just have to learn to use it right.
-
Re:Interesting.
On the contrary recent studies show that most Linux users don't shower enough and are indeed infected with worms.
-
Proof left as an exercise to the non-member
First of all, the KLT (Karhunen-Loeve Transform) is theoretically most efficient at packing energy, but 1. the basis vectors depend on Markov statistics of the data, and 2. because the KLT isn't as factorable as the FFT or DCT, there is no "fast" algorithm like there are for FFT and DCT. Second, it appears that the KLT with Markov settings from a corpus of actual images closely resembles the DCT, as shown in the figures of these interesting slides.
Proofs exist, but IEEE non-members aren't allowed to view them, and no way am I spending three figures on an annual membership just to argue a point on Slashdot.
-
Whack-a-mugu!
-
Re:Luxor ABC80
The ABC-80 was the first computer I ever saw, and I think the same is true of a lot of Swedes.
I read somewhere that it was basically a clone of the Tandy/Radio Shack TRS-80.
An emulator can be found here:
http://www.lysator.liu.se/~exon/archive.html -
Re:Why didn't it succeed?I've programmed extensively in both languages and like both, but there are some compelling reasons why C caught on software development and Pascal (in its original form) did not.
- The C language specifies prototyping and separate compilation interfaces. These are not specified for the Pascal programming language (although I'm sure tools like Delphi have hooks, this isn't part of the original standard Pascal).
- Pascal lacks bit manipulation operators. C has a strong de facto standard that allows precise control over memory layout (using short, long and char data types).
- For systems programming C allows type conversions and "typeless" pointers (char * or unsigned char * in the old days, now void *). Pascal lacks an address of operator (the & operator in C)
- Pascal originally did not have conformant arrays so functions handling arrays used the array dimensions for type checking. Later versions allowed array dimensions to be set at run time.
- There are no static variables or compile time initializatoin (only globals with run time initialization).
- The I/O model was hard to implement (as it assumed look-ahead) and record oriented. Furthermore it was part of the language and NOT in a standard library like C.
- Labels (destinations of gotos) had to be numeric values.
-
Why Pascal is not always my favourite language
Some of those issues have been solved with advent of the Turbo/Object Pascal by Borland which is currently the most used Pascal dialect (for example the FreePascal uses it) which has taken many things from C. However, a still worthy read.
-
The World of Eamon
Ahhh... back in the Apple ][ days of yore... a fellow named Donald Brown created the world of Eamon, an RPG game with a fun twist -- it was also a game shell. You could get game modules from your BBS (at 300 baud on your Hayes Micromodem) or write your own modules. Your (mainly) text based game could have whatever number of rooms, treasures, monsters and allies (charisma roll please...) with whatever properties you wanted.
Tearing apart the Applesoft Basic and hacking my own weapons were a joy indeed!
And best of all, they're still out there! -
Re:Seems a bit silly...
I think I'd call it "ski boots".
LK -
Re:Obligatory
Rob Pike has done some really cool stuff, but he's also kind of a weirdo. He doesn't believe in putting any "#include" directives in ".h" files. He says you should figure out what the dependencies are and put all the includes in your ".c" file.
Rob Pike's Notes on Programming in C (go to the bottom of the page).
-
Re:You use a mac, don't you
Only mac users call the command line the 'CLI'...
Nope. The Amiga always called its shell the CLI.
-
Congrats, but be wary of monocultures...OpenSSH is da bomb, and no mistake. The people who work on it are very, very good, and its marketshare is deserved.
But even they have made mistakes once in a while. An exploitable hole in ssh is a worm-writer's dream. There aren't many sshds that aren't running as root...
I'm kinda glad there are things like lsh out there. Diversity makes the bad guys' job harder.
-
Re:Here's where you get the metal for lockpicks, f
MIT Guide to Lockpicking - Fairly thorough guide on lockpicking.
-
Re:A valuable skill
You might also check out Ted the Tool's on-line book called the "MIT Guide to Lock Picking" found here among lots of other places.
-
Re:Screenshots
You mean more like http://www.student.itn.liu.se/~erisv779/xorg.jpg ?
I edited xcompmgr.c
Look for variabels "shadowRadius", "SHADOW_OFFSET_X" and "SHADOW_OFFSET_Y". -
Re:the real reasonI have never really used FORTRAN and was quite intrigued by your comment. A google search for example code brought me some examples of which I found this one the most interresting:
SUMMA = 0.0
The question is, are all FORTRAN coders that obsessed with various forms of sexual acts?
ADAM : DO I = 1, 10
X = TAB(I)
EVA : DO J = 1, 20
IF (X > TAB(J)) CYCLE ADAM
X = X + TAB(J)
END DO EVA
SUMMA = SUMMA + X
IF (SUMMA >= 17.0) EXIT ADAM
END DO ADAM -
Re:reminds me of my first cluster project...
And actually, clusters running the NewTek Lightwave "ScreamerNet" software (though we called them "render farms" in those days) were developed in 1993 and publically announced in 1994.
Note also that the below refers to "Screamer" software - this was an amiga-only clustering solution which pre-dated ScreamerNet by a year!
Hopefully this post will go some way towards explaining the typical rage ex-amiga serious users (not gamers, who tend to think Amiga==A500) exhibit - we were doing all manner of Cool Stuff, then business decisions (like CEOs absconding to Bermuda) squandered our huge technological lead then killed our platform. The lesson of the story is never invest time in a proprietary platform - most ex-amiga people with sense are on linux now (those without sense are busily repeating their mistakes on Mac OS X).
NewTek, Inc. announces ScreamerNet
Las Vegas, March 20, 1994 - NewTek, Inc., the company that brought
professional video and animation production to the masses with the Video
Toaster introduces ScreamerNet for LightWave 3D users.
ScreamerNet is the evolution of the Screamer rendering hardware
announced last August. "As we pursued development of the Screamer
hardware it became evident that high speed processors were quickly
becoming commodity items." said NewTek President Tim Jenison. "Rather
than NewTek trying to keep up with the hardware wars we decided to release
software that will allow LightWave users to select the rendering machine
of their choice."
ScreamerNet is a rendering software package that allows LightWave 3D users
to take advantage of the rendering power offered by workstations from a
variety of vendors. The software is Windows NT compatible and will support
hardware that utilizes Intel, MIPS and DEC Alpha processor chips.
ScreamerNet's suggested retail price is $1995 and will support up to eight
machines.
"LightWave 3D has become the animation package of choice for most of the
cutting edge action shows in Hollywood," stated Jenison. "Television
programs such as seaQuest DSV, Star Trek: The Next Generation, Babylon 5
and RoboCop are using the Video Toaster and LightWave 3D to push the
envelope of visual effects. With the introduction of ScreamerNet they
will have access to the rendering power they need to completely redefine
the standards for effects in television and film production."
"As the makers of revolutionary products like Video Toaster and the new
Video Toaster Flyer, NewTek means high technology at an unbelievably low
price point," said NewTek's Marketing Director Donetta Colboch. "While
ScreamerNet represents a dramatic breakthrough in 3D rendering
price/performance, it's designed and priced for the professional
animation facility."
NewTek will be showcasing the ScreamerNet software at the National
Association of Broadcasters Convention, March 21-24 in Booth #11050. -
Re:It must have something to do with the time...They need more HTTPanties
Such as "403 : Forbidden" or "400 : Bad Request", although I'm curious as to what would happen with "405 : Method Not Allowed", "411 : Length Required" and "305 : Use Proxy"
...
101: Switching Protocols -- when she's changed sexual orientation to avoid having to date you
300: Multiple Choices -- for one one Doug Winger's Furry perversions
303: See Other -- when you're not her type
413: Request Entity Too Large -- for when she wants to say no, while feeding his ego
402: Payment Required -- um, 'nuf said.
-
Re:More likely as an input device
At that point you are totaly wrong.
It is possible to make direct input to the brain, it has already been done, over two years ago.
Professor Kevin Warwick, who heads the Cybernetics Department at the University of Reading in the United Kingdom has already done this. He have tried a sonar connected to the nervous system in his arm and by that after only a few minutes got used to the new six sense. He was able to blindfold manuvre in a room without bumping into things.
Why choose the arm to connect to?
The meridian nerve was chosen because most of the nerves in this part of the body are connected to the hand, with very few splinter nerves - something like a freeway, and is a clean pathway to the nervous system.
For futher reading I recommend http://www.ida.liu.se/~HKGBB0/studentpapper-02/chr is-ryder.pdf -
Re:QuestionIt's too bad Bluetooth dosen't support any audio better than mono... I think Bluetooth stereo headsets would be awesome, but alas, it's not possible without stupid hacks.
These stereo bluetooth headsets are out now. As far as I can see stereo is supported in bluetooth.
-
Pascal - all of it
I love(d) Pascal. It was simply the coolest bestest language going.
Sure Kernighan likes to bash Pascal... says it isn't suitable for serious system level programming.... but then again how does he explain MacOS?
Ah well I am a C++ java type like everyone else these days.... but I love Pascal still. -
RDF (and OWL) in Pike
I noticed the article made no mention of Pike (also the name of a fish - see language logo). Pike's a fine C-like scripting language
...that I know extremely poorly myself, but anyway..From Pike's official homepage (at the University of Linkoping, Sweden):
The release of Pike 7.6 marks the first results of a long-running project to make Pike the first scripting language for the Semantic Web. The current highlight in that respect is the support for W3C's standard formats RDF and OWL.
Worth downloading and checking out for other reasons than "just" RDF & OWL. Free software, available under LGPL, GPL, and MPL (Mozilla Public License).
-
RDF (and OWL) in Pike
I noticed the article made no mention of Pike (also the name of a fish - see language logo). Pike's a fine C-like scripting language
...that I know extremely poorly myself, but anyway..From Pike's official homepage (at the University of Linkoping, Sweden):
The release of Pike 7.6 marks the first results of a long-running project to make Pike the first scripting language for the Semantic Web. The current highlight in that respect is the support for W3C's standard formats RDF and OWL.
Worth downloading and checking out for other reasons than "just" RDF & OWL. Free software, available under LGPL, GPL, and MPL (Mozilla Public License).
-
RDF (and OWL) in Pike
I noticed the article made no mention of Pike (also the name of a fish - see language logo). Pike's a fine C-like scripting language
...that I know extremely poorly myself, but anyway..From Pike's official homepage (at the University of Linkoping, Sweden):
The release of Pike 7.6 marks the first results of a long-running project to make Pike the first scripting language for the Semantic Web. The current highlight in that respect is the support for W3C's standard formats RDF and OWL.
Worth downloading and checking out for other reasons than "just" RDF & OWL. Free software, available under LGPL, GPL, and MPL (Mozilla Public License).
-
Re:Questions...1) Who gets the bill when the system screws up and slams the nice $200K car instead of parking neatly next to it?
An interesting question. People familiar with Adaptive Cruise Control (ACC), which will automatically slow your car down when the cruise is set to maintain a preset following distance from the slower-moving car in front of you, might ask the same question. The answer in the ACC case is the you as the driver must always have your car under control. In this case, it sounds as though the driver is completely removed from the loop, as the system uses hydraulic actuators to steer each front wheel. I doubt that in this configuration you could ever sell this system to the public...
2) How does the system deal with engine/linkage issues. Cars don't provide smooth power/steering at all times. If the engine is out of tune or has a catchy throttle, can the system deal with that as well as/better than a human?
This is handled the same way that traction control will handle it -- by using the car's electronic throttle. The S60 (and most new cars) does not have a conventional cable-actuated throttle... It uses a sensor at the throttle pedal and a servo at the throttle itself. By requesting an engine ouptut torque of "x", the engine computer will automatically select the position of the throttle. My guess is that this team did get a little help from Volvo in Sweden to make this happen. They'd need to know what CAN messages to send out in order to get the engine computer to listen to them. (normally this right is reserved for the ABS/traction control controller)
3) How is it told where to park? It would have been nice if it was clear in the video what the driver did to tell it that. The article alludes to some sort of analysis system for this, but I like pretty pictures.
;)There is another link that give a little more insight. It seems that the driver initiates a "scan" as he approaches a vacant parking space. As the car passes the space, the system determines whether or not the space is large enough. If so, the system alerts the driver and the driver brings the car to a stop. He activates the "park" command and the system takes over.
-
Re:Another way to do this ...
I saw this on a Japanese TV-Show back then in the 80s... Guess it never went into production.
But check out last years EVOLVE project (more here), which included the design of autonomous wheel corners. With these babies, you can set all the wheels of your car to the same yaw angle and so translate your car, i.e. move it parallel to its lateral axis. Parallel parking becomes a piece of cake! Unfortunately, 90deg angles require a somewhat more sophisticated steering rack, so you can't just enter the parking space perpendicularily... -
Re:Another way to do this ...
I saw this on a Japanese TV-Show back then in the 80s... Guess it never went into production.
But check out last years EVOLVE project (more here), which included the design of autonomous wheel corners. With these babies, you can set all the wheels of your car to the same yaw angle and so translate your car, i.e. move it parallel to its lateral axis. Parallel parking becomes a piece of cake! Unfortunately, 90deg angles require a somewhat more sophisticated steering rack, so you can't just enter the parking space perpendicularily... -
LINUX Real-Time Target
RTFA'd, saw the movies. Where does it say Linux?
Nowhere, that's how I got to the conclusion that this story must have been submitted by one of my colleagues (am associated to that department, myself)... :)
As far as I remember, the computer controlling the electro-servo hydraulics actually *is* powered by Linux. I suppose it was RTLT, because the students and several of my colleagues did much modelling in Simulink.
Well, there is some more information available, but this year's students did not as equally good a job of documenting their project as the 2003 students (Swedish only, though)... -
LINUX Real-Time Target
RTFA'd, saw the movies. Where does it say Linux?
Nowhere, that's how I got to the conclusion that this story must have been submitted by one of my colleagues (am associated to that department, myself)... :)
As far as I remember, the computer controlling the electro-servo hydraulics actually *is* powered by Linux. I suppose it was RTLT, because the students and several of my colleagues did much modelling in Simulink.
Well, there is some more information available, but this year's students did not as equally good a job of documenting their project as the 2003 students (Swedish only, though)... -
LINUX Real-Time Target
RTFA'd, saw the movies. Where does it say Linux?
Nowhere, that's how I got to the conclusion that this story must have been submitted by one of my colleagues (am associated to that department, myself)... :)
As far as I remember, the computer controlling the electro-servo hydraulics actually *is* powered by Linux. I suppose it was RTLT, because the students and several of my colleagues did much modelling in Simulink.
Well, there is some more information available, but this year's students did not as equally good a job of documenting their project as the 2003 students (Swedish only, though)... -
Better video
Here's a better video where you can actually see the user interface and how the driver interacts with it...
-
Re:what the?
There is another video without the guy. http://www.ikp.liu.se/evolve/2004/filmer/Park_aut
o .wmv -
Re:Agree. Better places to put in effort
Strictly speaking, little if any RealCode was written in Pascal. The usable Pascal implementations all extended and modified the language. The standard form of the language is nearly unusable for serious work due, for instance, to the fact that the size of an array is part of its type. See Brian Kernighan's Why Pascal Isn't My Favorite Programming Language.
-
Re:Why?
Very possible, via a graphics library that doesn't reqire X (e.g. SVGALib, etc) and then just code in a way to emulate the X server (just the parts needed for compatibility with X-based programs), and voila, you've got WM (window manager) without X!
Searching the web, I came across a WM that mimicks the Amiga Workbench UI nicely, it requires X. It's called AmiWM, and you should see some of the screenshots on the site, looks almost exactly like the Workbench UI, with, possibly, a few differences on the outside, but should be suitable for Amiga-freaks who may use a Unix workstation every now and then. :) -
Re:Can't waitpike can do something like that:
Pike v7.6 release 7 running Hilfe v3.5 (Incremental Pike Frontend)
the automap operator [*] maps each element of the vector into the equation one by one. i have seen one other language that has such a feature, but i don't remember what it was.
> array a=({ 1, 2, 3 });
> array b=({ 4, 5, 6 });
> array c;
> c=a[*]+(2*b[*])[*];
(1) Result: ({ /* 3 elements */
9,
12,
15
})
greetings, eMBee. -
No, not Rutan
There are no posts of sci.space.* by Burt Rutan in recent years (or anyone else of scaled composites ). He is pretty tight-lipped, especially when compared to Carmack.
You will find, however, many informative posts by the one and only Henry Spencer, author of The Ten Commandments for C Programmers and possibly the most knowledgeable person in the world about the history of the U.S. space program.
-
No, not Rutan
There are no posts of sci.space.* by Burt Rutan in recent years (or anyone else of scaled composites ). He is pretty tight-lipped, especially when compared to Carmack.
You will find, however, many informative posts by the one and only Henry Spencer, author of The Ten Commandments for C Programmers and possibly the most knowledgeable person in the world about the history of the U.S. space program.
-
Re:Which is nice...
There's always nettle.
It's not quite as full featured as OpenSSL, but if all you need are basic crypto functions, it's small, non-buggy, and fast... -
Re:try, catch, finally (return values)
NULL is often (void *)0, which is *technically* valid on some architectures (OS notwithstanding). It's just so unlikely a result that it's safe to use.
NO!!!! (void *)0 is not the address of anything (that the C program can use). See the comp.lang.c FAQ on null pointers.
-
Re:What was Ellison doing there?
For those that don't know Last Dangerous Visions is the Duke Nukem Forever of the science-fiction world. Only it's been going on a hell of a lot longer, and generated more all around bad feelings. (And on the Interweb almost nothing is gone forever, so here's the flame talked about.)
-
this is strikingly similiar to Pikefrom Pike website:
Pike is a dynamic programming language with a syntax similar to Java and C. It is simple to learn, does not require long compilation passes and has powerful built-in data types allowing simple and really fast data manipulation.
Syntatically, D is almost identitical to Pike, like the foreach and the range operator "..". Pike is also loosely object oriented, and has a rich set of libraries just like Python, Perl or even Java.
I'm not sure if the Author has borrowed ideas from Pike, but it is is really a great language that has been around for 10+ years, tested in real world applications.
-
Perl6 is a mistakeI've been using perl pretty much constantly since the Pink Camel, and believe me, Perl 5 is an extremely good language for quick scripting things. That's what it was designed for. Sure, you can do big projects in it, but it's not exactly ideal. Recently I've started using Ruby as well, and I intend to move my department over to it instead of wasting time with Perl 6.
One of the goals of Perl 6 is to make non-trivial projects possible. That's good. The way it's being done is bad. Perl was once a lightweight, extremely flexible language. Now it's become a huge ugly monster. People wanted OO, so a nasty hack was bolted on top to allow some semblance of it. Now this nasty hack is being expanded. Sure, the code's different, but the basic form is the same. Kludge upon kludge upon kludge; I'd much rather have a nice, clean, pure language (and not one with loads of irritating whitespace thank you very much).
The same goes for the syntax. All the switching between $, @ and % is really irritating (ask a newbie how to get at the length of the keys array of a hash inside a hash, for example), and the changes proposed for 6 are just making this worse -- it seems that Larry, in his infinite wisdom, wants to prefix every data type with a different hard-to-type character. Perl was only designed for the three data types, and adding more is a mess.
Perl 6 is a complete rewrite, but it keeps all the mess which has accumulated over the previous versions. This is not good. Sure, my const int $var = 27; may look neat (in the same way that, say, Pascal does), but $var isn't entirely constant, or entirely an integer, it's just a hack which makes it sort of behave like one. The whole thing is an exercise in pseudo-computer science masturbation with little real purpose except to please the managers who dislike the one thing that makes Perl special.
On a similar note is regexes. I'm an avid fan of regular expressions simply because a nondeterministic finite automata is far more flexible than linear code. However, Larry must have been smoking that cheap $2 crack when he wrote this. Does he want Perl 6 to be flex or something?
I won't be going on to use 6. It's a nice idea, but it's completely unnecessary. It won't make large projects any easier to manage (the language is still, at heart, an almighty hack -- an impressive one, but still a hack). It won't make OO any cleaner. It won't make development any faster. To put it bluntly, Perl scripts will still look less beautiful than our friend Mr Goatse. I'd prefer to use a language which has always been pure synthesis of science and engineering, not some half-baked imposter.
Perl 6 will be nice, but I'm guessing it will be the end of Perl. It can't do what it wants to do whilst still being based upon a nasty mess. There are now other options, which provide all of Perl's power and none of the mess. Sorry, but *BSD^H^H^H^H Perl is dying. Larry is buggering it up the ass without lubricants, just like Shoeboy is doing to Larry's daughter.
-
Re:Its GBP!
The "other one" is called hash - The jargon file says "The pronunciation of '#' as 'pound' is common in the U.S. but a bad idea
... The character is usually pronounced "hash" outside the US." -
Re:In uml
You can use dia for all kinds of things.
-
Re:YANISL: Just What We Needed
Pike.
-
The cost of C/C++ and no bounds checking
I'm a long time UNIX/Linux hacker (I first programmed on UNIX on a VAX). I've written a lot of C/C++ code. But long ago I used Pascal and more recently I've been using Java more.
Both Pascal and Java do range checking. That is, they check the bounds of arrays (buffers) when they are accessed. This means that about half of the security exploits (including the one, targeted at BlackIce etc...) would not be exist if our software base was implemented in languages with bounds checking.
The original reason that bounds checking was not implemented in C was that the early compilers were very basic (little in the way of optimization) and bounds checking overhead slows execution. Bounds checking overhead can be reduced through optimization, but Ritchie's original C compiler only did simple optimization.
Another problem is that in C pointers and arrays are more or less interchangable. So bounds checking becomes difficult or impossible in all cases (C provides way too much pointer flexibility when it comes to enforcing bounds checking).
If we were to add up the cost of all of the buffer overflow security attacks it must run in the billions. So the "power" of the C programming model has extracted a pretty high price. This puts an interesting retrospective slant on Brian Kernighan's 1981 article Why Pascal is Not My Favorite Programming Language .
I have to confess that I would not go back to using Pascal. But native compiled Java, with Java's bounds checks, would be far safer than C++. And it would result in software that is more robust against security attacks.
Yes we can all learn to use fgets, strncpy and other safer library routines. But this only makes our code safer. It does not provide the complete protection against buffer overflow attacks. So perhaps it is time to reconsider the programming languages we are using. Perhaps unrestricted pointers and no bounds checking has become too costly.
-
Switch to ...
Switch to Pike.
-
Mice with breasts?
It's been done.
-
Re:Absolutely
Take a look at dia as your Linux visio replacement.
-
Re:Simple corruption
Yes, Amiga drives were king in the world of floppy disks back then
:-D
One of the amazing/weird/cool Amiga things, along with semi boot persistant and dynamic RAM disks :-)