Search mashup Got (Google blogs + Twitter search) lets you obtain the search string right from HTTP request: http://got.linkstore.ru?q=search+what
E.g. the latest from the Net about USD and Euro: http://got.linkstore.ru?q=usd+euro
Wednesday, April 01, 2009
Monday, March 30, 2009
Bug in Twitter API
Twitter API is broken. Request direct messages since some ID does not work - it returns all messages! So, for example, our bot t411 is starting to resend old replies again ...
Labels:
mashup
Thursday, March 26, 2009
Cache in Java
Interesting articles about cache in Java applications. Author targets the following Open Source frameworks: OSCache,Ehcache,JCS and Cache4J.
From our side we would like to point also your attention to the following cache related components: Cache taglib and Cache filter. They are very easy to use add-ons for your web applications.
From our side we would like to point also your attention to the following cache related components: Cache taglib and Cache filter. They are very easy to use add-ons for your web applications.
Wednesday, March 25, 2009
PDF in Java
A good practical article - how to create PDF in Java. Based on the Open Source library iText. Interesting, the latest version of iText supports barcodes.
P.S. And for the web applications you can check out the following component from Coldtags suite: Acroform. It is also iText - based component, lets you proceed so called Acroform (actually - templates in pdf) right in JSP.
P.S. And for the web applications you can check out the following component from Coldtags suite: Acroform. It is also iText - based component, lets you proceed so called Acroform (actually - templates in pdf) right in JSP.
Labels:
mashup
Tuesday, March 24, 2009
JSOS 6.25
Coldbeans Software announced the next milestone in JSOS (servlets office suite) development. JSOS reaches the version 6.25. This largest collection of Java servlets and filters provides 130+ "out of the box" components ready for building web-pages.
Check out more here: http://www.servletsuite.com
Check out more here: http://www.servletsuite.com
Labels:
JSOS
Saturday, March 21, 2009
Java Cards
A good review of the Java Cards modern state
Labels:
links
Friday, March 20, 2009
Visual traceroute
GeoTrace mashup has been updated. This web tool lets you visualize the results for traceroute. 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.
Technically is is a practical example for our GeoIP component as well as for Ajax taglibs from Coldtags suite
Technically is is a practical example for our GeoIP component as well as for Ajax taglibs from Coldtags suite
Wednesday, March 18, 2009
Money on the map
Googlebar control lets you show your Adsense in the local search on the Google Maps.
You can see it on the practice in Big map mashup.
You can see it on the practice in Big map mashup.
Sunday, March 15, 2009
Mobile video
Bug-fix release of Mobile video mashup
Labels:
mashup
Friday, March 13, 2009
Access restriction filter
Yet another solution for access restriction: This host filter. Lets you restrict access to some resources (as per filter's mapping in web.xml file) to the particular host (hosts) only. Hosts should be described by their IP's (comma separated list). By default the localhost (127.0.0.1) only is allowed.
P.S. and for access restriction via setting mandatory referer you can see Force referer filter.
P.S. and for access restriction via setting mandatory referer you can see Force referer filter.
Labels:
JSOS
Thursday, March 12, 2009
Queue in the cloud
Interesting service - online Message Queue. OnlineMQ provides simple queuing messaging services such as IBM Websphere MQ and Microsoft MQ, but data are online. They promise to keep the service free.
Labels:
links
Wednesday, March 11, 2009
Java memory leaks
A very useful material about fixing Java memory leaks
Labels:
links
Tuesday, March 10, 2009
Struts 2
The following files must be in Struts 2 Hello World application. Sometimes I really think that something is very very deep wrong with so called Java "frameworks" ...
Labels:
life
Monday, March 09, 2009
Schedulers in 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 it is not so widely used option. One trick we've used for example in Twitter 411 mashup (periodical polling with Twitter API) simply "borrows" requests from site visitors. 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). This trick described here. But it is applied level timer support.
Another option (system level) is Lifecycle modules. Lifecycle listener modules provide a means of running short or long duration Java-based tasks within the application server environment, such as instantiation of singletons or RMI servers. These modules are automatically initiated at server startup and are notified at various phases of the server life cycle.
The lifecycle module classes are called synchronously from the main server thread and Lifecycle modules can create threads if appropriate.
And the third option is writing custom MBeans. See for example Timer MBean
Another option (system level) is Lifecycle modules. Lifecycle listener modules provide a means of running short or long duration Java-based tasks within the application server environment, such as instantiation of singletons or RMI servers. These modules are automatically initiated at server startup and are notified at various phases of the server life cycle.
The lifecycle module classes are called synchronously from the main server thread and Lifecycle modules can create threads if appropriate.
And the third option is writing custom MBeans. See for example Timer MBean
Labels:
mashup
Sunday, March 08, 2009
Mobile video
Bug fixes release for Mobile video mashup.
Labels:
mashup
Thursday, March 05, 2009
Bookmarklets
Our bookmarklets mentioned in this blog collected on the separate web page: Abava bookmarklets
Labels:
mashup
Wednesday, March 04, 2009
Twitter: map on demands
One new service for Twitter - map on demands. Based on our Twitter 411 mashup (see more articles about Twitter 411 here).
It is a bot lets you obtain a map for some address. How does it work:
1. Follow to t411
2. Send to t411 a direct message in the following format:
map some_address
For example:
map Palo Alto
you will get the response in Twitter (as a direct message too) with the map for the given address. The map will be delivered in the form of the static picture - so you can see it on any mobile phone for example. We are using here the same idea as in our Mobile Maps mashup - Google static maps.
Your comments and suggestions are welcome.
And here you can read the technical details - how to create the similar new bot for Twitter by your own.
It is a bot lets you obtain a map for some address. How does it work:
1. Follow to t411
2. Send to t411 a direct message in the following format:
map some_address
For example:
map Palo Alto
you will get the response in Twitter (as a direct message too) with the map for the given address. The map will be delivered in the form of the static picture - so you can see it on any mobile phone for example. We are using here the same idea as in our Mobile Maps mashup - Google static maps.
Your comments and suggestions are welcome.
And here you can read the technical details - how to create the similar new bot for Twitter by your own.
Labels:
mashup
Tuesday, March 03, 2009
Smart Card web server programming
This post summarizes a presentation of Web Gate project (Dmitry Namiot, Simagine 2009 Innovation Award).
Web gate for SCWS
Introduction
Web gate project presents a bridge for the mobile Internet and Smart Cards Web Server (SCWS). This bridge provides a "standard" (practically defined and implemented) way for the mobile internet developers (web developers) to deploy smart cards based features in the own projects. All in all, Web gate is a development tool targets web developers and provides for them a smooth access to smart cards features.
Project description
The main idea behind this project is how to mix SCWS and mobile Internet. No doubt, that the mobile internet word is much bigger, than the potential SCWS-alone based projects. So the aim of this project is to bring SCWS-based capabilities to the mobile internet developers. Let them deploy smart cards based projects via the familiar (well known) for them web tools.
As per above-declared goals we have to implement at least the following things:
- propose a set of the components (widgets), provided access to the smart cards features
- propose a smooth integration for the selected components into modern web development tools
As a result web developers will get a tool (it is a key point – we are providing project for SCWS, but our target is actually web development crowd), let them access to smart cards features without knowing any technical details about smart card programming. And even more – this access will be tied to the web development exclusively, so there is no need in the new development skills for the web developers at all.
From our understanding the ability to win developers is a key issue for any new computer platform, including smart cards. Such a win can provide a stream of the new applications from the development community and so make the platform successful. And on this way the web development is becoming the mainstream. At the first hand it is so due to its simplicity and the huge army of the developers. So we are expecting here, that adding for web developers some forms of the convenient access to the smart cards data will be more than simply requested feature. This feature will smoothly enhance the existing development tools without adding a new complexity for the developers. It is the main idea behind our Web gate project.
Main features
Web gate offers a set of web controls (widgets) for the mobile web pages. We’ve decided to provide these controls in the form of custom tag. It is a standard approach for the extending markup languages (e.g. HTML), supported nowadays in all the development frameworks (e.g. JSP, ASP, ASP.NET etc.) These tags, being rendered by the application server (servlets container like Tomcat) provides at the end some piece of HTML code. So the initial page could be loaded as usually into browser on the mobile phone.
HTML code, generated by the components contains links to the SCWS. So the user could activate these links and get access to the appropriate servlets on SCWS. And these servlets (also part of Web gate package) provide access to the smart card features (to the features available via smart cards). So for the user this smart card access is just a click away from the original (loaded) page.
There are two types of code chunks created by the Web gate components. The first type is just a "direct" access to card’s features. For example: make a call, send SMS etc. HTML code chunk created by the component is just a "normal" hyperlink pointing to some SCWS servlet, where the relevant attributes (e.g. phone number to call) could be provided as servlet’s parameters
The second type of the components lets developers personalize forms with the data stored on (provided by) the smart card. It is HTML form that should be submitted to some CGI server (as per mobile web page business processes) where some fields could be filled by the data from the smart card. E.g. read some data file from the smart card and use its data within the form or request a cell id and use it as a value for some hidden form’s field etc. So this chunk of HTML code is a form again but instead of the real CGI it could be passed to the SCWS servlet. This servlet will request data from the smart card and return back the initialized form pointed to the real CGI script again. The drawback here is an extra click (submit the form to the localhost). But the positive elements are prevailing in our opinion: high level of customization (substitute data from the smart card), improved usability (no manual typing), safety (do not memorize keys and id’s – they will be extracted from the smart card), high level of the personalization (telecom operators will be able to provide cards with own data for use them in mobile web). And all of this just for the price of one extra click.
High level architecture
Here is what we did (proposed) from the practical point of view. As per life cycle of the typical web application:
1. Web developers prepare a mobile site (page)
2. Web page may include components (controls) pointed to the smart cards. The word "pointed" here describes either the ability request some functionality from the card (via the card) or the ability to get some data, saved on the card and reuse them (data) across the page (within the web application)
3. Page is requested by the web-browser (as usually) from the mobile terminal. As it is stated above the loaded page may include SCWS related stuff. Due to nature of HTML we have the well defined abilities to present the potential actions. It either a hyperlink or a form. So in our case we could present either some hyperlink, pointed to SCWS resource or some form, where the action attribute pointed to SCWS resource (servlet).
4. User may activate SCWS related things (controls) right from the browser. As per the above-mentioned nature of the components it either simply click on the hyperlink or submitting the form.
5. The hyperlinks will be used for the direct actions: place a new call, send a new SMS.
6. The forms will be used for the access to the data, saved on the smart cards. The typical use case is the following. The original mobile web page contains HTML form, where some of the fields should be filled by the data saved on the smart card.
Smart card is a trusted source. So the operator raised the card could save, for example, some own data on the card. It could be for example client’s id (ids), some preferences, marketing related data (sex, age group etc.) And later, when the card owner surfs the Net with the own mobile, the above-mentioned data could be used within the web applications.
What does it mean "used" here? All the existing web applications at the end of the day do absolutely the same things regardless of their business area – perform HTTP requests. E.g. customer fills out some form and submits it to the server. And here the smart cards data goes to the scene. We can add the data from the card to the form. So, technically the target web application will get via HTTP request some parameters, filled (initialized) from the smart card.
How can we do that? We can do it through the followings steps:
- replace action attribute of the original form with our SCWS servlet
- submit the original form to our SWSC application first
- fill the parameters and return back a new page (with the original form again!) where action attribute will be pointed to the its original destination. And some the fields within the returned form could be filled (initialized) by card’s data
So it is an extra click from the user’s point of view (submit form to SCWS servlet first), but for such minimal usability discrimination we can get a huge advantages. This process let us automatically pickup within our form any data right from the smart card. You can see this process as an analogue of form auto-filling, where data comes right from smart card. So it is a practical way for the personalization in the mobile internet.
And by the way, by the same principles we can save some data right on the card for the future usage.
Also we can mark here, that the described approach is similar by the some manner to the well known approach in the web development called ‘url rewriting’. As you can see above, we also "rewrite urls", but do actually a much more than simply session id adding.
Usage scenario
Now let us see how to incorporate our "smart controls" into mobile web pages. In order to make the easy transition to new components for the web developers we are providing the components as custom tags. Tags are familiar for the web development crowd. And all the modern IDE support custom tags.
So in this project we propose components as custom JSP taglibs. They will work "as is" in JSP and/or Coldfusion projects. The similar approach could be moved practically "as is" to ASP.NET world for example.
As we stated above there are two types of components (controls) pointed (referred) to the SCWS:
1. Hyperlinks, actually requested some actions from Smart Cards. The typical use cases are: place a call, send a new SMS.
2. Forms. Actually will be used for the requesting the stored data right from the cards.
For the actions the JSP inclusion looks so (sc here is a prefix, assigned for the taglib):
<!-- make a call -->
<sc:MakeCall phone="1800976"/>
<!-- send a SMS -->
<sc:SendSMS phone="1800976">how are you</sc:SendSMS>
web developers places a links (of course, the attributes could be generated dynamically) and the actual action (place a call, send a SMS) is just an ordinary link activation.
Let us see how the new (smart) forms looks like.
the original form on the web page looks so:
<form action="your_real_action" method="post">
<input type="hidden" name="id"/>
Name: <input type="text">
<input type="submit" value="Submit" />
</form>
our goal is to obtain a value for ID field (hidden field in the form) from user’s smart card. So we offer to the user submit the form to SCWS, our servlet will calculate ID (e.g. read its value from some file, preloaded by the telecom operator) and returns back the same form with the initialized fields. This “smart” form could be presented so:
<!-- submit form to SCWS servlet at the first hand -->
<sc:Form scws="your_scws_servlet" action="your_real_action" method="post">
<input type="hidden" name="id"/>
Name: <input type="text">
<input type="submit" value="Submit"/>
</sc:Form>
this example illustrates the idea with the forms (see above about the components). Code generated by this tag is just a form too, but its action will be described by the attribute scws. So the form could be submitted to our servlet. Servlet will calculate "smart" data and return back the original (here is the trick!) form with the pre-filled data:
<form action="your_real_action" method="post">
<input type="hidden" name="value_from_smart_card"/>
Name: <input type="text">
<input type="submit" value="Submit"/>
</form>
The technical implementation
For the actions (MakeCall, SendSMS) taglib simply generates a link to the appropriate SCWS servlet (the real link to http://127.0.0.1:3516/...)
For the forms taglib creates a form again, changes the action attribute (now it must be our SCWS servlet) and passes the whole original form (tag’s body) as a parameter. Servlet can read this parameter (the original form), replace (substitute) some data within it and return it back.
Conclusion
No doubt, that mobile web area is huge. Smart Card Web Server as per spec is somewhat isolated from the web. The proposed tools fill the gap, combining the best things from the both words: wide adoption of mobile web will meet the high level of personalization. And two tings are especially important here: the personalization comes from the trusted source (smart card) and uses the instruments the web developers are familiar with already.
And what is especially important, that the proposed add-on follows actually to the development model web programmers are already familiar with.
Web gate project suggests the practical approach for the mobile web developers – how to incorporate smart cards features into web projects. The biggest advantage of the suggested method is its smooth (natural) incorporation into the current web development practice. The gate does not introduce a new paradigm for the web developers and leverages their existing skills.
Another big advantage is the openness of the project (the ability to extend it). It is very easy to suggest (add) new components, where new stuff could be added any time without changing the already implemented things.
Web gate for SCWS
Introduction
Web gate project presents a bridge for the mobile Internet and Smart Cards Web Server (SCWS). This bridge provides a "standard" (practically defined and implemented) way for the mobile internet developers (web developers) to deploy smart cards based features in the own projects. All in all, Web gate is a development tool targets web developers and provides for them a smooth access to smart cards features.
Project description
The main idea behind this project is how to mix SCWS and mobile Internet. No doubt, that the mobile internet word is much bigger, than the potential SCWS-alone based projects. So the aim of this project is to bring SCWS-based capabilities to the mobile internet developers. Let them deploy smart cards based projects via the familiar (well known) for them web tools.
As per above-declared goals we have to implement at least the following things:
- propose a set of the components (widgets), provided access to the smart cards features
- propose a smooth integration for the selected components into modern web development tools
As a result web developers will get a tool (it is a key point – we are providing project for SCWS, but our target is actually web development crowd), let them access to smart cards features without knowing any technical details about smart card programming. And even more – this access will be tied to the web development exclusively, so there is no need in the new development skills for the web developers at all.
From our understanding the ability to win developers is a key issue for any new computer platform, including smart cards. Such a win can provide a stream of the new applications from the development community and so make the platform successful. And on this way the web development is becoming the mainstream. At the first hand it is so due to its simplicity and the huge army of the developers. So we are expecting here, that adding for web developers some forms of the convenient access to the smart cards data will be more than simply requested feature. This feature will smoothly enhance the existing development tools without adding a new complexity for the developers. It is the main idea behind our Web gate project.
Main features
Web gate offers a set of web controls (widgets) for the mobile web pages. We’ve decided to provide these controls in the form of custom tag. It is a standard approach for the extending markup languages (e.g. HTML), supported nowadays in all the development frameworks (e.g. JSP, ASP, ASP.NET etc.) These tags, being rendered by the application server (servlets container like Tomcat) provides at the end some piece of HTML code. So the initial page could be loaded as usually into browser on the mobile phone.
HTML code, generated by the components contains links to the SCWS. So the user could activate these links and get access to the appropriate servlets on SCWS. And these servlets (also part of Web gate package) provide access to the smart card features (to the features available via smart cards). So for the user this smart card access is just a click away from the original (loaded) page.
There are two types of code chunks created by the Web gate components. The first type is just a "direct" access to card’s features. For example: make a call, send SMS etc. HTML code chunk created by the component is just a "normal" hyperlink pointing to some SCWS servlet, where the relevant attributes (e.g. phone number to call) could be provided as servlet’s parameters
The second type of the components lets developers personalize forms with the data stored on (provided by) the smart card. It is HTML form that should be submitted to some CGI server (as per mobile web page business processes) where some fields could be filled by the data from the smart card. E.g. read some data file from the smart card and use its data within the form or request a cell id and use it as a value for some hidden form’s field etc. So this chunk of HTML code is a form again but instead of the real CGI it could be passed to the SCWS servlet. This servlet will request data from the smart card and return back the initialized form pointed to the real CGI script again. The drawback here is an extra click (submit the form to the localhost). But the positive elements are prevailing in our opinion: high level of customization (substitute data from the smart card), improved usability (no manual typing), safety (do not memorize keys and id’s – they will be extracted from the smart card), high level of the personalization (telecom operators will be able to provide cards with own data for use them in mobile web). And all of this just for the price of one extra click.
High level architecture
Here is what we did (proposed) from the practical point of view. As per life cycle of the typical web application:
1. Web developers prepare a mobile site (page)
2. Web page may include components (controls) pointed to the smart cards. The word "pointed" here describes either the ability request some functionality from the card (via the card) or the ability to get some data, saved on the card and reuse them (data) across the page (within the web application)
3. Page is requested by the web-browser (as usually) from the mobile terminal. As it is stated above the loaded page may include SCWS related stuff. Due to nature of HTML we have the well defined abilities to present the potential actions. It either a hyperlink or a form. So in our case we could present either some hyperlink, pointed to SCWS resource or some form, where the action attribute pointed to SCWS resource (servlet).
4. User may activate SCWS related things (controls) right from the browser. As per the above-mentioned nature of the components it either simply click on the hyperlink or submitting the form.
5. The hyperlinks will be used for the direct actions: place a new call, send a new SMS.
6. The forms will be used for the access to the data, saved on the smart cards. The typical use case is the following. The original mobile web page contains HTML form, where some of the fields should be filled by the data saved on the smart card.
Smart card is a trusted source. So the operator raised the card could save, for example, some own data on the card. It could be for example client’s id (ids), some preferences, marketing related data (sex, age group etc.) And later, when the card owner surfs the Net with the own mobile, the above-mentioned data could be used within the web applications.
What does it mean "used" here? All the existing web applications at the end of the day do absolutely the same things regardless of their business area – perform HTTP requests. E.g. customer fills out some form and submits it to the server. And here the smart cards data goes to the scene. We can add the data from the card to the form. So, technically the target web application will get via HTTP request some parameters, filled (initialized) from the smart card.
How can we do that? We can do it through the followings steps:
- replace action attribute of the original form with our SCWS servlet
- submit the original form to our SWSC application first
- fill the parameters and return back a new page (with the original form again!) where action attribute will be pointed to the its original destination. And some the fields within the returned form could be filled (initialized) by card’s data
So it is an extra click from the user’s point of view (submit form to SCWS servlet first), but for such minimal usability discrimination we can get a huge advantages. This process let us automatically pickup within our form any data right from the smart card. You can see this process as an analogue of form auto-filling, where data comes right from smart card. So it is a practical way for the personalization in the mobile internet.
And by the way, by the same principles we can save some data right on the card for the future usage.
Also we can mark here, that the described approach is similar by the some manner to the well known approach in the web development called ‘url rewriting’. As you can see above, we also "rewrite urls", but do actually a much more than simply session id adding.
Usage scenario
Now let us see how to incorporate our "smart controls" into mobile web pages. In order to make the easy transition to new components for the web developers we are providing the components as custom tags. Tags are familiar for the web development crowd. And all the modern IDE support custom tags.
So in this project we propose components as custom JSP taglibs. They will work "as is" in JSP and/or Coldfusion projects. The similar approach could be moved practically "as is" to ASP.NET world for example.
As we stated above there are two types of components (controls) pointed (referred) to the SCWS:
1. Hyperlinks, actually requested some actions from Smart Cards. The typical use cases are: place a call, send a new SMS.
2. Forms. Actually will be used for the requesting the stored data right from the cards.
For the actions the JSP inclusion looks so (sc here is a prefix, assigned for the taglib):
<!-- make a call -->
<sc:MakeCall phone="1800976"/>
<!-- send a SMS -->
<sc:SendSMS phone="1800976">how are you</sc:SendSMS>
web developers places a links (of course, the attributes could be generated dynamically) and the actual action (place a call, send a SMS) is just an ordinary link activation.
Let us see how the new (smart) forms looks like.
the original form on the web page looks so:
<form action="your_real_action" method="post">
<input type="hidden" name="id"/>
Name: <input type="text">
<input type="submit" value="Submit" />
</form>
our goal is to obtain a value for ID field (hidden field in the form) from user’s smart card. So we offer to the user submit the form to SCWS, our servlet will calculate ID (e.g. read its value from some file, preloaded by the telecom operator) and returns back the same form with the initialized fields. This “smart” form could be presented so:
<!-- submit form to SCWS servlet at the first hand -->
<sc:Form scws="your_scws_servlet" action="your_real_action" method="post">
<input type="hidden" name="id"/>
Name: <input type="text">
<input type="submit" value="Submit"/>
</sc:Form>
this example illustrates the idea with the forms (see above about the components). Code generated by this tag is just a form too, but its action will be described by the attribute scws. So the form could be submitted to our servlet. Servlet will calculate "smart" data and return back the original (here is the trick!) form with the pre-filled data:
<form action="your_real_action" method="post">
<input type="hidden" name="value_from_smart_card"/>
Name: <input type="text">
<input type="submit" value="Submit"/>
</form>
The technical implementation
For the actions (MakeCall, SendSMS) taglib simply generates a link to the appropriate SCWS servlet (the real link to http://127.0.0.1:3516/...)
For the forms taglib creates a form again, changes the action attribute (now it must be our SCWS servlet) and passes the whole original form (tag’s body) as a parameter. Servlet can read this parameter (the original form), replace (substitute) some data within it and return it back.
Conclusion
No doubt, that mobile web area is huge. Smart Card Web Server as per spec is somewhat isolated from the web. The proposed tools fill the gap, combining the best things from the both words: wide adoption of mobile web will meet the high level of personalization. And two tings are especially important here: the personalization comes from the trusted source (smart card) and uses the instruments the web developers are familiar with already.
And what is especially important, that the proposed add-on follows actually to the development model web programmers are already familiar with.
Web gate project suggests the practical approach for the mobile web developers – how to incorporate smart cards features into web projects. The biggest advantage of the suggested method is its smooth (natural) incorporation into the current web development practice. The gate does not introduce a new paradigm for the web developers and leverages their existing skills.
Another big advantage is the openness of the project (the ability to extend it). It is very easy to suggest (add) new components, where new stuff could be added any time without changing the already implemented things.
Labels:
mashup
Monday, March 02, 2009
Mobile video
Mobile video site - Jokes: http://tinyurl.com/dxz5yt. Created with Mobile video mashup
You can copy the above mentioned link right to your phone with the help of QR-code.
Labels:
mashup
Sunday, March 01, 2009
Twitter SMS
Free SMS provider for Twitter: Twe2. So you can still get direct messages as well as replies via SMS. And by the way it means that with the help of Twitter 411 service you can create a free information service for the mobile (it is a key!) users. So Twitter will play a role of a mobile development platform.
You can find a more about Twitter 411 - bot creator in this blog.
You can find a more about Twitter 411 - bot creator in this blog.
Labels:
mashup,
telecom 2.0
Thursday, February 26, 2009
HTTP proxy
HTTP proxy servlet has been updated. Now it should correctly proceed HTTP status codes. Your feedback is welcome as usually.
Labels:
JSOS
Tuesday, February 24, 2009
Mobile bookmarks
One of the problems for the mobile web development is a bookmarking. The bookmarking on the mobile browser could be not very user-friendly, and also you can't always see the URL of the site while you are browsing on mobile. One of the possible solutions here belongs to micro-formats deployment. You can present a hCard card / VCF card and load site's URL right into mobile address book. See examples here. And here hCard taglib from Coldtags suite could help - you can easily build hCard with this component. It is a hCard creator for JSP.
Labels:
mashup,
telecom 2.0
Monday, February 23, 2009
Coldtags suite ver. 3.60
A new version of Coldtags suite is ready. A largest set of custom JSP taglibs over the Net offers 360+ Java web components.
P.S. Interesting, we see a lot of Coldfusion developers used our components during the last several months. It looks like Coldfusion is back.
P.S. Interesting, we see a lot of Coldfusion developers used our components during the last several months. It looks like Coldfusion is back.
Sunday, February 22, 2009
Smart Cards Web Server
Innovation Award of Simagine 2009 contest goes to Russia.
This project suggests a new approach for smart cards development. It uses Smart Cards Web Server as a bridge for the mobile web development. Exposing all the card features as servlets we can allow mobile web developers deploy smart cards features in the web projects without any knowledge to Smart Cards API. For example, for JSP developers smart card features are available just as ordinary custom taglib. Feel free to contact us if you need more details.
This project suggests a new approach for smart cards development. It uses Smart Cards Web Server as a bridge for the mobile web development. Exposing all the card features as servlets we can allow mobile web developers deploy smart cards features in the web projects without any knowledge to Smart Cards API. For example, for JSP developers smart card features are available just as ordinary custom taglib. Feel free to contact us if you need more details.
Labels:
mashup,
telecom 2.0
Saturday, February 14, 2009
Annotated links
Mashups news: Annotated links has been updated. And a new version of API provides custom JSP taglib lets you pack links right from your JSP (and/or Coldfusion) applications. See details here.
The following component from our Coldtags suite does the job: Annotated links taglib.
The following component from our Coldtags suite does the job: Annotated links taglib.
Thursday, February 12, 2009
Mobile video sites creator
Our mashup Mobile video sites generator has been updated as well as the components used for access to YouTube API
Wednesday, February 11, 2009
Tuesday, February 10, 2009
JSOS ver. 6.20
Coldbeans Software announced the next milestone in JSOS (servlets office suite) development. JSOS reaches the version 6.20. This largest collection of Java servlets and filters provides 125+ "out of the box" components ready for building web-pages.
One of the biggest parts is the rich set of filters. Package includes such components as XML and WML transcoding, access restriction, traffic restriction, caching, profiling etc.
All components are configurable, so you may incorporate them into your own design frameset. Components from JSOS do support WAP/WML, so the same set of components can be used for wireless users too. At this moment JSOS provides a largest set of servlets and filters over the Net.
Check out more here: http://www.servletsuite.com
One of the biggest parts is the rich set of filters. Package includes such components as XML and WML transcoding, access restriction, traffic restriction, caching, profiling etc.
All components are configurable, so you may incorporate them into your own design frameset. Components from JSOS do support WAP/WML, so the same set of components can be used for wireless users too. At this moment JSOS provides a largest set of servlets and filters over the Net.
Check out more here: http://www.servletsuite.com
Labels:
JSOS
Monday, February 02, 2009
Secure file exchange
Mashup Protected notes lets you prepare password protected note so the authorized people only can access to. And now you can attach files to your text notes. The main idea is the same - publish private information on the public sources. E.g. put limited access data in your public Twitter line etc.
Labels:
mashup
Sunday, February 01, 2009
Captcha servlet
The simplest solution for captcha deployment in Java web applications: Captcha servlet
Labels:
JSOS
Monday, January 26, 2009
Mobile sites creator
We wrote recently about QR codes for YouTube. It is a bookmarklet, lets you copy YouTube mobile page right to your phone. Now let us see a more generic solution - how to automatically create a mobile video site. Our new mashup YouTube mobile video lets you collect a bundle of interesting video pages and automatically create a mobile (XHTML, WAP 2.0) site for them. Could be a good source of the mobile traffic for the telecom operators as well a usefull add-on for the mobile sites developers (designers). For example, just create without any programming a link for the video data your visitors could be interested in and use this link on the own mobile portal (site).
The usage is very easy. On the mashup's page (no need for the registration) just set a link for YouTube page. Than edit the title for this page and add it to the site. Mashup automatically detects a relevant mobile data and returns you a link to the mobile site. You can share this link with email, Twitter, Facebook or even copy it right to your own mobile via QR-code. And it is exactly the same link you can reuse across your own mobile sites.
Technically it is an YouTube API and several of custom tags from Coldtags suite. For example - YouTube mashup taglib.
The usage is very easy. On the mashup's page (no need for the registration) just set a link for YouTube page. Than edit the title for this page and add it to the site. Mashup automatically detects a relevant mobile data and returns you a link to the mobile site. You can share this link with email, Twitter, Facebook or even copy it right to your own mobile via QR-code. And it is exactly the same link you can reuse across your own mobile sites.
Technically it is an YouTube API and several of custom tags from Coldtags suite. For example - YouTube mashup taglib.
Friday, January 23, 2009
More Twitter 411
Our Twitter 411 mashup in Twitdom directory
Labels:
mashup
Wednesday, January 21, 2009
YouTube QR code
An useful QR code bookmarklet. Lets you obtain QR code for the mobile version of opened YouTube video (it will create a QR code image with the URL of the mobile YouTube page for the video you are viewing).
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.
How does it work? Open any YouTube page. E.g. Magic tricks. With the opened page select YouTube QR code bookmarklet. And you will get a QR code for the mobile version. So as soon as you scan it the mobile URL will be right on your mobile. It could be a good traffic generation tools for the mobile operators - now it is very easy to transfer YouTube video to mobile.
More bookmarklets see here.
How does it work? Open any YouTube page. E.g. Magic tricks. With the opened page select YouTube QR code bookmarklet. And you will get a QR code for the mobile version. So as soon as you scan it the mobile URL will be right on your mobile. It could be a good traffic generation tools for the mobile operators - now it is very easy to transfer YouTube video to mobile.
More bookmarklets see here.
Labels:
mashup
Tuesday, January 20, 2009
Decorator
Decorator filter lets you update pages on the fly. Filter lets you add dynamically (on the fly) some content to the serviced requests. More precisely filter adds content from the given file before, after or inside of the given HTML tag (e.g. before the body tag, or after the head tag etc.). For example lets us add a new style for the each div tag. We can create a file /styles/add_on.txt with the following content: style="color:red". Now with the Decorator filter we can do the following:
<filter>
<filter-name>DecoratorFilter</filter-name>
<filter-class>com.cj.decorator.DecoratorFilter</filter-class>
<init-param>
<param-name>data</param-name>
<param-value>/styles/add_on.txt</param-value>
</init-param>
<init-param>
<param-name>tag</param-name>
<param-value>div</param-value>
</init-param>
<init-param>
<param-name>place</param-name>
<param-value>inside</param-value>
</init-param>
</filter>
and as soon as we map this filter to our JSP files, filter will update div blocks on the fly.
P.S. check out other filters in our JSOS package. There are a lot of updates.
<filter>
<filter-name>DecoratorFilter</filter-name>
<filter-class>com.cj.decorator.DecoratorFilter</filter-class>
<init-param>
<param-name>data</param-name>
<param-value>/styles/add_on.txt</param-value>
</init-param>
<init-param>
<param-name>tag</param-name>
<param-value>div</param-value>
</init-param>
<init-param>
<param-name>place</param-name>
<param-value>inside</param-value>
</init-param>
</filter>
and as soon as we map this filter to our JSP files, filter will update div blocks on the fly.
P.S. check out other filters in our JSOS package. There are a lot of updates.
Labels:
JSOS
Monday, January 19, 2009
Twitter talk bot
One interesting feature in Twitter 411 service. This mashup lets users create own programmable Twitter bots. They are so calling messaging bots - so they will respond to direct messages.Service lets you register (reserve) some keywords (words, direct messages started with) and define your own reactions (including your own CGI scripts) for the reserved words in the incoming messages. Here you can see more about building your own information systems on the top of Twitter and how you can easily create your own Twitter bot.
But if you will simply send any DM to Twitter user t411 and the first word in your DM is not reserved for the service you will get answer from the default service - talk robot. Of course, it is not a famous Eliza from J.Veizenbaum, but anyway it can support the conversation, so you can talk. Try to send DM to t411 (you must follow to it first, of course) and talk with the robot.
But if you will simply send any DM to Twitter user t411 and the first word in your DM is not reserved for the service you will get answer from the default service - talk robot. Of course, it is not a famous Eliza from J.Veizenbaum, but anyway it can support the conversation, so you can talk. Try to send DM to t411 (you must follow to it first, of course) and talk with the robot.
Labels:
mashup
Sunday, January 18, 2009
Protected messages
Yet another messaging solution: Protected messages. Lets you create password protected text notes. The idea is transparent - use public sources for the private note distribution. E.g. publish private notes (the authorized people only will be able to read) in your public Twitter line. Or leave private replies in the blogs etc.
See also Annotated links and Secure messages mashups
See also Annotated links and Secure messages mashups
Labels:
mashup
Thursday, January 15, 2009
Mobilize it with QR-codes
Mashup QR-code maker is an easiest way (well – yet another attempt to present an easiest way) for the mobilizing of user-defined content. Here are two tasks at least. At the first hand we need to create a mobile view for user-defined data. And what is important of course we need to do that very simply. After that we have to present by some way this view for our mobile users. Actually, QR-code generator mashup solves these tasks exactly.
As soon as the web user types (or copy-pastes) some content the relevant mobile web page will be created automatically. And a link (URL) for this fresh web page will be presented as a QR-code. So as soon as mobile user scans this code than he/she will get user-defined info (an appropriate web page) automatically.
All in all it is a simplest way for the content mobilization. There is no need in programming/developing skill at all. And QR-codes solve the distribution problem.
The latest version of QR-code mashup lets you add some local document to the content (e.g. photo, video, data files etc.). So you can share for example some local saved video data for the mobile users.
As soon as the web user types (or copy-pastes) some content the relevant mobile web page will be created automatically. And a link (URL) for this fresh web page will be presented as a QR-code. So as soon as mobile user scans this code than he/she will get user-defined info (an appropriate web page) automatically.
All in all it is a simplest way for the content mobilization. There is no need in programming/developing skill at all. And QR-codes solve the distribution problem.
The latest version of QR-code mashup lets you add some local document to the content (e.g. photo, video, data files etc.). So you can share for example some local saved video data for the mobile users.
Labels:
mashup
Wednesday, January 14, 2009
Secure messages
Mashup Secure messages supports password protected notes. Here is an idea: you can publish secure notes in the public stream (e.g. in your Twitter status) and only authorized people will be able to read it. And the message is self-destructable (one time readable only).
Technically it is Password protected taglib from Coldtags suite.
Technically it is Password protected taglib from Coldtags suite.
Labels:
mashup
Tuesday, January 13, 2009
QR-code in newspapers
Cash - one of the leading financial newspaper in Switzerland uses QR-Codes (in the paper version!). The readers can access stock quotes and financial information by scanning such a code right from the his/her mobile.The source: QR code maker - an easiest way to mobilize your content with QR codes. And the latest version of this QR code generator lets you deal with the local files too. You can easily share your local files for the mobile users.
Labels:
mashup
Monday, January 12, 2009
QR code generator
Short note: our QR-code maker has been updated.
Labels:
mashup
Sunday, January 11, 2009
Authorization filter
A fastest way for setting an authorized access to your files - Authorization filter. Just one declaration in your web.xml file, describes user name/password pair:
<filter>
<filter-name>AuthFilter</filter-name>
<filter-class>com.cj.auth.AuthFilter</filter-class>
<init-param>
<param-name>name</param-name>
<param-value>guest</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>12345</param-value>
</init-param>
</filter>
and now just map this filter to some directory (file) you are going to protect:
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/closed/*.jsp</url-pattern>
</filter-mapping>
<filter>
<filter-name>AuthFilter</filter-name>
<filter-class>com.cj.auth.AuthFilter</filter-class>
<init-param>
<param-name>name</param-name>
<param-value>guest</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>12345</param-value>
</init-param>
</filter>
and now just map this filter to some directory (file) you are going to protect:
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/closed/*.jsp</url-pattern>
</filter-mapping>
Labels:
JSOS
Thursday, January 08, 2009
Password protected
A new component in our Coldtags suite - Password protected pages. Lets you create password protected pages on the fly. Custom JSP taglib lets you define authorized access only right in your JSP (and/or Coldfusion by the way) page. E.g. place the following code on the top of your page:
<%@ taglib uri="taglib.tld" prefix="p" %>
<p:PasswordProtect realm="Protected" name="guest" password="12345"/>
...
// rest of your JSP (HTML) code
taglib lets you define user name/password pair for this page. And login dialog will be popped up by this taglib also.
<%@ taglib uri="taglib.tld" prefix="p" %>
<p:PasswordProtect realm="Protected" name="guest" password="12345"/>
...
// rest of your JSP (HTML) code
taglib lets you define user name/password pair for this page. And login dialog will be popped up by this taglib also.
Labels:
Coldtags
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
Subscribe to:
Posts (Atom)