The Reader API will be modeled after http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI
All calls are relative to http://www.asterbox.com/reader/
index.php?fuseaction=logout
parameters: none
description: end the user's session
index.php?fuseaction=sublist
parameters: output=xml/json
description: retrieve the user's subscription list
notes: pass in the user's email and password if there is no session ID (SID)
index.php?fuseaction=feedlist
more info at http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI
Query for an atom set of items. Sets include feed, label, and state.
States include:
read - A read item will have the state read
kept-unread - Once you've clicked on "keep unread", an item will have the state kept-unread
fresh - When a new item of one of your feeds arrive, it's labeled as fresh. When (need to find what remove fresh label), the fresh label disappear.
starred - When your mark an item with a star, you set it's starred state
broadcast - When your mark an item as being public, you set it's broadcast state
reading-list - All you items are flagged with the reading-list state. To see all your items, just ask for items in the state reading-list
tracking-body-link-used - Set if you ever clicked on a link in the description of the item.
tracking-emailed - Set if you ever emailed the item to someone.
tracking-item-link-used - Set if you ever clicked on a link in the description of the item.
tracking-kept-unread - Set if you ever mark your read item as unread.
The following query modifiers can be used
n - Number of items returns in a set of items (default 20)
client - The default client name
r - By default, items starts now, and go back time. You can change that by specifying this key to the value o (default value is d)
ot - The time (unix time, number of seconds from January 1st, 1970 00:00 UTC) from which to start to get items. Only works for order r=o mode. If the time is older than one month ago, one month ago will be used instead.
ck - current time stamp, probably used as a quick hack to be sure that cache won't be triggered.
xt - another set of items suffix, to be excluded from the query. For exemple, you can query all items from a feed that are not flagged as read. This value start with feed/ or user/, not with !http:// or www
c - a string used for continuation process. Each feed return not all items, but only a certain number of items. You'll find in the atom feed (under the name gr:continuation) a string called continuation. Just add that string as argument for this parameter, and you'll retrieve next items.
Example :
All the 17 first items items from xkcd.com main feed that are not read can be found on the url :
http://www.google.com/reader/atom/feed/http://xkcd.com/rss.xml?n=17&ck=1169900000&xt=user/-/state/com.google/read
image.php
parameters: img_url - the url of the image to be converted, starting with http://
img_max_w - the maximum width of the converted image, in pixels
img_max_h - the maximum height of the converted image, in pixels
img_out_format - JPEG, PNG, or GIF
Friday, June 15, 2007
Sunday, June 10, 2007
Eclipse Error Preverifying Class
I kept getting an error in Eclipse: Error Preverifying Class in JSONArray.java. Sun's website (http://java.sun.com/products/sjwtoolkit/FAQ.html) revealed some useful info regarding the class libraries used in projects:
"If you get this error, you are probably using a class library that was written for Java 2 Platform, Standard Edition (J2SE™ platform). This toolkit supports the development of MIDP applications, which have limited capabilities compared to their J2SE counterparts."
Turns out Eclipse was configured to use an older preverifier and was unaware of java.io.Writer. To fix this, I went to Window > Preferences > J2ME > Preverification > Use specific configuration > Connected Limited Device Configuration (1.1).
"If you get this error, you are probably using a class library that was written for Java 2 Platform, Standard Edition (J2SE™ platform). This toolkit supports the development of MIDP applications, which have limited capabilities compared to their J2SE counterparts."
Turns out Eclipse was configured to use an older preverifier and was unaware of java.io.Writer. To fix this, I went to Window > Preferences > J2ME > Preverification > Use specific configuration > Connected Limited Device Configuration (1.1).
Thursday, May 31, 2007
Friday, April 13, 2007
some open source task management systems.
I have read about kiko.com which is an ajax calendar in
php (open source) .. the site is currently down. but this software couild have
been configured for our use.
php (open source) .. the site is currently down. but this software couild have
been configured for our use.
Moreover i found that the zimbra calendar is open source
but it is written in java
but it is written in java
these calendars are also in java and Ajax based
MOreover i want to tell u that zimbra also has and open
source version
source version
can we do this calendar in java if there is no problem
to the client , we can just configure one of these open source calendars ?
to the client , we can just configure one of these open source calendars ?
pls see this framework
powered by performancing firefox
Sunday, April 8, 2007
j2me authentication problem
There were several issues with google authentication
1) The parameters needed to be encoded , i learnt it from the Java Client LOGIN APi provided by google. THe Java source had to be ported for use in j2me. As some java classes were not available in j2me.
2) Here is the response of a guy from google. Who helped me find the problem
related with j2me.
Please remove the outputStream.flush() call. This call will cause
some j2me-enabled devices to use chunked encoding on the POST. The
ClientLogin service does not seem to like chunked encoding.
3) How he detected the bug
Used the POST being generated by this j2me program and used it
along with 'openssl s_client' and curl to investigate and perform some
trial and error. This led to the discovery of the chunked encoding
problem-- a quick search on the web led to the removal of the flush()
as a solution.
1) The parameters needed to be encoded , i learnt it from the Java Client LOGIN APi provided by google. THe Java source had to be ported for use in j2me. As some java classes were not available in j2me.
2) Here is the response of a guy from google. Who helped me find the problem
related with j2me.
Please remove the outputStream.flush() call. This call will cause
some j2me-enabled devices to use chunked encoding on the POST. The
ClientLogin service does not seem to like chunked encoding.
3) How he detected the bug
Used the POST being generated by this j2me program and used it
along with 'openssl s_client' and curl to investigate and perform some
trial and error. This led to the discovery of the chunked encoding
problem-- a quick search on the web led to the removal of the flush()
as a solution.
Tellme Beta
Supposedly the best app in the mobile search category, they were acquired by MS and only support a few phones by Cingular/ATT and Sprint:
http://beta.tellme.com/content/tellme_by_mobile_overview.php
http://beta.tellme.com/content/tellme_by_mobile_overview.php
Blogging IDE laszlo problem
This is the download link of eclipse IDE with WTP tools and all the required prerequisites
http://download2.bea.com/pub/callisto/wtp153/wtp-all-in-one-sdk-R-1.5.3-win32.zip
THis is the download link of laszlo IDE , this IDE needs to be installed in eclipse by using Software update Manager.
http://www.riftware.com/laszlodev/laszloIDE.zip
THis is The LAszlo Server itself
/>
Instruction on setting up laszlo IDE , pls read the step 7 and 8 carefully :
http://wiki.openlaszlo.org/Installation_Instructions
discussions on the design veiw problem :
http://www.openlaszlo.org/pipermail/laszlo-user/2005-November/002160.html
I am having problems with the design view.
/>
powered by performancing firefox
Monday, April 2, 2007
Apple's News Reader
http://scobleizer.com/2007/03/31/apple-collaborating-with-amazon-google-and-cingular-on-new-ireader/
It’s a unique version of Google’s Reader, built to use the “iStrip” navigation device. It’ll come by default with some feeds, they aren’t sure how many.
It’s a unique version of Google’s Reader, built to use the “iStrip” navigation device. It’ll come by default with some feeds, they aren’t sure how many.
Techmeme Goes Mini
Here's another RSS news site offering content formatted for mobile devices:
http://www.techmeme.com/mini
http://www.techmeme.com/mini
Saturday, March 31, 2007
google Web Toolkit
Google Web Toolkit - Build AJAX apps in the Java language
Google Web Toolkit - Build AJAX apps in the Java language
Download Google Web Toolkit (GWT)
New! Full source code available under Apache 2.0
Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don't speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatibilities between web browsers and platforms, and JavaScript's lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.
GWT lets you avoid many of these headaches while offering your users the same dynamic, standards-compliant experience. You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML.
powered by performancing firefox
Friday, March 30, 2007
A new Idea that could tutn up to something like del.ico.us
There are firefox addons to llok word in a dictionary , just left click or right click a word in forefox, (along with Alt key pressed) and a tip will show u the meaning of it.
http://www.answers.com/main/firefox_plugins.jsp
/>Now most of the students who want to prepare for a foreign language test , do a lot of reading and in that reading they find out difficult words and look them up in a dictionary.
Now what about giving them the ability to save the word in a word list , so that they can revise their new learned words.
A plugin that stores the words with theri meanings, and optionally the context in which it was read by the user. The architecture would be client-server , just like del.ico.us. The users word list would be stored on our server, and can also be made public.
So the users who are preaparing for a foreign language test can share word lists with each other.
THis tool could be very helpful for anyone and would help him to learn new words.
The user can add his own exampes of its usage. also add pictures to the words he saves.
/> />
Thursday, March 29, 2007
Integration with Google Reader API
Until we can resolve the problems with ClientLogin, we have to authenticate on the server side. We can work using localhost until we have a remote host ready and available. The jad file can hold the server url, allowing us to change it as needed without recompiling the jar.
We need to integrate a login screen. This screen will be added to the list of options available when the user starts the reader. The reader will try to authenticate with Google. If that fails then it will authenticate against our server (localhost or remote).
The user will not be able to perform certain functions unless logged in.
We need to integrate a login screen. This screen will be added to the list of options available when the user starts the reader. The reader will try to authenticate with Google. If that fails then it will authenticate against our server (localhost or remote).
The user will not be able to perform certain functions unless logged in.
Tuesday, March 27, 2007
google data api
google has data api's for doing authentication from java, dot net and php, but not from j2me.
A similar api for j2me could be written to help other developers do similar tasks.
powered by performancing firefox
j2me file upload manager
:
1) simultaneous upload of one or ore files. ( to utilize maximum available bandwidth)
2) resume broken uploads.
3) schedule uploads to a time in future.
4) upload progress bar to show how much percentage of upload has been done.
5) upload video to different sites like utube , msn video, myspaces, etc
6) a single uploader for all ur video blogging needs.
7)
astrient labs open source video uploader..
http://www.hostj2me.com/appdetails.html?id=99
powered by performancing firefox
Monday, March 26, 2007
MIDlet Attributes
By placing application specific attributes in the JAD, you can make changes to these attributes without recompiling the jar. For example, if you have this:
Reader.url: http://reader.google.com
you can access this in the MIDlet with:
String url = getAppProperty("Reader.url");
Reader.url: http://reader.google.com
you can access this in the MIDlet with:
String url = getAppProperty("Reader.url");
Saturday, March 24, 2007
p2p video uploader
P2P Video on Demand » LibraryPlanet.com
Mediavillage is a P2P with encryption. Files stay encrypted, we are movie industry approved and very very Librarian friendly.
Please join mediavillage and upload content at any time.
We just began phase one of our launch.
We offer free file hosting for very large video and audio files on a
very very fast P2P assist network. The first of its kind on the planet.
File links may be used in other websites or email to instantly launch download or streaming files.
The technology is way beyond digital cable or satellite on demand in
several ways. We may become the next major broadcast technology. We fill
most or all of the known criteria for Professional Archivists and
Librarians who speculate on what a cutting edge technology should provide.
The community/commons face of Mediavillage.net is a global strategy for
Hyper-Local portals so that anyone can get their content online free and
anon if required.It allows content providers to make material available
at cost, with no upfront fee, renumeration based on 51% to the creator.
The Community portals (Calgary, Vancvouver, etc) are geared so that
small and medium business (SMB) can sponsor local content producers
(video, music, writers, etc).
We will open a portal for any city, town, village, on request or as
strategy determines. Portals may or may not be purchasable as franchise.
We will market content providers material to local business and see that
most or all revenues go to the creator. Our revenues are planned
primarily from file sales. We realise we must work for our dollar also,
so our main goal is to see that everyone does well from this and that
the system grows.
Currently we are sourcing Journalist’s, Article Writers, and Video
Journalists to support them. We will upon acceptance of an article
series outline that is topical in nature, actively seek sponsorship
relative to the topic. We pay in wage form or invoice depending on
circumstances.
powered by performancing firefox
Friday, March 23, 2007
j2me file uploader
I was thinking of a j2me file uploader that can upload audio or video recordings from the phone to Google video .Based on google api.
/> with the capability of resuming broken uploads .
batch upload of files.
/>
powered by performancing firefox
Wednesday, March 21, 2007
yahoo sends locl data to cell phones
Local data is sent to cellphones by Yahoo - International Herald Tribune
Local data is sent to cellphones by Yahoo
Reuters
Published: March 20, 2007
E-Mail Article
Listen to Article
Printer-Friendly
3-Column Format
Translate
Share Article
Add to Clippings
Text Size
SAN FRANCISCO: Yahoo has introduced a new Internet search system for cellphone users that delivers locally relevant answers, a move that vaults it ahead of what Google now offers.
Starting in the United States, with international markets to follow later this year, the company in Sunnyvale, California, said it planned to take advantage of the inherently local nature of many Web searches performed on phones.
"We are now putting search on every mobile phone that has a browser," said Marco Boerries, senior vice president of Yahoo's Connected Life business unit. "We are delivering the results consumers want with just one search, not a list of Web links."
powered by performancing firefox
Monday, March 19, 2007
storing images in rms
Externalizing Resources - Persisting Images in RMS
Storing Images in RMS
RMS is a simple but effective local storage subsystem. It provides the basic methods to open, manage, share, and search RecordStores, and write and read records. For more information about the RMS API, please refer to the MIDP Javadoc.
The utility class ImageRmsUtils explained in this article uses RMS to store the individual images, with one image per record. The format for each record is as follows:
powered by performancing firefox
Saturday, March 17, 2007
Mobile Web Radio Player
http://www.sitex.com.ua/en/products/mWebPlayer/index.htm
Mobile Web Radio Player
mWebPlayer is a tiny easy-to-use Web Radio Player for mobile devices.
This is it! It’s the simple software application which plays streaming MP3 music from thousands of internet radio and can work with any Java-based mobile device like a cell phone, a PDA or a smartphone.
The application size is less 90 kb and it's compatable with any J2ME device. Keep in mind that your mobile has to support audio/mpeg mime type to play MP3 stream (you can check all supported types in MIME Type screen).
powered by performancing firefox
Mobile Web Radio Player
Mobile Web Radio Player
mWebPlayer is a tiny easy-to-use Web Radio Player for mobile devices.
This is it! It’s the simple software application which plays streaming MP3 music from thousands of internet radio and can work with any Java-based mobile device like a cell phone, a PDA or a smartphone.
The application size is less 90 kb and it's compatable with any J2ME device. Keep in mind that your mobile has to support audio/mpeg mime type to play MP3 stream (you can check all supported types in MIME Type screen).
powered by performancing firefox
Tuesday, March 13, 2007
JSR requirement for the reader
The Reader does not require any specific jsr for any purpose like saving images in the rms or any network specific calls.
If we use svg it would need JSR 226 to display svg content , not all phones support svg , but we have a solution we may export the svg content to png images and render them for some specific screen sizes.
are using full screen canvas so we require that
If we use svg it would need JSR 226 to display svg content , not all phones support svg , but we have a solution we may export the svg content to png images and render them for some specific screen sizes.
are using full screen canvas so we require that
powered by performancing firefox
JSR requirements for the RUBIKS cube
the Rubiks cube requires JSR 184 (m3g API) for rendering 3d content on the screen.
The phones must be midp 2.0 , and cldc 1.1 or higher.
The phones must be midp 2.0 , and cldc 1.1 or higher.
powered by performancing firefox
Monday, March 12, 2007
rubiks cube requirements to change images by the user
The user will have the option of either using the default images provided by us or use his own images.
For using his own images
the user will be required to have a picasa or flickr account { in this way we are promoting picasa or flickr too :-) }, He will be presented with a login screen on the mobile phone where he will enter his picasa or flickr username.
He will also be required to make a folder(album) named asterbox on his flickr album. which ahsould at least contain 6 images. These images which are in the jpeg format will be changed to png and resized by our server and then downloaded by the phone.
the images will be downloded using an http connection similar to the images getting downloed byt he rss reader. the images will then be saved n the rms.
/> and changing an image
1)the user will always have the option of updating images from the album manually(after he changes the images in the folder).
2)this process can also be automized by having a flag at our server, which shows that some images have changed and also which images have changed ,
the game starts on the mobile it would check the server for this flag.
any image has changed it would download that image (This option of checking image Flag can be turned on/off by the user).
/>
/>
For using his own images
the user will be required to have a picasa or flickr account { in this way we are promoting picasa or flickr too :-) }, He will be presented with a login screen on the mobile phone where he will enter his picasa or flickr username.
He will also be required to make a folder(album) named asterbox on his flickr album. which ahsould at least contain 6 images. These images which are in the jpeg format will be changed to png and resized by our server and then downloaded by the phone.
the images will be downloded using an http connection similar to the images getting downloed byt he rss reader. the images will then be saved n the rms.
/> and changing an image
1)the user will always have the option of updating images from the album manually(after he changes the images in the folder).
2)this process can also be automized by having a flag at our server, which shows that some images have changed and also which images have changed ,
the game starts on the mobile it would check the server for this flag.
any image has changed it would download that image (This option of checking image Flag can be turned on/off by the user).
/>
/>
powered by performancing firefox
Friday, March 2, 2007
Another Unofficial Google Reader API
At least it's on Google's domain:
http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI
http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI
Thursday, March 1, 2007
UI ideas
We think the best thing to do for a UI is to make it look like a web 2.0 app. Yahoo Widgets has lots of nice looking designs we can use for inspiration. We should have 2 versions of the reader, one with a fancy ui and the other plain for older phones.
If we want to start thinking about writing our own UI classes, we can model them after existing classes. I don't know if Java classes are easy to understand. I've only worked with JS libraries.
If we want to start thinking about writing our own UI classes, we can model them after existing classes. I don't know if Java classes are easy to understand. I've only worked with JS libraries.
free Web Search Platform
http://www.alexa.com/site/devcorner/web_search_platform
alexa has a free web search paltform , can be used for making a customized search engine,
i was thinking over an image search plugin for rssreader similar to google image search, just we need to resize the images and convert them to png on our server
then these images can be shown on the mobile device.
This image search can be used by people to search for coolest celebrity pics while they are traveling , then a way to save this pic on the mobile or on their google account so that they can use this pic as a desktoip wallpaper.
*We can also have an album viewer for j2me to view flickr pics.
/>
alexa has a free web search paltform , can be used for making a customized search engine,
i was thinking over an image search plugin for rssreader similar to google image search, just we need to resize the images and convert them to png on our server
then these images can be shown on the mobile device.
This image search can be used by people to search for coolest celebrity pics while they are traveling , then a way to save this pic on the mobile or on their google account so that they can use this pic as a desktoip wallpaper.
*We can also have an album viewer for j2me to view flickr pics.
/>
powered by performancing firefox
Wednesday, February 28, 2007
online emulator MIDP 2.0
Here is another web based emulator i found support midp2.0
U can play games here.
http://waprunner.wap3.net/emu_wap3/p/wap3/?mode=JAVA
we can also submit our game here for others to play.
Here is the link of the emulator.
http://kobjects.sourceforge.net/me4se/
U can play games here.
http://waprunner.wap3.net/emu_wap3/p/wap3/?mode=JAVA
we can also submit our game here for others to play.
Here is the link of the emulator.
http://kobjects.sourceforge.net/me4se/
online utility for editing an image
http://pixer.us/
this is an online utility to edit an image, may help to change the image format to png and also resize the image , might prove helpful and we might not do this task on our own server.
this is an online utility to edit an image, may help to change the image format to png and also resize the image , might prove helpful and we might not do this task on our own server.
a flickr spinner
http://www.petitpub.com/blog/
Here i saw a spinner for flickr pics somewhere at the bottom
Here i saw a spinner for flickr pics somewhere at the bottom
WEb based demo of j2me applications
Web Based J2me Emulator
http://www.microemu.org/
Alhough our Custum List runs on the micoremulator (with a little problems, rendering is not so well.) This emulator does not support jsr -184 So my rubiks game wont run on this emulaor, also it dies not support svg, we may think of extending the emulaor if it is a simple task.
This micoremulator is being used by opera mini as well.
http://www.operamini.com/demo/
skinning the emulator
http://www.petitpub.com/labs/j2me/me/tutorial/
A web based wap test for any mobile site, can be used to test how a site would look on a mobile phone .....
http://mobilerunner.wap3.net/emu_wap3/p/wap3/
http://www.microemu.org/
Alhough our Custum List runs on the micoremulator (with a little problems, rendering is not so well.) This emulator does not support jsr -184 So my rubiks game wont run on this emulaor, also it dies not support svg, we may think of extending the emulaor if it is a simple task.
This micoremulator is being used by opera mini as well.
http://www.operamini.com/demo/
skinning the emulator
http://www.petitpub.com/labs/j2me/me/tutorial/
A web based wap test for any mobile site, can be used to test how a site would look on a mobile phone .....
http://mobilerunner.wap3.net/emu_wap3/p/wap3/
Tuesday, February 27, 2007
Coments on the Google API blog worht to read
#
Greg Linden on December 26, 2005 at 5:39 PM wrote: #
This is pretty cool, Niall. Nice work tracking all this down.
But, is it really true that people can build on this?
This was undocumented by Google and seems to be intended for their own apps. Using this seems risky, I'd think, with high likelihood of getting shut down if you built anything that was available publicly or generated noticeable levels of traffic.
#
[TypeKey Profile Page] mparaz on December 26, 2005 at 6:40 PM wrote: #
My educated guess:
Google will open up the Google Accounts login infrastructure. Once logged in, you can make these calls legitimately.
For non-logged in users, there could be an server-side HTTP equivalent of the Maps API (which is for Javascript rendering)
Nice work, pitting G against Y! in the race for openness!
#
[TypeKey Profile Page] Niall Kennedy on December 26, 2005 at 7:52 PM wrote: #
I think Yahoo! and Google are interested in opening up their feed backend in the same ways they expose maps data and other information. The first step is to expose the data, ask "why not?" and allow other developers to express their interest in using the data.
I sent a note to Scott Gatz, My Yahoo! lead, last week but I have not heard back from anyone at Yahoo! about my previous post. I also sent off an e-mail to Jason Shellen, Google Reader PM, this evening inviting conversation.
Google Maps API came after the JavaScript had been reverse-engineered and posted across the Internet with significant interest. I'd like to start a conversation about feed APIs and generate some interest in the data before a formal program is announced.
#
[TypeKey Profile Page] Chris Wetherell on December 26, 2005 at 10:31 PM wrote: #
Hi, Niall. Nice work on the API analysis! I'm certain Jason would be happy to jump into the conversation - I can as well, if that's all right.
So, to clarify. To date the API has been undocumented by us to date to help prevent those oh-my-gawd-the-url-changed headaches that would've happened if we'd changed something. So developers should note that some of the URLs might still change but that we're getting close to stability and we're happy for anyone to build atop the framework who is interested (and doesn't find managing auth issues daunting) as that's been our goal and intent with the API for Reader.
Other neat stuff I didn't see listed here:
* There's also a way to exclude tags/labels by appending another query to the URL as xt=[tag]. For example, you could exclude read items from some collections of items by appending: ?xt=user/[000...]/state/com.google/read
* Some tags include specific domain information because we've been planning on an approach that's flexible for other people's (read: non-Google) uses.
And I can confirm that you're right about the lens - it's only one of several planned approaches. Based on a series of user studies during early development we've been planning from the start a system that can support several distinct UIs for feed reading that would be developed by us - I actually have two other views on my dev build of Reader - but am more excited that others would be able to build clients that work best for them. One of the most exciting ideas for me for any feed reading API is that we (and perhaps other big companies) could possibly work on the more non-obvious and experimental solutions for syndication transformation since third-party developers are going to be excellent at supplying oft-requested and well-understood modes of interaction.
A short (and incomplete) list of stuff to do includes:
- Passing media enclosure data
- Atom 1.0 compliance (if you notice we're getting close)
Some of the other Reader team might post here, too, as everyone's been directly engaged with the API - it's been a chief part of the discussion, planning, and design for this li'l project. After we finalize the remaining bits we'll definitely post to our blog and document the framework.
- Chris Wetherell
Google Reader Engineer
#
Mark on December 27, 2005 at 5:42 AM wrote: #
For Atom 1.0 compliance, I recommend my own unit tests.
#
ihavenoname on December 28, 2005 at 7:29 AM wrote: #
What happens when you retrieve all unread items? Do they all get marked read? If that's the case then the API is pretty much useless from a synchronization perspective. If I try to sync to my handheld and then only read some of the items (typical usage scenario) and then try to continue reading on the web there will be a problem because items that I have not read in actuality have been marked as read. I don't see any facility for marking individual items read/unread.
#
Laurence Gonsalves on December 28, 2005 at 11:23 PM wrote: #
Items are not marked as read automatically, so it's possible to fetch an item without reading it. You can mark them as read using the same facility that's used for starring. Look for "flag or star a post" above. Just replace "starred" with "read" when passing the "a" parameter.
By the way, the comment "No cookies or session IDs are required to access this member-specific data" is incorrect.
#
[TypeKey Profile Page] Niall Kennedy on December 29, 2005 at 12:07 AM wrote: #
Thanks Laurence. I rerequested all URLs without an SID cookie and Google returned a status code 403 and "permission denied" in the entity.
I updated my original text to reflect this information.
#
jcburns on December 29, 2005 at 8:18 AM wrote: #
The value of my SID cookie from Google.com is a string that is 161 characters long and starts with
DQAAAGgAAABRnt... ...so where is this 20 digit value?
#
[TypeKey Profile Page] Niall Kennedy on December 29, 2005 at 8:37 AM wrote: #
jcburns,
Google assigns each user a 20 digit user ID that would not change over time, and a session ID (SID) you can delete, regenerate, and expire.
#
RichB on January 2, 2006 at 8:56 AM wrote: #
Notice the Google RSS->Atom conversion is recursive. eg:
http://www.google.com/reader/atom/feed/http://www.google.com/reader/atom/feed/http%3A%2F%2Fdel.icio.us%2Frss%2Fpopular%2F
#
Nick Lothian on January 11, 2006 at 10:24 PM wrote: #
You may be interested in some futher reverse-engineering I did, and a Google IG module I build on top of the Reader API:
http://www.mackmo.com/nick/blog/tech/2006/1/5/Google-Reader-Homepage-Module.html
#
[TypeKey Profile Page] Andrei Lopatenko on February 9, 2006 at 2:56 AM wrote: #
2 Chris Wetherell
Hi, Chris
is there any information which kind of Google Reader API is going to be provided by Google?
Will you support a streaming model (event-based)?
I am curious since i like to develop intelligent interfaces and I am RSS-addict. I am quite unhappy about flexibility and search capabilities of many RSS-reader and I want to develop a query interface for Google Reader
#
Steven on February 14, 2006 at 3:42 PM wrote: #
I hope the xt=[tag] functionality makes it into lens soon. The ability to show only things NOT tagged nsfw is a vitally important feature.
#
Mike on February 15, 2006 at 4:56 PM wrote: #
One more comment.... Has anyone figured out how to get a complete list of unread entries for all feeds you are subscribed to?
This
/reader/atom/user[user id]/state/com.google/reading-list
seems to just give me a copy one entry from each feed I am subscribed to. I am looking to get a feed of all entries from all feeds (read or unread).
#
Sérgio Nunes on March 2, 2006 at 3:13 PM wrote: #
Hi,
It seems that URL based authentication works. Try: http://[username]:[password]@[url] Replace [username] and [password] with your Google Reader data and [url] with one of the above urls.
This is great for server side development.
Regards!
#
Kannan on March 8, 2006 at 9:34 PM wrote: #
I am having some problems with google reader, although i must say that the google reader is extremely fast.
1. I want an entire feed to be labelled for example, rugby.com/atom.xml should be labelled as sports and etc. This would mean that I would read my "tech-blogs" labels first and then others.
2. Although it is not very desirable like the above thing, it would be great if we can have rules like gmail to categorize stuff.
Thanks (And as usual Google Rocks)
#
[TypeKey Profile Page] mparaz on March 10, 2006 at 6:54 PM wrote: #
It looks like even retrieval requires a login now. I was hoping to use this backend for an AJAX login-free aggregator.
#
[TypeKey Profile Page] mohan on March 14, 2006 at 11:30 AM wrote: #
Hi,
can you please tell about the user id in the URL
/reader/atom/user/[user id]/pref/com.google/subscriptions
wher can i get it?
thanks
mohan
#
Nitin Nanivadekar on March 31, 2006 at 9:53 PM wrote: #
Thanks a million
i am building an app that user feed reader as an auxiliary function.
This fits my bill perfectly.
-nitin nanivadekar
#
Darren Kulp on June 5, 2006 at 6:13 AM wrote: #
@mohan, jcburns:
View source on your Google Reader page and search for _USER_ID.
#
Jamsi on July 31, 2006 at 1:53 AM wrote: #
I'm looking at creating a feed reader that works with the Google reader API (mainly so I can download a list of items to read on the train ..) but has anyone made such an application?
I can't imagine it to be too hard.
#
Muzaffer Coruh on August 4, 2006 at 4:29 PM wrote: #
Hi,
The number of returned results may be adjusted using the n parameter."
this is really nice but I wonder which parameter is used to call next 20 items...
#
Mark on August 4, 2006 at 5:46 PM wrote: #
This information is great. Thanks so much. I'm having a little trouble understanding how to star or add tags to entries as these links seem to be hidden somewhere deep inside the javascript, css, or otherwise. Can you provide any further information that will help me piece this together?
I'm working on a pre-reader that will filter duplicate news items from different sources as well as other unwanted content, since this doesn't seem to be in lens yet. This page has been a great help. Thanks!
#
Yasha Davidov on November 5, 2006 at 2:39 AM wrote: #
Just few things more:
1. You can access only unread items using ttp://www.google.com/reader/atom/user/[user ID]/state/com.google/unread
2. You can access all items via http://www.google.com/reader/atom/
(i suppose you must be loged in)
#
Yasha Davidov on November 5, 2006 at 12:46 PM wrote: #
It seems that com.google/unread always gives you an empty list.
That was my mistake.
But you can omit user id and replace it with "-". If the user is logged in this will work.
#
Rick on November 22, 2006 at 10:38 AM wrote: #
There is a way to request the number of unread feeds?
#
Venu on November 29, 2006 at 2:43 PM wrote: #
For shared items:
/reader/atom/user/[user id]/state/com.google/broadcast
#
Edwin Khodabakchian on January 22, 2007 at 11:22 PM wrote: #
Hi,
Does anyone know if there is a way to apply multiple tags to a feed as part of a single HTTP request. I have tried the approach of calling multiple times the request which adds a single tag to a feed and I think that I am running into a concurrency bug because I do not get a consistent behavior from the backend.
Thanks,
Edwin
Greg Linden on December 26, 2005 at 5:39 PM wrote: #
This is pretty cool, Niall. Nice work tracking all this down.
But, is it really true that people can build on this?
This was undocumented by Google and seems to be intended for their own apps. Using this seems risky, I'd think, with high likelihood of getting shut down if you built anything that was available publicly or generated noticeable levels of traffic.
#
[TypeKey Profile Page] mparaz on December 26, 2005 at 6:40 PM wrote: #
My educated guess:
Google will open up the Google Accounts login infrastructure. Once logged in, you can make these calls legitimately.
For non-logged in users, there could be an server-side HTTP equivalent of the Maps API (which is for Javascript rendering)
Nice work, pitting G against Y! in the race for openness!
#
[TypeKey Profile Page] Niall Kennedy on December 26, 2005 at 7:52 PM wrote: #
I think Yahoo! and Google are interested in opening up their feed backend in the same ways they expose maps data and other information. The first step is to expose the data, ask "why not?" and allow other developers to express their interest in using the data.
I sent a note to Scott Gatz, My Yahoo! lead, last week but I have not heard back from anyone at Yahoo! about my previous post. I also sent off an e-mail to Jason Shellen, Google Reader PM, this evening inviting conversation.
Google Maps API came after the JavaScript had been reverse-engineered and posted across the Internet with significant interest. I'd like to start a conversation about feed APIs and generate some interest in the data before a formal program is announced.
#
[TypeKey Profile Page] Chris Wetherell on December 26, 2005 at 10:31 PM wrote: #
Hi, Niall. Nice work on the API analysis! I'm certain Jason would be happy to jump into the conversation - I can as well, if that's all right.
So, to clarify. To date the API has been undocumented by us to date to help prevent those oh-my-gawd-the-url-changed headaches that would've happened if we'd changed something. So developers should note that some of the URLs might still change but that we're getting close to stability and we're happy for anyone to build atop the framework who is interested (and doesn't find managing auth issues daunting) as that's been our goal and intent with the API for Reader.
Other neat stuff I didn't see listed here:
* There's also a way to exclude tags/labels by appending another query to the URL as xt=[tag]. For example, you could exclude read items from some collections of items by appending: ?xt=user/[000...]/state/com.google/read
* Some tags include specific domain information because we've been planning on an approach that's flexible for other people's (read: non-Google) uses.
And I can confirm that you're right about the lens - it's only one of several planned approaches. Based on a series of user studies during early development we've been planning from the start a system that can support several distinct UIs for feed reading that would be developed by us - I actually have two other views on my dev build of Reader - but am more excited that others would be able to build clients that work best for them. One of the most exciting ideas for me for any feed reading API is that we (and perhaps other big companies) could possibly work on the more non-obvious and experimental solutions for syndication transformation since third-party developers are going to be excellent at supplying oft-requested and well-understood modes of interaction.
A short (and incomplete) list of stuff to do includes:
- Passing media enclosure data
- Atom 1.0 compliance (if you notice we're getting close)
Some of the other Reader team might post here, too, as everyone's been directly engaged with the API - it's been a chief part of the discussion, planning, and design for this li'l project. After we finalize the remaining bits we'll definitely post to our blog and document the framework.
- Chris Wetherell
Google Reader Engineer
#
Mark on December 27, 2005 at 5:42 AM wrote: #
For Atom 1.0 compliance, I recommend my own unit tests.
#
ihavenoname on December 28, 2005 at 7:29 AM wrote: #
What happens when you retrieve all unread items? Do they all get marked read? If that's the case then the API is pretty much useless from a synchronization perspective. If I try to sync to my handheld and then only read some of the items (typical usage scenario) and then try to continue reading on the web there will be a problem because items that I have not read in actuality have been marked as read. I don't see any facility for marking individual items read/unread.
#
Laurence Gonsalves on December 28, 2005 at 11:23 PM wrote: #
Items are not marked as read automatically, so it's possible to fetch an item without reading it. You can mark them as read using the same facility that's used for starring. Look for "flag or star a post" above. Just replace "starred" with "read" when passing the "a" parameter.
By the way, the comment "No cookies or session IDs are required to access this member-specific data" is incorrect.
#
[TypeKey Profile Page] Niall Kennedy on December 29, 2005 at 12:07 AM wrote: #
Thanks Laurence. I rerequested all URLs without an SID cookie and Google returned a status code 403 and "permission denied" in the entity.
I updated my original text to reflect this information.
#
jcburns on December 29, 2005 at 8:18 AM wrote: #
The value of my SID cookie from Google.com is a string that is 161 characters long and starts with
DQAAAGgAAABRnt... ...so where is this 20 digit value?
#
[TypeKey Profile Page] Niall Kennedy on December 29, 2005 at 8:37 AM wrote: #
jcburns,
Google assigns each user a 20 digit user ID that would not change over time, and a session ID (SID) you can delete, regenerate, and expire.
#
RichB on January 2, 2006 at 8:56 AM wrote: #
Notice the Google RSS->Atom conversion is recursive. eg:
http://www.google.com/reader/atom/feed/http://www.google.com/reader/atom/feed/http%3A%2F%2Fdel.icio.us%2Frss%2Fpopular%2F
#
Nick Lothian on January 11, 2006 at 10:24 PM wrote: #
You may be interested in some futher reverse-engineering I did, and a Google IG module I build on top of the Reader API:
http://www.mackmo.com/nick/blog/tech/2006/1/5/Google-Reader-Homepage-Module.html
#
[TypeKey Profile Page] Andrei Lopatenko on February 9, 2006 at 2:56 AM wrote: #
2 Chris Wetherell
Hi, Chris
is there any information which kind of Google Reader API is going to be provided by Google?
Will you support a streaming model (event-based)?
I am curious since i like to develop intelligent interfaces and I am RSS-addict. I am quite unhappy about flexibility and search capabilities of many RSS-reader and I want to develop a query interface for Google Reader
#
Steven on February 14, 2006 at 3:42 PM wrote: #
I hope the xt=[tag] functionality makes it into lens soon. The ability to show only things NOT tagged nsfw is a vitally important feature.
#
Mike on February 15, 2006 at 4:56 PM wrote: #
One more comment.... Has anyone figured out how to get a complete list of unread entries for all feeds you are subscribed to?
This
/reader/atom/user[user id]/state/com.google/reading-list
seems to just give me a copy one entry from each feed I am subscribed to. I am looking to get a feed of all entries from all feeds (read or unread).
#
Sérgio Nunes on March 2, 2006 at 3:13 PM wrote: #
Hi,
It seems that URL based authentication works. Try: http://[username]:[password]@[url] Replace [username] and [password] with your Google Reader data and [url] with one of the above urls.
This is great for server side development.
Regards!
#
Kannan on March 8, 2006 at 9:34 PM wrote: #
I am having some problems with google reader, although i must say that the google reader is extremely fast.
1. I want an entire feed to be labelled for example, rugby.com/atom.xml should be labelled as sports and etc. This would mean that I would read my "tech-blogs" labels first and then others.
2. Although it is not very desirable like the above thing, it would be great if we can have rules like gmail to categorize stuff.
Thanks (And as usual Google Rocks)
#
[TypeKey Profile Page] mparaz on March 10, 2006 at 6:54 PM wrote: #
It looks like even retrieval requires a login now. I was hoping to use this backend for an AJAX login-free aggregator.
#
[TypeKey Profile Page] mohan on March 14, 2006 at 11:30 AM wrote: #
Hi,
can you please tell about the user id in the URL
/reader/atom/user/[user id]/pref/com.google/subscriptions
wher can i get it?
thanks
mohan
#
Nitin Nanivadekar on March 31, 2006 at 9:53 PM wrote: #
Thanks a million
i am building an app that user feed reader as an auxiliary function.
This fits my bill perfectly.
-nitin nanivadekar
#
Darren Kulp on June 5, 2006 at 6:13 AM wrote: #
@mohan, jcburns:
View source on your Google Reader page and search for _USER_ID.
#
Jamsi on July 31, 2006 at 1:53 AM wrote: #
I'm looking at creating a feed reader that works with the Google reader API (mainly so I can download a list of items to read on the train ..) but has anyone made such an application?
I can't imagine it to be too hard.
#
Muzaffer Coruh on August 4, 2006 at 4:29 PM wrote: #
Hi,
The number of returned results may be adjusted using the n parameter."
this is really nice but I wonder which parameter is used to call next 20 items...
#
Mark on August 4, 2006 at 5:46 PM wrote: #
This information is great. Thanks so much. I'm having a little trouble understanding how to star or add tags to entries as these links seem to be hidden somewhere deep inside the javascript, css, or otherwise. Can you provide any further information that will help me piece this together?
I'm working on a pre-reader that will filter duplicate news items from different sources as well as other unwanted content, since this doesn't seem to be in lens yet. This page has been a great help. Thanks!
#
Yasha Davidov on November 5, 2006 at 2:39 AM wrote: #
Just few things more:
1. You can access only unread items using ttp://www.google.com/reader/atom/user/[user ID]/state/com.google/unread
2. You can access all items via http://www.google.com/reader/atom/
(i suppose you must be loged in)
#
Yasha Davidov on November 5, 2006 at 12:46 PM wrote: #
It seems that com.google/unread always gives you an empty list.
That was my mistake.
But you can omit user id and replace it with "-". If the user is logged in this will work.
#
Rick on November 22, 2006 at 10:38 AM wrote: #
There is a way to request the number of unread feeds?
#
Venu on November 29, 2006 at 2:43 PM wrote: #
For shared items:
/reader/atom/user/[user id]/state/com.google/broadcast
#
Edwin Khodabakchian on January 22, 2007 at 11:22 PM wrote: #
Hi,
Does anyone know if there is a way to apply multiple tags to a feed as part of a single HTTP request. I have tried the approach of calling multiple times the request which adds a single tag to a feed and I think that I am running into a concurrency bug because I do not get a consistent behavior from the backend.
Thanks,
Edwin
Server Component
We will use PHP on the server. We have not decided on the framework yet, but it will most likely be CakePHP and ImageMagick will be used for image rendering.
Every request to the server will require user email, Google token, and the action. The server will store the email and action into a MySQL database and pass everything onto Google. The resulting data will be processed to resize/convert images and pass back to the reader.
If the token has expired, the server will notify the reader to request a new token from Google.
Every request to the server will require user email, Google token, and the action. The server will store the email and action into a MySQL database and pass everything onto Google. The resulting data will be processed to resize/convert images and pass back to the reader.
If the token has expired, the server will notify the reader to request a new token from Google.
Storing Images in RMS
One of the reader's capabilities is to store posts for offline reading. This article explains how to utilize RMS for storing images.
Google Account Authentication for Installed Application
We are considering using the unofficial Reader API to interface with Google, effectively using it as the database. In order to accomplish that, we'll need to use Account Authentication for Installed Applications:
"After collecting login information from a user, call ClientLogin to request access to the user's account. Once the login information has been successfully authenticated, Google will return a token, which your application will reference each time it requests access to the user's account, such as to get or post data. The token remains valid for a set length of time, defined by whichever Google service you're working with."
It is unknown how long the token will be valid. The reader will store the email and password, which will be used for authentication as needed. Since we will be using our server for handling data between the reader and Google, the server will notify the reader to request a new token as needed.
There are four steps involved with using ClientLogin (directly from the Google page):
The only time the reader will interact with Google is to authenticate and obtain the token, which is then passed to our server. Our server will act as the middle man between Google and the reader, storing user actions and resizing/converting images. The password will never be passed between the reader and our server, to reduce user security concerns.
"After collecting login information from a user, call ClientLogin to request access to the user's account. Once the login information has been successfully authenticated, Google will return a token, which your application will reference each time it requests access to the user's account, such as to get or post data. The token remains valid for a set length of time, defined by whichever Google service you're working with."
It is unknown how long the token will be valid. The reader will store the email and password, which will be used for authentication as needed. Since we will be using our server for handling data between the reader and Google, the server will notify the reader to request a new token as needed.
There are four steps involved with using ClientLogin (directly from the Google page):
- The UI needs to solicit a user name (email address including domain) and password. The UI should also be capable of displaying a CAPTCHA image using the URL received from Google, if one is required, and soliciting a correct answer from the user. Ideally, your UI will include URL links to the Google service to be used, in the event that the user needs to sign up for a new account or do other account maintenance.
- Write code to generate a well-formed HTTPS POST ClientLogin request using the login data and transmit it. This code needs to contain logic to handle a CAPTCHA challenge and include both the logintoken and logincaptcha parameters. The application should also be able to detect when the user omits required information--or repeats incorrect data after a login failure--and display an error without sending a superfluous request.
The basic login request will take the form:
Email=&Passwd= &service=cl&source=Asterbox-MIDPReader-0.0.1 - Handle responses from Google. There are four possible responses to a login request:
- success (an HTTP 200)
- failure (an HTTP 403) with an explanatory error code
- invalid request, generally resulting from a malformed request
- failure with a CAPTCHA challenge
A success response contains an authentication token labeled "Auth". This token must be included in all subsequent requests to the Google service for this account. Authentication cookies should be closely guarded and should not be given to any other application, as they represent access to the user's account. The time limit on the token varies depending on which service issued it.
A failure response includes one or more error codes and a URL with the error message that can be displayed for the user. Please note that ClientLogin does not differentiate between a failure due to an incorrect password or one due to an unrecognized user name (for example, if the user has not yet signed up for an account). Your application will need to handle all possible error message as appropriate.
A failure response with a CAPTCHA challenge means that Google has decided, for whatever reason, that additional security measures should be taken. This response is accompanied by a CAPTCHA image URL and a token representing the specific CAPTCHA challenge. - Handle a CAPTCHA challenge from Google. To handle the challenge, the application must display the CAPTCHA image and solicit an answer from the user. To display the CAPTCHA image, use the value of CaptchaUrl returned with the failure response, prefixing it with the Google Accounts URL: "http://www.google.com/accounts/". Once the user provides an answer, the application should resend the login request, this time including the CAPTCHA token (logintoken) and the user's answer (logincaptcha). Google will validate the user's answer before authorizing access to the account.
Note: Google does not validate the login attempt prior to issuing a CAPTCHA challenge. This means a login attempt could fail even after a CAPTCHA challenge.
There is an alternative for developers who do not want to manage the processs of getting and transmitting a user CAPTCHA response. In response to a CAPTCHA challenge, the application can direct the user to the Google hosted page: https://www.google.com/accounts/DisplayUnlockCaptcha. Once the user has successfully responded to the challenge, the Google server will trust the computer in use. The application can then resend the original login request to obtain the authentication token.
The only time the reader will interact with Google is to authenticate and obtain the token, which is then passed to our server. Our server will act as the middle man between Google and the reader, storing user actions and resizing/converting images. The password will never be passed between the reader and our server, to reduce user security concerns.
about images on real device
Most of the phones only support PNG images (PNG is a patent Free format) other images are not shown and the program execution hangs-up.
We were thinking earlier that hanging is due to improper threading but when we used a spike(a small program written for testing we found out that when the spike is passed the url of png image it shows up, but when the url of a gif image is passed it does not show but hangs, we have not tested with other image formats, but feel that png solves our need for now.
We are going to use IMageMagic for resizing( and converting the images to png ) the images to suit our needs.
We were thinking earlier that hanging is due to improper threading but when we used a spike(a small program written for testing we found out that when the spike is passed the url of png image it shows up, but when the url of a gif image is passed it does not show but hangs, we have not tested with other image formats, but feel that png solves our need for now.
We are going to use IMageMagic for resizing( and converting the images to png ) the images to suit our needs.
Sunday, February 25, 2007
J2ME Blogs
I'll update this as needed:
http://www.fiercedeveloper.com/channel/j2me
http://www.joefission.com/mobile_development/index.html
http://www.paxmodept.com/telesto/index.htm
http://j2me.synclastic.com/
http://www.fiercedeveloper.com/channel/j2me
http://www.joefission.com/mobile_development/index.html
http://www.paxmodept.com/telesto/index.htm
http://j2me.synclastic.com/
Saturday, February 24, 2007
Working with J2ME
http://www.theserverside.com/tt/articles/article.tss?l=WorkingwithJ2ME
This article, written in 2005 and dealing with MIDP 1.0, points out several details for working with J2ME. Topics include pros and cons of mobile devices, why J2ME was chosen, J2ME basics, user interface considerations, client/server data format, and server side components. Nice reading to get a good overview of what it takes to build a mobile Java app.
This article, written in 2005 and dealing with MIDP 1.0, points out several details for working with J2ME. Topics include pros and cons of mobile devices, why J2ME was chosen, J2ME basics, user interface considerations, client/server data format, and server side components. Nice reading to get a good overview of what it takes to build a mobile Java app.
want to display ms-Word and excel spreadsheet on j2me
http://pdf.antennahouse.com/
converts any type of microsoft office document to svg.
so svg can be displayed on mobile.
converts any type of microsoft office document to svg.
so svg can be displayed on mobile.
powerpoint to svg converter (showing ppt on j2me devices)
this is a tool to convert a powerpoint presentation to svg, (its not free).
http://tonicsystems.com/products/transformer/
Since svg graphics are scalble, it would support zooming etc, so people can see their ppt on their phones easily.
so our browser will be able to show ppt files as well.
http://tonicsystems.com/products/transformer/
Since svg graphics are scalble, it would support zooming etc, so people can see their ppt on their phones easily.
so our browser will be able to show ppt files as well.
utilities to convert flash in to SVG movies
this is a free utility
http://www.eprg.org/~sgp/swf2svg.html
http://www.flashdeveloper.nl/g_SVG_conversion.html
http://freesvg.texterity.com/freesvg.html
we can even convert flash-lite movies in to svg movies.
flash lite is supported in fewer phones than j2me. so ecards written for flash-lite can be easily converted to svg movie and displayed on our browser.
http://www.svgopen.org/2004/paperAbstracts/template-1.htm
http://www.eprg.org/~sgp/swf2svg.html
http://www.flashdeveloper.nl/g_SVG_conversion.html
http://freesvg.texterity.com/freesvg.html
we can even convert flash-lite movies in to svg movies.
flash lite is supported in fewer phones than j2me. so ecards written for flash-lite can be easily converted to svg movie and displayed on our browser.
http://www.svgopen.org/2004/paperAbstracts/template-1.htm
tricast mail attachment viewer
Tricast mail already has the functionality to veiw pdf and ppt files , i think they are doing this by converting it to svg format.
i think if this capability is attached to the browser it is a good thing.
http://www.tricastmedia.com/v1/tricastmail.php
almost any kind of multimedia content can be converted in to svg.
like flash,pdf, ppt.
we can also have flash e-cards converted to svg files, and then these svg movies streamed to mobile phones. This is also an attractive thing for a browser, the ability to run a flash movie. This is also an added advantage over the opera mini.
If we can render flash cards on j2me , many e-card companies can be ready to fund us for this.
i think if this capability is attached to the browser it is a good thing.
http://www.tricastmedia.com/v1/tricastmail.php
almost any kind of multimedia content can be converted in to svg.
like flash,pdf, ppt.
we can also have flash e-cards converted to svg files, and then these svg movies streamed to mobile phones. This is also an attractive thing for a browser, the ability to run a flash movie. This is also an added advantage over the opera mini.
If we can render flash cards on j2me , many e-card companies can be ready to fund us for this.
displayng pdf and ppt on j2me browser
How to display Pdf files on our browser.
PDF files can be converted to svg format.
there are certain tools to do this.
1) http://www.mattercast.com/prod_pdftosvgsdk.aspx
2) http://www.pdftron.com/pdf2svg/index.html
these sites provide command line as well as SDK's to convert pdf content to svg.
SVG format is more compact than pdf and can display retain all the quality and features of a pdf document.
we can also re-render the svg document to fit on the small screen of the j2me device.
how is our browser better than opera mini ?
The ability to display pdf and power point presentation could be one of the things that distinguished our application and makes it a cutting edge tool.
PDF files can be converted to svg format.
there are certain tools to do this.
1) http://www.mattercast.com/prod_pdftosvgsdk.aspx
2) http://www.pdftron.com/pdf2svg/index.html
these sites provide command line as well as SDK's to convert pdf content to svg.
SVG format is more compact than pdf and can display retain all the quality and features of a pdf document.
we can also re-render the svg document to fit on the small screen of the j2me device.
how is our browser better than opera mini ?
The ability to display pdf and power point presentation could be one of the things that distinguished our application and makes it a cutting edge tool.
Thursday, February 22, 2007
J2ME Benchmark Tools
Links to source files and apps for benchmarking and testing phone J2ME capabilities.
http://ngphone.com/j2me/opensource/
J2ME UI:
http://ngphone.com/j2me/opensource/ui.htm
Lots of other good J2ME resources at the site.
http://ngphone.com/j2me/opensource/
J2ME UI:
http://ngphone.com/j2me/opensource/ui.htm
Lots of other good J2ME resources at the site.
a sure read for any mobile developer
this is a blog that any mobile application developer should read for sure.
this explains the tricast ideal for creating rich user interface components for the mass market and not only for the expensive handsets.
http://www.tricastmedia.com/blog/
this explains the tricast ideal for creating rich user interface components for the mass market and not only for the expensive handsets.
http://www.tricastmedia.com/blog/
twuik tutorial
this is a tutorial on twuik
http://www.tricastmedia.com/v1/twuik/tutorial/part1.html
Twuik home page
http://www.tricastmedia.com/v1/twuik.php
http://www.tricastmedia.com/v1/twuik/tutorial/part1.html
Twuik home page
http://www.tricastmedia.com/v1/twuik.php
sony ericsson phone using tricast media
this is a video of a sony ericsson phone that is using the TWUIK by tricast media to make the user interface companents.
Wednesday, February 21, 2007
Google Reader API
From http://www.niallkennedy.com/blog/archives/2005/12/google_reader_a.html
Google Reader users are assigned a 20-digit user ID used throughout Google's feed system. User-specifc data is accessible using the google.com cookie named "SID."...Google assigns each user a 20 digit user ID that would not change over time, and a session ID (SID) you can delete, regenerate, and expire.
Google converts all feed data to Atom regardless of its original publication format. All RSS feed post content appears in the summary element and...I found no additional metadata about the feed containing full posts but Google does publish content data where available.
You may request any feed from the Google Reader system using the following URL structure:
You may specify the total number of feed entries to retrieve using the n parameter. The default number of feed items returned is 20 (n=20).
Google strips off all the data it does not render in Reader. Stripped data includes namespaced data such as Apple iTunes podcast data and Yahoo! Media RSS, additional author data such as e-mail and home URL, and even copyright data.
/reader/atom/user/[user id]/pref/com.google/subscriptions
Google Reader's feed subscription list contains a user's current feed subscriptions as well as past deleted subscriptions. Each feed is contained in an entry complete with feed URL, published and updated dates, and user-specific tags, if present. Current subscriptions are categorized as a reading list state. You may request the full list of feeds by setting the complete to true.
/reader/atom/user[user id]/state/com.google/reading-list
My favorite feature of the Google Reader backend is direct access to a stream of unread entries across all subscribed feeds. Google will output the latest in a "river of news" style data view...You may specify the total number of entries you would like Google to return using the n parameter -- the default is 20 (n=20).
http://www.google.com/reader/atom/user/[user ID]/state/com.google/read
You can retrieve a listing of read items from Google Reader. You might want to analyze the last 100 items a user has read to pull out trends or enable complete search and this function may therefore be useful. You may adjust the number of items retrieved using the n parameter -- the default is 20 (n=20).
/reader/atom/user/[user id]/label/[tag]
You may also view a list of recently published entries limited to feeds of a certain tag. If you have tagged multiple feeds as "marketing" you might want to request just the latest river of news for those marketing feeds. The returned feed contains both read and unread items. Read items are categorized as read (state/com.google/read) if you would like to hide them from view. The number of returned results may be adjusted using the n parameter.
/reader/atom/user[user id]/state/com.google/starred
Google Reader users can flag an item with a star. These flagged items are exposed as a list of entries with feed URL, tags, and published/updated times included. You may specify the total number of tagged entries to return using the n parameter -- the default value is 20 (n=20). Google treats starred items as a special type of tag and the output therefore matches the tag reading list.
/reader/api/0/edit-subscription
You may add any feed to your Google Reader list using the Google Reader API via a HTTP post.
/reader/api/0/edit-tag
You may also add tags to any feed or individual item via a HTTP post.
It is possible to build a your own feed reader on top of Google's data with targeted server calls. You can power an application both online and offline using Google as your backend and focus on building new experiences on top of the data. Advanced functionality is available with a numeric Google ID and some variable tweaks.
Google has built the first application on top of this data API, the Google Reader lens, and judging from their choice of URLs the lens may not be Google's last application built on this data set. I like the openness of the data calls and think the Google Reader APIs are simple enough to bootstrap a few new applications within Google or created by third-party developers.
Google Reader users are assigned a 20-digit user ID used throughout Google's feed system. User-specifc data is accessible using the google.com cookie named "SID."...Google assigns each user a 20 digit user ID that would not change over time, and a session ID (SID) you can delete, regenerate, and expire.
Google converts all feed data to Atom regardless of its original publication format. All RSS feed post content appears in the summary element and...I found no additional metadata about the feed containing full posts but Google does publish content data where available.
You may request any feed from the Google Reader system using the following URL structure:
- http://www.google.com/reader/atom/feed/ + [Feed URL]
You may specify the total number of feed entries to retrieve using the n parameter. The default number of feed items returned is 20 (n=20).
Google strips off all the data it does not render in Reader. Stripped data includes namespaced data such as Apple iTunes podcast data and Yahoo! Media RSS, additional author data such as e-mail and home URL, and even copyright data.
Subscription list
/reader/atom/user/[user id]/pref/com.google/subscriptions
Google Reader's feed subscription list contains a user's current feed subscriptions as well as past deleted subscriptions. Each feed is contained in an entry complete with feed URL, published and updated dates, and user-specific tags, if present. Current subscriptions are categorized as a reading list state. You may request the full list of feeds by setting the complete to true.
Reading list
/reader/atom/user[user id]/state/com.google/reading-list
My favorite feature of the Google Reader backend is direct access to a stream of unread entries across all subscribed feeds. Google will output the latest in a "river of news" style data view...You may specify the total number of entries you would like Google to return using the n parameter -- the default is 20 (n=20).
Read items only
http://www.google.com/reader/atom/user/[user ID]/state/com.google/read
You can retrieve a listing of read items from Google Reader. You might want to analyze the last 100 items a user has read to pull out trends or enable complete search and this function may therefore be useful. You may adjust the number of items retrieved using the n parameter -- the default is 20 (n=20).
Reading list by tag
/reader/atom/user/[user id]/label/[tag]
You may also view a list of recently published entries limited to feeds of a certain tag. If you have tagged multiple feeds as "marketing" you might want to request just the latest river of news for those marketing feeds. The returned feed contains both read and unread items. Read items are categorized as read (state/com.google/read) if you would like to hide them from view. The number of returned results may be adjusted using the n parameter.
Starred items only
/reader/atom/user[user id]/state/com.google/starred
Google Reader users can flag an item with a star. These flagged items are exposed as a list of entries with feed URL, tags, and published/updated times included. You may specify the total number of tagged entries to return using the n parameter -- the default value is 20 (n=20). Google treats starred items as a special type of tag and the output therefore matches the tag reading list.
Add or delete subscriptions
/reader/api/0/edit-subscription
You may add any feed to your Google Reader list using the Google Reader API via a HTTP post.
- /reader/api/0/edit-subscription -- base URL
- ac=["subscribe" or "unsubscribe"] -- requested action
- s=feed%2F[feed URL] -- your requested subscription
- T=[command token] -- expiring token issued by Google. Obtain your token at /reader/api/0/token.
Add tags
/reader/api/0/edit-tag
You may also add tags to any feed or individual item via a HTTP post.
- /reader/api/0/edit-tag -- base URL
- s=feed%2F[feed URL] -- the feed URL you would like to tag
- i=[item id] -- the item ID presented in the feed. Optional and used to tag individual items.
- a=user%2F[user ID]%2Flabel%2F[tag] -- requested action. add a tag to the feed, item, or both.
- a=user%2F[user ID]%2Fstate%2Fcom.google%2Fstarred -- flag or star a post.
- T=[special scramble] -- three pieces of information about the user to associate with the new tag. Security unknown and therefore unpublished.
Conclusion
It is possible to build a your own feed reader on top of Google's data with targeted server calls. You can power an application both online and offline using Google as your backend and focus on building new experiences on top of the data. Advanced functionality is available with a numeric Google ID and some variable tweaks.
Google has built the first application on top of this data API, the Google Reader lens, and judging from their choice of URLs the lens may not be Google's last application built on this data set. I like the openness of the data calls and think the Google Reader APIs are simple enough to bootstrap a few new applications within Google or created by third-party developers.
Sunday, February 11, 2007
image problem
the image problem has been solved in the rss reader, the image was not getting completely downloaded , now this problem is solved by opening an inputStream from the httpCoonector provided by sun,s j2me and then creating a Image using
Image.createImage(InputStream) ;
the previous method that was being used was to first download the bytes of the image , store the
byte in an array and then create an image using the ByteArray
Image.createImage(ByteArray);
the above code is not perfect in syntax but just displays the concept of what was done to treat the image problem.
the other problem was that when an image is encountered the program used to hang.
This problem was solved by downloading the image in the background using a seperate thread.
Image.createImage(InputStream) ;
the previous method that was being used was to first download the bytes of the image , store the
byte in an array and then create an image using the ByteArray
Image.createImage(ByteArray);
the above code is not perfect in syntax but just displays the concept of what was done to treat the image problem.
the other problem was that when an image is encountered the program used to hang.
This problem was solved by downloading the image in the background using a seperate thread.
J2ME Resources
This post will be updated to provide links to articles and resources related to J2ME.
http://community.java.net/mobileandembedded/
http://community.java.net/mobileandembedded/
Tuesday, February 6, 2007
Image problem in RSS reader
we found that larger images are not displayed properly in the browser, It seems that the browser tries to render the image prior to it is completely downloaded , the supossed solution could be to first download the binary data of the image using a seperate thread and then call the render function to render that data over the screen. The programmer of the orignal appliation seems not to be caring abt threads as the thread mechanism in the GetUrl() function was added by me , because it was not using threads at all in the beggining and therefore was not able to fetch any url when a link was clicked , threading could make the clicking of link possible, and now i think that the image problem will be solved if we put a sleep(10) function in the rendering thread .
or by making two concurrent threads to run , one to render and the other to fetch the data.
or by making two concurrent threads to run , one to render and the other to fetch the data.
J2ME RSS Reader Development
The purpose of this blog is to document the development of the J2ME RSS Reader. The most important purpose for maintaining this blog is for collaboration. Any time an idea strikes, you can enter it into the blog for discussion later. Management can view developers' progress and offer advice and guidance. Future developers can use this as reference to get a better understanding of the app. This blog also serves as a roadmap for the development of the app. It can be used to help remember why decisions were made, debugging results, and any other event encountered during the course of the app's development.
Subscribe to:
Posts (Atom)