IRC Log Viewer » #firebreath » 2011-01-19

IRC Nick Time (GMT-7) Message
taxilian 00:01 wow. this is the fewest I've seen in this channel in, like, forever
FB_GitHubBot 00:01 FireBreath: firebreath-1.4 Richard Bateman * 2974b3a (7 files in 6 dirs): Fixed build issue in vs express -
taxilian 01:01 hey, people are back… was this a netsplit?
kalev 01:01 Yep
taxilian 01:01 makes sense
paritcularly since I think I may be connected via ipv6
iaincollins 06:01 hey ... are there any examples of how objects can be passed back and forth in FB 1.4?
I think I saw something but can't remember it, was going to just work on features, but am thinking that would help me solve a problem
*moves to 1.4 anyway (documenting changes to the default build in full this time)*
zmichl 06:01 hi, some of the FB source files don't end with new line and g++ would complain about it ;)
iaincollins 08:01 hey taxilian_away, getting "error C2668: 'boost::bind' : ambiguous call to overloaded function" in BrowserHost.cp on line 202 in the latest 1.4 checkout
the offending line in BrowserHost.cpp is: "std::for_each(canceledDataList.begin(), canceledDataList.end(), bind(delete_ptr(), boost::lambda::_1));" ..
scJohn 08:01 i pulled the latest 1.4 this morning and have not seen that problem.
I know some fixes were put in last night for VS Express
iaincollins 08:01 hmm, using VS2008 here
scJohn 08:01 VS2010 express
iaincollins 08:01 I tried explicitly specifying it as boost::bind... but then I get a few other boost errors
(thats on the example project too)
(so erm, that's not right :)
scJohn 08:01 i am having trouble with the sample project running under IE, works OK in chrome
iaincollins 08:01 ah yes, should be boost::lambda::bind
Oh, what issues you having?
scJohn 08:01 when i run the sample on IE the plugin crashes when you move away from the page.
so if i were to click a link that goes to another page, reload the window or close the browser I get an exception
iaincollins 08:01 ouch
I will try and replicate, one of us can submit a bug and the other can confirm :)
scJohn 08:01 yea, i don't know what else to try. I may create a new VM and start from scratch to see if it is something with my current setup.
working in Chrome so I am just using that for now.
Do you know the correct way to stop a boost thread before starting a second?
iaincollins 08:01 from outside the thread? no :/
oh boost::thread::terminate() hmm
oh better:
(I need to read that myself)
scJohn 09:01 yea, i have seen that page.. so i guess interruption means termination?
iaincollins 09:01 seems to be described like 'cooperative termination' :) with the suggestion that terminating is bad (and only if you can't catch a signal to interrupt)
but.. will have to read
iaincollins 09:01 scJohn: okies, on IE8, using the FBTestPlugin I can load it, and then navigate away okay
scJohn 09:01 ok, thanks
iaincollins 09:01 guess you have ATL installed? (not sure if that's still required)
scJohn 09:01 yes
iaincollins 09:01 only ask in case it can build without, not sure if that would have consequces if so
can I ask what OS / version of IE you have?
scJohn 09:01 XP SP3, IE 8
iaincollins 09:01 Vista 32-bit, SP 2 / IE 8
will try that here (have a few VM's plus test systems)
scJohn 09:01 i'll try it on another vm here in a bit
iaincollins 09:01 scJohn: For reference not seeing any issues here with FBTestPlugin on WinXP Home SP3 / IE 8.0 (but let me know if you'd like me to try something)
taxilian 09:01 iaincollins: that's weird; I don't know where it even gets the idea that it should use that namespace
scJohn: crash seems to be vs express specific
scJohn 09:01 that is interesting, can I do anything to help? are you able to reproduce?
taxilian 09:01 hmm. aparently not with a debugger attached
to make sure we're looking at the same thing, though, what exactly do you see?
scJohn 09:01 "Assertion Failed!"
taxilian 09:01 ok
scJohn 09:01 Expression: px != 0
taxilian 09:01 basiaclly that's a NULL ptr exception
that's what I saw
scJohn 09:01 you seeing that?
taxilian 09:01 but didn't happen when I attached a debugger
scJohn 09:01 nice
taxilian 09:01 which means it's probably a race condition
there are still ways to get the stack trace, whcih should be all I need, it's just more of a pain
scJohn 09:01 yea, and I am not seeing it under Chrome
ok, let me know what I can do to help, I assume you want to support Express so I will keep using it and reporting back.
taxilian 09:01 ok, nevermind… I can't reproduce it anymore
I do
if you can get the crash, then attach a debugger and find out where it is, that would be a huge help
scJohn 09:01 i've not debugged in visual studio, I am building the sample plugin, when it is done I will give it a try.
iaincollins 09:01 taxilian: Glad you think it's weird too. I don't think there is anything specifically odd about my environment. Submitted it as an issue earlier for clarification.
taxilian 09:01 huh. well, I can fix that easily enough
your fix is perfectly reasonable
just shouldn't be neccesary
the name resolution rules between compilers differs a bit, I guess
iaincollins 09:01 yeah, must be
what is very odd is the same method is used about 5-6 lines above and works fine :/
taxilian 09:01 lol
scJohn 09:01 taxilian: suggestions on where to set a break point in the debugger?
taxilian 10:01 shouldn't need a breakpoint
when the assertion fails it should break
scJohn 10:01 oh, i must not be attached correctly, i'll look at the single process thing
ok, taxilian what do you need?
taxilian 10:01 did you catch it?
I need the stack trace
more specifically, I need to know which function is trying to make a call on a NULL shared_ptr
scJohn 10:01 appears to be FBControl.h m_host->shutwodn line 224. how do i export the stack?
taxilian 10:01 hmm. that's good enough, let me look
does that happen on startup?
scJohn 10:01 only when i navigate away from the page.
ie close the browser, refresh the page, type a new url in the address bar
taxilian 10:01 interesting
ok, I can fix that
scJohn 10:01 cool, let me know and i'll give it a test
FB_GitHubBot 10:01 FireBreath: firebreath-1.4 Richard Bateman * ac3e123 (1 files in 1 dirs): Fixed intermittent crash on IE -
taxilian 10:01 try that
scJohn 10:01 will do
scJohn 10:01 i am getting the same thing.
taxilian 10:01 okay; it's going to be a different crash, then
see if you can find it for me? :-/
scJohn 10:01 same line
bith if statements in the change evaluate to true
taxilian 10:01 wait… which line? is it the m_host line?
that's probably what I missed
scJohn 10:01 m_host->shutdown();
FB_GitHubBot 10:01 FireBreath: firebreath-1.4 Richard Bateman * f251375 (1 files in 1 dirs): Further work on fixing intermittent crash on IE -
taxilian 10:01 try now
scJohn 10:01 not working
taxilian 10:01 well, the crash should have at least moved that time; unless it's deeper in the stack?
brb for real
scJohn 10:01 ok
the error was on line 224, i added the if(m_host) like you did at 347 and it seems to have fixed it.
taxilian 10:01 ahh
FB_GitHubBot 10:01 FireBreath: firebreath-1.4 Richard Bateman * cb447b2 (1 files in 1 dirs): One more IE crash that I missed -
taxilian 10:01 that never gets called on my version of ATL
though it should
scJohn 10:01 oh
taxilian 10:01 it's a bug I hadn't worked out yet
good catch
see if I got it this time =]
scJohn 10:01 you reall mean to commit that much that time?
guess it was mostly formatting
taxilian 10:01 yes
it was
scJohn 10:01 seems to have fixed the problem. thanks
taxilian 10:01 great. thanks for letting me know
taxilian 11:01 iaincollins: did you say you'd started on the IRC log parser thing?
iaincollins 11:01 yeah I got half way through, got it and haven't gotten round to sorting that out
good for reminding me, keep wanting one
(was needing one just now actually, ended up greping again)
will look tonight (off home now)
taxilian 11:01 cool
iaincollins 11:01 looks like I will leave porting to 1.4 to finish tomorrow
taxilian 11:01 if you put it somewhere I can get to it I can probably help some
iaincollins 11:01 kk
taxilian 11:01 I can set you up a git account on or github if you want to do it open source
iaincollins 11:01 thanks, will share it yeah, have it on my server atm
taxilian 11:01 cool
let me know
iaincollins 11:01 (have made it generic and reusable, as I couldn't find any decent existing IRC log searching tools)
taxilian 11:01 I just set up gitolite on the box that hosts… it's really cool
iaincollins 11:01 oh hmm will check that out
looks like I will be making a lot of changes based around how I'm handling objects in 1.4 ...:)
taxilian 11:01 there are a lot of improvements
iaincollins 11:01 which I need to do anyway to make the code more reusable (something that dawned on me fully this morning)
yeah, the changes to objects will really make it easier to make re-usable code (e.g. that I can use outside of the plug-in, without having to wrap calls)
taxilian 11:01 thanks for adding yourself to the users list, btw
iaincollins 11:01 oh np
taxilian 11:01 I'll be back in a few; changing computers
iaincollins 11:01 kk off here too, bye for now
starakaj 12:01 hi all
taxilian 12:01 howdy
starakaj 12:01 anyone interested in answering a really simple windows question?
taxilian 12:01 we can try
starakaj 12:01 it's as simple as the fact that I can't get my printf's to print anything
taxilian 12:01 is this a firebreath plugin?
taxilian 12:01 starakaj: we had a netsplit; did you get my question?
starakaj 12:01 oh, no, sorry
taxilian 12:01 is your printf in a firebreath plugin?
need more details on where you're using printf
starakaj 12:01 right
yes, it should be in the plugin
I'm calling it right from NP_Initialize
taxilian 12:01 then you can't use printf on windows
starakaj 12:01 well there's the problem
taxilian 12:01 at least, not unless you create a console
which can sometimes cause issues, so I don't recommend it
starakaj 12:01 okay
taxilian 12:01 the problem is that stdout doesn't go anywhere that you can read
there is another function you should use
starakaj 12:01 that's what I was afraid of
taxilian 12:01 or you could use the firebreath logging stuff, which is just a bit experimental still
starakaj 12:01 you wouldn't happen to know what to use?
taxilian 12:01 but if you're on the latest I can tell you how and you can tell me what is wrong with it :-P
starakaj 12:01 lol
taxilian 12:01 either use log4cplus (the firebreath logging mechanism) or something like ConsoleDebugMessage or some such; I'll look
starakaj 12:01 thanks 10^6
taxilian 12:01 ahh. OutputDebugString is what you can use
if you don't want to try to use the firebreath logging stuff
it'll output to the debugger console
does nothing in release mode
starakaj 12:01 I'm sorry, do you mean I have to run firefox with the debug console?
taxilian 12:01 you either need a debugger attached or another program that can catch messages to the windows debug console
scJohn 12:01 taxilian, have you used a callback to report messages via javascript?
taxilian 12:01 scJohn: certainly
there is even a FireBreath function that will log to firebug
scJohn 12:01 ah, i have not read up on it, just got to thinking.
taxilian 12:01
I won't claim that that is the most performant option
but if the browser is loaded, it should work
and the coolness factor is exceedingly high
scJohn 12:01 so i am creating threads in my API that wait for an external event.. what is the correct way to stop these when the user navigates off the page? the DetachedEvent?
taxilian 12:01 update to 1.4, then you should be able to make sure they have stopped before the API destructor finishes and be good
they should absolutely *not* hold any shared_ptrs to the API
scJohn 12:01 i am at 1.4
taxilian 12:01 lol. right. I knew that, actually :-P
scJohn 12:01 so in the api destructor I can stop them? and that will happen when the user navigates off the page?
taxilian 12:01 yes
FB_GitHubBot 12:01 FireBreath: firebreath-1.4 Richard Bateman * 6bb8c79 (1 files in 1 dirs): Fixed issue #129 -
taxilian 12:01 as long as you don't have any circular shared_ptr references
scJohn 12:01 not what i was seeing.. i'll try again.
i hope not
taxilian 12:01 me too. how are you starting the threads? how do they (or do they?) access the API or plugin classes?
scJohn 12:01 i start per
taxilian 12:01 hmm. I need to update that post and find a good solution for this...
scJohn 12:01 ah
taxilian 12:01 so shared_ptr() returns a shared_ptr to the API
so that creates a circular reference
scJohn 12:01 wondered about that.
taxilian 12:01 you should be able to pass "this" instead, as long as you make sure it stops before the API object goes out of context
scJohn 12:01 if i stop it in the destructor?
taxilian 12:01 right
scJohn 12:01 k, i'll try that and let you know.
taxilian 12:01 great. then I'll update the post :-P
scJohn 12:01 is this remotely correct for checking the existence of the thread? My C++ skills are rusty
specifically the logic around calling interrupt
i am thinking not
taxilian 12:01 generally, to stop a thread
you call interrupt and then you call join
scJohn 12:01 ah
if it exists on it own before this call that will happen?
taxilian 12:01 what I would probably do, though, instead of using a boost::thread* I would use either a std::auto_ptr or a boost::scoped_ptr
well, if you implement the thread correctly that should work
interrupt will interrupt any waiting the thread may be doing — a wait on a condition or a sleep — and then set a flag that your thread should check for
scJohn 12:01 it seems to throw an thread_interrupted
which is an empty catch. I have a sleep in my thread
that part seems to work
taxilian 12:01 huh; that makes sense, I guess
scJohn 12:01
taxilian 12:01 I haven't used boost::thread much yet
that should work
so once you interrupt it, the thread will end
you use join() to wait until it has done so
to make sure that it stops
scJohn 12:01 i understand
taxilian 12:01 but since it's a boost::thread*, you're leaking memory there
on line 12
scJohn 12:01 yea, i figured as much
taxilian 12:01 because you haven't deleted the old one
to avoid that (and to make sure it'll not leak memory even in the case of an exception) I'd use a boost::scoped_ptr
scJohn 13:01 i'll try it now
taxilian 13:01 then on line 12, you do boost::scoped_ptr<boost::thread> newThread(new ….);
and then threadWaitForButton.swap(newThread)
newThread will then have the old thread and it will be destroyed when it goes out of scope (on line 14)
wolfmanfx 13:01 Hi!Tortoise git suxs is there an better client for windows?
taxilian 13:01 yes
scJohn 13:01 my null check is still valid at 7?
taxilian 13:01 "Git Extensions"
scJohn; better, just say if (threadWaitForButton)
wolfmanfx 13:01 i saw you fixed an chrome bug
so do you got the same crash=
taxilian 13:01 wolfmanfx: yes
but no longer
wolfmanfx 13:01 ah super :)
how does the release is shaping?
taxilian 13:01 looking good
wolfmanfx 13:01 do you see the light on the end of the tunnel
taxilian 13:01 don't know yet if IE windowless will be in or not
wolfmanfx 13:01 :) good
taxilian 13:01 but everything else seems pretty solid
wolfmanfx 13:01 i have question regarding multple mimetypes i read somewhere its supported
Bob_ 13:01 Does firebreath support registering for Windows system events (eg: WM_ACTIVATE)?
taxilian 13:01 wolfmanfx: yes, it is; still experimental, but should work
Bob_: yes, FireBreath can get those events
wolfmanfx 13:01 @bob if you are in the same process you can always intercept the winMain with your own
taxilian 13:01 yeah, don't do that
use the FireBreath stuff
far more stable that way
Bob_ 13:01 What is the API for registering for those events? Please just point me to web page. Thanks again.
taxilian 13:01 unless you have to do it the other way
wolfmanfx 13:01 i used it it was stable too
Bob_ 13:01 Thanks guys.
taxilian 13:01 Bob_: unless you have to, I would use the WindowsEvent
instead of making your own winproc
wolfmanfx: the main problem is just that it then bypasses FireBreath's handling; which is not always bad, but more work
stable wasn't really the right word =]
wolfmanfx 13:01 of course if you fine with the given events use the builtin stuff (should be portable too)
taxilian 13:01 WindowsEvent isn't portable; it just forwards you the event.
wolfmanfx 13:01 is there an easy to detect which mimetype is used be the object the tag
like the param stuff you showed me
taxilian 13:01 yes
wolfmanfx 13:01 i mean by the object tag
taxilian 13:01 first of all, the multiple mimetype stuff is not really documented
but there is an example in FBTestPlugin
wolfmanfx 13:01 thats always an plus :) i
taxilian 13:01 second, in your factory function (in Factory.cpp) where it creates the main Plugin object is given a mimetype
you can use that mimetype to decide which PluginCore object to construct
or you could just pass it to your Plugin object to use
wolfmanfx 13:01 super
taxilian 13:01 however you like
look at PluginConfig.cmake in FBTestPlugin to see how to add another mimetype
wolfmanfx 13:01 the reason why i want do this is the deployment stuff
taxilian 13:01 you'll need another ActiveX GUID as well
wolfmanfx 13:01 i want to combine an wix installer with the native xpi/cab/crx extensions. The brwoser extension should download the wix installer and do an silent setup (to AppData local)
taxilian 13:01 Cab you can do
wolfmanfx 13:01 maybe its easier to write another plugin
taxilian 13:01 crx not sure
XPI you can't
oh, I see
wolfmanfx 13:01 xpi you can load an npApi plugin which can download and install the wix setup
taxilian 13:01 hmm. you might want to look at Google Omaha
wolfmanfx 13:01 and its not hard to write one
taxilian 13:01 it's a pain in the neck to set up, but it does all of that
wolfmanfx 13:01 ?
taxilian 13:01 and has a scheduled task to do updates out of browser
otherwise, make darn sure that you have good security features in your downloader, 'cause that could be very dangerous
wolfmanfx 13:01 yeah but using ssl and to sign the dlls i dont know what more todo
taxilian 13:01 verify the signature
of the MSI
and refuse to install it if it's not there
btw, you will need a seperate process to run the installer from on IE / UAC
that should be elevated
honestly, though, I would recommend making that a seperate .dll rather than using multiple mimetypes; you probably want to update it seperate from the other DLL
wolfmanfx 13:01 i also think that another project will easier to maintain
taxilian 13:01 most likely
wolfmanfx 13:01 but deployment suxs anyway :)
taxilian 13:01 and if you are interested it's definitely the sort of thing that I'd love to have linked to or as part of the FireBreath project; if you don't consider it a "competitive advantage" for you having it open source could have a lot of benefits
wolfmanfx 13:01 you mean an complete deployment chain?
scJohn 13:01 taxilian: that seems to have cleaned up my thread issues.
taxilian 13:01 wolfmanfx: well, it might grow to that, but just a project that works like OneClick that can do signature verification on a downloaded install would be a great start
scJohn: Awesome. I'll update the page
wolfmanfx 13:01 yeah i also so see an benefit to opensource that stuff atm companies take an advantage over indiedevs with such kind of tech....but you know i think not every company will like firebreath for making browser plugins that easy :)
taxilian 13:01 hehe. yes, there is that
but that doesn't really bother me
wolfmanfx 13:01 ^^
taxilian 13:01 if we make it easy enough, they might even throw in the towel and decide to join us — they take advantage of the open source community and contribute tricks that we didn't know. everyone wins
wolfmanfx 13:01 yep i already gained knowlege during the development of my plugin which i want to share :)
taxilian 13:01 firebreath is pretty much the perfect open source project; most companies can't afford the time it takes to learn enough to build a system that will really give a competitive advantage, so it's better to benefit from everyone else; and then your plugin still remains yours
=] well, I'm always looking for more examples and better docs on the website =]
wolfmanfx 13:01 band in the end the contant is important
i mean in the end
taxilian 13:01 the constant?
wolfmanfx 13:01 content
what do you want to achive with the plugin
is it a game or any other app
taxilian 13:01 ahh. yep
wolfmanfx 13:01 inside the brwoser
taxilian 13:01 exactly
wolfmanfx 13:01 but the deployment stuff is the last thing i want to tackle
its so important
for the normal user
taxilian 13:01 and there aren't good options
wolfmanfx 13:01 you trinigy vision is doing deployment with xpi/crx/cab files on windows
and the do it bad ^^
taxilian 13:01 I'm afraid I didn't understand those two sentences =]
wolfmanfx 13:01 its an commerical engine
trinigy vision is middelware company (3D games)
the have an brwoser plugin
taxilian 13:01 ahh
wolfmanfx 13:01 and the do deployment with the native brwoser extensions
so here you can take an look
how the do it
its an game demo
*windows only
taxilian 13:01 yeah, running mac right now :-/
wolfmanfx 13:01 yeah try it later
my objective is that the downloader plugin inetacts with javascript so that i can show the progress with jQueryUI
taxilian 13:01 should be doable
wolfmanfx 13:01 in terms of showing error messages/progress
the only thing is the UAC thing you mentioned
i have to check this stuff
i like the gitBash (tortoiseGit crashed a lot here)
taxilian 13:01 yeah, I've never tried tortoiseGit
I use cygwin git most of the time, but when I don't I use the msysgit, which is what git extensions uses
git extensions is a pretty decent UI for git
wolfmanfx 13:01 is enough for me :)
Gachuk 13:01 Hello
taxilian 13:01 hello
Gachuk 13:01 Just found this project and thought I would i'd take a look, though having some problems
Could be just I've not read something in the documentation, but does anyone here know if you are required to install cmake seperatly?
taxilian 13:01 yes, you have to install cmake first
and make sure it's in the path
Gachuk 13:01 ah right okay, must have missed where it said that, I thought perhaps it was bundled in the repos
taxilian 13:01 nah; it's pretty much the one required dependency (other than a compiler) that isn't
hmm. you're right, the docs don't really specify that on the "Creating a New Plugin Project" page
I'll fix that
btw, the docs are all wiki, so feel free to contribute
Gachuk 13:01 thought i'd just have a play before contributing, but good to know
taxilian 13:01 well, yes, but just sayin' =]
there, that should be more clear
Gachuk 13:01 cool
taxilian 13:01 let us know if you have any other problm
bleh. problems
Gachuk 13:01 well actually, I was just wondering about mercurial, it's mentioned a few times, including a blog article (possibly your blog?) about source control yet the source is hosted on git, is this a legacy thing or is git and mercurial compatible somehow?
taxilian 13:01 it's a legacy thing
if you let me know where I missed I'll change the old references
I just haven't caught all of htem yet
we moved to git a few months ago (best decision we ever made)
Gachuk 13:01 I did some googling seems there is a plugin for mercurial to git:P thought perhaps that was what you were referring to
taxilian: not a fan personally but each to their own
taxilian 13:01 well, there are things you can do to mix them, but it's a pain
Gachuk 13:01 this page
taxilian 13:01 Gachuk: true. I've used mercurial, bzr, and git all extensively now… git is definitely my choice
Gachuk 13:01 on point 4
the sentence reads: t. I strongly recommend that if you decide to do this, keep in in a Mercurial clone.
taxilian 13:01 ahh. good point, thanks
Gachuk 13:01 there was somewhere else too hmm *ponders*
dunno, but still think that clears it up
how long has this project been going?
taxilian 13:01 1.0 was released in March of last year, I believe
though RC1, which was released in January, was pretty useable on windows
Gachuk 14:01 im only just starting to look into plugins and theres very sparse information on it plus the stigma attached to them, but came across this project and well anything that can make it simpler can only be a good thing
taxilian 14:01 yeah; plugins are a little bit of black magic. FireBreath does a lot to fix that
NPAPI plugins aren't quite as bad; IE ActiveX Controls are completely black magic, IMHO
Gachuk 14:01 heh that doesn't suprise me
kylehuff 14:01 well, more than that, firebreath plugins seamlessly function as both NPAPI plugins AND ActiveX controls..
I think that is a bit more than "a little bit of black magic"
taxilian 14:01 lol. Actually, the FireBreath abstractions are pretty straightforward, if you read through them; the activex interface itself is the black magic =]
Gachuk 14:01 and the mac and linux versions work?
kylehuff 14:01 yes, so long as you have compiled a Mac and Linux version respectively..
Gachuk 14:01 yes sure
cool, sounds promising
kylehuff 14:01 well, I don't think FireBreath makes any promises - but any relevant promise I can imagine, FireBreath has lived up too...
taxilian 14:01 I'm actually thinking of starting to offer commerical licenses. those would make promises
Gachuk 14:01 would that remove the BSD license? or would they be more for adding "support" if you license it
taxilian 14:01 more for adding support
and a guarantee that any significant bugs and definitely any security issues would be fixed as soon as reported
even though most of the code is mine, some is not; I can only relicense code that I own
Gachuk 14:01 but would those get applied to the main branch
or a "paid" branch
taxilian 14:01 the main branch
it wouldn't make sense to try to isolate those things
Gachuk 14:01 no, I agree, I was just wondering how it'd work
taxilian 14:01 I will be making a "paid" version of fbgen, but even that will do nothing you couldn't do yourself; it just does it a lot faster and more reliably =]
and it'll be a web app
Gachuk 14:01 I have a personal project in mind, but theres also a work project this could be useful for, which would be commercial
fbgen is the project builder?
taxilian 14:01 yes
Gachuk 14:01 does it need to be faster, it's only a one off?
taxilian 14:01 webfbgen will do things like build your JSAPI interfaces for you, set up basic drawing stuff, set up multiple mimetypes if desired, inter-plugin instance communication, better install creation support, etc
I wasn't planning to make it particularly expensive =]
more than anything it's a thankyou for those who donate
or such is the intention
it will save a lot of time at the beginning of a new project
Gachuk 14:01 fair enough
taxilian 14:01 particularly for the surprising number of people who consider the need to install python to use fbgen a major stumbling block..
Gachuk 14:01 heh
id rather have a command line thing personally
plus most of my projects involve python anyway so that wasn't a issue for me
taxilian 14:01 right. in this case, command line would be difficult to do what I want it to
since it will support multi-level object hiererchys and a lot of configuration options and tweaks
but the command line version will never go away
Gachuk 14:01 cool
taxilian 14:01 yeah. anyway, it's mainly just an attempt to make the project pay for itself better; my main goal is to have the project pay for the server it sits on, which also hosts some of my other less profitable side projects
and of course provide some value-adds for those willing to donate
Gachuk 14:01 well it seems to be a fairly original project, though I dont know how far the audience extends to
taxilian 14:01 it's definitely a niche project; there seem to be two main sets of users so far: game developers and extension developers
the fact that you can embed a NPAPI plugin in a chrome or firefox extension makes firebreath a lot more useful to some people
kylehuff 14:01 yes, but I see it as only growing, as better/faster browser options start to lure people away from IE.
taxilian 14:01 but there are also video players, file upload stuff, etc
Gachuk 14:01 aye the personal project I have in mind falls into the game developer category:P
taxilian 14:01 hehe. neilg_ and wolfmanfx are both doing game stuff; probably others in here as well
it's fun to be able to easily just play in the browser
Gachuk 14:01 aye
taxilian 14:01 I wrote FireBreath, and before I wrote it not even I could do anything fast enough to be worth just playing
it's just far more complicated than it needs to be
Gachuk 14:01 ill be interested to look into the drawing and such, i saw there was some notes on the wiki about doing it on windows, so hopefully when I get some time (probably not tonight) I'll have a go
neilg_ 14:01 Right, we had an extension that worked for NPAPI browsers on Windows - but FireBreath was attractive because of ActiveX and because plugins are pretty complicated!
taxilian 14:01 cool. let us know how things go
Gachuk 14:01 aye if it peeks my interest I might be about more, hopefully not badgering you with too many questions:P
taxilian 14:01 hehe =] no worries; my only request is that if we help you a lot, you turn around and help back. That could be updating docs, donating, or even just answering other questions in the chat room. just try not to be a leech is all I ask =]
doesn't even need to be much
Gachuk 14:01 sure, that's a reasonable request
neilg_ 14:01 Richard's awesome, not only is he the project owner but he's also very helpful at tracking down weird issues. But more than that is the community itself is very, very helpful. We have a wide and varied background of skills!
taxilian 14:01 just bugs me when people pop in, do nothing but complain, and then never help anything =]
thanks, neil =] you're not bad yourself. :-P
Gachuk 14:01 understandably annoying taxilian
wolfmanfx 14:01 @taxilian ever thought about an forum?
taxilian 14:01 so don't be shy when you have questions
wolfmanfx: I have thought about it; the problem is I'm not sure I could keep up with a forum
Gachuk 14:01 do you mind idlers here? I have a home server and I sometimes stay connected to a channel
taxilian 14:01 not at all
I'm always (literally) connected
Gachuk 14:01 heh
taxilian 14:01 I use ZNC
Gachuk 14:01 I just putty and screen
taxilian 14:01 it also logs the channel:
wolfmanfx 14:01 i thing this will help to grow the community around firebreath (not everybody use irc :) )
taxilian 14:01 also works =]
wolfmanfx: if I could find decent forum software that could do email notifications we could probably try a forum
I'm not opposed to it
Gachuk 14:01 ironically I tend to prefer and use irc than forums
wolfmanfx 14:01 :)
taxilian 14:01 well, if we're around you get answers faster
and more directly
wolfmanfx 14:01 thats true
taxilian 14:01 and for FireBreath, we are usually around during the day
wolfmanfx 14:01 @taxilian do you this fulltime?
or hobby?
taxilian 14:01 part of each; I am currently working on a plugin for Facebook
which is part time
but about half of what I do is hobby
it's gotten me my last 3 jobs, though
come March I may be looking again, and I hope it will get me my next one as well
we'll see
if not I won't have as much time
wolfmanfx 14:01 you mean you did 3 freelance projects?
with FB?
taxilian 14:01 no, actually 3 company positions
the first one was the one that I wrote the initial FireBreath codebase for as a contractor before they hired me
kylehuff 14:01 IMO, forums are a lot of work, and with firebreath, I don't see the gain.. anything missing from the docs should be added.. anything you might possibly talk about on the forums should IMO, either A.) be fixed, or B.) put into the docs
taxilian 14:01 kylehuff: that is a valid point; the main question is whether or not users would find it easier to find things. it would basically serve the same purpose as the mailing list, but some people are (understably) scared of getting on a mailing list
and very few people know how to use google groups effectively not as a mailing list, though it can be almost like a forum if used correctly
starakaj 17:01 hey, umm, quick question
taxilian 17:01 okay
starakaj 17:01 to include a static .lib with my plugin
add its path to projectDef.cmake
taxilian 17:01
let me know if that doesn't answer your question; I need to go soon
starakaj 18:01 nope, there it is
hl2011 19:01 I have a question regarding add window control in the plugin window. Should I use ATL which is light weight?
taxilian 20:01 hl011: depends on what your'e doing
remember that COM is only initialized on IE, but you could initialize it on firefox of course
hl2011 20:01 for example, add button, add tree list control
taxilian 20:01 you can pretty much do it however you want to do it
just be careful not to block the main thread
hl2011 20:01 ok. thank you very much.
taxilian 20:01 let me know how it works =]