UI usability solution I am especially proud of

February 4, 2016

Filed under: Design,Usability — Andrew @ 11:08 pm

25 or so years ago we were designing one accounting application that required intensive input of numbers by operators.
That was in Russia at the time when personal computers were just appearing in offices massively.

Amount of numeric data that operators needed to input was enormous and as in any financial institution the requirement for correct input was very high.

Operators were quite professional and were doing very fast blind input by hands at the time when their eyes were focused on paper sheets with data.

In order to help them to verify their input I invented and implemented “musical” verification. When focus lefts numeric field, the application is playing melody where each digit has its own tone. I was surprises how effective it happened to be. At the end of first day operators were able to determine at least number of digits filled and after some time some of girls were even able to tell exact number by only hearing the melody.

Cool, eh?

SCITER.COM

October 9, 2015

Filed under: Sciter — Andrew @ 6:22 pm

After 6 years Sciter Engine finally got its own home : sciter.com.

The site is not complete though, I am still working on content, documentation in particular. The plan is to combine in one place stuff that was spread across many sites and blog articles.

Forum users are advised to re-register on Sciter’s new forum at sciter.com/forums/ hope you will find it more comfortable.

Note #1: we have changed Sciter prices.

Note #2: Sciter’s versions RSS channel is here, please update your links.

Omni

October 6, 2015

Filed under: Sciter,Usability — Andrew @ 10:57 pm

Mr Ramon F. Mendes have published his Omni tools that allow to use Microsoft Visual Studio to design markup and Sciter specific code:
TIScript support in Visual Studio by Omni

I’d recommend to give a try to this great tools, you will love them!

Experiments with acrylic paints.

Filed under: Personal — Andrew @ 7:56 pm

Never tried acrylic paints before, and here we go:

view from Richmomd on Vancouver Island

view from Richmond towards Vancouver Island

It’s naïve of course but reflects my mood at that sunny day on Westcoast.

ZIP resource packaging in Sciter

September 23, 2015

Filed under: Sciter — Andrew @ 4:44 pm

I am adding zip resource packaging support to Sciter v. 3.3.0.6.
Imagine that you have some folder where your app files are located:

content
  images
    img1.png 
    img2.png
  scripts
    script1.tis
  styles
    style1.css
  index.htm
  view1.htm
  dialog.htm

then you can load it into the Sciter using …/content/index.htm path. Nothing new up to this moment.

But with ZIP packaging support you can compress that folder into single content.zip file and load that zip into the engine as a whole using …/content.zip url.
Sciter will unzip that archive on the fly and will try to find and load either one of following files at its root: index.htm, index.html, main.htm or main.html.

All relative links inside that file will be resolved against content of the zip. So if you have <img src=”images/img1.png”> then its URl will be resolved to artificial
…/content.zip/images/img1.png and the image will be loaded from the zip.

Given schema allows to use same content in a folder or as packaged into zip file without any changes.
Among other use cases consider zip packaging for downloading applications over the wire – it will minimize bandwidth and eliminate multiple http connection requests for resources of the application.

WPF vs Sciter

September 14, 2015

Filed under: Philosophy,Sciter — Andrew @ 6:01 pm
WPF Sciter
Definition Windows Presentation Foundation (or WPF) is a graphical subsystem for rendering user interfaces in Windows-based applications by Microsoft. Is an embeddable graphical user interface engine (dynamic or static library) by Terra Informatica Software.
Released 2007 as part of Windows Vista. 2006 – h-smile core release date (HTMLayout, Sciter1, Sciter2 and Sciter3).
OSes Microsoft Windows Microsoft Windows, Mac OS X, Linux/GTK.
Technology .NET Framework 3.0 and above. Only managed API. Native code with native plain C API.
Distribution WindowsBase.dll, PresentationCore.dll, PresentationFoundation.dll (without .NET core) ~ 5 Mb Single sciter32/64.dll ~ 4 Mb
UI Architecture XAML DOM tree W3C compatible DOM tree.
Markup language XAML HTML5 and SVG.
Style language XAML, no cascading CSS – cascading style sheets.
Code behind UI .NET languages tiscript (JavaScript alike, built-in), C, C++, Delphi
Data Binding XAML data binding: one-time/one-way and two way
  • built-in string interpolation via stringizer functions;
  • kite – {{mustache}} alike template engine;
  • +plus – AngularJS alike two-way bindings based on Object.observe();
  • +vlist – one-way, virtual lists bound with arrays of records.
Media services vector and raster images, audio, video vector (SVG) and raster images, video with audio.
Graphics WPF rasterizer on top of DirectX.
Platform graphics:
  • Windows – Direct2D on top of DirectX
  • OS X – CoreGraphics
  • Linux – Cairo
Graphic primitives 2D graphics along with brushes, pens, geometries, and transforms.
  • All standard CSS primitives including filters and transforms.
  • <canvas> alike graphics primitives for immediate mode drawing along with brushes, pens, geometries, and transforms.
Templates Look of an element can be defined directly, via its properties, or indirectly with a Template or Style. Look of an element can be defined directly, via its style properties, or indirectly via style sheets. Structure of elements can be "templated" by Behavior classes (native or in script) and Aspect functions and applied to elements via CSS – properties: behavior, prototype and aspect.
Animations low level animation via timers and higher level abstractions of animations via the Animation classes. CSS transform property based animations, timeline (TweenLite alike) animation engine, low level animations via Element.animate().
Printing Supports paginated documents via DocumentViewer class. <frame type="pager"> supports print preview and printing of paginated HTML documents. Supports CSS page-break-after/before/inside properties.
Accessibility Microsoft UI Automation Microsoft UI Automation on Windows.
« Previous PageNext Page »