IRC Log Viewer » #firebreath » 2010-09-11

IRC Nick Time (GMT-7) Message
amackera 12:09 Hey taxilian, got your mail
Nice work on the fix!
Why oh why did the linker not catch that?
taxilian 12:09 amackera: No kidding. I think I spent 6 hours on that one
well, maybe only 4
still; that 4 was my own time, since I'm over my 20 hrs for facebook
but I think having this round of fixes in and solid is critical to the project
amackera 13:09 Yeah
taxilian 13:09 have you had a chance to check to see if everything works for you as well?
amackera 13:09 not yet, i'll try it out right now :)
taxilian 13:09 thanks
I want to get this pushed up to trunk as soon as possible
so that it gets a little more testing before Thursday
kalev 13:09 let me try if it works on Linux.
taxilian 13:09 kalev: awesome, thanks
kalev 13:09 build error:
taxilian 13:09 Right; can you change the references to be FB::Npapi::NpapiPluginPtr instead of NpapiPlugin*
and NpapiBrowserHostPtr instead of *
kalev 13:09 allright.
taxilian 13:09 sorry, forgot to update those files
actually, I can do it
you can't push the change anyway
do a pull from my repo
kalev 13:09 pulling from
searching for changes
no changes found
taxilian 13:09 sorry, try again
my client stalled
amackera 13:09 taxilian: i am getting a weird error from hg
taxilian 13:09 ok?
amackera 13:09 abort:abort: case-folding collision between src/3rdParty/boost/Readme.txt and src/3rdParty/boost/ReadMe.txt
kalev 13:09 taxilian: examples/FBTestPlugin/X11/FactoryMainX11.cpp:17 needs fixing too
taxilian 13:09 you're right; that is a weird bug
isn't that what I fixed?
missed that
amackera 13:09 I cannot check out the repository
taxilian 13:09 kalev: try again
amackera: on mac?
amackera 13:09 yea
taxilian 13:09 are you doing a clean clone or trying to pull into your repo?
amackera 13:09 clean
kalev 13:09 taxilian: linker error now:
taxilian 13:09 k, I see it
amackera 13:09 I'll try to update hg
taxilian 13:09 amackera: yeah, I'll try to track it down after I get kalev going; let me know if you find anything
kalev 13:09 taxilian: if you need to work on something else I can try fixing these up on my own too
taxilian 13:09 that one was totally my fault
so I don't mind
do a pull
I do need to write some standard ML for a class, though =]
kalev 13:09 taxilian:
taxilian 13:09 some things are so picky
kalev: pull again
kalev 13:09 nothing changed, still same error
taxilian 13:09 amackera: this could be messy
kalev: can you see if you can figure out why? aparently I'm just guessing
kalev 13:09 sure
NpapiPluginPtr plugin(_getNpapiPlugin(15, host));
what's this 15? some test code?
taxilian 13:09 lol
yeah, it's the other half of the test code
remove that, it should work
forgive me, I was up 'til 1am trying to fix the mac issue
amackera: try cloning again
kalev 13:09 yeah, built now
taxilian 13:09 oh, good
I wonder if I tried to schedule a "unit test day" where everyone who could gathered and just wrote unit tests for 5 or 6 hours if anyone would come and help
then we could do the same thing for documentation the next week
and the project would benefit hugely
kalev 13:09 I bet nobody shows up :P
amackera 13:09 I'm down for tha
taxilian 13:09 hehe
amackera 13:09 I've been meaning to get some quality time with unit testing anyway
taxilian 13:09 yeah, that would be the worry
the problem is finding a time when more than just one person can do it
kalev 13:09 FBTestPLugin loads and works fine on examples/FBTestPlugin/test.html page
taxilian 13:09 excelent
here is my todo list, if anyone wants to help:
amackera 13:09 nice!
taxilian 13:09 1. Update FBTestPlugin/test.html to take advantage of onload
- This should then automatically attach event listeners
and do some simple dhtml stuff so you can see what is happening
hmm. now I can't remember what I was going to do next
well, if someone wants to, it'd be cool to get that updated =]
amackera 13:09 haha
taxilian 13:09 I'd better do homework now. I'll be here in case anyone needs help with something
amackera 13:09 have fun :)
kalev 13:09 taxilian: wait a sec
is it expected that I have tons of "Exception: std::bad_cast" printed on console?
taxilian 13:09 hmm. no, not usually
kalev 13:09 I certainly didn't get that earlier
oh, and please push the 15-fix too so that other people trying your branch wouldn't have to fix it on their own
taxilian 13:09 yeah, I'm trying to do that 15 fix now
it's not letting me push, though :-/
kalev 13:09 just try again; google code can be like that at times
taxilian 13:09 I have tried several times; I'll give it a few minutes and try again
amackera 13:09 taxilian: pull worked for me after updating hg / whatever you did to fix it
taxilian 13:09 I removed all of the boost stuff
and I added it back in
go figure
amackera 13:09 weird
taxilian 13:09 kalev: that has (finally) been pushed. Let me know if you figure out what is with the cast errors, and I will try to set up a linux dev environment
I need to see if those show up on mac as well
but first I need to do my homework
kalev 13:09 by the way, there's a way to get Firebreath's console output on Windows too
taxilian 13:09 what is that?
kalev 13:09 there was a magic switch to firefox.exe, let me see if I can find it.
taxilian 13:09 oooh
magic switch
kalev 13:09 firefox.exe -console
just create a shortcut to start it like that; the switch makes firefox open 2 windodws: one is the browser and the other one is console window
taxilian 13:09 why do they always make those things so hard?
how am I supposed to remember that?
amackera 13:09 kalev: awesome, thanks for that tip!
kalev 13:09 ah, it gives the bad_cast exceptions when I hover mouse over the grayish rectangular plugin area
amackera 13:09 In linux?
kalev 13:09 yep
amackera 13:09 do the mouse events get delivered?
Are there any "Mouse move at: ..." messages printed?
kalev 13:09 nope
amackera 13:09 hmm ok
kalev 13:09 the Exception: printf is apparently in src/ScriptingCore/BrowserHostWrapper.cpp
sorry, I know almost nothing about events as the plugin I've been working on doesn't do any drawing
amackera 13:09 These bad_casts are happening to the test plugin, though? I'll see if I can reproduce
kalev 13:09 yes, it's the FBTestPlugin
amackera 13:09 wow getting insane errors
trying to compile
i think I pulled the revision without boost :P bad timing
kalev 13:09 try again, latest version has boost again
amackera 13:09 yeah, i'm compiling
looks good :D
taxilian 14:09 my bet is that the bad_cast errors result from the logging calls
that are supposed to go to firebug
but if firebug isn't running, it should just silently fail
obviously, you wouldn't want to have that running all the time in a real plugin =]
kalev 14:09 ah, yes, that's it
taxilian 14:09 oh, good
that's not a real issue, then
I like that kind of problem =]
the only real issue is that it really shouldn't be doing a printf :-P
or if it does, perhaps in debug mode only?
we really need a logging abstraction for FireBreath
kalev 14:09 although it was reversed: when I have Firebug installed I get these bad_casts, but when I disabled it I started getting mouse movement prints on the console
taxilian 14:09 hmm. interesting
amackera 14:09 Yes that would be extremely useful, to have a logging abstraction
taxilian 14:09 do we feel we're ready to put this in trunk yet?
kalev 14:09 I'll fix up my real plugin on monday if you put it in trunk, that much I can promise :)
taxilian 14:09 ok; let's play with it a bit more today, and I'll push it to trunk this evening
amackera 14:09 seems ready for trunk to me
no crashing bugs immediately apparent
I'll try out the UTF8 fixes
taxilian 14:09 ooh; amackera, do you have time to do a quick check for me? Create a new plugin with fbgen and make sure it builds on all platforms?
amackera 14:09 sure, but i don't have linux installed
taxilian 14:09 or at least windows and mac; maybe kalev can do linux
amackera 14:09 sure
taxilian 14:09 I appreciate it, guys. I'd do more, but I really have to finish this assignment… =]
amackera 14:09 I need to finish a windows installer today and do some optimizations, but I should have time to do this quickly
windows installers are nightmares
taxilian 14:09 yes
yes they are
kalev 14:09 I'm trying it on Linux right now
taxilian 14:09 in many ways, though, linux is worse; linux is a nightmare to try to deploy for unless your system is entirely open source
you guys rock
amackera 14:09 We probably should make the output of fbgen a little less imposing
taxilian 14:09 it has been so long since I last ran it, I don't remember what it outputs
I really want to make a web version of fbgen
amackera 14:09 it wouldn't be hard
1 form, on submit gen all the files and retrn a tarball?
taxilian 14:09 yep
then maybe eventually expand it to let you customize it a bit more
but to start out with
I just haven't had time
and I think my time is usually better spent squashing bugs and adding features
or writing documentation
amackera 14:09 Yeah, good call :)
We should have a rolling TODO list on the wiki or something, distinct from issue tracking
I really need to write some documentation for using Mac stuff too, once I get a chance
Damn, compile errors on mac from a fresh fbgen
I'll fix this
taxilian 14:09 cool
I guessed there probably would be
particularly on mac, since you've changed so much
kalev 14:09 taxilian:
builds on Linux, tried to fix other platforms too but no idea if they build
taxilian 14:09 amackera: kalev's changes are in my clone now
you may want to pull them down, as they may fix a few of your things too
amackera 14:09 sure
taxilian 14:09 kalev: thank you so much
with a few people helping, it's amazing how much I can get done while still working on homework :-P
kalev 14:09 no, thank you for doing all the hard lifting
taxilian 14:09 I tell ya, I'm sure glad to have that shared_ptr thing in; that was definitely the most widespread refactor that has happened since 1.0 was released
amackera 14:09 So Tuesday is the first day actual customers are going to be using my plugin
I'm scared out of my miiind
taxilian 14:09 lol. as well you should be =]
you don't have a QA period between having it "working" and deploying it?
amackera 14:09 That's tomorrow
taxilian 14:09 lol. well, a point to consider; in my experience, most plugin related issues are either installer related or video card related
amackera 14:09 We basically just don't have enough resources to test it completely
Not enough machines/architectures/crazy pirated versions of windows/whatever
kalev 14:09 VirtualBox is great for setting up different OS-s
I even have a Snow Leopard running under VirtualBox :-)
amackera 14:09 Yeah, but it's more the actual hardware that we need to test on
You're right though, I'm running parallels and it's good
taxilian 14:09 particularly if you're doing 3-d acceleration, like amackera is
kalev 14:09 yeah, I guess that's something you just have to test with different hardware / driver combinations
taxilian 14:09 yeah
amackera 14:09 we tried using amazon mechanical turk
made like a 1$ task "Try this browser plugin!"
it worked for about 20% of people
there's no way of ensuring the mturk people actually followed out instructions
taxilian 14:09 yeah
that's the tricky bit
amackera 14:09 so in the end the test was useless
So we're going to be using real users are beta testers, essentially :S
taxilian 14:09 always a good plan
amackera 14:09 I'm moderately confident in my codez, but some random edge cases confuse me
taxilian 14:09 I wish you luck with that =]
plugins at first deploy time are *always* frightening
amackera 14:09 like for some reason calls to glClear() in Windows Vista for a certain machine with an ATI chipset segfaults for some unknown reason
I'm a little worried about things like that
but hey, gotta ship the damn thing sometime
I think at the end of the day it was stupid for us to use OGL to draw (despite it's tasty cross-platform-ness)
we should have used HTML5 canvas to draw, and a plugin to do all the heavy lifting for us
taxilian 15:09 yeah
when I was working for Move Networks, we used DX9 for drawing
but eventually changed to using d3d7 instead, because it worked on so many more machines
ogl always gave us problems on windows, so we gave up on it
but used it on mac
amackera 15:09 hmm interesting
won't let me push to my clone
Maybe because I did http instead of https?
yeah that was it
taxilian 15:09 that could well be =]
amackera 15:09
changes to and Mac/PluginWindowMacCaronQD to compile default fbgen'd plugin on Mac
taxilian 15:09 cool
pushed up
amackera 15:09 I'll try it out on windows
taxilian 15:09 well, almost, anyway
now it is
amackera 15:09 cmake is fantastic
I don't have to open xcode or visual studio ever
taxilian 15:09 lol. yes, cmake is fantastic; at least, once you learn how to use it
amackera 15:09 except to use their debuggers
i'm trying to get gdb/ddd working on mac instead of xcode debugger
just because i had a compilers prof in 2nd year that was like the world's no 1. advocate of ddd (or so it seemed)
taxilian 15:09 hehe. someday I'll have to learn how to use them debuggers
amackera 15:09 he literally spent an entire lecture telling us how he'd just run our core dump through ddd and debug our amateur bullsh*t, it was awesome
taxilian 15:09 lol
amackera 15:09 so what's the deal with unit testing/test driven development? i've searched all over hacker news to no avail
is it just "write tests for all your junk."
because that hardly seems like a "methodology" or whatever they call it
taxilian 15:09 there is a bit more to it than that
it's hard to explain briefly in text
but basically, the idea is that you need a feature
say, the ability to convert from utf8 to wchar_t and back
so with test driven development, before you write the function
first you write a unit test that says "I have this utf8 code, and after running it through I should get this back"
and vise versa
then you write your code and make the tests pass
and then you're done
amackera 15:09 oic
it's like functional verification in hardware
taxilian 15:09 I don't usually do "test driven development"
I usually do "write the code, then write the unit tests to make sure it's really doing what you want it to do"
unit tests to me are more for future use in most cases
so that when you inevitably change things, like I've changed a ton of stuff the last couple of days, the unit tests should force everthing to remain consistent from an API / interface standpoint
amackera 15:09 Ahh, yes
taxilian 15:09 we changed which autoptr class we use, but the reference counting tests still do the same thing; and they pass, so we know we should be good
amackera 15:09 "regression testing" is what they call it in hardware
i get it
taxilian 15:09 yeah;
same thing
well, kinda
all a unit test is is a test that runs only on a small "unit" of code
the idea is that you write your code so that there are a lot of small units that are functionally independant
so that each piece can be tested by itself
when done well, it can be very useful
amackera 15:09 and you compile all your unit tests into a little test program and run them?
taxilian 15:09 right
in FireBreath, the unit tests should run automatically when you build
so if you break one, you know it immediately
amackera 15:09 that is very useful
Maybe a good starting project for me with unit testing would be to write unit tests for the Mac classes I've written?
I guess it's a little hard to test things like window invalidation, etc.
taxilian 15:09 hey, if you want to write unit tests on firebreath stuff, I'm all for it =]
amackera 15:09 Cool, I think i will do that
taxilian 15:09 well, what you could write unit tests on with your stuff
is the graphics lib selection stuff
basically you make the "browser" capable of responding to calls
and you can write tests for "when the browser returns this, this is what you should expect"
and so forth
amackera 15:09 okay, I'll see what I come up with
I need to write some unit tests for my own plugin too
taxilian 15:09 you should be able to copy the existing ones and use the unittest++ framework we already have
it takes some tinkering, but it's not too hard
look at the scriptingcoretest project for decent examples
amackera 15:09 Cool, I'll check it out
taxilian 15:09 lol. I love this project. You guys are helping me with all of this stuff, and Georg just started editing wiki pages about debugging plugins (something I've been meaning to do but haven't had time, since I'm busy writing AI routines to solve 8 puzzles)
amackera 15:09 the magic of open source :)
taxilian 15:09 yep
amackera 16:09 I was thinking about that the other day actually... imagine how Linus must feel
taxilian 16:09 yeah
it's a fun feeling
even just to be part of a real project is fun
amackera 16:09 Yeah :)
taxilian 16:09 but to have something that you wrote the core of that a lot of people use and benefit from? it's pretty cool
amackera 16:09 So is the plan for Facebook to use FireBreath for a plugin of theirs?
taxilian 16:09 yep
amackera 16:09 because if so that's a lot of users using FireBreath
taxilian 16:09 yep =]
that's a big part of why I'm attacking all stability issues so hard right now
amackera 16:09 like hundreds of millions of users
taxilian 16:09 it will *kill* me later if I don't
yep =]
amackera 16:09 So damn cool :D
taxilian 16:09 yep
and your code was actually instrumental in making that decision, btw
because Facebook has their own plugin library
that was developed internally
it is shockingly similar to FireBreath
but it has no drawing code
so the fact that FireBreath already has most of that wired in on both platforms was the main reason we agreed that FireBreath was the best route
so thanks =]
amackera 16:09 no kidding, cool :D
taxilian 17:09 amackera: did you have a chance to test fbgen on windows?
amackera 17:09 o shi- totally forgot
i'll try it out in about 15 minutes, just putting together a release candidate
taxilian 17:09 do you have a minute to do that real quick? I'm going to push things to trunk
amackera 17:09 hmm
i'll try it out quickly right now
i doubt anyone will actually test my rc until tomorrow anyway :P
taxilian 17:09 hehe. thanks
amackera 17:09 it'll take about 5 minutes to try out
taxilian 17:09 ok
I'm typing up a preliminary changelog
amackera 17:09 cool :)
taxilian 17:09 54 changesets found that haven't been pushed to trunk yet… :-P
… and it is taking forever to try to push them
hasn't even ask for my username yet, ~3 minutes later
amackera 17:09 lol
Windows plugin builds/works with no problems
taxilian 17:09 excelent
taxilian 18:09 hey, it finished!
only took, like, 15-20 minutes!
amackera 18:09 :)
taxilian 18:09 well, I'm off for now
that's there
amackera 18:09 nice
taxilian 18:09 I even fired off an early distro for the nightly
build 28 will be up in about 3 minutes