<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marc Abramowitz</title>
	<atom:link href="https://marc-abramowitz.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://marc-abramowitz.com</link>
	<description></description>
	<lastBuildDate>Tue, 22 Jul 2025 23:15:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>Unify Saved Me from Manual Quote Hell</title>
		<link>https://marc-abramowitz.com/archives/2025/07/22/easy-way-to-convert-quotes-in-python-code/</link>
					<comments>https://marc-abramowitz.com/archives/2025/07/22/easy-way-to-convert-quotes-in-python-code/#respond</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 21:59:18 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://marc-abramowitz.com/?p=2734</guid>

					<description><![CDATA[Ever had a coding style quirk that slowly drives you mad? At work, our team follows&#160;the Black code style — with one exception: single quotes over double. Seems harmless, right? It turns out this one tiny deviation spawns a surprising amount of friction. The “Find and Replace” Fatigue Sure, I&#160;could&#160;manually search and replace quotes. But [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Ever had a coding style quirk that slowly drives you mad? At work, our team follows&nbsp;the <a href="https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html">Black code style</a> — with one exception: single quotes over double. Seems harmless, right?</p>



<p>It turns out this one tiny deviation spawns a surprising amount of friction.</p>



<h1 class="wp-block-heading">The “Find and Replace” Fatigue</h1>



<p>Sure, I&nbsp;<em>could</em>&nbsp;manually search and replace quotes. But doing it repeatedly across files is tedious. Then I tried using&nbsp;Cursor&nbsp;to handle it, but that introduced a whole new set of headaches: large token usage, slow processing, and needing to nudge it every few steps like a stubborn robot assistant.</p>



<p>It was messing with my flow.</p>



<h1 class="wp-block-heading">Enter Unify (and uv)</h1>



<p>I already had&nbsp;<code><a href="https://github.com/astral-sh/uv">uv</a></code>&nbsp;installed, so bringing in <a href="https://github.com/myint/unify">Unify</a> was seamless:</p>



<pre class="wp-block-code"><code>uv tool install --python=python3.10 unify</code></pre>



<p>That&nbsp;<code>--python=python3.10</code>&nbsp;bit is key—otherwise&nbsp;<code>uv</code>&nbsp;grabs Python 3.13 by default, which causes problems with&nbsp;<code>lib2to3</code>&nbsp;(yep, still relevant!).</p>



<pre class="wp-block-code"><code>Traceback (most recent call last):
  File "/Users/abramowi/.local/bin/unify", line 10, in &lt;module&gt;
    sys.exit(main())
             ~~~~^^
  File "/Users/abramowi/.local/share/uv/tools/unify/lib/python3.13/site-packages/unify.py", line 230, in main
    return _main(sys.argv,
                 standard_out=sys.stdout,
                 standard_error=sys.stderr)
  File "/Users/abramowi/.local/share/uv/tools/unify/lib/python3.13/site-packages/unify.py", line 210, in _main
    if format_file(name, args=args, standard_out=standard_out):
       ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/abramowi/.local/share/uv/tools/unify/lib/python3.13/site-packages/unify.py", line 144, in format_file
    encoding = detect_encoding(filename)
  File "/Users/abramowi/.local/share/uv/tools/unify/lib/python3.13/site-packages/unify.py", line 125, in detect_encoding
    from lib2to3.pgen2 import tokenize as lib2to3_tokenize
ModuleNotFoundError: No module named 'lib2to3'</code></pre>



<p>Unify depends on it, so an older Python version saves the day.</p>



<h1 class="wp-block-heading">The One-Liner That Fixed Everything</h1>



<p>Here’s all it takes to switch to single quotes in-place:</p>



<pre class="wp-block-code"><code>unify --quote "'" --in-place /path/to/file.py</code></pre>



<p>And just like that, no more fiddling. No more token burn. No more nudging AI tools into submission.</p>



<h1 class="wp-block-heading">Before &amp; After</h1>



<pre class="wp-block-code"><code># Before
print("Hello, world!")

# After
print('Hello, world!')</code></pre>



<h1 class="wp-block-heading">Takeaway</h1>



<p>Sometimes the best fix is a surgical one. Unify didn’t just clean up my code—it let me reclaim time and focus. If you’re stuck in quote-style purgatory, this one-liner might just be your escape route.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2025/07/22/easy-way-to-convert-quotes-in-python-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Digging into Nix</title>
		<link>https://marc-abramowitz.com/archives/2025/07/22/digging-into-nix/</link>
					<comments>https://marc-abramowitz.com/archives/2025/07/22/digging-into-nix/#respond</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 21:16:25 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">https://marc-abramowitz.com/?p=2729</guid>

					<description><![CDATA[I&#8217;ve heard good things about Nix. It&#8217;s time to take it for a spin. and way we go&#8230; Now what do we have available&#8230;? Cool. So I have Nix installed and the next step is to find or create a shell.nix file so that I can play with nix-shell&#8230;]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;ve heard good things about <a href="https://github.com/NixOS/nix" data-type="link" data-id="https://github.com/NixOS/nix">Nix</a>. It&#8217;s time to take it for a spin.</p>



<pre class="wp-block-code"><code>abramowi at marcs-mbp-3 in ~
$ curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install

info: downloading installer https://install.determinate.systems/nix/tag/v3.8.2/nix-installer-aarch64-darwin
 INFO nix-installer v3.8.2
`nix-installer` needs to run as `root`, attempting to escalate now via `sudo`...
Password:
 INFO nix-installer v3.8.2
 INFO For a more robust Nix installation, use the Determinate package for macOS: https://dtr.mn/determinate-nix

Install Determinate Nix?

Determinate Nix is tested and ready for macOS Tahoe when you are. Selecting ‘no’ will install Nix from NixOS.

Proceed? (&#91;Y]es/&#91;n]o/&#91;e]xplain):
Nix install plan (v3.8.2)
Planner: macos

Configured settings:
* determinate_nix: true

Planned actions:
* Install Determinate Nixd
* Create an encrypted APFS volume `Nix Store` for Nix on `disk3` and add it to `/etc/fstab` mounting on `/nix`
* Extract the bundled Nix (originally from /nix/store/3knq40gvqd48hfi0n4mv57lx2zx09131-nix-binary-tarball-3.8.2/nix-3.8.2-aarch64-darwin.tar.xz) to `/nix/temp-install-dir`
* Create a directory tree in `/nix`
* Synchronize /nix/var ownership
* Move the downloaded Nix into `/nix`
* Synchronize /nix/store ownership
* Create build users (UID 351-382) and group (GID 350)
* Configure Time Machine exclusions
* Setup the default Nix profile
* Place the Nix configuration in `/etc/nix/nix.conf`
* Configure the shell profiles
* Configuring zsh to support using Nix in non-interactive shells
* Create a `launchctl` plist to put Nix into your PATH
* Configure the Determinate Nix daemon
* Remove directory `/nix/temp-install-dir`


Proceed? (&#91;Y]es/&#91;n]o/&#91;e]xplain):
 INFO Step: Install Determinate Nixd
 INFO Step: Create an encrypted APFS volume `Nix Store` for Nix on `disk3` and add it to `/etc/fstab` mounting on `/nix`
 INFO Step: Provision Nix
 INFO Step: Create build users (UID 351-382) and group (GID 350)
 INFO Step: Configure Time Machine exclusions
 INFO Step: Configure Nix
 INFO Step: Configuring zsh to support using Nix in non-interactive shells
 INFO Step: Create a `launchctl` plist to put Nix into your PATH
 INFO Step: Configure the Determinate Nix daemon
 INFO Step: Remove directory `/nix/temp-install-dir`
Nix was installed successfully!
To get started using Nix, open a new shell or run `. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh`</code></pre>



<p>and way we go&#8230;</p>



<p>Now what do we have available&#8230;?</p>



<pre class="wp-block-code"><code>abramowi at marcs-mbp-3 in ~
$ nix-shell --version
nix-shell (Determinate Nix 3.8.2) 2.30.1


abramowi at marcs-mbp-3 in ~
$ nix-shell
error: no argument specified and no 'shell.nix' or 'default.nix' file found in the working directory</code></pre>



<p>Cool. So I have Nix installed and the next step is to find or create a <code>shell.nix</code> file so that I can play with <code>nix-shell</code>&#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2025/07/22/digging-into-nix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Time to revive this blog</title>
		<link>https://marc-abramowitz.com/archives/2025/07/22/time-to-revive-this-blog/</link>
					<comments>https://marc-abramowitz.com/archives/2025/07/22/time-to-revive-this-blog/#respond</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 21:13:40 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">https://marc-abramowitz.com/?p=2727</guid>

					<description><![CDATA[I last posted to this blog in 2015. Wow. Time to get things going again, I think&#8230;]]></description>
										<content:encoded><![CDATA[
<p>I last posted to this blog in 2015. Wow.</p>



<p>Time to get things going again, I think&#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2025/07/22/time-to-revive-this-blog/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Repair MongoDB after an unclean shutdown</title>
		<link>https://marc-abramowitz.com/archives/2015/01/07/repair-mongodb-after-an-unclean-shutdown/</link>
					<comments>https://marc-abramowitz.com/archives/2015/01/07/repair-mongodb-after-an-unclean-shutdown/#comments</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Wed, 07 Jan 2015 16:30:53 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[MongoDB]]></category>
		<guid isPermaLink="false">http://marc-abramowitz.com/?p=2692</guid>

					<description><![CDATA[This was on an Ubuntu 14.04 VM: vagrant@vagrant-ubuntu-trusty-64:~$ sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb]]></description>
										<content:encoded><![CDATA[<p>This was on an Ubuntu 14.04 VM:</p>
<pre>
vagrant@vagrant-ubuntu-trusty-64:~$ sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb
</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2015/01/07/repair-mongodb-after-an-unclean-shutdown/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Seeing info when changing virtualenvs with virtualenvwrapper</title>
		<link>https://marc-abramowitz.com/archives/2014/12/17/seeing-info-when-changing-virtualenvs-with-virtualenvwrapper/</link>
					<comments>https://marc-abramowitz.com/archives/2014/12/17/seeing-info-when-changing-virtualenvs-with-virtualenvwrapper/#respond</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Thu, 18 Dec 2014 06:34:12 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[virtualenv]]></category>
		<category><![CDATA[virtualenvwrapper]]></category>
		<guid isPermaLink="false">http://marc-abramowitz.com/?p=2686</guid>

					<description><![CDATA[I wanted to see a bit about virtualenvs when I activate them with workon from virtualenvwrapper. I added the following to $VIRTUALENVWRAPPER_HOOK_DIR/postactivate: #!/bin/bash # This hook is run after every virtualenv is activated. python -V easy_install --version pip --version Here&#8217;s how it looks: $ workon pip Python 2.7.6 setuptools 3.6 pip 6.0.dev1 from /Users/marca/dev/git-repos/pip (python [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I wanted to see a bit about virtualenvs when I activate them with <code>workon</code> from <a href="https://virtualenvwrapper.readthedocs.org/en/latest/" title="virtualenvwrapper (Read The Docs)">virtualenvwrapper</a>.</p>
<p>I added the following to <code>$VIRTUALENVWRAPPER_HOOK_DIR/postactivate</code>:</p>
<pre>
#!/bin/bash
# This hook is run after every virtualenv is activated.

python -V
easy_install --version
pip --version
</pre>
<p>Here&#8217;s how it looks:</p>
<pre>
$ workon pip
Python 2.7.6
setuptools 3.6
pip 6.0.dev1 from /Users/marca/dev/git-repos/pip (python 2.7)
</pre>
<p>For more information on customizing with hooks, <a href="https://virtualenvwrapper.readthedocs.org/en/latest/scripts.html">read the docs</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2014/12/17/seeing-info-when-changing-virtualenvs-with-virtualenvwrapper/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to detect non-Apple kernel extensions</title>
		<link>https://marc-abramowitz.com/archives/2014/09/02/how-to-detect-non-apple-kernel-extensions/</link>
					<comments>https://marc-abramowitz.com/archives/2014/09/02/how-to-detect-non-apple-kernel-extensions/#respond</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Wed, 03 Sep 2014 05:20:36 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[OS X]]></category>
		<guid isPermaLink="false">http://marc-abramowitz.com/?p=2679</guid>

					<description><![CDATA[My old Mac crashes a lot. I&#8217;m wondering if it&#8217;s because of some bad third-party extension. Here&#8217;s how to list non-Apple kernel extensions (kext&#8217;s): kextstat &#124; grep -v apple]]></description>
										<content:encoded><![CDATA[<p>My old Mac crashes a lot. I&#8217;m wondering if it&#8217;s because of some bad third-party extension.</p>
<p>Here&#8217;s how to list non-Apple kernel extensions (kext&#8217;s):</p>
<pre>
kextstat | grep -v apple
</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2014/09/02/how-to-detect-non-apple-kernel-extensions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>New MacBook Pro Retina</title>
		<link>https://marc-abramowitz.com/archives/2014/09/02/new-macbook-pro-retina/</link>
					<comments>https://marc-abramowitz.com/archives/2014/09/02/new-macbook-pro-retina/#respond</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Wed, 03 Sep 2014 03:23:11 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[OS X]]></category>
		<guid isPermaLink="false">http://marc-abramowitz.com/?p=2677</guid>

					<description><![CDATA[Our new MacBook Pro Retina arrived while we were in Hawaii. Our old MacBook Pro was getting long in the tooth. It was a pre-unibody, 2007 model, 2.4 GHz Intel Core 2 Duo with 4 GB of RAM, a 500 GB spinning disk drive, and OS X 10.6.8 (Snow Leopard). The new one has a [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Our new MacBook Pro Retina arrived while we were in Hawaii.</p>
<p>Our old MacBook Pro was getting long in the tooth. It was a pre-unibody, 2007 model, 2.4 GHz Intel Core 2 Duo with 4 GB of RAM, a 500 GB spinning disk drive, and OS X 10.6.8 (Snow Leopard).</p>
<p>The new one has a Retina display, 2.8 GHz processor, 16 GB RAM and a 1 TB SSD and it&#8217;s running OS X 10.9.4 (Mavericks).</p>
<p>It&#8217;s been challenging to migrate files from the old laptop to the new one, as the old one keeps crashing.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2014/09/02/new-macbook-pro-retina/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Back from Maui</title>
		<link>https://marc-abramowitz.com/archives/2014/09/02/back-from-maui/</link>
					<comments>https://marc-abramowitz.com/archives/2014/09/02/back-from-maui/#comments</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Wed, 03 Sep 2014 03:01:25 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://marc-abramowitz.com/?p=2675</guid>

					<description><![CDATA[We&#8217;re back in town after a wonderful trip to Maui!]]></description>
										<content:encoded><![CDATA[<p>We&#8217;re back in town after a wonderful trip to Maui!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2014/09/02/back-from-maui/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Pull request to allow supervisor to send arbitrary signals to processes</title>
		<link>https://marc-abramowitz.com/archives/2014/08/14/pull-request-to-allow-supervisor-to-send-arbitrary-signals-to-processes/</link>
					<comments>https://marc-abramowitz.com/archives/2014/08/14/pull-request-to-allow-supervisor-to-send-arbitrary-signals-to-processes/#respond</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Thu, 14 Aug 2014 19:13:28 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[supervisor]]></category>
		<guid isPermaLink="false">http://marc-abramowitz.com/?p=2667</guid>

					<description><![CDATA[https://github.com/Supervisor/supervisor/pull/477 Let&#8217;s you do stuff like: $ supervisorctl cat:0 RUNNING pid 57305, uptime 0:00:07 cat:1 RUNNING pid 57304, uptime 0:00:07 cat:2 RUNNING pid 57307, uptime 0:00:07 cat:3 RUNNING pid 57306, uptime 0:00:07 cat:4 RUNNING pid 57308, uptime 0:00:07 dog:0 RUNNING pid 57300, uptime 0:00:07 dog:1 RUNNING pid 57299, uptime 0:00:07 dog:2 RUNNING pid 57302, uptime [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://github.com/Supervisor/supervisor/pull/477">https://github.com/Supervisor/supervisor/pull/477</a></p>
<p>Let&#8217;s you do stuff like:</p>
<pre>
$ supervisorctl
cat:0                            RUNNING   pid 57305, uptime 0:00:07
cat:1                            RUNNING   pid 57304, uptime 0:00:07
cat:2                            RUNNING   pid 57307, uptime 0:00:07
cat:3                            RUNNING   pid 57306, uptime 0:00:07
cat:4                            RUNNING   pid 57308, uptime 0:00:07
dog:0                            RUNNING   pid 57300, uptime 0:00:07
dog:1                            RUNNING   pid 57299, uptime 0:00:07
dog:2                            RUNNING   pid 57302, uptime 0:00:07
dog:3                            RUNNING   pid 57301, uptime 0:00:07
dog:4                            RUNNING   pid 57303, uptime 0:00:07
supervisor> help signal
signal &lt;signal name&gt; &lt;name&gt;	      Signal a process
signal &lt;signal name&gt; &lt;gname&gt;:*        Signal all processes in a group
signal &lt;signal name&gt; &lt;name&gt; &lt;name&gt;    Signal multiple processes or groups
supervisor> signal 1 dog:3 dog:4
dog:3: signalled
dog:4: signalled
supervisor> signal HUP dog:3 dog:4
dog:3: signalled
dog:4: signalled
supervisor> signal HUP dog:*
dog:1: signalled
dog:0: signalled
dog:3: signalled
dog:2: signalled
dog:4: signalled
supervisor> signal USR1 dog:1 dog:2
dog:1: signalled
dog:2: signalled
</pre>
<p>Also, if you can&#8217;t wait for supervisor to support this, the <a href="https://pypi.python.org/pypi/mr.laforge" title="PyPI: mr.laforge">mr.laforge</a> package supplies a supervisor plugin that can be used to send signals to processes:</p>
<pre>
$ supervisorctl kill HUP nginx
</pre>
<p>That said, it would be nice to have this built into supervisor&#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2014/08/14/pull-request-to-allow-supervisor-to-send-arbitrary-signals-to-processes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Check for modifications in a bunch of locally cloned git repos</title>
		<link>https://marc-abramowitz.com/archives/2014/08/14/check-for-modifications-in-a-bunch-of-locally-cloned-git-repos/</link>
					<comments>https://marc-abramowitz.com/archives/2014/08/14/check-for-modifications-in-a-bunch-of-locally-cloned-git-repos/#respond</comments>
		
		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Thu, 14 Aug 2014 19:01:31 +0000</pubDate>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[shell]]></category>
		<guid isPermaLink="false">http://marc-abramowitz.com/?p=2664</guid>

					<description><![CDATA[Today&#8217;s random tech tip of the day &#8211; how to check whether you have modifications in a bunch of different locally cloned git repos: â¯ for x in *; do echo $x ; ( cd $x; git status -s ); done contentsvc jobsvc M supervisor.conf profilesvc]]></description>
										<content:encoded><![CDATA[<p>Today&#8217;s random tech tip of the day &#8211; how to check whether you have modifications in a bunch of different locally cloned git repos:</p>
<pre>
â¯ for x in *; do echo $x ; ( cd $x; git status -s ); done
contentsvc
jobsvc
 M supervisor.conf
profilesvc
</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://marc-abramowitz.com/archives/2014/08/14/check-for-modifications-in-a-bunch-of-locally-cloned-git-repos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
