Semester end wrap up

Finals week starts from tomorrow and that means another semester has come to an end. I’ve done a number of interesting things this semester, and I think it would be a good idea to tie them together at the end.In many ways this semester has been a continuation of things I started earlier and a starting point for new things. I cna’t say that I wrapped up many things, but I don’t think that’s a bad thing. In fact it’s probably a sign that I have things to keep me busy and interested. So here goes with the end of semester wrap up:

1. My research work

Over the summer I started doing work with a professor on using formal grammars to understand pattern formation. Summer was very much a ‘testing-the-waters’ phase. We worked on two separate projects: automated urban design and auto-generated art in the hopes of being able to find some underlying rules for creating patterns. Though we produced some good work (and a number of good looking graphics), there was still a lot to be done. This semester we decided to drop the urban design aspect and instead refocus on a more basic topic: representing general patterns as grammar rules for artificial languages. To do this I’ve been working on building a simple language to describe languages and then generating samples of those languages, which can then be visually displayed. I hope to have a working version ready by the end of January. This project has been interesting because I got to learn a lot about language design and it was my first time writing a lage piece of software as part of a team. It also fit in very well with my programming languages course, speaking of which…

2. Programming Languages Course

I was supposed to take an algorithms course, but due to a scheduling conflict ended up taking a programming languages course as an independent study instead. I’ve always had an interest in programming languages and working with formal grammars over the summer furthered that interest. Taking the course gave me a chance to formally study about my interests and introduced me to a number of new and interesting ideas.¬† I learned about a number of new languages on the way, including ML, Prolog and Smalltalk. The course also helped to clarify some earlier ideas I had about what constituted good language design. I realized that syntax can be very impotant and that a lot of times appreciating the full power of a language involves a steep learning curve, but it can be well worth it. And this course led me to one of my best discoveries of the semester, namely…

3. Scala

I’ve liked the Java platform, but never had much love for the language. However, I recently discovered Scala, a really nice statically-typed, multiparadigm language. It feels a lot like Java, but is much cleaner. Its features of note include a good merging of object-oriented and functional paradigms, a clean way to reuse code without the problems of multiple inheritance, static typing and good interaction with existing Java code. I’ve started a series evaluating Scala as an alternative to Java. I’m planning on using more Scala next semester, so we’ll see how that goes.

4. Beginning my electrical and computer engineering major

I’m pursuing an electrical and computer engineering major at college and this semester was the first course in the sequence: a basic digital circuits course. I enjoyed this course, learned a lot and made some good friends. I like dealing with low level logic gates and pushing bits around as much as I do slinging functions all over the place. I’m taking the second course in the sequence next semester alongside a computer organization course. I’m looking forward to having another exciting semester coming up.

5. Web design work

I’ve been making websites for a good few years now, but I’ve only started takin it seriously this semester. I’ve started to design websites for a number of student groups on campus as well as preparing templates for ePortfolios for foreign language students at our college. I started using Dreamweaver and despite my normal scepticism for WYSIWYG tools, I quite enjoy using it and it beats manually managing links. Most of my work isn’t online yet, but it should be within the next few months¬† (once students start using it). This is certainly I’ll be pursuing and considering that I plan to move to paid hosting early next year, I might just end up making my own WordPress theme.

6. A new focus on blogging

I might have put this last on the list, but it’s certainly not the last thing on my mind. I’ve realized that if you’re doing things that are fun and interesting, there are probably a lot of people out there who would like to know about it. I think being able to communicate your work is as important as actually producing it. I’m looking forward to many more semesters of fruitful blogging ahead.

That basically wraps it up for things I’ve done this semester. There’s a bunch of things that I have planned for next year, but I think I’ll save that post until the start of next year.


Discovering Dreamweaver

Over the past few weeks, I’ve been doing a considerable amount of webdesign work. First off, there is my personal website, which I’m trying to make more serious and comprehensive. Besides that I’ve also been working to redesign my college Computer Science Department’s website. I have a part time job with the Foreign Language Resource Center at college and they’re launching a new program to give students an ePortfolio where they can store and show information regarding their course work and other language experience at college. Originally the plan was to have some art students design a set of templates, but I was rather appalled by the low quality of their work (and the extremely long time they took to create it) so I decided to just make my own.

For my personal site and the CS department’s site I was using a Emacs with the html-helper mode and manually managing things like links and so on. Though it was very nice to have hotkeys wired to inserting specific tags, some things (like making site-wide changes or changing the structure) were simply too time consuming. I’ve known that Adobe Dreamweaver is pretty much the current gold standard for website design, but I was rather reluctant to use it because I’m not a big fan of WYSIWYG editors. However, the lady in charge of the Foreign Language Resource Center had made it quite clear that no matter how good my template was, she couldn’t use unless she had a Dreamweaver Template file for it and could be edited from Dreamweaver.

I really didn’t need to actually make a new template, because the ePortfolio project would have gone on without me. However, it’s times like this that the hacker inside simply won’t take no for an answer. So I decided to just sit down and learn just about enough Dreamweaver to get the job done.

However, after using Dreamweaver for a few hours and creating a full skeleton of a portfolio in record time, I’ve decided that there is no going back for me. First things first, Dreamweaver fully unites WYSIWYG editing and roll-your-own code editing. I wouldn’t have used it if editing code was difficult or impossible. The instant preview is very handy to show just what is going on without needing to fire up a browser. More importantly the preview lets you see exactly how your code maps to elements on screen, something which is very handy if you are trying to nail down a tricky layout.

I’m still not a fan of using the WYSIWYG mode to build the layout, because I like having an intimate knowledge of what exactly my code is doing. At the same time, I’ve realized that a WYSIWYG mode does come in very handy once the layout is set and all that remains is to put down the content. Auto insertion of tags is nice, but not having to look at tags at all when you’re making your content is even better. That being said, I’ve seen that Dreamweaver has a tendency to insert and prompt for element attributes that I would rather set using CSS. This is a mild bother, but is acceptable in view of other productivity boosts that you get.

Templates and automatic link management are two other features that I’ve come to love. Templates alone are a massive productivity boost, especially since you can set distinct editable and non-editable areas. This lets you define exactly what parts of your pages stay constant across sites and what can change. The larger your site gets, the more important this becomes. On the same note automatic link management is an equally useful feature. Most than once have I found myself rearranging my pages and having to manually go about changing links. I haven’t had a chance to properly utilize this feature, but I intend to do so in the future.

Coming up ahead

I’ve decided that I will be using Dreamweaver as my tool of choice for future web design work. Things I would like to play around in the immediate future would be multiple templates for a site, as well as testing out the site management tools. I’m also going to be migrating my exciting sites to Dreamweaver and will look to see if I can actually develop them faster in Dreamweaver. I know I’ve only scratched the surface of what Dreamweaver can do, but I think it’s going to be a fun experience learning more.