IRC Log Viewer » #firebreath » 2011-02-09

IRC Nick Time (GMT-7) Message
taxilian 00:02 probably should change BrowserHost so when it retains a JSAPI object it can retain the same one multiple times, since it's possible to put the same JSAPI object in multiple NPObjects
currently I think it uses a set, which won't work that way
should be changed to be a retain/release cycle
anyway, feel free to play if you want and submit a patch, or wait for me to get to it
mital 00:02 hm
taxilian 00:02 I may or may not be able to work that in the next few days; it's not really important to the demo I need to do for Facebook
it's always nice to have more people familiar with the codebase, though; more eyes spot more possible problems or improvements
mital 00:02 We have a way to go... would love to help :)
taxilian 00:02 feel free to ask any questions you like
there are also searchable logs for this channel, courtesy of iaincollins
and I could really use the help; there is way more to do than one person can manage and the other main contributors have gotten pretty busy of late
prem_: were you the one asking about building the activex part?
mital 00:02 http://code.google.com/p/firebreath/issues/detail?id=141&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars
taxilian 00:02 mital: perfect, thanks
mital 00:02 wc
taxilian 00:02 let me know if you decide you want to try to tackle it yourself as an introductory project =] probably not a real hard one, actually
I could maybe even slip it into 1.4 if it were done quickly enough
mital 00:02 taxilian: I am not sure i could take this up this early.. i have just started off with the project... give me some time... let me be familiar with some APIs and the codebase... though I would try giving it a chance
taxilian 00:02 hehe. okay =]
you'll find I'm quite mercenary when it comes to improving the project, so forgive any pushiness =]
mital 00:02 haha .. np :) one should always be passionate about his work
taxilian 00:02 this started as work and has become both work and a hobby; it's hard to beat =]
mital 00:02 u working fulltime on this ?
taxilian 00:02 more fun when I get paid to do it, though; I can get a lot more done
part time
contracting for Facebook
at the moment
that may change in the next few weeks, depending on how the next few days go
mital 00:02 hmm nice :)
taxilian 00:02 there is another largish company that has just started porting their plugin to FireBreath; I may be doing some consulting work to help them get it up and running. if done in time for an event coming up could have several million users on it
when Facebook's is done will have a lot more than that, if they continue the project
so these could be very good things for the project; that's a large test bed
mital 00:02 hmm yeah..
so the work to the framework is not opensourced and merged with 1.4 master ?
taxilian 00:02 all work I've done for anyone so far the framework part has been open sources
and 1.4 is the latest and greatest
though I have some major improvements to the mac window layer that will go into 1.5
don't have them into a fork yet; haven't finished processing the patch
just got it a couple of hours ago
mital 00:02 ok nice
taxilian 00:02 it's BSD license, so that doesn't have to be the case, but it usually makes sense
better to have more people using your improvements and be sure of the stability
it's really easy to keep your plugin code seperate
mital 00:02 yeah... lots of work has already been done to separate out pluigins
taxilian 00:02 my last framework didn't manage that well, so I spent a lot of time figuring out how to do it better on this one
it still could use some improvement, but that's life
btw, another great way to help would be blog posts if you have one =] I'd really love to see more written by people other than me about FireBreath
mital 00:02 yeah..
taxilian 00:02 prem_: looking back through the logs, looks like you're the one who was asking the question; I wasn't at my computer when you ask, but in case you come back, the DLL generated has both npapi and activex in it already. simply regsvr32 to install and you're good
I guess either he'll see that or not :-/
grr, no way I'm finishing this tonight. I better go to bed
taxilian 00:02 well, good to meet you mital; I hope to see you around more, and particularly hope you do indeed decide to start contributing to the project =] I could use the help. Either way, though, I'm glad it's turning out to be helpful
I'm off to bed and in the morning to California :-/
l8r
mital 01:02 thanks :) I would love to work on such project
prem_ 02:02 @taxilian.. saw your reply.. thanks for this wonderful project..
taxilian 06:02 Morning all
jshanab_wcw 07:02 Top 'o the morning to you sir.
pq 07:02 hello
john___ 07:02 hello all. I have what seems an easy question. If I want to create a new plugin project and I already have my FB stuff setup following the SVN guide, what's the easiest way?
CMAKE file editing, or using prep scripts some how
jshanab_wcw 07:02 I am not familiar with the "SVN guide" why not just use fbgen? doesn't it make a directory for each project?
john___ 07:02 I already ran fbgen, can I run it again on top of what I have?
wasn't sure if fbgen is meant to be a 1-time thing
jshanab_wcw 07:02 no! as far as I know fbgen once per project and prep every time you need new solution files.
But you did say "new plugin project"...
john___ 07:02 aha, that sounds easy enough then. Yes I want a new plugin, but I already have one plugin under /projects/plugin1
e.g I want to add projects/plugin2 alongside
I imagine you're right, I'll make sure I have a copy and try it!
jshanab_wcw 07:02 And BTW, when you do have more than one plugin as We do now, running prep rebuilds the solution fiels on all plugin projects it finds in the directory. Then it creates a build/projects/plugin1, build/projects/plugin2 type structure
john___ 07:02 yep, prep scripts I figured that out... if I wanted to avoid this I'd simply set up separate /projects dirs if I wanted to keep individual plugins distinct
jshanab_wcw 07:02 That part I am not sure about. I thought I could just specify the directory during the prep command, but it thew an error and I am under the gun right now so I didn't stop to figure it out
john___ 07:02 the SVN guide I mentioned talks about moving your projects dir elsewhere out of the main FB folder, so that aprt is fine. I tested running fbgen.py again and it seems fine
http://colonelpanic.net/2010/11/firebreath-tips-working-with-source-control/
pq_H 07:02 oh
where can I find this SVN guide it looks interesting
which platform are you developing for atm?
john___ 07:02 me? Windows only
but I'm a noob, I only got FB building yesterday :)
pq_H 07:02 you read the thing in red about "not changing Visual Studio Projects" and so?
running the prep scripts more than once is fine, but that will reset all changes you made to visual studio projects
that's the reason if you have something to add you'd better do it using CMake configuration files
john___ 08:02 yep. Actually I had one question on that. Say I want a new class X.h, X.cpp, is it easiest to create them as normal through VS, and then add them to the make file and regenerate? Seems I can add them to the vcproj as normal whiel creating them, and immediately get CMAKE to recreate the project "properly"
jshanab_wcw 08:02 Don't touch the project, you will be overwritten. I just add the file in vi, run the prep, click on ok in visual studio and it appears and then continue editing in VS
pq_H 08:02 he left
pq_H 09:02 hello taxilian
taxilian 09:02 Hello
Traveling still
How goes ?
pq_H 09:02 moving to mac today
still have to get CMake working
is that iPhone you are on?
taxilian 09:02 Yes
But driving now
iaincollins 09:02 !
pq_H 09:02 better not chat while driving
would be bad if he had a traffic accident before releasing firebreath-1.4
got some build problems on mac
iaincollins 10:02 pq_H: hehe, yes
taxilian 10:02 That was an annoying drive
At fb offices now but need to eat breakfast and find a place to sit
iaincollins 10:02 mm vending machine breakfast? :)
taxilian 10:02 Nah, fb has a full cafeteria
Bacon egg sausage etc
Will let you know ;)
iaincollins 10:02 hehe
hmm hometime (earlyish for me, but nothing heavy on for once)
taxilian 10:02 and finally at an actual computer
taxilian 11:02 so why is there only activity in the channel when I'm not here? :-/
=]
jshanab_wcw 11:02 Sorry, I was at lunch
:-)
taxilian 12:02 hehe
taxilian 13:02 good trick for those of you using both git and bash:
export PS1="\[\e[0;32m\]\u\[\e[m\]\[\e[1;33m\]@\[\e[m\]\[\e[1;32m\]\h\[\e[m\]\[\e[0;33m\]:\[\e[m\]\[\e[1;37m\]\w\[\e[m\] \[\e[0;35m\]\$(git branch 2> /dev/null | grep -e '\* ' | sed 's/^..\(.*\)/{\1} /')$ \[\e[m\]"
jshanab_wcw 13:02 Full Cafeteria, Does facebook have that thing where you can order lunch online and they deliver to your cube?
taxilian 13:02 hehe
no
but the cafeteria is close enough by I can go just get lunch whenever
john 13:02 Is it always such slow going making changes to projects under CMAKE? Every time I add one .lib and prep, it rebuilds several projects including the idl/acf stuff. Is there no way I can just build my project?
jshanab_wcw 13:02 It seems to do pretty good building only what it needs. What kinda of machine you got, keeeping in mind Visual studio is slower than GCC varients)
john 13:02 VS is pretty damn quick on all my other projects. I add one .lib to CMAKE and I get:
Build: 3 succeeded, 1 failed, 11 up-to-date, 1 skipped
so it's building 4 projects, all it needs to do is re-link my plugin
e.g if I manually change the project (just to test)
seems it is regenerating all the typelibs and so on each time
jshanab_wcw 13:02 Windows has a .lib paired with each dll and is an eager loader. It must recompile to the .lib stub, all that use. (I found this out the hard way, it is possible to comple against the old version of a lib and have "strange results when run against a newer dll)
taxilian 13:02 there is actually a bug of sorts right now
in the prep script
john 13:02 hmm, I dunno. I've been using VS for a decade (yikes that long) and under normal use it would not rebuild anything except my project, none of the other have cahnged
taxilian 13:02 that causes it to rebuild more than is needed
john 13:02 ah, go on?
taxilian 13:02 it's really my fault, I just haven't had time to fix it
what happens is that each time you run prep it regenerates the .idl file (and all other generated .h files) even if the source file hasn't changed
it didn't do that before because I was using built-in cmake commands to generate those files
john 13:02 can you suggest a workaround, even a hacky one? it's doing my head in :)
jshanab_wcw 13:02 Really! I stand corrected! Sounds like there will be some sppedups in the future :-)
taxilian 13:02 the problem is that I need to be able to support for loops, which the default doesn't support
so what I would do if it's driving you batty is to just modify your vs project, but keep very careful track of what you're adding
so then you just add it all into cmake at one time
the key is to not just try to pretend that cmake isn't there
and hopefully I'll find a better solution soon :-(
sorry about that
I realize it can be frustrating
john 13:02 yeah that could work. I understand about not trying to avoid CMAKE
jshanab_wcw 13:02 I have a bug that is driving me nuts in my plugin. I throw this out there in case anyone has a suggestion, I have been debugging since last thursday on the same bug.
taxilian 13:02 okay
I'm waiting for mine to build right now anyway ;-)
john 13:02 I guess I could also manually edit the dependencies each re-prep too
taxilian 13:02 you could, but I wouldn't
once you know what they are, just put them into the cmake file
they don't change very often, do they?
I would think it's just the initial "putting things together" phase that is the problem?
john 13:02 not once I get set up, but I'm adding libaries and so on, and keey doing it one at a time to have the minimal set
taxilian 13:02 right; so for now just add it in vs
but record what you're adding
jshanab_wcw 13:02 I am using avcodec to decode video and I can play it forward, but for some reason when I play backwards which triggers decode of previous chunks, I get some overwritten raw frames in my raw frame buffer and the image jumps. I have traced and traced and just cannot find where the pointers might be messed up. Anyone see avcodec overwrite memory
taxilian 13:02 periodically transfer it into cmkae
jshanab_wcw: no experience with avcodec, I'm afriad
john 13:02 I wonder if it's possible to write a script that will pull settings out of vcproj into the CMAKE ;)
on a more serious note...
taxilian 13:02 john: there is someone who has done something like that, but it doesn't work very well
I'd be open to any suggestions you have, though, since I know it frustrates a lot of vs users in particular
jshanab_wcw 13:02 Thats what I was using the logging for to trace thru all the pointer addresses and frame numbers.
john 13:02 if I build the .cmake file in VS it runs things and triggers the CMAKE VS macro... but the build is still in progress and it looks confused. Am I supposed to build from VS or manually run the prep from the cmd?
if the latter, why is the former working?
taxilian 13:02 it's supposed to work both ways
just doing it from vs doesn't always work well
and gets confused
john 13:02 ah
taxilian 13:02 cmake is far from perfect
I just haven't found anything better for what we need :-/
are you one of the johns I know already or a new one, btw?
john 13:02 hmm, I'm new but we've spoken briefly on IRC
taxilian 13:02 okay
good to see you again, then =]
john 13:02 I'm jdx on the mailing list
taxilian 13:02 I try to keep track of who people are, but I'm not good with names
if you tell me what problems we've discussed before I'm more likely to remember you ;-)
john 13:02 well I'm working on getting an Ogre 3D plugin together, my most recent thread was "Not getting mouse-up events when mouse is outside plugin window"
taxilian 13:02 ahh, yes
you probably just need to CaptureMouse or some such
john 13:02 how big is the community of people who actually come in here and on the list?
taxilian 13:02 I go on one lousy business trip and the second I'm out of good email contact activity explodes on the list :-P
it's hard to measure; there about about 150 people on the list
but you see how many post
in here we probably have between 20-30 who are "regulars"
maybe not that many
51 people have responded to the survey so far
john: http://www.mvps.org/user32/setcapture.html
john 13:02 well, my current game is trying to combine wxWidgets with firebreath
taxilian 13:02 let me know how that works; several have mentioned trying it
seems like it should be doable
john 13:02 the mouse thing was just a throwaway test to get the 3D engine running, merely noticed it was acting odd
I assume it should work but all the talk of threading and separate processes, maybe that could screw up
taxilian 13:02 hypothetically it shouldn't matter for events
as long as they aren't trying to perform non-threadsafe operations and conflict with other threads
brb, going to grab some lunch
kryssi 14:02 Hello guys, I have one question regarding drag and drop support in firebreath, is it easy to implement, I'm mainly thinking about win32 but a cross-platform functionality would be even better
taxilian 14:02 back
kryssi: I haven't actually tried it
but hypothetically it should be doable
kryssi 14:02 taxilian: doable as in few days or in few weeks? :)
taxilian: is there any support for win32 like message loops? is it easy to receive windows events?
taxilian 14:02 kryssi: of course
if it's a windowed plugin and you know how to do drag and drop with an HWND it should be pretty easy, I'd think
windowless is a little harder, but I think still possible
kryssi 14:02 windowless would be preferable
do you know of any examples that handle window events?
taxilian 14:02 hang on, in a meeting
kryssi 14:02 taxilian: sorry didn't mean to interrupt you
taxilian 14:02 no problem
so window events are easy when windowed
because they work pretty much like any message loop
kryssi 14:02 can you write a short example how to handle windowed event?
taxilian 14:02 kryssi: basically the most powerful / flexible way to do it (but the least cross-platform) is to just handle WindowsEvent, which will gives you all the information you need
http://colonelpanic.net/2010/11/firebreath-tips-drawing-on-windows/
have you built a project with fbgen?
just add a handle statement for WindowsEvent
it's not hard
look at the code, should be at least fairly self-explanitory; let me know if you have specific questions
I don't have time right now to write a full example
kryssi 15:02 thank you very much for the info, The link you provided is good starting point, yes I have built project with some custom activity, even COM activity but drag and drop was a question mark for me
taxilian 15:02 if you take a look at PluginWindow and the event stuff that is there by default (FBTestPlugin also has some more examples of events as does BasicMediaPlayer) it shouldn't be too hard to find how to get a WindowsEvent
the main thing is that I just don't know how to do drag and drop with anyway
anything
so I don't know what you'll need
I'd aim to do a windowed instead of windowless for now; the only downside is that nothing can "float" over it, but usually a drop target doesn't need to
that'll be easiest
mital 21:02 taxilian: hey
taxilian 21:02 howdu
I have that change made, just haven't been able to adequately test it
mital 21:02 oh nice :) have u pushed the changes ?
btw I have moved to 1.4 branch.. latest and greatest... I am facing certain difficulties
in windows I am getting errors related to atl
taxilian 21:02 I have not pushed them yet
because I can't test them
what errors?
mital 21:02 ClassAllowedInStream not defined..
not related to our code...
may be u know about this errors
taxilian 21:02 hmm. no, I've never heard that one before
does FBTestPlugin build?
mital 21:02 no
http://social.msdn.microsoft.com/Forums/en/vclanguage/thread/ad698507-d62c-4e7b-bb7a-12a03b939594
taxilian 21:02 that seems to point to a visual studio configuration issue, then. hmm
mital 21:02 this explains it
i tried all the given solutions .. does not work
i m in VS2005
sp1
taxilian 21:02 do you have the windows sdk installed?
or the ddk?
mital 21:02 i have winddk
7600.16385.1
taxilian 21:02 can you pastebin me the output of the prep script when you run it after nuking the old build dir?
mital 21:02 http://www.pastie.org/1547700/
taxilian 21:02 so I have two theories
one is that you have two versions of ATL in your path and somehow it's using both of them
the other is that the spaces in your path name might be causing some problems
could you try moving it somewhere with no spaces in the pathname just to be safe?
see if it changes anything?
mital 21:02 ok let me check
taxilian 21:02 as far as ATL goes, the only change that was made in 1.4 is that we now look for it and explicitely add the include dirs
you'd think that'd make the ones we pick get used first, but who knows?
mital 21:02 no it does not change
i moved the folder to c:\
so it must be 2 atls ..
taxilian 21:02 ok; hang on
mital 21:02 but i can see its picking up the path from -- Found ATL include dir: C:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/include
-- Found ATL lib dir: C:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/lib
-- Found MFC include dir: C:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/include
taxilian 21:02 right'
which is the right path
I can only guess that in your system include dirs you have the win ddk atl path as well
mital 21:02 no
taxilian 21:02 this isn't express edition, correct?
mital 21:02 no its professional edition
taxilian 21:02 ok, for test purposes, open cmake/Win.cmake and remove lines 17-125
make sure you completely delete the build dir before trying again
mital 21:02 no winddk path is there in %PATH
ok
taxilian 21:02 wouldn't be in %PATH%
it'd be in your vs system include dirs and/or lib dirs
system wide
mital 21:02 I have not added them explicitly... does they get added by installer ??
taxilian 21:02 not usually, but I don't know for certain
just trying to think what might have changed
that's the only thing
so try removing those lines and tell me what happens =]
mital 21:02 hmm tried that ... its same errors... so its not definitely firebreath code. its problem with my system somewhere
taxilian 21:02 seems to be the case
interesting
I have built with vs2005 lately, so it's not 2005 itself
I really don't know; it does seem like one other person had some similar issue, though
so if you figure it out please let me know :-/
mital 21:02 i have platform sdk in my path
VC++ Directories
taxilian 21:02 try removing them
mital 21:02 is that by anychance giving problem
ok
taxilian 21:02 it could be
mital 21:02 the file which is getting included is inside msvc\vc\atlmfc\include\atlcom.h
taxilian 21:02 yeah; that's the file that should be included
mital 21:02 so it may be some security patch of atl missing
taxilian 21:02 the only thing I can think of is that somehow one of the vs2005 atl libs is including a ddk lib and they are conflicting
mital 21:02 i checked the VC++ directories... there are no paths included from DDK
taxilian 21:02 if that's not it I have no idea
mital 21:02 hmm should I try uninstalling and reinstalling VS2005 ?
hmm let me try installing VCExpress 2008... let me try building with that
taxilian 22:02 worth a shot; it may try to grab your libs from 2005, though, I'm not sure what the precedence is there
mital 22:02 hmm
on the other front .. in mac I could be able to compile using XCode.. but debugging my code does not work
so I tried to attach XCode to the new helper process created by chrome...
taxilian 22:02 did you read the debugging page on firebreath.org?
you probably need to turn off lazy load symbols
mital 22:02 not for osx.. oh ok
so i can see 2 helper processes... i have attached to the 2nd one which is created after I loaded the page file:/// ... when I try to do getElementById.. this call just returns it does not print anything in webinspector
taxilian 22:02 if you're using chrome you'll want to start it with the --plugin-startup-dialog option (I think that's it; check the debugging page)
mital 22:02 so i unchecked lazy load symbols ... should I rebuild
?
or restart xcode ?
taxilian 22:02 shouldn't need to
mital 22:02 ok
oh my active architecture is x64
mital 22:02 logging is by default enabled ? where can i find logs ?
taxilian 22:02 logging is not enabled by default
mital 22:02 ps. sorry for asking stupid questions
taxilian 22:02 well, it is in FBTestPlugin
mital 22:02 ok
taxilian 22:02 no, they're just things we havne't documented well yet
you need to add_firebreath_library(log4cplus) in your pluginconfig
and then if you want file logging implement an extra factory function to tell it where to log to
mital 22:02 oh ok coz there is no other way to findout the pid of my plugin process
taxilian 22:02 http://npapi.com/x/HAIh
on chrome?
mital 22:02 yeah
taxilian 22:02 http://npapi.com/x/MYAG
read the section on chrome
it tells you how to do it
I just did too, actually
you need a command line argument
mital 22:02 i need to pass command line argument to enable logging ?
taxilian 22:02 no
mital 22:02 i simply wanna dump logs to a file
taxilian 22:02 you need to pass the command line argument so that chrome will pop up a dialog with the pid in it
and wait for you to attach
for logging you just need to override the first method I told you about
use logmethod_file and the value should be the filename
you just keep alluding to not being able to debug with Chrome and I've already told you how to fix it twice =]
so I was confused
mital 22:02 so chrome does not popup with the pid ...it only says that following pages are unresponsive.. also the documentation says : 3. Look for the log message with the PID of the plugin process
taxilian 22:02 hmm. didn't notice 3
it's wrong
you just need to get the startup command correct
and it'll pop up a dialog
sorry about that
mital 22:02 it has popped up the dialog when i started chrome with the command "open /Applications/Google\ Chrome.app --args --plugin-startup-dialog"
so the plugin is in paused state until I attach a debugger
is that correct ?
taxilian 22:02 yep
that's it
mital 22:02 so i have to rely on logs to get the pid
taxilian 22:02 does the dialog not have the pid in it?
mital 22:02 no
taxilian 22:02 weird; it does in windows
mital 22:02 it only says following pages are unresponsive
if u want u can kill pages ;)
taxilian 22:02 huh. been awhile for me debugging chrome on mac
mital 22:02 ok np.
taxilian 22:02 okay, well, I guess logging is an option =]
mital 22:02 and the log file is also not created i think coz the plugin has not started
outMethods.push_back(std::make_pair(FB::Log::LogMethod_File, std::string("/Users/mital/th.log")));
taxilian 22:02 ahh, yes, that's true
mital 22:02 i have added above line
is that correct
taxilian 22:02 yeah; you added that to your factory, not to factorybase, right?
mital 22:02 i have added in base :/
taxilian 22:02 don't do that
mital 22:02 should I move it to Factory ?
ok
taxilian 22:02 yes
your factory extends factorybase
that's what it's there for
=]
use some discipline, man! ;-)
(sorry, i've been awake and programming too long)
I need to go see if this hotel sells bottled water anywhere; be back in a few
mital 22:02 aare np ;) so the Factory class is used for various configurations stuffs
ok
np
i have already taken lot of your time
thanks :)
taxilian 22:02 no problem at all =]
I'll be back in a bit
mital 22:02 okie dokie
taxilian 23:02 back
I'll say this for the hotel; they are excruciatingly polite
vadi 23:02 hi
need help: i am developing an plugin for my biometric finger print reader... i got an BYTE array which given by my finger print reader.. i have to pass it to java scrip.. when i do so it will show some symbol like �
BYTE array contains HEX data
need help: i am developing an plugin for my biometric finger print reader... i got an BYTE array which given by my finger print reader.. i have to pass it to java scrip.. when i do so it will show some symbol like �
BYTE array contains HEX data