#silverstripe IRC Log

IRC log for 21 April 2013

All timestamps are in UTC.

1: [00:00:00] <sminnee> FrozenFire: regarding silverstripe-freeform, there are bits and pieces to allow more flexibility in form generation in core, but they're not very well documented and not that widely used. A syntax like this is possible: https://gist.github.com/5427907
2: [00:02:00] <sminnee> returns a concatenation or FieldHolder, and the FieldHolder for a FormAction is just the button.
3: [00:02:00] <sminnee> basically, FieldMap returns an object where every method returns the field of that name, so you can place them inside arbitrary HTML but still rely on the HTML-generation on a field by field basis. then there was $FormAttributes and $HiddenFields to put in the SilverStripe plumbing. finally, you can loop on actions as per the default Form.ss, or render them in a single block by placing Actions as a $-var. The forTemplate() for FieldList
4: [00:02:00] <sminnee> It'd be worth digging into how close to your needs this gets you, and if there are any small core patches that would push it all over the edge.
5: [00:32:00] * SightUnseen has joined #silverstripe
6: [00:33:00] * SightUnseen has left #silverstripe
7: [00:54:00] <FrozenFire> Basically, a ShortcodeParser which lets you construct a form
8: [00:54:00] <FrozenFire> sminnee, I'm actually talking about HTMLEditorField forms
9: [00:54:00] <sminnee> ah ok
10: [00:55:00] <FrozenFire> Yep. I know roughly how it would be done. It's just a lot of legwork
11: [00:55:00] <FrozenFire> As for my dataobjectcruft module, yeah, it's basically what DBPlumber did for deleting old schema data
12: [00:55:00] <sminnee> I know that Hamish redid a lot of ShortcodeParser
13: [00:55:00] <sminnee> because the parser wasn't robust. now it is.
14: [00:55:00] <FrozenFire> Because as development goes on in complex projects, the schema often gets refactored
15: [00:55:00] <sminnee> OK. Is DBPlumber 2.4 only?
16: [00:55:00] <sminnee> but i think that's 3.1 only.
17: [00:56:00] <FrozenFire> DBPlumber was 2.4-only, and it was dangerous
18: [00:56:00] <FrozenFire> But it was useful for comparing the fields/relations of a DataObject to its table
19: [00:56:00] <FrozenFire> Bad UI available through the CMS
20: [00:56:00] <sminnee> heh ok
21: [00:57:00] <FrozenFire> And it does do that. Basically already done at this point.
22: [00:57:00] <sminnee> OK god I've think I've discovered a 1-line-change-that-creates-a-30%-speedup in 3.0 :|
23: [00:57:00] <FrozenFire> Idea of my module is basically just to be able to run /dev/scrub at the end of your development process, select everything which you want gone, and then have it automatically delete it
24: [00:58:00] <FrozenFire> If the framework it spending a lot of time in that area
25: [00:58:00] <sminnee> Well, that's where I've gotten it, but it was kind of bured
26: [00:58:00] <FrozenFire> You'd think something like that would be identifiable from profiling
27: [00:58:00] <FrozenFire> o.O
28: [00:59:00] <FrozenFire> Haha
29: [00:59:00] <FrozenFire> Ah
30: [00:59:00] <sminnee> :|
31: [00:59:00] <FrozenFire> Nah, I can definitely see that being a significant amount of time spent in the model and view
32: [00:59:00] <sminnee> OK - 30% is overstating it
33: [00:59:00] <sminnee> Yeah - ViewableData::obj() calls DataObject::toMap(), which calls DataObject::lazyLoadFields(), which defeats the purpose of lazy loading
34: [01:00:00] <sminnee> more like 18%
35: [01:00:00] <FrozenFire> Since the database tends to be a big bottleneck
36: [01:05:00] <simon_w> Interestingly, we're finding memcache is too
37: [01:06:00] <simon_w> MemcachedPool::get() is usually the function taking the second most amount of cumulative time
38: [01:06:00] <FrozenFire> Is it just spending a lot of time there, or is it significantly slower than the alternative?
39: [01:07:00] <simon_w> With about 50x more calls than mysqli::query
40: [01:07:00] <simon_w> Have you tried configuring 3.0 to do that? :p
41: [01:07:00] <FrozenFire> If you're pushing the manifest into Zend_Cache and using memcache as the backend, then I would imagine that would indeed spend a good amount of time there
42: [01:08:00] <FrozenFire> And Zend_Cache can be configured with a memcache backend
43: [01:08:00] <simon_w> Use memcache for the manifest
44: [01:08:00] <FrozenFire> I thought the manifest used Zend_Cache
45: [01:08:00] <simon_w> Yes
46: [01:08:00] <FrozenFire> Do which?
47: [01:09:00] <FrozenFire> No idea
48: [01:09:00] <FrozenFire> Is that not the situation you're speaking of?
49: [01:09:00] <simon_w> And when does that configuration happen?
50: [01:09:00] <simon_w> Yes
51: [01:09:00] <simon_w> Think about it for a bit.
52: [01:09:00] <FrozenFire> I've not done it
53: [01:10:00] <simon_w> (It's a similar reason for why the dev-only yaml sections don't work so well)
54: [01:10:00] <FrozenFire> Presumably you would explicitly load Zend_Cache, before the core boots, and configure it? As I say, I've not done it
55: [01:12:00] <simon_w> Yes, you need to configure the thing that loads the configuration system
56: [01:13:00] <simon_w> But this is on 2.4 as well. And usually in functions where calls to ViewableData::__get() is also a noticeable slowdown
57: [01:19:00] <sminnee> FrozenFire simon_w - this is the patch. I think we need to include it in the 3.0 branch despite being an API chagne https://gist.github.com/sminnee/5428083
58: [01:21:00] <FrozenFire> Should probably let it mellow in 3.1 before putting it in 3.0
59: [01:21:00] <FrozenFire> See if anything substantial breaks
60: [01:25:00] <simon_w> sminnee, a simple way to limit the BC breaks is to have DataObject implement ArrayAccess, though that would probably need to be a 3.1 change
61: [01:26:00] <sminnee> simon_w: nah, I don't think that will help. The point of this is that the composite field needs access to data from $this->record that may or may not be appropriate for DataObject to return through getField(), which would presumably be the target of arrayaccess.
62: [01:26:00] <FrozenFire> Mostly just a structural thing
63: [01:26:00] <FrozenFire> I've done it a few times.
64: [01:26:00] <sminnee> in practise, how many people actually build their own composite fields?
65: [01:27:00] <simon_w> DBField, not FormField
66: [01:27:00] <FrozenFire> Such as a composite field with three DropdownFields for Day, Month, Year
67: [01:28:00] <FrozenFire> CompositeDBField, then. :P
68: [01:28:00] <FrozenFire> Oh
69: [01:29:00] <simon_w> We've got one, but they're a pain to write and get right (more so than a plain DBField) so I doubt many people actually make their own
70: [01:31:00] <FrozenFire> And although they're usually just used in edge cases, they do sort of defeat the purpose of ActiveRecord
71: [01:33:00] <simon_w> Huh, you can use it to find people that've committed their manifest to github https://github.com/search?q=CompositeDBField&ref=cmdform&type=Code
72: [01:34:00] <FrozenFire> Haha
73: [01:36:00] <sminnee> cheers.
74: [01:36:00] <simon_w> sminnee, basic search shows only Money https://github.com/sminnee/silverstripe-gis/blob/f5e47c816bbdcfe522be4e77d285b3a2f69dfb84/code/model/fieldtypes/GeoLineString.php and https://github.com/markjames/silverstripe-textilefield/blob/master/code/fields/TextileField.php
75: [01:37:00] <sminnee> I'll post a note to Mark James I guess.
76: [01:40:00] <sminnee> will see what Ingo thinks,
77: [01:40:00] <sminnee> OK - https://github.com/silverstripe/sapphire/pull/1788
78: [01:40:00] * gelignite quit (Quit: http://bit.ly/nkczDT)
79: [01:41:00] <simon_w> Oh, typo in the upgrading docs. 'shoulcd'
80: [02:13:00] <sminnee> thx.
81: [02:32:00] <ss23> Yay our drought ended! https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-frc1/476109_10151622730531111_1537086604_o.jpg.webp
82: [02:52:00] <simon_w> Lol, webp
83: [02:53:00] <ss23> Dunno about webp. Makes sense for faceboko to use it, given how much better it is than png etc, but not worht it for most sites I guess *shrug*
84: [03:01:00] * lewellyn quit (Ping timeout: 260 seconds)
85: [03:10:00] * ferge has joined #silverstripe
86: [03:13:00] * lewellyn has joined #silverstripe
87: [03:14:00] * joelpittet has joined #silverstripe
88: [03:40:00] <sminnee> okay, what started as a tool for downloading db-snapshots is turning into something for creating self-extracting bundles of ss projects. hurray, feature-creep!
89: [03:50:00] * mobiusnz quit (Client Quit)
90: [03:50:00] * mobiusnz has joined #silverstripe
91: [03:51:00] * mobiusnz has joined #silverstripe
92: [03:56:00] * cloph_away has joined #silverstripe
93: [03:58:00] * cloph quit (Ping timeout: 276 seconds)
94: [04:28:00] * mobiusnz quit (Quit: Leaving.)
95: [04:35:00] * mobiusnz has joined #silverstripe
96: [04:40:00] * mobiusnz1 has joined #silverstripe
97: [04:44:00] * mobiusnz quit (Ping timeout: 264 seconds)
98: [04:54:00] <FrozenFire> There are some operations I'd like to add to the various database handlers
99: [04:54:00] <FrozenFire> Are backend API additions considered BC breakers?
100: [04:59:00] <sminnee> FrozenFire: um, depends
101: [05:00:00] <simon_w> Eww, backticks
102: [05:00:00] <FrozenFire> Things like that
103: [05:00:00] <sminnee> we usually take it on a case-by-case basis.
104: [05:00:00] <FrozenFire> https://github.com/TheFrozenFire/silverstripe-dataobjectcruft/blob/master/code/DatabaseAdminCleaner.php#L203
105: [05:00:00] <FrozenFire> https://github.com/TheFrozenFire/silverstripe-dataobjectcruft/blob/master/code/DataObjectCruft.php#L103
106: [05:00:00] <sminnee> Right so you want to add dropTalbe().
107: [05:01:00] <sminnee> but mandating it in Database would not.
108: [05:01:00] <sminnee> creating a default implementation in Database would probably be okay.
109: [05:01:00] <sminnee> so, adding dropTable() to MySQLDatabse would be okay.
110: [05:01:00] <FrozenFire> Well, I'd add an empty abstract to Database
111: [05:02:00] <FrozenFire> There are certain DBMS' which it wouldn't make sense in.
112: [05:03:00] <FrozenFire> But yeah, I'd want to add something for dropping a table, deleting a field on a table, and removing indexes
113: [05:03:00] <FrozenFire> Basically the three in-database destructive operations
114: [05:04:00] <FrozenFire> How does SS do its additive schema generation?
115: [05:04:00] <FrozenFire> Then I'd also want something for getting fields and indexes on a table
116: [05:05:00] <FrozenFire> simon_w, Also, wat.
117: [05:05:00] <FrozenFire> Does it just specify a conflict clause?
118: [05:05:00] <FrozenFire> Or is there something already in there for detecting existing fields?
119: [05:06:00] <FrozenFire> Iirc, SS does something retarded for field delimiting in its database classes...
120: [05:06:00] <simon_w> All double quotes
121: [05:06:00] <simon_w> Nope, back ticks are
122: [05:06:00] <FrozenFire> Yeah, that's retarded.
123: [05:06:00] <FrozenFire> Backticks are the standard field delimiter for MySQL
124: [05:06:00] <simon_w> You're in ANSI mode. Look at all the SQL SS generates
125: [05:07:00] <simon_w> Strings are single quotes
126: [05:07:00] <FrozenFire> :P
127: [05:07:00] <FrozenFire> Double quotes don't distinguish schema identifiers from strings
128: [05:07:00] <sminnee> The FrozenFire you're not going to win this argument.
129: [05:08:00] <FrozenFire> simon_w remarked on *my* use. :P
130: [05:08:00] <sminnee> well, it's your use in a SilverStripe module.
131: [05:08:00] <sminnee> "retarded" is perhaps less useful than "not compliant with the SilverStripe standard" :p
132: [05:08:00] <FrozenFire> Didn't say SS should change
133: [05:08:00] <sminnee> and we work with more than one database
134: [05:08:00] <FrozenFire> I don't expect I will
135: [05:08:00] <sminnee> We use double-quotes for field / table identifiers and single-quotes for strings as a matter of practise because that's ANSI SQL standard.
136: [05:09:00] <sminnee> it's half way
137: [05:09:00] <sminnee> so...
138: [05:09:00] * FrozenFire trollfaces
139: [05:09:00] <FrozenFire> But doesn't SS run on Windows too?
140: [05:09:00] <sminnee> sspak save ~/Sites/mysite mysite.sspak
141: [05:09:00] <sminnee> so now I can go:
142: [05:09:00] <sminnee> in other news i've made a self-extracting tar ball with a PHP handler script
143: [05:09:00] <FrozenFire> Fair enough
144: [05:10:00] <sminnee> and then pass on install-mysite
145: [05:10:00] <sminnee> sspak bundle mysite.sspak install-mysite
146: [05:10:00] <sminnee> Yes, this particular tool isn't really Windows-friendly
147: [05:10:00] <sminnee> and someonee can run ./install-mysite install ~/Sites/whatever
148: [05:11:00] <FrozenFire> Out of curiosity, are you using the phar format?
149: [05:13:00] <FrozenFire> Seems not
150: [05:14:00] <sminnee> I probably could, but i didn't.
151: [05:14:00] <sminnee> FrozenFire: nah.
152: [05:15:00] <FrozenFire> And semi-standard
153: [05:15:00] <FrozenFire> Probably should. That'd make it much more cross-compatible
154: [05:15:00] <sminnee> true that.
155: [05:16:00] <sminnee> this was relatively straightforward
156: [05:16:00] <sminnee> yeah.
157: [05:16:00] <FrozenFire> Phar is black magic
158: [05:16:00] <FrozenFire> Though your sanity will leak out your ears. :P
159: [05:16:00] * FrozenFire considers writing an SS packager which uses phar, just to make people cry
160: [05:17:00] <FrozenFire> Exactly
161: [05:17:00] <FrozenFire> Well, that's what Phar actually excels at
162: [05:17:00] <sminnee> ah ok.
163: [05:17:00] <FrozenFire> It's intended to be a PHP-supported packaging system which you can run in PHP directly
164: [05:17:00] <sminnee> it's like jar.
165: [05:17:00] <sminnee> but ph
166: [05:17:00] <sminnee> and i'm wanting to do things like extract one file out of the tar, pipe its content over ssh, and then pipe the content into a command running on the ssh destination server.
167: [05:18:00] <sminnee> lol.
168: [05:18:00] <FrozenFire> But it does things like register a stream handler against the current file
169: [05:18:00] <sminnee> aah __halt_compiler(). I did exit(0);\n?>
170: [05:18:00] <FrozenFire> Really it's just a hack of a bunch of bootstrap code with a __halt_compiler()
171: [05:19:00] <FrozenFire> Exactly
172: [05:19:00] <FrozenFire> __halt_compiler() is the only reliable way to package data in a PHP file
173: [05:19:00] <FrozenFire> :P
174: [05:19:00] <sminnee> i suppose a 900MB file might also make PHP choke.
175: [05:19:00] <FrozenFire> Indeed. __halt_compiler() will basically say "YOU SHALL NOT PASS!"
176: [05:19:00] <FrozenFire> Yeah, use __halt_compiler()
177: [05:19:00] <sminnee> which i guess is fine until your file contains <?
178: [05:25:00] <sminnee> it'd be nice to have a phar of a site where by default running it started up the PHP5.4 web server ;-)
179: [05:26:00] <FrozenFire> Except that the built-in webserver should never be used in production, and that would encourage people to do so. :P
180: [05:27:00] <FrozenFire> I'm personally against packaged PHP like that, because it sort of defeats the purpose of having a scripted language
181: [05:28:00] <FrozenFire> But being able to package your project up into one file that you could drop on a PaaS would be cool
182: [05:28:00] <FrozenFire> Then the PaaS just routes into the phar and bam
183: [05:37:00] <simon_w> Could be something for the GWP
184: [05:38:00] <FrozenFire> GWP?
185: [05:38:00] <simon_w> that thing SS got from the DIA
186: [05:38:00] <simon_w> Government Web Platform
187: [05:39:00] <FrozenFire> Someone would probably claim that the code being deployed it obfuscated
188: [05:39:00] * ajshort has joined #silverstripe
189: [05:39:00] <FrozenFire> is**
190: [05:39:00] <FrozenFire> Eh, I could see legal stuff getting in the way of that
191: [05:40:00] * mobiusnz1 quit (Quit: Leaving.)
192: [05:47:00] <sminnee> CWP
193: [05:48:00] <sminnee> FrozenFire: the CWP is something that SilverStripe Ltd is delivering. So we have a fair degree of control over it. But, since we also provide a git repo as well as the actual hosting, it's not of so much direct benefit.
194: [05:49:00] <FrozenFire> You'd have to check into how they affect opcode caching
195: [05:49:00] <FrozenFire> I suspect you'll run into problems, there.
196: [05:49:00] <sminnee> I am keen to look into using .phars for our deployment system though, so that non-dev environments just run .phars.
197: [05:50:00] <sminnee> ooh
198: [05:50:00] <FrozenFire> Though really, if you have the ability to run composer/git, I'd not recommend phar
199: [05:50:00] <FrozenFire> Since it would *seriously* inhibit deploying updates.
200: [05:50:00] <sminnee> "Feb 18, 2013 ??? Actually though, APC does not support phar files."
201: [05:50:00] <FrozenFire> You'd basically have to shut the site down for a period of time while you replaced the phar
202: [05:51:00] <sminnee> FrozenFire: we usually do deploys by having /release/1 and /release/2 and have www symlinked to one or the other
203: [05:51:00] <sminnee> phar would be fine for that.
204: [05:51:00] <FrozenFire> Yeah, a big part of opcode caching is matching file names to opcode blobs
205: [05:51:00] <sminnee> but not having opcodes is a showstopper :|
206: [05:52:00] <FrozenFire> I'd say, moving forward, you should probably be using xcache or O+
207: [05:52:00] <sminnee> "Phar is APC-compatible, the latest APC will cache files within a phar archive, resulting in
208: [05:52:00] <sminnee> why?
209: [05:52:00] <sminnee> a 6x speedup measured running phpMyAdmin as a phar archive."
210: [05:52:00] <sminnee> oh wait
211: [05:52:00] <FrozenFire> Well, APC isn't the be-all end-all
212: [05:52:00] <FrozenFire> In fact, I recommend against APC
213: [05:53:00] <FrozenFire> http://stackoverflow.com/a/10109553/1069833
214: [05:53:00] <FrozenFire> APC is poorly maintained, imo.
215: [05:53:00] <FrozenFire> xcache and O+ are generally considered "today's" opcode caches.
216: [05:54:00] <FrozenFire> Bundled with PHP 5.5
217: [05:54:00] <sminnee> Ah ok we're still on 5.3 which I guess explains why we haven't bumped into this.
218: [05:54:00] <FrozenFire> Renamed Optimizer+
219: [05:54:00] <sminnee> yeah
220: [05:54:00] <sminnee> O+ fails the google test.
221: [05:54:00] <FrozenFire> Zend Optimizer +
222: [05:55:00] <FrozenFire> Indeed. O+ will be maintained *with* PHP, so it will have the absolute best compatibility with all future releases.
223: [05:55:00] <ajshort> o+ is supposed to have the best performance + also be the most up to date with php
224: [05:55:00] <ajshort> especially now it's bundled with 5.5
225: [05:56:00] <ajshort> the only missing thing would be if you're using apc's cache stuff
226: [05:56:00] <FrozenFire> And, relatedly, updates to O+ will likely be backported to older versions
227: [05:56:00] <FrozenFire> xcache works out of the box, quite well
228: [05:56:00] <FrozenFire> xcache
229: [05:56:00] <FrozenFire> I've never used APC, because I could never get it stable.
230: [05:56:00] <sminnee> Yeah O+ would be good to use for 5.5, but what about for 5.4/3?
231: [05:57:00] <sminnee> true that.
232: [05:57:00] <sminnee> so??? now to find out does xcache support phar ;)
233: [06:02:00] <FrozenFire> It might actually be worth looking into whether the manifest could be cached in xcache
234: [06:02:00] <FrozenFire> I had actually started work somewhere on an xcache management module for SS. :P
235: [06:06:00] <FrozenFire> What sort of profiling tools do you guys normally use in-house for benchmarking changes?
236: [06:06:00] <FrozenFire> Just xdebug and kcachegrind?
237: [06:09:00] <ajshort> the break is the important part :P
238: [06:09:00] <FrozenFire> define() in a loop?
239: [06:09:00] <FrozenFire> https://github.com/silverstripe/sapphire/blob/3.0/core/Core.php#L57 I'm quite surprised this doesn't cause problems.
240: [06:10:00] <sminnee> you used xhprof? i find it quite a bit better than the xdebug/webgrind combo
241: [06:10:00] <sminnee> FrozenFire: xhprof
242: [06:10:00] <FrozenFire> Oh, right
243: [06:11:00] <sminnee> it has much less impact on performance while profiling than xdebug.
244: [06:12:00] <FrozenFire> That's one of the core features of xdebug
245: [06:12:00] <FrozenFire> I've not. If xdebug is skewing the numbers, I'd be very interested in some stats, there. I'm sure Derick would also like those stats as well. :P
246: [06:15:00] <sminnee> Haven't used it for profiling for a while, so don't have any recent hard data.
247: [06:15:00] <sminnee> i found that it overstated the cost of methods like class_exists()
248: [06:17:00] <FrozenFire> I'm also not particularly keen on using web tools for that sort of stuff. Nothing particularly against them, but having to load your profiling data into a web interface sounds... clunky.
249: [06:24:00] <sminnee> Yeah, I'm not sure if there are other tools for viewing the xhprof output.
250: [06:25:00] <FrozenFire> http://www.exteon.ro/en/products/php-tools/web3tracer
251: [06:26:00] <FrozenFire> xhprof fork with kcachegrind output support
252: [06:33:00] <FrozenFire> Always fun to try to debug xcache errors >.>
253: [06:34:00] <FrozenFire> ERROR [Warning]: xcache_unset(): XCache var cache was not initialized properly. Check php log for actual reason
254: [06:34:00] <FrozenFire> It really doesn't like me
255: [06:34:00] <FrozenFire> Was trying to see if I could hack xcache in as the default SS_Cache backend before the manifest does its thing
256: [06:35:00] * FrozenFire gives up
257: [06:56:00] * Motoservo has joined #silverstripe
258: [07:05:00] * Motoservo quit (Quit: Shhh. I'm trying to get some sleep here.)
259: [07:11:00] * Pyromanik__ has joined #silverstripe
260: [07:12:00] <Pyromanik__> how is everyone
261: [07:28:00] * eikonos quit (Changing host)
262: [07:28:00] * eikonos has joined #silverstripe
263: [07:28:00] * eikonos has joined #silverstripe
264: [07:29:00] * Pyromanik__ quit (Ping timeout: 276 seconds)
265: [07:34:00] * Pyromanik__ has joined #silverstripe
266: [07:53:00] <cloph_away> How is comparing changes of a page supposed to work in SS 3.1beta3? Once can select two revisions in the History tab of a page, but it doesn't show/highlight the differences (or only parts) http://frupic.frubar.net/29240 http://frupic.frubar.net/29241 http://frupic.frubar.net/29242
267: [07:53:00] * cloph_away is now known as cloph
268: [07:54:00] <cloph> also when comparing versions 5 and 6, SS writes "Comparing versions 6 (view) and 1 (view)."
269: [07:58:00] <cloph> (also the show unpublished has to be toggled to actually take effect - see in the screenshots that not all 6 revisions are shown
270: [08:00:00] <Pyromanik__> simon_w: so did I hear an official hackdown was stampped in?
271: [08:01:00] <simon_w> Pyromanik__, I think so? Though sminnee hasn't created the meetup page yet (that I've seen)
272: [08:02:00] <Pyromanik__> simon_w: what date was settled on?
273: [08:02:00] <simon_w> 25th
274: [08:02:00] <Pyromanik__> It's gonna be hard for me to get time off if I don't get it in soon
275: [08:05:00] <Pyromanik__> Might not need time off
276: [08:05:00] <Pyromanik__> Hmm, Saturday.
277: [08:07:00] <simon_w> And it can be like a #silverstripe IRC meet up!
278: [08:14:00] * chillu has joined #silverstripe
279: [08:21:00] <ss23> chillu can come too!
280: [08:21:00] <Pyromanik__> almost eh
281: [08:21:00] <simon_w> Well, all of us NZ folk
282: [08:35:00] * zfmf has joined #silverstripe
283: [08:49:00] * SightUnseen has joined #silverstripe
284: [08:50:00] * SightUnseen has left #silverstripe
285: [09:04:00] * priithansen has joined #silverstripe
286: [10:03:00] <Pyromanik__> haha
287: [10:03:00] <ss23> :P
288: [10:03:00] <Pyromanik__> long way to come for a hackfest
289: [10:03:00] <ss23> Pyromanik__: ik
290: [10:03:00] <Pyromanik__> ss23: chillu is in Germany I think
291: [10:04:00] <Pyromanik__> ss23: no.
292: [10:04:00] <ss23> Pyromanik__: Totally worth it to meet ss23 and Pyromanik__ IRL though, right?
293: [10:04:00] <Pyromanik__> more likely he'll stay up late and google groupuproomchatvideothing
294: [10:04:00] <Pyromanik__> not really.
295: [10:04:00] <Pyromanik__> Especially on a semi serious day.
296: [10:04:00] <ss23> lol
297: [10:05:00] <Pyromanik__> if he does come
298: [10:05:00] <ss23> Whatever, man!
299: [10:05:00] <Pyromanik__> he should totally bring Zauberfisch|idle with him though.
300: [10:11:00] * chillu quit (Quit: chillu)
301: [10:13:00] <Pyromanik__> apparently not :<
302: [10:15:00] <ss23> XD
303: [10:33:00] * gelignite has joined #silverstripe
304: [10:36:00] <Zauberfisch|idle> ^^
305: [10:36:00] <Zauberfisch|idle> I would love to come to wellington
306: [10:36:00] <Zauberfisch|idle> but yeah, its a bit far :/
307: [10:36:00] <Zauberfisch|idle> plain tickets would be something around 1k???
308: [10:37:00] <Zauberfisch|idle> which is a bit much for a hackfest
309: [10:39:00] <Pyromanik__> stay for a couple of weeks afterwards and tour the country! :D
310: [10:56:00] * Zauberfisch has joined #silverstripe
311: [10:58:00] <ss23> I wish I could IRC while idle :<
312: [10:59:00] <ss23> If I was IRCing, I wouldn't be idle
313: [10:59:00] <Zauberfisch> ss23 got a root/v verserver?
314: [10:59:00] <Zauberfisch> fail
315: [10:59:00] <Zauberfisch> root/v server
316: [10:59:00] <Zauberfisch> run irssi in a screen
317: [10:59:00] <Zauberfisch> and you have it
318: [10:59:00] <ss23> Zauberfisch: If I was idle, I wouldn't be at my PC, so I couldn't IRC
319: [10:59:00] <ss23> :P
320: [11:00:00] <Zauberfisch> ah, took me a bit to get the point :P
321: [11:00:00] <ss23> Zauberfisch: I do run irssi in a screen, I was just making fun of you
322: [11:12:00] * Motoservo has joined #silverstripe
323: [11:46:00] * priithansen quit (Quit: priithansen)
324: [11:48:00] * chillu has joined #silverstripe
325: [11:48:00] <Pyromanik__> I still don't get it
326: [11:49:00] <ss23> And I say, "I wish I could IRC while asleep"
327: [11:49:00] <ss23> Pyromanik__: It's like when someone talks while their nick is foo|sleep
328: [11:49:00] <ss23> Same idea remains
329: [11:50:00] <Pyromanik__> oic
330: [11:50:00] <ss23> :3
331: [11:50:00] <ss23> Sorry, my humor is rather advanced.
332: [11:51:00] <ss23> :D
333: [11:51:00] <ss23> I'm sure if you were 5 you would find my absolutely hilarious though!
334: [12:18:00] * Pyromanik__ has left #silverstripe
335: [12:47:00] * zfmf quit (Read error: Connection reset by peer)
336: [13:54:00] * Zauberfisch_ has joined #silverstripe
337: [13:54:00] * Zauberfisch_ quit (Remote host closed the connection)
338: [13:57:00] * ajshort quit (Quit: ChatZilla 0.9.90-rdmsoft [XULRunner 18.0.2/20130201065344])
339: [14:59:00] * Motoservo quit (Quit: Shhh. I'm trying to get some sleep here.)
340: [15:37:00] * priithansen has joined #silverstripe
341: [16:58:00] * webuest has joined #silverstripe
342: [17:05:00] * chillu quit (Quit: chillu)
343: [17:08:00] * Zauberfisch_ has joined #silverstripe
344: [17:09:00] * Zauberfisch__ has joined #silverstripe
345: [17:12:00] * Zauberfisch quit (Ping timeout: 264 seconds)
346: [17:13:00] * Zauberfisch_ quit (Ping timeout: 248 seconds)
347: [17:25:00] * webuest quit (Ping timeout: 245 seconds)
348: [17:29:00] * webguest has joined #silverstripe
349: [17:29:00] <webguest> im importing a member database from an old website. Is there a way to auto generate passwords, salt and validation key for these member records?
350: [17:29:00] <webguest> SS 2.4.10
351: [17:30:00] <webguest> and is it possible to keep the old password?
352: [18:24:00] * webguest quit (Ping timeout: 245 seconds)
353: [18:26:00] * ferge has left #silverstripe
354: [18:35:00] * zfmf has joined #silverstripe
355: [19:07:00] * simon_w quit (Quit: This computer has gone to sleep)
356: [19:15:00] * chillu has joined #silverstripe
357: [19:43:00] * simon_w has joined #silverstripe
358: [19:45:00] <simon_w> lag lag lag lag
359: [19:45:00] * simon_w quit (Client Quit)
360: [19:48:00] * simon_w has joined #silverstripe
361: [19:50:00] * simon_w quit (Client Quit)
362: [19:51:00] * simon_w has joined #silverstripe
363: [19:53:00] <travis-ci> [travis-ci] Build details : http://travis-ci.org/silverstripe/sapphire/builds/6519988
364: [19:53:00] * travis-ci has left #silverstripe
365: [19:53:00] <travis-ci> [travis-ci] Change view : https://github.com/silverstripe/sapphire/compare/d07fb4355db3...53e3e6d2b4b5
366: [19:53:00] <travis-ci> [travis-ci] silverstripe/sapphire#2040 (3.1 - 53e3e6d : Ingo Schommer): The build passed.
367: [19:53:00] * travis-ci has joined #silverstripe
368: [20:11:00] * lx-berlin_ has joined #silverstripe
369: [20:31:00] * unsignedint has joined #silverstripe
370: [20:35:00] * nickmolhoek quit (Remote host closed the connection)
371: [20:35:00] * nickmolhoek has joined #silverstripe
372: [20:36:00] * nickmolhoek has joined #silverstripe
373: [20:44:00] * Zauberfisch__ quit (Read error: Connection reset by peer)
374: [21:08:00] * lx-berlin_ has left #silverstripe
375: [21:16:00] * willr_ has joined #silverstripe
376: [21:19:00] * clodeindustrie has joined #silverstripe
377: [21:19:00] * zfmf has left #silverstripe
378: [21:20:00] <clodeindustrie> I have a modeladmin that manage a particular type of my pages
379: [21:20:00] <clodeindustrie> on the page
380: [21:20:00] <clodeindustrie> I would like to "hack" a publish button
381: [21:20:00] <clodeindustrie> as I am aware that modeladmin is not made to be used with pages
382: [21:20:00] <clodeindustrie> hi there
383: [21:21:00] <clodeindustrie> there is no ID in the request object
384: [21:21:00] <clodeindustrie> however I can't understand how the backend grab the ID of the current object
385: [21:21:00] <clodeindustrie> when the save button is pushed
386: [21:22:00] <clodeindustrie> any idea how I could do that
387: [21:22:00] <clodeindustrie> ?
388: [21:22:00] <clodeindustrie> there is mention of "item" and a number in the url but it's not used
389: [21:26:00] * Motoservo has joined #silverstripe
390: [21:29:00] <willr_> clodeindustrie think there was a post of leftandmain or ssbits about that
391: [21:30:00] <clodeindustrie> ah interesting
392: [21:30:00] <clodeindustrie> I'll google that then
393: [21:31:00] * Motoservo quit (Quit: Shhh. I'm trying to get some sleep here.)
394: [21:33:00] <clodeindustrie> I think I found it, thanks
395: [21:43:00] * pippy_ is now known as pippy
396: [21:53:00] * priithansen quit (Quit: priithansen)
397: [21:55:00] * SightUnseen has joined #silverstripe
398: [21:55:00] * SightUnseen has left #silverstripe
399: [22:44:00] * mobiusnz has joined #silverstripe
400: [23:03:00] * Jedateach has joined #silverstripe
401: [23:04:00] * travis-ci has left #silverstripe
402: [23:04:00] * travis-ci has joined #silverstripe
403: [23:04:00] <travis-ci> [travis-ci] silverstripe/sapphire#2042 (post-2.4 - c915dcf : Ingo Schommer): The build is still failing.
404: [23:04:00] <travis-ci> [travis-ci] Change view : https://github.com/silverstripe/sapphire/compare/ed9fa78fec09...c915dcf5e959
405: [23:04:00] <travis-ci> [travis-ci] Build details : http://travis-ci.org/silverstripe/sapphire/builds/6523139
406: [23:05:00] <Jedateach> is it possible in ss3 to have a has_many component instantiated as something other than HasManyList?
407: [23:05:00] <Jedateach> eg a subclass of HasManyList, so you can add extra functions
408: [23:09:00] * howardgrigg has joined #silverstripe
409: [23:13:00] <simon_w> Jedateach, override the getter
410: [23:18:00] <Jedateach> simon_w: yep, makes sense. What's the best way to cast one type of list to another?
411: [23:19:00] * clodeindustrie quit (Quit: Textual IRC Client: www.textualapp.com)
412: [23:23:00] * chillu quit (Quit: chillu)
413: [23:24:00] <simon_w> Have a look at how DataObject::getComponents() does it, and change the class
414: [23:30:00] <Jedateach> simon_w: cheers

These logs were automatically created by ss-log on irc.freenode.net.