Permalink
Browse files

Separate big tweets to different subpage

  • Loading branch information...
1 parent d701202 commit a2cf872552bc1ad2aa8057fd7813c246e8e2fbea @staltz committed Nov 30, 2016
View
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <title>André Staltz{% if page.title %} - {{ page.title }}{% endif %}</title>
+ <meta name="description" content="User Interface Programmer">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+ <link rel="stylesheet" href="/css/bootstrap.min.css">
+ <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
+ <link href="/css/main.css" rel="stylesheet">
+ <link href="/css/github.css" rel="stylesheet">
+ <script src="/js/modernizr-2.6.1.min.js"></script>
+ </head>
+ <body>
+ <div class="header-post"></div>
+ <div class="avatar"></div>
+ <div class="container post">
+ <div class="row">
+ <div class="col-lg-6 col-lg-offset-3">
+ <div class="centered">
+ <h2 class="name-title"><a href="/">André Staltz</a></h2>
+ <h2 class="post-title">{{ page.title }}</h3>
+ </div>
+{{ content }}
+ </div>
+ </div>
+ </div>
+ <div class="footer">
+ <div class="container">
+ <div class="row">
+ <div class="col-lg-6 col-lg-offset-3">
+ <p><a href="/">Back home</a></p>
+ <p><a href="https://github.com/staltz/staltz.github.io" target="_blank">Source code</a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+ <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>
+ <script src="/js/bootstrap.min.js"></script>
+ <script>
+ (function() {
+ $("#link-name-title").tooltip({'placement': 'right'})
+ }).call(this);
+ </script>
+<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ga('create', 'UA-43862400-1', 'staltz.com');
+ga('send', 'pageview');
+</script>
+ </body>
+</html>
@@ -1,6 +1,7 @@
---
layout: post
title: "Unidirectional User Interface Architectures"
+tags: [blog]
---
This post is a non-exhaustive quick overview of the so-called "unidirectional data flow" architectures. Not meant to be taken as a beginner tutorial, but rather as an overview of their differences and peculiarities. At the end, I'll introduce a new architecture which deviates significantly from the others. This post assumes client-side Web UI frameworks only.
@@ -1,6 +1,7 @@
---
layout: post
title: "Random namespacing in Cycle.js"
+tags: [blog]
---
Regarding the new architecture for Cycle.js I've been promoting, [Nested Dialogues](http://staltz.com/unidirectional-user-interface-architectures.html#nested-dialogues), [Frederik Krautwald told me something](https://github.com/cyclejs/cycle-core/issues/167#issuecomment-136864542) that left me pondering:
@@ -1,6 +1,7 @@
---
layout: post
title: "Rx glitches aren't actually a problem"
+tags: [blog]
---
Once in a while someone points out how [ReactiveX (Rx)](http://reactivex.io/) does not have means to avoid glitches. [[1]](http://stackoverflow.com/questions/22332407/how-to-avoid-glitches-in-rx?rq=1) [[2]](https://social.msdn.microsoft.com/Forums/en-US/bc2c4b71-c97b-428e-ad71-324055a3cd03/another-discussion-on-glitches-and-rx?forum=rx)
@@ -1,6 +1,7 @@
---
layout: post
title: "Nothing new in React and Flux except one thing"
+tags: [blog]
---
What is it that makes React so innovative and compelling? What is so revolutionary in React and Flux? Is it JSX that makes React unique? Is it components? Perhaps Flux with its Dispatcher, Stores, and Actions? Or is it something else?
@@ -1,6 +1,7 @@
---
layout: post
title: "How to debug RxJS code"
+tags: [blog]
---
A common question from beginners learning RxJS is "how do I debug this?".
@@ -1,6 +1,7 @@
---
layout: post
title: "Some problems with React/Redux"
+tags: [blog]
redirect_from:
- /why-react-redux-is-an-inferior-paradigm.html
---
@@ -1,6 +1,7 @@
---
layout: big-tweet
title: "The reducer pattern in Cycle.js"
+tags: [bigtweet]
---
The “reducer” pattern from [Redux](https://github.com/rackt/redux) (or the “update” pattern from the [Elm architecture](https://github.com/evancz/elm-architecture-tutorial)) is common also in Cycle.js, except there is no `switch`-`case` (or pattern matching block) because each reducer corresponds to one (and only one) action.
@@ -1,6 +1,7 @@
---
layout: big-tweet
title: "Adapting Controlled and Uncontrolled fields in Cycle.js"
+tags: [bigtweet]
---
Virtual DOM libraries like [React](http://facebook.github.io/react) and [virtual-dom](https://github.com/Matt-Esch/virtual-dom) provide a declarative API for describing elements as the output of a system. This API may be limited when it comes to form fields where you may want to *set* the value of an input field as an *assignment*, not as an attribute. This led to solutions like [“Controlled/Uncontrolled”](http://facebook.github.io/react/docs/forms.html#controlled-components) components, which can be done also in Cycle.js.
@@ -1,6 +1,7 @@
---
layout: big-tweet
title: "On the pains of Passive Programming"
+tags: [bigtweet]
---
Having done a lot of Reactive Programming lately, I went back to doing a bit of Passive Programming in a React/Redux codebase. (Read what [Reactive vs Passive](http://cycle.js.org/observables.html#reactive-programming) means).
@@ -1,6 +1,7 @@
---
layout: big-tweet
title: "Imperative code is (too) easy to write"
+tags: [bigtweet]
---
I've noticed how *imperative programming* is easier for programmers to write, compared to e.g. *functional programming*. The imperative mental model corresponds naturally to the programmer's intent: "I want the program to do _____". Code written are commands that the computer obeys without complaining (much). A single line of functional code is often harder to code, requiring an understanding of the full relationship between the entities involved.
@@ -1,6 +1,7 @@
---
layout: post
title: "All JS libraries should be authored in TypeScript"
+tags: [blog]
---
I am a JavaScript programmer, and I make some libraries. Recently, however, I've been writing [TypeScript](http://www.typescriptlang.org/) for [RxJS version 5](https://github.com/ReactiveX/RxJS) (used in [Angular 2](https://angular.io/) which is also authored in TypeScript), and I'm in the process of rewriting [Cycle.js](http://cycle.js.org) in TypeScript.
@@ -1,6 +1,7 @@
---
layout: post
title: "Why we built xstream"
+tags: [blog]
---
For the past two years I have been using [RxJS](http://reactivex.io/rxjs/) extensively, in [Cycle.js](http://cycle.js.org/) and in other contexts. Recently, [TylorS](https://github.com/tylors) and I have decided to build a new reactive streams library comparable to RxJS, called [xstream](http://github.com/staltz/xstream).
@@ -1,6 +1,7 @@
---
layout: post
title: "Everywhereness as a foundation"
+tags: [blog]
---
I have been building and using reactive programming tools for JavaScript, such as [Cycle.js](http://cycle.js.org/), [xstream](http://staltz.com/xstream/), and [RxJS](http://reactivex.io/rxjs/). I believe and teach that Observables or streams should be ubiquitous in a codebase.
@@ -1,6 +1,7 @@
---
layout: post
title: "Setting up a JavaScript monorepo"
+tags: [blog]
---
Yesterday I finished migrating Cycle.js to a [monorepo](https://github.com/cyclejs/cyclejs). It was previously split up into multiple repositories, one for each package. I recommend a monorepo over separate repos if you have many packages that are under one project. Managing multiple repos isn't that fun. Multiple repos means multiple places to manage issues, manage issue labels (and making them consistent across repos), manage PRs, git hooks for conventions, etc.
@@ -1,6 +1,7 @@
---
layout: post
title: "Is your JavaScript function actually pure?"
+tags: [blog]
---
What does "pure function" mean in the context of JavaScript? In programming in general, purity is also known as "referential transparency", a fancy way of saying "*replacing an expression or function call with its result will never change the behavior of the program*" or a way of saying "*every time you pass the same inputs, you always get the same outputs*".
@@ -1,6 +1,7 @@
---
layout: post
title: "React could love Web Components"
+tags: [blog]
---
Recently Web Components have been punched in the face in the Twittersphere. It doesn't need to be like that. Web Components are nice and easy-going and humble and friendly. Web Components love you. Do you love them back?
@@ -1,6 +1,7 @@
---
layout: post
title: "I won't use SemVer patch versions anymore"
+tags: [blog]
---
So far, I believed in [SemVer](http://semver.org/). In a way, I still do, but I developed another interpretation of its rules. It turns out, there isn't a "strict SemVer", since the spec allows library authors to [use their best judgement when it comes breaking changes in patch versions](http://semver.org/#what-if-i-inadvertently-alter-the-public-api-in-a-way-that-is-not-compliant-with-the-version-number-change-ie-the-code-incorrectly-introduces-a-major-breaking-change-in-a-patch-release).
View
@@ -0,0 +1,14 @@
+---
+layout: other
+title: Big Tweets
+---
+<br />
+<p>
+The following resources are short blog posts. I call them "big tweets" because they are too large for a tweet, but too small to be considered blog posts. They are usually straight-to-the-point and just communicate a quick tip related to programming.
+</p>
+<p>
+{% for post in site.posts %}
+ {% if post.tags contains 'bigtweet' %}
+ <a href="{{ post.url }}">{{ post.title }}</a> ({{ post.date | date: "%Y-%B" }})<br />
+ {% endif %}
+{% endfor %}
View
@@ -41,7 +41,9 @@ <h2 id="find-me" class="hr"><span class="hr">FIND ME</span></h2>
<h2 id="blog" class="hr"><span class="hr">BLOG</span></h2>
<p>
{% for post in site.posts %}
+ {% if post.tags contains 'blog' %}
<a href="{{ post.url }}">{{ post.title }}</a> ({{ post.date | date: "%Y-%B" }})<br />
+ {% endif %}
{% endfor %}
<a href="http://futurice.com/blog/why-debugging-is-all-about-understanding">Why debugging is all about understanding</a> (2015-August)<br />
<a href="https://medium.com/@andrestaltz/why-i-cannot-say-frp-but-i-just-did-d5ffaa23973b#.xym3mzpyn">Why I cannot say FRP but I just did</a> (2015-July)<br />
@@ -50,6 +52,9 @@ <h2 id="blog" class="hr"><span class="hr">BLOG</span></h2>
<a href="http://futurice.com/blog/android-development-has-its-own-swift">Android development has its own Swift</a> (2014-July)<br />
<a href="https://gist.github.com/staltz/868e7e9bc2a7b8c1f754">The introduction to Reactive Programming you've been missing</a> (2014-July)
</p>
+ <p>
+ Also, check out these <a href="/big-tweets">"big tweets"</a>.
+ </p>
<h2 id="talks" class="hr"><span class="hr">TALKS</span></h2>
<p>

0 comments on commit a2cf872

Please sign in to comment.