Skip to content

Commit 3d3c1f1

Browse files
committed
Run in safe mode
1 parent 46ae9e3 commit 3d3c1f1

File tree

24 files changed

+259
-27
lines changed

24 files changed

+259
-27
lines changed

atom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<title>noah</title>
55
<link href="http://botimer.net/atom.xml" rel="self"/>
66
<link href="http://botimer.net"/>
7-
<updated>2012-05-28T13:55:53-04:00</updated>
7+
<updated>2012-05-28T14:08:04-04:00</updated>
88
<id>http://botimer.net</id>
99
<author>
1010
<name>Noah Botimer</name>

index.html

+158-3
Large diffs are not rendered by default.

page2/index.html

+20-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,26 @@ <h1><a href="/posts/2009/07/25/sakai-jsonp-callbacks-in-entity-broker">Sakai JSO
134134
<h1><a href="/posts/2008/11/23/aptana-vista-php-oracle-xe-victory">Aptana + Vista + PHP + Oracle XE == Victory!</a></h1>
135135
<p class="meta">November 23, 2008</p>
136136
<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>
137-
<p class='more'><a href='/posts/2008/11/23/aptana-vista-php-oracle-xe-victory'>Continue reading &rarr;</a></p>
137+
<!--more-->
138+
<p>&#8230;and pretty easily done once the steps are laid out.</p>
139+
140+
<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>
141+
142+
<p>So, what&#8217;s the problem?</p>
143+
144+
<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>
145+
146+
<p>To get to the goods, assuming Aptana and XE are installed:</p>
147+
148+
<ol>
149+
<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>
150+
151+
<li>Drop these into <code>...Aptana Studio\plugins\com.aptana.ide.php.interpreters.win32.x86_5.3.14.v20081007\resources\php5\ext</code></li>
152+
153+
<li>Add your extensions to the php.ini files in <code>...resources\php_xdebug</code> and <code>...resources\php_zend_debugger</code></li>
154+
</ol>
155+
156+
<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>
138157
</div>
139158

140159
<div class="post">

page3/index.html

+60-2
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,22 @@ <h1><a href="/posts/2008/03/29/37signals-entropy-and-sakai">37signals, entropy,
115115
<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>
116116

117117
<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>
118-
<p class='more'><a href='/posts/2008/03/29/37signals-entropy-and-sakai'>Continue reading &rarr;</a></p>
118+
<!--more-->
119+
<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>
120+
121+
<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>
122+
123+
<p>A case in point from their flagship, <a href='http://basecamphq.com/'>Basecamp</a>&#8230;</p>
124+
125+
<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>
126+
127+
<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>
128+
129+
<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>
130+
131+
<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>
132+
133+
<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>
119134
</div>
120135

121136
<div class="post">
@@ -168,7 +183,50 @@ <h1><a href="/posts/2008/03/09/personal-artifacts-vs-official-purposes">Personal
168183
<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>
169184

170185
<p>Lots more below the break.</p>
171-
<p class='more'><a href='/posts/2008/03/09/personal-artifacts-vs-official-purposes'>Continue reading &rarr;</a></p>
186+
<!--more-->
187+
<h3 id='useful_lifetime'>Useful Lifetime</h3>
188+
189+
<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>
190+
191+
<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>
192+
193+
<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>
194+
195+
<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>
196+
197+
<h3 id='metaphors_already_in_use'>Metaphors Already In Use</h3>
198+
199+
<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>
200+
201+
<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>
202+
203+
<ol>
204+
<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>
205+
206+
<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>
207+
</ol>
208+
209+
<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>
210+
211+
<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>
212+
213+
<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>
214+
215+
<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>
216+
217+
<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>
218+
219+
<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>
220+
221+
<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>
222+
223+
<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>
224+
225+
<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>
226+
227+
<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>
228+
229+
<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>
172230
</div>
173231

174232
<div class="post">

posts/2008/03/01/well-i-guess-this-is-it/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ <h1>Well, I guess this is it… </h1>
134134

135135
<div id="disqus_thread"></div>
136136
<script type="text/javascript">
137-
var disqus_developer = 1;
137+
138138
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
139139
var disqus_url = 'http://botimer.net/posts/2008/03/01/well-i-guess-this-is-it';
140140
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/03/05/first-impressions-of-office-2008/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ <h1>First impressions of Office 2008 </h1>
140140

141141
<div id="disqus_thread"></div>
142142
<script type="text/javascript">
143-
var disqus_developer = 1;
143+
144144
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
145145
var disqus_url = 'http://botimer.net/posts/2008/03/05/first-impressions-of-office-2008';
146146
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/03/09/eclipse-ganymede-34-still-no-visual-editor/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ <h1>Eclipse Ganymede (3.4) - Still no Visual Editor? </h1>
136136

137137
<div id="disqus_thread"></div>
138138
<script type="text/javascript">
139-
var disqus_developer = 1;
139+
140140
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
141141
var disqus_url = 'http://botimer.net/posts/2008/03/09/eclipse-ganymede-34-still-no-visual-editor';
142142
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/03/09/personal-artifacts-vs-official-purposes/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ <h3 id='metaphors_already_in_use'>Metaphors Already In Use</h3>
178178

179179
<div id="disqus_thread"></div>
180180
<script type="text/javascript">
181-
var disqus_developer = 1;
181+
182182
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
183183
var disqus_url = 'http://botimer.net/posts/2008/03/09/personal-artifacts-vs-official-purposes';
184184
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/03/09/sakai-and-osp-development-accountability-personalization/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ <h1>Sakai and OSP — development, accountability, personalization </h1>
132132

133133
<div id="disqus_thread"></div>
134134
<script type="text/javascript">
135-
var disqus_developer = 1;
135+
136136
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
137137
var disqus_url = 'http://botimer.net/posts/2008/03/09/sakai-and-osp-development-accountability-personalization';
138138
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/03/17/dojo-storage-a-timely-treat/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ <h1>Dojo Storage — A timely treat </h1>
138138

139139
<div id="disqus_thread"></div>
140140
<script type="text/javascript">
141-
var disqus_developer = 1;
141+
142142
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
143143
var disqus_url = 'http://botimer.net/posts/2008/03/17/dojo-storage-a-timely-treat';
144144
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/03/29/37signals-entropy-and-sakai/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ <h1>37signals, entropy, and Sakai </h1>
142142

143143
<div id="disqus_thread"></div>
144144
<script type="text/javascript">
145-
var disqus_developer = 1;
145+
146146
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
147147
var disqus_url = 'http://botimer.net/posts/2008/03/29/37signals-entropy-and-sakai';
148148
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/03/29/these-are-the-data/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ <h1>“These are the data.” </h1>
134134

135135
<div id="disqus_thread"></div>
136136
<script type="text/javascript">
137-
var disqus_developer = 1;
137+
138138
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
139139
var disqus_url = 'http://botimer.net/posts/2008/03/29/these-are-the-data';
140140
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/04/03/flash-90160-does-not-play-nicely-with-local-storage/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ <h1>Flash 9.0.16.0 does NOT play nicely with local storage </h1>
138138

139139
<div id="disqus_thread"></div>
140140
<script type="text/javascript">
141-
var disqus_developer = 1;
141+
142142
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
143143
var disqus_url = 'http://botimer.net/posts/2008/04/03/flash-90160-does-not-play-nicely-with-local-storage';
144144
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/07/21/stupid-eclipse-trick-dynamic-tracing-with-conditional-breakpoints/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ <h1>Stupid Eclipse trick — Dynamic Tracing with Conditional Breakpoints </h1>
138138

139139
<div id="disqus_thread"></div>
140140
<script type="text/javascript">
141-
var disqus_developer = 1;
141+
142142
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
143143
var disqus_url = 'http://botimer.net/posts/2008/07/21/stupid-eclipse-trick-dynamic-tracing-with-conditional-breakpoints';
144144
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/10/02/php-json_encode-is-quirky/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ <h1>PHP json_encode is quirky </h1>
130130

131131
<div id="disqus_thread"></div>
132132
<script type="text/javascript">
133-
var disqus_developer = 1;
133+
134134
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
135135
var disqus_url = 'http://botimer.net/posts/2008/10/02/php-json_encode-is-quirky';
136136
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/10/25/adium-logs-make-it-very-slow/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ <h1>Adium logs make it very slow </h1>
126126

127127
<div id="disqus_thread"></div>
128128
<script type="text/javascript">
129-
var disqus_developer = 1;
129+
130130
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
131131
var disqus_url = 'http://botimer.net/posts/2008/10/25/adium-logs-make-it-very-slow';
132132
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2008/11/23/aptana-vista-php-oracle-xe-victory/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ <h1>Aptana + Vista + PHP + Oracle XE == Victory! </h1>
144144

145145
<div id="disqus_thread"></div>
146146
<script type="text/javascript">
147-
var disqus_developer = 1;
147+
148148
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
149149
var disqus_url = 'http://botimer.net/posts/2008/11/23/aptana-vista-php-oracle-xe-victory';
150150
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2009/07/25/sakai-jsonp-callbacks-in-entity-broker/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ <h1>Sakai JSONP callbacks in Entity Broker </h1>
139139

140140
<div id="disqus_thread"></div>
141141
<script type="text/javascript">
142-
var disqus_developer = 1;
142+
143143
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
144144
var disqus_url = 'http://botimer.net/posts/2009/07/25/sakai-jsonp-callbacks-in-entity-broker';
145145
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2009/08/04/graceful-ajax-degradation-progressive-enhancement/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ <h1>Graceful AJAX degradation / progressive enhancement </h1>
132132

133133
<div id="disqus_thread"></div>
134134
<script type="text/javascript">
135-
var disqus_developer = 1;
135+
136136
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
137137
var disqus_url = 'http://botimer.net/posts/2009/08/04/graceful-ajax-degradation-progressive-enhancement';
138138
/* * * DON'T EDIT BELOW THIS LINE * * */

posts/2009/08/06/tweak-working-copy-poms-without-checking-them-in/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ <h1>Tweak working copy POMs without checking them in </h1>
133133

134134
<div id="disqus_thread"></div>
135135
<script type="text/javascript">
136-
var disqus_developer = 1;
136+
137137
var disqus_shortname = 'botimer'; // required: replace example with your forum shortname
138138
var disqus_url = 'http://botimer.net/posts/2009/08/06/tweak-working-copy-poms-without-checking-them-in';
139139
/* * * DON'T EDIT BELOW THIS LINE * * */

0 commit comments

Comments
 (0)