<?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-11119546</id><updated>2012-02-11T10:27:14.320Z</updated><category term='alpha'/><category term='mootools'/><category term='tbody'/><category term='jquery'/><category term='hack'/><category term='table'/><category term='coursework'/><category term='insert row'/><category term='css'/><category term='dom'/><category term='javascript'/><category term='transparency'/><category term='internet explorer'/><category term='html'/><category term='relationships'/><category term='procrastination'/><category term='blogging'/><category term='png'/><category term='university'/><category term='filter'/><category term='friends'/><category term='growing up'/><title type='text'>Smiler's Scribbles</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11119546.post-2647030984859514633</id><published>2011-10-12T16:10:00.000Z</published><updated>2011-10-12T16:10:09.218Z</updated><title type='text'>Accessing MSSQL databases from Excel 2011 on Mac OS X 10.7 Lion</title><content type='html'>Wow, a whole year since my last blog post! I ought to do something about that — I have some ideas for posts, I just need to make the time for them. Anyway, on with the point of &lt;i&gt;this&lt;/i&gt;&amp;nbsp;post.&lt;br /&gt;
&lt;br /&gt;
I've recently had a need to access an MSSQL database at work, which is maintained by our organisation's central IT service. It has some benefits for our organisation – LDAP authentication is a good one, for example. However, support for MSSQL outside of the Microsoft sphere can be a bit sketchy! As I use a Mac, and would rather not use&amp;nbsp;virtualisation&amp;nbsp;or something else silly to access the data, I set about finding a solution to access the data natively.&lt;br /&gt;
&lt;br /&gt;
After googling for some free software, and finding rather little besides Java apps, I settled on Excel 2011 using the Microsoft Query database bridge. This is a handy utility that allows you to build database queries, which accesses databases using ODBC.&lt;br /&gt;
&lt;br /&gt;
Out of the box, Microsoft have been rather unhelpful. In order to use this feature, you need to install "compatible" ODBC drivers. Microsoft &lt;a href="http://mac2.microsoft.com/help/office/14/en-us/excel/item/c7485636-da77-4c46-a20a-422f90ebf679"&gt;kindly link you&lt;/a&gt; to two companies that offer these drivers, but both cost money. Gee, thanks MS!&lt;br /&gt;
&lt;br /&gt;
However, there is a cost-free and — even better! — open source solution for accessing MSSQL databases, right up to the latest SQL Server 2008. It's called &lt;a href="http://www.freetds.org/"&gt;FreeTDS&lt;/a&gt; (TDS means &lt;a href="http://en.wikipedia.org/wiki/Tabular_Data_Stream"&gt;Tabluar DataStream&lt;/a&gt;, and it's the name of the protocol used by MSSQL and Sybase servers).&lt;br /&gt;
&lt;br /&gt;
Finding instructions for configuring this FreeTDS/ODBC/Microsoft Query/Excel malarky proved difficult, but I've managed to piece together the following process. Hopefully it will be of use to others.&lt;br /&gt;
&lt;br /&gt;
Firstly, you'll need to obtain the following:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt; — I love this app, and you should too. Make sure it's working before starting this:&lt;br /&gt;
&lt;pre&gt;# port version
Version: 2.0.3&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/Downloads#Mac_OS_X"&gt;iODBC SDK&lt;/a&gt; from OpenLink — Mac OS X comes with iODBC, but Excel won't use it. You need to install this updated(?) version for it to work. &lt;/li&gt;
&lt;li&gt;I will assume that you're already running Mac OS X and Microsoft Office. These instructions &lt;i&gt;should&lt;/i&gt;&amp;nbsp;work with any version, though they're tailored specifically for Lion (10.7) and Office 2011. They should also work with &lt;a href="http://www.filemaker.com/products/filemaker-pro/"&gt;FileMaker&lt;/a&gt;, but I haven't tested this.&lt;/li&gt;
&lt;/ol&gt;Starting with MacPorts, we'll install FreeTDS. MacPorts doesn't currently have the latest version (0.91 vs 0.82), but that doesn't seem to matter. If you're used to MacPorts, you should read this command carefully: this will make all the difference. Type the following into Terminal:&lt;br /&gt;
&lt;pre&gt;# sudo port install freetds +universal&lt;/pre&gt;The &lt;i&gt;+universal&lt;/i&gt; is vital here, especially on Lion. On Lion, MacPorts will only build a 64-bit version of FreeTDS by default. The problem is, OpenLink's iODBC is 32-bit, and the two are incompatible. This option tells MacPorts to build both 32- and 64-bit versions, which makes iODBC much happier!&lt;br /&gt;
&lt;br /&gt;
When this finishes (which can take a long time if you've not used MacPorts before), the script will tell you where some important files are:&lt;br /&gt;
&lt;pre&gt;****************************************************************
Configuration file freetds.conf does not exist and has been created using
    /opt/local/etc/freetds/freetds.conf.sample
Configuration file locales.conf does not exist and has been created using
    /opt/local/etc/freetds/locales.conf.sample
Configuration file pool.conf does not exist and has been created using
    /opt/local/etc/freetds/pool.conf.sample
****************************************************************&lt;/pre&gt;You'll need to edit some of these files, with your &lt;a href="http://www.macromates.com/"&gt;favourite text editor&lt;/a&gt;, to tell FreeTDS how to connect to your MSSQL server.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="border: solid 1px;"&gt;freetds.conf:&lt;br /&gt;
&lt;pre&gt;# My MSSQL server
[smilerMSSQL]
   host = mssql.awm.me.uk
   port = 1433
   tds version = 7.0
   encryption = required
   client charset = UTF-8&lt;/pre&gt;These lines should be appended to the end of the file - there's no need to edit the lines already there.&lt;/div&gt;&lt;br /&gt;
The first line is just a comment, which I've used to assign some meaning to this section of the file. Next is the server's name. You will use this to refer to the server in iODBC later, so pick something sensible. I don't know if symbols are permitted here, so I've avoided them.&lt;br /&gt;
&lt;br /&gt;
Next is the address of the server itself. (I've used a dummy address here.) It should be a full-qualified DNS name or IP address. The &lt;i&gt;port&lt;/i&gt; will be 1433 for any MSSQL server (if this needs changing, you should know as much). &lt;i&gt;tds version&lt;/i&gt; tells FreeTDS which protocol version to use. There's a &lt;a href="http://www.freetds.org/userguide/choosingtdsprotocol.htm"&gt;reference available for this&lt;/a&gt;, but if you can't get the latest version to work, drop it down a version and try again. The difference between versions is pretty trivial anyway! I'm using SQL Server 2008, which support TDS 7.2, but I could only get it to work once I'd dropped this to 7.0 (I don't know why).&lt;br /&gt;
&lt;br /&gt;
Lastly, I've &lt;i&gt;required&lt;/i&gt;&amp;nbsp;encryption, because I'm accessing&amp;nbsp;confidential&amp;nbsp;records on a work network. You can also &lt;i&gt;request&lt;/i&gt;&amp;nbsp;encryption here, which will use encryption if its available, but drop to an unencrypted connection automatically if not. I've also specified that I'm using UTF-8, because I like UTF-8. You could use ISO-1 here.&lt;br /&gt;
&lt;br /&gt;
You can also &lt;a href="http://www.freetds.org/userguide/locales.htm"&gt;edit the locales.conf file&lt;/a&gt;, to specify the language and date formatting that SQL Server/FreeTDS should use when returning error messages and data. If there isn't a section in this file for your locale, it should default to US English (and dates, which make no sense to me!).&lt;br /&gt;
&lt;br /&gt;
At this stage, it is advisable to test the configuration of FreeTDS, to make sure that it's working. There is a handy utility included, called &lt;i&gt;tsql&lt;/i&gt;, which will simply not complain if everything is working. Run it like this:&lt;br /&gt;
&lt;pre&gt;# tsql -S smilerMSSQL -U 'AWM\smiler'&lt;/pre&gt;This is a made-up example where I'm authenticating with a domain (LDAP) login. Make sure you use quotes if you're doing this. If you're just a normal user on the server itself, just use your username without quotes. tsql will print the locale that it's using, then prompt for your password. If there are no problems, you'll get a '1&amp;gt;' prompt. Nothing seems to work at this prompt except &lt;i&gt;quit&lt;/i&gt;, but you've proved it works.&lt;br /&gt;
&lt;br /&gt;
Next, install the iODBC SDK from OpenLink; it's a straightforward Mac OS X install package. Note that the latest version is for Mac OS 10.5 and 10.6, but it works fine in Lion. If you're picky about excess software, and you're only using this for Excel and/or FileMaker, you can customise the installer to only install the "Frameworks" and "Administrator".&lt;br /&gt;
&lt;br /&gt;
Configuration for this is done via the GUI, which has been installed for you in /Applications/Utilities/OpenLink ODBC Administrator. Run this, select the &lt;i&gt;ODBC Drivers&lt;/i&gt; tab and click on &lt;i&gt;Add a driver&lt;/i&gt;.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jnmQjYvsMqY/TpWzyeU7nrI/AAAAAAAAAIE/iZ098nEQQ-g/s1600/ODBC-admin1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-jnmQjYvsMqY/TpWzyeU7nrI/AAAAAAAAAIE/iZ098nEQQ-g/s320/ODBC-admin1.png" width="312" /&gt;&lt;/a&gt;&lt;/div&gt;You can put whatever you like for the description really, but &lt;i&gt;MSSQL FreeTDS&lt;/i&gt; seems like a sensible name to me. In the &lt;i&gt;Driver file name&lt;/i&gt; box, you need to put the complete path to the libtdsodbc.so file installed by MacPorts. The default path for this is /opt/local/lib/libtdsodbc.so, but it will be different if you installed MacPorts elsewhere. Note that this is actually a symlink to the library, which allows it to be changed if the library is updated. I'd suggest using the symlink. Now select OK.&lt;br /&gt;
&lt;br /&gt;
If that went well, it should now appear in the list of drivers in the main window, including the version number. If you don't see a version number (it's just #.##), then there's something wrong. I know this, because I first installed the driver as 64-bit only and I got hashes! Go back to the MacPorts step, and remember to include &lt;i&gt;+universal.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Now we tell iODBC about the actual database. Select the &lt;i&gt;User DSN&lt;/i&gt; tab and click &lt;i&gt;Add&lt;/i&gt;. You'll see a list of drivers (probably only the one) - select it in the list and click &lt;i&gt;Finish&lt;/i&gt;.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-qo3up5GKnU0/TpW2KkIU4EI/AAAAAAAAAIM/38_0-5IFRBc/s1600/ODBC-admin2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-qo3up5GKnU0/TpW2KkIU4EI/AAAAAAAAAIM/38_0-5IFRBc/s320/ODBC-admin2.png" width="297" /&gt;&lt;/a&gt;&lt;/div&gt;In this dialog, you enter the parameters of the server to tell ODBC how to connect. The &lt;i&gt;Data Source Name (DSN)&lt;/i&gt; is whatever you want to identify it by, and the &lt;i&gt;Comment&lt;/i&gt; field permits you to add a more detailed explanation. The important stuff goes in the keyword/value pairs section at the bottom.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Servername&lt;/i&gt; is the name you used in the freetds.conf file earlier, inside the square brackets — in this case, smilerMSSQL. iODBC will pass this to FreeTDS, which will then know where to look in the configuration file. &lt;i&gt;Database&lt;/i&gt; is the name of the database you want to use on the server. &lt;i&gt;Trace&lt;/i&gt; tells FreeTDS not to log anything. Click Ok to confirm. iODBC should obediently add the DSN to the list.&lt;br /&gt;
&lt;br /&gt;
Now for another test. Select your new DSN in the list, then click on &lt;i&gt;Test&lt;/i&gt;. This should display a username and password prompt. Username formatting is the same as earlier — DOMAIN\username (this time without quotes!) unless you're a 'normal' user. If this works, iODBC will display a simple message telling you that it worked. If it doesn't work, you'll get one (or more) messages with complicated errors. In this case, retrace the steps above to work out where you went wrong. Did you use &lt;i&gt;+universal&lt;/i&gt;?&lt;br /&gt;
&lt;br /&gt;
Finally, your data source is ready to be used in Excel/FileMaker. In Excel 2011, open a blank workbook, select the &lt;i&gt;Data&lt;/i&gt; tab in the Ribbon and click on &lt;i&gt;Database&lt;/i&gt;. This will display a very familiar looking window where you should select the DSN you created, then fill in your username and password. Now you can construct your query!&lt;br /&gt;
&lt;br /&gt;
I hope this is helpful to people. It took me a few hours to work all this out. If something strange has happened, post in the comments and I'll attempt to provide some assistance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-2647030984859514633?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/2647030984859514633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=2647030984859514633' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/2647030984859514633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/2647030984859514633'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2011/10/accessing-mssql-databases-from-excel.html' title='Accessing MSSQL databases from Excel 2011 on Mac OS X 10.7 Lion'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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/-jnmQjYvsMqY/TpWzyeU7nrI/AAAAAAAAAIE/iZ098nEQQ-g/s72-c/ODBC-admin1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11119546.post-9073570090038393209</id><published>2010-09-24T09:22:00.002Z</published><updated>2010-09-24T09:39:33.311Z</updated><title type='text'>Multiple Google accounts on Android</title><content type='html'>&lt;p&gt;Not long after I bought an Android phone (the &lt;a href="http://www.htc.com/uk/product/legend/overview.html"&gt;HTC Legend&lt;/a&gt; if you're interested), I decided to sign up for a &lt;a href="http://www.google.com/apps/"&gt;Google Apps&lt;/a&gt; account. Fundamentally, I did this for email. I own a domain (&lt;a href="http://awm.me.uk/"&gt;awm.me.uk&lt;/a&gt;) which I wanted to use for email, and my primary account at the time was my &lt;a href="http://www.soton.ac.uk/"&gt;University&lt;/a&gt; account, soon to expire after I graduate! So I thought this would cure all my ills.&lt;/p&gt;
&lt;p&gt;Unfortunately, I couldn't get this Google Apps account to sync with my Android phone, despite the promise that it should from all official places. The problem: the sync setup wizard doesn't work after the first run when you first switch on the phone. In some cases, it doesn't even work after a factory reset, but that's a different story!&lt;/p&gt;
&lt;p&gt;So Googling about this problem today, I came across &lt;a href="http://code.google.com/p/android/issues/detail?id=8636"&gt;a ticket&lt;/a&gt; for the problem on Google Code. I voiced my frustration, and then a kind user pointed me to &lt;a href="http://code.google.com/p/android/issues/detail?id=8636#c65"&gt;his solution&lt;/a&gt;: the YouTube app!&lt;/p&gt;
&lt;p&gt;So how, I hear you ask, can the YouTube app help?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the YouTube app, press menu and select 'My account'&lt;/li&gt;
&lt;li&gt;If you've used the app before, it's likely you'll be signed in with your default Google account automatically. No problem: press menu&gt;Log out, then go back to step one.&lt;/li&gt;
&lt;li&gt;You'll see an option to sign in with a different account, or jump straight to a log on screen. Do your business with the Google Account you want to add to your phone.&lt;/li&gt;
&lt;li&gt;Here's the interesting bit: if it's a Google Apps account, it may appear not to work. For me, it claimed my username or password were incorrect (they weren't). But wait…&lt;/li&gt;
&lt;li&gt;Press home, then menu and select 'Settings'&gt;'Accounts &amp; sync'. Notice anything new?&lt;/li&gt;
&lt;li&gt;Select your account in the list, then check all the service you'd like to sync. As if by magic, they'll start to work with all the apps on your phone!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So there you have it. I hope you find this tip as useful as I did! And with any luck, Google might actually fix this in the future…&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-9073570090038393209?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/9073570090038393209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=9073570090038393209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/9073570090038393209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/9073570090038393209'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2010/09/multiple-google-accounts-on-android.html' title='Multiple Google accounts on Android'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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-11119546.post-5006422640968061454</id><published>2010-04-20T07:06:00.004Z</published><updated>2010-04-20T07:50:20.622Z</updated><title type='text'>The Liberal Democrats: truth and myth</title><content type='html'>&lt;p&gt;If you live in the UK, you've probably found it hard to escape the news about the &lt;a href="http://www.bbc.co.uk/election2010"&gt;upcoming election&lt;/a&gt;. And rightly so in my opinion: it's the most significant event of this year, and has the potential to be the most important election of recent decades. In the wake of &lt;a href="http://en.wikipedia.org/wiki/Cash_for_Honours"&gt;several&lt;/a&gt; &lt;a href="http://www.telegraph.co.uk/news/newstopics/mps-expenses/6499657/MPs-expenses-scandal-a-timeline.html"&gt;political&lt;/a&gt; scandals and the &amp;ldquo;&lt;a href="http://www.ft.com/indepth/global-financial-crisis"&gt;financial crisis&lt;/a&gt;&amp;rdquo;, there's everything to play for, and I'm pleased to see the Liberal Democrats making &lt;a href="http://www.newstatesman.com/2010/04/lib-dems-poll-labour-continues"&gt;considerable headway&lt;/a&gt; after last week's &lt;a href="http://www.timesonline.co.uk/tol/news/politics/article7102230.ece" title="Linked as an interesting article about the debate."&gt;Leaders' Debate&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Last night, my &lt;a href="http://b0ggyb33.blogspot.com/"&gt;housemate&lt;/a&gt; remarked that he mostly likes the Lib Dems, but doesn't support their pro-Euro policy. This seems to be one of the common complaints about Lib Dem policy, so I decided to &lt;a href="http://www.libdems.org.uk/our_manifesto.aspx" title="I had to download the PDF to find the following paragraph"&gt;check it out&lt;/a&gt; this morning:&lt;/p&gt;
&lt;blockquote&gt;We believe that it is in Britain’s long-term interest to be part of the euro. But Britain should only join when the economic conditions are right, and in the present economic situation, they are not. Britain should join the euro only if that decision were supported by the people of Britain in a referendum.&lt;/blockquote&gt;
&lt;p&gt;The important point here is the Lib Dems' conviction that a referendum must decide the fate of the Euro in Britain, no matter how much they may want it, and that Britain is in no fit state, economically, to enter it now.&lt;/p&gt;
&lt;p&gt;Interestingly,  the Lib Dems' chancellor has been &lt;a href="http://www.invincecable.org.uk/"&gt;widely recognised&lt;/a&gt; as the best man for the job, and yet the party still supports joining the Eurozone. Personally, I don't think we're ready to join the Euro, if at all, and I'm pleased that the Lib Dems recognise this. I just hope that this minor point doesn't blind others of the Lib Dems' refreshingly honest and progressive manifesto. No party's policies are perfect, but the Lib Dems' are, in my opinion, the closest to attempting to fix what's wrong with this country's politics, policing, education and economy.&lt;p&gt;
&lt;p&gt;Which is why I'm disappointed (though not at all surprised) by news that some media mogols have been &lt;a href="http://www.craigmurray.org.uk/archives/2010/04/yougovmurdoch_d.html"&gt;abusing their power&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In other related news, please check out &lt;a href="http://www.twitvoteuk.org.uk/"&gt;TwitVoteUK&lt;/a&gt;. It hopes to plot actual voting intentions, attributed directly to actual constituencies, instantly avoiding the &lt;a href="http://www.guardian.co.uk/commentisfree/2010/apr/10/general-election-2010-polls"&gt;flawed uniform swing polling theory&lt;/a&gt;. It has a long way to go though: the results are hardly representative at the moment, so please get it known to your friends.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-5006422640968061454?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/5006422640968061454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=5006422640968061454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/5006422640968061454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/5006422640968061454'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2010/04/liberal-democrats-truth-and-myth.html' title='The Liberal Democrats: truth and myth'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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-11119546.post-3893192340292669465</id><published>2009-12-08T09:25:00.002Z</published><updated>2009-12-08T09:45:56.066Z</updated><title type='text'>Open-source spell checkers</title><content type='html'>&lt;p&gt;A friend of mine recently put out a call for help, looking for open-source spell checking APIs. I knew of a few, so I've assembled a list here.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://aspell.net/"&gt;GNU Aspell&lt;/a&gt;&lt;/b&gt; The most widely used open-source spell checker that I know of. Supersedes Ispell apparently.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://hunspell.sourceforge.net/"&gt;Hunspell&lt;/a&gt;&lt;/b&gt; Used by Firefox 3, OpenOffice.org and Google. It's been ported, or had bindings written, for many languages include &lt;a href="http://dren.dk/hunspell.html"&gt;Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://jaspell.sourceforge.net/"&gt;JaSpell&lt;/a&gt;&lt;/b&gt; I thought this was a Java port of Aspell, but it doesn't mention Aspell, so it must be original.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://jazzy.sourceforge.net/"&gt;Jazzy&lt;/a&gt;&lt;/b&gt; A Java implementation of Aspell's algorithms. Interesting article about it &lt;a href="http://www.ibm.com/developerworks/java/library/j-jazzy/"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://spellerpages.sourceforge.net/"&gt;Speller Pages&lt;/a&gt;&lt;/b&gt; This looks interesting: a JavaScript spell-checker for web pages.&lt;/lI&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.afterthedeadline.com/development.slp"&gt;After the Deadline&lt;/a&gt;&lt;/b&gt; I think this is also online based, but there's a Python library. Does a lot more than just spell checking: take a look at the page for more info.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-3893192340292669465?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/3893192340292669465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=3893192340292669465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/3893192340292669465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/3893192340292669465'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2009/12/open-source-spell-checkers.html' title='Open-source spell checkers'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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-11119546.post-4838248894779071474</id><published>2009-05-04T12:05:00.002Z</published><updated>2009-05-04T12:14:20.404Z</updated><title type='text'>Controlling Spotify</title><content type='html'>&lt;p&gt;I love &lt;a href="http://www.spotify.com/"&gt;Spotify&lt;/a&gt;, but unfortunately it doesn't include an AppleScript dictionary. This is a little limiting when it comes to controlling it, but Mac OS X has a useful work around: GUI scripting.&lt;/p&gt;
&lt;p&gt;With GUI scripting, you can use the "System Events" application to effectively click any item on the screen, including those of non-AppleScript applications. Using this principle, I modified my iTunes global Play/Pause script as follows to also control Spotify:&lt;/p&gt;
&lt;pre&gt;
tell application "System Events"
 -- Check whether iTunes or Spotify is running
 set iTunes_instances to count (every process whose name is "iTunes")
 set Spotify_instances to count (every process whose name is "Spotify")
end tell

if iTunes_instances &gt; 0 then
 -- iTunes support AppleScript, so is easy to control:
 tell application "iTunes" to playpause
else if Spotify_instances &gt; 0 then
 -- Spotify doesn't. We want to keep it in the background, so check which app's active.
 set ActiveApp to (path to frontmost application as Unicode text)
 -- Bring Spotify forward so we can control it.
 tell application "Spotify" to activate
 
 -- Activate its "Play/Pause" control
 tell application "System Events"
  tell process "Spotify"
   click menu item 1 of menu "Playback" of menu bar 1
  end tell
 end tell
 
 -- Restore the previously-active app to the front
 tell application ActiveApp to activate
end if
&lt;/pre&gt;
&lt;p&gt;So there you have it: a way to control Spotify without having to touch the mouse. Things will flash momentarily on the screen, but this shouldn't be too disruptive as you're telling the script to run anyway. I use &lt;a href="http://www.blacktree.com/projects/quicksilver.html"&gt;QuickSilver&lt;/a&gt; to run this script whenever I hit F8. Very useful for working.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-4838248894779071474?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/4838248894779071474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=4838248894779071474' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/4838248894779071474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/4838248894779071474'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2009/05/controlling-spotify.html' title='Controlling Spotify'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11119546.post-1603742859464159065</id><published>2008-12-04T10:29:00.004Z</published><updated>2008-12-04T11:17:21.732Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='png'/><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='filter'/><category scheme='http://www.blogger.com/atom/ns#' term='alpha'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='transparency'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>IE box clipping with 'filter' hack</title><content type='html'>&lt;p&gt;For some time now, there's been a glitch on the &lt;a href="http://www.susu.org/"&gt;SUSU front page&lt;/a&gt;. I'm entirely to blame, and it's partly through my apathy for IE that it remained. Yesterday however, I decided enough was enough and fixed it.&lt;/p&gt;
&lt;p&gt;The problem was a negatively positioned image which would get clipped when rendered in IE (of any version). I'd done this on other pages with no problems, whether using negative margins (&lt;span style="font-family: monospace;"&gt;margin-top: -25px;&lt;/span&gt;) or positioning (&lt;span style="font-family: monospace;"&gt;position: relative; top: -25px;&lt;/span&gt;). In this case, I was using absolute positioning, so I could also right-align the image within its containing div.&lt;p&gt;
&lt;p&gt;I can't remember what lead me to try this, but I removed a little IE hack from the containing div's style, which was used to render a PNG with alpha transparency properly in IE5.5+. As it was, it was hardly necessary for this PNG, as its background was plain. The 'hack', if you're unaware, looks a little like this:&lt;/p&gt;
&lt;pre&gt;.styled-div {
   background: url('alpha.png') no-repeat !important;
   background: transparent;
   filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='alpha.png', sizingMethod='crop');
}&lt;/pre&gt;
&lt;p&gt;The fundamental part is the &lt;span style="font-family: monospace;"&gt;filter&lt;/span&gt; property, which is unique to IE. It calls a special utility in IE's renderer to load an alpha image, which is then rendered just like IE7, Firefox, Safari, etc. The background tricks are needed to hide the normal background image in IE (IE doesn't understand what &lt;span style="font-family: monospace;"&gt;!important&lt;/span&gt; means).&lt;/p&gt;
&lt;p&gt;The interesting thing that I discovered is that this property was affecting how the div's child elements were rendered too. When I tried to position an element outside of its box, regardless of any &lt;span style="font-family: monospace;"&gt;overflow&lt;/span&gt; values I tried, they'd be clipped.&lt;p&gt;
&lt;p&gt;The solution was simple: don't use &lt;span style="font-family: monospace;"&gt;filter&lt;/span&gt;. In my case, I could easily change the background image so it didn't need alpha transparency. Actually, I tweaked the PNG file so it still renders with transparency, but IE uses a different background colour (Photoshop calls this the matte colour). I used &lt;a href="http://entropymine.com/jason/tweakpng/"&gt;TweakPNG&lt;/a&gt; to do this. What should you do if you need nested alpha transparency though?&lt;/p&gt;
&lt;p&gt;Unfortunately, it doesn't work. Well, you can nest transparent images as much as you like, just don't expect them to leave the parent's bounding box. I did a little experiment, trying different values for &lt;span style="font-family: monospace;"&gt;sizingMethod&lt;/span&gt;, and different combinations of divs with and without the &lt;span style="font-family: monospace;"&gt;filter&lt;/span&gt; property. As long as the parent box has &lt;span style="font-family: monospace;"&gt;filter&lt;/span&gt; set, all its children will be cropped at its edges. Oh well, I guess you get what you pay for!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-1603742859464159065?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/1603742859464159065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=1603742859464159065' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/1603742859464159065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/1603742859464159065'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2008/12/ie-box-clipping-with-filter-hack.html' title='IE box clipping with &apos;filter&apos; hack'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11119546.post-5420227895983574069</id><published>2008-11-22T18:44:00.004Z</published><updated>2008-12-04T11:19:25.209Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='dom'/><category scheme='http://www.blogger.com/atom/ns#' term='tbody'/><category scheme='http://www.blogger.com/atom/ns#' term='insert row'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='mootools'/><category scheme='http://www.blogger.com/atom/ns#' term='table'/><title type='text'>Adding table rows with JS in IE</title><content type='html'>&lt;p&gt;Phew, I finally cracked it! After about three hours of stressing over the lack of a debugger in IE, I manage to fix my code. I'm using the &lt;a href="http://mootools.net/"&gt;mootols&lt;/a&gt; JavaScript library, as it has some useful features that make JS considerably easier. Also, it was the JS library already included in the page I was editing (otherwise, I'd have likely used &lt;a href="http://www.jquery.com/"&gt;JQuery&lt;/a&gt;). Anyway, here's a bit of code:&lt;/p&gt;
&lt;pre&gt;
 function add_blank_team(){
  var table = $('forms');
  var row = table.getElement('tr').clone();
  var boxes = row.getElements('input');
  for(var i = 0; i &lt; boxes.length; i++) {
   var name = boxes[i].getAttribute('name');
   if(name == "QuizTeamName[]" || name == "QuizTeamID[]") {
    boxes[i].value = "";
   }
   else if(name == "QuizTeamScore[]") {
    boxes[i].value = 0;
   }
  }
  table.adopt(row);
 }
&lt;/pre&gt;
&lt;p&gt;As a quick explanation, this is a function which adds a blank row to a score card table. It's for a pub quiz event! Anyway, the table has the id 'forms', there are two cells per row with four inputs overall (but two are hidden). The idea is to clone an existing row (which means no need to recreate a mini-DOM for a table row in JS!), empty the relevant boxes, and attach it at the end of the table.&lt;p&gt;
&lt;p&gt;As the code is shown above, it'll work flawlessly in everything but IE. Why? Well, as I've just discovered, IE takes the DOM a little more literally than other browsers. It's all to do with TBODY...&lt;/p&gt;
&lt;p&gt;Not many people bother with the TBODY tag in HTML (I certainly don't), but it's a part of the spec, and browsers deal with its absence by adding it to the DOM automatically. Most browsers know that they're done this, so if you try to do something silly, like add a row to a table outside of the body, it does what it thinks you meant: add the row to the TBODY. Indeed, this worked in Firefox, Safari and Opera. IE however, isn't happy with that (though it won't tell you!).&lt;/p&gt;
&lt;p&gt;The fix is simple: change that first line as follows&lt;/p&gt;
&lt;pre&gt;
  var table = $('forms').getElement('tbody');
&lt;/pre&gt;
&lt;p&gt;This works for all browsers. Even if you don't think there's a TBODY, it really is there. Just take a look in the DOM explorer (varies between browsers).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-5420227895983574069?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/5420227895983574069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=5420227895983574069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/5420227895983574069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/5420227895983574069'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2008/11/adding-table-rows-with-js-in-ie.html' title='Adding table rows with JS in IE'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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-11119546.post-7681989528363992090</id><published>2008-10-15T12:21:00.002Z</published><updated>2008-10-15T13:46:56.716Z</updated><title type='text'>DisplayPort: now with more Mini</title><content type='html'>&lt;p&gt;So Apple announced a whole new line of MacBooks yesterday, and I was quite excited. In fact, if I had the money, I'd probably buy a new 13" MacBook right now.&lt;/p&gt;
&lt;p&gt;Unfortunately, as ever, Apple seem to be confusing things with their new 'Mini DisplayPort'. I'm willing to accept that having the same connector across the whole range makes sense. Unfortunately, it seems they've had to miniaturise the standard DisplayPort connector for the Air's sake.&lt;/p&gt;
&lt;p&gt;Personally, I'd rather see standard DisplayPort across the range (including desktops when they're updated) and Mini DisplayPort only on the Air. That way, everyone saves money except Air owners, and they have more money than sense as it is!&lt;/p&gt;
&lt;p&gt;This links with the brilliant new 24" LED display too. Beautifully conceived for notebook users, I love the idea of a built-in charger, and hooking up audio, iSight and a hub over USB. But why the non-standard connector? Surely Apple have lost a potential market of PC users who use Apple Cinema Displays (and they do exist, I assure you)? It's not like there's an adapter (yet) to attach a standard DisplayPort to a Mini DisplayPort, or vice-versa.&lt;/p&gt;
&lt;p&gt;I also wonder if some of the advantages of DisplayPort have been lost. For example, there's a 1GBit auxillary data path in DisplayPort, ideal for routing USB, FireWire or video from the iSight. As it is, all this (except FireWire) has been done with the USB port. I wonder if it was really that much cheaper to use plain USB?&lt;/p&gt;
&lt;p&gt;Which bring me onto FireWire... WHY APPLE? &lt;span style="font-size: bigger"&gt;WHY?!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;FireWire has great advantages on a Mac, and is well exploited by existing machines and the OS. It's been on every Apple machine since the iMac DV. It was even the requirement of installing Tiger! (Does this mean Tiger won't install on a new MacBook?) It's really disappointing that Apple have decided to drop it, though I understand it's probably due to cost.&lt;/p&gt;
&lt;p&gt;Here's my idea though (even if it's too late): The DisplayPort's auxiliary data path has more than enough bandwidth for FireWire 800, let alone 400. So why not pass it through there? There could be an adapter to get the port, or the ports could be included on the new 24" Cinema Display. Great huh? Makes things simple, and cheaper for Apple. Oh well!&lt;/p&gt;
&lt;p&gt;Oh also, where's the TV out gone? It's rare to find a flat-panel with DisplayPort, and certainly where I live, even flat panels aren't &lt;i&gt;that&lt;/i&gt; common. *whimper*&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-7681989528363992090?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/7681989528363992090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=7681989528363992090' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/7681989528363992090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/7681989528363992090'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2008/10/displayport-now-with-more-mini.html' title='DisplayPort: now with more Mini'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11119546.post-5166466572821089769</id><published>2008-08-08T10:59:00.003Z</published><updated>2008-08-08T11:11:42.449Z</updated><title type='text'>IE rendering modes</title><content type='html'>&lt;p&gt;This may well be documented elsewhere, but I thought I'd post it here anyway. As most people who develop with CSS regularly will know, there are two 'rendering modes' in most browsers: standards compliant and quirks. Standards compliant is what we like to use, because behaviour tends to be more predictable.&lt;/p&gt;
&lt;p&gt;Anyway, this post is about checking what mode is being used in Internet Explorer easily. Firefox can tell you this in the 'Page Info' window. I just knocked up this little bookmarklet &amp;mdash; just right-click and select 'Add to favorites...'. You'll get a security warning, because the link is a snippet of JavaScript, but it's all safe, I promise!&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="javascript:if(document.compatMode=='CSS1Compat'){alert('Standards mode');}else{alert('Quirks mode');}" title="Add me to your favourites!" style="background: silver; color: gray; border: raised 1px silver; padding: 5px; font-family: sans-serif; font-size: 12px; text-decoration: none;"&gt;Display rendering mode&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-5166466572821089769?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/5166466572821089769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=5166466572821089769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/5166466572821089769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/5166466572821089769'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2008/08/ie-rendering-modes.html' title='IE rendering modes'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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-11119546.post-1424816312006793046</id><published>2008-03-28T18:51:00.004Z</published><updated>2008-03-28T19:09:39.694Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='procrastination'/><category scheme='http://www.blogger.com/atom/ns#' term='coursework'/><category scheme='http://www.blogger.com/atom/ns#' term='friends'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Spring cleaning</title><content type='html'>&lt;p&gt;Yesterday, I somehow decided that I'd pick up where I left off with this blog. I thought perhaps blogging would help me in some way, as my life's probably more confusing and chaotic than it was three years ago. However, I happened to read some of the old posts today and decided that perhaps a fresh start was a good idea!&lt;/p&gt;
&lt;p&gt;So, as of a few minutes ago, all but one posts have been deleted. This also saves time cleaning up the comments. I was a little impressed with them actually. Many of the comments were addressed to me (as Smiler), and some even included the post's title. Granted, it's straightforward, but it was unexpected.&lt;/p&gt;
&lt;p&gt;Returning to the present, today's been another disappointment. After wasting the morning watching TV, I decided to dress and do some work. I abstained from climbing in Tunbridge Wells so I could do some work, and while I've done some, there's not much to show for it. Unfortunately, my lack of productivity seems inevitable.&lt;/p&gt;
&lt;p&gt;So tomorrow, hopefully, will be more productive. Complete at least one piece of coursework and catch up with friends at the pub in the evening. Who knows, I may even get onto another piece of work!&lt;/p&gt;
&lt;table width="80%" border="0"&gt;&lt;tr&gt;&lt;td&gt;Days to Lake District holiday:&lt;/td&gt;&lt;td&gt;&lt;i&gt;4&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Days to start of term:&lt;/td&gt;&lt;td&gt;&lt;i&gt;16&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p style="text-align: center; font-style: italic;"&gt;Listening to the Moody Blues, "The Collection"&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-1424816312006793046?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/1424816312006793046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=1424816312006793046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/1424816312006793046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/1424816312006793046'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2008/03/spring-cleaning.html' title='Spring cleaning'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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-11119546.post-249791496888516179</id><published>2008-03-27T23:08:00.006Z</published><updated>2008-03-27T23:37:54.454Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='university'/><category scheme='http://www.blogger.com/atom/ns#' term='growing up'/><category scheme='http://www.blogger.com/atom/ns#' term='coursework'/><category scheme='http://www.blogger.com/atom/ns#' term='relationships'/><category scheme='http://www.blogger.com/atom/ns#' term='friends'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Blogg's blog of blogging</title><content type='html'>&lt;p&gt;I've never really known what to make of blogging. Granted, I started this blog three years ago, apparently with the best intentions, but look at the date of the last post: 6th May 2005! The thing that gets me is who cares? Why would anyone want to read what I have to say?&lt;/p&gt;

&lt;p&gt;Well, why do I feel I have to say it? Blogging is a form of escape, or voicing one's opinions, telling the world how you feel and what you think, even if it's not listening. After all, if it makes you feel better, does it matter whether people care? It's already served its purpose. Maybe it's because I naturally expect reward for my efforts. Some feedback is always nice when you've performed some unordinary act (perhaps blogging is ordinary now though?), so I guess it's only natural.&lt;/p&gt;

&lt;p&gt;Anyway, I'm certain no-one cares about the first two paragraphs of this post. What I really mean to say is: I forgot this blog existed, and in my absence the comments have been swamped with spam. I mean really, who spams blogs? What a sad reflection on the modern world. So anyway, perhaps now I'll keep this blog a little more up-to-date. After all, my life's a little more interesting now!&lt;/p&gt;

&lt;p&gt;What can happen in three years? Well, in adolescence, what seems like a life time! Since 2005, I've completed my A-levels, jumped through UCAS hoops to be accepted by ECS in Southampton and completed the first year of my electronics degree. In the same time, I've had several relationships, formed new friendships, moved away from home and generally grown up a bit. After all, I'm writing this aged twenty! And really, twenty isn't old.&lt;/p&gt;

&lt;p&gt;So now, on this 27th March 2008, I have more pressing concerns than whether I'll own an Apple computer and how well the Netscape beta performs (RIP Netscape...). I have a five page essay on magnetic plasma confinement and a 1000-word personal report for a somewhat complex lab completed before the break. This means I need to catch up on the maths that alluded me so last semester to understand the electromagnetic theory to write said essay. (Basically, last semester was close to a nightmare, but turned out as a very haunted dream.) So maybe now is an apt time to begin writing a blog again?&lt;/p&gt;

&lt;p&gt;Odd, as when I started this blog, I think I'd intended to avoid anything personal and stick to tech. &lt;i&gt;How times do change.&lt;/i&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-249791496888516179?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/249791496888516179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=249791496888516179' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/249791496888516179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/249791496888516179'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2008/03/bloggs-blog-of-blogging.html' title='Blogg&apos;s blog of blogging'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11119546.post-111011342834639918</id><published>2005-03-06T08:54:00.000Z</published><updated>2005-03-07T15:05:29.960Z</updated><title type='text'>Netscape Releases 8.0 BETA</title><content type='html'>&lt;p&gt;I was checking the news on &lt;a href="http://news.google.co.uk/" title="Google U.K. News"&gt;Google&lt;/a&gt; this morning, and came across an article reporting the release of a new &lt;a href="http://browser.netscape.com/" title="The Netscape browser homepage"&gt;Netscape browser&lt;/a&gt;. The existence of a new browser was nothing new to me; it had been well reported &lt;a href="http://news.google.com/news?&amp;q=netscape"&gt;previously&lt;/a&gt;. However, now that it has been released, I decided I should download it and see what it's like.&lt;/p&gt;
&lt;h3 class="post-sub-title"&gt;What it uses&lt;/h3&gt;
&lt;p&gt;As soon as you install Netscape 8.0, you can see the Firefox influence. That's because it's more than an influence; Netscape 8.0 &lt;span style="font-weight: bold;"&gt;is&lt;/span&gt; Firefox. However, Netscape aren't at all lazy - they've made plenty of changes &lt;span class="brackets"&gt;(which includes increasing the download size from 4 MB to 12 MB!)&lt;/span&gt;. As well as Firefox &lt;span class="brackets"&gt;(and therefore the Gecko rendering engine)&lt;/span&gt;, Netscape 8.0 also uses the Internet Explorer rendering engine.&lt;/p&gt;
&lt;h3 class="post-sub-title"&gt;Gecko and IE?&lt;/h3&gt;
&lt;p&gt;Yes, both. I have mixed views on this. It's obvious to see where Netscape were coming from: most of the Internet's web sites are (unfortunately) designed specifically for &lt;a href="http://www.microsoft.com/ie/" title="Microsoft's Internet Explorer web browser"&gt;Internet Explorer&lt;/a&gt;. This is a problem many people have faced when using alternative web browsers, such as those based on &lt;a href="http://www.mozilla.com/" title="Mozilla; the home of Gecko"&gt;Gecko&lt;/a&gt; (Mozilla browsers), &lt;a href="http://www.konqueror.org/" title="Konqueror homepage"&gt;KHTML&lt;/a&gt; (Konqueror, Safari, etc.) and &lt;a href="http://www.opera.com/" title="The highly praised Opera web browser"&gt;Opera&lt;/a&gt;. The problem is Microsoft, being the independent thinkers that they are, are not satisfied by web standards as set out by the &lt;a href="http://www.w3.org/" title="The World Wide Web Consortium"&gt;W3C&lt;/a&gt;. They like to make the web a "better experience" by adding little quirks which only IE understands. Also, IE just generally interprets certain HTML and CSS differently to other browsers (usually against the W3C recommendations).&lt;/p&gt;
&lt;p&gt;Netscape have attempted to overcome the problem of Gecko not rendering 100% of pages correctly by adding native support for Internet Explorer. In practice, this does indeed work very well and is well implemented.&lt;/p&gt;
&lt;p&gt;Each web site has a set of rules &lt;span class="brackets"&gt;(easily accessible on the tab for each page by a small yellow shield)&lt;/span&gt;. These rules include how the page should be rendered; by Netscape (Gecko) or Internet Explorer. When using Internet Explorer mode, the page is sent to the Internet Explorer rendering engine (which any third party application can use) to render the page. To Netscape's credit, they've done a very good job at this integration. The user interface remains identical - in effect, you have Firefox hosting Internet Explorer. However, even the right-click context menu remains almost unchanged between "Netscape" and "Internet Explorer" mode. Only a few options are added and removed due to inabilities on each platform to do that task &lt;span class="brackets"&gt;(i.e. "View background image..." on Netscape is not available for Internet Explorer)&lt;/span&gt;.&lt;p&gt;
&lt;p&gt;So this is a very helpful and well implemented feature. However, what effect does this have on the Internet? Considering the recent popularity of Firefox, and the brand name Netscape holds, I can foresee this being a very popular browser. It could not only be a threat to Internet Explorer, as Firefox has been, but also Firefox itself. This is what worries me. At the moment, there are still many web sites which are IE specific in design, hence this new feature in Netscape. However, many large sites are moving towards standards based web site designs, which is no doubt having an adverse affect on other smaller sites which want to mimic the more popular sites. Now that this feature is available, there is no need to change your site to work in Firefox, or any browser other than IE. This &lt;span style="font-weight: bold;"&gt;must not&lt;/span&gt; happen. Standards are there for a reason &lt;span class="brackets"&gt;(many in fact)&lt;/span&gt;. They include accessibility, both by the disabled and those who use different browsers or devices, and standardisation so a site looks the same no matter what is rendering it.&lt;/p&gt;
&lt;h3 class="post-sub-title"&gt;A new user interface?&lt;/h3&gt;
&lt;div class="image-float"&gt;&lt;a href="http://photos6.flickr.com/5992604_2e0c7acb68_o.jpg"&gt;&lt;img src="http://photos6.flickr.com/5992604_2e0c7acb68_s.jpg" alt="Netscape GUI" /&gt;&lt;/a&gt;&lt;br /&gt;The Netscape 8.0 browser window, displaying your favourite blog.&lt;/div&gt;
&lt;p&gt;Netscape have done, mostly, a very good job of producing a new interface. The browser window itself is excellent, and is swaying me to switching from Firefox! Those of you who use Firefox &lt;span class="brackets"&gt;(and if you don't, you had better have a good excuse!)&lt;/span&gt; will know that it supports Themes. These basically change what the user interface looks like, and due to the flexibility of XUL &lt;span class="brackets"&gt;(the language used to describe these themes)&lt;/span&gt; the user interface can be completely changed. This is basically what Netscape have done with the user interface, and the changes are excellent. There are no native features of the OS - the title bar is skinned to blend in with the toolbar. It's all very soft and bumpy, which I think is a nice design. They've also chosen a pleasing shade of blue (I think this is the Netscape blue) with hints of orange, which also works very well. The interface is generally very comforting, which is likely to be what Netscape were aiming for.&lt;/p&gt;
&lt;p&gt;One of my favourite features of the interface itself is the flexible toolbar. Below the standard navigation buttons, there is a row of small numbered buttons. Clicking these loads new dynamic toolbars to the right. These toolbars include search fields, bookmark drop-down lists and live feeds. The live feeds include everything from headlines in several topics to Web mail checking and weather updates, and include any of your own from sites providing RSS news feeds. There are also stock quotes, maps, directory enquiries, and the usual bookmarks toolbar.&lt;/p&gt;
&lt;h3 class="post-sub-title"&gt;Other new features&lt;/h3&gt;
&lt;div class="image-float"&gt;&lt;a href="http://photos4.flickr.com/5992607_7c8ae212e2_o.jpg"&gt;&lt;img src="http://photos4.flickr.com/5992607_7c8ae212e2_s.jpg" alt="Options Dialogue" /&gt;&lt;/a&gt;&lt;br /&gt;The new options dialogue, showing the ugly caption buttons.&lt;/div&gt;
&lt;p&gt;As well as all of the great features of Firefox, Netscape have also added a few of their own. There is the form filler, which seems to be a re-working of the Firefox Password Manager &lt;span class="brackets"&gt;(although Netscape promise to improve its functionality for the final release, including form filling for typical name, address, email, etc. fields)&lt;/span&gt;, site trust features &lt;span class="brackets"&gt;(which basically defines global browser security settings for each web site and includes which renderer to use)&lt;/span&gt; and additional changes to the tab browsing interface and popup blocker. In general, all these features are very good, although I'm not 100% sure about the changes to the popup blocker; personally I think they open the browser the more pop ups rather than improving its functionality. Also, the sidebar has made a come back from Netscape 7.&lt;/p&gt;
&lt;h3 class="post-sub-title"&gt;The cons&lt;/h3&gt;
&lt;div class="image-float"&gt;&lt;a href="http://photos5.flickr.com/5992603_79f7a491cf_o.jpg"&gt;&lt;img src="http://photos5.flickr.com/5992603_79f7a491cf_s.jpg" alt="Page Info Dialogue" /&gt;&lt;/a&gt;&lt;br /&gt;The colours aren't quite right yet.&lt;/div&gt;
&lt;p&gt;Overall, my response is very positive towards Netscape 8.0. Admittedly, I haven't been using it much &lt;span class="brackets"&gt;(I only downloaded it this morning!)&lt;/span&gt; however it has proved to be very stable for a beta product. I love the new theme, but there are some minor technical issues I have noticed with the interface.&lt;/p&gt;
&lt;p&gt;The main browser window has obviously had a lot of work, and I'm very happy with what Netscape have produced here. However, the status bar could do with some regression - I prefer the facilities available in Firefox (RSS feeds are always displayed here, as are alternative "Page Styles").&lt;br /&gt;
My only other niggles lie in what lays under this cover. Dialogue boxes still look like Firefox dialogue boxes, which is good, but a few colour settings have slipped through the net (like the tab colours in the "Page Info..." dialogue) and I can't stand the caption buttons! All caption buttons are a grotesque shade of grey - they really should be coloured the same as the window background with subtle changes to saturation and brightness. Also, some of the interactive features &lt;span class="brackets"&gt;(such as drop down features from Live Feeds)&lt;/span&gt; don't always load correctly, but I'm sure this will be fixed for the final release &lt;span class="brakets"&gt;(and technically should be ignored in a review such as this!)&lt;/span&gt;. Also, it would appear that the search item on the toolbar cannot be customised! It's either Netscape or Netscape where search is concerned - I hope Netscape change this in a future release.&lt;/p&gt;
&lt;h3 class="post-sub-title"&gt;In conclusion&lt;/h3&gt;
&lt;p&gt;I really like the new Netscape. I remember when I first tried Netscape 6, I was not impressed by how bloated the suite was. There were also many problems, however these were mostly due to the Mozilla suite it was based on. Mozilla fixed all these issues, and Netscape 7 was much improved, but still nothing compared to the new Netscape 8.0. The new Netscape does not include an email client, address book, calendar or page writer, but I don't think that will matter. Email is continuously moving towards web mail, for which Netscape 8.0 has fully integrated support &lt;span class="brakets"&gt;(even supporting GMail :D )&lt;/span&gt;. I am concerned, however, by the massive increase in download size. I cannot comprehend how 8 MB has been added to the download over Firefox. The theme can surely only take one or two megabytes, and the Internet Explorer rendering engine is built into Windows! Hopefully, this will also be fixed for the final release; not many people like downloads as big as 12 MB.&lt;br /&gt;
My only other concern is how Netscape will manage this on Mac OS X. While Firefox is already well established on Mac OS, Internet Explorer has long been forgotten since the advent of Safari. This also interests me as I hope &lt;a href="http://www.aol.com/" title="America Online"&gt;AOL&lt;/a&gt; will finally adopt a decent web browser; i.e., Netscape 8.0. Netscape is now a part of &lt;a href="http://www.timewarner.com/corp/" title="AOL Time Warner; a force to be reackoned with"&gt;AOL Time Warner&lt;/a&gt;, and I would hope that the work that has gone into the new Netscape browser will not go unnoticed by AOL. This would make an ideal browser for them, as it supports Gecko and Internet Explorer, which will make the transition from their over IE-friendly "AOL Today" type pages far easier for them, while still supporting the very latest web standards. Firefox also provides a very easy bed to work on, with fast executing code easily implemented through XBL and JavaScript to support AOL's login features.&lt;/p&gt;
&lt;p&gt;If this is a sign of what can be done with Firefox, then I await the rumoured &lt;a href="http://news.google.com/news?&amp;q=google+browser" title="Apparently, Google are looking at the browser market too!"&gt;Google browser&lt;/a&gt; with great anticipation!&lt;/p&gt;
&lt;p style="font-style: italic; color: gray;"&gt;N.B.: As you may have noticed, I'm not a big fan of AOL. The few months we used it, it drove me mad. I cannot comprehend why any body would want to pay to use such a poorly constructed web browser. AOL's service as an ISP, however, is very good. Unfortunately, they insist you use their software to connect.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11119546-111011342834639918?l=asmiler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://asmiler.blogspot.com/feeds/111011342834639918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11119546&amp;postID=111011342834639918' title='140 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/111011342834639918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11119546/posts/default/111011342834639918'/><link rel='alternate' type='text/html' href='http://asmiler.blogspot.com/2005/03/netscape-releases-80-beta.html' title='Netscape Releases 8.0 BETA'/><author><name>Smiler</name><uri>http://www.blogger.com/profile/12459961664221663625</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>140</thr:total></entry></feed>
