I found it while searching for ways to make Keynote work on multiple platforms. I have no knowledge of Delphi/Pascal, but if its possible to get the current Delphi code to compile with Free Pascal, I'd be willing to break out some textbooks and learn the language. It's open source, compiles for any OS you can think of, and is actively maintained. Could this be what we need to revive the Keynote community?
I've been playing around with it and so far looks promising. Most of the Keynote 1.6.5 code compiles. The biggest setback is the UI will need to be converted to GTK or QT. It may compile with native Windows widgets, but that would defeat the whole purpose of using Free Pascal (which is to port it to multiple platforms).
I honestly have no idea what the best course of action is for the UI. I'm new to this stuff and am learning as I play with it. I'm an embedded systems programmer, I've never done much PC application stuff. Help would be appreciated :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I planned to port the source code of keynote on FPC a few weeks ago, but I have no time for the moment because I am not a professionnal programmer and I am involved in another project. I just made a couple of test with some units not as far as you did. But if a professionnal programmer is interested in this project I can bring some help. Unfortunately, I don't know if I will be able to achieve this goal alone, because I know pretty well Python and a little Pascal.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Unfortunately I had to temporarilly abandon my work on the "Keynote the next" proposal due to lack of time. I'm hoping to get back to this again within the next couple of weeks.
Anyway, I think it may be a good thing that you know Python as my research boiled the "Keynote 2" approach to one of two routes. I try to be neutral in this listing, but I can honestly say I see much more good in #2 then I do in #1. I'm open to debate with everyone, hopefully we can come to a decision eventually.
1. Port the old code to FPC.
Pros:
Since it's basically the same language, we have most of the work done.
We'll get our multiplatform support (but we'll have to code a different UI toolkit)
Cons:
We're stuck with the old code. It's showing age and has been bandaged a lot.
Pascal isn't a common language these days. It will be hard to get programming support.
2. Make a new program, in a modern language (Python).
Pros:
Starting from scratch = cleaner code, which will likely be easier to maintain later.
Python has a huge user base, easier to get help, plus used by other outliners (Treeline, pdesk, Gimini, ...)
Cons:
Initially will take longer, as we are starting from scratch (although we can borrow code bits from other apps)
Um... it will probably be a different animal then "old" Keynote, but that may be a good thing.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2007-07-12
Ken, all,
I looked into porting Keynote to Linux a bit over a year ago. I was discouraged by the Delphi/Pascal language thing. I also had some concern that some of the third party components weren't completely free. See the directory: modified_3rdparty_units. So, I let it go. There may be no encumberances at all with these components, but there is no indication in the headers that they are unencumbered. Having been responsible for getting concurrance from about a hundred contributors to a big open source project to change the license, I know it can be a daunting task. ... the good news is that for Keynote the number of third party components is small.
There's a lot of Pascal programmers who might be interested in persuing it. There's probably a lot more C/C++ programmers. I briefly gave thought to reimplementing Keynote by deriving a spec from the extant version, then designing and reimplementing it as a platform neutral package. ... I sat down and waited for the thought to perish. I just don't have the time to do a project of this size given everything else I'm messing with.
I looked, briefly, at wxWidgets as a platform independent GUI framework. It has a lot going for it. Is it the right tool? Dunno. I have experience with Mozilla's NSPR component as a non-GUI platform abstraction; that might work for the non-GUI interfaces. Apache's Portable Runtime (APR) component may do as well, or better, than NSPR. There is the Nettle encryption library; it may be suitable for the AES piece.
What I would tell you is that if you were to start/lead a project to reimplement in C++, with goals of platform independence. I'd participate.
Regards,
Rex "yes, it's a pseudonym" Karz
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What about using the program "Turbo Delphi Explorer" from Borland? You can get this program free at http://www.codegear.com/downloads/free/turbo
(but today i have diffculties to download the program and a key for the program)
You have to go Keys only and then Turbo Delphi Explorer. There you can get a key (if it would work) and you can download the program.
You can only install one turbo version on a computer not two different versions.
I think it is much easier to adapt the program to Turbo Delphi then to Free Pascal, because Keynote was written in Pascal-Delphi.
Greetings, Maria!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It is based on freepascal and it works on many plattform (Windows, Linux, MacOS). Also the library vcl is include (I think this is necessary to compile keynote).
Greetings, Maria!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There is an outliner enterely written in Python so you can take a look on the source code (because it is open source and Python is a script language). It's called "LEO", the URL is :
Maybe it would be possible to use some portions of the code (with the author's permission of course) to build a "keynote clone". I think Python might be a good choice because it is multiplatform, very clean, and there are a lot of - a incredible bunch rather - modules, scripts, softwares etc. freely available. I can help on Python if you are the "arhitect-designer" of the project.
Regards.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the link, that one is already on my list (but you corrected my bookmark which seems to be old http://personalpages.tds.net/~edream/front.html\). Personally, what I'd like to see is Keynote running on all the platforms I use, which are Linux, Windows, and Palm OS. I've started experimenting with ideas, and hope to post my thoughts at some point so we can start debating (I encourage others to do the same). Here's my list of projects I've been looking at to get coding ideas.
Hi Ken. You may wish to add WikidPad to your list. http://www.jhorman.org/wikidPad/ It is open source, written in python, and already has versions for Windows, Linux, Mac OS X. Although it uses a wiki metaphor for the content of the nodes, It does support a tree structure that us KeyNote users are comfortable with and love.
I've been playing around with it a for a few hours and what immediately stands out as a big plus is that by its wiki nature, all references to a keyword/node point to the same physical node. It sounds like it is similar to KeyNotes "virtual node" feature. (I've never used virtual nodes)
WikidPad allows for traditional tree/hierarchical access to information, but it also provides "logical" access (by way of WikiWord links)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I probably missed this one because it got lost in all the other "wiki" projects that have popped up recently. Will take a better look when I have the chance.
- Ken
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I see you took a look to every interesting software. I think Leo is impressive but too much coding oriented. I used it a couple of time and it didn't fit me because it is not a "general purpose outliner".
However, maybe it is a good beginning.
Regards
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Another alternative programming language is to use Tcl/Tk. There are some cross-plattform information manager for windows, macos and linux written in Tcl/Tk like
I have been playing with TKOutline and the fork of the code, STKOutline. Actually it isn't a bad little app. I think I will use it for editing single outlines WITHIN KeyNote. There are some uses where a single pane outliner is preferable.
As for using TCL/TK for a rewrite... TCL/TK is a language that is often overlooked. It doesn't have the cachet that Python has, but it is equally if not a MORE capable and rich language. TCL/TK is available on numerous platforms and there are plenty of free tools, add-ons, etc for it. There are even a few free VisualTcl IDEs for creating graphical programs.
I plan on taking a look at the internals of TKOutline to see how easy it will be to expand (or what if anything can be used in a possible KeyNote rewrite)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Tcl/Tk is nice and has its uses, but for a program like Keynote, I'd use Python instead. The number one reason is the wealth of Python code we could borrow from other people. I also believe Python is better suited to applications of this level, especially when you consider scripting and plugin features. That's just my opinion :/
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Does anyone here have experience with Free Pascal?
http://www.freepascal.org/
I found it while searching for ways to make Keynote work on multiple platforms. I have no knowledge of Delphi/Pascal, but if its possible to get the current Delphi code to compile with Free Pascal, I'd be willing to break out some textbooks and learn the language. It's open source, compiles for any OS you can think of, and is actively maintained. Could this be what we need to revive the Keynote community?
Here are links with Delphi compatability information:
Lazarus for Delphi Users: http://wiki.freepascal.org/Lazarus_For_Delphi_Users
Code Conversion Guide: http://wiki.freepascal.org/Code_Conversion_Guide
Known Problems: http://www.freepascal.org/probs.var
Thoughts?
- Ken
I've been playing around with it and so far looks promising. Most of the Keynote 1.6.5 code compiles. The biggest setback is the UI will need to be converted to GTK or QT. It may compile with native Windows widgets, but that would defeat the whole purpose of using Free Pascal (which is to port it to multiple platforms).
I honestly have no idea what the best course of action is for the UI. I'm new to this stuff and am learning as I play with it. I'm an embedded systems programmer, I've never done much PC application stuff. Help would be appreciated :)
Hello,
I planned to port the source code of keynote on FPC a few weeks ago, but I have no time for the moment because I am not a professionnal programmer and I am involved in another project. I just made a couple of test with some units not as far as you did. But if a professionnal programmer is interested in this project I can bring some help. Unfortunately, I don't know if I will be able to achieve this goal alone, because I know pretty well Python and a little Pascal.
Unfortunately I had to temporarilly abandon my work on the "Keynote the next" proposal due to lack of time. I'm hoping to get back to this again within the next couple of weeks.
Anyway, I think it may be a good thing that you know Python as my research boiled the "Keynote 2" approach to one of two routes. I try to be neutral in this listing, but I can honestly say I see much more good in #2 then I do in #1. I'm open to debate with everyone, hopefully we can come to a decision eventually.
1. Port the old code to FPC.
Pros:
Since it's basically the same language, we have most of the work done.
We'll get our multiplatform support (but we'll have to code a different UI toolkit)
Cons:
We're stuck with the old code. It's showing age and has been bandaged a lot.
Pascal isn't a common language these days. It will be hard to get programming support.
2. Make a new program, in a modern language (Python).
Pros:
Starting from scratch = cleaner code, which will likely be easier to maintain later.
Python has a huge user base, easier to get help, plus used by other outliners (Treeline, pdesk, Gimini, ...)
Cons:
Initially will take longer, as we are starting from scratch (although we can borrow code bits from other apps)
Um... it will probably be a different animal then "old" Keynote, but that may be a good thing.
Ken, all,
I looked into porting Keynote to Linux a bit over a year ago. I was discouraged by the Delphi/Pascal language thing. I also had some concern that some of the third party components weren't completely free. See the directory: modified_3rdparty_units. So, I let it go. There may be no encumberances at all with these components, but there is no indication in the headers that they are unencumbered. Having been responsible for getting concurrance from about a hundred contributors to a big open source project to change the license, I know it can be a daunting task. ... the good news is that for Keynote the number of third party components is small.
There's a lot of Pascal programmers who might be interested in persuing it. There's probably a lot more C/C++ programmers. I briefly gave thought to reimplementing Keynote by deriving a spec from the extant version, then designing and reimplementing it as a platform neutral package. ... I sat down and waited for the thought to perish. I just don't have the time to do a project of this size given everything else I'm messing with.
I looked, briefly, at wxWidgets as a platform independent GUI framework. It has a lot going for it. Is it the right tool? Dunno. I have experience with Mozilla's NSPR component as a non-GUI platform abstraction; that might work for the non-GUI interfaces. Apache's Portable Runtime (APR) component may do as well, or better, than NSPR. There is the Nettle encryption library; it may be suitable for the AES piece.
What I would tell you is that if you were to start/lead a project to reimplement in C++, with goals of platform independence. I'd participate.
Regards,
Rex "yes, it's a pseudonym" Karz
Why not reimplement in java?, I would help...
What about using the program "Turbo Delphi Explorer" from Borland? You can get this program free at
http://www.codegear.com/downloads/free/turbo
(but today i have diffculties to download the program and a key for the program)
You have to go Keys only and then Turbo Delphi Explorer. There you can get a key (if it would work) and you can download the program.
You can only install one turbo version on a computer not two different versions.
I think it is much easier to adapt the program to Turbo Delphi then to Free Pascal, because Keynote was written in Pascal-Delphi.
Greetings, Maria!
Part of our reason for suggesting Free Pascal was because of the multiplatform support. Delphi is Windows only.
In this case it might be helpful to use the open source environment lazarus:
http://wiki.lazarus.freepascal.org/Overview_of_Free_Pascal_and_Lazarus/de
It is based on freepascal and it works on many plattform (Windows, Linux, MacOS). Also the library vcl is include (I think this is necessary to compile keynote).
Greetings, Maria!
Hello krushia,
There is an outliner enterely written in Python so you can take a look on the source code (because it is open source and Python is a script language). It's called "LEO", the URL is :
http://webpages.charter.net/edreamleo/front.html
Maybe it would be possible to use some portions of the code (with the author's permission of course) to build a "keynote clone". I think Python might be a good choice because it is multiplatform, very clean, and there are a lot of - a incredible bunch rather - modules, scripts, softwares etc. freely available. I can help on Python if you are the "arhitect-designer" of the project.
Regards.
Thanks for the link, that one is already on my list (but you corrected my bookmark which seems to be old http://personalpages.tds.net/~edream/front.html\). Personally, what I'd like to see is Keynote running on all the platforms I use, which are Linux, Windows, and Palm OS. I've started experimenting with ideas, and hope to post my thoughts at some point so we can start debating (I encourage others to do the same). Here's my list of projects I've been looking at to get coding ideas.
These are all programmed in Python:
TreeLine
http://www.bellz.org/treeline/
PDesk
http://pdesk.sourceforge.net/drupal/
Leo
http://webpages.charter.net/edreamleo/front.html
Gimini
http://gimini.sourceforge.net/
These run on Palm OS:
Progect
http://pdesk.sourceforge.net/drupal/
These run on PocketPC:
Tombo
http://tombo.sourceforge.jp/En/index.html
Pocket Freemind
http://sourceforge.net/projects/pocketfreemind
Noteriffic
http://www.rudism.com/pocketpc.shtml
Hi Ken. You may wish to add WikidPad to your list. http://www.jhorman.org/wikidPad/ It is open source, written in python, and already has versions for Windows, Linux, Mac OS X. Although it uses a wiki metaphor for the content of the nodes, It does support a tree structure that us KeyNote users are comfortable with and love.
I've been playing around with it a for a few hours and what immediately stands out as a big plus is that by its wiki nature, all references to a keyword/node point to the same physical node. It sounds like it is similar to KeyNotes "virtual node" feature. (I've never used virtual nodes)
WikidPad allows for traditional tree/hierarchical access to information, but it also provides "logical" access (by way of WikiWord links)
Good find :)
I probably missed this one because it got lost in all the other "wiki" projects that have popped up recently. Will take a better look when I have the chance.
- Ken
OK,
I see you took a look to every interesting software. I think Leo is impressive but too much coding oriented. I used it a couple of time and it didn't fit me because it is not a "general purpose outliner".
However, maybe it is a good beginning.
Regards
Another alternative programming language is to use Tcl/Tk. There are some cross-plattform information manager for windows, macos and linux written in Tcl/Tk like
Notebook Wiki
http://notebook.wjduquette.com/index.php?title=Main_Page
TKOutline
http://tkoutline.sourceforge.net/wiki/
Greetings, Maria!
I have been playing with TKOutline and the fork of the code, STKOutline. Actually it isn't a bad little app. I think I will use it for editing single outlines WITHIN KeyNote. There are some uses where a single pane outliner is preferable.
As for using TCL/TK for a rewrite... TCL/TK is a language that is often overlooked. It doesn't have the cachet that Python has, but it is equally if not a MORE capable and rich language. TCL/TK is available on numerous platforms and there are plenty of free tools, add-ons, etc for it. There are even a few free VisualTcl IDEs for creating graphical programs.
I plan on taking a look at the internals of TKOutline to see how easy it will be to expand (or what if anything can be used in a possible KeyNote rewrite)
Tcl/Tk is nice and has its uses, but for a program like Keynote, I'd use Python instead. The number one reason is the wealth of Python code we could borrow from other people. I also believe Python is better suited to applications of this level, especially when you consider scripting and plugin features. That's just my opinion :/
Hello,
After a quick research I think tcl/tk is not quite useful for this kind of project. I definively prefer Python (or at least freePascal).
I don't know if Ken is still involved in the project, I hope yes.
Regards.
Python or FreePascal?
Does anyone knows the difference in usability, speed, memory usage etc?