Archive for the 'Programming' Category

ClearForest Semantic Web Services (SWS)

ClearForest

ClearForest Semantic Web Services (SWS) is an experiment in deploying to the broader web community a portion of the high-end text-mining technology ClearForest has developed over the last decade.

ClearForest has developed a suite of language processing tools to extract meaning from text. Then they went ahead and implemented a web services layer on top of their suite of tools to expose the functionality as services to the general public.

Let me quote an example usage from their website which gives you a flavor of the power of this tool:

If you hand SWS a lengthy news article about, say, a corporate merger - here’s what you’ll get back in nice structured XML: 1) All of the people mentioned in the article, 2) all of the organizations mentioned, 4) all of the companies mentioned and 4) all geographies.

There are three ways to access ClearForest Semantic Web Services:

  • Through the web interface. This is a good starting point to see how things work.
  • Via web services. To get started with that see API Specifications.
  • With Gnosis - very cool Firefox plug-in extension.

They had a mashup contest and here are some of the winning entries from there:

Popularity: 4% [?]

Quick Reference Guides / Cheat Sheets Collection

Please find a list of links to quick reference guides/cheat sheets below. I will keep on updating this list as I find more. If you know something outside this list and would like that to be included here, please leave a comment.

Popularity: 8% [?]

CodeIDE : Build Code in Your Web Browser

It was bound to happen and I must say CodeIDE is on the right path. Yes, I am talking about a web-based IDE which provides facility to code in multiple languages and also provides a run-time environment, where in you can run your code in the browser itself and see the resulting output.

I wrote a simple BASIC program to draw circles and here is a snapshot:

CodeIDE
They are slowly increasing support for new languages and right now the following programming languages are supported:

  • BASIC
  • Pascal
  • C++
  • Perl
  • HTML
  • JavaScript
  • LISP

The tool has following important features:

  1. Ability to write code in the above mentioned languages
  2. Syntax highlighting for all those languages
  3. Ability to execute your programs
  4. Ability to see the output
  5. Ability to create a project
  6. Search Replace
  7. Import/Export
  8. Ability to chat online with other users and ask for help on live chat
  9. Ability to save your files and projects

The tool sometimes just did not respond, I guess they are still working on it but as I said a very good effort.

Popularity: 2% [?]

53 CSS-Techniques You Couldn’t Live Without

Smashing Magazine which delivers the latest trends and techniques in web-development for web-designers and web-developers released a post on 53 CSS-Techniques You Couldn’t Live Without today. The list is very impressive and a must know in today’s world of web development and design.

Some of the ones that intrigued me where the collapsible tables, CSS shadows , CSS diagrams and image maps.

Apparently the site went down just now (may be due to heavy traffic they have been getting). Keep trying they should be bringing it up anytime.

Popularity: 3% [?]

Codefetch : search programming books for code

CodeFetch Logo There have been numerous occassions while working on any project that I have had to refer to example code for how to use an API or a function. I used to use google search but had to wade through lot of stuff before finding anything useful.

Codefetch solves this problem by providing a search engine for searching through the programming books for any matches. I liked the ability to choose the language and search for code only in that language.

Codefetch has a huge collection of books and returned quality results for few queries I tried.

They also have a popular page where they show details on what people are searching. At the time I saw it, searches for terms in Java were the most popular ones.

Popularity: 4% [?]

Personalized content from all over the web

Is all the information on the internet overwhelming for you and you need to dig through tons of pages to find something that interests you?

FindoryThen Findory is for you. This Seattle, Washington based tiny startup company has created a personalization technology that builds a home page for each reader, recommending content based on what each person has read and what new content is published. They do the heavy lifting by crawling through the web and gathering content which suits your taste.

They also provide API to access their data by making parameterized URL requests over HTTP (REST). The results are returned in RSS format. The API specifications are as follows:

Specification

The API requires a base URL

http://rss.findory.com/rss/[Product][/Category]

where Product is one of {News, Blogs, Video, Podcasts, Favorites} and Category is an optional parameter where the category varies by product line (see the RSS Feeds page for a list).

The base URL can be followed by these optional parameters:

uid= Personalize the feed to a specific user. Your UID can be obtained from the RSS Feeds page.
q= A keyword search for the string following the parameter.
source= Recent articles for a source. The source’s name must exactly match the one used in Findory’s database.
ras= Related articles for the named source.
history= A boolean (e.g. “1″) indicating a request for the reading history. Must be combined with a uid.
article_id= Related articles for the given article id. The article id should be one taken from a previous Findory API call.
noland= A boolean (e.g. “1″) to force the links in the feed to redirect immediately to the article rather than first going to our landing page.

Some interesting examples of API usage are:

News articles matching the keywords “harry potter”
http://rss.findory.com/rss/News/?q=harry%20potter
Blog posts matching the keywords “google maps”
http://rss.findory.com/rss/Blogs/?q=google%20maps
Articles related to the blog Boing Boing
http://rss.findory.com/rss/Blogs/?ras=Boing%20Boing
Recent articles from BBC News redirecting immediately when an article link is clicked
http://rss.findory.com/rss/News/?source=BBC&noland=1
Top Stories in Blogs
http://rss.findory.com/rss/Blogs/topstories/
Top Stories in Entertainment News
http://rss.findory.com/rss/News/entertainment/

Top Stories from My Favorites
A feed of your personalized recommendations from your favorite, subscribed feeds. A link to this feed is available at the bottom of your Favorites page.
Example: http://rss.findory.com/rss/Favorites?uid=[UID]

Reading History
A feed of the articles you have read on Findory. Requires a uid. You can get your uid from the RSS Feeds page.
Example: http://rss.findory.com/rss/News?uid=[UID]&history=1

Related articles for an article
Related articles for a given article. Requires an article id that was provided by one of our API calls. Can only be used for active articles (articles published in the last 30 days).
Example: http://rss.findory.com/rss/Blogs/?article_id=DMcGmeng4tcNfrVsAi-NfA..

Findory has a mobile version of their website too, which can be found here. Getting personalized news on mobile devices is very neat as it saves it lot of browsing time.

Some interesting usage scenarios I can think of are:

  • Create a page where in user can search for any word/phrase and it displays results on a single page in different categories like (blog, news, advertisements, video, music etc.) which match the word/phrase
  • For any item on a shopping site (amazon, shopzilla etc.) and find news/reviews/blog postings/video about it from all over the web.
  • Rank people, places etc. based on number of search results returned.

If you have any interesting thoughts on how to use this API please do discuss them in comments to this posting.

Popularity: 3% [?]

How to choose between ASP .NET Web Services and .NET Remoting?

.NET framework supports two distributed programming models:

  • ASP .NET Web Services
  • .NET Remoting

There is a lot of confusion among developers as to when to use what. I recently came across a very nice article on MSDN which tried to answer the very same question. I will try to extract out the important points from that article for our users.

The clients of ASP.NET Web services do not have to know anything about the platform, object model, or programming language used to build them. The services themselves don’t have to know anything about the clients that are sending them messages. The only requirement is that both parties agree on the format of the SOAP messages being produced and consumed, as defined by the Web service’s contract definition expressed using WSDL and XML Schema (XSD). This in short means that the client can be written using Java. Perl or any other language. .NET Remoting provides much richer support for objects but the client needs to be built using .NET also. this ties it up, as it can only work with .NET applications.

  • The key difference between ASP.NET Web services and .NET Remoting is in how they serialize data into messages and the format they choose for metadata. ASP .NET Web Services use XmlSerializer which cannot marshal lot of things (e.g. hashtables) but .NET Remoting relies on the pluggable implementations of the IFormatter interface used by the System.Runtime.Serialization engine to marshal data to and from messages. There are two standard formatters, System.Runtime.Serialization.Formatters.Binary.BinaryFormatter and System.Runtime.Serialization.Formatters.Soap.SoapFormatter. As a result it supports all data types and handles complex object graphs really well.
  • The only transport protocol associated with ASP .NET Web Services in HTTP but .NET Remoting supports both HTTP and TCP.
  • Some performance statistics:

Performance stats

In nutshell, if you application needs interoperability with other platforms or operating systems, you would be better off using ASP.NET Web services, as they are more flexible (wider reach). On the other hand, use .NET Remoting when you need the richer object-oriented programming model but it has narrower reach.

Popularity: 4% [?]

Speed up your default page in IIS

Recently I came across a nice tip on how to improve performance for the default page that is server for your website by IIS at this blog.

It is interesting as to how something this fundamental sometimes does not cross our mind but can affect performance to a great extent.

In short the tip says that IIS has some pages registered as default pages (e.g. default.asp, default.aspx, index.aspx, index.htm) and the order in which they are registered makes a huge difference.

If default page for your site is index.aspx then you should make sure that you have index.aspx listed at the front in the list of start pages. This is because IIS starts looking for default page by looking up files one by one fro the list of registered startup files and so if index.aspx is listed in the 4th position, it will try three other files before it gets to your startup page (which is a huge performance loss).

Also, IIS keeps the first default document into the HTTP.SYS kernel-mode cache. It remains there till IIS invalidates the cache. This can be a great performance gain for the file which is first in that list.

Popularity: 3% [?]

« Previous Page

Technology Blogs - Blog Top Sites Blogarama - The Blog Directory Technology blogs Technology blogs blog search directory