Saturday, January 10, 2004

ink is very interesting for spam related email issues. In an earlier post i reiterated that an Ink object is a container for stroke objects .... but more important its single meaning in life is to contain stroke objects.
an Ink Object has a collection of stroke objects that are stored in the Strokes Collection ....
INK is simply a bunch of strokes...And while "ink's" properties are not too interesting and i have always insisted that apart from ExtendedProperties and the Strokes collection everything else could have been implemented elsewhere.

The real magic in ink is in the strokes.


Some Rehashing
Inks "Strokes" Collection contains the collection of Stroke objects that represent a single ink stroke. Strokes collections are references to ink data and are not the actual data itself.

Ink's Properties
CustomStrokes Returns the collection of custom strokes to be persisted with the ink.
Dirty Returns or sets the value that specifies whether the strokes of an Ink object have been modified since the last time the ink was saved.
ExtendedProperties Returns the collection of application-defined data that is stored in the Ink object.
InkSerializedFormat Returns a string that contains the name that should be used to query DataObject on the Clipboard to see if it contains that particular format
Strokes Returns the collection of all of the strokes in the Ink object.

".........this abstraction represents a single ink stroke, it implements ICollection and IEnumerable , has 28 methods and 2 events(StrokesAdded and StrokesRemoved ) and 7 properties that take care of things like how many Stroke objects are stored in the collection. In addition to the standard collection methods that take care of adding ,removing, moving stroke objects there are methods to scale and rotate stroke objects (remember that from PacketProperties that stroke objects are really just a fancy polyline - you have all the information that is required to do all kinds of vector type transformations on strokes) It would have been easy for the designers of the API to keep it at the bitmap level but the it might not have been the same magical ink that we have today. Requires more data to be stored but gives real powerful ink.


PacketProperties of course are very exciting to think about but thats too much paper for folks that just recently (70 centruries ago) figured out how to abstract on a surface. So we will still talk abit about Strokes. That power is coming shortly.

A Stroke Object is contained by an instance of an Ink Object. Ink Objects define the scope of a Stroke Object. an Ink Object owns zero or more Stroke objects. Yes am going to capitalize all the class names i reference. Thats because the SDK did such a good job at OO that its literally possible to talk about this and it would sound like a normal english conversation, talk about Object abstraction.

liteally the ink is made up of strokes and the strokes are made up of packets described by PacketProperties.

its hard to talk about ink persistence without talking about ink itself. We have all heard how ink is a first class citizen in the the Tablet PC SDK object model.
Another way of looking at it is that the Ink class is the outermost entry point into the Ink Data API, and it is analogous to a document class , much like text or files are the basis of keyboard based computing.

User input occuring on InkCollector and InkOverlay create Stroke objects.
Stroke objects are the characters or basic building blocks of an ink document . Each Stroke objects represents a stroke of digital ink, the same way each handritten stroke represents some type of human intention, a doodle and scribble, a straight line, a letter, a number, a stroke of the pen. Each time you actually take a pen to paper , you are really create strokes of some type. Thats what is abstracted by Stroke objects. A stroke.
-Movement of the pen on a surface is essentially what is captured though more information is collected than the movement - its scary to imagine how powerful this strokes are compared to ordinary pen and paper strokes.
paper and pen interaction of course has a lot of expressiveness but once you have a computer underneath , you can the capability to store things like the time the stroke was done, a serial number for each stroke, even the angle the pen was making with the digitizer....thats why paper is at the end of its time, and of course there 's the whole "save a tree thing"

Stroke objects are are a collection of packets and each packet contains an x,y location and other packet properties. Next is the almighty PacketProperty Object.
Your stroke is represented as a collection of PacketProperties
...................." from previous post
wonder if ink might be the solution for spam ....
What's with all the benchmarks? I guess Java is slowest and C++ is fastest. Now all that is good but the fact that .NET has a more comprehensive "accessories" package , means even if java vm's were built into hardware or whatever other nativisation might happen for byte-code. .NET would still be a better deal. Benchmarks might address performance issues but they do not necessarily mean that its pragmatic. Language "accessories" are in my opinion primarily libraries, communities and tools.`
Other things like advocacy and standardization are also important but nothing is more important than libraries.

based on that arguement .NET related techniologies are a better deal all the time since the whole .NET thing is all about crreating those pieces.

I keep on saying .... you really cannot compete with folks who are doing it for the money if you are doing it for fun or ego..... nothing clarifies more than trying to get paid
wifi will make a difference, am not sure what everyone is doing when they say they are building out the infrastructure. As far as i know AP's cost under 100 bucks and that silly pay as you use model is absurd. I repeat wifi access should be like the music that most commercial facilties make available for free. Why is it so hard for so many "in the know" people to get that. Has nothing to do with the providers, nothing at all , infact they haven't figured it out since they have no plan or solutions to the quagmire, which is what this is to them.
Shared free internet and VOIP just makes what they do look like immoral robbery, which might be what it is.