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.
I've been rewriting many of Clay 2's modules to be easier to use and document. Over the years Clay 1 became muddy and a lot of functionality was plugged into places it, probably, didn't make sense. Functions accepted a lot of parameters or large arrays filled with overly verbose data.
Clay 2 is already a lot easier to read and I'm working on slashing duplicate code and simplifying as much as I can. This rewrite is changing the way Clay looks, but not very much how it works. I'm liking it and I feel like everytime ao far has been an improvement in one way or another.
I also feel like Clay is becoming more consistent amd changing the file structure has helped toward that goal. It's really kind of amazing to look back at older code and see how much Clay has progressed. This should probably be Clay 4 or 5, based on rewrites before it hit 1.0, but it's definitely not 1.0 any more.
I've been working on a new hosting project that will be supported by Clay 2. I've had the idea for a long time, but someone recently beat me to it so I'm joing their project. Some of the features I had thought of weren't previously being considered and vice versa, so it's going to be even more amazing. I'm in the process of setting up a local version with distributed storage on a NAS I built with a Raspberry Pi. I can't go into too many details, as usual, but the web wont be the same if it's all successful.
I recently blogged about Clay2 and I've been working on it when I have time. Another tidbit I haven't mentioned, at least in a while, is Clay2 isn't only going to be developed in PHP. It's going to use other languages, where PHP falls short. Clay2 is more of a server suite, than just a CMS, using node.js and other languages to provide features Clay1 can only dream about. Clay2 will even be able to function as a headless CMS, by providing realtime data that can be plugged in anywhere, while maintaining all of it's security and role-based access. The privileges system is even being extended into a new installer, which means users can (if given access) create Clay2 sites or data stores on demand. Many developers hate data and treat it like a second rate citizen, but Clay2 is being built for data.
Everyone seems to have a youtube channel...so I'm going to have one. It'll be boring, obviously. I'll add a link when I start uploading.