The web in a box - a next generation web framework for the Perl programming language

IRC log for #mojo, 2014-11-16

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

All times shown according to UTC.

Time Nick Message
00:14 sri i think if that patch gets applied we'll switch back to a single one-liner
00:31 atom after sitting on the fence deciding to leave Catalyst or not... and Dancer vs Mojo... I find Helpers and they're awesome
00:31 atom mojo++
00:53 zivester joined #mojo
01:13 zivester joined #mojo
01:31 d4rkie joined #mojo
01:51 bjoernfan joined #mojo
02:07 bjoernfan joined #mojo
02:14 Vertig0 joined #mojo
02:15 d4rkie joined #mojo
02:25 klapperl_ joined #mojo
03:10 bpmedley jberger: Thanks for looking at my delay() suggestion.  Can you think of any way to make using the useragent easier to use with concurrent requests from the command line?
03:12 sri what makes it hard?
03:13 bpmedley I think I’ve noticed several people get confused by having to use Mojo::IOLoop directly.
03:14 sri it's a tough concept, people will get confused no matter what
03:15 bpmedley That makes sense.  Is there anyway to make the cost of entry lower for a new person?
03:15 preaction more blog posts and tutorials about it?
03:15 sri you think if i knew i wouldn't have done it by now? ;p
03:16 bpmedley preaction: Possibly
03:16 bpmedley sri: :)
03:43 good_news_everyon joined #mojo
03:43 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/hqo-tQ
03:43 good_news_everyon mojo/master 212ef17 Sebastian Riedel: use a more secure one-liner
03:43 good_news_everyon left #mojo
03:45 bpmedley What are some deployment options people are using for there minion workers?
03:47 bpmedley http://pastie.org/9722243 <— I’m trying something like this with upstart
03:48 sri i doubt many are using minion yet
03:49 bpmedley When they do they’ll wonder how they lived without it..  :)
03:51 sri really too bad Minion can't go 1.0 as long as Mojo::Pg is stuck in limbo
03:52 bpmedley Hopefully all it takes is time and a few eyeballs looking at the code to reach 1.0.
03:53 sri and a real DBD::Pg expert
03:54 sri in case you weren't paying attention http://irclog.perlgeek.de/mojo/2014-11-15#i_9666375
03:55 bpmedley I did see them.  I looked some and hope to look more; however, I’m not a DBD::Pg expert.  I’ve used more Informix than Postgres.
03:59 sri btw. one thing i'm still a little worried about in minion is responsiveness
03:59 bpmedley How so?
03:59 sri if a worker doesn't get a job it will sleep for 5 seconds
04:00 sri so depending on load, there may be a few second delay before a job starts
04:01 sri it's not a huge problem, the current system scales rather nicely, but there can be a delay
04:02 sri redis based job queues solve the problem with blpop http://redis.io/commands/BLPOP
04:06 basic6_ joined #mojo
04:07 sri otherwise i have to say i'm really happy with minion
04:14 sri this postgres 9.5 feature will be awesome for minion http://michael.otacoo.com/postgresql-2/postgres-9-5-feature-highlight-skip-locked-row-level/
04:16 bwf joined #mojo
04:20 sri too bad crab is not around more, he's a postgres expert and could surely tune minion a bit
04:20 bpmedley That is a frustration.  Where did he run off to?
04:21 sri the himalayas apparently
04:22 bpmedley Gaw, some people are adventurers
05:10 KCL_ joined #mojo
05:10 rem_lex| joined #mojo
05:14 sri tempire: you'll like this style http://keeprubyweird.com/
06:07 atom so I cant:   websocket '/socket/:room' => sub {
06:08 atom and catch the :room in param?
06:10 sri sure you can
06:11 jberger bpmedley: I think you should think of it differently
06:11 jberger UserAgent has a job to do, possibly nonblocking
06:12 atom I'm trying to modify jberger's chat.pl script for multiple chat rooms and it's a FAIL
06:13 jberger bpmedley: there are other classes and methods that do very different things possibly nonblocking as well
06:13 jberger It's delay's job to manage them
06:14 jberger the delay helper in mojolicious answers a specific use case for rendering pages
06:14 jberger atom: modify how?
06:16 jberger I know I showed you that as an example, but it is an example designed to be tiny
06:17 jberger it is terse in places
06:18 atom http://paste.scsys.co.uk/442079
06:18 atom I got the example working under Perl 5.10
06:19 atom but now I'm trying to get a different room like site.com:3000/hi
06:19 atom for the hi chat room
06:19 atom but the websocket isn't opening
06:21 atom the '/socket/:room' controller's not being triggered
06:23 jberger first of all, you aren't stashing room correctly
06:23 jberger wait,  nm
06:25 jberger url_for is wrong
06:26 atom ahh
06:26 atom I see
06:26 atom how it should be ws:// ... why is url_for not putting ws:// ?
06:27 jberger url_for('socketroom', room => $room)
06:28 jberger because it is not finding the right route, so it doesn't know that it is the right protocol
06:28 atom cool :) thanks.  I get it.  I need to brush up on url_for
06:29 jberger the hard thing is actually the route name
06:29 jberger if you don't give a route a name, it takes just the word characters from the path
06:31 jberger atom: did that fix your problem?
06:31 atom yeah it did thanks :) it's matching the controller, now to figure out why the multi room stuff isn't working
06:34 atom :)  it works!
06:35 atom this is so much easier that Catalyst... please someone make a Mojo book like the Catalyst Apress book ( 2nd best perl book ever )
06:36 davido_ joined #mojo
06:36 jberger to give the route a name pass it a string after the sub ref
06:37 jberger wesocket '/...' => sub { ... } => 'socket'
06:37 jberger now that route is named socket, no matter what the path is
06:38 jberger then you use socket in url_for with the value for the room placeholder
06:38 atom oh, that makes sense
06:39 jberger now I get to blow your mind
06:39 jberger the get route above it, it's name is chat
06:40 jberger if nothing is rendered by the sub reference (which it doesn't have
06:40 jberger )
06:40 jberger then it renders the placeholder with the same name as the route
06:41 jberger which is why that route handler renders chat.html.ep
06:42 jberger gahhhh
06:42 jberger I said placeholder,  I meant template
06:42 atom just got the => 'socket'; to work with the url_for
06:43 atom okay I see that
06:43 jberger if that makes sense, then routing should be easy for you now
06:44 atom :) I get the routing
06:44 atom now what I thought were seperate rooms
06:44 atom are all the same room... f!
06:44 atom dammit
06:45 jberger check the channel variable, iirc
06:45 jberger I haven't actually subscribed to more than one pub sub now that I think about it
06:45 atom yeah I had that auto updated from the placeholder and the stash
06:47 jberger atom: I will look I'm the morning
06:47 jberger bed time, nn
06:47 atom oh np... I'll keep working on it
06:47 atom thanks for all ur help :)
06:47 jberger enjoy
07:16 preaction so i'm thinking of writing a Mojo::Reactor that allows me to control the passing of time, so I can test that my module is creating the correct timers, and then fast-forwarding to trigger the timer.
07:17 preaction I've done the same thing for anyevent, but it looks like mojo will be easier. https://gist.github.com/preaction/c7c8f659da8b4b515fa9
07:17 preaction is there a better way to test that my timers are being created correctly?
07:17 marmez joined #mojo
07:32 Vandal joined #mojo
08:12 dotan joined #mojo
08:13 neyasov_____ joined #mojo
08:23 neyasov______ joined #mojo
08:27 bobkare joined #mojo
08:33 neyasov______ joined #mojo
08:40 jamesaxl joined #mojo
08:42 bobkare joined #mojo
08:44 zivester joined #mojo
08:48 dod joined #mojo
08:48 dod joined #mojo
08:58 bobkare joined #mojo
08:59 davido__ joined #mojo
09:07 Adura joined #mojo
09:11 KCL_ joined #mojo
09:15 bobkare joined #mojo
09:17 irq joined #mojo
09:33 neyasov______ joined #mojo
09:44 bobkare joined #mojo
10:11 basiliscos joined #mojo
10:20 punter joined #mojo
10:33 amon joined #mojo
10:36 neyasov______ joined #mojo
10:56 denis_boyun joined #mojo
11:32 sujithm joined #mojo
11:33 sujithm_ joined #mojo
11:35 marcus o/
11:35 marcus sri: I see your thing was applied. Since cpanmin.us points to master, I suppose that means -M already works =]
11:37 marcus hrm, I guess not. the fatpacked one is regenerated on release.
11:38 neyasov______ joined #mojo
11:57 sh4 joined #mojo
12:24 irq_ joined #mojo
12:37 sh4 joined #mojo
12:39 neyasov______ joined #mojo
12:45 btyler joined #mojo
12:45 sri gotta keep an eye on this http://perlhacks.com/2014/11/lpw-perl-webbook/
12:45 sri good to see the book will contain a section on mojolicious, but dave cross has been very anti mojolicious in the past
12:49 sri there's a github repo we can comment on though, so that's pretty good https://github.com/davorg/perlwebbook
13:30 Rallias joined #mojo
13:33 denis_boyun joined #mojo
13:34 * sri can't wait for cpanmin.us to be updated so we can use a shorter one-liner :)
13:51 neyasov______ joined #mojo
14:11 good_news_everyon joined #mojo
14:11 good_news_everyon [mojo] jberger pushed 1 new commit to master: http://git.io/WXZTcg
14:11 good_news_everyon mojo/master fbd3ca1 Joel Berger: Fixed typo in Mojolicious::Plugin::DefaultHelpers documentation.
14:11 good_news_everyon left #mojo
14:25 marcus joined #mojo
14:48 jberger batman: does Mojo::Redis2 ever call UNSUBSCRIBE?
14:50 batman don't think so
14:51 bpmedley sir: What are your thoughts on this http://pastie.org/9722959?  It relies on a trigger and a function to send a notification for every row inserted into minion_jobs.
14:51 bpmedley Irr, sri, even.
14:53 sri bpmedley: kinda defeats the purpose of having pluggable backends
14:53 bpmedley Understood; however, it should only do the Pg stuff if that backend is selected, right?
14:54 sri database specific code should all be in the backend
14:55 sri but it is interesting how easy it is to make more powerful workers like that
14:55 sri without monkey patching
14:56 bpmedley The main goal of the code is increase responsiveness.  I’m not sure exactly how to do all that in the dequeue function alone.
14:56 sri as in, someone could jus release a different worker command for only the pg backend
14:57 sri bpmedley: the mango command used notifications like that
14:57 sri s/command/backend/
14:58 sri of course that architecture has a problem too
14:58 sri if you wake up a huge number of workers they will all DoS the database
14:58 sri or rather DDoS
14:59 neyasov______ joined #mojo
14:59 bpmedley That is an issue, I agree.  How to fix that?
14:59 sri not sure it really is an issue
15:00 sri nobody should really have a huge number of idle workers
15:01 Gedge joined #mojo
15:03 sri i really like how you can build this with a trigger and a command
15:16 hasan joined #mojo
15:16 hasan hi
15:16 purl hello, hasan.
15:16 hasan I'm trying to figure out how to assign a javascript variable to a scalar in my mojo templates.
15:16 bpmedley sri: All we really need to do is break out of the usleep if we get a new job, right?
15:16 bpmedley http://pastie.org/9723010 <— If so, would this do something similar?
15:17 hasan I need: % push @{ $requests->{$id}->{data}->{foo} }, id        <- where the last "id" is a javascript var id;
15:22 jberger batman: so does the redis server just keep building up subscriptions then? I mean its kinda useful, because then I don't have to keep track of how many clients are subscribed to a channel and then call UNSUBSCRIBE when done
15:23 jberger hasan: can you please make a small example
15:25 jberger batman: sorry, once again, I'm probably making no sense
15:25 jberger I'm trying to wrap my head around connection reuse
15:25 jberger but I should try a bit more before I ask silly questions
15:26 marcus joined #mojo
15:31 hasan jberger: http://nopaste.info/35fc2d3e71.html
15:32 hasan variable "value" on line 24 is a javascript variable
15:32 hasan of course this will not work since value is a bareword for perl
15:32 jberger hasan: that means it is on the client side
15:32 hasan jberger: yes
15:32 jberger all of the perl code is evaluated on the server side before it is sent to the client
15:32 hasan ah man. ok that was enough
15:33 hasan yes yes just made click :)
15:33 jberger :-)
15:33 hasan thanks :)
15:33 sri bpmedley: not quite
15:33 bpmedley Why not?
15:33 jberger hasan: I'll admit, you had me for a second though ("hmmmm how would you do that? ... wait a minute!")
15:33 sri bpmedley: you would do this https://gist.github.com/anonymous/0dff64fa91f7e8ad575f
15:34 bpmedley Why not let the trigger function do the notification?
15:34 hasan jberger: haha :)
15:35 hasan after 9 hours I got unfocused and tried that for few minutes to work haha.
15:35 hasan 9 hours of coding.
15:35 sri bpmedley: sure, you can do that
15:35 jberger nothing good happens after 9 hours of coding (or coding before having coffee for that matter)
15:36 bpmedley Would that be an acceptable patch to improve responsiveness?
15:37 sri bpmedley: dunno
15:37 bpmedley Which part is sketchy?  :)
15:38 sri first we have to decide if we want more responsiveness
15:38 sri it's not very sketchy
15:39 bpmedley Understood, have you tried the a version using the trigger/function to do the notificaiton?
15:40 jberger haha, the SO question that lead me to write M::I::ForkCall just popped up again: http://stackoverflow.com/a/19555801/468327
15:40 bpmedley It’s pretty sweet to watch jobs fire off in basically real-time.
15:40 jberger I wonder if I should update it
15:46 marcus joined #mojo
15:48 sri bpmedley: trigger version works too
15:50 bpmedley Cool.  As an FYI, both of the patches I sent to the channel assume that trigger minion_jobs_insert_trigger exists.
15:53 AndroUser2 joined #mojo
15:55 sri bpmedley: problem is a test doesn't pass
15:56 sri bpmedley: the patch i've used https://gist.github.com/anonymous/7ce6fb198a377aba6804
16:00 neyasov______ joined #mojo
16:04 zivester joined #mojo
16:11 sri ah, fixed it
16:11 bpmedley What was it?
16:11 sri EV
16:12 sri it starts out with a time in the past, so the timer fires immediately the first time
16:16 bpmedley I see.. Should this NOTICE happen?  http://pastie.org/9723139
16:16 sri bpmedley: should it?
16:17 bpmedley Let me dig some more
16:17 sri i've made a branch https://github.com/kraih/minion/compare/responsive_pg
16:19 bpmedley The NOTICE doesn’t happen with a clean branch checkout.
16:20 woz joined #mojo
16:21 dod joined #mojo
16:22 bpmedley Cool.  I fired off ten emails with two workers and they did ditribute the load and it quite fast.. :)
16:25 basiliscos joined #mojo
16:26 sri well, once they have a job, the next job will be dequeued immediately
16:26 sri even with the 5 second sleep before
16:26 sri so, it's only the initial delay we would get rid of
16:27 sri i have to admit, the code is rather pleasant though... copared to the mess that was tailable cursors in mongodb
16:27 sri a possible downside though, is that we can't dequeue inside a running event loop
16:29 sri if it becomes a problem we can mitigate it though
16:33 sri hmm
16:33 sri tempted to merge https://github.com/kraih/minion/compare/responsive_pg
16:34 sri it's a tradeoff between initial delay of up to 5 seconds for the first job, and possibility of DDoSing the database with a huge number of idle workers
16:35 bpmedley Could the delay also happen if there is one worker and an enqueue happens right at the start of the timeout sleep in dequeue?
16:36 sri yes
16:36 sri once there are no more jobs we are back to the initial delay
16:36 davido__ joined #mojo
16:37 bpmedley If someone has a few hundred workers, then shouldn’t their DB be tuned to handle that kind of load?
16:38 sri well, with a 5 second sleep the load is usually more evenly distributed
16:38 stephanj komplett inkompatibel
16:38 sri while with the notification they would all actually wake up at the same time
16:38 stephanj wrong chan sorry
16:38 bpmedley Understood.
16:39 sri of course, if you're really really really unlucky they all wake up at the same time with a 5 second delay too
16:39 sri but the odds seem very low
16:39 bpmedley Depends on how close together their started, right?
16:40 sri and how long the jobs take
16:41 Gedge_ joined #mojo
16:43 sri i'd like to get rid of the "drop trigger if exists minion_jobs_insert_trigger on minion_jobs;"
16:43 sri too bad there's no create or replace trigger
16:44 batman jberger: https://metacpan.org/source/JHTHORSEN/Mojo-Redis2-0.15/t/pubsub.t
16:44 batman oh. just realized a bug in mojo-redis2
16:46 batman https://github.com/jhthorsen/mojo-redis2/issues/4
16:48 batman *potential* bug
16:48 rawler joined #mojo
16:53 dotandimet joined #mojo
17:01 neyasov______ joined #mojo
17:12 Rallias joined #mojo
17:16 marmez joined #mojo
17:24 zivester joined #mojo
17:38 sri hmm, this postgres job queue claims to be super fast because of advisory locks https://github.com/chanks/que
17:39 sri hmmmm... https://github.com/chanks/que/blob/master/lib/que/sql.rb#L5
17:44 sri hahahahaha https://github.com/mapmeld/profanity65/blob/master/README.md
17:50 mst SANTORUM
17:50 purl well, SANTORUM is a loonie, as demonstrated at http://www.cnn.com/2003/ALLPOLITICS/04/22/santorum.excerpts.ap/index.html or the mix of lube and feces left over after particularly vigorous buttsex or OUTTA THERE or unemployed
18:01 jberger mst: I thought is was hilarious when he became (briefly) a real contender for president that Jon Stewart chose to stop using the "alternative definition" of his name
18:01 mst somehow I feel that was done for the streisand effect
18:02 neyasov______ joined #mojo
18:16 sri i hate that select for update skip locked is not already in postgres http://michael.otacoo.com/postgresql-2/postgres-9-5-feature-highlight-skip-locked-row-level/
18:17 bpmedley http://pastie.org/9723453 <— What about something like this to limit the percentage of workers allowed to _try for a job after getting a notification?
18:22 sri bpmedley: we'll think about that when it actually becomes a problem
18:23 sri can't say the code looks elegant though
18:24 bpmedley No, it doesn’t.. ;)
18:24 sri actually
18:24 sri don't you make it many times worse there?
18:24 bpmedley How so?
18:25 sri you run 3 selects with every worker that just woke up
18:25 sri and possibly an update too
18:25 bpmedley Only on the workers table.  That table should be pretty small.
18:25 sri *and* then try to grab the job
18:27 sri i guess we should create some indexes though
18:27 sri on state and task at least
18:28 bpmedley http://pastie.org/9723479 <— That NOTICE is back.  Can you confirm you do not get the notice when you start with a clean database?
18:29 sri i suspect this block will be the performance bottleneck https://github.com/kraih/minion/blob/master/lib/Minion/Backend/Pg.pm#L189-L206
18:29 mst I don't see there's a need for a limit, for the simple reason that if all workers are trying, that means they're relatively idle
18:29 sri any ideas for speeding it up would be welcome
18:29 mst once you're actually under load, the "I'm busy doing a job" should spread them out
18:29 sri mst: yea
18:33 sri bpmedley: then make it go away :)
18:34 * sri merges responsive_pg into master
18:36 sri bpmedley: but the problem is that you can't replace a trigger, you have to drop trigger if exists and then create it
18:39 bpmedley I see, the notice is verbage from postgres saying everything is fine, more or less?
18:39 sri yes
18:41 mst that's why it's a NOTICE rather than a warning or an error
18:41 mst it's roughly equivalent to log_info
18:41 bpmedley http://pastie.org/9723508 <— What about raising the threshold level?
18:42 bpmedley sri, mst: thanks for the explanation
18:44 mst my superpower: actually reading the words
18:44 sri bpmedley: that seems reasonable
18:50 * sri is still on the edge if he should stick with all lower case sql or just accept the silly all uppercase for keywords convention
18:51 mst sri: I find that convention far, far more readable
18:51 mst I also DGAF if people don't follow it, so long as whatever convention they do follow gets followed consistently
18:56 AndroUser2 joined #mojo
19:03 neyasov______ joined #mojo
19:05 sri i want to like all uppercase, but it hurts my eyes when i use inline statements
19:06 sri https://gist.github.com/anonymous/c3b8ad2c554dae5d9a0b
19:06 * sri shrugs
19:07 mst argh
19:07 mst fucking stupid piece of shit excuse for a fucking pastebin
19:08 mst gist-- for 1..Inf; # LET ME COPY AND PASTE AND KEEP INDENTATION
19:08 * mst clicks 'raw'
19:08 sri hahahaha
19:08 purl LOLCON 4 reached.
19:08 sri first thing i do is click on that disable ACE button
19:08 sri the editor mode is a nightmare
19:09 jberger mst: finally, a reason for a lazy list
19:09 mst sri: http://paste.scsys.co.uk/442113
19:10 mst is probably how I'd do it
19:10 mst or, better still, take advantage of postgres being fucking genius
19:10 mst and define a function called 'epoch_time' that takes a single argument of a datetime
19:10 mst because once you've done that, postgres will call it using dot notation
19:11 mst so you can do created.epoch_time AS created
19:11 sri :O
19:12 mst very useful for having computed values that you may choose to materialise later
19:13 mst much like switching between a method and an accessor in perl :)
19:16 neyasov______ joined #mojo
19:30 davido__ joined #mojo
19:40 sri it's interesting how mellow the sql style discussions you find with google are... it's all just "meh, use whatever you like best, but be consistent"
19:54 sri well, the time of unencrypted internet protocols is over it seems http://lists.w3.org/Archives/Public/ietf-http-wg/2014OctDec/0616.html
19:56 zivester joined #mojo
19:58 mst now I'm going to need sslnet instead of telnet to test things :)
20:00 moritz isn't that called 'openssl'?
20:01 mst openssl s_client looks about right, yeah
20:02 meredith s_client has this annoying habit of trapping either < or > (don't recall) as a rekey request and not passing it on the wire
20:02 mst ew
20:02 meredith trips me up if i try to write strict ESMTP into it for testing
20:02 good_news_everyon joined #mojo
20:02 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/o8X-xg
20:02 good_news_everyon mojo/master 060ebcc Sebastian Riedel: use a better installation one-liner
20:02 good_news_everyon left #mojo
20:02 mst OHO
20:02 mst socat OPENSSL:<host>:<port>
20:02 * mst <3 socat
20:07 dotandimet joined #mojo
20:11 AndroUser2 joined #mojo
20:14 AndroUser2 joined #mojo
20:17 denis_boyun joined #mojo
20:20 alnewkirk joined #mojo
20:21 sugar joined #mojo
20:22 dotandimet joined #mojo
21:04 KCL joined #mojo
21:07 AndroUser2 joined #mojo
21:16 sri postgresql experts, locking question... do i actually need select for update here? https://github.com/kraih/minion/blob/master/lib/Minion/Backend/Pg.pm#L202-L216
21:19 sri (this method reserves one job from the queue, trying to avoid race conditions)
21:24 * batman like uppercase sql
21:41 sri well, shit
21:42 sri now i have a solution that's so clever i'll be unable to debug it
21:45 sri no transactions at all anymore, just an advisory lock and a select for update https://gist.github.com/anonymous/4001c070d37ee533091b
21:51 basiliscos joined #mojo
21:52 sri hmm... actually, i can simulate a race condition without the advisory lock
21:52 sri i guess it actually works :o
21:52 sri fun stuff
21:52 purl fun stuff is rarely the stuff people want to pay you for.
21:54 sri actually, both, advisory lock or select for update do the trick here
21:55 sri both used together seems to be a way to avoid blocking for locked rows
21:56 sri http://postgres.cz/wiki/PostgreSQL_SQL_Tricks#Taking_first_unlocked_row_from_table
22:00 AndroUser2 joined #mojo
22:00 s1037989 joined #mojo
22:05 hasan I get *** Error in `lib/bin/morbo': double free or corruption (!prev): 0x0000000002ae0c90 *** a few times a day.
22:05 sri transaction level advisory locks are the shit
22:06 hasan I won't say "here. fix it". I want to debug this on my own. any tips on how to start?
22:07 sri hasan: you've asked the exact same question before, and got the correct answer
22:09 hasan sri: I don't remember.
22:09 hasan I only remember oleg asking me if I'm using Net::...(something)
22:09 hasan what was the answer?
22:10 sri http://irclog.perlgeek.de/mojo/2014-11-10#i_9636800
22:10 preaction write a test that reproduces it, then run that test under valgrind. good luck
22:10 hasan sri: thanks.
22:11 sri i guess minion is now officially high performance ;p
22:12 hasan sri: what changed?
22:12 hasan +has
22:13 sri i am referring to a job queue making a big deal out of using advisory locks https://github.com/chanks/que
22:17 davido_laptop joined #mojo
22:32 sri :D http://www.pg-versus-ms.com/
22:36 firnsy lol ... spoiler alert at 1.
22:39 preaction heh.. we still use Sybase. and not a modern version...
22:50 hasan how do you guys deal with data types of array in postgresql if you fetchall_hashref the row and you get foo => '{foo1,foo2,foo3}' back?
22:50 hasan how can I work with that '{}' in a good way?
22:57 hasan pg_expand_array is set to true. btw
23:03 rsperl joined #mojo
23:06 Averna joined #mojo
23:12 sugar_ joined #mojo
23:30 AndroUser2 joined #mojo
23:35 hasan ok fixed it.
23:42 sugar__ joined #mojo

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