People judge a book by its cover! Look at most Twitter accounts that you follow and they probably have a professional (looking) image.
Here's how to create a professional profile image! #twitter4devs
Take a photo (phone is fine) against a white background, using your camera. If you have a lighting source, slightly in front and above you. (Folks like it if you smile at least a little bit.. 😉)
Load it into Gimp (free) or Photoshop and convert it to grayscale. (Or leave it if you like it).
Open up the curves and give it a stretched out s shape to make the whites whiter and darks darker.
Save it and that's it, you are done! You now have a professional looking profile image.
If you enjoyed this thread:
1. Follow me @__mharrison__ for more of these 2. RT the tweet below to share this thread with your audience
The .pipe method in Pandas is powerful (yet potentially confusing if you aren't comfortable with passing functions around).
The .pipe method takes a dataframe (or series when called on a series) and can return whatever it wants. Generally, I'll return a dataframe so I can continue to chain operations.
🐼 .pipe is useful for operations that don't have methods (such as flatten_cols).
There is no method that will flatten hierarchical columns in Pandas. You need to mutate the .column attribute. But we can use .pipe to do this and still allow us to chain.
Evaluating whether to replace my PDF viewer/inking tool of choice on Windows with @foxitsoftware or Okular (@kdecommunity). Seem more stable and quicker than @drawboard but also have other quirks. 🤔
Last week I taught a course that covered Decorators in Python.
Many know how to use them, but few can write them.
These are tricky because nested functions make our brains hurt.
Here are some hints for grokking them.
1/
In short, decorators allow you to inject orthogonal behavior before or after a function is executed.
But my favorite decorator definition is related to the construction and will help you easily create them: A callable that takes a callable and returns a callable.
2/
What do I mean by "orthogonal"?
A function should do one thing. If you want to add caching or logging, it really isn't related to the function (and could be applied to multiple functions). It is "orthogonal" behavior.
3/
Let's explore the "any" and "all" built-in functions in Python.
A 🧵
First of all, I'll teach you how to fish in Python before giving you the fish. 🐟🎣
The built-in "help" function will give you documentation in Python. Make liberal use of it and reach out to it before ceding control to a search engine.
These are "aggregation" or "reducing" functions. They take a sequence and collapse it to a single value.
"any" returns if any value was truthy.
"all" returns if all values were truthy.
Functional programming like this can be great for minimizing lines of code. But it is also great for making your brain spin. Here is how I would initially write this (if I were fancy, I would use the Sieve of Eratosthenes):
Can we collapse this into fewer lines of code? Certainly, (the functional style already showed that) we can. One thing to realize is that lines 3-6 can be replaced with an any call: