December 6, 2006

Firebug — A pretty good debugging tool

Firebug Firebug integrates with Firefox to put a wealth of development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.

The quote about says it all.  Firebug is a pretty good firefox-based javascript debugging tool.  It also does the DOM, HTML, and CSS.  You can actually alter CSS properties and see it show up on the screen.  Similarly, with the DOM, HTML, and javascript.  Wow!

Also, there are lite versions that work for IE, but it's a little more complicated to set up.

There are a few issues:

  • Firebug breaks our posting interface on the learning remix.  You have to disable it for that.
  • Sometimes, you have to disable and then re-enable it to get it to work on a particular page.
These said, the program is still in beta, so some of this will work out.  Further, the problems are not so severe that you really get hung up on them.  I recommend it.

November 30, 2006

Final Presentation Desiderata

The final project iteration is worth 200 points.  In your presentations for this iteration, I would like for you to include the following:
  • A diagram that shows all the software components and how they communicate in your project.  Examples of what such a diagram might like are included on Pages 279, 116–117, and 72.  You should include the external services you call, something the book does not do.
  • An assessment of what you might have done differently had you started the project knowing what you know now.
  • A summary of the feedback from the IS215 class.  Based on this feedback, how would your project need to change to work for a broad spectrum of users.

November 27, 2006

Web 2.0 and Knowledge Management

In case you were doubting the utility of Web 2.0, people have turned to it for knowledge management.  Hey, isn't that what we're doing with the learning remix?  Here's an interview with the CEO of ConnecBeam, the people behind Web 2.0 knowledge management.

November 14, 2006

Iteration 3 Criteria

Iteration 3 is our final and most important iteration.  It's the end of the project.  Based on my review of all projects in the two classes, I want you all to strive toward three simple criteria:
  • Your project must work cross-browser.
  • You must incorporate feedback from your peers and others (how you do this is up to you, but you must recognize it)
  • You must bullet-proof your project for public consumption.
I will judge the final iterations by how well they meet these criteria as well as the feature sets you were able to achieve.

November 8, 2006

Iteration 2 Prototype Review

We're off to the races with Prototype 2, and the masters students have made a strong showing.  I will post links to their sites as they make them available in the next day. 

All students should post their reviews using the tags: GroupName groupproject prototype2 review, where GroupName is the name of the group and the rest are as usual.

By Iteration 3, I want all groups to have their mash-ups working equally well on IE and Firefox.  I want all DOM issues cleaned up.  That little bit of work will make the code base much easier to work with.

Here are my remarks from the presentations:

EducationChuser:  This group has made great progress in its user interface since Iteration 1.  They now have directions for how to use the site.  One great new feature is the ability to add user reviews of universities.  One area where I would counsel this group to exercise caution is in the features they add.  I'm not sure the CNN feed on the site adds more than marginal value.  They're thinking about adding events near the university which might be better (but they should not underestimate the challenge of EVDB).  They're also thinking about allowing university administrators to add information.  Very interesting.

Eventmaps:  This group has an amazingly simple interface that probably requires no instructions, but they've made good progress exploiting the difficult EVDB interface.  I particularly like their calendar date interface.  They've added an ability to input into EVDB via the site and want to migrate this to keeping the user at their site inputting events using the API.  Sounds tough but good.  One issue this group had was with their presentation.  They were trying to demo a feature, but it did not show up in any of the events they had.  A good approach here would be to take a screenshot of it working and use that to illustrate what you've done as a stand-in for when the demo breaks.  Not quite as good as a working demo, but it shows where you've tried to go.

Webfinancial has made tremendous progress with XBRL.  Ryan (who should blog more) has done the back end work.  Essentially, he broke down the rather complex XBRL data format into simple XML datagrams that the rest of his group can use to update the web page.  Tony and Tanika did a nice job with a new summary display of the data they are pulling.  Vershon (who also needs to blog more) should also start using elements of this data stream by the next iteration.  This group has done a tremendous job sorting out their data stream so that they can get something useful out of it.  They should focus their future efforts on making sure all that that work is effectively displayed by the front end.

Kayakers wins "the most progress" since the last iteration award.  Lori and company got rid of the cross domain security issues they were facing by using a php pass through proxy to route all xmlhttprequest object requests through their own server.  Lori also made effective use of the venkman debugger to get rid of numerous other issues in their code.  The application has sped up rather dramatically and looks nice.  The group was discussing dramatically updating their html for more aesthetic appeal.  Other groups may also feel this urge.  Let me advise that all think twice before doing this.  Recall that our DOM updating methods depend on the DOM being well-formed.  The more complex your html, the more likely you are to make a mistake and not have a well-formed DOM.  I like the group's idea of using more data elements from the kayak api.

Concerquest continued the trend in IS449 of sowing some back-end oats to get better performance.  Essentially, the MapQuest API only lets plots 10 points at once.  However, the events service they are using, EVDB, may provide many events.  Jason (who needs to blog more) developed a mechanism for looping through a set of returned events in groups of 10.  Todd (who blogs almost enough) focused on converting the returned events into a tabular format.  I like the group's ideas about inputting data into he EVDB database (Joe's future contribution).  My sense is that they might be better off limiting the energy they put into parsing the text values of the returned EVDB elements.  Also, their results within a 100 mile radius include Texas.  The simple fix here is to just not give the 100 mile distance.

October 29, 2006

The Google Maps API

A number of groups are using the google maps API.  The API documentation itself seems good, with examples and all, but it might be kind of dense.  I have a series of simple examples that I downloaded as part of an e-book ($8.50 at Pragmatic Programmer).  They're here.

 Here's a little guide to what they are all about:

  • Files 1–5.html:  Show basic map set up.  Everyone has pretty much mastered this.  The e-book gives a nice user-friendly walk-through.
  • Files debug1–5.html:  Show how to turn on and off various map controls.  They also illustrate how to programatically control the map interface.
  • Cities-nomap.html illustrates how to create a table using an input form.  It's purely DOM manipulation and provides background for what is to come.  No maps are involved.
  • cities-map1–2.html:  Show how to add markers for cities when you know the lattitude and longitude.
  • cities.html looks up address lattitude and longitude using a third party geocoder.  This has been a sore point for a number of groups.  It requires using a pass-through proxy.  Currently, you can run those on yipe using php.  Google maps does not provide access to its geocoder.  You must use one from a third party.  Warning! My file does not use the pass-through proxy because I am not hosting it on yipeTherefore, my file does not work.
Regarding the last point, there are a number of geocoders.  Here's a list:
  • geocoder.us: Works for US locations.
  • Maxmind has a 137MB list of city addresses with latitude and longitude.  This will surpass your directory allocations, but you should be aware of the resource.
  • Worldkit provides a geocoder for world locations like geocoder.us does for US locations.

October 26, 2006

Finding tag intersections

Search using ' +' (Rajyalakshmi's Blog) I was trying to synthesize some of the blogs by using the search provided on the right hand side of our learningremix site. When I enter a keyword say for example 'educationchuser' and hit search, it takes me to this page.

Here's how to do that.  You need to look at the intersection of tags.  As it turns out, finding tags uses the search functionality but not in the same way the search box does it.  You have to specify the url as so:

http://learningremix.net/mt-f2006integ/mt-tags.cgi?tags=educationchuser+groupproject+review

This lets you get the intersection of posts tagged educationchuser, groupproject, and review.  In my case, that brought up 10 posts.  The easy way to do this is to click on a tag in the tag cloud and then adding plusses with the additional tags as shown in this part of the url:

tags=educationchuser+groupproject+review

I think this method achieves what Raji was trying to do.

October 23, 2006

IS449 group building exercise for the end of the week

Right after the presentations, I sent out an email to the class about a group building exercise.  Only a few students actually received the email.  So, the fall back is to do the following by Friday as reproduced from the original email:

One issue that has come up in talking with a number of you is that group dynamics may not be as productive as they could be.  Therefore, I'm going to make an additional assignment due by the beginning of class next week that will count as one of your five individual assignments.  For each group, I want the following:

  1. A statement of tasks the group has to carry out to complete the project.  This might include coding, quality control, research, presentation preparation, etc.
  2. Assignment of tasks to individuals.
From individuals, I want on a piece of paper:
  1. Your individual assessment of how your group's work has proceeded so far.
  2. How you personally intend to contribute going forward.
  3. A statement of what you personally will get out of the project.
Completing this assignment will earn you full credit for one of the five individual assignments.

You should complete this assignment no later than Friday, October 27 and send me your responses by email.

A few notes for IS449ers for 10/30's class

As we mentioned in class today, we are going to use the following format for class presentations going forward.  These should take about three powerpoint slides.

  • Progress to date (show your site for anything notable).
  • Priorities for the next iteration.
  • Who in the group is taking responsibility for what.

In addition for next class, I want you to do a feedback review (Joe and Jason still need to do feedback) where you pull out the main points that were made and count up how many people made them.

October 21, 2006

Character Encoding

Problem using the PHP script to pull the data from mySql database to generate the XML data in Firefox (Nattakorn's Blog) You may try to compare between two php scripts. Both are the same except that data_utf8.php is saved in the UTF-8 type by using the notepad while data.php was saved into ASCII by using the notepad.

As readers may be aware, characters are encoded using bytes.  In other words, letters you see on the screen are represented as strings of 0's and 1's in the computer's internal memory.  Character encodings such as UTF-8 specify a mapping between characters and the strings of 0's and 1's used to represen them.  There are multiple competing character encodings used around the world for the different character sets.

In many cases, converting between character sets can be seamless.  However, Nattakorn has uncovered a case where it is not.  I checked on three browsers.  The problem Nattakorn mentioned appears in Firefox and Opera but not Safari on the mac.  Nattakorn has also discovered that the problem does not occur in a beta version of IE on windows.

I suspect his issue arose when saving the file in notepad.  Notepad inserted characters to indicated encoding that are being ignored by some browsers but picked up as junk by others.  The solution just seems to be to save as ascii, the earliest character encoding, in notepad.  I'll point out that ascii is a subset of utf-8, so it should not present a problem.

update:  I have found this W3C page that fully explains and reproduces the problem Nattakorn describes.  Their recommendation and solution are equivalent to the ones I have given here.

Tag cloud