Saturday, December 27, 2008
Twitter location
Extending our Twitter related tootls series (see for example Twitter 411) - a new mashup is ready: Twitter location. If you are authorized on Twitter.com than you can set your location right from the Google Maps. Just click on the map and update your status in Twitter. Technically it is a Google Maps API (reverse geocoding) - similarly to the Geo Search
Labels:
mashup
Thursday, December 25, 2008
Annotated links - REST API
The mashup Annotated links supports REST API too. So you can pack together some URL and comment right from your own application. Actually even JavaScript is enough here - the service can return JSON. Details for REST API are here.
Labels:
mashup
Monday, December 22, 2008
Annotated links bookmarklet
An useful add-on to our Annotated links mashup - Annotation bookmarklet. Lets you add an annotation for the current url (it will create an annotation with the URL of the page you are viewing).
Add annotation
If you are using Internet Explorer, just right click on the link, and select Add to Favorites and save it to the Links folder. If you are using Firefox, right click the link and select Bookmark This Link and save it to the Bookmark Toolbar Folder.
More bookmarklets see here.
Add annotation
If you are using Internet Explorer, just right click on the link, and select Add to Favorites and save it to the Links folder. If you are using Firefox, right click the link and select Bookmark This Link and save it to the Bookmark Toolbar Folder.
More bookmarklets see here.
Labels:
mashup
Saturday, December 20, 2008
Annotated links - 3
A small mashup lets you create annotated links. Provide an URL (list of URL's), add a text note and get one tiny URL for the whole pack. So you can publish annotated links on your site for example. Annotated link could be shared via email, twitter or facebook.
as a part of the upcoming API you can use mashup in the following form too:
http://alink.linkstore.ru?url=your_link_here
E.g. for this blog:
http://alink.linkstore.ru?url=http://servletsuite.blogspot.com
So the well known site's feature 'share url' could be implemented with the above mentioned type of link. Now the users will be able to share the link itself and own comments too.
See it here - Annotated links.
as a part of the upcoming API you can use mashup in the following form too:
http://alink.linkstore.ru?url=your_link_here
E.g. for this blog:
http://alink.linkstore.ru?url=http://servletsuite.blogspot.com
So the well known site's feature 'share url' could be implemented with the above mentioned type of link. Now the users will be able to share the link itself and own comments too.
See it here - Annotated links.
Labels:
mashup
Friday, December 12, 2008
Outlook taglib
A long time bug with CSS "features" of IE caused problems with Outlook taglib has been fixed. So you are welcome to check out the updated version:
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
Labels:
Coldtags
Wednesday, December 10, 2008
How to make a Twitter bot
Twitter bot is an application that automatically responds to users requests. It could be done in Twitter either via @reply postings or via direct messages. Here we will show how to use Twitter 411 service for your own bots creation. E.g. you can create there your own information system for the business or private purposes.
Twitter 411 uses direct messages transport. A potential user can follow to t411 and send direct messages to t411. The replies (responses) will come back as direct messages too. And users of Twitter 411 service define how to proceed requests. They can reserve some keywords as well as associated rules described how to proceed messages starting with that keyword.
As a method of message processing service users can choose an URL for some CGI script. This script will be responsible for the processing the incoming messages and producing the responses. Twitter 411 service works in this case as a daemon: gets a message, passes it to the appropriate CGI script, reads the response and sends it back. Let us see how does it looks like practically. Service Twitter 411 includes build-in bot lets you request stock quotes. Let us see its internals:
1. We've registered a keyword t (just a letter t). So all the direct messages starting with t (t will be processed by this bot.
2. Our bot expects messages in the following format t stock_symbol for getting the quote. For example:
t ORCL - quote for Oracle
or
t JAVA - quote for Sun
3. As a processing ngine for this bot we've set an URL for JSP file. It is our CGI script for the processing: http://linkstore.ru/t411/quote.jsp. For this bot our processing will be placed on the same server, but of course you can provide your own URL for any available server.
4. We can instruct Twitter 411 (our daemon) pass the whole incoming message to our CGI script. So in service's GUI we've set actually the following URL :
http://linkstore.ru/t411/quote.jsp?t=text
Service (daemon) will replace the variable text with the original request. For example, for the following incoming message t JAVA the final request to CGI script will looks so: http://linkstore.ru/t411/quote.jsp?t=t%20JAVA.
Now let us see the script itself. In our case it is JSP file expecting requests with the parameter t. And parameter's value will be in the following form t stock_symbol. So, our script (JSP file) will read parameter's value, extract stock symbol (part of the string after the space), request quote and print the result. It is all. For example:
<%@ page contentType="text/plain; charset=utf-8" %>
<%@ taglib uri="taglib27.tld" prefix="get" %>
<%
String t = request.getParameter("t");
if (t==null)
{ out.println("unknown");
return; }
// the pattern is: t <space> stock_symbol
int i = t.indexOf(" ");
if (i<=0)
{ out.println(t+"?? could not get ticket");
return; }
t = t.substring(i+1).trim();
%>
<get:Quote symbol="<%=t.toUpperCase()%>" id="A" />
<%=A.get(0)+": "+A.get(1)+" "+A.get(9)%>
Here our JSP file prints the quote and its chart (we've used custom tags from Coldtags suite)
In other words - all what do you need for your own Twitter bot is just an ordinary CGI script with your own processing. You can program your own script, reuse something existing component etc. And your Twitter bot could be placed on any web server with CGI scripts support.
Twitter 411 uses direct messages transport. A potential user can follow to t411 and send direct messages to t411. The replies (responses) will come back as direct messages too. And users of Twitter 411 service define how to proceed requests. They can reserve some keywords as well as associated rules described how to proceed messages starting with that keyword.
As a method of message processing service users can choose an URL for some CGI script. This script will be responsible for the processing the incoming messages and producing the responses. Twitter 411 service works in this case as a daemon: gets a message, passes it to the appropriate CGI script, reads the response and sends it back. Let us see how does it looks like practically. Service Twitter 411 includes build-in bot lets you request stock quotes. Let us see its internals:
1. We've registered a keyword t (just a letter t). So all the direct messages starting with t (t
2. Our bot expects messages in the following format t stock_symbol for getting the quote. For example:
t ORCL - quote for Oracle
or
t JAVA - quote for Sun
3. As a processing ngine for this bot we've set an URL for JSP file. It is our CGI script for the processing: http://linkstore.ru/t411/quote.jsp. For this bot our processing will be placed on the same server, but of course you can provide your own URL for any available server.
4. We can instruct Twitter 411 (our daemon) pass the whole incoming message to our CGI script. So in service's GUI we've set actually the following URL :
http://linkstore.ru/t411/quote.jsp?t=text
Service (daemon) will replace the variable text with the original request. For example, for the following incoming message t JAVA the final request to CGI script will looks so: http://linkstore.ru/t411/quote.jsp?t=t%20JAVA.
Now let us see the script itself. In our case it is JSP file expecting requests with the parameter t. And parameter's value will be in the following form t stock_symbol. So, our script (JSP file) will read parameter's value, extract stock symbol (part of the string after the space), request quote and print the result. It is all. For example:
<%@ page contentType="text/plain; charset=utf-8" %>
<%@ taglib uri="taglib27.tld" prefix="get" %>
<%
String t = request.getParameter("t");
if (t==null)
{ out.println("unknown");
return; }
// the pattern is: t <space> stock_symbol
int i = t.indexOf(" ");
if (i<=0)
{ out.println(t+"?? could not get ticket");
return; }
t = t.substring(i+1).trim();
%>
<get:Quote symbol="<%=t.toUpperCase()%>" id="A" />
<%=A.get(0)+": "+A.get(1)+" "+A.get(9)%>
Here our JSP file prints the quote and its chart (we've used custom tags from Coldtags suite)
In other words - all what do you need for your own Twitter bot is just an ordinary CGI script with your own processing. You can program your own script, reuse something existing component etc. And your Twitter bot could be placed on any web server with CGI scripts support.
Sunday, December 07, 2008
YouTube downloading
A new component in Coldtags suite - YouTube taglib lets you download video right from JSP pages. Just provide a link for the existing page on YouTube and get back URL for Video downloading.
Monday, December 01, 2008
Information server on top of Twitter
Open API from Twitter is a good base for many mashups uses Twitter's data. Here is another idea - information server on the top of Twitter. Twitter 411 service lets you easily build your own information system, uses Twitter as a transport. The idea is very transparent. You can define your own keywords as well as data, associated with the selected keywords. Users will ask service via direct messages in Twitter and receive responses as direct messages too. Direct messages for the requests are just user-defined keywords. Direct messages for the responses are just user-defined reactions (data associated with the keywords).
User defined responses could be provided as some texts (of course, the keyword owner will be able to change/update the text any time) or (what is more interesting) as URL's for the external CGI scripts. So you can reserve a keyword and provide your own CGI script for the responses. The engine simply calls this URL in order to get the response. And the text of the original request could be passed as HTTP parameter.
The usage for this service is transparent. Just follow to t411 in your Twitter and send direct messages to t411 with your requests.
Some examples or build-in services:
test - just a test for the service
t stock_ticket. E.g.: t JAVA - returns price for the ticket. This service uses an external CGI script for getting quotes.
And by the way, it is automatically a mobile service too.
Technically, mashup uses appropriate components (including Twitter taglib) from Coldtags suite.
User defined responses could be provided as some texts (of course, the keyword owner will be able to change/update the text any time) or (what is more interesting) as URL's for the external CGI scripts. So you can reserve a keyword and provide your own CGI script for the responses. The engine simply calls this URL in order to get the response. And the text of the original request could be passed as HTTP parameter.
The usage for this service is transparent. Just follow to t411 in your Twitter and send direct messages to t411 with your requests.
Some examples or build-in services:
test - just a test for the service
t stock_ticket. E.g.: t JAVA - returns price for the ticket. This service uses an external CGI script for getting quotes.
And by the way, it is automatically a mobile service too.
Technically, mashup uses appropriate components (including Twitter taglib) from Coldtags suite.
Thursday, November 20, 2008
Geo search
A new Google Maps mashup - Geo Search. Just click on the map and discover your street (city etc.) coverage in Google.
Tuesday, November 18, 2008
Mobile map via QR code
A new version of QR map mashup has been released. It is a simple way for saving any map on your mobile phone using QR-codes technology. Choose the position on the map (the red marker points to the center), set the scale and simply move cursor over the marker. You will see a QR code for the selected map. So you can scan it with your mobile and transfer this map right to your phone. And mobile map will be presented as a static picture, so this technology is working on any mobile.
Also you can share the generated QR-code via email, twitter or facebook.
P.S. and for the preparing mobile map without any QR-code you can use another mashup: Mobile map.
P.P.S. 100 posts in this blog.
Also you can share the generated QR-code via email, twitter or facebook.
P.S. and for the preparing mobile map without any QR-code you can use another mashup: Mobile map.
P.P.S. 100 posts in this blog.
Monday, November 17, 2008
Coldtags suite ver. 3.55
In the same time Coldtags suite ver. 3.55 is ready. The largest set of custom JSP tags over the Net contains 355+ controls and counting! From the latest additions check out for example QR code popup or Mobile link taglibs.
Sunday, November 16, 2008
Java for content providers
Java component (servlet) lets you present a limited downloading in your web applications. E.g. content provider can support the time limited and/or counter limited downloading (some file will be available during the limited time or allow only one time downloading).
Labels:
JSOS,
telecom 2.0
Wednesday, November 12, 2008
QR code bookmarklet
An useful add-on to our QR code maker - QR code bookmarklet. Lets you obtain QR code for the current url (it will create a QR code image with the URL of the page you are viewing).
Url to QR code
If you are using Internet Explorer, just right click on the link, and select Add to Favorites and save it to the Links folder. If you are using Firefox, right click the link and select Bookmark This Link and save it to the Bookmark Toolbar Folder.
More bookmarklets see here or on the bookmarklets page.
If you are using Internet Explorer, just right click on the link, and select Add to Favorites and save it to the Links folder. If you are using Firefox, right click the link and select Bookmark This Link and save it to the Bookmark Toolbar Folder.
More bookmarklets see here or on the bookmarklets page.
Labels:
mashup
Saturday, November 08, 2008
QR code maker
As per updates for QR codes components in JSOS and Coldtags suite (see for example QR code servlet and QR code popup taglib) our QR code generators has been updated too. See a new version here: QR code maker.
Thursday, November 06, 2008
QR code for links
A new component from our Coldtags suite - QR code popup lets you automatically add QR codes for the links. So it is an easy way for sharing data with mobile users. With this component mobile users will be able to scan codes right from your site and transfer a link to own mobile device. E.g.:
<q:qrcodepopup href="http://www.servletsuite.com" target="_blank">
Coldbeans site
</q:qrcodepopup>
and you will get this link:
Coldbeans site
<q:qrcodepopup href="http://www.servletsuite.com" target="_blank">
Coldbeans site
</q:qrcodepopup>
and you will get this link:
Coldbeans site
Sunday, November 02, 2008
Google Charts
Cache for Google Charts - Google Charts servlet. Just passes requests to Google Charts and caches the output. So all the sub-sequent requests will be served from that cache. No more rate limits for Google Charts as well as the improved performance.
The similar component is QR code servlet. Does exactly the same for QR codes (actually via Google Charts again).
And generic form for this approach is supported by Dump servlet.
The similar component is QR code servlet. Does exactly the same for QR codes (actually via Google Charts again).
And generic form for this approach is supported by Dump servlet.
Labels:
JSOS
Friday, October 31, 2008
On my way 2.0
Mashup On my way has been updated. Need to find something on your way to home, to work or to school? Mashup MyWay lets you combine the driving directions on Google Maps and local search together. So you will see points of interest as well as driving directions on the same map. What is new in 2.0 version:
see Wikipedia / Panoramio data on your way
use walking routes
set "Via" point when you need pass through the particular address
get any address just by the click on the map (reverse geocoding)
see Wikipedia / Panoramio data on your way
use walking routes
set "Via" point when you need pass through the particular address
get any address just by the click on the map (reverse geocoding)
Monday, October 27, 2008
Reverse geocoding on Big map
Big map mashup supports a new Google Maps API feature - reverse geocoding. Try to click on the map - you will see the address. The following code does the job:
geocoder=new GClientGeocoder();
GEvent.addListener(map, "click", clickFunction);
...
function clickFunction(overlay, latlng) {
if (latlng)
{
geocoder.getLocations(latlng, function(addresses) {
if(addresses.Status.code != 200) {
alert("Google reverse geocoder failed to find an address for " + latlng.toUrlValue());
}
else
{ address = addresses.Placemark[0];
var myHtml = address.address;
map.openInfoWindow(latlng, myHtml); }
});
}
}
QR map - 4
QR map mashup has been updated. Mashup lets you create QR codes for maps and share them via email/twitter/facebook.
Labels:
mashup
Friday, October 24, 2008
Dump servlet
There is an interesting concept from this component in our JSOS suite. Dump servlet lets you request the remote content and cache it right after the first delivery. So all the sub-sequential requests will be served right from your site.
For example, suppose your own site includes some Google Charts API calls. Dump servlet could be used as a proxy for your Google Charts requests. As soon as the first request is served, all the similar requests after that will use cached data (it is configurable of course - time to live for cached data is user-defined).
For example, suppose your own site includes some Google Charts API calls. Dump servlet could be used as a proxy for your Google Charts requests. As soon as the first request is served, all the similar requests after that will use cached data (it is configurable of course - time to live for cached data is user-defined).
Saturday, October 18, 2008
Mobile content
Google Mobilizer service lets you prepare on the fly mobile-friendly pages for any web site. And Mobile link taglib uses this service and provides a simple mashup lets you publish mobile links in your web applications. So in your mobile web applications this component lets you publish links "as is", and Mobilizer will take care about the rest.
P.S. and Mobile taglib lets you detect requests from phone by the way.
P.S. and Mobile taglib lets you detect requests from phone by the way.
Tuesday, October 14, 2008
Obviously a great idea
Google Maps mania blog wrote about our mashup MyWay
Friday, October 03, 2008
Protected sessions
Server side component lets you add additional security for your HTTP sessions. The idea is very transparent. As soon as a new session is created we can remember the IP address of the creator. And after that during the session life time this IP address must be the same. Otherwise (IP address has been changed) we can assume that session ID has been stolen. And all steps could be combined just in one servlets filter: Protected sessions.
Filter saves IP address for the fresh sessions and checks it for the sub-sequential requests after that.
Filter saves IP address for the fresh sessions and checks it for the sub-sequential requests after that.
Labels:
JSOS
Wednesday, October 01, 2008
SESSION ID
TheRegister describes the potential problems with SESSION ID in web applications: if an attacker steals your SESSIONID, they have full access to your account. The solution is to use SSL and always send the cookie only over an SSL connection. There are several components in JSOS helping you in this case:
JSession filter - disables jsession id (cookie always)
Secure Redirector - forces HTTPS connections
Protected sessions - lets you map sessions to IP addresses (IP address must be the same during the session life time)
JSession filter - disables jsession id (cookie always)
Secure Redirector - forces HTTPS connections
Protected sessions - lets you map sessions to IP addresses (IP address must be the same during the session life time)
Labels:
JSOS
Tuesday, September 30, 2008
Coldtags suite ver. 3.50
A new release of Coldtags suite is ready. Now the largest set of custom JSP tags supports over 350 components.
Scanning the latest development check out HTTP HEAD taglib. This component lets you for example gets content type and size for the remote file, as well as simply check out file (site) availability:
<%@ taglib uri="taglib.tld" prefix="h" %>
<h:HttpHead url="http://www.servletsuite.com/servlets/sos.zip" id="A"/>
file size: <%=A.get("contentLength")%>
Attribute url points here to some remote file (or site).
Scanning the latest development check out HTTP HEAD taglib. This component lets you for example gets content type and size for the remote file, as well as simply check out file (site) availability:
<%@ taglib uri="taglib.tld" prefix="h" %>
<h:HttpHead url="http://www.servletsuite.com/servlets/sos.zip" id="A"/>
file size: <%=A.get("contentLength")%>
Attribute url points here to some remote file (or site).
Sunday, September 28, 2008
Annotated links - 2
A small mashup lets you create annotated links. Provide an URL (list of URL's), add a text note and get one Tiny URL for the whole pack. So you can publish annotated links on your site for example. Link could be shared via email, twitter or facebook. See it here - Annotated links.
Labels:
mashup
Friday, September 26, 2008
QR code in JSP
QR codes saga on our site continues. Now Coldtags suite includes a component for QR code generation. Create QR codes right from your JSP (and/or Coldfusion) pages with QR code maker taglib.
Monday, September 22, 2008
QR code maker
A new mashup lets you generate QR codes for your own data. The idea is very transparent - type (copy/paste etc.) the text and the system will do the rest. A dedicated mobile web page for you data as well as the appropriate QR code will be automatically generated. It is a simplest way present your own info for mobile users. You can put the generated QR code on the physical objects for example and anybody will be able to read your data right from his/her mobile. See it here.
Labels:
mashup
Sunday, September 21, 2008
Tuesday, September 16, 2008
My way
Need to find something on your way to home, to work or to school? Mashup MyWay lets you combine the driving directions on Google Maps and local search together. So you will see points of interest as well as driving directions on the same map. What is else:
start/end points could be dragged right on the map
the route could be shared via email, twitter or facebook
start/end points could be dragged right on the map
the route could be shared via email, twitter or facebook
Monday, September 15, 2008
JSOS 6.0
JSOS 6.0 is ready. See it here
Labels:
JSOS
Saturday, September 13, 2008
XSS cleanig
XSS filter - filter intercepts every request sent to your web application and then cleans any potential script injection.
Labels:
JSOS
Monday, September 08, 2008
Stock quote
One of the oldest component in our JSP suite suite is updated. Stock quote taglib is the simplest way for obtaining finance data in your JSP (or Coldfusion) application:
<%@ taglib uri="taglib.tld" prefix="get" %>
<get:Quote symbol="JAVA" id="A" />
Chart: <img src="<%=A.get(9)%>"/>
<%@ taglib uri="taglib.tld" prefix="get" %>
<get:Quote symbol="JAVA" id="A" />
Chart: <img src="<%=A.get(9)%>"/>
Sunday, August 31, 2008
QR map - 2
The long series of updates in our maps mashups (see Big Map, Mobile maps) - there is a new version for QR map too. See it here. We hope that the navigation is now much more flexible.
With QR Map you center the map so that the pointer is on your location (or use a search icon), set the scale and then click on the mail icon at the top of the map. You will see Tiny URL with QR code. E.g. (http://tinyurl.com/6fkdf9):
The Tiny URL redirects to a Google Chart Server API generated QR Code. The QR Code decodes as a Google 240 x 320 static map for mobiles:
QR map is a very simply and elegant way for the map data delivery. E.g. mobile scans the code somewhere on the street and gets the map for the nearby area.
With QR Map you center the map so that the pointer is on your location (or use a search icon), set the scale and then click on the mail icon at the top of the map. You will see Tiny URL with QR code. E.g. (http://tinyurl.com/6fkdf9):
The Tiny URL redirects to a Google Chart Server API generated QR Code. The QR Code decodes as a Google 240 x 320 static map for mobiles:
QR map is a very simply and elegant way for the map data delivery. E.g. mobile scans the code somewhere on the street and gets the map for the nearby area.
Wednesday, August 27, 2008
Mobile Maps - 2
Mobile Maps created in our Mоbile Maps mashup could be shared via Twitter and Facebook too.
Tuesday, August 26, 2008
Big map - 2
Mashup BigMap (full screen Google map) lets you share links via Twitter and Facebook too.
Monday, August 25, 2008
Secure notes in Facebook
Secure notes service lets you share notes via Facebook too. See here.
Labels:
mashup
Sunday, August 24, 2008
Google geolocation example
Google offers geolocation stuff via Ajax API. For the web applications it is a practical way to get latitude/longitude pair by IP address. And here is a small practical example: geo search
Wednesday, August 20, 2008
Secure notes
One time readable text notes. Just write your note and get a tiny url link. Then share this link via email or twitter. When your recipient clicks the link for the first time, he/she will see your note. In the same time note data will be destructed so your note is not readable anymore. You can use secure messages in the public twitter line for example. See service here
P.S. the development team used Coldtags suite of course.
P.S. the development team used Coldtags suite of course.
Tuesday, August 19, 2008
Bookmarklets
Useful bookmarklets:
Google Translate - Google translation to English for the current page
Disable Style Sheet - see web site in the "naked" form
If you are using Internet Explorer, just right click on the link, and select Add to Favorites and save it to the Links folder. If you are using Firefox, right click the link and select Bookmark This Link and save it to the Bookmark Toolbar Folder.
Google Translate - Google translation to English for the current page
Disable Style Sheet - see web site in the "naked" form
If you are using Internet Explorer, just right click on the link, and select Add to Favorites and save it to the Links folder. If you are using Firefox, right click the link and select Bookmark This Link and save it to the Bookmark Toolbar Folder.
Labels:
mashup
Monday, August 18, 2008
Twitter update
As we've discovered Twitter actually lets you publish updates right from URL. It looks so:
http://twitter.com/home?status=your_message_is_here
E.g.:
I am reading servletsuite blog
http://twitter.com/home?status=your_message_is_here
E.g.:
I am reading servletsuite blog
Labels:
mashup
Rate limit in Web 2.0 API
Many public API's from Web 2.0 projects introduce rate limits for the usage. E.g. Twitter API allows 70 requests per hour, Google geocode API does the similar things etc.
Let us see the following component in Coldtags suite: Timer taglib. Body tag timer may execute own body once per given time interval (or not often than - depends on the incoming requests) for all the requests (application scope) or on per user base (session scope). Beyond the cache, we can use this tag for dealing with the rate limitation in public API. E.g. ask Twitter not often than once per 60 seconds:
<t:timer interval="60">
code for Twitter API
</t:timer>
Let us see the following component in Coldtags suite: Timer taglib. Body tag timer may execute own body once per given time interval (or not often than - depends on the incoming requests) for all the requests (application scope) or on per user base (session scope). Beyond the cache, we can use this tag for dealing with the rate limitation in public API. E.g. ask Twitter not often than once per 60 seconds:
<t:timer interval="60">
code for Twitter API
</t:timer>
Thursday, August 14, 2008
Image info
Image info - a simple mashup uses Google App Engine application IMG 2 JSON for getting image info online. Mashup extracts and shows metadata from images. Just provide an image URL and check out EXIF metadata for example (camera make, manufacturer, GPS positioning, orientation, etc). See it here
Wednesday, August 06, 2008
Mobile maps
Our mobile maps maker has been updated. Select the area on the full screen map (lookup the address) and create a static (that is the key point!) picture for the selected map area. This static picture (just a .gif file) could be viewed on any mobile phone. So you can share maps with your friends by this way, for example. See Mobile maps mashup for details.
Tuesday, August 05, 2008
Big map
BigMap mashup has been updated: address lookup and tiny URL integration. See it here
Monday, August 04, 2008
RegExp
You've asked - we did. The latest version of Domain filter in JSOS supports regular expressions. So you can perform the redirection much more flexible.
Labels:
JSOS
Sunday, July 13, 2008
Annotated links
A small mashup lets you create annotated links. Provide an URL (list of URL's), add a text note and get one Tiny URL for the whole pack. So you can publish annotated links on your site for example. See it here.
Labels:
mashup
Saturday, July 12, 2008
QR map
QR codes let you encode some useful data with 2D barcodes. Here is an idea: let us encode the map. So the published QR code could be scanned by the mobile phone and lead to the nearby area map. The next step is obvious - Google Map + Google Chart + Google static map + Tiny URL lead to the new mashup: QR map
You can choose the location (center the map), set the scale and get a Tiny URL for the QR code encodes the map (240 x 320 size – right for the mobile phones). For getting the QR code (image url) just hit a mail icon on the map
P.S. the pure (not QR code) map for the mobile users is still available via Mobile map mashup.
You can choose the location (center the map), set the scale and get a Tiny URL for the QR code encodes the map (240 x 320 size – right for the mobile phones). For getting the QR code (image url) just hit a mail icon on the map
P.S. the pure (not QR code) map for the mobile users is still available via Mobile map mashup.
Friday, July 11, 2008
Coral CDN
A new useful 3-rd party API is covered by our suite. Delegate your files downloading to the free Coral CDN (content distribution network). See Coral redirect filter in JSOS filters.
Thursday, July 10, 2008
A new approach for the telecom services development
We would like to share with you one interesting model for the use of the PBX Asterisk. To be more precise, the main idea is to use the Asterisk as a platform for the development of telecommunication services. With its open source software and API, the Asterisk can bring the development of telecommunication services down to a simpler process of Web programming thus considerably lowering "the entrance barrier" for those involving in the programming of new services.
We propose to integrate a new component (proxy) into the Asterisk platform. The main functionality of the proxy is to translate telecommunication calls into HTTP requests to external web services. Telecommunication services are located separately from the PBX, while the information they receive from Asterisk is presented as a HTTP-request. Technically, HTTP GET/POST request is a request, in which external telecommunications service passed information about the subscriber's name - CallerIdName, caller’s number - CallerIdNumber and and called number - Extension. Upon receiving necessary parameters, such as (calling/called number) a web service produces and forwards its instructions to the proxy. The latter receives and translates them into Asterisk instructions. The development of such services under the architecture described above is similar to a conventional CGI-script, for which there is a plenty of programming tools. As a result a programmer doesn’t need to be familiar with the Asterisk API.
You can read the rest of the story in A.Ustinov blog (this topic was actually his master thesis in Moscow State University) as well as download the developed framework here
We propose to integrate a new component (proxy) into the Asterisk platform. The main functionality of the proxy is to translate telecommunication calls into HTTP requests to external web services. Telecommunication services are located separately from the PBX, while the information they receive from Asterisk is presented as a HTTP-request. Technically, HTTP GET/POST request is a request, in which external telecommunications service passed information about the subscriber's name - CallerIdName, caller’s number - CallerIdNumber and and called number - Extension. Upon receiving necessary parameters, such as (calling/called number) a web service produces and forwards its instructions to the proxy. The latter receives and translates them into Asterisk instructions. The development of such services under the architecture described above is similar to a conventional CGI-script, for which there is a plenty of programming tools. As a result a programmer doesn’t need to be familiar with the Asterisk API.
You can read the rest of the story in A.Ustinov blog (this topic was actually his master thesis in Moscow State University) as well as download the developed framework here
Labels:
mashup,
telecom 2.0
Monday, July 07, 2008
345
345+ components and counting - a new release for Coldtags suite is ready. See it here
Tuesday, July 01, 2008
JSOS 5.90 is out
In the same time you are welcome to download the latest version of our Java servlets office suite - 5.90
Labels:
JSOS
Friday, June 27, 2008
Scheduler for web applications
What if your web application requires some periodical process? It is good when your hosting provides some kind of cron tab scheduler, lets you invoke your own application, but to be honest it is not widely used option.
Here we are describing one trick lets you deploy the scheduler (well – pseudo scheduler) right in your web application.
The idea is very simply. You can "borrow" requests from the visitors of your site. Of course, it assumes that your site consistently get visitors at a frequency greater than your scheduler’s interval. You can add to your site a hidden (invisible) iframe where src attribute points to the "scheduler". And your "scheduler" will perform the requests to your periodical tasks (implemented as JSP pages or servlets). Your periodical tasks could be long running of course, so the direct request may delays site response to the visitors. And the more practical approach is doing this processing not as part of the main request from your visitor but rather by putting in the response HTML some JavaScript that will asynchronously send you HTTP requests in the background (typically not visible to the user). Of course it only works if your application has visitors who use web browsers, not if it only consumed by programs (e.g. through RSS feeds or other XML format).
So you can add to your site some hidden frame:
<iframe style="display:none" src="my_scheduler.jsp"></iframe>
my_scheduler.jsp implements your pseudo scheduler. For the above mentioned approach (return the code for Ajax request to the real task) you can deploy Fork taglib from Coldtags suite. So your pseudo scheduler can simply deploy this taglib:
<%@ taglib uri="taglib.tld" prefix="f" %>
<f:Fork url="my_periodical_task.jsp"/>
where my_periodical.jsp task is your real periodical task. Taglib simply returns JavaScript code that performs asynchronous request to the real task with approximately one second (it is configurable of course) delay
Here we are describing one trick lets you deploy the scheduler (well – pseudo scheduler) right in your web application.
The idea is very simply. You can "borrow" requests from the visitors of your site. Of course, it assumes that your site consistently get visitors at a frequency greater than your scheduler’s interval. You can add to your site a hidden (invisible) iframe where src attribute points to the "scheduler". And your "scheduler" will perform the requests to your periodical tasks (implemented as JSP pages or servlets). Your periodical tasks could be long running of course, so the direct request may delays site response to the visitors. And the more practical approach is doing this processing not as part of the main request from your visitor but rather by putting in the response HTML some JavaScript that will asynchronously send you HTTP requests in the background (typically not visible to the user). Of course it only works if your application has visitors who use web browsers, not if it only consumed by programs (e.g. through RSS feeds or other XML format).
So you can add to your site some hidden frame:
<iframe style="display:none" src="my_scheduler.jsp"></iframe>
my_scheduler.jsp implements your pseudo scheduler. For the above mentioned approach (return the code for Ajax request to the real task) you can deploy Fork taglib from Coldtags suite. So your pseudo scheduler can simply deploy this taglib:
<%@ taglib uri="taglib.tld" prefix="f" %>
<f:Fork url="my_periodical_task.jsp"/>
where my_periodical.jsp task is your real periodical task. Taglib simply returns JavaScript code that performs asynchronous request to the real task with approximately one second (it is configurable of course) delay
Labels:
Coldtags
Sunday, June 22, 2008
Telco articles
Telco developers are welcome to review our article about a new approach for service development. Shortly, we are suggesting implement IMS-related services right now, on the existing networks and our practical experience shows the practical possibilities for that. IMS itself is not a goal. It is a tool that may help to achieve some significant goals in the services area. So the conclusion is obvious – if services are the real goal, why do not start with them right now? Read more here
Labels:
telecom 2.0
Thursday, June 19, 2008
Cache per user
Cache taglib lets you describe dependencies for your cached chunks of data. For example, you can cache data for requests parameters, user agents and headers. The latest version lets you describe cache that vary by the cookies. So if you are keeping some user's identification in the cookies this feature lets you cache data per users too.
E.g. cache data per sessions:
<cache:Cache scope="session" key="mykey" varyByCookie="jsessionid">
your cached data
</cache:Cache>
E.g. cache data per sessions:
<cache:Cache scope="session" key="mykey" varyByCookie="jsessionid">
your cached data
</cache:Cache>
Wednesday, June 18, 2008
Big map
Big map - a full screen Google map with search bar. By the way, this mashup uses Tiny URL taglib from Coldtags suite.
Monday, June 16, 2008
Twitter taglib
Twitter taglib has been updated. Now you can update your time line or send direct messages right from JSP (or Coldfusion) pages.
Tuesday, June 03, 2008
JSOS 5.85
JSOS ver. 5.85 is ready. At the first hand provides a lot of improvements for filters. Also check out optimized components for images. E.g. Image View servlet.
Labels:
JSOS
Monday, May 26, 2008
Mobile maps
New Google Maps mashup – Mobile Maps. The idea is very simple – select the area on the full screen map and send link to this map to any mobile user. And even more – the link here is a static picture. So any mobile user (regardless of the mobile terminal capabilities) will be able to see this map. How does it work:
1. Scale or move the full screen map here: http://mmap.linkstore.ru
2. The marker always points to the center of your map
3. Hit envelope icon and type email address there. You can use email-sms gate from your mobile operator and send link to the map via SMS.
4. Send map (as a static picture)
Technically this mashup uses Google static maps.
1. Scale or move the full screen map here: http://mmap.linkstore.ru
2. The marker always points to the center of your map
3. Hit envelope icon and type email address there. You can use email-sms gate from your mobile operator and send link to the map via SMS.
4. Send map (as a static picture)
Technically this mashup uses Google static maps.
Tuesday, May 20, 2008
Coldtags suite ver. 3.40
New version is ready. 340+ reusable web components for JSP (or Cordfusion) applications and still growing.
Tuesday, May 13, 2008
SMS with attachments
A new look for old things. Really, a new way for sending SMS was described. See details here
Labels:
Android
How to twitter from JSP
As per Twitter API in order to post new twit from the application you have to perform HTTP POST request to the following URL: http://twitter.com/statuses/update.xml
See how to do that easily with HTTP taglib from Coldtags suite:
<%@ taglib uri="taglib32.tld" prefix="t" %>
<t:GetPost url="http://twitter.com/statuses/update.xml" method="post">
<t:setAuthorization user="your_twitter_name"
password="your_twitter_password"/>
<t:setParam name="status">test from JSP</t:setParam>
</t:GetPost>
tag setAuthorization defines a BASIC authentication scheme, so you have just provide here your twitter name and password. Tag setParam defines here
a parameter status (as per API requirements) with your message. So now you can post to twitter right from your JSP pages.
See how to do that easily with HTTP taglib from Coldtags suite:
<%@ taglib uri="taglib32.tld" prefix="t" %>
<t:GetPost url="http://twitter.com/statuses/update.xml" method="post">
<t:setAuthorization user="your_twitter_name"
password="your_twitter_password"/>
<t:setParam name="status">test from JSP</t:setParam>
</t:GetPost>
tag setAuthorization defines a BASIC authentication scheme, so you have just provide here your twitter name and password. Tag setParam defines here
a parameter status (as per API requirements) with your message. So now you can post to twitter right from your JSP pages.
Wednesday, May 07, 2008
Images cache
One useful trick with Expires filter. This filter lets you set Expires and Cache-Control headers for the serviced responses. By this way your web application may deploy client-side cache for the requested resources. For example, you may decide cache all the requested images on the client's box. So for the sub sequential requests images will be served from right the local computer, and your own server will be free from this task. This simple idea lets actually save a lot of server's resources. How does it work:
1. Describe Expires filter in your web.xml file. An initial parameter expires sets here ttl for cache in seconds (24 hours in this example):
<filter>
<filter-name>ExpiresFilter</filter-name>
<filter-class>com.cj.expire.ExpiresFilter</filter-class>
<init-param>
<param-name>expires</param-name>
<param-value>86400</param-value>
</init-param>
</filter>
2. Set a mapping.
<filter-mapping>
<filter-name>ExpiresFilter</filter-name>
<url-pattern>*.gif</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ExpiresFilter</filter-name>
<url-pattern>*.jpg</url-pattern>
</filter-mapping>
...
Now the mapped files (gif, png etc.) will be cached on the client side
1. Describe Expires filter in your web.xml file. An initial parameter expires sets here ttl for cache in seconds (24 hours in this example):
<filter>
<filter-name>ExpiresFilter</filter-name>
<filter-class>com.cj.expire.ExpiresFilter</filter-class>
<init-param>
<param-name>expires</param-name>
<param-value>86400</param-value>
</init-param>
</filter>
2. Set a mapping.
<filter-mapping>
<filter-name>ExpiresFilter</filter-name>
<url-pattern>*.gif</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ExpiresFilter</filter-name>
<url-pattern>*.jpg</url-pattern>
</filter-mapping>
...
Now the mapped files (gif, png etc.) will be cached on the client side
Saturday, April 26, 2008
YouTube and JSP
A simple solution for dealing with YouTube API right from your JSP (or Coldfusion) pages: YouTube mashup taglib. And this article can give you more examples: Use the YouTube API with JSP
Thursday, April 17, 2008
Coldtags suite ver. 3.35
The latest news from Coldtags suite - version 3.35 is ready. From the newest components check out for example Embed download taglib. Now you can download files from any place on your page. You do not need more a separate download page/download servlet. Just add a download code to any of your pages (even the several downloading from one page is Ok).
Labels:
Coldtags
Sunday, April 06, 2008
Google Analytics
Check our Google Analytics automation component: Urchin filter. The idea is transparent: add tracking code for the requested pages on the fly.
Labels:
JSOS
Friday, April 04, 2008
Big Map
A simple example of Google Maps API - full screen map with local search toolbar: Big Map
Wednesday, March 19, 2008
JSOS 5.75
In the mean time our collection of servlets and filters reaches the version 5.75. From the latest additions pay attention to Timing filter for example. It is a very quick and easy way to check out the performance for your web application.
Labels:
JSOS
Thursday, March 06, 2008
Coldtags suite 3.30
We are happy to announce that the next milestone release for Coldtags suite is out. Version 3.30 includes new UI and data access components as well as a lot of updates for the existing controls.
Labels:
Coldtags
Thursday, February 28, 2008
Google Social API
Check out our experiments with Google Social API: URL's are faces too. The idea is very transparent - examine outbound links on the page, detect the links associated with the some Twitter account and output user's images from Twitter for the discovered links.
Tuesday, February 26, 2008
JSQL
New component in our suite - SQL to JSON taglib. Now you can use JSP files as data layer for your DB. And the real processing for the SQL data will be performed right in your JavaScript code. JSP file simply performs SQL select request and present data in JSON format. So any request to this JSP (e.g. via Ajax call) will return JSON representation for your SQL select. Do whatever you need with the returned data in your JavaScript framework.
Labels:
Coldtags
Tuesday, February 12, 2008
JSOS 5.70
A new mailstone for our servlets suite. See http://www.servletsuite.com/servlets.htm and download the latest archive. Actually we've started to redesign some old components also.
Labels:
JSOS
Friday, February 01, 2008
Traceroute mashup
A practical example for our GeoIP component: Google Maps mashup for traceroute command - GeoTrace. Do traceroute
from your own computer, copy results into mashup window and click Show button. You will see the intermediate nodes right on Google Maps.
from your own computer, copy results into mashup window and click Show button. You will see the intermediate nodes right on Google Maps.
Monday, January 28, 2008
Coldtags suite ver. 3.25
In the mean time, Coldtags suite has got more than 325 controls already. Check out the latest components here
Saturday, January 26, 2008
OpenID delegate
A simple trick with headers in HTML document lets you use your own URL on OpenID sites: OpenID delegate.
Labels:
Coldtags
Wednesday, January 09, 2008
Favicon processing
Favicon taglib - lets you add favicon processing to your JSP (or Coldfusion) pages. You can add favicons to the links (and do that on the server or client side) as well as make the favicon on your own page blinking (e.g. as a notification for various events - messages, buddy login, signout)
Subscribe to:
Posts (Atom)