![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Probably all of these are good enough for the resume. Some may need
> rephrasing or more details.
Really? They're all pretty tiny little things that took me a day or two.
They specifically said "large projects".
>> - Built a recursive Turtle-style fractal plotter.
>
> What the heck is this? You mean similar to Logo? You may want to add
> a line beneath it (indented a bit) that has a one line explanation of
> what this is (but don't change the above description if it's accurate).
Imagine Logo, but with a command and re-executes the entire program, but
with all the lengths scaled down. (And starting from the Turtle's
current position. And restoring that position when the sub-program
ends.) Makes it very easy to draw ferns, the Kock snowflake curve, etc.
It's more or less equivilent to an L-system. But I'd never heard of those.
>> - Built a Lambda calculus interpretter.
>
> Put this in. Specify what language you used, though (and spell it
> properly!)
*cough* Haskell.
Actually, a Lambda calculus interpretter is fairly trivial. What I wrote
was a CGI script which shows a complete reduction sequence, and can also
"compile" an extended Lambda calculus expression into plain Lambda
calculus, and then into SKI combinator calculus, and finally into Iota
calculus. It accepts any of these 4 languages as input. Simultaneously.
This is not as trivial as it sounds. (!!)
>> - Built a mini-Mathematica engine.
>
> Give more details - perhaps as bullets beneath it. What were its
> capabilities and in which language?
Borland TurboPascal 5.5 for DOS. And I basically implemented
Mathematica's pattern-matching and expression transformation language.
Of course, the thing that makes Mathematica so powerful is the
stupendously *vast* library of transformation rules it comes with. It's
the culmination of many man-centuries of R&D. Not something I could
duplicate in a hurry - especially since I don't know, for example, what
"hypergeometric functions" even *are*, never mind how to implement them.
>> - Built a modular software sound synthesizer.
>
> Good. Again, perhaps some bullets describing features.
TurboPascal again. Each "module" is an MS-DOS program that takes a bunch
of CLI args and maybe some input files, and dumps some sound data into
an output file. By writing batch files, you can design complex synthesis
algorithms. I've got modules for generating envelopes of various kinds,
an oscilator for generating any Fourier series, a variable amplifier,
and an FM operator. Any questions?
(If only I'd known DSP back then... I could have added a digital filter!)
>> - Built a collection of data compression modules.
>
> What language and which data compression formats (you could just put
> the latter in parentheses).
Haskell. Again.
It doesn't handle any well-known formats such as RAR or ZIP. Rather, the
modules implement basic algorithms such as LZW, Huffman, BWT, etc.
>> - Built a Mandelbrot generator with multiple colouring options.
>
> Good enough. Language?
Originally BASIC. Then assembly. Then Pascal. Then Smalltalk. Then Java.
Then PostScript. Then Eiffel. Then Haskell...
Special features include inversion of the complex plane, colouring by
the final value of Z, or the weighted average of the whole orbit, the
option of adding "orbit traps" (e.g., the well-known "epsilon cross"
option of FractInt). Special mention goes to the built-in
Floyd-Steinburg error distribution dithering built into the Pascal
version to enable psuedo-truecolour display on a 16-colour VGA monitor.
Also the special RLE file format for storing and retrieving the images.
>> - Built a mini-Prolog interpretter.
>
> Good enough. Language? You could give more details as above (what
> features did you implement, etc).
Haskell. I believe I may even have posted the source code (or at least
its derivation here). I *definitely* posted the Windows CLI binary. It's
basically straight out of a book, with a few Andrewisms added. (E.g.,
VGA colour text!)
Give it a predicate involving some variables. It will attempt to assign
values to the variables in such a way that the predicate is satisfied.
There may be zero, one, or multiple ways this can be done...
>> - Built a simple ray tracer.
>
> Language? Remove "simple" and put something like "prototype". Maybe
> list some basic features.
It traced spheres and planes. It had CSG though, so that means it
basically traces any polyhedron. In fact, there was a nonlinear scaling
operation which means you could turn a sphere into a cylinder, and then
a cylinder into a cone, so you actually have quite a few options there.
There's no particular reason for not adding other quadratics too; I just
never got round to it. I was too busy playing with texturing.
It had a texturing system based on several different kinds of "maps". A
scalar map assigns a value to each point in space. By using a [piecewise
linear] colour map, you could then assign a colour to every point in
space. You can also apply multilayer textures, where lower ones "show
through" upper ones. And each element of a CSG operation can be textured
seperately. (As you can see... it's basically a blatent rip of POV-Ray.)
But there were also "vector maps", which you could use to displace other
map types. So you could assign a red/green Y-gradient to an object, and
then sine-displace it in the Y direction, and then again at a different
frequency in the Z direction. In this way, you could make some pretty
complex textures. (Not to mention that you can checkerboard textures, or
have "texture maps" by applying a texture blend to a scalar map... As
you can see, I kinda went overboard on generality. It's probably
Turing-complete!)
>> ...should I continue?
>
> Sure.
Numerical intergration for physical motion simulations?
CPU emulators?
That grainular synthesis thing I played with?
Fractal image compression? (Maybe not include that one; it ever actually
worked!)
The graphing tool I never finished?
OK, I'm starting to run out now...
> There's a danger of your resume becoming too long. In which case
> you'll want a short version (2 pages) which have only the ones that you
> think are really prominent or interesting to the job. Then, separately,
> you can have a CV that has all of the above, with details on most as
> bullets.
Well, this is specifically for Wolfram Alpha. Check out the application
form. There's only space for, like, 300 words, and they specifically
want one "large project". I have many, many, MANY tiny projects.
>> Every single one of these has been a small one-man project totalling
>> less than 1,000 lines of code, I would estimate.
>
> Doesn't matter. Most of these are non-trivial.
You think??
Sure, *I* was impressed that I wrote a raytracer and it worked. But from
what I can gather, *everybody* writes raytracers. Hell, Warp wrote a
raytracer *inside* a raytracer!! Using a damned macro language. :-P
> Definitely put the recovery plan in there.
Done.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Jim Henderson wrote:
> So summarize a bit on the projects that impressed you the most ("I've
> written simple raytracers, foobars, and binfizes."). Supply the code and
> let them evaluate. Remember that an application isn't a confessional of
> the things that don't work in things you've built, it's a place to talk
> positively about what you've built.
It's more the fact that I didn't know how a raytracer worked (nor how to
solve simultaneous equations, by the way), and I worked it out from
first principles, and it actually worked when I typed it in. I was ilated!
...until I discovered that everybody else has already done it, and it's
considered a trivial college student exercise.
> So use the DR project because it was finished. I imagine that given a
> professional goal to complete some of the projects you've started on,
> you'd finish them, but your interests are so varied that it's difficult
> to focus on a personal project for a long time. I know a lot of people
> like that.
>
> And for people like that, being paid to do what they find interesting is
> a good incentive to finish a project that's been started.
I agree.
>> That's what I'm using. The form is basically filled out and ready to go.
>
> Good. :-)
The form is sent.
>> I don't know - is dumping a bunch of Haskell code on them which they
>> have no way of compiling going to prove anything? I could be making it
>> all up for all they know...
>
> Don't assume what their capabilities are. You compiled it, they can get
> a compiler. They may even look at it and say "hey, I've never heard of
> this language before", in which case you get bonus points for introducing
> them to a new language. (I know it's hard, but resist the temptation to
> reply to this with "well, obviously it's not useful for anything so why
> would they have heard of it?" or something along those lines.)
>
> Like I said, don't do their thinking for them. They're capable of doing
> that.
This is Wolfram. I'm sure they'll have heard of a heavily accademic
language such as Haskell. Doesn't mean they use it.
Anyway, I don't have any "working" code to hand right this exact second,
and the application has been sent in now, so...
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Wed, 10 Jun 2009 21:59:43 +0100, Orchid XP v8 wrote:
> It's more the fact that I didn't know how a raytracer worked (nor how to
> solve simultaneous equations, by the way), and I worked it out from
> first principles, and it actually worked when I typed it in. I was
> ilated!
>
> ...until I discovered that everybody else has already done it, and it's
> considered a trivial college student exercise.
Well, I was a college student in Computer Science, and it's not something
I could work out on my own. So don't worry about the second part, the
first part is the important part - you worked it out *on your own*, which
is more than the college students doing the exercise do, because it's
part of an assignment for them.
>> And for people like that, being paid to do what they find interesting
>> is a good incentive to finish a project that's been started.
>
> I agree.
And there's your incentive to look for something more "in your field". :-)
>>> That's what I'm using. The form is basically filled out and ready to
>>> go.
>>
>> Good. :-)
>
> The form is sent.
Excellent!
>>> I don't know - is dumping a bunch of Haskell code on them which they
>>> have no way of compiling going to prove anything? I could be making it
>>> all up for all they know...
>>
>> Don't assume what their capabilities are. You compiled it, they can
>> get a compiler. They may even look at it and say "hey, I've never
>> heard of this language before", in which case you get bonus points for
>> introducing them to a new language. (I know it's hard, but resist the
>> temptation to reply to this with "well, obviously it's not useful for
>> anything so why would they have heard of it?" or something along those
>> lines.)
>>
>> Like I said, don't do their thinking for them. They're capable of
>> doing that.
>
> This is Wolfram. I'm sure they'll have heard of a heavily accademic
> language such as Haskell. Doesn't mean they use it.
Doesn't mean they don't, either. Hopefully you mentioned your interest
in Haskell in the application. Comes under the heading of "don't do the
prospective employer's thinking for them". :-)
> Anyway, I don't have any "working" code to hand right this exact second,
> and the application has been sent in now, so...
So it's something to bring up in the interview.
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> ...until I discovered that everybody else has already done it, and it's
>> considered a trivial college student exercise.
>
> Well, I was a college student in Computer Science, and it's not something
> I could work out on my own. So don't worry about the second part, the
> first part is the important part - you worked it out *on your own*, which
> is more than the college students doing the exercise do, because it's
> part of an assignment for them.
Well, I guess.
On the other hand, anybody with a real education would already know how
to do algebra and solve equations. It's only me who's had to guess that
stuff from what I can scrounge off the Internet and invent off the top
of my head.
>>> And for people like that, being paid to do what they find interesting
>>> is a good incentive to finish a project that's been started.
>> I agree.
>
> And there's your incentive to look for something more "in your field". :-)
Hey, I think the entire freakin' server is unanimous in this agreement
that I need another job. You won't find me arguing! The question is, can
I actually get one? Am I good enough?
>>>> That's what I'm using. The form is basically filled out and ready to
>>>> go.
>>> Good. :-)
>> The form is sent.
>
> Excellent!
I'm a little... concerned that I didn't get one of those "thank you for
your application" type emails when I sent the form in. It asks for an
email address, and typically they do that kind of them.
Oh... oh God. Did I type my address wrong?!? o_O
Also not amusing: Sending my details over an unencrypted link? What, you
couldn't afford HTTPS??
>> Anyway, I don't have any "working" code to hand right this exact second,
>> and the application has been sent in now, so...
>
> So it's something to bring up in the interview.
We shall see.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Wed, 10 Jun 2009 22:14:12 +0100, Orchid XP v8 wrote:
> On the other hand, anybody with a real education would already know how
> to do algebra and solve equations. It's only me who's had to guess that
> stuff from what I can scrounge off the Internet and invent off the top
> of my head.
In other words, you overcame circumstances rather than giving up. That's
more than most people will do. You did real research instead of having
it handed to you in a classroom.
>> And there's your incentive to look for something more "in your field".
>> :-)
>
> Hey, I think the entire freakin' server is unanimous in this agreement
> that I need another job. You won't find me arguing! The question is, can
> I actually get one? Am I good enough?
You can get one, and you are good enough. Those that turn you down
aren't good enough for you because they're not willing to look at what
your capabilities are.
>>>>> That's what I'm using. The form is basically filled out and ready to
>>>>> go.
>>>> Good. :-)
>>> The form is sent.
>>
>> Excellent!
>
> I'm a little... concerned that I didn't get one of those "thank you for
> your application" type emails when I sent the form in. It asks for an
> email address, and typically they do that kind of them.
It may be that they don't do that, but rather they send the information
along and have someone personally reply.
> Oh... oh God. Did I type my address wrong?!? o_O
Give it a couple of days, and if you don't hear anything, write back.
Hey, it could be that their mail server is down.
> Also not amusing: Sending my details over an unencrypted link? What, you
> couldn't afford HTTPS??
After you get a job there, this would be something to ask about. Of
course, maybe not as "you couldn't afford a certificate" but maybe more
as "hey, you know, when I filled out the application I was a little
concerned about it being sent in the clear". Or something during the
interview, for that matter - if there's an opportunity. But it has to be
framed well, too.
>>> Anyway, I don't have any "working" code to hand right this exact
>>> second, and the application has been sent in now, so...
>>
>> So it's something to bring up in the interview.
>
> We shall see.
Yep. :-)
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 06/10/09 15:56, Orchid XP v8 wrote:
> Well, this is specifically for Wolfram Alpha. Check out the application
> form. There's only space for, like, 300 words, and they specifically
> want one "large project". I have many, many, MANY tiny projects.
My mistake. I thought it was for a resume.
Regardless, put it on the resume/CV. Take the details you put in your
post and make it a bit more organized.
Also, it'd be great if you make a static web page and put as much of
the above code there, with the descriptions that your provided. You
could put that on your resume.
>> Doesn't matter. Most of these are non-trivial.
>
> You think??
Yup.
I was talking to a CS Master's student in a program ranked in the top 5
in this country. He was taking a probability course where he had to
compute some expected values of stuff like coin flips with certain
constraints. Some were tricky to calculate, and he was asking for help.
I was busy/lazy, so I told him to first simulate the system
(straightforward - some would take less than 10 lines in a decent
language) and use that as a test of his calculations.
He had a great deal of trouble writing code for this, and he gave up.
Now granted, his background is not in CS (some other engineering). But
it gives you an idea of who you're competing with. And people like him
get hired.
In any case, I don't see too much harm in putting this stuff in the
Wolfram application if you can't think of a "big" project. I doubt they
keep blacklists.
--
On a Taxidermist's window:
"We really know our stuff."
/\ /\ /\ /
/ \/ \ u e e n / \/ a w a z
>>>>>>mue### [at] nawaz org<<<<<<
anl
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Wed, 10 Jun 2009 17:01:54 -0500, Mueen Nawaz wrote:
> Now granted, his background is not in CS (some other engineering).
As a side comment, some of the best problem-solving coders I've ever seen
(not software engineers, mind) are people who come from engineering
backgrounds. I participated in several ACM programming contests when I
was in college, and one of the top ranked teams in the world was the team
from the University of Central Florida. Their top team had no Computer
Science students in it. What's more, ACM provided a choice of language
(C or Pascal) for the contests, and the UCF team worked *only* in Pascal.
The guy who was their coach was amazing as well - also only programed in
Pascal for the contests (don't know what other languages he knew, never
thought to ask the few times I met him), but he could solve all 7
problems in the test set very trivially. His co-coach would select the
problems so he had no idea what they were.
I guess part of the point is that knowing C isn't the end-all be-all of
programming. :-)
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Orchid XP v8 wrote:
> ...should I continue?
Other than the mandelbrot generator, I don't really have the math to do any
of those projects. (Or the patience anymore, for that matter.)
> But not massively relevant to this specific application.
Of course it is. It means "I can think, and write, and organize a document."
--
Darren New, San Diego CA, USA (PST)
Insanity is a small city on the western
border of the State of Mind.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> On the other hand, anybody with a real education would already know how
>> to do algebra and solve equations. It's only me who's had to guess that
>> stuff from what I can scrounge off the Internet and invent off the top
>> of my head.
>
> In other words, you overcame circumstances rather than giving up. That's
> more than most people will do. You did real research instead of having
> it handed to you in a classroom.
On the other hand, somebody taught in a classroom would have a complete
coverage of the subject, not just bits and pieces of it.
(I tell you, the number of times I've spent weeks working something out,
only to discover that there's some textbook somewhere with the exact
solution I was looking for already written down... If I had a thorough
knowledge of the subject, I'd have known the answer in the first place!)
>> Hey, I think the entire freakin' server is unanimous in this agreement
>> that I need another job. You won't find me arguing! The question is, can
>> I actually get one? Am I good enough?
>
> You can get one, and you are good enough. Those that turn you down
> aren't good enough for you because they're not willing to look at what
> your capabilities are.
I worry though - on paper, I don't sound very impressive at all. Will I
ever get past the initial deselection?
>> I'm a little... concerned that I didn't get one of those "thank you for
>> your application" type emails when I sent the form in. It asks for an
>> email address, and typically they do that kind of them.
>
> It may be that they don't do that, but rather they send the information
> along and have someone personally reply.
It's a web form. Any 6 year old with a web browser can submit an
application. They must be getting several hundred million *per hour*.
Obviously they will have been prepared for this, and will have an
automated system of some kind to filter out the garbage. I just hope
they don't filter *me* out!
> Give it a couple of days, and if you don't hear anything, write back.
Don't have a way to do that.
>> Also not amusing: Sending my details over an unencrypted link? What, you
>> couldn't afford HTTPS??
>
> After you get a job there, this would be something to ask about.
Heh, yeah...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Jim Henderson wrote:
> I guess part of the point is that knowing C isn't the end-all be-all of
> programming. :-)
I've been saying that for years, but nobody believes me... :-P
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |