Evergreen ILS Website

IRC log for #evergreen, 2015-03-20

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat

All times shown according to the server's local time.

Time Nick Message
07:27 kmlussier Happy Vernal Equinox #evergreen!
07:27 kmlussier @weather 02771
07:27 pinesol_green kmlussier: The current temperature in Rumford, East Providence, Rhode Island is 18.1°F (7:25 AM EDT on March 20, 2015). Conditions: Mostly Cloudy. Humidity: 81%. Dew Point: 14.0°F. Windchill: 17.6°F. Pressure: 30.38 in 1029 hPa (Steady).
07:28 kmlussier Sigh...
07:47 jboyer-isl joined #evergreen
07:56 collum joined #evergreen
07:57 graced joined #evergreen
07:58 rjackson_isl joined #evergreen
08:21 csharp sudo apt-get update && sudo apt-get install openssl
08:22 * csharp can't keep track of how often he's had to run that over the last year
08:24 Shae joined #evergreen
08:28 csharp @weather 30341
08:28 pinesol_green csharp: The current temperature in Rose Arbor, Atlanta, Georgia is 45.9°F (8:25 AM EDT on March 20, 2015). Conditions: Overcast. Humidity: 99%. Dew Point: 46.4°F. Windchill: 46.4°F. Pressure: 30.13 in 1020 hPa (Falling).
08:29 csharp Rose Arbor? - never heard of that name, but it may be another of Metro Atlanta's proposed Balkanized states
08:43 mrpeters joined #evergreen
08:45 csharp @later tell Dyrcona we had talked a while back about marc_export letting us know the bib ID for the too-large invalid MARC records it creates (see bug 1397532) - is that something you think could be added without a lot of trouble?  OCLC is now unwilling to work around them on their end.
08:45 pinesol_green csharp: The operation succeeded.
08:55 Dyrcona joined #evergreen
08:58 maryj joined #evergreen
09:00 ericar joined #evergreen
09:18 Stompro joined #evergreen
09:20 mmorgan joined #evergreen
09:44 bshum csharp: openssl or libssl1.0.0?
09:44 bshum Or both?  :)
09:46 Dyrcona A little birdy tells me I have a later.
09:47 Dyrcona bshum: libssl is OpenSSL, unless you're using LibreSSL, which you most likely are not.
09:47 Dyrcona And, LibreSSL is affected by some of the same CVEs.
09:48 Dyrcona Hope I guessed the topic of conversation without context correctly.
09:48 Dyrcona :)
09:48 bshum Right :)
09:56 jeff_ joined #evergreen
09:56 Dyrcona csharp: On your marc export later, I thought we took care of that at one point, but I can't find a launch pad bug about it.
09:58 Dyrcona Oh, wait, you're talking about the ones that are too large.
09:58 Dyrcona That's not easy to fix, and might actually require changes to MARC::Record.
09:58 Dyrcona Vendors should just a) accept MARCXML and b) ignore the size field.
09:59 Dyrcona It's a throwback to the days of limited storage.
09:59 Dyrcona With an end of record indicator in the binary format, it is also unnecessary.
10:00 Dyrcona There's a lot of stupidity in the MARC format itself.
10:00 jboyer-isl Dyrcona: it was designed for tape. If you know how long the record is you can skip ahead without looking for the EOR marker.
10:00 Dyrcona Another option is just don't send them holdings, but that's the whole point of sending to OCLC.
10:01 Dyrcona jboyer-isl: I know what it was designed for and it serverd that purpose at that time OK. It totally sucks today.
10:01 jboyer-isl You’ll certainly get no argument about that from me.
10:01 jboyer-isl argument against that, rather.
10:01 maryj joined #evergreen
10:02 jeff heh. this ec2 instance has three attached block devices: root, "slow", and "notfast".
10:02 Dyrcona heh.
10:03 jeff only two errors on restore, and i believe those are the two index failures due to unqualified function names.
10:03 jeff and transcript confirms!
10:03 Dyrcona jeff: we might have qualified the function names in our db and not shared with the community.
10:04 jeff possible. i'm going to confirm.
10:04 Dyrcona I haven't run into that one for ages.
10:10 Dyrcona jboyer-isl: And tape is limited storage...Only slightly less limited than punch cards. ;)
10:12 jboyer-isl Dyrcona: Sure, but the size field is there because it’s linear, not just because it’s limited. :) Also, because “9999 characters is enough for anyone.” and no one imagined at the time why you’d want your holdings in a record.
10:13 akilsdonk joined #evergreen
10:13 Dyrcona Linear is a limitation.
10:14 Dyrcona True about the holdings. The original purpose was to send the tape and have cards printed for the card catalog.
10:14 Dyrcona Everything else we've made the format do is tacked on.
10:14 Dyrcona And, since we're not using linear storage, and it's 2015, vendors should just ignore the size field.
10:15 Dyrcona Evergreen ignores it, as does anything that uses MARC::Record.
10:15 Dyrcona "But this software has worked since 1985! Why should we change it?"
10:36 dreuther joined #evergreen
10:45 collum http://www.cincinnati.com/story/news/2015/03/2​0/appeals-court-ky-library-tax-legal/25076117/
10:46 collum Yay!!
10:46 bshum Yay!
11:13 vlewis joined #evergreen
11:13 sal_ joined #evergreen
11:26 csharp Dyrcona: thanks - I thought that was the case
11:26 csharp collum: awesome!
11:59 sandbergja joined #evergreen
12:05 bmills joined #evergreen
12:11 jihpringle joined #evergreen
12:53 bmills joined #evergreen
13:01 bmills1 joined #evergreen
13:17 mglass joined #evergreen
14:32 makohund joined #evergreen
15:10 akilsdonk joined #evergreen
15:27 kmlussier @swill graced
15:27 * pinesol_green grabs a bottle of Zima and sends it sliding down the bar to graced
15:38 csharp bshum: @seen StephenGWills
15:38 csharp @seen StephenGWills
15:38 pinesol_green csharp: StephenGWills was last seen in #evergreen 21 weeks, 4 days, 7 hours, 21 minutes, and 46 seconds ago: <StephenGWills> git branch, git merge maybe?
15:39 csharp bshum: bleh - sorry :-/
15:39 csharp @swill StephenGWills
15:39 * pinesol_green grabs a forty of Steel Reserve 211 and sends it sliding down the bar to StephenGWills
15:39 csharp too bad he's not here - I have a feeling he would've chuckled at that :-)
15:40 * kmlussier will chuckle on StephenGWills behalf.
15:40 * jeffdavis googles Zima, shudders
15:41 csharp his original nick was swills, so *that* would've been REALLY funny
15:41 * csharp is in the office on his normal telework day, finally done with back-to-back-to-back meetings and feeling punchy
15:43 kmlussier jeffdavis: That was my reaction as well.
15:43 jeffdavis :)
15:44 berick jeffdavis: you've never experienced Zima?
15:44 berick you either, kmlussier?
15:44 kmlussier berick: Is it as terrible as it sounds?
15:44 sal_ ... pokes head up.  kmlussier: it's awful
15:45 kmlussier sal_! Good to see you!
15:45 berick it's awful, but was briefly the underage^H^H^Himature drinkers go-to.  (not sure why, probably marketing)
15:46 sal_ I'm playing with 2.7...  (Finally, time to play again :-) )
15:46 * csharp remembers tasting zima in his college days
15:46 kmlussier Based on my reading on Wikipedia, I wasn't underage when it came out.
15:46 * kmlussier feels old now.
15:47 berick @swill kmlussier
15:47 * pinesol_green grabs a can of Sparks and sends it sliding down the bar to kmlussier
15:47 kmlussier Can we get Sam Adams into the swill database?
15:47 csharp @beer berick
15:47 pinesol_green csharp: Have you tried turning it off and back on again?
15:47 csharp @bartender berick
15:47 * pinesol_green fills a pint glass with Hitachino Nest White Ale, and sends it sliding down the bar to berick (http://beeradvocate.com/beer/profile/697/2013/)
15:47 * berick reads
15:48 sal_ cider?  (more beer for the rest of you...)
15:48 csharp @swill add Sam Adams
15:48 * pinesol_green grabs a can of Sparks and sends it sliding down the bar to add Sam Adams
15:48 csharp heh
15:48 makohund Tricerahops, maybe?
15:48 berick wow, highly rated
15:48 kmlussier Ha ha
15:50 makohund Ruination?
15:51 makohund I dunno, I just looked up and saw beer talk.  Ya'll speaking my language all of a sudden.
15:51 kmlussier makohund++
15:51 kmlussier I think beer is a good entry point for the #evergreen channel. :)
15:52 makohund La Fin Du Monde?  Just throwing out some favorites. :)
15:53 makohund Been here before, not often though.  Usually with a bizarre question, long after most folks seem gone for the day.
15:54 * berick is suddenly thirsty
15:54 rjackson_isl dirty bastard scotch ale!
15:55 kmlussier I think we need one specifically for wine. Maybe we can adapt the dessert plugin to handle wine.
15:56 makohund Sleigh'r!  (Yes, a seasonal)
15:59 * phasefx still likes New Belgian beers, and Monday Night Brewing :)
15:59 berick @dunno add did you finish your beer?
15:59 pinesol_green berick: The operation succeeded.  Dunno #37 added.
16:06 kmlussier @dunno
16:06 pinesol_green kmlussier: It reads like a Nigerian 419 scam, but I think it is a sincere question sent to the wrong list.
16:06 * berick chuckles
16:07 berick kmlussier: if you use an invalid command, it will reply w/ a @dunno entry
16:07 berick @foo
16:07 pinesol_green berick: Yeah, well, you know, that's just like uh, your opinion, man.
16:08 makohund that just makes me thirstier
16:10 berick heh
16:11 berick @quote random
16:11 pinesol_green berick: Quote #69: "jeff: All the pain of RHEL, with none of the support." (added by Dyrcona at 08:57 AM, October 30, 2013)
16:14 jeff hah
16:26 makohund Ok, real question... I need to report on a bunch of items (status = 3), grouped by user profile of most recent checkout.  In other words... "how many items have been lost by this category of patrons".  Any ideas?
16:27 jeff lots of ways to skin that cat. for one thing, you can report on open circulations with a stop_fines of LOST.
16:27 jeff first question is probably going to be: SQL or Reporter?
16:29 makohund Nevermind the report module, psql is fine.  I was looking for a non-ridiculous join between asset.copy and actor.usr... I could swear I saw a field in a table somewhere that looked like what the "most recent checkout" screen pulled from.
16:30 makohund Just can't remember what it was... and yeah, lots of ways to skin that one.  Just picking which angle to start from is... yeah.
16:30 dbs makohund: join action.circulation to actor.usr and asset.copy (IIRC)
16:33 dbs SELECT * FROM action.circulation ac INNER JOIN actor.usr au ON au.id = ac.usr INNER JOIN asset.copy acp ON acp.id = ac.target_copy WHERE stop_fines = 'LOST'; -- is a start, then narrow down your columns and add your GROUP BY / COUNT accordingly
16:33 makohund dbs: thanks, I know I could ultimately get there that way, was hoping to find a shortcut somewhere that wouldn't have to look at every transaction of all time... oh wait, lemme read that...
16:34 dbs SELECT pgt.name, COUNT(*) FROM action.circulation ac INNER JOIN actor.usr au ON au.id = ac.usr INNER JOIN asset.copy acp ON acp.id = ac.target_copy INNER JOIN permission.grp_tree pgt ON pgt.id = au.profile WHERE stop_fines = 'LOST' GROUP BY pgt.name;
16:34 dbs will probably do what you want
16:35 jeff there is no materialized view that includes "most recent circ of this item", so either way you're going to be relying on the planner and indexes to keep you from touching every transaction of all time.
16:35 dbs oh, or change the "stop_fines = 'LOST'" to "acp.status = 3"
16:35 makohund dbs: ok, limit to stop_fines = lost makes me feel a little better, thanks
16:35 dbs It shouldn't be too horrible, the default indexes should guide things pretty well
16:36 jeff wow. we have only one copy with status of Lost that isn't associated with an open circ. that's... I almost don't believe that. :P
16:36 makohund dbs: I was thinking of keeping both
16:37 makohund I'll grab that & translate into what I have already, and post back, thanks!
16:37 dbs Running against our database, I get wildly different numbers for stop_fines = "LOST" vs. status = 3. Probably because we migrated lots of copies from the old system with a status of LOST
16:37 dbs SQL makes me happy.
16:37 makohund me too, the reporter immediately scared me away
16:38 makohund simply couldn't do what we needed without adding custom sources
16:41 mrpeters left #evergreen
16:57 jeff here's another option: https://gist.github.com/jeff/252fa162d30265abe92a
16:58 jeff tricks like "group by second level profile" left as an exercise to the reader
17:09 makohund thanks, will look at those when I get a moment, my head has been buried in SIP logs on my other monitor... ugh.
17:15 * jeff updates said gist a few times
17:15 pinesol_green Incoming from qatests: Test Success - http://testing.evergreen-ils.org/~live/test.html <http://testing.evergreen-ils.org/~live/test.html>
17:15 jeff dbs++ for the recursive CTE trick
17:16 jeff for what it's worth, those queries are pretty speedy on an underpowered dev instance
17:16 makohund oooh... very nice.  so open circ view... does that mean any circ that gets closed out by marking as lost/missing/etc will forever remain an "open circ", and will be in there?
17:17 jeff action.open_circulation is a view based on action.circulation where checkin_time is NULL
17:17 jeff "lost" items never get checked in (unless they find their way home, etc)
17:17 makohund Ah.  Got it.
17:17 jeff (in which case the copy's status usually ALSO stops being "Lost" or "Lost and Paid")
17:18 makohund Yeah, makes sense.
17:18 jeff if you didn't already know, "\d+ action.open_circulation" in the psql shell will show you the definition of a view, including the SQL query behind it
17:18 jeff WHERE acp.circ_lib IN (SELECT id FROM actor.org_unit_descendants(1)) -- option to limit by copy circ lib
17:19 jeff that line lets you plug in an org unit id if you want to limit to a specific part of the org hierarchy.
17:21 makohund Yeah, one of those things lurking in a dusty mind closet, long unused.   And yeah, saw that line. Slick.
17:23 jeff previous to that, we used to do things like acp.circ_lib BETWEEN 3 AND 5 or  acp.circ_lib IN (3,4,5), but that breaks very quickly when you've added a library, etc.
17:25 makohund Yep.  I get away with that (usually IN()), the org tree is pretty simple here.  Only one system (mine) here has more than one branch.
17:52 jeff i do wonder about the 280 items that are "Checked out" with stop_fines of LOST.
17:52 jeff @blame migrated data
17:52 pinesol_green jeff: migrated data broke Evergreen.
17:58 bmills joined #evergreen
18:15 bmills joined #evergreen
18:30 bbqben joined #evergreen
18:33 bbqben joined #evergreen
18:36 makohund just tried the query from dbs, also got wildly different numbers from stop_fines vs status.  For one profile, it is 11,151 vs 68,611.
18:37 makohund For another, the main one we want to look at (that didn't even exist pre-migration), it is 75 vs 479.  Wow... going to look at those closer to see where the diff is.
18:49 makohund found an item that shows up with status, but not with stop_fines.  status is 3, status change time is well after migration (over a year).  stop_fines is CHECKIN.  hmm.
19:03 makohund ok, looks like the second query hits things multiple times.  it's lost now, but it checked out 33 times. so just limiting it by that gets all 33 transactions
19:19 bbqben joined #evergreen
19:20 makohund OK, jeff's query gets 38 for that same profile, instead of 75.  poked around, the difference is using open_circulation vs circulation.
19:36 makohund just action.circulation is getting lots of things that were eventually checked in, and no longer have a status of lost.  if using both stop_fines and status, the result is the same.  Yay!
19:36 jeff heh
19:38 jeff so is the query i shared suitable, or did it require some modification?
19:44 makohund It's good.  I stripped it down & changed some names to how I usually do it in the process, but running mine & yours back to back gets the same numbers.  Almost*
19:45 makohund Exactly one profile turns up exactly one additional lost item, when I run my version. *boggle*
21:05 makohund gotta split, thanks!
21:05 makohund left #evergreen

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat