search engine for source code.
Archive for July, 2006
« The Shout-O-Phone | Home
July 31, 2006
Just one call to communicate with all of your friends
Pheeder allows you to communicate with your friends simultaneously, with a single phone call. Call Pheeder, leave a message and hang up. Seconds later all of your friends, or anyone you want, receives the message at the very same instant. And if they want, they can send a reply to your message.
It’s been going for a few days in NYC, and the developers plan to launch it in Europe soon.
Regine | 05:29 PM | Technology | trackback (0) |
The Permanent Link to this page is: http://www.textually.org/textually/archives/2006/07/013088.htm
[Continued from this post that collects some of the questions/requirements]
Here are our thoughts on how a protocol to manage groups of REST-ful entities could look like. First, here are some design principles:
- Anybody can create a group of anything, at any time, there is no central “group registration service” or anything like that that’s required.
- Any group is identified with a HTTP/HTTPS URL (or other identifier, such as XRI, that’s resolvable into such a URL). To set up a group, all that’s needed is that somebody declare that a particular URL represents a group. In the extreme case, that URL may not actually have any behavior — yep, there are some cases where that may be useful — but usually such a URL will support a few operations (see below).
- The members of the group are URLs themselves (or any other kind of identifier, such as e-mail addresses, etc. There are fewer restrictions on the contained identifiers because there’s no need for those identifiers to be REST-ful).
- There are no restrictions between the location of that identifier, and the members that the group has. For example, URL http://example.com/mygroup could be a group that contains only members on netmesh.org, but no other host. There is no requirement that such a group would have to reside on netmesh.org as well. Anybody can group anything from anywhere on the web.
- There are a number of operations on that group (see below); it’s very important to recognize that different clients may be allowed to perform different operations, so this ability — essentially ACLs on the various operations — must be designed in from the beginning. For example, only some clients may ever be allowed to see the entire membership list of a group.
Now, the operations. Recall that any of them may be subject to access control on a per-client basis and only some clients may be allowed to perform any one of them.
- Obtain a list of all members of the group.
- Add a member to the group. Not all groups may implement this. For example, a group such as “all users who blog commented at this site in the last 24 hours” should not have an addition operation.
- Remove a member from the group (not all groups may implement this).
- Determine whether or not a certain potential member of a group is actually a member of that group (return boolean).
- subscribe to the group, i.e. obtain change notification (think: e-mail) when the group changes.
Of course, there is no reason that a group http://example.com/mygroup could not be a “projected group” that takes its membership from other groups, such as “this group contains all members that are members of group http://example.net/joesgroup but not of http://spam.example.net/spammers“.
Finally, a concrete implementation could look like this, where GROUPID is the group identifier (e.g. its HTTP URL). All these operations would be subject to an ACL defined for the GROUPID and clients would be required to authenticate first using OpenID or GPG-based authentication:
- GROUPID?action=groupid-list-members: return the list of members of the group. An optional format parameter, as we have it in LID, could specify a MIME type for the result, such as text/plain or text/html or RSS-FOAF.
- GROUPID?action=groupid-add&id=MEMBERID: add a new member with the identifier MEMBERID.
- GROUPID?action=groupid-remove&id=MEMBERID: remove a new member with the identifier MEMBERID.
- GROUPID?action=groupid-check-member&id=MEMBERID: determine whether or not MEMBERID is a member of the group.
- GROUPID?action=subscribe&id=SUBSCRIBERID: send change notifications to the subscriber with SUBSCRIBERID, which can be an e-mail address or a URL that supports the LID Authenticated Messaging protocol.
- GROUPID?action=unsubscribe&id=SUBSCRIBERID: cancel change notifications to SUBSCRIBERID.
While more complex capabilities can be envisioned, I think this is about all that’s needed for most of the applications that we came across. (and one can always add operations)
The only other thing I’d add is to perform the operations only directly on the identifier GROUPID if GROUPID is an HTTP URL, and does not support Yadis meta-data discovery. If it does, more types of identifiers can be used, such as XRIs, and the actual implementation can be delegated. This is desirable largely for the same reasons as identity server delegation is desirable in OpenID. (If this paragraph makes no sense to you, don’t worry about it, Yadis should be optional for this kind of thing and you don’t need to understand Yadis to understand what I’m talking about here.)
In a future post, I will discuss a few of the really interesting capabilities that this kind of protocol will all give us. We first started thinking about this more than a year ago, and that’s where my Rsfoaf proposal (later superseded by RSS-FOAF) came from, in case you have been following that and were wondering … The groups in those feeds are exactly the kinds of groups that I’m discussing in this post.
Advanced Micro Device announced nationwide availability of the Telmex Internet Box Personal Internet Communicator (PIC) for citizens across Mexico.
Available from AMD since October 2004, The Telmex Internet Box provides Internet hardware, software, Internet service and support. It is available for purchase in Telmex shops all over Mexico and contains the PIC, a monitor, mouse and keyboard. The device comes preloaded with word processing, spreadsheet, presentation viewer, e-mail, media player (photos, music and video), and instant messaging software.
AMD’s 50×15 Initiative includes several PC devices targeted to provide affordable connectivity options around the globe. The PIC is being used by schools, universities, small businesses and consumers worldwide including the Caribbean, India, Brazil, South Africa, Turkey and Russia.
EE Times lists low cost personal computers designed for underserved regions in the world. We updated their list with some of the newer proposals from Intel, Microsoft, Inveneo and One Laptop Per Child.
- Personal Internet Communicator (PIC), by Advanced Micro Devices, is a
Standalone PC sold to service providers in Brazil, China, India, Mexico and Russia.
- GeodeGX 500@1-W processor
- 128 Mbytes of DRAM
- 10-Gbyte, 3.5-inch hard disk
- 56k v.92 fax/modem
- AC’97 Audio
- Four USB 1.1 ports
- One VGA port
- Streamlined version of Windows CE, word processing, spreadsheet, e-mail and browser apps and Acrobat, Flash and image viewers
- Cost: $185 without monitor
- Availability: since October 2004
- Terra PC By Via Technologies
Three branded PCs and thin clients defined initially for China and India. All use existing Via silicon and support Ethernet and/or 802.11 wireless ad hoc mesh networking
- Full-fledged PC based on GHz Celeron-class Via processor with MPEG-2 decoding and graphics
- Cost: $250 without monitor
- Media Station: Thin client with multimedia capabilities
- Availability: June 2005
- $100 MIT One Laptop Per Child led by Nicholas Negroponte.
- AMD CPU
- 7.5-inch diagonal screen with pull string for power
- flash-memory disk
- multiple USB ports
- 802.11 wireless ad hoc mesh networking and GPRS
- Cost: $130
- Availability: Late this year
- Microsoft’s FlexGo enables a pay-as-you-go model using prepaid cards or a subscription model with monthly payments.
- Standard Windows machine
- System components within the hardware allow for tracking computer use time, based on minutes of use or a specific end-date.
- Anti-tampering Measures: Include hardware security technologies that make it inconvenient or costly for an individual to tamper with the components
- Interfaces to the Provisioning Server System. New interfaces have been created to connect the operating system to the Microsoft FlexGo provisioning server system.
- Cost: Subscription computing fees vary
- Availability: Unclear
- Intel’s Affordable PC: A small, energy efficient system with "full-featured" PC technologies. It will use a low-power Intel processor running either the Linux operating system or Microsoft’s XP Starter Edition, a stripped down version of the Microsoft OS for poorer countries. Intel also plans to extend teacher training to 400,000 teachers in Mexico through the Intel Teach to the Future program by 2010.
- Windows machine
- XP Starter Edition
- Hard drive as well as built-in graphics, audio, and networking capabilities.
- Four USB 2.0 ports, two PS/2 ports, and a parallel port.
- Cost: around $200
- Availability: Unclear
- HP 441 Custom Linux system, part of HP’s E-inclusion program, it’s designed for education and supports four simultaneous users.
- Celeron or Pentium CPU
- 512 Mbytes to 1 Gbyte of RAM
- 40-Gbyte Sata drive
- 48x CD-ROM drive
- Nvidia Quadro NVS 100 graphics
- Gigabit Ethernet
- Supports four keyboards, mice and 15-inch CRT monitors
- Includes custom version of Mandrake Linux for four users, 70 open-source educational apps, HP educational software
- Cost: ~$1,600
- Availability: since 2004 in South Africa
- Inveneo, a non-profit social enterprise, recently announced the availability of its new Inveneo Communications System, designed to provide computing, Internet Access and VoIP telephony for places with little or no access to electricity or affordable communications.
Recently, AMD, Wyse, and NGOs Inveneo and ActionAid united to bring solar-powered thin client computing capability and Internet access into several villages in Uganda. These highly reliable, low energy consumption devices are maintained by ActionAid trained local community members.
- Linux-based Wyse S50 computer
- 64 flash / 128MB RAM
- Works on 12-V dc power source, consuming less than 25 Watts. Can be run on a bicycle-powered generator.
- In standby mode, where only the phone and WiFi link are active, the system uses only 5 Watts of power.
- Outdoor WiFi access points are encased in all-weather coverings for protection against water and dust.
- No fan or moving parts.
- Refurbished donated systems From Digital-Links International
(London) and others.
- Pentuim-2 and -3 processors, 233 MHz to 1 GHz
- 64 to 128 Mbytes of DRAM
- 4- to 6-Gbyte hard drive
- Some include CD-ROM drive
- Cost: $75 with monitor and shipping
- Available: now
- Jhai PC; Low-power PC delivering VoIP and data service originally developed by non-profits for villages in Laos.
- ZF Micro 128-MHz 486-class CPU, upgraded to 300-MHz Geode CPU
- 64 Mbytes of RAM
- Works on 12-V dc power source, consuming 20 W average. Can be run on a bicycle-powered generator.
- 802.11b, 96-Mbyte flash-memory storage on PCMCIA cards
- Lao version of Debian Linux; Lao versions of KDE office apps and VoIP program
- 12-inch XVGA LCD
- Dot-matrix printer
- Includes optional moisture-sealed 802.11b radio station and parabolic high-gain antenna
- Separate gateway links VoIP 802.11b net into phone system
- Cost: $2,000 for prototypes designed with volunteered labor and parts; production systems expected to be much cheaper; prototypes cost $2,000 but could reduce to a fraction of that with subsequent generations and volume sales.
- Availability: Systems being tested in Arizona, China and perhaps India this quarter. Final open-source spec expected by yearend.
In other news,
The grant to the Community Technology Centers’ Network (CTCNet) is part of a three-year AccessAll initiative by AT&T to provide technology access to underserved communities. It will be used to fund training for community technology center staff on universal design and assistive technology that can be used to accommodate multiple learning styles and abilities.
CTCNet will make the AT&T funds available to regional centers through a competitive application process.