« first day (1293 days earlier)      last day (3592 days later) » 

12:00 AM
@tylerl Whenever you need to implement a lot of memory management and all, like a GC. You either have to use tons of unsafe blocks, or just wrap around C
Eg a javascript engine
 
@ManishEarth How is that easier in C++? What does C++ have that Rust lacks that makes writing a JS engine in C++ easier?
 
At Servo we just use Spidermonkey, it can be rewritten in Rust but as of now there's no need to
@tylerl No, as in Rust won't provide a significant improvement over C++
Rust loses its power once you start using tons of unsafe blocks. Because those blocks turn off the memory safety checking.
 
@ManishEarth Right. But at least you're being explicit about your unsafety. At least you're painting a big red sign over the part that requires extra vigilence. So much of the vulnerabilities in C++ code happen in places where you're doing boring stuff that requires no particular speed or fancy language features.
 
@tylerl Yep, agreed. But as of now, I'm pretty sure that a Spidermonkey written in C++, with years of vuln testing, will be more secure than a Metalmonkey written in Rust
Note that unsafe blocks aren't the only place unsafety happens
I might do fn foo(){unsafe{blah}}, and whenever I call the function, I'm doing something unsafe. But I don't have to put up a big red sign when calling foo. Poor decisions like this ("I don't think foo can be used in such a way so as to cause a memory safey hazard", even though it can) will still happen
And if unsafe fn foo is used, you get more unsafe blocks littering the place. If we started from scratch, Metalmonkey or whatever would be more secure than Spidermonkey. But we aren't starting from scratch ;)
 
@ManishEarth Sure, you can still kill a man with safety scissors.
 
12:09 AM
yep
@tylerl Anyway, why are you getting skeptical about it replacing C?
 
@ManishEarth It doesn't simplify things quite the way languages like Go do. There's more mental gymnastics involved than I think are necessary.
 
@tylerl Like?
So Rust is a language that doesn't trust the programmer, that's where the memory safety comes from
It's like that thing teachers used to say when you asked to go to the bathroom. "Can I go to the bathroom?" "I don't know, can you?". They know perfectly well what you mean. They want you to express it better.
And this is one of the reasons why I don't think it will completely replace C(++), C++ is easier and less of a mental tax
The mental tax of Rust cleans up segfaults and stuff, though. It tries to transfer the headache from unpredictable runtimes to predictable compile times. But that doesn't alleviate the point that the compiler is just plain pedantic.
But at the end of the day, it's supposed to be :)
Memory safety is an issue because programmers are stupid. Don't trust 'em ;p
 
@ManishEarth ugh. now I don't even remember. I spent a long time with Rust about a year ago and I remember being distinctly disappointed with the way the core paradigm is organized, having just recently before that started using Go in production stuff. I was hoping to start using Rust for developing shared libraries.
 
@tylerl It's more of a "use it for a month, learn to love it" sort of thing but to be fair one can even learn to love PHP if they are forced to use it for a month :P
 
In comparison, when I started using Go I remember distinctly thinking "WOW, why haven't we all been doing this from the beginning." Everything was just so clean and well-designed.
 
12:19 AM
Rust should stabilize by the end of this year though. Something 1.0 release milestone something. Might make it easier to write libraries.
 
@ManishEarth I'll give it another shot then.
 
@tylerl Agreed, Go is fun. But after using Rust for a few months, my C++ code is now better, I have an internal borrow checker that tries to check for memory safety. Annoying at times when I really don't want to think so much, but I take it as an improvement :)
/me needs to write more Go, haven't touched that in months
Also, <3 the FPishness of Rust
 
@ManishEarth I had to abandon Go a couple of years ago because of bugs in the stdlib. But at 1.0 they really cleaned it up. It's totally production ready, I think.
 
@tylerl Hm, gotta give it a ... er ... go then ;)
Rust is at a stage where they're punting stuff around the core libs, most of the functionality is frozen. Though there are talks of removing certain types of cumbersome syntax.
 
@ManishEarth you have to admit that the syntax is a bit distracting, though, isn't it?
 
12:25 AM
Yep, at times.
The default-immutability gets to me. I know why it's there, and it's fundamentally a good (/necessary) change. But annoying.
 
@ManishEarth FPishness?
 
And named lifetimes are ... not so good. There's a proposal to increase inference on those and tidy up the syntax
@TildalWave Functional Programming
 
@ManishEarth ah, I thought you meant foppishness :)
 
look up Rust's pattern destructuring. Copied from SML (like many other things), but still awesome
I keep wishing I had match statements and Rust-y enums in JS ;)
 
 
1 hour later…
1:54 AM
@ManishEarth there's a euphemism in there somewhere...
 
2:14 AM
@DavidFreitag This is the DMZ. There are euphemisms in everything here.
 
 
2 hours later…
4:43 AM
@tylerl Rust will never fully replace C until it has a FFI.
 
@TerryChia I designed a C-replacement language just for fun several years ago. Never implemented it, but it was a fun exercise. The FFI was to simply expose and consume functions using C calling conventions.
Because it's immediately compatible with literally everything.
 
I tried getting into Go a while back but I didn't really like it though. :(
 
@TerryChia it's syntax is a little silly too. But I like the performance.
You can write a webserver that's can outperform nginx in about 10 lines.
 
@tylerl Yeah, I don't think Rust has anything like that yet? It won't replace C for me until I can call into Rust libraries from Python/Ruby/whatever.
@tylerl Yeah, the performance and compilation time is excellent I'll give you that.
I find the syntax a bit obtuse though, especially things like no exceptions.
 
@TerryChia yeah. They try really hard to get you to not write Java. They have something like exceptions, but you don't do the class hierarchy thing with them.
it's just any object that can be printed to a string.
 
4:50 AM
I still have not found a language I enjoy writing as much as Python yet. Explains why I keep going back to it even with the warts like horrible packaging and not too good performance.
@tylerl Yeah, not the same as exceptions though. The way Python uses exceptions is really neat, especially the chained exceptions thing in Python 3.
 
@TerryChia I kinda agree with the Go authors about exceptions. It's a shitty way to do flow control, and Python abuses the hell out of it.
 
@tylerl How so?
 
Don't tell me you never run into a situation in python where a chunk of code makes a call and catches an exception to tell what path to follow, but instead of the call in question throwing the exception it's some other code referenced somewhere. So instead of properly reporting the error, the program squashes it and just adds another array element or something.
try:
   doSomething()
except ValueError:
   doSomethingDifferent()
except doSomething() is actually calling otherlib.whatnot(z) which throws a ValueError if the parameter is out of range.... whatever.
it's just a really bad design decision. There's no defending it.
The best you could hope for is saying something about common-case performance, but python performs like a arthritic senior citizen.
 
@tylerl Ah, I see what you mean. I have encountered this once or twice but not frequently. I think the idea here is that well written libraries should make sure to catch whatever exceptions the stuff it is calling raises and either handle it or chain the exception properly. I can see how this isn't always the case though.
But I dunno, I really like using exceptions as flow control.
Going back to checking error codes seem clunky.
 
@TerryChia catching exceptions is checking error codes.
you're just moving the code around
 
5:04 AM
@tylerl The difference being if I don't want to handle the exception at this layer, I can push it to another layer.
Well, enough language debate for now, I need to get some food. :)
 
@TerryChia It's convenient, but it leads to crappy programs. Because exceptions get ignored and frequently bubble up to the user. And you end up with yum printing out ValueError: invalid literal for int() with base 10 and the user is like "FUUUU" and now has to go read the damn source to find out that this means that a upstream source timed out....
 
 
2 hours later…
6:41 AM
hey @kalina you know how you say there's never questions on Sec.SE that you could answer... security.stackexchange.com/questions/62178/…
 
@tylerl I disagree. Crappy programmers lead to crappy programs. That scenario you describe is easily avoided.
@RоryMcCune How do you know it wasn't her that is asking the question in the first place?
 
@TerryChia I don't... :)
 
@TerryChia Sure, but by that logic, C++ is just as safe as any other language. It's just a matter of crappy programmers.
 
@tylerl What's the alternative, though?
In the end exceptions will bubble up somehow
or silently fail which is worse
 
@ManishEarth Catching the exception and wrapping it in a proper error message is what good Python programs usually do.
 
6:50 AM
The patterns that a language design encourages or discourages is an important feature of the language, and necessarily influence the the programs that get written with it
Some language designs make good behavior more difficult
 
@TerryChia yep
As in as a language designer, what's the alternative?
Ah, I see
 
@ManishEarth @tylerl seems to prefer error codes ala Go?
 
@TerryChia The problem is that the extra work of catching and handling all possible exceptions from lower levels negates the perceived advantage of the way Python does exception-based flow control
@TerryChia I prefer the fact that Go discourages programmers from using exceptions for driving mundane flow decisions
As Stroustrup said, "They're called exceptions for a reason."
 
@tylerl I think the idea here is not that I need to catch all possible exceptions at a lower level, it's just that I should handle the exceptions before it hits anything outside my app/library boundary.
So any exception a user encounters will be documented.
 
@TerryChia And ideally all programmers do that, so ideally all exceptions tossed by lower libraries are properly documented and you actually can handle them.
But we all know that isn't the case.
 
6:54 AM
In Rust you have Results. A method who returns a Result can return an Ok(data) or an Err(errordata). When you call the method, to use the Result you either have to match on it (in which case you have to handle every possible Result, possibly bubbling the error out, since match statements are exhaustive), or you can unwrap() it, which will cause a task failure (and usually a crash), if it doesn't work out. But you get to be explicit about the "I know there's an exception here. Screw it"
The go exception-flow is interesting, too. Rather rust-y with the "return the error" bit (without forcing you to match on it, though, so less powerful), and the panic-recover bit gives you "normal" throwing support in a slightly safer way.
 
@ManishEarth Do you recommend me to use the nightlies or the stable build btw?
 
@TerryChia For?
 
@ManishEarth Rust.
 
No, what are you writing?
 
@ManishEarth Nothing, just learning the language.
 
6:58 AM
@TerryChia either. Nightly is good.
 
@ManishEarth Cool. :)
Will start on it soon after fixing up this RPM.
 
The stable build update every 3 months. The nightlies are, well, nightly. Updating a library to a new stable build is annoying. With nightlies, it's less hard since there are less breaking changes at once
@TerryChia if you're writing a library at any time, let me know. I can help with the upgrading and possibly the library writing
 
@ManishEarth Probably won't do anything semi-serious anytime soon. I still have a lot of Python stuff on my todo list.
 
the cryptography thing? yeah
 
@ManishEarth Yeah, that's my primary focus atm.
 
7:27 AM
@ManishEarth Like a Stockholm Syndrome type of thing?
 
yeah :p
Though I've been using PHP for a while, still hate it. Love Rust
 
@ManishEarth PHP really is a "the more you use it, the more warts you find" type of language.
 
@tylerl no, not at all. I dont know how it is in Python, but e.g. in .NET the exception handling mechanism is a completely different mechanism.
As in, its like giving the stack an enema.
sure you CAN use it for control flow, but thats really more a question of abuse.
 
@AviD In Python, it's encouraged to use exceptions for flow control.
Very different from .NET or Java.
 
@TerryChia okay, now that just sounds stupid.
assuming I have all the information and I know the whole story, of course.
@tylerl @TerryChia there are two ways of considering a language: how bad can crappy programmers screw up, and how hard for good programmers to NOT screw up.
 
7:36 AM
@RоryMcCune sorry, still can't answer that
 
by both those measures, C++ does not fare well.
by the first, PHP is not awful, but by the second it is purely horrible.
 
because doing so would reveal my methods
 
That can show you a bit about what types of programmers a language is optimized for.
 
which I'll be the first to admit have a weak point, which is unfortunately the human component
I've had enough of being woken up by the sounds of machinary
today it's hedge cutters
I think I'm going to find a lonely lighthouse or something to buy and live there
AWAY FROM TEH NOISY HUMANS
 
7:43 AM
@AviD Not really. It's actually pretty good from a readability standpoint and fits really well with the "it's easier to ask for forgiveness than permission" idea that Python encourages.
 
9 mins ago, by AviD
assuming I have all the information and I know the whole story, of course.
 
@AviD Heh. :P
 
perhaps I should learn more of this "Pie-Thong" of which you speak.
 
I think it's a difference in philosophy that each language has.
 
I did learn the basics and syntax a while ago, never really got into it deeply.
@TerryChia PHP's philosophy would be like Finland's retarded lion.
 
7:45 AM
@AviD You assume that PHP even has a philosophy.
PHP is more about ripping of 10 different things from 10 different languages and combining them in a way that makes absolutely zero sense.
 
Everyone has a philosophy. Just because it is not explicit, cohesive, or rational, does not mean you don't have one.
@TerryChia and THAT'S its philosophy.
 
this household is out of coffee
might as well just kill myself now
 
you are welcome to come here, I have some good indonesian coffee, and its fresh.
did.... I just invite @kalina to my home?
is this like that thing with vampires? where she now always has access and can come suck my blood in my sleep?
 
@AviD Do you have a Willow to perform the ritual to keep her out?
 
I wish I had Willow to perform a "ritual" with.
2
 
7:57 AM
I think I want to slap my IT helpdesk
2
I request to enable PGP on my mail client => "Can't you use TLS instead"
 
@LucasKauffman that's a new one, but it works.
@LucasKauffman well, that's fair. Isn't your mail client just a Google Chrome tab on Gmail?
 
@AviD I wish.
 
@LucasKauffman Isn't the whole point to PGP the fact that you don't need anyone's permission to use it?
 
@tylerl yea the problem is we have it integrated with our Symantec PGP
the only thing I'm asking is to enable the damn plugin
 
@tylerl in corporations like where @LucasKauffman works, you need permission to go to the bathroom.
 
8:00 AM
@AviD It's still alright, we aren't that bad, I can go 3 times a day without asking
 
I honestly don't know if you are joking.
I have actually seen places where they are forced to clock out when they go to the bathroom.
 
@AviD no I am joking, they're really flexible
as long as my work is done they don't really care
and they also don't mind if I work from home
@AviD and I'd never want to work for a company where you need to clock :p
 
@AviD This is such a BS policy
 
8:16 AM
If your company correctly uses a timeclock then the only reason why you haven't been replaced by a robot is because you're cheaper.
No other companies have a valid need for one.
 
@LucasKauffman I will never again, either. And I would recommend about it to everybody.
@Kisunminttu the scary part is how the people there treat it like something normal.
@tylerl hey, I used to work for a company that sells software for these clocks. and I can tell you that you are oh so very right.
actually, there are some semi-legit uses. for example, if you receive government grants, and they require clocks. or if all your employees are outsourced and paid hourly by someone else.
basically, if the entity paying the money does not trust the people doing the work. In which case, you're mostly screwed already anyway.
 
@kalina so not so much can't, as "choose not to"
 
8:33 AM
@RоryMcCune I prefer to use the word "can't"
it makes people believe I have weaknesses
 
I have a weakness.... for donuts!
 
oh
the American government have classified a bunch of toys as drones
and they now require a permit to fly
 
@kalina That's just the FAA trying to grab a bit more authority for themselves... despite the fact that the relevant legislation explicitly denies them that authority.
 
@tylerl I don't know, the complaint seems legit
since there is apparently a law requiring that model aircraft are flown within line of sight
 
@kalina the FAA just made that law
 
8:38 AM
and a lot of these things come with mounted cameras now, allowing them to be flown much further
@tylerl are you sure that law was just made?
I'm pretty sure there is a similar law in the UK
 
essentially, the gvmt says "FAA, you control aircraft operations, but not model aircraft. You get to decide what that means"
so they say "OK, everything is drones, then."
 
@tylerl I would say a "model aircraft" with several miles of range capable of carrying its own weight would cease being a "model aircraft" in the recreational sense
 
@kalina that would make sense. Typically aircraft are classified by weight, capacity, power, and size.
@kalina But the FAA has decided that the type of aircraft is determined by WHY you're flying it.
So if you get paid to throw a paper airplane out the window now you need a permit.
 
@tylerl well it should be, the same way car insurance works
while your example is a little extreme, I think there would be a much larger problem if a bunch of companies started using unlicensed model aircraft for stuff that is really commercial work that should require a permit
sure, let's allow a bunch of people to fly rc helicopters or whatever around, taking pictures
sounds like a great idea
nothing could possibly ever go wrong
 
8:56 AM
@AviD I, personally, couldn't work at an office like that. I drink a lot of water and some coffee at work
 
@Kisunminttu most normal people couldn't.
environments like that always remind me of veal fattening farms.
 
@AviD :(
 
what does shock me though, is the occasional spark of brilliance there. If I meet somebody that is really smart, and is really good at her/his job, I am always puzzled why they would continue to subject themselves to such poison.
I think it might be mostly a case of accepting the lie that work needs to be like that.
or they've just given up...
 
@AviD Maybe they just like to be controlled...
 
@AviD or they have a salary to compensate
 
9:02 AM
@LucasKauffman usually it goes the other way.
if you treat your programmers / consultants / whatever like dirt, you will usually be paying them accordingly.
 
@AviD true unless you have such a massive pile of shit that they become irreplaceable, I've seen a few of those situations
 
sure, there are some governmental type places that they've built up pay-by-seniority.
 
9:36 AM
"Minimum length 9; Your password may use only uppercase letters, lowercase letters and numbers, and must include at least one of each"
 
@deed02392 Not the worse.
 
@TerryChia yeah the way it looked on the page I thought it said "may only use uppercase letters"
haha
 
I generally don't use symbols in my generated passwords any longer, harder to type on mobile devices where I don't want to sync my password database to.
My current setting is 24 characters, mix of upper lower and numbers.
 
@AviD 'murica?
 
@deed02392 no, guvmint.
 
9:47 AM
@AviD name and shame
 
heh. naaaaah.
@deed02392 so, what's the problem? You can't reach minimum length?
 
@AviD :16362333
the way it looked on the page I thought it said "may only use uppercase letters"
ah the div the message is in hid everything after 'uppercase letters'
 
@AviD Is it more common for Windows applications to dynamically link to "common" libraries, say OpenSSL for example, or for the applications to ship with it's own version of the OpenSSL dll?
I would imagine it's the latter so installation is simpler?
 
Dynamically linking to dlls in the application directory is pretty common.
It's also the way I prefer, since it doesn't need a setup and doesn't cause version conflicts.
Of course having to patch security holes or even just bugs in many duplicated dlls is problematic.
Windows includes a side-by-side (sxs) dll store which can store several versions of a dll centrally.
 
10:15 AM
...again
fine, I am awake...
@TerryChia I have an extreme password that I use for my super important things and that is too hard to type out on a mobile device
too much like willingly stabbing yourself in the face
"What are you doing today?"
"In bed"
"oh so you're not doing anything, can I bring my laptop over because it's doing something weird"
"define weird"
"it's not working"
"..."
after several more minutes of back and forth, I concluded that "it's not working" is the most information I'm going to get before offering to look at it
 
@deed02392 cmon, you missed that euphemism there? it was pretty obvious.
 
@AviD no he can't reach maximum length, he tops out at 10%
 
thaaaaank you
@TerryChia there are several different sets of commonality. It depends.
e.g. C++ / MFC / ATL apps, you have to choose e.g. static linking vs. dynamic linking vs embedding. Each of those has a different default...
"classic" apps e.g. VB / Delphi / etc usually ship with their version of the common runtimes and push it into the System32 folder....
yes, possibly overwriting and not playing nicely with a different version. This is the well known "DLL Hell".
Then there are .NET apps. "Common" libraries are usually stored in the GAC, which allows for multiple versions. Each app will typically bind to a specific version, though they can define to accept a later version too.
not-so-common apps would normally be shipped with the application itself, in versionable subfolders.
 
BOOOOOOOOOOORRRRRRRRRRRIIIIIIIIIIIIIIIIIIIIINNNNNNNNNNNGGGGGGGGGGGGG
 
MOOOOOOOORRRRRRRRRNIIIIIIIIIIIIIIINNNNNNNNNNNGGGGGGGGGG
 
10:26 AM
no
it's afternoon
and has been for 25 minutes
you lazy bastard.
 
MOOOOOORRRNNIIIIIIINGGSS HEEEEEEEEEEEEERRREE
 
try actually getting out of bed before lunch for a change
pot... kettle... black
is that racist?
 
@kalina thats racist
 
your face is racist
 
@kalina asking if it's racist is racist! Why are you asking me??
 
10:28 AM
@kalina It's morning if I just got on the train.
 
27 secs ago, by kalina
your face is racist
1 min ago, by kalina
you lazy bastard.
I suppose I'd best get dressed
 
there was a great bit on that a couple episodes ago of Silicon Valley
 
Someone copy the kettle/pot/black line for me, please. Mobile chat sucks.
 
@FEichinger that's racist
 
@FEichinger copied. What should I do with it now?
2 mins ago, by kalina
pot... kettle... black
 
10:30 AM
@AviD Now ping @kalina a few times for punishment.
 
@FEichinger ...
@FEichinger I dont think so.
I don't deserve a punishment.
 
sigh
Such a disappointment.
 
do you know what is disappointing?
the combined length of all of your penises divided by the number of men in here is less than the international average penis size
 
@kalina that makes sense. we have to account for @Simon bringing the average down.
 
@AviD nope, there has to be more than simon letting the side down
 
10:35 AM
still makes sense, most guys are under average.
 
erm
right
yes, the supposed international average of less than 6 inches confuses me immensely
since I have never seen one that small, let alone smaller
 
How did you even come to that conclusion?
Wait, no, I dun wanna know.
 
easy
I asked everybody what the straight line distance between the tip of their index finger and the tip of their thumb was
then I added them all together
subtracted 10% from the total to compensate for old age erectile problems
since everybody in here is ancient
 
hehe
 
and then divided the remainder by the number of men in the sample
today I learned: Vimto is not a suitable substitute for coffee, however it is far tastier
 
10:41 AM
@AviD haha oh yeah. god damn today has been a slow day for me. in my defence i just got back from holiday
 
TASTY DELICIOUS VIMTO
@deed02392 your defence is flawed
 
Yeah - totally flawed. I am on holiday
P.s. vimto!
 
I'm Miley Cyrus I'm the hottest thing since Britney, bitch.
 
Heh.
 
poor Nicolas is under investigation for BEING VERY NAUGHTY
@RoryAlsop not that I'm a south park fan, but watching old south park episodes revealed to me that south park predicts the future
there was an episode about how britney spears had derailed and they called it a sacrifice to the music gods
and that this needed to happen periodically
and that the next one would be hannah montana
 
10:50 AM
@kalina cage?
 
@AviD no Sarkozy
 
@CodesInChaos @AviD Cheers for the info. :)
 
@kalina there is a difference between knowing the path, and walking the path.
 
@AviD ONLY IF YOU NEED FILLER FOR A THIRD MATRIX MOVIE
nobody can be told what the Matrix is, you have to see it for yourself
 
the thing that's going to get your bonnet later, would she have broken her vase if South Park didn't say anything?
 
10:52 AM
"er... isn't the Matrix a virtual reality simulation of the late 1990s created by the machines to enslave mankind?"
d'oh!
 
NO
 
damn my pasting skills have imploded today.
 
I WILL NOT ALLOW MYSELF TO BE DAMAGED BY ANOTHER INTERNET CESSPIT
You don't have any skills
 
true.
 
10:53 AM
@AviD I agree, there is only one matrix movie
 
Sequels? What sequels?
 
however, the first time I meet @FEichinger, his right of passage will be to watch all three matrix movies
and dirty dancing
and the first hackers movie
 
sigh
 
and all 10 series of friends
all 10 series of stargate sg1
stargate atlantis
 
tango his way through the Gibson
 
10:54 AM
all three stargate movies
and stargate universe
and THEN
kisses.
WAS IT WORTH IT?
 
@kalina You forgot getting him off PHP.
 
I am speechless.
 
@TerryChia there will be no PHP in my vicinity
even thinking about PHP will result in a lobotomy
 
@kalina @TerryChia @kalina says you have to remove PHP from that sentence.
 
and you know what
 
10:56 AM
@kalina isnt the lobotomy a prerequisite to thinking about PHP?
 
we'll watch all of these videos using VLC on a linux machine running VLC AS ROOT
just to see if he spasses out
 
@kalina TORTURE. I KNEW IT.
 
and this doesn't even get me out of my clothes
that requires a comprehensive discussion on everything from the second and third matrix that was good
not to mention the mandatory operating system switch to Windows 8.1 on all devices
 
Wow. Horror manga by Junji Ito is really good. This stuff is creepy, nightmarish.
 
I went too far with "everything from the second and third matrix that was good", didn't I?
 
10:59 AM
@kalina dammit, I qualify. This scares me.
 

« first day (1293 days earlier)      last day (3592 days later) »