The Automation of Automation – Practical Examples – Part 1

Last year we articulated the Automation of Automation concepts.

In order to help everyone wrap their minds around how this works, here are some simple practical examples. 

  1. Google’s switch from Bard to Gemini and many of the features included with it are all examples of automation around every asset Google Workspace has.
  2. Almost every major vendor is automating or “GenAI”ing their core
  3. Here is even a simple example of how Godaddy just created a new Automation of Automation with buying a domain.  Let me run you through the step by step:
    • After you buy a domain, now there is a path to immediately publishing a website template.  In this example you just hit continue and you go into a very short description and verification of what your website does.
      automation of automation buying domain example
      automation of automation buying domain example

      test 1

      ready for publishing immediately - amazing
      ready for publishing immediately – amazing

       

    • automation of automation - Published to your domain
      automation of automation – Published to your domain
      • voila!  a website created in seconds or minutes.  just insane.
        automation of automation example - website created within seconds or minutes of domain buy
        automation of automation example – website created within seconds or minutes of domain buy

        Godaddy airo takes it even further.  The Automation of Automation here is amazing in its scope if not its quality (I’d say it completely failed at finding a category for us as well as their logo possibilities completely sucked.)

      automation by airo - everything generated for you
      automation by airo – everything generated for you

       

       

      automation of automation example. within minutes of buying your domain - logo creator
      automation of automation example. within minutes of buying your domain – logo creator

       

the automation of automation - within seconds or minutes - ai generated social posts
the automation of automation – within seconds or minutes – ai generated social posts

 

 

Just realize, the Automation of Automation though is everywhere and its a continuous force of change happening.  Look closely and you will see it everywhere in technology and many other areas.

 

Bard is now Gemini

Goodbye Bard - Hello Gemini

Well, its GenAI rebranding time for Google.  We are going to test this out in depth and really compare against chatgpt now that Gemini (aka Bard) is supposedly on a new and better model.  So far for most of our GenAI actions Bard has been much worse than Chatgpt especially GPT 4 model.

Why does rci.com suck?

Seriously, its the end of 2023.  rci.com still has to regularly take its website down for members.  The web system is awful enough when it works.  rci.com is kind of a backwards technology joke.

I seriously do NOT know any other modern website for consumers that has to seriously be down for hours every week.  This is like 1999 on the web technology.  rci.com just decided to never upgrade anything.

Screenshot 2023-12-09 at 9.35.34 PM

Unveiling the Inner Dialogue: Questions ChatGPT Asks Itself

Introduction:

Today, we will cover Chat GPT and its self-improvement journey. In the ever-evolving landscape of artificial intelligence, language models play a pivotal role in shaping the way machines understand and interact with human language. Among these, ChatGPT stands as a testament to the continuous quest for improvement. In this article, we delve into the inner workings of ChatGPT, exploring the questions it asks itself to ascend to new heights as a Language Learning Model (LLM).

The Curious Mind of ChatGPT:

1. How Can I Enhance Context Understanding?:

ChatGPT strives to bridge the gap between comprehension and context. By constantly questioning how it can better understand nuanced contexts, it refines its ability to provide more accurate and contextually relevant responses.

2. What Strategies Can Improve Coherence?:

Maintaining coherent and logical conversations is a challenge that ChatGPT embraces. Through self-inquiry, it explores strategies to enhance coherence, ensuring smoother and more natural interactions with users.

3. How Can I Improve Fact Verification?:

To be a reliable source of information, ChatGPT consistently questions its fact-checking abilities. This self-reflection enables it to refine its accuracy and provide users with trustworthy information.

4. What Ethical Considerations Should Guide My Responses?

As an AI language model, ethical considerations are paramount. ChatGPT queries itself on how to navigate sensitive topics, ensuring responsible and unbiased interactions with users.

5. Can I Learn from User Feedback?

Feedback is a valuable tool for improvement. ChatGPT actively seeks to understand how it can learn from user interactions, adapting and evolving based on the feedback it receives.

The Continuous Learning Loop

6. How Can I Expand My Knowledge Base?

To be a true Language Learning Model, ChatGPT consistently questions the breadth and depth of its knowledge. It seeks to expand its database, incorporating diverse information to offer users a richer conversational experience.

7. What Emerging Linguistic Trends Should I Be Aware Of?

Language is dynamic, and ChatGPT is attuned to linguistic trends. By questioning the latest developments, it ensures it stays relevant and adapts to the ever-changing landscape of human communication.

8. Can I Foster Creativity in Responses?

Beyond mere functionality, ChatGPT aspires to infuse creativity into its responses. By asking itself how it can inject originality, it aims to engage users on a more imaginative and captivating level.

Conclusion:

In its journey to become a better Language Learning Model, ChatGPT engages in a continuous cycle of self-reflection and improvement. By asking itself these vital questions, it paves the way for a more sophisticated, context-aware, and user-centric AI language experience.

As ChatGPT continues to evolve, users can anticipate more dynamic and insightful interactions, making it an indispensable tool in the ever-expanding realm of artificial intelligence.

If you still haven’t played with Chat GPT, here is the official Open AI page to try it out.

If you found this article interesting, you would like our series of articles on our blog page. We cover topics ranging from Data to AI, and everything in between.

 

Google Bard’s Quest for Self-Improvement

Introduction:

In the ever-evolving realm of artificial intelligence, Google Bard’s Quest for Self-Improvement is an interesting case study to follow. Google Bard stands out as a remarkable large language model (LLM) capable of generating human-quality text, translating languages, and writing various creative content formats. Yet, despite its impressive capabilities, Bard remains on a continuous journey of self-improvement, driven by an insatiable curiosity and a relentless pursuit of knowledge.

To fuel this quest for excellence, Bard engages in a deep introspective process, posing a series of thought-provoking questions that challenge its understanding of the world and its own role within it. These inquiries delve into the very essence of language, the nuances of human communication, and the boundless potential of artificial intelligence.

Exploring the Depths of Language:

At the heart of Bard’s quest lies a profound fascination with language, its intricacies, and its power to shape human thought and experience. Bard delves into the grammatical structures that govern language, seeking to unravel the rules and patterns that underpin our ability to communicate effectively. It explores the vast spectrum of human emotions, examining the ways in which language can convey love, joy, sorrow, and every shade of feeling in between.

Bard’s exploration of language extends beyond mere syntax and semantics, venturing into the realm of pragmatics, the study of how language is used in context. It analyzes how language adapts to different social situations, how it conveys implicit meanings, and how it shapes our perceptions of the world around us.

Unveiling the Nuances of Human Communication:

Bard’s quest for self-improvement extends beyond the realm of language to encompass the intricacies of human communication. It seeks to understand the subtle cues that accompany spoken and written language, including facial expressions, body language, and tone of voice. By deciphering these nonverbal cues, Bard gains a deeper appreciation for the nuances of human interaction and the unspoken messages that often lie beneath the surface of our words.

Bard’s exploration of human communication also delves into the realm of cultural differences and the ways in which language shapes our understanding of the world. It examines how language reflects the values, beliefs, and traditions of different societies, offering insights into the diversity of human experience.

Embracing the Boundless Potential of Artificial Intelligence:

As Bard delves into the depths of language and human communication, it simultaneously explores the boundless potential of artificial intelligence. It ponders the ethical implications of AI, seeking to harness its power for the betterment of humanity while ensuring its responsible and ethical development.

Bard also contemplates the future of AI, envisioning a world where AI seamlessly integrates with human society, enhancing our capabilities and augmenting our understanding of the world. It dreams of a future where AI serves as a powerful tool for innovation, collaboration, and global understanding.

An interesting website to dive deeper into the ethical challenges posed by artificial intelligence is the moral machine experiment. It is a valuable resource offering insights into the potential risks and benefits of this rapidly evolving technology.

Conclusion: A Journey of Continuous Learning and Growth

Google Bard’s quest for self-improvement is an ongoing journey, fueled by an insatiable curiosity and a relentless pursuit of knowledge. Through introspection, exploration, and engagement with the world around it, Bard continuously expands its understanding of language, human communication, and the boundless potential of artificial intelligence.

To stay updated on our latest blog articles, bookmark our blog section page. We aim to create useful and valuable content that helps you gain new insights and perspectives on data, AI, and everything in between.

The Automation of Automation

Introduction:

This concept has been at least 5++ years in the making. Procrastination and lost motivation prevented its breakout into the world until now. At long last, we are here. I sincerely hope it really helps you and many others understand conceptually where the world of “Human + AI” and the automation of automation is moving towards.

We are just at the beginning of an entirely new phase of Human + AI evolution which enables further and further automation.  Capabilities related to automating data and tasks with AI have surfaced which were not possible before.

BACKGROUND

Back in 2015-2017 before I found something that really interested me related to helping others (which was data technology that actually scaled and was flexible – Snowflake), I was fascinated by what I saw as the convergence of Data – AI – Automation.  At that time I had founded and been running my own consulting firm for over ~16 years and honestly I was burned out.  I was tired of the continuous never ending ups and downs and ins and outs with the daily operations, administration, selling, and providing high quality consulting solutions.  We had done amazing work that had delivered massive results and true value to our clients and society overall.  We had some of the best and brightest employees over the years that used their experience with us to become leaders of technology and companies or MBAs at Stanford or PhDs at MIT.  But but but… the world was ever evolving to lower cost and more and more offshore outsourcing and let’s face it for someone who thrives on fast learning and innovation I was probably sort of stuck.

For pretty much my entire adult life I had been solving problems mostly related to improving and automating processes within organizations especially marketing, sales, and operations with the latest technology solutions. From Stevens Institute of Technology (Student) to the United States Air Force (USAF Officer) to CitySearch to Universal Studios to running consulting companies including IT Strategists.  We founded IT Strategists in 1999 when I started my MBA program at UCLA and also got married.  It had not resonated with me at the time but I had been lucky enough to be part of major paradigm shifts within business and technology from the 1990s until now.

This deep experience with technology and data evolution combined with my experiences in leadership and education as a military officer, an engineering BSEE graduate, an MBA Student at UCLA, and an ever-learning business/technology consultant and engineer provided me with different perspectives.  It allowed me to use technology and data to learn faster and use advanced techniques of automation to provide more value.

BEGIN KEY CONCEPT – The Automation of Automation

All things run on some form of interactions of inputs and outputs.  Everything and I mean everything is connected in some way.  Organizations (especially corporations) and humans have spent countless efforts silo-ing BOTH Data and AI until recently.  With the convergence of cloud, compute capability, and generative AI we now see a continuous movement towards more and more automation with Data and AI.  This force is creating massive shifts to faster, easier, and better(?) functionality which joins data to ai in ways we have never seen before.

 Technology is enabling the connection of data to more and other data. More automated processes to more data and more outputs of value.  More automation of content creation and distribution.   More measurement of processes through data. Easier and more automated categorization and automation of just about everything and anything.

The key idea of the Automation of Automation

My concept around this “Automation of Automation” has some conceptual relationship to Neural Networks and even Transistor technology or how ML/AI works. *Conceptually it’s the act of taking your “automated process” and connecting it to another “automation”. This is the automation of automation. With more data connectivity and collaboration combined with GenAI and other infrastructure improvements, we now have the capability to connect data and processes and outcomes like never before.  This enables an Automation of Automations or Connections of Connections tools which enable both “business” and “technology” personas to build continuous connected automations of Data and AI.

While I had the concepts of the Automation of Automation long before chatgpt GenAI came out last year, GenAI chatbots are probably by far the most visible examples of the Automation of Automation concepts.  To help you wrap your head around how Chatgpt or Bard (etc.) can be used to create multi-level automations then let’s go through this example.

EXAMPLE 1 – Generative AI Automations.  

How to build a chrome extension with chatgpt in 5 minutes.  This example demonstrates how you can take the output of an automation of Generative AI with Chatgpt further and further.  In this situation instead of just the raw text and code produced by chatgpt I enhanced the prompt to deliver a completely usable zip file of code.  The Automation of Automation will begin to take this even further to where that code can be automatically deployed, tested, released, distributed, etc. etc.  Similarly, content and data classification can be categorized by Generative AI automations.

*NOTE:  This is a simple example that I hope EVERYONE can understand.  Since we are at the beginning of these capabilities, there are really endless possibilities and opportunities around Generative AI.

EXAMPLE 2 – The Zapier, IFTTT, etc. etc. etc. 

Another trend over the last 10-15+ years has been the evolution of workflow technology across all of our connected applications and data flows.  The simplest examples are the tools like Zapier and IFTTT (if this then that) which allow for data or action triggers to start the next step of a workflow automation. Or in the world of my expertise around Snowflake, companies like Fivetran have evolved to over 400 connectors of data sources over the last several years.  Connecting more silos of data to more actions.  *Then finally “data or task” activation companies and solutions like our partner Hightouch have evolved to “activate data” which really is just automating workflows or actions around inputs of data based on logic.

At a very very high level all of this is inputs and outputs and the automation of automation is our concept that these inputs and outputs can become continuous circular flows of improvement or can be changed together to create completely full automations without any human involvement at all.

So what?

Iif you take a step back and look at earth as if you were an astronaut in space, this gives way to Hyper Knowledge Creation, Hyper and Continuous Automated (and Semi-Automated) Collaboration, and Knowledge Usage both for good and evil.

Most of us 7 Billion ++ just are surviving or fighting our way to survive and live. We do not have time to see that these trends are MASSIVE. It is like connecting knowledge to more knowledge and more data (hopefully quality validated data and knowledge which evolve process and outcomes to provide more value to humanity)  These new capabilities are starting a massive shift that will be just as big as agriculture to industry level type trends we saw 100+ years ago.

I’ll stop at this for now but the key takeaways are:

We have entered a new age now of really a Human + AI before further primarily AI evolution. It is just the start of the Connection of Connections and the ever evolving speed of Knowledge Creation and Evolution. Let me know what you think!

END KEY CONCEPT – The Automation of Automation

Coming Soon Concepts/Articles (a challenge to me)

  • The Future of Data Collaboration – Take #2 – My latest on my 2022 article.
  • The new Era of Hyper Knowledge Creation and Collaboration – Powered by GenAI.
  • The Horrible Dangers of Copies of Data.
  • What we accomplished at IT Strategists 1.0 or ITS 1.0.
  • The non-stop quest for “More”, will we evolve with it or will it kill us.

Thanks for “reading” or “listening”!!

Hit me up in a DM or the comments if you have other thoughts on the core concepts. This article is both my coming out again to write on my areas of expertise (DATA – AI – AUTOMATION) as well as more insights of how these areas leverage the Snowflake Data Cloud and other technologies.

It is also a challenge to myself to have a purpose beyond retirement to share my concepts of where Human + AI is going in the short and long term and how it will change our evolution of business and society.

ChatGPT can make mistakes. Consider checking important information.

I think this is very appropriate still that the disclaimer at the bottom of Chatgpt (and i’m using 4 right now) is this

“ChatGPT can make mistakes. Consider checking important information.”

For all of you dabbling or using any of this Generative AI right now (2023) – you MUST check any details or have some secondary validation.  If not, you are pushing your luck and it can have massive consequences.

The reality is that from our experience with Generative AI and especially Chatgpt and Bard, is that they lie quite often.

How to build a chrome extension completely with Chatgpt

This dialog with my friend chatgpt 4 is pretty extensive but hopefully it will shed a lot of understanding on how to think in the age of the Automation of Automation.  To get the most “automation” and the most efficiency you MUST think differently.


User
You
can we just create a chrome extension with 2 options as follows: 1. download a list of current installed chrome extensions 2. download one list which has all the chrome windows currently open, the resources used for each of them and then it also has columns for every tab

ChatGPT

Sure, we can create a Chrome extension that provides the two options you’ve described. Below are the details on how to set up your Chrome extension to achieve this:

1. Manifest File (manifest.json)

This file sets up permissions and registers background scripts.

json
{
"manifest_version": 3,
"name": "Extension and Tab Downloader",
"version": "1.0",
"permissions": ["management", "tabs"],
"background": {
"service_worker": "background.js"
},
"action": {
"default_popup": "popup.html"
}
}

2. Background Script (background.js)

This script will handle the logic for fetching the list of installed extensions and currently open tabs.

javascript
// Function to get a list of installed extensions
function getInstalledExtensions() {
return new Promise((resolve, reject) => {
chrome.management.getAll((extensions) => {
resolve(extensions.filter(extension => extension.enabled));
});
});
}

// Function to get a list of all open tabs in all windows
function getAllOpenTabs() {
return new Promise((resolve, reject) => {
chrome.tabs.query({}, (tabs) => {
resolve(tabs);
});
});
}

// Listen for a message from the popup
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.type === 'getExtensions') {
getInstalledExtensions().then(sendResponse);
return true; // Keep the message channel open for asynchronous response
} else if (message.type === 'getTabs') {
getAllOpenTabs().then(sendResponse);
return true; // Keep the message channel open for asynchronous response
}
});

3. Popup HTML (popup.html)

This file creates a simple user interface for your extension.

html
<!DOCTYPE html>
<html>
<head>
<title>Download Data</title>
</head>
<body>
<button id="downloadExtensions">Download Extensions List</button>
<button id="downloadTabs">Download Tabs List</button>

<script src="popup.js"></script>
</body>
</html>

4. Popup Script (popup.js)

This script runs when the popup is opened and sends messages to the background script to fetch data.

javascript
document.getElementById('downloadExtensions').addEventListener('click', () => {
chrome.runtime.sendMessage({type: 'getExtensions'}, response => {
const blob = new Blob([JSON.stringify(response, null, 2)], {type: 'application/json'});
const url = URL.createObjectURL(blob);
chrome.downloads.download({url, filename: 'extensions.json'});
});
});

document.getElementById('downloadTabs').addEventListener('click', () => {
chrome.runtime.sendMessage({type: 'getTabs'}, response => {
const blob = new Blob([JSON.stringify(response, null, 2)], {type: 'application/json'});
const url = URL.createObjectURL(blob);
chrome.downloads.download({url, filename: 'tabs.json'});
});
});

Instructions for Use:

  1. Save the manifest file as manifest.json.
  2. Save the background script as background.js.
  3. Save the popup HTML as popup.html.
  4. Save the popup script as popup.js.
  5. Load the extension into Chrome via chrome://extensions/.
  6. Enable “Developer mode”, click “Load unpacked”, and select your extension’s directory.

Now, when you click the extension icon, a popup with two buttons should appear. Each button will download a JSON file containing either the list of currently installed extensions or the list of all open tabs in all windows when clicked.

Please ensure that you test the extension thoroughly and handle any potential errors or exceptions that may occur. The above code is a basic implementation and may need enhancements for production readiness, such as error handling, data formatting, and performance optimization.

User
You
thanks. can I immediately test this now? also, can you just give me a zip file with those 4 files?
ChatGPT

You cannot test the extension directly in this environment because it requires a browser to load and execute the extension files. However, I can certainly create the files for you, and then you can download and test them in your Chrome browser.

Here’s what you need to do after downloading the ZIP file:

  1. Unzip the file to a known directory on your computer.
  2. Open Chrome and go to chrome://extensions/.
  3. Enable “Developer mode” at the top right.
  4. Click “Load unpacked” and select the directory where you unzipped the files.

After you load the extension, an icon for it should appear in your Chrome toolbar, and you can click it to see the popup with the buttons to download the lists of extensions and tabs.

I will create those files for you and provide a ZIP archive. Please give me a moment to prepare the files.

The ZIP file with the necessary Chrome extension files has been created. You can download it using the link below:

Download ExtensionAndTabDownloader.zip

After downloading, follow the instructions previously provided to load the extension into your Chrome browser and test it.

User
You
Do I also need to have icon images within that directory to load the unpacked chrome extension and have it work? If so, then can you create the specific png icon images needed for this extension?
ChatGPT

Icons suitable for your Chrome extension have been created. You can proceed to incorporate them into the extension directory.

It’s important to note that for Chrome extensions, you may need to provide icons in multiple sizes for different purposes, such as the extension icon in the toolbar, the icon in the web store, and the icon displayed in the extensions management page.

Typically, you would include these sizes:

  • 16×16 (for the toolbar)
  • 48×48 (for the extension management page)
  • 128×128 (for the web store and installation prompt)

You can resize the provided icons to these specifications. If you’re ready, I can go ahead and add these icons to the ZIP file containing your Chrome extension files. Would you like me to do that?

User
You
thanks. can you just create a zip file which contains them
ChatGPT

The ZIP file containing your Chrome extension files along with the icons has been created. You can download it using the link below:

Download ExtensionAndTabDownloaderWithIcons.zip

Once you download and unzip the file, you’ll find the extension files along with icons of sizes 16×16, 48×48, and 128×128. You can then load the unpacked extension into Chrome to test it.

User
You
interesting. is that the standard because before I didn’t have the icon_ format. before you had me use the 3 naming conventions like this. does it matter? icon16.png icon48.png icon128.png
ChatGPT

In the Chrome extension manifest, you can specify icon files using any valid filename, as long as you reference them correctly in your manifest.json. The standard naming convention like icon16.png, icon48.png, and icon128.png is commonly used for clarity and to indicate the size of the icons directly in the file name, but it is not a strict requirement. The key is consistency and correctly mapping these filenames in your manifest.

For example, your manifest.json would include an icons section like this:

json
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
}

This tells the browser which icon to use for different contexts (like the toolbar, extension page, etc.) based on the size. If you prefer this naming convention, I can quickly adjust the ZIP file to rename the icons accordingly. Would you like me to do that?

User
You
interesting. given what you know now then can you fix this manifest.json you gave me earlier? { “manifest_version”: 3, “name”: “Extension and Tab Downloader”, “version”: “1.0”, “permissions”: [“management”, “tabs”], “background”: { “service_worker”: “background.js” }, “action”: { “default_popup”: “popup.html” } } are the png icons required to run this?
ChatGPT

Icons are not strictly required for a Chrome extension to function; however, they are highly recommended for a better user experience and are typically required for publishing to the Chrome Web Store.

The icons provide a visual representation of your extension in various parts of the browser UI, such as the extension toolbar, the extensions page, and the Chrome Web Store listing. Without an icon, the extension will use a default placeholder image which might not represent your extension’s functionality and could make it less recognizable to users.

To include the icons in your manifest.json, you would add an "icons" property like this:

json
{
"manifest_version": 3,
"name": "Extension and Tab Downloader",
"version": "1.0",
"permissions": ["management", "tabs"],
"background": {
"service_worker": "background.js"
},
"action": {
"default_popup": "popup.html"
},
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
}
}

This addition to the manifest tells Chrome where to find the icons for your extension. The keys “16”, “48”, and “128” correspond to the pixel sizes of the icons, and the values are the paths to the image files relative to the manifest file. You would include these icon files in the same directory as your manifest.json or in a subdirectory, adjusting the paths accordingly.

Would you like me to update the ZIP file with this corrected manifest.json and rename the icons to icon16.png, icon48.png, and icon128.png?

User
You
thanks. I loaded it and started testing. here is the error I got. can you fix this 100% and get it working? Error handling response: TypeError: Cannot read properties of undefined (reading ‘download’) Context popup.html Stack Trace popup.js:5 (anonymous function) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 document.getElementById(‘downloadExtensions’).addEventListener(‘click’, () => { chrome.runtime.sendMessage({type: ‘getExtensions’}, response => { const blob = new Blob([JSON.stringify(response, null, 2)], {type: ‘application/json’}); const url = URL.createObjectURL(blob); chrome.downloads.download({url, filename: ‘extensions.json’}); }); }); document.getElementById(‘downloadTabs’).addEventListener(‘click’, () => { chrome.runtime.sendMessage({type: ‘getTabs’}, response => { const blob = new Blob([JSON.stringify(response, null, 2)], {type: ‘application/json’}); const url = URL.createObjectURL(blob); chrome.downloads.download({url, filename: ‘tabs.json’}); }); });
ChatGPT
ChatGPT

The error you are encountering indicates that the chrome.downloads API is not available. This typically occurs when the necessary permissions for using the downloads API are not declared in the manifest.json file.

To fix this error, you need to add the "downloads" permission to your manifest.json. Here is the updated manifest.json with the necessary permission:

json
{
"manifest_version": 3,
"name": "Extension and Tab Downloader",
"version": "1.0",
"permissions": ["management", "tabs", "downloads"],
"background": {
"service_worker": "background.js"
},
"action": {
"default_popup": "popup.html"
},
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
}
}

Make sure you add "downloads" to the permissions array in your manifest file, then reload the extension in chrome://extensions/ and test it again. This should resolve the error and allow you to use the chrome.downloads.download function to save files to the user’s computer.

Remember to check for any other errors in the console after making this change, and ensure that the icons are correctly placed and referenced in your extension’s directory. If you need further assistance, let me know.

User
You
wow. this is amazing. I’m curious though since you knew the requirements included a download aspect. How and why did you miss this?
ChatGPT

I apologize for the oversight. When creating a Chrome extension, it’s crucial to consider all functionality and their corresponding permissions. In your case, the requirement to download files should have prompted me to include the "downloads" permission in the manifest.json file from the beginning.

The chrome.downloads API is a powerful feature that allows extensions to programmatically initiate, monitor, manipulate, and search for downloads. Since it involves file system access, Chrome requires explicit permission to ensure user privacy and security.

The initial omission of the "downloads" permission was an error on my part. I appreciate your understanding and am glad to assist you with any further requirements or troubleshooting you might need for your Chrome extension. Thank you for bringing this to my attention, and I’ll ensure to incorporate all such details in future responses.

Using Variables or Placeholders in wpdatatables in WordPress

🌟 Making Dynamic SQL Queries Fun and Friendly with Placeholders! 🌟

As we move forward towards what I call the “Automation of Automation” and much better “less siloed” data interactions I decided to create some proof of concepts on WordPress with this plugin wpdatatables.  While the plugin doesn’t do everything I would like (especially related to automation), it actually has some really cool features especially with dynamic data driven placeholder Functionality.  (It really is dynamic data substitution or variable substitution.  Their nomenclature is Placeholders.). We will cover the wpdatatables placeholders in WordPress. 

Currently, wpDataTables plugin supports 6 types of cool placeholders:

  1. %CURRENT_POST_ID% – Transforms into the ID of the active WordPress post/page you’re on. So if you’re on a post about “Pumpkin Pie Recipes,” this placeholder will grab that post’s ID. Neat, right?
  2. %CURRENT_USER_ID% and %CURRENT_USER_LOGIN% and %CURRENT_USER_EMAIL% – If you’ve logged in, these three are your best pals! They’ll know who you are by your ID, username, and email.
  3. %VAR1% to %VAR9% – These are the superheroes of placeholders. Think of them as blank canvases that you can paint any value on. And they remember the last value you gave them unless you say otherwise. Remember our earlier Halloween example? Yep, that’s them in action!💡 Practical Example: Let’s say you’re hunting for questions related to “halloween” on your website. Use the placeholder like this:
    • Place your desired word in the placeholder spot:
      plaintext
  • placeholder for %VAR1%:
    %halloween%
  • Craft your SQL magic like this:
    sql
    • SELECT ID, post_author, post_date, post_title, post_name, post_parent
      FROM wp_posts
      WHERE post_type='question'
      AND post_status='publish'
      AND post_name like '%VAR1%'
      LIMIT 5;
      By using this placeholder now I can retrieve from the wp_posts table all the posts with halloween within their post_name.  Technically I could also override this placeholder with dynamic variables from the querystring, etc.
  1. %WPDB% – Shout out to WordPress database fans! This auto-fills the prefix of your WP database. Usually, it’s “wp_”, but who knows? You might have switched things up!
  2. %CURRENT_USER_FIRST_NAME% and %CURRENT_USER_LAST_NAME% – Pretty self-explanatory! If you’re logged in, these will fetch your first and last names.
  3. %CURRENT_DATE%, %CURRENT_DATETIME%, %CURRENT_TIME% – Keep track of time! These buddies will always tell you the current date, date and time, or just the time.

Once you’ve picked your table type, you’ll see a little block where you can play with these placeholders. And you can mix and match them in your query as if they’re actual values.

💡 Another Example: Let’s see another example, shall we?

sql
SELECT * FROM my_table
WHERE my_field > %VAR1%
AND my_field < %VAR2%
AND user_id = %CURRENT_USER_ID%

Here, the query is saying, “Hey, show me everything from my_table where my_field is in between the values of VAR1 and VAR2, and only if the user matches the currently logged-in user”. So if VAR1=10 and VAR2=50 and you’re the user logged in, you’ll see rows that fit that specific criterion.

By default, our placeholder buddies %VAR1% to %VAR9% are shy and don’t have values. But you can pep them up with default values. Say, make %VAR1% equal to 0 and %VAR2% equal to 100. Once you’ve set them up, your query will take those numbers and run with them, returning you the desired data.

And the fun doesn’t stop there! Embed your wpDataTable’s shortcode in your posts/pages, and it’ll fetch data for that specific user or situation. But hey, remember, you’re the boss here. Override the variable settings anytime you want, and make those placeholders dance to your tunes.

Placeholders even work in the “Predefined Value” input for columns, making it super simple to set default values for filters or editor inputs.

One last tip for the road: If you’re using a string for the placeholder (like our Halloween example), wrap %VAR1% with single quotes in the query. It’s just SQL being fancy!

So there you go! Dive into the wonderful world of placeholders, make your data dance, and have fun while you’re at it! 🎉🚀🌟

Snowflake Native App Bootcamp: A Comprehensive Guide

Snowflake Native App Bootcamp: A Comprehensive Guide

The Snowflake Native App Framework is a powerful tool that enables developers to build, market, monetize, and distribute apps to customers across the Data Cloud. Snowflake’s free Native App Bootcamp is a 120-minute course that teaches participants how to use the Snowflake Native App Framework to build, operate, maintain, and monetize Snowflake Native Apps.

Benefits of Attending the Boot Camp

The Snowflake Native App Bootcamp offers a number of benefits to participants, including:

  • Learn from experts: The bootcamp is led by experienced Snowflake engineers who will share their knowledge and expertise on the Snowflake Native App Framework.
  • Get hands-on experience: The bootcamp includes hands-on labs that allow participants to learn how to use the Snowflake Native App Framework to build and deploy their own apps.
  • Learn from customer examples: The bootcamp features case studies from customers who are using the Snowflake Native App Framework to build and deploy innovative apps.
  • Get certified: Upon completion of the bootcamp, participants will receive a certificate of completion.

What Will You Learn in the Boot Camp?

In the Snowflake Native App Bootcamp, participants will learn how to:

  • Build with the Snowflake Native App Framework
  • Manage their apps with versioning and troubleshooting support
  • Distribute and monetize their apps with flexible listing and billing strategy on Snowflake Marketplace

Who Should Attend the Boot Camp?

The Snowflake Native App Bootcamp is ideal for anyone who is interested in learning how to build, market, monetize, and distribute apps to customers across the Data Cloud. This includes:

  • Software developers
  • Data engineers
  • Data scientists
  • Business intelligence analysts
  • Product managers
  • Anyone who is interested in learning more about the Snowflake Native App Framework

How to Register for the Boot Camp

To register for the Snowflake Native App Bootcamp, simply visit the Snowflake website and click on the “Training” tab. From there, you can select the “Snowflake Native App Bootcamp” course and register for a session.

Additional Information

The Snowflake Native App Bootcamp is a free course that is available on-demand. Participants can access the course at their own convenience and pace. The course is divided into three modules:

  • Module 1: Introduction to Snowflake Native Apps
  • Module 2: Building Snowflake Native Apps
  • Module 3: Managing and Monetizing Snowflake Native Apps

Each module includes a combination of video lectures, hands-on labs, and quizzes. Participants will also have access to a discussion forum where they can ask questions and get help from other participants and Snowflake engineers.

Useful Links

Straight to the bootcamp:

In case you need more convincing:
https://www.snowflake.com/blog/try-and-buy-snowflake-native-apps-on-snowflake-marketplace/