<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Krawaller weblog]]></title><description><![CDATA[Krawaller weblog]]></description><link>http://blog.krawaller.se</link><generator>homebrewed code</generator><lastBuildDate>Fri Sep 11 2020 17:49:35 GMT</lastBuildDate><atom:link href="https://blog.krawaller.se/rss.xml" rel="self" type="application/rss+xml"/><author><![CDATA[The Krawaller brothers]]></author><item><title><![CDATA[Unit testing ReactRedux components]]></title><description><![CDATA[A convenient approach for testing React components connected via ReactRedux]]></description><link>https://blog.krawaller.se/posts/unit-testing-react-redux-components</link><guid isPermaLink="true">https://blog.krawaller.se/posts/unit-testing-react-redux-components</guid><category><![CDATA[react]]></category><category><![CDATA[redux]]></category><category><![CDATA[testing]]></category><category><![CDATA[jest]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Mon Sep 07 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Unit testing Redux-observable epics]]></title><description><![CDATA[Demonstrating a convenient helper method and pattern for unit testing Redux observable epics]]></description><link>https://blog.krawaller.se/posts/unit-testing-redux-observable-epics</link><guid isPermaLink="true">https://blog.krawaller.se/posts/unit-testing-redux-observable-epics</guid><category><![CDATA[redux]]></category><category><![CDATA[redux-observable]]></category><category><![CDATA[testing]]></category><category><![CDATA[jest]]></category><category><![CDATA[typescript]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Mon Aug 26 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[Implementing a source code view in Storybook]]></title><description><![CDATA[Exploring how to add a source code viewer to a Storybook setup]]></description><link>https://blog.krawaller.se/posts/implementing-a-source-code-view-in-storybook</link><guid isPermaLink="true">https://blog.krawaller.se/posts/implementing-a-source-code-view-in-storybook</guid><category><![CDATA[storybook]]></category><category><![CDATA[react]]></category><category><![CDATA[case study]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sat Aug 17 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to reduce boilerplate in Redux]]></title><description><![CDATA[Exploring a pattern that lets us group related logic and reduce boilerplate in Redux apps]]></description><link>https://blog.krawaller.se/posts/how-to-reduce-boilerplate-in-redux</link><guid isPermaLink="true">https://blog.krawaller.se/posts/how-to-reduce-boilerplate-in-redux</guid><category><![CDATA[redux]]></category><category><![CDATA[typescript]]></category><category><![CDATA[cyclejs]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Thu Dec 13 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Building TodoMVC with Callbags and React]]></title><description><![CDATA[Making a TodoMVC implementation using Callbags and React, introducing the needed tools as we go!]]></description><link>https://blog.krawaller.se/posts/building-todomvc-with-callbags-and-react</link><guid isPermaLink="true">https://blog.krawaller.se/posts/building-todomvc-with-callbags-and-react</guid><category><![CDATA[callbags]]></category><category><![CDATA[react]]></category><category><![CDATA[redux]]></category><category><![CDATA[case study]]></category><category><![CDATA[todomvc]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Mon May 07 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Explaining callbags via TypeScript definitions]]></title><description><![CDATA[Understanding callbags by splitting them into types with individual TypeScript definitions]]></description><link>https://blog.krawaller.se/posts/explaining-callbags-via-typescript-definitions</link><guid isPermaLink="true">https://blog.krawaller.se/posts/explaining-callbags-via-typescript-definitions</guid><category><![CDATA[callbags]]></category><category><![CDATA[typescript]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sun Feb 25 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Dissecting a Callbag TodoMVC implementation]]></title><description><![CDATA[Peeking under the hood of a TodoMVC implementation using only Callbags and Snabbdom]]></description><link>https://blog.krawaller.se/posts/dissecting-a-callbag-todomvc-implementation</link><guid isPermaLink="true">https://blog.krawaller.se/posts/dissecting-a-callbag-todomvc-implementation</guid><category><![CDATA[callbags]]></category><category><![CDATA[case study]]></category><category><![CDATA[snabbdom]]></category><category><![CDATA[redux]]></category><category><![CDATA[todomvc]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Fri Feb 23 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Callbags introduction]]></title><description><![CDATA[Wrapping our brains around the Callbags specification for streams represented by functions]]></description><link>https://blog.krawaller.se/posts/callbags-introduction</link><guid isPermaLink="true">https://blog.krawaller.se/posts/callbags-introduction</guid><category><![CDATA[callbags]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Tue Feb 20 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[CSS selectors are evil and JS is the solution]]></title><description><![CDATA[A pragmatic demonstration of the drawbacks with CSS selectors, and how inline styles through JS solves these problems]]></description><link>https://blog.krawaller.se/posts/css-selectors-are-evil-and-js-is-the-solution</link><guid isPermaLink="true">https://blog.krawaller.se/posts/css-selectors-are-evil-and-js-is-the-solution</guid><category><![CDATA[css]]></category><category><![CDATA[cssinjs]]></category><category><![CDATA[bem]]></category><category><![CDATA[react]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Tue Jan 02 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Github Battle - an Angular case study using Firebase authentication]]></title><description><![CDATA[Dissecting Github Battle - an app consuming the Github API built with Angular and Firebase authentication]]></description><link>https://blog.krawaller.se/posts/github-battle-an-angular-case-study-using-firebase-authentication</link><guid isPermaLink="true">https://blog.krawaller.se/posts/github-battle-an-angular-case-study-using-firebase-authentication</guid><category><![CDATA[case study]]></category><category><![CDATA[angular2]]></category><category><![CDATA[github]]></category><category><![CDATA[firebase]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sat May 27 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[A Redux-TypeScript setup]]></title><description><![CDATA[Walking through a Redux-TypeScript scaffold, set up for maximal in-editor help from minimal typing]]></description><link>https://blog.krawaller.se/posts/a-redux-typescript-setup</link><guid isPermaLink="true">https://blog.krawaller.se/posts/a-redux-typescript-setup</guid><category><![CDATA[redux]]></category><category><![CDATA[typescript]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Thu May 18 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[Dissecting @ < & = bindings in AngularJS]]></title><description><![CDATA[Exploring how @ < & = really work in AngularJS directives/components, and realising how < rules them all]]></description><link>https://blog.krawaller.se/posts/dissecting-bindings-in-angularjs</link><guid isPermaLink="true">https://blog.krawaller.se/posts/dissecting-bindings-in-angularjs</guid><category><![CDATA[angularjs]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Wed Mar 22 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[A library webworker wrapper]]></title><description><![CDATA[Presenting a tool to create an asynchronous webworker version of a library]]></description><link>https://blog.krawaller.se/posts/a-library-webworker-wrapper</link><guid isPermaLink="true">https://blog.krawaller.se/posts/a-library-webworker-wrapper</guid><category><![CDATA[webworker]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Tue Mar 07 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[A React-Redux example followup]]></title><description><![CDATA[Following up on our React-Redux example, discussing what logic goes where]]></description><link>https://blog.krawaller.se/posts/a-react-redux-example-followup</link><guid isPermaLink="true">https://blog.krawaller.se/posts/a-react-redux-example-followup</guid><category><![CDATA[react]]></category><category><![CDATA[redux]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Fri Jan 06 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[5 reasons not to use ES6 classes in React]]></title><description><![CDATA[Walking through some reasons to prefer `React.createClass` over ES6 classes in React]]></description><link>https://blog.krawaller.se/posts/5-reasons-not-to-use-es6-classes-in-react</link><guid isPermaLink="true">https://blog.krawaller.se/posts/5-reasons-not-to-use-es6-classes-in-react</guid><category><![CDATA[react]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sun Jan 01 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[Angular2 versus React, comparing components]]></title><description><![CDATA[Some musings around the comparison, and my part in an upcoming live debate]]></description><link>https://blog.krawaller.se/posts/angular2-versus-react-comparing-components</link><guid isPermaLink="true">https://blog.krawaller.se/posts/angular2-versus-react-comparing-components</guid><category><![CDATA[react]]></category><category><![CDATA[angular2]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Mon Oct 24 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Stupidly smart components in Choo]]></title><description><![CDATA[Philosophizing about why smart components in Choo are stupid and why that is a good thing]]></description><link>https://blog.krawaller.se/posts/stupidly-smart-components-in-choo</link><guid isPermaLink="true">https://blog.krawaller.se/posts/stupidly-smart-components-in-choo</guid><category><![CDATA[choo]]></category><category><![CDATA[react]]></category><category><![CDATA[redux]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Thu Jul 07 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Composition in CycleJS, Choo, React and Angular2]]></title><description><![CDATA[Comparing loosely coupled composition in four different frameworks by implementing the same small app in all of them]]></description><link>https://blog.krawaller.se/posts/composition-in-cyclejs-choo-react-and-angular2</link><guid isPermaLink="true">https://blog.krawaller.se/posts/composition-in-cyclejs-choo-react-and-angular2</guid><category><![CDATA[cyclejs]]></category><category><![CDATA[react]]></category><category><![CDATA[angular2]]></category><category><![CDATA[choo]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Wed Jul 06 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Exploring composition in CycleJS]]></title><description><![CDATA[Experimenting with a helper function for component composition in CycleJS]]></description><link>https://blog.krawaller.se/posts/exploring-composition-in-cyclejs</link><guid isPermaLink="true">https://blog.krawaller.se/posts/exploring-composition-in-cyclejs</guid><category><![CDATA[cyclejs]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Wed Jun 15 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Devsum CycleJS]]></title><description><![CDATA[Slides from and retrospective on my CycleJS talk at Devsum]]></description><link>https://blog.krawaller.se/posts/devsum-cyclejs</link><guid isPermaLink="true">https://blog.krawaller.se/posts/devsum-cyclejs</guid><category><![CDATA[cyclejs]]></category><category><![CDATA[rxjs]]></category><dc:creator><![CDATA[David]]></dc:creator><pubDate>Fri May 27 2016 00:00:00 GMT</pubDate></item></channel></rss>