Functional Programming

Posted by igor Tue, 24 Jan 2006 14:09:00 GMT

http://lambda-the-ultimate.org/

Finally there is the chance to dive into another paradigm of programming, namely functional programming. Somehow a little bit neglected at the JKU, it is standard practice over here at the Edinburgh University. Maybe the reason for this is that Philip Wadler, the inventor of the Haskell functional programming language is a Professor at UoE.

But I think that the true reason for this is the beauty of functional programming languages. Surely not every problem can be easily solved with functional programming but for the areas I have seen so far, it seems to be a very elegant and succinct approach!

So far I was able to stick my nose into Haskell and OCaml. The nice thing about functional languages is that once you have understood the underlying concepts, it is very easy to learn a “new” functional programming language. Much easier than it is to learn a new imperative language.

Finally there is this funny quizz where you are asked to distinguish between a programming language inventor and a serial killer. Try it out, it is really funny!

TLP - Thread Level Parallelism: UltraSPARC-T1

Posted by igor Thu, 08 Dec 2005 23:02:00 GMT

In my last post I have written a little bit about Thread Level Parallelism and since SUN has officially released its first processor based on TLP I thought this is a good opportunity to write a little something about this nice processor.

Instead of increasing the size of the pipeline by dividing pipeline stages up into smaller units in order to be able to increase the processor tact rate and then fail to keep the pipeline full (as Intel has done it with the P4), SUN did something different. They concentrated on throughput and went away from the classical ILP paradigm.

Their new processor consists of up to 8 cores processing 4 threads per core. So this means that 32 threads can be processed “simultaneously”. Each core can process one instruction every cycle. There is a L1 cache per core and a shared L2 cache. In order to provide the high memory bandwidth necessary to “feed” 32 threads, a crossbar interconnects scheme routes memory references to a banked on-chip level-2 cache that all threads share. All this means more throughput, less energy consumption and more efficient usage of resources.

Are you still reading this post and still interested? Then you should check out this description of the niagara architecture.

Prof. John Hennesy on the Future of Microprocessor Architecture 3

Posted by igor Wed, 30 Nov 2005 23:55:00 GMT

Prof. John Hennessy, erstwhile Director of the Computer System Laboratory, now President of Stanford University, visited the University of Edinburgh to receive a Honorary Degree and give a public lecture on the Future of Microprocessor Architecture.

The lecture was very well structured and thrilling, especially the part about Thread Level Parallelism and a preview of SUNs upcoming Niagara Architecture. After having spent quite some time with a famous book written by Prof. Hennesy, namely Computer Architecture: A quantitative approach, I was really anxious to see this talk.

Prof. Hennessy led the RISC (Reduced Instruction Set Computer) team at Stanford in the early 1980s and was a cofounder, in 1984, of MIPS Computer Systems, now MIPS Technologies. He is a recipient of the 2000 John Von Neumann Medal, the 2000 ASEE R. Lamme Medal, the 2001 Eckert Mauchly Award and the 2001 Seymour Cray Award. He is a member of the National Academy of Engineering and the National Academy of Sciences, and he is a fellow of the American Academy of Arts and Sciences, the Association for Computing Machinery, and the Institute of Electrical and Electronics Engineers.

So all in all this guy has done quite some stuff for computer science!

Computational Thinking Seminar Series

Posted by igor Wed, 09 Nov 2005 10:03:00 GMT

Professor Alan Bundy has initiated a series of seminars on Computational Thinking. Thus every first Wednesday of each month at 4pm, one can attend some very interesting seminars from various fields of computational thinking. Today Prof. Vicki Bruce gave her talk ‘About Face’ and how our understanding of face perception has been influenced quite profoundly by computational developments. It was very interesting and I’m already looking forward to the next presentation which will talk about the area of ‘Computational Linguistics’.

OpenBSD 3.8 is out!

Posted by igor Sun, 30 Oct 2005 19:52:00 GMT

My favourite OS ‘vendor’ released a new version of their superb operating system OpenBSD with many new features. This has also been announced on undeadly. Hopefully I will soon find some time to upgrade my laptop.

Ruby On Rails and Typo 1

Posted by igor Sun, 30 Oct 2005 19:52:00 GMT

Here at the Uni of Edinburgh I started to learn Python because it is the defacto language used in many courses. Python is really nice and easy to learn but to my suprise I stumbled over Ruby again and a lot of things happened since I heard of the language some years ago. First of all there is really good documentation out there speeding up the learning curve and emphasizing Ruby’s features. There is a very powerful open-source web framework in Ruby for writing real-world applications with less code than most frameworks spend doing XML sit-ups. Just take a look at this :)

After I had a look at Ruby on Rails I was amazed about the fact that only very little code is necessary to implement real world web applications. Now I have implemented some JSP webapps using various frameworks like Spring, Hibernate, Struts, etc., but none of these technologies are as easy and straightforward to use as the Ruby on Rails web framework. Thus I set my OpenBSD powered server up with Ruby and Ruby on Rails and the first thing I did was to install Typo, a very cool engine for blogging. The setup was really easy and straight forward. I used Wordpress for blogging before but I have to say that Typo beats Wordpress in many important areas:
  • The administrative interface is much better and easier to use
  • PostgreSQL is supported as DB backend
  • Ajax support eliminates all those nasty manual reloads, enabling “almost realtime” previews etc.
  • ...
So let’s see how much time I can scratch together in order to really learn Ruby and implement a “real world” application with it.

Sendmail and Majordomo

Posted by igor Tue, 04 Oct 2005 17:07:00 GMT

Finally I got around setting up Majordomo with Sendmail. Yeah, I know, you are thinking: “Why the hell doesn’t he use Postfix and ...put your favourite mailing list software in here… to do the job?”

Well, the reasons for that are pretty simple. Sendmail is in the base install of OpenBSD and thus very well maintained and secure. Majordomo is just simple to set up and get going and all it needs is Perl which is also included in the base OpenBSD install. Basically all there is to it is to follow the install procedures which are pointed out after a successful:

$ cd /usr/ports && SUBDIR=mail/majordomo make install

In order to make everything work together with sendmail though, it is necessary to reconfigure sendmail a little bit. Basically the following line will do the trick:

define(`confDONT_BLAME_SENDMAIL',`GroupWritableIncludeFile, GroupWritableIncludeFileSafe')

Detailed information about what this setting does can be found right here.

Older posts: 1 ... 4 5 6