#silverstripe IRC Log

IRC log for 3 March 2015

All timestamps are in UTC.

1: [00:01:24] * chillu_23 has joined #silverstripe
2: [00:02:12] * chillu_23 quit (Client Quit)
3: [00:03:43] * chillu_23 has joined #silverstripe
4: [00:04:58] <Ryan-Toast> they can carry my beers one at a time, in like 15 minute intervals.
5: [00:05:43] <antmas> wish NW did deliveries
6: [00:05:49] <antmas> fucking hate going to countdown
7: [00:06:10] <Ryan-Toast> antmas: Confused about your logic there.
8: [00:07:35] <antmas> Ryan-Toast: ?
9: [00:07:55] <Ryan-Toast> antmas: You wish New World delivered, because you hate going to Countdown. Wat?
10: [00:08:01] <antmas> oh
11: [00:08:03] <adrexia> lol
12: [00:08:06] <antmas> hate shopping with countdown
13: [00:08:10] <Ryan-Toast> Just have countdown deliver to you… and you don’t have to go there.
14: [00:08:35] <simon_w|air> Woolworths here uses the Countdown logo. It's weird.
15: [00:08:46] <antmas> aren't they the same thing?
16: [00:08:51] <adrexia> yep
17: [00:08:52] <Ryan-Toast> Yarp.
18: [00:09:08] <antmas> is SuperValue still a thing?
19: [00:09:15] <antmas> that place was so ghetto
20: [00:09:22] * ocmnt has joined #silverstripe
21: [00:09:23] * UncleCheese quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
22: [00:09:26] <adrexia> apparently:
23: [00:09:32] <adrexia> supervalue.co.nz
24: [00:09:55] <adrexia> though I haven't seen one in a while
25: [00:10:07] <adrexia> http://supervalue.co.nz/stores?view=map
26: [00:11:06] * Motoservo has joined #silverstripe
27: [00:11:19] <antmas> lel that website looks like Pams
28: [00:11:23] <antmas> or homebrand
29: [00:11:35] <adrexia> it looks pretty good compared to my expecatations
30: [00:11:42] * chillu_23 quit (Quit: chillu_23)
31: [00:11:47] <adrexia> it looks new
32: [00:12:02] * ocm13 quit (Ping timeout: 244 seconds)
33: [00:12:05] <antmas> http://supervalue.co.nz/about
34: [00:12:13] <antmas> 'Look, we have marmite! YAY!'
35: [00:12:30] <adrexia> http://builtwith.com/supervalue.co.nz
36: [00:12:34] <adrexia> joomla
37: [00:12:35] <adrexia> :-/
38: [00:12:50] <antmas> :O
39: [00:12:55] * Sticks has joined #silverstripe
40: [00:13:16] <adrexia> but otherwise newish looking stack
41: [00:13:24] <antmas> wonder if whoever developed is just trolling by using jword
42: [00:13:30] * travis-ci has joined #silverstripe
43: [00:13:30] <adrexia> haha
44: [00:13:31] <travis-ci> dhensby/silverstripe-framework#226 (3.1 - 50c4c38 : Daniel Hensby): The build has errored.
45: [00:13:31] <travis-ci> Change view : https://github.com/dhensby/silverstripe-framework/compare/773624a40b2b...50c4c387ae26
46: [00:13:31] <travis-ci> Build details : http://travis-ci.org/dhensby/silverstripe-framework/builds/52829089
47: [00:13:31] * travis-ci has left #silverstripe
48: [00:14:57] <antmas> aww man NW does deliveries in Welli
49: [00:15:51] <adrexia> ahh - the site had a massive upgrade last year around June - July
50: [00:16:28] <adrexia> NW in Wellington is one of the main supermarkets
51: [00:16:31] * travis-ci has joined #silverstripe
52: [00:16:32] <travis-ci> dhensby/silverstripe-framework#228 (pulls/labels-proposal - f474f4a : Daniel Hensby): The build has errored.
53: [00:16:32] <travis-ci> Change view : https://github.com/dhensby/silverstripe-framework/compare/dabec133c22e...f474f4a02341
54: [00:16:32] <travis-ci> Build details : http://travis-ci.org/dhensby/silverstripe-framework/builds/52829439
55: [00:16:32] * travis-ci has left #silverstripe
56: [00:16:43] <adrexia> If I were in Nelson I'd be wnating Freshchoice to deliver :P
57: [00:17:06] <antmas> adrexia: yeah I go there too, is pretty nice
58: [00:17:24] * chillu_23 has joined #silverstripe
59: [00:17:24] <adrexia> It has a semi-decent range of craft beer
60: [00:17:25] <antmas> they also have a $1000 bottle of wine for sale in thre
61: [00:17:29] <adrexia> nowhere else does
62: [00:17:32] * chillu_23 quit (Client Quit)
63: [00:17:33] <antmas> there*
64: [00:17:38] <antmas> for some reason
65: [00:17:40] <adrexia> wow, that's impressively expensive
66: [00:17:46] <adrexia> I beat it would taste horrible
67: [00:17:50] <adrexia> *bet
68: [00:17:51] <antmas> probably
69: [00:17:58] <antmas> and yeah the beer range is awesom
70: [00:18:01] <antmas> e*
71: [00:18:12] * camfindlay quit (Quit: camfindlay)
72: [00:18:19] <simon_w|air> I wish Coles Belconnen stocked the same things as Coles Woden
73: [00:18:37] <simon_w|air> Then I wouldn't have to get close to Colin[pi] to get my L&P
74: [00:18:48] <antmas> lol
75: [00:18:49] <adrexia> lol
76: [00:18:51] <Colin[pi]> simon_w|air: :P
77: [00:18:53] <antmas> dat weak burn
78: [00:18:54] * camfindlay has joined #silverstripe
79: [00:19:00] * camfindlay quit (Client Quit)
80: [00:19:14] <Colin[pi]> antmas: yeah I'm just gonna have to run my arm under cold water for about 10 secs
81: [00:19:37] <antmas> haha
82: [00:20:01] <simon_w|air> Colin[pi], you should deliver a fridge mate to the NZ High Commission
83: [00:20:41] <simon_w|air> They like it when people do that
84: [00:21:33] <antmas> I had a can of L&P a week ago
85: [00:21:48] <antmas> I was like 'it's so cold - I'm drinking simon_w|air 's tears'
86: [00:22:14] <simon_w|air> antmas, yeah, well, YOUR FACE
87: [00:22:21] <adrexia> eww
88: [00:24:04] <simon_w|air> I'm trying to think of something I could get that antmas couldn't, but Australia has squat
89: [00:24:28] <Colin[pi]> simon_w|air: tim tams?
90: [00:24:32] <Colin[pi]> or you have those over there>
91: [00:24:39] <simon_w|air> Colin[pi], NZ has them
92: [00:24:42] <Colin[pi]> bah
93: [00:25:20] <Colin[pi]> simon_w|air: hepatitis A from frozen berries?
94: [00:25:26] <Colin[pi]> I mean that's pretty cool
95: [00:26:10] <antmas> spiders
96: [00:26:15] <antmas> you can have the spiders
97: [00:26:17] <antmas> fuck that noise
98: [00:26:25] <Colin[pi]> snakes as well
99: [00:26:30] <simon_w|air> antmas, Australia's shipped all the deadly ones to NZ already
100: [00:26:54] <Colin[pi]> we have 9 from the top 10 most deadly snakes in the world, would you like some antmas?
101: [00:27:04] <antmas> Colin[pi]: pass
102: [00:27:09] <antmas> already have the 10th
103: [00:27:09] <Colin[pi]> lol
104: [00:27:10] <antmas> ...
105: [00:27:15] <antmas> IN MA PANTS
106: [00:27:31] <simon_w|air> Colin[pi], and the 4th most deadly spider in Australia can't actually kill humans
107: [00:27:49] <Colin[pi]> antmas: http://i.imgur.com/BbgL7x3.gif
108: [00:27:58] <antmas> :D
109: [00:28:02] * antmas is here all week
110: [00:28:04] * travis-ci has joined #silverstripe
111: [00:28:05] <travis-ci> dhensby/silverstripe-framework#229 (pulls/class-exists-fix - bee642a : Daniel Hensby): The build has errored.
112: [00:28:06] <travis-ci> Change view : https://github.com/dhensby/silverstripe-framework/compare/3c10c3639f3d...bee642a6b9de
113: [00:28:06] <travis-ci> Build details : http://travis-ci.org/dhensby/silverstripe-framework/builds/52831506
114: [00:28:06] * travis-ci has left #silverstripe
115: [00:28:23] <Colin[pi]> simon_w|air: which one is that?
116: [00:28:30] * travis-ci has joined #silverstripe
117: [00:28:31] <travis-ci> silverstripe/silverstripe-framework#4290 (3.1 - f7fe045 : Daniel Hensby): The build passed.
118: [00:28:31] <travis-ci> Change view : https://github.com/silverstripe/silverstripe-framework/compare/50c4c387ae26...f7fe04562733
119: [00:28:31] <travis-ci> Build details : http://travis-ci.org/silverstripe/silverstripe-framework/builds/52830568
120: [00:28:31] * travis-ci has left #silverstripe
121: [00:28:33] <antmas> simon_w|air: they don't have to be deadly, they just need to be.
122: [00:28:38] <simon_w|air> Colin[pi], Huntsman
123: [00:28:51] <adrexia> antmas - that makes it sound like you have a horrible disease
124: [00:29:10] <antmas> adrexia: :P
125: [00:30:01] * veb has joined #silverstripe
126: [00:30:21] * antmas looks at veb >.>
127: [00:30:28] * antmas looks for Kingy[a] >.>
128: [00:30:32] <antmas> :D
129: [00:30:39] <veb> mm
130: [00:30:44] * simon_w|air looks at Ephpie
131: [00:30:45] * antmas plays violin
132: [00:33:16] <simon_w|air> https://files.app.net/mfvtlrjSg.jpg
133: [00:34:40] <adrexia> purple elephant!
134: [00:35:01] <simon_w|air> So cuddly!
135: [00:35:07] <adrexia> so cute!
136: [00:36:48] * veb quit (Quit: veb-irc: &)
137: [00:36:54] <simon_w|air> That too!
138: [00:41:12] * veb has joined #silverstripe
139: [00:43:39] * travis-ci has joined #silverstripe
140: [00:43:40] <travis-ci> silverstripe/silverstripe-framework#4291 (3 - 25a060f : Daniel Hensby): The build passed.
141: [00:43:41] <travis-ci> Change view : https://github.com/silverstripe/silverstripe-framework/compare/ddec797c1c78...25a060ffc0d5
142: [00:43:41] <travis-ci> Build details : http://travis-ci.org/silverstripe/silverstripe-framework/builds/52830630
143: [00:43:41] * travis-ci has left #silverstripe
144: [00:45:49] * UncleCheese has joined #silverstripe
145: [00:48:50] * camfindlay has joined #silverstripe
146: [00:52:41] * camfindlay quit (Client Quit)
147: [00:54:31] * mahfuz quit (Ping timeout: 246 seconds)
148: [00:56:48] * camfindlay has joined #silverstripe
149: [00:56:59] * camfindlay quit (Client Quit)
150: [01:04:26] * Tanger has joined #silverstripe
151: [01:33:49] * r_hector has joined #silverstripe
152: [01:43:48] <Tanger> Morning guys
153: [01:49:00] * jenniferaslan quit (Quit: jenniferaslan has left the room)
154: [01:49:23] * travis-ci has joined #silverstripe
155: [01:49:24] <travis-ci> silverstripe/silverstripe-framework#4293 (3 - e3478e9 : Will Rossiter): The build passed.
156: [01:49:24] <travis-ci> Change view : https://github.com/silverstripe/silverstripe-framework/compare/25a060ffc0d5...e3478e96fd92
157: [01:49:24] <travis-ci> Build details : http://travis-ci.org/silverstripe/silverstripe-framework/builds/52837070
158: [01:49:24] * travis-ci has left #silverstripe
159: [01:52:53] * UncleCheese quit (Ping timeout: 250 seconds)
160: [02:04:58] * spekulatius quit (Remote host closed the connection)
161: [02:06:54] * spekulatius has joined #silverstripe
162: [02:09:26] * Cheddam quit (Quit: Textual IRC Client: www.textualapp.com)
163: [02:13:16] <adrexia> my head hurts. Anyone have a clue what this says? https://github.com/MaharaProject/mahara/blob/master/htdocs/lib/pieforms/pieform/elements/fieldset.php#L65 Also - Silversrtripe forms are really not that bad. ;)
164: [02:14:49] <antmas> adrexia: don't no do double negatives?
165: [02:14:50] <antmas> :P
166: [02:15:11] <adrexia> yeah my brain absolutely refuses to follow it
167: [02:15:32] <adrexia> I managed to get everythign except this bit: (param_alphanumext('fs', null) != $element['name'] && !param_boolean($openparam, false)
168: [02:15:50] <adrexia> just... what?
169: [02:17:02] <adrexia> this is why people hate you php. Sadly, it's not even your fault.
170: [02:18:39] <adrexia> I'm really tempted to rewrite it and store it as a variable called whatisthis
171: [02:19:05] <antmas> adrexia: just had my senior .net dev come over
172: [02:19:17] <antmas> adrexia: he looked at that and said ' i hope you didn't write that'
173: [02:19:23] <adrexia> lol
174: [02:19:56] <antmas> just where if statement and 'or' ends
175: [02:19:59] <antmas> and begins
176: [02:19:59] * Cheddam has joined #silverstripe
177: [02:20:09] <antmas> assuming || is or in php?
178: [02:20:15] <adrexia> yeah it is
179: [02:20:34] <adrexia> its the && || ! ect all in one statement
180: [02:20:46] <antmas> yeah that hurts my eyes
181: [02:20:51] <adrexia> someone wasn't drunk enough
182: [02:24:02] <adrexia> https://github.com/MaharaProject/mahara/commit/28a72736c939e9de5542946888e3bcc6dcd832f7
183: [02:24:24] <adrexia> this is what happens when you don't refactor
184: [02:26:50] * antmas quit (Quit: Page closed)
185: [02:36:50] * ocmnt quit (Ping timeout: 246 seconds)
186: [02:46:43] <spronk2> that feeling when you look at these diagrams you drew the other day, very confused at some of the relationships
187: [02:46:49] <spronk2> only to realise that your daughter has added a few lines without you knowing
188: [02:57:35] <adrexia> :D
189: [03:00:04] <mobiusnz> hello peeps. Is there any easy way to make forms with booleans use an absolute false rather than one that includes null? I'm wanting no radio buttons to be checked when the form is first presented to the user, but the negative is being pre-loaded
190: [03:00:20] * novaweb quit (Quit: Leaving)
191: [03:02:39] * veb quit (Quit: veb-irc: &)
192: [03:04:38] * veb has joined #silverstripe
193: [03:18:23] <mobiusnz> at the moment I'm just doing $('input[type=radio]:checked').prop('checked', false); but that's pretty hacky and loses input if the form was reshown for whatever reason
194: [03:21:05] * Colin[pi] quit (Ping timeout: 252 seconds)
195: [03:26:35] * veb quit (Quit: veb-irc: &)
196: [03:27:01] <adrexia> mobiusnz, are you setting a value? It looks like it uses that.
197: [03:27:13] <adrexia> wehn I don't set a value, it doesn't preselect
198: [03:28:38] <mobiusnz> adrexia: I'm not setting a value, but "0" is being preselected
199: [03:28:52] <adrexia> optionset field?
200: [03:28:55] <mobiusnz> yeah
201: [03:29:04] <adrexia> interesting
202: [03:29:21] <mobiusnz> I'm guessing it's because it's only doing == as opposed to === somewhere
203: [03:29:32] <mobiusnz> and null == 0
204: [03:30:20] <adrexia> ahh!
205: [03:30:26] <adrexia> yep you are correct
206: [03:30:37] <adrexia> I hadn't tried it with 0 and 1 as the values
207: [03:31:02] <adrexia> so 'isChecked' => $value == $this->value,
208: [03:31:05] <mobiusnz> I'm using true and false as the values, same thing
209: [03:31:09] <adrexia> should be 'isChecked' => $value === $this->value,
210: [03:31:17] <mobiusnz> yeah
211: [03:31:23] <adrexia> pull request?
212: [03:32:06] <adrexia> true and false as values worked for me
213: [03:32:13] <adrexia> just 1 and 0 failed
214: [03:32:21] <adrexia> or rather - 0 was preselected
215: [03:33:19] <mobiusnz> odd. When I do true and false it comes out in the code as 1 and 0
216: [03:33:26] <mobiusnz> or are you doing "true" and "false" ?
217: [03:33:32] <adrexia> the later ;)
218: [03:33:36] <adrexia> *latter
219: [03:33:49] <mobiusnz> if you do "true" and "false" you'll find all your forms think it is true
220: [03:33:54] <mobiusnz> because "false" == true
221: [03:34:04] <adrexia> well, it will process it as a string
222: [03:34:07] <mobiusnz> yeah
223: [03:34:22] <mobiusnz> and if that string sets a Boolean datatype
224: [03:34:29] <mobiusnz> it gets truthified
225: [03:34:44] <adrexia> "false" ? 0 : 1
226: [03:35:07] <mobiusnz> misleading
227: [03:35:19] <adrexia> lol
228: [03:35:37] <mobiusnz> but yeah, I found this all out the hard way
229: [03:35:40] <adrexia> its actually more for the case where you actually want text values ;)
230: [03:35:49] <adrexia> like - user input
231: [03:36:04] <mobiusnz> when someone asked why everyone was attending a certain thing when they only expected a select few
232: [03:36:12] <adrexia> I have tested the === fix
233: [03:36:29] <adrexia> so if you wanted to make a pull request for that it would be super simple
234: [03:36:44] <mobiusnz> yeah, I should really get set up to do pull requests
235: [03:38:05] <adrexia> +1
236: [03:40:30] <mobiusnz> you're right. That is a really easy fix though. At the very least it's sorted this particular site a lot better than that js hack! :P
237: [03:40:42] <adrexia> trying to think of a case where you might want truthy/falsey, but can't think of one
238: [03:40:51] <adrexia> lol :D
239: [03:43:29] <adrexia> mobiusnz, are you going to make a pull request? If not, I'll go do it now :)
240: [03:43:48] <mobiusnz> adrexia: I might as well set myself up for it
241: [03:43:56] <adrexia> sweet :D
242: [03:49:28] <mobiusnz> adrexia: should I fork from 4.0 or 3.something?
243: [03:49:33] <mobiusnz> er branch
244: [03:49:37] <adrexia> 3.something
245: [03:49:41] <adrexia> 3.1 I think?
246: [03:50:55] <adrexia> or 3.0 ? Err... not sure. Technically it would still be a problem in 3.0 and you should start at the bottom. But does anyone care about 3.0 anymore?
247: [03:51:20] <adrexia> it's basically the alpha version of 3.1, right? ;)
248: [03:56:14] <adrexia> why is it so hard to find that information on the website?
249: [03:56:45] <mobiusnz> reckon
250: [03:56:53] <mobiusnz> I'm looking at http://beta.docs.silverstripe.org/en/4.0/contributing/code/#step-by-step-from-forking-to-sending-the-pull-request
251: [03:56:58] <adrexia> even finding the contributing page was a maze
252: [03:57:06] <mobiusnz> changing the 4.0 to 3.1 gives a page-not-found
253: [03:57:30] <mobiusnz> ¯\_(ツ)_/¯
254: [03:57:47] <adrexia> got an exisitng project?
255: [03:58:06] <mobiusnz> I'm just setting up a fresh one for doing pull requests
256: [03:58:32] <adrexia> ahh cool.
257: [03:59:09] <adrexia> I normally just clone the installer, eidt the composer.json file, and run composer update
258: [03:59:49] <adrexia> someone really oughjt to fix this: http://beta.docs.silverstripe.org/en/4.installation/composer/
259: [04:00:02] <adrexia> links end in deadends all over the place
260: [04:00:21] <adrexia> and that's really quite frustrating when you are looking for soemthing
261: [04:00:53] <mobiusnz> when you edit composer.json file, what do you end up with? the doco isn't clear there
262: [04:02:01] <adrexia> haha, usually something a bit like this: https://gitlab.cwp.govt.nz/cwp/cwp-recipe-basic/blob/master/composer.json
263: [04:02:12] <adrexia> but that's with all the modules ever
264: [04:02:57] <adrexia> you just need the php line, cms and framework really
265: [04:03:11] <adrexia> (under the require bit)
266: [04:03:38] <adrexia> Got to go. Goodluck!
267: [04:05:59] * Hailwood quit (Remote host closed the connection)
268: [04:06:33] * Stomach quit (Ping timeout: 252 seconds)
269: [04:09:11] * caamic30 has joined #silverstripe
270: [04:10:13] <caamic30> Hello SS, question, why StaticExporter no longer in SS3.1 ?
271: [04:28:34] * Ryan-Toast quit (Quit: Ryan-Toast)
272: [04:28:49] * Colin[pi] has joined #silverstripe
273: [04:34:45] * cloph has joined #silverstripe
274: [04:34:48] * cloph_away quit (Ping timeout: 246 seconds)
275: [04:46:43] <Tanger> Hey guys, is the only reason to using the static (Class)::create() method the fact that you can chain methods? Are there benefits/penalties to using it?
276: [04:50:31] <Colin[pi]> Tanger: can chain and also can use DI techniques to substitute one class for another without rewriting code
277: [04:50:48] <Colin[pi]> Tanger: a small performance penalty vs new but apparently is negligible
278: [04:51:03] <Tanger> DI techniques?
279: [04:51:11] <Colin[pi]> dependency injection
280: [04:51:15] <Tanger> Ah
281: [04:51:31] <Tanger> Cool, thanks Colin[pi]
282: [04:51:46] <Colin[pi]> np, the current trend seems to be "use create() where possible"
283: [04:51:58] <Colin[pi]> though I'm not sure if it's really an official thing
284: [04:53:12] <Colin[pi]> br
285: [04:53:14] <Colin[pi]> +b
286: [04:53:15] * Colin[pi] has left #silverstripe
287: [04:54:53] * glenn-bautista quit (Ping timeout: 250 seconds)
288: [04:57:09] * Colin[pi] has joined #silverstripe
289: [05:01:24] * antmas has joined #silverstripe
290: [05:01:48] <antmas> howdy all o/
291: [05:06:50] <EasyCo> \o
292: [05:07:42] <Colin[pi]> HAI ANTMAS o/
293: [05:17:08] <antmas> brbizzle friiieeeends
294: [05:33:47] * caamic30 has left #silverstripe
295: [05:44:03] * wmk has joined #silverstripe
296: [05:52:40] * wmk quit (Read error: No route to host)
297: [06:00:27] * Error404NotFound quit (Quit: User guilty of hitting the Big Red X...)
298: [06:05:33] * Sticks quit (Quit: Leaving)
299: [06:13:36] * Stomach has joined #silverstripe
300: [06:13:41] * Stomach quit (Client Quit)
301: [06:15:17] * Error404NotFound has joined #silverstripe
302: [06:26:46] * Stomach has joined #silverstripe
303: [06:32:09] * veb has joined #silverstripe
304: [06:33:10] * ocmnt has joined #silverstripe
305: [06:34:41] * Shrike_Finland has joined #silverstripe
306: [06:37:39] * ocmnt quit (Ping timeout: 246 seconds)
307: [06:41:47] * benjhocking has joined #silverstripe
308: [06:45:34] * stecman quit (Quit: This computer has gone to sleep)
309: [06:47:59] * veb quit (Read error: Connection reset by peer)
310: [06:54:56] * Stomach quit (Quit: zzz)
311: [07:53:52] * Stomach has joined #silverstripe
312: [08:06:25] * arnhoe has joined #silverstripe
313: [08:24:28] * Stomach quit (Quit: zzz)
314: [08:45:10] * antmas quit (Read error: Connection reset by peer)
315: [08:56:58] * Colin[pi] quit (Ping timeout: 244 seconds)
316: [09:02:05] * kinglozzer has joined #silverstripe
317: [09:05:10] * wmk has joined #silverstripe
318: [09:21:47] * Py6316k has joined #silverstripe
319: [09:35:05] * Tanger quit (Quit: sleep())
320: [09:37:19] <kinglozzer> Py6316k: 6316 = cryptic message, or random mash of keyboard?
321: [09:46:48] <wmk> hmm, 5150 would mean van halen fan, 4711 good smell, but 6316???
322: [09:51:58] * UncleCheese has joined #silverstripe
323: [09:58:43] <kinglozzer> Damnit Object, why u no __callStatic() with extensions? :(
324: [09:59:54] <UncleCheese> that's a whole kettle of fish
325: [10:00:17] <kinglozzer> Mm
326: [10:00:41] <kinglozzer> I get that I can just type MemberExtension::do_stuffs() instead of Member::do_stuffs(), but all those extra keypresses :(
327: [10:01:14] <wmk> kinglozzer, don't you use auto complete?
328: [10:01:24] <kinglozzer> wmk: Yeah but still :P
329: [10:01:28] <kinglozzer> I WANT MAGIC!
330: [10:01:41] <kinglozzer> Can't be that hard to implement.... right? ;)
331: [10:01:54] <wmk> normally not
332: [10:03:03] <wmk> btw: is it possible to get a config var for this class and if it's not set look up the parent class?
333: [10:03:22] <wmk> i mean, with MAGIC ;)
334: [10:03:42] <kinglozzer> wmk: Doesn't default Config::get() do that?
335: [10:03:56] <kinglozzer> If not, Config::get('ClassName', 'property_name', Config::INHERITED);
336: [10:03:57] <wmk> hmm, dunno.
337: [10:12:07] * wmk quit (Ping timeout: 255 seconds)
338: [10:14:29] <Py6316k> kinglozzer: captcha answer
339: [10:14:31] * travis-ci has joined #silverstripe
340: [10:14:32] <travis-ci> silverstripe/silverstripe-framework#4295 (3.1 - 6cdad96 : Ingo Schommer): The build passed.
341: [10:14:33] <travis-ci> Change view : https://github.com/silverstripe/silverstripe-framework/compare/f7fe04562733...6cdad96ca240
342: [10:14:33] <travis-ci> Build details : http://travis-ci.org/silverstripe/silverstripe-framework/builds/52871355
343: [10:14:33] * travis-ci has left #silverstripe
344: [10:16:53] * jayashleysmith has joined #silverstripe
345: [10:17:03] <jayashleysmith> How can I do an OR using filter() ?
346: [10:17:06] <jayashleysmith> $Products = Product::get()->filter(['DMOCode:StartsWith' => 'Glo', 'Name:StartsWith' => 'Glo']);
347: [10:17:15] <jayashleysmith> Currently this does AND
348: [10:17:26] <jayashleysmith> I need to make use of the StartsWith method
349: [10:17:49] <kinglozzer> jayashleysmith: filterAny
350: [10:18:14] <jayashleysmith> Thank you
351: [10:18:26] <Py6316k> filtera....oh
352: [10:37:16] * jayashleysmith quit (Ping timeout: 246 seconds)
353: [10:47:32] * micmania1|2 has joined #silverstripe
354: [10:48:45] <micmania1|2> kinglozzer: PigeonFriend: https://github.com/silverstripe/silverstripe-framework/pull/3962 - Care to take a look over this for me? :)
355: [10:49:12] * danfo_ quit (Quit: danfo_)
356: [10:49:44] * micmania1 quit (Disconnected by services)
357: [10:49:54] * micmania1|2 is now known as micmania1
358: [10:50:31] <kinglozzer> micmania1: Whoa!
359: [10:50:31] * arnhoe quit (Remote host closed the connection)
360: [10:50:41] <kinglozzer> Will have a play around
361: [10:50:55] * danfo_ has joined #silverstripe
362: [10:51:36] <micmania1> kinglozzer: cheers. I only tested once on each and I'm not exactly confident with performance testing so would be good to get some feedback and hopefully confirmation
363: [10:53:16] * Colin[pi] has joined #silverstripe
364: [10:57:53] <UncleCheese> how can i set up a controller that accepts abitrary "Actions?"
365: [10:58:11] <UncleCheese> MyController/whatever still resolves to ithe index() method
366: [10:59:13] <micmania1> UncleCheese: overload handleAction
367: [10:59:20] <UncleCheese> that's what i would think
368: [10:59:23] <micmania1> kinglozzer: tests pass :D
369: [10:59:32] <UncleCheese> handleAction () { return $this->index() } ?
370: [11:00:24] <UncleCheese> problem is checkAccessAction gets run in handleRequest
371: [11:00:50] <kinglozzer> micmania1: It was added here: https://github.com/silverstripe/silverstripe-framework/pull/2700
372: [11:01:23] <micmania1> UncleCheese: add a rule to private static $url_handlers
373: [11:01:24] <PigeonFriend> micmania1: nice, though 400ms off response times seems a lot considering I'd say typical response times for SS is ~500ms...
374: [11:01:33] * DimiStripe has joined #silverstripe
375: [11:01:35] <UncleCheese> oh!
376: [11:01:39] <UncleCheese> a blank url rule?
377: [11:01:49] <micmania1> PigeonFriend: yeah, I was running 5 concurrency though so they're probably inflated
378: [11:02:07] <micmania1> UncleCheese: could do, or just $Action
379: [11:02:14] <UncleCheese> oh that's right
380: [11:02:30] <UncleCheese> '$Action' => 'index' ?
381: [11:03:52] <micmania1> If you always want it to call index, although to do that you'd just not create a method for any allowed_actions
382: [11:03:58] <micmania1> and it falls back to index anyway
383: [11:05:39] <PigeonFriend> UncleCheese: I've done something like this recently: https://gist.github.com/dhensby/61df344d735b6b839320
384: [11:07:05] <PigeonFriend> ^ that is slightly different as I've swapped the params round too. but that's a way to get custom routing working nicely on a controller
385: [11:07:23] <Py6316k> any alternatives to the likes of gitlab that aren't gitorious?
386: [11:07:40] <kinglozzer> micmania1: If you stop the request just after that point, you see massive differences
387: [11:08:15] <micmania1> kinglozzer: really? That sounds good :D
388: [11:08:18] <kinglozzer> Like - Time per request: 4.280 [ms] vs Time per request: 1.026 [ms]
389: [11:08:36] <kinglozzer> Whether injector (somehow?) saves anything down the line I dunno though (I doubt it)
390: [11:09:07] <PigeonFriend> Py6316k: don't atlassian do one?
391: [11:09:13] <Py6316k> neg
392: [11:09:21] <PigeonFriend> stash
393: [11:09:22] <micmania1> Py6316k: why not Gitlab?
394: [11:09:38] <PigeonFriend> https://www.atlassian.com/software/stash
395: [11:09:39] <Py6316k> shit for teams, at least last I looked at it.
396: [11:09:43] <micmania1> Py6316k: also, atlassin do!
397: [11:09:51] <PigeonFriend> GitHub enterprise? :P
398: [11:09:52] <micmania1> yeah, stash ^^
399: [11:09:57] <Py6316k> PigeonFriend: I'll rephrase, any OPEN systems ;)
400: [11:09:58] <micmania1> Its not as good as Gitlab though
401: [11:10:01] <PigeonFriend> does it ave to be self hosted?
402: [11:10:06] <micmania1> Gitlab community is good.
403: [11:10:06] <Py6316k> yes
404: [11:10:19] <PigeonFriend> then you're buggered unless you have a MASSIVE budget
405: [11:10:19] <Py6316k> must be self hosted, preferably open.
406: [11:10:30] <Py6316k> mmm, that's what I thought :<
407: [11:10:42] <Py6316k> psh, dun wanna ruby all the things :<
408: [11:11:05] <PigeonFriend> http://aws.amazon.com/codecommit/
409: [11:12:09] <PigeonFriend> micmania1: it looks like you're knocking off 40ms with your change, not 400
410: [11:12:11] <Py6316k> I'm happy just using git, but it'd be nice to have a decent interface and easier way to manage user access than ssh & manual config
411: [11:13:17] <micmania1> PigeonFriend: 6.6s to 6.2s = 400ms right? I get confused easy :S
412: [11:13:21] <Py6316k> last I looked at gitlab they'd finally added groups, but that did basically nothing except give a namespace to put projects in. People in the namespace didn't automatically see all in the namespace.
413: [11:13:25] <Py6316k> PITA.
414: [11:13:27] * UncleCheese quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
415: [11:13:32] <micmania1> but still, YAAAAAAY
416: [11:14:04] <Py6316k> yea, is 400 micmania1 (with that example you just gave)
417: [11:14:09] <Py6316k> 1000 ms in a sec.
418: [11:15:26] <micmania1> the example is from https://github.com/silverstripe/silverstripe-framework/pull/3962
419: [11:15:30] <Py6316k> I saw
420: [11:15:30] <micmania1> that many seconds
421: [11:15:37] <Py6316k> mmhmm
422: [11:16:28] <Py6316k> a whole 4.5 seconds saved in 50 hits!
423: [11:16:59] <Py6316k> so I've been thinking about autoloaders right
424: [11:17:04] <Py6316k> and how they might work
425: [11:17:07] <PigeonFriend> micmania1 ah, i think i was looking at the wrong numbers
426: [11:17:28] <PigeonFriend> yes, so an average response on the micro instance is 6.6s (pretty crazy)
427: [11:17:40] <Py6316k> because I listened to this talk about laravel and how it's autoloader loads every single class on every request and i'm thinking... shouldn't it just load what it neesd?
428: [11:17:44] <micmania1> PigeonFriend: yeah but with 5 concurrent hits
429: [11:17:58] <Py6316k> so now I dunno what SS does. Does it load evetrything in the manifest, or just those that are requested of it?
430: [11:18:05] <micmania1> Its actually around 200ms when only 1 user is accessing
431: [11:18:05] <Py6316k> or was chappy mistaken about laravel>
432: [11:18:11] <micmania1> 200ms-300ms
433: [11:18:11] <kinglozzer> micmania1: I don't see any gains on my development machine :(
434: [11:18:23] <kinglozzer> (with a full site)
435: [11:18:25] <Py6316k> or was he not, and is that an advantage for ss?
436: [11:18:32] <PigeonFriend> Py
437: [11:18:34] <PigeonFriend> Py6316k
438: [11:19:03] <PigeonFriend> The autoloader in SS works like so: 1: try composers autoloader if it exists, 2: use the manifest to find a class if composer didn't. It will only load the class when the autoloader asks for it
439: [11:19:26] <micmania1> kinglozzer: you using vagrant or something? I had to setup an ec2 box because running on vagrant was too slow and unreliable
440: [11:19:27] <PigeonFriend> typically that will be when a class is referenced in the code OR class_exists('ClassName', [true]) is used
441: [11:19:55] <Py6316k> PigeonFriend: laravel uses composer's autoloader if I'm not mistaken. So does this mean that ALL classes pulled by composer are loaded all the time?
442: [11:20:05] <PigeonFriend> micmania1: Vagrant is pretty reliable, tbh. it can be slow, but definitely not slower than spinning up an AWS instance!
443: [11:20:24] <kinglozzer> micmania1: Nope, I'll try to find a stage env I can test on or something
444: [11:20:27] <PigeonFriend> Py6316k: no, an autoloader will only pull in a class when it's referenced
445: [11:20:35] <micmania1> oh yeah, but my laptop is shit. 1 request is like 6-7secs lol
446: [11:20:49] <Py6316k> PigeonFriend: yeah, so same for laravel then too right?
447: [11:21:07] <kinglozzer> PigeonFriend: Which order do autoloaders go in though? First registered, last checked?
448: [11:21:09] <Py6316k> because the small example benchmarks I saw were rediculiously slow.
449: [11:21:29] <Py6316k> and I was thinking to myself... fuck. :< SS is probably a billion fraction seconds slower than that.
450: [11:21:41] <kinglozzer> Because our autoloader is loaded _before_ composers... so does that mean our autoloader is checked first?
451: [11:22:04] <Py6316k> kinglozzer: I'd hope it's that way.
452: [11:22:14] <Py6316k> otherwise manifest is next to redundant.
453: [11:23:09] <kinglozzer> Py6316k: Well, composer's autoloader (unless I'm mistaken) doesn't actually ever touch any core code, so it's only redundant if you end up with a module that's registered to both autoloaders.. but yeah it's something to check :P
454: [11:23:20] <PigeonFriend> kinglozzer: You'd have to check docs, but vendor autoloader is included first
455: [11:23:53] <Py6316k> kinglozzer: but then how does composer's autoloader even work? Does it just load a designated autolaoder from within the project itself?
456: [11:24:18] <Py6316k> because I've seen that a few times.
457: [11:24:31] <micmania1> I think composer only loads what's in the vendors folder
458: [11:24:41] <PigeonFriend> micmania1: by commenting out line 88 of Core.php I'm seeing gains of 500ms - 1000ms on a page load of 4.8s
459: [11:24:54] <PigeonFriend> Py6316k: I'd assume laravel loads classes on demand
460: [11:25:06] <Py6316k> micmania1: but, doesnt' vendor's folder just contain folders for each project?
461: [11:25:23] <PigeonFriend> kinglozzer: correction, vendor autoload is registered after ours
462: [11:25:27] <kinglozzer> PigeonFriend: Vendor autoloader is included _after_ SS autoloader, do you mean that it's checked first when looking for a class?
463: [11:25:31] <micmania1> Py6316k: yep, composer packages. But they wouldn't get included otherwise.
464: [11:25:55] <Py6316k> PigeonFriend: yeh, that's what I assumed too. But chappy at talk contradicted that. So I'm wondering if maybe he was wrong.
465: [11:26:07] <Py6316k> because taht seems simply stupid
466: [11:26:23] <micmania1> To use composers autoloader for silverstripe modules I'm pretty sure you'd have to define a class map so that it knows where to find the files which ss doesn't do.
467: [11:26:26] <Py6316k> plus most things laravel are done via composer's autoloader anyway... so... idek.
468: [11:26:32] <PigeonFriend> composers autoloader doesnt appear to look outside of the vendor folder, though
469: [11:26:36] <micmania1> That, or follow some PSR convention :p
470: [11:26:41] <kinglozzer> Py6316k: It loads vendor/autoload.php - you give composer.json an "autoload" key to work with
471: [11:27:11] <Py6316k> kinglozzer: so, a destination to a project scoped autoloader?
472: [11:27:14] <Py6316k> or a map?
473: [11:27:28] <kinglozzer> PigeonFriend: Correct, none of the core code (or module code, unless composer.json specifies "autoload" a-la https://github.com/heyday/silverstripe-cacheinclude/blob/master/composer.json#L20) is ever seen by composer's autoloader
474: [11:27:29] <Py6316k> or... tell which PSR to use?
475: [11:27:43] <kinglozzer> Py6316k: Kinda both - e.g. https://github.com/heyday/silverstripe-cacheinclude/blob/master/composer.json#L20
476: [11:27:57] <micmania1> Py6316k: I think PSR-4 FQN maps to the directory structure so it knows where to look
477: [11:28:29] <kinglozzer> https://getcomposer.org/doc/04-schema.md#autoload ^^
478: [11:28:33] <Py6316k> oh yeh. Maps are a fqn stupid idea alright.
479: [11:29:40] <Py6316k> then again, no worse than defining a path I gues
480: [11:29:41] <Py6316k> s
481: [11:29:50] <kinglozzer> And the best news: you don't need to follow PSR-1/PSR-2 to use PSR-4 :D
482: [11:30:48] <Py6316k> I don't even know my psrs
483: [11:31:26] <Py6316k> I tried to read up once but then everyone looked when my head made a noise as it hit the desk after I fell asleep..
484: [11:31:48] <Py6316k> so much 'definitionese'
485: [11:31:53] <Py6316k> wtb: ezi summary
486: [11:32:03] <Py6316k> possibly with comparison table
487: [11:32:14] <Py6316k> kinglozzer: write me one for your blog :D
488: [11:32:21] <kinglozzer> Py6316k: PSR-0 is a shit autoloading standard that's been replaced my PSR-4. PSR-1 & 2 are coding standards (2 is much more strict), PSR-3 is for loggers (EWWW)
489: [11:32:28] <kinglozzer> by*
490: [11:32:41] <kinglozzer> http://www.php-fig.org/
491: [11:32:42] <kinglozzer> ;D
492: [11:32:43] <Py6316k> oic, so... PSR itself is a non-standard thing...
493: [11:32:44] <Py6316k> LOL#
494: [11:34:06] <Py6316k> lol, fuck, fuck the FIG
495: [11:34:14] <Py6316k> political bullshit
496: [11:34:21] <Py6316k> ain't nobody got time for that.
497: [11:35:03] <kinglozzer> I know spaces gets a lot of hate... but I kinda like PSR-2 standards :B
498: [11:35:54] <Py6316k> Code is art. So long as it's clean and easy to maintain, who gives a fuck.
499: [11:36:38] <Py6316k> Yesterday I followed a function, that called a function, that called a function, that executed a single line.
500: [11:37:14] <Py6316k> each function then evaluated whether or not the BOOLEAN value was true or false, and returned TRUE or FALSE
501: [11:37:16] * NETim has joined #silverstripe
502: [11:37:19] <Py6316k> accordingly.
503: [11:37:27] <kinglozzer> Can we remove this? lol https://github.com/silverstripe/silverstripe-framework/blob/3.1/core/Config.php#L210-L211
504: [11:37:37] * benjhocking quit (Read error: Connection reset by peer)
505: [11:37:46] <kinglozzer> Py6316k: lol
506: [11:37:50] <NETim> Morning, does SS3 have anything in the templating engine to handle nth-items like CSS?
507: [11:37:56] <kinglozzer> return ($foo === true) ? true : false;
508: [11:38:03] <Py6316k> NO kinglozzer
509: [11:38:09] <Py6316k> that's you'd like to see
510: [11:38:12] <kinglozzer> NETim: Why yes, it does
511: [11:38:27] <kinglozzer> $MultipleOf, $Modulus
512: [11:38:55] <NETim> kinglozzer: Thinking more modulus then. It's n+x, so every 4th item after the first.
513: [11:39:11] <NETim> The way you can specify n+4 in CSS
514: [11:40:26] <Py6316k> kinglozzer: function wtf () \n { \n $thing = trueOrFalseReturn(); \n \n if($thing == TRUE) \n { \n { return TRUE; \n \n } \n else \n { \n return FALSE; \n } \n
515: [11:40:38] <kinglozzer> Py6316k: Verbosity, I like it
516: [11:40:48] <Py6316k> kinglozzer: note random white lines
517: [11:40:53] <Py6316k> also this is all indented unevenly.
518: [11:41:16] <Py6316k> not just tabs & spaces, but uneven numbers of tabs also.
519: [11:41:20] <Py6316k> per line
520: [11:44:03] <PigeonFriend> micmania1: ok, from some rudementary tests I'm seeing an improvement of 4.5% after applying the Config_LRU improvements
521: [11:44:17] <NETim> kinglozzer: would multipleof be able to count inside nested loops?
522: [11:44:33] <kinglozzer> NETim: Yep, just use $Up.MultipleOf() if you need to
523: [11:45:04] <micmania1> PigeonFriend: My change actually stops a few calls to Config_LRU so it shouldn't really make much of a difference combining them.
524: [11:45:24] <micmania1> If you put a breakpoint on the registerService line and follow it thorugh, you'll see why it saves time.
525: [11:45:43] <NETim> Ok. will try that. We have a loop of items, with subitems looped, but the css classes are based on the total number of items, regardless of whether it is a subitem or not.
526: [11:46:18] <micmania1> But anyway, its my bed time :) Just update the ticket and i'll catch up in the morning
527: [11:46:22] <micmania1> cyas
528: [11:46:31] * arnhoe has joined #silverstripe
529: [11:47:53] <Py6316k> Chappy comes in with a £20 note to put into the 50p snack box.
530: [11:48:03] <Py6316k> NO CHANGE, goes away disappointed.
531: [11:48:24] <Py6316k> honestly. 19.50 in change, for a desktop snack box. Who has that!?
532: [11:49:06] <NETim> kinglozzer: No joy. We have <% loop %>$item<% loop %>$children<% end_loop %><% end_loop %> but need to count all items, children and parents...
533: [11:50:04] <Py6316k> NETim: well you need a different call then.
534: [11:50:12] <Py6316k> $top.CountAllTheThings
535: [11:50:28] * danfo_ quit (Quit: danfo_)
536: [11:50:33] <NETim> Py6316k: Assuming countallthethings is bespoke.
537: [11:50:51] <Py6316k> NETim: indeed. No list counts it's contents recursively.
538: [11:51:22] <NETim> hm... fun. Sometimes I hate the designers.
539: [11:51:32] <NETim> Looks pretty but is completely uncodeable
540: [11:51:39] <Py6316k> ha, yeah. Not always known for their practical sense
541: [11:51:39] <Py6316k> :P
542: [11:52:00] <Py6316k> uncodable often leads to unusable also (from a user usability point of view)
543: [11:52:19] <Py6316k> ie, by design, not just code being so shoddy it impacts usability
544: [11:52:30] <NETim> yep.
545: [11:52:35] <Py6316k> print designers are the worst
546: [11:52:45] <NETim> Thankfully I don't deal with any.
547: [11:52:49] <Py6316k> for obvious reasons
548: [11:52:57] <NETim> Or the murder rate in the local area might rise sharply...
549: [11:53:03] <Py6316k> NETim: seems like your folk have a new recruit who is/was a print designer!
550: [11:53:16] <Py6316k> needs to be schooled!
551: [11:53:16] <Py6316k> xD
552: [11:53:31] <NETim> or shot. Probably shot...
553: [11:54:36] <Py6316k> If you were the sweet-man, you'd get your hook finger out like billy bowden and say "You didn't involve development team in desing process, this lead to massive problems down the line. we cannot afford a lack of foresight like this. I'm sorry but, YOU'RE FIRED."
554: [11:54:55] <NETim> If...
555: [11:55:18] <Py6316k> right now I can hear my 'mananger' saying "now, it's not pulling rank /at all/... "
556: [11:55:32] <Py6316k> which is his indicator much like "I'm not racist but..."
557: [11:55:44] * Colin[pi] quit (Ping timeout: 244 seconds)
558: [11:57:00] * r_hector quit (Quit: Leaving.)
559: [11:58:21] <Py6316k> kinglozzer: this is why I fuck'n hate the FIG.
560: [11:58:24] <Py6316k> shit like PSR-7
561: [11:58:31] <Py6316k> motherfuck'n LETS REDEFINE HTTP
562: [11:58:37] <Py6316k> yaaaay
563: [11:59:24] * ThePeach has joined #silverstripe
564: [12:02:34] <Py6316k> or at least, your framework must follow the following interface. IE. fuckit, I'll just write a class. ALL FRAMEWORKS NEED TO USE MY CODE. I AM YOUR FRAMEWORK.
565: [12:02:52] <Py6316k> cock knockers.
566: [12:11:26] <zauberfisch> I haven't really looked at it in detail
567: [12:11:39] <zauberfisch> but isn't defining a common interface for a http wrapper a good thing?
568: [13:15:14] * darjus01 has joined #silverstripe
569: [13:15:19] <darjus01> hi all
570: [13:17:34] * UndefinedOffset has joined #silverstripe
571: [13:17:41] <darjus01> can this be: then in contriller I write function gallery add gallery to allowed actions, then i type domain.com/page/gallery it works but loads like 2-3 times makes like 2 reloads or redirects is it possible?
572: [13:44:08] <darjus01> can this be: then in contriller I write function gallery add gallery to allowed actions, then i type domain.com/page/gallery it works but loads like 2-3 times makes like 2 reloads or redirects is it possible?
573: [13:44:12] * muskie9 has joined #silverstripe
574: [13:53:58] <darjus01> can this be: then in contriller I write function gallery add gallery to allowed actions, then i type domain.com/page/gallery it works but loads like 2-3 times makes like 2 reloads or redirects is it possible?
575: [13:54:18] <PigeonFriend> anyone know how to define the module folder name when installed with composer?
576: [13:54:48] <PigeonFriend> kinglozzer: ^ ? :)
577: [13:54:59] <kinglozzer> PigeonFriend: "extra": {"installer-name": "dir" } I believe
578: [13:55:35] <PigeonFriend> ok
579: [13:55:37] <PigeonFriend> cheers
580: [13:57:35] <kinglozzer> darjus01: Sorry, I don't understand your question. Do you mean that it reloads 2/3 times, but you _don't_ want it to do that? Or you want to know how to make it reload?
581: [13:58:10] <darjus01> yes
582: [13:58:18] <darjus01> kinglozzer
583: [13:58:24] <kinglozzer> darjus01: Yes to which question? :P
584: [13:59:00] <darjus01> its like reloading serveral times that shoudnot
585: [13:59:20] <kinglozzer> Okay, can you paste the code for your gallery() function somewhere? http://pastie.org for example
586: [13:59:36] <darjus01> http://grandtower2.demostages.com/apartments/1-bed-80-1sqm/gallery/
587: [14:00:05] <darjus01> this url makes from controller with function
588: [14:00:39] <darjus01> function gallery() { return $this->renderWith(array('PropertyGallery', 'Page')); }
589: [14:01:21] * scpi has joined #silverstripe
590: [14:01:29] <kinglozzer> darjus01: Your JavaScript is what's making the page refresh, not SilverStripe
591: [14:02:36] <darjus01> oh
592: [14:03:25] <kinglozzer> darjus01: When I look at it, it only loads the page once. It just *looks* like it's being refreshed
593: [14:03:54] <darjus01> hmm ok thx
594: [14:06:09] <Py6316k> zauberfisch: yeah, nah. Each framework has it's own goals, and to basically define how one should do something binds to a point where every framework will slowly converge down a slippery slope into a specified singularity.
595: [14:06:33] <Py6316k> all with the same benefits, all with the same disadvantages.
596: [14:06:41] <Py6316k> ie, no point in having so many frameworks.
597: [14:07:23] <Py6316k> thusly it reads more like some sneaky overlord's decree of what a framework should look like, taking away from the developer.
598: [14:08:14] <Py6316k> I don't like it, I think it's a silly idea.
599: [14:08:34] <Py6316k> Next they'll make a database interaction interface.
600: [14:08:38] <Py6316k> etc.
601: [14:09:03] <Py6316k> and you'll end up with 'the PSR framework', instead of all those following it.
602: [14:12:50] * muskie9 is now known as muskie9_afk
603: [14:23:22] * muskie9_afk is now known as muskie9
604: [14:31:11] <PigeonFriend> Py6316k: i definitely think a common INTERFACE for HTTP objects is a good thing because then any framework can work with another by passing around the same object. it doesn't prevent you defining how it works, etc, just a set of methods that should exist for INTEROPRABILITY... I think that's a very good thing
605: [14:32:59] <Py6316k> yeah, to a point. That's the arguement for standards in general though.
606: [14:33:10] <PigeonFriend> indeed
607: [14:33:14] <Py6316k> I don't see why any framework would want to use another framework's HTTP object though.
608: [14:33:43] <Py6316k> it's almost making an arguement against frameworks in general at that point.
609: [14:34:03] <Py6316k> So it comes back to being political bullshit.
610: [14:34:09] <Py6316k> which I don't have time for.
611: [14:36:43] <PigeonFriend> if you look at SS's HTTPResponse / request objects, they are quite unsuitable when considering things like headers
612: [14:36:59] * Shrike_Finland quit (Quit: Leaving.)
613: [14:38:01] <PigeonFriend> Py6316k: ultimately you're arguing against components and the natural conclusion of your argument is that a framework must create a bespoke interface as well as code for every aspect.
614: [14:38:07] <Py6316k> lets rebuild SS using laravel.
615: [14:38:12] <Py6316k> that'll fix all the things.
616: [14:38:26] <PigeonFriend> SS uses Zend and Symfony frameworks... so we already use parts of other frameworks
617: [14:38:36] <Py6316k> PigeonFriend: indeed I guess.
618: [14:38:49] <Py6316k> But it's far from being a standard.
619: [14:38:51] <darjus01> is any posibility to extend SS dublicate function that sublites be published at once?
620: [14:39:06] <Py6316k> a directive, a definitive specification on how things MUST be.
621: [14:39:47] <Py6316k> darjus01: perhaps the bulk actions tool would be what you're looking for?
622: [14:40:16] <PigeonFriend> darjus01: can't you hook into the duplicate extend point?
623: [14:40:48] <Py6316k> oh, duplicate, not publish.
624: [14:41:23] <darjus01> dublicate and publish at same time
625: [14:41:41] <PigeonFriend> Py6316k: I tihnk youre talking to the wrong guy about this. TBH, I think that reducing the code complexity and amount of maintenance on custom code is a good thing and that, if SS could shed a lot of the responsibility of maintaining the framework, we could concerntrate on fixing CMS bugs rather than Framework ones
626: [14:42:14] <Py6316k> PigeonFriend: where as I'm more of the focus on framework, cms is a secondary.
627: [14:42:35] <darjus01> on swipestripe i am dublicating product with inner variation, but then I dublicate it originals and dublicate variations are automaticly disabled
628: [14:42:52] <darjus01> I am tring to fix this
629: [14:42:54] <Py6316k> I don't disagree that simplifying code is a good thing, I guess at the root of my disapproval is that I hate being dictated to on how to think.
630: [14:43:42] <Py6316k> and I view something such as 'http interface' as something module specific, where I encasulate a framework as module, not sections there of.
631: [14:44:07] <Py6316k> if PSR was a library interoperability thing, rather than a framework one, then sure I woudln't have such a problem I guess.
632: [14:44:22] <Py6316k> but then it'd also be about redundant in definition alone (library interoperability)
633: [14:45:40] <PigeonFriend> but the point is to make the components of the frameworks interoprable so they can be shared across frameworks... so if someone goes "I really like that event system, let's use it" then it'll work out of the box and not be a copy -> paste -> hack adaption (or worse rebuild from ground up)
634: [14:46:12] <Py6316k> PigeonFriend: so really it's more of a "lets turn all the frameworks into library collections to a single specification" movement.
635: [14:46:21] <PigeonFriend> It's an interesting conversation, but ultimately I suppose it depends on whether the SilverStripe's core proposition centres around the CMS or the framework
636: [14:46:37] <Py6316k> mmm. SS isn't in the FIG so far as I'm aware.
637: [14:46:49] <Py6316k> I'm not sure if that's a good thing or not.
638: [14:47:18] <Py6316k> but at a certain point one must think "what's the point?" as you basically end up with symfavel 7
639: [14:47:33] <PigeonFriend> no, we aren't.
640: [14:47:56] <Py6316k> if things carry on with such a president in the FIG, that's what happens. It's a convergance group.
641: [14:48:23] <Py6316k> ultimately, I don't want symfavel 7.
642: [14:49:08] * muskie9 is now known as muskie9_afk
643: [14:49:49] <Py6316k> as developers tend to think that interoperability is a good thing (which it mostly is, around protocols rather than interfaces though I think), most people choose SS because it provides a simple solution, not a loose library of libraries that you can cobble together to select the parts you need.
644: [14:50:35] * Shrike_Finland has joined #silverstripe
645: [14:50:36] * Shrike_Finland quit (Client Quit)
646: [14:50:40] <Py6316k> People tend to go with laravel in that case (even you did in the past, from memory).
647: [14:51:16] * muskie9_afk is now known as muskie9
648: [14:53:24] <PigeonFriend> Py6316k: I think the point of these interfaces and potentially components that provide the functionality is actually to allow people like SS to concerntrate on the things that are the USP. The SS ORM, for example. It doesn't matter if SS uses it's own HTTPRequest object or symfony's. especially as the API exposed to SS could remain exactly the same and just map onto a standard object.
649: [14:53:24] <PigeonFriend> Then the minds of many many more than just SS can go into improving it whilst we concerntrate on feature wins.
650: [14:57:31] * arnhoe quit ()
651: [15:01:25] <Py6316k> true enough PigeonFriend, I'm just viewing it more as a slippery slope than in such a light.
652: [15:02:19] <kinglozzer> PigeonFriend: I'm trying to work out if this entire block of code is redundant... https://github.com/kinglozzer/sapphire/blob/1377-multiple-many-many/model/DataObject.php#L2007-L2029
653: [15:02:23] * darjus01 quit (Quit: Page closed)
654: [15:02:37] <PigeonFriend> kinglozzer: looks
655: [15:02:39] <kinglozzer> I lifted it from the existing code, but I'm not entirely sure it would ever work
656: [15:02:45] <Py6316k> kinglozzer: rm -r /
657: [15:04:44] <Py6316k> I can see what it's tring to do, and it seems valid kinglozzer. As for specifcs or whether or not it's ever in the execution path... I cannat say.
658: [15:05:42] <kinglozzer> Idk why you'd ever define the extra fields for a relation on the belongs side though D:
659: [15:05:46] * GioVdK has joined #silverstripe
660: [15:06:18] * GioVdK quit (Remote host closed the connection)
661: [15:06:30] * GioVdK has joined #silverstripe
662: [15:08:50] <PigeonFriend> kinglozzer: what happens if you comment it all out?
663: [15:08:51] <PigeonFriend> :P
664: [15:09:06] <Py6316k> AND have an appropriate test case?
665: [15:10:36] <PigeonFriend> kinglozzer: I'm confused as to why finding it on the many_many side is so simple but it's so difficult on the reverse... (or that the code makes it appear as so).
666: [15:10:45] <kinglozzer> PigeonFriend: None of the tests break, but I'm testing it in case it's not covered
667: [15:10:58] * arnhoe has joined #silverstripe
668: [15:12:00] <PigeonFriend> ah, I see
669: [15:12:10] <PigeonFriend> why it's more difficult
670: [15:12:13] * cloph is now known as cloph_away
671: [15:12:40] <PigeonFriend> isn't $this->manyManyComponents() beeter used than line 2008?
672: [15:13:23] <kinglozzer> PigeonFriend: $this->manyMany() includes both many_many and belongs_many_many
673: [15:14:25] <kinglozzer> I'm desperately head scratching ><
674: [15:14:30] <arnhoe> I have a weird issue. On my localhost the /admin is working perfectly, but on our production we are not able to delete gridfield items or use gridfield pagination. It seems to be a js issue, but the local and production are equal. Server caching is being emptied and all, any other places I need to take a look?
675: [15:15:08] <Py6316k> db permissions?
676: [15:16:18] <PigeonFriend> arnhoe: what's the error you get?
677: [15:16:24] <arnhoe> I dont get a error
678: [15:16:37] <arnhoe> like once I click next page on gridfield pagination, it starts loading and stays on page 1
679: [15:17:19] <PigeonFriend> kinglozzer: it looks like it's redundant.. it seems to handle the belongs when there's no dot notation and the following block handles both?
680: [15:18:13] <arnhoe> there no js errors in console either
681: [15:18:27] <kinglozzer> PigeonFriend: Yep, I'm becoming increasingly sure it's redundant too
682: [15:19:03] <PigeonFriend> arnhoe: php logs?
683: [15:19:17] <arnhoe> nope, apache logs nope :s
684: [15:24:06] <kinglozzer> PigeonFriend: Yep, it's redundant. Defining extrafields on the belongs_many_many results in SQL errors (wasn't seeing them a minute ago as it was using UnsavedRelationList instead)
685: [15:25:32] <PigeonFriend> ok...
686: [15:25:38] <PigeonFriend> doesn't that make the rest of the function reduundant?!
687: [15:26:19] <ThePeach> hey GioVdK
688: [15:26:36] <ThePeach> bonjour PigeonFriend
689: [15:27:40] <kinglozzer> PigeonFriend: Confusingly no :P
690: [15:27:43] <PigeonFriend> hello both
691: [15:30:24] <Py6316k> kinglozzer: surely though that's a bug with defining extrafields from belongs side, rather than that code block being redundant though?
692: [15:30:45] <PigeonFriend> the man makes a good point
693: [15:30:58] <Py6316k> although one could argue that nothing should be set from the belongs side, that is a bit of a weak one.
694: [15:31:06] <Py6316k> (arguement)
695: [15:31:21] <Py6316k> in which case, I guess it's more about making more explicit docs.
696: [15:31:23] * Py6316k shrugs
697: [15:31:31] <Py6316k> either way there's a PR here
698: [15:32:01] <kinglozzer> Py6316k: https://github.com/silverstripe/silverstripe-framework/pull/3799 :P
699: [15:32:08] <kinglozzer> It's already a pretty big one ><
700: [15:32:39] <Py6316k> oh gawd
701: [15:32:53] <Py6316k> still, the point remains.
702: [15:33:16] <Py6316k> should one not be able to make manymanyextrafields on the belongsmanymany side of the relation?
703: [15:33:17] <kinglozzer> Yep, I'm trying to think if it'll actually be possible to support defining extra fields on the belongs side...
704: [15:33:29] <Py6316k> and if so, how does one identify which of the many to the same object is the correct one?
705: [15:33:44] <Py6316k> come to think of it, what's the summary on that from within that mammoth PR anyway?
706: [15:33:51] <Py6316k> it must do it some hoe
707: [15:33:53] <Py6316k> how*
708: [15:34:36] <kinglozzer> Py6316k: Well when you look up all that info you do it with the component name (i.e. the human-readable name), it's possible to get everything from that
709: [15:36:05] <Py6316k> kinglozzer: but that relys on both sides having the same rel-name
710: [15:36:19] <Py6316k> could (will) break b/c
711: [15:36:28] <Py6316k> 4.0 marked?
712: [15:36:47] <kinglozzer> Py6316k: Eh?
713: [15:37:04] <kinglozzer> I doesn't break anything, honest! :P
714: [15:37:10] <Py6316k> well currently (or back in the day or whatever) it was looked up by ClassName, not compoennt name
715: [15:37:20] <Py6316k> now if you have several rels with the same classname
716: [15:37:38] <Py6316k> then... you _need_ the rel name to be the same on both mm and bmm sides
717: [15:37:51] <kinglozzer> Py6316k: If you have several rels with the same class name, you use dot notation - it's not supported otherwise
718: [15:38:11] <Py6316k> oic, gotcha. Same like old many has_one
719: [15:38:16] <Py6316k> (to same class)
720: [15:38:20] <Py6316k> makes sense friend.
721: [15:38:39] <kinglozzer> Yep that's it
722: [15:38:56] <Py6316k> kinda like a fully qualified query
723: [15:39:15] <Py6316k> server.database.object.table.field (or whatever)
724: [15:40:11] <Py6316k> wholey fuck I'm sick of life. So long, so boring. I need a holiday from being in it.
725: [15:40:26] <kinglozzer> Sorta, the dot notation essentially tells it which rel to look at when it flips things around (i.e. when it flips from looking at bmm to looking at mm)
726: [15:40:35] <Py6316k> kinglozzer: I know :>
727: [15:41:37] <Py6316k> 1926, that seems like a pretty classy year.
728: [15:41:49] <Py6316k> lets look and see what happened there.
729: [15:42:27] * EasyCo quit (Quit: Connection closed for inactivity)
730: [15:44:44] <PigeonFriend> kinglozzer Py6316k - I think if it's never been possible and it's not documented as possible, then it's redundant and not a broken feature
731: [15:46:06] <kinglozzer> Okay, it's definitely not possible
732: [15:46:16] <kinglozzer> DataObject::requireTable() won't pick up the extra fields if they're on the belongs side
733: [15:46:21] <Py6316k> http://en.wikipedia.org/wiki/1926
734: [15:46:34] <kinglozzer> Who the fuck writes those articles? :P
735: [15:46:38] <Py6316k> PigeonFriend: yeah, that's kinda what I was getting at I guess.
736: [15:46:53] <Py6316k> seems like it _used_ to be possible though.
737: [15:47:00] <Py6316k> or at least, someone wanted it to be at some point
738: [15:47:30] <kinglozzer> PigeonFriend: r.e. https://github.com/silverstripe/silverstripe-framework/pull/3959 - do you have access to change the labels? Last time I looked I couldn't see anywhere to edit them
739: [15:47:48] <kinglozzer> Oh wait, the "Labels" tab
740: [15:47:49] <kinglozzer> lol
741: [15:48:11] <PigeonFriend> yep :)
742: [15:48:27] <Py6316k> May 9 Martial law was declared in Britain because of the general strike.
743: [15:48:31] <Py6316k> oh, there we go
744: [15:54:54] <Py6316k> October 12 – British miners agreed to end their strike.
745: [15:55:00] <Py6316k> Held out for a while like
746: [15:56:35] * muskie9 is now known as muskie9_afk
747: [15:58:20] * muskie9_afk is now known as muskie9
748: [15:59:32] <Py6316k> well, I guess you're right kinglozzer. It was mostly a boring faff article.
749: [15:59:58] * catcher has joined #silverstripe
750: [16:01:15] * cloph_away is now known as cloph
751: [16:02:27] * catcher quit (Read error: Connection timed out)
752: [16:02:51] * catcher has joined #silverstripe
753: [16:03:06] * mobiusnz quit (Read error: Connection reset by peer)
754: [16:03:19] * mobiusnz has joined #silverstripe
755: [16:03:25] <Py6316k> ahh time estimation. The closer you get to the close of a project, the estimation:actual time grows exponentially
756: [16:03:57] <Py6316k> chaps across from me just said "we'll be done in 20 mins" to lay off the start of a meeting (to present the finished stuff).
757: [16:04:20] <Py6316k> well, by 'just' I mean 18 mins ago, haha
758: [16:04:31] <Py6316k> They're still stepping through logic.
759: [16:04:48] <Py6316k> Amateurs!
760: [16:23:36] <kinglozzer> http://www.topgear.com/uk/car-news/koenigsegg-regera-revealed-geneva-motor-show-2015-03-03
761: [16:23:39] * kinglozzer drools
762: [16:27:58] * arnhoe quit ()
763: [16:28:11] <kinglozzer> Oh god so much want :(
764: [16:41:03] * jenniferaslan has joined #silverstripe
765: [16:45:07] * NETim quit (Ping timeout: 246 seconds)
766: [16:53:37] <Py6316k> kinglozzer: the wheel's on the wrong f'n side! D:
767: [16:54:24] <kinglozzer> Py6316k: If you ask nicely I'm sure they'll swap it around in the £1,200,000 cost ;)
768: [16:54:39] <Py6316k> :P
769: [16:54:42] <Py6316k> trade in!
770: [16:54:48] <kinglozzer> > It'll go from 93mph to 155mph in just 3.2 seconds
771: [16:54:52] <Py6316k> err, 'part ex' you call it here :<
772: [16:54:54] <kinglozzer> Jesus...
773: [16:55:13] <kinglozzer> 0-186mph takes 12 seconds flat
774: [16:55:15] <kinglozzer> D: D: D:
775: [16:55:22] <Py6316k> I wonder how it's fare up against that latest McLaren (P1 I think)
776: [16:55:43] <kinglozzer> If they can match those claimed figures it'll walk all over it!
777: [16:55:43] <Py6316k> I assume it's part bionic
778: [16:55:46] <Py6316k> (err, hybrid)
779: [16:55:47] <Py6316k> ?
780: [16:55:50] <kinglozzer> Yea
781: [16:56:06] <Py6316k> mmm, petrol electirc
782: [16:56:11] <Py6316k> electric*
783: [16:56:27] <Py6316k> dat i~r
784: [16:56:45] <Py6316k> it... irks me so! XD
785: [16:57:35] <kinglozzer> It doesn't have a gearbox O.o
786: [16:57:55] <kinglozzer> I can only assume there's some magic between the petrol engine and the wheels
787: [16:58:09] <Py6316k> mmhmm
788: [16:58:25] <Py6316k> continuous drive
789: [16:58:46] <Py6316k> like an infinite amount of gears, on a continuum. if you will.
790: [16:58:49] <Py6316k> or something
791: [16:58:52] <Py6316k> at a guess
792: [16:58:58] <Py6316k> it's what hybrids do
793: [16:59:03] <Py6316k> well, the prius at least
794: [16:59:26] <Py6316k> It's eerie as fuck to drive (well, at least the 2nd gen one I drove was).
795: [17:00:08] <kinglozzer> Mmm, cvt I think.. perhaps "direct drive" is just their fancy name for it
796: [17:00:10] <Py6316k> You put your foot down and there's no surge in power like you get in normal car. It starts speeding up as if it's on a linear graph. No power band. Slow as fuck to begin with. You're all "COME THE FUCK ON, PASS" then you look down and you're doing 120
797: [17:00:29] <Py6316k> and you're all D:! cops!
798: [17:01:03] <Py6316k> kinglozzer: 'direct drive' to me means it revs from 0 to 180mph
799: [17:01:04] <Py6316k> lulz
800: [17:01:21] <Py6316k> engine speed => wheel speed.
801: [17:01:30] <Py6316k> but that canna' be rite.
802: [17:01:36] <kinglozzer> But... the petrol engine would be useless at low speed :P
803: [17:01:44] <Py6316k> but eletricks!
804: [17:02:01] <Py6316k> petrol for super speeds!
805: [17:02:21] <kinglozzer> I would pay many £££ for a drive in that
806: [17:02:38] <Py6316k> so that nismo right... hybrid front mount front wheel drive.
807: [17:02:47] <Py6316k> I just don't even, LMP1 wut
808: [17:02:52] <kinglozzer> Is that the really long thing?
809: [17:03:10] <kinglozzer> Saw a few pics but never actually looked at it properly
810: [17:04:25] <Py6316k> yeah so it's interesting right. Toyota and Porche are hybrid (petrol+electric). Audi is f'n diesel (+electric). And Nissan gone in with FWD!
811: [17:04:41] <Py6316k> I just don't even... not even sure the other LMP1s are even 2WD
812: [17:04:55] <Py6316k> I'm not even sure the nismo is either though, it's bizarre to think of!
813: [17:05:21] <Py6316k> not that there's anything particularly wrong, it's just pretty much unheard of at that level of motorsport
814: [17:26:42] <Py6316k> Time ta liek gann home 'n shit.
815: [17:26:53] <Py6316k> until tomorrow, bat fans!
816: [17:26:54] * Py6316k quit ()
817: [17:27:14] * cloph is now known as coph_away
818: [17:28:25] * kinglozzer quit ()
819: [17:31:42] * toddvalentine has joined #silverstripe
820: [17:35:29] <toddvalentine> HI all. I am trying to save a resized version of an image to the _resampled directory after upload using the onAfterWrite method. Why do I have to press Save after having created the object for it too initiate the creation of the image?
821: [17:36:44] <toddvalentine> I am using an Image Extension. Since getFormattedImage checks for $this->ID, I assume I can't use onBeforeWrite?
822: [17:46:43] * travis-ci has joined #silverstripe
823: [17:46:44] <travis-ci> dhensby/silverstripe-framework#230 (pulls/labels-proposal - 028a80b : Daniel Hensby): The build has errored.
824: [17:46:44] <travis-ci> Change view : https://github.com/dhensby/silverstripe-framework/compare/f474f4a02341...028a80b153cc
825: [17:46:44] <travis-ci> Build details : http://travis-ci.org/dhensby/silverstripe-framework/builds/52926730
826: [17:46:44] * travis-ci has left #silverstripe
827: [17:48:28] * greenman_ has joined #silverstripe
828: [17:49:25] * Stomach has joined #silverstripe
829: [18:01:40] * ThePeach quit (Quit: leaving)
830: [18:06:59] * Stomach quit (Quit: zzz)
831: [18:08:33] * GioVdK quit (Ping timeout: 246 seconds)
832: [18:10:26] * Stomach has joined #silverstripe
833: [18:16:18] * toddvalentine quit (Ping timeout: 265 seconds)
834: [18:19:00] * toddvalentine has joined #silverstripe
835: [18:22:53] * Stomach quit (Quit: zzz)
836: [18:23:36] <catcher> toddvalentine, I thought it generated the resampled image on request, no?
837: [18:25:29] <catcher> Otherwise it'd have to scan through the whole code base on upload to determine what it needs to write.
838: [18:27:03] <toddvalentine> @catcher - I'm attempting to programatically create the resampled image in the OnAfterWrite method. Just not seeing any reason why generateFormattedImage wouldn't be writing without pressing Save on the DataObject. Shouldn't Create initiate the onAFterWrite method?
839: [18:28:28] * muskie9 is now known as muskie9_afk
840: [18:28:49] * muskie9_afk is now known as muskie9
841: [18:28:56] <catcher> toddvalentine, generateFormattedImage writes the asset, but not the object.
842: [18:29:19] * muskie9 is now known as muskie9_afk
843: [18:30:43] <catcher> toddvalentine, http://api.silverstripe.org/3.1/source-class-Image.html#468-501
844: [18:31:12] <toddvalentine> @catcher sorry if I'm not grasping, but isn't the object ( the image object I am resizing off of ) already created by pressing the Create button?
845: [18:42:21] <catcher> toddvalentine, yep
846: [18:43:11] <catcher> You asked why generateFormattedImage wouldn't write. But isn't your goal to call generateFormattedImage *from* a write hook?
847: [18:45:05] <toddvalentine> @catcher - Yes, exactly. Thought since I was using onAfterWrite this would be possible. If not, is the only way to accomplish this to resize on Upload?
848: [18:46:34] <catcher> toddvalentine, I would think you should be able to call generateFormattedImage from Image's (or extension's) onAfterWrite.
849: [18:48:00] <catcher> (which fires after uploading).
850: [18:48:37] <catcher> toddvalentine, are you remembering to use 'owner' in your extension?
851: [18:49:52] <toddvalentine> my extension+ public function MyThumbnail() { return $this->owner->getFormattedImage('MyThumbnail') }
852: [18:50:34] <toddvalentine> public function generateMyThumbnail(GD $gd) { return $gd->croppedResize(75,75); }
853: [18:51:36] * Stomach has joined #silverstripe
854: [18:51:56] <toddvalentine> In my DO class public function onAfterWrite() { $photoObj = $this->Photo(); $photoObj->MyThumbnail(); parent::... }
855: [18:52:16] <catcher> toddvalentine, you have the onAfterWrite on the DO instead of the Image?
856: [18:52:37] <catcher> That will definitely only fire when you save the DO.
857: [18:52:37] <toddvalentine> @catcher: Yes
858: [18:52:48] <catcher> If you want it to fire when you upload the image, you need to override the Image's onAfterWrite.
859: [18:55:16] <toddvalentine> So add an onAfterWrite method on the extension. I am guessing I would need to do some conditional logic so it only ran on the relevant Images?
860: [18:56:34] <catcher> toddvalentine, You're better off applying the extension only as needed, if possible.
861: [18:57:56] * glenn-bautista has joined #silverstripe
862: [18:58:27] <toddvalentine> @catcher - so would I extend Image and set a has_one on the DO that uses the extended Image type ( which has the onAFterWrite method on it). Thanks BTW.
863: [19:00:16] <catcher> toddvalentine, sounds about right. Though if you've got the flexibility to do so, you may want to subclass Image instead of extending.
864: [19:00:39] <toddvalentine> Got it.
865: [19:01:03] <SphereSilver> Ok, pro-tip: Over 20k of folders is NOT funny for the CMS
866: [19:01:35] <catcher> SphereSilver, find ./ -type d -exec rm -rf?
867: [19:02:17] <catcher> That will reduce it dramatically. :)
868: [19:02:31] <Cheddam> SphereSilver What could possibly have generated 20k folders in the first place? o-o
869: [19:02:50] <SphereSilver> Eh, 14k actors and 5k movies
870: [19:03:29] <SphereSilver> and 3k directors
871: [19:06:21] <catcher> that's intense, what's your plan?
872: [19:06:22] * huberd has joined #silverstripe
873: [19:13:48] * mobiusnz quit (Quit: Leaving.)
874: [19:15:05] <SphereSilver> No plan, it's already working, except assets ;)
875: [19:15:59] <SphereSilver> about 3Gb's and a lot of data :D
876: [19:19:17] * muskie9_afk is now known as muskie9
877: [19:23:19] * huberd quit (Ping timeout: 246 seconds)
878: [19:28:28] * glenn-bautista quit (Quit: Leaving.)
879: [19:28:44] * jedateach has joined #silverstripe
880: [19:28:57] * toddvale_ has joined #silverstripe
881: [19:29:28] * Ryan-Toast has joined #silverstripe
882: [19:30:00] * muskie9 is now known as muskie9_afk
883: [19:32:41] * muskie9_afk is now known as muskie9
884: [19:32:43] * toddvalentine quit (Ping timeout: 256 seconds)
885: [19:37:41] * mobiusnz has joined #silverstripe
886: [19:39:19] * stecman has joined #silverstripe
887: [19:45:02] * stecman quit (Quit: Leaving)
888: [19:48:18] * travis-ci has joined #silverstripe
889: [19:48:19] <travis-ci> silverstripe/silverstripe-framework#4302 (3.1 - 7b7a5e0 : Ingo Schommer): The build passed.
890: [19:48:19] <travis-ci> Change view : https://github.com/silverstripe/silverstripe-framework/compare/6cdad96ca240...7b7a5e031293
891: [19:48:19] <travis-ci> Build details : http://travis-ci.org/silverstripe/silverstripe-framework/builds/52942100
892: [19:48:19] * travis-ci has left #silverstripe
893: [19:56:13] * Stomach quit (Quit: zzz)
894: [20:00:08] * Stomach has joined #silverstripe
895: [20:01:09] * willr has joined #silverstripe
896: [20:02:28] * Stomach quit (Client Quit)
897: [20:06:59] * Hailwood has joined #silverstripe
898: [20:09:49] * jenniferaslan quit (Quit: jenniferaslan has left the room)
899: [20:10:32] * Stomach has joined #silverstripe
900: [20:11:58] * Stomach quit (Client Quit)
901: [20:13:43] * Stomach has joined #silverstripe
902: [20:18:13] * Stomach quit (Ping timeout: 252 seconds)
903: [20:34:32] <Hailwood> Hey guys, how can I force a tab to always be last no matter the order it was added
904: [20:37:18] * Stomach has joined #silverstripe
905: [20:37:40] <muskie9> Hailwood something like this: https://gist.github.com/muskie9/d7d7dba86df525494948
906: [20:37:47] <muskie9> possibly
907: [20:38:34] * micmania1 has joined #silverstripe
908: [20:39:05] * zippy has joined #silverstripe
909: [20:39:51] <zippy> Morning
910: [20:40:06] <muskie9> afternoon
911: [20:41:01] <Hailwood> muskie9, I believe that was meant to be $rootTab = $fields->fieldByName('Root'); $rootTab->insertAfter(Tab::create('SomeTab'), 'Main'); ?
912: [20:41:17] <muskie9> yes, I had a missing )
913: [20:41:58] <muskie9> er, kind of... I've updated the gist if you refresh
914: [20:43:30] <Hailwood> muskie9, Yeah, unfortunately that just inserts it as the second tab, tabs added afterwards are still displayed after my "SomeTab"
915: [20:44:17] <muskie9> Hailwood, not sure if there's a function to get all tabs... could find the last one then do an insert after
916: [20:45:25] * ss-helper has joined #silverstripe
917: [20:46:33] * Stomach quit (Quit: zzz)
918: [20:47:01] <Hailwood> muskie9, The issue is that I would need to somehow run that after all other tabs have been added
919: [20:47:32] <muskie9> is this on a page type you created, or a data extension
920: [20:50:59] <Hailwood> muskie9, data extension
921: [20:52:05] <muskie9> then I'm not so sure... seems it's a crap shoot with tab order and dataextensions
922: [20:53:33] * Colin[pi] has joined #silverstripe
923: [20:54:15] <Colin[pi]> moin moin o/
924: [20:54:18] <catcher> Hailwood, I believe you can reposition the tab in the class that's loaded last.
925: [20:55:29] * EasyCo has joined #silverstripe
926: [20:55:45] <zippy> Has anyone seen an app for a phone where you can put in a url, and it will send the GPS details to that url? Can't use HTML5 because when the screen locks it stops.
927: [20:56:12] <mobiusnz> woo! made my first pull request :)
928: [20:56:17] <zippy> muskie9: nice
929: [20:56:19] <zippy> mm
930: [20:56:21] <zippy> mobiusnz: nice
931: [20:56:35] <Hailwood> catcher, What do you mean the class that's loaded last?
932: [20:59:40] <Hailwood> Would it be a logical idea to add a javascript file via requirements that picks up the tab and moves it to the end maybe/
933: [21:00:06] <adrexia> mobiusnz, I just saw it!
934: [21:00:59] <catcher> Hailwood, I think you can avoid that. Try moving the tab in the class that is currently drawing the very last tab.
935: [21:02:48] <EasyCo> Morning
936: [21:03:37] <Hailwood> catcher, I don't know what class is drawing the last tab - and I would like to encapsulate the functionality in one extension if I can.
937: [21:06:17] * Stomach has joined #silverstripe
938: [21:09:30] <catcher> Hailwood, you can use insertBefore/After or maybe changeFieldOrder, as long as all the tabs exist at the time you call it.
939: [21:09:37] * antmas has joined #silverstripe
940: [21:09:47] <catcher> Hailwood, I believe that would end up being your last extension.
941: [21:09:50] <antmas> moin o/
942: [21:10:07] <catcher> updateCMSFields hook is just before the return in SiteTree getCMSFields.
943: [21:11:45] <zippy> Has anyone seen an app for a phone where you can put in a url, and it will send the GPS details to that url? Can't use HTML5 because when the screen locks it stops.
944: [21:13:03] <Colin[pi]> antmas: o/
945: [21:13:34] <Colin[pi]> zippy: wait wat?
946: [21:13:41] <Colin[pi]> what is it you want to do?
947: [21:14:46] * scpi quit (Quit: scpi)
948: [21:15:15] <ss-helper> Re: [silverstripe-dev] Re: SilverStipe UserHelp card sort discussion - https://groups.google.com/d/msg/silverstripe-dev/XU40-UKcD8M/4Lhfxz5wBukJ
949: [21:17:56] * UncleCheese has joined #silverstripe
950: [21:21:43] <Hailwood> Hmm, I wonder how easy it would be to - if a field in the current tab is below the visible viewport then display a "scroll down for more fields" message at the bottom of the screen.
951: [21:22:17] * UndefinedOffset quit (Quit: Leaving.)
952: [21:22:49] * mahfuz has joined #silverstripe
953: [21:23:40] <SphereSilver> If you're into javascript. https://www.youtube.com/watch?v=2pL28CcEijU&t=1248
954: [21:23:49] <SphereSilver> Does not really compute.
955: [21:26:52] <zippy> Colin[pi]: Have an app on peoples phones, which every x minutes sends the GPS position to my web app
956: [21:26:53] <adrexia> who puts the default first?
957: [21:26:55] <antmas> SphereSilver: lol
958: [21:26:57] <adrexia> O_o
959: [21:27:02] <antmas> adrexia: my thoughts exactly
960: [21:27:11] <SphereSilver> It gets worse :D
961: [21:27:44] <SphereSilver> adrexia: Even though it's illogical, it's a possibility ;)
962: [21:27:55] <SphereSilver> So, the language should take it into account ;)
963: [21:28:33] <adrexia> hmm... yeah, I guess so.
964: [21:28:53] <adrexia> or JS Lint should be mandatory
965: [21:29:05] <toddvale_> @catcher: figured out the onAfterWrite issue. Image has a deleteFormattedImages method called from onAfterUpload. Had to rewrite that in my Image subclass to not overwrite my resampled images.
966: [21:29:18] <SphereSilver> You can't expect everyone to use JS Lint or JS Hint or something
967: [21:29:35] <adrexia> maybe qwe should expect them to though - is waht I'm saying
968: [21:29:38] <SphereSilver> Again, it's not logical, but it's possible, thus stupid :)
969: [21:30:20] <adrexia> its the only thing between a lot of js weirdness and functioning code.
970: [21:30:42] <SphereSilver> Yeah, the "WAT" is awesome too :D
971: [21:30:56] <catcher> toddvale_, nice one. Fortunately, it looks like that's *all* it does
972: [21:31:02] <Colin[pi]> SphereSilver: this one? https://archive.org/details/wat_destroyallsoftware
973: [21:31:11] <Colin[pi]> prolly my fav one of these videos
974: [21:31:29] <SphereSilver> Yep, that one.
975: [21:31:34] <SphereSilver> This is a more direct link: https://www.destroyallsoftware.com/talks/wat
976: [21:31:42] <Colin[pi]> video no worky on his site
977: [21:31:49] <catcher> toddvale_, nice you didn't have to copy a bunch of core code from Image & File, that is.
978: [21:32:35] <toddvale_> @SphereSilver @getify has a great advanced JS course on Frontend Masters. Watched it a couple times.
979: [21:38:29] <SphereSilver> toddvale_: I'm not a frontender ;)
980: [21:40:03] <toddvale_> @cathcer: do you know why they delete all formatted images in OnAfterUpload?
981: [21:48:32] <zippy> Colin[pi]: make snese?
982: [21:53:16] <zippy> toddvale_: link to that ?
983: [21:54:11] <toddvale_> zippy: http://api.silverstripe.org/3.1/source-class-Image.html#663-666
984: [21:54:18] <zippy> toddvale_: no i mean, the js course
985: [21:55:18] <toddvale_> zippy: https://frontendmasters.com/courses/advanced-javascript/
986: [21:55:25] <zippy> ta
987: [21:59:12] * jedateach quit (Quit: jedateach)
988: [21:59:20] <zippy> Colin[pi]: you ran into something like that?
989: [22:00:20] * jedateach has joined #silverstripe
990: [22:00:26] * jedateach has left #silverstripe
991: [22:02:45] <EasyCo> Can you add allowed Image extensions through the yml config system?
992: [22:03:17] <antmas> zippy: wait so someone opens the app and the location details are sent to a web service/app/whatever every so often yeah?
993: [22:04:09] <antmas> zippy: like, 'where is this person using this app, geographically'
994: [22:04:10] <Colin[pi]> zippy: no soz I haven't seen something like it b4 :o
995: [22:04:56] <zippy> antmas: yea, basically
996: [22:05:05] <zippy> otherwise I have to create my own app jsut to do the geo stuff
997: [22:05:29] * jedateach has joined #silverstripe
998: [22:05:36] <antmas> I'd say there is an app like it out there, but not as a sole purpose app
999: [22:05:56] <zippy> yea can't seem to find anything out there
1000: [22:06:08] <zippy> almost like http://www.insta-mapper.com/api-guide/
1001: [22:06:18] <zippy> closest I found, but don't want to store the data elsewhere
1002: [22:06:22] <zippy> will keep looking
1003: [22:07:30] * jedateach quit (Client Quit)
1004: [22:07:30] <EasyCo> Ahhh, so the Image type doesn't like svgs...
1005: [22:08:52] * jedateach has joined #silverstripe
1006: [22:09:02] * jedateach has left #silverstripe
1007: [22:11:54] <zippy> EasyCo: no, I think I saw something about this recently
1008: [22:11:54] <Hailwood> EasyCo, Don't even try it
1009: [22:12:24] <Hailwood> The closest you can do is use type File instead but you lose the ability to do resizing etc on the fly
1010: [22:12:56] <muskie9> has anyone had issues w/the validate function on custom data objects/pages
1011: [22:14:41] <muskie9> probably my code, but had an instance where it would pass and save, but the error message wouldn't get cleared
1012: [22:14:45] * Pyromanik has joined #silverstripe
1013: [22:14:52] <EasyCo> I'm going to try and there's nothing you can do to stop me!
1014: [22:15:27] <Pyromanik> launch nuclear blanket at australia?
1015: [22:17:34] <antmas> Pyromanik: o/
1016: [22:17:44] <Pyromanik> \o
1017: [22:19:51] * greenman_ quit (Remote host closed the connection)
1018: [22:20:37] * toddvalentine has joined #silverstripe
1019: [22:21:19] <zippy> Pyromanik: o/
1020: [22:21:56] <simon_w|air> Pyromanik, depending on where you aim for, no one will notice!
1021: [22:22:20] <zippy> Pyromanik: just off the top of your head. Have you seen an phone app which can allow GPS pushing to a URL? Or an app which will log GPS position and access via the API? It's a weird question, just asking as many devs as I know before I make something
1022: [22:22:28] <zippy> simon_w|air: it's a bloody grind I tell ya
1023: [22:23:59] * toddvale_ quit (Ping timeout: 250 seconds)
1024: [22:27:50] * toddvale_ has joined #silverstripe
1025: [22:30:34] <ss-helper> Re: Multi Column layouts - http://www.silverstripe.org/community/forums/customising-the-cms/show/4969?start=16#post400543
1026: [22:31:13] * toddvalentine quit (Ping timeout: 256 seconds)
1027: [22:33:43] * willr quit (Quit: willr)
1028: [22:41:07] * catcher quit (Quit: Leaving)
1029: [23:00:08] <mahfuz> Hi guys. Need your support. I have Region, City and Suburb Data object which are inter-related. I want a form field in the front end in a page where users should be able to select multiple suburbs like the Groups field in CMS User Edit Screen where you can select multiple Groups. For your info the Suburb field is linked with the page db field with a has_many relationship.
1030: [23:03:56] <Pyromanik> zippy, no. I don't fancy phone.
1031: [23:05:16] <Pyromanik> Nokia 105, that's the future.
1032: [23:05:55] <Pyromanik> mahfuz, use jquery.chosen
1033: [23:06:15] <Pyromanik> it is what is used in the back end (thus is bundeled with cms or framework itself)
1034: [23:08:44] <mahfuz> Thanks Pyromanik
1035: [23:08:45] <UncleCheese> ListboxField works, too
1036: [23:09:25] <Pyromanik> the ol' hold down ctrl + click to choose multiple? Shit usability because people are morons (well, to be fair it's not that well known a trick)
1037: [23:10:28] <Pyromanik> mahfuz, just inspect the field that lets you choose groups, it should hopefully be reasonably obvious how it's put together.
1038: [23:11:05] <Pyromanik> UncleCheese, still no SSL on .org, nor better usability in forums!
1039: [23:11:13] <mahfuz> UncleCheese: did you mean using ListboxField with setMultiple(true)? I tried that but I wanted the CMS ui
1040: [23:11:15] <UncleCheese> better usability?
1041: [23:11:28] <mahfuz> Thanks Pyromanik
1042: [23:11:36] <Pyromanik> yes, usability is shit.
1043: [23:11:44] <UncleCheese> ok?
1044: [23:11:45] <Stomach> chosen is fucking slow
1045: [23:11:46] <Pyromanik> I ranted about it at the end of last week :P
1046: [23:11:50] <UncleCheese> ah
1047: [23:11:53] <Stomach> I've been replacing stuff with select2 all over the place
1048: [23:11:57] <UncleCheese> +1
1049: [23:12:05] <Pyromanik> Stomach, mahfuz use that other one that's pretty much the same thing
1050: [23:12:08] <UncleCheese> Pyromanik care to reprise your rant?
1051: [23:12:09] <Pyromanik> select2 or whatever it's called
1052: [23:12:09] <mahfuz> Any one have any idea about this
1053: [23:12:18] <Pyromanik> UncleCheese, logs.simon.geek.nz
1054: [23:12:19] <Pyromanik> :P
1055: [23:12:20] <UncleCheese> mahfuz what is wrong with listbox?
1056: [23:12:27] <Stomach> https://github.com/sheadawson/silverstripe-select2
1057: [23:12:29] <Pyromanik> UncleCheese, it was to you in the first place!
1058: [23:12:43] <mahfuz> https://github.com/sheadawson/silverstripe-select2
1059: [23:12:51] <Pyromanik> Stomach, right, now update all cms instances and make a PR
1060: [23:12:59] <mahfuz> Stomach I was talking about that one
1061: [23:13:03] <Stomach> Pyromanik naaaaaaaaaaaaaah you
1062: [23:13:11] <Pyromanik> neg, chosen good enough for me!
1063: [23:13:51] <mahfuz> UncleCheese: nothing is wrong with the listbox, I just wanted that ui
1064: [23:13:54] <Pyromanik> UncleCheese, basically navigation is crap, post/reply button should be at base of page too, white space is important but the amount in the forums is just redonkularse
1065: [23:14:01] <UncleCheese> what is "that ui?, mahfuz ?
1066: [23:14:02] <Stomach> get bigger clients with thousands of members and crash the CMS all the time :(
1067: [23:14:12] <Pyromanik> UncleCheese, select multiple things from a dropdown
1068: [23:14:17] <UncleCheese> oh i see
1069: [23:14:27] <Pyromanik> Stomach, tell clients to upgrade all their ramz
1070: [23:14:27] <UncleCheese> what about <DataList> ?
1071: [23:14:36] <mahfuz> UncleCheese like the Groups field in CMS User Edit Screen where you can select multiple Groups
1072: [23:14:37] <UncleCheese> oh i gues that's only one at a time
1073: [23:14:43] <UncleCheese> mahfuz that's a listbox
1074: [23:14:57] <Pyromanik> UncleCheese, with jquery.chosen applied to it.
1075: [23:15:13] <UncleCheese> there ya go
1076: [23:15:19] <mahfuz> Ok UncleCheese I got it
1077: [23:15:21] <Pyromanik> we've already covered this!
1078: [23:15:37] <mahfuz> Thanks guys
1079: [23:15:46] <Pyromanik> :>
1080: [23:15:57] <Pyromanik> so good we answered it twice. You're welcome mahfuz
1081: [23:16:00] <Pyromanik> :P
1082: [23:16:32] <UncleCheese> mahfuz if you're using bootstrap and you're after more of an autocomplete api, i have this: https://github.com/unclecheese/silverstripe-bootstrap-tagfield
1083: [23:17:15] <Pyromanik> It's kinda bed time
1084: [23:17:17] <Pyromanik> bai
1085: [23:17:27] * Pyromanik quit (Quit: zzztiemzzz)
1086: [23:17:29] <UncleCheese> Pyromanik bedtime in Chch?
1087: [23:17:38] <UncleCheese> what kind of hours do you work?
1088: [23:17:56] <Stomach> isn't he in UK?
1089: [23:18:08] <UncleCheese> i thought he was in Chch.. i met him at the WDCNZ
1090: [23:18:11] <antmas> he's in UK
1091: [23:18:18] <UncleCheese> what the hell did he do that for?
1092: [23:18:18] <antmas> WAS in chch
1093: [23:18:36] <antmas> trendy?
1094: [23:18:38] <antmas> i dunno
1095: [23:18:49] <UncleCheese> Stomach redoing KickAssets in React and it's blazing fast
1096: [23:18:57] <UncleCheese> feels like a desktop app
1097: [23:19:22] <Stomach> UncleCheese - :D :D
1098: [23:19:37] <Stomach> but ember is about to release glimmer
1099: [23:19:40] <Stomach> so you should use that
1100: [23:19:40] <Stomach> :P
1101: [23:19:48] <UncleCheese> oh christ
1102: [23:19:51] <UncleCheese> i
1103: [23:19:58] <UncleCheese> i'm so sad i can't make that meetup
1104: [23:20:04] <UncleCheese> video it
1105: [23:20:24] <mahfuz> Thanks UncleCheese. I am using Bootstrap so will try that one
1106: [23:20:32] <Stomach> yeah I will try to if we can UC
1107: [23:20:39] <Stomach> sort of shoe string budget :P
1108: [23:21:02] <Stomach> there are 100 people coming
1109: [23:21:05] <Stomach> 1/2 a beer each
1110: [23:21:30] <antmas> ember is about to relase glimmer so you can bower while you react, but only if you grunt while you gulp
1111: [23:21:50] <Stomach> you forgot to install npm
1112: [23:21:52] <Stomach> ERROR
1113: [23:21:56] <antmas> ffffffffffffff
1114: [23:22:08] * antmas climbs back up the stack
1115: [23:22:26] <UncleCheese> https://is-ember-fast-yet.firebaseapp.com/
1116: [23:22:49] <Stomach> LOL
1117: [23:25:27] * toddvale_ quit ()
1118: [23:28:10] <Stomach> yaaay UncleCheese merged my changes
1119: [23:28:16] <UncleCheese> :)
1120: [23:28:21] <UncleCheese> not so crazy about ?flush=1, though
1121: [23:28:42] <Stomach> yeah well get rid of =all then
1122: [23:28:45] <Stomach> :P
1123: [23:28:55] <UncleCheese> well
1124: [23:29:02] <UncleCheese> yeah, its almost never necessary
1125: [23:29:10] <UncleCheese> but ?flush === ?flush=1
1126: [23:29:33] <Stomach> not if it was a strict check (which imho it should be)
1127: [23:30:24] <UncleCheese> i'm trying to write up an analogy that relates CSS to DataExtensions
1128: [23:30:41] <UncleCheese> because I think a frontend dev can easily relate to them as multiple classes in CSS, which are encouraged over inheritance
1129: [23:39:34] * greenman_ has joined #silverstripe
1130: [23:44:26] * greenman_ quit (Ping timeout: 264 seconds)
1131: [23:53:10] * muskie9 is now known as muskie9_afk
1132: [23:56:25] * muskie9_afk is now known as muskie9

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