By Quayle - Saturday, June 26, 2010
|
I'd like to announce my project of new skin for report generator. It is based on current one, but has lot of modifications and changes.
Primary goals: -Remove all frames -Make it more css dependent, so it will be more customizable for any user -Speed up opening pages, by loading content on left sidebar by using AJAX
You can check now, how it looks on http://familytrees.genopro.com/Quayle/dev Config.xml is slightly modified, but not Dictionary.xml, so all the translations will be valid for it.
Any comments are welcome. 
Edit: Changed dev-site address.
|
By genome - Monday, June 28, 2010
|
Great news, nice to have another developer aboard and some fresh ideas.
The Narrative Report was my first real scripting project after abandoning programming many, many moons ago, and was based on the original code from GenoPro. I made many mistakes (e.g. using VBScript and not javascript) but learned a great deal. I have been considering rewriting it for some time in javascript utilising jQuery, Ajax and more CSS, but never found the time!
Happy to be of any assistance I can. But be warned, it can become addictive and take up most if not all of your spare time 
|
By Quayle - Thursday, July 1, 2010
|
Thank you, nice to hear that I have support from older developer. I think, I would use some offered assistance. May we join forces? 
Don't be scared of colours on site. They could be easy changed.  If everything goes my way and if you want to test it, in the next week or two, first (very basic) skin-pack will be ready.
|
By genome - Sunday, September 5, 2010
|
Quayle (7/1/2010) in the next week or two, first (very basic) skin-pack will be ready. |
By Quayle - Saturday, September 11, 2010
|
I've changed my mind with some things and current state for release is: "when it's done". Sorry...
But project is still alive, don't worry about that.
|
By edanite - Tuesday, September 14, 2010
|
I have been thinking for some time that I would create a new skin as an independent, open-source project. If I have time, I am willing to help with development.
I have a few questions/comments.
- Source Code Management is a great thing. Use it.
Personally, I use Git but have heard that Mercurial has better Windows support. I have used GitHub for project hosting, but that obviously doesn't work if Mercurial becomes the SCM of choice.
Ron: Do you use a SCM? If so, would you be willing to make the ENR SCM public?
- Make sure you know the provenance of your source.
If we're going to borrow anything from the English Narrative Report, we probably need permission from Ron and/or GenoPro, Inc., depending on its copyright status. Preferably, this permission would be given by licensing the relevant code under whatever license we choose to use for the new skin. My original plan was to create the new report completely from scratch, but Ron has put many hours into ENR, and there is some useful code there (SVG generation comes to mind).
Ron: What is the copyright status of ENR?
- I didn't want my project to be obsolete by the time I finished it, so I was planning to use some bleeding-edge technologies like HTML 5 (see WHATWG).
- On the other hand, one of the things that I don't like about ENR is that the SVG view only works in IE and Firefox. I wanted my project to be as cross-browser-compatible as possible with the understanding that my audience, which is mostly non-tech people, primarily uses IE6, and I have to support it. This limits the features of HTML 5 that can be used.
This may indicate the use of JavaScript libraries like jQuery or html5shiv [sic].
This may contraindicate the use of existing SVG code.
|
By jcmorin - Tuesday, September 14, 2010
|
I think SVG is still the way to go, by the time you complete a nice report, most user will be upgrading their browser to the latest version and IE9 do support SVG!
http://blogs.msdn.com/b/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx
The main technologies to call out here broadly are HTML5, CSS3, DOM, and SVG. The IE9 test drive site has more specifics and samples. At this time, we’re looking for developer feedback on our implementation of HTML5’s parsing rules, Selection APIs, XHTML support, and inline SVG.
|
By edanite - Tuesday, September 14, 2010
|
I also hope that IE6 will be dead and gone by the time we finish, but I won't believe that it's gone until the statistics from my website say so. If you're curious, here are my statistics from August 2010:
Browsers with more than 5% usage by major version:
IE6: 42% IE8: 13% IE5: 7% IE7: 5% Firefox 3.6: 5%
Note that IE5 makes this list. Browsers are immortal.
Operating Systems with more than 5% usage by major version:
Windows XP: 50% Windows Vista: 11% Windows 2000: 11%
|
By jcmorin - Wednesday, September 15, 2010
|
Some browser stay there for a while because most people don't see any reason to upgrade.
In your stats above there is still a missing 28% (Google Chrome, Opera, Safari?) IE 9 will be interesting as they were working on what's really matter. Speed, Compatibility and Html5 features. Making a skin that doesn't work at all with IE6 is surely not a viable option, but if everything works except the SVG I guess it's fine. Also note that SVG can works on IE6 but required an obsolete plugin. Ajax and basic CSS do works in IE6.
|
By genome - Wednesday, September 15, 2010
|
edanite (9/14/2010)I have a few questions/comments. - Ron: Do you use a SCM? If so, would you be willing to make the ENR SCM public?
Originally as a novice lone developer I struggled with TortoiseCVS using a local repository but eventually abandoned it. I note that there are Tortoise ports for both Mecurial & Git and I have no preference. I agree for multi-developer environment SCM is essential
2. Ron: What is the copyright status of ENR?
Some of the original templates where written by GenoPro (Dan) but anything I wrote I am happy to be in the 'public domain' . Perhaps a GNU GPL would be best for future work?
one of the things that I don't like about ENR is that the SVG view only works in IE and Firefox.
I am currently working on a revision of the SVG controls with the objective of getting it working with Google Chrome and working better with Firefox. I am hoping to mimic the Google Maps controls to provide consistency and familiarity.
This may indicate the use of JavaScript libraries like jQuery or html5shiv [sic]. This may contraindicate the use of existing SVG code.
I support the use of jQuery having used it successfully a few times. What would be good would be for someone to write SVG plugins for jQuery!
I would also be happy to participate in any open source project, time permitting and depending on objectives and design criteria.
|
By edanite - Wednesday, September 15, 2010
|
Ron, can you separate the bits of code you wrote from the bits of code Dan wrote? If that's not possible, Dan, would you be willing to license your portions of the templates to us?
In re. choice of license: My first thought when "planning" my project was to use the FreeBSD (aka 2-clause BSD) license or the 3-clause BSD license. I have no particular objection to using GNU GPL so long as we make it absolutely clear that the output from the Report Generator is not considered a Derivative Work of the skin even though it may contain code from the skin. (I didn't want people to be required to post the source code for the skin along with their reports; I thought that would be a little hokey. "This report was generated using a modified version of Narrative Report Redux. Download the source for Narrative Report Redux: nrr-1.0-edanite-12.zip. This report is covered by the GNU General Public License, see COPYING for details.")
In re. SVG: I think there are SVG libraries for jQuery, but I have never used them. I believe that the SVG DOM object has pan and zoom parameters that could be used.
|
By jcmorin - Thursday, September 16, 2010
|
Ron, can you separate the bits of code you wrote from the bits of code Dan wrote? If that's not possible, Dan, would you be willing to license your portions of the templates to us? Ron wrote the entire report, if some modules have been provided by other people they have been given freely. While Ron is the author we have an arrangement with him that GenoPro may distribute the skins without ANY RESTRICTION, anyone is welcome to copy, modify, share and publish the skin with the modifications they want. We are not in the business of licensing stuff, we are for openness and creativity. You will never have any issue with the report skins if you start an Open Source project no matter the license type you choose. FreeBSD and GNU GPL are just fine with us. I would recommend having open projects and not "block" others whishing to use similar ideas.
|
By edanite - Thursday, September 16, 2010
|
I wasn't anticipating any licensing problems, but it's nice to be sure. Thanks.
|
By edanite - Friday, September 17, 2010
|
Here's a mockup I did a few months back with my vision; it's based on the prose generated by ENR. The idea was to have the style in a separate file so someone who wanted to do visual design need edit only the style.css file. At the moment, the segregation is not perfect; there's some style associated with collapsing notes and indices in that file too.
|
By Quayle - Saturday, September 18, 2010
|
Wow! Lot of writing was here lately, so I think I should add some news about my work, too. 
I introduced additional abstract layer for skins. It will let everyone to use the same skin on different report generators. It is true that currently there is only one (WRG), but this solution will also serve for Linux users when another will be ready.
Something more:
General look on skin: -scripts ---win <- Here are scripts to use by Windows Report Generator (WRG) ---linux <- Here will be scripts to use Linux Report Generator (LRG) -styles -templates
Reading/Parsing order used for now (can be changed in config.xml): 1)styles/style.css 2)scripts/jquery.js 3)(additional scripts for skin)
4)scripts/win/generate.html or scripts/linux/generate.html It is used to create lib.js = the abstract layer, about which I told you above. 5)generate.html (in main directory) It is used to link lib.js with templates. (JS doesn't have any "include" statement, so that's why I do this, this way.) After that: linked templates are in the main directory. 6)All files generated in 5) and listed in config.xml They are in normal use of Report Generator.
Live example is in attachment. No real html page is generated (except empty index.html).
I hope it's understandable, what I wrote here... :/ Sorry for any problems with reading it...
"If I have time, I am willing to help with development." @Edanite Any help is welcome.
|
By edanite - Saturday, September 18, 2010
|
Quayle (9/18/2010)
Wow! Lot of writing was here lately, so I think I should add some news about my work, too.  I introduced additional abstract layer for skins. It will let everyone to use the same skin on different report generators. It is true that currently there is only one (WRG), but this solution will also serve for Linux users when another will be ready.
JavaScript is fairly cross platform. What exactly are you expecting to be different between Windows and Linux?
Something more:
General look on skin: -scripts ---win <- Here are scripts to use by Windows Report Generator (WRG) ---linux <- Here will be scripts to use Linux Report Generator (LRG) -styles -templates
Reading/Parsing order used for now (can be changed in config.xml): 1)styles/style.css 2)scripts/jquery.js I don't think jQuery is really necessary for the report generation phase since its forte is manipulating the DOM. The reports are not generated by DOM serialization (although we could theoretically do that), so I don't think we need it.
3)(additional scripts for skin)
4)scripts/win/generate.html or scripts/linux/generate.html It is used to create lib.js = the abstract layer, about which I told you above. 5)generate.html (in main directory) It is used to link lib.js with templates. (JS doesn't have any "include" statement, so that's why I do this, this way.) After that: linked templates are in the main directory.
JavaScript may not have an include statement, but the GenoPro report generator does. <%[@ IncludeFile "path/to/file.js" ]%> I can't find that this is documented anywhere, but it works.
Also, you've used new ActiveXObject in generate.htm, that almost certainly won't work outside of JScript (Microsoft's JS engine).6)All files generated in 5) and listed in config.xml They are in normal use of Report Generator. Live example is in attachment. No real html page is generated (except empty index.html). I hope it's understandable, what I wrote here... :/ Sorry for any problems with reading it... " If I have time, I am willing to help with development."@Edanite Any help is welcome.  Are you going to create the repo, or shall I?
Did you get a chance to take a look at my mockup? Do you have any comments on it?
|
By genome - Saturday, September 18, 2010
|
I see a potential use of an abstraction layer, not in platform variations, e.g. Windows vs. Linux, but in genealogy database variations. This approach could potentially permit 'hijacking' the GenoPro Report Generator to generate similar reports from databases other than GenoPro. The problem will be in defining the abstraction layer data model and interfaces. As Gedcom is the lowest common denominator it would be a good starting point, with perhaps 'extensions' for the various differences between packages, e.g. genograms and relationships, social entities in GenoPro.
A few comments on how GenoPro Report Generator works: Files in the skin folder that are not under the Code folder or referenced in a Template in Config.xml or as an INCLUDEFILE are copied to the output folder. So for jquery, css etc just place in an appropriate folder in the skin. I have taken Quayle's skin and tweaked it a bit with these points in mind and using INCLUDEFILE (see attachment), although I think a better approach maybe to provide the abstraction library (lib.js) as a separate 'plugin' to the report rather than trying to generate it inline. I have added a few lines to index.html to produce some output, a page with a simple sorted list of names. edanite Also, you've used new ActiveXObject in generate.htm, that almost certainly won't work outside of JScript (Microsoft's JS engine).
It is being used in the Windows abstraction
|
By fbukolyi - Sunday, September 19, 2010
|
Ron (9/18/2010) I see a potential use of an abstraction layer, not in platform variations, e.g. Windows vs. Linux, but in genealogy database variations. This approach could potentially permit 'hijacking' the GenoPro Report Generator to generate similar reports from databases other than GenoPro. The problem will be in defining the abstraction layer data model and interfaces. As Gedcom is the lowest common denominator it would be a good starting point, with perhaps 'extensions' for the various differences between packages, e.g. genograms and relationships, social entities in GenoPro.
Well, my opinion is, that this data model layer should be maintained by the GEDCOM standard committee - define the core dataset and add the other genogram package related extensions by collaborating with the developers of the other packages  . Later some 3rd party datasets can be incorporated into teh next core standard dataset. However, currently I do not see, whether the GEDCOM team is going into this direction...
|
By Quayle - Sunday, September 19, 2010
|
edanite (9/18/2010)
JavaScript is fairly cross platform. What exactly are you expecting to be different between Windows and Linux?
Things like IncludeFile, but if you say:
edanite (9/18/2010)
JavaScript may not have an include statement, but the GenoPro report generator does. <%[@ IncludeFile "path/to/file.js" ]%> I can't find that this is documented anywhere, but it works.
....I didn't know, that it's a GenoPro statement. Are you sure it it will work on Linux on Wine?
edanite (9/18/2010)
Also, you've used new ActiveXObject in generate.htm, that almost certainly won't work outside of JScript (Microsoft's JS engine).
And that's the one of things which could be different on different OS'es. 
edanite (9/18/2010)
Are you going to create the repo, or shall I? Did you get a chance to take a look at my mockup? Do you have any comments on it?
Please, create the repository. 
Yeah, I looked on, but completely forgot about commenting it. Sorry...  I think gender images and similar, things should be set in css too. E.g. In my report I've made them as a background image and set for them padding. Rest needs no commentary. Is good. 
Ron (9/18/2010) I see a potential use of an abstraction layer, not in platform variations, e.g. Windows vs. Linux, but in genealogy database variations. This approach could potentially permit 'hijacking' the GenoPro Report Generator to generate similar reports from databases other than GenoPro. The problem will be in defining the abstraction layer data model and interfaces. As Gedcom is the lowest common denominator it would be a good starting point, with perhaps 'extensions' for the various differences between packages, e.g. genograms and relationships, social entities in GenoPro. Oooo... Same look, no matter what program was used before? It would be awesome! 
Thanks for explaining it, Ron.
|
By edanite - Sunday, September 19, 2010
|
Repo created.
http://github.com/gmacon/narrativereduxIf you create an account at GitHub, you can fork the repo and push your changes to your fork, and all I have to do is pull your changes to merge them with the master repo. |
By edanite - Wednesday, September 22, 2010
|
The current abstraction layer just copies GenoPro's structure. Would it be unreasonable to just say "Use GenoPro as the abstraction layer"? We can obviously create a report on anything GenoPro can import, including GEDCOM, so why write new code to provide this translation? I still don't see the value of having this abstraction layer in the Skin.
|
By Quayle - Saturday, September 25, 2010
|
Hurray! Finally, I managed to upload files on git. 
edanite (9/22/2010) The current abstraction layer just copies GenoPro's structure. Would it be unreasonable to just say "Use GenoPro as the abstraction layer"? We can obviously create a report on anything GenoPro can import, including GEDCOM, so why write new code to provide this translation? I still don't see the value of having this abstraction layer in the Skin.
Ok. I agree: "Person" doesn't do anything new for now. But if you want it to do something new in it... You can. And that's the point. Of course it's possible to write function which gets as an argument "Individual" object, and do the same thing, as the method inside class. But for me, code is more readable when I write: person.do_something(), than: do_something(person). Additionally you can change default appearence of methods like: e.g.: name_nick(), to do additional grammar, or other things which couldn't be achieved in Dictionary, NameDictionary etc... Whatever you can imagine. My native language has so much grammar rules exceptions... No matter how I try, my report when reading looks poor. I want to make something that let me achieve grammar more... Customizable? 
If I'll have any other ideas with using it I'll tell you. But if you still do not like my solution, why don't you start your own project to let your own idea grow? More us, more skins, more everything, the better. (I don't now if it's a correct sentence, but I hope it's understandable.. :/ ) It's always healthy if there are more options/alternatives. Isn't it?
|
By Quayle - Saturday, October 9, 2010
|
If anybody wants to check any progress, here is a new skin pack. Dictionary.xml is not included so you have to copy your own.
Repository where my code is available: http://github.com/quayle/narrativeredux
Working example at: http://familytrees.genopro.com/Quayle/dev/index.html
Edit: Uploaded newer version.
|
By edanite - Saturday, October 9, 2010
|
I've discovered two Caveats regarding the new report.
1) creating Code/abstraction/lib.js doesn't take effect until the next time the report generator is run. i.e. if you delete Code/abstraction/lib.js and then run the report generator it will fail complaining that it can't find Code/abstraction/lib.js. If you run it again, it works fine. 2) Due to origin restrictions regarding file: URLs, the dynamic menu may not work properly if the report is local. (Tried in Chrome on Windows)
|
By Quayle - Sunday, October 10, 2010
|
2) According to: http://forum.jquery.com/topic/load-and-ajax-not-working-on-google-chrome
|
By edanite - Sunday, October 10, 2010
|
The way I read the docs indicate that <thing>.load() is implemented in terms of $.ajax(), so changing from .load() to $.ajax() won't fix the problem. I personally consider Chrome's behavior to be a feature, not a bug. It's therefore a "caveat": something of which you should be aware.
|
By powery - Tuesday, November 8, 2011
|
Is this project active?
|
By edanite - Tuesday, November 8, 2011
|
I'm afraid I haven't done any "real work" on it recently. I have done some thinking, though. With the context that my web host uses a FreeBSD-Apache-PHP stack, here are my new thoughts:- We have the report generator generate fragments for each object. There's a server-side script that builds complete pages from the fragments, but we also fetch the fragments with AJAX calls and the HTML5 History API once we have the page in the browser.
- We should use "clean" URLs (like /individual/Potter-Harry) whenever possible. Preferably, these should be "smart" to some extent with one canonical form and several alternate forms, though this would seem to require a database of some sort to handle the lookups in a scalable manner.
- The URL canonical form should be human readable, though it may be difficult to guarantee uniqueness of URLs in a single pass. During development, we can use something like /individual/ind00001 as the canonical form because it's guaranteed unique, but this isn't friendly.
- I realized that the current SVG code is written in VBScript, but our new report will be written in JScript. This leads to a question: is it possible to have a mixture of scripting languages in the same report?
|
By powery - Monday, November 14, 2011
|
I realized that the current SVG code is written in VBScript, but our new report will be written in JScript. This leads to a question: is it possible to have a mixture of scripting languages in the same report?
I think, it is no problem generaly http://msdn.microsoft.com/en-us/library/aa260861(v=vs.60).aspx
|
|