Post by Uncle Buddy on May 10, 2021 21:09:06 GMT -8
Treebard GPS and Treebard v. 0 now have new repositories at github.com.
I already had a local repo on my computer since I've had a github.com account before which I deleted when the git GUI proved to be confusing. But today, it was easy to create a remote repo on github.com and then push the current version of the local repo which already existed on my computer.
So the whole program (Treebard GPS) in its current state is now in a git repo online, as well as an empty repo for Treebard version 0. The program is not functional right now. I'm still in the middle of a huge refactoring project, or hopefully near the end of it. I will be practising with git while I finish this project up. That means I'll take GPS to the point where it displays an events table for a changeable current person. Everything on the events table will be live and functional and most of that is already roughed out in old versions which I'm still refactoring.
The events table is on the main page of the front tab of the app, which is the current person tab. The only column in the events table that has no function so far is the Sources column. It displays the number of sources linked to each event row. Clicking it will open the assertions dialog where evidence and assertion are linked together and optionally linked to the conclusions shown as events on the events table.
When all the columns are functioning I plan to move most of my efforts to Treebard Version 0. This will be written in the Julia programming language using the Dash web app framework and SQLite. Version 0 is meant to become a complete, full-featured database-entry program for family trees and other historical name/place/event tracking projects. I've switched to a web app instead of a standalone app because Julia is a relatively new language and no suitable standalone widget kit for it exists, as far as I know. Suitable for amateurs, I mean. But Dash, a framework for web apps, is a good way to go. The widgets will not look outmoded like the Tkinter widgets I've been using.
Not being specific to Windows is actually a huge benefit of using a web app instead of a standalone app. I have no plans whatsoever to get users online with accounts and passwords etc. The security is not something I want to deal with. Users will have a localhost server on their computer (this comes with Windows 10 now) and if someone wants to extend the project for online use, more power to them. The main point is that v. 0 will run in a browser, so unlike GPS, it will work equally well on Windows, Mac, and Linux without my having to do anything to make that happen.
Dash is a well-established product in Python which has more recently been made to work for Julia too. For anything not documented in the Julia version, I'll be able to use the docs for the Python version since I have experience in Python.
Julia a.k.a. julialang has solved the "two-language" problem. This is the exact problem that gave us both a Treebard GPS and a Treebard v. 0+. GPS is just a showcase for functionalities because Python runs too slow, so with a big database, it will supposedly bog down pretty bad. I already don't like the way it displays images. They look fine till you drag your app across the screen and then they smear because Python doesn't redraw fast enough. This is not a serious problem. The real problem is working so hard on something that I wouldn't recommend that people use for their daily genealogy work. But I needed the experience and I've enjoyed almost every minute of it.
The solution to the two-language problem is that Julia is as easy to use as Python but it runs many times faster than Python. The details are pretty interesting but you can research that for yourself. I'm excited about discovering Julia. It boils down to this: developers no longer have to use a slow interpreted language to create a working model, just because interpreted languages are easier to use and faster to test each modification in. Julia is a compiled language so it runs fast, but it's easy and fast in the development/testing phase too. It is the better mousetrap I've been looking for.
If you like funny stories, keep reading.
I am superstitious. I watch for omens. My son and I watch movies on Netflix several times a week. The day I discovered that Julia had solved my two-language problem, we just happened to watch a movie about a kidnapped street urchin who was imprisoned by a super-genius hacker and his emotional robotic house. The movie is about this girl's attempts to win over the robot and get free. At first I thought it was gonna be a B movie but it had Gary Oldman in it so it kinda had to be pretty good. I ended up liking it right away, especially when I found out the name of the street-smart girl, the main character.
Just guess.
I already had a local repo on my computer since I've had a github.com account before which I deleted when the git GUI proved to be confusing. But today, it was easy to create a remote repo on github.com and then push the current version of the local repo which already existed on my computer.
So the whole program (Treebard GPS) in its current state is now in a git repo online, as well as an empty repo for Treebard version 0. The program is not functional right now. I'm still in the middle of a huge refactoring project, or hopefully near the end of it. I will be practising with git while I finish this project up. That means I'll take GPS to the point where it displays an events table for a changeable current person. Everything on the events table will be live and functional and most of that is already roughed out in old versions which I'm still refactoring.
The events table is on the main page of the front tab of the app, which is the current person tab. The only column in the events table that has no function so far is the Sources column. It displays the number of sources linked to each event row. Clicking it will open the assertions dialog where evidence and assertion are linked together and optionally linked to the conclusions shown as events on the events table.
When all the columns are functioning I plan to move most of my efforts to Treebard Version 0. This will be written in the Julia programming language using the Dash web app framework and SQLite. Version 0 is meant to become a complete, full-featured database-entry program for family trees and other historical name/place/event tracking projects. I've switched to a web app instead of a standalone app because Julia is a relatively new language and no suitable standalone widget kit for it exists, as far as I know. Suitable for amateurs, I mean. But Dash, a framework for web apps, is a good way to go. The widgets will not look outmoded like the Tkinter widgets I've been using.
Not being specific to Windows is actually a huge benefit of using a web app instead of a standalone app. I have no plans whatsoever to get users online with accounts and passwords etc. The security is not something I want to deal with. Users will have a localhost server on their computer (this comes with Windows 10 now) and if someone wants to extend the project for online use, more power to them. The main point is that v. 0 will run in a browser, so unlike GPS, it will work equally well on Windows, Mac, and Linux without my having to do anything to make that happen.
Dash is a well-established product in Python which has more recently been made to work for Julia too. For anything not documented in the Julia version, I'll be able to use the docs for the Python version since I have experience in Python.
Julia a.k.a. julialang has solved the "two-language" problem. This is the exact problem that gave us both a Treebard GPS and a Treebard v. 0+. GPS is just a showcase for functionalities because Python runs too slow, so with a big database, it will supposedly bog down pretty bad. I already don't like the way it displays images. They look fine till you drag your app across the screen and then they smear because Python doesn't redraw fast enough. This is not a serious problem. The real problem is working so hard on something that I wouldn't recommend that people use for their daily genealogy work. But I needed the experience and I've enjoyed almost every minute of it.
The solution to the two-language problem is that Julia is as easy to use as Python but it runs many times faster than Python. The details are pretty interesting but you can research that for yourself. I'm excited about discovering Julia. It boils down to this: developers no longer have to use a slow interpreted language to create a working model, just because interpreted languages are easier to use and faster to test each modification in. Julia is a compiled language so it runs fast, but it's easy and fast in the development/testing phase too. It is the better mousetrap I've been looking for.
If you like funny stories, keep reading.
I am superstitious. I watch for omens. My son and I watch movies on Netflix several times a week. The day I discovered that Julia had solved my two-language problem, we just happened to watch a movie about a kidnapped street urchin who was imprisoned by a super-genius hacker and his emotional robotic house. The movie is about this girl's attempts to win over the robot and get free. At first I thought it was gonna be a B movie but it had Gary Oldman in it so it kinda had to be pretty good. I ended up liking it right away, especially when I found out the name of the street-smart girl, the main character.
Just guess.