[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Some random comments arising from my work
Hi, all! I'm sorry I haven't been much help these last several weeks or so. Among other things I'm hard at work getting my wikiCalc product to a beta stage. In doing so I have found the exposure I had here to various issues quite helpful, as well as the material from OpenFormula.org. I wrote this up on my blog (http://danbricklin.com/log/2006_04_05.htm#standards : "Standards Specification and wikiCalc"). This was also picked up by ZDNet's BTL blog: http://blogs.zdnet.com/BTL/?p=2850 Thanks! When talking to David Wheeler, we decided that it might be helpful to others if I discussed some of the issues I've been dealing with and what I'm putting in wikiCalc: I realized from feedback I've gotten that people are taking this product more seriously (in terms of what they expect of it) than I was planning. This is good. It means, though, that I need to handle more types of things than I planned, such as date/time format, easier input without needing to format every cell explicitly, etc. Also, if you all have created such full spreadsheets on so many platforms (even PDAs) I should at least try to be "grown up" in what I support and anyway it must be what most people expect. In my heart (not my lazy coding hand) I know this is true -- I'd want a lot of the features people assume are in every spreadsheet. This is what I have ended up with so far. Values can have any one of a few different types. Right now I have numeric, text, error, and blank. Each can have any number of sub-types. For example, numeric has plain numeric, date, time, date/time, currency, and percent. Text has plain, HTML, wiki (maybe more than one flavor), and maybe URL, image URL, and who knows what else (blob for random bytes? SVG? Postscript?). When I do an operation I have a table that tells the program given various value types what type of result to produce. For example, adding a number to a time gives you a time, but adding a date gives you a date/time. Having some standard for what you'd put in such a table would be nice... (But who has time to define it for the spec?) When the user enters a value into a cell the value is parsed simply. If it looks like a number, it's gets type numeric and only the resulting value is stored. If it looks like a percent, it is stored as a value (1% => .01), the type is set to numeric percent, and the original text is kept for subsequent editing. Likewise with currency, date, etc. I will probably add a setting (common on spreadsheets) to say always parse this as text, date, or whatever. There are also the use of a prefix, such as ' for explicit text, like spreadsheets have had since VisiCalc. Output formatting has explicit formats on the cells, or else defaults. There are formatting settings for both text and numbers, both kept and used depending upon the value type at the time of rendering. The sheet has format settings for text and numeric if the cell has none, and then there are global super defaults built in (though eventually to be app level settings). Most of the formats are the normal ones: the equivalent of #,##0.00, etc. It is easy to change the set you choose from (at the app level) to handle different styles (e.g., currency indication, separator style, etc.). There are text formats for plain text (with chars like < and & escaped and line breaks preserved), HTML (sent to the browser without escapes), wiki (plain text plus markup like many wikis), and perhaps others. The General format comes in two flavors: general and general with separator. The general format looks to the value sub-type for formatting hints. Percent is treated as percent, date as one of the date formats, HTML text as HTML, etc. I don't know most of the spreadsheets out there so I don't know how different any of this is. I have found that my old copy of Excel seems to set formats on cells when they are created and doesn't have this value-type propagation with extended general format. I hope this is helpful/interesting to others. Any feedback is welcome. -DanB
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]