Favorite Gadgets
This blog will hold favorite gadgets and graphic user interfaces that don't really fit in my main blog @ mmcelhaney.blogspot.com
Tuesday, December 17, 2024
Thursday, December 5, 2024
Abacus.AI
NoteGPT - One of my Favorite AI Tools
NoteGPT is a great tool. I like it because I can use it to summarize YouTube videos and podcasts as well as many other things like PDF files. You can generate flashcards and mind maps.
AI Chatbots Across Applications
These tools are downloaded onto your machine and can interact with multiple applications on your machine and not just the web browser.
ChatHub: When You Need Multiple Perspectives
Let's say you want to submit the same prompt to multiple chatbots at one time! Can you do it? With ChatHub you can do exactly that and use 4 of the major models for free. I like using it. I ain't getting paid for this, so I am keeping it short. I see a lot of model to choose from and it appears you get access to all they offer for $100 in one year.
Monday, December 2, 2024
The Visual Power Duo: Mind Maps vs. Infographics
In the world of visual communication, two powerful tools stand out: mind maps and infographics. Both serve the purpose of conveying information visually but are distinct in their design and applications. Let's dive into what makes each unique and explore scenarios where they shine.
Mind Maps: The Organized Chaos
Definition: A mind map is a diagram used to visually organize information. It starts with a central idea and branches out into related subtopics, making it an effective tool for brainstorming and organizing thoughts.Structure:
Central node for the main idea.
Branches representing subtopics.
Sub-branches for additional details.
Use Case 1: Project Planning
Scenario: A project manager needs to outline the key phases, tasks, and deadlines for an upcoming project.
Why Mind Map: The hierarchical structure of a mind map makes it easy to break down complex projects into manageable parts, showing relationships between tasks.
Use Case 2: Learning a New Topic
Scenario: A student wants to grasp the main concepts and subtopics of a new subject.
Why Mind Map: Visualizing the subject matter helps in understanding how different concepts are interconnected, aiding memory retention.
Infographics: The Visual Storyteller
Definition: An infographic is a visual representation of information, data, or knowledge intended to present information quickly and clearly. It combines text, images, and design elements to communicate a message effectively.
Structure:
Visual elements like icons, charts, and images.
Text for context and explanation.
A cohesive design layout.
Use Case 1: Marketing Campaigns
Scenario: A marketing team needs to present the results of a campaign to stakeholders.
Why Infographic: Infographics can showcase data and insights in a visually appealing way, making it easier for stakeholders to understand the impact of the campaign.
Use Case 2: Educational Content
Scenario: An educator wants to explain the water cycle to students.
Why Infographic: Complex processes can be broken down into simple, digestible visuals, making it easier for students to grasp.
Comparing the Tools: Infografix, NoteGPT, and Visme
Infografix
Overview:
Price: Free
Pros: AI-based, simple interface, fast.
Cons: Limited customization and features.
Best For:
Quick, AI-generated infographics without needing extensive design skills.
NoteGPT
Overview:
Price: Free for basic features.
Pros: Powerful AI, versatile, supports various file formats.
Cons: Requires a stable internet connection, limited free version.
Best For:
Creating mind maps and summarizing content from various sources.
Visme
Overview:
Price: Free tier available, with premium plans starting at $15/month.
Pros: Extensive templates, highly customizable, advanced features.
Cons: Can be overwhelming for beginners due to extensive features.
Best For:
Comprehensive design projects that require high customization and advanced features.
Applying the Tools to Scenarios
Project Planning (Mind Map)
Tool: NoteGPT
Why: NoteGPT can generate detailed mind maps, helping break down project tasks and visualize the workflow.
Learning a New Topic (Mind Map)
Tool: Infografix
Why: Infografix can quickly create a structured mind map using AI, making it easier for students to understand and remember complex subjects.
Marketing Campaign (Infographic)
Tool: Visme
Why: Visme’s extensive templates and customization options make it perfect for creating visually appealing infographics that effectively communicate campaign results.
Educational Content (Infographic)
Tool: Visme
Why: Visme’s design elements and templates help in breaking down complex educational content into simple visuals, making learning fun and engaging.
Final Thoughts
Whether you’re looking to brainstorm ideas or present complex data, mind maps and infographics are invaluable tools. By leveraging the right tools like Infografix, NoteGPT, and Visme, you can create compelling visual content that enhances understanding and engagement. Each tool offers unique features and price points, so choose the one that best fits your needs and budget.
Feel free to experiment with these tools and find the perfect balance between mind mapping and infographic creation for your projects!
Sunday, December 1, 2024
Generative AI Options for Productivity Tools
Monica - https://monica.im/products/youtube-summary?utm=gas_bi_kd_us_ytbsm_gorgst&utm_source=gas&utm_content=gas_bi_kd_us_ytbsm_gorgst&campaignid=568967756&adgroupid=1187474357785758&keyword=free%20ai%20video%20summarizer&device=c&msclkid=b1991a5339551e890cf97d1e2f57b509
Is another browser plugin that grants Chrome AI assistant powers. One thing that I see is really cool that, like NoteGPT, you can generate a "Mind Map" from a document or video!
Easy With AI - Is worth looking into because of all the tools and tutorials it offers
How to Use Python and ChatGPT API to Summarize YouTube Videos
I often have a problem of wanting to post many YouTube videos on my blogs, but struggle with how much time it takes to put the posts together. One of the best uses of generative AI is the ability to quickly and easily a way to summarize videos. The cool thing is taking APIs and automating blogging YouTube videos. There is a good article on how to loop through a playlist, and blog each video with a video summary. The article uses OpenAI's ChatGPT and I have managed a script, but the problem is that you have to pay for using the API. So I found out that there is a long list of models that allow you to summarize a YouTube video easily. But I want to batch it
Here are some generative AI platforms that offer APIs for summarizing YouTube videos and can be called from a Python script:
NoteGPT: Provides an API for generating summaries of YouTube videos.
Stack AI: Uses anthropic models to summarize YouTube videos.
: An AI tool that generates text summaries of YouTube videos.
: Offers transcription and summarization services for YouTube videos.
Krisp: Provides a free YouTube summarizer tool that generates concise summaries.
Eightify Merlin: Known for summarizing lengthy YouTube videos.
Glasp: Another tool for summarizing YouTube videos.
You-tldr: Simplifies YouTube video summarization with a user-friendly interface.
Notta: Best for generating transcriptions and summaries.
WordTune: Summarizes lengthy YouTube videos effectively.
As an example, NoteGPT, has a lot of functions and applications but I could not get the API to work for my code. It would not generate a summary, but would work regardless if the video has captions or Transcripts or nothing. Summarize.Tech does not work on video if the video does not have a transcript enabled. In the coming days I eill try to test Fireflies.ai and Notta.
Friday, November 29, 2024
Machine Learning in Production
The average #MachineLearning Engineer spends 98% of their time stitching services together.
*@abacusai can take data from you, train a model, deploy it and give you an endpoint you can use right away.
*
Less complexity = More productive #DataScience.
— Kirk Borne (@KirkDBorne) November 27, 2024
————#AI #DataScientists #ML pic.twitter.com/w3rbut608r
APIs Testing
I want a way of being able to post a YouTube video onto Blogger, Facebook, X, and Tumblr. In order to do it I needed to get API's for each service. These APIs will make it possible for my scripts to talk to these platforms.
Blogger API
Create a Google Account: If you don't have one, you'll need to create a Google Account.
Visit the Google Developers Console: Go to the and sign in with your Google Account.
Create a Project: Click on "Create Project" and give it a name.
Enable the Blogger API: In the API Library, search for "Blogger" and enable the API for your project.
Create Credentials: Go to the Credentials page, click on "Create credentials," and select "API key."
Set Up OAuth 2.0: Follow the instructions to set up OAuth 2.0 for authorization.
Facebook API
Create a Facebook Developer Account: Go to the and log in with your Facebook account.
Create a New App: Click on "My Apps" and then "Create App."
Set Up the API: Choose the Facebook API and follow the setup instructions.
Generate Access Tokens: Go to the "Tools" section and use the Access Token Tool to generate user access tokens.
X (formerly Twitter) API
Create an X Account: Go to and sign up with your email or phone number.
Visit the Developer Portal: Go to the and log in with your X account.
Create an App: Click on "Create an App" and follow the instructions to set up your app.
Generate API Keys: Go to the "Keys and Tokens" tab to generate your API keys.
Tumblr API
Create a Tumblr Account: If you don't have one, sign up for a Tumblr account.
Visit the Tumblr Developer Portal: Go to the and log in with your Tumblr account.
Create an App: Click on "Create an App" and follow the instructions to set up your app.
Generate API Keys: Go to the "API Keys" section to generate your API keys.
OpenAI API
Visit the OpenAI Platform: Go to the .
Sign Up: Click on the "Sign Up" button and fill in the registration form with your basic information.
Verify Your Email: OpenAI will send a verification email. Verify your email address to complete the sign-up process.
Create API Keys: After signing up, go to your profile icon and select "View API Keys." Click "Create New Secret Key" to generate a new API key.
Gemini API
Visit the Gemini API Page: Go to the .
Sign In: Sign in with your Google account.
Create an API Key: In Google AI Studio, go to the API section and create a new API key.
Set Up Your Environment: Configure your API key as an environment variable on your local machine.
Copilot API
Visit the Copilot API Documentation: Go to the .
Sign Up: Sign up for a Copilot account if you don't already have one.
Create API Keys: Go to the Settings > API page and click "Create key" to generate your API key.
Set Up Webhooks: If needed, create webhooks on the same page.
Tuesday, November 26, 2024
Scrape Pinterest Part 1
I am interested in writing a python script to webscrape my pinterest account and pull videos and Gifs from a date range. Pintertest does offer an API that does allow a Python script to do what I want. I even got Microsoft Copilot to generate a working script but using the API is really expensive. Therefore I found another article for that allows you to work around the API. See the following tutorial from Extracting Data from Pinterest using BeautifulSoup, Python. I also hope to use AI to put the downloaded pictures or video in folders for archiving. I wanted to do both in one script but I may have to do a separate script for training a model and organizing files into appropriate folders. Below is code that Microsoft Copilot genereated with a little editing from me.
#Write a python script that uses pinterest api to put pins into the correct board from the last seven days. If there is no board put the pin into the Unknown board.import datetime, ostry:from pinterest_api import Pinterestexcept:os.system("pip install pinterest-api")from pinterest_api import Pinterest# Initialize Pinterest APIpinterest = Pinterest(access_token='@#$$%#@#')# Get today's date and the date 7 days agotoday = datetime.datetime.now()week_ago = today - datetime.timedelta(days=7)# Get pins from the last 7 dayspins = pinterest.get_user_pins()# Filter pins from the last 7 daysrecent_pins = [pin for pin in pins if week_ago <= datetime.datetime.strptime(pin['created_at'], '%Y-%m-%dT%H:%M:%S') <= today]# Function to add pin to boarddef add_pin_to_board(pin, board_name):boards = pinterest.get_boards()board = next((board for board in boards if board['name'] == board_name), None)if board is None:# Create 'Unknown' board if it doesn't existif board_name == 'Unknown':board = pinterest.create_board(name='Unknown', description='Pins without a specific board')else:print(f"Board '{board_name}' not found.")returnpinterest.create_pin(board_id=board['id'], note=pin['note'], link=pin['link'], image_url=pin['image']['original']['url'])# Iterate through recent pins and add them to the correct board or 'Unknown'for pin in recent_pins:board_name = pin['board']['name'] if 'board' in pin else 'Unknown'add_pin_to_board(pin, board_name)print("Pins have been organized.")
I did find a No-Code solution That I am planning to explore to make a browser bot:
Downloading Media from Posts on X
We can download media from X using the followinf links
The following tutorial show how to download videos and turn short ones to Gifs.
How to save a GIF from X, formerly known as TwitterMonday, November 25, 2024
Scrape X.Com Part 1
I am interested in writing a python script to webscrape X (formerly Twitter) and pull videos and Gifs from my favorite posts. X does offer an API that does allow a Python script to do what I want. I even got Microsoft Copilot to generate a working script but using the API is really expensive. Therefore I found another article for that allows you to work around the API. See the following tutorial from Scrapfly - How to Scrape X.com (Twitter) using Python (2024 Update). I also hope to use AI to put the downloaded pictures or video in folders for archiving. I wanted to do both in one script but I may have to do a separate script for training a model and organizing files into appropriate folders. Below is code that Microsoft Copilot genereated with a little editing from me.
# Prompt# Write a python script that will download videos and pictures from the bookmarked posts in X and classify them# according to Python, Books, Comics, and Porn for a given date, creating a folder for each category and putting# the items in the same matching category and unfavorite the post if it has post with something to download#import osfrom datetime import datetimetry:import tweepyexcept:os.system("pip install tweepy")import tweepytry:import requestsexcept:os.system("pip install requests")import requests# Twitter API credentialsconsumer_key = '***********'consumer_secret = '&&&&&&&&&&&&&&'access_token = '##########################'access_token_secret = '@@@@@@@@@@@@@@@@@@@@@'# Authenticate to Twitterauth = tweepy.OAuthHandler(consumer_key, consumer_secret)auth.set_access_token(access_token, access_token_secret)api = tweepy.API(auth)# Directory to save mediabase_dir = 'downloaded_media'if not os.path.exists(base_dir):os.makedirs(base_dir)# Function to download mediadef download_media(url, filename):response = requests.get(url)if response.status_code == 200:with open(filename, 'wb') as file:file.write(response.content)# Function to classify mediadef classify_media(tweet_text):if 'python' in tweet_text.lower():return 'Python'elif 'book' in tweet_text.lower():return 'Books'elif 'comic' in tweet_text.lower():return 'Comics'elif 'porn' in tweet_text.lower():return 'Porn'else:return 'Uncategorized'# Get bookmarked tweetsbookmarked_tweets = api.get_favorites() # This gets the liked tweets, adjust as needed for bookmarksfor tweet in bookmarked_tweets:tweet_date = tweet.created_at.strftime('%Y-%m-%d')tweet_text = tweet.textcategory = classify_media(tweet_text)category_dir = os.path.join(base_dir, category, tweet_date)if not os.path.exists(category_dir):os.makedirs(category_dir)media = tweet.entities.get('media', [])if media:for item in media:media_url = item['media_url']media_type = item['type']if media_type in ['photo', 'video']:filename = os.path.join(category_dir, os.path.basename(media_url))download_media(media_url, filename)print(f'Downloaded {media_type} from {media_url} to {category}/{tweet_date}')# Unfavorite the tweetapi.destroy_favorite(tweet.id)print(f'Unfavorited tweet {tweet.id}')print('Download complete.')
Sunday, September 25, 2022
Tuesday, July 19, 2022
Sharing Python Code and Displaying Results
I have come across a need to be able to share projects written in Python and display data in more interactive ways. I have done some research to try to see where I can start. An important need is to be able to consume, manipulate, and display GIS data as well as other things.
I did do a project that uses Python to run a web service, export the results in a pandas dataframe, manipulate the results, export them to a csv file, and the csv file feeds a PowerBI dashboard. The problem was that there was not an easy way to run python code from PowerBI. I know I could have used Jupyter Notebooks but we used PowerBI due to issues with deploying Notebooks.
Here are some examples of resources that are useful in using dashboards based on Python. These kind of dashboards could be used as a GUI.
Streamlit vs Dash vs Voilà vs Panel — Battle of The Python Dashboarding Giants - article does a great job of comparing and contrasting differences in frameworks for generating dashboards. I am going to focus on Panel, for multiple screens/pages, and on Streamlit because it seems the easiest way to go from Python code to dashboard.Demo in Jupyter Notebook Opening Shapefiles in GeoPandas