Home | User Guide


— the easy to use, fully customizable personal database

StoneNotes Worklog


Posted by iraway — Mon May 25, 2020 6:46 pm

Well the day has finally come, we have launched StoneNotes 2020 onto an unsuspecting world.

Once you've signed up, you can join us in the forums where we will discuss all things StoneNotes and organization.

I'm planning to keep going on the Worklog, while I've been pretty quiet lately it's just due to the mad scramble to get everything ready for this MVP release. I'm really excited to get the product out into your hands and to see what you make with it.

Thanks for reading and please be safe in these strange times.


Posted by iraway — Tue Mar 10, 2020 6:12 pm

Folders are now working. This is a feature I've really been looking forward to for a long time, but only recently got around to implementing. A few details may change still, but here's how they currently work.

Folders can contain any number of items. Folders are always either expanded or collapsed, and appear only in one place on the Notes graph. This makes the structure very spatial as opposed to virtual like most "modern" desktops and note taking tools. I believe a more concrete, spatial layout is much better for many people.

Anyway, here's an example of a collapsed folder on the Notes graph:


To expand the folder, we simply click on the folder icon (I am planning to allow for customizing the icon for each folder of course):


You can see that this contains a note, a book, and another folder. Expanding the child folder reveals its contents as well:


Using these spatial Folders, you can easily implement a ton of different organizational methods, keep your projects and notes organized, etc.

Subscribe now to stay up to date and get discounts!

Subscribe to our newsletter to be notified when new versions of StoneNotes are made available. Subscribers periodically recieve discount coupons as a thank-you for being a member of our list.

Book covers!

Posted by iraway — Sat Feb 29, 2020 8:37 pm

Pretty excited about this, I just got book covers rendering the way that I want them to. Here are a few samples of the kinds of covers we'll be providing, the current plan is that some covers will be built into the software and more will be available as paid DLC to help support development.


Flexible repeating items

Posted by iraway — Tue Feb 25, 2020 4:51 pm

One of the goals for StoneNotes is to have a lot of flexibility in the way that items of all kinds are repeated -- Todo items, Daily agenda entries, etc.

To this end I've been working on a repeat feature that is based on the iCal Recurrance Rule standard but exposes it in a friendly interface (and stores it in a very compact form using only two 32-bit integers) to let you setup just about any kind of repeating pattern you would want. Some screenshots:

Base item details dialog box:

Repeat presets:

Popup for editing custom repeat patterns:

This uses IupDropButton which is probably my favorite Iup control right now. I have some ideas for how to use this in the future to hide other detailed parts of the UI so things are quickly accessible but not too cluttered. Great interaction element.


Posted by iraway — Fri Feb 21, 2020 6:13 pm

So this is a feature I am personally pretty excited about and which I just got working in the last few minutes. The idea is similar to Books in a structural way, but very different visually and therefore useful for different kinds of organization.

Paperclips allow you to bind two or more notes together into a stack that still visually shows all notes that are clipped together, just like you would with real pieces of paper. This allows you to attach notes to a draft document, a list of follow up questions to a conversation, ideas for a chapter in a book, or really anything you like that needs to be associated with and go along with another item. When you move, archive, or do other actions to the parent note that the child notes are clipped to, the action carries on to all the rest of the notes as well so they all stay together.

Here's a quick preview of the new feature in action:



Posted by iraway — Thu Feb 20, 2020 6:40 pm

I have been working on the implementation of books this week. Books basically just consist of a stack of notes that are bound together as one object in the graph view. This is handy for things that occur every day, such as a daily notes book, which is how I am currently using them. I've collected all of my previous Daily Plan notes into a single Daily Notes book using a feature added to bind search results into a book.

Here's a quick preview of the current covers. There will be many more designs available, as with other features, this is just the baseline.


Weekly agenda view, habit tracking

Posted by iraway — Mon Feb 17, 2020 4:02 pm

Here's a screenshot of the current week view, showing my habit tracking for last week:


In the week view (as well as on the daily agenda view), crossed out items are those that are checked off as done. Reminders also stop appearing for any events marked as started, so not all items are marked done necessarily (it's up to you if you use either checkbox or both).

Weekly habit tracking shows the same list of active habits as I showed previously in the daily agenda view. Any habits that existed as of the selected date range will appear with their status. Each record can store about 2 years worth of habit tracking, so this is very compact.

The Habits records can also be viewed at a higher level via the report system:


This allows selecting any date range, and will produce a readable report of checkmarks for each habit within the range.

Daily agenda view

Posted by iraway — Tue Feb 04, 2020 2:16 pm

The daily agenda view is now very nearly complete. I do still want to make some improvements to make it more customizable, but I'm very pleased with the look and functionality as a good baseline. Basically the idea with the first release is to get all the critical pieces into place so that I can iterate on the details with user feedback and my own use of the system.


I've also been working on a new and improved alerts system. There are two types of alerts:
- Alarms
- Reminders

Alarms are alerts that you specify you want to receive a certain period of time (expressed in days, hours, or minutes) prior to the event. Each event and Todo can have two alarms set on it. Alarms do not recur unless you press a snooze button which appears only when alarms are present in the alerts dialog.

Reminders are automatically issued when an item is scheduled to start. In this screenshot, a Reminder is showing for the test event because the time it is scheduled for has passed. To suppress further reminders I just need to select the Start checkbox to indicate that I've started the meeting or other event.


Note scrolling

Posted by iraway — Mon Feb 03, 2020 9:14 pm

Haven't been posting a ton in the last couple weeks but I have been working hard on the program, so I've now got a bit of a backlog of things to post about, going to try to get through them.

First up is a change to allow notes to be scrolled and resized properly on the graph view. This is really handy for me for reference material that I copy into StoneNotes, but in general it's just a good thing to have.

One of the things I'm trying to balance is how much interaction actually happens in the graph view on the sidebar, vs what happens in the edit view on the right. At this point nothing can really be modified within the graph, with the exception of position and size, and sticker application, but I'm not sure if that's a rule that is set in stone. The sidebar's various list views (for Todo items, etc.) do allow editing directly, so I'm not really sure which way I want to go. Editing a note directly in the graph view seems like it would be a bit too challenging to get right so for now I'm not going that far.

Quick shot of a scrolling note:

scrolling a bit:

Stickers and Z-Order

Posted by iraway — Thu Jan 16, 2020 2:03 am

Got stickers working a few days ago. Basically these are small, transparent images that can be dropped onto the graph view and "stuck" to any note or other object there. When the note is moved, the sticker moves along with it. The plan is to eventually have several packs of stickers available with different themes, as DLC items.

Here's the sidebar showing a few test stickers:


The bottom panel is what I'm calling the "tool panel" for now. It will be a spot where built-in and add-on scripts can display a custom UI for interaction with elements on the note graph, or other tabs. For now it's just a place for the sticker palette, and I don't have a UI yet for how different tools are activated. This will probably just be in the form of another menu and a small toolbar either on the left of the window, or embedded within the tab strip at the bottom of the window.

I've also got proper z-ordering working finally, which will be a big usability improvement for myself. Previously notes were always displayed in a fixed z-order, just because that was the easiest thing to do. Now they will be drawn in the order they were clicked on, essentially. So yoy might start with a stack of notes like this:


Then if you clicked Green, then Blue in turn, the display would look like:


This ordering is then preserved between sessions of course, so everything is exactly as you last left it.

Template previews in graph

Posted by iraway — Sun Jan 05, 2020 1:11 pm

Just got the template previews in the sidebar graph to work based on my internal LED parser, so the sidebar rendering of a templated note now approximates the internal form layout of the note from the LED template. Really pleased with the result so far.


More about templates

Posted by iraway — Sat Jan 04, 2020 3:15 pm

One of the new features of StoneNotes is a more reliable and less fiddly way to create custom forms. Since the Windows and Linux versions are written using the excellent IUP cross-platform GUI toolkit, the natural choice is to use their own LED language for templates.

Templates files consist of a simple INI file format that looks like this currently:


The last half of this under [tmpl] is actually pure LED code, though it's also valid INI code, which makes it a bit easier to load with our INI parse.

The reason it's formatted a bit weirdly is that we must have a unique key for each element of the LED file so that the resources use by them can be cleaned up automatically. This shouldn't be too bad since the labels, hboxes and vboxes all can just have any numeric ID associated to them (they do not need to be in order or anything really), while all fields will naturally need to have names anyway so that we can serialize the data to the note object that uses the template.

Anyway the template above looks like this once rendered in StoneNotes:

I've also written an LED parser from scratch while will be used in the mobile versions eventually, but more immediately will be used to parse the template LED code in order to generate drawing instructions for the graph sidebar automatically. This should allow me to create nicely formatted previews / thumbnails of any notes that use templates. Didn't quite get this working yet, though the parser is finally working correctly, so no screenshot yet.

First post

Posted by iraway — Tue Dec 31, 2019 8:50 pm

Hey there, I am Isaac Raway also known in some places as Blueapples. I've been working on a program called StoneNotes for a very, very long time and I thought that I should start to post updates on my progress, more or less just as a way to get some ideas written down but also to document progress for posterity.

StoneNotes is a personal information management/personal database/personal computing platform currently under development. Here's a quick preview of the current development version, showing some of the recently added capabilities such as templates (the form on the right) and differently themed sticky notes:


Some background: the first version of StoneNotes was written while I was still in high school, using the programming language Delphi. I started selling it online, and achieved a very small amount of success. People actually bought it, people actually seemed to like my ideas! It was great, but sadly didn't last. Some time around when I started to work as a full time programmer for a living, I lost interest in the program almost purely because I switched platforms to Mac OS.

Since then, and after many switches of platform back and forth from Windows, to Mac to Linux and back again, I have decided that anything I write from now on should be cross platform. It just makes the most sense for me personally since I often like to change platforms and I don't see that changing any time soon, but it also makes sense because there are lot of people out there and they all like different things. So to cater the the widest group of users I want all of my software to be cross platform.

The initial switch to Mac OS meant that I could not continue to work on StoneNotes using Delphi. Unfortunately I decided at the time to set it aside, and allowed the website to languish until at last it stopped working.

At some point in 2013 I decided to dust off the project and start a grand rewrite. This was originally done in C# and WinForms (prior to my cross platform epiphany). I built something that I still think was pretty cool, but eventually the complexity of the way I had started to write the program caught up with me and drained the joy out of the effort.

Fast forward to the last year or two and I have started a third rewrite of the program, this time with a specific set of features in mind prior to starting development. The new program is written in cross-platform C with IUP as the GUI library for Linux and Windows versions. The Mac version will use a native Mac OS UI as that definitely seems like the right approach there, but will leverage as much of the same code as possible from the Linux and Windows versions. I have also tentatively determined ways to do mobile device support, but mobile device support is much further down the road. I wish there was a cross-platform GUI toolkit that could really work on all three desktop environments and both mobile platforms, but for now this seems to be out of reach.

This site will serve as a worklog documenting the journey to completing the first version of this rewrite, a tradition I picked up during my Blitzmax development days. In many ways the program is already functional and operational, containing many hundreds of my own notes, but in other ways it still has quite a ways to go before I will want to fully release it. That said, I want to give anyone who finds this kind of application interesting a peek into my progress and thought process.

Subscribe now to stay up to date and get discounts!

Subscribe to our newsletter to be notified when new versions of StoneNotes are made available. Subscribers periodically recieve discount coupons as a thank-you for being a member of our list.

Feed of All Posts (Raw Atom Feed)