Monday, November 17, 2008

Smpl Dogfooding.

dogfooding (verb) - In a nutshell, dogfooding means "using your own product". A product which is being dogfooded tends to be a lot more polished. When a normal user is annoyed by the product, they can't do anything about it. But when a developer is annoyed by the product, they can stop what they are doing and make the product less annoying. (From http://www.urbandictionary.com)


What a month it has been at Precision Software!

Since the completion of milestone 1, we've been using Smpl for a variety of tasks. We now have 20+ real world use cases demonstrating Smpl for uses such as:
* Test plans and test generation
* C# code generation (Menus)
* Church organization (members, sunday school classes, ministries, mailing lists, reminders, directory, and web site)
* Object relational mapping (ORM)
* Generating word documents
* Sending e-mails
* Web site generation
* VHDL module entity generation
* State machine VHDL generation

Check out the updated web site. By the way, it is now being generated by Smpl. I sat down to update the site, and decided I was not going to stare at PHP any longer! So, I copied the content into Smpl, and in less than an hour had it regenerating the site. Of course, getting all the details took a bit more time. However, I can now edit something at a high level, instead of dealing with PHP directly. The Smpl translation templates handle creating the menus, inserting tables, bullets, etc.

What I love about Smpl is you only need to abstract what you get benefit from. In the middle of the Smpl web site, I put HTML tags. Smpl doesn't care--just passes them through. However, I have it generate the tables and bullets on each page so I don't have to think about that.

The rest of this post is the Precision Software web site (http://www.precisionsoftwaredesign.com) content, in Smpl. I'm sure it doesn't word-wrap very well for this post (and it looks like some of the HTML tags are getting interpreted), but at least you get the idea.


Precision Software Site :Web Site
Page:
Mission
Description:
Eliminating the tedious work that people do on computers.
Above Bullets:
How much of your time do you spend...
Bullet:
Engineering and Development
Description:
...making 20+ changes to specifications, designs, code, and tests due to a single requirement change.
...causing bugs because you don't know every place that needs to be changed.
...dealing with common mistakes made by new members of the team because there was no way to enforce agreed upon rules.
...making the same change to the 10 products in a product family.
Marketing and Sales
Description:
...maintaining four version of a PowerPoint presentation.
...updating the data sheet, product brief, product manual, and web site when a product feature changes.
...trying to fit your data into the rows and columns of an Excel spreadsheet.
Business
Description:
...developing a $100K+ custom database application, and by the time the application is ready your process has changed and the application must be updated.
IT
Description:
...automating everything that you can--but knowing there are more major tasks that you know the computer could be doing

Products
Description:
The Smpl compiler is focused on technical information, while the Smpl Information Processor is the future of Smpl, making it available for non-technical information as well.

Bullet:
`Smpl` Compiler
Bullet Link: Smpl_for_DSM.pdf
Description:
The Smpl compiler reads Smpl model definitions, models, and translation templates, and then processes and executes the desired result--anything from generating C# code to sending an e-mail with a Word document attachment.
The Smpl compiler enables developers to implement Domain Specific Modeling in their development processes. Steven Kelly wrote an excellent book on this topic, and see also the DSM Forum web-site.
`Smpl` will move DSM into the mainstream. This whitepaper discusses how: Smpl for DSM. This paper shows examples of what can be done with Smpl: Smpl Examples.
The compiler is currently in pre-Alpha testing. Please contact Precision Software at 208-882-5980 if you are interested.

Smpl Information Processor
Bullet Link: Smpl_Information_Processor.pdf
Description:
Let's face it, today's word processors are dumb. They have turned computers executing 3 billion instructions per second into advanced typewriters. Spreadsheets are a step up, but very little real world data actually fits into its rows and columns. Finally, databases are anything but user friendly.
Smpl is the future of information processing. This whitepaper discusses that future: Smpl Information Processor. This product is not yet available.

Dsharper
Bullet Link: dsharper.php
Description:
In the process of developing the Smpl compiler, this C# to D programming language convertor was developed. It is released open source to the C# and D communities. Click here for more information.

Technology
Bullet:
Smpl :TM
Description:
Imagine if every document you authored in the computer was understood by the computer--every document was effectively a mini-database. If the computer can understand your documents, it can do the mundane work you don't like doing. This leaves you to do the tasks that you enjoy.
In technical terms, the Simple Modeling and Processing Language (`Smpl`) is a textual domain specific modeling language and template based compiler that enables computer aided authoring typical of source code editors in IDEs but generalized for non-programs, and also brings the sought after goals of code generation and automation within reach.
Smpl is a common human/computer language. Instead of the plethora of computer languages (including the explosion of such languages that domain specific languages enables), Smpl is one language. Like natural language, Smpl's extensibility comes through defining new terms, not changing the rules of the language. A diagram may be worth a thousand words, but it also takes a thousand clicks to create and update. Using text (or words) is, and will be, the most efficient way to communicate with a computer.
The following white paper introduces the Smpl technology: Introduction to Smpl. This paper shows examples of what can be done with Smpl: Smpl Examples. Smpl technology is patent pending.
Advantages
Description:
  • More efficient authoring of specifications, designs, code, tests, web and published document content, etc.
  • Information consistency and correctness. The computer is finding and helping fix mistakes as you type.
  • Queriability. The query power of databases available on your documents.
  • Automation. Sending e-mails, updating web site content, notifications of information changes.
  • Generation. Generate documents, source code and scripts, directories, zip files, etc.





(Blog)


About Us
Description:
Precision Software was founded in 2004 as a research company investigating methods of improving software development. The founders are listed to the right.

Bullet:
Eric Hewitt
Description:
Eric graduated Summa Cum Laude from the University of Idaho with a degree in Electrical Engineering. He worked with Advanced Hardware Architectures (AHA), an Integrated Circuit design firm, for seven years, where he gained experience with all phases of IC development including specification, design, testing, and project management. Eric then worked with Schweitzer Engineering Laboratories (SEL), writing embedded software for their power system protective relays before joining Precision Software Design.
Image: eric.small.jpg
Michael Hewitt
Description:
Michael graduated from Rice University in 1993 with a BA in Computer Science. For 10 years, he worked as a programmer and lead programmer at Microsoft on projects including Windows 95, the first four versions of Outlook, and a ground-breaking development environment in Microsoft Research called Intentional Programming. He started with Precision Software Design in 2004.
Image: michael.small.jpg



Contact
Description:
If you have questions about Precision Software technology or products, please send e-mail to: contact@precisionsoftware.us

Bullet:
Address and Phone
Description:
Precision Software Design, L.L.C.
105 E. 2nd St. Suite 1
Moscow, ID 83843
Phone: 208-882-5980