I was busy last week with GeekNight and such, and was not able to write a post in this series. The conference went well. All talks were well received. (Including ours, I hope!)


Anyway, here are some interesting links from past weeks:

1. Grid style sheets

This novel approach to style sheets lets you specify layout and positioning in terms of “constraints” and is way more expressive than CSS. This will help you build sophisticated UIs, with lesser effort, and more joy.

2. Why most unit testing is waste

I haven’t read this article yet, but it has spurred a great deal of discussion in many places, and may be worth a read.

3. Propositions as types

A very powerful piece from Phil Wadler, that talks about the isomoprhims between propositions and types, and between proofs and programs. It talks about how deep the implications of this isomorphism are, and how thus some aspects of programming are absolute.

3 A brief introduction to Haskell, and why it matters

Good introduction. Though I’d have liked a small section on Haskell’s philosophy/worldview in the beginning.

3 ECMAScript 6 features overview

ECMAScript 6 is around the corner, and is bringing in a serious lot of features, which turn it into a new language altogether. Terse syntaxes for lambdas and class-based OO, destructuring, for-comprehensions, generators, modules are some of the highlights.

4. Effective ML

Effective ML talk

I had been hearing about this Yaron Minsky lecture since long time. After all, it gave us type fanatics one of our favorite lines - “make illegal states unrepresentable”. For whatever reasons, I had not watched the talk yet. But last week, I did. And boy, was it amazing! A lot of practical advice in this lecture, with some very good examples. The lecture is a bit ML-specific, but is still largely applicable to Scala, F#, and other languages in the philosophical vicinity.

5. ScalaDays 2014 Schedule

Yes, it’s been announced! A lot of amazing talks to look forward to. This year, topics around ScalaJS, Big data, streaming seem popular.

6. OpenDylan

There’s again been some buzz about this ancient language, Dylan. Manuel Simoni called it the semi-functional OO language to rule them all.

7. Macros vs types

These slides from Eugene Burmako and Lars Hupel are surprisingly good. Looking forward to the talk video being up on the internet.

8. C++ vs Rust templates

Nice little comparison between C++ templates and Rust generics. TL;DR: If you are familiar with Haskell and OCaml type systems, that’s the model Rust follows. Something C++ too will be moving towards, once the concepts feature is in.

9. A tale of two types

Short, little type systems advocacy. If you have a friend (which could be yourself) who judges type systems by his/her experience with Java or C# or similar, help them today by pointing them to this blog post!

10. Whirlwind tour of Haskell

Good slides. Has some very cool quotes. I liked this one the best - “Haskell has no preferred imperative semantics, and the monad just lets you swap out the semantics according to your needs.”

11. OCaml LWT

LWT is a co-operative concurrency library for OCaml. It also provides syntactic extensions similar to F#’s try!, for! etc for async, but specialized for the purpose.

12. Shadow embedding

This research from Amir Shaikh demonstrates a DSL technique called “shadow embedding”, which allows you to create deeply integrated DSLs, which provide very strong compile time guarantees, and with sane error reporting.

13. JS6 generators

More on the new ECMAScript generators. Details about how they are to be used, and some implementation strategies for them.

14. Project Palladium

This project is aimed at reducing the complexity and verbosity of Scala macros, and make them more useful, enjoyable, and easier to reason about. The first public demo is scheduled for ScalaDays 2014. Looking forward to it.

15. Live coding ScalaJS

Haoyi Li demonstrating some ScalaJS goodness. Amazing demo.

16. EmbeddedDocument gem

Sumit Mahamuni has turned my “embedded document” stuff for Ruby into a gem. Now you can use it on your project! Feedback, pull requests very welcome.

17. Scala Quasiquotes

Scala macro quasiquotes tutorial. It’s hard to imagine how people were managing code transformations before quasiquotes.

18. Mirage

From the site: “Mirage is a ‘library operating system’ for constructing secure, high-performance network applications across a variety of cloud computing and mobile platforms. It works by treating the Xen hypervisor as a stable hardware platform, allowing us to focus on high-performance protocol implementations without worrying about having to support the thousands of device drivers found in a traditional OS. Code can be developed in a high-level functional programming language (OCaml) on a desktop OS such as Linux or Mac OSX, and is then compiled into a fully-standalone, specialised unikernel.”

19. Do-It-Yourself OS in Rust

Kernel in Rust talk

A very enjoyable talk, if kernels and such are your thing.

20. Frege record accessors and mutators

Frege can be thought of as a Haskell implementation for JVM, but with some differences. One of those differences is how it does records: With each record definition, you get a set of accessor and mutator functions auto-generated, all in a record specific namespace. This is very handy. Here’s an introduction to that feature from Marimuthu Madasammy, the person who wrote Frege’s REPL.

21. Huge sci-fi collection

I was a huge fan of Jayant Narlikar, an astrophysicist who has written quite a bit of sci-fi in Marathi. He always had a two fold goal with his stories: to teach about some scientific concept, to entertain with a solid plot. The description at the top of this page reminded me of him. Glad to have stumbled upon a list of sci-fi literature/stories which do justice to science.

Until next time!