Automatic commit of irc logs
[ipdf/documents.git] / irc / #ipdf.log
index 88b0308..55ee202 100644 (file)
 00:20 <@matches> I only saw it because it is also outside an #ifdef and raises an "unused label" warning
 00:20 <@matches> How many others are there...
 00:24 <@matches> There is also a goto in stb_truetype.h but I'll let that one slide since sulix didn't write it
+10:01 < sulix> Gah: runs fine, no warnings in valgrind, crashed with memory corruption errors outside of valgrind.
+10:02 < sulix> This is clearly karmic retribution for the goto.
+10:25 <@matches> Ah
+10:25 <@matches> Are you compiling with or without the quadtree?
+10:25 <@matches> Because I set the VReal and PReal typedef to ParanoidNumber
+10:26 <@matches> Running in valgrind ParanoidNumber is equivelant to a double since the FE_INEXACT exception isn't raised
+10:26 <@matches> Running outside of valgrind... anything could happen
+11:31 <@matches> One does not simply compile with MinGW and have things actually work
+11:32 <@matches> Wine likes it
+11:32 <@matches> Actual windows seems to have some difficulty with OpenGL functions
+11:32 <@matches> Also thank goodness for gdb compiled for windows
+11:33 <@matches> Because "ipdf.exe has experienced an error, would you like to send Microsoft a report?"
+11:33 <@matches> Is really not helpful
+11:33 <@matches> Command prompt won't even tell you "Segmentation fault"
+11:39 <@matches> Hmm, needs more "-lopengl32" ?
+11:39 <@matches> But why weren't there "undefined reference" errors
+11:39 <@matches> So confuzled
+11:40 <@matches> I bet even if it runs it won't work due to geometry shaders or something
+11:49 <@matches> Oh dear
+11:49 <@matches> This is to do with the several thousand lines of autogenerated stuff in gl_core44.*
+11:50 <@matches> Isn't this what GLEW was supposed to be for
+11:50 <@matches> Except GLEW is ancient so nobody uses it
+11:50 <@matches> Shouldn't someone reinvent a less shitty GLEW then
+11:50 < sulix> Apparently glew works again.
+11:50 <@matches> Ah
+11:51 < sulix> I did get glew working under mingw32 yesterday, as it happens.
+11:51 <@matches> Commit please?
+11:51 <@matches> Oh right for something else :P
+11:51 <@matches> What magical incantations are required
+11:51 < sulix> Yeah. And by working, I mean compiling, not running.
+11:51 <@matches> Baha
+11:52 < sulix> (Though I think it was another bit of the code that segfaulted)
+11:52 <@matches> Why is getting OpenGL working so horrifying
+11:52 <@matches> It's supposed to be a standard
+11:52 < sulix> So the gl_core44.* file was supposed to be basically glew, but hooked into SDL.
+11:52 <@matches> It's not working on Windows though
+11:53 < sulix> Do you have OpenGL drivers on windows?
+11:53 < sulix> They're not installed by default.
+11:53 <@matches> Yeah on my desktop
+11:53 <@matches> Although I did switch to Maaxen
+11:53 < sulix> Hmmm...
+11:53 <@matches> There were other things wrong
+11:53 <@matches> I wasn't liking with -lopengl32
+11:54 <@matches> Although wine didn't seem to care
+11:54 < sulix> In theory, the glcore44 and SDL stuff should load opengl32 at runtime if needed.
+11:54 < sulix> So you shouldn't, in theory, need to link to them.
+11:54 < sulix> But that's very much "in theory".
+11:55 <@matches> I will investigate the driver situation on Maaxen
+11:55 <@matches> Urgh why can't windows just have `apt-cache search`
+11:55 <@matches> And `lspci | grep vga`
+11:55 <@matches> Lets see... "Device Manager"
+11:55 < sulix> Maaxen will almost certainly not have working GL 3+ drivers.
+11:56 <@matches> Oh it's a VM
+11:56  * matches backs away very quickly
+11:56 <@matches> Well I can't keep rebooting every time I try and fix a segfault
+11:56 <@matches> Bloody scope broke my other laptop
+11:57 <@matches> I used to have Windows XP...
+11:57 <@matches> Oh wait I smashed the hard drive open so I could draw it for an assignment
+11:58 < sulix> You should subscribe to the "if it works under wine, it's good enough" philosophy.
+11:58  * sulix has shipped things that way.
+12:00 < sulix> Anyway, the quadtree is still segfaulting when not run under valgrind by (I think) getting the video card to somehow corrupt unrelated system memory or something.
+12:00 <@matches> :S
+12:01 < sulix> It always crashes when trying to glDeleteBuffers() which is really disturbing.
+12:02 <@matches> I've noticed that when there are a lot of objects, and you kill the program, you never get the memory back ever
+12:02 <@matches> And your system stays slow
+12:02 <@matches> Which is a bit of a problem
+12:02 <@matches> Need to reboot every hour or so of testing...
+12:02 < sulix> Okay, I haven't had that happen.
+12:02 <@matches> I guess that's just fglrx amazingness
+12:03 < sulix> Guess so.
+12:03 <@matches> For example, I can run turtles_all_the_way_down.script without anything crashing but then I am left with like 20MB and when I open Iceweasel everything goes to hell
+12:03 < sulix> On the bright side, the fglrx developers are planning to get rid of the fglrx kernel module and just have their closed-source GL driver talk to the open-source kernel driver.
+12:04 <@matches> Is that... good
+12:04 < sulix> We'll see, but I can't imagine it making fglrx _worse_
+12:04 <@matches> The open source driver doesn't work that well either
+12:05 <@matches> I sense another few days trying to get X working again after an `apt-get upgrade` at some point in the future then :(
+12:08 < sulix> Don't worry, they're still in the "have meetings" phase.
+12:37 <@matches> I think the glDebug stuff is giving windows issues
+12:37 <@matches> At least running in actual windows not a VM
+12:37 <@matches> Running in a VM is not conductive to working
+12:37 <@matches> Sanity tells me to give up
+12:38 <@matches> It can do glCreateProgram though!
+12:38 <@matches> glObjectLabel seems broken
+12:39 < Pommers> http://th01.deviantart.net/fs70/PRE/i/2012/076/1/2/oh_my_glob__by_tsubasaangel-d4t0g68.jpg Oh my glOb
+12:39 <@matches> Yes
+12:40 <@matches> It would be nice if the extension manager (if you could call gl_core44 that?) used stubs instead of NULL
+12:41 <@matches> I mean for debugging
+12:41 <@matches> Then you can have it print "This function doesn't actually exist guys"
+12:41 <@matches> gdb is nicer I supose
+12:41 <@matches> In fact if I weren't trying to cross compile on linux and then reboot and test in windows this would be a lot easier
+12:58 <@matches> Ok screw this
+12:58 <@matches> I need to write a thesis
+12:58 <@matches> :(
+12:58 <@matches> But after lunch
+13:51 <@matches> http://thecodelesscode.com/case/57
+14:12 < Pommers> Lunch sounds good
+14:23 <@matches> I'm currently reading codelesscode using the excuse that the turtles tester takes a very long time to sigfpe
+14:23 <@matches> (But it sigfpe's nonetheless)
+14:24 <@matches> Can we disable sigfpe for overflow/underflow casts from double to float
+14:24 <@matches> That would make things easier
+14:24 <@matches> Well
+14:24 <@matches> Assuming that the float casts to FLT_MAX or FLT_MIN if it would underflow/overflow
+16:09 <@matches> sulix: I can no longer load anything into the document
+16:09 <@matches> Congratulations though, this means it always renders accurately...
+16:20 <@matches> Ok...
+16:20 <@matches> We now have
+16:20 <@matches> #ifdef
+16:20 <@matches> ...
+16:21 <@matches> m_count++;
+16:21 <@matches> return m_count;
+16:21 <@matches> #else
+16:21 <@matches> return m_count++;
+16:21 <@matches> #endif
+16:22 <@matches> Because I don't know if the quadtree *needs* to return an invalid array index (it doesn't even use the same array...) but over in monotree land we like our array indices to be valid
+16:24 <@matches> Now what was I doing
+16:24 <@matches> Ah, seeing if OpenGL really could do Wu lines
+16:25 <@matches> So when I say it is in my report I am not lying
+16:25 <@matches> Report...
+16:25 <@matches> The thing I'm writing
+16:25 <@matches> Write
+16:25 < Pommers> How long is the report going to be matches?
+16:25 < Pommers> And when are you going to finish it?
+16:25 <@matches> It has to be 6000 words
+16:26 <@matches> My LitReview is ~8000 ...
+16:26 <@matches> Although that might be including the SVG and postscript examples
+16:26 <@matches> I think I should take those out?
+16:26 <@matches> You'd think having a huge pre-written document would make it easier but no
+16:27 <@matches> Enabling LINE_SMOOTH leads to, of all things, SIGFPE
+18:25 <@matches> I am making a whole lot of no progress here
+18:25 <@matches> Draft due on Friday...
+18:26 <@matches> I need to produce a Design Process
+18:26 <@matches> The software wasn't so much designed as congealed
+18:27 <@matches> I forgot this is an Engineering Project not CS and therefore needs to be done in such a way that future Engineers can improve upon the work...
+18:27  * matches sobs some more
+18:27 <@matches> Rectangles and Circles don't even work anymore
+18:28 <@matches> I sacrificed them for the glory of the Bezier To Path transformations
+18:29 <@matches> Also, instead of a transformation per path, it would make more sense to use one per SVG
+18:30 <@matches> It's basically the localised coordinate approach but not as fancy as a quadtree
+18:30 <@matches> If you were building up a document one bezier at a time by drawing them, you'd have to do something fancy to make your paths
+18:31 <@matches> (Un)Fortunately we don't have an editor anyway
+18:47 <@matches> Hmm, that really needs reverse parenthesis to indicate that the word is "Unfortunately" but the "Un" is removed
+18:47 <@matches> )Un(Fortunately
+18:47 <@matches> I have invented a new gramatical construct-thing
+18:47  * matches adds it to the list of results
+--- Day changed Mon Oct 06 2014
+18:02 <@matches> So the good news is I worked out the transform, the bad news is it's yet another horrible hack
+18:03 <@matches> Which will undoubtably be extremely slow if I use Gmprat
+19:01 <@matches> It's amazing how useful a "grid.svg" that is just lines which should in theory be one pixel apart is
+19:01 <@matches> If we could draw it in a different colour it would be even more useful
+19:01 <@matches> But the clock of doom is counting down to the epsilon of time
+19:17 <@matches> A quick bit of <commenting out large parts of the shading algorithm and enabling shading anyway> later: http://szmoore.net/ipdf/fox-vector+grid.png
+19:20 <@matches> Wow that took 16 minutes
+19:20 <@matches> ... 19 if you count the last 3...
+19:20 <@matches> I'm running out of epsilons
+19:21 <@matches> If I represent the amount of time I have left on the project as a floating point number, then a single second is below the epsilon for floats, therefore each second will not affect the amount of time I have left, therefore I will never have to finish
+19:21  * matches resists the urge to verify if a single second is actually below epsilon or not
+--- Day changed Tue Oct 07 2014
+13:52 <@matches> http://ieeexplore.ieee.org.ezproxy.library.uwa.edu.au/stamp/stamp.jsp?tp=&arnumber=5577902
+13:52 <@matches> Uh oh
+13:57 < sulix> We did look at that briefly, IIRC, but ignored it because it was only integers, I think.
+16:05 <@matches> Yeah, although a rational is just two integers
+16:05 <@matches> But too late now
+16:05 <@matches> I am not making progress
+16:05 <@matches> I have deleted words
+16:05 <@matches> That is not progress
+16:05 <@matches> (I had 8000 words, I require 6000 words...)
+16:06 <@matches> I should probably get some performance tests done, but every time I try there ends up being something I have to code first
+17:25 <@matches> I have a somewhat less awful explanation of number representations that still manages to carefully not actually define a number
+17:26 <@matches> I wonder if I need a citation though
+17:28 <@matches> Does it classify as "blindingly obvious" or "known since the dawn of time" that you can write numbers as "\sum_{i=-\infty}^{\infty} d_i B^i" where "d_i" and B are also numbers (it's so meta)
+17:28 <@matches> You're the maths guy, surely there is a paper
+17:29 <@matches> If it's blindingly obvious, I probably shouldn't state it, so I guess it's not blindingly obvious...
+17:29 <@matches> But on the other hand it's just a fancy way of talking about what you learn in primary school...
+17:43 <@matches> http://thecodelesscode.com/case/137
+17:50 <@matches> Dear goodness it's hideous
+20:08 < sulix> matches: It's actually kind-of more complicated than that.
+20:08 < sulix> You might find it interesting to look up Cantor's diagonal argument.
+20:09 < sulix> (Which is technically a proof that the size of the set of rationals is different to the size of the set of reals, but it uses the idea of infinite sequences of digits)
+20:09 < sulix> For example \sum_{i=-\infty}^{\infty} d_i B^i actually gives you the reals, not the rationals.
+20:10 < sulix> But you have to be super-careful about what "infinity" is.
+21:11 <@matches> Did I say Rational
+21:11 <@matches> I thought I said real
+21:11 <@matches> No I said "number"
+21:11 <@matches> Wel
+21:12 <@matches> I will look up Cantor's diagonal bishop
+21:12 <@matches> I mean argument
+21:13 <@matches> But basically anything you are going to represent on a computer is either written as that sum or based on components that are
+21:13 <@matches> A float is like changing where the "0" is
+21:13 <@matches> An integer is starting the sum from zero
+21:14 <@matches> An arbitrary integer uses the same sum, but the digits are smaller integers
+21:14 <@matches> (In another base, and then the base of the arbitrary integer is 2^{N})
+21:14 <@matches> I don't know how much I am expected to explain this sort of thing
+21:15 <@matches> And of course a rational is two integers written using the sum
+21:15 <@matches> Infinity is...
+21:16 <@matches> Yeah
+21:17 <@matches> Screw that, if people don't like me writing a number as an infinite sequence of digits I will point out the name of my major (and then hope they don't ask why I am doing a project about numbers considering my major)
+21:17 <@matches> Other things I don't really want to include in my report are the 4 operations for floats
+21:18 <@matches> But I feel like some sort of explanation of why "(x - view.x) / view.w" totally dies
+21:18 <@matches> Is needed
+21:18 <@matches> I'll commit "grid.svg", you might find it useful
+21:18 < sulix> "If view.w is zero, you're in trouble."
+21:18 <@matches> Yeah
+21:19 < sulix> I'm sure grid.svg will lead me to much confusion!
+21:19 <@matches> No it's really cool
+21:19 <@matches> It is a 1px by 1px grid
+21:19 < sulix> But how will I know where I am?
+21:19 <@matches> So, because we add SVGs scaled to the view, whenever you insert it the view should be black
+21:19 <@matches> Ah
+21:20 <@matches> But if you zoom in, you can resolve the lines that are 1px apart in the original view
+21:20  * sulix really needs to get on that "adding SVGs scaled to the view" thing.
+21:21 <@matches> So, if you add it scaled to the view at some point and you *don't* see total blackness, it's showing you the locations in the document that can be represented when scaled to the view
+21:21 <@matches> ... If that makes any sense
+21:22 < sulix> Ah.... that's cool.
+21:22 <@matches> For example using single precision, at {5,5,1e-6,1e-6} you only get 4 lines (and also, the distance between the lines is the amount you need to move the mouse in order to translate)
+21:22 <@matches> Yeah, and hopefully it will be good for my bounds measurement test
+21:23 <@matches> I know it's a shitty measure but it's better than just saying "This picture looks funny!"
+21:23 <@matches> "This graph indicates how funny a picture will look"
+21:23 <@matches> I feel like graphs make things *look* more legitimate even if they aren't actually
+--- Day changed Wed Oct 08 2014
+12:48 <@matches> Writing up these "results" it really doesn't feel like I've achieved much of consequence...
+12:49 <@matches> It feels like I spent 9.5 months not understanding anything and then stumbled accross the blindingly obvious solution that should have taken a week.
+12:50 <@matches> Then again, we were talking about local vs global coordinate systems right at the start...
+12:51 <@matches> Anyway all I've done is introduce a local coordinate system which is expressed with arbitrary precision relative to the global coordinate system.
+12:51 <@matches> The only advantage I can see with the quadtree is that it clips things
+12:51 <@matches> Which is admittedly a really huge advantage
+12:51 <@matches> Since GMP rationals grow exponentially...
+12:51 <@matches> It's a very big time constant thanks to GCD though
+12:52 <@matches> I wish shading worked because these figures would look so much more awesome with colour
+12:57 <@matches> I really hate that I can't just include a pixel perfect copy of the png figures
+12:58 <@matches> There's a massive amount of antialiasing going on
+13:01 <@matches> ...
+13:01 <@matches> I've been writing too much LaTeX when I start using '%' as comment in our debug script
+22:57 <@matches> I must say, the one place where PDF's magical blurring of things makes them look better is the figures from back when shading almost worked
+22:57 < Pommers> LaTeX <3
+22:57 <@matches> It's not even something you can control in LaTeX
+22:58 <@matches> The PDF viewer will do whatever the hell it wants
+22:58 <@matches> Although I've realised that the screenshot tool in debian is also adding antialiasing of its own
+22:59 <@matches> So at some point between the draft thesis and the final thesis I guess I need to go through IPDF's own screenshot function
+22:59 <@matches> szmoore.net/ipdf/sam/presentation/presentation.pdf
+23:00 <@matches> The presentation with a big gap where I in theory explain Rational numbers, arbitrary precision integers, the GMP library, Why we only care about the bounds of beziers, the different ways you can apply bounds transforms to get better results, and all the graphs that I am going to make that don't exist yet
+23:00 < Pommers> Oh yeah, did you see the Github pack that I posted in #UCC last night?
+23:00 <@matches> Well no I was too busy crying myself to sleep
+23:01 <@matches> Thesis' are harder than regular assignments mainly because there isn't a set goal
+23:01 <@matches> You have to set your own goal
+23:01 < Pommers> https://education.github.com/pack
+23:02 <@matches> And it tends to end up as not actually thinking about the goal until the end and then realising that you didn't meet it
+23:02 <@matches> Huh what's that
+23:03 <@matches> I see many "cloud" and "crowdsourcing" references and "$" signs
+23:03 < Pommers> All free stuff for students
+23:04 <@matches> Cool
+23:04 <@matches> Goodnight
+23:04 < Pommers> Night
+23:06 <@matches> Hmm, I should probably have removed the Western Australian Marine Science Institution logo from that presentation template I stole
+23:07 <@matches> Or it will haunt my dreams
+23:07 < Pommers> Probably. Whena re you presenting?
+23:10 < sulix> I'm just disappointed that your presentation isn't "CONFIDENTIAL" like some of th others on the list.
+23:17 < Pommers> Nice presentation

UCC git Repository :: git.ucc.asn.au