I have been experimenting with ClayDB and working on SQLite support. I managed to break Clay 2 today, but, like I said, "experimenting".
I'm trying to find that balance between ease of use and ease of development. The way it's looking right now, I may have to choose one. I think a lot of the readability issues can be solved by fixing some of the naming schemes in the database and standarding how data comes from the database. I don't want to weigh the code down, but I think a balance can be had by some standardization.
This particular change will make an upgrade from Clay 1 to Clay 2 very difficult, but not impossible. It involves quite a few changes to the database, but it does add a dimension of maintainability for the future.
I finally remembered to fix some display bugs in paragraph styling (they weren't showing up as paragraphs). The blog should be easier to read now. Unfortunately, I lost some of the font styling, somehow. I'll have to go through commit logs and see where that was replaced.
I also fixed a nagging line-height issue with textareas. It made it difficult to see linebreaks, not that they were displaying correctly anyone.
I don't work in an IT job, we use IT, but that's it. I told a coworker I am testing different Linux distributions and he seemed confused. I guess people who dont use Linux dont know there isn't just one. He finally asked why there are so many and I thought about for a minute. Linux is about personal freedom, kind of like buying a house or a car. It's about preference, options, and, ultimately, opinions. The difference, though, is this freedom is free. It's not about financial status or social status (per se), your Ferrari distro isn't someone else's. It's about choice and that is what makes Linux the best for me.
I finally tested Manjaro, a desktop I've read many great reviews of and I have to say, I'm quite impressed. Even with high expectations it performed extremely well. I haven't had good experiences with Arch in the past, but Manjaro uses it with ease. It's an excellent distro. I did download images for FreeBSD, openBSD, and TrueOS for testing as well, should get to them tomorrow.
I'm still chugging along with my Linux distro review and considering adding BSD to the list. Tonight I've tried Debian Gnome, openSUSE again on USB, Parrot Security, and Fedora. Parrot is awfully appealing, even if I'm not a huge Mate fan. Fedora is still good too, the best performing Gnome distro so far on USB, even if only slightly better than Debian. More to try out tomorrow, but it's been fun so far. I'm writing Manjaro to the USB now to try first tomorrow, it'll be the first xfce desktop to test so far.
So, Parrot Home booted from the USB...no issues. So smooth. Comes with a nice selection of software, updated packages, and Mate as the desktop. Liking it, a lot. Not sure if I like it more than Mint... I'll have to try Mint's Mate variant to decide. Have to call it a night, so continuing/restarting tomorrow. Parrot Security is next, then I have to start over booting the other OS' from USB. Booting from DVD I was least impressed with openSUSE... regrettably. SUSE was the first Linux distro I used exclusively back in the day. Actually bought the box set of it and still have it in storage. Maybe it'll perform better from USB, can't be any worse.
Kind of disappointing, had to wipe one of my thumb drives. Booted fine from USB...now time to test it out. Doing Home version first, then Security if warranted. Unfortunately now I have to retest the other OS' from USB, because the others I tested from DVD.
I've been downloading Linux ISOs to test different distros. I have been using Linux Mint 19 on my desktop and had been considering give Mate a try. I haven't used Gnome for a while, since Fedora years ago. I'm pretty excites to try the ones I'm downloading. I'll post a blog about how they run and what I think about the different ones.
I've started working on ClayDB 3, with the first iteration being 2.7. I'm re-adding SQLite and PostgreSQL support for 2.7 and I'll be adding others before it hits 3.0. Not a lot will change at first, but eventually I plan to turn it into a Composer package.
One of the criticisms I've heard of Clay through the years is a lack of Models. I'm contemplating adding models for Clay 2.0, but I may wait. There are already a ton of changes happening in Clay 2.0 and it's more than I'd originally intended. I think it's more likely that ClayDB 3 will support models and the traditional queries, with models implemented within Clay in specific areas. We'll see. Some of the things I'm working on may make models obsolete ;)
I've been running Linux Mint on my laptop for about a year or so. Until switching to Mint, I had kept a Windows partition to run along side Ubuntu and various other distros. The majority of my time would be in Linux, but I kept Windows for games and a stable fall back (in case I installed a distro and it went south). I also didn't like Unity in Ubuntu, so I would run other desktops, which seemed to cause more issues. I don't remember when exactly, but at some point I decided to try Linux Mint and absolutely loved it. About a year ago I bought a new SSD and only installed Linux Mint. No more Windows partition. It's been amazing. Linux Mint is sleek desktop and the most stable OS I've ever ran. I run the Cinnamon edition. Back in June, Linux Mint released version 19, which uses a Ubuntu 18.04 as its base packages. I've always been eager to install new versions of my OS, even running alphas and betas. This time I was more cautious, because Mint 18 was so stable and I didn't have a fallback if something went wrong with an upgrade.
The Thought Process
Yesterday I learned Linux Mint 19.1 should be released next month, so I began to get more curious about upgrading to 19. Most upgrade issues seemed to be resolved months ago and my hardware isn't all that old. I decided I'd rather upgrade to 19 now, so I can upgrade directly to 19.1 when it is released. I ran the installer test and it didn't report any errors. Let's do this!
I used a tutorial for the upgrade, because I had read it would be a little more complicated than just clicking an upgrade button. I ran the command line commands, updated packages, downloaded everything, and ran the install. Unfortunately, it kept stopping with errors. I decided to start it over and, this time, when I updated the packages, I noticed the Mint Upgrade Manager showed I had an update. I ran the update, which happened to be of the Update Manager. When it refreshed all of the updated packages for Mint 19 showed up in the Updates list. I refreshed it (for good measure), and clicked Install. This time it kept going, for a while, no errors. Finally it finished and I was pretty nervous, but there were no signs of trouble.
Reboot / First Impressions
Still nervous, I shut down the laptop and turned it back on. Bam, it worked! The new desktop design is even sleeker and very polished. Cinnamon seems to be more responsive (thanks to a bug fix I read about months ago) and resource usage is basically zero on idle. It feels like an upgrade, which, honestly, I hadn't felt with most OS' in a while.
Well, it's only been a day, but so far: YES. Linux Mint 19 is beautiful, fast, and the easiest Linux distro I've ever used. It's stable, because it's not cutting edge, but it's stable. I loved Linux Mint 18, 19 is no drop off at all.
One day I want to try another Mint edition, LMDE, which is based on Debian instead of Ubuntu. I feel LMDE will one day be Linux Mint. I was very tempted this time to give it a try, but I don't have as much time to install OS' over and over as I once did. I'll try it one day, even if it's just on a usb or a temporary disk swap. In the meantime, if you aren't using Linux Mint...do it.
I have the core apps from Clay 1 working in Clay 2. I have some cleaning to do and some restructuring, but they are functional. The code looks different, easier to read and less spaghetti. The new file structure definitely cuts down on the learning curve as well. You also have more obvious control, whereas it was more cloaked by default behaviors before. For instance, every template is identified explicitly in each app component, while Clay 1 would allow you to specify the template. Also the object has control over output, whereas before it was from a return value. This allows you to use things like event or data-centric driven apps and is a quite different from traditional PHP applications. So far all of this has led to improved performance and fewer stack dependencies.
I have the Clay 2 installer working, it's very basic, but it works. Most of the issues I had getting it working were with namespace or file structure changes, but it depends on a lot less code than the Clay 1 installer. My friend Mikey will be taking it over and doing the bulk of work on the installer from here.
I'll be moving on to upgrading apps and themes, while rebuilding some of the subsystems and adding new features. A lot of the upgrades i can do with simple search and replace. Others will be cutting down on inconsistencies. This is a rewrite so, even if I'm not starting from scratch, there is a lot of work to do on all fronts.