Camelia, the Perl 6 bug

IRC log for #mojo, 2010-08-09

| Channels | #mojo index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 GitHub4 joined #mojo
00:01 GitHub4 mojo: master Sebastian Riedel * cae57f5 (1 files in 1 dirs): fixed typo - http://github.com/kraih/mojo/commit/ca​e57f5dee127dd97fe2caf31fd2dec4e233c763
00:01 GitHub4 left #mojo
00:12 GitHub59 joined #mojo
00:12 GitHub59 mojo: master Sebastian Riedel * 8095bd3 (1 files in 1 dirs): cleanup - http://bit.ly/c1TItS
00:12 GitHub59 left #mojo
00:19 tempire joined #mojo
00:19 diegok joined #mojo
00:19 DaTa joined #mojo
00:19 und3f[A] joined #mojo
00:19 bedi joined #mojo
00:19 sri joined #mojo
00:19 xantus joined #mojo
00:19 gabiruh joined #mojo
00:19 ashleydev_logbot joined #mojo
00:19 ryanc joined #mojo
00:19 crab joined #mojo
00:19 ka2u joined #mojo
00:19 charsbr joined #mojo
00:19 lbr joined #mojo
00:26 dotan joined #mojo
00:35 GitHub66 joined #mojo
00:35 GitHub66 mojo: master Sebastian Riedel * dd8a097 (2 files in 1 dirs): cleanup - http://bit.ly/cCqvVK
00:35 GitHub66 left #mojo
00:38 MojoGuest364 joined #mojo
00:38 MojoGuest512 joined #mojo
00:38 sri MOJO_CHUNK_SIZE=1 MOJO_CLIENT_DEBUG=1 perl -Mojo -e 'g("mojolicio.us")'
00:38 sri thats quite fun now
00:41 GitHub120 joined #mojo
00:41 GitHub120 mojo: master Sebastian Riedel * d133677 (1 files in 1 dirs): more debug information - http://bit.ly/9cfhWq
00:41 GitHub120 left #mojo
00:42 sri websockets also go through it
00:50 xantus__ hi
00:51 xantus__ I psychicly heard websockets
00:51 tempire awesome.  I don't have to open up firefox to examine requests now.
00:51 xantus__ lol
00:53 xantus__ I'm working on ignite today
00:54 xantus__ It's working, delivering events, etc.  websockets, longpolling
00:55 xantus__ working out the kinks and making a demo
01:25 GitHub123 joined #mojo
01:25 GitHub123 mojo: master Sebastian Riedel * 9024aa9 (3 files in 3 dirs): removed training wheels from Mojo::Headers for another 5% performance - http://bit.ly/a8BU98
01:25 GitHub123 left #mojo
01:26 sri who am i to forbid you to shoot yourself
01:26 sri :)
01:27 * sri waves at xantus
01:28 sri Zzz
01:33 Alias joined #mojo
02:10 ltriant joined #mojo
02:14 doubi joined #mojo
02:35 janus joined #mojo
02:43 crab how can i *suppress* the X-Powered-By header in server responses?
02:43 crab the documentation implies that it's added only if i $self->plugin('powered_by'), but my app sends it anyway
02:44 olgagirl joined #mojo
02:52 xantus__ crab: you can change it to something else: $self->plugin(powered_by => (name => 'MyApp 1.0'));
02:53 xantus__ or you can copy that plugin to your own lib and remove the bits in sub register
03:03 MojoGuest723 joined #mojo
03:08 crab that's fairly odious. but thanks.
03:22 yakudzo joined #mojo
03:27 ashleydev_ joined #mojo
04:02 dynax60 joined #mojo
04:04 tl joined #mojo
04:28 chansen joined #mojo
04:41 Foxcool joined #mojo
05:03 dotan joined #mojo
05:43 ashleydev_ joined #mojo
06:08 yko joined #mojo
06:41 yko joined #mojo
06:54 chansen joined #mojo
06:57 koban joined #mojo
07:16 arthas joined #mojo
07:53 koban left #mojo
07:53 koban joined #mojo
07:53 ysyrota joined #mojo
07:59 dhg joined #mojo
07:59 MojoGuest728 joined #mojo
08:02 MojoGuest268 joined #mojo
08:03 MojoGuest268 chrom is work
08:08 MojoGuest70 joined #mojo
08:10 MojoGuest48 joined #mojo
08:15 yko joined #mojo
08:17 crab sri: since the recommended use of X- headers is for private-use experiments and not to be exposed on the internet, i would request that you at least not enable ::Plugin::PoweredBy by default
08:18 yko And how other users then will know that your site built with Mojolicious? :)
08:19 crab because you send Server: Mojolicious (Perl) *anyway*
08:20 crab of course, i followed xantus's suggestion and created an empty PoweredBy plugin, so now i can forget it.
08:22 korshak joined #mojo
08:22 korshak crab, what about CGI mode :D
08:23 yko but ye, actually it would be better to have option to disable any of default loaded plugin
08:23 crab yko: if you really REALLY want it you can enable it. i just think it's bad to send it by default.
08:23 yko crab, actually i cabt agree with you. it's marketing sri will say :)
08:23 yko *can't
08:25 yko you better check if `perl -Mojo -e 'Oo(oO(get => "https://www.verisign.com/"))->say'` returns empty content or something else
08:26 yko i wonder, its mojo doesn't works with https or my system configured wrong
08:26 crab it works for me.
08:27 yko argh. but it's better if it works for somebody, than it doesn't work at all
08:27 yko thanks
08:29 yko bwahaha. IO::Socket::SSL was not installed
08:29 yko thank you again
08:29 crab what is this Oo oO?
08:29 janus joined #mojo
08:30 yko :DD
08:31 perlrocks Twitter: "# # Mojolicious Mojolicious такой http://rosemary-reflections.blogspot.com/​2010/08/mojolicious-petals-and-stems.html =)))" (sw) --xomaa http://twitter.com/xomaa/status/20692642913
08:31 yko isn't it obviously?
08:31 yko oO it's alias for _request
08:31 yko and like comix-cloud that means somebody's thoughts
08:32 yko oO(get => 'http://mojolicio.us')
08:32 yko and Oo it's alias to Mojo::ByteStream->new i think :)
08:33 crab hah
08:33 yko thats's mojo-freak syntax for  inliners :)
08:55 crab how can i make a default value for some argument to a layout?
09:16 MojoGuest735 joined #mojo
09:17 MojoGuest86 joined #mojo
09:17 MojoGuest86 12
09:17 MojoGuest86 12313
09:17 yko argument to layout?
09:17 yko stash you mean?
09:18 test 1
09:18 test wow
09:18 yko ye it works!
09:18 MojoGuest385 joined #mojo
09:18 test use flash?
09:18 MojoGuest385 1
09:19 MojoGuest385 12312
09:20 yko test: it's you better know
09:48 korshak joined #mojo
09:50 crab yko: % layout 'default', title => "Foo bar";
09:50 yko aah. ye, it is :)
09:50 crab yko: in layouts/default.html.ep, i want to have a default value for $title
09:51 yko i don't think you can set up default stash values per layout
09:51 crab ok, thanks.
09:51 yko maybe % $self->stash('foo' => 'bar') unless defined $self->stash('foo')
09:51 crab is there some special recommended way to store configuration passwords?
09:52 ysyrota joined #mojo
09:52 yko i didn't saw any recomendatin about passwords for mojolicious. i usually store such data in JsonConfig
09:53 crab do you indeed.
09:53 crab have you noticed that your password is dumped with every exception?
09:53 yko $self->mode('production')
09:53 yko in startup {}
09:53 crab hum.
09:54 yko see templates/exception.html.ep to understand this behaivior
09:54 crab yes, i've seen that.
09:54 yko if your app's mode is 'development' that means that only developer uses it at the moment
09:55 crab i understand why it happens :-) i'm just not very happy because in this case i have to run an add in devel mode because i'm debugging, but i don't want the people who will be testing it to know the db passwords.
09:55 crab i'll just remove it from the config in startup after i've used it.
09:55 crab s/add/app/
09:55 yko me too usually
09:56 yko actually i just have app->config hash in which i store config that i need at runtime
09:56 yko values that needed only at startup for initing something deleted at startup
09:57 yko bet, you can just append something like '$self->stash('config', undef)' in templates/exception.html.ep
09:59 koban joined #mojo
10:01 korshak joined #mojo
10:04 yko crab: but it's interesting idea: add option to disable stashing config at all
10:05 yko like plugin 'json_config' => {stash_key => undef}
10:05 yko i will write patch and tests if sri will accept this idea
10:06 marcus stash_bitch => $trunk
10:07 yko Õo
10:25 dhg yko,  app->mode('production'); will work for lite ?
10:25 yko It should :) dunno
10:27 dhg I tryed but it still write logs in development.log
10:34 MojoGuest308 joined #mojo
10:34 MojoGuest308 /j #abcx
10:37 crab ha. there is no escape.
10:37 crab *creepy laughter*
10:50 vti crab: actually there is, his ws server is not protected at all :)
10:51 vti using websocket console you can try it yourself )
11:12 dynax60 joined #mojo
12:14 dhg left #mojo
12:22 esskar joined #mojo
12:22 esskar hi
12:23 esskar is there a option to have the template cache reloaded when a template changes?
12:26 mvuets joined #mojo
13:01 keith joined #mojo
14:07 Alikus http://github.com/kraih/mojo/bl​ob/master/lib/Mojo/JSON.pm#L80 hm, a magic... why not <code>my $REVERSE_ESCAPE = {reverse %$ESCAPE}</code>?
14:12 MojoGuest704 joined #mojo
14:15 xantus_ morning
14:18 MojoGuest921 joined #mojo
14:19 MojoGuest921 firefox is work
14:22 xantus_ heh
14:31 MojoGuest328 joined #mojo
14:31 MojoGuest962 joined #mojo
14:39 MojoGuest160 joined #mojo
14:40 xantus_ added some security to the irc demo
14:44 sri crab: if we don't enable X-Powered-By by default nobody will enable it intentionally
14:45 sri and yes, it is in fact marketing
14:45 * xantus_ nods
14:48 sri crab: about the exception template, it's just a template, you control what it does :)
14:48 crab sri: yeah, i already sorted the exception blah.
14:50 crab sri: about x-p-b, i don't need to think about it any more, but how about allowing plugin(powered_by => (name => undef)) to disable it?
14:50 crab as opposed to writing a dummy plugin, i mean.
14:50 sri yko: you should use MOJO_MODE to switch modes btw.
14:50 sri crab: it's not that easy
14:50 crab oh.
14:51 crab i have a question. when you run plackup, what does it see instead of a .psgi file that makes it happy?
14:51 sri plugins are really powerful, you can't unload them really
14:51 sri crab: what do you mean?
14:51 crab doesn't plackup need a .psgi file to start the app
14:51 crab ?
14:52 MojoGuest612 joined #mojo
14:52 sri our scripts detect psgi environments and behave just like .psgi files
14:52 sri no changes needed at all
14:52 sri the key is the last resturn value of the script
14:53 sri app->start; and such
14:53 MojoGuest612 I want to have sri's babies!
14:53 sri \o/
14:53 sri a psgi file is basically just a perl script returning a code reference
14:55 sri btw. i wouldn't mind a env var to disable x-powered-by
14:55 sri i just want it enabled by default
14:55 vti there should be some way to disable sessions too
14:55 * vti hide
14:55 vti s
14:55 sri it has no version specific information, so it shouldn't be a security problem
14:55 MojoGuest792 joined #mojo
14:55 * sri slaps vti
14:56 xantus_
14:56 MojoGuest792 ♥ utf8! ♥
14:56 xantus_ \o/
14:56 sri
14:56 xantus_ I used _send_bytes in the proxy
14:57 sri hmm, thats invalid :/
14:57 sri i would make it a public method if it was valid
14:57 xantus_ yeah
14:58 xantus_ but since I'm proxying bytes not chars
15:00 sri btw. everyone please test the new client code on github, i think it's better than ever
15:01 sri MOJO_CLIENT_DEBUG=1 MOJO_CHUNK_SIZE=1 perl -Mojo -e 'g("mojolicio.us")'
15:01 sri thats quite fun
15:02 sri limits all read and write operations to one byte
15:04 xantus_ sri: send_bytes?
15:04 sri invalid
15:04 sri the spec contains a real bytes only part
15:05 xantus_ hm
15:05 sri but it's length prefixed and no browser supports that
15:05 sri if i made send_bytes available, it could be very confusing
15:06 sri especially if the binary websocket protocol turns out to be a useful thing in the future we would be screwed
15:06 xantus_ k
15:06 sri i'm open for a discussion about it though
15:07 sri not sure what the right thing to do is
15:11 MojoGuest478 joined #mojo
15:15 xantus_ mojopaste.com is coming up for renew tomorrow
15:20 xantus_ LOL
15:20 xantus_ its 8/9/10
15:20 sri heh
15:23 xantus_ sri: didn't you add something to que data for write in ioloop
15:24 xantus_ so I don't have to do this buffer data, and set writing
15:24 yko sri: no i dont!
15:24 sri xantus_: it's automatic
15:24 xantus_ what do I call
15:24 sri nothing, it just works :)
15:26 xantus_ my $server = $loop->connect( .. ); $server->send( "foo" )?
15:26 sri not sure what "and set writing" means though
15:26 sri nope, no such thing, it's still pull
15:26 ashleydev joined #mojo
15:26 xantus_ look at this
15:26 xantus_ http://github.com/xantus/mojo-websocket-exampl​es/blob/master/script/websocket-irc-example-2
15:27 xantus_ $loop->writing( 1 ) is 'and set writing'
15:27 ashleydev_ joined #mojo
15:27 xantus_ er, $server
15:28 xantus_ its early here
15:28 xantus_ see how I have to dance with the whole buffer thing
15:29 xantus_ so I stash the data, set writable, and send it when the write_cb is called
15:31 sri ->send() would be a whole new can of worms
15:32 sri right now the write callback acts as kind of a low watermark callback
15:32 tempire joined #mojo
15:33 xantus_ ok, so I can't make this cleaner
15:33 sri with ->send you could just ignore it and overload the buffer if your backend was faster than the client connection
15:33 sri we could add ->send, i just want to discuss the side effects first :)
15:35 xantus_ if we add ->send, ioloop would just be buffering the data to be pushed out, which is also bad
15:36 sri for a clean app you would need to use a low watermark callback anyway
15:38 xantus_ yep
15:38 sri but this is all theory, feel free to hack and try it, only way to really find out what works and what doesn't
15:39 sri examples/microhttpd.pl is a good benchmark for raw ioloop hacking
15:40 xantus_ AH, I found what I thought was a send method
15:40 sri it's currently hovering around 12k req/s on my laptop, the smallest code change has an effect, quite fun :)
15:41 xantus_ you had some code that used bytestream as a bufffer, using add_chunk and empty
15:41 xantus_ s/fff/ff/
15:41 sri ah yea, that catches everything that doesn't fit into the kernel send buffer
15:43 xantus_ I'll clean up that example code later
15:43 xantus_ must get some work done
15:44 sri there might be other ways
15:44 sri what if ->send returned true/false based on if the buffer was empty before
15:44 xantus_ I've done something wierd and I lock up mojo with a mojo client
15:45 xantus_ sri: hmm
15:53 xantus_ http://github.com/xantus/ignite/
15:56 koban joined #mojo
16:09 GitHub101 joined #mojo
16:09 GitHub101 mojo: master Sebastian Riedel * 493e795 (1 files in 1 dirs): cleanup - http://bit.ly/bCibrG
16:09 GitHub101 left #mojo
16:11 xantus_ :)
16:13 sri i'm using that proxy in two tests and they were borked with a chunk size of 1
16:13 sri of course it was the || stuff
16:14 vti haha
16:14 sri my old nemesis
16:14 vti bug #1
16:15 sri now using bytstream buffers everything works flawless, even for TLS with chunk size 1 :)
16:15 ashleydev joined #mojo
16:15 mvuets joined #mojo
16:18 mvuets joined #mojo
16:30 xantus_ nice
16:34 yko joined #mojo
17:02 sri marcus: i guess memowe failed?
17:19 marcus sri: I guess so
17:20 marcus he hasn't been around for the last weeks
17:20 sri :(
17:20 marcus today is Suggested 'pencils down' date. Take a week to scrub code, write tests, improve documentation, etc.
17:21 xantus_ doh
17:21 marcus so technically he has another week
17:21 marcus but no commits in http://github.com/memowe/mojo since 13. july
17:21 marcus and no posts on http://memowe-gsoc.tumblr.com/
17:22 marcus I'd have to say he failed the second part of the gsoc :(
17:22 sri i already told him i wouldn't accept a big mudball of commits again
17:23 marcus I feel a bit responsible as mentor, but really, there's only so much I can do
17:26 crab what did memowe fail at?
17:27 crab oh, gsoc. what was he working on?
17:28 sri he was supposed to test for usability of error messages and exceptions
17:29 ask joined #mojo
17:32 doubi joined #mojo
17:35 und3f Good day.
17:37 * sri waves
17:37 und3f I am trying to build simple async app with mojo client wich must run async if Mojo server present and blocking otherwise. I got next code http://pastebin.ca/1913934 it works perfect with Mojo server, but if i run it from clean app it just load CPU and do nothing
17:39 sri $client->ioloop(Mojo::IOLoop->singleton)
17:40 sri if the singleton loop is not running already async will use the normal client loop
17:40 und3f sri, thanks :)
17:40 und3f it is perfect now
17:40 und3f and now i love mojo moree
17:41 und3f :)
17:41 sri i would really like to make this more dwim, but there are detection problems i'm not sure how to fix
17:42 sri actually
17:42 sri i think there is a better way for you to handle this
17:42 sri $client = Mojo::IOLoop->singleton->is_running ? $client->async : $client;
17:43 sri and then just $client->get(...)
17:43 sri ->process...
17:43 sri then you shouldn't have to deal with start/stop
17:46 sri no wait...subrequest...
17:46 sri ignore me
17:46 sri :)
17:46 und3f :)
17:51 sri or actually...
17:51 sri no
17:53 sri wonder if that api is currently a little overengineered
17:53 sri it seems a bit too smart
17:54 sri say you have 2 parallel requests running in blocking mode, now one finishes and makes a subrequest, that subrequest would block everything until it is finished
17:55 sri it just doesn't seem right
18:02 ashleydev joined #mojo
18:02 sri hmm, i guess the current consistent behavior is better than mixed sync/async
18:10 mvuets joined #mojo
18:15 sri yea, can't find a better design than we currently have
18:16 stephen joined #mojo
18:16 sri async stand alone is the only case thats non trivial atm
18:17 sri then again, which async http client is trivial to use stand alone?
18:17 vti it looks pretty trivial to use to me
18:18 und3f It is not trivial part with $client->ioloop(Mojo::IOLoop->singleton);
18:18 und3f documentation tells that $client->async do same as $client->ioloop(Mojo::IOLoop->singleton);
18:19 sri wait!!!
18:19 sri und3f: that part would not be neccessary if you were using $client->ioloop->start/stop
18:19 und3f sri, without this part it just loads CPU
18:19 sri i just assumed you had a reason to use singleton
18:20 sri und3f: please make me a minimal test case for that
18:20 und3f ok
18:20 sri or actually
18:20 sri $client->async->ioloop->start/stop
18:21 sri for start it matters i guess
18:21 und3f but test must be run in 2 environments: with mojo and without mojo
18:22 und3f it is not so easy check this without mojo server
18:23 sri i'm almost 100% sure that $client->async->ioloop->start/stop should work
18:24 sri your original problem was that you were starting the wrong loop
18:25 und3f sri, i started singleton loop
18:25 und3f sri, but client used other loop
18:25 sri yes, you shouldn't
18:25 und3f shouldn't start singleton loop?
18:26 sri nope
18:26 sri $client->async->ioloop->start
18:26 sri if the singleton is not running you shouldn't care which one your client uses
18:27 sri ->async will automatically pick it if it's available
18:27 und3f but i supposed that ->async will use singleton loop any way
18:27 sri only if it is running
18:28 und3f oh, got it. Thanks
18:28 sri ok, with those changes the code looks almost trivial again :)
18:28 und3f :)
18:30 sri http://pastie.org/1082261
18:32 sri my first solution was just wrong :)
18:33 sri this actually looks just like a test case i have in client.t now
18:35 GitHub46 joined #mojo
18:35 GitHub46 mojo: master Sebastian Riedel * a51e5f4 (1 files in 1 dirs): make client test case more consistent - http://bit.ly/csMlXM
18:35 GitHub46 left #mojo
18:35 sri it makes sure async requests share the same keep alive connection queue
18:36 sri (and don't leak file descriptors)
18:37 und3f sri, i looked at that test before writing my first variant
18:37 sri ah
18:37 und3f Tests are better than documentation :P
18:38 sri well, tests are the spec
18:38 sri TDD++
18:38 sri it's very rare these days that i don't start a feature without a test
18:39 sri umm
18:39 sri s/without/with/
18:39 sri %-)
18:42 spleenjack joined #mojo
18:46 und3f Another good slogan for mojo: "Making web faster" :P
18:46 sri argh
18:46 sri thats not at all the goal :S
18:47 sri while performance is nice to have, the focus is on usability and fun
18:48 sri if something is fast enough it is fast enough :)
18:48 und3f :)
18:49 sri of course i wouldn't reject optimization patches *hint hint*
18:52 Htbaa joined #mojo
19:20 sri hmm, i might have a way to double client/daemon performance
19:21 sri downside... it might change the ioloop api slightly
19:22 sri i've got microhttpd up to 20k req/s with a single process on my laptop
19:23 sri the api would get simpler
19:23 sri but breaking stuff is possible
19:23 sri hmm
19:23 sri this will be hard
19:25 sri lets see if i can introduce it as a secondary api
19:44 sri awww... almost no gain outside of micro benchmarks
19:44 xantus_ fuck, I have a client request blocking everything, grr
19:45 xantus_ ok, I have called async on client before, but I had to do it again
19:45 xantus_ odd
19:45 sri it doesn't change the state of the client
19:46 sri it clones a new client that *is* async
19:46 sri (and caches it for future async use)
19:47 xantus_ ooh, thx
19:48 xantus_ I'm a bit stressed atm
19:49 dotan joined #mojo
19:53 sri this is weird
19:54 xantus_ ugh, now mojo is quitting
19:55 xantus_ its async related
20:08 sri it's crazy how much you can optimize for micro benchmarks and how meaningless it gets for real apps
20:16 xantus_ to stop a client, I just $loop->drop( $client ) right?
20:19 sri stop a client?
20:19 * sri can't follow
20:20 sri you can only drop connections and timers
20:22 xantus_ a chunking client has a connection
20:25 xantus_ ah, stringified connection
20:27 sri not necessarily, it's just an id
21:27 jawnsy joined #mojo
21:53 ashleydev joined #mojo
21:56 dotan left #mojo
22:17 ltriant joined #mojo
22:20 perlrocks Twitter: "Accessing Google Voice with #perl and #mojolicious - http://empireenterprises.com/blogs/g​oogle_voice_with_perl___mojolicious" --tempiretech http://twitter.com/tempiretech/status/20741383364
22:23 sri tempire++
22:23 tempire argh!
22:23 tempire I forgot to remove my password.
22:23 tempire damnit. I liked that password.
22:24 perlrocks Twitter: "RT @tempiretech: Accessing Google Voice with #perl and #mojolicious. http://bit.ly/aZ6pyF" --kraih http://twitter.com/kraih/status/20741574677
22:25 yko gg
22:26 sri lol
22:38 doubi joined #mojo
23:03 perlrocks Twitter: "RT @kraih: RT @tempiretech: Accessing Google Voice with #perl and #mojolicious. http://bit.ly/aZ6pyF" --kevinold http://twitter.com/kevinold/status/20744086349
23:20 xantus_ ok, the ignite code works but its in heavy dev, and has lots of warns still sprinkled throughout
23:22 xantus_ http://github.com/xantus/ignite/​blob/master/examples/ignite-lite
23:22 xantus_ looks simple enough :)
23:23 xantus_ there's also $client->publish( '/channel/here', { foo => 'bar' });
23:24 xantus_ tempire++
23:25 tempire :)
23:29 und3f How to specify headers for Mojo::Client's post_form request?
23:32 tempire $c->post_form( url, form_values_hashref, headers_hashref );
23:32 und3f thanks
23:56 GitHub45 joined #mojo
23:56 GitHub45 mojo: master Sebastian Riedel * 60ee686 (1 files in 1 dirs): cleanup - http://bit.ly/bSSOwB
23:56 GitHub45 left #mojo
23:57 sri xantus_: looks good
23:58 ashleydev_ joined #mojo
23:59 und3f Google analytics  API returns ecoding UTF-8 (when using with GData-Version: 2), but Encode doesn't know such encoding :|
23:59 und3f Unknown encoding 'utf-8;' at /home/und3f/projects/mojo/lib/Mojo/ByteStream.pm line 449
23:59 sri it's UTF-8
23:59 sri not utf-8

| Channels | #mojo index | Today | | Search | Google Search | Plain-Text | summary