"Good morning Doctor, this evil genius Tsutomu Matsumoto has compromised the great security of my biometric ID card again... I really think that this so called 'gelatin' circumvention substance should be outlawed! Anyway, could you please transplant me a new set of fingers?"
If you think this is Funny,
then you should read
Fun with Fingerprint Readers
from May 2002 issue of Crypto-Gram Newsletter
by Bruce Schneier:
Tsutomu Matsumoto, a Japanese cryptographer, recently decided to look at biometric fingerprint devices. These are security systems that attempt to identify people based on their fingerprint. For years the companies selling these devices have claimed that they are very secure, and that it is almost impossible to fool them into accepting a fake finger as genuine. Matsumoto, along with his students at the Yokohama National University, showed that they can be reliably fooled with a little ingenuity and $10 worth of household supplies.
Matsumoto uses gelatin, the stuff that Gummi Bears are made out of. First he takes a live finger and makes a plastic mold. (He uses a free-molding plastic used to make plastic molds, and is sold at hobby shops.) Then he pours liquid gelatin into the mold and lets it harden. (The gelatin comes in solid sheets, and is used to make jellied meats, soups, and candies, and is sold in grocery stores.) This gelatin fake finger fools fingerprint detectors about 80% of the time.
His more interesting experiment involves latent fingerprints. He takes a fingerprint left on a piece of glass, enhances it with a cyanoacrylate adhesive, and then photographs it with a digital camera. Using PhotoShop, he improves the contrast and prints the fingerprint onto a transparency sheet. Then, he takes a photo-sensitive printed-circuit board (PCB) and uses the fingerprint transparency to etch the fingerprint into the copper, making it three-dimensional. (You can find photo-sensitive PCBs, along with instructions for use, in most electronics hobby shops.) Finally, he makes a gelatin finger using the print on the PCB. This also fools fingerprint detectors about 80% of the time.
Gummy fingers can even fool sensors being watched by guards. Simply form the clear gelatin finger over your own. This lets you hide it as you press your own finger onto the sensor. After it lets you in, eat the evidence.
Matsumoto tried these attacks against eleven commercially available fingerprint biometric systems, and was able to reliably fool all of them. The results are enough to scrap the systems completely, and to send the various fingerprint biometric companies packing. Impressive is an understatement.
There's both a specific and a general moral to take away from this result. Matsumoto is not a professional fake-finger scientist; he's a mathematician. He didn't use expensive equipment or a specialized laboratory. He used $10 of ingredients you could buy, and whipped up his gummy fingers in the equivalent of a home kitchen. And he defeated eleven different commercial fingerprint readers, with both optical and capacitive sensors, and some with "live finger detection" features. (Moistening the gummy finger helps defeat sensors that measure moisture or electrical resistance; it takes some practice to get it right.) If he could do this, then any semi-professional can almost certainly do much much more.
More generally, be very careful before believing claims from security companies. All the fingerprint companies have claimed for years that this kind of thing is impossible. When they read Matsumoto's results, they're going to claim that they don't really work, or that they don't apply to them, or that they've fixed the problem. Think twice before believing them.
Interesting, isn't it?
See also:
T. Matsumoto, H. Matsumoto, K. Yamada, S. Hoshino, "Impact of Artificial Gummy Fingers on Fingerprint Systems," Proceedings of SPIE Vol. #4
"Good morning Doctor,
this evil genius Tsutomu Matsumoto
has compromised the great security of my
biometric ID card again...
I really think that this so called 'gelatin'
circumvention substance should be outlawed!
Anyway, could you please
transplant me a new set of fingers?"
I've noticed in IT jobs, the more you talk and interact with your coworkers in a positive and joking way, the less stressful the job is.
You are right, I have also noticed that.
It is much less stressful that way,
as well as equally less
productive, unfortunately (or fortunately--depandind on whether you are an employer or an employee).
HDTV TiVo? It must have gigantic HD and CPU!
on
HDTV TiVo Now Shipping
·
· Score: 0, Redundant
Is it easily hackable?
It sounds like a great platform for a
distributed high traffic relational database, does it not?
I currently work as a website developer (mostly design-related work), but I also do some Perl and PHP programming. As most of you probably have, I've often wondered if I wouldn't enjoy working in a less stressful environment. I've even gone as far as to wonder if I'd prefer some sort of factory job or similar over my current field of work.
Here is my suggestion:
Quit your current job as soon as possible
and find a job in a factory.
Then, after you loose a finger or two
you might start to realize that your previous webmonkey
job was not even nearly as stressful as you
naïvely imagined before.
At that point the
problem will have been solved:
you will come back to your beloved web job in no time
and, what seems to be much more important,
you will stop insulting hard working factory workers
by implying that their job
is somehow less stressful than
sitting all day in front of the God damned keyboard.
Don't fool yourself, kid.
Most of people working in factories would literally kill
for a sissy job like yours or mine.
We get six digits for sitting on our fat arses
so please let us not talk about supposedly less stressful
job of people who get seriously injured or even killed
in the factories while making in a year what we make in a week.
I believe those people deserve at least
some of our respect because it is thanks
to those very people
why we can have
our "stressful IT jobs."
Please let us not forget about it
and show minimum humility, for God's sake.
We owe it to people who have died in factories
manufacturing our computers, cars and clothes,
and to their families, if not to our own humanism.
Please think about it next time.
But even then, you're not REALLY dealing with an int, you're dealing with a PMC that stores an int along with garbage collection information, a vtable that keeps track of how to modify it, etc.
Really? I thought that the whole point
of integer registers in Parrot
was to not use PMCs
(and the overhead thereof)
for integer
(and floating point, for that matter)
computations, wasn't it?
Aren't vtables used for PMCs only?
Otherwise I wouldn't see much point in having
separate sets of registers
and in fact wouldn't see Perl's future in any
computationally sensitive environment
which I was really hoping to use it for
and which I am only now
starting to realize how
utterly naïve it might sound for
anyone knowing Parrot internals.
As much as I hate to admit it, Java starts to look
better and better
for number-crunching
the more I know about Perl and Parrot
internals, so all of those people I was trying to convince
might have been right as it turns out. Thanks.
How do you garbage-collect integer registers, anyway?
Sorry for so many questions but it is always a good time
to learn something. Thanks a lot.
The "Liquid Body Armor" sounds absolutely amazing.
It is only for military right now,
but I am sure that in about ten to fifteen years
it will get mainstream and
everyone will be able to drink it.
My sincerest congratulations!
This is an unbelievably prestigious award
and in my opinion absolutely deserved in this case.
Some people might not realize
how hard it is to pass the Turing test.
It is a really Big Deal. Bravo.
I disagree. Any language which removes basic assumptions made by lower-level languages (e.g. that my int won't become a string when I'm not looking) will "slow" the language.
You may disagree, but as far as I know, even though
Perl 6 removes those very assumptions by default,
one is still free to explicitely impose them nonetheless,
is one not?
As an example of what I mean
my int $x=1;
my int $y=2;
my int $z = $x + $y;
What's the result? In your model, we would agree that the reuslt must be an integer, and specifically 1, but that's (woefully), not the case. You can't know that another thread hasn't womped the contents of $x and replaced it with a high level object that is "sort of 1" by the time the third statement executes.
I was under the impression that in Perl 6
(or in "my model," if you will)
int
means a promise to the compiler that
you are not going to store anything which is not
integer and Perl's optimizer can use
Parrot's Ixx register or some compact representation
in the case of arrays.
Worse,
my int $x = foo();
my int $y = bar();
my int $z = $x + $y;
Here, we don't even know if we're dealing with integer addition! If $x is a URI, then hold on to your seat and enjoy the ride, but you're not going to be sure of the result.
We know, for you have used explicit int
(not Int, mind you).
Please read
Apocalypse 2 by Larry Wall:
"[...] there will also be lowercase intrinsic types, such as int, num, str and ref. Use of the lowercase typename implies you aren't intending to do anything fancy OO-wise with the values, or store any run-time properties, and thus Perl should feel free to store them compactly. (As a limiting case, objects of type bit can be stored in one bit.)"
I am not aware of any
changes to this decision
but I might not be up to date with everything
posted on the mailing lists.
Could you please quote the relevant
portion of some later text you are basing your knowledge on?
Thank you.
And excuse me if I had spread misinformation.
The long awaited Apocalypse 12 finally gets published and what we as a Slashdot community are doing? We completely ignore it and post a story about some God damned
satellite TV pirates,
a stupid 419er Lost in Space,
the daily SCO Stock update
and literally dozens of absolutely unimportant stories
on the front page instead!
We even ask "Is Experience in Programming Worth Anything?"on the same day and than we completely fail to
help people get said experience.
Meanwhile on
Perl6-Language mailing list:
If it's not totally obvious to everyone, you should download a copy of A12
(I like the "printer-friendly" all-in-one-page version) as a hedge against
the almost-inevitable slashdotting.
Hey, it supports C syntax, so maybe we could compile Parrot in it.:-)
I think all of us should be ashamed. All of us.
I have
tried
but failed.
My post
saying that this story should be
on the front page has been even moderated as "Redundant."
Just like every single Slashdot user,
I am also partially responsible for this shameful
incident.
I can only say that I am very sorry and I do really hope it
will not happen again, in the name of the entire Slashdot community which should be covered in shame.
She won't reply to your e-mailed entreaties, the flowers you send to her office, or the poetry you dedicate to her on your website. Some here have decided that licking her boots might do the trick, but don't count on it. She's just like every other chick who gets her picture on a page someplace: if you ain't rich, you don't have a chance.
How do you know about my poetry?
And who said I am not rich?
Wait a minute, is that some kind of a joke?
Quite a distasteful one if so...
It is somewhat distressing that I have spent 4 years of college and years before that developing my programming skills.
If you want to be a programmer,
stop complaining every time something is distressing
for a good start, because distress will have to become your
second name. This is not an easy job if you plan to be
even remotely competent. Seriously.
If four years of learning is too much for you,
then please give up now while you are still young,
because for any half-decent programmer
every year
means learning, learning, learning.
You should probably spend at least as much time learning
as working.
Always remember that learning is much more
important than working,
because it will help you work better.
I am not trying to get rich,
Great.
Tell that to your employer and I can guarantee you that.
but I was hoping that the high level of skill required
would account for something(no offense intended to waiters).
None taken.
Can anyone give me any insight about what a reasonable
starting salary would be, for an entry level software engineer?"
With such an attitude you will probably end homeless pretty soon.
Your most important
problem is that you want a reasonable starting salary.
What you really need is an unreasonable starting salary.
Every time I hire someone who talks about
"reasonable salaries" or "not being greedy" I note two
most important things to myself:
primo: remember to pay minimum rates;
secundo: probably an incompetent worker.
I am not saying that people demanding more money are
always better, mind you.
This is just a rule of thumb.
Also, you should always say that you don't have a girlfriend
because your employer knows
that this is the only way you can possibly have time and will
to devote most of your free time to learning and
to perfecting the art of programming.
I have noticed that the best programmers I have ever hired
are those with anti-social nature but with very big ego.
So don't try to play a "popular" kind of guy,
unless you want to get a marketing job.
Always remember to have some proof of high IQ, e.g.
the Mensa membership card.
What can I add... Just be yourself
and everything should be all right.
Don't forget about learning.
I wish you the best luck.
Those stupid parking meters have already costed
me more than the God damned SCO license.
Imagine my surprise when I found out that
parking fines are not covered by OSRM insurance.
Thanks a lot, Linux.
Hi. It's really nice to know that whatever I can do technically,
that it's my cup size that really matters.
I would like to sincerely apologize
in the name of the entire Slashdot community,
most of which sadly consists of people not only
utterly infantile but also insultingly unintelligent,
as I am sure you have already noticed.
I can assure you that even though I
personally find you very attractive,
I will avoid commenting your undoubtedly
exceptional beauty nonetheless,
for I am myself
hardly sexiest by any stretch of imagination.
Let us therefore go straight to the meritum
and talk about one thing that really matters,
i.e. software.
I'm 28. I do backbone security, incident response, vulnerability assessment, and pen-testing. I work in varying capacities with Nessus, Snort, and the Open Source Vulnerability Database.
That is very impressive indeed.
It is certainly inspiring to hear that
someone of your intelligence, skills and experience
chooses to work with free software tools.
I would be very interested what is your
operating system of choice and what do you think
about Debian GNU/Hurd, Keykos, EROS and OpenBSD,
as a general operating system design
as well as the security implications thereof.
I look forward to read more of your texts
on Slashdot from now on.
And fuck you.
Please don't lower your high standards
to match those poor simpletons
(or "trolls" if you will)
who seem to enjoy shamefully insulting
any woman which is much smarter than them.
They just sicken me.
You will see that surprisingly
high percentage of Slashdot users
could be described as nothing more but a
room-temperature IQ crowd.
In fact, it is surprising that those
illiterate imbeciles can even write.
The idea that Slashdot is an "elite" of any kind
is simply laughable in its naïvete.
I can only suggest you to ignore all of those foolish
morons,
for they don't deserve any of your attention
whatsoever.
Clicking on the circle next to the username you can
mark any user as a friend or foe, and
set positive bonus for friends and negative for foes
in the People Modifier section of your
Comments Preferences page.
Going back on topic, I have one more question:
Could you tell us how did you do it that
all of your posts
are rated as
Score:5, Insightful or at least Score:5, Interesting?
I find it very intriguing.
Have you found
a vulnerabilty in the Slashcode itself?
Will you disclose it?
Actually, we were talking about Roles (though not calling them that) before that paper was written. It was good fortune that two members of the design team caught Andrew Black's presentation of the paper and sent it along to Larry with a note saying "This must be a good idea; Smalltalkers are thinking about it too!"
That makes Perl 6
even more innovative than
I was previously trying to demonstrate.
Are there any other areas of Perl 6
(other than Rules,
for regular expressions were always
cutting-edge in Perl)
which might be examples of true innovation
unheard of in other languages?
All of the new dispatch mechanisms
and hyper operators seem like good candidates.
As a sidenote I might add that Perl 6 will support the functional paradigm.
Perl5 supports *portions* of it already. closures are already fully supported,
as well as list-transformation functions. I suppose you meant that Perl6 will
widen its support so that it can handle full-blown FP with continuations and
the whole works, which matches what I've heard.
Closures are already supported indeed, but
Perl 5 lacks the essential built-in support of lambda calculus.
It will change in Perl 6.
As Larry Wall
has said
on perl6-language mailing list on December 2002,
"About the only things that have to be truly built-in to Perl 6 are
lambda and the regex engine. Everything else is negotiable. (I'm
counting method dispatch under 'lambda', of course..."
Perl 6 thus will fully support the functional programming paradigm.
This is great news for anyone seriously into computer science in general
and artificial intelligence in particular.
It is just not the only paradigm it will support.
Heckno. Perl will always support contextual programming and imperative
programming; object-oriented programming and functional programming are
both getting huge boosts in Perl6, and there's talk of logical/declarative
paradigm stuff slipping in e.g. from Prolog. Perl is fundamentally a
multiparadigmatic language; you can use whichever paradigm is the best fit
for the problem space of your program, and you can freely mix and match the
paradigms at will, which I do. It's often convenient, for example, to have
an object method accept as one of its arguments a coderef (e.g. to use as
a callback), which can be a closure. Going the other way, a closure (or a
set of related closures) can retain objects and use them to do stuff. I
do this stuff today in Perl5. With Perl, you get the best parts of all
paradigms. This will be even more true in Perl6, which is getting both
real objects *and* continuations, among other things. The support for
contextual programming is also being beefed up; a routine will be able to
return an object that knows how to return one value in numeric context,
another value in string context, and so on. (My personal favourite
four-word quote from the Apocalypse series so far is "interesting values
of undef". If you don't know why this is awesome, you do not yet fully
grok the contextual programming paradigm.)
I can only agree wholeheartedly.
And yeah, Haskell is more innovative than pragmatic. The innovative things
about Perl are three: context, the CPAN, and assimilation. Assimilation
in this context means that the Perl dev team actively hunts down other
languages and incorporates their nifty features into Perl.
Perl is a truly postmodern language in that regard.
It has started as a duct tape of Internet
and is inevitably becoming the most powerful
Swiss Army chainsaw ever known to man.
There's been a
lot of talk about Smalltalk and Haskell on perl6-language, for example.
One could argue that another way to say this is, "Perl prefers to let other
languages do its innovation for it." But it seems to be a pretty good model.
None of the other languages seem to have all of the nifty features that Perl
has together in one language.
Very true. For example,
the Roles in Perl 6 are inspired by what is called Traits in
this research paper
presented on the European Conference on Object-Oriented Programming
only months ago.
It is quite an innovative idea and as far as I know it
has been only implemented in Smalltalk as an experiment
made for that very paper.
Context IMO is the most innovative thing about Perl.
The CPAN also rocks.
Everyone is right here.
There is no one language which is best for everyone.
Perl 5, Perl 6, Ruby, Python, Lisp, Scheme...
They are all going to target
Parrot
so we will be able to choose our favourite language
and still work together
instantiating our objects
and even inheriting from each other's classes
crossing the cross-language boundaries.
Wow! What a wonderful and innovative idea, totally unlike
anything anyone has
done before!
JVM is not exactly language-independent.
It is not very well suited for dynamically typed languages
such as Perl 5, Perl 6, Ruby, Python
and in fact even for languages like Lisp and Scheme.
Thought,
with few exceptions like immutable strings or
some uninheritable base classes, JVM is quite a nice
environment for statically typed languages
with simple single-inheritance object models like Java.
The Microsoft.Net on the other hand is not very
platform-independent and I don't think it ever will be,
while still supporting mostly statically typed languages.
Besides, it didn't even exist
at the beginning of Parrot project...
In any case, none of them runs
Perl 5, Perl 6, Ruby, Python, Lisp and Scheme
which I was talking about.
So yes,
Parrot is in fact totally unlike
anything anyone has done before.
Very true.
As long as you only want to write in slow interpreted languages,
it's not a bad idea.
Personally when I use Lisp I compile it to native code,
and it runs FAST.
When I use ML I compile it to native code, and it runs FAST.
When I use Perl... I spend several minutes twiddling my thumbs.
No thanks.
There is no such a thing as slow language.
The only way in which a language per se can be slow
is the parsing time.
Of course Perl 6 having unprecedentedly rich
(and even self-modifying)
syntax will always be much harder to parse than
Lisp which is basically a manually written parsed tree.
However, you will always be able to compile it once and
store Parrot bytecode or native binary.
Even without compiling it to a native binary,
there is JIT engine which can run
critical parts of the bytecode
as single assembly instructions on harware registers
if you give enough hints to the compiler.
See the files in
parrot/jit
directory in the CVS. It is really worth reading.
Well, if you want a innovative language (rather than a pragmatic one), Haskell should definitely not be left out. Granted, it may be a little hard to use if you just want to write real-life programs (quite a lot of computer-science stuff are involved just for mutable state), but its interestingness beats OCAML and even Lisp if you are getting tired of 20 slightly different imperative languages. The language is also well supported in the free software community.
Haskell is very interesting indeed.
And
there are already plans
to write a Haskell compiler targetting Parrot.
(The relative interestingness is a very subjective matter, though.)
There is already a Scheme compiler written by
Juergen Boemmels and Jeffrey Goff
(version 0.0.11 is
"Functioning, as far as implemented. Lists and functions are working
but many functions are missing implementation.")
so Lisp, OCAML and Haskell compiler writers will have some interesting prior art to base their compilers on.
I really look forward to having as many languages targetting Parrot as possible.
The very recent ONLamp article,
Building a Parrot Compiler
(It's not just for Perl 6 anymore)
by Dan Sugalski,
is a great start for anyone planning to write a Parrot-targetting compiler.
That's pretty amazing that three years ago Parrot was only
an April Fool's joke...
Of course, I'm not disparaging Larry's work here. Perl is a good and pragmatic language, and I'm glad to find it getting rid of the historical ugly parts..
As a sidenote I might add that
Perl 6 will support the functional paradigm.
It is just not the only paradigm it will support.
It must be fast like an exocoetidae.
If you think this is Funny, then you should read Fun with Fingerprint Readers from May 2002 issue of Crypto-Gram Newsletter by Bruce Schneier:
Interesting, isn't it? See also: T. Matsumoto, H. Matsumoto, K. Yamada, S. Hoshino, "Impact of Artificial Gummy Fingers on Fingerprint Systems," Proceedings of SPIE Vol. #4
"Good morning Doctor, this evil genius Tsutomu Matsumoto has compromised the great security of my biometric ID card again... I really think that this so called 'gelatin' circumvention substance should be outlawed! Anyway, could you please transplant me a new set of fingers?"
The GIF/Unisys fiasco should have tought us something.
You are right, I have also noticed that. It is much less stressful that way, as well as equally less productive, unfortunately (or fortunately--depandind on whether you are an employer or an employee).
Is it easily hackable? It sounds like a great platform for a distributed high traffic relational database, does it not?
Here is my suggestion: Quit your current job as soon as possible and find a job in a factory. Then, after you loose a finger or two you might start to realize that your previous webmonkey job was not even nearly as stressful as you naïvely imagined before. At that point the problem will have been solved: you will come back to your beloved web job in no time and, what seems to be much more important, you will stop insulting hard working factory workers by implying that their job is somehow less stressful than sitting all day in front of the God damned keyboard. Don't fool yourself, kid. Most of people working in factories would literally kill for a sissy job like yours or mine. We get six digits for sitting on our fat arses so please let us not talk about supposedly less stressful job of people who get seriously injured or even killed in the factories while making in a year what we make in a week. I believe those people deserve at least some of our respect because it is thanks to those very people why we can have our "stressful IT jobs." Please let us not forget about it and show minimum humility, for God's sake. We owe it to people who have died in factories manufacturing our computers, cars and clothes, and to their families, if not to our own humanism. Please think about it next time.
You mean Larry Wall? I didn't know he reads my posts... Thanks, Larry!
Really? I thought that the whole point of integer registers in Parrot was to not use PMCs (and the overhead thereof) for integer (and floating point, for that matter) computations, wasn't it? Aren't vtables used for PMCs only? Otherwise I wouldn't see much point in having separate sets of registers and in fact wouldn't see Perl's future in any computationally sensitive environment which I was really hoping to use it for and which I am only now starting to realize how utterly naïve it might sound for anyone knowing Parrot internals. As much as I hate to admit it, Java starts to look better and better for number-crunching the more I know about Perl and Parrot internals, so all of those people I was trying to convince might have been right as it turns out. Thanks. How do you garbage-collect integer registers, anyway? Sorry for so many questions but it is always a good time to learn something. Thanks a lot.
My God! SCO's Biggest Investor Admits It Loves IP Lawsuits?! I am shocked! Shocked, I say!
The "Liquid Body Armor" sounds absolutely amazing. It is only for military right now, but I am sure that in about ten to fifteen years it will get mainstream and everyone will be able to drink it.
Hasn't the GIF/Unisys fiasco tought us anything?
My sincerest congratulations! This is an unbelievably prestigious award and in my opinion absolutely deserved in this case. Some people might not realize how hard it is to pass the Turing test. It is a really Big Deal. Bravo.
You may disagree, but as far as I know, even though Perl 6 removes those very assumptions by default, one is still free to explicitely impose them nonetheless, is one not?
I was under the impression that in Perl 6 (or in "my model," if you will) int means a promise to the compiler that you are not going to store anything which is not integer and Perl's optimizer can use Parrot's Ixx register or some compact representation in the case of arrays.
We know, for you have used explicit int (not Int, mind you). Please read Apocalypse 2 by Larry Wall:
I am not aware of any changes to this decision but I might not be up to date with everything posted on the mailing lists. Could you please quote the relevant portion of some later text you are basing your knowledge on? Thank you. And excuse me if I had spread misinformation.
The long awaited Apocalypse 12 finally gets published and what we as a Slashdot community are doing? We completely ignore it and post a story about some God damned satellite TV pirates, a stupid 419er Lost in Space, the daily SCO Stock update and literally dozens of absolutely unimportant stories on the front page instead! We even ask "Is Experience in Programming Worth Anything?" on the same day and than we completely fail to help people get said experience. Meanwhile on Perl6-Language mailing list:
Austin Hastings:
Larry Wall:
John Siracusa:
Larry Wall:
I think all of us should be ashamed. All of us. I have tried but failed. My post saying that this story should be on the front page has been even moderated as "Redundant." Just like every single Slashdot user, I am also partially responsible for this shameful incident. I can only say that I am very sorry and I do really hope it will not happen again, in the name of the entire Slashdot community which should be covered in shame.
How do you know about my poetry? And who said I am not rich?
Wait a minute, is that some kind of a joke? Quite a distasteful one if so...
If you want to be a programmer, stop complaining every time something is distressing for a good start, because distress will have to become your second name. This is not an easy job if you plan to be even remotely competent. Seriously. If four years of learning is too much for you, then please give up now while you are still young, because for any half-decent programmer every year means learning, learning, learning. You should probably spend at least as much time learning as working. Always remember that learning is much more important than working, because it will help you work better.
Great. Tell that to your employer and I can guarantee you that.
None taken.
With such an attitude you will probably end homeless pretty soon. Your most important problem is that you want a reasonable starting salary. What you really need is an unreasonable starting salary. Every time I hire someone who talks about "reasonable salaries" or "not being greedy" I note two most important things to myself: primo: remember to pay minimum rates; secundo: probably an incompetent worker. I am not saying that people demanding more money are always better, mind you. This is just a rule of thumb. Also, you should always say that you don't have a girlfriend because your employer knows that this is the only way you can possibly have time and will to devote most of your free time to learning and to perfecting the art of programming. I have noticed that the best programmers I have ever hired are those with anti-social nature but with very big ego. So don't try to play a "popular" kind of guy, unless you want to get a marketing job. Always remember to have some proof of high IQ, e.g. the Mensa membership card. What can I add... Just be yourself and everything should be all right. Don't forget about learning. I wish you the best luck.
Those stupid parking meters have already costed me more than the God damned SCO license. Imagine my surprise when I found out that parking fines are not covered by OSRM insurance. Thanks a lot, Linux.
I would like to sincerely apologize in the name of the entire Slashdot community, most of which sadly consists of people not only utterly infantile but also insultingly unintelligent, as I am sure you have already noticed. I can assure you that even though I personally find you very attractive, I will avoid commenting your undoubtedly exceptional beauty nonetheless, for I am myself hardly sexiest by any stretch of imagination. Let us therefore go straight to the meritum and talk about one thing that really matters, i.e. software.
That is very impressive indeed. It is certainly inspiring to hear that someone of your intelligence, skills and experience chooses to work with free software tools. I would be very interested what is your operating system of choice and what do you think about Debian GNU/Hurd, Keykos, EROS and OpenBSD, as a general operating system design as well as the security implications thereof. I look forward to read more of your texts on Slashdot from now on.
Please don't lower your high standards to match those poor simpletons (or "trolls" if you will) who seem to enjoy shamefully insulting any woman which is much smarter than them. They just sicken me. You will see that surprisingly high percentage of Slashdot users could be described as nothing more but a room-temperature IQ crowd. In fact, it is surprising that those illiterate imbeciles can even write.
The idea that Slashdot is an "elite" of any kind is simply laughable in its naïvete. I can only suggest you to ignore all of those foolish morons, for they don't deserve any of your attention whatsoever. Clicking on the circle next to the username you can mark any user as a friend or foe, and set positive bonus for friends and negative for foes in the People Modifier section of your Comments Preferences page.
Going back on topic, I have one more question: Could you tell us how did you do it that all of your posts are rated as Score:5, Insightful or at least Score:5, Interesting? I find it very intriguing. Have you found a vulnerabilty in the Slashcode itself? Will you disclose it?
That makes Perl 6 even more innovative than I was previously trying to demonstrate. Are there any other areas of Perl 6 (other than Rules, for regular expressions were always cutting-edge in Perl) which might be examples of true innovation unheard of in other languages? All of the new dispatch mechanisms and hyper operators seem like good candidates.
Closures are already supported indeed, but Perl 5 lacks the essential built-in support of lambda calculus. It will change in Perl 6. As Larry Wall has said on perl6-language mailing list on December 2002, "About the only things that have to be truly built-in to Perl 6 are lambda and the regex engine. Everything else is negotiable. (I'm counting method dispatch under 'lambda', of course..." Perl 6 thus will fully support the functional programming paradigm. This is great news for anyone seriously into computer science in general and artificial intelligence in particular.
I can only agree wholeheartedly.
Perl is a truly postmodern language in that regard. It has started as a duct tape of Internet and is inevitably becoming the most powerful Swiss Army chainsaw ever known to man.
Very true. For example, the Roles in Perl 6 are inspired by what is called Traits in this research paper presented on the European Conference on Object-Oriented Programming only months ago. It is quite an innovative idea and as far as I know it has been only implemented in Smalltalk as an experiment made for that very paper.
It most definitely rocks indeed.
JVM is not exactly language-independent. It is not very well suited for dynamically typed languages such as Perl 5, Perl 6, Ruby, Python and in fact even for languages like Lisp and Scheme. Thought, with few exceptions like immutable strings or some uninheritable base classes, JVM is quite a nice environment for statically typed languages with simple single-inheritance object models like Java.
The Microsoft .Net on the other hand is not very
platform-independent and I don't think it ever will be,
while still supporting mostly statically typed languages.
Besides, it didn't even exist
at the beginning of Parrot project...
In any case, none of them runs Perl 5, Perl 6, Ruby, Python, Lisp and Scheme which I was talking about. So yes, Parrot is in fact totally unlike anything anyone has done before. Very true.
There is no such a thing as slow language. The only way in which a language per se can be slow is the parsing time. Of course Perl 6 having unprecedentedly rich (and even self-modifying) syntax will always be much harder to parse than Lisp which is basically a manually written parsed tree. However, you will always be able to compile it once and store Parrot bytecode or native binary. Even without compiling it to a native binary, there is JIT engine which can run critical parts of the bytecode as single assembly instructions on harware registers if you give enough hints to the compiler. See the files in parrot/jit directory in the CVS. It is really worth reading.
Could you be more specific on which exactly innovative features are you missing in Perl 6? It is not too late to suggest them.
Haskell is very interesting indeed. And there are already plans to write a Haskell compiler targetting Parrot. (The relative interestingness is a very subjective matter, though.) There is already a Scheme compiler written by Juergen Boemmels and Jeffrey Goff (version 0.0.11 is "Functioning, as far as implemented. Lists and functions are working but many functions are missing implementation.") so Lisp, OCAML and Haskell compiler writers will have some interesting prior art to base their compilers on. I really look forward to having as many languages targetting Parrot as possible. The very recent ONLamp article, Building a Parrot Compiler (It's not just for Perl 6 anymore) by Dan Sugalski, is a great start for anyone planning to write a Parrot-targetting compiler. That's pretty amazing that three years ago Parrot was only an April Fool's joke...
As a sidenote I might add that Perl 6 will support the functional paradigm. It is just not the only paradigm it will support.
Please let us all keep in mind that only three years ago Parrot was merely an April Fool's joke (and quite brilliant at that). See the original Perl and Python Announce Joint Development press release on use Perl, the interview with Larry Wall and Guido van Rossum on Perl.com and the O'Reilly book announcement: Programming Parrot in a Nutshell by Guido van Rossum and Larry Wall. Does anyone remember the Perl + Python = Parrot Slashdot story? I am sure that back then absolutely no one was expecting that it might all come true some day. That's amazing how much has happened during those last few years.