« first day (1109 days earlier)      last day (3887 days later) » 
02:00 - 18:0018:00 - 23:00

6:00 PM
Super star destroyer operator. Eats all other operators for breakfast..
 
Jay Hanlon on September 16, 2013

 

Stack Overflow officially launched on September 15, 2008. In five short years, you’ve answered over 5 million questions on more than 100 sites, and helped hundreds of millions of people find the answers they needed. Today, we want to celebrate how, together, we changed one small corner of the Internet for the better.

We want to hear your stories about how someone on Stack Exchange helped you.

Before it went into beta, stackoverflow.com had a comic on the landing page that came to symbolize what we were setting out to do: …

2
 
@Ampt No, that's what the monad operator does >>=
 
@seba229 you'll have to post a link to the paper here when you're done. I'd be interested in reading it!
 
user55340
So... anyways... yea, perl has stuff that FP types would like, but would be horrified at other features of the language (how impure!)... but they're just smug lisp weenies.
 
@Ampt Sure. We plan to submit the paper to the ICSE SEIP track (2014.icse-conferences.org/seip). The deadline is October, 23.
 
6:02 PM
@MichaelT Having used perl I say ehhhhh
@JimmyHoffa You should look at the X combinator it's a turing complete language of one operator.
 
@seba229 you going to hyderabad for it? sounds like fun!
 
@MichaelT Nah, it's just more about when you train your mind to see solutions like the one you just listed, and you're given a language that can do them, you rarely if ever find yourself opting for the imperative approach
@jozefg The commercial-space-travel operator?
 
@Ampt Just in case they accept our paper :-)
 
Am I the only one who thinks that turing completeness is overrated?
 
user55340
@Ampt Yep... I could never make it through the Tour de France.
 
6:04 PM
@Ampt Yes. Trying to verify a turing complete set of semantics is a much bigger pain (more impressive) than a turing incomplete one
 
user41796
@Ampt After Armstrong, touring went down hill. Turing, on the other hand ... still something to be said for that.
 
@Ampt No, but it is an interesting metric for things to be studied under. Making a dependently typed totality checked language that's turing complete may be impossible, in this way it makes for a great metric to say whether you've accomplished something amazing or not.
 
@MichaelT more steroids needed
 
@JimmyHoffa Doesn't agda have a "Shut up I know what I'm doing" flag that gives it turing completeness? And coq has turing complete (untyped though) tactics
 
@JimmyHoffa I guess I feel like everything is turing complete now so it doesn't provide a good metric on a language's power
 
6:05 PM
@Ampt STLC isn't
 
@jozefg Yes, but in both cases you lose totality checking. Imagine turing completeness that is totality checked..
 
And it's still a very interesting model to study.
@JimmyHoffa I call halting problem
 
@Ampt SQL isn't, regexp isn't, many DSL and expression languages aren't, and rightly so.
@jozefg ...just saying... :)
 
STLC needs more love..
@JimmyHoffa I've been writing comonads lately :D Love those things
 
@jozefg I've been trying to get my head around them more for a while off and on
I have a poor intution for them
 
6:09 PM
@JimmyHoffa I like the "comonads are contexts" idea
 
they strike me as expansive where as monads are collapsible
 
user55340
@jozefg comon ads - those are the ones that people find commonly?
 
@JimmyHoffa That'd be join vs cojoin
 
exactly
and that's the whole of my intuition for them so far :)
 
@MichaelT Yes, mono ads are only for one person.
 
6:10 PM
@jozefg and mono ids are so easy.
 
@JimmyHoffa Well a comon id is just useless :P Who wants to have an id for everyone
 
user55340
@jozefg Those are put out by the local medical establishments advising people not to kiss people with mono.
 
@MichaelT All of Haskell is secretly a medical warning, don't tell anyone
haskell teaches life lessons, like sharing and how to be lazy yet classy.
 
@jozefg This paints @JimmyHoffa in a completely different light.
 
@Ampt At least Haskell is better than Common Lisp with it's hygiene issues
 
user55340
6:17 PM
@jozefg lisp just wants to cdl with you in the car.
 
@jozefg What lisps disallow imperative coding altogether?
 
user55340
(ok, I made up cdl... I had a fair chance of getting it right...)
 
@JimmyHoffa No mainstream ones, Clojure makes it "hard" and there was some lazy lisp called daisy that I think was pure
In the 80s
And it was superseded by Haskell
 
@jozefg damn. So when I'm telling people to learn FP by taking a language that disallows imperative coding, I'm really stuck with just Haskell prety much
 
user55340
cpr ( Contents of the Prefix part of Register number ) and ctr (Contents of the Tag part of Register number) were the two unused parts.
 
6:19 PM
Clojure I could tell gets close but not all the way there
 
@JimmyHoffa I'd say Racket is also good
it has set! but immutable pairs by default
 
@jozefg I always suggest Haskell or an imperative-disallowedLISP but you're telling me those are a minimal of existence
 
And if you don't teach set! you're golden
 
@jozefg Racket allows imperative execution sequencing though? Or only with set! ?
 
user55340
The key isn't so much allowed / disallowed... but rather 'radical enough different thought that classical thinking doesn't translate well'
 
6:20 PM
It does, but without set! imperative sequencing is just dumb..
 
(what do you want to bet 90% of beginners racket tutorials start out by showing people to do stuff with set!)
 
(begin (+ 1 1) (/ 2 3) (* 4 5)) ==== (* 4 5)
 
user55340
This question appears to be off-topic because it just is. — David 2 hours ago
 
@jozefg dumb or not, even immutability per Erlang when allowed to be sequenced like it can really glosses right past the most important part of declarativeness
 
user55340
From
 
user55340
6:22 PM
-7
Q: Why not make a linkedin chat for interact with companies?

cortexa9Is it possible to make a LinkedIn chat for interact with companies? Any ideas?

 
sets is fun but you have to make sure that you use protection so that you don't end up putting stuff where you shouldn't.
 
@JimmyHoffa Frankly ML works well for your purposes, no one starts an ML tutorial with refs
Or if they do the INRIA researchers are legally obligated to hit them..
I recommend Scheme (r5rs) -> Haskell for FP learning
 
:11253513 Yeah, I've thought of SML for starters, it does allow nested declarations and execution though? like:

sum arr =
  nextVal = head arr + (head.tail) arr
  nextVal + sum (tail.tail arr)
(which would be a totally assinine summation method but the kind of thing an imperative programmer would come up with fumbling around in FP)
 
  let sum = function
                  | hd :: tail => hd + sum tail
                  | []            => 0
in Ocaml
The function keyword combines lambda + pattern match
 
@jozefg Yes, but that's a guard, I'm referring to nested contextual lets
 
6:28 PM
Ah, yes, but only in the same sense as Haskell. The let in Haskell and the let in Ocaml (and SML I believe) are isomorphic. Except Haskells is recursive by default
 
guards don't feel sequential because you get one or the other, in my example you get both to which an imperative programmer would say "I did this step then that step"
 
I mean you could do:

let (h1:tail1) = ls in let (h2 : tail2) = tail1 in let ....
in haskell
 
@jozefg Yeah, but what imperative programmer is going to think to themselves "I just did these steps in sequence!" No, if the imperative programmer realizes your example is how you sequence things then the lesson they need to learn is actually being learned
 
Then I think some ml will work for your definition. It has the same sequencing notation as Haskell and simply defines an infix version of const with applicative semantics.
 
@jozefg Screw it all, I'm changing my tune. From now on I'm going to declare everyone who wants to learn FP shall start with forth or some other pure concatenative language. That'll teach 'em.... (something horrible, I can't even imagine going straight from imperative to concatenative...)
 
user55340
6:33 PM
gah... ml. flashbacks to college work.
 
@JimmyHoffa Thou shall program in lambda calculus with any corner of the lambda cube for a type system
 
@MichaelT It's a good language... :)
@jozefg lambda-mu at least heh
 
user55340
@JimmyHoffa We wrote a program to generate mazes in four languages. First was procedural (C). Then OO (java just came out, talking about 1.0 and applets)... then FP (ml) and then WTF (prolog).
 
Have you looked at CiC @JimmyHoffa
 
@MichaelT You've got it wrong, prolog is in the Huh? paradigm, forth is in the WTF paradigm
 
user55340
6:35 PM
Realize that its college code... and java 1.0, but you can see it at upl.cs.wisc.edu/~m_turner/java/Mazer.html
 
@jozefg Never heard of it
 
user55340
@JimmyHoffa forth is a really nice language.
 
I've found OO more confusing than Forth or Prolog to be honest
 
user55340
colorForth is a programming language from the Forth language's original designer, Charles H. Moore, developed in the 1990s. There was an earlier predecessor called 386 OK which appeared for sale at Silicon Valley Forth Interest Group (SVFIG) meetings in 1992. An idiosyncratic programming environment, the colors simplify Forth's semantics, speed compiling, and are said to aid Moore's own poor eyesight: colorForth uses different colors in its source code (replacing some of the punctuation in standard Forth) to determine how different words are treated. colorForth was originally develope...
 
My mental model of programming clashes horribly with class based OO
 
6:37 PM
@MichaelT Maybe I'm recalling incorrectly
@jozefg what's a common concatenative only language?
 
@JimmyHoffa Um Forth, Factor (more hybrid), Joy, and that may be it. Concatenative programming is comically unpopular
And rewriting a forth is up there with writing a Scheme in terms of enlightenment
 
user55340
@JimmyHoffa I was more going for an even more WTForth flavor...
 
user55340
 
user55340
thats not syntax highlighting... thats syntax.
 
You know, I'm looking at this picture and not exactly saying to myself "Man, those colors make forth SO much simpler"
 
6:39 PM
It makes sense, if you close one eye, and then the other..
2
 
Apparently he wants to use shapes too.....
 
user55340
This is probably a better example...
 
user55340
 
user55340
I've played a number of programing games where the language was a stack based language. Forth doesn't confuse me too much.
 
@MichaelT You find prolog more confusing than a stack based language?
 
user55340
6:44 PM
RoboWar is an open source video game in which the player programs onscreen icon-like robots to battle each other with animation and sound effects. The syntax of the language in which the robots are programmed is a relatively simple stack-based one, based largely on IF, THEN, and simply-defined variables. 25 RoboWar tournaments were held in the past between 1989 until roughly 2003, when tournaments became intermittent and many of the major coders moved on. All robots from all tournaments are available on the RoboWar website. The RoboWar programming language, RoboTalk, is a stack-oriented...
 
I can manage a stack based language, you just read it backwards (and then forwards and backwards rewriting terms as you go...) it takes a bit of a bigger mental buffer sometimes but they're not half bad
 
user55340
@JimmyHoffa Yep.
 
But even being ok with stack based, prolog is much clearer to me
maybe I'd be more comfortable with stack based if I'd experienec with assembly
there is a resemblence between them
 
user55340
It doesn't hurt that one of my old projects was a stack based DSL... and I also did some decoding of what an old hp calculator program was (another stack based language).
 
user55340
The program was for doing radioisotope dating (c-14). The guy running the lab had an old calculator with a mag strip and the instructions. He wanted a program on a PC to do it (before the calculator broke)... but he didn't know what the program was.
 
user55340
6:48 PM
So I did a dump of the source code and reverse engineered what the code did, and wrote a new program.
 
I want a language nicer logic language..
 
@MichaelT That's just cool.
Had to have been fun
 
user55340
It was. And switching to thinking in stack based doesn't really hurt my head. I'm quite ok with programing in dc on unix.
 
user55340
Aug 4 at 0:56, by MichaelT
Solving Project Euer #15 for a 4x4 grid (rather than 20x20 grid) with dc: [d1-d1<F*]dsF8lFx4lFxd*/p
 
user55340
Not a problem.
 
6:54 PM
@MichaelT Ah yes, good point, this is was @Ampt should be learning, he should go learn himself some dc
heh
ah well, back to fparsec
@jozefg have you touched F#?
 
@JimmyHoffa For 20 minutes haha, I don't use windows and Mono is kinda heavy for me
 
@jozefg Yeah, I was going to say; don't bother. It's all well and good if you need to interop directly with .NET, but in the scheme of FP languages it's a pain in the ass. It doesn't allow recursive type definitions, the files are parsed-in-order, as well as file-order that you pass them to the compiler... it's bloody stupid
If at all possible I'd choose IPC from another language over F# in-proc interop
but I work at a .NET shop so beggars can't be choosers. fparsec is actually a decent parser combinator library.
 
@JimmyHoffa I should what?
 
:( I'm liking clojure though
 
user55340
@Ampt Go learn how to program dc. When you are done, the program [d1-d1<F*]dsF8lFx4lFxd*/p should make perfect sense.
 
7:02 PM
@jozefg Grab light table and play with clojure
it's a fun language
 
They need a higher res picture...
 
It is :) I like protocols.. But i wish they were more like proper typeclasses
 
it's no Haskell but it's a step in the right direction. Alternatively skip all that and just learn J
@jozefg After Haskell, you wish every language had type classes
largely because no others do.
 
Coq has "typeclasses" they're weird though
 
@jozefg I think every statement I've ever heard about coq ended with "they're/it's weird though"
 
7:06 PM
Yeah...
 
or vague hand waving about tactics, occasionally with some kind of anger
 
Tactics are cool, and prolog-ish actually. Prolog without cuts
 
@jozefg oh yeah another fun shitfact about F#: You can have ADT's or record types, you may not have an ADT with record syntax, in fact all ADTs are actually only tuples.
you can define a record type and use it as a member of the tuple in an ADT if you really want (which I'm about to do) but what a crock that is..
 
Wat..
@JimmyHoffa this should help destroyallsoftware.com/talks/wat
 
yeah, you can have..
data SomeAdt = ConstructorOne of string * int | ConstructorTwo of int * float
or
data SomeRecord = { Name : string ; Amount : int }

but you can't have any other type constructors for SomeRecord. In fact you don't even get type constructors, you have to know explicitly the names of the members in SomeRecord to use it then give a type hint on your anonymous record as

myRecord = { Name = "Whoa" ; Amount = 42 }:SomeRecord
@jozefg Seen that. Yeah, could be worse I guess
 
7:13 PM
That's silly... Anyways, I'm off! Bye all
 
user55340
 
user55340
its branch merging time!
 
@MichaelT don't miss
 
user55340
Actually, I did. That last commit was me fixing a typo from the blue branch.
 
nothing quite like merging software branches
 
user55340
7:22 PM
On a release week, the feature branches all start merging back into test.
 
7:33 PM
@JimmyHoffa go home yellow branch, you're drunk
 
user55340
8:14 PM
@gnat third item on the collider
 
user55340
9
Q: Popular Security "Cargo Cults"

Rory McCuneIn Information and IT Security there is a nasty tendency for specific "best practices" to become inviolable golden rules, which then leads to people recommending that they are applied regardless of whether they are appropriate for a given situation (similar to Cargo Cult Programming) An example ...

 
user55340
This sounds suspiciously like a discussion question, Rory. — tylerl 3 hours ago
 
user55340
Sorry, Rorry. This is indeed a discussion question. The closest closure reason is opinion-based. One way I could see this is as a CW at best. — Adnan 3 hours ago
 
user55340
Its scored as a '95' at the moment.
 
user55340
8:41 PM
@Ampt Should see it now... the release branch got built. Thats a branch off of Master and then a merge of test. That really messes up how the github network graph looks.
 
10:52 PM
F# I hate you
you lack recursion; Crap!
F# you bastard
-- My haiku for the FP developer at a .NET shop...
 
02:00 - 18:0018:00 - 23:00

« first day (1109 days earlier)      last day (3887 days later) »