-
Notifications
You must be signed in to change notification settings - Fork 0
/
atom.xml
616 lines (405 loc) · 67.6 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>noah</title>
<link href="http://botimer.net/atom.xml" rel="self"/>
<link href="http://botimer.net"/>
<updated>2012-05-28T14:08:04-04:00</updated>
<id>http://botimer.net</id>
<author>
<name>Noah Botimer</name>
<email>[email protected]</email>
</author>
<entry>
<title>Thoughts on “Sakai OAE”</title>
<link href="http://botimer.net/posts/2010/11/04/thoughts-on-sakai-oae"/>
<updated>2010-11-04T10:02:42-04:00</updated>
<id>http://botimer.net/posts/2010/11/04/thoughts-on-sakai-oae</id>
<content type="html"><p>If you haven&#8217;t heard, there has been some rebranding effort in the Sakai community recently. The project formerly known as &#8220;Sakai 3&#8221; has been <a href='http://sakaiproject.org/news/sakai-open-academic-environment-confirmed-official-sakai-foundation-project'>dubbed</a> the <em>Sakai Open Academic Environment</em> (OAE). The reaction has been varied; some wonder why a name change at all, some don&#8217;t especially care for the choice, some wonder why it wasn&#8217;t chosen differently&#8230;</p>
<p>I&#8217;m writing this post to give my perspective of why this is a healthy community move, even if the exact name &#8220;OAE&#8221; doesn&#8217;t stick.</p>
<p>This is just one more recognition that we&#8217;re talking about a new and different product. &#8220;3&#8221; doesn&#8217;t work very well as a product identifier, amongst ourselves, or to the broader world. This is an important distinction between Sakai (the community/brand/make) and Sakai (the software/product/model).</p>
<p>As the project portfolio for the Sakai community expands, we need real names for the projects. This looks to become more natural if we draw closer to our <a href='http://www.jasig.org/'>Jasig</a> friends, who already have a number of named projects. (As a side note, be ready to have discussions on your campus and at conferences of how a Collaboration and Learning Environment [CLE] is different from the OAE.)</p>
<p>So, my takeaway, whether you like the name Open Academic Environment or not, is that this is an important step on the maturity path for our community. -NB</p>
<p><em>P.S. Although OAE doesn&#8217;t roll off my tongue very well, I&#8217;m glad to be done with this dance: well, take the S off, and change it to a three. Yeah, it&#8217;s a nerdy thing. No, I didn&#8217;t pick it. They usually pronounce it&#8230; Explaining it always felt like watching awful karaoke.</em></p></content>
</entry>
<entry>
<title>Sakai Futures, part 2</title>
<link href="http://botimer.net/posts/2010/03/16/sakai-futures-part-2"/>
<updated>2010-03-16T01:33:50-04:00</updated>
<id>http://botimer.net/posts/2010/03/16/sakai-futures-part-2</id>
<content type="html"><p>It seems that at least a couple of people read my <a href='/posts/2010/03/13/sakai-futures'>last editorial</a>. I didn&#8217;t expect to write a part 2, at least not here or now. But it&#8217;s worth a bit of clarification&#8230;</p>
<p><em>See the very end for the &#8220;bit&#8221; part&#8230;</em></p>
<p>The Sakai Product Manager, Clay Fenlason, has <a href='http://sakaiproject.org/blogs/khomotso/debates-about-community-process'>posted some notes</a> on this ongoing discussion. He rightly points out that it is evolving and happening in large part on the &#8220;management list&#8221;, and that you should join up or watch the archives if interested.</p>
<p>The purpose of this post is to clarify what looks to be a basic disconnect on my opinion, since I was cited and don&#8217;t mean what it looks like Clay heard. He says:</p>
<blockquote>
<p>But again our first practical example risks a misunderstanding - that the full process is only really about Sakai 3. There are even some knowledgeable community leaders that are <a href='http://www.dr-chuck.com/csev-blog/000709.html'>coming to this conclusion</a> and <a href='/posts/2010/03/13/sakai-futures'>holding it forth</a> as an insight.</p>
</blockquote>
<p>It seems that Clay has drawn an interpretation from my communications where I would attribute the process primarily, or even exclusively, to 3.x, thereby grandfathering 2.x into some who-knows-what process. If he read it this way, it is fair to say that others might, too.</p>
<p>I feel <em>quite the opposite</em>, in fact.</p>
<!--more-->
<p>I think it makes a lot of sense to codify and ease the ebb and flow of 2.x, and that the documented &#8220;2009 process&#8221; isn&#8217;t all that far off once we get past impressions of who&#8217;s telling whom what to do. There are some bits to figure out about roles (QA? RM? MT? PC? PM?) and how work gets done with attentions being spread but, at 10,000 feet, it seems largely representative of the problem we need to solve for 2.x: measured evolution of a mature product with regularly released versions (including 2.8, 2.9, and 2.10, IMHO).</p>
<p>I would say that it is much less clear how it applies to Sakai 3 at this point.</p>
<p>What I&#8217;ve struggled with most is &#8220;bootstrapping&#8221; Sakai 3. That is, understanding the very first step in a process that assumes projects that are folded into a product &#8211; that there is some shape, texture, and flow that must not be disrupted. Essentially all of the language is built around &#8220;the release&#8221; or &#8220;the product&#8221;, and our mental models draw from our experience to date.</p>
<p>Sakai 3, as a whole, entering the Incubation phase of such a process is perplexing to me. I&#8217;m confused as to whether we intend to refine it into a super-process or possibly change it to meet emerging needs to the disservice of existing ones.</p>
<p>It is especially perplexing because it is absolutely clear that we have <em>two familial products</em> at different generational stages (one adult and one embryonic). There is presently no product into which the &#8220;Sakai 3 project&#8221; would be folded. This is a bootstrap project for a bootstrap product &#8211; a recursive paradox that unravels the whole process unless we find the base case.</p>
<p>I suppose I might say: is it a chicken or is it an egg? When will we know and how?</p>
<p>More rhetorical questions: are we planning to have a super-release for the whole ball of wax? Are the product and release &#8220;Sakai&#8221;, or are the products and releases Sakai 2.x and 3.x?</p>
<p>In more literal terms, where do we draw a line around the first bit of work that makes up a release for Sakai 3 (not necessarily enterprise-grade)? When do we say that Sakai 3 has made it to the end of the Product Development phase? What is the first project that is decidedly not &#8220;in the core&#8221;, to be set upon an Incubation path for inclusion within that release? Who decides?</p>
<p>We should also note that there are only three really interesting values in cardinality: zero, one, and infinity. Moving from one to two is very hard precisely because it&#8217;s the first time you have to account for infinity.</p>
<p>Maybe these things don&#8217;t matter. Maybe we just need to hammer along and release some software and the rest will become obvious. I can&#8217;t argue with charging forward and putting pen to paper, so to speak. No matter what, I certainly don&#8217;t want these philosophical dronings to dissuade people from the hard work they <em>sign up to do</em>.</p>
<p>I believe in open source, plainly and wholly.</p>
<hr />
<p>Let me be clear about my ultimate point from part one:</p>
<p>The Sakai community has reached a generational moment. We are moving from one product to two. We are not moving from one community to two. We are not moving from one Foundation to two. This is bringing a pile of organizational challenges.</p>
<p>My opinion is that we need to accept this, be clear about our intentions and commitments to our 2.x adopters and friends, make room for the two streams to progress in their own natural space and time, and try to understand what a bountiful ecosystem of Sakai projects might look like. It just so happens that our httpd2 looks to be numbered 3. -NB</p></content>
</entry>
<entry>
<title>Sakai Futures</title>
<link href="http://botimer.net/posts/2010/03/13/sakai-futures"/>
<updated>2010-03-13T21:10:32-05:00</updated>
<id>http://botimer.net/posts/2010/03/13/sakai-futures</id>
<content type="html"><p>Something has been gnawing at me. Here is my initial assessment:</p>
<p>There are some gradual but quite significant changes coming to how the Sakai community works and releases software, and these changes are quite unclear.</p>
<p>I don&#8217;t think this is controversial or surprising. I do think that there are lots of ideas, fears, and desires for how this might work out. We are definitely having organizational growing pains.</p>
<p>Here is what I see as already present:</p>
<ul>
<li>Two new groups: the Product Council and Maintenance Team</li>
<li>Release Management emerging as possibly distinct from QA</li>
<li>A relatively new and evolving Product Manager role</li>
<li>Two streams of software (2.x and 3.x)</li>
<li>Tension about how each of these roles shapes either stream</li>
</ul>
<p>Where I&#8217;m going with this is that three of us on the PC share a homework item of looking at what would be helpful support of our Incubation and Product Development phases. However, I have been confounded about the very essence of this assignment given the above list. See the email below for specifics &#8211; it also frames this post as a written reflection.</p>
<p>So, let me reflect.</p>
<!--more-->
<p>It has long been obvious to me that &#8220;Sakai&#8221; has no simple definition. I posted this to the user list in Jan &#8216;08:</p>
<blockquote>
<p>I suppose I&#8217;m also trying to mention that &#8220;Sakai&#8221; is at least four things to us:</p>
<ol>
<li>A collaboration / learning system</li>
<li>A framework for building collaborative tools</li>
<li>A community of schools, affiliates, and generally cool/brilliant people</li>
<li>A foundation of visionaries to steward 1-3</li>
</ol>
</blockquote>
<p>It must not have been too far off, as Michael said something nearly identical in his <a href='http://www.youtube.com/watch?v=TjIXGFQJ4SI'>overview video</a> about a month later.</p>
<p>This sets the stage for our present unease. We are definitively not evolving Sakai 2.x into Sakai 3.x. This invalidates points number one and two, and the perturbation becomes obvious to me:</p>
<ul>
<li>We have two product lines. Period.</li>
<li>Everything is being swept up in some imperfect Unified Sakai Theory that does not account for this and its effects.</li>
</ul>
<p>We have two products and the rest overlaps by some yet unknown amount. If you like numbers, that means we have two #1&#8217;s, two #2&#8217;s, a blurry and dynamic #3, and a shared #4. We also hope for a #5: a compelling hybrid/migration mode or, more generally, a way that our products can work together.</p>
<p>The <em>problem</em>:</p>
<p><em><strong>We are treating the transition as an upgrade and picking up bad behaviors because of it.</strong></em></p>
<p>So, to my perspective on reality:</p>
<p>We must accept that open source &#8220;fans out&#8221; with maturity. Adopters will be on old stuff, whether by choice or circumstance. Any attempts to push someone when they don&#8217;t want to or can&#8217;t move defeat the spirit and are bound to build resentment.</p>
<p>No one can declare end of life for 2.x. Contributors can reallocate. Adopters can migrate. People and groups will jump on 3.x when they are compelled to do so, whether by attractive features, institutional mission, or unmet needs (as by 2.x or otherwise).</p>
<p>The two products are at very different stages of the life cycle and have very different needs. Our Product Development Process has been conceived in terms of a mature, single product, into which projects are folded and from which outmoded pieces are removed over time. This model does not address the needs of a brand new, parallel core or when or if that core becomes a product into which projects are folded. Trying to solve the problem of how 3.x fits into and changes a single model ignores too many realities for me to be comfortable.</p>
<p>And, finally, parts of what I see as a <em>solution</em>:</p>
<ul>
<li>Make a <strong>clear decision</strong> and statement <strong>about 2.8</strong>, including Foundation and institutional <strong>priorities and commitments</strong>, rather than the fuzziness that has prevailed.</li>
<li>Let the <strong>2.x conversation</strong> and decisions happen <strong>out in the community</strong>. If centralized resources are planned to be shifted, clarify them and allow <strong>community members</strong> to <strong>step up</strong> to these gaps <strong>or adjust their expectations</strong> accordingly.</li>
<li>Remember that open source software far exceeds the reach and lifespan generally anticipated. <strong>Adopters</strong> can <strong>persist</strong> long after contributors move on and appreciate clarity about changing levels of support. <strong>Adopters appreciate clear opportunities and needs</strong> for contribution. <strong>Adopters do not appreciate threats</strong> of their contributions being unwelcome &#8211; <strong>they <em>will</em> fork or leave.</strong></li>
<li>Reach consensus and clear statements on the <strong>charges of the various teams</strong>, explicitly treating 2.x and 3.x. Seek announced, <strong>single points of contact</strong> (named dropbox lists or people), if not leads, so concerns can be delivered and addressed expediently.</li>
<li>Revise the <strong>Product Development Process</strong> to account for two parallel products and understood roles. If it is tuned to how we see <strong>2.x, leave it be</strong>. If not, fix it. <strong>Write a new one for 3.x</strong>. Do not shoe-horn one into the other because we have years before they have the same shape and <strong>they need different support now</strong>.</li>
<li>Recognize that all of these <strong>teams</strong> (and the Foundation staff and Board) <strong>overlap considerably</strong> (especially over time), primarily because <strong>people want to do work</strong> to move the community forward and join up eagerly. Try to hear opinions, suggestions, and objections as <strong>ideas from colleagues</strong>, not as formal positions of some authority body.</li>
<li>Consider the new definition of &#8220;Sakai&#8221;. <strong>Disentangle the overlapping pieces</strong> and figure out the highest level organizational summary:</li>
</ul>
<p><strong><em>What are the &#8220;you need to think of&#8221; items that go in the next overview video?</em></strong> -NB</p>
<hr />
<p>I should also mention that the timing of this reflection is unfortunate. It has absolutely nothing to do with Michael&#8217;s departure; only the 2.7/2.8 process and Product Council homework. Michael has always entertained my rambling exceptionally graciously and usually informed me of something I misunderstood or took too emotionally. Were he to be continuing with us, I&#8217;m sure he would do the same here. I genuinely wish him the best on his new opportunities. Remember to set your alarm clock forward an hour for Monday!</p>
<pre><code>From: Noah Botimer &lt;...&gt;
Date: March 10, 2010 10:08:13 PM GMT-05:00
To: Nate Angell &lt;...&gt;
Cc: Michael Feldstein &lt;...&gt;
Subject: Re: SPC homework
I&#39;m trying desperately to protect the remainder of this week. I think a time
next week is best for me and will give a chance to reflect some.Since I just
chatted with Nate, I&#39;ll mention this for Michael&#39;s benefit:
I&#39;m having a bit of trouble making meaning of the action item. I&#39;m suffering
from a blank page / flux / bootstrapping problem, where everything we have
structured is from a different, simpler, more understood era. This makes the
bullet point very confusing to me now.
I&#39;ve pieced together some skeletal thoughts but they are young. I need some
processing time to hold even one possible future in my mind in sufficient
clarity.
I think this rephrased question is a good one to consider, but I&#39;m not ready to
do it in congregation.
This is all, of course, unless there is a clear definition that I can
understand and get with.
Thanks,
-Noah
On Mar 10, 2010, at 9:23 PM, Nate Angell wrote:
the 3 of us should set up a call to discuss our SPC homework, which is defined
in the SPC etherpad as:
&quot;Moving from incubation to product development&quot;
but which I&#39;m maybe more willing to view as something more like:
&quot;what form should the SPC&#39;s stewardship of Sakai 3 releases take?&quot;
do you guys have time this Thu/Fri?
I&#39;m pretty free Thu. On Fri I have stuff scheduled 12:30-2 and 3-5 ET.</code></pre></content>
</entry>
<entry>
<title>Dirt & Grass</title>
<link href="http://botimer.net/posts/2010/01/12/dirt-grass"/>
<updated>2010-01-12T17:35:32-05:00</updated>
<id>http://botimer.net/posts/2010/01/12/dirt-grass</id>
<content type="html"><p>Dirt and grass are beautiful. Rocks, twigs, and bugs, too. Sometimes this world recognizes only majestic cathedrals, all too happy to look past the essence of life.</p>
<p>This is a corollary to something I&#8217;ve been struggling to articulate lately. Open source has made it; and because it has made it, people want to make it big. This is fine. I don&#8217;t have a problem with big companies, big projects, big money, and the rest.</p>
<p>Where I get uneasy is when people cultivate the sense that the fundamental distinction of free software is just access to source code, or the even simpler view of having no licensing cost.</p>
<p>No, this isn&#8217;t what really gets me.</p>
<!--more-->
<p>What really gets me is when we propagate the notion that open source software is just the next piece of some empire-building puzzle &#8211; that the value lies chiefly in the different market pressures that open access and licensing can add to the corporate toolkit.</p>
<p>Sure, these techniques can level out markets or even carve out new ones. Sure, there are areas of innovation that require very large investments, particularly where new hardware or regulations are involved (shaking up the mobile industry, for example). Sure, big companies can deliver on a social mission.</p>
<p>But it&#8217;s harmful to assume that &#8220;open&#8221; is just the newest armor for the same old machine, on its same old world domination path.</p>
<p>We miss the point when we forget that access has always been a key component of open source software and communities.</p>
<p>When I say access, I mean the access of the hobbyist or student or small shop to the tools of creation. Through projects that have essentially no &#8220;business model&#8221;, millions of amateurs (only in the sense that they do something else for a living) are able to create software, art, and more, all with tools that paid professionals use. The most mature case is that of programming tools (languages, compilers, servers, IDEs, etc.) where the freely available tools are the exclusive kit of many pros.</p>
<p>The impact this has had is enormous. If you have the itch, you can build things. Free tools aren&#8217;t a secret anymore. And they hold their own with the commercial tools.</p>
<p>But to get to my point&#8230;</p>
<p>It&#8217;s perfectly alright to be a hobbyist. It&#8217;s perfectly alright to make and share software that doesn&#8217;t aim to dominate some market &#8211; or even ever be polished.</p>
<p>So much of our technology world runs on dirt and grass &#8211; the stuff on the ground level. The driver that reads your keyboard, the TCP/IP stack in a dozen routers between me and you, the library that talks to your IM service.</p>
<p>The open varieties of these and many more are beautiful. They don&#8217;t have to be big or marketable to be important and interesting.</p>
<p>It&#8217;s far too easy to get caught up in the gears when we talk about who&#8217;s going to buy up the next open source database or who&#8217;s the most delectable open source target in the groupware or telephony arenas.</p>
<p>One of my most cherished aspects of open software is that there is room; room for everyone, room for multiple projects that do the same thing, room for innovation, room for profit, room for hobby, room for learning. The creative energy is not bound by customers, design training, or anything else if you don&#8217;t want. You don&#8217;t have to aspire to beating anyone. This doesn&#8217;t mean you can&#8217;t be a fine craftsman, either, but that the field is open in all directions.</p>
<p>When we talk only of building skyward, we hurt the sense of wonder that is tinkering and the camaraderie that is hacking together in the bazaar. We forget that we have limitless space outward &#8211; where there&#8217;s a lot of beautiful dirt and grass to play on. -NB</p></content>
</entry>
<entry>
<title>Tweak working copy POMs without checking them in</title>
<link href="http://botimer.net/posts/2009/08/06/tweak-working-copy-poms-without-checking-them-in"/>
<updated>2009-08-06T13:04:15-04:00</updated>
<id>http://botimer.net/posts/2009/08/06/tweak-working-copy-poms-without-checking-them-in</id>
<content type="html"><p>A handy little snippet&#8230; This is something I&#8217;ve used a few times when I&#8217;m hacking in a working copy and need to change POMs for some local reason (usually versioning) but can&#8217;t check them back in modified. I&#8217;d like to tweak the POMs, work on other stuff, build/test, check everything <em>but</em> the POMs in, rinse and repeat. Here&#8217;s a workaround:</p>
<div class='highlight'><pre><code class='bash'><span class='nv'>$ </span>svn st | grep <span class='s1'>&#39;^M&#39;</span> | grep <span class='o'>[</span> <span class='se'>\/</span><span class='o'>]</span>pom.xml<span class='s1'>&#39; | sed &#39;</span>s/^.......//<span class='s1'>&#39; | \</span>
<span class='s1'> xargs -I{} svn diff {} &gt; pom.patch</span>
<span class='s1'>$ svn st | grep &#39;</span>^M<span class='s1'>&#39; | grep [ \/]pom.xml&#39;</span> | sed <span class='s1'>&#39;s/^.......//&#39;</span> | <span class='se'>\</span>
xargs -I<span class='o'>{}</span> svn revert <span class='o'>{}</span>
<span class='nv'>$ </span>svn ci -m <span class='s1'>&#39;whatever&#39;</span>
<span class='nv'>$ </span>patch -p0 &lt; pom.patch
</code></pre>
</div>
<p>Happy hacking. -NB</p></content>
</entry>
<entry>
<title>Graceful AJAX degradation / progressive enhancement</title>
<link href="http://botimer.net/posts/2009/08/04/graceful-ajax-degradation-progressive-enhancement"/>
<updated>2009-08-04T21:40:08-04:00</updated>
<id>http://botimer.net/posts/2009/08/04/graceful-ajax-degradation-progressive-enhancement</id>
<content type="html"><p>In one of those beautifully lucky moments, I found an article I was wishing I had kept track of last night. I was chatting with Chuck and Matt a week ago about the pervasion of script in web pages these days and how hardly anything degrades reasonably. For years, I refused script entirely but, now, I have fallen victim to the trend. &#8220;Everybody has script enabled anyway. Mashups are inevitable. They want AJAX. Just script it.&#8221; That doesn&#8217;t mean that I don&#8217;t still want to use <a href='http://elinks.or.cz/'>ELinks</a> deep down.</p>
<p>So, I read one of those articles a while back where you feel a little bump and realize someone has lighted the path &#8211; with the best kind of light, showing the unnoticed obviousness. It&#8217;s like observing that HTTP actually works pretty well when you use it as carefully built, ten years after working around it furiously. It&#8217;s like noticing that really ugly <em>(well structured, unstyled)</em> web pages take the most beautiful CSS easily.</p>
<p>But I lost the article. And my recollection didn&#8217;t do it justice or support the point that you can script the snot out of a page without breaking Lynx. Then I read the Thread on Safari support in Sakai, mentioning <a href='http://developer.yahoo.com/yui/articles/gbs/'>Yahoo! Graded Browser Support</a>. And something snapped; I thought this may have been where I found the article&#8230;</p>
<p>The article was on <strong><a href='http://domscripting.com/blog/display/41'><em>Hijax</em></a></strong>.</p>
<p>This is a cute name Jeremy Keith came up with for an approach to adding AJAX magic without breaking the basic function of web pages. It&#8217;s more or less a philosophical first principle of modern web development. You should read this article daily and soak it in like the <a href='http://www.canonical.org/~kragen/tao-of-programming.html'>Tao</a>. -NB</p></content>
</entry>
<entry>
<title>Sakai JSONP callbacks in Entity Broker</title>
<link href="http://botimer.net/posts/2009/07/25/sakai-jsonp-callbacks-in-entity-broker"/>
<updated>2009-07-25T23:27:18-04:00</updated>
<id>http://botimer.net/posts/2009/07/25/sakai-jsonp-callbacks-in-entity-broker</id>
<content type="html"><p>So, I&#8217;m going to try to get back in the habit. I owe Ray two posts, so this is a warmup. Anyway&#8230;</p>
<p>I&#8217;ve just added JSONP callback support to Entity Broker. This allows you to make a data feed that can be used for mashups. The normal JSON feeds don&#8217;t allow for this because, when the script tag is added, the object literal just drops into the ether &#8211; it needs to be handed off to a function. Plenty of others are using this technique now and it&#8217;s well supported in things like jQuery; just search around.</p>
<p>The important bit is that you can either use the default callback function (jsonEntityFeed) or specify your own. You just craft a URL to the entity and optionally give a parameter. For example: <code>
http://sakai/direct/entity-prefix/some-id.jsonp
http://sakai/direct/entity-prefix/some-id.jsonp?jsonCallback=myCustomCallback</code></p>
<p>If you are using jQuery, you can use the getJSON method to call an inline, unnamed callback like this: <code>
$.getJSON(&#39;http://sakai/direct/entity-prefix/some-id.jsonp?jsonCallback=?&#39;,
function(data) {
alert(data.whatever.element[0].here);
});
</code></p>
<p>It&#8217;s all pretty straightforward and tracked in <a href='http://jira.sakaiproject.org/browse/SAK-16757'>SAK-16757</a>. I imagine that this will get tagged at some point, but it&#8217;s just in trunk for now. Happy Hacking! -NB</p></content>
</entry>
<entry>
<title>Aptana + Vista + PHP + Oracle XE == Victory!</title>
<link href="http://botimer.net/posts/2008/11/23/aptana-vista-php-oracle-xe-victory"/>
<updated>2008-11-23T16:59:06-05:00</updated>
<id>http://botimer.net/posts/2008/11/23/aptana-vista-php-oracle-xe-victory</id>
<content type="html"><p>So, I&#8217;m doing some development against Oracle with PHP and really wanted <a href='http://www.oracle.com/technology/products/database/xe/index.html'>Express Edition</a> on a local machine to be able to hack without a lot of messing around (my other Oracle instances are behind VPNs, etc.) I&#8217;ve also been thinking about hooking my desktop back up for one of those environment changes that results in a productivity boost. A third factor is that I want to do this development in <a href='http://aptana.com/studio'>Aptana</a> because, well, it&#8217;s just plain sweet. Easily said&#8230;</p>
<!--more-->
<p>&#8230;and pretty easily done once the steps are laid out.</p>
<p>The Aptana Studio and XE installs were both cake. I love that, however it has come about, &#8220;just works&#8221; is finally taking hold across all three big platforms. I also highly recommend <a href='http://www.oracle.com/technology/products/database/sql_developer/index.html'>SQL Developer</a> (so far, anyway.) For anyone who&#8217;s worked extensively with SQL Server 2000, this thing feels like Query Analyzer, and I couldn&#8217;t be happier.</p>
<p>So, what&#8217;s the problem?</p>
<p>Well, Aptana has that very slick integrated PHP instance, and I don&#8217;t plan to do anything beyond that&#8230; but it doesn&#8217;t ship with the Oracle extensions. After enough poking around, I was pleased to find that the extensions are stored in one of the Aptana plugin directories, and the php.ini files are there, too. This just leaves getting the DLLs and dropping/enabling them.</p>
<p>To get to the goods, assuming Aptana and XE are installed:</p>
<ol>
<li>Download <a href='http://pecl4win.php.net/ext.php/php_oci8.dll'>php_oci8.dll</a> and <a href='http://pecl4win.php.net/ext.php/php_pdo_oci.dll'>php_pdo_oci.dll</a> from <a href='http://pecl4win.php.net/index.php'>PECL4WIN</a>. (Aptana 1.2 ships PHP 5.2.5, so grab 5.2)</li>
<li>Drop these into <code>...Aptana Studio\plugins\com.aptana.ide.php.interpreters.win32.x86_5.3.14.v20081007\resources\php5\ext</code></li>
<li>Add your extensions to the php.ini files in <code>...resources\php_xdebug</code> and <code>...resources\php_zend_debugger</code></li>
</ol>
<p>That&#8217;s it. Now you can connect to Oracle instances. I, personally, prefer PDO, so included the driver in the directions. You wouldn&#8217;t need this if you were doing raw OCI. For a cheatsheet, the connection looks like this: <code>$dbh = new PDO(&quot;oci://host/SID&quot;, &quot;user&quot;, &quot;pass&quot;);</code> With a local XE, the default would be <code>//localhost/xe</code>. I hope this saves someone the couple of hours I spent messing around. -NB</p></content>
</entry>
<entry>
<title>Adium logs make it very slow</title>
<link href="http://botimer.net/posts/2008/10/25/adium-logs-make-it-very-slow"/>
<updated>2008-10-25T18:31:59-04:00</updated>
<id>http://botimer.net/posts/2008/10/25/adium-logs-make-it-very-slow</id>
<content type="html"><p>I was seeing somewhere between 30 seconds and a minute to get to the keychain login, and another 30 seconds to bring up a contact list. Clean out the logs, relaunch &#8211; about 4 seconds for each.</p>
<p>The logs live in <code>~/Library/Application Support/Adium 2.0/Users/Default</code>. Remove or archive them and watch it fly. -NB</p></content>
</entry>
<entry>
<title>PHP json_encode is quirky</title>
<link href="http://botimer.net/posts/2008/10/02/php-json_encode-is-quirky"/>
<updated>2008-10-02T19:14:52-04:00</updated>
<id>http://botimer.net/posts/2008/10/02/php-json_encode-is-quirky</id>
<content type="html"><p>So, amidst an interesting fight with CakePHP, I was fortunate enough to spot a quirk in <a href='http://php.net/json_encode'><code>json_encode</code></a> when passing arrays. If you have a typical ordinal array, life is good. If you have a typical associative array, life is good. The quirk is in how PHP decides what you have.</p>
<p><em>We define &#8220;life is good&#8221; here as: you pass something without meaningful keys, you get an array; you pass something with meaningful keys, you get an object.</em></p>
<p>When you have a regular old array of values (or rows of a result set, in my case) and you filter it with, e.g., <a href='http://php.net/array_filter'><code>array_filter</code></a>, you can end up with holes in the ordinal numbering. This delights <a href='http://php.net/json_encode'><code>json_encode</code></a>, which displays its exceptional, &#8220;just works&#8221; intelligence, giving you an object full of numeric indexes pointing at what you thought would be unnamed items in an array. In some cases, this makes no difference but, in some, it can be a big problem.</p>
<p>Fortunately, I&#8217;m generally in tune enough with the stylings of PHP that I went straight to trying <a href='http://php.net/array_values'><code>array_values</code></a> &#8211; and now, all is right with the world. Just wrap any <a href='http://php.net/array_filter'><code>array_filter</code></a> calls with <a href='http://php.net/array_values'><code>array_values</code></a> if you plan to turn the goods into JSON. -NB</p></content>
</entry>
<entry>
<title>Stupid Eclipse trick — Dynamic Tracing with Conditional Breakpoints</title>
<link href="http://botimer.net/posts/2008/07/21/stupid-eclipse-trick-dynamic-tracing-with-conditional-breakpoints"/>
<updated>2008-07-21T22:33:34-04:00</updated>
<id>http://botimer.net/posts/2008/07/21/stupid-eclipse-trick-dynamic-tracing-with-conditional-breakpoints</id>
<content type="html"><p>So I&#8217;m debugging a chain of Sakai helpers and I ask myself&#8230;</p>
<p>&#8220;Self, is there an easy way to use the Eclipse debugger to fake some runtime/dynamic tracing?&#8221;</p>
<p>And the answer is a resounding &#8220;yes!&#8221;</p>
<p>If you set up conditional breakpoints at the places where you want those debug statements and inject some great println justice, magic is made. Eclipse is also nice enough to allow blocks of code or expressions. This means you can use just the println like an expression if you don&#8217;t care about the breaks, or make a println and a return if you do. See the screenshot for a somewhat nonsensical example.</p>
<p>All of this can be yours with a single startup of Tomcat and a tail -f. If you&#8217;re lucky enough to be hacking something in *-tool, life is even better. Save, mvn install sakai:deploy, relaunch your debug scenario, and keep an eye on that terminal. Somebody who knows what they&#8217;re doing with Eclipse could probably tell you how to even target an IDE view &#8211; catalina.out is fine for me, though.</p>
<p>&#8230;And for quick reference, you can right click on a breakpoint in the left-hand trough and select Breakpoint properties or use the Breakpoints view. On a Mac, Cmd-Shift-B toggles a breakpoint on a line, but getting to the properties with the keyboard is a pain (Opt-Shift-Q, B). In there, a natural-feeling sequence of arrows and Opt-Enter or a right click opens the dialog. Getting back to the editor is easier: F12.</p>
<p><img alt='Conditional Breakpoint Properties' src='/images/2008/07/cond-break.png' /></p>
<p>Happy hacking! -NB</p></content>
</entry>
<entry>
<title>Flash 9.0.16.0 does NOT play nicely with local storage</title>
<link href="http://botimer.net/posts/2008/04/03/flash-90160-does-not-play-nicely-with-local-storage"/>
<updated>2008-04-03T18:46:55-04:00</updated>
<id>http://botimer.net/posts/2008/04/03/flash-90160-does-not-play-nicely-with-local-storage</id>
<content type="html"><p>OK. So I thought I wasn&#8217;t crazy. I reviewed my code. I tested Dojo versions. I isolated conditions. I followed dead-ends in desperation.</p>
<p>And then the problem goes away. I can&#8217;t get SharedObject storage to break anywhere (and I&#8217;m still not sure why it was broken, then magically fixed &#8211; I suspect an update to the remote machine I was using, since the cluster is monitored/managed).</p>
<p>And then, today, we replicate it in the one place in the world we really care about, and scrape the Flash version: <strong>9.0.16.0</strong>.</p>
<p>So I check if Adobe is benevolent enough to lend a hand (installable old version) to poor developers who are getting hosed. They give a nice package, so I was thrilled.</p>
<p>Then I fight with the installers/uninstallers for 6 versions until I find a golden nugget: <strong>uninstall_flash_player.exe</strong> <strong>/clean</strong> takes care of the registry entry that was stopping anything but the latest version (as it had already been installed) from running, though they install with &#8220;no problems&#8221;.</p>
<p>And, with undue buildup, the point of this post:</p>
<p><em>Flash 9.0.16.0 does NOT work with Dojo Storage 1.1, period.</em></p>
<p>The good news is that all newer versions do, and 9.16 is coming up on two full years old with 3 major updates since. Time to beg for this lab to be updated and get on with better problems &#8211; like IE&#8217;s eternal lifetimes of objects created in iframes and its derivative memory leaks. -NB</p></content>
</entry>
<entry>
<title>37signals, entropy, and Sakai</title>
<link href="http://botimer.net/posts/2008/03/29/37signals-entropy-and-sakai"/>
<updated>2008-03-29T16:24:58-04:00</updated>
<id>http://botimer.net/posts/2008/03/29/37signals-entropy-and-sakai</id>
<content type="html"><p>Nathan Pearson, Sakai&#8217;s lead for the UX Initiative just forwarded a <a href='http://www.37signals.com/svn/posts/934-ira-glass-entropy-and-software-development'>post from the 37signals blog</a>. It&#8217;s referencing a video interview with Ira Glass, where he talks about being a fierce editor and moderator, cutting more tape than you roll. The post extends the interview&#8217;s mention of entropy as the disorganizing, enemy force to software.</p>
<p>In principle, I agree: entropy tends to bloat, delay, and complicate software. But the read-only experience of listener/viewer in storytelling is a bit different from daily use software. The post reveals some of the company&#8217;s &#8220;less is <strike>more</strike> all&#8221; philosophy.</p>
<!--more-->
<p>I give them credit for about half of the simplification and clarity we&#8217;re seeing on the web in general. All told, Rails is pretty nice, and they don&#8217;t get enough credit there. Putting the spoils of the past 5 years of practice evolution in front of the new generation of tinkerers is a very good thing. Specific to their apps, I love that they push products that do something very small, very well.</p>
<p>I believe that being a fierce gatekeeper, <a href='http://c2.com/xp/RefactorMercilessly.html'>refactoring mercilessly</a>, and outright trashing old/bad stuff is paramount to evolution of a system. But I also believe that 37signals has had a little too much Kool-Aid. When you push practice into philosophy and eventually into religion, your inertia can get downright indomitable.</p>
<p>A case in point from their flagship, <a href='http://basecamphq.com/'>Basecamp</a>&#8230;</p>
<p>On the To-Do dashboard, each member across projects is listed in a drop-down, so you can see outstanding items assigned. Then there is an entry for &#8220;Anyone&#8221;. But it really means &#8220;No One&#8221; &#8211; items able to be picked up, but that no one has. There is no way to see &#8220;Everyone&#8221; (all undone items), so I asked them for it directly.</p>
<p>The response could have come from Cupertino. It&#8217;s good for you like this, eat it and be happy. This was the one feature I really needed, and they wouldn&#8217;t consider it. It was enough to kill the usefulness and curb my enthusiasm, to be sure. I could adopt their version of minimalism or move on with mine intact.</p>
<p>So, in response to Matt&#8217;s post&#8230; Vigilance against miscellany is critical, but it can&#8217;t become a fortress. I think we do well to say &#8220;no&#8221; a couple of times while thinking &#8220;maybe&#8221;. If it keeps coming up, &#8220;maybe&#8221; turns to &#8220;probably&#8221;, and the scale tips. <a href='http://c2.com/cgi/wiki?YouArentGonnaNeedIt'>YAGNI</a> is great until someone DOES need it.</p>
<p>That progression depends on being the &#8220;ruthless killer&#8221; without becoming a zealot or a lunatic. We might know better than the user most of the time, but we should never be so arrogant as to assume it always and declare it so without consideration.</p>
<p>In the complex realm where Sakai lives, we should always be careful when giving people &#8220;a better way&#8221;. It&#8217;s possible to deliver obvious clarity about as easily as frustration and obfuscation in something so dear as the ability to educate and learn, all to uphold the &#8220;simple and better&#8221; philosophy. -NB</p></content>
</entry>
<entry>
<title>“These are the data.”</title>
<link href="http://botimer.net/posts/2008/03/29/these-are-the-data"/>
<updated>2008-03-29T13:19:36-04:00</updated>
<id>http://botimer.net/posts/2008/03/29/these-are-the-data</id>
<content type="html"><p>Those of you who attended the Sakai conference in Atlanta might recognize that quote. It&#8217;s attributable to <a href='http://www.law.columbia.edu/fac/Eben_Moglen'>Eben Moglen</a> (<a href='http://www.softwarefreedom.org/'>SFLC</a>), uttered during the &#8220;lunch discussion&#8221; with <a href='http://investor.blackboard.com/phoenix.zhtml?c=177018&amp;dc=177018&amp;p=irol-govBio&amp;ID=117644'>Matthew Small</a> (<a href='http://www.blackboard.com/'>Blackboard</a>). &#8220;These are the data,&#8221; is a quote I&#8217;ve used countless times in the past 16 months. I&#8217;ll explain in a moment.</p>
<p>So, fast-forward, and we see posts from <a href='http://www.mfeldstein.com/'>Michael Feldstein</a> on the <a href='http://mfeldstein.com/all-44-blackboard-patent-claims-invalidated-by-uspto/'>initial invalidation of all 44 claims</a> and <a href='http://mfeldstein.com/blackboard-fails-statistics-101/'>Blackboard&#8217;s response</a>. The latter post (and Bb&#8217;s statement) is specifically about the percentages of patents that are upheld, invalidated, or altered under reexamination. This is the exact context of Dr. Moglen&#8217;s original quote. He presented some hard figures and summed up with those ringing words.</p>
<p>I&#8217;m not going to beat up on Blackboard &#8211; they&#8217;re looking at the rules and playing the game. I completely disagree with software patents, but they&#8217;re still allowed in the rulebook, so I can&#8217;t blame them for filing before someone else did. Indeed, the applications were filed in 1999 and 2000. It was a different frontier with respect to the Internet, Free Software, and software patents then (see LZW, Unisys, SCO).</p>
<p>Personally, I thought it was pretty bad karma to file a press release of a patent and lawsuit on the same day, turning the red lights in people&#8217;s minds into white hot light on the detailed claims. But then again, I&#8217;m not on their strategy team. It&#8217;s just too bad that we&#8217;re tying up all the energy, time, and tax dollars, bickering over how we play in the same edusandbox and who gets how big a slice.</p>
<p>Anyway, there are 44 patent claims. Of the 10 issues set forth in the reexamination request, the rejections of 6 were adopted with modification, those of one without modification, and those of 3 were not adopted. The union of all adopted rejections deems that all of the claims set forth in United States Patent 6,988,138 are unpatentable. These are the data. -NB</p>
<p><em>You can download the audio of the lunch session from the Sakai <a href='http://confluence.sakaiproject.org/confluence/x/doU'>Confluence page</a>. There is also a <a href='http://www.immagic.com/eLibrary/GENERAL/IMM/I061207F.pdf'>transcript</a> from Jim Farmer.</em></p></content>
</entry>
<entry>
<title>Dojo Storage — A timely treat</title>
<link href="http://botimer.net/posts/2008/03/17/dojo-storage-a-timely-treat"/>
<updated>2008-03-17T20:16:25-04:00</updated>
<id>http://botimer.net/posts/2008/03/17/dojo-storage-a-timely-treat</id>
<content type="html"><p>Every so often, something goes your way, ya know? So, last Thursday, I posted to sakai-dev asking whether I should use dojox.storage or borrow some stuff from rWiki:</p>
<p><a href='http://www.nabble.com/Flash-storage----dojo.storage-or-homebrew--td16033853.html'>http://www.nabble.com/Flash-storage&#8212;-dojo.storage-or-homebrew&#8211;td16033853.html</a></p>
<p>It also just so happens that the main guy behind dojox.storage, Brad Neuberg, apparently felt like being a kind soul, did a ton of refactoring work, and bundled up the smallest, most practical package possible for my immediate need and posted it, not three hours later:</p>
<p><a href='http://codinginparadise.org/weblog/2008/03/easy-download-of-dojo-storage-for.html'>http://codinginparadise.org/weblog/2008/03/easy-download-of-dojo-storage-for.html</a></p>
<p>So far, it&#8217;s really easy to use (about 15 total lines, and tastes like HashMap) and moves between browsers very well. I&#8217;m only having one issue on IE. It&#8217;s choking on line 52 of some unnamed file that a little Googling hints is related to the Flash plugin. (For the curious, it&#8217;s an Object Required error in <strong>flash</strong>removeCallback()&#8230;)</p>
<p>I guess this can happen with different ways of including SWF files &#8211; the confusing bit is that one thread says use the HTML embedding, rather than JavaScript, and another says to use JavaScript rather than HTML. The tricky part is that both seemed to fix it.</p>
<p>So, I&#8217;m going to test on a machine that doesn&#8217;t have script debugging turned on and hope for the best. If it doesn&#8217;t grumble too badly, I&#8217;ll poke around for a fix in my spare time.</p>
<p>Either way &#8211; Cheers, Brad! You really made my day. -NB</p></content>
</entry>
<entry>
<title>Personal artifacts vs. official purposes</title>
<link href="http://botimer.net/posts/2008/03/09/personal-artifacts-vs-official-purposes"/>
<updated>2008-03-09T18:15:29-04:00</updated>
<id>http://botimer.net/posts/2008/03/09/personal-artifacts-vs-official-purposes</id>
<content type="html"><p>How long should personal artifacts submitted in some official capacity be viewable (by learner or official) in their original state? How we can let learners really own their materials?</p>
<p>We&#8217;ve approached this problem to date by ignoring it. We make an explicit step: at some point, we force to student to say &#8221;I&#8217;m done with this thing and it&#8217;s yours forever&#8221;, and lock it. Or we just let it be malleable forever.</p>
<p>This is directly analogous to how, in logic, math, and computer science, we sometimes restrict input to maintain a lower conceptual threshold. Persistence and security of artifacts is a really hard problem, so we make sure it can&#8217;t destabilize the easier ones we&#8217;re solving, by distilling a complex grey gradient into blacks and whites.</p>
<p>It&#8217;s a perfectly valid way to get a foundation, but it&#8217;s time to move into our version of second-order logic &#8211; versioned, purpose-stamped, multi-threaded artifacts &#8211; to address our complex realities. We can&#8217;t lie to ourselves and believe that hard-locking a student&#8217;s file forever is practical in a personal learning experience.</p>
<p>The specific thought that triggered this post was that the notion of estimated secure lifetime in cryptography is relevant to visible/storage lifetime in ePortfolios. However, this post also includes thoughts on the concepts of fluid artifacts being copied and made concrete at submission time, and how this relates to our existing web/email usage patterns.</p>
<p>Lots more below the break.</p>
<!--more-->
<h3 id='useful_lifetime'>Useful Lifetime</h3>
<p>In cryptography, there is a notion that the encryption should be strong enough that the estimated time to break it is longer than the sensitivity of the information. There is a general acceptance that, if it&#8217;s possible to decrypt the message legitimately, then someone could do it illegitimately.</p>
<p>We just try to make sure that it would take a suitably long time (a few years to steal a single credit card number from an intercepted e-commerce transaction, for example). Security of physical safes is similarly rated on estimated and actual time to crack by an expert.</p>
<p>It seems to me that we should consider the &#8220;useful lifetime&#8221; of submitted versions of user data in Sakai and ePortfolios. It&#8217;s kind of the inverse, where it&#8217;s not the notion of how long it&#8217;ll take the bad guys to get in, but the notion of how long the good guys can get in, and for what purposes, before the thing fades away.</p>
<p>I don&#8217;t think this will lead a simple answer, but accepting that the valuable lifetime isn&#8217;t &#8220;forever&#8221; seems to be a start. Automatic, timestamped copies with a defined lifetime for a specific purpose is a tractable scenario. And it gives institutions a cutpoint to say when data can be archived and/or deleted from their live systems. Defining when the stuff goes from mutable to snapshotted &#8211; with a sensible UI &#8211; is the tricky part.</p>
<h3 id='metaphors_already_in_use'>Metaphors Already In Use</h3>
<p>There is one application people employ every day that doesn&#8217;t seem to get much attention for its parallels to this problem: <strong>email</strong>.</p>
<p>Lacking sophisticated, intuitive software to collaborate on living information, people unconsciously send emails containing the two critically differentiable components: <strong>links</strong> and <strong>attachments</strong>.</p>
<ol>
<li>Links refer to some live resource that could change between the time the email went out and when it&#8217;s consumed. Unless the recipient manually archives the resource, they have no reasonable expectation that it will remain unchanged. They might be annoyed if a link goes dead or an article is deleted, but the effect of visiting a link is understood in the context of time-sensitivity. (Just grab a magazine from 2000, try the URLs you find and see what happens&#8230;)</li>
<li>Attachments are concrete manifestations of things that were alive until &#8220;Send&#8221; was pressed. If the recipient is on vacation or sabbatical for two months, the resource waits, patiently, unchanged in the inbox. Emails with attachments are, themselves, unaffected by the passage of time. (Look at a JC Penny catalog from 1980; all of the information is outdated, but intact.)</li>
</ol>
<p>As soon as we move away from this familiar, learned metaphor of email, all sanity breaks down. In a learning system or ePortfolio, we get frustrated when resources are locked; we get frustrated when they change. We can&#8217;t seem to make any sense of the balance between personal rights and abilities, and the official or accountability needs.</p>
<p>For the system / builders, accountability wins, because accountability pays the bills. <em>See <a href='/posts/2008/03/09/sakai-and-osp-development-accountability-personalization'>my post on this within Sakai</a>.</em></p>
<p>For the users, it continues to be a painful problem and they end up saying things like &#8221;I&#8217;ll just make a document and email it. At least that&#8217;s simple and I know what I&#8217;ll get.&#8221;</p>
<p>We never realize that the users are telling us what they need &#8211; we just need to implement it in the system in a way that isn&#8217;t onerous.</p>
<p>In reality, I think the users need to give an inch and the system needs to give a mile. The digital world is moving toward versioning, so there is some user adaptation needed. But we can&#8217;t force-feed a &#8220;better way&#8221;.</p>
<p>At least ten or twenty aspects of learning/portfolio systems depend on getting this right. And <em>right</em> means <em>easy</em>.</p>
<p>The only thing we should add to the user&#8217;s world is the ability to make a tag (in the source control parlance) in some specific spot or make a live link. I think switching a connection between the live version and a tagged version is actually the critical user component, but it must be trivially simple.</p>
<p>I suspect &#8220;locking&#8221; workflow steps could be implemented as automatic tagging. Those autotags would be identical save for lasting for a specific period, being visible to others based on appropriate rules, and not convertible/detachable.</p>
<p>I&#8217;m naively hopeful that the mainstreaming of versioning (in Google Docs, &#8220;Track Changes&#8221;, wikis, source control, document management systems, JCR, etc.) will give us all some internal understanding of how digital information exists infinitely &#8211; as opposed to the discrete physical counterparts &#8211; and how to manage it. Don&#8217;t laugh just yet &#8211; you don&#8217;t think about your understanding of emailing links vs. attachments; you just do it.</p>
<p>One very interesting thing I&#8217;ve noticed in Google Docs: there are automatic drafts that happen while authoring, and you can switch between them at leisure until you save. Then the interim, uninteresting junk fades from view &#8211; a sophisticated technique to maintain sanity in the user&#8217;s world.</p>
<p>I&#8217;m not sure why the topics of cryptography and email haven&#8217;t come up in this conversation. I just hope that considering what people use and do implicitly every day gives us some traction on a practical set of solution strategies. -NB</p></content>
</entry>
<entry>
<title>Sakai and OSP — development, accountability, personalization</title>
<link href="http://botimer.net/posts/2008/03/09/sakai-and-osp-development-accountability-personalization"/>
<updated>2008-03-09T16:27:49-04:00</updated>
<id>http://botimer.net/posts/2008/03/09/sakai-and-osp-development-accountability-personalization</id>
<content type="html"><p>Sakai/OSP development is expensive, so it&#8217;s hard to find funding prioritized for the &#8220;soft&#8221; benefits of personal ownership and development that might not jive with the &#8220;hard&#8221; outcomes understood as necessary for accountability.</p>
<p>I believe these &#8220;soft&#8221; outcomes can communicate accountability just as well, and even better, but it&#8217;s a much more intensive project that needs smart, creative, dedicated people over time. The consumable accountability data needs to be assembled as a secondary product, as opposed to the primary, &#8220;automatic&#8221; data products of rigid accountability measures. <em>(&#8230;which feel a bit like TPS reports to student, faculty, and implementors, in my experience.)</em></p>
<p>This is one area where the &#8220;lower bar&#8221; open source systems have an apparent upper hand in development. Good portions of the development happens by motivated folks who have some time to give to personalization. It&#8217;s easy enough to &#8220;get in&#8221; that essentially unfunded effort bolsters those aspects.</p>
<p>I believe that, in today&#8217;s higher education climate, any system that doesn&#8217;t address accountability in a systematic fashion will fall out of favor very quickly at any institution where the words &#8220;ePortfolio&#8221; and &#8220;assessment&#8221; have been uttered in the same sentence. It&#8217;s really hard to build a realistic accountability system in your spare time, out of the context of a real accountability project.</p>
<p>This is where Sakai/OSP is uniquely positioned. We&#8217;re admittedly a bit behind on personalization, but that is changing quickly. At the same time, we have a depth of reach into the &#8220;regular&#8221; learning system activities and assessment capacities that&#8217;s unparalleled. It&#8217;s also a primary goal for a number of us to make raw development much easier. I really believe the 2.6 release has the potential to change the game. -NB</p></content>
</entry>
<entry>
<title>Eclipse Ganymede (3.4) - Still no Visual Editor?</title>
<link href="http://botimer.net/posts/2008/03/09/eclipse-ganymede-34-still-no-visual-editor"/>
<updated>2008-03-09T13:50:26-04:00</updated>
<id>http://botimer.net/posts/2008/03/09/eclipse-ganymede-34-still-no-visual-editor</id>
<content type="html"><p>About a year ago, I was anxious that an upgrade from the <a href='http://www.eclipse.org/vep/WebContent/main.php'>Visual Editor Project</a> might be included in the Eclipse Europa (3.3) release&#8230;</p>
<p>I&#8217;m a big fan of the portability, speed, and general native feel of SWT, and I&#8217;m generally a fan of the Eclipse setup. I&#8217;ve also done a good bit of C# stuff for hacking out GUIs for one-off apps. It&#8217;s actually easier than dealing with console scripts and you can hand off an .exe to let someone accomplish something without a proper shell. Given that working with Sakai is pretty Java-intensive, and that I was bouncing between OSX/XP, I figured these lightweight admin-style GUIs could be hacked together in SWT&#8230; Boy, was I wrong.</p>
<p>I admire the complexity of a GUI builder that generates all kinds of layout code, etc. It&#8217;s definitely not something I want to take on as a project right now. But, I&#8217;m pretty frustrated with the VEP. It missed the Europa bundle &#8211; no big deal, I thought &#8211; &#8220;there&#8217;ll be a package soon enough; this is important stuff&#8221;. Along comes October (three full months later), and this is posted on the main page:</p>
<p><img alt='Visual Editor + Europa == ouch' src='/images/2008/03/vep-notice-narrow.png' /></p>
<p>To my knowledge, this is the only official status update from the VEP since. While scraping the blogs and forums, I found one guy who seems to be maintaining unofficial builds, but I don&#8217;t see any active development at all. If you&#8217;re dangerous, you can check out <a href='http://www.ehecht.com/eclipse_ve/ve.html'>http://www.ehecht.com/eclipse_ve/ve.html</a> &#8211; he even has a Ganymede M3-compatible bundle &#8211; I&#8217;m too <del>scared</del> <del>disinterested</del> busy to spend the time.</p>
<p>And now that NetBeans has released 6.0 with cleaned up usability and the actually-funded Matisse, I&#8217;m really starting to wonder if I should give it another look. Another really cool feature I saw demoed was live model diagrams with full round-tripping right in the IDE. And they seem to have a BPEL designer integrated, which tickles my SOA side.</p>
<p>I&#8217;m not giving up on Eclipse, but I treat free software kind of like free agency: I use and probably contribute to what works for me. The adoption/switching cost is based on learning/porting time and, for an IDE, I figure that to be about two weekends of hacking to get productive. If I can crank up and save a few hours at a crack by being able to whip up a GUI and evolve a new data model with autodiagrams, it&#8217;s pretty tempting. -NB</p></content>
</entry>
<entry>
<title>First impressions of Office 2008</title>
<link href="http://botimer.net/posts/2008/03/05/first-impressions-of-office-2008"/>
<updated>2008-03-05T23:20:19-05:00</updated>
<id>http://botimer.net/posts/2008/03/05/first-impressions-of-office-2008</id>
<content type="html"><p>Well, I installed Office 2008 for Mac yesterday, and I&#8217;m pretty impressed, all in all.</p>
<p>Entourage was the first thing I gave a romp, and it seems to be a big improvement. It feels a lot more natural than my last, admittely brief, encounter. There are some pretty handy keyboard shortcuts and the modes seem practical enough. There are a couple of shortcuts that hurt my brain and scare me a little, though, too. Namely, these are Cmd-K for check mail (empty trash in Mail.app), and Cmd-Enter to send a message (seems pretty easy to send an incomplete message).</p>
<p>The big keyboard atrocity, however, is that Cmd-Left and Cmd-Right jump words exactly like Opt-Arrows. Home and End go to the beginning and end of the line, so it feels 95% Mac except during the rare task of writing an email. I&#8217;m really hoping for a patch for some configuration options.</p>
<p>There are three other annoyances that will probably stop me from running it during the day, though. First, when you have 10 folders in an IMAP server and it checks them all every minute, and goes <em>bonk, bonk, bonk, bonk</em> for every one without new messages, it gets a bit old. Second, when there is new mail in any folder, the new mail sound plays, the dock/switcher icon updates to show an unnumbered envelope, and I haven&#8217;t found a way to know which folder it landed in. Third, you can&#8217;t specify any other sounds based on rules; so my subtle audio coding based on probable importance doesn&#8217;t apply.</p>
<p>Word 2008 is a huge improvement at first pass. I could never get comfortable in 2004, and 2008 seems a bit more responsive, which makes sense, given that it&#8217;s a Universal app. It still has the obnoxious behavior of opening and closing the inspector panels because it knows better than I do what I want on the screen, but I guess the long-term Mac-Word users would balk at anything else. Track changes frustrates me the same as always. I don&#8217;t really care about the missing VBA stuff. The big thing is that it just feels more native now.</p>
<p>I really do wish it had the ribbon, though. I&#8217;ve only thought &#8220;wow, that&#8217;s refreshing&#8221; about a handful of things in the past 5 years &#8211; the ribbon was one of them. I know it seems like a love-it/hate-it thing for now, but I think they did a really nice job on representing categories of intent (with relevant actions), and that we&#8217;ll see ribbon-style stuff replacing the &#8220;pile of icons&#8221; toolbar mess that is today&#8217;s UI world. Just look at Photoshop or any of the Mac apps with icon-paged inspectors for some UX cousins.</p>
<p>I&#8217;ve only just launched Excel &#8211; I haven&#8217;t tried to accomplish anything in it yet. It does look significantly more usable and readable, though. I hard a very hard time handling Excel 2004; probably the most difficult was the keyboard handling. I just couldn&#8217;t wrap my head around Ctrl-U for &#8220;Edit Cell Contents&#8221;. The general tiny/choppy font was tough, too. I&#8217;m holding out hope this time around.</p>
<p>If nothing else, I have iWork &#8216;08/Mail.app and NeoOffice/Thunderbird to round out the options. :)</p>
<p>As a last thought, when I started typing this, the light went on as to why Firefox looked a little different &#8211; and, honestly, a lot better &#8211; in the past day or two. Georgia is a pretty nice font compared to the stock replacement in 2.0.0.12. It seems like Verdana and maybe a couple of others got upgrades, too. It&#8217;s <em>almost</em> as clean as Safari now.</p></content>
</entry>
<entry>
<title>Well, I guess this is it…</title>
<link href="http://botimer.net/posts/2008/03/01/well-i-guess-this-is-it"/>
<updated>2008-03-01T10:29:21-05:00</updated>
<id>http://botimer.net/posts/2008/03/01/well-i-guess-this-is-it</id>
<content type="html"><p>I&#8217;ve held out on this blog thing even longer than I did on ICQ (remember that thing?)&#8230; I guess I&#8217;ve finally broken down. Three things have inspired me, I suppose:</p>
<ol>
<li>We&#8217;re doing some work with the notions of the read-write web (2.0?), ePortfolios, and digital authorship, so I guess I should get on board a little.</li>
<li>I need an indexed place to jot thoughts and share them, as we approach a six-month development sprint in Sakai/OSP.</li>
<li>I&#8217;ve finally accepted that I will never have a chance to make that community knowledge base / code snippet site I&#8217;ve been planning for five years.</li>
</ol>
<p>So, I guess it&#8217;s obligatory at this point: First Post!!111</p></content>
</entry>
</feed>