<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><description>Welcome to the blog of Manuel M T Chakravarty. I am a computer scientist with a background in programming languages, parallel programming, distributed systems, and cryptography. My current research is mostly at the intersection of programming languages and cryptography with applications to permissionless blockchains. I am also a software developer who is passionate about functional programming. I develop for macOS, iOS, and Linux. I am the principal developer of Haskell for Mac, a unique programming environment for the Haskell programming language that facilitates learning and experimenting with code.  I am mostly developing in Swift and Haskell. Check out some of my technical talks (some have video links).
You can find me on Bluesky (@TacticalGrace.justtesting.org), Twitter (@TacticalGrace), GitHub, and LinkedIn.</description><title>Just Testing</title><generator>Tumblr (3.0; @justtesting)</generator><link>https://justtesting.org/</link><item><title>Applicative code &amp;mdash;the IDE for functional programming&amp;mdash; is now in beta and sports a Bluesky account to&amp;hellip;</title><description>&lt;p class="npf_link" data-npf='{"type":"link","url":"https://bsky.app/profile/code.applicative.co","display_url":"https://bsky.app/profile/code.applicative.co","title":"Applicative Code (@code.applicative.co)","description":"IDE for functional programming on macOS • currently in beta\n\nInterested in beta testing? Just DM an email address for a TestFlight invitatio","site_name":"Bluesky Social","poster":[{"media_key":"c6306ee705c50209c4d403719b84d426:8fa5472861e047bb-d2","type":"image/jpeg","width":3000,"height":1000}]}'&gt;&lt;a href="https://bsky.app/profile/code.applicative.co" target="_blank"&gt;Applicative Code (@code.applicative.co)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Applicative code —the IDE for functional programming— is now in beta and sports a Bluesky account to follow!&lt;/p&gt;</description><link>https://justtesting.org/post/798919160051728384</link><guid>https://justtesting.org/post/798919160051728384</guid><pubDate>Fri, 31 Oct 2025 12:04:43 +0100</pubDate><category>agda</category><category>haskell</category><category>swift</category><category>haskellformac</category><category>applicative</category></item><item><title>Functional data structures in Swift</title><description>&lt;p class="npf_link" data-npf='{"type":"link","url":"https://media.ccc.de/v/bob11-2025-functional-data-structures-in-swift-chakravarty","display_url":"https://media.ccc.de/v/bob11-2025-functional-data-structures-in-swift-chakravarty","title":"Functional data structures in Swift","description":"One of the intriguing features of Swift is its distinction between value types and reference types. Conceptually, value types are always ...","site_name":"media.ccc.de","poster":[{"media_key":"feb1147522709315d258e031ba5a1bf7:cd00dd68ce7bbabb-68","type":"image/jpeg","width":2560,"height":1440}]}'&gt;&lt;a href="https://media.ccc.de/v/bob11-2025-functional-data-structures-in-swift-chakravarty" target="_blank"&gt;Functional data structures in Swift&lt;/a&gt;&lt;/p&gt;&lt;p&gt;One of the intriguing features of Swift is its distinction between value types and reference types. Conceptually, value types are always copied in assignments and passed-by-value in function calls — i.e., they are semantically immutable. In contrast, for reference types, Swift only copies a pointer to an object on an assignment and they are being passed-by-reference to functions. If such an object gets mutated, it changes for for all references. While most languages feature both value and reference types, Swift is unique in that (1) it makes it easy to define and use both flavours of types and (2) it supports fine-grained mutability control.&lt;/p&gt;&lt;p&gt;For large values, such as arrays, frequent copying carries a significant performance penalty. Hence, the Swift compiler goes to great length to avoid copying whenever it is safe. For large values, this effectively boils down to a copy-on-write strategy, where a large value is only copied when it actually is being mutated (on one code path). Swift facilitates for user-defined value types to also adopt this copy-on-write strategy.&lt;/p&gt;&lt;p&gt;In this talk, I will explain the semantic difference between value and reference types, and I will illustrate how this facilitates safe and robust coding practices in Swift. Moreover, I will explain how the copy-on-write strategy for large values works and how it interacts with Swift’s memory management system. Finally, I will demonstrate how you can define your own copy-on-write large value types.&lt;/p&gt;</description><link>https://justtesting.org/post/792687742449516544</link><guid>https://justtesting.org/post/792687742449516544</guid><pubDate>Sat, 23 Aug 2025 18:19:00 +0200</pubDate><category>swift</category><category>mutability</category><category>functional programming</category><category>copy-on-write</category></item><item><title>Functional Programming in Swift</title><description>&lt;p class="npf_link" data-npf='{"type":"link","url":"https://media.ccc.de/v/bob11-2024-functional-programming-in-swift-chakravarty","display_url":"https://media.ccc.de/v/bob11-2024-functional-programming-in-swift-chakravarty","title":"Functional Programming in Swift","description":"When people talk about functional programming in modern multi-paradigm languages, they usually mention Rust, Scala, or Kotlin. You rarely...","site_name":"media.ccc.de","poster":[{"media_key":"9d8b7052891142a63999948f4cdb8db5:aa164e8b7c1333f0-a3","type":"image/jpeg","width":1920,"height":1080}]}'&gt;&lt;a href="https://media.ccc.de/v/bob11-2024-functional-programming-in-swift-chakravarty" target="_blank"&gt;Functional Programming in Swift&lt;/a&gt;&lt;/p&gt;&lt;p&gt;When people talk about functional programming in modern multi-paradigm languages, they usually mention Rust, Scala, or Kotlin. You rarely hear Swift being mentioned. This is odd, as one might argue that, of these languages, Swift places the strongest emphasis on functional programming.&lt;/p&gt;&lt;p&gt;In this talk, I will explain the core functional programming features of Swift, including its expressive type system, value types, and mutability control. Furthermore, I will discuss how Swift’s language design is influenced by the desire to create a language that addresses the whole spectrum from low-level systems programming up to high-level applications with sophisticated graphical user interfaces. Beyond the core language itself, functional programming also permeates Swift’s rich ecosystem of libraries. To support this point, I will outline some FP-inspired core libraries, covering concepts from functional data structures over functional reactive programming to declarative user interfaces.&lt;/p&gt;&lt;p&gt;Finally, I will briefly summarise practical considerations for using Swift in your own projects. This includes the cross-platform toolchain, the package manager, and interoperability with other languages.&lt;/p&gt;</description><link>https://justtesting.org/post/771863410698747904</link><guid>https://justtesting.org/post/771863410698747904</guid><pubDate>Sun, 05 Jan 2025 20:45:10 +0100</pubDate><category>functional programming</category><category>swift</category><category>mutability</category><category>types</category></item><item><title>Custom native assets on Cardano explained</title><description>&lt;figure class="tmblr-full tmblr-embed" data-provider="youtube" data-url="https://www.youtube.com/watch?v=MpWeg6Fg0t8&amp;amp;t=1120s" data-orig-width="356" data-orig-height="200"&gt;&lt;iframe width="356" height="200" id="youtube_iframe" src="https://www.youtube.com/embed/MpWeg6Fg0t8?feature=oembed&amp;amp;enablejsapi=1&amp;amp;origin=https://safe.txmblr.com&amp;amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/figure&gt;&lt;p&gt;In this talk from the Cardano 2020 Virtual Summit, I am explaining the design of the custom native asset functionality of Cardano (starting at 18:40min). This is based on the work published in the following two research papers at ISoLA 2020: &lt;a href="https://iohk.io/en/research/library/papers/utxoma-utxo-with-multi-asset-support/"&gt;UTXOma: UTXO with Multi-Asset Support&lt;/a&gt; and &lt;a href="https://iohk.io/en/research/library/papers/native-custom-tokens-in-the-extended-utxo-model/"&gt;Native Custom Tokens in the Extended UTXO Model&lt;/a&gt;. Custom native assets are supported on the Cardano mainnet since the Mary hardfork that happened in March 2021.&lt;/p&gt;</description><link>https://justtesting.org/post/651432479236964352</link><guid>https://justtesting.org/post/651432479236964352</guid><pubDate>Mon, 17 May 2021 14:27:04 +0200</pubDate><category>Cardano</category><category>custom-assets</category><category>utxo</category><category>tokens</category><category>Youtube</category></item><item><title>This is the video of the keynote talk &amp;ldquo;Blockchains are functional&amp;rdquo; that I delivered at the ACM&amp;hellip;</title><description>&lt;figure class="tmblr-full tmblr-embed" data-provider="youtube" data-url="https://www.youtube.com/watch?v=zXy4kxUlUmY&amp;amp;list=PLyrlk8Xaylp4EuohGj90SbJOcmEwrS-ZO&amp;amp;index=20" data-orig-width="356" data-orig-height="200"&gt;&lt;iframe width="356" height="200" id="youtube_iframe" src="https://www.youtube.com/embed/zXy4kxUlUmY?feature=oembed&amp;amp;enablejsapi=1&amp;amp;origin=https://safe.txmblr.com&amp;amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/figure&gt;&lt;p&gt;This is the video of the keynote talk &amp;ldquo;Blockchains are functional&amp;rdquo; that I delivered at the &lt;a href="https://href.li/?https://icfp19.sigplan.org"&gt;ACM SIGPLAN International Conference on Functional Programming 2019&lt;/a&gt;. Here is the abstract:&lt;/p&gt;&lt;blockquote class="npf_indented"&gt;&lt;p&gt;Functional programming and blockchains are a match made in heaven! The immutable and reproducible nature of distributed ledgers is mirrored in the semantic foundation of functional programming. Moreover, the concurrent and distributed operation calls for a programming model that carefully controls shared mutable state and side effects. Finally, the high financial stakes often associated with blockchains suggest the need for high assurance software and formal methods.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote class="npf_indented"&gt;&lt;p&gt;Nevertheless, most existing blockchains favour an object-oriented, imperative approach in both their implementation as well as in the contract programming layer that provides user-defined custom functionality on top of the basic ledger. On the one hand, this might appear surprising, given that it is widely understood that this style of programming is particularly risky in concurrent and distributed systems. On the other hand, blockchains are still in their infancy and little research has been conducted into associated programming language technology.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote class="npf_indented"&gt;&lt;p&gt;In this talk, I explain the connection between blockchains and functional programming as well as highlight several areas where functional programming, type systems, and formal methods have the potential to advance the state of the art. Overall, I argue that blockchains are not just a well-suited application area for functional programming techniques, but that they also provide fertile ground for future research. I illustrate this with evidence from the research-driven development of the Cardano blockchain and its contract programming platform, Plutus. Cardano and Plutus are implemented in Haskell and Rust, and the development process includes semi-formal specifications together with the use of Agda, Coq, and Isabelle to formalise key components.&lt;/p&gt;&lt;/blockquote&gt;</description><link>https://justtesting.org/post/648901404358033408</link><guid>https://justtesting.org/post/648901404358033408</guid><pubDate>Mon, 19 Apr 2021 15:56:43 +0200</pubDate><category>blockchains</category><category>functional programming</category><category>haskell</category><category>cardano</category><category>plutus</category><category>Youtube</category></item><item><title>Extending Bitcoin-style Ledgers</title><description>&lt;p&gt;In the Plutus &amp;amp; Marlowe team at &lt;a href="https://iohk.io"&gt;IOHK&lt;/a&gt;, we developed an extension to Bitcoin-style UTxO ledgers that we are calling the &lt;em&gt;Extended UTxO Model&lt;/em&gt; and that significantly extends the contract scripting capabilities of such ledgers. On top of that new, more powerful ledger model, we developed a domain-specific language for financial contracts, called &lt;em&gt;Marlowe&lt;/em&gt;. We have got two papers at the &lt;a href="https://fc20.ifca.ai/wtsc/cfp.html"&gt;4th Workshop on Trusted Smart Contracts&lt;/a&gt; where we describe both the Extended UTxO Model and Marlowe. Check out the preprints: &lt;a href="https://iohk.io/en/research/library/papers/the-extended-utxo-model"&gt;The Extended UTxO Model&lt;/a&gt; and &lt;a href="https://iohk.io/en/research/library/papers/marloweimplementing-and-analysing-financial-contracts-on-blockchain/"&gt;Marlowe: implementing and analysing financial contracts on blockchain&lt;/a&gt;.&lt;/p&gt;</description><link>https://justtesting.org/post/190520054836</link><guid>https://justtesting.org/post/190520054836</guid><pubDate>Tue, 28 Jan 2020 22:03:01 +0100</pubDate><category>utxo</category><category>plutus</category><category>marlowe</category><category>blockchain</category><category>haskell</category><category>financial contracts</category></item><item><title>Functional Blockchain Contracts</title><description>&lt;p&gt;Check out the &lt;a href="https://iohk.io/en/research/library/papers/functional-blockchain-contracts/"&gt;draft of the paper&lt;/a&gt; describing the principles underlying Plutus Platform. Here the abstract:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Distributed cryptographic ledgers —aka blockchains —should be a functional programmer’s dream. Their aim is immutability: once a block has been added to the chain it should not be altered or removed. The seminal blockchain, Bitcoin, uses a graph-based model that is purely functional in nature. But Bitcoin has limited support for smart contracts and distributed applications. The seminal smart-contract platform, Ethereum, uses an imperative and object-oriented model of accounts. Ethereum has been subject to numerous exploits, often linked to its use of shared mutable state by way of its imperative and object-oriented features in a concurrent and distributed system. Coding a distributed application for Ethereum requires two languages: Javascript to run off-chain, which submits transaction written in Solidity to run on-chain.&lt;/p&gt;
  
  &lt;p&gt;This paper describes Plutus Platform, a functional blockchain smart contract system for coding distributed applications on top of the Cardano blockchain. Most blockchain programming platforms depend on a custom language, such as Ethereum’s Solidity, but Plutus is provided as a set of libraries for Haskell. Both off-chain and on-chain code are written in Haskell: off-chain code using the Plutus library, and on-chain code in a subset of Haskell using Template Haskell. On-chain code is compiled to a tiny functional language called Plutus Core, which is System Fω with iso-recursive types and suitable primitives.&lt;/p&gt;
  
  &lt;p&gt;Plutus and Cardano are available open source, and Plutus Playground provides a web-based IDE that enables users to try out the system and to develop simple applications.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>https://justtesting.org/post/186788963306</link><guid>https://justtesting.org/post/186788963306</guid><pubDate>Mon, 05 Aug 2019 12:34:45 +0200</pubDate><category>functional programming</category><category>smart contracts</category><category>cardano</category><category>haskell</category><category>plutus</category></item><item><title>My talk “Rethinking Blockchain Contract Development”...</title><description>&lt;iframe width="400" height="225"  id="youtube_iframe" src="https://www.youtube.com/embed/RGJ4FvsUQzo?feature=oembed&amp;enablejsapi=1&amp;origin=https://safe.txmblr.com&amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Manuel M T Chakravarty - Keynote - Rethinking Blockchain Contract Development | Lambda Days 19"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;My talk “Rethinking Blockchain Contract Development” from &lt;a href="http://www.lambdadays.org/lambdadays2019"&gt;Lambda Days 2019&lt;/a&gt;, where I outline why blockchains and functional programming are a good fit and how we are exploiting that in the development of Plutus Platform — the contract layer on top of the Cardano proof-of-stake blockchain. I am also discussing the research-driven development methodology around Cardano.&lt;/p&gt;</description><link>https://justtesting.org/post/186068191456</link><guid>https://justtesting.org/post/186068191456</guid><pubDate>Fri, 05 Jul 2019 11:53:37 +0200</pubDate><category>lambdadays</category><category>blockchain</category><category>haskell</category><category>functionalprogramming</category><category>cardano</category><category>plutus</category></item><item><title>This is a video interview, where I am talking about what I see...</title><description>&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This is a video interview, where I am talking about what I see as the value proposition of functional programming, functional programming in industry, and how the &lt;a href="https://lambdajam.yowconference.com.au"&gt;YOW! Lambda Jam&lt;/a&gt; conference helps developers to get the most out of functional programming.&lt;/p&gt;</description><link>https://justtesting.org/post/184688053961</link><guid>https://justtesting.org/post/184688053961</guid><pubDate>Mon, 06 May 2019 13:57:20 +0200</pubDate><category>functional programming</category><category>haskell</category><category>ylj</category></item><item><title>Why functional programming? Why blockchains? What is the...</title><description>&lt;iframe width="400" height="225"  id="youtube_iframe" src="https://www.youtube.com/embed/uZL9SBNfS-0?feature=oembed&amp;enablejsapi=1&amp;origin=https://safe.txmblr.com&amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="IOHK PlutusFest 2018 | IOHK Language Architect - Manuel Chakravarty Interview"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Why functional programming? Why blockchains? What is the architecture of the Plutus Platform for contract development and why is it based on Haskell? These are some of the questions that I am trying to answer in this video interview.&lt;/p&gt;</description><link>https://justtesting.org/post/181921024941</link><guid>https://justtesting.org/post/181921024941</guid><pubDate>Fri, 11 Jan 2019 11:40:42 +0100</pubDate><category>plutus</category><category>haskell</category><category>blockchain</category><category>functional programming</category><category>cardano</category></item><item><title>Learning Dutch</title><description>&lt;p&gt;About six weeks ago, I moved from Sydney, Australia, to Utrecht in the Netherlands. Naturally, I started to learn Dutch.(*)&lt;/p&gt;

&lt;p&gt;This post is mainly a summary of the things I found helpful so far. Apparently, the Netherlands is becoming an increasingly popular expat destination (&lt;em&gt;cough&lt;/em&gt; Brexit &lt;em&gt;cough&lt;/em&gt;), so this might be useful to some.&lt;/p&gt;

&lt;p&gt;I quickly discovered that, even after living in an English-speaking country for many years, as a German native speaker, learning Dutch from the perspective of German is much easier than going via English (although, fluency in English obviously also helps). The first obstacle here is that it is a lot easier to find a good Dutch-English (electronic) dictionary than a Dutch-German one — for instance, my macOS and iOS devices already come with a Dutch-English dictionary that I can hook into the system look-up service with a click (or tap). The best Dutch-German dictionary that I could find so far is &lt;a href="https://www.uitmuntend.de/"&gt;uitmuntend&lt;/a&gt; — thanks to &lt;a href="https://twitter.com/chriseidhof"&gt;Chris Eidhof&lt;/a&gt; for that very useful recommendation. Its creator also runs the super informative &lt;a href="http://forum.buurtaal.de"&gt;buurtaal forum&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a starting point, I found the &lt;a href="https://www.mondly.com"&gt;mondly&lt;/a&gt; app quite useful. It encourages a daily routine and quickly builds up a basic vocabulary and set of common expressions. It&amp;rsquo;s not cheap, but light years ahead of other iOS apps I checked out.&lt;/p&gt;

&lt;p&gt;The next step for me was to make a habit out of trying to decipher Dutch websites and to refrain from clicking on the English language option. Whether that is the daily whether forecast, a news item, or the instructions for opening a bank account, it is a slow process, but there is no substitute for constant practice.&lt;/p&gt;

&lt;p&gt;As a stepping stone, comic books (especially those for kids) are of course a great choice. (I would have never learnt Japanese without a huge stack of manga.)&lt;/p&gt;

&lt;p&gt;To practice listening comprehsion and to get into more complex vocabulary and casual language, I really like to watch &lt;a href="https://www.vpro.nl/zondag-met-lubach"&gt;Zondag met Lubach&lt;/a&gt; — thanks to &lt;a href="https://twitter.com/gckeller"&gt;Gabi&lt;/a&gt; who got me to watch the show with her. The show is very entertaining, focused around one topic with recurring vocabluary, and you can get all past shows online. (On YouTube, to get started, you can also get English subtitles for many episodes and Dutch subtitles when you start to get the hang of it and to more easily look up words.)&lt;/p&gt;

&lt;p&gt;And then, there is speaking. Unfortunately, I know of no better way than to repeatedly and publicly embarrass yourself to make progress here. People won&amp;rsquo;t understand you, you will say silly things, and you will fail to understand their response. Over and over again.&lt;/p&gt;

&lt;p&gt;But it is all worth it for the moments of success. For instance, when you leave a shop for the first time without the Dutch shop assistant having felt the need to switch to English. Tot ziens!&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;(*) Everybody here switches to fluent English in a heartbeat when they realise that you don&amp;rsquo;t understand them, but to me, assuming residency in a country obliges me to learn the local language. (I have never been able to relate to that expat lifestyle, where you stay in that bubble of like-minded foreigners.)&lt;/p&gt;</description><link>https://justtesting.org/post/177144181001</link><guid>https://justtesting.org/post/177144181001</guid><pubDate>Sun, 19 Aug 2018 01:18:22 +0200</pubDate><category>dutch</category></item><item><title>Applied Functional Programming Summer School in Utrecht</title><description>&lt;p&gt;If you like to get a thorough introduction to functional programming in Haskell, check out the &lt;a href="https://uu-afp.github.io"&gt;Applied Functional Programming Summer School&lt;/a&gt;, which is 27-31 August in Utrecht, Netherlands. It is part of Utrecht University&amp;rsquo;s &lt;a href="https://www.utrechtsummerschool.nl/"&gt;summer school program&lt;/a&gt; and will have &lt;a href="http://www.cse.chalmers.se/~koen/"&gt;Koen Classen&lt;/a&gt;, &lt;a href="https://www.cse.unsw.edu.au/~keller/"&gt;Gabriele Keller&lt;/a&gt;, and myself as &lt;a href="https://uu-afp.github.io/lecturers.html"&gt;guest lecturers&lt;/a&gt;.&lt;/p&gt;</description><link>https://justtesting.org/post/173023203461</link><guid>https://justtesting.org/post/173023203461</guid><pubDate>Tue, 17 Apr 2018 09:46:18 +0200</pubDate><category>uu-afp</category><category>haskell</category><category>functional programming</category></item><item><title>This is the video of the Sydney instance of my YOW! Night tour...</title><description>&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This is the video of the &lt;a href="http://nights.yowconference.com.au/archive-2018/yow-night-2018-sydney-manuel-chakravarty-mar-6/"&gt;Sydney instance of my YOW! Night tour&lt;/a&gt; this month, talking about “Demystifying functional programming and what that means for learning &amp; teaching” — i.e., teaching FP to the early majority of adopters (&lt;a href="http://nights.yowconference.com.au/archive-2018/yow-night-2018-sydney-manuel-chakravarty-mar-6/"&gt;slides&lt;/a&gt;).&lt;/p&gt;</description><link>https://justtesting.org/post/172261465456</link><guid>https://justtesting.org/post/172261465456</guid><pubDate>Mon, 26 Mar 2018 05:44:04 +0200</pubDate></item><item><title>Demystifying functional programming and what that means for learning &amp; teaching</title><description>&lt;p&gt;In March, I will talk about &lt;a href="http://nights.yowconference.com.au/upcoming/yow-night-2018-sydney-manuel-chakravarty-mar-6/"&gt;Demystifying functional programming and what that means for learning &amp;amp; teaching&lt;/a&gt; in four different cities: March 6 – Sydney / March 8 – Melbourne / March 13 – Perth / March 22 – Brisbane. This talk will outline the thinking behind my &lt;a href="http://lambdajam.yowconference.com.au/proposal/?id=5922"&gt;Welcome to FP&lt;/a&gt; workshop at &lt;a href="http://lambdajam.yowconference.com.au"&gt;YOW! Lambda Jam 2018&lt;/a&gt;, which will be a general introduction to functional programming.&lt;/p&gt;</description><link>https://justtesting.org/post/171433042036</link><guid>https://justtesting.org/post/171433042036</guid><pubDate>Fri, 02 Mar 2018 02:47:04 +0100</pubDate><category>talk</category><category>FP</category><category>teaching &amp; learning</category></item><item><title>PLT engineers needed!</title><description>&lt;p&gt;Do you know how to write FP compilers? Would you like to design &amp;amp; implement next-generation, functional(!) smart contract languages with Phil Wadler and myself? Check out &lt;a href="https://mail.haskell.org/pipermail/haskell/2018-February/025348.html"&gt;Phil&amp;rsquo;s post&lt;/a&gt; and the &lt;a href="https://iohk.io/careers/#op-235152-functional-compiler-engineer-"&gt;IOHK job ad&lt;/a&gt;.&lt;/p&gt;</description><link>https://justtesting.org/post/170815271396</link><guid>https://justtesting.org/post/170815271396</guid><pubDate>Tue, 13 Feb 2018 01:44:46 +0100</pubDate><category>jobs</category><category>haskell</category><category>blockchain</category><category>cardano</category><category>plutus</category><category>compilers</category></item><item><title>Here is the video of my Functional Conf 2017 talk Haskell...</title><description>&lt;iframe width="400" height="225"  id="youtube_iframe" src="https://www.youtube.com/embed/kd8mlbN0Mws?feature=oembed&amp;enablejsapi=1&amp;origin=https://safe.txmblr.com&amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Haskell SpriteKit- a Purely Functional API by Manuel Chakravarty at FnConf17"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Here is the video of my &lt;a href="https://functionalconf.com"&gt;Functional Conf 2017&lt;/a&gt; talk &lt;a href="https://functionalconf.com/proposal.html?id=3939"&gt;Haskell SpriteKit — a Purely Functional API for a Stateful Animation System and Physics Engine&lt;/a&gt;. In this talk, I am explaining how to wrap an OOish game engine API based on a mutable scene graph into a purely functional API based on an immutable algebraic data type.&lt;/p&gt;</description><link>https://justtesting.org/post/168174539581</link><guid>https://justtesting.org/post/168174539581</guid><pubDate>Mon, 04 Dec 2017 06:23:31 +0100</pubDate><category>FnConf</category><category>haskell</category><category>functional programming</category><category>graphics</category><category>games</category><category>SpriteKit</category></item><item><title>Functional Conf</title><description>&lt;p&gt;This coming weekend, I will present &lt;a href="https://functionalconf.com/proposal.html?id=3939"&gt;Haskell SpriteKit — a Purely Functional API for a Stateful Animation System and Physics Engine&lt;/a&gt; as well as a workshop on &lt;a href="https://functionalconf.com/proposal.html?id=4054"&gt;Functional Programming in Swift&lt;/a&gt; at &lt;a href="https://functionalconf.com/"&gt;Functional Conf&lt;/a&gt; in Bangalore.&lt;/p&gt;</description><link>https://justtesting.org/post/167510227471</link><guid>https://justtesting.org/post/167510227471</guid><pubDate>Wed, 15 Nov 2017 07:06:40 +0100</pubDate><category>conference</category><category>functional programming</category></item><item><title>Two months back, I gave my talk “Do-It-Yourself Functional...</title><description>&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Two months back, I gave my talk “Do-It-Yourself Functional Reactive Programming” at the &lt;a href="http://www.sydneycocoaheads.com"&gt;Sydney CocoaHeads meetup&lt;/a&gt;. I am explaining what FRP is all about, how to easily implement an FRP library in Swift, and how to use it in an iPhone app.&lt;/p&gt;</description><link>https://justtesting.org/post/164441753196</link><guid>https://justtesting.org/post/164441753196</guid><pubDate>Mon, 21 Aug 2017 13:36:23 +0200</pubDate></item><item><title>Moving On</title><description>&lt;p&gt;I am excited about my new role at &lt;a href="http://tweag.io/"&gt;Tweag I/O&lt;/a&gt;! Curious why? Read why &lt;a href="http://www.tweag.io/posts/2017-08-01-chak-joins-tweag.html"&gt;I am a functional programming evangelist&lt;/a&gt;.&lt;/p&gt;</description><link>https://justtesting.org/post/164271721631</link><guid>https://justtesting.org/post/164271721631</guid><pubDate>Thu, 17 Aug 2017 02:14:18 +0200</pubDate><category>fp</category></item><item><title>Keynote: Do-It-Yourself Functional Reactive Programming | SkillsCast
 | 30th March 2017</title><description>&lt;a href="https://skillsmatter.com/skillscasts/9610-keynote-do-it-yourself-functional-reactive-programming"&gt;Keynote: Do-It-Yourself Functional Reactive Programming | SkillsCast
 | 30th March 2017&lt;/a&gt;: &lt;p&gt;A video of my iOSCon 2017 talk, where I develop a basic FRP system in Swift, is now online.&lt;/p&gt;</description><link>https://justtesting.org/post/159438617081</link><guid>https://justtesting.org/post/159438617081</guid><pubDate>Tue, 11 Apr 2017 05:13:33 +0200</pubDate><category>iOSCon</category><category>Swift</category><category>FRP</category></item></channel></rss>
