Showing posts with label programming language. Show all posts
Showing posts with label programming language. Show all posts

2011/06/03

The curious guide to browsers and the web: now in 15 languages and open-sourced

When we published the illustrated HTML5 web book, 20 Things I Learned about Browsers and the Web, late last year, we were excited by the positive response from teachers, web developers and many of you who shared in the joy of rediscovering how the web works.

Today, we've made this web book available in 15 languages, including Bahasa Indonesia, Brazilian Portuguese, Czech, Dutch, English, French, German, Italian, Japanese, Polish, Russian, Chinese (Simplified and Traditional), Spanish, and Tagalog. If you have family members and friends around the world who speak these languages, you can point them to the translated guidebook at http://www.20thingsilearned.com/, where illustrator Christoph Niemann brings to life topics ranging from 什麼是網際網路? (“what is the Internet?) to so schützen moderne browser vor malware und phishing (“how modern browsers protect you from malware and phishing”) and otevřený zdrojový kód a prohlížeč (“open source and browsers”).

2011/05/30

Using OACurl to explore Blogger’s API

Blogger’s GData API is now available over HTTPS using OAuth 2. These changes result in less code, increased productivity, and enhanced security. Let’s take a look at how it works using OACurl, a wrapper for the curl command line tool that authenticates you using OAuth.

Prerequisites

First up you need to install Mercurial and Maven. Mercurial is the source revision control software used by the OACurl project. Maven is a java build system used to download and include the dependencies required by OACurl. Once we begin using oacurl we will use HTML Tidy to make the returned XML readable.

Getting OACurl

JDOM

What is JDOM?

Java + XML = JDOM

JDOM is a way to represent an XML document for easy and efficient reading, manipulation, and writing:
-Straightforward API
-Lightweight and fast
-Java-optimized

It not DOM, despite the similarity in name. It is an open source project with an Apache style license. JDOM is intended to be simple for Java programmers. It is supposed to hide the complexities of XML (I find this somewhat humorous because XML appears simple compared to Java). JDOM is to DOM/SAX as RMI is to CORBA.

JDOM offer 4 packages:
-org.jdom
-org.jdom.adapters
-org.jdom.input
-org.jdom.output

The first package contains classes representing parts of an XML document (i.e. element, CDATA, attribute, etc.). The input package contains classes for reading xml data from existing sources while the output package contains classes for writing xml data to various form of output.

The JDOM web site is http://jdom.org. I'll check into this later but for now it is getting late and I'll have to continue at a later time.

Topic Maps

Topic Maps are "the GPS of the information universe" says Charles Goldfarb. They are basically an XML structured index of information contained in various files and or databases. This XML index is written in the XTM vocabulary. Most applications manipulate this index using a topic map engine which is roughly equivalent to a relational database management engine except designed for topic maps.

The XTM vocabulary consists of its main element, topic, which is used to represent a specific topic. This topic will be associated with a type or role specified and will often contain a link to an occurrence of the topic. Different topics can then be associated with each other using the association element. This association can be between topics of the same or different roles. These associations can then be recalled when a user searches for information of a topic.

Topic Maps are essentially a method to organize and index information that goes beyond the tradition hierarchical representations commonly implemented. Through various associations and hierarchies topic maps make information easier to find, search and organize.

Protege

Protege is an ontology management tool. More specifically, Protege is an opensource ontology editor and knowledge-base framework written in Java. Its architecture supports user developed plug-in tools. Existing plug-ins support OWL and RDF and allow the visualization of ontologies in different ways. Protege supports 2 different methods of modeling ontologies.
  1. One way is through Protege-Frames editor, and the other is through the
  2. Protege-OWL editor.
The main difference between the two methods is that the Protege-Frames editor support frame based ontologies while, not surprisingly, the Protege-OWL editor supports the W3C's OWL version of the semantic web ontology. Both modeling methods support the creation, visualization and manipulation of ontologies.

Protege was developed by Stanford Medical Informatics at the Stanford University School of Medicine with various supporters including:
  • Defense Advanced Research Projects Agency,
  • National Cancer Institute,
  • National Institute of Standards and Technology,
  • National Institutes of Health's National Centers for Biomedical Computing,
  • National Library of Medicine,
  • National Science Foundation
  • etc.
Protege is supported by a strong community of developers, government and corporate users and is downloadable from http://protege.stanford.edu/index.html

AJAX

Asynchronous JavaScript and XML is a web development technique for creating interactive web applications. The goal of AJAX is to increase the web pages interactivity, speed and usability. It tries to achieve this by exchanging small amounts of data behind the scenes thus eliminating the need for the user to reload the entire web page each time the user makes a change.

AJAX relies on a combination of technologies including
  • XHTML and CSS for markup and styling information,
  • DOM accessed with a client side scripting language such as JavaScript and JScript
  • The XMLHttpRequest object to exchange data asynchronously with the web server
  • XML is commonly the format used to exchange data back and forth to the server.
AJAX is really an amalgamation of a number of different component technologies. It's advantages include interactivity and portability. The main disadvantages of AJAX are unexpected behavior of the browser's back button and the difficulty of setting bookmarks. Network latency has also been an issue with AJAX. AJAX also requires that the browser has JavaScript enabled and Internet Explorer 6 additionally requires ActiveX.

With AJAX instead of loading a web page at the start of a session the browser loads an AJAX engine - written in Java Script and not visible to the user. This engine is responsible for rendering the user interface as well as communicating with the server. This AJAX engine allows the user's interaction with the application to happen asynchronously - independent of communication with the server. The AJAX engine commonly exchanges data with the server in XML format instead of HTML + CSS.