logs archiveChat DB / Freenode / #programming / 2015 / November / 5 / 16
jontxu
That's a full siesta :P
adsc
i sometimes wonder if it would be possible to do work during dreams...you know with the right external stimulation
DarkCthulhu_
One of my searches about a consensus algorithm made Google's invite-only foobar page appear yesterday. That secret page where you solve questions and get recruited or something.
adsc
hehe, nice
ezekielnoob
adsc i often dream of coding
beaky
i dream about enterprise
ezekielnoob
which is kind of tiring, especially when you are about to do real programming after you wake up
njcomsec
i dream about zombies a lot
beaky
eww zombies
njcomsec
too much cable tv lol
Melonpan
LOL. https://www.reddit.com/r/Jobs4Bitcoins/comments/3rh4rg/hiring_creative_amazon_marketing_strategy/cwov7zw
adsc
i dream about elephant councils deciding the fate of atlantis
beaky
i love bitcoins
adsc
aren't they falling again?
beaky
rofl phd in webdesign
DarkCthulhu_
pyon, read any cool papers recently?
jontxu
Jobs4Bitcoins... how do you tax that?
adsc
you don't
pyon
DarkCthulhu_: Nah. I'm learning Racket and Clojure, though.
jontxu
adsc, you should
adsc
yeah, you have to, according to law, but how are they gonna find out if you don't?
DarkCthulhu_
pyon, ah! I've done a little bit of racket when I was going through SICP. Never done clojure though. Why did you pick that one?
pewpau
if the intuition of some formal axioms cant be explained or formalized, how do we know that we have the same intuition of a theory? Does i matter?
adsc
it's actually good that the bitcoin exchange rate swings so massively, or rich guys would have fled into the currency long time ago
pyon
DarkCthulhu_: Initially I picked Clojure because its macro system is simpler. But then I found out that Racket's macro system, while a little bit more complex up-front, is also more robust and powerful.
DarkCthulhu_: I'm trying to scaffold some algebraic data types and their derivatives. (To generate zipper types automagically at compile-time.) In principle it's doable with Agda, Idris, whatnot, but macros offer a more realistic way to do htis.
DarkCthulhu_
pyon, I see.. What does clojure do better than.. say Haskell?
(Purely in terms of the language and type system)
quux
pyon what are you using all the zippers for? what sort of program is it
DarkCthulhu_
Holy sh*t.. Gradual typing is a thing. Had no idea such a thing existed.
pyon
DarkCthulhu_: Clojure itself, I don't really know. But Racket... *MACROS*. You can have macros that pattern-match over syntax, processing different cases in different ways.
pewpau
adsc: why is it bad if rich guys move their wealth to bitcoins?
pyon
quux: Purely functional data structures that can be built from small Lego-like pieces.
adsc
pewpau: it's not bad if they pay taxes
DarkCthulhu_
pyon, coupling that with the "code as data" thing I just read is what makes it powerful then?
adsc
pewpau: but the main motivation for rich guys to move their money around is to avoid or minimize taxes
xissburg
tax is theft
pyon
DarkCthulhu_: Yeah. But Racket goes further than Lisp and Racket, by making syntax objects truly first class, rather than just representing them as dumb lists.
adsc
pewpau: they don't want to help the dirty unwashed masses
pyon
DarkCthulhu_: In Lisp/Clojure, your syntax is just a bunch of nested linked lists. It's up to you to make sure that, for example, variable names don't clash.
DarkCthulhu_
pyon, you mean Clojure goes further...?
pyon
DarkCthulhu_: Racket syntax objects are aware of the context in which they exist.
DarkCthulhu_: Which the macro system uses to automatically ensure that variables don't clash.
adsc
xissburg: I guess it is, somebody takes something from someone without their consent, and they don't have it anymore
DarkCthulhu_
Hmm.. That is a neat idea! I can't think of where this is directly useful though. Is it even easy to think of programs this way
xissburg
under threats
adsc
xissburg: so it's not theft?
xissburg
the govt points a gun to your head and demands money
adsc
not a gun
pyon
DarkCthulhu_: It's useful to implement custom language features that your language doesn't have, by desugaring them into features that your language does have.
adsc
xissburg: it threatens you with fines and jailtime if you don't pay
pyon
DarkCthulhu_: It's hard to explain in few words, but Racket macros make it less error-prone to write complex macros.
adsc
xissburg: and then if you still don't pay, it will indeed steal your assets
xissburg
the tax money is just used to pay politicians' outrageous salaries and insane benefits, their trips in private jets, their stay in 5-star hotels, and whatever interests them
pyon
DarkCthulhu_: Having a macro system that ensures that variables don't clash is similar to using a garbage-collected language that ensures objects are allocated correctly.
jontxu
xissburg, and your education and hospital bill
adsc
xissburg: don't forget the socks made with threads of gold they wear
xissburg: every day a new pair!
DarkCthulhu_
pyon, hmm.. Could you give a real example of something that benefits greatly from this, and would be hard to do in a different language?
xissburg
jontxu: that's 0.000001%
jontxu
It isn't
xissburg
99% gets stolen and wasted
jontxu
I know there are stupid expenses but you don't remove taxes because of that.
xissburg
so yeah, that does not justify
adsc
xissburg: I heard a large part is actually directly used in heating, because the white house has a conventional oven heater, and they fire it directly with dollar bills
xissburg
countries are like big resorts owned by the govt. So you gotta pay them in order to stay
adsc
xissburg: you only have to pay them if you make any money, though
xissburg
private property owned by politicians
btw you don't own your own land
if you don't pay them
they take it from you
adsc
xissburg: if you don't own anything and have no income, they leave you alone
pyon
DarkCthulhu_: I'll use what I'm doing as an example. In Haskell, data types are basically combinations of the following operators: sum (Either), product (tuples), exponentials (functions). If you define a type constructor only in terms of sums and products of its type variables, then what you get is called a polynomial functor. A polynomial functor, just like polynomials functions in calculus, has
a derivative. This derivative is another polynomial functor.
adsc
xissburg: so technically, you could set up an automatic ownership transfer to your wife and back, and execute it really fast, and they couldn't determine who owns the thing
pyon
DarkCthulhu_: The rules for computing these derivatives are pretty much the same as the ones for computing derivatives in calculus: derivative of a sum is the sum of derivatives, derivative of [f times g] is [derivative of f, times g] plus [f times derivative of g].
DarkCthulhu_: However, Haskell doesn't let you compute these type-level derivatives in a programmatic manner.
DarkCthulhu_
Hmm
pyon
DarkCthulhu_: Type-level derivatievs are useful because they are the building block for zippers, which are a version of a recursive data structure that's focused on some internal (not necessarily root) node.
DarkCthulhu_: And many algorithms for working on purely functional data structures are easily expressed in terms of zippers.
DarkCthulhu_: But Haskell/ML/you-name-it force me to (0) compute type derivatives by hand, (1) implement them by hand!
Belxjander
Has anyone ever seen an error like "== /Projects/Kirito/Python-3.5.0/Objects/dictobject.c: In function 'PyDict_MergeFromSeq2': == /Projects/Kirito/Python-3.5.0/Objects/dictobject.c:1991: warning: will never be executed" before?
the =='s are where it would normally be a newline
DarkCthulhu_
pyon, I'm beginning to understand what you mean now..
pyon
DarkCthulhu_: In Racket, what I'm trying to do is implement a type derivative operator - I give it a polynomial functor, it gives me its derivative. I'm hoping that this will make it less annoying to write code that manipulates lots of zippers.
DarkCthulhu_: Sorry - I'm not so good at explaining things. But what Racket offers is the ability to extend the language (rather than just the standard library) with features you want.
Or, rather, this is what Lisp offers. What Racket offers is the possibility to do this - safely.
But I still miss static types. :-(
DarkCthulhu_
pyon, thanks for explaining :) . I do understand but in a very high-level-ish fashion.
pyon
:-)
robhol
what the fu*k :p
rindolf
Belxjander: I think valgrind gave errors of this sort.
pyon
Anyone here used rr?
I want to give it a try, but apparently it depends on 32-bit compatibility libraries.
Either that, or I'm doing something wrong.
rindolf
thecha: hi, sup?
thecha
hi rindolf :)
shalom
rindolf
thecha: any luck with Project Euler?
thecha
okrakha!
« prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 next »