Links: Saxon-CE and XSLT 2.0 demo - Knight's Tour |
Friday, July 1st, 2016 07:29:24 GMT |
Lately, I returned yet again to reading about XML (Extensible Markup Language) and XSLT (Extensible Stylesheet Language Transformations).
Mostly because I'm interested in seeing if I can convert info stored in VUE: Visual Understanding Environment concept map files (which are XML files) into radically different formats using XSLT, which is reputed to be good at drastic transformations of XML data.
I only just started looking at Saxon-CE, so, I haven't yet done anything clever with Saxon-CE myself.
But, I was quite impressed by this demo I found via the Saxon-CE manual:
That makes me even more eager than I already was to learn more about XSLT. :-)
Yesterday, I stumbled across Saxon-CE (Client Edition), which is "Saxonica's implementation of XSLT 2.0 for use on web browsers."
I had no idea XSLT could be used for anything like that. :-D
Maybe my daydream from last January (and long before that), of being able to edit actual source code with VUE, really could come true. :-)
▲ Top ▼ Bottom △ TOC ↓ Down Up ↑
Wishing I had a non-Java version of VUE |
Friday, July 1st, 2016 18:33:28 GMT |
Probably my least favorite thing about the wonderful concept mapping software VUE: Visual Understanding Environment is the fact that it's Java software.
Because of Java's reputation for security problems, I don't even like to install Java on my computers outside of a VirtualBox. And even without using VirtualBox, Java uses up a big chunk of memory, which I always like to conserve, even though now I have a laptop with 8 GB of RAM.
So, I've been daydreaming about somehow porting VUE away from Java and into something else. Into what, exactly? Anything I like more than Java!
I think it would be great to be able to run VUE in most any web browser on any platform, without having to use the Java applet version of VUE.
And perhaps existing VUE concept map files - which are in XML format - could be read using the JavaScript software Saxon-CE, which makes it possible for web browsers to use XSLT 2.0, a language which is useful for processing and drastically transforming XML data.
I'm guessing Saxon-CE might also help make it possible to output concept map files which would be perfectly compatible with the Java version of VUE.
And perhaps saving that concept map data would be (or could be made) as simple as using TiddlyWiki's save feature.
And maybe it could also be somehow made into a viewer and editor for OrientDB and Neo4j graph databases.
So, just thought I'd share the ideas.
But in particular, I was thinking JavaScript might be especially nice. :-) (Yes, I am aware that Java and JavaScript aren't related, despite the similar names. :-) )
A few years ago, I was able to use the JavaScript library Raphaël to randomly generate very VUE-like graphics for my rather cumbersomely-named Astroblahhh.Com Simple Generator of Many VUE Nodes with Random Colors and Fonts v1.0. :-)
Having a JavaScript version of VUE would also make it tremendously easier to somehow build a VUE concept-map-style viewer or editor for Astroblahhh Desktop data, or for other web apps, like maybe the not-yet-existing CMS - content management system, for lack of a better term - of my dreams. :-)
I don't know if I'll ever really go to the trouble to try to build a JavaScript port of VUE, or any other port of VUE. But, even if I don't ever get around to it, I think it might be quite worthwhile and useful for someone(s) to do.
▲ Top ▼ Bottom △ TOC ↓ Down Up ↑
Perl Script: Apollia's Primitive Invoice Generator v2.0 |
Saturday, July 2nd, 2016 04:32:44 GMT |
An old, messily-coded, yet still useful Perl script. Generates an HTML page containing a list of tasks billed by the hour, and/or a list of projects with a fixed price. Automatically totals up the amount due.
Even though this script is version 2.0, I never released it to the world before. I first wrote it maybe over a decade ago, and was recently reminded of its existence by a feature request from the person I made it for.
The code is really messy, and in retrospect, definitely not the best way to do things. But, it works well enough anyway, and the person I made it for has been happy with it for all these years.
So, this script is proof that you don't have to write the most perfect, elegant code to get something done adequately.
Perhaps I'd make it possible to input data via a spreadsheet, or maybe an Hjson text file, or either one. And then maybe somehow convert the input to XML, and transform it into a nice-looking HTML page using XSLT. :-)
Or maybe not. I don't really feel like thinking it through very carefully, because it's tiresome to dwell on such boring things as writing invoice software.
But, if I had to write it again from scratch, I'd probably do things much differently. I'd probably much rather write it in PHP instead of Perl, since despite much struggling with Perl, I'm still much more comfortable with PHP than Perl and probably most other languages.
▲ Top ▼ Bottom △ TOC ↓ Down Up ↑
Now I'm 35; daydreams and plans for the future |
Monday, July 4th, 2016 21:48:11 GMT |
Yesterday (July 3rd) was my birthday. So now, I'm 35, and I still haven't really gotten my life together yet. :-)
But fortunately, I already mourned the possibly irretrievable loss of my youth a while back, so, the transition from 34 to 35 isn't a very big deal to me.
And who knows what science, technology and medicine might someday achieve?
Except actually, I think I'd rather reincarnate as a male supermodel than live forever in my current body. :-) So, even if future scientific advances can't save me from old age and death, fine with me, I guess. :-)
My Puppy Linux Setup Kit, Astroblahhh Desktop, the Eryss astrology software, and the WordsPlatz blogging software are definitely still pretty far from as refined and perfected as I hope they someday will be.
But, hopefully I'm well on my way to creating versions of them (and other things) which will be good enough that I'll hopefully be able to share them without having to feel so sheepish about how flawed they are. :-)
Roughly in order of priority, and the possible future chronological order I'm going to work on them:
Lately, I've been relying more on NoteCase and VUE instead of Astroblahhh Desktop, since Astroblahhh Desktop has been in partially-updated disarray ever since last September, and I've been reluctant to even use the VirtualBoxed Windows version of Astroblahhh Desktop anymore, and also have avoided even using the stable-enough Astroblahhh Desktop 2.4, mostly because it needs to run on a web server because I haven't added PHP-GTK and SQLite database capabilities to it yet.
Astroblahhh Desktop already had some NoteCase-related import capabilities since years ago, though maybe not in a released version until 2015. But nothing related to VUE, yet.
Though I still haven't done a huge amount of work on APSK ever since mid-April. In May and June, my temporary top priorities were to get a new (to me) used laptop on eBay with much more RAM than my former usual laptop, and good batteries, and get it working nicely. That's largely done now - but, that was done mostly by adding new installers to the old version of APSK, not by enhancing the new version of APSK.
The old APSK is way too cumbersome and annoying to add new stuff to, and it really needs to be redesigned. That was the best I could do at the time I wrote all that stuff (especially since I was in a hurry), but I think I learned a lot since then (Sept. 2014), and can do much better now.
Another problem is, since I was using a desktop computer instead of a laptop when I built the old APSK, I didn't give as much thought as I should have to making it efficient, instead of redundantly loading a lot of probably mostly unneeded stuff for every single different setup kit script that gets run.
For example, my Navig Perl script already can use my Fashionizer library written in Bash. (It can, even though maybe it shouldn't, for efficiency's sake. :-) Even the Fashionizer, which I made as recently as maybe January, February, and/or March of 2016, should probably be split into even smaller separate parts.)
Those Hjson text files will be converted to plain JSON, then the data from them will be read using the marvelous software jq, which is a command-line JSON processor.
I'm also trying make it far easier to add, relocate, or remove files and scripts in Puppy Setup Kit repos, and make it more easily possible to work with numerous different repos scattered across numerous different disks, without having to waste so much time and energy editing setup kit scripts just to change various things' filepaths simply so the setup kit can find them.
I accomplished a lot toward all these goals earlier this year, and it really seems like it's all going to work... someday. :-) And I learned a lot from forcing myself to write Bash scripts instead of Perl scripts.
Or, I guess I could use PHP to make some working prototypes more quickly and easily than I'm capable of doing with Bash, Perl, or anything else. Then, once I've figured out how to make things work with PHP, maybe I could translate everything into Bash and/or Perl? Or maybe I should just stick with PHP?
I don't know, but another thing I want is for it to be possible for anyone to use whatever languages they want with the setup kit.
So, if anyone (like me) wants to use an odd mixture of Bash, Perl, and PHP scripts, or even languages I usually try to avoid, like Python - I want it to be allowed. :-)
And I even want to keep all old-style Puppy Setup Kit scripts working, but at the very least copy them into the RAM disk and launch them from there instead of a physical disk, to avoid making physical disks do unnecessary work.
And, now that I finally arrived at the ideas of using Hjson and jq with my Puppy Setup Kit, I think they mght also be useful with Astroblahhh Desktop, and also with my notion of somehow making my Astroblahhh Desktop data compatible with graph databases such as OrientDB or Neo4j, which are far more flexible than MySQL and SQLite.
But, at the same time, I somehow want to avoid losing compatibility with MySQL and SQLite. If this is too difficult, though, I'll probably just make my graph DB stuff separate from Astroblahhh Desktop, and hopefully give Astroblahhh Desktop some excellent Hjson export capabilities.
But, I'm going to keep at it anyway. :-) I recently read an amusing blog post that basically said, programmers are the ultimate optimists.
Surprisingly, even for me, that seems true to a great extent, at least with programming. Not so much with anything else - which is why I was surprised to realize that, wow, despite my cynicism about many other things in life, I really have overall tended to be incredibly optimistic about my programming. :-D
Though far from 100% optimistic - which is actually good in various ways, since for one thing, it leaves room for some pleasant surprises when sometimes I get better results than my expectations. (Even though my expectations tend to be quite tentative.)
For example, my blogging software WordsPlatz has served me pretty well with hardly any changes since 2008 or 2009.
And sometimes I get lucky and actually manage to finish things much sooner than I not-altogether-optimistically feared. I feel like I got very lucky with my efforts to get cozy with the GNU Emacs editor, and my effort to modify the multifiles Emacs add-on, which resulted in multifiles-apmod.el. That all only took around two months, but I was bracing myself to spend even more time on them if I really had to.
And GNU Emacs, multifiles-apmod.el, and numerous other great Emacs add-ons have all turned out to be even more wonderful and helpful than I imagined before I started working with them. :-)
So, I now feel a lot more sure that regardless of my projects' difficulty, it's quite possibly just a matter of time and enough effort before I finally succeed at most or all of them.
In any case, I don't think I've achieved world-class talent (yet?). :-) But doubtless I'm a lot closer than I would be if my severe sleep issues hadn't stopped me from being capable of enduring a normal job (which probably wouldn't have been in the field of programming), and I've definitely improved a lot over all these years.
I shudder to think of how much worse my life might have turned out if I had been more capable of forcing myself to stick with my almost minimum-wage part-time job as a copy editor/typist at a small local newspaper (which I barely endured from Nov. 2002 to Jan. 2004), or any other time-wasting probably minimum wage job that would have gotten in the way of me cultivating more valuable skills.
It's so close to releaseable that sometime, I probably ought to just temporarily put everything else aside (despite the fact that all the other stuff seems probably more important), polish it up a little and finally release it.
Even more than the AHK version, I want a PHP-GTK version, too.
Or even a hybrid web app + command line app + PHP-GTK version. Actually, since Eryss will probably be a smaller, easier project than Astroblahhh Desktop, and I also want to make a web app + command line app + PHP-GTK version of Astroblahhh Desktop, I might be able to quickly get a better idea of how to build Astroblahhh Desktop by working on Eryss first.
Maybe that's sufficient justification for me to work on Eryss first?
That would make it much easier to update and improve all my websites. I could finally more easily make my websites nicer, more useful, more organized and easily searched, instead of messy, lazy, and cluttered.
And then, once I also hopefully get some truly great, useful, easy to install and use projects finally completed, perhaps freelance work and/or purchases (if/when I finally get around to creating some sort of products to sell) and/or donations and/or microdonations will just flow to me without me having to make any effort to somehow market myself or seek work?
Even just getting rid of the redundant-looking section of Blog Archive links at the upper right and lower right would probably be an improvement.
I'd also like to automate the addition of a comment section to the bottom of all of my blog posts - an iframe containing each blog post's official comment thread at the Eryss.Com Forum. But, on the other hand, I'm not sure doing anything to popularize either of my forums is the best idea at the moment, since even the nicest, politest forums I ever posted to always tended to stress me out due to my social anxiety.
I still intend to keep my forums around forever, but I probably am going to continue largely avoiding them (and any other forums I'm tempted to post to) until I finish more of my top projects.
Or, better yet would be for me to have such a good memory that I wouldn't need Astroblahhh Desktop or other things as much anymore. :-)
So, I'm definitely interested in trying to make more use of ideas I read about recently in the great book You Can Learn To Remember: Change Your Thinking, Change Your Life by Dominic O'Brien, who won the World Memory Championships numerous times.
End of addition.)
The "journey" memory method described in the abovementioned book made me think maybe virtual worlds could be a useful mnemonic tool.
And, for a long time, I've been thinking it would probably be so cool to have a 3D version of the VUE concept mapping software. And the easiest-seeming way I can think of to possibly implement something like that hopefully quickly would be to somehow import VUE data into an OpenSim. :-)
Except I'm not sure the Android phone I have can run that.
Or maybe even to build my own edition(s) of Puppy Linux.
I also someday want to try a Devuan-based Puppy Linux.
So, I definitely have plenty to keep me busy. And who knows what random cool new (or new to me) things I'll hear about in the future which might inspire me to work on totally different things instead.
But, I hope somehow all of the above will somehow help with that too.
And music definitely usually helps my productivity and ability to concentrate.
And, as explained in this old blog post, astrology (among various other things) played a significant part in me becoming more agnostic and hopeful, and less depressed, close-minded and cynical. So, maybe that could help other people too, even though astrology is usually considered a frivolous subject.
And I'm still very curious about whether any part of astrology can be proven to have objective validity, so I'll be quite happy if my software will help scientists, skeptics, and any other curious people to investigate astrology.
I hope this blog post was interesting, thought-provoking, and educational, and that I can get at least some of the above done well in a reasonable amount of time, so hopefully I'll have many more (and hopefully increasingly high-quality) things to share with you all in the future.
Also, Happy Independence Day!
Even though I haven't accomplished as much as I would have liked to with my life thus far, I'm glad I at least managed to do as much as I did, despite all my limitations, such as my severe sleep issues, and the various forms of oppression I and my family have had to deal with, some of which I described back in Nov. 2015 on my Self-Help page.
Here's a summary of what I consider my most important not-yet-finished projects, most of which have taken much longer than expected.
I'm hoping to build the renovated APSK out of a lot more small, modular, replaceable, separable pieces which could also easily be used with unrelated things.
And I also want to make it possible to customize APSK's behavior by simply editing Hjson text files rather than scripts. (Of course, it will still be possible to edit scripts, but hopefully less necessary.)
But I'm actually pretty close to just giving in to the temptation to make PHP a required part of the Puppy Setup Kit, because no matter how much I've tried to force myself to get used to other languages, PHP is still easiest for me and still my favorite.
With all my past experience with how long my projects (except the tiniest ones) have tended to take, I'm definitely very aware that the above might take quite a bit longer to complete than I hope.
But I definitely have some logical reasons for optimism - since a lot of the stuff I've already made (both released or not) is remarkably useful, despite its lack of polish.
So, there's definitely not much chance I'm going to give up on my projects out of a sulky lack of confidence in my abilities. I'm well-aware my work hasn't been flawless, but, I've accomplished much more than I originally had any idea I was capable of.
I wish I knew how close I am to having spent at least 10,000 hours doing and studying programming (and related subjects). 10,000 hours is the number mentioned in the intriguing book Outliers by Malcolm Gladwell as being the roughly estimated point at which people might have put in enough effort to finally achieve world-class talent.
And now, here's a list of some less highly-prioritized projects or daydreams of mine.
And here are some things I've scarcely even started working on yet, but which might become higher priorities at some point.
I could go on and on, but, that's already a ton of stuff. :-)
Since this blog post is mostly about software-related goals and daydreams, I didn't even mention any of my other even more huge goals, like "End world poverty".
Even the more frivolous-sounding projects like a streaming music interface and the Eryss astrology software would/will doubtless help me become a better programmer and make it possible for me to do a better job with all of my other projects too.
Thanks again to everyone for all your kind support of any kind!
▲ Top ▼ Bottom △ TOC ↓ Down Up ↑
Links: Amazing 3D graphics inside a web browser |
Thursday, July 7th, 2016 05:26:30 GMT |
Last edited 3:48 AM EDT.
Wow, I've been so out of touch with what web browsers are capable of these days! I guess if I were more of a gamer, I wouldn't have been so behind the times for so long. :-)
I'm also pleasantly surprised at how much of the below works fine (or OK, with some imperfections) in Puppy Linux, now that I have a nice, mostly uncrashy laptop with a decent amount of RAM - my Toughbook CF-C1 with 8 GB of RAM which I got on eBay for less than $200.
I'm also using Lighthouse 64 Puppy Linux 6.02 Beta 2 and the web browser Pale Moon, version 26.2.2 (x64).
Not everything I tried works, but the below mostly do. Things do get a bit slow and choppy sometimes, but, many things are remarkably smooth, especially if I don't have a lot of other web browser tabs open. And pretty much everything that works at all runs much better than how Second Life runs on my other Toughbook CF-C1 with Windows 7 and only 4 GB of RAM.
I'm extremely impressed!!!!!!!
(Addition, 3:31 AM EDT. Also, watch out for possible overheating. About a half hour ago, I accidentally overheated and crashed my laptop with the "geometry / terrain / fog" three.js example. Before this, the last time I had a crash from overheating was June 14th.)
Dungeon demo from Pixelcodr.com
Quarto game from Pixelcodr.com
Block game from Pixelcodr.com
Livecodelab from sketchPatch.net
It would be so fun to have 3D graphics in Astroblahhh Desktop, the Eryss astrology software, or a CMS (content management system, for lack of a better term), or a music service, or my daydream of a JavaScript port of the concept mapping software VUE: Visual Understanding Environment, or a 3D browser for graph databases like OrientDB or Neo4j. And tons of other things.
Wow... :-D
Warning: If you have a laptop or other battery-powered device, I don't recommend visiting the below pages unless you have your device plugged in, because I'm guessing the software on those pages might quickly use up your battery power.
Behold!
Not all of these work on my system:
I don't even know exactly how all these things were made yet, but if it was just (or primarily) JavaScript, I'm stunned. :-D
This definitely could make a lot of my (or anyone's) projects and websites more exciting. :-D
Bash Script: flexishacheck |
Monday, July 25th, 2016 13:07:57 GMT |
Here's a boring but useful enough Bash script I finished today:
I made this because the not-yet-finished (nor released) renovated Apollia's Puppy Linux Setup Kit (APSK) is going to use SHA-512 checksums to verify that various files are intact, or got downloaded correctly.
Actually, if I recall correctly, the released APSK already does check the SHA-512 checksums of downloaded files. But I want the renovated APSK to be far more flexible - and flexishacheck definitely helps with that, since now I won't have to update checksum record files just because a checksummed file got renamed.
I also want the renovated APSK to be able to use other things to verify that downloaded files are intact, such as GPG signatures.
From what I understand, two different files sharing the same SHA checksum or GPG signature is supposed to be extremely rare, even if the two files are only slightly different. But unfortunately, I'm quite far from understanding all this stuff as well as I'd like, so I'm not sure how helpful (or not) SHA checksums and GPG signatures will really be. But I assume checking SHA checksums and/or GPG signatures is at least better than just blindly trusting that a download succeeded and got the correct file.
At least I've been learning a lot from my struggles to renovate APSK and understand checksums and GPG. At this rate, I don't know if I'll have APSK renovated even before the year is over, but, I'm going to keep trying.