IRC Log Viewer » #firebreath » 2010-12-14

IRC Nick Time (GMT-7) Message
Sinisa 02:12 hi all
anyone worked on Chrome (Mac) plugin?
kalev 02:12 taxilian: up already? :)
Sinisa 03:12 yawn
damn, i've been trying to make CAOpenGLLayer work in InvalidatedCA (Chrome and FF4.0), but no luck. None of funcitons in it is called (never calls can-draw, or draw-in-context or any other gl-related function)...
anyone has experienced this on Mac?
it works on Safari though, in CA.
if the only diff between CA and ICA is to call InvalidateWindow in ICA - and I do that in timer call - what am i doing wrong?
the rest of the code is the same as for CA.
or am i mistaken? anything else i need to change for ICA?
taxilian 08:12 kalev: nah, I was still up and just checking to see if there was anything interesting going on right before bed =]
amackera 08:12 Is there a way to get git from complaining about src/3rdParty/boost ?
I guess I could add it to my .gitignore...
That might cause bad problems though
Silvio_ 09:12 Hi friends
I've logged as Richard Bateman suggested
taxilian 09:12 hey, Silvio_
definitely a weird issue
Silvio_ 09:12 I'm strugling with it for almost a week
taxilian 09:12 particularly since looking at the link flags, it looks like libboost_system is there
say… are you running the prep script with -D USE_SYSTEM_BOOST=1?
Silvio_ 09:12 No I just ran ./
taxilian 09:12 not sure why I didn't think of this sooner
if you are going to use system boost, you need that flag
otherwise it will use the firebreath internal boost
Silvio_ 09:12 ok, So I run ./ -D USE_SYSTEM_BOOST=1
just it?
taxilian 09:12 not 100% certain, but I think ./ -DUSE_SYSTEM_BOOST
looking at the docs
and assuming that whomever put that there knew what they were talking about
_neilg_ 09:12 I think it needs to be -DUSE_SYSTEM_BOOST=1
Silvio_ 09:12 Let me try it
taxilian 09:12 try both and let us know =]
_neilg_ 09:12 From my own experience with CMake it seems to drop defines if you don't actually define a value
Which is why you need to use -DUSE_VERBOSE=1 where -DUSE_VERBOSE would make more sense... but just doesn't work
Silvio_ 09:12 It didn't work
taxilian 09:12 try deleting your build directory first
Silvio_ 09:12 -DUSE_SYSTEM_BOOST gives an error
taxilian 09:12 what error?
Silvio_ 09:12 I did it
Parse error in command line argument: -DUSE_SYSTEM_BOOST Should be: VAR:type=value CMake Error: No cmake script provided. CMake Error: Problem processing arguments. Aborting.
_neilg_ 09:12 Yes, it needs to be -DUSE_SYSTEM_BOOST=1
Silvio_ 09:12 -DUSE_SYSTEM_BOOST=1 didn't gave this error
but did not solve my issue
_neilg_ 09:12 So, you've deleted your build directory then you ran "./ -DUSE_SYSTEM_BOOST=1"?
Then went into your build directory and ran "make"?
Silvio_ 09:12 yes
Same error
with boost system
taxilian 09:12 what version are you using?
Silvio_ 09:12 Latest one 1.3.2a
taxilian 09:12 hmm. interesting. can you pastebin the full build log?
_neilg_ 09:12 I would suggest looking at your CMakeLists.txt (or whichever file you're telling CMake to link against boost) and make sure that boost::system is listed before boost:filesystem
taxilian 09:12 is boost::system a dependency of boost::filesystem?
Silvio_ 09:12 I just saw that the correct flag should be -DWITH_SYSTEM_BOOST and not -DUSE_SYSTEM_BOOST. I'll try it
_neilg_ 09:12 The link order matters with GCC though most of my more recent experience is with Xcode and a combination of otool and ldd deals with the link orders for me... so I've managed to avoid it pretty much
Silvio_ 09:12 I think it is
_neilg_ 09:12 Oh, that's almost certainly it. I just opened up my build script and that's what I see too
taxilian: I think it is, yes
taxilian 09:12 hmm. yeah, I agree, though; this really sounds like a link order issue
Silvio_ 09:12 Ok, I'll try to change the order of boost libs too
taxilian 09:12 nitrogenycs: almost done converting streams to use shared_ptr everywhere...
Taleb 09:12 Hi all
I have a question
taxilian 09:12 congrats! I collect those
Taleb 09:12 ;-)
i'm building a project that depends on some libraries (*.lib) so i add them in: Win/projectDef.make
like this:
it gives me this error
when parsing string
Invalid escape sequence \.
taxilian 09:12 cmake uses / for all paths
_neilg_ 09:12 Yep
taxilian 09:12 even on windows
_neilg_ 09:12 I was just typing that. Taxilian got there first. ;)
Taleb 09:12 Policy CMP0010 is not set: Bad variable reference syntax is an error. Run "cmake --help-policy CMP0010" for policy details. Use the cmake_policy command to set the policy and suppress this warning.
mmm, okay i will check again
taxilian 09:12 huh. who'd'a thunk it? apparently infinite recursion causes an eventual crash… :-P (I must still be asleep)
Taleb 09:12 thanks, it works :)
taxilian 09:12 glad we could help
Taleb 09:12 another question
now i build the project, and succeded
but i didn't find the msi file ? i already installed WIX and it's added to the VS 2010
what should i do else ?
taxilian 09:12 the wixinstall project is added to the solution?
it would be named <pluginname>_WiXInstaller or something along those lines
Taleb 09:12 where should i find this ?
taxilian 09:12 in visual studio
next to the other projects
if it isn't there, you probably haven't run the prep script again after installing WiX
or you might need to close and re-open your cmd prompt, since aparently some people have to use the WiX environment variables to find it (we're still investigating this)
_neilg_ 09:12 taxilian: In regards to your email about catching exceptions... I'd suggest some optional code that gets included by the prep scripts if somebody passed a define (such as "-DCATCH_EXCEPTIONS=1") which is off by default
I don't mean optional code, I mean optional define... Duh.
Taleb 09:12 one minute, in visual studio, i did a search on _WiXInstaller and nothing found
in environment variables it is already exists
_neilg_ 09:12 At your command prompt if you type "set" and hit enter, does it appear there?
Taleb 09:12 yes
WIX=C:\Program Files (x86)\Windows Installer XML v3.6\
_neilg_ 09:12 And you re-ran the prep script (after clearing out your build directory?_
Taleb 09:12 yes, prep2010.cmd projects mybuildex1
_neilg_ 09:12 But you had deleted mybuildex1 before running that script? Sorry for asking; I just want to be sure
Taleb 09:12 yes it is a new folder
shoudl i do something regarding the script prep2010.cmd ?
taxilian 09:12 you shouldn't need to; we seem to be having strange issues with the beta versions of WiX
Taleb 10:12 what WIX do you recommend to use ?
taxilian 10:12 I've had best success with the latest stable
Taleb 10:12 okay, i will check again and come back :)
taxilian 10:12 good luck
we definitely need to figure out what is causing these issues, though, and fix them
Taleb 10:12 :)
taxilian 10:12 amackera: I found some really good information on how to support windowless plugins on IE
it's in a book, but I could probably photograph it and bring it
send it
taxilian 10:12 nitrogenycs: you around?
actually, _neilg_ you might be able to help me as well… I'm trying to understand how a BrowserStream object is terminated
nitrogenycs 10:12 taxilian: yes
taxilian 10:12 so I'm changing things to BrowserStreamPtr (boost::shared_ptr)
but the problem is that if the user just drops the ptr, it releases the object
nitrogenycs 10:12 right
taxilian 10:12 and thus crashes (since the browser keeps trying to reference it)
nitrogenycs 10:12 yes
you need to hold a reference to the stream somewhere
taxilian 10:12 so I'm trying to figure out if I can safely have it hold a reference to itself until NPP_DestroyStream is called
nitrogenycs 10:12 why not?
eamann 10:12 Quick question for anyone who knows, is FireBreath compatible with the latest version of the Windows DDK?
taxilian 10:12 alternately, make it destroy the stream itself when it goes away so that the browser stops trying to call
eamann: several people have been able to get it to build with vs express and windows ddk, yes
nitrogenycs: which approach do you recommend? will the browser always call destroystream eventually?
eamann 10:12 OK great. I have a separate project that uses the DDK that needs to be integrated into my FireBreath project ...
taxilian 10:12 probably depends on what you're doing with it
but I don't know of any reason it wouldn't work
nitrogenycs 10:12 taxilian: I've made bad experience with the alternative way. Some browsers did not like it if you terminated the stream while it was still "in use".
taxilian 10:12 you'll just have to try it and find out
nitrogenycs: fair enough; that seems the best to me as well, then. I just hope that the browser does eventually destroy the stream...
even if the user doesn't =]
nitrogenycs 10:12 taxilian: I agree it could get a bit of a problem. E.g. consider what happens if the user wants to download a 1GB file and then decides to abort the download after 10 sceonds. If the browser continues downloading that's really killing your connection for the next 15 minutes or so.
taxilian 10:12 right; of course, hopefully they would call close themselves in that case
nitrogenycs 10:12 yes
taxilian 10:12 but I think it's best to make it so that the object can't be freed until after DestroyStream is called
nitrogenycs 10:12 yeah, I think so too
it's definitely the safest way
unfortunately I don't recall which browser's didn't like destroying the stream in the middle of some action. It might've also depended on the seekable stuff etc.
taxilian 10:12 ahh, well. every good project should have at least one circular reference, right?
nitrogenycs 10:12 :) Maybe put the reference into a list/map in the browser host instead
That way you always have a view of all the active connections
taxilian 10:12 hmm. that might be the better way to do it
nitrogenycs 10:12 you could go crazy and add a StreamManager to the brower host :)
taxilian 10:12 I'm considering having the browserhost keep a set of all JSAPI objects passed to the browser, and then have NPJavscriptObject,etc use weak_ptrs… then when the plugin shuts down, we can release all of hte JSAPI objects
it might come to that, but for now I'm trying to keep things simplish =]
I wasn't actually planning to replace *all* of your code… :-P
nitrogenycs 10:12 I think there's no way to replace all of my code, since the IE stuff can only be done in a single way :)
taxilian 10:12 hehe
I do need to add support for uploads to your IE code, though, and make it useable from firefox
.. along with an abstraction to make it possible to use libcurl when it's there, if desired
nitrogenycs 10:12 ok
have fun :D
I will probably make all my uploading go through form postbacks. That way I avoid all the proxy hassle.
Of course that requires you to write a temporary file
I wonder if these flash uploaders solved the proxy problem
taxilian 10:12 form postbacks?
tell me about these form postbacks
nitrogenycs 10:12 very very simple:
this site is from '96
taxilian 10:12 oh, you mean just simple html form
I thought you had an automated way of doing it =]
nitrogenycs 10:12 yeah, but nowadays you can put them into an invisible iframe
taxilian 11:12 this is how I'm uploading things as well.. I'm just using curl to do it =]
nitrogenycs 11:12 with javascript
taxilian 11:12 but you can't select the file for them
I want to use my UI for selecting their file (which has thumbnail support, etc) and then upload the file (or rather batch of files) automatically… and I need progress reports
thus I'm using libcurl now, but will be hopefully changing to winhttp which I hope will work properly with proxy things
nitrogenycs 11:12 I am not sure winhttp will work with proxies out of the box in all browsers
taxilian 11:12 I don't know either; I know you can get it to work most of the time, since I've done it
but I don't know if it is 100%
even then, though, it uses the IE proxy settings, not the firefox (or whatever other browser) ones
nitrogenycs 11:12 yeah, that's what I mean
taxilian 11:12 however, on firefox 3.6 and later there is now an API for getting proxy settings
though I haven't used it yet
nitrogenycs 11:12 regarding the form post method, you can send hidden fields in chunks
you make your plugin read the image data from disk, then chop it in chunks which are posted
I haven't really tried this yet. It might be too slow.
Also a bit cumbersome on the server end
taxilian 11:12 yeah, the server end would probably make me unpopular at work...
nitrogenycs 11:12 ehehe
taxilian 11:12 grr. this is still crashing in weird places
I hoped to be done by now :-/
I have a final to go take
nitrogenycs 11:12 so much for flash uploaders and proxies:
taxilian 11:12 hehe. yeah, they're a plugin just like we are
nitrogenycs 11:12 so there's probably no simple
yeah, but maybe they found some sneaky method to circumvent the problems
taxilian 11:12 always possible
found the cause of the streams crash… and it's complete my fault :-P
was removing an iterator, then trying to increment said iterator… :-P
for some reason, it didn't work
computers are so picky
nitrogenycs 11:12 ahh :)
iterators + removing something = always be wary
I still remember when I did stuff like mymap.erase(it); in a loop
it's quite sucky to see the iterator failing in some instances, just because you frogot to do it = mymap.erase(it);
taxilian 11:12 lol. hey, I usually am brighter than that, I must have been asleep that day :-P
hmm. that's a trick I didn't know; what does that return to it?
nitrogenycs 11:12
taxilian 11:12 ok; so it gives you the next item?
nitrogenycs 11:12 yeah, if there is one
taxilian 11:12 hmm. I actually would have preferred the previous item, so my for loop would still work :-P
however, I just changed it to a while and it should be fine
nitrogenycs 11:12 hmm, maybe using a reverse iterator gets the previous xD
taxilian 11:12 hmm… does URLNotify always get called after DestroyStream?
nitrogenycs 11:12 I don't know, I wouldn't rely on anything with regards to the order of functions invoked without excessive testing
taxilian 11:12 hmm. that's problematic… because I release the object in DestroyStream and then suddenly get an URLNotify :-/
nitrogenycs 11:12
according to this "If the target is null, the browser calls NPP_URLNotify after closing the stream by calling NPN_DestroyStream."
I'd still test though. There were more sentences in the docs like that which I've found to be wrong for some browsers.
firefox sticks rather close to those pages
but opera and safari do things differently sometimes
taxilian 11:12 well, I had forgotten that we use urlnotify for this… we'll always be doing that, right?
I can just have it wait until both have been called :-/ safer
nitrogenycs 11:12 yes, we always use it
_neilg_ 11:12 Sorry, was in a meeting - have you figured out about destroying streams now?
nitrogenycs 11:12 taxilian: yes
taxilian: there are way too many if's for these things in the streams code...
taxilian 11:12 lol
yeah; I don't see a way around it, though
nitrogenycs 11:12 taxilian: I doubt there is one really. Browser vendors should just fix their implementations. I guess the only implementation they really tested and support is flash and that's it
taxilian: Btw, you can also POST data with XMLHttpRequest :)
taxilian: I am not yet sure about the restrictions and minimum required browsers
taxilian 11:12 so did you hear about kalev's brilliant flash of intuition yesterday? we finally fixed the long-standing "elusive crashes on NPN_ReleaseObject" bug that we've had bizarre workaround to avoid for ages
but can you post files?
nitrogenycs 11:12 no, I only skim this channel if there are too many messages and take a look if my name is highlighted in any of them :)
what was the reason, I'm really curious
taxilian 11:12 heheh. so aparently, when the browser calls NPP_Destroy() on a plugin
it then goes through and releases all NPObjects from the page that it had given to said plugin
nitrogenycs 11:12 taxilian: You can post any kind of data, so I guess if you get your image data into a javascript string you can send it.
taxilian 11:12 so then when our reference counting got to it, sometimes it had already been destroyed
nitrogenycs 11:12 ahh ok
taxilian 11:12 the fix (for now, I'm working on a cleaner one) is to stop calling release as soon as NPP_Destroy is called
it makes sense when you think about it, but it isn't documented anywhere that I'm aware of
nitrogenycs 11:12 so NPP_Destroy should be called NPP_Destroyed
taxilian 11:12 just about
nitrogenycs 11:12 However, really nice you guys found out about that
taxilian 11:12 that's what has me considering keeping a reference to all JSAPI objects passed to the DOM and using weak_ptrs on all the wrapper objects; that way, as soon as NPP_Destroy is called I can just release all the JSAPI objects and they should release their event handlers, etc before that happens
yeah; kudos to kalev for the flash of inspiration
that was the only remaining crash that we hadn't totally fixed that I am aware of
nitrogenycs 11:12 ya, that sounds good
I am sure people will mail 3 new crash reports tomorrow xD
neilg_ 11:12 Good work!
taxilian 11:12 boost::weak_ptr is amazing, btw. it makes lots of things possible that wouldn't be otherwise =]
nitrogenycs 11:12 yeah, smart pointers are only so-useful without weak_ptrs accompanying them
taxilian 11:12 ok, I think I finally have this fixed
nitrogenycs 11:12 taxilian: Ajax POST: (Supported by IE7+, Mozilla 1+)
taxilian 11:12 will you have a couple of minutes to look over it?
nitrogenycs 11:12 yeah, can you point me at a changeset?
taxilian 11:12 nitrogenycs: I'm pretty certain that you can do it with IE6 as well, unless this is a refinement that 6 didn't have...
just a second, still committing
nitrogenycs 11:12 Preferably an online one, I haven't switched to git yet
taxilian 11:12 no problem =] I just need to make sure I'm not accidently committing something extra
nitrogenycs 11:12 np, take your time
FB_GitHubBot 11:12 FireBreath: master Richard Bateman * 13fcf8f (17 files in 5 dirs): - Fixed BrowserStreams to use shared_ptr -
taxilian 11:12 that is the link, nitrogenycs
nitrogenycs 11:12 taxilian: thank you, looking at it niw
taxilian 11:12 thanks
nitrogenycs 12:12 taxilian: this one is unrelated, src/ActiveXPlugin/FBControl.h
but probably not bad
taxilian 12:12 darn; you're right
that shouldn't have gone in there
not a major deal, but should be removed
nitrogenycs 12:12 FB::ptr_cast<ActiveXStream>(shared_ptr()) -- this code creates a shared_ptr from this?
taxilian 12:12 yes
shared_ptr is an alias for shared_from_this; for some reason I thought shared_from_this wasn't public, though it seems to be… not sure how that happened, but now I've established the pattern. :-/ some things aren't worth the documentation required to change them.
nitrogenycs 12:12 ahhh ok, I was just about to ask on shared_from_this . It seemed a bit odd to do shared_ptr(), looks like it might return 0 or something :)
but it's fine for now
the code looks good from what I can tell
I am not sure if setNotified() might make problems with seekable streams
but I guess these should be really avoided anyways
FB_GitHubBot 12:12 FireBreath: master Richard Bateman * d2797b8 (4 files in 3 dirs): - Minor tweak to configure_template function ... -
taxilian 12:12 hmm. good question
well, I gotta go study for a final and take it
thanks for your help and for the code review
nitrogenycs 12:12 ok, no problem, good luck with the final
taxilian 12:12 thanks
ben___ 12:12 anyone here?
nitrogenycs 12:12 hello
benpm 12:12 hi
i'm wondering if anyone has any bright ideas about how to update a plugin that's already in use by a browser - is it always the case that you have to restart the browser? and if so, do you just give the new version of the plugin a different filename and overwrite the old version's registration?
neilg_ 13:12 benpm: Two solutions
The first one is the one you found, restart the browser
The second solution is to make the filename of the plugin DLL have a version number that increases with each release. So you might have plugin_01.dll and then plugin_02.dll
There are other ways but those are pretty much the only ways that work across all browsers
benpm 13:12 neilg: thanks, that's what I thought -- do you have any idea whether a browser will load the second version of the plugin once the registration info has been updated and the page reloaded? (i can test this myself, of course, but wondering what your experience has been)
i guess if not the whole exercise would be futile, so i gather the answer is yet
amackera 16:12 Ugh I need to figure out a way to test my plugin better
taxilian 17:12 amackera: I found better info on doing windowless plugins
on IE
amackera 17:12 oh? send my way!
taxilian 17:12 I have only some of it with me, but let me find it
I hate it when copy and paste doesn't do as it should =]
search the doc for windowless
you'll find plenty
amackera 17:12 excellent :D
taxilian 17:12 this is the actual spec for OLE/ActiveX controls, including the details of how windowless works
amackera 17:12 beautiful!
taxilian 17:12 I've seen it referenced; not sure why I didn't think to search for it sooner
nitrogenycs 17:12 that's one dinosaur of a spec
taxilian 17:12 yep =]
and yet it's what the IE side of firebreath is based on...
nitrogenycs 17:12 :) yeah
nitrogenycs 18:12 I am trying to switch to git
I also took the opportunity to move my source code out to a separate directory
whenever I run the prep2008.cmd script I get
CMake Error: The source directory "C:/blabla/External/MyPlugin/FireBreath"" does
not appear to contain CMakeLists.txt.
where FireBreath is current master checked out from github
and I can confirm it contains a CMakeLists.txt
Also note the double double-quotes at the end of the string
taxilian 18:12 .... what version are you using? the latest from github, no?
and what OS?
nitrogenycs 18:12 latest github
windows 8
erm 7
the cmake command it outputs is
taxilian 18:12 lol. I was gunna be really impressed... :-P
nitrogenycs 18:12 cmake -G "Visual Studio 9 2008" -DPROJECTS_DIR="c:\blabla\External\MyPlugin" "C:\blabla\External\MyPlugin\FireBreath\"
I guess the \ escapes the " at the end or something
taxilian 18:12 what is the command you're running?
just prep2008.cmd?
nitrogenycs 18:12 prep2008.cmd with my pathes
I tried relative and absolute ones
taxilian 18:12 can you tell me the actual paths? the direct command line you run? in a PM if you prefer
nitrogenycs 18:12 the build dir is created
taxilian 18:12 because the projects dir listed in the "generated" is not correct
it shouldn't ever do that
FB_GitHubBot 19:12 FireBreath: master Richard Bateman * 28336d4 (2 files in 1 dirs): Added fix to windows prep script for old versions of cmake -- removed trailing slash from FB_ROOT -
taxilian 19:12 nitrogenycs: that commit should fix your issue (though you fixed it by upgrading)
nitrogenycs 19:12 taxilian: cool, thanks for the fix. I've succeeded to build my plugin in this second
taxilian: so I am on git now, too :) woohoo
taxilian 19:12 suite =] yeah, git is pretty nice; have you read any of ?
it's the best "getting started with git" reference I've found; chapters 2 and 3 are well worth the read
or of course you could read this instead:
nitrogenycs 19:12 I haven't read that book yet, but I've got a bit of experience with git through another project I am collaborating with
I usually prefer reading the english version of books, I find it easier to understand than reading it in german actually :)
For technical books that is
taxilian 19:12 lol. I can understand that, actually... most often such books are written in English first
nitrogenycs 19:12 yeah, and even after translation half of the words stay the same :)
or are translated to strange latin words
taxilian 19:12 lol
yeah, I've read some techincal articles in Russian... I always find it amazing that Russians who don't speak english are even able to understand them
nitrogenycs 19:12 ehehe
taxilian 19:12 of course, it also surprises me how often I come across something written in Russian that I need to read for whatever reason... sometimes even tutorials that I can't find in English
nitrogenycs 19:12 haha, I know that feeling. In some rare circumstances I find just a single google hit for a certain problem I have. And then the words/code I searched for appear surrounded by cyrillic letters....
And I know 0 russian
nada :)
taxilian 19:12 hehe.
that's about how much German I know, so... =]
and I'd say your English is much better than my Russian, at least in written skills
nitrogenycs 19:12 I also need to learn another language in my life
I learned latin for several when I was in school
but that's not a real language
taxilian 19:12 we Americans tend to be language snobs... most of us don't feel the need to learn another language
nitrogenycs 19:12 I don't really feel the need either, but I've always enjoyed languages
taxilian 19:12 I really enjoyed learning Russian; just wish I had more time to keep up with it :-/ I'm losing my ability, little by little
nitrogenycs 19:12 teachers at school were mad at me that I was going to do something technical rather than something language based
yes, I am sure I forgot all the latin grammar by now
I know somebody who just started learning finnish
I looked at the language sheet and it has something like 20 different cases
immediately dismissed :)
taxilian 19:12 hehe
finnish sounds really cool, though
nitrogenycs 19:12 I've certainly heard it sometime, but can't remember the sound of it
there are some interesting languages where the time directions are switched for example
but they are a bit too esoteric
kylehuff 19:12 I have the verbal ability of a floundering seal pup on LSD... I wish all languages were only written and never spoken because good lord I suck speaking other languages..
nitrogenycs 20:12 Ahh, I like both
My girlfriend has to learn dutch at the moment, they also have some funny sounds
kylehuff 20:12 I have spent the last 3.5 years trying to roll my R's for french and arabic.
taxilian 20:12 lol. I'm much better at speaking than I am at understanding, oddly enough
anyway, something to think about; I want to add a "quick stream" method to BrowserHost, so you can basically say "host->getURL("http://.....", boost::bind(shared_ptr(), urlCallback)) or some such and have it call your callback when it's finished
trying to decide the easiest way to do that
and have it take care of all the annoying details
I think it would be a very useful feature, since (most?) often when we need to get something we just need to do a simple download
also, I need it :-P
nitrogenycs 20:12 yeah, the belgium guys always roll their Rs like mad, I mistook them for some eastern european guys more than once
taxilian 20:12 anyway, I'm going to go find dinner, then I'll be back. maybe in an hour? cya
nitrogenycs 20:12 yeah, a simple downloader sounds fine
I guess you could give it a filename and/or an iostream or something