LlamaShare "Features" Page

No software is perfect. Here is my own internal bug list.

LlamaServer

Known Problems

Problem

Killing Newton doesn't kill any DesktopResponder threads waiting for it.

Suggested Solution

No clue. The current way around this is to just have the desktop time out and disconnect, which eventually kills the thread (hopefully).

Problem

Sending frames to Newton leaks memory

Suggested Solution

The unbound data tree is never disposed of after it has been flattened at sent to the Newton. This is compounded by the fact that we need to keep it around if the frames goes into a global soup. Everything about the binding/flattening process leaks memory, but it leaks most of it into buffers stored in an LList called fLeakManager. We know where the storage is, but we don't know when we're free to delete it so it is kept around forever. This needs to be addressed with more seriousness.

Problem

Binding incoming frames to DIL objects yields incorrect results with PRECEDENT data types

Suggested Solution

The PRECEDENT data type is used to refer to a previous slot. I have no idea why or what it is used for, but it is. DTS wasn't terribly helpful about how to fix it.

Problem

Frames sent by desktop clients to Global Soup cannot be read by other desktop clients.

Suggested Solution

For a desktop client to access a frame from a global soup, it must be represented as an unbound data tree (array of slotDefinition structs, as used by the DILs). When frames come in from the desktop, there is currently no mechanism to take them from flattened stream and convert them to unbound data (we already convert them to bound data for transmission to the Newton). There are two solutions to this:

  1. Write a converter from flattened stream to unbound data tree
  2. Save the flattened stream and send it directly

Problem

Class data not correctly transmitted when sending frames from desktop back to Newton

Suggested Solution

The code to do this is exactly the same as to handle the slot names, but just never got implemented (class name currently stubbed to null pointer). Copy the code to handle slot names and rename accordingly for class name. Should take 5 minutes to fix, but I'm too busy.

Other Things To Fix

Problem

Get CDILs to use asynchronous threads.

Suggested Solution

I successfully use the async stuff when creating a new connection, but not when transferring data. Might not be calling the idle routine enough.

Problem

Use the actual name of the machine for the Chooser name, instead of "Llamas Have More Fun."

Suggested Solution

This should be fixed in the DILServer thread, I think. Of course, they do, but that's neither here nor there.

Problem

Support the 1.1 DILs.

Suggested Solution

For some reason, the connection works fine with the new libraries, but not any of the data transfer. It's probably a timing problem with the information getting lost at the Newton because of the bug in the Newton Comm code that loses information when data comes in an an inputSpec has not been registered -- instead of buffering, it tosses the data. The timing with the 1.0 DILs is probably fine, but has been changed enough in 1.1 to screw things up.

Problem

Add more functionality to Global Soup, such as replacement of existing soup items.

Suggested Solution

Not ever sure where to start with this one, as it's going to take a lot of work.

Problem

Allow serial connection if so desired.

Suggested Solution

Instead of always forcing the Newton to be on AppleTalk, it should work if it is connected via the serial port. Desktop clients on the net can still talk to the server as normal. Possibly adding a check box or config dialog to let the user choose which they want.

Desktop Connect

Known Problems

Problem

The C++ stub is out of date

Suggested Solution

Update it with the commands to match the Java stub

Mobile Connect

Known Problems

Problem

Problems with power-off after closing down the app

Suggested Solution

DTS has given us a fix, implement it.

Problem

Save frames from desktop

Suggested Solution

The code to do this is currently stubbed out. The code to do replacement and assignment of desktopIDs to a new frame does not exist but should be easy to write.

CyberLlama (Cyberdog part)

Known Problems

Problem

Opening a saved part freezes

Suggested Solution

No clue.

Problem

Dragging CyberItem into document no longer works.

Suggested Solution

Apple must have changed something in either Cyberdog 2.0 or OpenDoc 1.2 to the point that when you drag a cyberItem into a document, an empty broswer is embedded instead of the display part. Stepping through in debugger shows that my CyberItem's "open" routine never gets called.

Problem

ConnectTo panel needs to be overhauled

Suggested Solution

See thesis for what it should look like. If done in PowerPlant, this might require getting around the odd incompatibilities with the view system in PP and OpenDoc, of which MetroWerks is ignorant.

Problem

Slots not saved correctly when dumped to storage unit.

Suggested Solution

The only thing saved to the storage unit is the textual representation of the note, not the actual frame structure. This needs to be more faithfully represented.

Problem

Doesn't work with regular notes, only outlines & checklists.

Suggested Solution

Should be easy, but I never looked into it.

This page was created with Claris Home Page by Mike Pinkerton.