rq has quit [Read error: 110 (Connection timed out)]
rq has joined #ocaml
pango_ has joined #ocaml
rq has quit ["Leaving"]
rq has joined #ocaml
pango has quit [Read error: 110 (Connection timed out)]
Raziel has quit ["Yo soy goma. Tú eres cola."]
rq has quit [Connection timed out]
kmag has joined #ocaml
rq has joined #ocaml
bzzbzz has quit ["leaving"]
ramkrsna has joined #ocaml
Snark has quit ["Leaving"]
Banana has joined #ocaml
m3ga has joined #ocaml
shirogane has quit [Remote closed the connection]
pango_ has quit ["Client exiting"]
pango has joined #ocaml
ppsmimou has joined #ocaml
Revision17 has joined #ocaml
revision17_ has quit [Read error: 110 (Connection timed out)]
lightstep has joined #ocaml
<lightstep>
how can i reexport modules? i want my module P to include the interface of Stream as a subset. i tried putting "include Stream" in P.mli, but Stream is a module, not a module type. how can this be done correctly?
MisterC has joined #ocaml
vodka-goo has joined #ocaml
Skal has quit [Read error: 110 (Connection timed out)]
_fab has joined #ocaml
Snark has joined #ocaml
Raziel has joined #ocaml
m3ga has quit ["disappearing into the sunset"]
ski_ has quit ["Lämnar"]
ski_ has joined #ocaml
lightstep has quit ["one warn afternoon is worth six cold nights"]
rq has quit [Read error: 110 (Connection timed out)]
<dylan>
Smerdyakov: No, I'm no provocateur. I was just happy to have a network connection again...
Boojum has joined #ocaml
Snark has quit [Nick collision from services.]
Boojum is now known as Snark
Snark has quit ["Leaving"]
ski_ has quit [brown.freenode.net irc.freenode.net]
vodka-goo has quit [brown.freenode.net irc.freenode.net]
kmag has quit [brown.freenode.net irc.freenode.net]
joshcryer has quit [brown.freenode.net irc.freenode.net]
vincenz has quit [brown.freenode.net irc.freenode.net]
Bigb[a]ng has quit [brown.freenode.net irc.freenode.net]
ski_ has joined #ocaml
vodka-goo has joined #ocaml
kmag has joined #ocaml
joshcryer has joined #ocaml
vincenz has joined #ocaml
Bigb[a]ng has joined #ocaml
quamaretto_ has quit ["Chatzilla 0.9.68.5 [Firefox 1.0.7/20050915]"]
gim has joined #ocaml
rq has joined #ocaml
vincenz has quit [brown.freenode.net irc.freenode.net]
kmag has quit [brown.freenode.net irc.freenode.net]
Bigb[a]ng has quit [brown.freenode.net irc.freenode.net]
joshcryer has quit [brown.freenode.net irc.freenode.net]
vodka-goo has quit [brown.freenode.net irc.freenode.net]
ski_ has quit [brown.freenode.net irc.freenode.net]
Bigb[a]ng has joined #ocaml
ski_ has joined #ocaml
vodka-goo has joined #ocaml
kmag has joined #ocaml
joshcryer has joined #ocaml
vincenz has joined #ocaml
vincenz has quit [brown.freenode.net irc.freenode.net]
kmag has quit [brown.freenode.net irc.freenode.net]
joshcryer has quit [brown.freenode.net irc.freenode.net]
vodka-goo has quit [brown.freenode.net irc.freenode.net]
ski_ has quit [brown.freenode.net irc.freenode.net]
ski_ has joined #ocaml
vincenz has joined #ocaml
vodka-goo has joined #ocaml
<vincenz>
blegh
<vincenz>
I'm trying to make a functional equivalent of an imperative 'environment' model I made
<vincenz>
sadly, Map does not allow multiple bindings with the same name like Hashtbl
ppsmimou has quit ["Leaving"]
<dylan>
I made something like that.
<dylan>
I have in version control somewhere.. hmm
<dylan>
*have it
schlick has joined #ocaml
<schlick>
Could someone explain to me what exactly is ment by type checking? The reason I'm asking is it appears that it's not strictly "be sure this is big enough to hold that value" or "be sure it's sane to perform this operation on that kind of data", since apparently there are type checks for sane file use and memory allocation/deallocation.
<schlick>
I'm also confused by the difference between dynamically and statically typed. It seems it's a range, in practice. Just like strongly and weakly typed. Could anybody clarify that?
<dylan>
static typing means "checked at compile time", afaik.
<dylan>
I belive type checking means "Be sure this is big enough" in C, but in ocaml (et al) it has more to do with proving a program to be correct.
<schlick>
So a statically typed language is any language you can check to see if a operation is possible/sane on data at compile time or when the code is loaded into the interpreter (i.e. without waiting for it to mess up at run time)?
<dylan>
vincenz: a way to make Map act a little like Hashtbl or association lists, http://hardison.net/pad.ml
<dylan>
you basically use an 'a list Map, where the find operation returns the head of the list, and remove puts the tail in place of the full list. It'd also be smart to use Map.remove when the list is [] ...
<vincenz>
nah it's ok, I did iit a different way
* dylan
shrugs.
<vincenz>
'a Map lisit
<vincenz>
:D
<dylan>
O.o
<dylan>
Could I see the implementation? :)
<vincenz>
instead of {dict = 'a Map; context = key list list}
<vincenz>
basically it's a scoped environment
<vincenz>
\o/
<dylan>
Ah.
<vincenz>
Env.push
<vincenz>
Env.pop
<dylan>
I use a rather nasty thing for scoping. it's unspeakable.
<vincenz>
like what?
<vincenz>
btw
<vincenz>
do you bind the scope table to every expression in your AST? or how does that work
<dylan>
Something that has an pointer to its parent environ.
<dylan>
I pass scope around to my eval function.
<vincenz>
I'm not evalling
<schlick>
So compilers are a popular topic here?
<dylan>
Each time I create a function or block for some statement (like if), I do Pad.copy, which does not actually copy...
<schlick>
Or at least parsers?
<vincenz>
yeah\
<vincenz>
dylan: but for instance during type-checking to make sure that you're calling a func with the right number of args... you need the scope table there
<dylan>
instead, copy creates a new pad, which also points to the one I'm "copying"
<vincenz>
that's why I wanted a functional one :D
<vincenz>
dylan: hmm...so you have two ASTs? one that's unannotated and one that's annotated?
<dylan>
Arity checking was quite easy
<vincenz>
it's a biit more than just arity
<dylan>
The AST carries nothing about the environment.
<vincenz>
well
<vincenz>
I figured I do scoping analysis once and I'm done with it
descender has quit ["XML is like violence, if it doesn't solve the problem, just use more."]
<schlick>
So somewhere down the road it'd be ok to ask questions about ones? Right now about all I could use input on is good reading material for different kinds of compiler-related analysis (control flow, data flow, etc).
<dylan>
My interpreter does as little as possible, as it is interpreted every time it is run.
<vincenz>
mine is not an interpreter
<dylan>
Ah
<dylan>
That makes sense then
<schlick>
be ok to ask questions about compilers rather. :P Still a bit sleepy. :P
<vincenz>
dylan: I made a little modelling language to study different source transfos
<dylan>
vincenz: Neat.
<vincenz>
yeah but my quesiton is
<vincenz>
where do I keep the information I get from analysis
<vincenz>
do I make a second AST that has place in it for a context table?
<dylan>
Perhaps an annotated AST?
<vincenz>
do I create my original AST from parsing with those contexts empty so I don't need to copy the model twice
<vincenz>
I mean I don't have two .ml files
<vincenz>
one for Ast and one for AnnoatedAst
<vincenz>
which is .. .lame
<vincenz>
heh
<vincenz>
I just realized I could prolly do scoping analysis during parsing
<dylan>
That seems like a small sin, no?
* vincenz
shrugs
<vincenz>
I have it coded separately
<vincenz>
just bugs me that type wise, unanalysed AST and analysed AST are the same type
<vincenz>
otoh, I don't feel like completely duplicating the different variant types
<dylan>
perhaps,
<dylan>
type annotated_ast = { notes: something; ast: ast }
<vincenz>
notes : unit
* vincenz
snickers
<vincenz>
wouldn't do tho
<vincenz>
then I can't patternmatch on the annotated_ast anymore
<dylan>
True
<vincenz>
fec it
<vincenz>
it's my tool anyways
<dylan>
perhaps, 'a ast, and each variant has 'a * rest of stuff
<vincenz>
and functorize it?
schlick has left #ocaml []
<dylan>
use unit ast for unanalysed ast, and notes ast for analysed ast.
<vincenz>
could do that I guess
<vincenz>
ok
<dylan>
they're now to different types
<vincenz>
yeah
<vincenz>
Ast.Make(NoteModule)
<dylan>
and you can write polymorphic functions that work on both
<dylan>
Doesn't even need to be a functor.
<vincenz>
o.O
<vincenz>
oh
<vincenz>
I see
<vincenz>
okies
<vincenz>
thx
<dylan>
:)
<dylan>
I get royally confused reading haskell type signatures, as it is "backwards". XD
<dylan>
like going from {noun adjective} to {adjective noun} order...
<dylan>
It must be because I'm eating coffee grounds on a peanut butter sandwich.
<vincenz>
lol
<vincenz>
dylan: you're a cs student?
<vincenz>
\o/
<dylan>
Not yet.
<vincenz>
Environment.Imperative and Environment.Functional
<vincenz>
dylan: HS?
<dylan>
No, college. Not taken any CS classes yet
<vincenz>
oh
<dylan>
(college == university)
* vincenz
started late with coding
<vincenz>
I learned ocaml after I graduated
<dylan>
It seems like my future professors either love java or C#. :(
<Smerdyakov>
dylan, it means you picked a bad school!
<dylan>
Smerdyakov: I have no choice!
<vincenz>
mmmm
<vincenz>
pecan nuts
<dylan>
It's fun explaining lambda calculus to your IT professors.
<dylan>
mmm, pecan butter.
<vincenz>
hehe
<vincenz>
reminds me of when I was like.... 11
<dylan>
vincenz: Did you think I was a CS student because I eat coffee?
<vincenz>
and I had an alterante solution to a math problem
<vincenz>
and he wouldn't believe me and called my parents at 1am to tell them I was right :P
<dylan>
lol
<dylan>
I was educated at home, and my dad was impressed that I figured out the pythagorean theorum before we even got into geometry.
<vincenz>
mmm
<vincenz>
more pecan nuts
<dylan>
I was wondering, does ocaml's GC cause it to randomly pause like java's?
<vincenz>
Smerdyakov: how do you annotate your ast's?
<vincenz>
'a ast?
* vincenz
wonders whether he should even annotate his function formals
<Smerdyakov>
I usually don't!
<Smerdyakov>
dylan, you have no choice of which school to attend?
<dylan>
Smerdyakov: Not really. Not without moving quite far, leaving my family and the love of my life behind. It's not a bad university, just a sucky CS department.
<vincenz>
dylan: your laptop is stuck to the floor?
<Smerdyakov>
dylan, well, being willing to relocate for opportunities is strongly correlated with professional success.
* vincenz
quotes dylan "leaving my ... and the love of my life behind"
<dylan>
vincenz: She is not yet part of my family. :)
<Smerdyakov>
I know very few people who went to college near where they grew up,.
<dylan>
Smerdyakov: And professional success means nothing without love, to say nothing of friends and family. :)
<Smerdyakov>
dylan, well, picture yourself at 40 wondering why your life doesn't quite feel fulfilling!
<Smerdyakov>
Most of my peers today grew up across the country, or in a different country!
<dylan>
It's not like I'm going to a school of ill repute, and my other major they're quite good at: Linguistics.
<Smerdyakov>
Grad school is a really good idea for many people who would be in #ocaml, and you almost certainly need to relocate to do it right.
<Smerdyakov>
Which school of non-ill repute do you attend?
<dylan>
University of South Florida.
<Smerdyakov>
I don't that's on the radar of the big players in IT.
<Smerdyakov>
s/don't/don't think
vincenz_ has joined #ocaml
<vincenz_>
I hate hate hate screen
<vincenz_>
sometimes when I switch window
<vincenz_>
it suddenly completely blocks a window
<dylan>
Good, as I'm not going into IT. :)
<vincenz_>
I've looked through man COUNTLESS times
<vincenz_>
and I can't find the key to unlock it
<Smerdyakov>
dylan, what do you want to do after you graduate?
<vincenz_>
like that screen completely freezes
<dylan>
vincenz_: consider adding nonblock on and defnonblock on to ~/.screenrc
<vincenz_>
dylan: how do I unblock it
<dylan>
vincenz_: not sure, sounds like screen is caught waiting for input that will never come. At least that's what somebody told me, when my screen was doing that.
fluxx has joined #ocaml
<vincenz>
moh
fluxx has quit [Client Quit]
<vincenz>
C a Cq
vincenz_ has quit [Client Quit]
<vincenz>
dylan: and I was referrinig to your laptop being the love of your life
<dylan>
vincenz: Heh. :)
<Smerdyakov>
dylan, not going to answer?
<dylan>
Smerdyakov: After I get a bachelor's degree, it is likely I'll transfer to somewhere nicer to get a doctorate of philosphy.
<Smerdyakov>
Somewhere nicer in Florida, and a PhD in what?
<dylan>
One of my chief ambitions to exodus from florida, and perhaps the US. :P
<dylan>
*is to
<vincenz>
hmmmhmm
<dylan>
I hate this place with a passion.
<vincenz>
should I do it like this:
<Smerdyakov>
dylan, a PhD in what?
<vincenz>
type 'a exp = variant and t = 'a * 'a exp
<vincenz>
or just remove the 'a * and put it straight in all the varians
<dylan>
Smerdyakov: Either CS or Linguistics.
<dylan>
CS in the mathy sorts of areas, of course. I intend on getting a second PhD, too. But that is neither here nor there.
<dylan>
vincenz: that looks more... "clean", I think
<vincenz>
yeah
<vincenz>
otherwise I'd need an * 'a in each
<Smerdyakov>
dylan, if you want to get a PhD in CS, I think you shoul try to transfer somewhere higher-profile for your junior and senior years.
<Smerdyakov>
dylan, and why would you want two PhDs?
<Smerdyakov>
dylan, usually, if someone gets a second, it's because he realizes after-the-fact that he doesn't like his original field.
<dylan>
Smerdyakov: For the challenge.
<vincenz>
dylan: do your postdoc in linguistics
<dylan>
Smerdyakov: Sometimes. Other times, it is because they are passionate about both. I know someone with one in physics and another in mathematics.
<Smerdyakov>
dylan, the challenge of being the only 30-something among a pool of 20-something students who are quicker than you? :)
<dylan>
Smerdyakov: Exactly.
<Smerdyakov>
dylan, the challenge of having an advisor your own age? :D
<vincenz>
Smerdyakov: or younger
<dylan>
Why should this bother me?
<Smerdyakov>
dylan, the challenge of being poor while your college graduating class is all gettin' rich? :D
<vincenz>
my advisor did his phd while I started, he's postdoc now and he's only a year older than me
<vincenz>
dylan: you can do research as postdoc
<dylan>
Smerdyakov: Sure. The second one is really an idea for when I'm quite older than 30
<Smerdyakov>
dylan, how does your physics & math friend feel now about his choice?
<dylan>
I figure when I'm a senior citizen, I will either go postal and start shooting everyone in sight or go back to university until I die.
<dylan>
Smerdyakov: he enjoys both. And is not rich, but also not poor. :)
<Smerdyakov>
Unless you are Super Genius Extreme, you will not be able to get a reputable PhD once you are over 50.
<dylan>
I believe he teaches both in some small community college.
<Smerdyakov>
Hardly anyone is capable of making serious research contributions past 30
<dylan>
Smerdyakov: Then there is always the going postal option.
<Smerdyakov>
These professors do it by getting their students to do the work. ;)
<dylan>
Ah, this is good. I am never serious, so serious research wouldn't work.
<Smerdyakov>
dylan, you expect to pay your own tuition & living expenses while doing it?
<dylan>
I'm doing so now. Part of the reason for not moving to another college is I wouldn't be able to afford it.
<dylan>
I'd have no job, no connections, nothing.
<Smerdyakov>
dylan, the problem is that a PhD takes more time than the usual full-time job. There is no opportunity to earn money without ruining the educational experience.
<Smerdyakov>
dylan, unless you are paid to do your research, which won't happy if it's not "serious."
<Smerdyakov>
s/happy/happen
<dylan>
I have a less than half-time job that pays enough to survive. :)
<Smerdyakov>
dylan, I wouldn't assume that being less than half-time means that it's compatible with the time requirements of a PhD program.
<dylan>
Oh well.
<dylan>
I do calculate at the current rate I'm saving, I'll have enough money in the bank to live off for two years after I get my bachelor's.
<Smerdyakov>
2 < 5 !
<dylan>
Indeed.
<dylan>
But I could never, never live just to go to school for a possible (and still not certain) future, if that would mean losing something that is far more important.
<Smerdyakov>
I'm sure there are less prestigious PhD programs where people aren't there to prepare for careers as researchers or teachers, but I think it would be demoralizing to attend one.
<Smerdyakov>
You can learn things on your own by reading books. The only reason I see to enter a formal educational program is to prepare to interact with the people you meet after you graduate.
<dylan>
That, and for the slip of paper that affirms you might possibly know what you claim to.
<vincenz>
ooh
<vincenz>
I love ocaml typing :D
<dylan>
vincenz: hmm?
<vincenz>
dylan: I love ocaml typing
<KrispyKringle>
Smerdyakov: Where do you go again? UCB?
<dylan>
Indeed. The particular reason for that confession of love?
<Smerdyakov>
dylan, no, there is no use for a PhD if you don't enter research or university teaching.
<Smerdyakov>
dylan, it _hurts_ your chances of getting other jobs.
<Smerdyakov>
KrispyKringle, yes.
<dylan>
Smerdyakov: The later, however, is nice. I do intend on eventualy teaching at some small university. :)
<Smerdyakov>
dylan, except for a few others, all the way at the top of organizations.
<vincenz>
dylan: type ('a, 'b) annot = {notes : 'a; t : 'b} module Exp = struct type 'a exp = SomeVariant; type 'a t = ('a, 'a exp) annot
<KrispyKringle>
Smerdyakov: Did you go straight from undergrad?
<Smerdyakov>
KrispyKringle, yes.
<flux__>
maybe the work marked is different here, but I don't see PhD hurting chances of getting a job
<KrispyKringle>
Smerdyakov: Ever worked full time somewhere (other than the internship)?
<flux__>
(although it might not be such a big factor either; however it might give you more money)
<Smerdyakov>
flux__, I can only talk about the USA. I think things do work differently here.
<dylan>
flux__: yay finland!
<KrispyKringle>
flux__: Some companies assume that you are less up to speed on the more practical stuff that they care about.
<KrispyKringle>
e.g. one MS recruiter told me just that.
<Smerdyakov>
KrispyKringle, I've only had summer jobs. The one I had in high school wasn't called an internship. Everything else has either been at a university or called an internship.
<KrispyKringle>
that a PhD doesn't really hurt so much as you'll have to have been doing some "real" work at the same time to convince them you still know how to write code.
<dylan>
Joy of joys, working for Microsoft...
<Smerdyakov>
dylan, Microsoft is a great place to work compared to almost all of its competition.
<Smerdyakov>
dylan, but sucks compared to a university. :)
<KrispyKringle>
Smerdyakov: Yeah. Well, I'm struggling with that particular decision right now, but since it doesn't look like I'm going to finish many of my applications in time, I think I'm going to go back to MS for a year or two. Or three.
<KrispyKringle>
I need some time off from school.
<dylan>
Smerdyakov: Several friends work there, it's nice except the "all your base" contract on creative works.
<Smerdyakov>
dylan, and I expect that their competitors do the same..
<KrispyKringle>
dylan: Their contract really isn't as all inclusive as that.
<KrispyKringle>
You can work on anything that's not related to what you do at work and doesn't compete with what you do at work.
<KrispyKringle>
of course, it's at-will employment, so you can be fired without cause.
<Smerdyakov>
KrispyKringle, why?
<KrispyKringle>
Smerdyakov: Why what?
<dylan>
Anyway, I don't want to program for a living. That's my hobby.
<Smerdyakov>
KrispyKringle, why do you need some time off from school?
<KrispyKringle>
Why do I need time off? Or why am I struggling with that decision?
<KrispyKringle>
Oh.
<KrispyKringle>
I'm sorta tired of the stupidity of classes.
<KrispyKringle>
And even if I started right in with research, I'd still be taking the required classes.
<Smerdyakov>
KrispyKringle, grad school classes are completely different.
<KrispyKringle>
And I'm questioning the wisdom of just sticking myself back in academia if I'm not sure I want to continue in it.
<Smerdyakov>
KrispyKringle, I'm not saying that I'm overjoyed to take them, but they're not a big enough pain to counterbalance the advantages of being a PhD student (and eventually getting that PhD!).
<KrispyKringle>
Sure, I'm comfortable in academia, but if I don't know I want to be a researcher, a PhD program is a huge committment.
<KrispyKringle>
Smerdyakov: Sure. I understand that.
<KrispyKringle>
Like I said, I also think the work experience can be useful. It's anecdotal, but I'm working with a grad student now who's such a moron.
<Smerdyakov>
KrispyKringle, if you are good enough, you can make enough money while doing the PhD that it's not that big of a committment.
<KrispyKringle>
Doesn't know how to communicate at all.
<KrispyKringle>
Smerdyakov: Oh, I didn't mean in terms of money.
<Smerdyakov>
KrispyKringle, what did you mean?
<KrispyKringle>
Anyway, so I spent, maybe, a half hour to an hour debugging something and was overjoyed to find out it's a bug in his part of the code.
<KrispyKringle>
So I e-mail him about it, and he writes back and says, "Oh, yeah, I haven't implemented that yet."
<Smerdyakov>
KrispyKringle, grad student in CS at Penn?
<KrispyKringle>
I hope he's not in this channel.
<KrispyKringle>
Yes.
<KrispyKringle>
He could be here for all I know, and then I'd sound like the fool.
<KrispyKringle>
And there you go saying Penn.
<KrispyKringle>
;)
<Smerdyakov>
KrispyKringle, well, you see, Penn isn't one of major attractors of the best CS students.
<KrispyKringle>
What I meant, though, about the committment is just the opportunity cost kinda thing.
<KrispyKringle>
Smerdyakov: No, certainly not equivaleent to UCB.
<KrispyKringle>
Though my guess is a place like Penn is more my flavor than a place like UCB. My grades aren't so stellar and my research experience is largely limited to this year.
<Smerdyakov>
I got into Berkeley with less than a year of research experience.
<KrispyKringle>
And a 4.0 GPA? :P
<Smerdyakov>
Yes.
<KrispyKringle>
Where'd you do undergrad?
<Smerdyakov>
CMU
<KrispyKringle>
Ah.
<KrispyKringle>
So I don't know. I'd say it's sort of opportunity cost. If I do a PhD program and drop out after 2 years, even if I have a masters, that's kinda wasted time.
<KrispyKringle>
Plus, I don't think it's as likely to help me make up my mind as working wouold.
<KrispyKringle>
If I hate working, I can go back to grad school, but if I'm still in school, well, I'm still in school. Not a lot of contrast. It would give me some idea about research--whether I like that--but it's still school.
<Smerdyakov>
My pre-grad-school jobs definitely helped me make up my mind that I wanted to go to grad school! :D
<KrispyKringle>
Plus, when writing my statement of purpose, I realized I have no purpose. ;)
<KrispyKringle>
Ah, what were they?
<KrispyKringle>
One of my professors tells me he only had one real job (a summer internship) before grad school, and hated it so much he never wanted to work.
<KrispyKringle>
But to a degree that highlights how insular academia can be.
<Smerdyakov>
Working on e-commerce apps for 3 summers in high school, then a disastrous internship at Avaya, then a summer research assistantship at CMU.
<KrispyKringle>
Ah, haha.
<KrispyKringle>
That makes sense.
<KrispyKringle>
Just like my professor.
<KrispyKringle>
Well, I don't know. I don't think the worke xperience will hurt.
<dylan>
Smerdyakov: I think this is like a vi vs. emacs debate, it ultimately matters what is more important to one: Love or professional success. :)
<KrispyKringle>
haha
<KrispyKringle>
I don't think that's fair.
<KrispyKringle>
i'm not at all a money grubbing asshole.
<Smerdyakov>
dylan, you speak as though your s.o. is rooted to the ground.
<KrispyKringle>
I just don't know that academia affords me more of an opprotunity to do what I want thanworking.
<dylan>
Smerdyakov: It is not just love for that person. It is love of my friends, family... plants.
<dylan>
And those plants are indeed rooted in the ground.
<Smerdyakov>
KrispyKringle, if you want to use OCaml, then it clearly does. :P
<KrispyKringle>
Smerdyakov: Anyway, I'm curious; what's your experience WRT the competence of people who have worked and who have not?
<KrispyKringle>
Smerdyakov: What do you mean?
<KrispyKringle>
I'm actually going to a job interview on Thursday with a company that's nearly exclusively OCaml :P
<Smerdyakov>
KrispyKringle, if you want to use modern programming languages and other things "out of the ordinary," then academia is a much surerbet.
<KrispyKringle>
But I'm not really a big OCaml hacker. Up until this semester, I'd never used it since Freshmen year.
<dylan>
KrispyKringle: wow
<KrispyKringle>
Smerdyakov: True, but academia also feels, to me, like it can at times be stifling.
<Smerdyakov>
KrispyKringle, I know some people who went to work at Microsoft & similar because they got turned down by every grad school they applied to. You can perhaps infer something from that. ;)
mattam has joined #ocaml
<KrispyKringle>
Smerdyakov: Sure. My sister--who's a PhD student at UW--keeps telling me, "The only reason people go to grad school is because they don't have good jobs." I disagree with her, of course... ;)
<KrispyKringle>
Smerdyakov: I've got this relative big-wig in my team at MS recruiting me heavily to go there, and promising to "look out" for me and make sure I get "the best opportunities" while I'm there. I just think I'd be a fool to not jump at it.
<Smerdyakov>
KrispyKringle, I have met a few people who knocked me over with their intelligence. I can't think of one who didn't pick grad school.
<KrispyKringle>
Smerdyakov: What's your point? That smarter people choose grad school? Maybe they do.
<KrispyKringle>
Is my goal in life to be the smartest person, though?
<Smerdyakov>
KrispyKringle, you asked about abotu competence.
<KrispyKringle>
Smerdyakov: Oh, I meant strictly the practical competence. In other words, this grad student I'm working with is plenty smart.
<KrispyKringle>
As smart as most of the people I met at MS.
<KrispyKringle>
But in terms of communication and just the skills you need on a large project, he's a bit lacking.
<KrispyKringle>
That's not an intelligence thing.
<KrispyKringle>
It's just a learned skill that I believe you don't pick up as easily in academia.
<Smerdyakov>
I don't have enough experience/observations of large project development to comment on that.
<KrispyKringle>
Sure, me, either. It's anecdotal. What's why I asked you for your anecdotes. ;)
<Smerdyakov>
I don't have anecdotes. I've never been involved in any really large projects.
<mattam>
except hcoop!
<Smerdyakov>
mattam, it can't be large if I do over half the work. :P
<vincenz>
hehe :P
<mattam>
oops
<vincenz>
what's hcoop?
<KrispyKringle>
Smerdyakov: OK.
<Smerdyakov>
Yeah, AND: Join HCoop, everyone! http://hcoop.net/ -- Best Internet hosting for Internet services implemented in OCaml or God-knows-what-else! Endorsed by mattam!
<KrispyKringle>
Smerdyakov: I mean, the *image* of grad school--that this is what smart, successful people do--can be really appealing. I look up to professors I know, and they went to grad school, so the encouragement of those role models is there. But doing it just becuase "Hey, that's what smart people do and I want to be a smart person" just seeems silly to me.
<KrispyKringle>
And since I'm not sure I actually want to research those things I'd research in grad school...
<Smerdyakov>
KrispyKringle, more like "The smart people go here instead of elsewhere. Working with non-smart people is depressing.".
<KrispyKringle>
I didn't find anyone I was working with at MS to be that dumb.
<vincenz>
hcoop is only for websites??
<Smerdyakov>
vincenz, no. What made you think that?
<KrispyKringle>
They were all competent at what they did, for the most part.
<vincenz>
Smerdyakov: lazy reading
<KrispyKringle>
Rarely did any of them shock me with their intelligence, but hey.
<vincenz>
hmm hmm
<vincenz>
I'm lazy and tired
<vincenz>
pattern for a foldmap?
<KrispyKringle>
Oh, that's the other thing. I'm a really, really lazy person, Smerdyakov. I'd coast at MS, having enough time for being lazy, much more easily than I would in academia.
<KrispyKringle>
;)
<Smerdyakov>
KrispyKringle, come to some place like Berkeley and you will find that the majority of the CS grad students found their undergraduate programs trivial and had almost perfect grades. That kind of smart!
<vincenz>
grades != smart imho
<Smerdyakov>
vincenz, depends on the program.
<Smerdyakov>
vincenz, there are programs where I have problem saying that anyone who finds them trivial is smart.
<Smerdyakov>
s/problem/no problem
* vincenz
had really good grades in Hs, then average grades in college but I typically studied like 1/2 what the others did if not less
<KrispyKringle>
vincenz: Yeah, that's me, too.
<KrispyKringle>
Like I said, I'm lazy.
<dylan>
I'm also lazy.
<KrispyKringle>
Smerdyakov: I'm not sure I *want* to sequester myself away with such paragons.
<vincenz>
but I did EE, not CS
<KrispyKringle>
Maybe I'd rather make a quick buck, fuck some blonds, and drive a fast car.
<vincenz>
with CS I would prolyl have gotten better grades
<Smerdyakov>
KrispyKringle, "blonds" is male.
<vincenz>
more intuititve less factual
<dylan>
vincenz: EE is harder; I took several (college) EE classes back in highschool. Not fun
<KrispyKringle>
Smerdyakov: Hey, who are you to judge?
<vincenz>
how do I do a foldmap?
<vincenz>
something like ... (fun 'x -> 'a -> 'b) -> 'a t -> 'b t
<KrispyKringle>
Also, Smerdyakov, in the US there's no such distinction and "blond" is preferred.
<vincenz>
such that the x is passed along
<Smerdyakov>
KrispyKringle, driving a fast car is driving the human race closer to extinction. I judge that to be unacceptable by virtue of my right to survive.
<vincenz>
something like ... (fun 'x -> 'a -> 'x * 'b) -> 'a t -> 'b t
<KrispyKringle>
Smerdyakov: Eh, whatever. I'm not sure driving the human race to extinction would be such a bad thing.
<mattam>
wow
<KrispyKringle>
Like I said, my goal is not necessarily to be the smartest guy on the block, to get a lot of letters after my name, or anything like that. If I'd be happier working short work weeks and making a lot of cash, why shouldn't I do that?
* vincenz
is all for thinning out the human population
<vincenz>
should I do the foldmap based on List.fold?
<Smerdyakov>
KrispyKringle, that describes how grad students at Berkeley live now. :)
<KrispyKringle>
I'm confused. hcoop says the cost is about $5 a month, but from Nov. to Feb, there's an additional ~$100/month?
* vincenz
feels ignored
<mattam>
vincenz: it depends on your t
<Smerdyakov>
KrispyKringle, I think the web site explains it adequately.
<vincenz>
mattam: a list
<KrispyKringle>
Smerdyakov: Then maybe I'm just not smart enough to understand.
<vincenz>
mattam: basically I want to pass along a functional environment
<vincenz>
mattam: that I need in my 'b
<mattam>
'a t = 'a list ?
<vincenz>
but that grows as I go down the list
* vincenz
nods
<Smerdyakov>
KrispyKringle, there are some costs that won't be around for much longer that will be applied for those two remaining months.
<vincenz>
something like ... (fun 'x -> 'a -> 'x * 'b) -> 'a list -> 'b list
<KrispyKringle>
Smerdyakov: So in fact, the previously mentioned $5/mon cost is, currently, more like $100/mon?
<Smerdyakov>
KrispyKringle, I think you are confusing cost to the co-op and cost per member.
<KrispyKringle>
On the first day of each of these months, we will bill each member for an even share of one-fourth of the $462.89
<KrispyKringle>
Ah, I see.
<KrispyKringle>
I thought it meant an even share was 1/4th.
<KrispyKringle>
Gotcha.
<Smerdyakov>
That leaves the total monthly amount at slightly over $5 with current membership, but it wouldn't take many more members to keep it still below $5.
<KrispyKringle>
Right.
<KrispyKringle>
What's supported on the server?
<Smerdyakov>
All.
<Smerdyakov>
Probably should join #hcoop to ask more.
<KrispyKringle>
All?
<KrispyKringle>
heh
<KrispyKringle>
It's cool. I have free hosting right now, so that's not worth it to me.
<KrispyKringle>
I'll keep it in mind for the future, though.
<Smerdyakov>
Free hosting where you can run your own OCaml web server like mattam does? :)
<KrispyKringle>
Why would I want to?
<mattam>
vincenz: let foldmap f l x = let rec aux acc x = function [] -> List.rev acc | hd :: tl -> let (x', v) = f x hd in aux (v :: acc) x' tl in aux [] x l ?
<Smerdyakov>
Because you are cool enough? :D
<KrispyKringle>
Right. "Cool" enough ;)
<KrispyKringle>
I don't have a need for that.
<KrispyKringle>
I write a very small number of dynamic pages in Python.
<Smerdyakov>
OK.
* Smerdyakov
leaves
<KrispyKringle>
I do sorta wish my free hosting supported CherryPy, but whatever.
<KrispyKringle>
Yeah. I have to get back to work.
<mattam>
you need a starting value of type 'x somehow
vodka-goo has joined #ocaml
<vincenz>
mattam, like this
<vincenz>
let foldmap f l b =
<vincenz>
let (x', l') = List.fold_left (fun (x, t) a -> let (x', a') = f x a in (x', a::t) in List.rev l'
<vincenz>
woops
<vincenz>
let foldmap f l b =
<vincenz>
let (x', l') = List.fold_left
<vincenz>
(fun (x, t) a -> let (x', a') = f x a in (x', a::t)) (b, []) l
<vincenz>
in List.rev l'
<vincenz>
List.fold_left should take the 'b first
* vincenz
mutters
<mattam>
yes, that's equivalent
<vincenz>
nm
* dylan
just realized smerdyakov means something like "he who reeks"
pango has quit [Remote closed the connection]
pango has joined #ocaml
<KrispyKringle>
dylan: In what language?
<dylan>
KrispyKringle: Russian
m3ga has joined #ocaml
Schmurtz has joined #ocaml
ppsmimou has joined #ocaml
ppsmimram has joined #ocaml
ppsmimram has quit [Read error: 104 (Connection reset by peer)]
<vincenz>
blegh
<vincenz>
I think I blew up the typechecker of ocaml
<vincenz>
nm
<vincenz>
damn, typechecking suire does solve issues :)
<vincenz>
a small bug that would most likely take days to find
<Schmurtz>
yes
<Schmurtz>
it's one the good things of a strong type system
<vincenz>
yip
<vincenz>
I've long been wishing for a language with a haskell type system but without lazyness and with an oo-style invokation
<vincenz>
then you can easily map objects to typeclasses
<Schmurtz>
and ocaml fills all this requiments ?
juri has quit [Remote closed the connection]
juri has joined #ocaml
ppsmimou has quit ["Leaving"]
<vincenz>
no
juri has quit [Read error: 131 (Connection reset by peer)]
juri has joined #ocaml
__DL__ has joined #ocaml
gim has quit ["++"]
smimou has joined #ocaml
flux__ has quit ["reboot"]
Snark has joined #ocaml
ski has quit [Read error: 104 (Connection reset by peer)]
ski has joined #ocaml
<dylan>
vincenz: What about how ocaml types objects? It isn't typeclasses, but still very flexible.
zigong has joined #ocaml
exa has joined #ocaml
m3ga has quit ["disappearing into the sunset"]
Bigb[a]ng is now known as Bigbang
_JusSx_ has joined #ocaml
_JusSx_ has quit ["leaving"]
Snark has quit ["Leaving"]
timstew has joined #ocaml
gim has joined #ocaml
timstew has left #ocaml []
ski has quit [Read error: 110 (Connection timed out)]
Bigbang is now known as Bigb[a]ng
gim has quit ["tchoo"]
vincenz has quit [Remote closed the connection]
zigong has quit [Remote closed the connection]
_fab has quit [Read error: 104 (Connection reset by peer)]
_fab has joined #ocaml
smimou has quit ["bli"]
MisterC has quit [Remote closed the connection]
shirogane has joined #ocaml
vodka-goo has quit ["Connection reset by by pear"]