Masters of Rational Simulation
Thu, 07/24/2008 - 22:00 — edgar
From July 8th to July 20th I attended the 15th Annual ACT-R Summer School and Workshop. It was an extraordinary experience: I learnt lots of new stuff about ACT-R, cognitive modeling, and lisp; I had the chance to meet John Anderson and many fellow researchers; I met excellent friends; and I also worked very hard on the daily assignments and final summer school project. All in all, it was all great, and to top it all, John Anderson granted me (and all the summer school students) a Masters of Rational Simulation.
- Add new comment
- Español
Snail speed experiments
Wed, 07/23/2008 - 20:07 — edgar
I've been struggling to get some Feature Selection experiments done. Unfortunately, I am dealing with huge amounts of data, my lab computer is extremely slow (even to run an OS), and my home computer is unstable. Thus, after trying all those options, I ended up using a computer on another lab. It is not fast, but at least is stable and not too slow. Still, I don't expect the first part of my experiment to be finished until the end of the month. In the meanwhile I'll keep busy catching up with pending work.
Unsuccesful attempt
Mon, 06/23/2008 - 22:34 — edgar
I was waiting for a domain to become available since April 13th (when it expired). On May 15 it was marked for deletion by the original registrar. After 30 days in redemption period, its deletion was pending for 5 additional days, so it was supposed to become available on the 21st of June.
My mistake (at least the worst mistake, I think,) was to trust the who.is website. It seemed to provide finer grained information about the status of the domain than other whois web-based providers, but was a bit outdated.
So, who.is was still showing the target domain as pending deletion on the 21st of this month, which then seemed suspicious to me. I checked it out on whois.net and discovered that an opportunistic domain registrar cyber-squattered the domain. In fact, the site eacosta.com (the link is wrong on purpose) is up since that very same day, showing very bad taste advertising that is nor related to me, nor any other acronym. So please, don't visit it, since its purpose is cast into doubt.
I was a bit disappointed after waiting for so long, but there may be nothing I could have done to avoid it after all (these guys are professionals,) so it is not something I should really worry about. What upsets me is not the fact that someone else bought the domain before I had a chance, but that it was someone who doesn't have a legitimate interest in the domain name.
I wrote this post with the explicit purpose of helping to create awareness of this kind of practices.
How to easily track blogs and (some) websites
Mon, 06/16/2008 - 23:56 — edgar
Although many people know how to take advantage of feeds, I think there are also many people that would benefit from knowing a bit about it.
This post is for those who have wondered whether is it possible to track several blogs without having to visit them periodically.
Let's consider the following scenario. Assume you regularly visit some blogs and websites. Some are updated daily, like news websites, but the update frequency of other sites is irregular (new content may be added several times a day, only some days, or every now and then). In such cases, it may often happen to you that you visit a website to notice
- that nothing has changed since your last visit, or
- that you missed some news because you forgot to visit it for a while, or because you didn't expect new postings during the time you was away.
Sometimes, it may also happen that you missed a lot of updates, making it hard to know which contents you haven't read yet. Some of these issues may happen even if you have bookmarked all of your frequently visited websites, and have the habit to visit them regularly.
On the one hand there are cases in which it is a waste of time to visit a site that haven't been updated. On the other hand there are cases in which it is just hard to catch up with the content that you haven't seen yet.
If you struggle with that, then you should use a feed reader.
In its most basic form, a feed is a file that contains recent updates to a site. Many websites, specially those frequently updated, publish one or several feeds in order to make it easy to know in a timely manner what is updated.
A feed reader* is a program that monitors the feeds published on websites, and displays the updates. There are many, many feed readers (they are also known as news readers, or *aggregators). So, the problem is not finding one, but rather one that you will like (here is a list to start with.)
The only thing that you have to do in order to start using a feed reader is to register the feeds you want to monitor. In many cases the reader can even discover the feeds published on a given website.
You can think of it as subscribing yourself (your reader) to a website updates service, but it is much better than that. First of all, it is not a subscription, since you are not registering yourself to the target website, but rather you are registering the website to your reader. Thus, you don't have to provide any personal information (such as email address) in order to get subscribed, and you control your subscriptions from the reader (i.e. you don't have to ask every website to (un)subscribe you).
Secondly, a reader allows you to know about all the updates in one place, whenever you want to. So, using a reader means that you don't have to miss anything, nor pay round visits to many websites, nor visit a website that hasn't been updated.
If your computer is often hooked to the internet, your reader can monitor the feeds on the background, so you don't need to have the reader window active all the time. And if you use a web-based reader, then you don't even need to install anything on your computer, nor to be on-line so the reader can monitor feeds.
Some readers allow you to archive, categorize and share the posts that you read, so that readers double as a useful tool for keeping track of what (you like of what) you read on-line.
If a website doesn't publish its modifications on a feed, it is possible to create a feed outside of the website (which is known as scraping,) and then subscribe to the feed with your feed reader. You can try it at feed43.com.
Feeds are also used for many other things. For example, Flickr publishes a variety of photo feeds. Calendar and organization services (such as remember the milk) generates feeds that can be used to notify about events, important dates, appointments, shopping lists, etc. Feeds can be used to keep people updated about what you are doing (e.g. jaiku,) listening (e.g. last.fm,) studying (e.g. citeulike,) and so on.
A group of feeds can be merged together into only one feed. And in general, feeds can be consumed by many programs (not only feed readers) such as photo displays, calendars, media players (you should try miro), maps, and so on, making them a very practical way to share and combine information that changes frequently. You can try your own feed combinations at Yahoo pipes.
BTW, if you want to monitor this site, simply subscribe to its feed. You can also subscribe to this site comments.
Requirements for my sites
Sat, 06/14/2008 - 18:14 — edgar
This is the second post of the series about the making of this site, and it is about the requirements for my new sites with drupal, and how they were solved.
These were the main requirements:
- I wanted to be able to create several sites under the same domain (eacosta.org).
- The sites had to share information and probably content, but had to have their own content, menu, features, and appearance.
- The sites had to be bilingual.
- Different kinds of users could be created. i.e. friends, and family.
- Different kinds of users would be allowed to reach (and probably create or modify) content that is not public.
- Each site had to provide feeds by language, by topic, by access level, and combinations of them.
In the previous post of this series I explained that I chose the latest version of drupal to create my sites. My choice had some temporary disadvantages because at the time there were very few modules and themes available for drupal 6. As of today, there are still very few of them for drupal 6 as compared to drupal 5, but the gap is steadily shrinking, which is good news.
What this circumstance meant was that I had almost no choices regarding how to build my site, and satisfy my requirements. Luckily, I've found solutions for requirements 1 to 5, in fact, I have tried several solutions for some requirements.
Requirement 1 alone can be solved with a multi-site configuration, which is a built-in feature of drupal.
Satisfying requirements 1 and 2 together is a bit tricky though. It can be achieved with a multi-site configuration, in which all the sites share the database, but in order to bring unique features to each site it would be necessary to individualize some database tables using table name prefixes. Additionally, some content access modules have to be in place in order to control the content that is displayed on each site. If you think it sounds complicated, it is just too messy. I tried different modules and configurations, but I was so lucky that the Domain access module was released. This module doesn't require a multi-site configuration and allows you to configure all your sites and database juggling from the admin pages, as opposed to configuration files and database surgery.
For requirement 3 I used the Internationalization module. This module is a bit confusing at first, specially since it has lots of configuration sections and options, but it is a great module that makes drupal almost completely multi-language. This module allows the definition and use several languages, it doesn't translate the content, but allows grouping together all the translations of each piece of content, which is very convenient. Besides, there is a number of contributed translations of the drupal interface, and you can even modify these translations to your likings.
Requirement 4 is an standard feature of drupal. I just had to define user roles, define permissions for each user role, and then create users, or allow user to register to the site.
For requirement 5, I am using the “Taxonomy access control module”: http://drupal.org/…onomy_access, which allows me to define access permissions to content for user roles according to the content's category. So, I have to have content categories for each access level (public, private, restricted, etc.), and each content piece has to belong to at least one of these categories, pretty straightforward I think. I had to patch drupal in order to allow the Taxonomy access control module to work with the Domain access module, but it was not hard, the patch is included with the Domain access module.
As I said before, requirement 6 is a work in progress. I would need another module to satisfy it, but for now my sites can survive without this feature.
Among other modules I am using in order to make my life easier are the views, the five star, the captcha, the pathauto, and the archive modules.
In the next post of this series I am going to sketch the way I worked out the appearance of this site.
Why drupal?
Fri, 05/30/2008 - 21:26 — edgar
All right! let's start posting something in this blog. I am planning a series of posts about the making of this site. You may not need, nor want to know, but I had a hard and fun time learning to do it, and I think it is worth sharing it. This is the first post of the series, and it is about the platform I chose for my websites.
First, I bit of background. I am a self taught programmer. I learnt to create web sites just for fun a very long time ago, but then I wanted something more challenging and moved on to other things, like providing a site with styles and functionality. So, I spent a good amount of time learning and teaching how to create computer systems for the web. Once, while I was working on a mathematics website, I came with the idea of creating a system that could make it easy for many people to create and modify different kinds of content for the web. I invested some time on that, but I really didn't have the time and energy to work on it.
Nowadays, there are hundreds of such systems, they are known as Content Management Systems, and they are getting better and better. So, it was just natural to use a CMS for my sites. the problem was which one should I use?
To narrow down my choices I started by defining what kind of functions I wanted for my sites. I needed a blog, but almost every CMS can be used for blogs, so that was not an issue. I wanted, however, something that could be used to create other kind of contents, so, the CMS should be capable to go beyond a blog, and as I learnt later, it had to be very flexible, i.e. it had to allow me to easily add functionality or kinds of content. The number of options was still huge, so I added more requirements. It had to be and open source CMS (i.e. modifiable and free), able to run on Linux (my favorite Operative System), preferably written in PHP, able to run multiple sites, multilingual, and very flexible.
Then I tried a handful of CMSs: drupal, typo3, mambo, and joomla. I got very frustrated with the lack of organization and documentation for mambo and joomla (note: that may have changed over time), so I dropped them very soon. Then typo3 looked amazing, it is the most flexible CMS ever, the documentation was neat, and the contributed help was also great. However, after spending months reading and trying, I wasn't still able to create a site that was ready to roll. In the end I found it very hard to keep all the details about using typo3 in my mind, so I tried drupal.
The reason I left drupal till the end was that I knew it is very popular, and I wanted to first give other options a try. I was unsure about the flexibility of drupal, so I compared drupal to typo3, and it turned out drupal is almost as flexible as typo3. So, it was decided.
It turned out that setting up a very basic, but functional site with drupal for the first time doesn't take more than 30 minutes, and you don't need to read pages and pages of documentation to do so.
I first created some sites with drupal 5, and I liked it. Then, when I was about to start my blog, drupal 6 sought light, and I soon jumped to that train (not without some problems).
Drupal's interface is kind of ugly, I like wordpress' interface better, but that doesn't matter since I was looking for the best tool for my purposes, and I know that, since drupal is open source, its interface will be improved and become prettier sooner or latter.
Drupal itself provides a basic, but powerful, set of features. However, it is very easy to add more features by installing contributed modules, which are readily available for an impressive number of functions. Changing the look of a site is also very easy by installing contributed themes.
Moreover, if you can't find what you need, it is possible to write a module or a theme, provided you know how. It is even possible to get funding to do so.
Drupal requires a web server and a database, but don't be scared. Drupal is in fact very easy to set up. Besides, most people would hire hosting services, and most paid hosting providers already offer hosting plans that include a hassle free installation of drupal.
Using drupal is also very easy, and you don't need to learn lots of configuration options to start creating a site. In fact you can learn incrementally as you go.
How come then that it took me three months to set up my sites? well, that is another story and I'll leave it for the next posts of this series.
It's shine time!
Sat, 05/24/2008 - 18:48 — edgar
It has been a long, long time since I first entertained the idea of having a bilingual site. Three months ago, after many more of research, I finally decided to put hands on (due thanks to AZ). I've been working on this blog during my spare time since then.
Often times I take too long to deliver! However, this blog is almost ready, and there are no reasons for longer delaying its official opening.
So, welcome to It's shine time!
Those who know me can tell how hard I look forward to be the best on everything I try. That is fine, however, it unnecessarily puts me on continuous stress, and every too often makes me extremely careful to the point that it takes forever to deliver. In turn, that makes me feel slow, saddens me, and distracts me, causing more delays.
The worst comes when it is no longer fun, and I end up delivering either because I am fed up, ran out of time, or because I have to. The good thing, is that I don't usually give up, so at least I don't end up completely defeated. In fact, I seldom fail, and most times my work is outstanding.
So, what is this blog about anyways?
Nothing specific, it is my personal blog, that comes to replace the old one. Here I'll be sharing happenings, news, opinions, and thoughts.
I wanted my sites to be bilingual because Spanish is my mother tongue, whereas for the last 3 years I've been living on a mostly English speaking environment. On the one hand, I maintain strong links with my home country, so I expect that to be reflected on my blog. Besides, I feel responsible for creating content in Spanish, specially for topics in which Spanish is underrepresented. On the other hand, I need to improve my English, I want to be a functional part of the community where I live, and communication is fundamental to that end.
So, this space is where I'll be writing for leisure and learning likewise (consider this an invitation to help me improve my writing.)
The title of the blog is just a personal reminder that a good job doesn't have to be perfect, and it often feels better to do little perfectible steps at a time, than trying a huge perfect leap. Moreover, it is a reminder that there is no need for wings in order to take off, and every little step is important and worth doing. Thus any time is a good time to bring another two cents and start to shine on.
Edgar Raul Acosta Villasenor
I am a PhD student at the Institute of Cognitive Science, Carleton University.
As experience is acquired on a target task, human performance becomes faster and more reliable. In my research I aim to model the evolution and co-emergence of knowledge representations that support expertise acquisition. More specifically, I am looking at how object attributes are untangled and how this process influences representations.
This web site is under construction, for now you can see my CV, and contact me.


