POPULARITY
Neste episódio do Elixir em Foco, Adolfo Neto e sua equipe, Herminio Torres e Zoey Pessanha, entrevistam Fabian van 't Hooft, Team Lead Manager na Ekinops, e João Henrique Freitas, Embedded Software Developer na mesma empresa. Eles discutem o papel da Ekinops, seu forte background acadêmico e como a empresa utiliza a BEAM, a máquina virtual que executa Erlang e Elixir. Os convidados compartilham suas experiências, vantagens e desafios de trabalhar com BEAM, bem como as principais bibliotecas e frameworks que utilizam. Além disso, oferecem recomendações para quem deseja aprender Erlang. No final, deixam uma mensagem especial para a comunidade brasileira de Elixir. Entrevistados: Fabian van 't Hooft - Team Lead Manager at Ekinops https://www.linkedin.com/in/fabian-van-t-hooft-9825b89/ João Henrique Freitas - Embedded Software Developer at Ekinops https://www.linkedin.com/in/jo%C3%A3o-henrique-freitas/ Blog do João: https://beam-mignon.netlify.app/ Perfil no GitHub: https://github.com/joaohf/ Site da Ekinops: https://www.ekinops.com/ Links mencionados no episódio: Nitrogen - https://nitrogenproject.com/ Cowboy - subsistema do Nitrogen (servidor web, o phoenix usa por padrão) ssh do OTP https://www.erlang.org/doc/apps/ssh/ssh.html Mnesia https://www.erlang.org/doc/apps/mnesia/mnesia.html Erlang Examples Rabbit MQ Learn You Some Erlang https://learnyousomeerlang.com/ Playlist de Adolfo baseada no livro https://www.youtube.com/watch?v=pSlcmfQS4EU&list=PLF5ttO8F-IsTided30sMhUx-5Rfyeur65 Livro sobre Property-Based Testing com Erlang e Elixir https://pragprog.com/titles/fhproper/property-based-testing-with-proper-erlang-and-elixir/ Erlang in Anger https://www.erlang-in-anger.com/ Trilha de Erlang no Exercism https://exercism.org/tracks/erlang Erlang Forums https://erlangforums.com/ Erlang and OTP in Action https://www.manning.com/books/erlang-and-otp-in-action Programming Erlang https://pragprog.com/titles/jaerlang2/programming-erlang-2nd-edition/ Erlang Programming https://www.amazon.com/Erlang-Programming-Concurrent-Approach-Development/dp/0596518188 Making reliable distributed systems in the presence of software errors, Joe Armstrong (PhD Dissertation) https://erlang.org/download/armstrong_thesis_2003.pdf Erlang Master Class 1 https://www.youtube.com/playlist?list=PLR812eVbehlwEArT3Bv3UfcM9wR3AEZb5 Erlang Master Class 2: Concurrent Programming https://www.youtube.com/playlist?list=PLR812eVbehlwq4qbqswOWH7NLKjodnTIn Erlang Master Class 3: OTP Behaviours and Releases https://www.youtube.com/playlist?list=PLR812eVbehlx6vgWGf2FLHjkksAEDmFjc Entrevista com Brujo Benavides https://www.youtube.com/watch?v=6MTSl2OArd0 Entrevista com José Valim no freeCodeCampBR https://www.youtube.com/watch?v=KiF10RgaC5k Assista a esta entrevista no YouTube em https://www.youtube.com/@elixiremfoco . Escute a esta entrevista no Spotify em https://podcasters.spotify.com/pod/show/elixiremfoco Leia o livro “Aprenda Elixir utilizando testes” https://aprenda.cafecomelixir.com.br/ Assine a newsletter “Café com Elixir”. Em especial, leiam a Edição 28. Ela é feita por Iago Efting https://cafecomelixir.substack.com/p/cafe-com-elixir-edicao-n28 Associe-se à Erlang Ecosystem Foundation em https://bit.ly/3Sl8XTO . O site da fundação é https://bit.ly/3Jma95g Nosso site é https://elixiremfoco.com Estamos no X em @elixiremfoco https://x.com/elixiremfoco . Nosso email é elixiremfoco@gmail.com .
Property based testing can help you make your tests more effective and your code more robust. Together with my guests Duncan McGregor and Nicholas del Grosso we talk about what property based testing is and in particular go into one widely used implementation for Python - the Hypothesis library. Here are a few links:https://increment.com/testing/in-praise-of-property-based-testing/ from David MacIver (creator of hypothesis) about the benefits of property based testinghttps://hypothesis.works/articles/what-is-property-based-testing/ explaining what property based testing ishttps://www.inspiredpython.com/course/testing-with-hypothesis/testing-your-python-code-with-hypothesis Testing your code with Hypothesishttps://reiddraper.com/writing-simple-check/ Reid Draper (QuickCheck) on shrinkinghttps://hackage.haskell.org/package/QuickCheck-1.0 the QuickCheck toolhttps://hypothesis.works/articles/how-many-tests/ How many tests is hypothesis running?https://hypothesis.works/articles/quickcheck-in-every-language/ property based testing in other languages (a bit outdated - it's from 2016)https://hypothesis.works/articles/integrated-shrinking/ David MacIver on how he implemented shrinking in Hypothesishttps://hypothesis.works/articles/compositional-shrinking/ and more on shrinkinghttps://jqwik.net the property based testing library for Java/Kotlinhttps://en.wikipedia.org/wiki/Functional_programming What is functional programminghttps://www.youtube.com/watch?v=xgDPvlgUSLE Duncan's YouTube episode on property based testing with jqwik (from his channel 'Refactoring to Kotlin')Support the Show.Thank you for listening and your ongoing support. It means the world to us! Support the show on Patreon https://www.patreon.com/codeforthought Get in touch: Email mailto:code4thought@proton.me UK RSE Slack (ukrse.slack.com): @code4thought or @piddie US RSE Slack (usrse.slack.com): @Peter Schmidt Mastadon: https://fosstodon.org/@code4thought or @code4thought@fosstodon.org LinkedIn: https://www.linkedin.com/in/pweschmidt/ (personal Profile)LinkedIn: https://www.linkedin.com/company/codeforthought/ (Code for Thought Profile) This podcast is licensed under the Creative Commons Licence: https://creativecommons.org/licenses/by-sa/4.0/
Software Engineering Radio - The Podcast for Professional Software Developers
Zac Hatfield-Dodds, the Assurance Team Lead at Anthropic, speaks with host Gregory M. Kapfhammer about property-based testing techniques and how to use them in an open-source tool called Hypothesis. They discuss how to define properties for a Python function and implement a test case in Hypothesis. They also explore some of the advanced features in Hypothesis that can automatically generate a test case and perform fuzzing campaigns.
Property-based testing is for people who do not like to write unit tests. Instead of providing examples, you provide a fact that should hold true for any possible input, and let the test framework, fast-check in this case, generate random inputs for you. In this live demo session, Jan shows how to use this for even more complex UI testing with a TodoMVC that uses React Hooks. Presenter: Jan van Brügge
Property-based testing is for people who do not like to write unit tests. Instead of providing examples, you provide a fact that should hold true for any possible input, and let the test framework, fast-check in this case, generate random inputs for you. In this live demo session, Jan shows how to use this for even more complex UI testing with a TodoMVC that uses React Hooks. Presenter: Jan van Brügge
Property-based testing is an approach to automatically test software against well-defined rules. We don't specify desired output for a few inputs. Instead, we barely define properties that should always hold. It's best explained with an example. How do you make sure that your compression algorithm works? Ordinary unit tests verify a handful of inputs that you came up with. If you are experienced developer, you will include edge cases. I mean, the weirdest inputs, like an empty string or a long sequence of the same character. And what are the properties of a good compression algorithm? Its output should takes less space, obviously. But even more importantly, lossless algorithm should be capable of decompression. What if I told you, there is software that can check these properties automatically? With thousands of randomized tests? Read more: https://nurkiewicz.com/50 Get the new episode straight to your mailbox: https://nurkiewicz.com/newsletter
Testing is hard. Testing asynchronous code is even harder. In this session, I will walk you through a few techniques on how to test (possibly async) code with random input data and which strategies you can use in your test suite to increase coverage, find more bugs while writing fewer tests. Presenter: Jan van Brügge
Testing is hard. Testing asynchronous code is even harder. In this session, I will walk you through a few techniques on how to test (possibly async) code with random input data and which strategies you can use in your test suite to increase coverage, find more bugs while writing fewer tests. Presenter: Jan van Brügge
Sponsored by Datadog: pythonbytes.fm/datadog Michael #1: PSF / JetBrains Survey via Jose Nario Let’s talk results: 84% of people who use Python do so as their primary language [unchanged] Other languages: JavaScript (down), Bash (down), HTML (down), C++ (down) Web vs Data Science languages: More C++ / Java / R / C# on Data Science side More SQL / JavaScript / HTML Why do you mainly use Python? 58% work and personal What do you use Python for? Average answers was 3.9 Data analysis [59% / 59% — now vs. last year] Web Development [51% / 55%] ML [40% / 39%] DevOps [39% / 43%] What do you use Python for the most? Web [28% / 29%] Data analysis [18% / 17%] Machine Learning [13% / 11%] Python 3 vs Python 2: 90% Python 3, 10% Python 2 Widest disparity of versions (pro 3) is in data science. Web Frameworks: Flask [48%] Django [44%] Data Science NumPy 63% Pandas 55% Matplotlib 46% Testing pytest 49% unittest 30% none 34% Cloud AWS 55% Google 33% DigitalOcean 22% Heroku 20% Azure 19% How do you run code in the cloud (in the production environment) Containers 47% VMs 46% PAAS 25% Editors PyCharm 33% VS Code 24% Vim 9% tool use version control 90% write tests 80% code linting 80% use type hints 65% code coverage 52% Brian #2: Hypermodern Python Claudio Jolowicz, @cjolowicz An opinionated and fun tour of Python development practices. Chapter 1: Setup Setup a project with pyenv and Poetry, src layout, virtual environments, dependency management, click for CLI, using requests for a REST API. Chapter 2: Testing Unit testing with pytest, using coverage.py, nox for automation, pytest-mock. Plus refactoring, handling exceptions, fakes, end-to-end testing opinions. Chapter 3: Linting Flake8, Black, import-order, bugbear, bandit, Safety. Plus more on managing dependencies, and using pre-commit for git hooks. Chapter 4: Typing mypy and pytype, adding annotations, data validation with Desert & Marshmallow, Typeguard, flake8-annotations, adding checks to test suite Chapter 5: Documentation docstrings, linting docstrings, docstrings in nox sessions and test suites, darglint, xdoctest, Sphinx, reStructuredText, and autodoc Chapter 6: CI/CD CI with GithHub Actions, reporting coverage with Codecov, uploading to PyPI, Release Drafter for release documentation, single-sourcing the package version, using TestPyPI, docs on RTD The series is worth it even for just the artwork. Lots of fun tools to try, lots to learn. Michael #3: Open AI Jukebox via Dan Bader Listen to the songs under “Curated samples.” A neural net that generates music, including rudimentary singing, as raw audio in a variety of genres and artist styles. Code is available on github. Dataset: To train this model, we crawled the web to curate a new dataset of 1.2 million songs (600,000 of which are in English), paired with the corresponding lyrics and metadata from LyricWiki. The top-level transformer is trained on the task of predicting compressed audio tokens. We can provide additional information, such as the artist and genre for each song. Two advantages: first, it reduces the entropy of the audio prediction, so the model is able to achieve better quality in any particular style; second, at generation time, we are able to steer the model to generate in a style of our choosing. Brian #4: The Curious Case of Python's Context Manager Redowan Delowar, @rednafi A quick tour of context managers that goes deeper than most introducitons. Writing custom context managers with __init__, __enter__, __exit__. Using the decorator contextlib.contextmanager Then it gets even more fun Context managers as decorators Nesting contexts within one with statement. Combining context managers into new ones Examples Context managers for SQLAlchemy sessions Context managers for exception handling Persistent parameters across http requests Michael #5: nbstripout via Clément Robert In the latest episode, you praised NBDev for having a git hook that strips out notebook outputs. strip output from Jupyter and IPython notebooks Opens a notebook, strips its output, and writes the outputless version to the original file. Useful mainly as a git filter or pre-commit hook for users who don’t want to track output in VCS. This does mostly the same thing as the Clear All Output command in the notebook UI. Has a nice youtube tutorial right in the pypi listing Just do nbstripout --``install in a git repo! Brian #6: Write ups for The 2020 Python Language Summit Guido talked about this in episode 179 But these write-ups are excellent and really interesting. Should All Strings Become f-strings?, Eric V. Smith Replacing CPython’s Parser with a PEG-based parser, Pablo Galindo, Lysandros Nikolaou, Guido van Rossum A Formal Specification for the (C)Python Virtual Machine, Mark Shannon HPy: a Future-Proof Way of Extending Python?, Antonio Cuni CPython Documentation: The Next 5 Years, Carol Willing, Ned Batchelder Lightning talks (pre-selected) What do you need from pip, PyPI, and packaging?, Sumana Harihareswara A Retrospective on My "Multi-Core Python" Project, Eric Snow The Path Forward for Typing, Guido van Rossum Property-Based Testing for Python Builtins and the Standard Library, Zac Hatfield-Dodds Core Workflow Updates, Mariatta Wijaya CPython on Mobile Platforms, Russell Keith-Magee Wanted to bring this up because Python is a living language and it’s important to pay attention and get involved, or at least pay attention to where Python might be going. Also, another way to get involved is to become a member of the PSF board of directors What’s a PSF board of directors member do? video There are some open seats, Nominations are open until May 31 Extras: Michael: Updated search engine for better result ranking Windel Bouwman wrote a nice little script for speedscope https://github.com/windelbouwman/pyspeedscope (follow up from Austin profiler) Jokes: “Due to social distancing, I wonder how many projects are migrating to UDP and away from TLS to avoid all the handshakes?” - From Sviatoslav Sydorenko “A chef and a vagrant walk into a bar. Within a few seconds, it was identical to the last bar they went to.” - From Benjamin Jones, crediting @lufcraft Understanding both of these jokes is left as an exercise for the reader.
Hypothesis is the Python tool used for property based testing. Hypothesis claims to combine "human understanding of your problem domain with machine intelligence to improve the quality of your testing process while spending less time writing tests." In this episode Alexander Hultnér introduces us to property based testing in Python with Hypothesis. Some topics covered: What is property based testing Thinking differently for property based testing Using hypothesis / property based testing in conjunction with normal testing Failures saved and re-run What parts of development/testing is best suited for hypothesis / property based testing Comparing function implementations Testing against REST APIs that use Open API / Swagger with schemathesis Changing the number of tests in different test environments System, integration, end to end, and unit tests Special Guest: Alexander Hultnér.
Sponsored by DigitalOcean: pythonbytes.fm/digitalocean Special guest: Kojo Idrissa! Michael #1: donkeycar Have you ever seen a proper RC car race? Donkeycar is minimalist and modular self driving library for Python. It is developed for hobbyists and students with a focus on allowing fast experimentation and easy community contributions. Use Donkey if you want to: Make an RC car drive its self. Compete in self driving races like DIY Robocars Experiment with autopilots, mapping computer vision and neural networks. Log sensor data (images, user inputs, sensor readings). Drive your car via a web or game controller. Leverage community contributed driving data. Use existing CAD models for design upgrades. Brian #2: RIP Pipenv: Tried Too Hard. Do what you need with pip-tools. Nick Timkovich No releases of pipenv in 2019. It “has been held back by several subdependencies and a complicated release process” main benefits of pipenv: pin everything and use hashes for verifying packages The two file concept (Pipfile Pipfile.lock) is pretty cool and useful But we can do that with pip-tools command line tool pip-compile, which is also used by pipenv: pip-compile --generate-hashes --ouptut-file requirements.txt requirements.in What about virtual environment support? python -m venv venv --prompt $(basename $PWD) or equivalent for your shell works fine, and it’s built in. Kojo #3: str.casefold() used for caseless matching “Casefolding is similar to lowercasing but more aggressive because it is intended to remove all case distinctions in a string.” especially helpful for Unicode characters firstString = "der Fluß" secondString = "der Fluss" # ß is equivalent to ss if firstString.casefold() == secondString.casefold(): print('The strings are equal.') else: print('The strings are not equal.') # prints "The strings are equal." Michael #4: Virtualenv via Brian Skinn Virtualenv 20.0.0 beta1 is available Announcement by Bernat Gabor Why the major release I identified three main pain points: Creating a virtual environment is slow (takes around 3 seconds, even in offline mode; while 3 seconds does not seem that long if you need to create tens of virtual environments, it quickly adds up). The API used within PEP-405 is excellent if you want to create virtual environments; however, only that. It does not allow us to describe the target environment flexibly or to do that without actually creating the environment. The duality of virtualenv versus venv. Right, python3.4 has the venv module as defined by PEP-405. In theory, we could switch to that and forget virtualenv. However, it is not that simple. virtualenv offers a few benefits that venv does not Benefits over venv Ability to discover alternate versions (-p 2 creates a python 2 virtual environment, -p 3.8 a python 3.8, -p pypy3 a PyPy 3, and so on). virtualenv packages out of the box the wheel package as part of the seed packages, this significantly improves package installation speed as pip can now use its wheel cache when installing packages. You are guaranteed to work even when distributions decide not to ship venv (Debian derivates notably make venv an extra package, and not part of the core binary). Can be upgraded out of band from the host python (often via just pip/curl - so can pull in bug fixes and improvements without needing to wait until the platform upgrades venv). Easier to extend, e.g., we added Xonsh activation script generation without much pushback, support for PowerShell activation on POSIX platforms. Brian #5: Property-based tests for the Python standard library (and builtins) Zac Hatfield-Dodds and Paul Ganssle, so far. Goal: Find and fix bugs in Python, before they ship to users. “CPython's existing test suite is good, but bugs still slip through occasionally. We think that using property-based testing tools - i.e. Hypothesis - can help with this. They're no magic bullet, but computer-assisted testing techniques routinely try inputs that humans wouldn't think of (or bother trying), and turn up bugs that humans missed.” “Writing tests that describe every valid input often leads to tighter validation and cleaner designs too, even when no counterexamples are found!” “We aim to have a compelling proof-of-concept by PyCon US, and be running as part of the CPython CI suite by the end of the sprints.” Hypothesis and property based testing is superb to throw at algorithmic pure functions, and the test criteria is relatively straightforward for function pairs that have round trip logic, like tokenize/untokenize, encode/decode, compress/decompress, etc. And there’s probably tons of those types of methods in Python. At the very least, I’m interested in this to watch how other people are using hypothesis. Kojo #6: PyCon US Tutorial Schedule & Registration Find the schedule at https://us.pycon.org/2020/schedule/tutorials/ They tend to sell out FAST Videos are up fast afterwards What’s interesting to me? Migration from Python 2 to 3 Welcome to Circuit Python (Kattni Rembor) Intro to Property-Based Testing Minimum Viable Documentation (Heidi Waterhouse) Extras Michael: Foreword for Mastering Python Networking Pyramid (Waitress) and Django both issued security CVEs. You should upgrade! StackOverflow Survey 2020 is open. Go fill it out! Joke See the cartoon: https://trello-attachments.s3.amazonaws.com/58e3f7c543422d7f3ad84f33/5df14f77efb5642d017a593f/31cba5cdf0e9805d47837916555dd7ab/b5cb6570af72883f06c3dcbf47679e9d.jpg
# Episode 161 - feat. Todd Resudek We’re back with another episode of ElixirTalk, this time joined by the one and only Todd Resudek who gives us a run through of his talk at this years EMPEX LA entitled “It’s Time to Embrace Erlang”. Listen in to hear us discuss Todd’s nerve projects (including his recent LiveView Smart Mirror), why Todd thinks learning you some Erlang as an Elixir developer is important, and even about Hollywood Hogan and some other wrestling trivia. This show has it all. ## Links - EMPEX LA: https://empex.co/la - Intro to Elixir Training: https://ti.to/empex/empex-la-2020 - Todd on Twitter: https://twitter.com/sprsmpl - SimpleBet: https://www.simplebet.io/ - Building a “Smart Mirror” with Phoenix LiveView: https://medium.com/@toddresudek/building-a-smart-mirror-with-phoenix-liveview-18193ee6438f - Building a Smart Sprinkler Controller with Nerves - https://www.youtube.com/watch?v=qklciKp7sD8 - Erlang Crypto module: https://erlang.org/doc/man/crypto.html - Fred Hebert Advent of Code 2019 in Erlang: https://www.youtube.com/watch?v=TqzBchjZw4Q - Erlang Queue module: https://erlang.org/doc/man/queue.html - Erlang ETS module: https://erlang.org/doc/man/ets.html - Erlang Digraph module: https://erlang.org/doc/man/digraph.html - Learn you some Erlang: https://learnyousomeerlang.com/ - Adopting Erlang: https://adoptingerlang.org/ - Decompile Module: https://github.com/michalmuskala/decompile - Property-Based Testing with PropEr, Erlang and Elixir: https://propertesting.com/ - Lonestar Elixir Conference: https://lonestarelixir.com/ - CodeBEAM SF 2020: https://codesync.global/conferences/code-beam-sf/
In this episode of Elixir Mix the panel interviews Mariano Guerra. Mariano wrote some wonderful tutorial blogs outlining how to use Riak Core in Elixir. He begins the episode by sharing a little about himself and his work. Mariano then defines Riak Core and tells the story of where it came from. He explains what he loves about Riak Core and dubs himself the unofficial cheerleader of Riak Core. Mariano tells the panel about his blog articles and what listeners will find in them. He explains to the panel what inspired him to write them. Mariano then gives the panel examples of the problems solved by Riak Core and the best use cases for it. Partisan is the next subject the panel asks Mariano about. Mariano shares the story of where Partisan came from and explains when you want to use it. Finally, Mariano tells the panel about his work for the Erlang Ecosystem Foundation. Right now he is working hard to unify the documentation for all the Beam languages. He shares his admiration for the Elixir documentation and explains that Erlang documentation needs a lot of work. The panel discusses how unifying the Beam will help the community and make their lives easier. Panelists Mark Ericksen Josh Adams Sophie DeBenedetto Guest Mariano Guerra Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly ____________________________________________________________ "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today! ____________________________________________________________ Links TLA+ Riak Products Dynamo: Amazon’s Highly Available Key-value Store https://github.com/basho/riak_core Riak Core on Partisan on Elixir Tutorial: Introduction http://partisan.cloud/ https://blog.erlang.org/OTP-22-Highlights/ Riak Core on Partisan on Elixir Tutorial: Setup Riak Core on Partisan on Elixir Tutorial: Getting Started Riak Core on Partisan on Elixir Tutorial: We can make a Key Value Store out of that Riak Core on Partisan on Elixir Tutorial: Migrating Data with Handoff Riak Core on Partisan on Elixir Tutorial: Resources https://gitlab.com/marianoguerra/civiledb/ https://github.com/clojerl/clojerl https://twitter.com/warianoguerra https://www.facebook.com/Elixir-Mix https://twitter.com/elixir_mix Picks Mark Ericksen: Immutability - Computerphile Simple Sabotage Field Manual Mariano Guerra: Property-Based Testing with PropEr, Erlang, and Elixir Practical TLA+: Planning Driven Development Josh Adams: Rewriting GitHub Pages with Riak Core, Riak KV, and Webmachine: Jesse Newland Sophie DeBenedetto: How to Compose Queries in Ecto Basque Burnt Cheesecake
In this episode of Elixir Mix the panel interviews Mariano Guerra. Mariano wrote some wonderful tutorial blogs outlining how to use Riak Core in Elixir. He begins the episode by sharing a little about himself and his work. Mariano then defines Riak Core and tells the story of where it came from. He explains what he loves about Riak Core and dubs himself the unofficial cheerleader of Riak Core. Mariano tells the panel about his blog articles and what listeners will find in them. He explains to the panel what inspired him to write them. Mariano then gives the panel examples of the problems solved by Riak Core and the best use cases for it. Partisan is the next subject the panel asks Mariano about. Mariano shares the story of where Partisan came from and explains when you want to use it. Finally, Mariano tells the panel about his work for the Erlang Ecosystem Foundation. Right now he is working hard to unify the documentation for all the Beam languages. He shares his admiration for the Elixir documentation and explains that Erlang documentation needs a lot of work. The panel discusses how unifying the Beam will help the community and make their lives easier. Panelists Mark Ericksen Josh Adams Sophie DeBenedetto Guest Mariano Guerra Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly ____________________________________________________________ "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today! ____________________________________________________________ Links TLA+ Riak Products Dynamo: Amazon’s Highly Available Key-value Store https://github.com/basho/riak_core Riak Core on Partisan on Elixir Tutorial: Introduction http://partisan.cloud/ https://blog.erlang.org/OTP-22-Highlights/ Riak Core on Partisan on Elixir Tutorial: Setup Riak Core on Partisan on Elixir Tutorial: Getting Started Riak Core on Partisan on Elixir Tutorial: We can make a Key Value Store out of that Riak Core on Partisan on Elixir Tutorial: Migrating Data with Handoff Riak Core on Partisan on Elixir Tutorial: Resources https://gitlab.com/marianoguerra/civiledb/ https://github.com/clojerl/clojerl https://twitter.com/warianoguerra https://www.facebook.com/Elixir-Mix https://twitter.com/elixir_mix Picks Mark Ericksen: Immutability - Computerphile Simple Sabotage Field Manual Mariano Guerra: Property-Based Testing with PropEr, Erlang, and Elixir Practical TLA+: Planning Driven Development Josh Adams: Rewriting GitHub Pages with Riak Core, Riak KV, and Webmachine: Jesse Newland Sophie DeBenedetto: How to Compose Queries in Ecto Basque Burnt Cheesecake
Chris and Desmond are back! In this episode we talk about Desmond’s exploration into Property-Based testing, and then do a deep dive into authorization and access control in Chris’ GraphQL API. Property-based testing is a new world for both of us, but we do our best to tell you all about what libraries to use and how we’re thinking of using it. Chris is deep in some reworking of the authorization code in his GraphQL API and we go into depth talking about how it is structured, some of the challenges of building a flexible authorization system and then how this integrates back into a system. After talking about authorization we then go into validation of parameters in our APIs and how we think about typing and validating them at the boundaries, and in our Ecto Schemas. ## Links * EMPEX LA (https://empex.co/la) * StreamData Library for property testing (https://github.com/whatyouhide/stream_data) * PropEr (https://github.com/proper-testing/proper) * PropSchema (https://github.com/podium/prop_schema) * Property-Based Testing with PropEr (https://pragprog.com/book/fhproper/property-based-testing-with-proper-erlang-and-elixir) * StreamData: Property-based testing and data generation for Elixir (https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/) * Canada Library (https://github.com/jarednorman/canada) * GraphQL Scalar Types in Absinthe (https://hexdocs.pm/absinthe/custom-scalars.html) * JSON Schema in Elixir (https://github.com/jonasschmidt/ex_json_schema) * API versioning at Stripe (https://stripe.com/blog/api-versioning)
Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly Panel Mark Ericksen Eric Oestrich Michael Ries Joined by Special Guest: Brujo Benavides Summary Brujo Benavides shares what he is working on right now and how his team feels about working in both Elixir and Erlang. He shares what his team has gotten out of using Elixir and what he thinks his team will get out of Elixir in the future. The panel discusses property-based testing and Fred Hebert’s book on property-based testing. Brujo shares use cases that would benefit from property-based testing and those that would benefit from unit testing. The panel considers dialyzer and shares their experiences using it in their code. Brujo explains how he chooses which tools to use for a project. Inaka is discussed; Brujo explains what they are all about and how to join. Upcoming conferences that Inaka is organizing is outlined and details on how to buy tickets are given. Links EMx 031: Lessons from a Decade of Erlang with Brujo Benavides https://elixir-lang.org/docs.html EMx 047: Property Based Testing with PropEr and Fred Hebert My Take on Property-Based Testing for Erlang & Elixir https://github.com/proper-testing/proper Help Dialyzer Help You! http://erlang.org/doc/man/dialyzer.html http://erlang.org/doc/man/dialyzer.html#gui-0 http://erlang.org/doc/apps/dialyzer/dialyzer_chapter.html#dialyzer_gui Erlang Oddities - Brujo Benavides https://github.com/inaka/elvis https://hex.pm/packages/dialyxir https://github.com/inaka https://github.com/inaka/guidelines https://spawnfest.github.io/ https://www.elixirconf.la/ https://twitter.com/elbrujohalcon https://github.com/elbrujohalcon https://www.facebook.com/Elixir-Mix https://twitter.com/elixir_mix Picks Mark Ericksen: https://www.destroyallsoftware.com/talks/wat I am Mother Eric Oestrich: https://grapevine.haus/ https://github.com/oestrich/telnet-elixir Michael Ries: Foam board https://devchat.tv/elixir-mix/ Brujo Benavides: http://spawnedshelter.com/ http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/15777
Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly Panel Mark Ericksen Eric Oestrich Michael Ries Joined by Special Guest: Brujo Benavides Summary Brujo Benavides shares what he is working on right now and how his team feels about working in both Elixir and Erlang. He shares what his team has gotten out of using Elixir and what he thinks his team will get out of Elixir in the future. The panel discusses property-based testing and Fred Hebert’s book on property-based testing. Brujo shares use cases that would benefit from property-based testing and those that would benefit from unit testing. The panel considers dialyzer and shares their experiences using it in their code. Brujo explains how he chooses which tools to use for a project. Inaka is discussed; Brujo explains what they are all about and how to join. Upcoming conferences that Inaka is organizing is outlined and details on how to buy tickets are given. Links EMx 031: Lessons from a Decade of Erlang with Brujo Benavides https://elixir-lang.org/docs.html EMx 047: Property Based Testing with PropEr and Fred Hebert My Take on Property-Based Testing for Erlang & Elixir https://github.com/proper-testing/proper Help Dialyzer Help You! http://erlang.org/doc/man/dialyzer.html http://erlang.org/doc/man/dialyzer.html#gui-0 http://erlang.org/doc/apps/dialyzer/dialyzer_chapter.html#dialyzer_gui Erlang Oddities - Brujo Benavides https://github.com/inaka/elvis https://hex.pm/packages/dialyxir https://github.com/inaka https://github.com/inaka/guidelines https://spawnfest.github.io/ https://www.elixirconf.la/ https://twitter.com/elbrujohalcon https://github.com/elbrujohalcon https://www.facebook.com/Elixir-Mix https://twitter.com/elixir_mix Picks Mark Ericksen: https://www.destroyallsoftware.com/talks/wat I am Mother Eric Oestrich: https://grapevine.haus/ https://github.com/oestrich/telnet-elixir Michael Ries: Foam board https://devchat.tv/elixir-mix/ Brujo Benavides: http://spawnedshelter.com/ http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/15777
Hvilke verktøy har vi for å sjekke at koden vi skriver gjør det vi tror den gjør? Hva slags oppførsel kan vi garantere, hva kan vi ikke garantere og hvorfor er det sånn? Hvorfor er god testing vanskelig? Kan testing påvirke koden i negativ retning? Er unit-testing og typer ekvivalente? I denne episoden tar Stian og Mikael en liten runde i testingen og verifikasjonens verden. Artikler: Oskar Wickström - Property-Based Testing in a Screencast Editor: Introduction: https://wickstrom.tech/programming/2019/03/02/property-based-testing-in-a-screencast-editor-introduction.html An introduction to property-based testing: https://fsharpforfunandprofit.com/posts/property-based-testing/
* Fred Hebert: https://twitter.com/mononcqc * The Zen of Erlang: https://ferd.ca/the-zen-of-erlang.html * Erlang Ecosystem Foundation: https://erlef.org * Property-Based Testing Blog Post: https://ferd.ca/property-based-testing-with-proper-erlang-and-elixir.html * Property-Based Testing Book: https://pragprog.com/book/fhproper/property-based-testing-with-proper-erlang-and-elixir * Operable Software: https://ferd.ca/operable-software.html * EMPEX NYC: https://empex.co/nyc
On this week's episode, Chris is joined by Glenn Vanderburg, VP of Engineering at First.io, live from RailsConf. They discuss Glenn's RailsConf talk, "The 30-Month Migration", covering distributed data models, refactoring, and the wonders of postgres. They also discuss Glenn's famous talk, "Real Software Engineering", and what the term "software engineering" means within our communities. Glenn on Twitter Glenn's RailsConf talk - The 30-Month Migration Glenn's blog First.io Postgres MySQL Postgres Common Table Expressions (CTEs) Swanand Pagnis - It's 2017, and I still want to sell you a graph database! GraphQL Glenn Vanderburg - Real Software Engineering Agile Manifesto Extreme Programming Rust Language Kathleen Fisher Kathleen Fisher, High Assurance Systems AWS Firecracker Bike Shed with Lin Clark & Till Schneidereit on WebAssembly & WASI Fastly Lucet Chaos Engineering Chaos Monkey Joe Armstrong Erlang Property Based Testing Erlang Actor Model Clojure ClojureScript Functional Core, Imperative Shell Sorbet - Stripe library for gradual static typing in Ruby
Jason and Amos in a steel cage match of death. Picks Tice Live Event - Play For Agile NA - September 26 - 29, 2019 - Corwall, ON - Multi-Day Open Space conference focused on collaboration for high performing teams - theme this year is: Growing Empathy through Play - https://play4agilenorthamerica.com/ Elevation of Privilege - Card Game for Threat Modeling - Open Source thanks to Microsoft - Model Your Threats - https://www.microsoft.com/en-us/download/details.aspx?id=20303 Amos GigCity Elixir - October 17-19, Chattanooga, TN, https://www.gigcityelixir.com/ Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do by Fred Hebert, https://pragprog.com/book/fhproper/property-based-testing-with-proper-erlang-and-elixir Behind Human Error by a bunch of people, https://www.amazon.com/Behind-Human-Error-David-Woods/dp/0754678342
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus .TECH – Go.tech/Elixir and use the coupon code “ELIXIR.TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Panel Mark Ericksen Joined by Special Guest: Fred Hebert Summary Fred Hebert shares his experience writing “Learn You Some Erlang for Great Good!: A Beginner's Guide” and “Stuff Goes Bad: Erlang in Anger”. He talks about why he wrote these books and explains the whimsical illustrations in “Learn you some Erlang”. Mark Ericksen asks Fred about his latest book “Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do”. Fred gives an overview of property-based testing, explaining what it is, why it is important and sharing tips for getting started in property-based testing. Mark and Fred discuss PropEr and Fred’s inclusion of Elixir in this book. The ecosystems of Erlang and Elixir are explored and Fred shares what he would like to see from the Elixir community as an Erlang developer. They end the episode by discussing Fred’s time at Heroku and Fred’s current interests. Links https://learnyousomeerlang.com/ https://github.com/ferd/recon https://www.erlang-in-anger.com/ https://propertesting.com/ https://github.com/proper-testing/proper https://propertesting.com/toc.html https://erlef.org/ https://www.youtube.com/watch?v=OR2Gc6_Le2U https://twitter.com/mononcqc https://twitter.com/elixir_mix https://www.facebook.com/Elixir-Mix Picks Fred Hebert https://www.hillelwayne.com/post/metamorphic-testing/ Mark Ericksen https://en.wikipedia.org/wiki/Dave_Brailsford
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus .TECH – Go.tech/Elixir and use the coupon code “ELIXIR.TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Panel Mark Ericksen Joined by Special Guest: Fred Hebert Summary Fred Hebert shares his experience writing “Learn You Some Erlang for Great Good!: A Beginner's Guide” and “Stuff Goes Bad: Erlang in Anger”. He talks about why he wrote these books and explains the whimsical illustrations in “Learn you some Erlang”. Mark Ericksen asks Fred about his latest book “Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do”. Fred gives an overview of property-based testing, explaining what it is, why it is important and sharing tips for getting started in property-based testing. Mark and Fred discuss PropEr and Fred’s inclusion of Elixir in this book. The ecosystems of Erlang and Elixir are explored and Fred shares what he would like to see from the Elixir community as an Erlang developer. They end the episode by discussing Fred’s time at Heroku and Fred’s current interests. Links https://learnyousomeerlang.com/ https://github.com/ferd/recon https://www.erlang-in-anger.com/ https://propertesting.com/ https://github.com/proper-testing/proper https://propertesting.com/toc.html https://erlef.org/ https://www.youtube.com/watch?v=OR2Gc6_Le2U https://twitter.com/mononcqc https://twitter.com/elixir_mix https://www.facebook.com/Elixir-Mix Picks Fred Hebert https://www.hillelwayne.com/post/metamorphic-testing/ Mark Ericksen https://en.wikipedia.org/wiki/Dave_Brailsford
Sponsors Sentry use the code “devchat” for $100 credit Triplebyte CacheFly Panel Josh Adams Mark Ericksen Charles Max Wood Guest: Francesco Cesarini Episode Summary In this episode of Elixir, Charles Wood, Josh Adams and Mark Ericksen chat with guest, Francesco Cesarini, Founder and Technical Director at Erlang Solutions about how to build reliable and scalable systems within the Elixir and Erlang world. Erlang Solutions provides consultancy to customers who are not familiar with Elixir and offers training when necessary. With their WOMBATOAM tool that can handle very large-scale systems like WhatsApp with its fault tolerant capability. Francesco talks about how he likes Elixir which is an up and coming language that focuses on UI/UX usability and compares Erlang and Elixir languages. Francesco mentions he is impressed with the emphasis Elixir community places on user-friendliness. The guest discusses pros and cons of handling shared memory and concurrency. Supervisors and OTP help handle errors by creating escalation strategies. Going beyond the software, Francesco then shares some of his favorite real life experiences of power outages and switch failures he faced while building fault tolerant systems. Links https://www.erlang-solutions.com/ https://www.erlang-solutions.com/products/wombatoam.html https://github.com/erlang/otp https://github.com/francescoc https://twitter.com/FrancescoC Picks Josh Adams: https://en.wikipedia.org/wiki/Cybernetics The Origins of Opera and the Future of Programming by Jessica Kerr Mark Ericksen: Mark’s Blog: https://brainlid.org/elixir/2018/01/17/people-are-processes.html Charles Max Wood: https://www.vrbo.com/ Canon EOS M6 Francesco Cesarini: Property Based Testing by Fred Herbert https://news.ycombinator.com/item?id=19105908
Sponsors Sentry use the code “devchat” for $100 credit Triplebyte CacheFly Panel Josh Adams Mark Ericksen Charles Max Wood Guest: Francesco Cesarini Episode Summary In this episode of Elixir, Charles Wood, Josh Adams and Mark Ericksen chat with guest, Francesco Cesarini, Founder and Technical Director at Erlang Solutions about how to build reliable and scalable systems within the Elixir and Erlang world. Erlang Solutions provides consultancy to customers who are not familiar with Elixir and offers training when necessary. With their WOMBATOAM tool that can handle very large-scale systems like WhatsApp with its fault tolerant capability. Francesco talks about how he likes Elixir which is an up and coming language that focuses on UI/UX usability and compares Erlang and Elixir languages. Francesco mentions he is impressed with the emphasis Elixir community places on user-friendliness. The guest discusses pros and cons of handling shared memory and concurrency. Supervisors and OTP help handle errors by creating escalation strategies. Going beyond the software, Francesco then shares some of his favorite real life experiences of power outages and switch failures he faced while building fault tolerant systems. Links https://www.erlang-solutions.com/ https://www.erlang-solutions.com/products/wombatoam.html https://github.com/erlang/otp https://github.com/francescoc https://twitter.com/FrancescoC Picks Josh Adams: https://en.wikipedia.org/wiki/Cybernetics The Origins of Opera and the Future of Programming by Jessica Kerr Mark Ericksen: Mark’s Blog: https://brainlid.org/elixir/2018/01/17/people-are-processes.html Charles Max Wood: https://www.vrbo.com/ Canon EOS M6 Francesco Cesarini: Property Based Testing by Fred Herbert https://news.ycombinator.com/item?id=19105908
This week the original friend of the show, Fred Hebert, joins the hosts for a wandering discussion, ostensibly about his fantastic new book Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do by Fred Hebert | The Pragmatic Bookshelf (https://pragprog.com/book/fhproper/property-based-testing-with-proper-erlang-and-elixir) Fred discusses his motivations for writing, maven plugins, and how to write better property based tests. He also shares some opinions on code coverage, test driven development, and elixir’s pipe operators. The Elixir Outlaws now have a Patreon (https://www.patreon.com/user?u=5332239). If you’re enjoying the show then please consider throwing a few bucks our way to help us pay for the costs for the show. Special Guest: Fred Hebert.
Sponsors Sentry use the code "devchat" for 2 months free on Sentry small plan TripleByte offers a $1000 signing bonus CacheFly Panel Mark Ericksen Josh Adams Joined by Special Guest: Anders Smedegaard Pedersen Summary Anders Smedegaard Pedersen shares how he got into Elixir and his experience joining the elixir community. He shares with the panel his initial frustration with the community and his confusion on the “correct” way to do things. He tells the panel of his experience at elixir conf meeting Claudio Ortolina, the advice he got, and how this led him to his first nerves project. Mark Ericksen and Josh Adams give advice to new elixir developers. The three of them compare umbrella structure and poncho structure. Links http://erlang.org/doc/apps/jinterface/jinterface_users_guide.html https://elixirforum.com/t/do-you-really-need-a-database/4567/15 https://smedegaard.io/my-first-nerves-project-pt-2/ ElixirConf 2018- My first Nerves Project Bioreactor - David Schainker https://farm.bot/ https://hexdocs.pm/nerves/user-interfaces.html https://embedded-elixir.com/post/2017-05-19-poncho-projects/ https://smedegaard.io/anders-smedegaard-pedersen/ https://www.facebook.com/Elixir-Mix https://twitter.com/elixir_mix Picks Mark Ericksen Set a larger goal (like 30-day goal) and do something every day to move you toward that goal. Even if only 10 minutes. Keep your momentum. Josh Adams https://levelup.gitconnected.com/a-recap-of-frontend-development-in-2018-715724c9441d https://elm-lang.org/ Anders Smedegaard Pedersen Search Inside Yourself: The Unexpected Path to Achieving Success, Happiness (and World Peace) Property-Based Testing with PropEr, Erlang, and Elixir
Sponsors Sentry use the code "devchat" for 2 months free on Sentry small plan TripleByte offers a $1000 signing bonus CacheFly Panel Mark Ericksen Josh Adams Joined by Special Guest: Anders Smedegaard Pedersen Summary Anders Smedegaard Pedersen shares how he got into Elixir and his experience joining the elixir community. He shares with the panel his initial frustration with the community and his confusion on the “correct” way to do things. He tells the panel of his experience at elixir conf meeting Claudio Ortolina, the advice he got, and how this led him to his first nerves project. Mark Ericksen and Josh Adams give advice to new elixir developers. The three of them compare umbrella structure and poncho structure. Links http://erlang.org/doc/apps/jinterface/jinterface_users_guide.html https://elixirforum.com/t/do-you-really-need-a-database/4567/15 https://smedegaard.io/my-first-nerves-project-pt-2/ ElixirConf 2018- My first Nerves Project Bioreactor - David Schainker https://farm.bot/ https://hexdocs.pm/nerves/user-interfaces.html https://embedded-elixir.com/post/2017-05-19-poncho-projects/ https://smedegaard.io/anders-smedegaard-pedersen/ https://www.facebook.com/Elixir-Mix https://twitter.com/elixir_mix Picks Mark Ericksen Set a larger goal (like 30-day goal) and do something every day to move you toward that goal. Even if only 10 minutes. Keep your momentum. Josh Adams https://levelup.gitconnected.com/a-recap-of-frontend-development-in-2018-715724c9441d https://elm-lang.org/ Anders Smedegaard Pedersen Search Inside Yourself: The Unexpected Path to Achieving Success, Happiness (and World Peace) Property-Based Testing with PropEr, Erlang, and Elixir
Episode 127 - Scaling Desmond's App, Kubernetes, Property-Based Testing, and more! by Elixir Talk
In this episode we talk about yet another testing paradigm Property Based Testing with Mårten Rånge. This is not Marten's first appearence on the podcast, we spoke to him back on Episode 49, and that was about F# Mårten has been programming for more years than not and is equally interested in functional programming as assembly programming. He occasionally blogs about functional programming or performance. Mårten believes that reading existentialcomics.com once a week qualifies him as a postmodern philosopher-developer. Contacting Mårten Rånge LinkedIn: WebSite:
Panel: Charles Max Wood Mark Erikson Josh Adams Special Guests: Vitaly Tatarintsev In this episode of Elixir Mix, the panel talks to Vitaly Tatarintsev about Elixir and property-based testing. Vitaly is a back-end developer and who is currently still working predominantly with Ruby while he continues learns Elixir. He is fairly new to Elixir and likes to write articles about learning Elixir on his blog What did I Learn. They talk about what property-based testing is, where a person can get started with learning property-based testing, TDD with property-based testing, and much more! In particular, we dive pretty deep on: Vitaly intro Blog - What did I Learn What is property-based testing? Run data to find etch cases that don’t work Are there tools for property-based testing? Not a lot of tools for this in Elixir Stream data library Quick Check Used in addition to unit tests Where do you get started with property-based testing? Start with stream data library PropErTesting.com Property-based Testing is a Mindset - ElixirConf EU Talk How does property-based testing fit into the work flow? TDD with property-based testing Trying to implement Java applications Where has property-based testing helped you? John Hughes YouTube Video Allows you to catch errors that you couldn’t predict to occur Helps you find cases you don’t think of What do you do when your property-based testing finds an error? And much, much more! Links: Ruby Elixir What did I Learn Stream data Quick Check PropErTesting.com Property-based Testing is a Mindset John Hughes YouTube Video Vitaly’s GitHub @ck3g Sponsors: Digital Ocean Picks: Charles Crucial Accountability by Kerry Patterson Mark Elixir in Action by Saša Jurić Josh John Hughes: Certifying your car with Erlang PropErTesting.com Movers Vitaly Find time to review your day and work toward your goals
Panel: Charles Max Wood Mark Erikson Josh Adams Special Guests: Vitaly Tatarintsev In this episode of Elixir Mix, the panel talks to Vitaly Tatarintsev about Elixir and property-based testing. Vitaly is a back-end developer and who is currently still working predominantly with Ruby while he continues learns Elixir. He is fairly new to Elixir and likes to write articles about learning Elixir on his blog What did I Learn. They talk about what property-based testing is, where a person can get started with learning property-based testing, TDD with property-based testing, and much more! In particular, we dive pretty deep on: Vitaly intro Blog - What did I Learn What is property-based testing? Run data to find etch cases that don’t work Are there tools for property-based testing? Not a lot of tools for this in Elixir Stream data library Quick Check Used in addition to unit tests Where do you get started with property-based testing? Start with stream data library PropErTesting.com Property-based Testing is a Mindset - ElixirConf EU Talk How does property-based testing fit into the work flow? TDD with property-based testing Trying to implement Java applications Where has property-based testing helped you? John Hughes YouTube Video Allows you to catch errors that you couldn’t predict to occur Helps you find cases you don’t think of What do you do when your property-based testing finds an error? And much, much more! Links: Ruby Elixir What did I Learn Stream data Quick Check PropErTesting.com Property-based Testing is a Mindset John Hughes YouTube Video Vitaly’s GitHub @ck3g Sponsors: Digital Ocean Picks: Charles Crucial Accountability by Kerry Patterson Mark Elixir in Action by Saša Jurić Josh John Hughes: Certifying your car with Erlang PropErTesting.com Movers Vitaly Find time to review your day and work toward your goals
Content Addressable StorageCaching best practices & max-age gotchasStoreComonadWhat is Property Based Testing?instant-vrtBackstopJSGreek LasagnaHot sauceInstant Pot
On the podcast this month Seb Rose speaks to Henry Coles, the creator of Mutation Testing tool PIT. Here's how they describe Mutation Testing on the PIT Test website - "Mutation testing is conceptually quite simple. Faults (or mutations) are automatically seeded into your code, then your tests are run. If your tests fail then the mutation is killed, if your tests pass then the mutation lived. The quality of your tests can be gauged from the percentage of mutations killed." *They discuss:* - What is mutation testing? - How widely adopted is this approach in the enterprise? - When and where should you use mutation testing? - What can developers learn from academics? - What are the similarities and differences between Mutation Testing and Property-Based Testing **Shownotes** PIT Test - http://pitest.org/ Quick theories (Property-Based Testing tool) - https://github.com/ncredinburgh/QuickTheories Work at NCR - NCR careers - http://ncredinburgh.com/jobs/
Check our patreon page for show notes: www.patreon.com/elixirfountain
This month on the Cucumber podcast Aslak Hellesøy speaks to David MacIver and Nat Pryce about Property-Based Testing. Shownotes: Join Nat and Aslak in London for CukenFest. June 21st-25th - https://content.cucumber.io/cukenfest-2017 What is Property Based Testing? - http://hypothesis.works/articles/what-is-property-based-testing/ Misadventures with Property-Based TDD - http://natpryce.com/articles/000800.html John Hughes Quickcheck video presentation - https://www.youtube.com/watch?v=zi0rHwfiX1Q Small-step TDD with properties - http://natpryce.com/articles/000807.html Snodge - https://github.com/npryce/snodge
Talk Python To Me - Python conversations for passionate developers
See the full show notes for this episode on the website at talkpython.fm/67.
Ever heard of property-based testing? Carl and Richard talk to Mark Seemann about doing property-based testing with F#. As Mark explains, functional programming techniques work especially well for property-based testing, allowing you to define parameters (properties) that will generate ranges of values to test against. The conversation digs into tooling, specifically FsCheck, an open source library for doing property-based testing in F#. If you'd rather work in C#, Mark's project AutoFixture can do similar work in that language. But Mark talks up the advantages of F# from a functional perspective, creating very terse, easy to read tests. Check it out!Support this podcast at — https://redcircle.com/net-rocks/donations
Ever heard of property-based testing? Carl and Richard talk to Mark Seemann about doing property-based testing with F#. As Mark explains, functional programming techniques work especially well for property-based testing, allowing you to define parameters (properties) that will generate ranges of values to test against. The conversation digs into tooling, specifically FsCheck, an open source library for doing property-based testing in F#. If you'd rather work in C#, Mark's project AutoFixture can do similar work in that language. But Mark talks up the advantages of F# from a functional perspective, creating very terse, easy to read tests. Check it out!Support this podcast at — https://redcircle.com/net-rocks/donations
02:20 - Zach Kessin Introduction Twitter GitHub Zach's Books Parrot JavaScript Jabber: Episode #057: Functional Programming with Zach Kessin Testing Erlang With Quickcheck Book 04:00 - Mostly Erlang Podcast 05:27 - Property-based Testing (QuickCheck) 07:22 - Property-based Testing and Functional Programming jsverify 09:48 - Pure Functions Shrinking 18:09 - Boundary Cases 20:00 - Generating the Data 23:23 - Trending Concepts in JavaScript 32:33 - How Property-based Testing Fits in with Other Kind of Testing 35:57 - Test Failures Panel Nolan Lawson: Taming the asynchronous beast with ES7 (Aimee) Nodevember (Aimee) Hipster Sound (Jamison) Om Next by David Nolen (Jamison) Gallant - Weight In Gold (Jamison) React Rally (Jamison) Better Off Ted (Joe) Armada: A Novel by Ernest Cline (Joe) Testing Erlang With Quickcheck Book (Zach) Parrot Universal Notification Interface (Zach) The Famine of Men by Richard H. Kessin (Zach)
02:20 - Zach Kessin Introduction Twitter GitHub Zach's Books Parrot JavaScript Jabber: Episode #057: Functional Programming with Zach Kessin Testing Erlang With Quickcheck Book 04:00 - Mostly Erlang Podcast 05:27 - Property-based Testing (QuickCheck) 07:22 - Property-based Testing and Functional Programming jsverify 09:48 - Pure Functions Shrinking 18:09 - Boundary Cases 20:00 - Generating the Data 23:23 - Trending Concepts in JavaScript 32:33 - How Property-based Testing Fits in with Other Kind of Testing 35:57 - Test Failures Panel Nolan Lawson: Taming the asynchronous beast with ES7 (Aimee) Nodevember (Aimee) Hipster Sound (Jamison) Om Next by David Nolen (Jamison) Gallant - Weight In Gold (Jamison) React Rally (Jamison) Better Off Ted (Joe) Armada: A Novel by Ernest Cline (Joe) Testing Erlang With Quickcheck Book (Zach) Parrot Universal Notification Interface (Zach) The Famine of Men by Richard H. Kessin (Zach)
02:20 - Zach Kessin Introduction Twitter GitHub Zach's Books Parrot JavaScript Jabber: Episode #057: Functional Programming with Zach Kessin Testing Erlang With Quickcheck Book 04:00 - Mostly Erlang Podcast 05:27 - Property-based Testing (QuickCheck) 07:22 - Property-based Testing and Functional Programming jsverify 09:48 - Pure Functions Shrinking 18:09 - Boundary Cases 20:00 - Generating the Data 23:23 - Trending Concepts in JavaScript 32:33 - How Property-based Testing Fits in with Other Kind of Testing 35:57 - Test Failures Panel Nolan Lawson: Taming the asynchronous beast with ES7 (Aimee) Nodevember (Aimee) Hipster Sound (Jamison) Om Next by David Nolen (Jamison) Gallant - Weight In Gold (Jamison) React Rally (Jamison) Better Off Ted (Joe) Armada: A Novel by Ernest Cline (Joe) Testing Erlang With Quickcheck Book (Zach) Parrot Universal Notification Interface (Zach) The Famine of Men by Richard H. Kessin (Zach)
Get your Ruby Remote Conf tickets and check out the @rubyremoteconf Twitter feed for exciting updates about the conference. 03:09 - Evan Czaplicki Introduction Twitter GitHub Prezi 03:15 - Richard Feldman Introduction Twitter GitHub NoRedInk 03:42 - Elm @elmlang 04:18 - Elm vs JavaScript dreamwriter 06:52 - Reactivity 07:28 - Functional Principles Immutability Union Types 09:42 - “Side Effects” (Reactivity Cont’d) JavaScript Promises Signals React Flux Excel Spreadsheet Comparison Two-way Data Binding vs One-way 24:19 - Syntax and Semantics Haskell ML ML Family of Programming Languages Strict vs Lazy 30:45 - Testing Elm-Test elm-check Property-Based Testing elm-reactor 34:49 - Debugging Elm’s Time Traveling Debugger 42:12 - Next Release? 46:00 - Use Cases/Getting Started Resources elm-architecture-tutorial dreamwriter 48:45 - Why should Ruby devs care about Elm? Picks The Expanse (Avdi) Git LFS (Jessica) The City & The City by China Miéville (Jessica) Patterns (Coraline) Ruby Remote Conf (Chuck) Find a change of pace (Chuck) Listen to other people’s views (Chuck) Richard Feldman: Functional Frontend Frontier (Richard) EconTalk (Evan) elm-architecture-tutorial (Evan)
Get your Ruby Remote Conf tickets and check out the @rubyremoteconf Twitter feed for exciting updates about the conference. 03:09 - Evan Czaplicki Introduction Twitter GitHub Prezi 03:15 - Richard Feldman Introduction Twitter GitHub NoRedInk 03:42 - Elm @elmlang 04:18 - Elm vs JavaScript dreamwriter 06:52 - Reactivity 07:28 - Functional Principles Immutability Union Types 09:42 - “Side Effects” (Reactivity Cont’d) JavaScript Promises Signals React Flux Excel Spreadsheet Comparison Two-way Data Binding vs One-way 24:19 - Syntax and Semantics Haskell ML ML Family of Programming Languages Strict vs Lazy 30:45 - Testing Elm-Test elm-check Property-Based Testing elm-reactor 34:49 - Debugging Elm’s Time Traveling Debugger 42:12 - Next Release? 46:00 - Use Cases/Getting Started Resources elm-architecture-tutorial dreamwriter 48:45 - Why should Ruby devs care about Elm? Picks The Expanse (Avdi) Git LFS (Jessica) The City & The City by China Miéville (Jessica) Patterns (Coraline) Ruby Remote Conf (Chuck) Find a change of pace (Chuck) Listen to other people’s views (Chuck) Richard Feldman: Functional Frontend Frontier (Richard) EconTalk (Evan) elm-architecture-tutorial (Evan)
Get your Ruby Remote Conf tickets and check out the @rubyremoteconf Twitter feed for exciting updates about the conference. 03:09 - Evan Czaplicki Introduction Twitter GitHub Prezi 03:15 - Richard Feldman Introduction Twitter GitHub NoRedInk 03:42 - Elm @elmlang 04:18 - Elm vs JavaScript dreamwriter 06:52 - Reactivity 07:28 - Functional Principles Immutability Union Types 09:42 - “Side Effects” (Reactivity Cont’d) JavaScript Promises Signals React Flux Excel Spreadsheet Comparison Two-way Data Binding vs One-way 24:19 - Syntax and Semantics Haskell ML ML Family of Programming Languages Strict vs Lazy 30:45 - Testing Elm-Test elm-check Property-Based Testing elm-reactor 34:49 - Debugging Elm’s Time Traveling Debugger 42:12 - Next Release? 46:00 - Use Cases/Getting Started Resources elm-architecture-tutorial dreamwriter 48:45 - Why should Ruby devs care about Elm? Picks The Expanse (Avdi) Git LFS (Jessica) The City & The City by China Miéville (Jessica) Patterns (Coraline) Ruby Remote Conf (Chuck) Find a change of pace (Chuck) Listen to other people’s views (Chuck) Richard Feldman: Functional Frontend Frontier (Richard) EconTalk (Evan) elm-architecture-tutorial (Evan)