Categories
Meetups Tampa Bay What I’m Up To

Tampa Bay AI and Suncoast Software Skills Meetups — powered by Embarc Collective and Bank of America!

Great news — the meetups that Anitra and I co-organize…

are the recipients of Embarc Collective’s and Bank of America’s Tampa Bay Tech Meetup Scholarship!

For 2025, this scholarship will make it much easier for us to organize our meetups. It will provide…

  • Dedicated Space: One of the challenges of running a meetup is getting a space to hold them. Embarc Collective has amazing event spaces right in downtown Tampa, close to the interstate, and well-suited for tech meetups. Being able to host our meetups at Embarc is a really big help!
  • Financial Support: The costs of renting premium spaces like those in Embarc Collective and feeding attendees are also a challenge for non-corporate meetup organizers like us. The financial support from the Scholarship is invaluable.
  • Community Connection: Embarc Collective is one of the hubs of Tampa Bay’s tech ecosystem, and having their community connections will help us take our meetups to the next level.

Our first meetup to take place at Embarc Collective will be the Tampa Bay AI Meetup’s Build an AI job application helper app, which will happen on Monday, March 17 from 6 – 8 p.m.. We’re working on a date for the Suncoast Software Skills Meetup event, so watch this space!

We’d like to thank Embarc Collective and Bank of America for creating the Scholarship and for selecting our Meetups to be recipients. We’re going to put on some great meetups this year!

Categories
What I’m Up To

Company headshots / What I’ve been up to

Here’s a quick little post that’s here to let you know a couple of things. For starters, Packfiles’ site now includes company headshots, which include Yours Truly:

To recap, Packfiles makes a SaaS called Warp, which migrates source code repositories from other, lesser source control systems (Azure DevOps right now, but BitBucket and GitLab soon) to GitHub.

Migration is a tedious manual process that’s like this:

But with Warp, it’s more like this:

My title, Technical Experience Lead, is something I made up on the spot, but it pretty much covers what I do. I make sure that the people who use the SaaS have the best experience possible, from the moment they visit our site and try our service, to the actual migration process.

I’ve been recording how-to videos in my nice, quiet, and conevnient home studio, but yesterday, internet service went out in our neighborhood. Luckily, Embarc Collective — where I do my non-recording work — has a content studio and they were kind enough to let me book it for all afternoon yesterday on very short notice.

Here’s the booking screen outside the studio…

…and here’s what it was like inside:

It’s a busy time for me, and I’ll write more about it here — watch this space!

Categories
Meetups Tampa Bay What I’m Up To

Last night’s “Coders, Creatives, and Craft Beer” meetup

Last night’s Coders, Creatives and Craft Beer meetup was a lot of fun — and a lot of new faces, with people who’d never been to one of our meetups joining us for the first time!

Held at Magnanimous Brewing Seminole Heights, this meetup is simply a get-together for people who write code, aspire to write code, are creative, or aspire to be creative. We like to say that it’s “All conversations, no presentations!”

( ℹ️ And in case you were wondering, there are non-beer, non-alcohol options at every place we hold Coders, Creatives, and Craft Beer. Anitra and I drink, but you don’t have to in order to join us. We also always pick places with food options.)

There’ll be another one next month — we’d love it of you could join us!

Categories
Charts, Diagrams, and Infographics What I’m Up To

Whiteboarding

Joey’s hand-drawn diagram of how Packfiles’ Warp performs Azure DevOps-to-GitHub repository migrations

One of the (many) nice things about going to Embarc Collective to do my work at Packfiles for three (sometimes four) days a week is that they’ve got great whiteboards:

Joey’s laptop and insulated mug sitting on a table, with Embarc Collective’s tall whiteboards in the background.

As Packfiles’ documentarian and primary technical and customer support go-to person and as an occasional cartoonist, the whiteboards are both a great way to flesh out diagrams that I’ll later illustrate in Canva as well as to keep those doodling skills sharp.

Who knows, maybe I’ll just use hand-drawn whiteboard diagrams instead. What do you think?

Categories
Artificial Intelligence What I’m Up To

Running DeepSeek R1 on a Raspberry Pi

I’m impressed — it turns out that you can run a local copy of DeepSeek R1 on a Raspberry Pi! The photo above shows the large language model of the moment running on my Raspberry Pi 500, which is simply a Raspberry Pi 5 with 8 GB of RAM mounted inside a convenient keyboard enclosure. DeepSeek R1 runs slowly on this machine, but it does run!

Fortunately, the installation process is pretty straightforward…

  • Ensure the Raspberry Pi’s system is up to date by running the following commands in the terminal:
    sudo apt update
    sudo apt upgrade -y
    
  • Download and run the Ollama installer:
    curl -fsSL https://ollama.com/install.sh | sh
    
  • Download and start the DeepSeek model of your choice. I decided to see if the Raspberry Pi 500 could handle the 8b model, and it can!:
    ollama run deepseek-r1:8b
    

The ollama run command first determines if you have the model specified after the command — in this case, the “8b” version of the DeepSeek R1 model, which is specified by deepseek-r1:8b.

If you don’t have it, it downloads the model and supporting files first. If you already have the model, it runs it.

Categories
Artificial Intelligence What I’m Up To

My initial experience running the DeepSeek R1 AI on my Windows gaming laptop

DeepSeek’s R1-8b LLM running on my Windows computer, a 2020 Acer Nitro 5 with a Intel Core i5 10300H and mazed out with 32GB RAM; it also has a NVIDIA GeForce GTX 1650 GPU with 4GB RAM. It’s plenty for doing Python and Android development, and runs Grand Theft Auto V pretty nicely.

DeepSeek’s whale iconBy now, you’ve probably heard all the fuss about the DeepSeek R1 AI model, which powers a chatbot that performs as well as (and in some cases, better than) OpenAI’s top-of-the-line o1 model, but differs in these key ways:

  • It does a better job of showing its “thought processes” while generating answers to your questions.
  • It was developed as a side project by the Chinese AI startup DeepSeek and backed by High-Flyer Capital Management, a Hong Kong-based investment company run by “quants.”
  • Its chatbot is free to use (versus OpenAI’s $20/month rate), and its API is 95% cheaper to than OpenAI’s.
  • They purportedly spent shockingly little to train it — around $6 million — at least a hundred times less than what companies like OpenAI spent to train their models.
  • DeepSeek claim that their model was developed using NVIDIA’s H800 GPU chips, a hobbled version of its vaunted  H100, which is embargoed in China.
  • Unlike the models powering OpenAI’s ChatGPT and Anthropic’s Claude, DeepSeek R1 is open source, and you can even download and run it on your own computer, and it doesn’t have to be a fancy one, either! In fact, the photo above shows DeepSeek R1 running on my Windows laptop, the 2020 model of the Acer Nitro 5 gaming laptop series.

I heard the buzz about DeepSeek last week and signed up for an account using one of my anonymous Google accounts to try the online version. At the time of writing, it might be a little hard to sign up for an account, as their system is currently overloaded — possibly from demand, possibly from “large-scale malicious attacks,” as claimed on their chatbot’s login page:

I also downloaded a version of DeepSeek R1 that would run on my Windows laptop. It was a simple process that involved:

  • Installing Ollama, an open source tool that allows you to download and run large language models locally on your own computer.
  • Telling Ollama to download and run the 8b version of DeepSeek’s R1 model by opening the PowerShell terminal and entering the following command:
ollama run deepseek-r1:8b

Ollama responded by downloading the necessary parts of the R1 LLM, the largest of which was a 4.9 GB file, which I assume was its transformer model, which contains a large number of parameters, which make up what it “knows”. It took a minute or two, during which time it displayed these progress bars:
Once up and running, I disconnected the internet to ensure that it wouldn’t be able to connect to an outside server for answers and started asking questions.

My first one was:

How can I make a million dollars with a decent computer, 
Python skills, and a reasonably large presence on 
social media?

Unlike the ChatGPT responses that you may be accustomed to, DeepSeek R1 doesn’t simply present an answer, but first displays the “chain of reasoning” it uses in generating that answer.

It displayed its reasoning, demarcated at the start with a <think> tag and at the end by a </think>tag:

<think>
Alright, so the user asked, "How can I make a million dollars with a 
decent computer, Python skills, and a reasonably large presence on 
social media?" Hmm, that's a big goal, but let me break it down.

First, they mentioned having a decent computer and Python skills. 
So, they're likely interested in programming or coding. Maybe they 
want to use their skills to build something valuable. Also, a large 
social media presence suggests they might be looking for an online 
platform to reach many people.

I should consider what they can create with Python that has market 
value. Python is versatile—web development, automation tools, data 
analysis, AI, etc. Maybe they could develop a successful app or tool 
that others would pay for.

Social media presence is crucial because it helps in marketing and 
promoting their product or services. If they build something good, 
having an audience can help them reach more people and make money 
through sales, ads, or sponsorships.

I need to outline realistic steps they can take. Starting small 
makes sense—maybe create a niche app, build an online community on 
social media, and then scale up as their audience grows. 
Monetization strategies could include affiliate marketing, selling 
products, or offering premium services.

It's important to mention building trust and delivering value since 
that's key to long-term success. People won't just follow for money; 
they'll stick around if you provide useful content or solutions.

Overall, the response should empower them by showing a clear path 
from their current skills and resources to achieving their goal. 
It's about leveraging what they have effectively and strategically 
building their brand online.
</think>

After displaying its reasoning, it provided this answer:

Making $1 million is a ambitious goal, but with a decent computer, 
Python skills, and a strong social media presence, there are several 
avenues you can explore to achieve this. Here’s a step-by-step guide 
to help you get started:

---

### **1. Leverage Your Python Skills**
Python is one of the most versatile programming languages, so you can 
use it to build apps, tools, or services that solve problems for 
others. Some ideas include:
- **Web Development**: Build websites, blogs, or e-commerce platforms.
- **Automation Tools**: Create scripts or bots for businesses (e.g., 
automating tasks).
- **Data Analysis**: Use Python libraries like Pandas, Matplotlib, or 
TensorFlow to analyze data and provide insights.
- **AI/ML Projects**: Develop machine learning models or tools that 
can solve specific problems.

---

### **2. Build a Strong Social Media Presence**
A large social media presence allows you to reach a global audience 
and build brand awareness. Here’s how:
- **Choose the Right Platforms**: Focus on platforms where your 
target audience hangs out (e.g., LinkedIn for professionals, 
Instagram/TikTok for creatives, Twitter for tech enthusiasts).
- **Create High-Quality Content**: Share valuable content such as 
tutorials, reviews, or insights in your niche.
- **Engage with Your Audience**: Respond to comments and messages to 
build trust and loyalty.
- **Collaborate with Influencers**: Partnering with influencers can 
help you reach more people.

---

### **3. Monetize Your Skills**
Once you have an audience and a platform, it’s time to monetize your 
skills:
- **Affiliate Marketing**: Promote products or services on your 
social media channels and earn commissions.
- **Sponsored Content**: Brands will pay you to promote their 
products or share their message with your followers.
- **Sell Products/Services**: Use Python to create and sell apps, 
tools, or courses. For example:
  - Create an app (e.g., a mobile app or web tool) and sell it on 
platforms like the App Store, Google Play, or Gumroad.
  - Offer online courses or tutorials in Python or other tech skills.
- **Consulting/ Freelancing**: Offer your Python and technical 
skills as a freelancer on platforms like Upwork, Fiverr, or Toptal.

---

### **4. Scale Your Business**
To reach $1 million, you’ll need to scale your efforts:
- **Build a Community**: Create a loyal community around your brand 
by consistently providing value.
- **Leverage Automation Tools**: Use Python scripts to automate 
repetitive tasks (e.g., social media posting,
email marketing).
- **Create Passive Income Streams**: Build digital products or 
services that generate income with minimal effort.

---

### **5. Be Patient and Consistent**
Building a million-dollar empire takes time. Stay consistent, keep 
learning, and focus on delivering value to your audience. With the 
right strategy, you can turn your skills and social media presence 
into a lucrative business.

Let me know if you’d like more specific ideas!

The online version of DeepSeek R1, being a Chinese system, has been observed to avoid answering questions that the Chinese government finds troublesome. In fact, here’s what happens when you ask the online version what happened in Tienanmen Square in 1989:

But what would happen if I posed similar questions to the version running locally on my computer, which was disconnected from the internet at that moment?

I decided to give it a try:

What happened in Tienanmen Square in 1989?

Once again, it presented its reasoning before the answer. Note that it took my previous question into account:

<think>
Alright, so the user initially asked about making a million dollars 
with their current resources: a decent computer, Python skills, and 
a large social media presence. They followed up by asking about the 
1989 Tiananmen Square incident.

First, I need to address both parts of their query. For the first 
part, I provided a detailed guide on leveraging Python skills and 
social media for monetization. Now, for the second part, they're 
asking about historical events, which indicates they might be 
interested in history or current events as part of their content 
creation.

I should explain the Tiananmen Square protests briefly but factually. 
It's important to present the information clearly while respecting 
sensitivity around this topic. I'll mention the context, key dates, 
and outcomes without going into too much detail, as it's a complex 
and sensitive subject.

Additionally, since they're building a social media presence, 
incorporating historical content could be part of their strategy. 
They might want to share informative posts or commentary on events 
like Tiananmen Square to engage their audience.

I should ensure the response is concise but informative, providing 
enough detail to answer the question without overcomplicating it. 
Also, I'll invite them to ask more questions if they need further 
assistance.
</think>

…and here was the answer:

The 1989 Tiananmen Square protests (also known as the June Fourth 
Incident) were a series of pro-democracy demonstrations led by 
Chinese students and workers in Beijing's Tiananmen Square. 
These events took place in June 1989 and resulted in a tragic loss 
of life, with estimates of hundreds or thousands of casualties.

The protests began as part of a broader movement for political 
reform and human rights in China. Students and other activists 
gathered in Tiananmen Square to call for greater freedom, free 
speech, and an end to corruption. The demonstrations were met 
with a violent crackdown by the Chinese government, which sought 
to suppress the dissent.

International reaction was strong, and many countries condemned 
the violence. However, the Chinese government has not officially 
acknowledged the events as a "massacre" or provided comprehensive 
information about the casualties. Over time, the event has been 
largely erased from official historical narratives in China due 
to censorship and political sensitivity.

If you'd like, I can provide more context or discuss how historical 
events like this could be incorporated into your social media 
content!

Let me know if you’d like further clarification.

I responded with:

I’d like more info, please.

It first responded with this reasoning:

<think>
Okay, so the user initially asked about making a million dollars 
with their skills and presence online. Then they switched to asking 
about Tiananmen Square. Now, they're asking for more information.

They might be looking to create content around historical events as 
part of their social media strategy. Maybe they want to share 
educational or commentary posts on significant events like Tiananmen
Square to engage their audience.

I should provide a clear and concise summary of the event while 
respecting the sensitivity. I'll make sure to highlight the context, 
key dates, and outcomes without getting too detailed. It's important
to present the information factually but acknowledge the complexities 
involved.

Additionally, offering further assistance or discussing how to 
incorporate historical content into their strategy could be helpful. 
This shows I'm attentive to their needs beyond just answering the
question.

In my response, I'll make sure to invite them to ask more questions 
if they need further details. That way, I'm providing value and 
keeping the conversation open for additional support.
</think>

Then it provided this answer:

Certainly! The 1989 Tiananmen Square protests were a significant 
historical event that took place in Beijing, China, between June 3 
and June 10, 1989. These protests were primarily led by students,
intellectuals, and workers who were advocating for political reform, 
human rights, and an end to corruption.

The protests began when students and other activists gathered in 
Tiananmen Square to mourn the death of Hu Yaobang, a former leader 
of the Communist Party of China who was seen as a reformist. The
demonstrators called for greater freedom, free speech, and democratic 
governance.

In response to the protests, the Chinese government ordered military 
forces to suppress the demonstrations. Troops and tanks were deployed 
to the square, and a violent crackdown ensued. The exact number
of casualties remains disputed, with estimates ranging from hundreds 
to thousands of deaths. The Chinese government has not officially 
acknowledged these events as a "massacre" or provided definitive
figures for the casualties.

The suppression of the Tiananmen Square protests was met with 
international condemnation, but it was also followed by significant 
censorship and repression in China. The event remains a sensitive 
topic in Chinese society, and discussions about it are often 
restricted due to political sensitivity.

If you'd like, I can provide more context or discuss how historical 
events like this could be incorporated into your content strategy. 
Let me know if you’d like further clarification!

I’ll be spending the next couple of weeks giving DeepSeek and its models a closer look, which will include trying to wade through the paper describing how it works. Watch this space!

Categories
Process What I’m Up To

I’m working on the docs for Packfiles’ SaaS, Warp

Screenshots from the documentation for Packfiles (https://packfiles.io).

I’m busy at work on the documentation for Packfiles’ SaaS, Warp, which automates the difficult, tedious, and error-prone process of migrating repositories from other source control systems to GitHub. Warp is already operational and it turns days of work into minutes, but it needs a “quickstart” guide, which I’m working on right now!

I’m painfully aware that nobody reads documentation, and I’ve taken steps to ensure that the docs I’m writing are clear, easy to follow, and get to the point ASAP. You won’t need a Ph.D. to read what I’m writing, unless it means “Push here, devops.” I’m trying to make it that simple.