--- 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 |