code logs -> 2013 -> Fri, 01 Feb 2013< code.20130131.log - code.20130202.log >
--- Log opened Fri Feb 01 00:00:40 2013
00:00 Thalass is now known as Thalaway
00:04
<@Tarinaky>
"I divide my officers into four classes; the clever, the lazy, the industrious, and the stupid. Most often two of these qualities come together. The officers who are clever and industrious are fitted for the highest staff appointments. Those who are stupid and lazy make up around 90% of every army in the world, and they can be used for routine work. The man who is clever and lazy however is for the very highest command; he has the temperament and ne
00:05
<&McMartin>
"he has the temperament and ne"
00:05
<&McMartin>
A famous quote, though
00:05
<@Tarinaky>
"The man who is clever and lazy however is for the very highest command; he has the temperament and nerves to deal with all
00:05
<@Tarinaky>
situations. But whoever is stupid and industrious is a menace and must be removed immediately!""
00:06
<@Tarinaky>
Yeah.
00:08
<@Reiv>
The 'clever and industrious' tend to object to their placement as staff officers~
00:08
<&McMartin>
That's what they get for not being lazy too~
00:08
<&McMartin>
This is the "lazy" of the Perl Virtues.
00:08
<@Tarinaky>
The stupid and industrious object more :p
00:08
<&McMartin>
That's OK, we need to remove them >_>
00:08 * McMartin has thankfully never had a negative-productivity coworker but is well aware they exist
00:09
<@Reiv>
... negative productivity?
00:10
<&McMartin>
That's what stupid + industrious gets you
00:10
<@Tarinaky>
My friend, apparently, shouted at some people in his group project group this morning.
00:10
< syksleep>
reminds me of work's old FNG
00:10
<&McMartin>
Someone who with great dedication fucks everything up due to their stupidity so that they are a net detraction from the team
00:10
<@Tarinaky>
From how certain people acted you would have thought he'd hit them.
00:10
<@Tarinaky>
Rather than just being drunk and loudly snarky about the Waterfall Method.
00:10
< syksleep>
once we needed to order a new PoE+ switch
00:10
<@Tarinaky>
And how you don't change the design when you're at the bottom.
00:10
<@Namegduf>
Drunk in the morning?
00:10
< syksleep>
this was when HP ProCurve was dissolved into HP Networking
00:10
<@Namegduf>
That's, um, one way to do it
00:10
<@Tarinaky>
Namegduf: Just after lunch.
00:11
<@Tarinaky>
Namegduf: They drove him to drink.
00:11
<@Namegduf>
Oh that's okay then.
00:11
<@Tarinaky>
Literally.
00:11
<@Namegduf>
In a car?
00:11
<@Tarinaky>
No.
00:11
<@Namegduf>
Regular literal, then.
00:11
< syksleep>
he refused to order a HP Networking <model> PoE+ switch, because it wasn't a HP Procurve <model> PoE+ switch
00:11
<@Namegduf>
Rather than hyperliterally.
00:11
<@Tarinaky>
By making asenine changes during "integration and testing /week"
00:11
<@Tarinaky>
Drive doesn't /just/ mean with a car.
00:11 You're now known as TheWatcher[T-2]
00:11
< syksleep>
and we ended up arguing about it for like... two hours, because he would not accept that HP Procurve had been rebranded since they bought juniper
00:12
<@Tarinaky>
You can drive a nail through a board of wood with a hammer.
00:12
< syksleep>
it was like rrrgh
00:12 syksleep is now known as Syk
00:12
<@Tarinaky>
The 'drive' as in car meaning is newer. Nothing to do with literal/figuratively.
00:12
<@Namegduf>
Tarinaky: Or you could use a tool better designed for the job. But you know what they say, when all you've got's a hammer...
00:12
<@Namegduf>
(Okay, that one was terrible)
00:12
< Syk>
oh oh oh
00:12
<@Tarinaky>
They didn't figuratively make him feel like he had to get drunk to deal with how shit they were being.
00:13
< Syk>
I actually have this thing
00:13
<@Tarinaky>
They /literally/ did so.
00:13
< Syk>
where FNG from my old work, really didn't like agile development
00:13
< Syk>
he despised it
00:13
< Syk>
and thought having 'stable' and 'unstab;e
00:13
< Syk>
'unstable' versions was 'cheeky'
00:13
< Syk>
http://reddrgn.net/fngemail.txt < here's the email he sent me :D
00:13
<@Azash>
FNG?
00:13
<&McMartin>
Fucking New Guy, I imagine
00:14
< Syk>
yeah
00:14
< Syk>
Fucking New Guy
00:14
< RichyB>
Friendly New Guy. :)
00:14
< Syk>
and here's my email response http://reddrgn.net/myemailresponse.txt
00:14 VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
00:14
< Syk>
it's a barrel of lols
00:14
< Syk>
he got all up in arms because I had to fix a bug that broke a whole third of the application
00:15 You're now known as TheWatcher[zZzZ]
00:15
< Syk>
because my 'final' update had a typo in it
00:15
< RichyB>
Couldn't unit or integration tests have caught that?
00:16
< Syk>
hahaha
00:16
< Syk>
this was in VB
00:16
< Syk>
there
00:16
< RichyB>
FYL.
00:16
< Syk>
since I couldn't use anything else, really
00:17 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds]
00:18
<@Tarinaky>
Pfft. Ever get that feeling that what you want just doesn't exist?
00:18
<@Tarinaky>
:/
00:18
< Syk>
yes
00:19
< RichyB>
Quite often. "Is there a library that solves $X?" "Nope."
00:19
<@Tarinaky>
Nah, RL.
00:20
<@Tarinaky>
Statement 1: "I don't really want a 'real' job."
00:20
<@RobinStamer>
Syk: wait, so you pushed all your stuff to an unstable and he was trating it as stable?
00:20
<@Tarinaky>
Statement 2: "Even if I did, it's fucking hard to get one."
00:20
< Syk>
RobinStamer: yep~
00:20
< RichyB>
IRL? Reasonably often. "Does there actually exist >1 human being sane enough to be bearable company but insane enough to be romance-able by me?" ;P
00:20
<@Namegduf>
It also looks like he was personally offended by the concept of an unstable.
00:20
< Syk>
RobinStamer: it's not like it was hidden - i made a little menu for my apps
00:20
< RichyB>
w00t, tests passed that time. *wiggles*
00:20
< Syk>
there was OpCom Stable and OpCom Unstable
00:20
<@Tarinaky>
Statement 3: "I have exactly the capabilities I have."
00:20
< Syk>
it'd been like that ever since I started writing it
00:21
<@Tarinaky>
So yeah. How the fuck do I get a reasonable job that isn't a real one :/
00:21
< Syk>
so it's not like it was 'new', it'd been in place months before his stupid ass got there
00:21
<@Namegduf>
Also wow FNG's not good at communication
00:21
< Syk>
Tarinaky: theoretical physics
00:21
<@Tarinaky>
Syk: I run out of money after this course.
00:21
<@Azash>
Syk: I have to say, if I got that email from a new cow-orcer I'd just feel insulted :P
00:21
<@Tarinaky>
If I want to remain in education I need a job to do so.
00:21
<@Azash>
Like, the part where he talks down at you
00:21
<@Tarinaky>
So that's right out.
00:21
<@Tarinaky>
Besides, my maths isn't good enough for theoretical physics.
00:22
< Syk>
Azash: I think it was because at the time I was 17, so, that apparently means I'm terrible at everything~
00:23
<@Tarinaky>
The obvious answer of collect dole, sponge free housing off parents has obvious flaws that need addressing. Namely the fact that one is expected to be looking for a real job while doing such.
00:23
<@Namegduf>
Just go for a programming job somewhere
00:23
<@Namegduf>
They don't all suck
00:23
<@Namegduf>
I had a pretty good one for a year
00:23
<@Tarinaky>
I'm not cut our for prison due to my dashing good looks, so that rules out crime unless I can steal enough to hire a really good lawyer.
00:24
<@Namegduf>
Tarinaky: You could go into banking
00:24
<@Namegduf>
Then that's pretty certain
00:24
<@Tarinaky>
I don't think they're hiring though.
00:24
<@Tarinaky>
Plus I don't have the qualifications for Banking.
00:24
<@Azash>
Join the army as a computing guy?
00:24
<@Tarinaky>
I'm only JH maths.
00:24
<@Namegduf>
Financial programmers are actually big on hiring, but expensive and my understanding is that the hours are awful and stress is high.
00:25
<@Tarinaky>
Plus London is, well, London.
00:25
<@Namegduf>
It's one of the subareas of software dev which pay abnormally well.
00:25
<@Tarinaky>
And I don't want to be a graduate in London.
00:25
<@Azash>
Namegduf: I heard that many of them also feel stress because the majority of their fees come from end of year bonuses rather than a set salary
00:25
<@Azash>
If you mean trading quants
00:25
<@Tarinaky>
Stacking shelves for half of what it costs to rent a bed.
00:25
<@Namegduf>
Beats not being a graduate in London.
00:25
<@Tarinaky>
I could be a graduate anywhere other than London :p
00:25
< RichyB>
Where are you studying?
00:26
<@Namegduf>
Go live in the hills in Wales
00:26
<@Tarinaky>
At the moment? Aberystwyth.
00:26
<@Namegduf>
Build a hut
00:26
<@Namegduf>
Be discovered 40 years later
00:26
<@Tarinaky>
Web Development seems to be the obvious thing for starting a business, but I can't stand web development.
00:27
<@Namegduf>
I think web dev business startups might be oversaturated.
00:27
<@Tarinaky>
I like applications and systems and not having to fart around with databases.
00:27
< RichyB>
Company I work for is in Bristol, we're basically constantly trying to hire people who can sssssssssssss-sssss-ssspeak Python (or learn it) and particularly someone who's good at Linux sysadmin.
00:27
<@Namegduf>
What's it called?
00:27
<@Tarinaky>
The only thing about databases that interests me is /writing/ databases.
00:27 thalass [thalass@Nightstar-b95c25b4.bigpond.net.au] has joined #code
00:27
<@Tarinaky>
Fuck the data :p
00:27
< Syk>
i always want to say 'bristol' as bry-stol
00:27
< RichyB>
We have various problems at the moment with production deployment being a messy/insufficiently disciplined, and all our infrastructure being undermaintained.
00:27 thalass is now known as Thalass|netbook
00:28
< Syk>
i have no idea why
00:28
< RichyB>
You can pronounce Bristol however you like; the rarest accent to hear here is a Bristolian one.
00:28
<@Tarinaky>
After the course finishes I'll be back with my folks outside Birmingham unless something amazing happens.
00:28
< RichyB>
Most people in Bristol seem to come from not-Bristol.
00:28
<@Namegduf>
I'm in Bath and I had no idea that "Bristolian" was a thing.
00:28
<@Namegduf>
Admittably I didn't grow up here.
00:28
<@Tarinaky>
Also: I really ought to go to sleep soon.
00:29
< RichyB>
Namegduf: Bristol accent is roughly Somerset sped-up and drunker.
00:29
<@Namegduf>
Oh dear.
00:29
<@Tarinaky>
I'm meant to be doing the "fix all ze code" programming tomorrow for the midday deadline.
00:29
<@Tarinaky>
So yeah >.>
00:29
< RichyB>
I like Somerset.
00:29
<@Namegduf>
That's still like 11:30 horus
00:29
<@Namegduf>
You've got plenty of time
00:29
< RichyB>
Anyway, you should definitely move to Bristol and come work for bullshit web dev companies.
00:29
<@Tarinaky>
Can't do anything till 09:00 because the Servlet thing only works on one laptop out of all of ours.
00:29
< RichyB>
There are, like, millions, the work isn't insanely hard or stressful.
00:29
<@Tarinaky>
Did I mention I hate web development?
00:30
<@Namegduf>
Code really shouldn't run on only one machine.
00:30
< RichyB>
Did I mention there's money in it and it doesn't really annihilate your life?
00:30
<@Tarinaky>
The code isn't.
00:30
<@Tarinaky>
It just doesn't /work/ on more than one machine.
00:30
<@Namegduf>
That's possibly worse.
00:30
<@Namegduf>
Do you know why?
00:30
<@Tarinaky>
Because it's harder to fix.
00:31
<@Namegduf>
Why it doesn't work on other machines, I meant, but yeah.
00:31
<@Tarinaky>
Noting that 'work' isn't the best verb but at least it executes.
00:31
<@Namegduf>
RichyB: Yeah, small companies are nice for that.
00:31
<@Tarinaky>
On my machine it just blandly states that it's not a resource the server can load - the only help I can find are forum posts in Han Chinese and Portugese.
00:32
<@Tarinaky>
And the third developers mac can't run glassfish at all for some reason.
00:32
< RichyB>
ugh
00:32
<@Tarinaky>
Did I mention I hate web development?
00:32
< RichyB>
pfft
00:32
<@Namegduf>
That teaches you for using Java frameworks.
00:32
< RichyB>
You're writing Java servlets, that's your problem.
00:32
<@Tarinaky>
Java was mandatory.
00:32
<@Namegduf>
Their massive scale overengineering makes them basically a house of poorly documented cards
00:32
< RichyB>
You're making me repeat myself.
00:32
<@Tarinaky>
I am convinced the only reason we don't have problems with the database is because we don't have a database.
00:32
<@Namegduf>
Databases are fine
00:33
<@Azash>
I like hearing people debate Java vs. RoR for web dev for our web dev courses here
00:33
<@Namegduf>
But if you were to use a Java database abstraction layer then yeah it'd probably suck as bad
00:33
<@Azash>
It's like castle commanders, arguing which wall to knock down first
00:33
<@Azash>
:P
00:33
<@Tarinaky>
I handrolled one that got Junited to death because it was the only way I could run it.
00:33
< RichyB>
Tarinaky: please have a look at http://www.slideshare.net/r1chardj0n3s/web-microframework-battle before you keep ranting about web-dev.
00:33 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
00:33 mode/#code [+ao Derakon Derakon] by ChanServ
00:33
< RichyB>
Hint: it's not all that way.
00:33
<@Namegduf>
Java web dev is abnormally bad and a reasonable number of people know it.
00:34
<@Tarinaky>
My only regret is that I should have hand rolled a HTTP server while I was at it.
00:34
< RichyB>
In particular, the Python and Ruby communities have both constructed some *really* pleasant-to-use frameworks for attaching blobs of code to URLs.
00:34
<@Namegduf>
Just using a Python framework would have been a bit better
00:34
< Syk>
i have a friend that does professional web development
00:34
< Syk>
she says i'm a hacker and not a developer
00:34
< Syk>
and i'm like wat
00:34
<@Namegduf>
Ruby as a language looks downright awful to me, I might have to read it for a while to get over it
00:34
<@Tarinaky>
RichyB: I have an irrational dislike of HTML.
00:34
< RichyB>
Syk: what does she think the difference is?
00:34
< Syk>
RichyB: developers are apparently professional
00:35
<@Namegduf>
You know that thing you get if you try to read the names of colours, written in different colours?
00:35
<@Namegduf>
And your alternative reading methods trip over each other?
00:35
< RichyB>
Tarinaky: that's reasonable; there do exist jobs where you can write web applications without putting out a line of HTML.
00:35
<@Namegduf>
I get that in Ruby between my English natural language reading and my programming language reading.
00:35
<@Tarinaky>
RichyB: Really?
00:35
<@Namegduf>
It's a real annoyance.
00:35 * Tarinaky looks in awe.
00:35
< Syk>
meanwhile, I do my best work in my underpants, so i guess i'm not professional
00:35
< RichyB>
There are companies who deliver applications that have split back & front-ends.
00:35
< Syk>
Tarinaky: magic of templating libraries
00:36
< RichyB>
The back-end will be something complicated & important like an ERP system or something, and it'll speak to the rest of the world entirely in JSON or protocol buffers or something.
00:36
<@Tarinaky>
I still need to figure out what to do my diss on next year. Currently trying to push myself through figuring out how the fuck Fourier Descriptors and Zernike Moments work in the vague hope something amazeballs will leap out at me.
00:36
<@Azash>
RichyB: Out of curiosity, what's wrong with DB wrappers?
00:37
< RichyB>
The front-end will be a big blob of javascript glued to a little bit of code for transforming between JS-friendly formats and whatever your backend speaks.
00:37
<@Azash>
Tarinaky: What areas do you like most?
00:37
<@Tarinaky>
Azash: Relational DBs aren't 'trendy' at the moment.
00:37
< RichyB>
Companies can then have separate teams working on the front & back ends.
00:37
<@Tarinaky>
So the wrappers for them are likewise not trendy.
00:37
< RichyB>
Azash: I don't remember mentioning anything being wrong with DB wrappers?
00:37
<@Azash>
Well, I imagined he had better reasoning than trendiness
00:37
<@RobinStamer>
Tarinaky: pick up ExtJS? Note that you /will/ want to know JS.
00:37
<@Azash>
RichyB: He lists them as an OUT
00:38
<@Namegduf>
That was me, and I was mostly just commenting on how fragile added layers of Java wrappers get.
00:38
< RichyB>
Azash: Miscommunication. The presentation that I linked to discounts them only as "out of scope for this comparison", not "DON'T USE THESE."
00:38
<@Azash>
Oh, I see
00:38
<@Tarinaky>
Azash: No idea :/ I was hoping I'd have a better idea by this far into my course.
00:38
<@Tarinaky>
Ahhhhhhh
00:38
<@Tarinaky>
I read 'What's Out' as in what's in disfavour/fashion.
00:38
<@Azash>
Same
00:39
< RichyB>
He was operating on the assumption that the web framework would just be used as a way of turning HTTP requests into Python method calls, and that all DB work would be done through something like SQLalchemy anyway.
00:39
<@Tarinaky>
Which is fair, because all the cool kids are doing NoSQL and stuff.
00:39
< RichyB>
"What's IN?" means "What are the points on which I am going to score these frameworks against each other?"
00:39
<@Tarinaky>
Not to say the cool kids know dick :p
00:39
< RichyB>
"What's OUT?" means "What am I explicitly declaring up-front that I'm ignoring here?"
00:40
<@Namegduf>
I do think ORMs fail to solve any particular problem or encapsulate any complexity, aside via secondary bits of functionality which should probably be implemented as library functions. And often have crippling problems like failing to support upgrade paths.
00:40
< RichyB>
So he ignores templating libraries because you can stick Chameleon into *anything* that will let you spit bytestrings at the browser.
00:40
<@Alek>
Richy, can y'all hire long-distance coders? XD
00:40
< RichyB>
He also ignores DB integration because you can stick SQLalchemy into anything.
00:41
<@Namegduf>
I once attended a lecture from the developer of Django.
00:41
<@Tarinaky>
Azash: If I had to pick what I was interested in I'd say Applications and System Programming... but I don't really know enough/anything about the sub-divisions thereof.
00:41
<@Tarinaky>
So I don't know dick about what I want to do.
00:41
<@Namegduf>
He opened it by talking about how SQL was hard and no one should have to learn it.
00:41
< RichyB>
Alek: maybe! You'd have to be able to make it to meetings occasionally, and for at least a fortnight or two to bootstrap.
00:41
<@Azash>
Tarinaky: Well, you might want to look at something like the ACM teaching standards
00:41
<@Tarinaky>
I once tried to learn intel assembly, but then realised that's like 7 massive tomes and thought better of it..
00:41
<@Azash>
Pick out areas that seem interested, browse a book or two for each and see if anything piques your curiosity
00:41
<@Namegduf>
I say the, I mean a.
00:42
< RichyB>
One of the divisions of this company has various developers (including the CTO, who is also Lord High Programmer) working remotely most of the time.
00:42
<@Namegduf>
I've been drinking, I have a blank cheque to make as many stupid phrasing mistakes as I want, it's in the rules.
00:42
<@Azash>
>SQL is hard
00:42
<@Alek>
bah.
00:42
<@Namegduf>
Azash: I know.
00:42
<@Azash>
I don't trust this person to write a friggin' framework
00:42
<@Namegduf>
Azash: I was not... enraptured.
00:42
< RichyB>
Mine doesn't so much, we tend to go for face-to-face communication.
00:42
<@Alek>
I'm learning python, but I'm way over here in Illinois. -_-
00:42
< Syk>
Azash: >implying
00:42
<@Alek>
and can't afford moving. <_<
00:42
<@Azash>
Syk: It was instinctive~
00:42
< RichyB>
There is vastly less computer science here than coping-with-UI-bullshit.
00:43 * Azash hangs out at /g/tech too much
00:43
< Syk>
:P
00:43
< Syk>
i have my tab in the bathroom set to /g/ so
00:43
< RichyB>
A lot of the most productive work here involves churning out front-end implementations and throwing them anyway as fast as possible until we get to something actively nice. ;)
00:43
<@Tarinaky>
Azash: I'm not sure which document in that I'm meant to be looking at...
00:43
<&ToxicFrog>
"SQL is hard"? Maybe not. But it is really easy to fuck up.
00:44
<@Azash>
Tarinaky: I don't know where they have the curriculum either, I've just seen print-outs
00:44
< Syk>
it's an interesting read, until everything devolves to >install gentoo >implying
00:44
< RichyB>
There are multiple values of "here", though. The company I work for actually has 3 divisions in completely different lines of business. :)
00:44
<@Azash>
ToxicFrog: This is true
00:44
<@Azash>
Let me grab that one pic
00:44
< RichyB>
ToxicFrog: but it's just set theory. :/
00:44
<@Tarinaky>
If you can't use SQL to achieve your goals without fucking up you /probably/ shouldn't be handrolling anything :p
00:44
<@Namegduf>
I dunno
00:44
<&ToxicFrog>
ORMs remove the possibility a bunch of common fuckups. You can argue about whether or not that's a worthwhile tradeoff, but it's definitely not nothing.
00:44
<&ToxicFrog>
RichyB: no, it's just relational calculus~
00:45
<&ToxicFrog>
Except it's actually a bunch of closely related but mutually incompatible languages with terrible library interfaces.
00:45
<@Namegduf>
ToxicFrog: They expose a lot of bits of SQL
00:46
<@Namegduf>
They remove the possibility of fuckups when doing a trivial load of a single row as an object and write of an object as a single row
00:46
<@Namegduf>
Which is an easy library function requiring no magic wrapping layer on anything
00:46
< RichyB>
ToxicFrog: eh. None of them are *evil*.
00:47
<@Azash>
ToxicFrog: http://i.imgur.com/SKh3r.jpg
00:47
<@Namegduf>
But I think most any other gain comes from encouraging people to express their operations as inefficient loads of rows as objects rather than doing things efficiently (but in a manner requiring using the language)
00:47
<@Tarinaky>
Azash: Looking at that the main things I like are Concurrency, Memory Management, Graphics (trying to learn more) and Intelligent Systems.
00:48
< RichyB>
(Except Oracle.)
00:48
<@Azash>
Well, why not look into those then? Mess around a little with each to get a feel for it
00:48
<@Tarinaky>
Although I really need to find more opportunity to play with low-level concurrency but the usual answer is "Don't"
00:49
<@Namegduf>
I've figured out a comfortable way to deal with concurrency, by adopting a set of practices which result in making threaded code which is "correct by construction", roughly
00:49
<@Namegduf>
Like, deciding I want a thread which executes a task queue and sends a response back
00:49
< RichyB>
Tarinaky: the advice "Don't" is mostly aimed at line-of-business coders who are expected to produce stuff that predictably works without having to think too hard about it, because they're going to have to change it again in 15 minutes because the requirement will change again.
00:49
<@Tarinaky>
RichyB: That makes it a little useless though.
00:49
<@Namegduf>
Implementing that, no access to shared data without carefully commented analysis about how it is safe for that one thing
00:50
< RichyB>
e.g. "if the account was created between 1995 and 1998 then apply discount code PB47 for 20% off nappies" kind of boring shit.
00:50
<@Namegduf>
The thing I had to deal with in spaces was asynchronous requests.
00:51
<@Namegduf>
*spades
00:51
< RichyB>
There are plenty of places in systems programming & framework implementation where worrying about low-level concurrency details is actively desirable.
00:51
<@Namegduf>
And asynchronous requests caused in response to another asynchronous request.
00:51
<@Tarinaky>
Still. Don't really see a good way of turning "play with it until you learn better" in to rent and food.
00:51
< RichyB>
No, I don't know how you get a job writing systems software instead of line-of-business bullshit software.
00:51
<@Namegduf>
Concurrent with arbitrary user interactions.
00:51 * Tarinaky shrugs.
00:52
<@Tarinaky>
Yeah.
00:52
<@Namegduf>
You don't play with it until you learn better in concurrency
00:52
< RichyB>
*shrug* Boring LoB apps are the easy way to make rent.
00:52
<@Namegduf>
It's like trying that with memory management in C
00:52
<@Tarinaky>
RichyB: Too much like a real job :p
00:52
<@Namegduf>
You need to go into concurrency with a plan
00:52
<@Tarinaky>
Namegduf: I menat play with it in terms of toy projects.
00:52
<@Namegduf>
At least in general outline
00:52
<@Reiv>
ToxicFrog: Oh god, SQL
00:52
< RichyB>
Tarinaky: well yes, if it sucks then there's probably someone willing to pay for it.
00:52
<@Reiv>
I write the stuff /every day/
00:52
<@Tarinaky>
Not haphardly stick mutexes all over the place.
00:52
< RichyB>
*willing to pay to not have to do it themselves.
00:52
<@Namegduf>
Ah.
00:52
<@Reiv>
SQL Server, oh how I hate thee
00:52
<@Tarinaky>
*haphazardly
00:53
<@Tarinaky>
Fun, Pays well, Legal. Pick two.
00:53
<@Reiv>
With your stone-age string manip, your float-based date calculation, your case sensitivity...
00:53
<@Reiv>
... on the other hand, you have temporary tables.
00:53
<@Reiv>
HEAR THAT ORACLE?
00:53
< RichyB>
Tarinaky: fun, easy to get into, pays well, legal, pick three.
00:53
<@Tarinaky>
Although I don't intend on having kids, which helps :p
00:54 * Reiv falls down.
00:54
<@Tarinaky>
Right. I go sleep.
00:54
<@Tarinaky>
Or people will kill me tomorrow.
00:54
< RichyB>
Yeah, not having kids makes the illegal options much less scary. No dependants to let down! ;)
00:54
< RichyB>
Sleep well.
00:54
<@Namegduf>
Sleep well. Good luck deciding the fate of your entire life and all.
00:54
<@Namegduf>
XD
00:55 * Reiv weeps in a little ball on the floor, before once again loading up ODW.ODW_GTV_EMS_PBACTN_TYP_FAIL
00:55
<@Namegduf>
He's speaking in tongues.
00:55
<@Tarinaky>
How much do Rasberry Pis go for these days?
00:55
<@Reiv>
Thank you, Oracle, for having 32-character namespaces.
00:55
<@Reiv>
Thank you, data warehousing, for insisting on consistent keyword implementations. That use up most of the limit.
00:56
<@Tarinaky>
Maybe Linux would work as a diss topic, IDK.
00:56
<@Tarinaky>
Well, not linux. Tarinux :p
00:56
<@Tarinaky>
Anyway, I sleep for reals.
00:57
< RichyB>
Tarinaky: ?35 bare, about ?50 by the time you've bought a power cable and a little case.
00:57
< RichyB>
Correction, ?25 bare.
00:58
< RichyB>
That's for the "B" model (the nice one) with ethernet and 512MB of RAM.
01:03
< mac>
mySQL vs XML vs JSON opinions?
01:04
< RichyB>
That's like comparing a motorcycle, a pear and an apple.
01:04
<~Vornicus>
Quite.
01:04
< mac>
ok sorry, I obviously lack background knowledge if its that different. Can you perhaps explain?
01:05
< RichyB>
MySQL is a database server.
01:05
<@Namegduf>
JSON is a reasonably decent serialisation/deserialisation format for data useful for sending objects or other data between systems.
01:05
< RichyB>
XML and JSON are data serialisation formats.
01:05
<~Vornicus>
With xml vs json I recommend JSON unless you are doing Very Text Heavy Things, in which case the extra weight of XML doesn't hurt as much and it feels more like HTML.
01:05
< RichyB>
XML and JSON are worth comparing with each other; not so much with MySQL.
01:05
<@Namegduf>
XML is a structured data storage format, quite inefficient and slow for serialisation/deserialisation and WAY over complicated for the job, but with allegedly some applications for manipulating stored data.
01:05
<@Namegduf>
MySQL is a database server.
01:05
<~Vornicus>
McM's game review thing uses XML relatively effective.
01:05
<~Vornicus>
ly.
01:06
<~Vornicus>
I avoid XML because I'm not creating very text-heavy content.
01:06
< RichyB>
Namegduf: you haven't tried getting structured data from an external organisation comprised of fuckwits, have you?
01:06
<@Namegduf>
Well, if efficiency is a big deal you want to reach for protocol buffers for msgpack or BSON or something.
01:06
<@Namegduf>
Really.
01:06
<@Namegduf>
So JSON won't save you if it's a big deal.
01:07
<@Namegduf>
The decent binary serialisation formats eat it alive.
01:07
<@Namegduf>
But conversely yeah, XML's not crippled in that regard.
01:07
< RichyB>
Machine-readable XML schemas are *really* useful when you need a mechanically-provable way of demonstrating that, "No, YOUR code is wrong, you idiots. Look, the markup you're generating doesn't validate against the schema that you signed off on. Fix it."
01:07
<@Namegduf>
RichyB: No.
01:07
< mac>
can i take JSON and put it into sql easily?
01:07
<@Namegduf>
No.
01:07
< mac>
>.> XML?
01:08
<@Namegduf>
No.
01:08
<@Azash>
XML wouldn't be too hard
01:08
< RichyB>
Not into standard SQL92 in any way that lets you usefully query it.
01:08
<@Namegduf>
In both cases you can write a program to read in structures of data and then serialise them into SQL as rows.
01:08
<~Vornicus>
a SQL solution is best for large amounts of structured data; however, SQL generally requires a much larger backend. It's relatively easy for your middleware to turn data from a SQL resultset to either XML or JSON, but
01:08
<@Namegduf>
You will need such a program to be written and to make your own schema.
01:08
<@Namegduf>
This is not very hard.
01:09
<~Vornicus>
But it is annoying.
01:09
<@Namegduf>
But you can't talk JSON to an SQL DB or anything like that.
01:09
<@Namegduf>
And yeah, annoyance.
01:09
< mac>
can i store JSON as if it were a DB?
01:09
<@Namegduf>
It's not a DB.
01:09
< mac>
but its a list of things, right?
01:09
<@Namegduf>
That said, a DB is usually stored as a file somewhere ultimately.
01:10
<@Namegduf>
You can store JSON in a file if you like.
01:10
<@Namegduf>
(Well, a DB is stored as a set of files, more accurately)
01:10
< mac>
ah
01:10
<@Namegduf>
RichyB: I guess that's an advantage of XML, the machine verifiable schema, although it seems kind of perverse that such a thing is substantially useful
01:11
<@Namegduf>
I mean, for the purpose of telling people when they're doing it wrong, given a sane external source should be able to be shown their own output and believe it anyway.
01:11
< RichyB>
JSON is just a way of encoding numbers, strings, lists and hash-maps into sequences of unicode code-points.
01:12
< mac>
What makes SQL so powerful?
01:12
< RichyB>
Which you can turn into sequences of bytes very easily.
01:13
<~Vornicus>
Anyway: for my long-zombied settlers of catan project my goal was a page coated in javascript that requested json from the middleware, which it could turn into a page. The middleware generated the json by doing sql queries.
01:14
<@Namegduf>
RichyB: And YAML decoders are just hilarious, apparently.
01:14 * RichyB coughs.
01:14
<@Namegduf>
At least in Rubyland.
01:14
< RichyB>
That's mostly, yeah.
01:14
< RichyB>
Apparently Ruby's built-in YAML parser is just as dangerous as pickle/cPickle in Python?
01:14
<@Namegduf>
It kind of reminds me of PHP's community there.
01:14
<@celticminstrel>
RobinStamer: Well, it recognized be before and now it doesn't, so I'd say that's probably an issue...
01:14
<@celticminstrel>
^me not be
01:15
<@Namegduf>
I don't know if it was built-in, but rubygems.org was using it.
01:15
<@Namegduf>
And the fact that it was unsafe for untrusted input was never actually acted on even though they entirely knew about it.
01:15
< RichyB>
At least pickle & cPickle are actually marked with warnings telling you about the fact that running them on untrusted input immediately leads to code-injection vulns.
01:15
<~Vornicus>
SQL's power comes from its ACID guarantees.
01:16
<@Namegduf>
I think they had this weird sense people have that security issues will totally never be noticed because they personally wouldn't notice them.
01:16
< RichyB>
Vornicus: there are ACID-complying not-SQL systems (e.g. ZODB) and there are not-ACID systems that accept SQL commands as input (e.g. MySQL with MyISAM.)
01:17
<@celticminstrel>
It's a pretty minor thing, but...
01:17
<@Namegduf>
"Rails, for programmer convenience, used YAML to implement JSON deserialization. JSON is designed to get into Rails quite easily indeed -- just POST it at the server, wham, YAML.load(attacker_data) happened."
01:17
<@Namegduf>
Ahahaha
01:17
<@Namegduf>
Oh dear.
01:17 Kaura [thoughtscre@Nightstar-15f44060.dynamic.hinet.net] has quit [[NS] Quit: ]
01:18
<@Namegduf>
Oh wow, and their XML decoder.
01:18
<@Namegduf>
It allowed YAML attributes.
01:20
< mac>
ok i see a lot of bashing popular web scripting languages. What language should you use to program on the web?
01:20
<~Vornicus>
Not PHP
01:20
< mac>
PHP Ruby C#.net ?
01:20
< mac>
vornicus if i have to use php how bad is that?
01:21
<@celticminstrel>
Not too bad.
01:21
< RichyB>
Pretty awful.
01:21
<@celticminstrel>
It's bad, but it's usable.
01:21
< RichyB>
It's godawful and it will damage your brain.
01:21
<@celticminstrel>
Heh.
01:21
<@Namegduf>
Of those C# is possibly my preference, Ruby second preference
01:22
<~Vornicus>
google "a fractal of bad design"
01:22
<@Namegduf>
PHP is best understood as a field of landmines
01:22
< RichyB>
It will teach you shit habits that you will have to un-learn if you ever want to produce reliable programs in the future and it'll sour you on the entire concept that it might be possible to produce software that works today and will continue to work tomorrow.
01:22
< mac>
> brian is already damaged from having to take a course in python a year ago when i already knew and used c++ c# and c. No semi colons MFW.
01:22
< RichyB>
PHP is a fractal of bad design.
01:22
<@Namegduf>
You can, if you're a knowledgeable programmer and know what good code should be like, use PHP.
01:22
< RichyB>
From a distance, it looks like shit.
01:22
<@Rhamphoryncus>
I'd compare it to writing a modern game.. in cobol. Sure, you could do it, but you'll be so swathed in fucked-uped-ness that WHY would you?
01:22
< RichyB>
Examine any detail of it more closely, and you'll find that the fine detail is shit too.
01:22
<@celticminstrel>
Python is good though.
01:22
<@Namegduf>
Sometimes you even should use PHP, if you can build your thing by basically gluing together existing third party code with only minimal changes.
01:23
<@Namegduf>
(Because there's so much third party PHP code available this may shove you into that role)
01:23
< RichyB>
Python is good. I would actively recommend Python and Pyramid for writing web applications these days.
01:23
<@Namegduf>
But if you're building from scratch run away
01:23
<~Vornicus>
Python is popular here and quite good; Perl is hard enough to write good code in that there's basically only one person I know who can write perl I'd recommend to others.
01:23
<@Namegduf>
And if you're new you really must avoid PHP
01:23
<@Namegduf>
Because it is full of bad practices and traps to cause security vulnerabilities.
01:24
<@Rhamphoryncus>
PHP attracts people who are hacks. Poor understanding, little care, little pride. Both in the users and the designers/implementers
01:24
<&ToxicFrog>
mac: the best advice I can give you is don't do web programming
01:25
< mac>
:c i has no choice (currently)
01:25
<&ToxicFrog>
If you must, I'd recommend Python, Clojure, or Scala (in about that order), but failing those "anything at all as long as it's not PHP"
01:25
<@Rhamphoryncus>
(Although I assume there are some pretty good people working on the implementation these days.. they have to have a certain attitude to accept all the crap around them x_x)
01:25
< RichyB>
ToxicFrog: ...don't you work for Google? (Yet?)
01:25
<&ToxicFrog>
(actually I'd probably recommend clojure over python at this point~)
01:26
< mac>
Also i'm using php :/ yeah it's shitty but not too much code for what i need it to do.
01:26
<&ToxicFrog>
RichyB: I can't start until I defend, which I can't do until the School of Computer Science gets their scheduling out of their collective ass.
01:26 Nemu_ [NeophoxProd@Nightstar-e8251dbe.asahi-net.or.jp] has quit [Client closed the connection]
01:26
<&ToxicFrog>
RichyB: once I do start, though, I'll be doing internal tools and services, nothing browser-facing :D
01:26
< mac>
Curl is a ridicules and great thing.
01:27
< RichyB>
ToxicFrog: good idea.
01:27 * celticminstrel is currently being forced to use Perl and PHP.
01:27 Nemu [NeophoxProd@Nightstar-9a2ee33c.asahi-net.or.jp] has joined #code
01:30
<&ToxicFrog>
I will be working entirely in python, which isn't my favourite but is still alright.
01:31
< RichyB>
Are Google using CPython internally?
01:31
<@RobinStamer>
mac: Use what you like. PHP is king because it was made for that and has a low barrier to entry.
01:31
<@RobinStamer>
FYI you /can/ write good PHP code.
01:31
< RichyB>
Or one of PyPy, IronPython, Jython?
01:31
<&ToxicFrog>
RobinStamer: you can, but it's much easier to write good code in something that isn't PHP.
01:31
<&Derakon>
Robin: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/
01:32
<&Derakon>
When you write good PHP code, it's in spite of the language.
01:32
<@RobinStamer>
ToxicFrog: I disagree
01:32
<&ToxicFrog>
Seriously, if you are recommending PHP, especially to new programmers, you are part of the problem and I hate you with all of the fury maintaining PHP for a living engendered in me.
01:32
< RichyB>
RobinStamer: no you can't. The language designers change its semantics on you entirely at random in point releases.
01:32
<&Derakon>
No language has as many gotchas as PHP, even the ones thate are intentionally obfuscated.
01:32
<@RobinStamer>
But we've had that debate
01:32
<&ToxicFrog>
Derakon: malbolge. Maybe.
01:33
<@Rhamphoryncus>
RichyB: Google employs Guido van Rossum. Guess which implementation they use ;)
01:33
<@Namegduf>
RobinStamer: It seems pretty ridiculous to suggest that all tools have exactly equal utility for solving problems
01:33
< RichyB>
RobinStamer: yes, and we've come to the conclusion that PHP is on the evil side of it. Don't recommend it to people. Stop recommending it to people. Do not recommend it to people in future.
01:33
<@RobinStamer>
Also, you may wish to read what I wrote
01:33
<@Namegduf>
I guess what people are really trying to say is that they have concerns for the helpfulness of recommending PHP to new programmers.
01:34
<@Namegduf>
(And I agree)
01:34
< RichyB>
What you wrote is counterfactual. You can not write good PHP code.
01:34
< Syk>
man, i love veekun's stuff
01:34
< Syk>
i love when he hax'd furaffinity's comment system
01:34
<@Reiv>
PHP teaches bad habits and worse patterns.
01:34
<@RobinStamer>
RichyB: that's opinion.
01:34
< RichyB>
No, it's factually correct.
01:34
< Syk>
and randomly hid thousands of comments to prove a point
01:34
<@Reiv>
Mind you, I also wouldn't reccomend teaching them perl.
01:34
< RichyB>
There is no such thing by definition. Good code must have predictable useful behaviour.
01:34
< RichyB>
PHP's maintainers change the language's semantics at random in point releases.
01:35
<@Rhamphoryncus>
Good php code would probably involve writing a python-to-php compiler and writing in python instead
01:35
< RichyB>
You cannot point at a nontrivial piece of PHP code and say what it actually does.
01:35
<@RobinStamer>
RichyB: There are flaws in the interpreter, and the naming convention. However, neither of those prevent good code.
01:35
<@celticminstrel>
Pfft.
01:35
< Syk>
wait is someone defending PHP
01:35
<@Namegduf>
And also in the language syntax, semantics, libraries, and community
01:35
<&ToxicFrog>
Rhamphoryncus: until the next dot release~
01:35
< mac>
What the hell else is there to write in other than php?
01:35
<&Derakon>
As I said before, if you write good PHP, it is in spite of the language.
01:35 * Syk gets the wooden cross and the lighter fuel
01:35
<&Derakon>
It is walking a greased tightrope.
01:35
<@celticminstrel>
Mac: Lots?
01:35
<&Derakon>
A good language makes it easy to write good code.
01:35
<@celticminstrel>
Python, Ruby, Perl...
01:35
< mac>
.net is microsoft
01:36
<&Derakon>
PHP makes it hard.
01:36
< Syk>
mac: you can write in lots of things
01:36
<@Namegduf>
Python, Java, C#, Ruby, Perl
01:36
< Syk>
I once wrote a web service in bash
01:36
<@celticminstrel>
.NET is not just Microsoft.
01:36
< mac>
Ruby, you'd better know terminal
01:36
< Syk>
it is not my proudest moment
01:36
<@Namegduf>
All are at least moderately popular in this role
01:36
< RichyB>
Rhamphoryncus: BTW, IIRC Guido moved to Dropbox.
01:36
<&ToxicFrog>
mac: did you seriously just ask that
01:36
<&Derakon>
"Know terminal" what
01:36
< Syk>
wat
01:36
<@Rhamphoryncus>
ToxicFrog: well, yes. Ideally you'd make your own PHP implementation. Then you'd integrate it into your python-to-php compiler. Then you'd just call it a python implementation :)
01:36
< Syk>
if you're programming, you need to know how to use a terminal
01:36
<@Rhamphoryncus>
RichyB: really? Huh
01:36
< Syk>
period
01:36
<@celticminstrel>
Mono runs 90% of C# programs.
01:36 Attilla [Attilla@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has quit [Ping timeout: 121 seconds]
01:36
< Syk>
you don't get anything done usefully via GUIs alone
01:36
<@celticminstrel>
Probably more.
01:36
<&ToxicFrog>
mac: just for web programming, I can, off the top of my head, think of ruby, python, clojure, scala, java, and lua, and those are just the ones I personally have used for web development.
01:37
<@Reiv>
Syk: That's a little extreme.
01:37
<@Namegduf>
celticminstrel: That's quite unlikely; it has no XNA implementation
01:37 Thalass|netbook is now known as Thalass|swimminglesson
01:37
<&ToxicFrog>
And I would recommend any of them, including fucking java, over PHP.
01:37
<&Derakon>
TF: most of Amazon's web stack runs on Perl, incidentally.
01:37
< Syk>
Reiv: git
01:37
<@Reiv>
I code professionally, and I don't use terminal.
01:37
<&Derakon>
But they got started before "web language" was really a thing.
01:37
< Syk>
Reiv: unless the GUI git interfaces don't suck ass anymore
01:37
< RichyB>
Namegduf: google "monogame".
01:37
<@Reiv>
I also don't use git, mind.
01:37
< Syk>
last time I attempted to use a git GUI on Windows, I crawled back to Subversion
01:37
<@celticminstrel>
What is XNA?
01:37
< Syk>
to /subversion/
01:37
<&ToxicFrog>
Namegduf: 90% of C# programs that aren't the 360, then~ -- although there is an at-least-partially complete implementation of XNA for mono now, too.
01:37
<@Namegduf>
RichyB: I think that's only just come around to working
01:37
<&ToxicFrog>
*aren't targeting the 360
01:37
< RichyB>
Many simple C# applications work unmodified under Mono. Most games don't.
01:38
< Syk>
celticminstrel: game programming framework
01:38
<@RobinStamer>
celticminstrel: some .NET thing for games
01:38
<@celticminstrel>
Also, since when is Lua used for web programming?
01:38
< Syk>
celticminstrel: single code base, deploy to windows, windows phone, xbox 360
01:38
<&ToxicFrog>
Namegduf: I mean, it also doesn't support winforms - but if your goal is "develop cross-platform apps in C#" rather than "run random windows programs written in C# under Linux" this is a total nonissue.
01:38
<@RobinStamer>
celticminstrel: if it can be made into a shellscript, it can be used server-side for CGI
01:38
<&ToxicFrog>
Derakon: oh yeah, I totally forgot perl (which I have also done web work in)
01:38
< RichyB>
e.g. nice things like JustePort just work under Mono.
01:38
<&ToxicFrog>
...and bash
01:38
<@celticminstrel>
Can Lua be made into a shellscript?
01:39
< Syk>
yes
01:39
<@RobinStamer>
Not that I'd recommend you do that for anything that meets that requirement.
01:39
<@celticminstrel>
I've never actually tried.
01:39
<&ToxicFrog>
Ok, TBH I'm not sure I'd recommend bash over PHP for web work. But I can't offhand say that I wouldn't.
01:39
<@RobinStamer>
celticminstrel: yes, DSL used it a fuckton
01:39
< Xon>
<Reiv> SQL Server, oh how I hate thee
01:39
< Xon>
could be MySQL, with it's utterly fucking retarded query planner
01:39
<@Azash>
Doesn't the REPL just take stdio?
01:39
<&ToxicFrog>
celticminstrel: the Kepler Project was a fairly high-profile lua-based web framework for a while, although it seems to have largely fallen out of favour now
01:39
<@Namegduf>
ToxicFrog: They said "Runs 90% of C# programs"
01:39
< Syk>
xeor with it's retarded everything
01:39
< RichyB>
Azash: most REPLs have nice terminal handling too.
01:39
< Syk>
Xon: *
01:39
<@celticminstrel>
DSL?
01:39
<@Reiv>
Xon: Ah, but that would merely influence system performance.
01:39
<&ToxicFrog>
celticminstrel: yes you can - start the script with #!/bin/env lua or similar and there you go. The interpreter is smart enough to ignore the leading #!.
01:39
<@Namegduf>
My point is that way, way more than 10% of C# programs use non-portable not-part-of-standard-.NET libraries which do not work off Windows
01:39
<@RobinStamer>
celticminstrel: Damn Small Linux
01:39
<@Namegduf>
C
01:40 * Azash imagines making a permanent pipe redirected to a lua instance
01:40
<@Reiv>
We've got sixteen cores, I don't care much about system performance unless I'm breaking out the fourth subquery on a big one~
01:40
<@Namegduf>
*C# is portable like C is portable; you need to watch your library usage and watch what semantics you rely on.
01:40
< Xon>
Reiv, mysql basicly commits suicide if you throw subqueries at it =p
01:40
< Xon>
w.r.t to performance
01:40
<@Reiv>
(Well, OK, I write good code to make sure the system is fast. But then it mostly ends up returning in under 5 seconds anyway, so it's mostly a Good Habits thing regardless.)
01:40
<@Reiv>
Haha. Sweet.
01:40
<@Reiv>
Well, no, I don't deal with that.
01:40
<&ToxicFrog>
Namegduf: fair point. CM's original point, though, was that going "but it's windows-only" as a reason not to use CLR languages is, by now, well false.
01:41
<&ToxicFrog>
At least, I think was his original point, poorly stated.
01:41
< Xon>
more than 2-3 joins and the planner can get /really/ stupid as it can only use 1 index per table/join
01:41
<@Namegduf>
That's fair enough.
01:41
<@Reiv>
Xon: That's... pretty limited.
01:41
<@celticminstrel>
CLR?
01:42
<@Namegduf>
Common Language Runtime; the .NET stuff.
01:42
<@celticminstrel>
But yes, that was my point.
01:42
<&ToxicFrog>
Common Language Runtime, the thing C# (and F# and clojure-clr and whatnot) actually target, which Mono and the .NET Runtime are both implementations of.
01:42 Attilla [Attilla@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has joined #code
01:42
< Xon>
<Namegduf> *C# is portable like C is portable; you need to watch your library usage and watch what semantics you rely on.
01:42
< Xon>
actually, the semantics work well across platforms. it's just the libraries which have utterly fucking random holes and nonsenical changes
01:43
<@Namegduf>
Xon: I was meaning stdlib function semantics
01:43
<@Namegduf>
Xon: There's some undefined things, I don't remember the details, which weren't in the docs but were nevertheless relied on
01:43
<@Namegduf>
Which broke if you took the code over to Mono
01:43
<@Namegduf>
Some place where it was really convenient to just assume it'd keep working like it seemed to
01:43
< Xon>
wouldn't suprise me
01:44
<@Namegduf>
I know one thing you can't do portably is stuff like "get a list of all network interfaces on the machine"
01:44
<@celticminstrel>
sftp overwrites by default?
01:45
<@Namegduf>
So some network-using apps will end up non-portable by necessity for that.
01:45
<&Derakon>
CM: POSIX utilities overwrite by default.
01:45
<@celticminstrel>
True.
01:45
<@Azash>
Namegduf: Strange they didn't abstract NICs properly
01:45
< Xon>
<Syk> last time I attempted to use a git GUI on Windows, I crawled back to Subversion
01:45
< Xon>
Microsoft has released a git-plugin for Visual studio and will be baking it into VS on the next update pack
01:45
<@Namegduf>
Azash: I'm fairly cynical about MS and their motivations when it comes to portability
01:46
<@Namegduf>
Remember how badly Mono has been lagging over the years, after all
01:46
<@Azash>
True
01:46
< Xon>
CLR is fucking large
01:46
<@Namegduf>
I think they want to have the plus point of being portable but remain always the best platform for .NET apps to be run on
01:46
< Xon>
the standard libraries have a lot of cruff in them too
01:46
< Xon>
for example; who the fuck implemented the collection APIs
01:47
<@Namegduf>
And an easy way to do that is to not go to the substantial effort needed to make things so apps don't randomly break if you move them off Windows/.NET onto Linux/Mono.
01:47
<@Namegduf>
It's hard, and they've no reason to.
01:48
< Xon>
sure there is, a lot of the earlier .NET crap was rushed due to time constaints and the chosen release model
01:48 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [[NS] Quit: Leaving]
01:48
< Xon>
and MS is loath to break backwards compadibility, so we are stuck with some really crappy design choices in the .NET standard libraries
01:49
<@Namegduf>
Hmm, maybe I misrememebered. There was some piece of network code which relied on non-portable behaviour I wrote, but it looks like it wasn't NIC enumeration.
01:50
< Xon>
well Nic enumeration *is* bugged on Mono for Andriod
01:50
< Xon>
https://bugzilla.xamarin.com/show_bug.cgi?id=1969
01:51
<&ToxicFrog>
s/NIC enumeration/everything/ s/Mono for//
02:06 Attilla [Attilla@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has quit [[NS] Quit: ]
02:13 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Operation timed out]
02:15 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code
02:15 mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ
02:36
<@RobinStamer>
<Sthebig> so.. we're trialing the application control and url filtering blade in our firewall. day 1 and already found one guy looking for transsexual hookers, granny porn, and incest porn. starting at 11:25 AM.
02:48
<&ToxicFrog>
welp
02:48
<&ToxicFrog>
Why do people do this at work?
02:49
<&ToxicFrog>
And if they decide that they absolutely must browse porn at work, why don't they at least tunnel it?
02:49
<&ToxicFrog>
(exceptions are granted for the team testing the content filter)
02:50
<@RobinStamer>
Or use Google's HTTPS search :/
02:51
<@Reiv>
Incest porn is a thing?
02:52
<@Reiv>
What, do you just find two actors that look roughly similar and have them go at it while calling each other siblings?
02:52
<@RobinStamer>
Apparently
02:52
<@RobinStamer>
Incest Hentai is just Hentai with speech bubbles :/
02:52
<~Vornicus>
Reiv: sure. There's also, you know, specializatins. The classic is twins
02:53 * Reiv muses.
02:53
<~Vornicus>
Which is a popular enough fetish that it shows up in beer commercials.
02:53
<@Reiv>
Is it still incest if it's a threesome~
02:57 Thalass|swimminglesson is now known as Thalass
02:57
<&ToxicFrog>
RobinStamer: the sites they're getting to from there probably aren't using https~
02:58
<&ToxicFrog>
Also, I'm using to working in places with transparent HTTPS proxies using a root CA that all workstations in the building trust.
03:00
<&ToxicFrog>
Reiv: sometimes, porn does in fact have plots, so...
03:00
<&ToxicFrog>
(also, yes, the order of the graph doesn't affect whether it's incest or not~)
03:03
<@Reiv>
(But you might not actually have sex with the sibling, just be involved in the same sex /act/~)
03:04
<&ToxicFrog>
(in that case it's not incest unless you believe that incest is transitive)
03:04 VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
03:05 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Client exited]
03:05
<@Azash>
Hee hee
03:05
<@Reiv>
And on THAT cheerful note, I shall depart~
03:05
<@Azash>
Reading our old comp org I material, it seems to feature the classic cheesecake comparison
03:05
<@Azash>
G'night Reiv
03:05
<@Azash>
Illustrating speeds with an example of a chef needing cream cheese for his cake
03:06
<@Azash>
Registers = cheese in hand, 1 second; cache = cheese on the table, 2 seconds; RAM = cheese in the fridge, 10 seconds
03:06
<@Azash>
HDD = cheese on the moon, 12 days; network = cheese on Europa, 4 years
03:07
<@Azash>
"The cake baker would now have some real problems, not even knowing how much cake he will be needing four years from now."
03:07
<&ToxicFrog>
I generally use in mind, in hand, on desk, in filing cabinets, in another room, in another city.
03:07
< RichyB>
Scale's a bit off. Registers are faster/L2 cache is slower, RAM is much slower.
03:08
< RichyB>
RAM's like 100ns away, whereas registers are same-cycle (which you can think of as 0.33ns if you like).
03:08
<@Azash>
He uses 1ns, 2ns, 10ns, 10-30ms, 1-3s
03:08
< RichyB>
1-3s for network is wildly pessimistic.
03:09
<@Azash>
Not necessarily
03:09
< RichyB>
iSCSI on 10Gbit ethernet over a hop or two to get at your SAN is much quicker than a local disk.
03:10 * Azash makes a mental note not to bring up humorous comparisons in the future
03:10
< RichyB>
Infiniband rDMA implementations are advertised as being ~100us for a read.
03:10
< RichyB>
It's funnier if it's accurate! :D
03:10
< RichyB>
Round-trip to Australia and back from the UK is 300ms.
03:10 Kindamoody[zZz] is now known as Kindamoody
03:11
< RichyB>
I for one am very bloody glad that it's only 300ms, because I wind up SSHing into a machine in .au pretty often. :)
03:11
<@Azash>
I don't think 'fetching data over a network' in this case means 10 gig ethernet two hops away or sending pings, though
03:11
< RichyB>
1s for network is realistic for "download 4kB over 56k modem, or GPRS".
03:13
< RichyB>
If you're worrying about latency, RTTs are exactly the thing to measure. Ping's a pretty realistic measure for all real-time traffic.
03:14 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: >:3 This is BunThulhu. Copy him into your quit message to help him take over the Internet.]
03:15
<@Azash>
And he quit, brilliant
03:15
<@Azash>
>_>
03:20
<&ToxicFrog>
100 nanoseconds?
03:20
<&ToxicFrog>
Modern DD3 memory has sub-nanosecond latency.
03:20
<@Azash>
10*
03:20
<@Azash>
And the materials are from 2004
03:21
<&ToxicFrog>
10ns is accurate if you're using, um
03:21
<&ToxicFrog>
PC100 SDR SDRAM
03:22
<&ToxicFrog>
Oh wait, no, I'm reading the wrong column
03:22
<&ToxicFrog>
I should not read performance data while sick :(
03:34
< Xon>
ToxicFrog, actually DDR3 had higher latency than DDR2 =p
03:34
< Xon>
it's still something in the order of <10ns tho
03:35
<@celticminstrel>
Whee, homework done. Now I can get back to playing this through for bugs.
03:35
< Xon>
bah RichyB before I coudl point out that 10Gig had /much/ higher latancy than gigabit in that 5-6ms isn't out of the ordinary
03:35
< Xon>
left before*
03:44
<&McMartin>
Aiya. So. We've got this application that we want to remote control, and in particular, a button we want to push.
03:44
<&McMartin>
So, just post MOUSEBUTTON_DOWN then MOUSEBUTTON_UP into the middle of it, right?
03:44
<&McMartin>
Apparently not!
03:44
<&McMartin>
Seven hours later I get the bright idea of also posting a MOUSEMOVE in first.
03:44
<&McMartin>
FLAWLESS VICTORY.
03:44
<&McMartin>
Apparently the UI code will reject mouse clicks that come out of nowhere, unless it sees a more realistic environment. -_-
03:46
<@Rhamphoryncus>
Xon: I thought it had lower?
03:47
<@celticminstrel>
...this is odd. Somehow I'm ending up on top of a monster.
03:48
<&ToxicFrog>
McMartin: that seems like more work than just letting it handle MOUSEDOWN/MOUSEUP.
03:48
<@Rhamphoryncus>
"10GBASE-T has latency in the range 2 to 4 microseconds compared to 1 to 12 microseconds on 1000BASE-T."
03:48
<&McMartin>
ToxicFrog: Indeed, and yet!
03:50
<@Rhamphoryncus>
Huh. 10 gigabit IS significantly slower for 64-byte packets, slightly slower for 256-byte packets, and only gets significantly faster at 512-byte packets
03:51 * Azash notes that a connection that has to be established won't operate at full speed right away due to things like slow start
03:54
< Xon>
Rhamphoryncus, 1-12 ms for gigabit? anythign over 4 in close geographical proximity (aka the same server room) is due to really shitty network connections
03:54
< Xon>
hell, 10ms is really really shitty unless you are running significant distances with lots of hops
03:55
<@Rhamphoryncus>
Xon: The two papers I read based it on packet size. Presumably it's for negligible distance
03:55
< Xon>
that can be an interesting assuption there =p
03:56
<@Rhamphoryncus>
Meh. I think it's valid
03:56
<@Rhamphoryncus>
http://en.wikipedia.org/wiki/10-gigabit_Ethernet#cite_note-23 and http://en.wikipedia.org/wiki/10-gigabit_Ethernet#cite_note-24
03:59
<@Rhamphoryncus>
Seems to be about what the spec allows and with a really good implementation, as opposed to a poor one or one focused on power savings
04:00
< Xon>
the earlier version of the 10GB spec where consistantly worse tho
04:01
<@Rhamphoryncus>
ahh. That'd be what the mentions of a "low latency" version apply to, the switch to the newer spec
04:01
< Xon>
yup
04:02
< Xon>
anyway got to run off todo some acceptence testing with a client for some software
04:03
< Xon>
<ToxicFrog> Modern DD3 memory has sub-nanosecond latency.
04:03
< Xon>
http://en.wikipedia.org/wiki/CAS_latency
04:03
< Xon>
still in the order of ~10 ns for the 1st random word
04:03
< Xon>
subnanosecond latency when you use maths to average it out per bit, but that doesn't really help much
04:04
<@Rhamphoryncus>
Yeah. Bandwidth has scaled massively. Latency has changed only mildly, and actually less than the deviations
04:11
<&ToxicFrog>
Xon: yeah, I corrected myself later
04:40 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code
04:49 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
04:49 mode/#code [+ao Derakon Derakon] by ChanServ
04:54 Thalaway is now known as Thalass|pc
05:37 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
05:46 * Vornicus beflibbles
05:46
<@froztbyte>
what's this about beef nibbles?
05:46
<@froztbyte>
what did you do to your RAM, young man?
05:47
<@Azash>
Where's the beef nibble?
05:49 Thalass|pc is now known as Thalass|afk
05:59
<@celticminstrel>
I'm confused. Why does "if [ $# < 2 ]; then" result in a "No such file or directory" message?
06:00
<@froztbyte>
-lt, not <
06:00
<@froztbyte>
< is a redirection character
06:00 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
06:00
<@froztbyte>
and you're telling your shell to connect '2' to whatever $# evaluates to
06:01
<@celticminstrel>
I'm pretty sureI saw < used somewhere for that but... -lt works, so whatever.
06:01
<@froztbyte>
haha
06:01
<@celticminstrel>
^sure I
06:04
<@froztbyte>
if you're using bash, you should firstly switch to zsh at some point, and alternatively read the TLDP ABS guide at some point
06:04
<@froztbyte>
Advanced Bash Scripting
06:04
<@froztbyte>
it's got lots of bash knowledge, and should suffice to indicate as a reason why you should switch, too ;D
06:08
<&ToxicFrog>
celticminstrel: this is the difference between [ and [[
06:08
<&ToxicFrog>
[ is an alias for 'test' which is available because sh.
06:08
<&ToxicFrog>
Thus, it uses normal command parsing rules.
06:09
<~Vornicus>
tldp saved my sorry ass so much when I worked at resmark
06:09
<&ToxicFrog>
if [ $# < 2 ]; then is saying "run the command '[' with the arguments "$#" and "]" and redirect stdin from the file "2", then check the return code
06:10
<&ToxicFrog>
[[ ]] is an actual part of bash syntax rather than an external command and thus uses its own parsing rules.
06:10
<&ToxicFrog>
That said, I'm pretty sure it distinguishes between < > and -lt -gt, and I forget which is for strings and which is for numbers.
06:11
<&ToxicFrog>
Check the ABSG.
06:11
<&ToxicFrog>
Or 'man bash' and look for "BUILTIN"
06:15 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
06:17
<@froztbyte>
ToxicFrog: oh yeah, that's that too
06:32 Derakon is now known as Derakon[AFK]
06:46 ErikMesoy|sleep is now known as ErikMesoy
06:46 * Vornicus turns the last DOM manipulation thing in his 4e character sheet over to jquery, cleans some other stuff up.
06:50 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has quit [Ping timeout: 121 seconds]
06:51 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code
06:59 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
07:02 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code
07:02 mode/#code [+o Courage] by ChanServ
07:28
<~Vornicus>
Okay. Next up, figure out what the entire shit I am doing with skills, and probably clean up the reaction chain for this stuff.
07:34 * Thalass|afk putters around with picaxe, several levels below everyone else in codefu. :P
07:48 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
07:59 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
07:59 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [[NS] Quit: Leaving]
08:09
<~Vornicus>
Okay, reaction chain I think figured out.
08:10
<~Vornicus>
Now to implement same.
08:47 OrthiaLap [orthia@Nightstar-687cbd6a.ihug.co.nz] has joined #code
09:01 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
09:02 Thalass [thalass@Nightstar-b95c25b4.bigpond.net.au] has quit [Ping timeout: 121 seconds]
09:20 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
09:28 Attilla [Attilla@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has joined #code
09:47 JustLurk [justbob@ServerAdministrator.Nightstar.Net] has joined #code
09:48 JustBob [justbob@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
10:03 Thalass [thalass@Nightstar-b95c25b4.bigpond.net.au] has joined #code
10:09 Kindamoody is now known as Kindamoody|out
10:23 You're now known as TheWatcher
10:29 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
10:33 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
10:50 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
10:55
<@Tarinaky>
Deadline day. Naturally i have to go to lectures during the deadline hour.
10:55
<@Tarinaky>
So kindof got to hope that people don't fuck up the submission >.>
11:09 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
11:19 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
11:19
<@TheWatcher>
Submit early?
11:21 OrthiaLap [orthia@Nightstar-687cbd6a.ihug.co.nz] has quit [Ping timeout: 121 seconds]
11:23 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
11:23 mode/#code [+o himi] by ChanServ
11:37 Thalass is now known as Thalass|ENT
11:37 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
11:46 OrthiaLap [orthia@Nightstar-687cbd6a.ihug.co.nz] has joined #code
11:51 OrthiaLap [orthia@Nightstar-687cbd6a.ihug.co.nz] has quit [Ping timeout: 121 seconds]
11:52 OrthiaLap [orthia@Nightstar-687cbd6a.ihug.co.nz] has joined #code
12:04 OrthiaLap [orthia@Nightstar-687cbd6a.ihug.co.nz] has quit [Ping timeout: 121 seconds]
12:04 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
12:11
<@Tarinaky>
TheWatcher: This would be good idea if everything was working early.
12:13
<@TheWatcher>
Frankly, if you're finishing up a group project on the last day, it's already too late to get it working >.>
12:14
<@Tarinaky>
We got /more/ working than we had working yesterday.
12:14
<@Tarinaky>
ie: something now works.
12:15
<@Tarinaky>
As opposed to yesterday where nothing worked.
12:15
<@Tarinaky>
Unfortunately, it still only works on one machine.
12:15
<@TheWatcher>
Submit the machine, too!
12:15
<@TheWatcher>
~
12:15
<@Tarinaky>
Acceptance testing is in person.
12:15
<@Tarinaky>
But there's not a lot to be done about it.
12:15
<@Tarinaky>
Fuck web development and java servlets :/
12:15
<@Tarinaky>
Fuck the group project.
12:34 Nemu [NeophoxProd@Nightstar-9a2ee33c.asahi-net.or.jp] has quit [Ping timeout: 121 seconds]
12:50 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
12:58 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
12:58 mode/#code [+o Pandemic] by ChanServ
13:24
<@froztbyte>
I never understood why that stuff is done in groups
13:24
<@froztbyte>
a university here did it too
13:24
<@froztbyte>
without source control, java is terribly hard to do as a group thing
13:25
<@Azash>
s/java/any program/
13:26
<@TheWatcher>
At university, /anything/ is hard to do as a group thing.
13:26
<@TheWatcher>
Source control or not
13:27
<@Azash>
Mm.. I probably whinged incessantly here about the group project I did last autumn
13:27
<@Azash>
It was like rubbing my face against a cheese grater on the pleasantness scale, but doing a large project under controlled circumstances was really good in retrospect
13:28
<@Azash>
Going from no real group coding experience to an intensive four months of scrum, pair programming and merge conflicts~
13:31
<@Namegduf>
I think you had an abnormally good group.
13:31
<@Namegduf>
Also pair programming was actually done by someone willingly?
13:31
<@Azash>
We enjoyed it
13:31
<@Azash>
And I dunno, not really
13:31
<@TheWatcher>
If you had more than one person doing the work, you did have an abnormally good group
13:32
<@TheWatcher>
(well, doing it competently and correctly)
13:32
<@Azash>
Four people, one was an incompetent fader, one was an arrogant fader, so me and another guy ended up plugging all the leaks while the other two maximized derp whenever our backs were turned
13:32
<@Namegduf>
The problem is that during university you have to deal with all the people who will later complete the degree and then fail fizzbuzz.
13:32
<@Namegduf>
And lead to people asking how people get CS degrees and fail fizzbuzz.
13:33
<@Namegduf>
(Part of the answer is group projects)
13:33
<@Azash>
:P
13:34
<@Azash>
Well, fortunately the instructors were aware of the situation: Both of us ended up falling short of the "you must have at least this many hours to pass" and still got graded 2/5
13:35
<@Namegduf>
This many hours?
13:35
<@Azash>
Recommended amount was 250+, absolute minimum was 150, I think, we fell a couple of hours short
13:36
<@Namegduf>
I mean, hours of what?
13:36
<@Azash>
Working together
13:36
<@Namegduf>
They measured time spent together and mandated a minimum?
13:36
<@Azash>
Yeah
13:37
<@Namegduf>
Weird
13:37
<@Namegduf>
I thought I had bad group projects, I was recently told a story of one last year at my university which ended up with threats of legal action.
13:38
<@Azash>
Nice
13:38
<@Azash>
This project I was on is done for a real client, right? Usually someone who needs stuff for a research group, occasionally an industrial partner
13:39
<@Namegduf>
Wow.
13:39
<@Namegduf>
Does that... work?
13:39
<@Azash>
Old TA of mine told a story how his was making a tool for a simple learning language for our comp org course
13:39
<@Azash>
It does, surprisingly well
13:39
<@Namegduf>
I wouldn't trust a group of university students to make a calculator, myself.
13:39
<@Namegduf>
My old peers were just not good at actual SE
13:40
<@Azash>
Yeah.. Most of them don't end in massive success but most projects tend to be pretty simple
13:40
<@Azash>
Like tools for maintaining a set of tracked bird statistics or whatever
13:40
<@Azash>
(of course, we picked the XSS-detecting AST-parsing terror project)
13:41
<@TheWatcher>
My unit used to do that - offered 3rd year individual projects and MSc projects, trying to get various bits and pieces done that we didn't have time to do
13:41 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
13:41
<@TheWatcher>
In about 10 years of offering 2 or 3 of them each year, we got one worth bothering with
13:42
<@Azash>
But like, re. legal action, reminded me of that TA I just mentioned: He found out that immediately after they signed the waivers for any rights they may have to the software (the rights go to the uni), he found out the lecturer in question had approached one group member about maintaining the project after the course ended
13:42
<@Namegduf>
Ew
13:42
<@Azash>
So the TA did the logical thing, went to tell the lecturer in a polite fashion to fuck off and never came back to work on it
13:42
<@Azash>
And apparently got a 4/5
13:43
< RichyB>
froztbyte: I think that group work is an effective way to get kids to educate each other about the practicalities that they do know.
13:44
< RichyB>
You get a mix of kids in a CS dept, some of whom come in basically from nothing, some of whom are LUG members.
13:45
< RichyB>
*and have made pocket money as teenagers by selling websites to people, etc.
13:45
<@Namegduf>
I think that's dramatically overoptimistic of hte attitude of the people who come in basically from nothing, to the people who are lUG memebrs, and visa versa.
13:45
<@froztbyte>
RichyB: that presumes non-shit group interaction
13:45
< RichyB>
Force a mixture of those two together and the ones with some practical experience will show the others their favourite version control system, how to gdb, etc.
13:45
<@froztbyte>
which typically doesn't happen, as far as I can tell
13:45
<@Namegduf>
My experience was that most of the people who didn't know what they were doing preferred not knowing what they were doing
13:45
<@Namegduf>
And I severely resented paying thousands of pounds a year for the privilege of teaching them
13:46
< RichyB>
froztbyte: I've seen it happen to a certain extent, but yeah okay, shit interaction is the norm.
13:47
<@TheWatcher>
Namegduf: yeah, exactly - that's pretty much the trend we see
13:47
<@Azash>
Namegduf: Is it common that people are still that inequal at the end of the degree?
13:47
<@Namegduf>
Azash: Very much so.
13:48
< RichyB>
Yes.
13:48
<@Namegduf>
The complaints of CS graduates who can't actually program are well-founded.
13:48
<@Azash>
Hm
13:48
<@Azash>
I suppose the SE focus in our degree is worth something then~
13:48
<@Namegduf>
If the SE focus actually works.
13:48
<@Azash>
I wouldn't have said it was worth something if it didn't
13:49 * RichyB very much liked the focus/breadth balance at bris.ac.uk
13:50
<@TheWatcher>
Namegduf: In my school there are regular attempts to get the more experienced students to 'share their knowledge' with the less able ones. It aways ends up being a very small handful of the former doing anything, with the majority basically saying "We're paying to be here to learn, not to teach, that's your job", while all too many of the latter are less experienced because they are on the wrong programme, in the wrong school, or just can't be
13:50
<@TheWatcher>
arsed.
13:50
< RichyB>
Most classes were a mixture; as much theory as they could cram in the time available resulting in an examination, plus coursework that had us making pseudo-practical implementations of (at least the easier bits of) what we'd been shown in the theory lectures.
13:51
<@Namegduf>
TheWatcher: That sounds like a good summary.
13:51 * RichyB shrugs.
13:51
< RichyB>
I remember working with people I actively liked on group projects, so pooling information wasn't exactly a problem~
13:52
<@Namegduf>
bath.ac.uk didn't understand what SE is, pretty much. They teach it based on some dubious fairly outdated academic analysis of the field with nothing practical, basically just teaching various types of paperwork.
13:52
<@Namegduf>
In practice it's typical academic lack of care for software engineering quality.
13:54
< RichyB>
I'm not convinced that SE is teachable in the space of a CS course.
13:54
<@TheWatcher>
RichyB: but I espect that the abilities of the people in the groups you had were fairly evenly matched?
13:55
<@Azash>
We have a pretty strong SE presence, with people with industry experience who work to keep the courses up to date on a yearly basis
13:55
<@TheWatcher>
Because that's not what happens in most cases I've seen and experienced.
13:55
<@Azash>
As well as a group focused on practical learning (if anyone is interested, Extreme Apprenticeship Method by Luukkainen et al)
13:55
<@Namegduf>
I believe Bath tried to actually pair up people who got high marks with people who got low marks.
13:55
<@TheWatcher>
(because people organising group projects usually seem think that the correct thing to do is to mix abilities, so the better ones can help the weaker. Blind to the fact that this usually means you end up with one or two people doing all the work for the group.)
13:55
<@Namegduf>
This may qualify as 'deliberately making it worse'.
13:56
<@TheWatcher>
Yep.
13:56
< RichyB>
TheWatcher: closer but certainly not equal.
13:56
<@TheWatcher>
I generally support the other end of the scale: group the people of closest ability together, let the useless ones flunk it
13:56
<@Tarinaky>
TheWatcher: Our group was abnormally good. No real arguments.
13:56
<@Azash>
So there's not a lot of trouble here, the courses usually have people at least basically competent at the end of their BSc, with those taking one of the heavier optional SE courses usually having worked more with fairly recent tech
13:57
<@Tarinaky>
Unfortunately nothing works :p
13:57
<@TheWatcher>
unfortunately, that sort of thing doesn't look good on results tables :/
13:57
<@Namegduf>
Azash: That's pretty impressive.
13:57
<@Namegduf>
Where is this?
13:57
<@Azash>
University of Helsinki
13:57
<@Namegduf>
Ah, I see.
13:59
<@Tarinaky>
I... have some sympathy for people on the wrong program, scheme, etc... being as I've been on that side of the group project before :/
13:59
<@Tarinaky>
But that was a lab experiment in Physics.
13:59
<@Tarinaky>
Don't
14:00
<@Tarinaky>
*Don't remember what on though.
14:04
<@Azash>
Namegduf: Do you have ACM access?
14:04
<@Namegduf>
Yes.
14:05
<@Azash>
https://dl.acm.org/citation.cfm?id=1999747.1999824
14:06
<@Namegduf>
That discusses the method they use for teaching SE?
14:06
<@Azash>
Yeah
14:11
<@Tarinaky>
I feel like the walking dead.
15:09 JustLurk is now known as JustBob
15:18 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
16:02 Thalass|ENT is now known as Thalasleep
16:04 Nemu [NeophoxProd@Nightstar-9a2ee33c.asahi-net.or.jp] has joined #code
16:06 Thalasleep [thalass@Nightstar-b95c25b4.bigpond.net.au] has quit [Ping timeout: 121 seconds]
16:16 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
16:27 You're now known as TheWatcher[afk]
16:39 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
17:17 Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds]
17:18 Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
17:28 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code
18:01 Shellninja is now known as Jonny
18:19 Kindamoody|out is now known as Kindamoody
19:01 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
19:09 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
19:34 Kindamoody is now known as Kindamoody[zZz]
19:34 Typherix is now known as Typh|AFK
19:39 VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
19:42 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds]
20:03
<&ToxicFrog>
So I want to write a simple Android application.
20:03
<&ToxicFrog>
Five buttons, two configuration values, one client socket.
20:03
<&ToxicFrog>
However, I want this to work on both my phone, and Symbol's.
20:03
<&ToxicFrog>
I'm running 4.1; she's running 2.2.
20:04
<&ToxicFrog>
How fucked am I?
20:09
<&jerith>
ToxicFrog: Stuff targeting old APIs should work fine on new ones.
20:09
<&jerith>
(Modulo library bugs, etc. of course.)
20:21 Typh|AFK is now known as Typherix
20:22 Jonny is now known as ShellNinja
20:24
<&ToxicFrog>
jerith: ok, so I should target android 2.2/clj 1.2 and it will hopefully Just Work on 4.1?
20:25
<&jerith>
Probably. Is that clj a Clojure thing?
20:25
< JustBob>
TF - http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLeve ls
20:26
<&jerith>
I found Android development to be incredibly painful, but more than half of that was just Java.
20:26
< JustBob>
"Updates to the framework API are designed so that the new API remains compatible with earlier versions of the API. That is, most changes in the API are additive and introduce new or replacement functionality. As parts of the API are upgraded, the older replaced parts are deprecated but are not removed, so that existing applications can still use them. In a very small number of cases, parts of
20:26
< JustBob>
the API may be modified or removed, although typically such changes are only needed to ensure API robustness and application or system security. All other API parts from earlier revisions are carried forward without modification."
20:26
< JustBob>
So, in theory, if you write it for 2.2, it should run on 4.1
20:28
< JustBob>
http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#conside rations for their discussion on backward/forward compatibility.
20:28
<&ToxicFrog>
jerith: it is clojure, yes.
20:29
<&jerith>
How big is the runtime library you need to ship?
20:29
<&ToxicFrog>
1.2 is compatible with android 2.2+, 1.3+ is compatible with 2.3+
20:30 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
20:30
<&ToxicFrog>
No idea. The clj runtime in its entirety is ~3MB, but lein-droid only packages the classes that are actually used.
20:30
<&ToxicFrog>
JustBob: thank you.
20:30
<&jerith>
Hrm.
20:31
<&jerith>
That's small enough that I can probably use it for Hamlet if I ever reboot the project.
20:32
<&ToxicFrog>
Once I actually start work on it, I'll report on how big it actually is.
20:32
<&ToxicFrog>
And now, I must away
20:33
<&jerith>
My old Desire is pretty much a write-off for this.
20:33
<&jerith>
The 2.3 update left it with about 23kb for apps or something.
20:33
< JustBob>
TF - No worries.
20:35 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code
20:35 mode/#code [+o celticminstrel] by ChanServ
20:38
<&jerith>
Damn you, ToxicFrog. Now I want to learn Clojure and write an Android IRC client in it again.
20:59 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
21:06
<@froztbyte>
ToxicFrog: aside
21:06
<@froztbyte>
there's that "appfactory" thing that acts as an intermediary language
21:07
<@froztbyte>
which is apparentlty reasonably good at making these sorts of things
21:07
<@froztbyte>
http://www.appcelerator.com/products/
21:07
<@froztbyte>
http://www.coronalabs.com/
21:08
<@froztbyte>
RhoMobile was the first of the sort that I'd heard about
21:13 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [Client exited]
21:21 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code
21:21 mode/#code [+o celticminstrel] by ChanServ
21:37 You're now known as TheWatcher
21:43
<@froztbyte>
http://nedbatchelder.com/blog/201302/war_is_peace.html
21:43 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
21:43 mode/#code [+qo Vornicus Vornicus] by ChanServ
21:46 * TheWatcher eyes the top comment there, snerks
21:46 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has left #code ["Leaving"]
21:46
<@froztbyte>
haha
21:47
<@froztbyte>
I've tried to deal with yaml in python
21:47
<@froztbyte>
it looked painful
21:47
<@froztbyte>
so I used something else instead
21:48
<&McMartin>
Yaml is the worst
21:48 VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Client closed the connection]
21:49 VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
21:54
<@TheWatcher>
Just out of curiosity, does python have an equivalent of perl's tainted mode?
21:55 OrthiaLap [orthia@Nightstar-687cbd6a.ihug.co.nz] has joined #code
21:55
<&McMartin>
I'm not aware of one; Python doesn't have direct language support for most of the components of Perl's taint analysis, though
21:55
<@TheWatcher>
Hm, okay, thanks.
21:55
<@froztbyte>
yeah, I'm not aware of one either
21:56
<@froztbyte>
although I think that's.....wtf
21:56
<@froztbyte>
power
21:56
<&McMartin>
(Also, Perl's taint analysis is imo a dangerous false sense of security, but~)
21:56
<@froztbyte>
okay, that was weird; random main breaker
21:56
<@froztbyte>
fail*
21:56
<@froztbyte>
anyway, perl's been around longer as a general "utility" runner
21:57
<@froztbyte>
so I think there's a lot more attack likelihood there, thus taint mode
21:57
<@froztbyte>
but I can't comment on how good it is, as McMartin appears to be able to
21:57
<&McMartin>
Well, I tend more towards "If you're relying on escaping everything for safety, you have done it wrong"
21:58
<@froztbyte>
yeah fair enough
21:59
<@TheWatcher>
Yeah, taint mode in and of itself isn't enough by a long way - especially as it won't pick up on a lot of things - but I've found it useful to get people thinking in the right frame of mind when they find out just how much of their stuff breaks when they turn it on...
22:00
<@froztbyte>
haha
22:01
<@TheWatcher>
(usually, ALL THE THINGS ¬¬)
22:03
<@froztbyte>
another fun one is to give people a non-sudo user shell
22:03
<@froztbyte>
and say "install your application to there, please. just tell me what URL to proxy things to"
22:16 mac [mac@Nightstar-b902fba7.chi.megapath.net] has joined #code
22:21 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
22:23 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
22:25 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code
22:25 mode/#code [+o Courage] by ChanServ
22:29 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
22:29 mac [mac@Nightstar-b902fba7.chi.megapath.net] has quit [[NS] Quit: Leaving]
22:31 OrthiaLap [orthia@Nightstar-687cbd6a.ihug.co.nz] has quit [Ping timeout: 121 seconds]
22:41 * sshine is compiling gcc for mips-elf but wants to go hooome!
22:41
<@TheWatcher>
How many hours ago did you start it?~
22:42
<@sshine>
it only took 20 minutes the first time before it broke and I realized that running 'make' inside the source dir wasn't recommended.
22:42
<@sshine>
I'm on a Core 2 Duo, so I'm curious as to how long it can be expected to run
22:43
<@sshine>
oh no... someone says 2 hours on an i5.
22:43
<@sshine>
I did run 'time make' just to satisfy my curiousity
22:43
<@Tamber>
Whenever it's something like that, the estimated time is "However long you have until the deadline, then half an hour extra."
22:44
<@Tamber>
:p
22:45
< RichyB>
froztbyte: ...? I find that idea a bit strange.
22:45
< RichyB>
If the software I write doesn't run without root, the Hell would I even test it on my own machine without having to hit 'su' every five seconds anyway?
22:46
<@froztbyte>
lulz
22:46
<@froztbyte>
you'd be surprised at how much shitty code is out there..
22:46
<@froztbyte>
it's not often even so much the shitty application
22:46
<@froztbyte>
as the shitty requirements the programmer went with
22:47
<@TheWatcher>
And you'd be surprised how many people think that developing in 'sudo su -' is kosher
22:47
< RichyB>
No, no, really.
22:47
<@froztbyte>
yup
22:47
< RichyB>
I've written some awful code.
22:47
<@froztbyte>
also, why does no-one use `sudo -i`? :(
22:47
< RichyB>
I still don't bother to make things need root. ;P
22:48
< RichyB>
I do! When "su" isn't available.
22:48
<@froztbyte>
RichyB: "but how do you install $lib without root?"
22:48
<@froztbyte>
I don't think there's a valid reason to ever do `sudo su -`
22:49
<@froztbyte>
maybe there's a fuckold sudo somewhere that doesn't have -i
22:49
< RichyB>
LIBRARY_PANTS="$HOME/somelib/"; export LD_LIBRARY_PATH="$LIBRARY_PANTS/lib:$LD_LIBRARY_PATH"
22:49
<@froztbyte>
my quotes were there as a sample of $clueless_dev
22:49
<@froztbyte>
also not everything is a C-style app :P
22:50
< RichyB>
Eh. All the sexy languages like Perl, Python, Haskell, Ruby, whatever, already have easier solutions.
22:50
<@froztbyte>
you, I, and at least 5 or 6 other people here
22:50
<@froztbyte>
all have no issue with doing this correctly
22:50
< RichyB>
virtualenv, cabal-dev, whatever the Ruby thing is called.
22:50
<@sshine>
Tamber, no deadline, I just wanna go home and sleep! :)
22:50
<@froztbyte>
but point some moron at a restricted user shell and then watch them squirm
22:50
<@TheWatcher>
sshine: implicit deadline there ;P
22:50
<@froztbyte>
the unfortunate part is how many such morons there are
22:51
< RichyB>
Which is helpful, because it's very easy to show newbies how to use virtualenv than to show them how to set a load of environment variables manually.
22:55 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has quit [Ping timeout: 121 seconds]
22:56 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code
23:14 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
23:26 OrthiaLap [orthia@Nightstar-687cbd6a.ihug.co.nz] has joined #code
23:27 ErikMesoy is now known as ErikMesoy|sleep
23:41 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
23:41 cpux|2 [cpux@Nightstar-98762b0f.dyn.optonline.net] has joined #code
23:43 cpux [cpux@Nightstar-98762b0f.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
23:57 cpux [cpux@Nightstar-98762b0f.dyn.optonline.net] has joined #code
23:57 mode/#code [+o cpux] by ChanServ
23:59 cpux|2 [cpux@Nightstar-98762b0f.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
--- Log closed Sat Feb 02 00:00:12 2013
code logs -> 2013 -> Fri, 01 Feb 2013< code.20130131.log - code.20130202.log >

[ Latest log file ]