<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2864319023787337498</id><updated>2011-12-30T16:37:04.817Z</updated><category term='sakai'/><category term='jslint'/><category term='side'/><category term='code'/><category term='javascript'/><category term='client'/><category term='sakai 3'/><category term='aptana'/><category term='validation'/><category term='development'/><title type='text'>The Client Side</title><subtitle type='html'>Sakai JavaScript jQuery Client Side Development JSON JSLint Aptana Sakai Sakai 3 3akai Cambridge Sakai Foundation Nicolaas Matthijs</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nicolaasmatthijs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nicolaasmatthijs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nicolaas Matthijs</name><uri>http://www.blogger.com/profile/10953207683488476273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2864319023787337498.post-4805244974354951670</id><published>2010-02-20T14:34:00.003Z</published><updated>2010-02-20T14:57:09.860Z</updated><title type='text'>Personalized Search</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I haven't blogged in a while now, but here's an update on what I've been doing since September. I've embarked on a Masters course in Computer Speech, Text and Internet Technology at the University of Cambridge.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" color: rgb(68, 68, 68);  line-height: 20px; font-family:'helvetica neue', arial, helvetica, sans-serif;font-size:13px;"&gt;&lt;p  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;It's a one-year Masters course on the state-of-the-art in Speech and Language Processing and its application to Internet Technology. The main aim of the MPhil course is to teach the fundamental theory of speech and natural language processing and its use in a variety of advanced applications, especially those related to the Internet.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul  style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- list-style-type: disc; list-style-position: initial; list-style-image: initial; color:transparent;"&gt;&lt;li  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 1em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;Speech Processing: analysis, speech recognition, speech synthesis&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 1em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;Language Processing (computational linguistics): syntax, parsing, semantics, discourse&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 1em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;Applications: information retrieval, information extraction, dialogue systems, machine translation, question answering.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.4em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;The CSTIT is a one-year postgraduate course, which combines lectures, practicals, seminars and a substantial research project. It starts off with a term of taught material (lectures and structured practicals) covering the foundations of speech and language processing. In the second term, students attend lectures on more advanced topics, participate in a small group seminar in which they study and present material on a research topic, undertake two longer practicals and start on their research project. A dissertation is submitted in the third week in June and students give presentations on their projects in the last week in June.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.4em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"   style="font-family:verdana, arial, helvetica, sans-serif;color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.4em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"   style="font-family:verdana, arial, helvetica, sans-serif;color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;My project is about Personalized Search. I'll look at how we can learn a user's interests by looking at different data sources like browsing history, search queries, ... and how we can use those interests to make the output of search engines more biased towards the user using it. Because there are no publicly available corpora or data sets available for this, I need to gather my own data set. That's why I need your help!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.4em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"   style="font-family:verdana, arial, helvetica, sans-serif;color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.4em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"   style="font-family:verdana, arial, helvetica, sans-serif;color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I've created a FireFox add-on that captures some of that data. I doesn't get in the way of anything an guarantees your privacy. If you want to help me out, please visit &lt;a href="http://alterego.caret.cam.ac.uk/"&gt;http://alterego.caret.cam.ac.uk&lt;/a&gt; and install the add-on. The page also contains more information about the project.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.4em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"   style="font-family:verdana, arial, helvetica, sans-serif;color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.4em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- color:transparent;"&gt;&lt;span class="Apple-style-span"   style="color: rgb(0, 0, 0);   font-family:verdana, arial, helvetica, sans-serif;font-size:medium;"&gt;You can also win a prize ;)&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2864319023787337498-4805244974354951670?l=nicolaasmatthijs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nicolaasmatthijs.blogspot.com/feeds/4805244974354951670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2010/02/personalized-search.html#comment-form' title='40 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/4805244974354951670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/4805244974354951670'/><link rel='alternate' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2010/02/personalized-search.html' title='Personalized Search'/><author><name>Nicolaas Matthijs</name><uri>http://www.blogger.com/profile/10953207683488476273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>40</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2864319023787337498.post-785015754361301965</id><published>2009-05-20T13:36:00.001+01:00</published><updated>2009-05-20T13:38:32.312+01:00</updated><title type='text'>Missing radix parameter</title><content type='html'>&lt;span class="Apple-style-span" style="line-height: 18px; "&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This message is given by JSLint when you are using &lt;/span&gt;&lt;/span&gt;&lt;code style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(250, 250, 240); "&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;parseInt()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; without the second parameter radix. This might cause a problem when the variable passed to parseInt() starts with a 0, which makes JavaScript interpret the value as an octal number. Or if the string even starts with “0x” &lt;/span&gt;&lt;/span&gt;&lt;code style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(250, 250, 240); "&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;parseInt()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; might come up with the idea to see a hexadecimal number.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;code style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(250, 250, 240); "&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&gt;&gt;&gt; parseInt("8")&lt;br /&gt;8&lt;br /&gt;&gt;&gt;&gt; parseInt("08")&lt;br /&gt;0&lt;br /&gt;&gt;&gt;&gt; parseInt("010") // A juicy mistake, octal numbers.&lt;br /&gt;8&lt;br /&gt;&gt;&gt;&gt; parseInt("0x10") // Probably rare, but possible, hexadecimals.&lt;br /&gt;16&lt;br /&gt;&gt;&gt;&gt; parseInt("08", 10) // Prevent problems, use the radix.&lt;br /&gt;8&lt;br /&gt;&gt;&gt;&gt; parseInt("010", 10)&lt;br /&gt;10&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;And if the paramter passed to &lt;/span&gt;&lt;/span&gt;&lt;code style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(250, 250, 240); "&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;parseInt()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; is a variable that comes from some other place you can not be sure that the string does not start with a “0″. So using the radix might save a lot of headache.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2864319023787337498-785015754361301965?l=nicolaasmatthijs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nicolaasmatthijs.blogspot.com/feeds/785015754361301965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2009/05/missing-radix-parameter.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/785015754361301965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/785015754361301965'/><link rel='alternate' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2009/05/missing-radix-parameter.html' title='Missing radix parameter'/><author><name>Nicolaas Matthijs</name><uri>http://www.blogger.com/profile/10953207683488476273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2864319023787337498.post-2717233671871276016</id><published>2009-05-20T11:59:00.000+01:00</published><updated>2009-05-20T12:21:26.918+01:00</updated><title type='text'>Handle global variables in JavaScript</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;When people write decent JavaScript (read: when they use JavaScript frameworks like jQuery which handle the quirks of JavaScript for them) they will often assume that certain top level variables are there, without explicitly defining it.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;e.g.: &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;$("#test").html("test");&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This line is assuming that jQuery has been loaded and that the $ object is defined. If jQuery isn't loaded, the code will fail and claim that $ is undefined. Because of this, the JSLint validator will complain when validating this code and will state the following:&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="  white-space: normal; "&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i face="serif" style=" font-style: italic; "&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="  white-space: normal; "&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Implied global:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="  white-space: normal; "&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Problem at line 1 character 1: '$' is not defined.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(Note that this will also happen when we call a function that hasn't been defined yet inside a function. Sometimes it's impossible to avoid this.)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This can and should be fixed by adding this to the top of the document:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;/*global $ */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Inside this global statement we can define all of the top level variables we expect there to be. This will tell JSLint that it should assume those variables are defined (or will be defined in time), and it will no longer complain. It also a very nice way of documenting which files and frameworks we need to run a certain JavaScript file, so it's a win-win again.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2864319023787337498-2717233671871276016?l=nicolaasmatthijs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nicolaasmatthijs.blogspot.com/feeds/2717233671871276016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2009/05/handle-global-variables-in-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/2717233671871276016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/2717233671871276016'/><link rel='alternate' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2009/05/handle-global-variables-in-javascript.html' title='Handle global variables in JavaScript'/><author><name>Nicolaas Matthijs</name><uri>http://www.blogger.com/profile/10953207683488476273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2864319023787337498.post-2668453244435071470</id><published>2009-05-19T14:59:00.001+01:00</published><updated>2009-05-19T15:03:25.756+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='sakai 3'/><category scheme='http://www.blogger.com/atom/ns#' term='sakai'/><category scheme='http://www.blogger.com/atom/ns#' term='side'/><category scheme='http://www.blogger.com/atom/ns#' term='client'/><title type='text'>MyCamTools, UXI, Sakai 3 and other Sakai’s</title><content type='html'>&lt;span class="Apple-style-span"   style="color: rgb(84, 84, 84);   line-height: 14px; font-family:Verdana;font-size:12px;"&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;A lot has happened in the world of (client side) development for Sakai over the last year. In fact, so much has happened that I haven’t been able to keep up with this blog.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;We have managed to get MyCamTools out of the door and it has now been running in production at Cambridge for almost a year now. Reactions have been positive and we have had relatively few reported problems.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;In August, we have started working on the UX Improvement project, based on designs made by Nathan Pearson, aimed at improving the Sakai 2.x UX. We have also introduced some Sakai 3 concepts into those screens. You can check the work at http://mycamtools.caret.cam.ac.uk .&lt;br /&gt;I would like to thank Michigan, Indiana, Berkeley and Georgia Tech for their implementation help.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;In March, we have started working on Sakai 3 RC 1, which would be a first step towards Sakai 3, and we’re hoping to bring into production this year.  A lot is going on, and it’s a fast moving target right now, so the best way to track the progress is to follow the dev server at http://131.111.21.17:9090/dev/ .&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;All of this might make more sense if you read through the presentation I recently gave at EuroSakai 2009 in Stockholm which you can find at&lt;/span&gt; &lt;a href="http://bugs.sakaiproject.org/confluence/download/attachments/52429141/SakaiEurope-Sakai3.pdf?version=1" rel="#someid0" style="text-decoration: none; color: rgb(0, 106, 128); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(207, 226, 229); "&gt;SakaiEurope-Sakai3.pdf&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2864319023787337498-2668453244435071470?l=nicolaasmatthijs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nicolaasmatthijs.blogspot.com/feeds/2668453244435071470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2009/05/mycamtools-uxi-sakai-3-and-other-sakais.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/2668453244435071470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/2668453244435071470'/><link rel='alternate' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2009/05/mycamtools-uxi-sakai-3-and-other-sakais.html' title='MyCamTools, UXI, Sakai 3 and other Sakai’s'/><author><name>Nicolaas Matthijs</name><uri>http://www.blogger.com/profile/10953207683488476273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2864319023787337498.post-1355907965201246921</id><published>2009-05-19T14:52:00.000+01:00</published><updated>2009-05-19T14:56:15.034+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='aptana'/><category scheme='http://www.blogger.com/atom/ns#' term='jslint'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='validation'/><title type='text'>Enabling JSLint in Aptana Studio</title><content type='html'>&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;div style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(255, 255, 255); font: normal normal normal 13px/19px Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; padding-top: 0.6em; padding-right: 0.6em; padding-bottom: 0.6em; padding-left: 0.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-position: initial initial; "&gt;&lt;p&gt;JSLint (http://www.jslint.com) is a pretty cool tool that allows you to validate your javascript code and find common bugs, style issues and pitfalls. Until recently, I was pasting my javascript code into JSLint from time to time, fixing some of the issues and then pasting it back into JSLint, ...&lt;/p&gt;&lt;p&gt;I have now however found a way of enabling the JSLint Validator inside Aptana Studio, which is the IDE in which I write all of my JavaScript code.&lt;/p&gt;&lt;p&gt;You can enable it by doing:&lt;/p&gt;&lt;p&gt;&lt;span mce_name="em" mce_style="font-style: italic;" class="Apple-style-span" style="font-style: italic; "&gt;- Open Aptana Studio- Go to Window &gt; Preferences&lt;br /&gt;- Go to Aptana &gt; Editors &gt; JavaScript &gt; Validation in the left hand menu&lt;br /&gt;- Check "JSLint JavaScript Validator"- Hit OK- Go to Window &gt; Show View &gt; Validation&lt;br /&gt;- You'll see the Validation on the bottom right of the screen- Now also click Toggle Information and Toggle Warnings (found on the top left corner of the validation pane)&lt;br /&gt;- You're all set. JSLint will warn you whilst writing code&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://4.bp.blogspot.com/_IbVXZi869O0/ShK55Sbm-nI/AAAAAAAAAAM/8t46ke7vM3s/s320/Picture+5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5337532902238780018" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This is super useful, because I can now track JSLint issues while I'm writing the code, which should improve productivity!&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2864319023787337498-1355907965201246921?l=nicolaasmatthijs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nicolaasmatthijs.blogspot.com/feeds/1355907965201246921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2009/05/enabling-jslint-in-aptana-studio.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/1355907965201246921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2864319023787337498/posts/default/1355907965201246921'/><link rel='alternate' type='text/html' href='http://nicolaasmatthijs.blogspot.com/2009/05/enabling-jslint-in-aptana-studio.html' title='Enabling JSLint in Aptana Studio'/><author><name>Nicolaas Matthijs</name><uri>http://www.blogger.com/profile/10953207683488476273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IbVXZi869O0/ShK55Sbm-nI/AAAAAAAAAAM/8t46ke7vM3s/s72-c/Picture+5.png' height='72' width='72'/><thr:total>3</thr:total></entry></feed>
