<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alec</title>
    <description>The latest articles on DEV Community by Alec (@alecbsherman).</description>
    <link>https://dev.to/alecbsherman</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F608181%2F7a63e431-8ea8-4c3b-9105-8d8c6aa393cf.jpg</url>
      <title>DEV Community: Alec</title>
      <link>https://dev.to/alecbsherman</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alecbsherman"/>
    <language>en</language>
    <item>
      <title>IntelliMuse AI assistant for techs</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Sat, 05 Oct 2024 17:52:34 +0000</pubDate>
      <link>https://dev.to/alecbsherman/intellimuse-ai-assistant-for-techs-3dg8</link>
      <guid>https://dev.to/alecbsherman/intellimuse-ai-assistant-for-techs-3dg8</guid>
      <description>&lt;p&gt;&lt;strong&gt;IntelliMuse is here!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is AI assistance with personality which can be accessed via Text on website or Voice with the iPhone app.&lt;/p&gt;

&lt;p&gt;Freddy Fullstack is the muse to help programmers.  He's not a great code assistant (yet), but he is very useful for us techs.&lt;/p&gt;

&lt;p&gt;IntelliMuse is using the latest OpenAI 4o with Assistant mode.  What this means is all Muses in IntelliMuse remember your past conversations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implication:&lt;/strong&gt;  you can tell Freddy your tech stack and he remembers.  For example, tell him once "I'm using PHP version 8.1 and jQuery 3.6.3 with MaterializeCSS version 2.0.3".  Then later when you are requesting assistance with any PHP, JavaScript or HTML/CSS he will remember your tech stack.&lt;/p&gt;

&lt;p&gt;If you work on multiple tech stacks for different clients you could tell him that as well.  "When I say I'm working for the ABC client, then I'm using this tech stack..."&lt;/p&gt;

&lt;p&gt;Honestly, I've seen Freddy write bad code.  Personally I don't use him to write complicated code for me.  However here are some things I do use his help for and he's been extremely useful in these areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I'm using SourceTree for GIT access and need to know how to do ...&lt;/li&gt;
&lt;li&gt;In PHP give me the code to replace double asterisks surrounding text with HTML to bold the text like $pgText = 'make this &lt;strong&gt;bold&lt;/strong&gt; for me.'; should become $pgText = 'make this &lt;strong&gt;bold&lt;/strong&gt; for me.';&lt;/li&gt;
&lt;li&gt;Help me debug these AWS errors I am receiving from my .sh scripts.&lt;/li&gt;
&lt;li&gt;What are best practices for ...&lt;/li&gt;
&lt;li&gt;I'm interested in a new tech tool to do XYZ.  Here are the ones I'm considering... Give me the pros and cons on each.&lt;/li&gt;
&lt;li&gt;In Google Sheets I need to do this... how do I do that?&lt;/li&gt;
&lt;li&gt;What is the best HTML to use to allow people coming to my website and listen to a WAV file named wtkPodcast.wav?&lt;/li&gt;
&lt;li&gt;Here's my PHP code to remove emojis from a string.  It is missing these types of emojis (...).  Please fix the code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus of course he's the best to ask those questions that you do not want to admit to your peers you don't know the answers to.  The basics which you know you &lt;em&gt;should&lt;/em&gt; know, but you don't want to spend the time to Google search and read about.  He can answer and summarize, then go into deeper discussion if you request.&lt;/p&gt;

&lt;p&gt;Freddy can definitely write code and for short requirements it works quite well.  But for longer code requirements I have seen stupid mistakes like not keeping case sensitivity within variable names.  That was with OpenAI version 3.5 and 4o seems to be better but still not perfect.  In the future, if there is demand, I'll build a full coding assistant which will require using a different AI API and will take some time.  Let me know in the comments if you think this would be worthwhile or not.&lt;/p&gt;

&lt;p&gt;Currently IntelliMuse is free.  In the future it may be monetized, but for now it's 100% free and we're just looking for feedback.  There are lots of non-tech Muses as well, one for gardening, travel tips, existentialist conversations, gamer tips, etc.  Plus you can create your own custom Muse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://intellimuse.app/" rel="noopener noreferrer"&gt;https://intellimuse.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;iPhone app&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://apps.apple.com/us/app/intellimuse/id6450903802" rel="noopener noreferrer"&gt;https://apps.apple.com/us/app/intellimuse/id6450903802&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>IntelliMuse - AI companions</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Sat, 01 Jun 2024 07:03:21 +0000</pubDate>
      <link>https://dev.to/alecbsherman/intellimuse-ai-companions-1811</link>
      <guid>https://dev.to/alecbsherman/intellimuse-ai-companions-1811</guid>
      <description>&lt;p&gt;This is my first ProductHunt launch and I have no idea how it's going to go since I don't have any "community" for this particular product.&lt;/p&gt;

&lt;p&gt;My IntelliMuse app has just been approved on the Apple AppStore.  IntelliMuse - advanced AI companions.  This is not a dating AI companion, but rather a variety of AI avatars with different specialties to brainstorm with.  On the mobile app you can talk with them and they each have different voices and personality.  I designed it so it looks like a contact list and you call them like you would a regular human friend.  The web version offers text-chatting.&lt;/p&gt;

&lt;p&gt;Plus you can create your own AI "muse".  These can be based on historical figures, fictional characters or built from scratch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.producthunt.com/posts/intellimuse"&gt;https://www.producthunt.com/posts/intellimuse&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For now the app is free.  No ads - I'm just looking for feedback.  If it becomes popular then I will make some features free and others require a small subscription fee.&lt;/p&gt;

&lt;p&gt;The technologies I used are ChatGPT 3.5 and Google's Text-to-Speech.  As soon as the ChatGPT4o is available with voice I will be switching to that.&lt;/p&gt;

&lt;p&gt;Any feedback from the dev.to community would be greatly appreciated!&lt;/p&gt;

&lt;p&gt;The ProductHunt special offer is 50% off any future subscription plans before 2026. &lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>producthunt</category>
    </item>
    <item>
      <title>SQL Report Builder</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Wed, 15 May 2024 17:38:05 +0000</pubDate>
      <link>https://dev.to/alecbsherman/sql-report-builder-48ml</link>
      <guid>https://dev.to/alecbsherman/sql-report-builder-48ml</guid>
      <description>&lt;p&gt;The SQL Report builder stands as an indispensable component within the Wizard's Toolkit low-code development library. This in-depth video delves into the intricacies of crafting dynamic reports using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mySQL&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For developers who are adept at constructing SQL SELECT statements, this tool facilitates the generation of detailed reports with functionalities encompassing sorting, filtering, column alignment, totaling, and exporting. Seamlessly integrated with ChartJS for streamlined chart creation at a mere click.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/mr234KXTVJ0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  How it Works
&lt;/h2&gt;

&lt;p&gt;This low-code library is built using PHP, JavaScript, SQL, CSS and HTML5.  All are merged into the low-code environment and any SQL developer can access the back office website to enter their SQL query and choose options from drop lists, checkboxes and enter a few fields regarding which columns need alignment or totaling.  Checkboxes at the bottom determine whether charts are needed and which types of graphs to display.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmgxwnmodf0ywkbzqgxtt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmgxwnmodf0ywkbzqgxtt.png" alt="Image description" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This SQL Report tool stores your SQL query in a SQL table named wtkReports.  A &lt;strong&gt;Report Viewer&lt;/strong&gt; is provided to clients which allow them to see the list of reports based on their security level. Clicking on a report displays it.  Based on user preferences they may or may not be allowed to export.&lt;/p&gt;

&lt;h2&gt;
  
  
  Charts and Graphs
&lt;/h2&gt;

&lt;p&gt;Built on ChartJS, custom JavaScript has been written to allow switching from one type of graph to another without additional hits on the SQL database.  Graphs include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bar chart&lt;/li&gt;
&lt;li&gt;line chart&lt;/li&gt;
&lt;li&gt;area chart&lt;/li&gt;
&lt;li&gt;pie chart&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All the complexity of charting is handled internally.  The SQL developer just needs to write the query, decide which (if any) columns should be suppressed from charting, and pick types of graphs to show.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcyfutfr9s3mb2bzk0xox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcyfutfr9s3mb2bzk0xox.png" alt="Image description" width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SQL Reports reduce Deployment Times
&lt;/h2&gt;

&lt;p&gt;Depending on your work environment, adding a new report can be a tedious hassle.  The SQL developer writes the SQL query and sends it to the website developer.  They integrate it into PHP or some other language.  Then it goes to the DevOps person to deploy to staging for testing to make sure it doesn't break any other pages.  Then it is finally deployed to production.  If the client desires a minor change or enhancement it has to go back to the SQL developer, then the PHP coder, then DevOps.  Using a SQL Report Builder streamlines this process.  SQL developer writes the query and verifies it works with their SQL tools.  Then logs into back office website and pastes the query into the SQL Report Wizard and chooses features needed.  Done - no deployment "process" needed.&lt;/p&gt;

</description>
      <category>mysql</category>
      <category>lowcode</category>
      <category>webdev</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Widget Dashboards via Wizard's Toolkit</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Thu, 18 Apr 2024 20:15:09 +0000</pubDate>
      <link>https://dev.to/alecbsherman/widget-dashboards-via-wizards-toolkit-47f3</link>
      <guid>https://dev.to/alecbsherman/widget-dashboards-via-wizards-toolkit-47f3</guid>
      <description>&lt;p&gt;Widgets play a crucial role in providing real-time visual representations of essential company data, tailored to the unique needs of different staff roles and departments. With the Wizard's Toolkit, creating and managing these widgets is a breeze, allowing for seamless customization and efficient problem resolution.&lt;/p&gt;

&lt;p&gt;This video explores the straightforward process of creating and assigning widgets, as well as setting up multiple Widget Dashboards based on staff roles and security levels. Additionally, we'll delve into the functionality of the Back Office Management, Widget Creation, Data Review, and Demos, all of which come standard in Wizard's Toolkit, a low-code development library for PHP and SQL.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/rDod0OQt5CY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Video Chapter Headers
&lt;/h3&gt;

&lt;p&gt;00:01  Intro and Preview&lt;br&gt;
01:25  Widget Creation in back office website&lt;br&gt;
04:06  Widgets with Modal Window Links - saving and refreshing&lt;br&gt;
06:35  Continuation of Widget Creation description and examples discussing SQL&lt;br&gt;
07:16  Save and Copy feature&lt;br&gt;
07:47  Chart Widgets&lt;br&gt;
09:50  Widget Groups using 3 SQL tables&lt;br&gt;
13:41  Personal Widget Dashboards&lt;br&gt;
14:32  Color Gradients for Widget Counters - set up in CSS and SQL&lt;br&gt;
18:48  How to code multiple Widget Dashboards (PHP, JS and data)&lt;br&gt;
22:18  Personal Widgets - code deep dive in SQL and PHP&lt;br&gt;
25:37  makeWidget PHP function&lt;br&gt;
26:34  Mobile Phone widgets&lt;/p&gt;

&lt;p&gt;Widgets use SQL and are presented as counters, charts or lists.  Clicking on a Widget can take a person directly to the necessary page to review or resolve the associated problem.  Each individual is able to customize their widget dashboard.  This makes navigation and problem resolution easier and more tailored to individual needs.&lt;/p&gt;

&lt;p&gt;This video also shows how to add code to provide switching between Widget Dashboards, and even add new color options via CSS gradients for widget counters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Back Office Management
&lt;/h3&gt;

&lt;p&gt;Here is where you can set up Groupings of Widgets.  These can be based on Department (aka Staff Role), by Security Level, or any determination you like.&lt;/p&gt;

&lt;p&gt;You can decide if the Widget Grouping should be used as a default set for users.  If you do so, then the first time a user logs in to the website it will automatically copy that Widget Group to their personal dashboard.  Then they will be able to edit that dashboard, rearrange the widgets, add more pre-designed widgets, and delete unnecessary widgets.  Note, they will not be able to see or add widgets that are above their security level.  Of course in this lowcode environment you have access to the PHP source code so everything can be modified.  That's the beauty of low-code development compared to no-code.  You have full access to the code and can enhance or change it in any way you like.&lt;/p&gt;

&lt;h3&gt;
  
  
  Widget Types
&lt;/h3&gt;

&lt;p&gt;Widget come in 4 types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chart type&lt;/li&gt;
&lt;li&gt;List type&lt;/li&gt;
&lt;li&gt;Counter&lt;/li&gt;
&lt;li&gt;Link&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Chart Widgets can be any of these types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Line&lt;/li&gt;
&lt;li&gt;Area&lt;/li&gt;
&lt;li&gt;Bar&lt;/li&gt;
&lt;li&gt;Pie&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Initial SQL table design, SQL triggers, data for widgets, and data look-ups are all included in the WTK environment and reviewed in the video.&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;p&gt;This Widget Dashboard functionality comes standard in Wizard's Toolkit.  Widget Dashboards could be added as a stand-alone feature if there was demand for it.  If you think it would work well for your project but want it as a standalone, let me know in the comments below.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>lowcode</category>
      <category>php</category>
      <category>sql</category>
    </item>
    <item>
      <title>Wizard's Toolkit Demo</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Thu, 04 Apr 2024 17:19:04 +0000</pubDate>
      <link>https://dev.to/alecbsherman/wizards-toolkit-demo-dml</link>
      <guid>https://dev.to/alecbsherman/wizards-toolkit-demo-dml</guid>
      <description>&lt;p&gt;Wizard's Toolkit now has a demo you can test on computer, phone or tablet.  To best simulate how it will look with a company's data, I created two tables with &lt;code&gt;pet&lt;/code&gt; data.  This pet data resets every other hour but the other data for revenue, website usage, etc., simply grows.&lt;/p&gt;

&lt;p&gt;I've had videos before showing how websites work when built using Wizard's Toolkit, but this demo allows anyone to surf it, see the chart animations, experience how fast navigation is and how each page looks when viewed on computer versus phone.  This is SPA (Single Page Application) design using responsive design and a few tricks to make the same pages look quite different on phones compared to computers/tablets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://wizardstoolkit.com/wtk.php"&gt;https://wizardstoolkit.com/wtk.php&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This way you can see the dashboard widgets, email and SMS features, reporting, navigation and more.  The goal is to give people full access to see exactly what they get when they start with Wizard's Toolkit.&lt;/p&gt;

&lt;p&gt;Of course each developer's implementation will look different.  Each developer has ultimate control of the color theme and design.  WTK comes with a good starting design and several color palettes but it is easy to buy a new HTML template and integrate that with WTK.  Although not normally recommended... on the My Profile page I made it so you can change the color palette or switch between Dark and Light theme.&lt;/p&gt;

&lt;p&gt;Simplified registration is implemented for this demo but Wizard's Toolkit can easily be changed to require confirmation of email or phone in order to register.&lt;/p&gt;

&lt;p&gt;Working with WTK is like getting a jump start on your project with 15 years of well-designed database and debugged code.&lt;/p&gt;

&lt;p&gt;Check out the demo, add a picture of your pet, and let me know what you think!&lt;/p&gt;

&lt;p&gt;-Alec&lt;/p&gt;

</description>
      <category>lowcode</category>
      <category>webdev</category>
      <category>php</category>
      <category>sql</category>
    </item>
    <item>
      <title>WTK on GIT and Docker</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Wed, 13 Mar 2024 14:52:40 +0000</pubDate>
      <link>https://dev.to/alecbsherman/wtk-on-git-and-docker-32o8</link>
      <guid>https://dev.to/alecbsherman/wtk-on-git-and-docker-32o8</guid>
      <description>&lt;p&gt;Wizard's Toolkit now has a GIT repository on BitBucket.  This low-code development library has been the foundational code for several companies since 2009.  The companies ranged from startups to $17M annually.&lt;/p&gt;

&lt;p&gt;Now with both a Docker offering and GIT repository, anyone can get started with this low-code library in minutes.  WTK has a much lower learning curve than Laravel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Includes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database tables to track users, errors, update logs, user history, emails sent, etc.&lt;/li&gt;
&lt;li&gt;Report generator for SQL developers&lt;/li&gt;
&lt;li&gt;Registration process&lt;/li&gt;
&lt;li&gt;Forgot Password feature&lt;/li&gt;
&lt;li&gt;Code builder - code that writes code&lt;/li&gt;
&lt;li&gt;CSS Maker - to customize your UI&lt;/li&gt;
&lt;li&gt;Initial framework for navigation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Access on GIT
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bitbucket.org/AlecSherman/wizards-toolkit/"&gt;https://bitbucket.org/AlecSherman/wizards-toolkit/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Access on Docker
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hub.docker.com/r/proglabs/wizards-toolkit/"&gt;https://hub.docker.com/r/proglabs/wizards-toolkit/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Docker and My Experiences</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Thu, 07 Mar 2024 15:28:59 +0000</pubDate>
      <link>https://dev.to/alecbsherman/docker-and-my-experiences-ig6</link>
      <guid>https://dev.to/alecbsherman/docker-and-my-experiences-ig6</guid>
      <description>&lt;p&gt;In 2022 I started using Docker.  Prior to that I was using MAMP or doing development on VPS servers specifically set up for development testing.  The initial configuration was a bit of a learning curve, but now that I'm over that hump... working with Docker has been amazing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Setup
&lt;/h2&gt;

&lt;p&gt;I define projects and store them in GIT/BitBucket.  Those contain docker-compose.yml files and .sh files to build my Docker environments, as well as all the actual web pages which are part of the project.&lt;/p&gt;

&lt;p&gt;Pull from GIT.  Run a couple .sh scripts to first build then start the Docker images and "boom", I have an ideal development environment.  I could run docker commands in Terminal like &lt;code&gt;docker-compose build&lt;/code&gt; and &lt;code&gt;docker-compose up -d&lt;/code&gt; would work just as easy as the .sh files but I prefer the .SH files which I define with more intuitive names.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Docker Images/Container
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Nginx:1.22.0-alpine&lt;/li&gt;
&lt;li&gt;MySQL 8.3&lt;/li&gt;
&lt;li&gt;PHP 8.1-FPM&lt;/li&gt;
&lt;li&gt;phpMyAdmin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each use a "Volume" for data in the database, and another "Volume" for the web pages.&lt;/p&gt;

&lt;p&gt;In 2022 we converted everything to PostgreSQL because AWS "serverless PostgreSQL" was so much cheaper than MySQL.  That worked great but in 2023 we switched back to MySQL since AWS now offers that "serverless" as well.  Utilizing docker-compose.yml switching between MySQL and PostgreSQL is only a few lines of code.  Modifying the PHP for the SQL syntax changes was a much bigger job.&lt;/p&gt;

&lt;p&gt;Likewise, with Docker it is extremely easy to slightly change the docker-compose.yml so you can test different versions of PHP, MySQL or Nginx.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Life Advantages with Docker
&lt;/h2&gt;

&lt;p&gt;Over the last year I bought a new laptop (MacbookAir) to replace my older MacbookPro.  Simple GIT PULL and .sh call and my Docker environment was identical and working perfectly.  A few months later I bought an iMac and same situation.  Now passing environment from new laptop to new iMac is as simple as a push and pull from GIT.&lt;/p&gt;

&lt;p&gt;Even more importantly, the same Docker containers I work on are also used by other programmers in our company and there's never a concern that our environments are out-of-sync.  Plus our company's DevOps tech uses a slightly modified docker-compose.yml for building final containers which are uploaded to AWS.  They are small and instantiate quickly and with his setup more spin-up as needed based on demand.&lt;/p&gt;

&lt;p&gt;This has worked so well that I've changed all my website development to use this GIT and Docker methodology.&lt;/p&gt;

&lt;h2&gt;
  
  
  Docker inside of Docker
&lt;/h2&gt;

&lt;p&gt;So other developers could easily test Wizard's Toolkit, I created a simple Docker image that contains all the files necessary to generate an ideal Nginx/PHP/MySQL Docker environment.&lt;/p&gt;

&lt;p&gt;Try to get your head around this.  I have an image which you pull down, run a script that extracts all files from, then delete.  Then run .sh file to build the perfect Docker development environment.  All the PHP and web pages are in an easily accessible subfolder (which Docker calls a Volume), and puts the data in a subfolder (aka Volume).&lt;/p&gt;

&lt;p&gt;This is a way to try out Wizard's Toolkit, the low-code PHP/SQL development library.  For full disclosure, there is a small subscription fee to use Wizard's Toolkit on production servers.  This method allows developers to test how easy and intuitive it is to build websites with Wizard's Toolkit on their local Docker environment.&lt;/p&gt;

&lt;p&gt;Of course, there's nothing preventing anyone from pulling down the Docker environment then deleting the /WTK/ files and just use it as your ideal Nginx/PHP/MySQL or PostgreSQL environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interested in Seeing for Yourself?
&lt;/h2&gt;

&lt;p&gt;All technical details are in the Docker hub regarding what each of the 5 steps do:&lt;br&gt;
&lt;a href="https://hub.docker.com/r/proglabs/wizards-toolkit"&gt;https://hub.docker.com/r/proglabs/wizards-toolkit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After creating a new empty folder and cd'ing to it in Terminal, the 5 simple steps can be abbreviated to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull proglabs/wizards-toolkit

# when that finishes, start the container
docker run --name wtk_website -d proglabs/wizards-toolkit

# when that finishes, extract all files from this image into your folder
docker cp wtk_website:/wtkapp/. .

# when that finishes, to build and start container
./WTK.sh

# when that finishes, to create MySQL database, tables and insert data
./SETUP_MYSQL.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;If you haven't tried Docker yet, you should.  If you do use Docker then maybe the "Docker inside Docker" method I outlined will help with one of your projects.  Please let me know if anyone has a better method for this type of deployment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Video showing above steps and WTK Starter Website
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/3myhUcsz9w8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

</description>
      <category>docker</category>
      <category>lowcode</category>
      <category>php</category>
      <category>webdev</category>
    </item>
    <item>
      <title>CSS Maker</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Mon, 26 Feb 2024 17:40:29 +0000</pubDate>
      <link>https://dev.to/alecbsherman/css-maker-1d6f</link>
      <guid>https://dev.to/alecbsherman/css-maker-1d6f</guid>
      <description>&lt;p&gt;Here is a free utility so you can quickly modify existing color themes and easily create brand new color themes using CSS.&lt;/p&gt;

&lt;p&gt;I recently paid a CSS guru to upgrade the Wizard's Toolkit CSS library to make it look even better and more modern.  Then I integrated those changes into both the core Wizard's Toolkit library and this CSS Maker.  All the new files are available for download.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/6HikuWO6ZuE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Originally built for Wizards Toolkit and MaterializeCSS, this can easily be modified for any HTML/CSS library.  If you are using MaterializeCSS this is the ideal way to test and perfect your CSS files to make sure they will look good for all aspects of your pages.  If you are using Bootstrap or some other HTML framework, it would only take you a couple hours to modify this to work specifically for your environment.&lt;/p&gt;

&lt;p&gt;With the use of JScolor and some fancy JavaScript you can see your color choices change the page in real-time.  The HTML page is built to show all the major elements we use of MaterializeCSS.&lt;/p&gt;

&lt;p&gt;The basic concept is your library will have a core CSS file.  For us that’s materialize.css.  Using variables with Cascading Style Sheets is extremely powerful.  We want to override their default colors in a way that affects all the many HTML elements.&lt;/p&gt;

&lt;p&gt;So we created a wtkGlobal.css file with the global overrides.  We wanted both a Light theme and a Dark theme option so we also created a wtkLight.css and wtkDark.css.&lt;/p&gt;

&lt;p&gt;Next we wanted to overlay different color themes.  So we created wtk{SomeColorName}.css files which are nothing but a set of CSS variables.  By listing them in this order in your HTML it properly sets up everything.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;materialize.min.css (or whatever CSS framework you are using)&lt;/li&gt;
&lt;li&gt;wtk{YourColor}.css&lt;/li&gt;
&lt;li&gt;wtkLight.css or wtkDark.css&lt;/li&gt;
&lt;li&gt;wtkGlobal.css&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This utility allows you to pick any of the CSS files in the folder and see how the page will look.  This requires the CSS file to start with 'wtk' and excludes our wtkLight, wtkDark and wtkGlobal files.  You can then modify each of the main color types and see immediately what the effect is in both Light and Dark mode.  Once you have designed a color theme you like you can save it.&lt;/p&gt;

&lt;p&gt;I also created a page on the web where you can build color themes and have the CSS shown in a browser tab for you to "Save As".  The below link provides you access to this page plus all the source code and all our WTK CSS files.&lt;/p&gt;

&lt;p&gt;For full usage this utility requires PHP (but to use the online website does not).  With that you’ll be able to easily modify it for other HTML/CSS libraries like Bootstrap or whatever you’re using.  Of course any good coder can easily modify this code to work with other languages and still benefit from the JScolor and JavaScript coding for testing and making new CSS color templates.&lt;/p&gt;

&lt;p&gt;Download the free utility at:&lt;br&gt;
&lt;a href="https://wizardstoolkit.com/css-maker/"&gt;https://wizardstoolkit.com/css-maker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That page will also send you a link where you can generate CSS color themes without needing PHP.&lt;/p&gt;

&lt;p&gt;Brought to you by Wizards Toolkit the PHP, SQL and JavaScript low-code development library.&lt;/p&gt;

&lt;p&gt;Wizards Toolkit&lt;br&gt;
&lt;a href="https://wizardstoolkit.com"&gt;https://wizardstoolkit.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MaterializeCSS&lt;br&gt;
&lt;a href="https://materializecss.com"&gt;https://materializecss.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JScolor&lt;br&gt;
&lt;a href="https://jscolor.com"&gt;https://jscolor.com&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Experienced Developers Needed</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Mon, 26 Feb 2024 00:31:47 +0000</pubDate>
      <link>https://dev.to/alecbsherman/experienced-developers-needed-3ign</link>
      <guid>https://dev.to/alecbsherman/experienced-developers-needed-3ign</guid>
      <description>&lt;p&gt;I have been building and using a low-code development library since 2009.  It includes all the basics that most websites need.  I'm asking for feedback and estimates from you, experienced developers.  How long does it take to build these basic features?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Account Registration&lt;/li&gt;
&lt;li&gt;Forgot Password&lt;/li&gt;
&lt;li&gt;Login/Logout&lt;/li&gt;
&lt;li&gt;Bug Reporting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My goal is to publicize on the low code development library website how long it takes an average developer to build these features from scratch.  Hopefully I will receive enough responses to have an averaged comparative value for these features.&lt;/p&gt;

&lt;p&gt;Are these basic functionalities already included in other development tools?  Or do they have to be built each and every time you start working with a new client?  Of course experienced developers may be copy/pasting code from prior projects but it still requires copying the SQL tables and modifying the web pages to work for the new client's website.&lt;/p&gt;

&lt;p&gt;If any of you could give me rough estimates in hours or days for each of these features I would &lt;strong&gt;greatly&lt;/strong&gt; appreciate it.  Let me also know what language or development library you are working with.  This is with the assumption that it is a client asking for a brand new database and website built from scratch.&lt;/p&gt;

&lt;p&gt;I am not interested in time estimates from no-code environments.  Anything that requires hosting on their servers instead of your servers... is what I consider a "no-code" environment.&lt;/p&gt;

&lt;p&gt;There's other features and functionality that are included in this low-code development environment but these may be less standard or difficult to give an estimate on because functionality differences could be significant.  If anyone wants to give estimates on how long any of these features have taken to build from scratch for their projects, that would of course be much appreciated.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User Management&lt;/li&gt;
&lt;li&gt;Error Logging and Tracking&lt;/li&gt;
&lt;li&gt;Failed Access / Hacker Tracking and lockout&lt;/li&gt;
&lt;li&gt;Update Logs - who changed what and when&lt;/li&gt;
&lt;li&gt;Data-driven Menus&lt;/li&gt;
&lt;li&gt;Help System&lt;/li&gt;
&lt;li&gt;Tracking Emails sent from website&lt;/li&gt;
&lt;li&gt;Report Creation (from SQL queries) and Usage Tracking&lt;/li&gt;
&lt;li&gt;Widget Creation and Grouping by Department&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading,&lt;br&gt;
-Alec&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>estimate</category>
    </item>
    <item>
      <title>Hiring Xcode and Android Studio developer</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Sat, 17 Feb 2024 22:52:23 +0000</pubDate>
      <link>https://dev.to/alecbsherman/hiring-xcode-and-android-studio-developer-j72</link>
      <guid>https://dev.to/alecbsherman/hiring-xcode-and-android-studio-developer-j72</guid>
      <description>&lt;p&gt;Wizard's Toolkit is a low-code development library which makes Progressive web apps (PWA) quickly and easily.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hiring Xcode and Android Studio developer
&lt;/h2&gt;

&lt;p&gt;Ideal candidate is up-to-date on Xcode and Android Studio development and plans to keep up-to-date with those environments.&lt;/p&gt;

&lt;p&gt;This is a long-term position but will only be worthwhile if you are already working in these environments and keeping them current on your computer.  If you are, then this opportunity is perfect for you.  The process would then be simply:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add App Icons that will be provided&lt;/li&gt;
&lt;li&gt;point to a specific web page&lt;/li&gt;
&lt;li&gt;compile and upload to Apple App Store and/or Google Play Store&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Compensation
&lt;/h2&gt;

&lt;p&gt;$160 for Xcode compile and upload to Apple App Store&lt;br&gt;
$160 for Android Studio compile and upload to Google Play Store&lt;/p&gt;

&lt;p&gt;This is what I &lt;em&gt;think&lt;/em&gt; is fair and would be extremely attractive to buyers but I am open to discussion.  Once the price is agreed upon WTK will keep 20% with the remaining 80% going directly to the App developer.  In above example the offer to clients would be $200 for an App, of which developer receives $160.  If the client wanted to have any additional custom coding done that would be handled directly between you and them and whatever hourly rate you normally charge.&lt;/p&gt;

&lt;h2&gt;
  
  
  History
&lt;/h2&gt;

&lt;p&gt;I created Wizard's Toolkit in 2009 and have built websites for many clients.  They are responsive design and look great on phones as well as tablets and computers.  For a few clients we created mobile apps which accessed camera, uploaded photos, and made phone calls as well as the normal accessing of SQL databases, etc.&lt;/p&gt;

&lt;p&gt;I hired an Xcode developer in September to make a simple app which just pointed to the login page.  It uses ReactNative and worked great.  The JavaScript in Wizard's Toolkit includes ReactNative code to natively trigger photos, manage uploads, etc.  Based on a JS variable setting determines whether pages utilize the ReactNative code for mobile app, or the HTML5 code for regular web access.  However now Xcode has upgraded and will no longer compile without ad nauseam changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;I'm looking for a long term relationship with a developer.  I'll pay them to create the first Xcode app and Android Studio app which will be uploaded to the app stores as prototype demos of what Wizard's Toolkit apps can do.  Then I will advertise to current and future Wizard's Toolkit customers that we have an in-house developer who will compile apps and upload them to the app stores for a flat fee.  Clients will have to be using Wizard's Toolkit and write their own code which they upload to their own web servers.  The App developer's only job will be adding the icons, setting the URL to point to their website, and recompiling.&lt;/p&gt;

&lt;p&gt;If you are interested I can send you a link to the prototype page and the Xcode files which were completed in September to review.  See more details and contact me through:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://wizardstoolkit.com/hiring.htm"&gt;https://wizardstoolkit.com/hiring.htm&lt;/a&gt;&lt;/p&gt;

</description>
      <category>xcode</category>
      <category>android</category>
      <category>androidstudio</category>
    </item>
    <item>
      <title>Wizard's Toolkit Setup and Configuration</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Sun, 22 May 2022 19:49:21 +0000</pubDate>
      <link>https://dev.to/alecbsherman/wizards-toolkit-setup-and-configuration-3h30</link>
      <guid>https://dev.to/alecbsherman/wizards-toolkit-setup-and-configuration-3h30</guid>
      <description>&lt;p&gt;This video shows every step to download and configure the Wizard’s Toolkit low-code PHP, SQL, JavaScript development environment. This steps through all configuration steps to get your localhost environment fully functioning.&lt;/p&gt;

&lt;p&gt;This includes creating the database with over 40 tables and standard lookup data, configure it for your server, customize the color theme, verified the back office functionality works, and finally create a custom list and edit page and linked to it from the customer portal. At the end you have all the basics for registering users, dealing with forgotten passwords, and user management.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/bvldASvDtJM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Note, this is in your own database on your own server that you have 100% control over, not like a no-code solution. Now as a developer you have a solid foundation and toolkit to quickly build data-driven websites that look good on computers, tablets and phones.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>No Code vs Low Code</title>
      <dc:creator>Alec</dc:creator>
      <pubDate>Sat, 21 May 2022 14:19:57 +0000</pubDate>
      <link>https://dev.to/alecbsherman/no-code-vs-low-code-400a</link>
      <guid>https://dev.to/alecbsherman/no-code-vs-low-code-400a</guid>
      <description>&lt;h2&gt;
  
  
  Why No-Code Solutions are Great
&lt;/h2&gt;

&lt;p&gt;You can develop extremely fast using standards that have been stress tested thousands of times.  You don't need to be a programmer and usually you can just drag-and-drop functionality for your website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why No-Code Solutions are Horrible
&lt;/h2&gt;

&lt;p&gt;In order for the service provider to have their no-code functionality work they must keep it on their servers.  Most want to host your database also.  If you want any slight change or enhancement it just is not possible because if they make the enhancement for you it could break the websites of other no-code customers hosted on their servers.&lt;/p&gt;

&lt;p&gt;Building your business with no-code is committing yourself to never want to do anything that hasn't been done before.  Committing to only doing what everyone else is doing exactly as they are doing it.&lt;/p&gt;

&lt;p&gt;Have you had your website on a shared server before?  Most of the time that's fine.  However sometimes someone else's website has bad code  which ties up all resources on the server.  Or one of the other co-hosted websites has a DDOS attack which brings the server to a crawl  for everyone. Or good news - a website becomes trendy and super-popular and the onrush of visitors is more than the server can handle.&lt;/p&gt;

&lt;p&gt;No-code solution providers should have good servers with full redundancy.  Redundant RAID hard drives, load-balanced web servers, load-balanced SQL servers, regular backups, redundant network cards, etc.  If any part of their server goes down you better hope their technical staff are good and available for emergencies.  Most likely they are... but if they are not there &lt;strong&gt;is nothing you can do&lt;/strong&gt;.  You &lt;em&gt;do not&lt;/em&gt; have access to the server.  You &lt;em&gt;do not&lt;/em&gt; have access to the backups.&lt;/p&gt;

&lt;h2&gt;
  
  
  Low-Code Imposters
&lt;/h2&gt;

&lt;p&gt;If a company touts themselves as a low-code solution but they &lt;strong&gt;require&lt;/strong&gt; you to host on their servers... they have all the problems of a no-code provider.  Do you have full FTP access?  Can you change the configuration on the web server?  Is your traffic affected by other traffic on the same server hitting the same database?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Low-Code Difference
&lt;/h2&gt;

&lt;p&gt;When you are using a low-code solution you have all the code available to modify as-needed.  You host it on your own server.  You decide your load-balancing needs.  If there is a problem with your server, you can fix it.&lt;/p&gt;

&lt;p&gt;If you want to build something in a way that has never been done before... you can do that.  Either by making your own pages and integrating them or by making core changes to the low-code library so it works exactly the way you want it to.&lt;/p&gt;

&lt;p&gt;Nobody has ever had to throw away their low-code solution because they could not add a feature or functionality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difference of Opinion
&lt;/h2&gt;

&lt;p&gt;If you ask a new founder who doesn't code of course they will be inclined to use a no-code solution.  That might be fine for roughing-out an idea and making a MVP (minimum viable product).&lt;/p&gt;

&lt;p&gt;If you ask a programmer they will almost always declare they do not want to work on a no-code solution.  That's because they &lt;strong&gt;know&lt;/strong&gt; that eventually the founder is going to request something which seems reasonable and easy but is absolutely impossible to do on the no-code  platform.  At that point either you settle for not having the feature or you rewrite everything from scratch and throw away all you have done on the no-code platform.&lt;/p&gt;

&lt;p&gt;Another important consideration is maintainability and ability to enhance the code.  If you look for a Bubble developer you will find hundreds if not thousands of them.  If you ask them to take over and enhance the code that a different Bubble coder wrote... good luck.  I've heard that most will say it is easier for them to start over from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;No-code solutions are amazing technology if you want to experiment and maybe build a MVP.  Just be aware that sooner or later you will probably have to migrate to a solution that is more robust and flexible.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>lowcode</category>
    </item>
  </channel>
</rss>
