POPULARITY
Von vielen vernachlässigt, aber sehr wichtig: Dokumentation. Zusammen mit Gina Häußge (Maintainerin des OctoPrint-Projekts) und Tanja Roth (Project Manager Technical Documentation bei SUSE) besprechen wir Arten der Dokumentation, Technical Writing und zahlreiche Tools, die das Pflegen von Dokumentationen erleichtern.
CCATP #790 — Bart Busschots on PBS 164 of X – jq: Working with Lookup Tables Tiny Mac Tips 2024 on ScreenCastsONLINE Allison on Double Tap Siena's First Tiny Tip – How to Quick Unmute a Video on iOS Make Beautiful Online Documentation with MkDocs CES 2024: Aqara Smart Home Devices Support the Show TikTok About xz Utility Backdoor Security Bits — 31 March 2024 Transcript of NC_2024_03_31 Join the Conversation: allison@podfeet.com podfeet.com/slack Support the Show: Patreon Donation PayPal one-time donation Podfeet Podcasts Mugs at Zazzle Podfeet 15-Year Anniversary Shirts Referral Links: Parallels Toolbox - 3 months free for you and me Learn through MacSparky Field Guides - 15% off for you and me Backblaze - One free month for me and you Setapp - One free month for me and you Eufy - $40 for me if you spend $200. Sadly nothing in it for you. PIA VPN - One month added to Paid Accounts for both of us CleanShot X - Earns me $25%, sorry nothing in it for you but my gratitude
Talk Python To Me - Python conversations for passionate developers
How well do you know your Python packaging tools? These are things like pip which install your project's dependencies and their dependencies and so on. In this mix, we have more modern tools such as Poetry, Flit, Hatch and others. And even tools outside of Python itself which may attempt to manage Python itself in addition to the libraries. To make sense of all of this, we welcome back Anna-Lena Popkes for an unbiased evaluation of environment and packaging tools. Links from the show Anna-Lena's website: alpopkes.com Anna-Lena on GitHub: github.com Accompanying Blog Post: alpopkes.com Talk from PyCon DE: youtube.com Talk from EuroPython: youtube.com Talk Python's Data Science Jumpstart with 10 Projects course: talkpython.fm Rye: github.com Poetry: python-poetry.org Material for MkDocs: squidfunk.github.io 100 Days of Python in a Magical Universe Episode: talkpython.fm pip-tools: pip-tools.readthedocs.io Hatch: hatch.pypa.io PDM: pdm.fming.dev Flit: flit.pypa.io Conda: docs.conda.io Pipenv: pipenv.pypa.io Watch this episode on YouTube: youtube.com Episode transcripts: talkpython.fm --- Stay in touch with us --- Subscribe to us on YouTube: youtube.com Follow Talk Python on Mastodon: talkpython Follow Michael on Mastodon: mkennedy Sponsors IRL Podcast Sentry Error Monitoring, Code TALKPYTHON Talk Python Training
Environment Management und Packaging 6. Oktober 2023, Jochen Soooo, nach einer langen, dunklen, ungeplanten Sommerpause aufgrund unüberwindlicher Terminfindungsschwierigkeiten gibt es jetzt endlich wieder eine neue Episode
Kann man von einem Open-Source-Projekt seinen Lebensunterhalt verdienen?Martin Donath ist einer der wenigen Menschen im deutschsprachigen Raum, der über 100.000 USD mit Open Source Sponsorengeldern verdient. Mit seinem Projekt Material for MkDocs hat er das Sponsorware-Model erfolgreich implementiert und dies somit zu seinem Vollzeitjob gemacht.In dieser Episode stellt sich Martin unseren Fragen und wir sprechen über Open Source und wann die Maintenance eines Projektes wirkliche Arbeit wird, was Sponsorware ist, über den Churn von Sponsoren, Pricing-Strategien, Release-Zyklen, den Umgang mit internen Prozessen in Unternehmen, Platform-Risiken bei GitHub Sponsors und viele weitere Themen, die Open Source alles andere als eine schöne Grüne Wiese erscheinen lassen.Bonus: Was Material for MkDocs mit Stripe gemeinsam hat.Das schnelle Feedback zur Episode:
Finanzierung von Open-Source-Projekten ist essentiell - Doch welche Möglichkeiten gibt es?Open-Source-Projekte sind wichtiger denn je, in unserer aktuellen Gesellschaft. Projekte wie cURL, OpenSSL, sqlite und Co. werden oft von wenigen Leuten maintained, doch Millionen Menschen nutzen diese jeden Tag, auch oft ohne es zu wissen. Die meisten Open-Source-Projekte werden in der Freizeit maintained. Doch wie passt das zusammen, besonders wenn die Miete gezahlt werden muss und auch Essen auf dem Tisch sein soll?Da kommt das (nicht ganz so einfache) Thema der Finanzierung von Open Source Projekten auf. In dieser Episode gehen wir genau darauf ein und stellen euch ein paar Möglichkeiten vor, wie du Geld mit bzw. für dein Open-Source-Projekt bekommen kannst. Dabei geht es nicht nur um den Platzhirsch GitHub Sponsors, sondern auch um professionelles Sponsoring von Firmen, dem Early-Access-Modell, staatliche Förderungen und so langweilige Themen wie Steuern.Bonus: Was Rundfunkgeräte mit Batterien mit Open-Source zu tun haben und ob Geld wirklich motivierend ist.Das schnelle Feedback zur Episode:
What disgusted Alex about Disqus, and how he replaced it with a Self-Hosted solution, a hot HDHomeRun tip, and an update on Chris' hunt for the perfect notes app.
How do you start building your project documentation? What if you had a tool that could do the heavy lifting and automatically write large portions directly from your code? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder's Weekly articles and projects.
So ein richtig eindeutiges Thema hatten wir diesmal nicht: Dominik und Jochen unterhalten sich über alles Mögliche :). Es ging zunächst ein bisschen um die neuen Exception Groups für Python 3.11, dann darüber, wie man Django-Projekte am besten initialisiert, dann um CSS, Softwarearchitektur und Microservices und dann noch ein bisschen über machine learning. Tja. Shownotes Unsere E-Mail für Fragen, Anregungen & Kommentare: hallo@python-podcast.de News aus der Szene Ultraschall 5 / Reaper / Auphonic PEP 654 -- Exception Groups and except / Twitter Thread / trio Notes on structured concurrency, or: Go statement considered harmful Closure (wikipedia) PEP 3134 -- Exception Chaining and Embedded Tracebacks asyncpg -- A fast PostgreSQL Database Client Library for Python/asyncio iPython 8 Release Werbung Exklusiv-Deal + ein Geschenk
En el episodio 68 del podcast de Entre Dev y Ops hablaremos con Héctor Canto sobre Architecture Decision Records o ADRs. Blog Entre Dev y Ops - https://www.entredevyops.es Telegram Entre Dev y Ops - https://t.me/entredevyops Twitter Entre Dev y Ops - https://twitter.com/entredevyops LinkedIn Entre Dev y Ops - https://www.linkedin.com/in/entre-dev-y-ops-a7404385/ Patreon Entre Dev y Ops - https://www.patreon.com/edyo Amazon Entre Dev y Ops - https://amzn.to/2HrlmRw Enlaces comentados: Artículo de Michael Nygard - https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions Plantilla ADR de Michael Nygard - https://github.com/joelparkerhenderson/architecture-decision-record/blob/main/templates/decision-record-template-by-michael-nygard/index.md Plantilla ADR de Hector GH - https://gist.github.com/hectorcanto/1276e41fc24e8c4ee1427cd5d02bf82a Python Diagrams - https://diagrams.mingrammer.com/ PlantUML - https://plantuml.com/es/ MkDocs - https://www.mkdocs.org/ GitHub Discussions - https://docs.github.com/en/discussions Homepage of the ADR GitHub organization - https://adr.github.io/ Repositorio de Joel Parker Henderson - https://github.com/joelparkerhenderson/architecture-decision-record Integración GH/GitLab/Bitbucket a Confluence - https://marketplace.atlassian.com/apps/1215703/markdown-extensions-for-confluence?hosting=datacenter&tab=overview Extensión de VSCode para publicar Markdown en Confluence - https://marketplace.visualstudio.com/items?itemName=t-nano.markdown-to-confluence-vscode Charla de Héctor sobre ADRs en el meetup de PyBCN - https://www.youtube.com/watch?v=QNr8p1zVd54 Slides sobre ADRs de Héctor Canto - https://www.slideshare.net/HectorCanto/adr-intro Literate Programming - https://en.wikipedia.org/wiki/Literate_programming GitLab Pages - https://docs.gitlab.com/ee/user/project/pages/ GitHub Pages - https://pages.github.com/ Linkedin de Héctor Canto - https://www.linkedin.com/in/hectorcanto/ Twitter de Héctor Canto - https://twitter.com/hectorcanto_dev Slides de Héctor Canto - https://www.slideshare.net/HectorCanto Perfil de GitHub de Héctor Canto - https://github.com/hectorcanto Enlaces interesantes adicionales: Post acerca del uso de ADRs - https://matklad.github.io//2021/02/06/ARCHITECTURE.md.html Otro post sobre los ADRs y las sentencias Y - https://medium.com/olzzio/y-statements-10eb07b5a177 Herramienta para una KB sobre ADRs - https://github.com/thomvaill/log4brains Ejemplo de ADRs - https://github.com/npryce/adr-tools/tree/master/doc/adr ADRs de Prestashop - https://github.phala.one/PrestaShop/ADR ADRs de Cosmos SDK - https://docs.cosmos.network/master/architecture/ ADRs de Backstage - https://backstage.io/docs/architecture-decisions/adrs-adr002 ADRs de EdgeX Foundry - https://docs.edgexfoundry.org/2.0/design/TOC/
Improve your work environment by knowing yourself. How do you convince a customer or co-worker that their idea is a bad one? Google Analytics gets another blow from the Austrian government, SUSE announces Liberty Linux a RHEL clone. You're calls, your questions, it's a packed episode! -- During The Show -- 01:44 Caller James Script for USB storage USE UDEV not Script 06:08 Collabora Online - Roger Nextcloud + Collabora (https://nextcloud.com/collaboraonline/) 07:08 Follow up Thunderbolt 3 Gen 2 Dock w/ X1 Carbon Gen - Zac Never needed a larger power adapter at Altispeed 08:55 Syncing Google Calendar to Nextcloud - Tony Easier to sync phone to Nextcloud Dynamic DNS 13:19 Using Coax Cable Useful? - Jon BNC Connectors + STI Video MoCA (https://mocalliance.org/index.php) Try a different brand of Ethernet over Coax 18:00 10GBE Nic using M.2 Slot - Charlie Innodisk EGPL-T101 NIC (Marvell AQtio chipset) (https://www.innodisk.com/en/products/embedded-peripheral/communication/egpl-t101) Product Store: USD$166 (https://www.wdlsystems.com/Innodisk-EGPL-T101-M.2-2280-to-single-10GbE-LAN-Module-0C-to-55C) 19:20 Soft Skills - Jeremy You have to know yourself first People are emotionally attached to ideas because they are invested Mission Statements Ask questions Cupcake Model Steve's Feedback "Being Handled" Reactions 38:38 Pick of the Week Static Site Generator for Docs MKDocs (https://www.mkdocs.org/) MKDocs (https://squidfunk.github.io/mkdocs-material/) Contribute to Mind Drip Media (https://docs.minddripmedia.com/contributing/) 41:00 Gadget of the Week Unihertz Titain Pocket (https://www.unihertz.com/products/titan-pocket) Blackberry Ripoff LineageOS Available Unihertz Jelly 2 (https://www.unihertz.com/collections/top-selling-products/products/jelly-2) Tiny LineageOS Available 44:44 Google Analytics Illegal Tutanota Blog Post (https://tutanota.com/blog/posts/google-analytics/) Doesn't Matter if data is being shared, only that it can be Good Potential 50:06 Suse Liberty Linux Register Article (https://www.theregister.com/2022/01/20/suse_liberty_linux/) Why another RHEL Clone? 53:00 Announcements Grand Forks LUG Minddripmedia Site Community Night -- The Extra Credit Section -- For links to the articles and material referenced in this week's episode check out this week's page from our podcast dashboard! This Episode's Podcast Dashboard (http://podcast.asknoahshow.com/270) Phone Systems for Ask Noah provided by Voxtelesys (http://www.voxtelesys.com/asknoah) Join us in our dedicated chatroom #GeekLab:linuxdelta.com on Matrix (https://element.linuxdelta.com/#/room/#geeklab:linuxdelta.com) -- Stay In Touch -- Find all the resources for this show on the Ask Noah Dashboard Ask Noah Dashboard (http://www.asknoahshow.com) Need more help than a radio show can offer? Altispeed provides commercial IT services and they're excited to offer you a great deal for listening to the Ask Noah Show. Call today and ask about the discount for listeners of the Ask Noah Show! Altispeed Technologies (http://www.altispeed.com/) Contact Noah live [at] asknoahshow.com -- Twitter -- Noah - Kernellinux (https://twitter.com/kernellinux) Ask Noah Show (https://twitter.com/asknoahshow) Altispeed Technologies (https://twitter.com/altispeed) Special Guest: Steve Ovens.
Troubleshooting goes very wrong for Alex, and he puts his backups to the ultimate test. Plus, monitoring your freezer in Home Assistant, building a self-hosted Notion alternative, and more.
Vanessa und Peter hatten zwei Open-Source-Schwergewichte zu Gast, mit denen sie über das (Über)-Leben als OSS-Entwickler plauderten. Martin Donath (Twitter, Github) war zuletzt in Revision 484 zu CSS und stylezen zu Gast und entwickelt Material for MkDocs. Marvin Hagemeister (Webseite, Twitter, Github) ist für seine Arbeit an Preact bekannt und war genau zu diesem Thema […]
We discuss Chris's latest wall-mounted tablet solution for Home Assistant and several scripts to pimp your Plex setup. Join us for a very special birthday episode as we celebrate our 50th.
Schepp und Peter erfreuten sich in dieser Revision an der Anwesenheit von Martin Donath (Twitter, Github), der nicht nur Maintainer von Material for MkDocs ist, sondern auch daran arbeitet, mit Stylez…
Schepp und Peter erfreuten sich in dieser Revision an der Anwesenheit von Martin Donath (Twitter, Github), der nicht nur Maintainer von Material for MkDocs ist, sondern auch daran arbeitet, mit Stylezen das beste CSS-Intellisense diesseits der Baikal-Amur-Magistrale zu erschaffen. Schaunotizen [00:00:59] CSS Tücken und Tooling In einem exzentrischen Orbit kreisen wir um das Thema Tools […]
Sponsored by us! Support our work through: Our courses at Talk Python Training pytest book Patreon Supporters Special guests: Peter Kazarinoff Brian #1: calmcode.io by Vincent D. Warmerdam Suggested by Rens Dimmendaal Great short intro tutorials & videos. Not deep dives, but not too shallow either. Suggestions: pytest rich datasette I watched the whole series on datasette this morning and learned how to turn a csv data file into a sqlite database use datasette to open a server to explore the data filter the data visualize the data with datasette-vega plugin and charting options learn how I can run random SQL, but it’s safe because it’s read only use it as an API that serves either CSV or json deploy it to a cloud provider by wrapping it in a docker container and deploying that add user authentication to protect the service explore tons of available data sets that have been turned into live services with datasette Michael #2: Natural sort (aka natsort) via Brian Skinn Simple yet flexible natural sorting in Python. Python sort algorithm sorts lexicographically >>> a = ['2 ft 7 in', '1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '7 ft 6 in'] >>> sorted(a) ['1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '2 ft 7 in', '7 ft 6 in'] natsort provides a function natsorted that helps sort lists "naturally” >>> natsorted(a) ['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in'] Other things that can be sorted: versions file paths (via os_sorted) signed floats (via realsorted) Can go faster using fastnumbers Peter #3: Python controlling a helicopter on Mars. First Flight of the Mars Drone/Helicopter was April 19: https://mars.nasa.gov/technology/helicopter/#Overview. The Drone/Helicopter is called Ingenuity. The helicopter rode to Mars attached to the belly of the Perseverance rover. Community powers NASA’s Ingenuity Helicopter: DEVELOPERS AROUND THE WORLD CONTRIBUTE TO HISTORIC FLIGHT: https://github.com/readme/nasa-ingenuity-helicopter The Drone/Helicopter flight control software is called F’ (pronounced f-prime, sounds like Python f’strings :). You can clone and install the flight control software from GitHub. Make sure you have Python and pip installed. https://github.com/nasa/fprime Brian #4: Pydantic, FastAPI, Typer will all run on 3.10, 3.11, and into the future suggested by an Angry Dwarf It’s a bit of an emotional roller coaster this last week even for those of us on the sidelines watching. I’m sure it was even more so for those involved. Short version: Pydantic, FastAPI, Typer, etc will continue to run as is in 3.10 Minor changes might be necessary in 3.11, but most likely all of us bystanders and users of these packages won’t even see the change, or we will be given specific instructions on what we need to change well ahead of time. If things change in 3.11, your code might still work fine, and you can test that today if you are worried about it. All project leads are involved and talking with the Steering Council. The Steering Council has all of our interests and Pythons in mind and wants to make improvements to Python in a sane way. So don’t freak out. Smart and kind people are involved and know what they are doing. Slightly more detail that I don’t really want to read, and summarized to my perspective: Something about an existing PEP 563, titled Postponed Evaluation of Annotations It was part of 3.7 and it included: “In Python 3.10, function and variable annotations will no longer be evaluated at definition time. Instead, …” This would have implications on Pydantic and projects using it and similar methods, like FastAPI, Typer, … Panic ensues, people wringing their hands, bystanders confused. BTW, the Python steering council knows what they are doing and is aware of all of this already. But lots of people jumped on the bandwagon anyway and freaked out. Even I was thinking “Ugh. I use Typer and FastAPI, can I still use them in 3.10?” Luckily, Sebastian Ramirez posted: I've seen some incorrect conclusions that FastAPI and pydantic "can't be used with Python 3.10". Let's clear that up. In the worst-case scenario (which hasn't been decided), some corner cases would not work and require small refactors. And also if you are worried about the future and your own use as is, you can use from __future__ import annotations to try the new system out. Also thanks Sebastian Then there is this message by Thomas Wouters about PEP 563 and 3.10 “The Steering Council has considered the issue carefully, along with many of the proposed alternatives and solutions, and we’ve decided that at this point, we simply can’t risk the compatibility breakage of PEP 563. We need to roll back the change that made stringified annotations the default, at least for 3.10. (Pablo is already working on this.) “To be clear, we are not reverting PEP 563 itself. The future import will keep working like it did since Python 3.7. We’re delaying making PEP 563 string-based annotations the default until Python 3.11. This will give us time to find a solution that works for everyone (or to find a feasible upgrade path for users who currently rely on evaluated annotations). Some considerations that led us to this decision: …” Michael #5: Extra, Extra, Extra, Extra hear all about it No social trackers on Python Bytes or Talk Python. Python packages on Mars More Mars NordVPN and “going dark” Nobody wants anything to do with Google's new tracking mechanism FLoC (Android Police, Ars Technica). From EFF: Google’s pitch to privacy advocates is that a world with FLoC will be better than the world we have today, where data brokers and ad-tech giants track and profile with impunity. But that framing is based on a false premise that we have to choose between “old tracking” and “new tracking.” It’s not either-or. Instead of re-inventing the tracking wheel, we should imagine a better world without the myriad problems of targeted ads. Peter #6: Build Python books with Jupyter-Book There are many static site generators for Python: Sphinx, Pelican, MkDocs… Jupyter-Book is a static site generator that makes online books from Jupyter notebooks and markdown files. See the Jupyter-book docs. Books can be published on GitHub pages and there is a GitHub action to automatically re-publish your book with each git push. A gallery of Jupyter-books includes: Geographic Data Science with Python, Quantitative Economics with Python, the UW Data Visualization Curriculum, and a book on Algorithms for Automated Driving. All the books are free an online. Extras Brian 2021 South African Pycon, PyConZA - https://za.pycon.org/. The conference will be on 7 and 8 October entirely online deadpendency update . Within a day of us talking about deadpendency last week, the project maintainer added support for pyproject.toml. So projects using poetry, flit should work now. I imagine setuptools with pyproject.toml should also work. Peter Peter’s Book: Problem Solving with Python (dead trees) or free online Joke More code comments // Dear future me. Please forgive me. // I can't even begin to express how sorry I am. try { ... } catch (SQLException ex) { // Basically, without saying too much, you're screwed. Royally and totally. } catch(Exception ex){ //If you thought you were screwed before, boy have I news for you!!! } // This is crap code but it's 3 a.m. and I need to get this working. One more: From TwoHardThings by Martin Fowler: Original saying: There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton Then there’s This tweet.
Martin Donath is the creator of Material for MkDocs, a static site from a set of Markdown files to host the documentation.For more SecTools podcast episodes, visit https://infoseccampus.com
Chinmayee Lakkad is a data engineer here at Hashmap. Chinmayee shares her best practices for joining large tables in Snowflake, her personal learning strategies, and experiences with data build tool (dbt) and MkDocs. Randy and Chinmayee also discuss Hashmap’s Snowflake Inspector tool. Show Notes: Hashmap’s Snowflake Inspector A Mind For Numbers Book https://www.getdbt.com/ https://www.mkdocs.org/ Psycho-Cybernetics Book On tap for today’s episode: English Breakfast Tea and Bones Coffee: Eggnog Contact Us: https://www.hashmapinc.com/reach-out
In this episode, I discuss how I recently wrote a post entitled Installing the latest version of Python on Mac OS Catalina and overriding the old default pre-installed version about installing Python 3.7.7 on Mac OS Catalina with Homebrew. Python 3.7.7 was the latest version of Python that one could install < 3.8.0. At the time, I was totally okay with that. That was before I discovered the Mkdocs documentation generator, which requires Python 3.8.2. It also supports 3.8.3. I checked to make sure! To view the transcript/post of this podcast, please visit Installing Python 3.8.0+ on your Mac with pyenv on interglobalmedianetwork.com. --- Send in a voice message: https://anchor.fm/maria-campbell/message Support this podcast: https://anchor.fm/maria-campbell/support
We try out the top self-hosted Wikis and tell you which we like best, and Chris has a major project off-grid update. Plus Alex tells us about his robot vacuum that runs Ubuntu.
En este episodio damos nos ponemos al corriente con el tiempo que no hemos platicado, hablando de las escaladas y los viajes de Mike, las visitas de Erick, damos seguimiento a algunos comentarios, almacenamiento en B2, React Hooks, docz, MkDocs, procesadores cuánticos, herramientas para generar documentación, visualizaciones de React Hooks, y en el tema principal Erick expresa sus rants de las opiniones de otros programadores 🤷🏻♂️.
Si quieres ver el vídeo con slides: https://youtu.be/whsK5nf3kg8 In this talk we will review different Python modules to build your own static site with simple bits of code and a bit of reStructuredText and Markdown. Bring your own story, and we will help you shout it out in a matter of minutes! Check Pelican for speed and secure static blog generation, or MKDocs for the best documentation site ever! Mix a bit of Python, a bit of reStructuredText or Markdown, and make it happen. Magic! Your site in minutes!
Panel: Charles Max Wood Mark Eriksen Eric Berry Special Guest: Andrew Summers In this episode of Elixir Mix, the panel talks to Andrew Summers who lives in Chicago, currently. Working on Elixir development, and here to talk about how he wrote the dialyzer pretty printer. He is a software engineer for Albert.io, makes cool stuff every day, loves punk music, and Philadelphia sports. The panel talks about the Dialyzer pretty printing, Elixir, code writing, and more! Show Topics: 1:07 – Why are you famous? 1:11 – Andrew: Answers the question. 1:34 – Chuck: Nice. Is the dialyzer printer complete pretty printing or is it more than that? 1:45 – Andrew talks. He mentions the background information on this specific printer, which was written a decade ago. 4:13 – Panel: One thing that is helpful is that it is a static code analysis. In the Elixir we are writing these spec statements. For nothing else than this type is coming out. Then this looks at the code, and your spec says you are returning this, but I can tell that you are also returning X, Y, or Z. So it is helping us see what we are declaring a code to do, and that’s really what the code is doing. 5:28 – Guest: Yes, exactly. To continue that topic here is what else it’s saying... 6:08 – Panel: Our panelist is not here, but he has had to fix code before with that problem. With Dialect Dialyzer – how do we say this library is out-of-date? The code is out-of-date. How do I get my stuff to pass – to clean up my site? 6:54 – Guest: Containing that warning. Guest goes into further detail how to problem-solve this issue. 8:02 – Panel: So you are saying that I can funnel. 8:20 – Panel & Guest go back-and-forth talking about this topic. 9:49 – Panel: I am still diving into the system. Haven’t really used the printer, yet. Panelist asks Guest a question. 10:04 – Guest: At the forefront there are some configurations to help with that. 11:16 – Panel: Why would someone not want to use this? What are the cons? 11:23 – Guest: It would have to do more with CI than anything (one con). 13:06 – Panel: Lots of people are coming to Elixir New. Great. What is the selling point? Why should someone invest his or her time in this project? 13:33 – Guest: I find looking for a type spec is one more piece of information that could help the reader that would tell them what the code should be doing. Any information from the original author to be passed down is great. Having the machine to check that, whenever you push code, it’s an imperfect check (as we were saying). If it can tell you that you did something wrong, then why not? It gives you that extra red flag. There are huge benefits to that. Same reason we write unit tests. 15:20 – Panel: You are learning Elixir right, Chuck? Panelist talks about tech specs, code writing, and learning projects. 16:25 – Panel: Here is a tip to learning. One thing that I did I came to an existing project and writing a sub-system ( as series of modules) Writing the tech specs. As they are interacting with each other, then writing Dial Elixir, and grab the output to the file path to where my code is. Within my own code find where I am inconsistent. Andrew – you could get pages of output, right? Any tips for users? 17:37 – Guest: Isolate portions of your code base. 19:27 – Chuck: I do like the idea of the umbrella. Phoenix app out into an umbrella. A sub apps and they are more centered, smaller sized. Then, yeah. Start with Dialyzer on just that project. Isolate it, and this app in the umbrella. The output is much smaller, and good success with that. Now, one of the new features you added was the language / the code that it reports is an ERLANG term. That is not familiar to most Elixir developers. Especially if you are new to it. If you are turning this into a friendly Elixir thing, then you had to learn other programs. How did you get into this path? 21:00 – Andrew: Whenever there was complicated “something” at work – I was the person to go to. As I started to do it more and more I saw patterns in the output. Things were kind of predictable, and how to format things. It synchronizes weird. What would I do to write this task? Researched. There are 2 tools = LEEX and YECC. If you have 2 files in your source directory... 22:56 – Advertisement – Digital Ocean 23:39 – Panel: It’s cool. 23:58 – Guest: It brought me back to some courses from school. I thought that was funny. They are pretty contained tools. 24:36 – Panel: Part of your motivation was from Jose. 24:49 – Guest: Yes, definitely. 25:39 – Did you have any questions for Jose? 26:35 – Panel: You added the feature of... CREDO is pretty well-known. 27:28 – Guest: Sure, I guess I did skip some of that. Andrew talked about different libraries, ERLANG modules, and so on. 28:38 – Panel: What else are you doing? 28:45 – Getting error messages fixed for version 1.0. Trying to close-up the residual things. 30:18 – Guest keeps talking about support and other bugs. Andrew: If you see something, say something. 31:00 - Panel: There are languages that run on the beam. Something to create something more standard so different languages can depend on. Is there anything like that? To help you with your tooling? 31:40 – Andrew: Good question! Some of the things that happen at the Dialyzer level, stuff just gets dropped. 33:47 – Guest: How this works all together... 35:15 – Chuck: How to contribute to Dialyxir? 35:30 – Guest: Around error messages – is the best place to look. If you have a good editor hand, good place for that. If you are further into the compiler land – might want to play with that. 36:29 – Guest: ERLEX 36:43 – Chuck: What did you learn about building these libraries? 36:55 – Guest: I learned a lot about the construction of Elixir. Guest dives into this more. 38:25 – Chuck: The principle that you cannot bind... 38:51 – Guest: ...this area of my code-base... it would be nice to turn off those features. When I really do need it – I need it, but not so if I don’t need it. 39:39 – Panel: I want to point someone to a resource: TypeSpecs. 39:54 – Guest: I used that so much! Wonderful resource, I learned so much stuff! I stole all the output from that. I didn’t know that language had that?! 40:20 – Panel chimes in about this resource some more. 41:02 – Guest: We really do have a simple language. There are some weird things, but not a lot of constructs under the hood. Only a few data structures. It could have been more complicated. I was worried about that – but that never happened, because... 41:41 – Panel: Thanks for adding that. Very true. 42:51 – Guest talks about other things that are very simple, too. 44:35 – Panel: Are you doing fulltime with Elixir for programming? 44:35 – Guest: Yes, we are using other Elixir and JS App. In another life I used... They all can teach you something. Sometimes the journey of going there and realizing WHY you don’t want to be there is sometimes worth the journey! 45:20 – Panel asks guest a question. 45:25 – Guest answers question. Andrew: We have enjoyed our time in Elixir. It’s nice. 46:27 – Panel: Anything else? 46:33 – Panel: Where can people find you online? 46:40 – Guest: Elixir Slack, Twitter, GitHub. 47:01 – Picks! 47:05 – Advertisement – Code Badges Links: Andrew Summers’ Twitter Credo Erlang Dialyxir LEEX YECC Credo ERLEX TypeSpecs Curated Dev News for Busy Developers EX_JSON_SCHEMA React – Jsonschema – form Announcing Distillery 2.0 Distillery’s documentation! MKDocs EX_Json_Schema Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Eric Chrome Extension for News Mark Announcing Distillery 2.0 MKdocs https://hexdocs.pm/distillery/home.html. Charles Launch by Jeff Walker Downcast Andrew Ex json Schema React json schema from
Panel: Charles Max Wood Mark Eriksen Eric Berry Special Guest: Andrew Summers In this episode of Elixir Mix, the panel talks to Andrew Summers who lives in Chicago, currently. Working on Elixir development, and here to talk about how he wrote the dialyzer pretty printer. He is a software engineer for Albert.io, makes cool stuff every day, loves punk music, and Philadelphia sports. The panel talks about the Dialyzer pretty printing, Elixir, code writing, and more! Show Topics: 1:07 – Why are you famous? 1:11 – Andrew: Answers the question. 1:34 – Chuck: Nice. Is the dialyzer printer complete pretty printing or is it more than that? 1:45 – Andrew talks. He mentions the background information on this specific printer, which was written a decade ago. 4:13 – Panel: One thing that is helpful is that it is a static code analysis. In the Elixir we are writing these spec statements. For nothing else than this type is coming out. Then this looks at the code, and your spec says you are returning this, but I can tell that you are also returning X, Y, or Z. So it is helping us see what we are declaring a code to do, and that’s really what the code is doing. 5:28 – Guest: Yes, exactly. To continue that topic here is what else it’s saying... 6:08 – Panel: Our panelist is not here, but he has had to fix code before with that problem. With Dialect Dialyzer – how do we say this library is out-of-date? The code is out-of-date. How do I get my stuff to pass – to clean up my site? 6:54 – Guest: Containing that warning. Guest goes into further detail how to problem-solve this issue. 8:02 – Panel: So you are saying that I can funnel. 8:20 – Panel & Guest go back-and-forth talking about this topic. 9:49 – Panel: I am still diving into the system. Haven’t really used the printer, yet. Panelist asks Guest a question. 10:04 – Guest: At the forefront there are some configurations to help with that. 11:16 – Panel: Why would someone not want to use this? What are the cons? 11:23 – Guest: It would have to do more with CI than anything (one con). 13:06 – Panel: Lots of people are coming to Elixir New. Great. What is the selling point? Why should someone invest his or her time in this project? 13:33 – Guest: I find looking for a type spec is one more piece of information that could help the reader that would tell them what the code should be doing. Any information from the original author to be passed down is great. Having the machine to check that, whenever you push code, it’s an imperfect check (as we were saying). If it can tell you that you did something wrong, then why not? It gives you that extra red flag. There are huge benefits to that. Same reason we write unit tests. 15:20 – Panel: You are learning Elixir right, Chuck? Panelist talks about tech specs, code writing, and learning projects. 16:25 – Panel: Here is a tip to learning. One thing that I did I came to an existing project and writing a sub-system ( as series of modules) Writing the tech specs. As they are interacting with each other, then writing Dial Elixir, and grab the output to the file path to where my code is. Within my own code find where I am inconsistent. Andrew – you could get pages of output, right? Any tips for users? 17:37 – Guest: Isolate portions of your code base. 19:27 – Chuck: I do like the idea of the umbrella. Phoenix app out into an umbrella. A sub apps and they are more centered, smaller sized. Then, yeah. Start with Dialyzer on just that project. Isolate it, and this app in the umbrella. The output is much smaller, and good success with that. Now, one of the new features you added was the language / the code that it reports is an ERLANG term. That is not familiar to most Elixir developers. Especially if you are new to it. If you are turning this into a friendly Elixir thing, then you had to learn other programs. How did you get into this path? 21:00 – Andrew: Whenever there was complicated “something” at work – I was the person to go to. As I started to do it more and more I saw patterns in the output. Things were kind of predictable, and how to format things. It synchronizes weird. What would I do to write this task? Researched. There are 2 tools = LEEX and YECC. If you have 2 files in your source directory... 22:56 – Advertisement – Digital Ocean 23:39 – Panel: It’s cool. 23:58 – Guest: It brought me back to some courses from school. I thought that was funny. They are pretty contained tools. 24:36 – Panel: Part of your motivation was from Jose. 24:49 – Guest: Yes, definitely. 25:39 – Did you have any questions for Jose? 26:35 – Panel: You added the feature of... CREDO is pretty well-known. 27:28 – Guest: Sure, I guess I did skip some of that. Andrew talked about different libraries, ERLANG modules, and so on. 28:38 – Panel: What else are you doing? 28:45 – Getting error messages fixed for version 1.0. Trying to close-up the residual things. 30:18 – Guest keeps talking about support and other bugs. Andrew: If you see something, say something. 31:00 - Panel: There are languages that run on the beam. Something to create something more standard so different languages can depend on. Is there anything like that? To help you with your tooling? 31:40 – Andrew: Good question! Some of the things that happen at the Dialyzer level, stuff just gets dropped. 33:47 – Guest: How this works all together... 35:15 – Chuck: How to contribute to Dialyxir? 35:30 – Guest: Around error messages – is the best place to look. If you have a good editor hand, good place for that. If you are further into the compiler land – might want to play with that. 36:29 – Guest: ERLEX 36:43 – Chuck: What did you learn about building these libraries? 36:55 – Guest: I learned a lot about the construction of Elixir. Guest dives into this more. 38:25 – Chuck: The principle that you cannot bind... 38:51 – Guest: ...this area of my code-base... it would be nice to turn off those features. When I really do need it – I need it, but not so if I don’t need it. 39:39 – Panel: I want to point someone to a resource: TypeSpecs. 39:54 – Guest: I used that so much! Wonderful resource, I learned so much stuff! I stole all the output from that. I didn’t know that language had that?! 40:20 – Panel chimes in about this resource some more. 41:02 – Guest: We really do have a simple language. There are some weird things, but not a lot of constructs under the hood. Only a few data structures. It could have been more complicated. I was worried about that – but that never happened, because... 41:41 – Panel: Thanks for adding that. Very true. 42:51 – Guest talks about other things that are very simple, too. 44:35 – Panel: Are you doing fulltime with Elixir for programming? 44:35 – Guest: Yes, we are using other Elixir and JS App. In another life I used... They all can teach you something. Sometimes the journey of going there and realizing WHY you don’t want to be there is sometimes worth the journey! 45:20 – Panel asks guest a question. 45:25 – Guest answers question. Andrew: We have enjoyed our time in Elixir. It’s nice. 46:27 – Panel: Anything else? 46:33 – Panel: Where can people find you online? 46:40 – Guest: Elixir Slack, Twitter, GitHub. 47:01 – Picks! 47:05 – Advertisement – Code Badges Links: Andrew Summers’ Twitter Credo Erlang Dialyxir LEEX YECC Credo ERLEX TypeSpecs Curated Dev News for Busy Developers EX_JSON_SCHEMA React – Jsonschema – form Announcing Distillery 2.0 Distillery’s documentation! MKDocs EX_Json_Schema Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Eric Chrome Extension for News Mark Announcing Distillery 2.0 MKdocs https://hexdocs.pm/distillery/home.html. Charles Launch by Jeff Walker Downcast Andrew Ex json Schema React json schema from
En el episodio 29 del podcast de http://www.entredevyops.es os explicamos las herramientas que utilizamos en nuestro día a día: equipos, sistemas operativos, editores, etc. Enlaces a nuestra web y twitter: Blog Entredevyops : http://www.entredevyops.es Twitter Entredevyops: https://twitter.com/EntreDevYOps Enlaces comentados: Arch Linux : https://www.archlinux.org/ Dotfiles Edu : https://github.com/edubxb/dotfiles Pipenv: http://docs.pipenv.org/ / https://github.com/kennethreitz/pipenv Tilix: https://gnunn1.github.io/tilix-web/ / https://github.com/gnunn1/tilix fzf: https://github.com/junegunn/fzf GNOME: https://www.gnome.org/ Neovim: https://neovim.io/ / https://github.com/neovim/neovim Entorno gráfico: Awesome: https://awesomewm.org/ Editores: Spacemacs: http://spacemacs.org/ Org-mode:http://orgmode.org/ Visual Studio Code: https://code.visualstudio.com/: Atom: https://atom.io/ Golang: https://golang.org/ Clojure: https://clojure.org/ Vagrant: https://www.vagrantup.com/ VagrantCloud: http://vagrantcloud.com/ CLI AWS: https://aws.amazon.com/es/cli/ awless (otro CLI AWS) : https://github.com/wallix/awless CLI Azure https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest Haiku: https://www.haiku-os.org/ iTerm: https://iterm2.com Bash-it https://github.com/Bash-it/bash-it Bash: https://www.gnu.org/software/bash/ LaTex: https://www.latex-project.org gitlab-ci: https://gitlab.com/gitlab-ci/ Perl: https://www.perl.org Python: https://python.org Firefox: https://www.mozilla.org/es-ES/firefox/ Mkdocs: http://www.mkdocs.org sphinx: http://www.sphinx-doc.org/en/stable/ hugo: https://gohugo.io/ i3: https://i3wm.org Ansible: https://www.ansible.com/ Aix: https://www.ibm.com/power/operating-systems/aix HPux: www.hpe.com/info/hpux Solaris: https://www.oracle.com/solaris/solaris11/index.html nixos: https://nixos.org/ Breevy: http://www.16software.com/breevy/download.php?a Brew: https://brew.sh conda: https://conda.io/docs/ virtualenv: https://virtualenv.pypa.io/en/stable/
This week on BSDNow, we've got Wifi galore, a new iocage and some RPi3 news and guides to share. Stay tuned for your place to B...SD! This episode was brought to you by Headlines WiFi: 11n hostap mode added to athn(4) driver, testers wanted (http://undeadly.org/cgi?action=article&sid=20170109213803) “OpenBSD as WiFi access points look set to be making a comeback in the near future” “Stefan Sperling added 802.11n hostap mode, with full support initially for the Atheros chips supported by the athn(4) driver.” “Hostap performance is not perfect yet but should be no worse than 11a/b/g modes in the same environment.” “For Linux clients a fix for WME params is needed which I also posted to tech@” “This diff does not modify the known-broken and disabled ar9003 code, apart from making sure it still builds.” “I'm looking for both tests and OKs.” There has also been a flurry of work (http://svnweb.freebsd.org/base/head/sys/net80211/?view=log) in FreeBSD on the ath10k driver, which supports 802.11ac Like this one (https://svnweb.freebsd.org/base?view=revision&revision=310147) and this one (https://svnweb.freebsd.org/base?view=revision&revision=311579) The long-awaited iocage update has landed (https://github.com/iocage/iocage) We've hinted at the new things happening behind the scenes with iocage, and this last week the code has made its first public debut. So what's changed you may ask. The biggest is that iocage has undergone a complete overhaul, moving from its original shell-base to python. The story behind that is that the author (Brandon) works at iXsystems, and the plan is to move away from the legacy warden-based jail management which was also shell-based. This new python re-write will allow it to integrate into FreeNAS (and other projects) better by exposing an API for all jail management tasks. Thats right, no more ugly CLI output parsing just to wrangle jail options either at creation or runtime. But what about users who just run iocage manually from the CLI? No worries, the new iocage is almost identical to the original CLI usage, making the switch over very simple. Just to re-cap, lets look at the new features list: “FEATURES: + Ease of use + Rapid jail creation within seconds + Automatic package installation + Virtual networking stacks (vnet) + Shared IP based jails (non vnet) + Transparent ZFS snapshot management + Export and import “ + The new iocage is available now via ports and packages under sysutils/py-iocage, give it a spin and be sure to report issues back to the developer(s). Reading DHT11 temperature sensors on a Raspberry Pi under FreeBSD (https://smallhacks.wordpress.com/2017/01/14/reading-dht11-temperature-sensor-on-raspberry-pi-under-freebsd/) “DHT-11 is a very cheap temperature/humidity sensor which is commonly used in the IoT devices. It is not very accurate, so for the accurate measurement i would recommend to use DHT21 instead. Anyway, i had DHT-11 in my tool box, so decided to start with it. DHT-11 using very simple 1 wire protocol – host is turning on chip by sending 18ms low signal to the data output and then reading 40 bytes of data.” “To read data from the chip it should be connected to the power (5v) and gpio pin. I used pin 2 as VCC, 6 as GND and 11 as GPIO” “There is no support for this device out of the box on FreeBSD. I found some sample code on the github, see lex/freebsd-gpio-dht11 (https://github.com/lex/freebsd-gpio-dht11) repository. This code was a good starting point, but soon i found 2 issues with it: Results are very unreliable, probably due to gpio decoding algorithm. Checksum is not validated, so sometime values are bogus. “Initially i was thinking to fix this myself, but later found kernel module for this purpose, 1 wire over gpio (http://www.my-tour.ru/FreeBSD/1-wire_over_gpio/). This module contains DHT11 kernel driver (gpio_sw) which implements DHT-11 protocol in the kernel space and exporting /dev/sw0 for the userland. Driver compiles on FreeBSD11/ARM without any changes. Use make install to install the driver.” The articles goes into how to install and configure the driver, including a set of devfs rules to allow non-root users to read from the sensor “Final goal was to add this sensor to the domoticz software. It is using LUA scripting to extend it functionality, e.g. to obtain data from non-supported or non standard devices. So, i decided to read /dev/sw0 from the LUA.” They ran into some trouble with LUA trying to read too much data at once, and had to work around it In the end, they got the results and were able to use them in the monitoring tool *** Tor-ified Home Network using HardenedBSD and a RPi3 (https://github.com/lattera/articles/blob/master/infosec/tor/2017-01-14_torified_home/article.md) Shawn from HardendBSD has posted an article up on GitHub talking about his deployment of a new Tor relay on a RPi3 This particular method was attractive, since it allows running a Relay, but without it being on a machine which may have personal data, such as SSH keys, files, etc While his setup is done on HardendBSD, the same applies to a traditional FreeBSD setup as well. First up, is the list of things needed for this project: Raspberry Pi 3 Model B Rev 1.2 (aka, RPI3) Serial console cable for the RPI3 Belkin F4U047 USB Ethernet Dongle Insignia NS-CR2021 USB 2.0 SD/MMC Memory Card Reader 32GB SanDisk Ultra PLUS MicroSDHC A separate system, running FreeBSD or HardenedBSD HardenedBSD clang 4.0.0 image for the RPI3 An external drive to be formatted A MicroUSB cable to power the RPI3 Two network cables Optional: Edimax N150 EW-7811Un Wireless USB Basic knowledge of vi After getting HBSD running on the RPi3 and serial connection established, he then takes us through the process of installing and enabling the various services needed. (Don't forget to growfs your sdcard first!) Now the tricky part is that some of the packages needed to be compiled from ports, which is somewhat time-consuming on a RPi. He strongly recommends not compiling on the sdcard (it sounds like personal experience has taught him well) and to use iscsi or some external USB drive. With the compiling done, our package / software setup is nearly complete. Next up is firewalling the box, which he helpfully provides a full PF config setup that we can copy-n-paste here. The last bits will be enabling the torrc configuration knobs, which if you follow his example again, will result in a tor public relay, and a local transparent proxy for you. Bonus! Shawn helpfully provides DHCPD configurations, and even Wireless AP configurations, if you want to setup your RPi3 to proxy for devices that connect to it. *** News Roundup Unix Admin. Horror Story Summary, version 1.0 (http://www-uxsup.csx.cam.ac.uk/misc/horror.txt) A great collection of stories, many of which will ring true with our viewers The very first one, is about a user changing root's shell to /usr/local/bin/tcsh but forgetting to make it executable, resulting in not being able to login as root. I too have run into this issue, in a slightly different way. I had tcsh as my user shell (back before tcsh was in base), and after a major OS upgrade, but before I had a chance to recompile all of my ports. Now I couldn't ssh in to the remote machine in order to recompile my shell. Now I always use a shell included in the base system, and test it before rebooting after an upgrade. “Our operations group, a VMS group but trying to learn UNIX, was assigned account administration. They were cleaning up a few non-used accounts like they do on VMS - backup and purge. When they came across the account "sccs", which had never been accessed, away it went. The "deleteuser" utility from DEC asks if you would like to delete all the files in the account. Seems reasonable, huh? Well, the home directory for "sccs" is "/". Enough said :-(“ “I was working on a line printer spooler, which lived in /etc. I wanted to remove it, and so issued the command "rm /etc/lpspl." There was only one problem. Out of habit, I typed "passwd" after "/etc/" and removed the password file. Oops.” I've done things like this as well. Finger memory can be dangerous “I was happily churning along developing something on a Sun workstation, and was getting a number of annoying permission denieds from trying to write into a directory heirarchy that I didn't own. Getting tired of that, I decided to set the permissions on that subtree to 777 while I was working, so I wouldn't have to worry about it. Someone had recently told me that rather than using plain "su", it was good to use "su -", but the implications had not yet sunk in. (You can probably see where this is going already, but I'll go to the bitter end.) Anyway, I cd'd to where I wanted to be, the top of my subtree, and did su -. Then I did chmod -R 777. I then started to wonder why it was taking so damn long when there were only about 45 files in 20 directories under where I (thought) I was. Well, needless to say, su - simulates a real login, and had put me into root's home directory, /, so I was proceeding to set file permissions for the whole system to wide open. I aborted it before it finished, realizing that something was wrong, but this took quite a while to straighten out.” Where is a ZFS snapshot when you need it? *** How individual contributors get stuck (https://medium.com/@skamille/how-do-individual-contributors-get-stuck-63102ba43516) An interesting post looking at the common causes of people getting stuck when trying to create or contribute new code Brainstorming/architecture: “I must have thought through all edge cases of all parts of everything before I can begin this project” Researching possible solutions forever (often accompanied by desire to do a “bakeoff” where they build prototypes in different platforms/languages/etc) Refactoring: “this code could be cleaner and everything would be just so much easier if we cleaned this up… and this up… and…” Helping other people instead of doing their assigned tasks (this one isn't a bad thing in an open source community) Working on side projects instead of the main project (it is your time, it is up to you how to spend it) Excessive testing (rare) Excessive automation (rare) Finish the last 10–20% of a project Start a project completely from scratch Do project planning (You need me to write what now? A roadmap?) (this is why FreeBSD has devsummits, some things you just need to whiteboard) Work with unfamiliar code/libraries/systems Work with other teams (please don't make me go sit with data engineering!!) Talk to other people Ask for help (far beyond the point they realized they were stuck and needed help) Deal with surprises or unexpected setbacks Deal with vendors/external partners Say no, because they can't seem to just say no (instead of saying no they just go into avoidance mode, or worse, always say yes) “Noticing how people get stuck is a super power, and one that many great tech leads (and yes, managers) rely on to get big things done. When you know how people get stuck, you can plan your projects to rely on people for their strengths and provide them help or even completely side-step their weaknesses. You know who is good to ask for which kinds of help, and who hates that particular challenge just as much as you do.” “The secret is that all of us get stuck and sidetracked sometimes. There's actually nothing particularly “bad” about this. Knowing the ways that you get hung up is good because you can choose to either a) get over the fears that are sticking you (lack of knowledge, skills, or confidence), b) avoid such tasks as much as possible, and/or c) be aware of your habits and use extra diligence when faced with tackling these areas.” *** Make Docs! (http://www.mkdocs.org/) “MkDocs is a fast, simple and downright gorgeous static site generator that's geared towards building project documentation. Documentation source files are written in Markdown, and configured with a single YAML configuration file.” “MkDocs builds completely static HTML sites that you can host on GitHub pages, Amazon S3, or anywhere else you choose” It is an easy to install python package It includes a server mode that auto-refreshes the page as you write the docs, making it easy to preview your work before you post it online Everything needs docs, and writing docs should be as simple as possible, so that more of them will get written Go write some docs! *** Experimental FreeNAS 11/12 builds (https://forums.freenas.org/index.php?threads/new-freenas-9-10-with-freebsd-11-12-for-testing.49696/#post-341941) We know there's a lot of FreeNAS users who listen to BSDNow, so I felt it was important to share this little tidbit. I've posted something to the forums last night which includes links to brand-new spins of FreeNAS 9.10 based upon FreeBSD 11/stable and 12/current. These builds are updated nightly via our Jenkins infrastructure and hopefully will provide a new playground for technical folks and developers to experiment with FreeBSD features in their FreeNAS environment, long before they make it into a -STABLE release. As usual, the notes of caution do apply, these are nightlies, and as such bugs will abound. Do NOT use these with your production data, unless you are crazy, or just want an excuse to test your backup strategy If you do run these builds, of course feedback is welcome via the usual channels, such as the bug tracker. The hope is that by testing FreeBSD code earlier, we can vet and determine what is safe / ready to go into mainline FreeNAS sooner rather than later. *** Beastie Bits An Explainer on Unix's Most Notorious Code Comment (http://thenewstack.io/not-expected-understand-explainer/) turn your network inside out with one pf.conf trick (http://www.tedunangst.com/flak/post/turn-your-network-inside-out-with-one-pfconf-trick) A story of if_get(9) (http://www.grenadille.net/post/2017/01/13/A-story-of-if_get%289%29) Apple re-affirms its commitment to LLVM/Clang (http://lists.llvm.org/pipermail/llvm-dev/2017-January/108953.html) python 3k17 (http://www.tedunangst.com/flak/post/python-3k17) 2017 presentation proposals (http://blather.michaelwlucas.com/archives/2848) NetBSD 7.1_RC1 available (http://mail-index.netbsd.org/netbsd-announce/2017/01/09/msg000259.html) #define FSUFS2MAGIC 0x19540119 (Happy Birthday to Kirk McKusick tomorrow) *** Feedback/Questions J - LetsEncrypt (http://pastebin.com/nnQ9ZgyN) Mike - OpenRC (http://pastebin.com/EZ4tRiVb) Timothy - ZFS Horror (http://pastebin.com/ZqDFTsnR) Troels (http://pastebin.com/dhZEnREM) Jason - Disk Label (http://pastebin.com/q4F95S6h) ***