--- Log opened Wed Nov 19 00:00:34 2014 |
00:11 | <~Vornicus> | live updating page? grab some json periodically, glom it into the js object, rejigger appropriately. |
00:24 | <~Vornicus> | But that means that the same call can populate the page the *first* time. |
00:38 | < simon_> | Vornicus, and that's bad? |
00:46 | <@Reiv> | No, it means this is bordering on Dark Magic Of Hilarity. |
00:55 | <~Vornicus> | no, it's awesome |
00:57 | < simon_> | Vornicus, great. :) |
00:57 | < simon_> | Vornicus, it sounded awesome. |
00:58 | < simon_> | I've wanted to make web-apps like that, too. |
00:58 | < simon_> | what's your back-end? |
00:58 | < simon_> | I'm going to try this with Haskell's scotty soon. |
00:59 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
00:59 | <~Vornicus> | php with codeigniter |
01:04 | | Derakon [chriswei@Nightstar-5fqf0m.ca.comcast.net] has joined #code |
01:04 | | mode/#code [+ao Derakon Derakon] by ChanServ |
01:04 | | macdjord [macdjord@Nightstar-c0i1dq.cable.rogers.com] has quit [[NS] Quit: Tekeli-li! Tekeli-li!] |
01:04 | < simon_> | ugh, okay. |
01:07 | <~Vornicus> | Which is a damn sight better than plain php. |
01:08 | <&McMartin> | "php codeigniter" sounds like "step 1: find some php code. step 2: set it on fire" |
01:08 | <@Reiv> | wait, Vornicus works in PHP? |
01:08 | | * Reiv hisses, recoils in terror |
01:08 | <~Vornicus> | yeah, it's not pleasant, that part |
01:09 | <~Vornicus> | Fortunately, codeigniter does a lot of things pretty right |
01:09 | < simon_> | I'd get my hands dirty with PHP. but I'd want a statically typed language if I could. |
01:20 | <&Derakon> | I've worked with PHP before. I didn't really enjoy it. |
01:20 | <&Derakon> | mysql_real_escape_string() is only the start of it. |
01:20 | <&Derakon> | http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ |
01:21 | <&Derakon> | (That article has lead to me describing certain problems at work (not in PHP, thank goodness) as being fractal, as you discover new problems while working on fixing them) |
01:27 | | macdjord [macdjord@Nightstar-c0i1dq.cable.rogers.com] has joined #code |
01:27 | | mode/#code [+o macdjord] by ChanServ |
02:06 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
03:09 | <@[R]> | "Global variables need a global declaration before they can be used. This is a natural consequence of the above, so it would be perfectly reasonable, except that globals canāt even be read without an explicit declarationāPHP will quietly create a local with the same name, instead. Iām not aware of another language with similar scoping issues." |
03:10 | <@[R]> | IMO that's not really a bad thing. |
03:10 | <@[R]> | Discourages the excessive use of globals. |
03:11 | <@[R]> | "There are no references. What PHP calls references are really aliases; thereās nothing thatās a step back, like Perlās references, and thereās no pass-by-object identity like in Python." |
03:11 | <@[R]> | That's all lovely, but you haven't defined the difference between an 'alias' and a 'reference' there, so AFAICT you're just making shit up. |
03:12 | <@Reiv> | That falls into the "Will fail silently instead of complaining loudly" trap, though |
03:13 | <@[R]> | The global thing? |
03:13 | <@Reiv> | Right |
03:13 | <@[R]> | Only if you're /trying/ to access a global. |
03:13 | <@[R]> | Prevents errors when you're not trying to. |
03:14 | <@Reiv> | By overloading your variable names? |
03:14 | <@Reiv> | That does not seem the best way to prevent errors. |
03:14 | <&Derakon> | There's a reason why Perl devs are always saying "use strict". |
03:14 | <&Derakon> | So they're forced to explicitly declare the variables they use. |
03:16 | <@[R]> | JS has similar now. |
03:16 | <@[R]> | Reiv: I've had an issue in JS where I used "i" in such a way during a function call I got an infinite loop. |
03:17 | <@Reiv> | That was clever |
03:18 | <@[R]> | PHP's immune to something like that. Also from a code-readability stand-point, I like knowing what globals a function uses. |
03:19 | < Lambo> | tomorrow is going to be fun |
03:19 | <@[R]> | Basically it was something like: f1 loops: for (var i...) f2(); then f2 loops: for (i...) (Note the missing `var`) f2 and f1 somehow clobber the other's `i` repeatedly. |
03:19 | < Lambo> | gonna have to tell my boss: "Yeah.. I need to attach a memory profiling tool to a production server" |
03:19 | <@Reiv> | Lambo: What did you do |
03:19 | < Lambo> | "during production hours because fuck this memory leak |
03:19 | < Lambo> | suffering from a memory leak relating to SignalR |
03:20 | < Lambo> | causes the WebAPI hosting the SignalR hub to just stop responding for a bit |
03:20 | <@[R]> | TIL you can lazy-make objects in PHP |
03:20 | < Lambo> | and causes a 3 minute outage as it cleans up a mess |
03:20 | <&McMartin> | [R] The JS thing you describe should only trigger if f2 was defined inside f1 |
03:20 | < Lambo> | the outage is so brief that our clients haven't noticed it |
03:21 | <@[R]> | McMartin: I don't recall any specifics beyond what I mentioned. Adding the missing `var` fixed the issue. |
03:21 | <&McMartin> | It would, since that forces both to local scope. |
03:21 | <@[R]> | That was from when I was working at CCP 5ish years ago. |
03:21 | <&McMartin> | If f2 is defined in f1 though, if it doesn't find it in itself it goes to look in its defining function's scope |
03:22 | <@[R]> | Or it looks in window. |
03:22 | <&McMartin> | Which would be f1 there, because JS has lexical scoping but only at the function level, which is the problem. |
03:22 | <&McMartin> | Right, which f1 *is not stomping*, because it declares it local. |
03:22 | <&Derakon> | Even with the missing "var" you have one variable aliasing over another one in the same function, which is ugly. |
03:22 | <&McMartin> | Yeah |
03:22 | <&McMartin> | You don't want to shadow this stuff |
03:22 | <&McMartin> | Python actually explicitly forbids it |
03:23 | <&McMartin> | Which is one of the few aspects of Python that reliably pisses off both JS and Lisp hackers equally |
03:24 | <@[R]> | "include() and friends are basically Cās #include: they dump another source file into yours. There is no module system, even for PHP code." <-- TBH I prefer something like include/require over Python and Java's "can't break this file up suckers" |
03:25 | < Lambo> | "can't break this file up suckers" ? |
03:25 | < Lambo> | what do you mean by that? |
03:25 | <&McMartin> | Java does not let you define one class across multiple files. |
03:25 | < Lambo> | C# does :v |
03:26 | <&McMartin> | Python does not let you define one module across multiple files because it equates files with namespaces |
03:26 | <&Derakon> | This sounds like [R] is complaining about namespaces. |
03:26 | <&Derakon> | Which is dumb, because namespaces are awesome. |
03:26 | <@[R]> | Namespaces /are/ awesome |
03:26 | <&Derakon> | They roxxor your boxxors and if you aren't using them then your code is an unreadable mess. |
03:26 | <@[R]> | Except when they're married to the module system. |
03:26 | < Lambo> | like C#? ;p |
03:26 | < Lambo> | assemblies are awesome |
03:29 | <&McMartin> | That said |
03:29 | <&McMartin> | Lambo: How do you define a class across multiple files in C#? |
03:29 | < Lambo> | public partial class |
03:29 | <&McMartin> | Ah yes, partial |
03:29 | <@[R]> | "Most error handling is in the form of printing a line to a server log nobody reads and carrying on." <-- in modern PHP /production/ configs yes. It used to dump all errors to the client. If you don't like that, enable show_errors, geez. Guess what IIS does? |
03:30 | <&McMartin> | I believe the complaint there is "and carrying on" |
03:30 | <&McMartin> | "On Error Resume Next" is a punchline for a reason. |
03:30 | <&Derakon> | PHP is designed to try to muddle through no matter what, and produce some result even if it's wildly inadequate. |
03:30 | < Lambo> | IIS dumps it to event log, and displays the yellow screen of death |
03:30 | <&Derakon> | The usual desired behavior is "fail early, fail often", because otherwise you may not realize how badly things are broken. |
03:30 | < Lambo> | friggin uncaught exceptions |
03:30 | <@[R]> | Yeah... there's tons of ways to code in any language where the language will continue running after an error. |
03:31 | <@[R]> | Don't get why PHP's getting flak for this specifically. |
03:31 | <&Derakon> | It's a laundry list of gripes, dude. |
03:31 | <@[R]> | IIRC exceptions uncaught will stop processing. |
03:32 | <@[R]> | Yeah, but half the shit's just... personal preferences. As such it's not useful as a resource. |
03:32 | <@[R]> | :/ |
03:32 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
03:32 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
03:32 | < Lambo> | how does PHP die in an uncaught exception on a web page anyway? |
03:33 | <@[R]> | Depends on the config. But it basically boils down to it errors normally for a fatal error (IE: it stops after the error) |
03:34 | <@[R]> | This can WSoD when you've got production-style error logging. |
03:34 | < Lambo> | and will display what rendered so far, or just dump a complete stack trace and keep displaying the heavily broken page? |
03:34 | <@[R]> | The former. |
03:35 | <@[R]> | The latter means it continues processing. |
03:35 | <@[R]> | Which is what he was complaining about. |
03:35 | <@[R]> | (For other errors, like unreadable/unwritable files, dead DB connections, etc...) |
03:37 | <~Vornicus> | A lot of things that would totally crash, say, a python program do not do this in PHP |
03:37 | <~Vornicus> | This is, except in extraordinarily rare cases where a true templating engine with debug on is better, exactly wrong. |
03:38 | < Lambo> | I'd rather have a program crash completely than continue attempting to work in a broken state |
03:38 | < Lambo> | because who know what'll fuck up with the business logic :\ |
03:38 | <@[R]> | Aye, and that's fixed by coding style (just as it is in C) |
03:39 | < Lambo> | right |
03:39 | < Lambo> | but in C# for instance, if you have something fail completely and the exception is uncaught, it'll stop processing and give a nice yellow screen of death |
03:39 | < Lambo> | instead of partially working, by default |
03:40 | <@[R]> | Yes, same with PHP (RE: exceptions) |
03:40 | <~Vornicus> | Like, undefined variable? undefined object member or array index? PHP notice. |
03:40 | <@[R]> | Actually I'm pretty sure all languages stop on uncaught exceptions. |
03:40 | <~Vornicus> | Not a showstopper. |
03:40 | <@[R]> | JS and Perl (without strict mode) will do the same. |
03:41 | < Lambo> | Vornicus, in C#? won't even compile |
03:41 | <@[R]> | PHP actually needs a strict mode. |
03:41 | <@[R]> | Lambo: yes, that's the difference between compiled and interpreted languages. |
03:41 | < Lambo> | [R] but good luck getting people to actually use it |
03:41 | <@[R]> | Lambo: because no-one uses the JS or Perl strict modes... |
03:42 | < Lambo> | eh, I don't use those languages, so no idea |
03:44 | <@[R]> | Actually, I wonder if it does (E_STRICT) |
03:45 | <@[R]> | ... |
03:45 | <@[R]> | WTF PHP |
03:45 | <@[R]> | E_STRICT is "warn of deprecation" |
03:45 | < Lambo> | what did you just discover? |
03:45 | < Lambo> | hah |
03:46 | <@[R]> | It's also introduced in PHP 5, but not part of E_ALL until PHP 5.4 |
03:49 | <@[R]> | Both 5.3 and 5.4 seem to remove a bunch of idiot edge cases. |
03:49 | <~Vornicus> | 5.4 is impressive because for hte first time you can do foo()[1] |
03:49 | <@[R]> | 5.3 introduced the function that let you get json parse errors. 5.2 introduced json parsing. |
03:49 | <@[R]> | Aye. |
03:50 | <@[R]> | PHP is /getting/ less shitty. But old PHP is definately shit. |
03:51 | <~Vornicus> | That it took 17 years to get indexing arrays returned from functions is mindboggling to me. |
03:51 | <&McMartin> | Oh, I think I realized what the alias-reference thing must be, but I don't actually believe what it would imply without confirmation. |
03:51 | <~Vornicus> | McM: ?? |
03:51 | <&McMartin> | He's saying references (that is, pointers that you can't do arithmetic to) aren't first-class values |
03:51 | <@[R]> | Vornicus: one of my earlier quotes from the big list |
03:51 | <&McMartin> | The way they can be in C++ or Perl |
03:51 | <&McMartin> | The thing is, he also says the Python trick doesn't work. |
03:52 | <~Vornicus> | Oh, in that vein, something I had to do today that really got my goat |
03:52 | <&McMartin> | If the Python trick doesn't work, that would mean that PHP could not write functions that modified compound values (structs, records, objects, w/e) in ways that the caller could see and rely on - that mutators cannot exist |
03:52 | <&McMartin> | I don't think I believe that you can't write mutators in PHP. |
03:52 | <~Vornicus> | for ($shoes as &$shoe) { ...modify $shoe... } |
03:52 | <&McMartin> | If you can't, that's pretty much GG for being an imperative language, though. |
03:52 | <@[R]> | foreach* |
03:53 | <@[R]> | IIRC there's an array_map()? |
03:53 | <~Vornicus> | that. IRC is not a decent text editor and will not yell at me when I write syntax errors. |
03:53 | <~Vornicus> | There is. This isn't array_map though |
03:54 | <~Vornicus> | (I'm not processing each element and returning a new array; I'm changing the array elements in place) |
03:55 | <@[R]> | Eh, used to JS where I'll just map over an array and reassign it. |
03:56 | <@[R]> | array_walk is an in-place alternative. |
03:58 | < Lambo> | hrmp |
03:59 | < Lambo> | honestly tempted to write a SignalR ScaleoutMessageBus that uses IRC as the transport |
03:59 | <@Reiv> | why on earth |
03:59 | <@[R]> | What is SignalR? |
03:59 | < Lambo> | the .NET version if socket.io |
04:00 | < Lambo> | <@Reiv> why on earth <--- why not? it'd be a hilariously simple project |
04:01 | <@[R]> | "Classes are not objects. Any metaprogramming has to refer to them by string name, just like functions." wat |
04:02 | <~Vornicus> | Persoanlly if I got to pick the tech for this project it'd have been Python. |
04:02 | <~Vornicus> | And a real template engine, though even that would get only sparing use. |
04:03 | <@[R]> | I don't mind PHP, it's not my first pick. But I will murder anyone that makes me work with older versions of it. |
04:03 | | * Lambo forces [R] to work with PHP 4 |
04:04 | | * [R] introduces Lambo's cavities to Pavlov the chainsaw. |
04:04 | < Lambo> | ! |
04:04 | | * Lambo forces [R] to code in VBA for Access 2002 |
04:04 | <~Vornicus> | (because JSON is so drastically better...) |
04:05 | <@[R]> | Vornicus: ? |
04:07 | <@[R]> | "PHP has first-class support for āabstract classesā, which are classes that cannot be instantiated. Code in similar languages achieves this by throwing an exception in the constructor." <-- Uhh... so does Java. What's your point? |
04:08 | <~Vornicus> | [R]: I'm doing a big awesome crazy project at work and I keep discovering that it's a whole lot easier to build the web page nearly static and then having the actual content come in via ajax (ajaj?) calls. |
04:09 | < Lambo> | ajax? |
04:09 | | * Lambo flashes back to dealing with UpdateFrames and viewstates that are 1MB in size |
04:09 | <&Derakon> | Asynchronous javascript and XML. |
04:09 | <@[R]> | Vornicus: Yeah, that's kind of what we did at CCP with the giant PHP/JS project. |
04:09 | <&Derakon> | But otherwise known as dynamic partial page refreshes. |
04:09 | <@[R]> | Except we used a mix of what ExtJS expected and JSON-RPC 2.0 |
04:09 | < Lambo> | Derakon, I know what ajax is ;p |
04:10 | < Lambo> | I just have bad experience with it down shittilu |
04:10 | < Lambo> | shittily |
04:14 | <@[R]> | "Classes can overload how they convert to strings and how they act when called, but not how they convert to numbers or any other builtin type." <-- uhh... only C++ does that AFAIK. You've been bitching about C++... |
04:14 | < Lambo> | what are you reading? |
04:15 | <&Derakon> | Python has __nonzero__ and (in Python 3) __bool__. |
04:15 | <&Derakon> | AFAIK there's no "convert to number" though. |
04:15 | <@[R]> | "There is no overloading for equality or ordering." <-- see above. |
04:15 | <@[R]> | Lambo: big list of PHP issues. |
04:15 | <&Derakon> | __cmp__ |
04:15 | <&Derakon> | Also __le__ and __ge__, if I recall correctly. |
04:16 | <~Vornicus> | eq ne ge le lt gt |
04:16 | <&Derakon> | There's a lot of "hidden" Python class functions. |
04:16 | <@[R]> | So Python and C++ |
04:16 | <&Derakon> | Thanks, Vorn. |
04:16 | < Lambo> | you can define explicit and implicit conversions in C# |
04:16 | < Lambo> | as overloads |
04:16 | <~Vornicus> | I believe that I have, at varying times, implemented every single __function__ in python except __new__ |
04:17 | <&Derakon> | Including __call__? |
04:17 | <~Vornicus> | Yep. |
04:17 | <@[R]> | ... why does PHP have a standard rot13 function? |
04:17 | < Lambo> | I've written my own version of ExpandoObject, does that count? |
04:18 | <@[R]> | "Prefix confusion: usleep versus microtime" <-- isn't that from C? |
04:20 | < Lambo> | PHP is a thin slightly confused wrapper over C :\ |
04:20 | < Lambo> | eg fopen |
04:21 | <~Vornicus> | Oh, I haven't used __instancecheck__, __subclasscheck__, __enter__, or __exit__, either. |
04:24 | <~Vornicus> | I've used __getindex__ and __call__ on the same object, even (it was a polynomial class; __getindex__ gave you coefficients; __call__ evaluated) |
04:33 | <@[R]> | "0x0+2 produces 4. The parser considers the 2 as both part of the hex literal and a separate decimal literal, treating this as 0x002 + 2. 0x0+0x2 displays the same problem. Strangely, 0x0 +2 is still 4, but 0x0+ 2 is correctly 2. (This is fixed in PHP 5.4. But itās also re-broken in PHP 5.4, with the new 0b literal prefix: 0b0+1 produces 2.)" |
04:33 | <@[R]> | ... that's ... that's actually horrifying. |
04:33 | <@[R]> | "There is no exponentiation operator, only the pow function." <-- this comes /after/ bitching about having too many operators? |
04:33 | <&McMartin> | Combined with the thing about only in 5.4 gettin garound to f()[1] being legal |
04:34 | <&McMartin> | I get the impression that PHP doesn't have a notion of "expression" |
04:34 | <&McMartin> | That's a bigger wat than the 0x0+2=4 thing. |
04:35 | <&McMartin> | (that is, its parser is not defined in terms of something like expr <- expr + expr | expr - expr | identifier(expr [, expr, ...]) | ... |
04:35 | <@[R]> | Considering the project started out as a template engine, I wouldn't be surprised if the parser was beyond retarded. |
04:35 | <&McMartin> | Yeah, but, um |
04:35 | <&McMartin> | Not being properly recursive puts you behind COBOL and the 8-bit BASICs -_- |
04:35 | <@[R]> | Heh |
04:36 | | * [R] wonders how well the other PHP engines fare in that regard. |
04:36 | <&McMartin> | (That said, the 8-bit BASICs did a shitload of stuff nobody bothered to think about while playing with it as kids) |
04:36 | <~Vornicus> | cbm basic is kind of an impressive language |
04:37 | <&McMartin> | Yeah, but, frex, all the BASICs were garbage collected |
04:37 | <&McMartin> | Most of them had to do software floating point |
04:37 | <&Derakon> | Wait, garbage collected? |
04:37 | <&Derakon> | How would they know if a variable was no longer used? |
04:37 | <&Derakon> | I didn't think they had any conception of scope. |
04:38 | <&McMartin> | Have you looked at the semantics of BASIC's string functions recently? |
04:38 | <&McMartin> | They're full of freshly generated temporary values that you can use in other functions and forget about, and string variables can be reassigned at will, which would otherwise leak the old value |
04:38 | <~Vornicus> | I can't say I've had a need to |
04:38 | <&Derakon> | I haven't looked at BASIC since the C64, and then only briefly because I was, like, seven. |
04:39 | <&McMartin> | Yeah, OK, so |
04:39 | <~Vornicus> | (last time I actually wrote anything in basic was literally two decades ago, and I certainly didn't know jack about what I was doing) |
04:39 | <&McMartin> | Implemented naively, A$ = MID$(RIGHT$(B$, 6), 3) would leak the result of RIGHT$ |
04:39 | <&McMartin> | String space is kept minimal with a stop-and-copy garbage collector |
04:40 | <~Vornicus> | Okay I'm officially impressed |
04:41 | <~Vornicus> | (It also didn't actually occur to me that you could *do* that in c64 basic, but of course you can) |
04:41 | <&McMartin> | Basically, every string in a BASIC program is a heap object on a garbage-collected heap, and string variables are references to them. The semantics of the language means aliasing is impossible |
04:41 | <&McMartin> | So a GC isn't *hard* and AFAIK every BASIC ever published GCs the string space. |
04:44 | <~Vornicus> | I always forget how old some of our technologies actually are |
04:45 | <&Derakon> | Remember, Lisp did it first~ |
04:45 | <&Derakon> | For all values of "it". |
04:45 | <~Vornicus> | (granted, stopncopy is pretty terrible, but it was BASIC on a 64k machine) |
04:47 | <@[R]> | "Imagine you have a file upload form that dumps files into some public directory. To make sure nobody uploads PHP files, you just check that they donāt have a .php extension. All an attacker has to do is upload a file named foo.php.txt; your uploader wonāt see a problem, but Apache will recognize it as PHP, and it will happily execute." |
04:48 | <@[R]> | ... I was wondering why there were so many LAMP attacks |
04:49 | <~Vornicus> | Yeah, welcome to Hell. |
04:49 | <~Vornicus> | ( http://imgur.com/gallery/gPBuAgl ) |
04:50 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
04:51 | <@[R]> | "The original built-in MySQL bindings, still widely-used, have no way to create prepared statements." Which is one of the reasons they're deprecated... |
04:54 | <@[R]> | "More recently, PHP 5.3.7 managed to include a crypt() function that would, in effect, let anyone log in with any password." <-- if you're using a function named crypt() you need to be fucking neutered, spaded, then shot. |
04:55 | <@[R]> | "PHP 5.4ās dev server is vulnerable to a denial of service, because it takes the Content-Length header (which anyone can set to anything) and tries to allocate that much memory. This is a bad idea." <-- D: |
04:56 | <&McMartin> | Meanwhile it looks like if I want to play with HLLs on 8-bit micros, I should be learning Forth |
04:59 | <&Derakon> | [R]: the fact that the PHP API includes these functions that, if your code uses them, Your Code Has A Bug, is a problem with the language. |
04:59 | <&Derakon> | Backwards compatibility or no. |
05:01 | <@[R]> | Derakon: which functions? The deprecated ones? |
05:02 | <&Derakon> | And crypt(), where you claim it's on the caller to never use the function. |
05:02 | <@[R]> | Which are deprecated. And red. With big red banners. Banners that tell twats to look elsewhere? |
05:02 | <@[R]> | Adding crypt() is a WTF |
05:02 | <@[R]> | Just flat out. |
05:03 | <@[R]> | If you are calling that function in modern code, you seriously need to be neutered, spaded and shot as mentioned before. |
05:06 | <@[R]> | Ah, they just broke it in PHP 5 |
05:19 | | Derakon is now known as Derakon[AFK] |
05:30 | | himi [fow035@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds] |
05:34 | | Harlow [harlow@Nightstar-pq0497.il.comcast.net] has joined #code |
05:35 | < Harlow> | would you ever date a programmer, I'm just looking for a general opinion, also if you could include one example of why or why not that would be cool |
05:37 | <@[R]> | I am guessing you're a lady? |
05:38 | < Harlow> | no I'm a guy |
05:38 | < Harlow> | who will potentially be in a relation ship with a girl programmer. |
05:38 | <@[R]> | A lady that's into tech would be awesome. |
05:39 | < Harlow> | yeah thats what i would think, but really has anyone had experience in this? |
05:39 | <@[R]> | Same reason that guys who love sports fantasize about ladies who like sports. |
05:41 | <@[R]> | General note: you want to be dating someone who can be your best friend. |
05:41 | | macdjord [macdjord@Nightstar-c0i1dq.cable.rogers.com] has quit [[NS] Quit: Tekeli-li! Tekeli-li!] |
05:43 | < Harlow> | EHHH idk |
05:55 | | Reiv_ [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has joined #code |
05:59 | | Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
06:03 | | macdjord [macdjord@Nightstar-c0i1dq.cable.rogers.com] has joined #code |
06:03 | | mode/#code [+o macdjord] by ChanServ |
06:13 | < Harlow> | [R] do you have experience in R? |
06:17 | <&jeroud> | Harlow: Having something nontrivial in common is good. Having that as the only thing you're interested in is rather less good. |
06:19 | <&jeroud> | Basically, if you'd consider dating her if she weren't a programmer, go for it. If not, maybe look at your motives. |
06:19 | <@[R]> | No. |
06:20 | < Harlow> | jeroud, she's coming onto me, so ill need to figure out if there are other things we have in common. |
06:20 | <&jeroud> | That said, I've had exactly one real relationship (of the romantic sort) in my life and Bunnee is not a programmer. |
06:22 | <&jeroud> | Harlow: I don't see any particular reason not to date someone just because they write software. |
06:23 | <&jeroud> | It's different if you're after someone just because they can. |
06:47 | | Kindamoody[zZz] is now known as Kindamoody |
06:58 | <@Alek> | can't help ya, I'm afraid. :/ |
06:59 | < Harlow> | lol |
07:01 | <@Alek> | I'm a Virgin-class. no relationships to speak of, barring 2 failed LDRs. well, I'm currently trying one more, and I REALLY hope this one works, because dude, I'd be a demigod among men if so. but she's not a programmer. |
07:03 | <@Julius> | Are you a wizard? |
07:34 | < Harlow> | Alex what is an LDR? |
07:35 | <@Julius> | Long-Distance Relationship, I presume. |
07:41 | | AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has joined #code |
08:08 | | celticminstrel [celticminst@Nightstar-l2rg83.dsl.bell.ca] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
08:37 | | Harlow [harlow@Nightstar-pq0497.il.comcast.net] has quit [[NS] Quit: BED] |
08:44 | | Kindamoody is now known as Kindamoody|afk |
09:54 | | AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has quit [[NS] Quit: Leaving] |
10:53 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
10:53 | | mode/#code [+o Checkmate] by ChanServ |
10:58 | <@Tarinaky> | Having recently acquired a partner, I have to say that having someone who doesn't mind and even enjoys cleaning/house-work is much more awesome than them being a programmer. |
11:00 | | * Tarinaky has lucked the fuck out >.> |
11:04 | | Syka [the@Nightstar-c409v3.vividwireless.net.au] has quit [Ping timeout: 121 seconds] |
11:05 | | Syka [the@Nightstar-c409v3.vividwireless.net.au] has joined #code |
11:46 | | Thalass|afk is now known as Thalass |
11:46 | | mode/#code [+o Thalass] by ChanServ |
12:11 | | Orthia [orthianz@Nightstar-l1v.u1l.224.119.IP] has quit [Ping timeout: 121 seconds] |
12:16 | | Orthia [orthianz@Nightstar-t83.60m.184.203.IP] has joined #code |
12:16 | | mode/#code [+o Orthia] by ChanServ |
12:29 | <@Tarinaky> | [R]: You around? |
12:31 | | Thalass is now known as Thalass|afk |
12:46 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Connection reset by peer] |
12:47 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
12:47 | | mode/#code [+o Checkmate] by ChanServ |
14:20 | <@Tarinaky> | Reasons I should not be an IT professional: I just accidentally a flamewar with my project manager about Visual Studio and exception handling in the C-subset. |
14:21 | | * Tarinaky facepalms. |
14:21 | <@Tarinaky> | I swear I'm a nice person. |
14:22 | <@Julius> | I don't see the specific relevance of being inflammatory to IT work. Doesn't that apply to just about everything? |
14:23 | <@Tarinaky> | I'd probably find it harder to be misconstrued as 'tool bashing' if I say something about the standards supported by a cement mixer. |
14:25 | <@Julius> | Possible. |
14:25 | <@Azash> | A coworker gave me great advice once |
14:26 | <@Azash> | When talking to whoever is responsible for a thing |
14:26 | <@Azash> | Be as specific and narrow in scope as possible when berating said thing |
14:31 | | celticminstrel [celticminst@Nightstar-l2rg83.dsl.bell.ca] has joined #code |
14:31 | | mode/#code [+o celticminstrel] by ChanServ |
14:43 | <@[R]> | Tarinaky: hey |
14:58 | <@Tarinaky> | [R]: Well. I thought girlfriend was going to swing by... Maybe she will this evening. |
14:58 | | * Tarinaky shrugs. Sorry. |
14:58 | <@Tarinaky> | I can only tell her to talk to you... I can't make her do it >.< |
15:26 | <@Azash> | Why is wkhtmltopdf so shit |
15:26 | <@Azash> | Tell it to generate a pdf |
15:26 | <@Azash> | pdf isn't there |
15:26 | <@Azash> | Exit code 0 |
15:26 | <@Azash> | No output |
15:26 | | * iospace makes Azash use ant |
15:27 | <@Azash> | The only technology I use with ant is raid |
15:47 | | Thalass|afk [thalass@Nightstar-bakqqn.bigpond.net.au] has quit [[NS] Quit: Leaving] |
16:17 | <@Tamber> | ...in a spray can? |
16:17 | <@Tamber> | :) |
16:35 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [[NS] Quit: If I had a world of my own, everything would be nonsense. Nothing would be what it is because everything would be what it isn't. And contrary-wise; what it is it wouldn't be, and what it wouldn't be, it would. You see?] |
16:41 | <@Azash> | Tamber: That's the joke yeah |
17:03 | | Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has joined #code |
17:03 | | mode/#code [+o Checkmate] by ChanServ |
17:05 | | Red_Queen [Z@Nightstar-ev6.6um.94.83.IP] has joined #code |
17:05 | | mode/#code [+o Red_Queen] by ChanServ |
17:07 | | Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has quit [Ping timeout: 121 seconds] |
17:30 | <@Tarinaky> | Does anyone here have any experience with Nuitka? |
17:49 | | Red_Queen [Z@Nightstar-ev6.6um.94.83.IP] has quit [Ping timeout: 121 seconds] |
17:57 | <@Alek> | Taki: as long as they're not a clean freak. a slob living with a clean freak is NOT likely to last long. it takes a miracle. |
17:57 | <@Tarinaky> | Alek: She's not as far as I can tell. o.o |
17:58 | <@Alek> | well, that's good. |
17:58 | <@Alek> | lucky sob. |
17:58 | | * Alek is very very hopeful he doesn't screw this one up... but she's been MIA since mid-weekend. :( |
17:59 | | Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has joined #code |
17:59 | | mode/#code [+o Checkmate] by ChanServ |
18:18 | <@Tarinaky> | I'm trying to get a simple hello world program to compile under nuitka on Windows. Visual Studio 12.0 is installed. |
18:18 | <@Tarinaky> | https://gist.github.com/Tarinaky/1a4406f3c4db5769fbad |
18:19 | <@Tarinaky> | Obviously, it's not finding some include files: and I have no idea how to make it find them. |
18:20 | <@Tarinaky> | As you'll note despite the .pyx extension hw.pyx is still a trivial and valid python3 program. |
18:42 | | Kindamoody|afk is now known as Kindamoody |
18:47 | | * Azash finds out that ArnoldC was written by one of his coworkers |
18:59 | <@Tarinaky> | http://usvsth3m.com/post/barbie-tries-to-show-girls-that-they-can-be-computer-pr ogrammers-ends-up-more-sexist-than-ever |
18:59 | <@Tarinaky> | Everything is aweful today |
19:00 | <&McMartin> | That hit my other network the other day |
19:00 | <&McMartin> | The accidental moral is that a sure path to success is to dodge blame for all your failures and take credit for the hard work of your loyal underlings |
19:08 | | * Azash considers writing a JavaScript AST parser in Ruby |
19:14 | <@Azash> | I don't have very fond memories of the ECMAScript standard but oh well |
20:18 | | gnolam_ [lenin@Nightstar-utbkuh.cust.bredbandsbolaget.se] has joined #code |
20:18 | | gnolam [lenin@Nightstar-utbkuh.cust.bredbandsbolaget.se] has quit [NickServ (RECOVER command used by gnolam_)] |
20:18 | | gnolam_ is now known as gnolam |
20:18 | | mode/#code [+o gnolam] by ChanServ |
20:21 | | Vorntastic [Vorn@Nightstar-k70f1n.ct.comcast.net] has joined #code |
20:35 | < Vorntastic> | Programmers and sysadmins! I have a puzzlement about cdns and user-provided images. Images get uploaded via a standard form to the webserver, which then passes the image over to the cdn. However, the images I send get cropped and resized and put in other places on the cdn. |
20:38 | < Vorntastic> | How do I ensure that by the time the cropped and resized image is needed (which is pdq), it's done? |
20:39 | <&jerith> | Vorntastic: Do you always need the cropped images or can you generate them on demand? |
20:39 | < Vorntastic> | It takes an age to generate so I must keep them. |
20:39 | <&jerith> | Also, are you pushing them to the CDN or is it pulling and caching them when necessary? |
20:40 | < Vorntastic> | Pushing. |
20:40 | <@froztbyte> | cdns or CDNs? |
20:41 | <&jerith> | What order of magnitude is "an age"? |
20:41 | <&jerith> | Seconds? Minutes? Hours? |
20:42 | <@froztbyte> | typically people are implementing that as a multi-stage thing |
20:43 | < Vorntastic> | Last I checked half a second or so for the sizes I had started with. |
20:43 | < Vorntastic> | Per image per size. |
20:43 | <@froztbyte> | "try the CDN first", with a "cache miss" treated as "okay, need to $x" (which in this case would mean "generate it") |
20:44 | <@froztbyte> | https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Beaver.pdf might potentially be interesting for you |
20:44 | <@froztbyte> | it's an overview of facebook's multi-tier approach to hitting haystack and CDNs and such (for the purposes of static content) |
20:45 | <&jerith> | Vorntastic: Can you generate all the required images in parallel? |
20:46 | <&jerith> | If so, building that into the "accept upload" process isn't entirely unreasonable. |
20:46 | < Vorntastic> | sure, they don't depend on each other. |
20:47 | < Vorntastic> | Getting actually parallel via programming may be harder. |
20:47 | <&jerith> | If it's okay for the generated images to show up a little later, you might be better off dumping tasks into a queue for background workers to deal with. |
20:49 | < Vorntastic> | In my case the images have at least one that must exist immediately upon upload completion. |
20:49 | <&jerith> | That assumes that you either have or can set up a suitable task processor. |
20:50 | <&jerith> | If it's only one, you can inline that in the upload process and background the rest. |
20:51 | <&jerith> | ... it's almost 11pm. I must find some lunch. |
20:51 | < Vorntastic> | hahaha |
20:53 | <&jerith> | Are you laughing at my hunger? :-( |
20:53 | <&jerith> | All the good lunch places are closed. |
20:53 | < Vorntastic> | I'm laughing at your definition of lunch. |
20:54 | <&jerith> | "Second meal of the day." |
20:54 | < Vorntastic> | ...it just occurred to me that you did aws madness. |
20:55 | <&jerith> | If by "did AWS madness" you mean "built EC2", then yes. |
20:55 | <@Tamber> | :) |
20:56 | < Vorntastic> | Yeah. So coming on here was probably a good idea... |
21:06 | <&jeroud> | I actually think building vumi is more interesting than building EC2. |
21:09 | < Vorntastic> | Vumi has struck me as ana amazing project. |
21:09 | <&jeroud> | It is. |
21:10 | <&jeroud> | And we've done some really amazing things with it. |
21:11 | <&jeroud> | Most of my current problems are being caused by UNICEF sending tens of thousands of ebola-related messages several times a week. |
21:11 | <@TheWatcher> | >.< |
21:11 | < Vorntastic> | man. |
21:12 | <@Julius> | They should take a card from President Madagascar's playbook, and SHUT DOWN EVERYTHING. |
21:12 | <&jeroud> | There are customers you can turn off when they overload your system, and there are customers you can't. |
21:12 | <&jeroud> | We have a lot of the latter. |
21:14 | | Alek [omegaboot@Nightstar-c8t.a00.36.73.IP] has quit [Ping timeout: 121 seconds] |
21:16 | <&jeroud> | (I used to spam Nigerians for beer marketing. Now I make it possible for other people to spam Nigerians on a rather grander scale for rather more useful things.) |
21:28 | | Alek [omegaboot@Nightstar-c8t.a00.36.73.IP] has joined #code |
21:28 | | mode/#code [+o Alek] by ChanServ |
21:37 | < Reiv_> | beer marketing, eh |
21:38 | | Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has quit [Ping timeout: 121 seconds] |
21:39 | <&jeroud> | Yeah. Guinness used to be a client. |
21:39 | < Reiv_> | haha |
21:39 | < Reiv_> | Is UNICEF overwhelming the system? |
21:40 | | * Reiv_ muses curiously. Are you deliberately avoiding using Broadcast Mode, or? |
21:44 | <&jeroud> | Broadcast Mode? |
21:47 | | * Lambo hugs AWS |
21:49 | <&jeroud> | They're not really overwhelming us at the moment. They are, however, increasing the latency of all outbound messages enough to make USSD sessions time out. |
21:49 | < Reiv_> | jeroud: The "Fuck it, we're texting everyone within range of this tower" mode |
21:50 | <&jeroud> | We don't have that kind of access. |
21:51 | <&jeroud> | Also, this is opt-in stuff. |
21:51 | < Reiv_> | aah, righto |
21:51 | < Reiv_> | The use of such kit is, oddly enough, pretty heavily regulated. |
21:52 | < Reiv_> | I think NZ is only actually in the "Maybe we'll make it allowed for emergency services" stage. |
21:52 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
21:52 | | mode/#code [+o Checkmate] by ChanServ |
21:52 | <@Alek> | 192.168.1.1: gateway. 192.168.1.145,214,123,11: some of the addresses. 192.168.1.0: hostmask. 192.168.1.255: broadcast to all of the addresses on the network. that's how I recall it, but I may be wrong. there should also be a multicast mode, like broadcast but only a defined subset, but I didn't get that far. |
21:58 | <&jerith> | Alek: This is SMS, not IP. |
22:02 | | Orth [orthianz@Nightstar-guubpc.callplus.net.nz] has joined #code |
22:03 | | Kindamoody is now known as Kindamoody[zZz] |
22:03 | | Orthia [orthianz@Nightstar-t83.60m.184.203.IP] has quit [Ping timeout: 121 seconds] |
22:05 | | Reiv_ is now known as Reiv |
22:11 | <@froztbyte> | AWS is at least 1/3 the problem in any issues in the current vumi scenario, I'd say :D |
22:12 | <&McMartin> | Hrm |
22:12 | <@froztbyte> | jerith: I got some mail, are things happening atm? |
22:12 | <&McMartin> | EC2 talks a lot about virtualization types but they don't really say if they're using any particular virtualizers |
22:12 | <@froztbyte> | I didn't try to read them |
22:12 | <@froztbyte> | Sentry is kak to read on my phone |
22:12 | <@froztbyte> | McMartin: pretty much xen almost everywhere |
22:12 | <&jerith> | McMartin: Back in my day it was all xen. |
22:13 | <&jerith> | I think there's some vmware for some stuff. Maybe Windows things? |
22:13 | <@froztbyte> | You *can* get different builds but you need some very particular setups |
22:15 | <@Alek> | jerith: fair nuff |
22:15 | | * McMartin nods |
22:17 | <@froztbyte> | I think some of the very big build types may also very |
22:17 | <@froztbyte> | But iirc you don't get those "by default" |
22:18 | <@froztbyte> | http://aws.amazon.com/hpc/ |
22:22 | | * McMartin nods |
22:25 | <@froztbyte> | Vary* |
22:25 | <@froztbyte> | SwiftKey considered harmful |
22:25 | < Reiv> | pft what |
22:25 | <&jerith> | Less harmful than BASIC.~ |
22:25 | < Reiv> | Aside: Goddamn google, why must you break products that worked nicely |
22:26 | < Reiv> | I updated my phone. Couple new UI bits that are nice, especially the quick settings menu. |
22:26 | < Reiv> | ... that someone decided that Windows Metro was the flavor of the month, and decided that the differentiation would be cartoony icons and NEON EVERYTHING... less so. |
22:29 | <&McMartin> | Oh man |
22:29 | <&McMartin> | A friend was showing me that |
22:29 | <&McMartin> | I'm OK with most of it |
22:29 | <@gnolam> | https://pbs.twimg.com/media/B20bzgfCcAAPJM_.png |
22:29 | <&McMartin> | But the softkey buttons |
22:29 | <&McMartin> | Wat |
22:29 | <&McMartin> | Reverse Play, Record, and... maximize? |
22:30 | | Vornlicious [Vorn@Nightstar-2q638n.sub-70-215-26.myvzw.com] has joined #code |
22:32 | | Vorntastic [Vorn@Nightstar-k70f1n.ct.comcast.net] has quit [Ping timeout: 121 seconds] |
23:00 | | Orth is now known as Orthia |
23:00 | | mode/#code [+o Orthia] by ChanServ |
23:06 | <&ToxicFrog> | McMartin: er? square is and ever has been stop. |
23:07 | <&McMartin> | Ah yes. |
23:07 | <&McMartin> | Reverse Play, Record, and Stop. |
23:07 | <&McMartin> | That would be Back/Home/Taskswitch. |
23:07 | <&McMartin> | My Android phone is actually an HTC so by the time I get Lollipop I expect it to be completely unrecognizable. |
23:08 | <&ToxicFrog> | Mine is stuck on 4.2 and will be until the end of time |
23:08 | <&ToxicFrog> | Because the manufacturer of some critical hardware in it fucked off right out of the hardware business without releasing the source for the drivers |
23:10 | < Vornlicious> | I would like to upgrade my phone. I discovered the other day that, uh, the picker for <input type=file> is not merely separate from the browser but kicks the browser out of active tasks... so when I'm done the browser reloads the page and doesn't know what file I picked. |
23:11 | <&McMartin> | Brilliant |
23:11 | < Vornlicious> | Brillant, more like. |
23:22 | | himi [fow035@Nightstar-dm0.2ni.203.150.IP] has joined #code |
23:22 | | mode/#code [+o himi] by ChanServ |
23:22 | < Reiv> | I love how square is stop got into Xwing |
23:22 | < Reiv> | Where it is called 'stall' |
23:22 | < Reiv> | but it's still a square |
23:22 | < Reiv> | And the moment you look at the dial, everyone is "Wait, the thing can stay still?" |
23:23 | <&McMartin> | The best part is that IIRC it's a stressful maneuver |
23:23 | <&McMartin> | Which means that you can't do it twice in a row. |
23:24 | <&McMartin> | Also my mental image of hitting it is exactly the emergency stop sequence from Spaceballs |
23:32 | < Reiv> | oh ho ho ho ho |
23:32 | < Reiv> | You cannot do it twice in a row? |
23:33 | < Reiv> | My friend, let me introduce you to Wingman. An elite upgrade that lets you remove stress tokens from friendly ships. ^.^ |
23:33 | | Vorntastic [Vorn@Nightstar-uen1kh.ct.comcast.net] has joined #code |
23:34 | < Reiv> | Put it on something with barrel roll. Have it do a gentle or tight 1 turn, the barrel roll backwards. This puts it pretty much back where it started. >_> |
23:34 | < Reiv> | Now you can have a pair of ships sit pretty much in a corner up until you tell them to cut that shit out and get on with things~ |
23:37 | | Vornlicious [Vorn@Nightstar-2q638n.sub-70-215-26.myvzw.com] has quit [Ping timeout: 121 seconds] |
23:37 | | Vorntastic [Vorn@Nightstar-uen1kh.ct.comcast.net] has quit [[NS] Quit: Bye] |
23:38 | | * TheWatcher readsup |
23:39 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
23:39 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
23:40 | <@TheWatcher> | That barbie programmer thing? Currently causing a huge pile of WTF and "And people wonder why there are almost bugger all women in CS" on the allstaff list in work. I'm just over here headshaking at it all |
23:40 | < Reiv> | barbie programmer wut |
23:40 | <~Vornicus> | yeah I heard about that |
23:41 | <~Vornicus> | Reiv: there was a book about Barbie being a computer programmer |
23:41 | < Reiv> | right |
23:41 | <@TheWatcher> | http://gizmodo.com/barbie-f-cks-it-up-again-1660326671 |
23:41 | <~Vornicus> | she was 100% imncompetent at computer tasks and... |
23:41 | <~Vornicus> | well... gizmodo covers it pretty well. |
23:42 | <@TheWatcher> | (and yes it is a real book) |
23:45 | <@TheWatcher> | (Said discussion in work has also sidetracked into frothing over the fact that the lego female scientist range was a limited edition that sold out instantly) |
23:54 | | * Reiv blink |
23:54 | < Reiv> | Why did they make girl scientists a limited edition :( |
--- Log closed Thu Nov 20 00:00:42 2014 |