Today is #TechnicalTuesday https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤓" title="Nerd-Gesicht" aria-label="Emoji: Nerd-Gesicht">!

Let& #39;s talk about practical technologies that you can use today.

In this thread, I will tell you about @streamlit https://abs.twimg.com/emoji/v2/... draggable="false" alt="🧵" title="Thread" aria-label="Emoji: Thread">https://abs.twimg.com/emoji/v2/... draggable="false" alt="👇" title="Rückhand Zeigefinger nach unten" aria-label="Emoji: Rückhand Zeigefinger nach unten">
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Streamlit is a Python framework to make data science apps blazingly fast.

The core value proposition is that you don& #39;t need any HTML, CSS or JavaScript, just pure Python. Take a look: https://streamlit.io"> https://streamlit.io 
https://abs.twimg.com/emoji/v2/... draggable="false" alt="❓" title="Rotes Fragezeichen-Symbol" aria-label="Emoji: Rotes Fragezeichen-Symbol"> Why do you want this?

As a data scientist, you spend most of your time designing, experimenting and testing models. You probably use Jupyter Notebooks a lot, right?

What happens when you have to show those models working?
If you& #39;re working for another data scientist, you can probably just share your Python scripts or Notebooks, but at some point in the chain, someone who doesn& #39;t ready code will need to see your model in action.
At this point, you (or someone) has to build a minimal application, an MVP, that at least shows some input controls, allows you to play with some model parameters, and lets you render some graphs.
This often takes the form of a Flask application with a minimal HTML frontend, possibly with a minimum JavaScript. And don& #39;t forget CSS.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="❓" title="Rotes Fragezeichen-Symbol" aria-label="Emoji: Rotes Fragezeichen-Symbol"> The question is, who builds this MVP?
https://abs.twimg.com/emoji/v2/... draggable="false" alt="👉" title="Rückhand Zeigefinger nach rechts" aria-label="Emoji: Rückhand Zeigefinger nach rechts"> We the data scientists either don& #39;t have the skills or we have to spend a ridiculous amount of time dealing with frontend details we couldn& #39;t care less (since this is not a product, it& #39;s just a demo).
https://abs.twimg.com/emoji/v2/... draggable="false" alt="👉" title="Rückhand Zeigefinger nach rechts" aria-label="Emoji: Rückhand Zeigefinger nach rechts"> The frontend team is usually busy with, you know, building the *real* product, and it& #39;s inefficient to use their time for building this app which, again, is not the final product.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤷" title="Person shrugging" aria-label="Emoji: Person shrugging"> But someone has to do it.
Enter @streamlit. The frontend framework for pragmatic data scientists.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="👍" title="Thumbs up" aria-label="Emoji: Thumbs up"> Forget about writing any HTML, CSS or JavaScript. Everything is pure Python code, and you get a nice reactive for free.
https://abs.twimg.com/emoji/v2/... draggable="false" alt="👍" title="Thumbs up" aria-label="Emoji: Thumbs up"> Forget about routes, templates, sessions and global state. Your code looks exactly like a Python script because it is a Python script. Everything is executed top-to-bottom every time the user changes something.
https://abs.twimg.com/emoji/v2/... draggable="false" alt="👍" title="Thumbs up" aria-label="Emoji: Thumbs up"> And you get a super powerful caching mechanism as a simple Python decorator that you can use in any heavy method (e.g., downloading data, training a model). So forget about having to manually store all that data.
There is one main caveat:

https://abs.twimg.com/emoji/v2/... draggable="false" alt="⚠️" title="Warnsignal" aria-label="Emoji: Warnsignal"> You have very little customization for layouts or styling.

But you don& #39;t care about that, remember, this is not the final product, is just a demo to showcase some prototype model.
If you& #39;re like me, you just want to have a frontend to show today with the least possible throw-away effort.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="⭐" title="Mittelgroßer Stern" aria-label="Emoji: Mittelgroßer Stern"> Take @streamlit for a spin today. I promise it& #39;ll be worth it.
As usual, if you like this topic, reply in this thread or @ me at any time. Feel free to https://abs.twimg.com/emoji/v2/... draggable="false" alt="❤️" title="Rotes Herz" aria-label="Emoji: Rotes Herz"> like and https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔁" title="Nach rechts und links zeigende Pfeile in offenem Kreis im Uhrzeigersinn" aria-label="Emoji: Nach rechts und links zeigende Pfeile in offenem Kreis im Uhrzeigersinn"> retweet if you think someone else could benefit from knowing this stuff.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🧵" title="Thread" aria-label="Emoji: Thread"> Read this thread online at https://apiad.net/tweetstorms/technicaltuesday-streamlit">https://apiad.net/tweetstor...
Stay curious https://abs.twimg.com/emoji/v2/... draggable="false" alt="🖖" title="„Live long and prosper!“" aria-label="Emoji: „Live long and prosper!“">

- https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔗" title="Link Symbol" aria-label="Emoji: Link Symbol"> < https://streamlit.io/ >
-">https://streamlit.io/">... https://abs.twimg.com/emoji/v2/... draggable="false" alt="📚" title="Bücher" aria-label="Emoji: Bücher"> < https://github.com/streamlit/streamlit>
-">https://github.com/streamlit... https://abs.twimg.com/emoji/v2/... draggable="false" alt="🎥" title="Filmkamera" aria-label="Emoji: Filmkamera"> < https://www.youtube.com/channel/UC3LD42rjj-Owtxsa6PwGU5Q>">https://www.youtube.com/channel/U...
You can follow @AlejandroPiad.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: