• F# Sydney Save The Date

    Domain Group HQ

  • Stitching DDD And CQRS/ES Together, Functionally.

    Jorge Fioranelli, who ventured off after leading our humble F# Sydney group to become a development manager at Jet.COM (acquired for a few $ + F# poster child + current holder of the UFC's Largest Azure Cloud Customer title), is going to join us over Skype to talk about how he puts Microservices to work. Often you'll find literature that entwines Domain Driven Design (DDD), Command Query Response (CQRS)/Event Sourcing (ES), with Microservices. What does this mean in practice? What's Jet's take on all this? What does a functional language like F# add to this mix? Voices around town suggest that it's all about the pattern, but is that all there is to it. What if the pattern comes from a functional perspective, is it still just about the pattern? In short, businesses evolve and adapt. Are the principles embodied by Microservices helping Jet.COM to keep up? Jorge will be focussing on the pragmatic side of Microservices, but it's always good to have a feel for context as you take in new information. How To Swot Up Swotting up ahead of time will mean that you'll get even more value out of the event. Jorge highly recommends the book Implementing Domain Driven Design (https://www.safaribooksonline.com/library/view/implementing-domain-driven-design/9780133039900/#toc) by Vaughn Vernon (https://vaughnvernon.co/?page_id=178) (btw: Rebecca Wirf did a nice interview with Vaughn (http://www.informit.com/articles/article.aspx?p=2023702)). Sign up for a trial a free trial at Safari Books Online to decide if you want to buy it (https://www.safaribooksonline.com/library/view/implementing-domain-driven-design/9780133039900/#toc), or if you've got uni access, you may already have Safari access via HECS -- check your local uni library (Sydney Uni definitely have it). Implementing Domain Driven Design is written from an OO perspective, but stay with it. There's a lot of good wisdom inside. Jorge will bring out the functional flavour. ... oh, and Jorge promises that you won't need to study Norse, Marvell Comics, or Category Theory mythology to understand his talk even though Jet.com tends to name their teams and frameworks after such protagonists. Additional Background: • Mike Hanrahan (Jet CTO) -- talk on team and architecture (https://www.youtube.com/watch?v=8zWJzOiNZa4) • Lev Gordinsky (Jet VP Engineering) -- F# NY Group Talk from 2014 (https://vimeo.com/109343720). Lev refers to inspirations such as twitter architecture and expresses these ideas with F# code. Comment: Lev's beforeAndAfter function, for example, is similar to a preparation which is done before and undone after (see J's under). Good ideas tend to get rediscovered.

    8
  • F# Sydney Save The Date

    Domain Group HQ

  • ML Sleuth And The Functional Design Lumenaires

    We've got two amazing F# Luminaries speaking. Both are authors, one an MVP -- Scott Wlashin (Functional Arthurian Hero) & Mathias Brandlewinder (MVP). *** see minor change to venue above *** Sorry, but no catering this month. Grab something en-route, perhaps. Scott Wlashin (F# For Fun And Profit Folk Hero) Heard on function street, "Is that the same Scott who created F# For Fun And Profit (https://fsharpforfunandprofit.com/why-use-fsharp/)?" Yes, it is! Google "F#", and 4th down is "Why use F#?" on Scott's site. This isn't the case of sneaky SEO, but the result of Scott's tireless mission of promoting F# and functional ideas. Scott is great at taking in different perspectives and enriching those he engages with right through to his speciality: enterprise architecture. Scott probably has the missing stepping stone for where you are now, to a complete functional appreciation, without the academically acidic aftertaste. btw: Scott's book, Understanding Functional Programming (https://leanpub.com/understandingfunctionalprogramming) will be published in the not too distant future. Mathias Brandlewinder (MVP & Data Sleuth) Mathias is going to enlighten us about how his team used F# to submit an entry in the Home Depot Kaggle Search Relevance competition (https://www.kaggle.com/c/home-depot-product-search-relevance/leaderboard). The meta flow+zen side to Mathias' talk will be on how programming machine learning solutions differ to regular programming, and how you can become more productive, and fulfilled as a programmer. By day, Mathias consults in the valley (the one in San Fran., not the Hunter region). btw: Mathias wrote a book called Machine Learning Projects for .NET Developers (http://www.apress.com/us/book/9781430267676)

    4
  • Modern Testing Of The FableDOM By A Humble Hedgehog

    Domain Group HQ

    Are you interested in F# and front-end development? We have a special treat for you. Fancy a taste of Type-Safe front-end development with Fable (http://fable.io/), and property-based testing of UI logic with Hedgehog (https://github.com/hedgehogqa/fsharp-hedgehog)? Great. We thought you would. Make sure you RSVP ASAP so that we can get the food order in. Esteemed F# Sydney colleague and researcher, Alberto Vergara, is going to take us on this adventure. == The Fable of the Hedgehog and the Tree == In the land of HTML, there was once a busy tree (see Fig 1). The tree spent her days swaying her branches too and fro to the rhythm of the breeze. She would also respond to changing seasons and weather conditions. She would contract her branches and leaves in winter, grow them in spring, and in autumn, she would sort her fruit by age. She was no ordinary tree. The tree had some good ideas but as she got older, she started to become anxious -- she wasn't sure if these ideas would help her achieve her goals for all possible weather conditions, and testing her ideas one-by-one one was impractical! What was a good tree-girl to do? This is the story of how one gallant hedgehog showed this girl-tree how to test her branch expansion and sorting ideas, and how she went on to save her entire grove. ... and in technical terms Fable (http://fable.io/) brings together the power of the F# compiler (http://fsharp.org/) and BabelJS (https://babeljs.io/) to make JavaScript a true F# backend. With F# and Fable, the definition of a presentation and the logic behind it can now be expressed as a pure function. Pure functions, in turn, can be reasoned about in terms of their abstract properties (decanted flow patterns from input to output, if you will). Hedgehog (https://github.com/hedgehogqa/fsharp-hedgehog) is a new property based testing system that offers great capabilities for the definitions of tests as properties. In this session, Alberto will combine Fable and Hedgehog to develop a tree view component; where the core logic behind the component is defined by functions that we test using Hedgehog. Figure 1: A FableDOM Tree -- A Moderately Stylised HTML Document Object Model (DOM)

    1
  • Living The Portable User eXperience Fable

    Domain Group HQ

    Create UI experiences on multiple platforms, not only on the web but also on mobile (React Native) and desktop (Github Electron) with your fluidly written F#, by injecting it into the HTML/CSS/JavaScript mix with the magic of Fable. Instantly see the effect of your changes with hot reloading. We're going to hear from: • Fable (https://github.com/fable-compiler/Fable) creator, Alfronso Garcia (https://twitter.com/alfonsogcnunez), will guide us through the Fable path over Skype • local ReasonML (https://facebook.github.io/reason/) hero, Jacob Bass (https://twitter.com/bassjacob), will tell us about what it's like to get into a functional first, typed JavaScript mindset and also give us a run-down on what he's been up to. • Web connoisseur and Microsoft MVP in Visual Studio & Dev Technologies Aaron Powell (https://twitter.com/slace) of Readify, will kick off with a lightning talk. He's going to give us his perspective on the proliferation of functional ideas in the JavaScript world **. In More Detail: The JavaScript "typed" scene is evolving. There are a few approaches out there now. Alfonso Garcia, the creator of Fable, is going to help us (over Skype) to understand how to target multiple platforms using the JavaScript ecosystem, and the power of F#. Behind the scenes, Fable leverages the awesome BabelJS (https://babeljs.io/) to do the final readable JavaScript stage. Some teams at places like Facebook use BabelJS as part of their pipeline, too. It's a solid direction, which holds a lot of promise. Currently, Fable use is most prevalent in the ReactJS setting (Progressive Web Apps/Single Page Apps). * Reason is an OCaml based JS transpiler, with similar goals to Fable. NB. F# is also based on OCaml. ** Aaron Powell gave a talk on implementing Redux.JS in F# last year and has also played a little with Fable. Random Links: • a nice overview on language design goals to support "Rapid iteration" in PHP/HHVM/Hack (video: first 6 minutes or specifically minutes 4-6) (https://www.youtube.com/watch?v=zBV9TkTXxg0) • A confessional from a Google Chrome team member. His solution: use typed coordinate space systems. video: go to 23rd minute (https://www.youtube.com/watch?v=j6fxKIjGQAI) • Web Assembly (https://www.youtube.com/watch?v=iCSAUHpPbiU&list=PL9ioqAuyl6UKZdsQFXJJWrwgZAgeAaFWa&index=5) • ClojureScript (https://clojurescript.org/) • early foundations of Fabel (http://funscript.info/) • Which Functional Language To Learn? (https://www.quora.com/Functional-Programming-Should-I-learn-F-Haskell-Scala-or-Clojure)

    3
  • Why .NET Core To What And How

    Domain Group HQ

    Hi everyone, we're back and with a new permanent venue. We would like to thank Domain for graciously offering us a space to meet. With a new venue comes a new Schedule, with meet-ups now the 4th Wednesday of each month, we hope you can all still make events. To kick off F# Sydney for the year, we have two great talks lined up with Jordan Knight from Microsoft talking about .NET Core and Mitchell talking about F# on .NET. Oh... Microsoft are covering catering with Subway... and here's a sneak preview (https://www.meetup.com/fsharpsydney/photos/27752483/459795133/) of the space we'll be meeting in. Intro to F# with .NET Core Historically to run and compile F# on MacOS and Linux you would use Mono. Mono is not designed to work as a server runtime. Mono works well when running client or mobile app. Mono was never meant to be used as a server platform. With .NET Core we can now deploy F# to a server grade runtime on Unix servers. In this session, Mitchell will show how you can create a simple F# web solution and all without Visual Studio. The talk will cover how to build, compile and run F# using .NET Core. .NET Core What, Why, How? .NET Core is the new kid on the block - it's fast, sleek and shiny - but what's it all about? Why does it even exist? What compelling new scenarios does it unlock? In this session, Jordan will guide you through an into to .NET Core before delving into some awesome new scenarios that .NET Core unlocks for developers and organisations. It will be part compelling business experience and part developer nerd out - a healthy balance in anyone's book. Bio Jordan is a Microsoft Senior Technical Evangelist and professional software developer. He and his team work with software developers and development teams to help them get the most out of modern development platforms and techniques. Before joining Microsoft, Jordan ran a Software development company where they built apps for Xamarin (iOS, Android, and Windows), Xbox (360 and One) and countless others. Jordan's current keywords are Serverless, Scalability, Docker, Node, C#7, ASP.NET Core, Bots and Cognitive Services and there is a fair chance you'll see some or all of this in his sessions.

    15