#silverstripe IRC Log

IRC log for 18 May 2013

All timestamps are in UTC.

1: [00:03:57] * FireMe-iPhone has joined #silverstripe
2: [00:11:45] * Jeremy1 has joined #silverstripe
3: [00:16:37] * WillM quit (Ping timeout: 248 seconds)
4: [00:38:50] * FireMe-iPhone quit (Remote host closed the connection)
5: [00:51:33] * gelignite has joined #silverstripe
6: [00:56:19] * ^pH- is now known as ^pH
7: [01:41:38] * LoveDuckie has joined #silverstripe
8: [01:42:59] <LoveDuckie> Anyone know how I can display the message that is set by setMessage() after a redirectBack() call in my Form object?
9: [02:01:44] * willmorgan quit (Quit: Leaving.)
10: [02:13:12] * kerosene has joined #silverstripe
11: [02:56:36] * pevjan quit (Remote host closed the connection)
12: [03:26:01] * cloph_away has joined #silverstripe
13: [03:27:33] * cloph_away1 quit (Ping timeout: 256 seconds)
14: [03:40:28] <FrozenFire> LoveDuckie, $form->sessionMessage("Message you want to show", "disposition")
15: [03:40:35] <FrozenFire> Where disposition is usually good/bad
16: [04:07:55] * gelignite quit (Quit: http://bit.ly/nkczDT)
17: [04:08:31] * sewid has joined #silverstripe
18: [04:34:15] <Nightjar> good, error, warning iirc
19: [04:34:20] * joelpittet has joined #silverstripe
20: [05:03:46] * willr_ quit (Quit: willr_)
21: [05:18:55] * sewid quit (Quit: Textual IRC Client: www.textualapp.com)
22: [05:24:44] * pex has joined #silverstripe
23: [05:45:05] * willr_ has joined #silverstripe
24: [05:45:05] * willr_ quit (Changing host)
25: [05:45:05] * willr_ has joined #silverstripe
26: [05:45:10] * robert_ has joined #silverstripe
27: [05:45:10] * robert_ quit (Changing host)
28: [05:45:10] * robert_ has joined #silverstripe
29: [05:47:19] * joelpittet quit (Remote host closed the connection)
30: [05:51:38] * jrthomer quit (Remote host closed the connection)
31: [05:56:56] * willr_ quit (Quit: willr_)
32: [05:57:31] * pevjan has joined #silverstripe
33: [06:01:31] * pevjan quit (Remote host closed the connection)
34: [06:06:00] * Shrike_Finland quit (Quit: Leaving.)
35: [06:08:57] * Jedateach has joined #silverstripe
36: [06:34:00] * Jedateach quit (Quit: Jedateach)
37: [06:50:45] * priithansen has joined #silverstripe
38: [07:14:32] * pex quit (Quit: pex)
39: [07:18:39] * ^pH- has joined #silverstripe
40: [07:21:14] * ^pH quit (Ping timeout: 256 seconds)
41: [07:26:50] * willr_ has joined #silverstripe
42: [07:26:51] * willr_ quit (Changing host)
43: [07:26:51] * willr_ has joined #silverstripe
44: [07:26:51] * willr_ quit (Client Quit)
45: [07:26:55] * spronk has left #silverstripe
46: [07:30:51] * spronk has joined #silverstripe
47: [07:30:56] * spronk has left #silverstripe
48: [07:34:53] * guci0 has joined #silverstripe
49: [07:35:07] <guci0> Hi!
50: [07:58:03] * azureKnight has joined #silverstripe
51: [08:09:19] * wmk has joined #silverstripe
52: [08:22:59] * priithansen quit (Quit: priithansen)
53: [08:26:17] * SightUnseen has joined #silverstripe
54: [08:26:22] * SightUnseen has left #silverstripe
55: [08:32:17] * pex has joined #silverstripe
56: [08:32:23] * pex quit (Client Quit)
57: [08:41:35] * kerosene is now known as OldTom
58: [08:45:41] * azureKnight quit (Quit: I'm asleep. ZZZzzz…)
59: [09:10:12] * Jeremy1 quit (Quit: Jeremy1)
60: [09:23:36] * simon_w has joined #silverstripe
61: [09:28:16] * priithansen has joined #silverstripe
62: [09:33:04] * SightUnseen1 has joined #silverstripe
63: [09:33:10] * SightUnseen1 has left #silverstripe
64: [09:35:59] * osterlaus has joined #silverstripe
65: [09:47:12] * willmorgan has joined #silverstripe
66: [10:26:48] * wmk quit (Ping timeout: 240 seconds)
67: [10:26:50] * DrCuriosity quit (Ping timeout: 252 seconds)
68: [10:27:33] * pex has joined #silverstripe
69: [10:37:09] * DrCuriosity has joined #silverstripe
70: [10:49:47] * osterlaus quit (Quit: Leaving.)
71: [10:53:10] * osterlaus has joined #silverstripe
72: [11:06:02] * pex quit (Ping timeout: 256 seconds)
73: [11:15:50] * Colin[pi] quit (Ping timeout: 256 seconds)
74: [11:35:58] * gelignite has joined #silverstripe
75: [11:47:51] * DrCuriosity quit (Ping timeout: 240 seconds)
76: [11:48:11] * DrCuriosity has joined #silverstripe
77: [12:12:31] * zfmf1 has joined #silverstripe
78: [12:17:44] * guci0 quit (Ping timeout: 250 seconds)
79: [12:29:31] * wmk has joined #silverstripe
80: [12:41:47] * pex has joined #silverstripe
81: [12:48:07] * willmorgan quit (Quit: Leaving.)
82: [12:48:15] * priithansen quit (Quit: priithansen)
83: [12:48:30] * Nightjar quit (Quit: Nightjar)
84: [13:30:59] * osterlaus quit (Quit: Leaving.)
85: [13:41:11] * zfmf1 has left #silverstripe
86: [13:43:34] * pex quit (Ping timeout: 248 seconds)
87: [13:58:25] * pex has joined #silverstripe
88: [14:12:37] * DesignerX has joined #silverstripe
89: [14:14:37] <DesignerX> hi guys, anyone has used GridFieldAddNewInlineButton in SS3.1 ?
90: [14:44:30] * priithansen has joined #silverstripe
91: [14:58:50] * howardgrigg quit (Read error: Connection reset by peer)
92: [14:59:17] * howardgrigg has joined #silverstripe
93: [15:24:55] * ^pH- is now known as ^pH
94: [15:32:10] * lx-berlin_ has joined #silverstripe
95: [15:37:51] * priithansen quit (Quit: priithansen)
96: [15:39:39] * lx-berlin_ has left #silverstripe
97: [16:26:49] * ^pH- has joined #silverstripe
98: [16:26:54] * wmk quit (Ping timeout: 276 seconds)
99: [16:30:31] * ^pH quit (Ping timeout: 276 seconds)
100: [16:30:44] * ^pH- is now known as ^pH
101: [16:37:42] * joelpittet has joined #silverstripe
102: [16:42:10] * ryan has joined #silverstripe
103: [16:42:17] <ryan> hi guys
104: [16:42:28] <ryan> does anybody have any experience with silverstipe and SSL?
105: [16:42:34] * ryan is now known as Guest54054
106: [16:42:53] <Guest54054> does anybody have any experience with silverstipe and SSL?
107: [16:56:14] <FrozenFire> Yes, though SS has nothing really to do with SSL
108: [16:56:25] <FrozenFire> SSL happens at the transport layer
109: [16:56:36] <FrozenFire> SS is the application layer
110: [16:57:29] <FrozenFire> The only really somewhat-important thing when it comes to SS and SSL is maybe setting up an SSL force on the controller which accepts payment info
111: [16:58:06] * Guest54054 quit (Ping timeout: 250 seconds)
112: [16:59:04] <FrozenFire> I have: class RegistrationPage_Controller extends Page_Controller { public function init() { parent::init(); if(!Director::isDev()) Director::forceSSL(); } ... }
113: [16:59:10] <FrozenFire> Which doesn't help you because you're gone.
114: [16:59:16] <FrozenFire> Bitch
115: [16:59:17] <FrozenFire> :P
116: [17:00:22] * Colin[pi] has joined #silverstripe
117: [17:01:21] <DesignerX> lol
118: [17:01:34] * joelpittet quit (Remote host closed the connection)
119: [17:02:22] <DesignerX> FrozenFire: have you used GridFieldEditableColumns ?
120: [17:02:59] <FrozenFire> Nope
121: [17:03:15] <DesignerX> it doesnt seem to use getCMSFeilds when setting the InputFields for my object
122: [17:06:15] <FrozenFire> So, it would seem that you would possibly augment that using setDisplayFields
123: [17:07:11] <FrozenFire> https://github.com/ajshort/silverstripe-gridfieldextensions/blob/master/code/GridFieldEditableColumns.php#L128
124: [17:07:16] <FrozenFire> Ultimately, that's what's in play.
125: [17:09:04] <FrozenFire> So I suspect it would be $gfConfig->getComponentByType("GridFieldEditableColumns")->setDisplayFields(array( "SomeField" => array( "field" => "TextField" ), "SomeOtherField" => array( "field" => function($record, $col, $grid) { ...; return $someFormField; } ) );
126: [17:09:23] <FrozenFire> Of course, you would specify all of the attributes you need to, for each field.
127: [17:09:26] <FrozenFire> Such as setting the title;
128: [17:09:52] <FrozenFire> Or maybe you could do that in your DataObject's summaryFields
129: [17:10:04] <FrozenFire> Yeah, doing it in your summaryFields is a better idea
130: [17:10:06] <DesignerX> what about returning $Object->getCMSFields & pass that into setDisplayFeilds ?
131: [17:10:26] <FrozenFire> Nah, the format for the display fields is an array
132: [17:10:28] <FrozenFire> Not a FieldList
133: [17:10:42] <FrozenFire> The CMS fields are *way* different than the display fields.
134: [17:10:43] <DesignerX> ah :( , I will note down the summery_fields idea
135: [17:12:18] <FrozenFire> You might have $summary_fields = array("SomeField" => array("title" => "My Bad-ass Field", "field" => "NumericField"));
136: [17:12:24] * FireMe has joined #silverstripe
137: [17:12:38] <FrozenFire> Basically, the "field" index in the summary_fields for each field will have it instantiate a field using that class name
138: [17:13:02] <FrozenFire> A "callback" will let you define a closure for that field which returns the set-up field
139: [17:13:10] <FrozenFire> Which you might use to construct a DropdownField, for instance
140: [17:13:21] <FireMe> hi all
141: [17:13:29] <FrozenFire> Hello. You're fired.
142: [17:13:42] <FrozenFire> And no, you can't keep the Swingline stapler.
143: [17:14:06] <FireMe> ok :-(
144: [17:14:54] <DesignerX> 3-2-1-
145: [17:14:59] <DesignerX> didnt work :(
146: [17:15:08] <DesignerX> Will try & dev/build & flush to be 1000% sure
147: [17:15:28] <FrozenFire> Yeah, summary fields are cached
148: [17:15:31] <FrozenFire> Heavily
149: [17:16:07] <FrozenFire> Anything that goes into building a GridField should be assumed to have been cached
150: [17:17:10] <DesignerX> is there a way to make it auto flush/dev build on code changes ?
151: [17:17:47] <DesignerX> or disable cache while in dev mode ?
152: [17:17:48] <FrozenFire> Nope
153: [17:17:55] <FrozenFire> Chicken, meet egg
154: [17:18:12] <FrozenFire> Disabling the cache would be disastrous for performance
155: [17:18:25] <FrozenFire> Like, three to four extra seconds per page load, most likely.
156: [17:18:52] <DesignerX> I will do that only in dev mode, while i.m playing around with PHp & need all my changes to show up
157: [17:19:08] <DesignerX> it already takes me 10 sec + to do both dev/build & flush lol
158: [17:19:27] <FrozenFire> Then don't do that.
159: [17:19:30] <FrozenFire> Just do ?flush
160: [17:19:54] <FrozenFire> /dev/build is for building schema changes and finding new code files
161: [17:20:01] <FrozenFire> That is, it handles the manifest
162: [17:20:10] <FrozenFire> ?flush is for uncaching stuff in the template
163: [17:20:21] <FrozenFire> ?flush=all is for a heavier-handed cache invalidation
164: [17:26:44] <DesignerX> when i do , DataObject::get('Gadget') does iot get CubClasses of Gadget class too ?
165: [17:27:00] <DesignerX> SubClasses *
166: [17:32:51] * willmorgan has joined #silverstripe
167: [17:33:52] <DesignerX> 3:30 am good night all, hope my drivers are up to date now & My PC wont blue screen if I put it to sleep :D
168: [17:37:53] <FrozenFire> Don't do DataObject::get('Gadget')
169: [17:37:56] <FrozenFire> Do Gadget::get()
170: [17:38:11] <FrozenFire> The former is deprecated as of SS3
171: [17:42:06] * priithansen has joined #silverstripe
172: [17:52:13] * FireMe has joined #silverstripe
173: [18:07:43] <FireMe> what MVC framework would you say silverstripe is most like , zend, symfony, codeigniter, cakephp ?
174: [18:20:10] <FrozenFire> None of the above?
175: [18:20:24] <FrozenFire> SilverStripe is SilverStripe is SilverStripe
176: [18:20:51] <FrozenFire> If there was something better known that behaved like SilverStripe, I'd probably not use SilverStripe. :P
177: [18:21:07] <FrozenFire> Symfony is probably closest in formality
178: [18:24:25] <FireMe> ok
179: [18:27:07] <FireMe> so silverstripe doesn't use separated models?
180: [18:29:47] <FrozenFire> Not sure what you mean
181: [18:30:16] <FrozenFire> Yes, SilverStripe implements separated domains
182: [18:30:34] <FireMe> i see alot of the frameworks split up in to model -> view -> controller
183: [18:31:00] <FrozenFire> SilverStripe does this. It's not actually MVC, but so far as you're concerned, it is.
184: [18:31:45] <FireMe> so are all the models in the controllers
185: [18:31:51] <FrozenFire> SS uses an implied view using accessors to the model and controller
186: [18:32:01] <FrozenFire> Instead of an explicit view
187: [18:33:02] * joelpittet has joined #silverstripe
188: [18:33:22] <FrozenFire> It does separate the templating out, of course, though
189: [18:34:00] <FireMe> i mean more like codeigniter will have a file for model and a file for the controller
190: [18:35:19] <FrozenFire> Mostly, yes. SS tends to make an exception when it comes to model controllers, but you don't necessarily have to.
191: [18:35:37] <FrozenFire> That is, one usually puts the page controllers in the same file as the page model
192: [18:40:46] <FireMe> so when you do class ThisPage extends Page, is that like the model? or am i way out?
193: [18:40:55] <willmorgan> er
194: [18:40:55] <willmorgan> kinda
195: [18:41:02] <willmorgan> DataObject is the core model class
196: [18:41:14] <willmorgan> and pages extend dataobjects (via sitetree)
197: [18:41:28] <FireMe> oh ok
198: [18:42:48] <FireMe> see i learn best with video tutorials, but they are mostly on other frameworks with independent file for there m v c, cant seem to find any videos on silverstripe
199: [18:43:21] <FrozenFire> DataObject is indeed the model in SS
200: [18:43:29] <FrozenFire> SiteTree extends DataObject
201: [18:43:33] <FrozenFire> Page extends SiteTree
202: [18:43:39] <FrozenFire> ThisPage extends Page
203: [18:43:51] <FrozenFire> Controller is the controller
204: [18:43:57] <FrozenFire> ContentController extends Controller
205: [18:44:13] <FrozenFire> Page_Controller extends ContentController
206: [18:44:20] <FrozenFire> ThisPage_Controller extends Page_Controller
207: [18:44:31] <FrozenFire> Each level thereof maps to the other
208: [19:00:58] * Zauberfisch has joined #silverstripe
209: [19:50:58] <FireMe> is there any good membership modules for ss3 yet?
210: [20:05:14] <Zauberfisch> idk
211: [20:05:24] <Zauberfisch> but you should check the member module from ajshort
212: [20:05:38] <Zauberfisch> if there is one, its probably his
213: [20:13:58] <FrozenFire> Uhh, normally I just manage that as being part of a particular group
214: [20:14:24] <FrozenFire> Recently launched a PPV video project managed that way
215: [20:14:32] <FrozenFire> Basically, when you pay, you get added to a group.
216: [20:14:36] <Zauberfisch|idle> just cheked, yes, ajshort's module is 3.x https://github.com/ajshort/silverstripe-memberprofiles
217: [20:14:53] <FrozenFire> Each time the billing cycle task runs, it checks for people who've not paid in the past billing interval, and re-bills them
218: [20:15:00] <Zauberfisch|idle> but FrozenFire is right, in many cases its enough to put members into a group and deal with it that way
219: [20:15:04] <FrozenFire> If the billing fails, they're removed from the group.
220: [20:15:12] <FrozenFire> If they cancel, they're removed from the group
221: [20:35:36] <FireMe> whats the best way to split events by month? eg May a list of events june list of events?
222: [20:38:06] <FrozenFire> Mmm... tricky multi-factored question
223: [20:38:34] <FrozenFire> You could use a GroupedList against a getter which'll pass out the month as a unique value
224: [20:38:45] <FrozenFire> Or you could use a date range filter on the database
225: [20:38:57] <FrozenFire> The former can be very flexible. The latter is higher performance
226: [20:39:16] <FrozenFire> I'd say that the latter is your best bet
227: [20:39:28] <FireMe> ok
228: [20:42:35] <FrozenFire> public static function byMonth($month, $year = null) { $year = $year?:date("Y"); $start = mktime(0, 0, 0, $month, 1, $year); $end = mktime(24, 59, 59, $month, 1, $year); return self::get()->filter(array("Date:GreaterThan" => date("c", $start), "Date:LessThan" => date("c", $end))); }
229: [20:42:47] <FrozenFire> Add that to Event
230: [20:43:08] <FrozenFire> Then you can get Event::byMonth(1 to 12);
231: [20:45:28] <FireMe> thanks
232: [20:46:02] <FrozenFire> Would have to refactor it a bit for your EventsHolder, but that'd actually be rather simple
233: [20:46:42] <FrozenFire> You could have public function eventsByMonth($month, $year = null) { $events = Event::byMonth($month, $year); return $events->filter("ParentID" => $this->ID); }
234: [20:47:41] <FrozenFire> Then you'd just do $holder->eventsByMonth(1 - 12)
235: [20:47:55] <FrozenFire> Got to love SS's ORM :)
236: [20:49:33] <FrozenFire> Or, since I love refactoring for flexibility...
237: [20:50:01] <simon_w> Well, first you should refactor for syntax correctness :p
238: [20:50:06] <FrozenFire> public static function byMonth($month, $year = null, $list = null) { $year = $year?:date("Y"); $list = $list?:self::get(); $start = mktime(0, 0, 0, $month, 1, $year); $end = mktime(24, 59, 59, $month, 1, $year); return $list->filter(array("Date:GreaterThan" => date("c", $start), "Date:LessThan" => date("c", $end))); }
239: [20:50:33] <FrozenFire> public function eventsByMonth($month, $year = null) { return Event::byMonth($month, $year, $this->Events()); }
240: [20:50:53] <FrozenFire> simon_w, Hush, you. :P
241: [20:51:00] <FrozenFire> I suppose the mktime would use 23
242: [20:51:03] <FrozenFire> Instead of 24
243: [20:51:30] <simon_w> Well, you're using less/greater than, so probably want a +1/-1
244: [20:52:20] <FrozenFire> Ohnoes. Events running at 23:59:59 at the end of the month or 1:00:00 at the beginning of the month will be missed!
245: [20:53:06] <FrozenFire> Or however that works
246: [20:53:07] <simon_w> Man, can't even get your sarcastic response right :p
247: [20:53:11] <FrozenFire> SHADDAP
248: [20:53:12] <FrozenFire> :P
249: [20:53:19] * FrozenFire hates 24 hour time
250: [20:53:27] <FrozenFire> Gimme unix timestamps any day of the week
251: [20:56:24] <FireMe> i am getting Missing argument 1 for EventsHolder_Controller::eventsByMonth(),
252: [20:56:46] <FrozenFire> You give it a month
253: [20:56:48] <FireMe> oh never mind lol
254: [20:56:53] <FrozenFire> :)
255: [20:56:59] <FrozenFire> You'll want an iterator, most likely
256: [21:01:06] <priithansen> should look this place up on street view, no cant it's dark outside. I'm very dissapointed with my brain at the moment
257: [21:02:01] <FrozenFire> Haha
258: [21:02:08] <FrozenFire> That's wonderful
259: [21:02:34] <FrozenFire> That's like wanting to go to the store, but you can't, because it's raining in Minecraft.
260: [21:03:03] <FireMe> so this has an error because im not giving a month?
261: [21:03:07] <priithansen> :)
262: [21:03:33] <FrozenFire> Yeah. You need to give it a number from 1 to 12, at the very least
263: [21:03:45] <FrozenFire> It'll assume the current year
264: [21:03:51] <FrozenFire> But you can also give it a year
265: [21:04:30] <FireMe> i want all months years, i just want them split under month headings
266: [21:04:40] <FrozenFire> Yup
267: [21:07:08] <FireMe> dont understand why im getting Call to undefined method Event::byMonth()
268: [21:08:40] <FrozenFire> So you might have public static function byMonths($startMonth, $endMonth, $year = null) { $result = new ArrayList(); for($i = $startMonth; $i <= $endMonth; $i++) { $result->push(new ArrayData(array("Month" => date("M, Y", mktime(0, 0, 0, $i, 1, $year)), "Events" => self::byMonth($i, $year)))); } return $results; }
269: [21:08:52] <FrozenFire> Might've missed something in there. :P
270: [21:11:14] <FireMe> same
271: [21:11:27] <FrozenFire> How are you calling it?
272: [21:11:47] <FrozenFire> You'll have to do more than copy and paste, here, by the way.
273: [21:11:56] <FrozenFire> I'm just writing mostly-right code
274: [21:13:34] <FireMe> i need to learn php fast :-|
275: [21:13:51] <FrozenFire> :P
276: [21:14:48] <FireMe> how did you learn? self taught?
277: [21:14:55] <FrozenFire> Yeah, mostly.
278: [21:15:26] <FrozenFire> Been at it for about a decade, now, in various forms.
279: [21:16:34] <FireMe> I can do html css fine its just this php i find hard to grasp
280: [21:17:07] <FrozenFire> To be fair, much of what I'm doing is SS-specific
281: [21:17:46] <FrozenFire> I suspect you're missing a static, or you're trying to call a static as an instance method
282: [21:18:10] <FrozenFire> That is, it wouldn't be $this->byMonth()
283: [21:18:19] <FrozenFire> It'd be, literally, Event::byMonth()
284: [21:18:26] <FrozenFire> Since it's a static method
285: [21:18:40] <FireMe> i wish there was some video tutorials on silverstripe out there but cant find any
286: [21:19:05] <FrozenFire> :) Not likely to be valuable.
287: [21:19:11] <FrozenFire> I think you're missing some PHP knowledge in this case
288: [21:19:21] <FrozenFire> That is, statics verus instance methods
289: [21:20:12] <FireMe> ok will have to find some good php tuts, seems the syntax used in ss is different from php thow
290: [21:20:41] <FrozenFire> I might suggest #phpmentoring
291: [21:20:50] <FrozenFire> Though that depends on how motivated you are
292: [21:21:09] <FrozenFire> Since being mentored requires more of you than the mentor, as far as initiative goes.
293: [21:21:32] <FireMe> is that a site
294: [21:21:41] <FrozenFire> Well, the site is http://phpmentoring.org
295: [21:21:51] <FrozenFire> But #phpmentoring is the channel, here on Freenode.
296: [21:21:55] * simon_w quit (Read error: Connection reset by peer)
297: [21:22:02] <FrozenFire> Where we all congregate
298: [21:22:23] <FireMe> oh k
299: [21:22:50] <FrozenFire> It's something that a few others and myself started to try to give learning developers personal resources to learn how to do things the right way.
300: [21:23:06] <FrozenFire> That is, trying to place new developers with experienced developers, in an apprentice-mentor relationship
301: [21:26:07] <willmorgan> kudos to you
302: [21:27:00] * simon_w has joined #silverstripe
303: [21:32:25] <FireMe> i have actually got a disk from lynda.com on 21 hours of training on php so will have to get into that
304: [21:35:39] <FrozenFire> Never heard of it. Couldn't say that it's any good, but keep in mind that there is a *lot* of bad educational material for PHP
305: [21:35:54] <FrozenFire> For instance, w3schools is basically a way of learning how to do everything wrong in PHP
306: [21:36:19] <FireMe> its a world wide website
307: [21:36:48] * Colin[pi] quit ()
308: [21:37:06] <FrozenFire> Most websites are.
309: [21:37:18] <FireMe> haha
310: [21:37:32] <FrozenFire> http://www.phptherightway.com/
311: [21:40:34] <FrozenFire> http://www.codecademy.com/ I've also heard good things about CodeAcademy
312: [21:41:03] <FireMe> thanks will check it out
313: [22:04:45] * gumble has joined #silverstripe
314: [22:04:56] <gumble> someone knows if the shop module is working with ss 3?
315: [22:21:01] <howardgrigg> gumble: i think this one is working http://swipestripe.com/
316: [22:21:47] <FrozenFire> gumble, https://github.com/burnbright/silverstripe-shop/tree/1.0
317: [22:22:01] <FrozenFire> Version 1.0 (unstable-ish) apparently does
318: [22:22:04] <FrozenFire> Though I've never used it
319: [22:33:46] * priithansen quit (Quit: priithansen)
320: [22:43:49] <FireMe> bye guys
321: [22:44:56] * FireMe quit (Quit: Textual IRC Client: www.textualapp.com)
322: [23:02:19] * pex1 has joined #silverstripe
323: [23:03:44] * zfmf1 has joined #silverstripe
324: [23:03:49] * pex quit (Ping timeout: 246 seconds)
325: [23:40:44] * Zauberfisch quit (Remote host closed the connection)
326: [23:53:26] * Jeremy1 has joined #silverstripe
327: [23:55:05] * zfmf1 has left #silverstripe

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