- Feature Toggles (Martin Fowler)
- Feature Branch (Martin Fowler)
- Feature Toggle Experience report
- Feature Branches are poor mans modular architecture
- Feature Bits by Erik Sowa and Rob Loh (Presentation, 56 min)
- Interview with Jez Humble and Martin Fowler (38 min)
- Feature Flags by Flickr (Blog)
- Chrome Release Process (Slideshow)
- 10 Deploys per Day at Flickr
- Switching incrementally to Cassandra at Twitter
- Continous Deployment
- Continuous deployment at outbrain
- nToggle implementation
24 February 2011
Feature Toggles Links
16 February 2011
Visual Studio 2010 Javascript Snippets for Jasmine
Because Resharper 5 does not support live templates for Javascript I’m forced to use the built in VS2010 snippets. The default Javascripts snippets are located here:
%ProgramFiles%\Microsoft Visual Studio 10.0\Web\Snippets\JScript\1033\JScript
The ‘1033’ locale ID may be different for your country. I’m using the following snippets for creating Jasmine specs:
describe
<CodeSnippet Format="1.1.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<Header>
<Title>describe</Title>
<Author>Christian Rodemeyer</Author>
<Shortcut>describe</Shortcut>
<Description>Code snippet for a jasmine 'describe' function</Description>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>suite</ID>
<ToolTip>suite description</ToolTip>
<Default>some suite</Default>
</Literal>
</Declarations>
<Code Language="jscript"><![CDATA[describe("$suite$", function () {
$end$
});]]></Code>
</Snippet>
</CodeSnippet>
it
<CodeSnippet Format="1.1.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<Header>
<Title>it</Title>
<Author>Christian Rodemeyer</Author>
<Shortcut>it</Shortcut>
<Description>Code snippet for a jasmine 'it' function</Description>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>spec</ID>
<ToolTip>spec description</ToolTip>
<Default>expected result</Default>
</Literal>
</Declarations>
<Code Language="jscript"><![CDATA[it("should be $spec$", function () {
var result = $end$
});]]></Code>
</Snippet>
</CodeSnippet>
func
<CodeSnippet Format="1.1.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<Header>
<Title>function</Title>
<Author>Christian Rodemeyer</Author>
<Shortcut>func</Shortcut>
<Description>Code snippet for an anonymous function</Description>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="jscript"><![CDATA[function () {
$selected$$end$
}]]></Code>
</Snippet>
</CodeSnippet>
10 February 2011
Removing the mime-type of files in Subversion with SvnQuery
If you add files to subversion they are associated with a mimetype. SvnQuery will only index text files, that means files without an svn:mime-type property or where the property is set to something like “text/*”. At work I wondered why I couldn’t find some words that I know must exist. It turned out that subversion marks files stored as UTF-8 files with BOM as binary, using svn:mime-type application/octet-stream. This forces the indexer to ignore the content of the file.
I used SvnQuery to find all files that are marked as binary, e.g. t:app* .js finds all javascript files and t:app* .cs finds all C# files. With the download button at the bottom of the results page I downloaded a text files with the results. Because svn propdel svn:mime-type [PATH] can work only on one file (it has no --targets option) I had to modify the text file to create a small batch script like this:
svn propdel svn:mime-type c:\workspaces\javascript\file1.js
svn propdel svn:mime-type c:\workspaces\javascript\file1.js
svn propdel svn:mime-type c:\workspaces\javascript\file1.js
…
After this change indexing worked again. I now run a daily query that ensures that no sources files are marked as binary.