<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Josh Wise</title>
    <link>https://jwise.dev/posts/</link>
    <description>Recent content in Posts on Josh Wise</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 17 Nov 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://jwise.dev/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Unboxed: Postmortem&#43;</title>
      <link>https://jwise.dev/posts/unboxed-a-postmortem-2/</link>
      <pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/unboxed-a-postmortem-2/</guid>
      <description>&lt;h1&gt;&lt;/h1&gt;
&lt;p&gt;Earlier this month, I wrote about building &lt;a href=&#34;__GHOST_URL__/unboxing-vaults-mail/&#34;&gt;Unboxed&lt;/a&gt;, a native macOS app to convert Google Vault MBOX exports into PDFs. The goal was simple: make email archives accessible to non-technical staff handling open records requests. The app worked, but it had a problem—it was slow. Really slow. Large MBOX files would chug along, eating up memory and often crashing the app entirely. I suspect the culprit was PDFKit, Apple&amp;rsquo;s framework for generating PDFs, struggling to keep up with the workload.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unboxed - MBOX to PDF</title>
      <link>https://jwise.dev/posts/unboxing-vaults-mail/</link>
      <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/unboxing-vaults-mail/</guid>
      <description>&lt;h2 id=&#34;a-problem-i-never-asked-for&#34;&gt;A problem I never asked for&amp;hellip;&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;ve ever had to handle legal record requests or data exports from Google Vault, you know the pain: you get a shiny &lt;code&gt;.mbox&lt;/code&gt; file that&amp;rsquo;s worthless as-is. Sure, it&amp;rsquo;s technically a &amp;ldquo;standard&amp;rdquo; email format, but try handing that to an attorney, or literally anyone who doesn&amp;rsquo;t live in a terminal.&lt;/p&gt;
&lt;h2 id=&#34;unboxed&#34;&gt;Unboxed&lt;/h2&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;__GHOST_URL__/content/images/2025/11/Screenshot-2025-11-03-at-11.57.45-AM.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;I built Unboxed to solve this exact headache. It&amp;rsquo;s a native macOS app to convert your MBOX file into usable PDFs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>viewFMX</title>
      <link>https://jwise.dev/posts/viewfmx/</link>
      <pubDate>Thu, 30 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/viewfmx/</guid>
      <description>&lt;p&gt;My workplace recently adopted FMX as a platform for managing facility resources and availability. The platform provides robust scheduling capabilities and has proven invaluable for managing room bookings and resource allocation across our district.&lt;/p&gt;
&lt;p&gt;However, we quickly identified a gap in our implementation: the need for clear, real-time displays outside each conference room showing current and upcoming bookings. While there are commercial products available that offer this functionality, FMX doesn&amp;rsquo;t provide dedicated display hardware or a standalone display solution. What they do offer, though, is a comprehensive API - and that&amp;rsquo;s where my journey began.&lt;/p&gt;</description>
    </item>
    <item>
      <title>2F2Chrome</title>
      <link>https://jwise.dev/posts/2f2chrome/</link>
      <pubDate>Sun, 20 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/2f2chrome/</guid>
      <description>&lt;p&gt;My wife &amp;amp; I migrated to iPhone a few year ago. Having previously never owned one, I grew accustomed to the seamless integration between iOS and macOS. A killer feature was the handling of two-factor authentication codes. The native system, coupled with an app called 2FHey, made the whole process a breeze. Recently my wife mentioned switching back to Pixel&amp;hellip; and hey, &amp;ldquo;Happy wife, happy life&amp;rdquo; is the saying right? As we made the leap back to Android, I found myself missing that smooth 2FA experience. And with that, 2F2Chrome was born.&lt;/p&gt;</description>
    </item>
    <item>
      <title>orgLink</title>
      <link>https://jwise.dev/posts/orglink/</link>
      <pubDate>Wed, 09 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/orglink/</guid>
      <description>&lt;p&gt;In today&amp;rsquo;s digital-first educational landscape, teachers are expected to navigate a complex web of online resources. From learning management systems and grading portals, to curriculum repositories and communication platforms, the number of essential links can be overwhelming.&lt;/p&gt;
&lt;p&gt;To address these issues, I developed an internal extension deployed via our Google Workspace account. This tool provides a centralized, easily accessible hub for all essential web resources used by teachers in our district. I decided recently that this extension could be improved upon, and made available for others to solve similar problems.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Experience</title>
      <link>https://jwise.dev/posts/experience/</link>
      <pubDate>Mon, 07 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/experience/</guid>
      <description>&lt;h2 id=&#34;celina-isd---senior-systems-engineer&#34;&gt;Celina ISD - Senior Systems Engineer&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;September 2017 - Present&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maintained and managed various IT systems including servers, networks, storage&lt;/li&gt;
&lt;li&gt;infrastructure to ensure uptime and availability.&lt;/li&gt;
&lt;li&gt;Administered Windows and Linux servers, including regular updates, patch&lt;/li&gt;
&lt;li&gt;management, and security configurations.&lt;/li&gt;
&lt;li&gt;Designed and implement robust backup and disaster recovery solutions, aiding in&lt;/li&gt;
&lt;li&gt;the preservation of critical data.&lt;/li&gt;
&lt;li&gt;Administered Active Directory, Azure, Google Workspace. Including user&lt;/li&gt;
&lt;li&gt;provisioning, group policy management, and access control, supporting over 5500&lt;/li&gt;
&lt;li&gt;end users.&lt;/li&gt;
&lt;li&gt;Directed the transformation to a virtualized infrastructure via the implementation of&lt;/li&gt;
&lt;li&gt;Hyper-V, VEEAM, and the use of Linux containers through Docker.&lt;/li&gt;
&lt;li&gt;Performed regular security audits and vulnerability assessments, implementing&lt;/li&gt;
&lt;li&gt;necessary measures to protect against threats.&lt;/li&gt;
&lt;li&gt;Managed network infrastructure, including switches, routers, firewalls, and VPNs.&lt;/li&gt;
&lt;li&gt;Deployed Packetfence NAC for 802.1x authentication &amp;amp; role-based access control.&lt;/li&gt;
&lt;li&gt;Delivered technical training and documentation for end-users and IT staff.&lt;/li&gt;
&lt;li&gt;Implemented systems automation using Powershell, Python, SQL, and Rest APIs.&lt;/li&gt;
&lt;li&gt;Configured and maintained MDM solutions (Mosyle, Jamf Pro) for approximately&lt;/li&gt;
&lt;li&gt;6000 Apple devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;nssm-llc---full-stack-developer&#34;&gt;NSSM, LLC - Full Stack Developer&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;October 2015 - June 2017&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aviligon Alta API - Physical Controls</title>
      <link>https://jwise.dev/posts/aviligon-alta-api/</link>
      <pubDate>Thu, 27 Jun 2024 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/aviligon-alta-api/</guid>
      <description>&lt;p&gt;This summer, our district is undergoing a much needed modernization project, transitioning from a legacy access control system to Avigilon Alta (formerly OpenPath). While deploying the demo system at our admin office, a functionality gap emerged: single-button front door control, something previously achievable with the old platform.&lt;/p&gt;
&lt;p&gt;Recalling the availability of an Avigilon Alta API, I saw an opportunity to leverage it for a custom door control. This project, AltaNode, utilizes an inexpensive NodeMCU, buttons, enclosure, and the aforementioned API to allow quick control of doors from a single button press.&lt;/p&gt;</description>
    </item>
    <item>
      <title>NIM - PacketFence API Connector</title>
      <link>https://jwise.dev/posts/building-custom-connector-for-nim/</link>
      <pubDate>Thu, 30 May 2024 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/building-custom-connector-for-nim/</guid>
      <description>&lt;p&gt;I recently decided to move our district away from custom scripts for identity management and automation, towards a product provided by Tools4Ever, NIM. While doing so, I realized that NIM is a pretty powerful utility. NIM provides the ability for end users to develop custom connectors &amp;amp; internal applications, making NIM more than just a utility for automated identity management.&lt;/p&gt;
&lt;p&gt;While the team at Tools4Ever is happy to take your money to develop a new connector, I work in education, I don&amp;rsquo;t have money. Enter the documentation provided by NIM, full of useful information. Paired with their connector GitHub, anyone can build a connector, as long as your chosen product&amp;rsquo;s API plays nice.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://jwise.dev/posts/about/</link>
      <pubDate>Mon, 18 Sep 2023 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/about/</guid>
      <description>&lt;p&gt;As a Senior Systems Engineer, I am dedicated to architecting, implementing, and managing robust IT infrastructures that drive operational efficiency. My extensive knowledge spans a wide array of technologies, enabling me to design and maintain scalable systems tailored to meet any provided needs. I have expertise in, but not limited to, Systems Architecture and Design, Virtualization (VMware, Hyper-V), Cloud Computing (AWS, Azure), Server and Storage Solutions, Disaster Recovery Planning, Automation and Scripting (PowerShell, Python), &amp;amp; Database Management.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IncidentIQ - API &amp; Automation</title>
      <link>https://jwise.dev/posts/incidentiqapi/</link>
      <pubDate>Mon, 18 Sep 2023 00:00:00 +0000</pubDate>
      <guid>https://jwise.dev/posts/incidentiqapi/</guid>
      <description>&lt;p&gt;This week I decided to tackle some automation using the IncidentIQ API. The goal is to create a ticket in IncidentIQ when students are enrolled or withdrawn.&lt;/p&gt;
&lt;p&gt;API access for IncidentIQ is disabled by default. After a quick request to their support team, a new item in the dashboard appears under Administration &amp;gt; Developer Tools. This is where API tokens can be created, and a link to their documentation can be found. I also came across another public facing set of API docs here.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
