<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jason Grey's Professional Site on jason grey</title><link>http://www.jason-grey.com/</link><description>Recent content in Jason Grey's Professional Site on jason grey</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 04 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://www.jason-grey.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Enterprise Rust 2025: Overview</title><link>http://www.jason-grey.com/posts/2025/enterprise-rust/</link><pubDate>Fri, 04 Apr 2025 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2025/enterprise-rust/</guid><description>&lt;h1 id="introduction-to-enterprise-applications-with-rust"&gt;
 Introduction to Enterprise Applications with Rust
 &lt;a class="heading-link" href="#introduction-to-enterprise-applications-with-rust"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;In the world of software development, the term &amp;ldquo;enterprise&amp;rdquo; often evokes images of bloated, legacy systems that are difficult to maintain and extend. However, this perception doesn&amp;rsquo;t capture the essence of what modern enterprise applications can and should be. In this blog series, we&amp;rsquo;ll explore how Rust—a language known for its performance, reliability, and increasingly rich ecosystem—is becoming a compelling choice for building enterprise-grade applications.&lt;/p&gt;</description></item><item><title>Machine Learning</title><link>http://www.jason-grey.com/skills/machine-learning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/machine-learning/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I&amp;rsquo;ve been doing AI/ML since 2005 - over 15 years.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;K-Means&lt;/li&gt;
&lt;li&gt;Markov Models&lt;/li&gt;
&lt;li&gt;Bayesian networks&lt;/li&gt;
&lt;li&gt;Association Rules&lt;/li&gt;
&lt;li&gt;Collaborative Filtering/Recomendation Engines&lt;/li&gt;
&lt;li&gt;Simple Neural Nets&lt;/li&gt;
&lt;li&gt;Deep Learning Neural Nets&lt;/li&gt;
&lt;li&gt;Semantic Web/LinkedData/Knowledge Graphs&lt;/li&gt;
&lt;li&gt;WordNet&lt;/li&gt;
&lt;li&gt;Image Classification&lt;/li&gt;
&lt;li&gt;Object Identification&lt;/li&gt;
&lt;li&gt;Segmentation&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Enterprise Rust 2025: Framework Analysis</title><link>http://www.jason-grey.com/posts/2025/enterprise-rust-framework-analysis/</link><pubDate>Fri, 04 Apr 2025 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2025/enterprise-rust-framework-analysis/</guid><description>&lt;h1 id="framework-analysis-and-selection-for-rust-enterprise-applications"&gt;
 Framework Analysis and Selection for Rust Enterprise Applications
 &lt;a class="heading-link" href="#framework-analysis-and-selection-for-rust-enterprise-applications"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;When building enterprise applications with Rust, selecting the right frameworks and libraries is crucial for long-term success. In this post, we&amp;rsquo;ll analyze the Rust ecosystem for enterprise development, providing data-driven comparisons and practical guidance for making informed decisions.&lt;/p&gt;
&lt;h2 id="the-rust-framework-landscape"&gt;
 The Rust Framework Landscape
 &lt;a class="heading-link" href="#the-rust-framework-landscape"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Unlike ecosystems such as Java with Spring or .NET with ASP.NET, Rust doesn&amp;rsquo;t have a single dominant &amp;ldquo;enterprise framework&amp;rdquo; that provides an all-in-one solution. Instead, Rust follows a more modular approach, with specialized libraries that excel at specific tasks and can be composed together.&lt;/p&gt;</description></item><item><title>Algorithms &amp; Techniques</title><link>http://www.jason-grey.com/skills/algorithms-and-techniques/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/algorithms-and-techniques/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I once had to write a Java implementation of &lt;a href="https://en.wikipedia.org/wiki/Trie" class="external-link" target="_blank" rel="noopener"&gt;trie&lt;/a&gt; to do high performance substring matching, because it didn&amp;rsquo;t exist at the time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Data Modeling: Hierarchical, Network/Graph, Value/Multi-Value, Object Oriented, Relational, Multidimensional&lt;/li&gt;
&lt;li&gt;Data Warehousing: Kimball, Medallion&lt;/li&gt;
&lt;li&gt;Specialized: R-Tree (spatial index), Bloom Filter (probabilistic set membership)&lt;/li&gt;
&lt;li&gt;Caching, indexing, performance optimization: In-Memory, Distributed, HTTP, Filesystem&lt;/li&gt;
&lt;li&gt;Advanced multi-layer debugging (any system)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Cloud and Infrastructure</title><link>http://www.jason-grey.com/skills/infrastructure-and-cloud/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/infrastructure-and-cloud/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I may or may not have run a datacenter in my basement&amp;hellip; :)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Co-Location/Physical/Datacenter&lt;/li&gt;
&lt;li&gt;Amazon Web Services (AWS)&lt;/li&gt;
&lt;li&gt;Microsoft Azure&lt;/li&gt;
&lt;li&gt;Google&lt;/li&gt;
&lt;li&gt;Heroku&lt;/li&gt;
&lt;li&gt;Rackspace&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Data</title><link>http://www.jason-grey.com/skills/data/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/data/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I&amp;rsquo;ve been using databases for 30 years&amp;hellip; starting with Hypercard in 1994.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Raw/Binary, CSV, Tab, Fixed&lt;/li&gt;
&lt;li&gt;TIGER Database (US Census Bureau Geographic database)&lt;/li&gt;
&lt;li&gt;XML, JSON, BSON, RDF, XSD, OWL, RDFS, YAML&lt;/li&gt;
&lt;li&gt;SQL, tSQL, SPARQL, LINQ, LDAP, MDX, XPath, XQuery&lt;/li&gt;
&lt;li&gt;Redis, Memcache&lt;/li&gt;
&lt;li&gt;MS SQL Server (including in-memory &amp;amp; columnstore indexes)&lt;/li&gt;
&lt;li&gt;MS SQL Analysis Services&lt;/li&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;li&gt;MS Power BI/PowerPivot/SSAS Tabular Model, a little Oracle&lt;/li&gt;
&lt;li&gt;CouchDB, Amazon DynamoDB, MongoDB, CosmosDB&lt;/li&gt;
&lt;li&gt;Amazon SimpleDB, Cassandra&lt;/li&gt;
&lt;li&gt;Azure Stream Analytics, Apache Spark&lt;/li&gt;
&lt;li&gt;Neo4J, Stardog, Openlink Virtuoso&lt;/li&gt;
&lt;li&gt;HDFS/Hadoop, Hive, HBase, custom MapReduce jobs&lt;/li&gt;
&lt;li&gt;SSIS, Mule, RedPoint&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Programming Languages</title><link>http://www.jason-grey.com/skills/programming-languages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/programming-languages/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I&amp;rsquo;ve been coding since age 6 or 7. That&amp;rsquo;s nearly 40 years&amp;hellip; see photo below.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;My first paid coding job was at age 14.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;GoLang&lt;/li&gt;
&lt;li&gt;Rust&lt;/li&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;JavaScript/NodeJS&lt;/li&gt;
&lt;li&gt;C#&lt;/li&gt;
&lt;li&gt;PHP&lt;/li&gt;
&lt;li&gt;Perl&lt;/li&gt;
&lt;li&gt;Ruby&lt;/li&gt;
&lt;li&gt;ActionScript&lt;/li&gt;
&lt;li&gt;Objective-C&lt;/li&gt;
&lt;li&gt;ColdFusion&lt;/li&gt;
&lt;li&gt;Countless shells, basics, and other scripting languages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;















 
 
 
 
 
 &lt;figure class="figure "&gt;
 &lt;picture&gt;
 &lt;img class="figure-img img-fluid" src="http://www.jason-grey.com/images/jason9thbirthday.jpg?fit=200x200&amp;v=14aba89f31bfe0137168405870062b47" alt="Jason 9th Birthday" title="My 9th Birthday... already a fan of computing..." loading="lazy" height="642" width="750" /&gt;
&lt;/picture&gt;

 &lt;figcaption class="figure-caption"&gt;My 9th Birthday... already a fan of computing...&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Enterprise Rust 2025: Core Components</title><link>http://www.jason-grey.com/posts/2025/enterprise-rust-core-components/</link><pubDate>Fri, 04 Apr 2025 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2025/enterprise-rust-core-components/</guid><description>&lt;h1 id="core-components-for-rust-enterprise-applications"&gt;
 Core Components for Rust Enterprise Applications
 &lt;a class="heading-link" href="#core-components-for-rust-enterprise-applications"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Building robust enterprise applications requires careful consideration of core components that handle data persistence, communication between services, and message processing. In this post, we&amp;rsquo;ll explore how to implement these essential components in Rust, focusing on database management, modularization approaches, internal RPC mechanisms, and message queuing systems.&lt;/p&gt;
&lt;h2 id="database-management-in-rust"&gt;
 Database Management in Rust
 &lt;a class="heading-link" href="#database-management-in-rust"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Data persistence is fundamental to most enterprise applications. Rust offers several approaches to database management, each with different trade-offs between type safety, performance, and developer experience.&lt;/p&gt;</description></item><item><title>Devops</title><link>http://www.jason-grey.com/skills/devops/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/devops/</guid><description>&lt;blockquote&gt;
&lt;p&gt;When I first worked with AWS, they had 3 services&amp;hellip; (S3, SQS, and EC2)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Kubernetes&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Helm&lt;/li&gt;
&lt;li&gt;Ant&lt;/li&gt;
&lt;li&gt;Ivy&lt;/li&gt;
&lt;li&gt;Maven&lt;/li&gt;
&lt;li&gt;Atlassian Bamboo&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Hyper-V, VirtualBox, VMWare&lt;/li&gt;
&lt;li&gt;Bitbucket Pipelines&lt;/li&gt;
&lt;li&gt;Github Actions&lt;/li&gt;
&lt;li&gt;Jenkins/Hudson&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Search</title><link>http://www.jason-grey.com/skills/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/search/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In 1999, I hand-crafted a TD/IDF-based auto-completing search engine as a java applet which ran over the internet and locally via CD-ROM.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Solr&lt;/li&gt;
&lt;li&gt;ElasticSearch&lt;/li&gt;
&lt;li&gt;SQL Server Fulltext&lt;/li&gt;
&lt;li&gt;Lucine&lt;/li&gt;
&lt;li&gt;Google Search Appliance&lt;/li&gt;
&lt;li&gt;Fast (now Microsoft)&lt;/li&gt;
&lt;li&gt;Azure Cognitive&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Enterprise Rust 2025: Web and API Development</title><link>http://www.jason-grey.com/posts/2025/enterprise-rust-web-and-api/</link><pubDate>Fri, 04 Apr 2025 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2025/enterprise-rust-web-and-api/</guid><description>&lt;h1 id="web-and-api-development-for-rust-enterprise-applications"&gt;
 Web and API Development for Rust Enterprise Applications
 &lt;a class="heading-link" href="#web-and-api-development-for-rust-enterprise-applications"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Building robust web services and APIs is a core requirement for most enterprise applications. In this post, we&amp;rsquo;ll explore how to develop high-performance, reliable web and API components using Rust, focusing on web servers, GraphQL APIs, and RESTful services.&lt;/p&gt;
&lt;h2 id="web-server-technologies-in-rust"&gt;
 Web Server Technologies in Rust
 &lt;a class="heading-link" href="#web-server-technologies-in-rust"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Rust&amp;rsquo;s ecosystem offers several approaches to building web servers, from low-level HTTP libraries to full-featured web frameworks.&lt;/p&gt;</description></item><item><title>Enterprise Rust 2025: Application Development</title><link>http://www.jason-grey.com/posts/2025/enterprise-rust-applications/</link><pubDate>Fri, 04 Apr 2025 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2025/enterprise-rust-applications/</guid><description>&lt;h1 id="application-development-with-rust-for-enterprise-systems"&gt;
 Application Development with Rust for Enterprise Systems
 &lt;a class="heading-link" href="#application-development-with-rust-for-enterprise-systems"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Building enterprise applications requires a diverse set of tools and approaches depending on the target platform and user interface requirements. In this post, we&amp;rsquo;ll explore how Rust can be used to develop web, CLI, desktop, and mobile applications for enterprise environments.&lt;/p&gt;
&lt;h2 id="web-application-development"&gt;
 Web Application Development
 &lt;a class="heading-link" href="#web-application-development"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Web applications are a common requirement for enterprise systems. Rust offers several approaches to building web frontends, from server-side rendering to WebAssembly.&lt;/p&gt;</description></item><item><title>Enterprise Rust 2025: Miscellaneous Tools</title><link>http://www.jason-grey.com/posts/2025/enterprise-rust-miscellaneous/</link><pubDate>Fri, 04 Apr 2025 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2025/enterprise-rust-miscellaneous/</guid><description>&lt;h1 id="miscellaneous-tools-for-rust-enterprise-applications"&gt;
 Miscellaneous Tools for Rust Enterprise Applications
 &lt;a class="heading-link" href="#miscellaneous-tools-for-rust-enterprise-applications"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Building enterprise applications requires more than just frameworks and libraries for core functionality. In this final post of our series, we&amp;rsquo;ll explore essential miscellaneous tools for Rust enterprise applications, focusing on observability, logging, and machine learning integration.&lt;/p&gt;
&lt;h2 id="observability-in-rust-applications"&gt;
 Observability in Rust Applications
 &lt;a class="heading-link" href="#observability-in-rust-applications"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Observability is crucial for understanding the behavior and performance of enterprise applications in production. It encompasses metrics, logging, and distributed tracing.&lt;/p&gt;</description></item><item><title>Eddie (Experimental): Hybrid Search for Static Sites</title><link>http://www.jason-grey.com/posts/2026/eddie/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2026/eddie/</guid><description>&lt;p&gt;In 1996, I worked on one of my first real search engines: an early Java applet that indexed a few thousand documents (for 3M Healthcare if I remember right&amp;hellip;), distributed in parallel on CD-ROM (because laptops didn&amp;rsquo;t have wireless internet back then&amp;hellip;) and on an early intranet website. It had instant word completion, which felt revolutionary at the time, and it used an early TF-IDF index with a static offline indexing process.&lt;/p&gt;</description></item><item><title>Open-Sourcing requirements-skill: Lightweight AI-Assisted Requirements Maintenance</title><link>http://www.jason-grey.com/posts/2026/requirements-skill/</link><pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2026/requirements-skill/</guid><description>&lt;h1 id="open-sourcing-requirements-skill-lightweight-ai-assisted-requirements-maintenance"&gt;
 Open-Sourcing requirements-skill: Lightweight AI-Assisted Requirements Maintenance
 &lt;a class="heading-link" href="#open-sourcing-requirements-skill-lightweight-ai-assisted-requirements-maintenance"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;I just open-sourced a project I have been using to keep requirements work cleaner in fast, AI-assisted coding cycles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Repository: &lt;a href="https://github.com/jt55401/requirements-skill" class="external-link" target="_blank" rel="noopener"&gt;github.com/jt55401/requirements-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Latest release: &lt;a href="https://github.com/jt55401/requirements-skill/releases/tag/v0.2.0" class="external-link" target="_blank" rel="noopener"&gt;v0.2.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-problem"&gt;
 The Problem
 &lt;a class="heading-link" href="#the-problem"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;AI-assisted teams can ship quickly, but requirement docs often drift from reality. The common failure modes are predictable:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;broken links between requirements and tickets&lt;/li&gt;
&lt;li&gt;duplicate or overlapping stories&lt;/li&gt;
&lt;li&gt;conflicting acceptance criteria&lt;/li&gt;
&lt;li&gt;weak traceability between requirement intent and actual implementation&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once this drift accumulates, teams lose confidence in requirements as a source of truth.&lt;/p&gt;</description></item><item><title>Scaling Airflow Dataset Scheduling: Lessons from Common Crawl</title><link>http://www.jason-grey.com/posts/2025/airflow-at-scale/</link><pubDate>Thu, 13 Mar 2025 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2025/airflow-at-scale/</guid><description>&lt;h1 id="scaling-airflow-dataset-scheduling-lessons-from-common-crawl"&gt;
 Scaling Airflow Dataset Scheduling: Lessons from Common Crawl
 &lt;a class="heading-link" href="#scaling-airflow-dataset-scheduling-lessons-from-common-crawl"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Since joining &lt;a href="https://www.commoncrawl.org/" class="external-link" target="_blank" rel="noopener"&gt;Common Crawl&lt;/a&gt;, I&amp;rsquo;ve been involved with a number of activities revolving around indexing and cataloging the integrity of our data. To coordinate these activites, and to be able to re-run them upon dataset changes, I decided to give Airflow a try. The introduction of dataset-based scheduling in Airflow 2.4 seemed attractive, but it also comes with interesting challenges when working at our scale.&lt;/p&gt;</description></item><item><title>AI: Evolution of Creative Tools, Not Theft of Creative Rights</title><link>http://www.jason-grey.com/posts/2025/most-ai-is-not-stealing/</link><pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2025/most-ai-is-not-stealing/</guid><description>&lt;h1 id="ai-evolution-of-creative-tools-not-theft-of-creative-rights"&gt;
 AI: Evolution of Creative Tools, Not Theft of Creative Rights
 &lt;a class="heading-link" href="#ai-evolution-of-creative-tools-not-theft-of-creative-rights"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;All art/tech is derivative. Every creator stands on the shoulders of those who came before them. Every innovation builds upon previous knowledge. This fundamental truth forms the basis of my perspective on AI ethics, which I&amp;rsquo;ll share below along with my further thoughts during a spirited debate in private chat recently.&lt;/p&gt;
&lt;h2 id="the-evolution-of-creative-tools"&gt;
 The Evolution of Creative Tools
 &lt;a class="heading-link" href="#the-evolution-of-creative-tools"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Looking at human creativity from a historical perspective, we can see that tools have consistently evolved to compress the time it takes to master creative expression. In the Middle Ages, you might have studied and practiced with rudimentary tools for decades to build competence in any art form. As tools improved, this timeline shortened dramatically.&lt;/p&gt;</description></item><item><title>Named in patent: Basketball training system with computer vision functionality</title><link>http://www.jason-grey.com/posts/2025/basketball-patent/</link><pubDate>Tue, 14 Jan 2025 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2025/basketball-patent/</guid><description>&lt;p&gt;A patent I am named on has made it through the machinery of he US Patent Office:&lt;/p&gt;
&lt;h2 id="basketball-training-system-with-computer-vision-functionality-us-12194357-issued-jan-14-2025"&gt;
 Basketball training system with computer vision functionality (US 12194357 Issued Jan 14, 2025)
 &lt;a class="heading-link" href="#basketball-training-system-with-computer-vision-functionality-us-12194357-issued-jan-14-2025"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;A basketball training system that includes one or more of a basketball delivery machine, a computer vision sensor, one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations. The operations can include detecting a made or missed shot, identifying indexed video and/or pose information for the shot, tagging video and/or pose information with make or miss.&lt;/p&gt;</description></item><item><title>Launch of open source tool: gzinspector</title><link>http://www.jason-grey.com/posts/2024/gzinspector/</link><pubDate>Fri, 15 Nov 2024 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2024/gzinspector/</guid><description>&lt;p&gt;I published an open source tool &amp;ldquo;&lt;a href="https://github.com/jt55401/gzinspector" class="external-link" target="_blank" rel="noopener"&gt;gzinspector&lt;/a&gt;&amp;rdquo; to inspect gzip streams - specifically those encoded with many chunks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A robust command-line tool for inspecting and analyzing GZIP/ZLIB compressed files. GZInspector provides detailed information about compression chunks, headers, and content previews with support for both human-readable and JSON output formats.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I did this due to the work I&amp;rsquo;ve been doing for &lt;a href="https://commoncrawl.org/" class="external-link" target="_blank" rel="noopener"&gt;CommonCrawl&lt;/a&gt; - specifically around processing &amp;ldquo;&lt;a href="https://github.com/webrecorder/pywb/wiki/CDX-Index-Format#zipnum-sharded-cdx" class="external-link" target="_blank" rel="noopener"&gt;ZipNum&lt;/a&gt;&amp;rdquo; format &lt;a href="https://github.com/webrecorder/cdxj-indexer" class="external-link" target="_blank" rel="noopener"&gt;CDXJ&lt;/a&gt; indexes.&lt;/p&gt;
&lt;p&gt;If you find it useful, let me know (reach out or star it on github.)&lt;/p&gt;</description></item><item><title>AI and the Right To Learn on an Open Internet</title><link>http://www.jason-grey.com/posts/2024/right-to-learn-conference/</link><pubDate>Thu, 02 May 2024 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2024/right-to-learn-conference/</guid><description>&lt;p&gt;As part of my involvement with &lt;a href="https://www.commoncrawl.org" class="external-link" target="_blank" rel="noopener"&gt;Common Crawl Foundation&lt;/a&gt;, I recently attended the &amp;ldquo;&lt;a href="https://lu.ma/3g9vhzvd" class="external-link" target="_blank" rel="noopener"&gt;AI and the Right To Learn on an Open Internet: A Conversation Convened by Common Crawl Foundation and Professor Jeff Jarvis&lt;/a&gt;&amp;rdquo; in New York.&lt;/p&gt;
&lt;p&gt;Jeff and Rich ended the conference by going wide and asking the entire group of attendees for next steps.&lt;/p&gt;
&lt;p&gt;The suggestion I put forth was to pair the policy makers and lawyers with data scientists or software engineers to develop robust ways of validating whatever the policies might be.&lt;/p&gt;</description></item><item><title>Episode #15 Risky Business: Uncertain Impact of AI on White-Collar Jobs with Jason Grey</title><link>http://www.jason-grey.com/posts/2024/risky-business/</link><pubDate>Thu, 18 Apr 2024 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2024/risky-business/</guid><description>&lt;p&gt;See more on &lt;a href="https://www.youtube.com/watch?v=cqKOfstOq9U" class="external-link" target="_blank" rel="noopener"&gt;YouTube&lt;/a&gt; or Hear it on &lt;a href="https://open.spotify.com/episode/75ttLRjLKljCzpR72DHBc3?si=e426fcb99c664930&amp;amp;nd=1&amp;amp;dlsi=1e1d5df5167341ff" class="external-link" target="_blank" rel="noopener"&gt;Spotify&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="description"&gt;
 Description
 &lt;a class="heading-link" href="#description"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Jason Grey, a fervent early adopter of AI and machine learning, knows firsthand the power and mystique surrounding this transformative technology. In this unsettling episode of Cupalo Conversations, Jason confronts the stark reality: AI&amp;rsquo;s impending impact on the job market. Foreshadowing a future where white-collar professions, like software engineering and law, will face a staggering reduction in available jobs.&lt;/p&gt;</description></item><item><title>Common Crawl Checker</title><link>http://www.jason-grey.com/posts/2024/common-crawl-checker/</link><pubDate>Tue, 06 Feb 2024 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2024/common-crawl-checker/</guid><description>&lt;h1 id="enter-a-hostname-see-if-common-crawl-has-it"&gt;
 Enter a hostname, see if common crawl has it
 &lt;a class="heading-link" href="#enter-a-hostname-see-if-common-crawl-has-it"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;This checks &lt;a href="https://www.commoncrawl.org/blog/november-december-2023-crawl-archive-now-available" class="external-link" target="_blank" rel="noopener"&gt;CC-MAIN-2023-50&lt;/a&gt; - which was from November/December 2023. I may update this in future to check the latest, but, for now, that&amp;rsquo;s what we have.&lt;/p&gt;
&lt;p&gt;Give it a try here:&lt;/p&gt;


&lt;script&gt;
 function checkURL() {
 document.getElementById('result').textContent = '...';
 var urlToCheck = document.getElementById('urlInput').value;
 var apiUrl = 'https://api.jason-grey.com/check_url?url=' + encodeURIComponent(urlToCheck);

 fetch(apiUrl)
 .then(response =&gt; response.json())
 .then(data =&gt; {
 document.getElementById('result').textContent = data.result;
 })
 .catch(error =&gt; {
 console.error('Error:', error);
 document.getElementById('result').textContent = 'Error calling the service';
 });
 }
 &lt;/script&gt;

 &lt;input type="text" id="urlInput" placeholder="Enter domain name to check"&gt;
 &lt;button onclick="checkURL()"&gt;Check&lt;/button&gt;
 &lt;p id="result"&gt;&lt;/p&gt;</description></item><item><title>ML the ML - or, how to use ML to analyze the results of your hyperparameter tuning experiments (in Microsoft Fabric)</title><link>http://www.jason-grey.com/posts/2024/ml-the-ml/</link><pubDate>Sat, 06 Jan 2024 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2024/ml-the-ml/</guid><description>&lt;h1 id="what-are-we-talking-about-here"&gt;
 What are we talking about here?
 &lt;a class="heading-link" href="#what-are-we-talking-about-here"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;When one is training a model, one typically engages in a process called &amp;ldquo;hyperparameter tuning.&amp;rdquo; The model is trained many (10s, 100s, or 1000&amp;rsquo;s of) times, varying some of the inputs. This could be as simple as the number of epochs, or, could be as varied as taking different slices or ranges of input data (ie: different sensors from an array of many sensors, etc), different ML model structures, or, different parameters within that structure.&lt;/p&gt;</description></item><item><title>Miscellaneous Tools - Enterprise Rust</title><link>http://www.jason-grey.com/posts/2023/enterprise-rust-5-miscellaneous-tools/</link><pubDate>Sat, 04 Nov 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/enterprise-rust-5-miscellaneous-tools/</guid><description>&lt;h1 id="series-outline"&gt;
 Series Outline
 &lt;a class="heading-link" href="#series-outline"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-1-overview/" &gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Framework analysis and selection:&lt;/strong&gt; Delving into the specifics of framework selection and application.
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-2-core-components/" &gt;Core Components&lt;/a&gt;: Database management, modularization, internal RPC, AMQP.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-3-web-api/" &gt;Web and API&lt;/a&gt;: Web Server, GraphQL API.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-4-application-development/" &gt;Application Development&lt;/a&gt;: Web, CLI, desktop, and mobile app development.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-5-miscellaneous-tools/" &gt;Miscellaneous Tools&lt;/a&gt;: Observability, logging, machine learning.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Boilerplate project:&lt;/strong&gt; A comprehensive guide including setup instructions for selected frameworks, architectural diagrams, and development environment configurations.&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="mlstats"&gt;
 ML/stats
 &lt;a class="heading-link" href="#mlstats"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Crate&lt;/th&gt;
 &lt;th&gt;Downloads&lt;/th&gt;
 &lt;th&gt;Dependents&lt;/th&gt;
 &lt;th&gt;Github Stars&lt;/th&gt;
 &lt;th&gt;Github Contributors&lt;/th&gt;
 &lt;th&gt;Github Used By&lt;/th&gt;
 &lt;th&gt;Notes&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;polars&lt;/td&gt;
 &lt;td&gt;500k&lt;/td&gt;
 &lt;td&gt;88&lt;/td&gt;
 &lt;td&gt;21k&lt;/td&gt;
 &lt;td&gt;302&lt;/td&gt;
 &lt;td&gt;4.3k&lt;/td&gt;
 &lt;td&gt;Dataframes for data prep/filtering/etc - this is easily the best choice. Can now do streaming, so, can handle &amp;gt; in memory as well.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;linfa&lt;/td&gt;
 &lt;td&gt;162k&lt;/td&gt;
 &lt;td&gt;24&lt;/td&gt;
 &lt;td&gt;3k&lt;/td&gt;
 &lt;td&gt;37&lt;/td&gt;
 &lt;td&gt;321&lt;/td&gt;
 &lt;td&gt;decent set of algorithms. OpenBLAS, netlib, intel MKL (all linux)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;rustlearn&lt;/td&gt;
 &lt;td&gt;16k&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;599&lt;/td&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;td&gt;121&lt;/td&gt;
 &lt;td&gt;Not nearly as robust as linfa, but does have some unique algorithms.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="loggingmetrics"&gt;
 Logging/Metrics
 &lt;a class="heading-link" href="#loggingmetrics"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Crate&lt;/th&gt;
 &lt;th&gt;Downloads&lt;/th&gt;
 &lt;th&gt;Dependents&lt;/th&gt;
 &lt;th&gt;Github Stars&lt;/th&gt;
 &lt;th&gt;Github Contributors&lt;/th&gt;
 &lt;th&gt;Github Used By&lt;/th&gt;
 &lt;th&gt;Notes&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;log&lt;/td&gt;
 &lt;td&gt;197M&lt;/td&gt;
 &lt;td&gt;14770&lt;/td&gt;
 &lt;td&gt;1.9k&lt;/td&gt;
 &lt;td&gt;102&lt;/td&gt;
 &lt;td&gt;605k&lt;/td&gt;
 &lt;td&gt;Default choice. syslog, systemd, slog, android, windows, database, console, and a lot more.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;tracing&lt;/td&gt;
 &lt;td&gt;109M&lt;/td&gt;
 &lt;td&gt;4967&lt;/td&gt;
 &lt;td&gt;4.4k&lt;/td&gt;
 &lt;td&gt;277&lt;/td&gt;
 &lt;td&gt;241k&lt;/td&gt;
 &lt;td&gt;Compatible with log, which is nice. metrics, tracing, and logging. wasm support.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="distributed-locking-using-redis"&gt;
 Distributed Locking using Redis
 &lt;a class="heading-link" href="#distributed-locking-using-redis"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Redis is assumed for caching - but for dist lock, we have lots of options&amp;hellip;&lt;/p&gt;</description></item><item><title>Application Development - Enterprise Rust</title><link>http://www.jason-grey.com/posts/2023/enterprise-rust-4-application-development/</link><pubDate>Fri, 03 Nov 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/enterprise-rust-4-application-development/</guid><description>&lt;h1 id="series-outline"&gt;
 Series Outline
 &lt;a class="heading-link" href="#series-outline"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-1-overview/" &gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Framework analysis and selection:&lt;/strong&gt; Delving into the specifics of framework selection and application.
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-2-core-components/" &gt;Core Components&lt;/a&gt;: Database management, modularization, internal RPC, AMQP.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-3-web-api/" &gt;Web and API&lt;/a&gt;: Web Server, GraphQL API.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-4-application-development/" &gt;Application Development&lt;/a&gt;: Web, CLI, desktop, and mobile app development.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-5-miscellaneous-tools/" &gt;Miscellaneous Tools&lt;/a&gt;: Observability, logging, machine learning.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Boilerplate project:&lt;/strong&gt; A comprehensive guide including setup instructions for selected frameworks, architectural diagrams, and development environment configurations.&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="web"&gt;
 Web
 &lt;a class="heading-link" href="#web"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Crate&lt;/th&gt;
 &lt;th&gt;Downloads&lt;/th&gt;
 &lt;th&gt;Dependents&lt;/th&gt;
 &lt;th&gt;Github Stars&lt;/th&gt;
 &lt;th&gt;Github Contributors&lt;/th&gt;
 &lt;th&gt;Github Used By&lt;/th&gt;
 &lt;th&gt;Notes&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;dioxus&lt;/td&gt;
 &lt;td&gt;100k&lt;/td&gt;
 &lt;td&gt;66&lt;/td&gt;
 &lt;td&gt;14.5k&lt;/td&gt;
 &lt;td&gt;169&lt;/td&gt;
 &lt;td&gt;1.2k&lt;/td&gt;
 &lt;td&gt;A virtual DOM for rust. Part of opencollective, has a large and growing community, and used by numerous startups, etc.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;tauri&lt;/td&gt;
 &lt;td&gt;1.1M&lt;/td&gt;
 &lt;td&gt;69&lt;/td&gt;
 &lt;td&gt;70k&lt;/td&gt;
 &lt;td&gt;302&lt;/td&gt;
 &lt;td&gt;518&lt;/td&gt;
 &lt;td&gt;Very robust, but only desktop (and soon to be mobile)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;yew&lt;/td&gt;
 &lt;td&gt;800k&lt;/td&gt;
 &lt;td&gt;186&lt;/td&gt;
 &lt;td&gt;28.8k&lt;/td&gt;
 &lt;td&gt;402&lt;/td&gt;
 &lt;td&gt;10.3k&lt;/td&gt;
 &lt;td&gt;Also open collective!. This is great, but web only.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;egui&lt;/td&gt;
 &lt;td&gt;1.4M&lt;/td&gt;
 &lt;td&gt;240&lt;/td&gt;
 &lt;td&gt;17.1k&lt;/td&gt;
 &lt;td&gt;320&lt;/td&gt;
 &lt;td&gt;10.2k&lt;/td&gt;
 &lt;td&gt;Very opinionated, web+native. pre-built GUI components, could build an entire OS out of it. Ugly, and not very web-friendly though&amp;hellip; for an admin tool though, this would be awesome (which is really what it&amp;rsquo;s made for)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Other Resources:&lt;/p&gt;</description></item><item><title>Web and API - Enterprise Rust</title><link>http://www.jason-grey.com/posts/2023/enterprise-rust-3-web-api/</link><pubDate>Thu, 02 Nov 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/enterprise-rust-3-web-api/</guid><description>&lt;h1 id="series-outline"&gt;
 Series Outline
 &lt;a class="heading-link" href="#series-outline"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-1-overview/" &gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Framework analysis and selection:&lt;/strong&gt; Delving into the specifics of framework selection and application.
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-2-core-components/" &gt;Core Components&lt;/a&gt;: Database management, modularization, internal RPC, AMQP.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-3-web-api/" &gt;Web and API&lt;/a&gt;: Web Server, GraphQL API.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-4-application-development/" &gt;Application Development&lt;/a&gt;: Web, CLI, desktop, and mobile app development.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-5-miscellaneous-tools/" &gt;Miscellaneous Tools&lt;/a&gt;: Observability, logging, machine learning.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Boilerplate project:&lt;/strong&gt; A comprehensive guide including setup instructions for selected frameworks, architectural diagrams, and development environment configurations.&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="web-server"&gt;
 Web Server
 &lt;a class="heading-link" href="#web-server"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;In the realms of Java and .NET, a web application server serves as a critical component, providing an environment where web applications can run and manage web-based requests. Java has options like Apache Tomcat and WildFly, while .NET relies on servers like IIS or Kestrel. These servers handle a myriad of tasks including request processing, application lifecycle management, and security. In contrast, when it comes to Rust, a language still maturing in web development, selecting an appropriate web application server is not as straightforward. There isn&amp;rsquo;t a default go-to like in Java or .NET ecosystems. Instead, we need to explore and choose from emerging options such as Actix-Web, Rocket, or Warp, each offering unique features and performance characteristics tailored for Rust&amp;rsquo;s concurrency model and safety guarantees. This choice is pivotal to ensure efficient request handling, scalability, and robustness in Rust-based web applications.&lt;/p&gt;</description></item><item><title>Core Components - Enterprise Rust</title><link>http://www.jason-grey.com/posts/2023/enterprise-rust-2-core-components/</link><pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/enterprise-rust-2-core-components/</guid><description>&lt;h1 id="series-outline"&gt;
 Series Outline
 &lt;a class="heading-link" href="#series-outline"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-1-overview/" &gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Framework analysis and selection:&lt;/strong&gt; Delving into the specifics of framework selection and application.
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-2-core-components/" &gt;Core Components&lt;/a&gt;: Database management, modularization, internal RPC, AMQP.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-3-web-api/" &gt;Web and API&lt;/a&gt;: Web Server, GraphQL API.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-4-application-development/" &gt;Application Development&lt;/a&gt;: Web, CLI, desktop, and mobile app development.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jason-grey.com/posts/2023/enterprise-rust-5-miscellaneous-tools/" &gt;Miscellaneous Tools&lt;/a&gt;: Observability, logging, machine learning.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Boilerplate project:&lt;/strong&gt; A comprehensive guide including setup instructions for selected frameworks, architectural diagrams, and development environment configurations.&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="modularization"&gt;
 Modularization
 &lt;a class="heading-link" href="#modularization"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Modularization is important in big software projects. It&amp;rsquo;s like building with Lego blocks – each piece of code is its own little block. This makes it easier for different teams to work on their own parts without messing up the whole thing. It&amp;rsquo;s also great for fixing bugs and adding new features, since you only have to change one block at a time. Plus, you can reuse these blocks in other projects, saving time and hassle. In short, modularization keeps everything organized, flexible, and easy to handle, especially when things need to change fast.&lt;/p&gt;</description></item><item><title>Overview - Enterprise Rust</title><link>http://www.jason-grey.com/posts/2023/enterprise-rust-1-overview/</link><pubDate>Fri, 20 Oct 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/enterprise-rust-1-overview/</guid><description>&lt;h1 id="introduction-to-enterprise-applications"&gt;
 Introduction to Enterprise Applications
 &lt;a class="heading-link" href="#introduction-to-enterprise-applications"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;The term &amp;ldquo;enterprise&amp;rdquo; in the context of software development often elicits mixed reactions. However, for the purpose of this discussion, let&amp;rsquo;s define an enterprise application as a comprehensive, collaboratively developed solution that adheres to high standards of long-term maintenance. Such an application is characterized by its modular design, both internally and externally, ease of integration, and its ability to address complex business challenges efficiently and reliably.&lt;/p&gt;</description></item><item><title>Maturity models for NLP and LLM usage: How to go from unsafe, unfocused results to focused, business-safe results.</title><link>http://www.jason-grey.com/posts/2023/nlp-maturity-model/</link><pubDate>Thu, 07 Sep 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/nlp-maturity-model/</guid><description>&lt;h1 id="gaurdrails"&gt;
 Gaurdrails
 &lt;a class="heading-link" href="#gaurdrails"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;What is the concept? A block of code, framework, or library which wraps around your request/response cycle with an LLM (or traditional NLP) to cross-check, verify, validate, or otherwise improve the accuracy and safety of the results.&lt;/p&gt;
&lt;p&gt;Gaurdrails is a way to make your AI a bit more &lt;a href="https://cacm.acm.org/magazines/2023/9/275701-humble-ai/abstract" class="external-link" target="_blank" rel="noopener"&gt;humble&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Examples of types of gaurdrails (blatantly stolen from &lt;a href="https://github.com/NVIDIA/NeMo-Guardrails/blob/main/examples/README.md" class="external-link" target="_blank" rel="noopener"&gt;NVIDIA&amp;rsquo;s framework&amp;rsquo;s docs&lt;/a&gt;)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Topical - keeping the chat or response on topic.&lt;/li&gt;
&lt;li&gt;Fact checking - make sure the LLM response is true, according to some external data or service.&lt;/li&gt;
&lt;li&gt;Moderation - profanity filtering, ethics adjustments, or other techniques to shut down non-useful interactions (ie: to save you cost!)&lt;/li&gt;
&lt;li&gt;Jailbreaking attempts - protect the chat from adversarial interactions (ie: trying to get your bot to lie, or do bad or expensive activities)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="maturity-model-using-llm-as-the-foundation"&gt;
 Maturity model using LLM as the foundation:
 &lt;a class="heading-link" href="#maturity-model-using-llm-as-the-foundation"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;LLMs are powerful - but, can easily go &amp;ldquo;off the rails&amp;rdquo; and in a customer service scenario, that&amp;rsquo;s not good for business. Could be as benign as a bad restaurant recommendation, or as bad as giving improper advice on a medical issue.&lt;/p&gt;</description></item><item><title>AI for Natural Language Processing: Transforming Text Data into improving efficiency and engagement</title><link>http://www.jason-grey.com/posts/2023/ai-nlp-engangement/</link><pubDate>Fri, 01 Sep 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/ai-nlp-engangement/</guid><description>&lt;p&gt;I spoke on Sept 7th. Recording of the session is here: &lt;a href="https://vimeo.com/event/3685788" class="external-link" target="_blank" rel="noopener"&gt;https://vimeo.com/event/3685788&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="ai-for-natural-language-processing-transforming-text-data-into-improving-efficiency-and-engagement"&gt;
 AI for Natural Language Processing: Transforming Text Data into improving efficiency and engagement
 &lt;a class="heading-link" href="#ai-for-natural-language-processing-transforming-text-data-into-improving-efficiency-and-engagement"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Learn how AI-NLP techniques enable personalized user experiences, improve customer interactions, and drive higher engagement rates. From sentiment analysis to intelligent chatbots, we will showcase how AI-NLP powers efficient and engaging customer support. We will discuss the importance and implementation of guardrails in your model to ensure the returned results are accurate and on-topic.&lt;/p&gt;</description></item><item><title>Hyperparameter Tuning</title><link>http://www.jason-grey.com/posts/2023/hyperparameter-tuning/</link><pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/hyperparameter-tuning/</guid><description>&lt;p&gt;Doing some data science tonight. When it came time to tune my hyperparameters, I remembered I still had an account at &lt;a href="https://wandb.ai/site" class="external-link" target="_blank" rel="noopener"&gt;Weights &amp;amp; Biases&lt;/a&gt; and decided to give their &amp;ldquo;sweeps&amp;rdquo; feature a spin. &lt;a href="https://en.wikipedia.org/wiki/Hyperparameter_optimization" class="external-link" target="_blank" rel="noopener"&gt;Hyperparameter tuning&lt;/a&gt; is usually something I build into my notebooks/early scripts on a project and do it manually/simply. I have to say though, W&amp;amp;B made it pretty easy, their api is very easy to implement, is highly configurable, and has some pretty nice looking graphs to visualize what&amp;rsquo;s going on.&lt;/p&gt;</description></item><item><title>Migrations are hard...</title><link>http://www.jason-grey.com/posts/2023/migrations-are-hard/</link><pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/migrations-are-hard/</guid><description>&lt;p&gt;Watched this video today. It talks about how migrations are some of the harder problems in tech, but, nobody likes to work on them :)&lt;/p&gt;


&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/yJOrMDMqeoI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;I actually LIKE such migrations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Challenging: Matt is very right - it is usually VERY hard to do this well.&lt;/li&gt;
&lt;li&gt;Meta: You get to learn how someone else did something - and have to understand it enough to refactor it away gradually.&lt;/li&gt;
&lt;li&gt;Rewarding: the migration usually needs to happen for some really interesting business/user experience reason.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Much of the focus of my professional life has been what I&amp;rsquo;d call &amp;ldquo;cleaning up other people&amp;rsquo;s messes&amp;rdquo; - migrating them from a messy/slow/non-expandable system to some new thing. Always during such projects one must think about how to elegantly migrate users from one system to another - ideally, without them even noticing. That&amp;rsquo;s the part I like the best - if I can pull it off without users noticing, I feel extra clever.&lt;/p&gt;</description></item><item><title>Certifications</title><link>http://www.jason-grey.com/certs/</link><pubDate>Thu, 20 Apr 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/certs/</guid><description>&lt;h2 id="microsoft"&gt;
 















 
 
 
 
 
 
 
 
 
 
 &lt;picture&gt;
 &lt;source srcset="http://www.jason-grey.com/certs/microsoft_hu_2b76d6831a1710b1.webp" type="image/webp" /&gt;
 &lt;img class="img-fluid" src="http://www.jason-grey.com/certs/microsoft.3474bfc9e041acef92a78a9d922ad076.png" alt="Microsoft" loading="lazy" height="149" width="199" /&gt;
&lt;/picture&gt;

 &lt;a class="heading-link" href="#microsoft"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;MCID: &lt;a href="https://learn.microsoft.com/en-us/users/jasongrey-3244/transcript/d5o8xay09m6r4m1?tab=credentials-tab" class="external-link" target="_blank" rel="noopener"&gt;13643987&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://learn.microsoft.com/api/credentials/share/en-us/JasonGrey-3244/C901180EF8C89F1E?sharingId=57FA38CC72E1E78A" class="external-link" target="_blank" rel="noopener"&gt;Azure Solutions Architect Expert&lt;/a&gt;&lt;/p&gt;



&lt;img src="http://www.jason-grey.com/certs/images/2025_04_azure_solutions_architect_expert_hu_b88d9588adf1d77b.png" width="240" height="158" title="Microsoft Azure Solutions Architect Expert Certification" alt="Microsoft Azure Solutions Architect Expert Certification" class="certimage" /&gt;
&lt;p&gt;&lt;a href="https://learn.microsoft.com/api/credentials/share/en-us/JasonGrey-3244/C915C09B73037A2F?sharingId=57FA38CC72E1E78A" class="external-link" target="_blank" rel="noopener"&gt;Azure AI Engineer Associate&lt;/a&gt;&lt;/p&gt;



&lt;img src="http://www.jason-grey.com/certs/images/2025_04_ai_engineer_associate_hu_1dc0805e00fa4ce9.png" width="240" height="158" title="Microsoft Azure AI Engineer Associate Certification" alt="Microsoft Azure AI Engineer Associate Certification" class="certimage" /&gt;
&lt;h2 id="linux-foundation"&gt;
 















 
 
 
 
 
 
 
 
 
 
 &lt;picture&gt;
 &lt;source srcset="http://www.jason-grey.com/certs/linuxfoundation_hu_20af6d18007dc219.webp" type="image/webp" /&gt;
 &lt;img class="img-fluid" src="http://www.jason-grey.com/certs/linuxfoundation.bd8043454beef25b2aacc438c59bb815.png" alt="Linux Foundation" loading="lazy" height="200" width="200" /&gt;
&lt;/picture&gt;

 &lt;a class="heading-link" href="#linux-foundation"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;


&lt;div data-iframe-width="150" data-iframe-height="270" data-share-badge-id="d31fc27a-4dc3-4eb8-bfcd-3781f5ceb1e4" data-share-badge-host="https://www.credly.com"&gt;&lt;/div&gt;&lt;script type="text/javascript" async src="//cdn.credly.com/assets/utilities/embed.js"&gt;&lt;/script&gt;

&lt;h2 id="huggingface"&gt;
 HuggingFace
 &lt;a class="heading-link" href="#huggingface"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;



&lt;img src="http://www.jason-grey.com/certs/images/hf-fundamentals-of-agents_hu_b49eedcce3e7a8f7.png" width="240" height="170" title="HuggingFace fundamentals of agents certification" alt="HuggingFace fundamentals of agents certification" class="certimage" /&gt;</description></item><item><title>Future of Advertising: Infrastructure session</title><link>http://www.jason-grey.com/posts/2023/future-of-advertising/</link><pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2023/future-of-advertising/</guid><description>&lt;p&gt;Minneapolis College of Art and Design / Tim Brunelle · Feb 20, 2023&lt;/p&gt;
&lt;p&gt;Guest speaker for future of advertising course. Session was on &amp;ldquo;infrastructure&amp;rdquo; - and spoke about how technology is part of the medium, the way to track, the way to transact, and the facilitator of creation.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://timbrunelle.substack.com/p/016-infrastructure-is-rarely-constant" class="external-link" target="_blank" rel="noopener"&gt;See more&lt;/a&gt; on Tim&amp;rsquo;s blog&lt;/p&gt;</description></item><item><title>Keep things simple presentation at Hasty.ai</title><link>http://www.jason-grey.com/posts/2022/keeping-things-simple-in-ml/</link><pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2022/keeping-things-simple-in-ml/</guid><description>&lt;p&gt;Hasty.ai / MLirl · Apr 7, 2022&lt;/p&gt;
&lt;p&gt;Learn what hands-on advice the speakers from our #MLirl event on Apr 7th had when getting started with AI projects.&lt;/p&gt;


&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/aHkjEe5qytI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen&gt;&lt;/iframe&gt;</description></item><item><title>Open Source</title><link>http://www.jason-grey.com/opensource/</link><pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/opensource/</guid><description>&lt;ul&gt;
&lt;li&gt;1993 - &lt;a href="./temple-of-the-dog.zip" &gt;Temple of the Dog Font&lt;/a&gt; - very first &amp;ldquo;shareware&amp;rdquo;/opensource project - I created a font from the handwriting on the Temple of the Dog album liner.&lt;/li&gt;
&lt;li&gt;2004 - &lt;a href="https://www.jason-grey.com/posts/2003/handy-going-opensource/" class="external-link" target="_blank" rel="noopener"&gt;Handy&lt;/a&gt; - my first software open source project - some utilities for ColdFusion development&lt;/li&gt;
&lt;li&gt;2007 - &lt;a href="https://flashdoctors.sourceforge.net/" class="external-link" target="_blank" rel="noopener"&gt;FlashDoctors&lt;/a&gt; - this was a bigger project I created while head of front-end development for Target. We worked with a lot of agencies at the time, and needed a consistent way to configure the data &amp;amp; behavior for LOTS of Adobe Flash applications. I ported the Spring framework from Java to Flash/Actionscript, and convinced Target to allow us to open source it. Flashdoctors was the result - it was one of the earlier corporate open source projects a the time.&lt;/li&gt;
&lt;li&gt;2011 - &lt;a href="https://www.jason-grey.com/posts/2011/google-plus-api/" class="external-link" target="_blank" rel="noopener"&gt;Google+ &amp;ldquo;api&amp;rdquo;&lt;/a&gt; - At launch, Google+ had no public api - so I reverse engineered their rest calls, and created one in Java so folks could crawl their own social graphs. I also did an extensive crawl of the entire user base at the time - and did some cool graphs.&lt;/li&gt;
&lt;li&gt;2015 - &lt;a href="https://www.jason-grey.com/tags/smarthings/" class="external-link" target="_blank" rel="noopener"&gt;Smartthings Apps/Devices&lt;/a&gt; - When I was a Smarthings user, I open sourced some of my custom devices/apps.&lt;/li&gt;
&lt;li&gt;2024 - &lt;a href="https://github.com/commoncrawl/" class="external-link" target="_blank" rel="noopener"&gt;commoncrawl&lt;/a&gt; I&amp;rsquo;m doing public &amp;amp; private work on commoncrawl. See also &lt;a href="https://www.commoncrawl.org" class="external-link" target="_blank" rel="noopener"&gt;commoncrawl.org&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;2024 - &lt;a href="https://github.com/commoncrawl/cc-pyspark" class="external-link" target="_blank" rel="noopener"&gt;commoncrawl/cc-pyspark&lt;/a&gt; Made enhancements for file-wise processing.&lt;/li&gt;
&lt;li&gt;2024 - &lt;a href="https://github.com/commoncrawl/webarchive-indexing" class="external-link" target="_blank" rel="noopener"&gt;commoncrawl/webarchive-indexing&lt;/a&gt; Migrated legacy mrjob tasks to modern spark jobs to process 9PB+ of data.&lt;/li&gt;
&lt;li&gt;2024 - &lt;a href="https://github.com/jt55401/gzinspector" class="external-link" target="_blank" rel="noopener"&gt;gz-inspector&lt;/a&gt; A robust command-line tool for inspecting and analyzing GZIP/ZLIB compressed files, written in rust.&lt;/li&gt;
&lt;li&gt;2026 - &lt;a href="https://github.com/jt55401/requirements-skill" class="external-link" target="_blank" rel="noopener"&gt;requirements-skill&lt;/a&gt; Lightweight requirements-as-code starter kit with AI-assisted workflow support for Claude and Codex/OpenAI. Write-up: &lt;a href="https://www.jason-grey.com/posts/2026/requirements-skill/" class="external-link" target="_blank" rel="noopener"&gt;Open-Sourcing requirements-skill&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Startups</title><link>http://www.jason-grey.com/ventures/</link><pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/ventures/</guid><description>&lt;ul&gt;
&lt;li&gt;2006 - &lt;a href="https://www.jason-grey.com/posts/2008/evenhere-mit-emtech/" class="external-link" target="_blank" rel="noopener"&gt;Evenhere&lt;/a&gt; - in the 2010&amp;rsquo;s, I was the lead technologist for Evenhere - helping them with Patent paperwork, as well as architecting and building their MVP.&lt;/li&gt;
&lt;li&gt;2008 - incubator at Internet Broadcasting - developed an &amp;ldquo;internal&amp;rdquo; startup marketplace, and then was architect on one of the products - a &amp;ldquo;hyper local&amp;rdquo; news aggregation and search engine - developed using very early version of Hadoop, AWS, and was launched as a mobile app in week 1 in iOS app store.&lt;/li&gt;
&lt;li&gt;2018 - MN Property Info - This is a company I started that created a mobile app for iOS and Android which shows tax parcel data from select MN counties. The key differentiation is that it includes both residential and commercial properties, which is particularly useful if you&amp;rsquo;re a commercial realtor.&lt;/li&gt;
&lt;li&gt;2022 - Through Warecorp, I helped a startup build language analysis tools to aid in pitch deck authoring.&lt;/li&gt;
&lt;li&gt;2023 - &lt;del&gt;a startup in the dining/entertainment space.&lt;/del&gt;&lt;/li&gt;
&lt;li&gt;2023 - &lt;del&gt;a startup in the physical security space.&lt;/del&gt;&lt;/li&gt;
&lt;li&gt;2023 - &lt;del&gt;a startup in the non-dilutive funding space.&lt;/del&gt;&lt;/li&gt;
&lt;li&gt;2024 - In progress&amp;hellip; a startup in the e-commerce space.&lt;/li&gt;
&lt;li&gt;2025 - In progress&amp;hellip; something in the AI/ML + Democracy space.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>SmartThings device Enerwave scene controller</title><link>http://www.jason-grey.com/posts/2015/smartthings-enerwave/</link><pubDate>Wed, 16 Sep 2015 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2015/smartthings-enerwave/</guid><description>&lt;p&gt;Released SmartThings device and apps for Enerwave scene controller&lt;/p&gt;
&lt;p&gt;A few scripts to handle the 7-button scene controller from Enerwave. Allows for control of lights, as well as setting of SmartThings mode.&lt;/p&gt;</description></item><item><title>Released a SmartThings app for logging data</title><link>http://www.jason-grey.com/posts/2015/smartthings-datalogger/</link><pubDate>Tue, 15 Sep 2015 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2015/smartthings-datalogger/</guid><description>&lt;p&gt;Log SmartThings device events using JSON over HTTP POST (setup for FluentD, but can easily be modified to suit other backends)&lt;/p&gt;</description></item><item><title>Spoke at Minneapolis CIO Executive Summit</title><link>http://www.jason-grey.com/posts/2015/ceo-executive-summit/</link><pubDate>Wed, 03 Jun 2015 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2015/ceo-executive-summit/</guid><description>&lt;p&gt;Minneapolis CIO Executive Summit · Jun 3, 2015&lt;/p&gt;
&lt;p&gt;Jason Grey explains how to use the net promoter score methodology to enhance departments both internally and externally.&lt;/p&gt;</description></item><item><title>Spoke at Microsoft Convergence 2015</title><link>http://www.jason-grey.com/posts/2015/microsoft-convergence/</link><pubDate>Mon, 16 Mar 2015 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2015/microsoft-convergence/</guid><description>&lt;p&gt;In the &amp;ldquo;Reinventing business productivity to maximize customer value&amp;quot;​ session with Julia White at Microsoft Convergence 2015, Jason Grey from Life Time Fitness shared how Microsoft technology has helped the organization increase productivity and the flow of information across their 24,000 employees. Watch the highlights at &lt;a href="http://youtu.be/5N1rc7ZW2bI" class="external-link" target="_blank" rel="noopener"&gt;http://youtu.be/5N1rc7ZW2bI&lt;/a&gt; and learn more about Microsoft Convergence at &lt;a href="http://www.microsoft.com/convergence" class="external-link" target="_blank" rel="noopener"&gt;http://www.microsoft.com/convergence&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Google+ Java API Launched</title><link>http://www.jason-grey.com/posts/2011/google-plus-api/</link><pubDate>Wed, 15 Jun 2011 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2011/google-plus-api/</guid><description>&lt;p&gt;Quick note – I created a quick and dirty Google+ API using Java. It lets you get at public profiles, followers and following, as well as recent posts.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.google.com/archive/p/javaplus/" class="external-link" target="_blank" rel="noopener"&gt;Code is available&lt;/a&gt; on Google Code&lt;/p&gt;
&lt;p&gt;I have a social graph visualizer done as well, but it’s not quite ready for prime time.&lt;/p&gt;</description></item><item><title>Watching Tech Trends</title><link>http://www.jason-grey.com/posts/2009/watching-tech-trends/</link><pubDate>Tue, 26 May 2009 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2009/watching-tech-trends/</guid><description>&lt;p&gt;A few interesting ways I keep an eye on longer term technology trends.&lt;/p&gt;
&lt;p&gt;Google Trends: php, coldfusion, java, .net, ruby (This one has some problems, as “java” comes up for the country too…)&lt;/p&gt;


&lt;script type="text/javascript" src="https://ssl.gstatic.com/trends_nrtr/3316_RC03/embed_loader.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; trends.embed.renderExploreWidget("TIMESERIES", {"comparisonItem":[{"keyword":"php","geo":"US","time":"2004-01-01 2023-05-06"},{"keyword":"java","geo":"US","time":"2004-01-01 2023-05-06"},{"keyword":"ruby","geo":"US","time":"2004-01-01 2023-05-06"},{"keyword":".net","geo":"US","time":"2004-01-01 2023-05-06"},{"keyword":"coldfusion","geo":"US","time":"2004-01-01 2023-05-06"}],"category":0,"property":""}, {"exploreQuery":"date=all&amp;geo=US&amp;q=php,java,ruby,.net,coldfusion&amp;hl=en","guestPath":"https://trends.google.com:443/trends/embed/"}); &lt;/script&gt;

&lt;p&gt;Freshmeat Tags, sourceforge&lt;/p&gt;
&lt;p&gt;Indeed (job listing aggregator)&lt;/p&gt;
&lt;p&gt;















 
 
 
 
 
 
 
 
 
 
 &lt;picture&gt;
 &lt;source srcset="http://www.jason-grey.com/posts/2009/watching-tech-trends/jobgraph1_hu_3cbaed2d392ec4e0.webp" type="image/webp" /&gt;
 &lt;img class="img-fluid" src="http://www.jason-grey.com/posts/2009/watching-tech-trends/jobgraph1.a51cc54066b93221b74c23128beb8cf6.png" alt="jobgraph1.png" loading="lazy" height="300" width="540" /&gt;
&lt;/picture&gt;
&lt;/p&gt;
&lt;p&gt;Drill down to Java ORM frameworks (and JDBC itself)&lt;/p&gt;
&lt;p&gt;















 
 
 
 
 
 
 
 
 
 
 &lt;picture&gt;
 &lt;source srcset="http://www.jason-grey.com/posts/2009/watching-tech-trends/jobgraph2_hu_99b38ffb22d766ba.webp" type="image/webp" /&gt;
 &lt;img class="img-fluid" src="http://www.jason-grey.com/posts/2009/watching-tech-trends/jobgraph2.57775e137029c71030c50de7705ef935.png" alt="jobgraph1.png" loading="lazy" height="300" width="540" /&gt;
&lt;/picture&gt;
&lt;/p&gt;</description></item><item><title>mn.swf 2009 presentation &amp; links</title><link>http://www.jason-grey.com/posts/2009/mnswf/</link><pubDate>Sun, 26 Apr 2009 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2009/mnswf/</guid><description>&lt;p&gt;Jason’s Presentation:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://swfcamp-2009-shopper.googlecode.com/files/API%20design%2C%20modularization%20and%20components.pdf" class="external-link" target="_blank" rel="noopener"&gt;http://swfcamp-2009-shopper.googlecode.com/files/API%20design%2C%20modularization%20and%20components.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Code can be obtained here: &lt;a href="http://swfcamp-2009-shopper.googlecode.com/" class="external-link" target="_blank" rel="noopener"&gt;http://swfcamp-2009-shopper.googlecode.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Joshua Bloch, Google, Inc., USA How To Design a Good API and Why it Matters:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://lcsd05.cs.tamu.edu/slides/keynote.pdf" class="external-link" target="_blank" rel="noopener"&gt;http://lcsd05.cs.tamu.edu/slides/keynote.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Excerpt from Practical API design book by Jaroslov Tulach&lt;/p&gt;
&lt;p&gt;&lt;a href="http://openide.netbeans.org/tutorial/api-design.html" class="external-link" target="_blank" rel="noopener"&gt;http://openide.netbeans.org/tutorial/api-design.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Great book about reusability:&lt;/p&gt;
&lt;p&gt;Will Tracz - Confessions of a Used Program Salesman, Addison-Wesley, 1995&lt;/p&gt;</description></item><item><title>What makes a good component/service?</title><link>http://www.jason-grey.com/posts/2008/what-makes-a-good-component/</link><pubDate>Wed, 01 Oct 2008 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2008/what-makes-a-good-component/</guid><description>&lt;p&gt;A few collected thoughts &amp;amp; notes from around the web regarding what makes a good component/service.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interface - all implementations share this. Should have few methods, use data objects as return values, take primitives as inputs, throw only custom exceptions, and be very, very well documented.&lt;/li&gt;
&lt;li&gt;Implementations - implement the logic behind the service. May provide extra features such as caching, or such things as optional collaborations.&lt;/li&gt;
&lt;li&gt;Data - data objects this service deals with. Should be immutable, comparable, cloneable as much as is possible. Should be serializable/XML/Persistance annotated in most languages.&lt;/li&gt;
&lt;li&gt;Storage - Data (or data.io) package should define storage API, and an in-memory data store. Allow other services/projects/subprojects to define database backed or other kinds of data stores.&lt;/li&gt;
&lt;li&gt;Cache - Data.Cache packages should define cache API? (or can this be standard per runtime?) Who should be in charge of caching? The service itself, or the user of the service?&lt;/li&gt;
&lt;li&gt;Use dependency injection for all services/data stores it requires. Use constructor-injection as much as possible.&lt;/li&gt;
&lt;li&gt;Throw errors early - in constructor if possible.&lt;/li&gt;
&lt;li&gt;Exceptions - custom exceptions for high level categories of erroneous behavior (try not to do one for every possible condition - classify, and wrap). * Don’t re-throw exceptions from other frameworks - wrap in custom exception.&lt;/li&gt;
&lt;li&gt;Make behavior configurable via dep injection as much as possible. Use filters or strategies.&lt;/li&gt;
&lt;li&gt;Inject 1 configuration object instead of many options. Standardize on configuration API/Framework for each runtime/language.&lt;/li&gt;
&lt;li&gt;Standardize on logging framework/API for each runtime/language, and make sure it’s used (instead of System.out or similar)&lt;/li&gt;
&lt;li&gt;Provide events/messages and/or hooks for important happenings so others can do things pre/post.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Evenhere @ MIT EmTech conference</title><link>http://www.jason-grey.com/posts/2008/evenhere-mit-emtech/</link><pubDate>Thu, 19 Jun 2008 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2008/evenhere-mit-emtech/</guid><description>&lt;p&gt;One of the products I’ve been working on for a number of years now is getting some visibility in a very cool way - the owner of the company is going to be exhibiting the product at the MIT EmTech conference in September this year.&lt;/p&gt;
&lt;p&gt;The product is called &lt;a href="https://web.archive.org/web/20080926071942/http://www.evenhere.com/" class="external-link" target="_blank" rel="noopener"&gt;Evenhere&lt;/a&gt; - its a platform for enabling product placement along a video time-line. The results can be presented on the web, on a set top box, or in any number of other interesting ways. See the website for more information.&lt;/p&gt;</description></item><item><title>⚠️iPhone development thoughts</title><link>http://www.jason-grey.com/posts/2008/iphone/</link><pubDate>Fri, 06 Jun 2008 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2008/iphone/</guid><description>&lt;p&gt;I’ve recently finished the functionality of my first native iPhone application. Here are some thoughts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apple makes it easy to “do the right thing” as far as the UIKit libraries go, pretty nice, and cleaner &amp;amp; easier than Swing or .NET in many ways. Very humanistic.&lt;/li&gt;
&lt;li&gt;Unless I’m missing something, common tasks like field validation don’t seem to be built-in, that’s a hassle…&lt;/li&gt;
&lt;li&gt;No SOAP libraries yet either.&lt;/li&gt;
&lt;li&gt;Interface Builder isn’t quite there yet - many components still missing, so unless you’re doing a pretty simple UI, better code it by hand (which isn’t really that bad…)&lt;/li&gt;
&lt;li&gt;I’m not a huge fan of XCode - the code completion is very weak compared to eclipse, as is the display of errors/warnings - many more clicks/research needed to diagnose what’s going on.&lt;/li&gt;
&lt;li&gt;Managing your own memory sucks…&lt;/li&gt;
&lt;li&gt;Since I’m coding the UI by hand, lining things up pixel perfect is quite a hassle. I’d be nice if they had the concept of a layout manager, like Swing/AWT, laying out components in a grid is not intuitive (many examples I’ve seen use UITableView and a whole mess of ugly switch statements - very inconvenient &amp;amp; hard to maintain.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The application is a front end for a project I’ve been working on for the last few months. The backend of the project is very involved, lots of data flying around, and much analysis, the end result of which is exposed via a few web services. One to find a location based on name, lat/lon, etc, and one to get news near that location (sort of like topix in some ways).&lt;/p&gt;</description></item><item><title>Presenting at mn.swf camp 2008</title><link>http://www.jason-grey.com/posts/2008/mnswf-camp/</link><pubDate>Sun, 06 Apr 2008 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2008/mnswf-camp/</guid><description>&lt;p&gt;I’ll be presenting development best practices in the Flex/Flash/AIR tomorrow at mn.swf camp. Check back on this post for a copy of the presentation after I’m done.&lt;/p&gt;
&lt;p&gt;Here is my presentation.&lt;/p&gt;</description></item><item><title>Learn objective-c/Cocoa (Mac OSX) development on the PC…</title><link>http://www.jason-grey.com/posts/2008/objective-c-on-windows/</link><pubDate>Tue, 01 Apr 2008 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2008/objective-c-on-windows/</guid><description>&lt;p&gt;So, I got interested in developing an application for the iPhone, but I don’t have a decent Mac to develop on. I found that the iPhone development is based on a subset of the Mac Cocoa framework. OSX came from NeXTStep. Cocoa is mostly NeXTStep libraries… hummm… how can I learn Objective-C/Cocoa on a PC… let me think…&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download and install &lt;a href="http://www.gnustep.org/experience/Windows.html" class="external-link" target="_blank" rel="noopener"&gt;GNUStep System and Core&lt;/a&gt; for windows.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gnustep.org/resources/ObjCFun.html" class="external-link" target="_blank" rel="noopener"&gt;Learn&lt;/a&gt; &amp;amp; write some objective-c code using some of the NS libraries&lt;/li&gt;
&lt;li&gt;Compile using gcc (comes with GNUStep). I use ant, my build file is attached - fiddle with it to work in your environment&lt;/li&gt;
&lt;li&gt;You may also have to have CygWin installed. I’m not actually sure which pieces are making this all work yet, so give that a try (install the base package, plus gcc, gdb, and whatever else you like)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Currently, I’ve got this all working, and I’m using the Foundation library in the attached example. Going to try getting some UI stuff to work next.&lt;/p&gt;</description></item><item><title>Want to see what the temperature is in Minneapolis?</title><link>http://www.jason-grey.com/posts/2008/minneapolis-temperature/</link><pubDate>Sat, 15 Mar 2008 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2008/minneapolis-temperature/</guid><description>&lt;p&gt;This is an embeddable from a site I did the technical architecture work for that launched recently for KMBC Kansas City, and will be rolled out to many other TV station sites soon. Give it a click to view the entire experience.&lt;/p&gt;</description></item><item><title>⚠️First thoughts on Microsoft Silverlight</title><link>http://www.jason-grey.com/posts/2007/first-thoughts-on-silverlight/</link><pubDate>Sat, 28 Jul 2007 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2007/first-thoughts-on-silverlight/</guid><description>&lt;ol&gt;
&lt;li&gt;Cool that it can work with plain JS and XML&lt;/li&gt;
&lt;li&gt;Fast rendering engine&lt;/li&gt;
&lt;li&gt;Cross platform/browser&lt;/li&gt;
&lt;li&gt;MediaElement events not great - may be due to the beta version.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I’m currently working on a very simple video player in SilverLight that will be controlled via JavaScript.&lt;/p&gt;</description></item><item><title>⚠️Object Oriented Programming</title><link>http://www.jason-grey.com/posts/2006/object-oriented-programming/</link><pubDate>Mon, 20 Mar 2006 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2006/object-oriented-programming/</guid><description>&lt;p&gt;One of the most important concepts you can learn is Object Oriented programming. Once OOP is mastered, learning any object style language becomes much simpler. Common OOP languages used on the web: Java, C#, as well as scripting languages such as JavaScript, and ActionScript.&lt;/p&gt;
&lt;p&gt;Check out &lt;a href="http://en.wikipedia.org/wiki/Object-oriented_programming" class="external-link" target="_blank" rel="noopener"&gt;this wikipedia article&lt;/a&gt; for a general overview of OOP and many links out to OOP theory, and even a few links about what’s BAD about&lt;/p&gt;</description></item><item><title>⚠️Check out Google Base</title><link>http://www.jason-grey.com/posts/2006/google-base/</link><pubDate>Sat, 04 Mar 2006 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2006/google-base/</guid><description>&lt;p&gt;Google’s got another great beta out there - Google Base. It’s a place for you to post your own content. They take it a step further by allowing you to define (or use predefined) content types. Each content type has a set of attributes. Then, custom search interfaces are provided against the content types, for example, see recipes. Doesn’t seem like there’s an API out there yet, so I think this is of limited use for now.&lt;/p&gt;</description></item><item><title>Handy is going open source...</title><link>http://www.jason-grey.com/posts/2003/handy-going-opensource/</link><pubDate>Fri, 05 Mar 2004 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2003/handy-going-opensource/</guid><description>&lt;p&gt;There were a few sugestions by members of the CF community to make Handy CFC tester open source&amp;hellip; so I&amp;rsquo;m going to give it a try.&lt;/p&gt;
&lt;p&gt;Along with the move to open source, I&amp;rsquo;m going to make &amp;ldquo;Handy&amp;rdquo; more of a suite of usefull ColdFusion/Mach-II stuff. To be included at launch will be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Handy/TestSuite/index.cfm - the Handy CFC browser/tester.&lt;/li&gt;
&lt;li&gt;Handy/BeanGen/index.cfm - a simple utility to generate CFCs with Java Bean get/set methods. Usefull if you do any Mach-II development.&lt;/li&gt;
&lt;li&gt;handy.dao - a base class for all my dao objects, has only one fuction right now to convert results of a query to a struct - for passing instance data to an object (memento).&lt;/li&gt;
&lt;li&gt;handy.validatable - a base class for all my objects which need to have a &amp;ldquo;validate&amp;rdquo; funciton. Has functions for keeping track of what&amp;rsquo;s wrong with certain fields, or in general.&lt;/li&gt;
&lt;li&gt;handy.plugins.ServerProperties - lets you have mach-ii properties defined outside of the mach-ii config file - usefull if you want to manage mach-ii with Source control, but need different properties on different servers.&lt;/li&gt;
&lt;li&gt;handy.plugins.EventData - allows you to have an XML config file to specify data for events. You can also specify other buckets of data which you can include on specified events (like an include) This allows powerful setup of meta-data per-event, but doesn&amp;rsquo;t tie you to your mach-ii.xml file to do so.&lt;/li&gt;
&lt;li&gt;Handy/MachIIMapper/index.cfm - maps a mach-ii application in many ways. Requires GraphViz to be installed, and you need CFEXECUTE permissions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;m submitting &amp;ldquo;Handy Suite&amp;rdquo; to SourceForge today, so with any luck, I&amp;rsquo;ll have all the code and docs up there, along with the CVS repository.&lt;/p&gt;</description></item><item><title>Humn, thats handy...</title><link>http://www.jason-grey.com/posts/2003/handy-framework/</link><pubDate>Thu, 27 Nov 2003 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2003/handy-framework/</guid><description>&lt;p&gt;&lt;a href="https://web.archive.org/web/20040402044245/http://handy.jason-thorpe.com/" class="external-link" target="_blank" rel="noopener"&gt;http://handy.jason-thorpe.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Handy is a browser and testing framework for ColdFusion CFCs. Just drop it in a directory of ColdFusion CFC&amp;rsquo;s, and browse to it in your web browser. Full instructions are below, and included in the download.&lt;/p&gt;</description></item><item><title>Mach-II first blush</title><link>http://www.jason-grey.com/posts/2003/mach-ii-first-blush/</link><pubDate>Thu, 27 Nov 2003 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/posts/2003/mach-ii-first-blush/</guid><description>&lt;p&gt;I recently have evaluated the &lt;a href="https://web.archive.org/web/20040604142521/http://www.mach-ii.com/" class="external-link" target="_blank" rel="noopener"&gt;Mach-II framework&lt;/a&gt; for ColdFusion MX. I started by developing our company holiday party RSVP website. It used a pretty simple form bean, and some standard &amp;ldquo;manager&amp;rdquo;, &amp;ldquo;dao&amp;rdquo;, and &amp;ldquo;gateway&amp;rdquo; objects, as shown in the Mach-II developer guide. My initial thoughts are very favorable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cleanly supports writing your code in a re-useable way.&lt;/li&gt;
&lt;li&gt;Much more object oriented than fusebox.&lt;/li&gt;
&lt;li&gt;Very good framework for MVC development.&lt;/li&gt;
&lt;li&gt;Fast - I like how many objects are stored in application scope, so they don&amp;rsquo;t have to be instantiated every request.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ve also started developing some base objects, filters, plug-ins and other useful tools which others may find useful, I&amp;rsquo;ll post them up here soon.&lt;/p&gt;</description></item><item><title/><link>http://www.jason-grey.com/cia-intellegence-report/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/cia-intellegence-report/</guid><description>&lt;p&gt;Understood. I will compile a comprehensive CIA-style intelligence dossier on you, Jason Grey, incorporating all publicly known data—professional history, online presence, and behavioral patterns. The report will highlight both constructive capacities and latent risks, with each observation framed through the lens of strategic, operational, and security implications.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll get started and let you know as soon as the full analysis is ready.&lt;/p&gt;
&lt;h1 id="intelligence-dossier-jason-grey"&gt;
 Intelligence Dossier: Jason Grey
 &lt;a class="heading-link" href="#intelligence-dossier-jason-grey"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;h2 id="executive-summary"&gt;
 Executive Summary
 &lt;a class="heading-link" href="#executive-summary"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Jason Grey is a Minneapolis-based technology executive and engineer, currently serving as Chief Technology Officer (CTO) at Warecorp and as a Senior Engineer with the Common Crawl Foundation (&lt;a href="https://commoncrawl.org/team/jason-grey#:~:text=He%20has%20collaborated%20with%20leading,Partner%20and%20CTO%20at%20Warecorp" class="external-link" target="_blank" rel="noopener"&gt;Common Crawl - Team - Jason Grey&lt;/a&gt;). He has amassed over three decades of experience across web, mobile, and enterprise software domains, tackling complex projects for Fortune 100 companies and startups alike (&lt;a href="https://www.jason-grey.com/jason-grey-resume.pdf#:~:text=creative%20process%2C%20and%20well,with%20many%20%E2%80%9CFortune%20100%E2%80%9D%20companies" class="external-link" target="_blank" rel="noopener"&gt;My project - April 20, 2023 at 15.03.37&lt;/a&gt;) (&lt;a href="https://commoncrawl.org/team/jason-grey#:~:text=He%20has%20collaborated%20with%20leading,He%20is" class="external-link" target="_blank" rel="noopener"&gt;Common Crawl - Team - Jason Grey&lt;/a&gt;). Grey’s public persona is that of a highly skilled &lt;strong&gt;innovator and leader&lt;/strong&gt; with a reputation for &lt;strong&gt;challenging the status quo&lt;/strong&gt; through smart, unconventional solutions (&lt;a href="https://www.jason-grey.com/jason-grey-resume.pdf#:~:text=creative%20process%2C%20and%20well,with%20many%20%E2%80%9CFortune%20100%E2%80%9D%20companies" class="external-link" target="_blank" rel="noopener"&gt;My project - April 20, 2023 at 15.03.37&lt;/a&gt;). His digital footprint (including personal websites and technical blogs) portrays a forward-thinking technologist who actively engages in discussions on AI, open data, and software architecture.&lt;/p&gt;</description></item><item><title>Front-End</title><link>http://www.jason-grey.com/skills/front-end/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/front-end/</guid><description>&lt;blockquote&gt;
&lt;p&gt;My first HTML work was in 1994, while I was in a mentorship program at Cray Research. I was using an SGI workstation and early version of Mosaic web browser.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;HTML5&lt;/li&gt;
&lt;li&gt;Xamarin, iOS/Cocoa, Android, J2ME&lt;/li&gt;
&lt;li&gt;CSS, Bootstrap&lt;/li&gt;
&lt;li&gt;jQuery, Prototype/script.aculo.us, MooTools&lt;/li&gt;
&lt;li&gt;Knockout, AngularJS, Backbone.js, Dojo&lt;/li&gt;
&lt;li&gt;Handlebars, Jade&lt;/li&gt;
&lt;li&gt;YUI, Ext JS&lt;/li&gt;
&lt;li&gt;Google Web Toolkit&lt;/li&gt;
&lt;li&gt;Flash/Flex&lt;/li&gt;
&lt;li&gt;Java AWT and Swing&lt;/li&gt;
&lt;li&gt;Microfrontends (long before they were even called that&amp;hellip;)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Imaging/Video</title><link>http://www.jason-grey.com/skills/frameworks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/frameworks/</guid><description>&lt;ul&gt;
&lt;li&gt;ASP.NET&lt;/li&gt;
&lt;li&gt;J2EE&lt;/li&gt;
&lt;li&gt;J2SE&lt;/li&gt;
&lt;li&gt;Estimote SDK&lt;/li&gt;
&lt;li&gt;Hybernate (both Java and .NET), EntityFramework&lt;/li&gt;
&lt;li&gt;Tomcat, Glassfish, JBoss, and some experience with Oracle &amp;amp; IBM&lt;/li&gt;
&lt;li&gt;Ruby on Rails&lt;/li&gt;
&lt;li&gt;Node.js, Express&lt;/li&gt;
&lt;li&gt;Jena (Semantic Web)&lt;/li&gt;
&lt;li&gt;R&lt;/li&gt;
&lt;li&gt;SmartThings, HomeSeer&lt;/li&gt;
&lt;li&gt;Mahout, OpenNLP, Weka, RapidMiner&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Imaging/Video</title><link>http://www.jason-grey.com/skills/imaging-and-video/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/imaging-and-video/</guid><description>&lt;ul&gt;
&lt;li&gt;Various frameworks in Java, Python, .NET, and more.&lt;/li&gt;
&lt;li&gt;OpenCV&lt;/li&gt;
&lt;li&gt;PIL&lt;/li&gt;
&lt;li&gt;ImageMagik (PHP, .NET and Java integrated)&lt;/li&gt;
&lt;li&gt;Scene7 (and other DAMs and DAM-like systems)&lt;/li&gt;
&lt;li&gt;Scripting of numerous Adobe products including InDesign, Photoshop, and AfterEffects&lt;/li&gt;
&lt;li&gt;Adobe Media Encoder&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Platforms &amp; Apps</title><link>http://www.jason-grey.com/skills/platforms-and-apps/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/platforms-and-apps/</guid><description>&lt;ul&gt;
&lt;li&gt;IIS, Apache1, Apache2, Nginx&lt;/li&gt;
&lt;li&gt;SalesForce, Microsoft Dynamics CRM&lt;/li&gt;
&lt;li&gt;Netsuite, Odoo, Hubspot, SAP, Microsoft Dyanmics AX&lt;/li&gt;
&lt;li&gt;Adobe AEM, SiteCore, LifeRay, SharePoint, Documentum, Vignette, Alfresco, Sitefinity, DaisyCMS&lt;/li&gt;
&lt;li&gt;Wordpress, Drupal, NukePHP, Joomla&lt;/li&gt;
&lt;li&gt;Hybris, ElasticPath, osCommerce, Magento 2&lt;/li&gt;
&lt;li&gt;Paypal, Authorize.NET&lt;/li&gt;
&lt;li&gt;Vertex&lt;/li&gt;
&lt;li&gt;USPS, UPS, Fedex&lt;/li&gt;
&lt;li&gt;XMLSpy&lt;/li&gt;
&lt;li&gt;Google Maps, Microsoft MapPoint, Yahoo Map API&lt;/li&gt;
&lt;li&gt;Facebook apps, Twitter integration&lt;/li&gt;
&lt;li&gt;Datasift, Radian6&lt;/li&gt;
&lt;li&gt;Exact Target, MailChimp, Twilio&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Process</title><link>http://www.jason-grey.com/skills/process/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.jason-grey.com/skills/process/</guid><description>&lt;ul&gt;
&lt;li&gt;Vendor selection&lt;/li&gt;
&lt;li&gt;Mergers &amp;amp; Acquisition Due Diligence&lt;/li&gt;
&lt;li&gt;Agile/Scrum/XP&lt;/li&gt;
&lt;li&gt;Kanban&lt;/li&gt;
&lt;li&gt;Waterfall&lt;/li&gt;
&lt;li&gt;BPMN/BPML&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>