<commit_before><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

  <title>ipfwPane &hellip; the missing Preference Pane of Mac OS X 10.5</title>
  
  <script src="js/FancyZoom.js" type="text/javascript"></script>
  <script src="js/FancyZoomHTML.js" type="text/javascript"></script>
  <script src="js/prototype.js" type="text/javascript"></script>
  <script src="js/scriptaculous.js" type="text/javascript"></script>
  
  <script type="text/javascript" charset="utf-8">
    function FWToggleLicense()
    {
      if($('license').visible())
        Effect.BlindUp('license'); 
      else
        Effect.BlindDown('license'); 
    }
    function FWFlashEmail()
    {
      new Effect.Highlight($('c0ntakt'), {startcolor: '#ffffbb',
          endcolor: '#ffffff', delay: 0.3, duration: 2.0});
    }
    function FWTrackDownload(version)
    {
      // Get the 'default argument' for version
      version = typeof(version) != 'undefined' ? version : 'nil';
      pageTracker._trackPageview('/ipfwpane/ipfwPane-' + version + '.dmg');
    }
  </script>
  
  <style type="text/css" media="screen">
    body {
      font-family: "Helvetica", Verdana, Arial, sans-serif;
      background-color: #ddd;
      font-size: 12pt;
      color: black;
    }
    p, div {
      padding: 0;
      margin: 0;
    }
    h1, h2, h3 {
      font-weight: normal;
      font-family: "Helvetica Neue", Arial, sans-serif;
      margin: 0;
    }
    h1 {
      font-size: 2.5em;
    }
    div#subtitle {
      margin-bottom: 1.75em;
      font-size: 1.3em;
      color: #666;
    }
    div#heading a {
      text-decoration: none;
      background-color: transparent;
      color: black;
    }
    div#heading a:hover {
      text-decoration: underline;
    }
    h2 {
      margin-top: 1em;
      margin-bottom: 0.7em;
      font-size: 2em;
    }
    h3 {
      font-size: 1.4em;
    }
    div#box {
      border: 3px solid #aaa;
      padding: 30px;
      margin: 3em auto 1em auto;
      background-color: white;
      width: 50em;
    }
    
    div#footer {
      font-size: 0.8em;
      color: #888;
      text-align: center;
      margin-bottom: 3em;
    }
    div#footer a {
      color: #888;
      background-color: transparent;
      text-decoration: underline;
    }
    div#footer a:hover {
      color: #888;
      text-decoration: none;
    }
    
    div#downloadBox {
      position: relative;
      margin: 0;
      right: -6em;
      margin-left: -5.5em;
      top: 0.5em;
      border: 3px solid #2a3;
      color: #192;
      background-color: #6f7;
      width: 18em;
      text-align: center;
      padding: 0.75em 0.5em;
      float: right;
      font-size: 0.8em;
    }
    div#downloadBox a {
      color: #173;
      background-color: transparent;
      font-size: 1.5em;
    }
    
    div#screenshots a:hover {
      background-color: transparent;
    }
    div#screenshots a img {
      border: 3px solid #8cd;
      padding: 1px;
      margin-left: 1em;
    }
    div#screenshots a:hover img {
      border: 3px solid #19C;
    }
    div#screenshots a:first-child img {
      margin-left: 0;
    }
    
    .warning {
      background-color: #fc6;
      padding: 0.5em;
      border: 3px solid #FF8000;
    }
    p {
      margin: 0.8em 0;
    }
    .highlight {
      background-color: #ffb;
      padding: 0.8em;
      margin:  -0.4em -0.8em;
    }
    .highlight p {
      margin-bottom: 0;
    }
    div.newsitem {
      margin: 0.8em 0 1.2em 0;
    }
    img#logo {
      float: left;
      margin-right: 1em;
      width: 70px;
      height: 70px;
    }
    .date {
      color: #888;
    }
    h3 span.date {
      margin-left: 0.5em;
    }
    a {
      color: #19C;
      text-decoration: underline;
    }
    a:hover {
      color: white;
      background-color: #09C;
      padding: 0.1em;
      margin: -0.1em;
      text-decoration: none;
    }
    .smiley {
      color: #888;
      font-weight: bold;
    }
    code.command {
      font-size: 1em;
      background-color: #222;
      color: #fff;
      padding: 0.2em;
      font-family: Monaco, monospace;
    }
    code.command:before {
      content: "$ ";
    }
    pre#license {
      font-family: Monaco, monospace;
      font-size: 0.9em;
      margin-left: 2em;
    }
    #c0ntakt {
      padding: 0.2em;
      margin: -0.2em;
    }
  </style>
</head>


<body onload="setupZoom(); $('license').hide();">

<div id="box">


<div id="downloadBox"><a href="ipfwPane-v0.2.dmg" onclick="FWTrackDownload('v0.2');">Download ipfwPane</a><br/>
v0.2 &bull; Leopard only &bull; Universal Binary</div>


<div id="heading">

<a href="http://pixelshed.net/ipfwpane/">
<img id="logo" alt="ipfwPane icon" src="ipfwPanePref.png"/>
<!-- <img id="logo" alt="ipfwPane icon" src="cropd-posterizd-scald.png"/> -->
</a>

<h1><a href="http://pixelshed.net/ipfwpane/">
ipfwPane</a></h1>

<div id="subtitle">&hellip; the missing Preference Pane of Mac OS X 10.5</div>

</div>


<p>ipfw Preference Pane (short ipfwPane) lets you control the <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/ipfw.8.html">ipfw(8)</a> firewall again.  With Leopard Apple did introduce the new application firewall.  The former packet based firewall (which Mac OS X inherited from FreeBSD) does however still exist.
</p>

<p>
There is just no longer an UI available for it, as it was in 10.4.  This is the problem ipfwPane solves &mdash; it provides nearly the same simple interface like the Sharing preference pane in the Tiger days did.
</p>

<p>
This gives you again a more fine-grained control over which ports you want to allow and which you want to block.  And other than with Leopards application firewall you can now also block built-in applications and services if you want to.
</p>


<h2>News</h2>

<div class="highlight">
<h3>First release available <span class="date">05 Oct 2008</span></h3>

<p>I am happy to announce the first public release of ipfwPane.  The features include everything you could do with Tigers old firewall.  You can create, edit and delete rules and modify UDP and TCP port ranges in a single rule.</p>

<p>There is also a list of predefined ports built into to app.  This list is based on this <a href="http://support.apple.com/kb/TS1629?viewlocale=en_US">article</a> from Apple.  But as this is the first public version some predefined rules might work.  So if you find a bug, please <a href="#author" onclick="FWFlashEmail();">tell me</a> about it.</p>


<p>ipfwPane v0.2 is available for download <a href="ipfwPane-v0.2.dmg" onclick="FWTrackDownload('v0.2-news');">here</a>.</p>

</div>


<h2>Screenshots</h2>

<div id="screenshots">
<a href="overview.png" title="Overview"><img alt="Overview" src="overview-thumbnail.png" /></a>
<a href="edit.png" title="Editing rules"><img alt="Editing rules" src="edit-thumbnail.png" /></a>
</div>


<h2>Installation</h2>

<p>
After you downloaded the <a href="#downloadBox">disk image</a>, mount it.  In it you will find a file called "ipfwPane.prefPane".  Just double click on this file and the Preference Pane will be installed.
</p>

<p>
To use ipfwPane, go into "System&nbsp;Preferences" (reachable from the  menu) and then go into the "ipfw&nbsp;Firewall" category.
</p>


<h2>License</h2>

<p>
This application is open-source.  You can use it under the terms of the <a href="#license" onclick="FWToggleLicense(); return false;">2-clause BSD license&hellip;</a>
</p>

<pre id="license">
ipfwPane is distributed under the following terms:

Copyright (C) 2008 <NAME>. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
</pre>


<h2>Source</h2>

<p>
The source code is hosted on <a href="http://github.com/torsten/ipfwpane">GitHub</a>.  To get a recent copy, you just need <a href="http://git.or.cz/">Git</a> and type this in a command prompt:
</p>

<code class="command">
git clone git://github.com/torsten/ipfwpane.git
</code>

<p>If you dont have Git, you can also download a <a href="http://github.com/torsten/ipfwpane/tarball/master">tarball</a> via GitHub.</p>


<h2 id="author">Author</h2>

<p>
This wonderful application is brought to by <NAME>.  If you have some feedback you are very welcome to drop me a line at <em id="c0ntakt">torsten d&#0111;t becker &#0097;t gm&#0097;il d&#0111;t com</em>.
</p>


</div>


<div id="footer">Copyright &copy; 2008 <NAME>, <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/de/deed.en" title="Creative Commons Attribution-Noncommercial-Share Alike 3.0 License">some rights</a> reserved.<br/>
Thanks to <NAME> for <a href="http://cabel.name/2008/02/fancyzoom-10.html">FancyZoom</a>.
</div>


<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-5851032-1");
pageTracker._trackPageview();
</script>


</body>
</html>
<commit_msg>Fixed a display bug on Gecko.<commit_after><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

  <title>ipfwPane &hellip; the missing Preference Pane of Mac OS X 10.5</title>
  
  <script src="js/FancyZoom.js" type="text/javascript"></script>
  <script src="js/FancyZoomHTML.js" type="text/javascript"></script>
  <script src="js/prototype.js" type="text/javascript"></script>
  <script src="js/scriptaculous.js" type="text/javascript"></script>
  
  <script type="text/javascript" charset="utf-8">
    function FWToggleLicense()
    {
      if($('license').visible())
        Effect.BlindUp('license'); 
      else
        Effect.BlindDown('license'); 
    }
    function FWFlashEmail()
    {
      new Effect.Highlight($('c0ntakt'), {startcolor: '#ffffbb',
          endcolor: '#ffffff', delay: 0.3, duration: 2.0});
    }
    function FWTrackDownload(version)
    {
      // Get the 'default argument' for version
      version = typeof(version) != 'undefined' ? version : 'nil';
      pageTracker._trackPageview('/ipfwpane/ipfwPane-' + version + '.dmg');
    }
  </script>
  
  <style type="text/css" media="screen">
    body {
      font-family: "Helvetica", Verdana, Arial, sans-serif;
      background-color: #ddd;
      font-size: 12pt;
      color: black;
    }
    p, div {
      padding: 0;
      margin: 0;
    }
    h1, h2, h3 {
      font-weight: normal;
      font-family: "Helvetica Neue", Arial, sans-serif;
      margin: 0;
    }
    h1 {
      font-size: 2.5em;
    }
    div#subtitle {
      margin-bottom: 1.75em;
      font-size: 1.3em;
      color: #666;
    }
    div#heading a {
      text-decoration: none;
      background-color: transparent;
      color: black;
    }
    div#heading a:hover {
      text-decoration: underline;
    }
    div#heading a img, div#heading > a:hover {
      border: 0;
      padding: 0;
    }
    h2 {
      margin-top: 1em;
      margin-bottom: 0.7em;
      font-size: 2em;
    }
    h3 {
      font-size: 1.4em;
    }
    div#box {
      border: 3px solid #aaa;
      padding: 30px;
      margin: 3em auto 1em auto;
      background-color: white;
      width: 50em;
    }
    
    div#footer {
      font-size: 0.8em;
      color: #888;
      text-align: center;
      margin-bottom: 3em;
    }
    div#footer a {
      color: #888;
      background-color: transparent;
      text-decoration: underline;
    }
    div#footer a:hover {
      color: #888;
      text-decoration: none;
    }
    
    div#downloadBox {
      position: relative;
      margin: 0;
      right: -6em;
      margin-left: -5.5em;
      top: 0.5em;
      border: 3px solid #2a3;
      color: #192;
      background-color: #6f7;
      width: 18em;
      text-align: center;
      padding: 0.75em 0.5em;
      float: right;
      font-size: 0.8em;
    }
    div#downloadBox a {
      color: #173;
      background-color: transparent;
      font-size: 1.5em;
    }
    
    div#screenshots a:hover {
      background-color: transparent;
    }
    div#screenshots a img {
      border: 3px solid #8cd;
      padding: 1px;
      margin-left: 1em;
    }
    div#screenshots a:hover img {
      border: 3px solid #19C;
    }
    div#screenshots a:first-child img {
      margin-left: 0;
    }
    
    .warning {
      background-color: #fc6;
      padding: 0.5em;
      border: 3px solid #FF8000;
    }
    p {
      margin: 0.8em 0;
    }
    .highlight {
      background-color: #ffb;
      padding: 0.8em;
      margin:  -0.4em -0.8em;
    }
    .highlight p {
      margin-bottom: 0;
    }
    div.newsitem {
      margin: 0.8em 0 1.2em 0;
    }
    img#logo {
      float: left;
      margin-right: 1em;
      width: 70px;
      height: 70px;
    }
    .date {
      color: #888;
    }
    h3 span.date {
      margin-left: 0.5em;
    }
    a {
      color: #19C;
      text-decoration: underline;
    }
    a:hover {
      color: white;
      background-color: #09C;
      padding: 0.1em;
      margin: -0.1em;
      text-decoration: none;
    }
    .smiley {
      color: #888;
      font-weight: bold;
    }
    code.command {
      font-size: 1em;
      background-color: #222;
      color: #fff;
      padding: 0.2em;
      font-family: Monaco, monospace;
    }
    code.command:before {
      content: "$ ";
    }
    pre#license {
      font-family: Monaco, monospace;
      font-size: 0.9em;
      margin-left: 2em;
    }
    #c0ntakt {
      padding: 0.2em;
      margin: -0.2em;
    }
  </style>
</head>


<body onload="setupZoom(); $('license').hide();">

<div id="box">


<div id="downloadBox"><a href="ipfwPane-v0.2.dmg" onclick="FWTrackDownload('v0.2');">Download ipfwPane</a><br/>
v0.2 &bull; Leopard only &bull; Universal Binary</div>


<div id="heading">

<a href="http://pixelshed.net/ipfwpane/">
<img id="logo" alt="ipfwPane icon" src="ipfwPanePref.png"/>
<!-- <img id="logo" alt="ipfwPane icon" src="cropd-posterizd-scald.png"/> -->
</a>

<h1><a href="http://pixelshed.net/ipfwpane/">
ipfwPane</a></h1>

<div id="subtitle">&hellip; the missing Preference Pane of Mac OS X 10.5</div>

</div>


<p>ipfw Preference Pane (short ipfwPane) lets you control the <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/ipfw.8.html">ipfw(8)</a> firewall again.  With Leopard Apple did introduce the new application firewall.  The former packet based firewall (which Mac OS X inherited from FreeBSD) does however still exist.
</p>

<p>
There is just no longer an UI available for it, as it was in 10.4.  This is the problem ipfwPane solves &mdash; it provides nearly the same simple interface like the Sharing preference pane in the Tiger days did.
</p>

<p>
This gives you again a more fine-grained control over which ports you want to allow and which you want to block.  And other than with Leopards application firewall you can now also block built-in applications and services if you want to.
</p>


<h2>News</h2>

<div class="highlight">
<h3>First release available <span class="date">05 Oct 2008</span></h3>

<p>I am happy to announce the first public release of ipfwPane.  The features include everything you could do with Tigers old firewall.  You can create, edit and delete rules and modify UDP and TCP port ranges in a single rule.</p>

<p>There is also a list of predefined ports built into to app.  This list is based on this <a href="http://support.apple.com/kb/TS1629?viewlocale=en_US">article</a> from Apple.  But as this is the first public version some predefined rules might work.  So if you find a bug, please <a href="#author" onclick="FWFlashEmail();">tell me</a> about it.</p>


<p>ipfwPane v0.2 is available for download <a href="ipfwPane-v0.2.dmg" onclick="FWTrackDownload('v0.2-news');">here</a>.</p>

</div>


<h2>Screenshots</h2>

<div id="screenshots">
<a href="overview.png" title="Overview"><img alt="Overview" src="overview-thumbnail.png" /></a>
<a href="edit.png" title="Editing rules"><img alt="Editing rules" src="edit-thumbnail.png" /></a>
</div>


<h2>Installation</h2>

<p>
After you downloaded the <a href="#downloadBox">disk image</a>, mount it.  In it you will find a file called "ipfwPane.prefPane".  Just double click on this file and the Preference Pane will be installed.
</p>

<p>
To use ipfwPane, go into "System&nbsp;Preferences" (reachable from the  menu) and then go into the "ipfw&nbsp;Firewall" category.
</p>


<h2>License</h2>

<p>
This application is open-source.  You can use it under the terms of the <a href="#license" onclick="FWToggleLicense(); return false;">2-clause BSD license&hellip;</a>
</p>

<pre id="license">
ipfwPane is distributed under the following terms:

Copyright (C) 2008 <NAME>. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
</pre>


<h2>Source</h2>

<p>
The source code is hosted on <a href="http://github.com/torsten/ipfwpane">GitHub</a>.  To get a recent copy, you just need <a href="http://git.or.cz/">Git</a> and type this in a command prompt:
</p>

<code class="command">
git clone git://github.com/torsten/ipfwpane.git
</code>

<p>If you dont have Git, you can also download a <a href="http://github.com/torsten/ipfwpane/tarball/master">tarball</a> via GitHub.</p>


<h2 id="author">Author</h2>

<p>
This wonderful application is brought to by <NAME>.  If you have some feedback you are very welcome to drop me a line at <em id="c0ntakt">torsten d&#0111;t becker &#0097;t gm&#0097;il d&#0111;t com</em>.
</p>


</div>


<div id="footer">Copyright &copy; 2008 <NAME>, <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/de/deed.en" title="Creative Commons Attribution-Noncommercial-Share Alike 3.0 License">some rights</a> reserved.<br/>
Thanks to <NAME> for <a href="http://cabel.name/2008/02/fancyzoom-10.html">FancyZoom</a>.
</div>


<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-5851032-1");
pageTracker._trackPageview();
</script>


</body>
</html>

{'fraction_non_alphanumeric': 0.13630707380109122, 'fraction_numerical': 0.025174691298937495, 'mean_word_length': 3.0392422192151556, 'pattern_counts': {'":': 0, '<': 265, '<?xml version=': 0, '>': 266, 'https://': 2, 'lorem ipsum': 0, 'www.': 6, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 22, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2835497', 'n_tokens_mistral': 7489, 'n_tokens_neox': 6949, 'n_words': 2102}