<div dir="auto">Hi Taylor, <div dir="auto"><br></div><div dir="auto">Please keep posting this to this list. I think I missed the first 50 editions of your well edited summaries! </div><div dir="auto"><br></div><div dir="auto">The plain text version is perfect. </div><div dir="auto"><br></div><div dir="auto">Matt</div><br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">On 1 Jun 2017 23:23, "Taylor Fausak" <<a href="mailto:taylor@fausak.me">taylor@fausak.me</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello haskell-cafe! I am the Haskell Weekly editor. In the past, some<br>
people have expressed interest in receiving my newsletter on this<br>
mailing list. Is that something I should set up?<br>
<br>
If you're curious about Haskell Weekly, please check out the latest<br>
issue, which was published today:<br>
<<a href="https://haskellweekly.news/issues/57.html" rel="noreferrer" target="_blank">https://haskellweekly.news/<wbr>issues/57.html</a>><br>
<br>
I've also included issue 57 as plain text here. If you like what you<br>
see, head over to <<a href="https://haskelweekly.news" rel="noreferrer" target="_blank">https://haskelweekly.news</a>> and subscribe!<br>
<br>
---<br>
<br>
# Haskell Weekly<br>
<br>
## Issue 57<br>
<br>
Welcome to another issue of Haskell Weekly! Haskell is a purely<br>
functional programming language that focuses on robustness, concision,<br>
and correctness. This is a weekly summary of what’s going on in its<br>
community.<br>
<br>
- Realizing Hackett, a metaprogrammable Haskell<br>
<<a href="https://lexi-lambda.github.io/blog/2017/05/27/realizing-hackett-a-metaprogrammable-haskell/" rel="noreferrer" target="_blank">https://lexi-lambda.github.<wbr>io/blog/2017/05/27/realizing-<wbr>hackett-a-metaprogrammable-<wbr>haskell/</a>><br>
> Almost five months ago, I wrote a blog post about my new programming language, Hackett, a fanciful sketch of a programming language from a far-off land with Haskell's type system and Racket's macros. [...] Hackett is not only real, it's working, and you can try it out yourself!<br>
<br>
- Imperative Haskell<br>
<<a href="http://vaibhavsagar.com/blog/2017/05/29/imperative-haskell/" rel="noreferrer" target="_blank">http://vaibhavsagar.com/blog/<wbr>2017/05/29/imperative-haskell/</a><wbr>><br>
> Why don't we do this all the time, when Haskell is at least a serviceable imperative language? Because writing imperative programs is hard! They don't compose as well, have less useful type signatures, and are harder to reason about. Getting away from those things is why we have Haskell to begin with!<br>
<br>
- A Haskell cross compiler for Android<br>
<<a href="https://medium.com/@zw3rk/a-haskell-cross-compiler-for-android-8e297cb74e8a" rel="noreferrer" target="_blank">https://medium.com/@zw3rk/a-<wbr>haskell-cross-compiler-for-<wbr>android-8e297cb74e8a</a>><br>
> Finally launching and running the application on the device, we are greeted with "Hello from Haskell". While the utility of this application is certainly questionable it illustrates the essential steps required to build, link and run an Android application calling a native Haskell function.<br>
<br>
- Smart data with conduits<br>
<<a href="https://mmhaskell.com/blog/2017/5/29/smart-data-with-conduits" rel="noreferrer" target="_blank">https://mmhaskell.com/blog/<wbr>2017/5/29/smart-data-with-<wbr>conduits</a>><br>
> If you're a programmer now, there's one reality you'd best be getting used to. People expect you to know how to deal with big data. The kind of data that will take a while to process. The kind that will crash your program if you try to bring it all into memory at the same time.<br>
<br>
- Wire is hiring a Software Backend Developer (Operations) in Berlin,<br>
Germany (ad)<br>
<<a href="https://wire.softgarden.io/job/1022464?l=en" rel="noreferrer" target="_blank">https://wire.softgarden.io/<wbr>job/1022464?l=en</a>><br>
> Wire is an open source, end-to-end encrypted messenger for personal and business use. For our development center in Berlin we are hiring two Backend Haskell Developers. As Software Developer Backend Operations you will maintain our infrastructure, ensuring that it runs 24/7. Check out our jobs at <a href="http://wire.com/jobs" rel="noreferrer" target="_blank">wire.com/jobs</a> and our open source code on <a href="http://github.com/wireapp" rel="noreferrer" target="_blank">github.com/wireapp</a>.<br>
<br>
- What we talk about when we talk about types<br>
<<a href="https://joyofhaskell.com/posts/2017-05-31-is-vs-has.html" rel="noreferrer" target="_blank">https://joyofhaskell.com/<wbr>posts/2017-05-31-is-vs-has.<wbr>html</a>><br>
> These dialogues somewhat pedantically dissect what we mean when we say a type is an instance of a type class or a type has an instance of a type class and why. Through the course of conversation, we touch on the nature of types, type constructors, and type classes, which led to us talking about math, set theory and category theory, and what they have to do with types and type classes.<br>
<br>
- The partial options monoid<br>
<<a href="https://medium.com/@jonathangfischoff/the-partial-options-monoid-pattern-31914a71fc67" rel="noreferrer" target="_blank">https://medium.com/@<wbr>jonathangfischoff/the-partial-<wbr>options-monoid-pattern-<wbr>31914a71fc67</a>><br>
> Parsing options is not the hardest problem. However, if you do not create a pattern the rest of your team can follow, your program can become a tangled mess of random file reads, environment variable lookups and unpredictable defaulting. The Monoid class is a rock solid abstraction for combining options.<br>
<br>
- Playing with lens-aeson<br>
<<a href="https://www.snoyman.com/blog/2017/05/playing-with-lens-aeson" rel="noreferrer" target="_blank">https://www.snoyman.com/blog/<wbr>2017/05/playing-with-lens-<wbr>aeson</a>><br>
> That works, but it's far from inspiring. We're declaring a Color data type simply for the purpose of writing a type class instance. But it feels pretty heavyweight to have to declare a data type and make a type class instance for just one use site.<br>
<br>
### Packages of the week<br>
<br>
Several interesting packages were announced this week. Instead of<br>
picking one to feature, all four are this week's packages of the week!<br>
<br>
- double-pendulum-simulation<br>
<<a href="https://github.com/lotz84/double-pendulum-simulation" rel="noreferrer" target="_blank">https://github.com/lotz84/<wbr>double-pendulum-simulation</a>><br>
Simulates and renders a double pendulum system.<br>
<br>
- legion<br>
<<a href="https://github.com/aviaviavi/legion" rel="noreferrer" target="_blank">https://github.com/aviaviavi/<wbr>legion</a>><br>
Implements a simple block chain server that synchronizes nodes over<br>
the network.<br>
<br>
- prettyprinter<br>
<<a href="https://github.com/quchen/prettyprinter" rel="noreferrer" target="_blank">https://github.com/quchen/<wbr>prettyprinter</a>><br>
Aims to end the Wadler/Leijen zoo dilemma by being a modern,<br>
well-documented pretty printer.<br>
<br>
- sitepipe<br>
<<a href="https://github.com/ChrisPenner/SitePipe" rel="noreferrer" target="_blank">https://github.com/<wbr>ChrisPenner/SitePipe</a>><br>
Generates static sites with plain values and less magic.<br>
______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div><br></div></div>