Our monthly webinar series is really starting to take off and
judging by the registration numbers we might be forced into
allowing more than 500 people to register for our next webinar
which could be about Rust - Don't hold us to that ;) For
Roman's, Development Workflows in Haskell, we had 434 registrants
which makes this our most popular webinar so far.
About the Webinar
In this month's webinar, Roman
Gonzalez will help you take your workflow skills to the next level
by exploring different approaches to Haskell development. From
compiling a full application whenever you save a file, to
experiment with in-progress code drafts over a REPL, we will
explore the benefits of REPL driven development and how to
integrate this to your everyday routine easily.
Coming from classic typed
programming languages like Java, you get to learn about the
benefits of types on large code bases, and with dynamic type
languages like Python, you get to experience the benefits of a
quick feedback loop using a REPL, interacting with the code as you
develop it. In this webinar, Roman will demonstrate how you can get
to use these two essential aspects of development using Haskell
tooling.
Topics to be covered:
- Differences between interpreted and compiled workflows
- Haskell development using Stack
- Haskell development using GHCi
- How to customize and extend GHCi
- Running your application test-suite over the REPL
- Running applications over the REPL
- Demo the usage of a couple of text editors and what workflows
they provide
The slides to this webinar are also available at Development Workflows in Haskell. We
decided to include the chat log for this webinar and it can be seen
at the end of this blog post.
We want your feedback for webinar topics
We would like to hear your suggestions for future webinar
topics. The simplest way to accomplish this is to add a
comment to this blog post with your suggestion. Alternatively, send
your suggestion via email to [email protected].
Check out our new Explainer Video
At FP Complete, we do so many things to help companies
it's hard to encapsulate our impact in a few words. They say
a picture is worth a thousand words, so a video has to be worth
10,000 words (at least). Therefore, to tell all we can in as little
time as possible, we recently produced a new explainer video. Check
it out by clicking the video link below. It's only 108 seconds to
get the full story of FP Complete. One last thing. We have a home
page a facelift, and you can check it out here.
In case you haven't read it yet
Our State of Haskell Report 2018 has proven to be an
excellent read for those that are interested where the
language is heading, and its rate of adoption for
commercial applications. You can download the report by
clicking the image below. Also, Aaron was recently interviewed by
InfoQ about the report, and you can find that article here -
Haskell Adoption and User
Satisfaction Growing.
Finally - Fix your DevOps Challenges
If you haven't heard, we just published an ebook about DevOps
and the 5 strategies you can implement now to help your IT
Projects. Click the picture below to get your free copy today.
Webinar Chat Log
10:00:58 From Michael Snoyman : Hi everyone, welcome to the
webinar, we'll be getting started in a few minutes once everyone's
had a chance to join.
10:01:32 From Nick Linker to All panelists : Hello everyone!
10:03:18 From Coury Ditch : Hey Michael & Roman! Thanks for doing
this webinar, and thanks FP Complete for the great learning
resources.
10:03:30 From Jingjing Duan : yea thanks!
10:03:34 From Samuel Castro to All panelists : :)
10:03:47 From Michael Snoyman : Feel free to drop questions here
and in the Q&A, I'll pass them along to Roman at appropriate
break points
10:08:41 From Barry Moore to All panelists : Can slides be shared
at end?
10:09:13 From Michael Snoyman : I believe so Barry, I'll confirm
with Roman after the webinar
10:10:36 From Nick Linker : The bash prompt is awesome :-P
10:14:41 From Nick Linker : Guys, is there anyone who is recording
the video?
10:14:50 From Edmund Cape : Is there a way to show modules without
the file name?
10:14:54 From John Soo to All panelists : Spacemacs <3
10:15:08 From Edmund Cape : I use it a lot, but find the filename
obfuscates the list
10:16:23 From Edmund Cape : thank you.
10:17:28 From Nick Linker : How to unload a module then?
10:18:25 From Daniel Leones to All panelists : Usually, in next
days, they release a video recoding of this webinar.
10:19:03 From Michael Snoyman : Daniel: that's correct, we intend
to release a video in the near future.
10:19:10 From Michael Snoyman : Nick: Question noted
10:22:51 From Nick Linker : How to execute only one (or several)
test, not the whole suite?
10:24:17 From Nick Linker : Thanks, this answers the question.
10:24:25 From Jyothish Joshi : Is “stack repl” same as “stack
ghci”?
10:25:41 From Casey Allred to All panelists : is there a way for
the repl to recognize changes in the package.yaml and possibly pull
and compile the new dependencies without exiting and building?
10:25:43 From Edmund Cape : does `:m -<module name>` not
unload a specific module?
10:26:44 From Edmund Cape : before leaving this section: can we
list the steps to link the test dependencies?
10:27:03 From Michael Snoyman : What do you mean by link?
10:27:26 From Edmund Cape : we get import errors
10:27:56 From Benito Haskelitto : :m - <module name> works
for :l name
10:27:58 From Michael Snoyman : I don't think we'll be able to get
into that kind of debugging in this webinar
10:28:18 From Nick Linker : What is BCO?
10:28:44 From Michael Snoyman : Byte Code Object if I'm not
mistaken
10:29:00 From Nick Linker : Thanks, Michael.
10:29:07 From Michael Snoyman : :)
10:30:52 From Niklas Hambuechen : Another benefit of object code is
that you can turn on -O flags. A drawback is that object code loads
much slower than byte code (unless already cached on disk).
10:36:00 From Nick Linker : this is cool trick
10:36:00 From Michael Xavier : what is :seti again? as opposed to
:set
10:36:09 From Michael Xavier : haha nm
10:36:23 From Michael Snoyman : Roman is psychic
10:36:40 From Michael Xavier : haha clearly
10:36:41 From Daniel Leones to All panelists : haha
10:37:32 From sdf asdf : half a megabyte to add up numbers?
10:37:39 From Nick Linker : half of megabyte to calculate 5 :-D
10:40:17 From Pankaj Godbole : Can you please mention where .ghci
resides? Thanks.
10:40:59 From Daniel Leones to All panelists : In slides, I
guess.
10:41:05 From Nick Linker : Roman, how do I make multiline
definitions in repl?
10:41:13 From Han Joosten to All panelists : this is a neat .ghci
file. Can it be shared?
10:41:54 From Jingjing Duan : can you share your ~/ghci file?
10:41:57 From Nick Linker : (... they usually require correct
indentation)
10:42:04 From Pankaj Godbole : OK, got it! :-)
10:42:13 From Jyothish Joshi : Is `stack ghci` exactly same as the
underlying `ghci` or are there any additional functionalities (do
all the commands mentioned over here like :seti etc work on plain
`ghci` as well) ?
10:42:38 From Michael Snoyman : You can use `stack ghci --verbose`
to see the extra flags passed to `ghci`. It also sets some
environment variables such as GHC_PACKAGE_PATH
10:42:51 From Casey Allred to All panelists : :{ and :} for multi
line GHCI
10:42:56 From Michael Snoyman : Thanks Casey :)
10:43:06 From Michael Xavier : IIRC git can't preserve the
permissions on a .ghci file and checks it out with too-open
permissions for ghci
10:52:35 From Samuel Castro to All panelists : Are you guys going
to share this video?
10:52:39 From Coury Ditch : *clap*
10:52:48 From Nick Linker : Ah DEBUGGING is not touched, ugh...
10:52:49 From Jingjing Duan : great webinar!
10:52:50 From Pankaj Godbole : Thanks Roman
10:52:54 From John Askew : thanks!
10:52:55 From Nick Linker : But thanks anywhay
10:52:57 From Jörn Gersdorf : Thank you, Roman!
10:52:57 From Anton Latukha to All panelists : Great lecture.
10:52:59 From Karl Berger : Thanks Roman!
10:52:59 From Samuel Castro to All panelists : Good job!
10:53:00 From Rich Beerman : Thank you!
10:53:01 From Michael Xavier : Thanks!
10:53:02 From Jan Stranik to All panelists : thanks.
10:53:03 From Alexei Pastuchov to All panelists : thank you
10:53:04 From Anton Latukha to All panelists : Thank you!
10:53:04 From Jameo Jones to All panelists : Thanks; I learned a
lot.
10:53:07 From Casey Allred to All panelists : thanks!
10:53:07 From Samuel Castro to All panelists : thanks!
10:53:08 From Nikolay Artamonov to All panelists : Thanks! )
10:53:08 From Alex Bielen : thanks roman!
10:53:09 From Edmund Cape : thank you!!
10:53:11 From Han Joosten to All panelists : Great, very inspiring.
This is going to save a lot of time!
10:53:13 From Jyothish Joshi : Thanks!!!
10:53:15 From Han Joosten to All panelists : Thanks!!
10:53:19 From Bulent Basaran : Thank you :-)
10:53:20 From NILESH MESHRAM : no
10:53:20 From John Soo to All panelists : thanks!!
10:53:20 From Pablo Adames to All panelists : thanks
10:53:21 From Franck Rasolo : Thanks Roman & Michael!
10:53:21 From David Nicholaeff to All panelists : Danke
10:53:24 From NILESH MESHRAM : thanks
10:53:30 From Vassil Keremidchiev : Thank you!
10:53:32 From Yifan Yu : thanks!
10:53:33 From Dan Banta : Thank you.
10:53:34 From Aleksandr Lisenko : Thank you!
10:53:38 From John Askew to All panelists : Seems like ghcid
completely replaces the `stack build —fast —file-watch approach`,
is there any reason to use the former?
Subscribe to our blog via email
Email subscriptions come from our Atom feed and are handled by Blogtrottr. You will only receive notifications of blog posts, and can unsubscribe any time.
Do you like this blog post and need help with Next Generation Software Engineering, Platform Engineering or Blockchain & Smart Contracts? Contact us.