Wednesday, 6 February 2013< ^ >
arjan has set the subject to: Zotonic - the Erlang Content Management Framework
Room Configuration

[02:15:06] simon.smithies joins the room
[02:39:27] Jeff Bell leaves the room
[03:34:04] simon.smithies leaves the room
[03:56:19] Jeff Bell joins the room
[07:11:11] simon.smithies joins the room
[07:11:15] simon.smithies leaves the room
[07:11:17] simon.smithies joins the room
[07:34:02] simon.smithies leaves the room
[07:36:23] simon.smithies joins the room
[07:54:14] simon.smithies leaves the room
[08:39:58] Protagores joins the room
[08:45:57] simon.smithies joins the room
[08:52:56] maas.maarten.zeeman joins the room
[08:55:38] Arjan joins the room
[09:00:10] Protagores leaves the room
[09:00:51] protagores joins the room
[09:01:53] protagores is now known as Protagores
[09:04:51] Andreas Stenius joins the room
[09:05:25] <Andreas Stenius> Mornin'; quite a bunch idling in here today :D
[09:05:41] <maas.maarten.zeeman> Morning Andreas.
[09:05:52] <simon.smithies> Hi all
[09:06:04] <Andreas Stenius> Hi Simon
[09:06:52] <simon.smithies> we're actually into the evening down here in NZ
[09:07:09] <simon.smithies> but happy to pretend it's morning time again ;)
[09:07:41] <Andreas Stenius> Yeah, I figured it wasn't morning for everyone :p
[09:08:04] <Andreas Stenius> but NZ, that's quite far from here ;)
[09:08:40] <simon.smithies> are most of you in Europe somewhere? Holland?
[09:09:05] <Arjan> Marc, Maas and me are in Amsterdam
[09:09:21] <Arjan> Andreas is somewhere in the east sea next to sweden ;)
[09:09:31] <Andreas Stenius> I'm in Visby/Gotland/Sweden
[09:10:19] <Andreas Stenius> https://maps.google.com/maps?q=57.97691167+14.3914
[09:11:00] <simon.smithies> nice part of the world!
[09:12:06] Andreas Stenius recently moved here from Stockholm...
[09:13:13] <simon.smithies> Time for the rural life eh?
[09:15:01] <Andreas Stenius> yeah :) well, got two kids growing up, and I always wanted a house. Couldn't really motivate the expense in the "big" city... so, here we are ;)
[09:16:15] <maas.maarten.zeeman> Nice, we are thinking going camping with the kids in Sweden this year. Not sure yet.
[09:18:20] <Andreas Stenius> If you do, I can warmly recommend a visit to Gotland if you like the medieval... we have lots of old churches and Visby is pretty well preserved with town walls, towers and stuff.. :) Also have the unique rauk stones
[09:18:24] <simon.smithies> we're in the city (Christchurch) but on the edge of town ... just spied an opossum out the window
[09:20:21] <Andreas Stenius> For those wondering what a rauk is: https://www.google.se/search?q=rauk&hl=en&tbo=u&tbm=isch&source=univ&sa=X&ei=-hESUZ34C8SG4ATe7IHgCA&ved=0CEsQsAQ&biw=1920&bih=1019 (google search for images with the word "rauk")
[09:20:30] <maas.maarten.zeeman> Cool, very different from here then. My son loves history, so that is a big plus. We'll see what kind of holiday plans develops here :-)
[09:21:07] <simon.smithies> wow. Are the rauk natural formations?
[09:21:13] <Andreas Stenius> yes
[09:21:24] <Andreas Stenius> we live on an really old reef.. :p
[09:22:01] <Andreas Stenius> from the time when this part of the world was tropical... (and certainly was located closer to the equator than what it is now)
[09:23:59] <Andreas Stenius> they are really fun to climb on :)
[09:25:33] <maas.maarten.zeeman> Looks very cool.
[09:26:09] <simon.smithies> I'm back on Zotonic -- finally have some time again -- I'm sure no-one will mind if I ask a zotonic question?
[09:26:41] <maas.maarten.zeeman> Yesterday evening I was working on the stats. Almost finished, have to tie it to a real stat collection library... Almost done.
[09:27:11] <maas.maarten.zeeman> git://github.com/mmzeeman/zotonic.git
[09:27:26] <maas.maarten.zeeman> z_stat branch
[09:27:39] <maas.maarten.zeeman> Please go ahead :-)
[09:28:41] <simon.smithies> stats looks cool -- is it this stuff? http://zotonic.com/page/928/zotonic-stats-preview
[09:29:04] <Andreas Stenius> maas.maarten.zeeman: cool :) simon.smithies: well, this is the zotonic room after all ;)
[09:29:19] <Andreas Stenius> simon.smithies: no, that's from zynamo
[09:29:31] <simon.smithies> ah ok
[09:30:03] <maas.maarten.zeeman> It collects that kind of information though, how long requests take, amount of data served, # db queries, duration
[09:30:26] <Andreas Stenius> simon.smithies: Maas was referring to this code: https://github.com/mmzeeman/zotonic/tree/z_stats
[09:30:44] <simon.smithies> looks like good stuff for explaining why to use Zotonic
[09:30:55] <simon.smithies> and monitoring your server once you are
[09:31:17] <simon.smithies> ok my qiestion ...
[09:31:47] <simon.smithies> I've just installed zotonic 0.9 release on my new, fresh vps
[09:32:06] <simon.smithies> I want to set everything up right, as far as is possible!
[09:32:24] <maas.maarten.zeeman> Indeed, personally I need it to plan resources for a new project.
[09:32:52] <simon.smithies> so followed the defaults for the install, which has placed zotonic in /var/lib/zotonic
[09:33:18] <simon.smithies> I'm wondering where is the best place for my sites directory
[09:33:37] <Andreas Stenius> put it somewhere convenient, then add a symlink to it
[09:34:01] <Andreas Stenius> e.g. /var/lib/zotonic/priv/sites/yoursite -> ~/dev/mysite ...
[09:34:06] <simon.smithies> ok ... so am kind of thinking maybe sites should be in my home directory on the vps, not zotonic's
[09:34:32] <Andreas Stenius> as long as zotonic can read/write to your sites dir (in case of file uploads)
[09:35:04] <simon.smithies> ok ... I guessed there might be some permissions issues to sort out
[09:35:34] <Andreas Stenius> or, have it in the zotonic's home dir..
[09:36:05] <Andreas Stenius> as long as you can work/update the site, that may be the easiest to work with...
[09:36:27] <simon.smithies> seems simpler to do that ... just it doesn't quite "feel" right to me to do that
[09:36:27] <Andreas Stenius> most of the time, zotonic will only need read perms any way...
[09:38:21] <simon.smithies> backups are written to "files" aren't they
[09:38:28] <Andreas Stenius> and write perms only within your site/files dir
[09:38:32] <maas.maarten.zeeman> That is how I do it too. Usually I create a user account for zotonic and place the sources and sites in its home directory.
[09:38:55] <simon.smithies> that's what I had on the last server and it worked well ...
[09:39:32] <simon.smithies> just this time, with zotonic sitting outside /home, I thought maybe that wasn't really correct
[09:39:41] <Andreas Stenius> shouldn't be too hard to have the zotonic user in the same group as yourself and then give group access to your sites files
[09:41:13] <simon.smithies> yep, I see
[09:42:04] <simon.smithies> Maybe I'll try it ... I'm not so good on permissions! But I'll learn something more about it whatever happens
[09:49:16] <maas.maarten.zeeman> Debugging a js lexer right now... What a weird language... But hey, it is everywhere...
[09:50:48] <maas.maarten.zeeman> The only language I know in which the lexer has to do some parsing.
[09:50:52] <Andreas Stenius> simon.smithies: permsissions aren't that hard. You have only three groups to care about, and that is, the owner, the group, and everyone else.
[09:51:20] <Andreas Stenius> And for each such group you have x, for execute, r for read, and w for write permission.
[09:51:45] <Andreas Stenius> and they are usually printed together for compactnes when you do a ls -l
[09:52:54] <simon.smithies> so in sites/files I would make owner = me and group = zotonic
[09:53:35] <simon.smithies> and assign permissions rwxrwx---
[09:53:37] <Andreas Stenius> where each perm for each group is listed thus: drwxrwxrwx where the first set of rwx if for owner, middle group of rwx is for group and the last rwx is for others. And to deny a perm, it is replaced with a dash for the proper group
[09:54:08] <Andreas Stenius> sounds fine, yeah
[09:54:17] <simon.smithies> hmm
[09:55:13] <simon.smithies> so if I set it up that way, i would log on to the server as zotonic to work with the zotonic instance -- start, stop etc
[09:55:26] <simon.smithies> but log on as me to work with the sites
[09:55:31] <Andreas Stenius> yeah, start stop etc should be done as the zotonic user
[09:55:57] <Andreas Stenius> well, if you're going to log on as zotonic any way, you could just as well work with the site files as zotonic too...
[09:56:14] <simon.smithies> true
[09:56:18] <maas.maarten.zeeman> Should work. I think you have to relogin if you have just been assigned to a new group.
[09:56:51] <simon.smithies> would I need to be zotonic to run addsite from within the sites directory?
[09:57:08] <simon.smithies> addsite -L
[09:57:32] <simon.smithies> which btw is a very nice touch!
[09:58:28] <Andreas Stenius> I think it is a good idea to run any zotonic command as zotonic...
[09:59:18] <Andreas Stenius> maybe we should add some administrative commands that takes care of the user switching... so a admin can call the scripts, and zotonic will still be run as zotonic.
[09:59:39] <simon.smithies> but maybe also I'm making this too complicated ... much easier for everything to be in /var/lib/zotonic, and run as zotonic
[10:00:30] <simon.smithies> one less login to manage
[10:00:52] <Andreas Stenius> symlinks are well tested.. so you can still have your site in zotonic's home dir somewhere..
[10:01:06] <Andreas Stenius> that'll probably make it easier to work with (esp if you use version control)
[10:01:56] <simon.smithies> I will definitely use the symlinks ... but zotonic's home directory seems to be /var/lib/zotonic
[10:02:12] <Andreas Stenius> I also have the zotonic/bin/zotonic script on my path (symlink from ~/bin/zotonic -> /var/lib/zotonic/bin/zotonic) so I can call zotonic from my site dir
[10:02:58] <Andreas Stenius> huh.. ?
[10:03:18] <Andreas Stenius> oh, what's in /var/lib/zotonic then?\
[10:03:19] <simon.smithies> I first installed from the .deb package, and it created the zotonic user with home in /var/lib
[10:03:49] <simon.smithies> the zotonic directory
[10:04:10] <Andreas Stenius> ehm... well, ok. I think Arjan has better know how about the .dep setup..
[10:04:23] <simon.smithies> does that seem wrong to you?
[10:04:51] <Andreas Stenius> well.. I'd rather say strange than wrong..
[10:04:59] <simon.smithies> :)
[10:05:14] <simon.smithies> and I'm not qualified to have any opinion on it!
[10:05:58] <simon.smithies> I ran with it and created .ssh, .bashrc etc in there too!
[10:05:59] <Andreas Stenius> I'd say stick with it (wouldn't want to mess with something that came from a package that someone has setup in a specific way)
[10:06:46] <Andreas Stenius> I see /var/lib as a common dir, not some home dir, but I guess it won't /hurt/ any one by using it as a home dir...
[10:07:14] <Andreas Stenius> esp if the machine is dedicated to the user living there...
[10:07:50] <simon.smithies> hmmm ... that might be where I have a problem ...
[10:08:26] <Andreas Stenius> what is your problem?
[10:08:47] <simon.smithies> I am thinking about giving access to the sites directory to some graphic designers I know - so they can create their own sites and templates
[10:09:19] <simon.smithies> which I suppose is another question ... what do you think of that idea?
[10:10:26] <Andreas Stenius> I would setup gitolite, and use that to deploy the code on the server
[10:11:45] <Andreas Stenius> hmm... you know; I've been planning a zotonic-host.com service for quite some time, but never really got started yet.. would that be of interest to you?
[10:11:46] <simon.smithies> this sounds interesting
[10:12:44] <simon.smithies> I was referring to gitolite there ... but zotonic-host.com <http://zotonic-host.com> definitely would be of interest
[10:12:48] <Andreas Stenius> I use gitolite to host my projects, and also configured it to keep some mirrors of projects I follow...
[10:15:01] <Andreas Stenius> but it's easy enough to do whatever one can think up for git on the server with it ;)
[10:19:57] <simon.smithies> trying to get my head round this ... if I had an account on your zotonic-host.com <http://zotonic-host.com> (once you get round to starting it!) ... could I add a new zotonic site and customise modules, upload/edit templates etc all through a git repo?
[10:20:17] <simon.smithies> or rather all through git I guess
[10:20:30] <simon.smithies> each new site being a new repo?
[10:21:22] <Andreas Stenius> yeah, something like that
[10:22:35] <simon.smithies> still trying to understand gitolite ... is it like a personal github?
[10:26:30] <Andreas Stenius> well... not quite. It has no gui (web or other). It's main task is authorization
[10:26:51] <Andreas Stenius> it works well with ssh for authentication
[10:27:40] <Andreas Stenius> then it can call out to scripts hooks and commands once it has been authenticated and authorized :)
[10:28:05] <simon.smithies> now I'm starting to understand
[10:28:25] <Andreas Stenius> it has built in support for git server functionality
[10:28:51] <Andreas Stenius> so git clone and git push works for a range of repos that has been setup
[10:29:19] <Andreas Stenius> it's a really nice piecce of software :)
[10:38:28] <simon.smithies> a lot of power there I think
[10:47:53] <simon.smithies> Reading up on gitolite ... perhaps I've been doing things the hard way
[10:48:40] <Andreas Stenius> inveting is hard.. so if what you do is already done, it is the hard way :p
[10:49:11] <simon.smithies> too true!
[10:49:15] <simon.smithies> I keep the templates for all my sites on bitbucket; build/edit them locally, push to bb, then pull to the VPS where zotonic lives
[10:49:47] <Andreas Stenius> aha, yeah, an extra roundtrip there..
[10:50:21] <Andreas Stenius> if you use git on bitbucekt, there ought to be a post trigger you could enable to notify you server to pull in the changes..
[10:50:57] <simon.smithies> I think there is and I was going to read up on that to cut out one step
[10:51:32] <simon.smithies> Would that be any different to what you do with gitolite?
[10:52:55] <Andreas Stenius> first, check arjan's service he wrote for building our docs whenever we push to github: https://github.com/zotonic/zotonicwww/blob/master/modules/mod_zotonicdocs/services/service_zotonicdocs_make.erl
[10:53:27] <Andreas Stenius> now, using gitolite, you'd push to the server directly instead of going via bitbucket/github/...
[10:53:54] <Andreas Stenius> but you'd still need to trigger a build in zotonic after a push
[10:54:32] <Arjan> simon.smithies: http://modules.zotonic.com/page/367/mod-github
[10:54:40] <Arjan> also works for bb probably
[10:54:45] <Andreas Stenius> either have the files deployed and have zotonic monitor any updates to the files (if you run in development mode, you can have mod_development do this for you) or using a post hook on the repo to it
[10:55:31] <simon.smithies> awww cool!
[10:55:42] <Andreas Stenius> yeah, I guess it will.
[10:55:52] <Andreas Stenius> a bit of a misnomer to call it mod_github...
[10:56:15] <Arjan> :P
[10:56:18] <Andreas Stenius> mod_rebuild or mod_rebuildhook or some such would be more descriptive I think..
[10:56:25] <Andreas Stenius> Heh :p
[10:56:51] <Arjan> you are right
[10:58:35] <simon.smithies> This is great stuff.
[10:59:45] <simon.smithies> I haven't been able to play with Zotonic lately. It looks like you all have made some excellent progress.
[11:00:02] <simon.smithies> Install is much less painful now - great docs
[11:01:11] <simon.smithies> And little things like addsite automatically creating symlinks, and this stuff we've just been talking about ... all good
[11:07:44] <Andreas Stenius> :)
[11:13:17] <maas.maarten.zeeman> Lexing js sucks bigtime.
[11:14:03] <maas.maarten.zeeman> if(a)/c//comment
[11:14:13] <maas.maarten.zeeman> (a)/c//comment
[11:14:42] <maas.maarten.zeeman> first the lexer should recognize a regex, second not.
[11:15:22] <maas.maarten.zeeman> the lexer actually parses.
[11:15:30] <Andreas Stenius> muhahaaha... now, that is some BAD language design
[11:15:48] <simon.smithies> You have my sympathy
[11:16:13] <simon.smithies> I'd love to help but it's now bed time in New Zealand ;)
[11:16:32] <Andreas Stenius> what should it recognize it as in the second case?
[11:16:46] <maas.maarten.zeeman> As a division and a comment
[11:17:20] <Andreas Stenius> so the lexer need to keep some form of state of what it lexed previously..
[11:17:35] simon.smithies leaves the room
[11:17:42] <maas.maarten.zeeman> yup
[11:17:59] <Andreas Stenius> heh.. can of worms :/
[11:18:08] <maas.maarten.zeeman> when it has recognized something which can lead to a number it should recognize a division
[11:18:43] <Andreas Stenius> i.e. when it has recognized a expression
[11:19:11] <maas.maarten.zeeman> yeah, but i just want to lex and not parse...
[11:20:14] <maas.maarten.zeeman> The ecma standard is pretty funny here: says you need to parse the code, and if you're at a point where a regex literal would be a valid next token, then lex it as a regex, but if you're at a point where a division would be valid, that lex it as division.
[11:20:40] <Andreas Stenius> yeah.. I'm glad I don't need to lex js
[11:20:57] <Andreas Stenius> so they say you need to parse while lexing..!
[11:21:27] <maas.maarten.zeeman> Funny people. The automatic semicolon insertion is also cool...
[11:21:54] <Andreas Stenius> uh-oh; the more that is made automatic, the more can go wrong..
[11:22:42] <Andreas Stenius> nah, I got the get to grips with my timing related serial comm issues...
[11:23:18] <maas.maarten.zeeman> :-)
[12:50:06] <Marc Worrell> Question: I need to sync entered e-mail properties with the identity table
[12:50:42] <Marc Worrell> when someone enters an e-mail address in the admin - I want the identity table to make a copy and mark it as 'unverified'
[12:51:16] <Marc Worrell> but I am wondering what the best place is to set the listener for this kind of core notifications - we don't have a mod_identity :)
[12:51:37] <Andreas Stenius> maybe we should?
[12:51:55] <Marc Worrell> there is an admin_identity - but that is really only some admin tpls
[12:51:55] <Andreas Stenius> who is responsible for the identity table then?
[12:52:02] <Marc Worrell> m_identity in core
[12:52:07] <Andreas Stenius> ah
[12:52:29] <Marc Worrell> maybe core routines should be able to set listeners as well?
[12:52:36] <Andreas Stenius> Pl/SQL?
[12:52:45] <Marc Worrell> ?
[12:53:05] <Andreas Stenius> uhm.. maybe mistyped. the postgresql language
[12:53:16] <Andreas Stenius> like the pivoting stuff..
[12:53:26] <Marc Worrell> I need to have the old and the new value - need to comparisons in Erlang
[12:53:41] <Andreas Stenius> oh
[12:53:49] <Marc Worrell> so only before serializing - but can be after the rsc commit
[12:55:02] <Marc Worrell> a mod_identity is quite ok - we need also identity confirmation e-mails
[12:55:16] <Marc Worrell> like "this e-mail was entered for you, do you read me?"
[12:55:33] <Arjan> +1 for moving everything identity related into mod_identity
[12:55:44] <Marc Worrell> and maybe optional a list of e-mail address that are confirmed/unconfirmed in the admin
[12:55:55] <Marc Worrell> ok - a new module it is :p
[12:56:03] <Marc Worrell> one that is quite essential :p
[12:56:16] <Arjan> maybe just rename mod_admin_identity
[12:56:23] <Marc Worrell> better enable it by default somehow - otherwise all systems go down
[12:56:49] <Marc Worrell> yeah, we can rename that one - we mix admin en non-admin stuff regularly
[12:57:03] <Arjan> jep
[12:57:24] <Marc Worrell> and with mod_identity we can start doing more and better stuff with identity tracking, verification and checks.
[12:57:25] <Andreas Stenius> and that way the "enabled by default" is fixed by having a alias for existing sites...
[12:57:39] <Marc Worrell> yep - we rename it in de db by an install
[12:58:23] <Marc Worrell> :) same amount of modules - that is good
[12:58:43] <Andreas Stenius> :)
[13:07:30] basvanrijen joins the room
[13:44:37] <maas.maarten.zeeman> Nice :-) Btw, there seems to be a small issue with the identity tables when deleting a user. Not all identities are deleted.
[13:46:06] <maas.maarten.zeeman> Not sure what causes it.
[14:13:16] basvanrijen leaves the room
[14:24:05] Arjan leaves the room
[14:26:56] Arjan joins the room
[14:42:16] <Marc Worrell> that is weird - there is a fk constraint on those entries
[14:47:32] basvanrijen joins the room
[14:52:12] <maas.maarten.zeeman> Sometimes just the user is deleted. Not sure what is happening.
[14:52:21] <maas.maarten.zeeman> Then the identities are left
[14:54:57] <maas.maarten.zeeman> Could be I'm doing something wrong :-) Long time ago since I saw that. Mostly during testing of signing up users.
[15:00:57] <maas.maarten.zeeman> Aha, now I know what happened. The admin console just deleted the identity not the user resource. Something like that.
[15:02:32] <Arjan> that is indeed what the 'delete username' button does
[15:05:49] Arjan leaves the room
[15:06:50] Arjan joins the room
[15:11:43] <maas.maarten.zeeman> :-) no worries then
[15:11:53] Arjan leaves the room
[15:14:43] Arjan joins the room
[15:15:33] <maas.maarten.zeeman> Aha, I had multiple identities for a user, not only a username.. So the others where left...
[15:26:58] <Marc Worrell> that is still weird - I will check the datamodel as well
[15:27:06] <Marc Worrell> will move m_identity to the new mod_identity
[15:31:17] <Marc Worrell> anyone running with R15?
[15:31:48] <Marc Worrell> my R14 install broke with the last OS X compiler update
[15:31:57] <Marc Worrell> so am pondering about installing R15
[15:42:33] Arjan leaves the room
[15:44:46] Arjan joins the room
[15:46:38] <Arjan> Im running R15 without issues
[15:47:04] <Arjan> https://www.erlang-solutions.com/downloads/download-erlang-otp :)
[15:50:54] <maas.maarten.zeeman> Pff.. My mac doesn't compile at all. Its dev-kit wouldn't upgrade for some reason.
[15:52:42] <maas.maarten.zeeman> Still on R14 here.
[15:52:59] <Arjan> didnt you buy an X230 yet? :p
[15:53:18] <maas.maarten.zeeman> Not yet. Didn't have time for it yet.
[15:53:31] <Marc Worrell> where does dat erlang solutions thing move its binaries?
[15:53:34] <Marc Worrell> the standard locations?
[15:53:40] <maas.maarten.zeeman> Now working on netbook via ssh :-)
[15:54:30] <Arjan> Marc Worrell: no clue, I dont have a mac
[15:54:44] <Marc Worrell> and on your non-mac?
[15:54:45] <Marc Worrell> :p
[15:54:51] <Marc Worrell> or did you compile from source?
[15:55:27] <Arjan> from source
[15:55:28] <Arjan> /home/arjan/local/R15B02/bin/erl
[15:56:14] <Marc Worrell> i just compiled, without wx widgets, trying install and compile of our nifs next
[15:56:51] <Marc Worrell> we really have to modify the smtp lib for the iconv stuff
[15:58:38] <maas.maarten.zeeman> Wanted to do that some time ago, but I couldn't access it on github
[16:03:16] <Marc Worrell> hei, can't we cluster these : http://www.ouya.tv/devs/ :p
[16:04:03] <Marc Worrell> access our version on github?
[16:05:26] <Marc Worrell> hmmm 2013-02-06 16:05:02.609 [error] <0.1264.0> z_user_agent: ua_classifier returned error. [UA: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.25 (KHTML, like Gecko) Version/6.0 Safari/536.25"] [Reason: ua_classifier_nif_not_loaded]
[16:07:16] <maas.maarten.zeeman> Will check this evening. Then it is playing time :-p
[16:07:36] <maas.maarten.zeeman> aha nif not compiled.
[16:08:01] Arjan leaves the room
[16:08:20] <Marc Worrell> is compiled, won't load - checking now, was a 32/64 bit confusion in rebar last time
[16:08:26] <maas.maarten.zeeman> ...
[16:10:30] <maas.maarten.zeeman> Nice console. Tegra 3 thingy... with nice for db queries too when sqlite is cuda optimized :-)
[16:11:36] <maas.maarten.zeeman> http://pbbakkum.com/db/bakkum.sql.db.gpu.pdf
[16:12:00] <maas.maarten.zeeman> Was proof of concept code though
[16:13:44] <maas.maarten.zeeman> Compiling erl is awefully slow on these machines though.
[16:14:12] Arjan joins the room
[16:15:49] <maas.maarten.zeeman> Maybe a mix between your old R14 installation and R14.
[16:15:50] <Marc Worrell> hmmm
[16:15:51] <Marc Worrell> {error,{load_failed,"Failed to load NIF library: 'dlopen(priv/ua_classifier_nif.so, 2): Symbol not found: _dtree_get_flag\n Referenced from: /Users/marc/Sites/zotonic-mx/deps/ua_classifier/priv/ua_classifier_nif.so\n Expected in: flat namespace\n in /Users/marc/Sites/zotonic-mx/deps/ua_classifier/priv/ua_classifier_nif.so'"}}
[16:15:52] basvanrijen leaves the room
[16:16:05] <maas.maarten.zeeman> R15
[16:17:03] <maas.maarten.zeeman> symbol not found.
[16:17:43] <maas.maarten.zeeman> Different linker versions?
[16:20:18] <Marc Worrell> weird
[16:20:29] Arjan leaves the room
[16:22:15] <maas.maarten.zeeman> does it need different flags to compile dynamic lib?
[16:22:23] <Marc Worrell> strange, it is indeed not in the .so file
[16:22:24] <Marc Worrell> 0000000000002430 T _dtree_get
U _dtree_get_flag
0000000000003040 T _dtree_get_flags
[16:22:48] <Marc Worrell> This .so was the default from rebar
[16:23:01] <Marc Worrell> that thing obfuscates too much
[16:23:15] <maas.maarten.zeeman> rebar you mean?
[16:23:21] <Marc Worrell> yeah
[16:23:30] Arjan joins the room
[16:23:32] <maas.maarten.zeeman> magic
[16:24:12] <maas.maarten.zeeman> it should have a verbose flag so you can see the command lines of the tools it calls
[16:24:20] Arjan leaves the room
[16:24:24] <Marc Worrell> aha
[16:24:30] <Marc Worrell> inline const dtree_dt_node *dtree_get_flag(const dtree_dt_index *h,const dtree_dt_node *n,flag_f flag)
[16:24:39] <Marc Worrell> huh? inline
[16:24:44] <maas.maarten.zeeman> not exported
[16:25:02] <Marc Worrell> and it gets called from other c files
[16:25:08] <Marc Worrell> asking for trouble
[16:25:14] <Marc Worrell> removing inline
[16:25:16] <maas.maarten.zeeman> why does it work in linux?
[16:25:27] <maas.maarten.zeeman> funny stuff compilers...
[16:25:29] <Marc Worrell> maybe it makes two versions?
[16:26:41] <maas.maarten.zeeman> maybe a security feature
[16:26:54] <Marc Worrell> is also defined in the .h file as inline - won't work when you don't have definition there as well
[16:28:13] <Marc Worrell> all those warnings about rebar changing its config...
[16:31:28] <maas.maarten.zeeman> Is there a way to easily build nifs with an emakefile
[16:32:53] <Marc Worrell> now it works
[16:33:14] <Marc Worrell> I added an error_logger message when the NIF couldn't be loaded
[16:33:33] <maas.maarten.zeeman> Tada
[16:33:50] <Marc Worrell> Then we can remove those other error messages - quite a lot - one for every request :p
[16:34:36] <maas.maarten.zeeman> Was adding stats yesterday.
[16:36:03] <Marc Worrell> yeah :-) i love stats
[16:36:08] <maas.maarten.zeeman> Made some small tweaks to webzmachine. Mainly passing the metadata to the logdata. The logger can then easily get to the interesting info
[16:36:30] <Marc Worrell> we need some realtime lists, graphs, gauges, ufos
[16:36:34] <maas.maarten.zeeman> I count in the sites dispatcher
[16:37:34] <maas.maarten.zeeman> Indeed. to show off what it does.
[16:37:46] <maas.maarten.zeeman> email sent received counters and what not
[16:39:21] <maas.maarten.zeeman> How did you make those example graphs? Storing the stats in the db?
[16:39:52] <maas.maarten.zeeman> Could also get a free account here: http://newrelic.com/product/application-monitoring
[16:44:35] <maas.maarten.zeeman> Or build our own stat storing and graping?
[16:45:58] <maas.maarten.zeeman> Btw the ping times in websockets are pretty low.
[16:47:10] <maas.maarten.zeeman> Not much difference between a real ping and a roundtrip from the page - server - page with parsing
[16:50:33] aRyo joins the room
[16:51:25] aRyo leaves the room
[16:52:13] <maas.maarten.zeeman> Going to prepare some input. Bye.
[16:57:49] maas.maarten.zeeman leaves the room
[17:29:41] basvanrijen joins the room
[17:31:13] basvanrijen leaves the room
[17:52:04] aRyo joins the room
[17:54:36] aRyo leaves the room
[18:23:40] maas.maarten.zeeman joins the room
[18:23:54] maas.maarten.zeeman leaves the room
[19:57:37] maas.maarten.zeeman joins the room
[19:59:43] <Andreas Stenius> maas.maarten.zeeman: for storing and graphing the stats, have a look at http://graphite.wikidot.com/ if you're not willing to build something from scratch.. ;)
[20:04:31] Arjan joins the room
[20:15:00] <maas.maarten.zeeman> newrelic.com <http://newrelic.com> looks pretty interesting but then you have to move your data.
[20:15:07] <maas.maarten.zeeman> out of your server
[20:25:57] Protagores is now known as protagores
[20:28:02] protagores is now known as Protagores
[21:11:06] Andreas Stenius leaves the room
[21:14:28] <Marc Worrell> I like my stats on my own server :)
[21:15:13] <maas.maarten.zeeman> Me too, how difficult can that be
[21:15:17] <Marc Worrell> Though just feeding it to another service is always good - we do the same (more or less) with the Google Analytics code
[21:15:18] <maas.maarten.zeeman> :-)
[21:15:49] <maas.maarten.zeeman> ga is everywhere...
[21:15:53] <Marc Worrell> better demo when we have moving stuff available all the time :p
[21:16:11] <Marc Worrell> ga is a Google money machine - they collect so much data about people
[21:16:30] <Marc Worrell> similar to those like, tweet and +1 buttons
[21:16:41] <Marc Worrell> every time you see one, you are logged as watching it
[21:16:45] <Marc Worrell> and they know it was you
[21:17:15] <Marc Worrell> In safari I have a plugin to disable all the Like buttons everywhere :p
[21:17:30] <maas.maarten.zeeman> It allows them to track you from site to site, no questions asked.
[21:17:56] <maas.maarten.zeeman> new versions are iframes
[21:18:12] <maas.maarten.zeeman> snooping around on the main frame
[21:18:34] <Marc Worrell> yuck
[21:18:40] <Marc Worrell> better have our own stats
[21:18:52] <Marc Worrell> also independent of cookie laws
[21:19:35] <maas.maarten.zeeman> How difficult can it be?
[21:19:53] <maas.maarten.zeeman> Some indexes here and there for range queries on the data.
[21:20:08] <Marc Worrell> and better quality - with one of my customers the webmasters tools suddenly went to close to 0 hits - where the ga tools gave still many many many refers from google…. don't trust those stats
[21:20:34] <Marc Worrell> more all prechewed - it is just counting - and when you know what to count...
[21:21:16] <maas.maarten.zeeman> In the mean time I'm installing new disk brake pads on my bike :-)
[21:21:33] <Marc Worrell> that is fun :-)
[21:22:29] <Marc Worrell> maybe there is a good open source stats thingy? Then we can peek into the data structures (that is when they are not covered by scary licenses)
[21:24:32] <maas.maarten.zeeman> Indeed, folsom and statman is just for collecting. After that it has to be stored somewhere. Lots of numbers, so the db could use some special indexes there.
[21:24:47] <maas.maarten.zeeman> Or maybe not for fast storage.
[21:25:44] <Marc Worrell> people have come up with all kinds of strategies - we just have to learn from their examples
[21:26:33] <Marc Worrell> haha, Graphite is in my AOSA book - will read the chapter :p
[21:27:53] Protagores leaves the room
[21:27:57] <maas.maarten.zeeman> :-)
[21:28:25] <maas.maarten.zeeman> Sounds like a fun sqlite project too.
[21:28:44] <maas.maarten.zeeman> rtrees maybe :-p
[21:30:31] <maas.maarten.zeeman> *centering disk brakes*
[21:57:12] Arjan leaves the room
[22:15:41] <maas.maarten.zeeman> graphite uses a special db library called whisper.
[22:20:44] <maas.maarten.zeeman> hmmz with erlang you can build something much faster than graphite.
[22:23:59] Arjan joins the room
[22:43:06] maas.maarten.zeeman leaves the room
[23:46:36] Arjan leaves the room
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!