Posts by Month

Sprint: Evil? Ya.

The other day Sprint turned my phone off. Their Terms Of Service give a $150 penalty for terminating service in the 2nd year of your contract. Any change you make to your plan resets the contract (even changing the number of minutes) .

I want out.

I want cheap, flexible VoIP service with SIP. SIP interoperates with everything: other networks, hardware phones, softphones. For example, there is a version of Gizmo, a crossplatform SIP client, available for Nokia’s WLAN equiped 770 handheld.

Why not Skype? Skype uses a proprietary protocol which doesn’t interoperate with much of anything (although it does have software for pocketpc). I have experienced artifacts and dropouts when talking on Skype, even over a fast cable connection. SIP softphones seem to have cleaner audio, possibly due to the automatic codec negotiation inherent in the protocol.

SIPPhone, the service which backs the Gizmo client, has free SIP-to-SIP calling and cheap international POTS and mobile minutes. There is no monthly service charge, unless you lease a local phone number for $12 dollars every 3 months so that you can receive calls from regular phones.

I was impressed with SIPPhone’s slick account management site: buy minutes, modify your user profile, add people to your phone book, even dial your phone via the web interface. I could definitely see using the service with a web tablet like the 770.

Poppa Sprint breathing down your neck? Get SIP!


4.8 on the Move: CCK Merge

It is very useful for a CMS to allow site creators to define new content types. This functionality is nicely implemented in Drupal with CCK, also known as content.module. CCK actually allows new types to be defined TTW (Through The Web).

For the 4.7 series, CCK has been developed parallel to core as a set of contrib modules. As the CCK feature set stabilizes, changes are made in core to ease the merge.


Large organization authoring environment

cck, groups, categories hybrid

Categories represent areas of influence. They don’t correspond directly to location, rather locations are constructed by intersecting vocabularies and providing a means of display for the resulting nodes.

Groups can be associated with categories, as a single node. This node is also a cck node.
Some categories are also groups.

  • Workflow / Actions
  • na_arbitrator

This last is a work by Earl providing an API for node access modules to interoperate.

Currently, access modules directly insert records into the node_access table. If any module has inserted a “yes” record, access is granted.

na_arbitrator provides. Currently, there exists in the package a module workflow_access which ties node access to workflow state by role.

Relationships

  • Node {has a} Workflow State
  • Node {aggregates to} multiple categories
  • Groups {have many}
    • Managers
    • Members

For each category/group, there are 3 local “roles”:

  • Not a member
  • Member
  • Manager

A content item lives in the intersection of the union of each set of categories which share a container

For example:

?? (FAQs) AND (History OR Math) AND (“History: Early 20th” OR “Math: Trigonomery”) ??

Here, the first category is the content type. Each content type has fields, workflow, and behavior. Type determines workflow. This makes workflow and behavior global in the sense that it is the same in all departments. This is true at least in our first prototype.

It would be possible to add more “roles” to a group type using CCK user ref fields. Behaviors could then be associated with these local roles using a na_arbitrator node access module.


Caching

Here are some incomplete and probably incorrect notes about PHP caching options.

Page-level caching works well for page views that don’t change very often. For example, a front page which rotates the featured articles every hour could be page-cached, then invalidated each hour.

Region-level caching can be used to pull some parts of an otherwise dynamic page from a cache.

Object-level caching can store structured PHP data objects, so that they don’t have to be built with each run.

These levels of cache are ordered by increasing “ickiness”.

PHP-Level



OIRP Meeting Notes

OIRP site, never live

devwarp 2002

OAA (provost) Donna not on old zope (OIRP under)

institutional portfolio

  • presereve look: ease of use

banner > oracle > SAS > tables

dept profiles


View Arguments in Menu

My immediate use-case is taxonomy browsing, but it would be very useful for all kinds of views.