[Ann] Version 1.0 Preview

User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

[Ann] Version 1.0 Preview

Postby CintaNotes Developer » Wed Mar 10, 2010 6:33 pm

Hi guys,

well as promised here it is! But I should warn you that not much new is there on the visual UI side.
Here are the most noticeable changes:

  • Automatic import of beta .dat files at first start;
  • CN now doesn't take more than 25MB of RAM even when having large number of notes in the notebook;
  • The search is now faster on large notebooks: The Full Text Search (FTS3) SQLite extension is used. On the downside of that, the notebook file now has to accomodate the full text search index and is somewhat larger;
  • A bunch of new parameters in the .settings file, most notably "notebook.file" which allows to specify any path to the notebook file;
  • Automatic notebook reloading (for DropBox as discussed earlier);
  • New menu: "View/Sort By". Note that any sorting mode other than "none" disables note moving commands
  • "File/Import" command now has three options: .db, .dat and .xml;
  • Minor bugfixes

What is yet to come:
- Sorting bar, to make note sorting easier and more visual.

How to update:
I advise you to make a copy of your CintaNotes folder, and put the attached new cintanotes.exe in there. At the first start, CN will recognize that there's an old .dat file and no .db file, so it will be imported (and after that renamed to notebook.imported.dat).

Eagerly awaiting your feedback! Thanks!
Attachments
CintaNotes_1_0_Preview.zip
CintaNotes 1.0 Preview
(566.7 KiB) Downloaded 2783 times
Alex
Noddy330
Posts: 354
Joined: Thu Jan 22, 2009 11:05 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby Noddy330 » Wed Mar 10, 2010 10:10 pm

Running from USB Memory Stick.
Looking good
Nod
danei
Posts: 23
Joined: Mon Feb 09, 2009 4:42 am
Contact:

Re: [Ann] Version 1.0 Preview

Postby danei » Thu Mar 11, 2010 1:28 am

After importing my old notes, I find search fails for some cases.
I have a note contain 'UTF8', then I type 'utf', the note appears, but when I type 'utf8', there appears no search result.
The string 'ms' can't found, either, and so are some other chinese chars.
2010-03-11 09 17 39.png
utf
2010-03-11 09 17 39.png (21.79 KiB) Viewed 20169 times

2010-03-11 09 18 05.png
utf8
2010-03-11 09 18 05.png (12.98 KiB) Viewed 20160 times

I create a new note exactly tha same as the old one, the search for 'utf8' still fails, so I guess it's something regarding to search function, not import.
And m10.5 works as expected.
Here's the note, maybe it will help reproduce the case:
note.zip
note
(2.76 KiB) Downloaded 2455 times
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby CintaNotes Developer » Thu Mar 11, 2010 2:36 am

danei wrote:After importing my old notes, I find search fails for some cases.
I have a note contain 'UTF8', then I type 'utf', the note appears, but when I type 'utf8', there appears no search result.
The string 'ms' can't found, either, and so are some other chinese chars.

I know what happens, and unfortunately there's no quick fix.
M10.5 uses linear search for finding exact substring. Since it holds all notes in memory, it offers acceptable performance when note count is under 10000.
1.0 stores notes in the DB and only part of them (the so-called page cache) is in memory. The exact search for substring using LIKE would be much slower. This is why CN now uses full-text search (FTS). FTS works via splitting text into tokens (roughly = words) and indexing them. The tokenization algorithm looks for standard word boundaries like whitespace, punctuation.

Now it is clear why it fails on your text. There are no spaces around UTF8, so it is not recognized as a separate word. It is still highlighted because highlighting is actually independent from search and uses exact substring search like before.
In fact you see the note when you type 'UTF' at all only because of the '* UTF-8 is the encoding...' comment string.

What can we do here:
1) I can provide the option to use the old slow linear search. But it will be slower than before because of disk access.
2) What are the tokenization rules for Chinese, maybe I could build them in? Are there any word-boundary characters and if so, what are their UTF-16 character codes?
Alex
danei
Posts: 23
Joined: Mon Feb 09, 2009 4:42 am
Contact:

Re: [Ann] Version 1.0 Preview

Postby danei » Thu Mar 11, 2010 4:05 am

CintaNotes Developer wrote:What can we do here:
1) I can provide the option to use the old slow linear search. But it will be slower than before because of disk access.
2) What are the tokenization rules for Chinese, maybe I could build them in? Are there any word-boundary characters and if so, what are their UTF-16 character codes?

for 1), it would be nice adding such option. If this option combines with puting all notes in memory would be better, I think, since I personally don't care so much about ram usage.
for 2), unfortunately, there're no such boundaries as space in chinese chars, and that's why search engines have quite a difficult work to recognize/split 1 chinese word from another. In fact, ancient chinese poets even use the uncertainty of boundaris between words to create artistic ambiguity...

Search index for east asia chars is a big project. Maybe using exsited project as lucene(with C port lucy) will do?
Noddy330
Posts: 354
Joined: Thu Jan 22, 2009 11:05 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby Noddy330 » Thu Mar 11, 2010 7:44 am

Alex,
There’s something about installation and transition from beta that was not quite right for me.
I typically don’t read instructions, and my first install “failed” as I hadn’t spotted the dropdown on import for .dat and thus failed to find and import my data. I didn't get the automatic import.
2nd install went fine.
Maybe you could highlight the move from .dat to .db and its implications?
Now running ok - no problems
Nod
Urmel

Entered Link in the preview version will not be saved!

Postby Urmel » Thu Mar 11, 2010 8:55 am

Hello Alex,

When I enter a link in an existing Note and press the [OK]-Button (or enter <Ctr>+<Enter>) the link is not saved.

The link will be accepted in the Link row and the link symbol will be displayed on the right side of this row. But it will not be saved...

This in my existing notes from the previous CintaNotes version. In new Notes, an entered link will be saved!

Existing links can't be changed (in old AND new notes)! When I change a existing link like "www.WebLink.com" to "http://www.WebLink.com" or any other mutation, the old link will not be changed when I press the [OK]-Button.

Sorry for my previous posting as new Topic :-( The problem occurs only in the preview version, so the separate topic can be deleted...
ale
Moderator
Posts: 202
Joined: Fri Feb 06, 2009 6:01 pm

Re: [Ann] Version 1.0 Preview

Postby ale » Thu Mar 11, 2010 9:49 am

Hello Alex, importing the old notebook went Ok,
I'm trying the new sorting feature, and a first observation might be... would it be better if after changing the sorting criteria, the focus remained to the previously focused note before the change?
Noddy330
Posts: 354
Joined: Thu Jan 22, 2009 11:05 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby Noddy330 » Thu Mar 11, 2010 3:48 pm

Alex,
It looks like .db updates are not being written away correctly.
I opened a file, changed a record, viewed another record, minimised CN – none of these updates changed the “modified date” (I used f5 to refresh)
I closed CN and the “modified date” was updated.
I expected the “modified date” to change every time I modified a record.
By “modified date” I mean the column in explorer that displays date & time
Nod
PS When I move the CN Window the "modified date" of .settings is updated ok
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby CintaNotes Developer » Thu Mar 11, 2010 5:48 pm

danei wrote:for 1), it would be nice adding such option. If this option combines with puting all notes in memory would be better, I think, since I personally don't care so much about ram usage.

Ok, tomorrow I'll release Preview 2 which will have the "Exact Search" option in the Search menu.

danei wrote:for 2), unfortunately, there're no such boundaries as space in chinese chars, and that's why search engines have quite a difficult work to recognize/split 1 chinese word from another. In fact, ancient chinese poets even use the uncertainty of boundaris between words to create artistic ambiguity...

Yes, I've done some googling and it seems people are getting real Ph.D. degrees on solving this problem :)

danei wrote:Search index for east asia chars is a big project. Maybe using exsited project as lucene(with C port lucy) will do?

I don't think I'll be able to do it right now. And this will undoubtedly push CintaNotes way beyond it's current size of under 1 MB. I could use ICU for tokenizing, this is a de-facto standard library for internationalization, but it's size kills me: it's about 20 MB of extra DLLs. This is hardly acceptable for an USB-Stick app like CN.

To make CN use more memory for caching, you can adjust the "sqlite.pragma.cache_size" parameter in the settings file. It is set to number of pages, 4096 bytes each.
Alex
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby CintaNotes Developer » Thu Mar 11, 2010 6:02 pm

Noddy330 wrote:Alex,
There’s something about installation and transition from beta that was not quite right for me.
I typically don’t read instructions, and my first install “failed” as I hadn’t spotted the dropdown on import for .dat and thus failed to find and import my data. I didn't get the automatic import.
2nd install went fine.
Maybe you could highlight the move from .dat to .db and its implications?
Now running ok - no problems
Nod

Hmm, that's strange. I couldn't reproduce that. The algorithm is actually very simple. On start, CN checks if the notebook file exists (cintanotes.settings/notebook.file, cintanotes.db by default). If so, no auto import will occur. If not, it will check if there's a notebook.dat file in the current directory. If yes, the file is imported into a newly created DB.
Alex
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: Entered Link in the preview version will not be saved!

Postby CintaNotes Developer » Thu Mar 11, 2010 6:04 pm

Urmel wrote:When I enter a link in an existing Note and press the [OK]-Button (or enter <Ctr>+<Enter>) the link is not saved.
...


Hello Urmel, thanks for reporting this! I've already found the bug and fixed it. It will be released in Preview 2 tomorrow.
Alex
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby CintaNotes Developer » Thu Mar 11, 2010 6:06 pm

ale wrote:Hello Alex, importing the old notebook went Ok,
I'm trying the new sorting feature, and a first observation might be... would it be better if after changing the sorting criteria, the focus remained to the previously focused note before the change?
Hi ale,
I tend to disagree on that. Remember the time when View/Reverse Order kept the focus? Each time I used this command, I've found myself doing "Aarrrgh" having to press Home in order to get to the top. See, the main use case here is: I want to have certain notes at the top and see them immediately. I already see the currently focused note, don't need any sorting to work with it.
I admit, there is a valid use for keeping the focus, as in: "select a note as a reference point, sort, move up or down from reference point to find needed note". But I think it's certainly not more than 50% of how the sorting is used.
Alex
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby CintaNotes Developer » Thu Mar 11, 2010 6:25 pm

Noddy330 wrote:It looks like .db updates are not being written away correctly.
I opened a file, changed a record, viewed another record, minimised CN – none of these updates changed the “modified date” (I used f5 to refresh)
I closed CN and the “modified date” was updated.
I expected the “modified date” to change every time I modified a record.
By “modified date” I mean the column in explorer that displays date & time
Nod
PS When I move the CN Window the "modified date" of .settings is updated ok
The "Modified Date" column (or else, the "Last Modified" file attribute) is unreliable in this case. It gets updated only when file is written AND CLOSED, it doesn't reflect changes to the files that are still open, and CN keeps the DB file open till you exit (unlike .settings).

You can do a quick check yourself: make some modification to the notes and terminate the cintanotes.exe process. The next time you run CN, your modifications will be there.

If you really need top-notch reliability (i.e. even in case of system crash right when you are saving your note), you might want to set the "sqlite.pragma.synchronous" settings parameter from "OFF" to "NORMAL" or even "FULL". CN will become much slower however, because after each modification CN will freeze till the information is physically on disk. Usually if you do backups there's no real need in that.
Alex
Noddy330
Posts: 354
Joined: Thu Jan 22, 2009 11:05 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby Noddy330 » Thu Mar 11, 2010 7:25 pm

CintaNotes Developer wrote:
Noddy330 wrote:It looks like .db updates are not being written away correctly.
I opened a file, changed a record, viewed another record, minimised CN – none of these updates changed the “modified date” (I used f5 to refresh)
I closed CN and the “modified date” was updated.
I expected the “modified date” to change every time I modified a record.
By “modified date” I mean the column in explorer that displays date & time
Nod
PS When I move the CN Window the "modified date" of .settings is updated ok
The "Modified Date" column (or else, the "Last Modified" file attribute) is unreliable in this case. It gets updated only when file is written AND CLOSED, it doesn't reflect changes to the files that are still open, and CN keeps the DB file open till you exit (unlike .settings).

You can do a quick check yourself: make some modification to the notes and terminate the cintanotes.exe process. The next time you run CN, your modifications will be there.

If you really need top-notch reliability (i.e. even in case of system crash right when you are saving your note), you might want to set the "sqlite.pragma.synchronous" settings parameter from "OFF" to "NORMAL" or even "FULL". CN will become much slower however, because after each modification CN will freeze till the information is physically on disk. Usually if you do backups there's no real need in that.


Hmm. I'll try a few things. Yes, the data did get saved - and I certainly didn't lose data, but pondered the implications for CN & DropBox (which I am not currently using). Nod
Noddy330
Posts: 354
Joined: Thu Jan 22, 2009 11:05 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby Noddy330 » Thu Mar 11, 2010 7:31 pm

CintaNotes Developer wrote:
Noddy330 wrote:Alex,
There’s something about installation and transition from beta that was not quite right for me.
I typically don’t read instructions, and my first install “failed” as I hadn’t spotted the dropdown on import for .dat and thus failed to find and import my data. I didn't get the automatic import.
2nd install went fine.
Maybe you could highlight the move from .dat to .db and its implications?
Now running ok - no problems
Nod

Hmm, that's strange. I couldn't reproduce that. The algorithm is actually very simple. On start, CN checks if the notebook file exists (cintanotes.settings/notebook.file, cintanotes.db by default). If so, no auto import will occur. If not, it will check if there's a notebook.dat file in the current directory. If yes, the file is imported into a newly created DB.

Ok, Lets forget it. I'm up and running. Thanks. Nod
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby CintaNotes Developer » Thu Mar 11, 2010 7:33 pm

Noddy330 wrote:Hmm. I'll try a few things. Yes, the data did get saved - and I certainly didn't lose data, but pondered the implications for CN & DropBox (which I am not currently using). Nod

There are none actually. DropBox doesn't rely on the Last Modified attribute as well (would be stupid to do so), and DB file is open by CN in non-exclusive mode so it can be overwritten by DropBox.
Alex
Noddy330
Posts: 354
Joined: Thu Jan 22, 2009 11:05 pm
Contact:

Re: [Ann] Version 1.0 Preview

Postby Noddy330 » Thu Mar 11, 2010 7:39 pm

CintaNotes Developer wrote:
Noddy330 wrote:Hmm. I'll try a few things. Yes, the data did get saved - and I certainly didn't lose data, but pondered the implications for CN & DropBox (which I am not currently using). Nod

There are none actually. DropBox doesn't rely on the Last Modified attribute as well (would be stupid to do so), and DB file is open by CN in non-exclusive mode so it can be overwritten by DropBox.

That's good, thanks. Nod
Guest

Re: [Ann] Version 1.0 Preview

Postby Guest » Thu Mar 11, 2010 11:41 pm

Cant wait to use the new version :D

But is it possible to integrate one more thing?

- option in the "View" menu to hide the menu (toggle with ALT like in Firefox or Windows Explorer)
danei
Posts: 23
Joined: Mon Feb 09, 2009 4:42 am
Contact:

Re: [Ann] Version 1.0 Preview

Postby danei » Fri Mar 12, 2010 1:15 am

CintaNotes Developer wrote:
danei wrote:for 1), it would be nice adding such option. If this option combines with puting all notes in memory would be better, I think, since I personally don't care so much about ram usage.

Ok, tomorrow I'll release Preview 2 which will have the "Exact Search" option in the Search menu.
To make CN use more memory for caching, you can adjust the "sqlite.pragma.cache_size" parameter in the settings file. It is set to number of pages, 4096 bytes each.

Thanks for the option and tip.
BTW, What will happen if every east asia char be treated as a token, regardless of space?
I mean, for example, if I search [char1][char2], CN first search index for [char1], then in the result search index for [char2] for the very combination [char1][char2].
This will not affect pure English users, and may give reasonable performance for east asia(and other) chars.
In fact, the languages inherited from latin, greek and cyrillic use space as seperator. Those east asia, india, all right-to-left languages don't use space.

Return to “CintaNotes Personal Notes Manager”