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

IRC Nick Time (GMT-7) Message
Hrishikesh 00:02 hi fellas
i'm novice firebreath user. to be honest started using it before 2 hours
i want to know is there build in support for sqlite in the firebreath
taxilian 00:02 there is no built-in support
it shouldn't be hard to link in sqlite
sqlite is designed to be really easy to embed
FireBreath is just a C++ framework, so any c++ library that isn't in some way incompatible with running inside a browser process should work
the main issue you'll have to watch is file permissions; in IE protected mode you'll only be allowed to write to Appdata/LocalLow
Hrishikesh: I also just approved your message to the list; I had to put it on "approve first email" because we were starting to get a lot of spam
Hrishikesh 00:02 taxilian: there is built in support for sqlite in xulrunner
can i use it somehow?
taxilian 00:02 most likely not
if it's possible, I don't know how
Hrishikesh 00:02 xulrunner sdk is not a part of firebreath?
taxilian 00:02 that would also tie your plugin unneccesarily to firefox
Hrishikesh 00:02 i mean its not based on xulrunner?
taxilian 00:02 firebreath creates NPAPI plugins
xulrunner is a firefox thing
not related to plugins in any way
Hrishikesh 00:02 ok
taxilian 00:02 or at least not directly related to plugins
if you were writing an *extension* then maybe you could do something there
Hrishikesh 00:02 ok
taxilian 00:02 seriously, though, it really shouldn't be hard to link in sqlite
Hrishikesh 00:02 actually i used xulrunner based tutorial to write npapi plugin
taxilian 00:02 I haven't done it, but it's supposed to be pretty braindead simple
Hrishikesh 00:02 but then i found firebreath
taxilian 00:02 either the tutorial was really old or wasn't really xulrunner
Hrishikesh 00:02 do you know any good sqlite lib?
taxilian 00:02 well, there is the official one…
that's where I'd start
Hrishikesh 01:02 sorry for naive questions but i'm very new to all this and doing c++ after 4 years finishing my grad
taxilian 01:02 sqlite was actually designed first and foremost as an embeddable c/c++ library
Hrishikesh 01:02 yes
taxilian 01:02 so it shouldn't be hard to find =]
where are you located?
Hrishikesh 01:02 actually i want to use sqlite in my google chrome plugin
ii am writing google chrome extension
taxilian 01:02 okay; first thing here
there is a really big difference between a google chrome plugin and a google chrome extension
Hrishikesh 01:02 extension not plugin
taxilian 01:02 for details, read:
okay; I think there is some info on doing that on the firebreath site
I haven't done anything with extensions myself
but basically you can use an npapi plugin as part of an extension
Hrishikesh 01:02 i am writing an extension where i want to store certain data in sqlite database
we can use plugin in extension
taxilian 01:02 is this a school/university/whatever project, then
Hrishikesh 01:02 yes
taxilian 01:02 are you considering releasing it as open source?
Hrishikesh 01:02 i am guiding few grad students
in fact i am planning to write a blog post about how to use plugin in chrome extension
taxilian 01:02 awesome =] there are far too few blog posts in the world that mention FireBreath
Hrishikesh 01:02 :)
firebreath is awsome
i wrote a plugin in less than one hour
taxilian 01:02 the reason I ask about whether or not you're willing to open source your plugin is that if you are, I can (and will) help you with it more
Hrishikesh 01:02 before that i banged my head for last one week
taxilian 01:02 because when you're done it can stand as an example for other users
yeah; plugins can be a beast. that's ultimately why I started FireBreath
Hrishikesh 01:02 only concern about firebreath is size of final output
its very large
cant we reduce it
taxilian 01:02 couple of things
first, is that the minsizerel build or the debug build?
debug will be a *lot* bigger
which platform?
Hrishikesh 01:02 windows
right now its a debug build
taxilian 01:02 yeah, when I compile my (large) plugin with minsizerel and then compress it into an installer it's about 800K
Hrishikesh 01:02 are you Richard?
taxilian 01:02 yes
Hrishikesh 01:02 ohh my man
thanks alot
for such wonderful framework
its awsome
i will buy you a lunch
taxilian 01:02 glad you like it =]
Hrishikesh 01:02 i would like to contribute
i have done lots of extension work for chrome and firefox
taxilian 01:02 hehe. well, there is a donate button on the web page =] but honestly if you could open source your results (if that's an option) or at least write a good blog post about FireBreath that would be even better
Hrishikesh 01:02 yes definitely i'll write a blog post
taxilian 01:02 the main thing FireBreath lacks is visibility from people other than me in the blogosphere, etc, to show that other people are using it
and good examples for new users to look at
Hrishikesh 01:02 i think i can push it in my mozilla friends group
this is dead easy
taxilian 01:02 if you're good at extensions another way you could help would be to write some docs and/or create some tools to help FireBreath users create extensions with it
all my experience is specifically plugins; I don't know extensions
Hrishikesh 01:02 i like the way you made it easy for new users
i will follow this method in all my next projects
taxilian 01:02 so there are no tools for creating XPI installers, chrome installers, etc
Hrishikesh 01:02 yes i can write
if you have any idea for such extension then tell me i'll develop it as firefox and chrome extension
taxilian 01:02 well, I figured that's the best way to get people to use it. If it's so easy to pick up that you can literally have a working plugin in under an hour then people are likely to keep using it
Hrishikesh 01:02 yes exactly because most of users try the new framework and if it doesnt work in first shot they just leave
taxilian 01:02 mainly just think about any tools or know-how that are needed while you're doing your thing that aren't available on
Hrishikesh 01:02 can i have your email id?
taxilian 01:02 is a wiki, so you can just add content where it makes sense
sure; [email protected]
Hrishikesh 01:02 ok
i'll drop you an hello email
taxilian 01:02 I really prefer the email list for firebreath stuff when possible, though, so that there is a searchable record for other users
as I said, I just whitelisted you on the list so your email should have come through now
Hrishikesh 01:02 ok
taxilian 01:02 also keep in mind that I'm in Utah, so I'm not actually online at this time
it's after 1am here =]
Hrishikesh 01:02 ohh
taxilian 01:02 (Utah, USA)
Hrishikesh 01:02 then i should not keep you wake
taxilian 01:02 no, you're fine
Hrishikesh 01:02 will talk tomorrow
taxilian 01:02 I'm not feeling well, couldn't sleep
Hrishikesh 01:02 ahh
taxilian 01:02 so I'm on for a few minutes anyway
Hrishikesh 01:02 you need to take rest man
taxilian 01:02 I'm glad I cought you
Hrishikesh 01:02 rest is a half doctor
taxilian 01:02 yeah; unfortunately the illness is making it very hard to sleep
so what is your extension going to do?
Hrishikesh 01:02 ahh still dont sit in front of computer. light of screen will stop the healing proces
taxilian 01:02 it's turned very low =]
hmm. my son is stirring; gotta go put him back to sleep
I'll be back in 5 minutes
Hrishikesh 01:02 we are trying to gather data of user habits
i am writing an algorithm to find pattern in user habits
its related to auto filling of form data
hey one of my friend is waiting for me for lunch
catch ya later
taxilian 01:02 ok
take care
I look forward to talking to you more
good luck
Hrishikesh 01:02 take rest and get well soon
taxilian 01:02 will try =]
Hrishikesh 01:02 once again thanks for this project
good night
DuckAssassin 02:02 Erm, not really a big issue, but just so you know: fbgen appears to fail if you try to use it when the cwd is not the containing dir.. Presumably due to it not being able to locate the templates.
os.path.abspath(os.path.dirname(sys.argv[0])); sys.path.append(os.path.abspath(os.path.dirname(sys.argv[0]))) # would fix it, I guess...
taxilian 02:02 feel free to submit a patch =]
that doesnt' surprise me… just doesn't sound like a big enough issue to take me away from the other stuff higher on my list right now
you could also submit an issue; those eventually get taken care of
some faster than others, depending on severity
it is good to know, though
anyway, I'm headed to bed. glad that's the worst issue you've found =] g'night
(or g'day, depending on your time zone)
taxilian 10:02 morning all
iaincollins 10:02 morning
how did your trip to the doctors go?
taxilian 10:02 amazing the difference a few drugs can make
I just hope my body heals before I run out this time
pnapieralski 13:02 Hello
taxilian 13:02 hoefy
pnapieralski 14:02 Does anyone know if it's possible to return-by-reference an array to javascript?
taxilian 14:02 yes; you have to create the array yourself instead of returning a VariantList
you can create an array using host->getDOMWindow()->createArray()
pnapieralski 14:02 Oh okay, nice! Thanks for the info, that should be what I need.
taxilian 14:02 you're welcome
good luck
note that there are performance penalties for accessing a JSObject from other than the main thread
pnapieralski 14:02 Hmmm, that could be a problem. I'll try it out real quick and see how slow it is.
taxilian 14:02 well, it's not neccesarily going to be really bad
just be aware of it
because all access to javascript has to go through the main thread
if you're doing a lot of array access I'd put it in a function and then call that function on the main thread using host->CallOnMainThread()
otherwise each call will get marshalled to the main thread behind the scenes which will add a lot more overhead than just doing one cross-thread call
pnapieralski 14:02 Oh snap. I'll give that a try too.
I better brush up on my functors.
Or wait, you can just pass the function to host->CallOnMainThread(SomeFunction) ?
taxilian 14:02 pnapieralski_: just use boost::bind
and then eys
it's really easy
host->CallOnMainThread(boost::bind(&MyClass::func_to_call, this, param1, param2, param2))
and it will return the return value if needed
did you get that?
pnapieralski 14:02 Yea, I think I got it.
I'll mess with it for a bit.
taxilian 14:02 it should be pretty easy
but there is a reason that we tend to prefer not to pass things by reference to javascript =]
pnapieralski 14:02 Hehe, duely noted =p
taxilian 14:02 do I know you already by a different name, or are you new?
pnapieralski 14:02 I'm brand new. I just started playing with this yesterday actually.
taxilian 14:02 well welcome, then =] always fun to see new faces
pnapieralski 14:02 =]
taxilian 14:02 what do you think so far?
pnapieralski 14:02 I like it a lot. The video tutorials helped.
So, props to the creator of those.
taxilian 14:02 good; glad I took the time to do those, then =
I should do some more
they just take so much concentration and time
pnapieralski 14:02 Hehe, you're a celebrity.
taxilian 14:02 lol. perhaps in this one channel in this one corner of the Internet, I suppose :-P
what are you planning on making with FireBreath?
pnapieralski 14:02 Heh, well. I'm exploring something for my research (I'm a CS PhD)...
I'm hoping to get some 3D data from a proprietary SDK and display it in a browser using o3d
taxilian 14:02 cool. if you decide to open source your results we're always in need of good examples =]
pnapieralski 14:02 I definitely will =)
taxilian 14:02 awesome =] let me know what help you need, then
I will warn you ahead of time that ogl is a bit of a pain in the browser
particularly on mac
pnapieralski 14:02 Hehe yea, I've noticed so far. I've been pretty lucky so far though.
taxilian 14:02 but there are several people who have gotten it working to various degrees
pnapieralski 14:02 As long as I stay on Chrome in windows, I'm good.
taxilian 14:02 lol
pnapieralski 14:02 lol
Well, I gotta roll out for now. Thanks again for the help so far. Hopefully I'll have a concept done next week.
taxilian 14:02 take care
good luck
keep us posted
and feel free to add yourself to the "FireBreath Users" page
and/or examples when you have something up somewhere
iaincollins|away: as a code contributor, you are welcome to an email address if you'd like. as an added perk, all email addresses also work,, and as well
iaincollins 15:02 taxilian: oh thanks, yes that might be a good idea, just from a project managment one PoV :)
taxilian 15:02 what username do you want?
it's a google apps account, so you can set up forwarding or whatever as you like
iaincollins 15:02 Is there an existing convention?
taxilian 15:02 not really. most common is to use your irc nick (I'm either richard or taxilian, amackera is amackera, georg and jarom are georg and jarom)
if it's reasonable I don't mind setting up an alias as well
there are only 5 or 6 accounts on the domain so far
iaincollins 15:02 cool iaincollins (or iain.collins) is fine then
taxilian 15:02 I believe both will automatically work
how is Iain pronounced, btw?
iaincollins 15:02 oh "ein"
taxilian 15:02 cool
iaincollins 15:02 (it's also spelt that in way in some parts of Scotland) - just an old variant of ian that's more popular in Scotland :)
taxilian 15:02 yeah, I've seen it before, just never heard it pronounced
I'm not actually certain how georg is pronounced either :-P
iaincollins 15:02 most non-UK people see the captial i and assume it's an L so pronuce it "Lain" the first time :)
lol no me neither, I've been fudging it in my head
I've been imagning it's french / french canadian :)
taxilian 15:02 lol. well, it's German, that much I know
iaincollins 15:02 I think I might have mentioned, but we are going through some big redundancies at work (about 10-15%)
taxilian 15:02 does that mean your job may be at risk?
iaincollins 15:02 I seem to have dodged a bullet :-)
I'm moving to another department, "TV and Online" (from Products), but that's great for the Plug-in
taxilian 15:02 huh. sounds interesting. so will the current plugin continue?
iaincollins 15:02 so we are currently scoping out functionality, now people have seen a really simple demo it's now a tangible product
it seems so, but it means I've had no specific development work to do on it for bit
we've just been working out use case scenarios, etc. to work out what would be most useful
but seems to be good news, and looking forward to it :)
taxilian 15:02 cool =] congrats
iaincollins 15:02 ty :)
You might want to update the IRC viewer with the current version, it should just be extract and go (with the one config directive to point it to the log dir)
taxilian 15:02 too much trouble to update it in git?
iaincollins 15:02 oh no I did
taxilian 15:02 oh, okay
that should be easy, then
ahh, yes, I see that
iaincollins 15:02 my bad usage :)
taxilian 15:02 I think I'm going to rename config.ini to config.ini_dist so it doesn't change my local copy automatically; that cool?
iaincollins 15:02 oooh good idea
I'm greatful for the push to finally start using git for commiting :)
taxilian 15:02 git is really a great tool
the more I use it the more I like it
iaincollins 15:02 I've been really dragging my heels on that, but yeah I really like it
taxilian 15:02 I have it set up on my server so I can just push to arbitrary locations under my user dir — gives me easy git access from anywhere via public key encryption, I keep just about everything in there now
iaincollins 15:02 and have only messed up once! (commit -m instead of commit -am)
oh cool
taxilian 15:02 I try to avoid -am because it's easy to commit something you don't want to
if you do a git status and then git add the files you want that's less likely
iaincollins 15:02 *nod* I can see that with something a lot more involved, like Firebreath
taxilian 15:02 yeah; less important for smaller projects
for FireBreath it's critical at times =]
iaincollins 15:02 I've been Tower (for Mac) which really helps managing moving things in an out of staging visually
taxilian 15:02 huh; hadn't seen this before
I may have to download it
iaincollins 15:02 the CLI UI is just fine, but it's nice to be able to see staging, diffs and all the branches at once
taxilian 15:02 yeah, I've been using the unofficial dev branch of git-x
iaincollins 15:02 I did a shoutout on twitter and asked for recommendations for GUI clients :)
taxilian 15:02 good thinking =]
git extensions on windows is pretty decent
iaincollins 15:02 Oh will have to do that too
taxilian 15:02 this seems like a pretty nice program
too bad it'll cost once it's life
iaincollins 15:02 yeah, I think I might spring for it it
I bought Versions (similar, but for SVN) for the Mac and was very happy with it (for some typical shareware fee)
taxilian 15:02 we'll have to see how much it is
iaincollins 15:02 Yeah, hopefully it's < 50 USD
taxilian 15:02 with volume discounts
iaincollins 15:02 hehe
taxilian 15:02 it's the sort of thing enough people at work would use to be worth a site license
iaincollins 15:02 oops something wrong at ?
Log dir path? Or am I just being pushy and you are doing that? :)
(and would you like me to rename the config.ini file?)
taxilian 15:02 sorry, I got sidetracked before I finished
thanks for the reminder
I'm still not quite all here
iaincollins 15:02 oh sorry no worries, just in case you had moved on :)
config.ini-dist seems a good convention, I should have done that (will put in a check for it too)
taxilian 15:02 should work now
ok, pushed rename and .gitignore change
iaincollins 15:02 oh great :) ty
taxilian 15:02 additional sort options would be nice too
just to add some things to the list =]
iaincollins 15:02 yeah :) should get all that done no problem (URL, sort by Date/Relevance (improved) and live stream)
taxilian 15:02 cool
iaincollins 15:02 only thing that might not work fist time will be date/time handling, but will see how that goes
taxilian 15:02 I appreciate your help with this
iaincollins 15:02 *first
no worries, it's fun and easy to work on at the moment and nice to have a useful thing to do
taxilian 15:02 yeah; side projects can be fun
and this one should be one that once we get it to where we like it it doesn't require constant babysitting
iaincollins 15:02 I would be interested to know what your server returns for <?php echo date("T"); ?> (as in, what that value is on non GMT servers in practice)
Hopefully it's something like EST / EDT (for that and your logfiles timezones?)
taxilian 15:02 I think it's set to MST
which is my time zone
most of my PHP scripts have to take time zone into consideration, so I'm not 100% sure, but I haven't gotten any errors about it so I probably configured it
iaincollins 15:02 Oh great, thanks, even better.
Very helpful :) I have the luxury of GMT for mine
although in the UK that just means people are lazy and set UTC and totally forget when we have Daylight Savings Time and everything goes out by 1 hour
taxilian 15:02 lol
yeah; I mainly just figure that since I'm usually the one people look for for questions may as well leave the time zone set to my time
iaincollins 16:02 weird, couldn't figure out how to do "git merge origin/master" in Tower, I think it's a bug though (emailing them)
seems to incorrectly populate the merge drop down with only my local branches, but maybe I'm using it wrong somehow, due an odd flow in the GUI
just in case you try it and find that too :)
taxilian 22:02 redirects to FireBreath… I just think that's awesome :-P
Hrishikesh 22:02 taxilian: hey buddy how you feelin now?
taxilian 22:02 better than yesterday
how are things going?
Hrishikesh 23:02 taxilian: banging my head against sqlite lib
taxilian 23:02 :-/
Hrishikesh_ 23:02 sorry got disconnected
taxilian 23:02 happens
Hrishikesh_ 23:02 hmm
taxilian 23:02 whats the problem?
Hrishikesh 23:02 my isp is dropping connection
i hate this
in india its very difficult to get good quality service
taxilian 23:02 :-/ you could try the web client; since it's AJAX based it might be less prone to that
Hrishikesh 23:02 no actually i'm using 3g connection
taxilian 23:02 ahh
Hrishikesh 23:02 and its not that much ogood
taxilian 23:02 :-/
Hrishikesh 23:02 speed is good but connection drops are frequesnt
its 3.6mbps
taxilian 23:02 not bad
when reliable =]
Hrishikesh 23:02 :)
so you are wowrking with facebook?
i would like to know who is developing browser addons for them?
they are intersted in such work?
taxilian 23:02 I am the only one currently working on a browser plugin for them
and they are still deciding if they want to use it or not
we shall see
Hrishikesh 23:02 ok
they have a one toolbar
i;m not sure who developed it
taxilian 23:02 hmm. haven't heard of it, so I don't know
Hrishikesh 23:02 hmm
why they need a plugin?
taxilian 23:02 photo uploads
so it can resize locally before uploading
also better batch uploads
Hrishikesh 23:02 hmm yes currently they must be using the iframe method
taxilian 23:02 there are two methods currently in use; a flash uploader and a standard uploader that probably uses an iframe
Hrishikesh 23:02 ok
taxilian 23:02 this method actually also uses an iframe
Hrishikesh 23:02 what is problem with flash?
taxilian 23:02 and a web server embedded in the plugin
not very flexible
Hrishikesh 23:02 limiting?
one quick question i;ve regstered a plugin using regsvr32 how to unregister it
taxilian 23:02 image size options, quality options, filesystem access options, size of upload queue, etc
regsvr32 /u
Hrishikesh 23:02 thanks
i am returning a simple interger from a function but when i execute that method in js its returning me undefined
i;ve return a mehtod named add and its returning simply interger 10
taxilian 23:02 can you pastebin me the relevant code?
Hrishikesh 23:02 ok
taxilian 23:02 how are you registering it?
and how are you calling it from javascript?
hmm. I need to take care of something; I'll be back in 10-15 minutes, alright?
Hrishikesh 23:02 ok
i'm copying the dll to the plugins folder of the firefox and written a js sample file
taxilian 23:02 I mean how do you register the add method
in your constructor, you should have a registerMethod call
and then how do you call it in js
Hrishikesh 23:02 worked
intially my add method was accepting 2 params
so i was passsing them in js
so it was trying to find method in the plugin with two params
taxilian 23:02 what browser?
that should throw an exception, not return undefined
Hrishikesh 23:02 firefox
taxilian 23:02 strange
Hrishikesh 23:02 3.6.13
taxilian 23:02 you should have gotten an unhandled exception
check your js console
Hrishikesh 23:02 it returned me undefined
closed that session
let me do it again
not giving exception
its just returning undefined
taxilian 23:02 hmm. could you file an issue for that?
so I don't forget to look at it?
Hrishikesh 23:02 what i am doing is i have method add with no params in plugin
and in js i am calling plugin.add(1)
ok will do that
taxilian 23:02 actually, maybe that should work and just ignore the params...
I need to think about it
Hrishikesh 23:02 yes
taxilian 23:02 but it definitely shouldn't just fail silently
Hrishikesh 23:02 because in js
taxilian 23:02 exactly
Hrishikesh 23:02 in js functions jus ignore the params
taxilian 23:02 regardless, though, it should not be doing what it is doing
Hrishikesh 23:02 yes
let me file an issue
taxilian 23:02 anyway, be back in a few