Posts

Showing posts from August, 2020

An Editorial article from the iMatix Corporation webpage.

I spent a good chunk of time a couple of weeks back looking at ZeroMQ and PyZMQ specifically. While I was going through the documentation for the project, I came across the webpage - http://www.imatix.com/ . Not matrix. matix. These are the people who created and opensourced the ZeroMQ project. If you tried clicking on the URL, you should have gotten a "can't reach this page" kinda message. Using the Internet Archives' Wayback Machine , I was able to find the last time the URL directed to a working webpage - https://web.archive.org/web/20190620093511/http://www.imatix.com/ . Side note : That's a very interesting/intriguing webpage because from the looks of it, the webpage is displaying Google Slides. Going further back, I noticed an Editorial link on the webpage - https://web.archive.org/web/20051125213101/http://www.imatix.com/edito.htm . That editorial page has been open on my browser for almost two weeks now and I am happy I finally read it instead of blindly

I used regex in a meaningful way for the first time yesterday.

Regex is short for Regular Expressions and are used to define search/match patterns in programming. For example, Python has the re standard library module which can be used to construct regular expressions and use them to match/search strings. I have known of regular expressions for a while now but I have never actually used them in any meaningful way. Until yesterday. I've been working on trivial contributions to open source Python projects. One of the trivial changes was updating how the super builtin function is called. On Python 3, arguments are optional. On Python 2, arguments have to be passed and specifically, super(ClassName, self) is how the builtin function needs to be called. For Python packages that are completely dropping support for Python 2, they can get rid of the old way of calling super . But, manually finding and updating the usage is a little tedious, especially for large codebases which heavily rely on objects and inheritance. This is the perfect place wher

async/await in Python

Image
 Concurrency is not something I have much experience with and all of the new async/await/asyncio stuff in Python was kinda giving me headaches. So, when the humble bundle I bought had the book Using Asyncio in Python , I was excited. I tried reading it on a weekend a couple of weeks back and I got a headache. I picked it up again last weekend and worked through the examples as I was reading the book, which helped tremendously. The book also linked to a couple of very useful talks, which aided in improving my understanding of this new world. David Beazley on Concurrency Yury Selivanov - async/await in Python 3.5 and why it is awesome Get to grips with asyncio in Python 3 - Robert Smallshire A couple of colleagues of mine at work also recommended two books - "Seven concurrency models in seven weeks" and "High Performance Python". For now, I want to get better at using async/await/asyncio and gain a deeper understanding. I'll probably keep watching more talks regar

My first* OSS contributions got merged!

The asterisk after first is because I have contributed to open source software that Enthought (my employer at the moment) maintains so these are my first contributions to a project which isn't maintained by Enthought. Also, i'm not counting opening issues on open source software as contributions at the moment, which I have done a couple of times in the past. In this specific case, I was looking at code in the Jupyter ecosystem in Python and I came across a few trivial changes that could be made in the projects, given that they dropped support for Python 2 and only supported Python 3. Remove u string prefixes from ipykernel, Remove Python 2 compatibility code from ipykernel, Remove Python 2 compatibility code from jupyter_client . There are actually a few more PRs (5 more, I think), for  which I am waiting for reviews. But they all make pretty much the same kind of changes. If you took a look at the PRs, you will notice that the changes themselves are extremely trivial and prett

!!Con

Image
 I came across the bangbangcon conference a long long time back and I came across it again this weekend. It's nothing like the other software conferences that I have come across. Here are four amazing talks that I think exemplify what the bangbangcon is all about.  

Dissatisfaction and Loneliness by Kurzgesagt

Image
 I came across these two videos yesterday night and I think they are videos that everyone needs to watch. Especially at this point in time. I've been a fan of Kurzgesagt in general and it was a little surprising to come across these videos that are subjective, unlike most of their videos which are fully objective.    

Buffalo Fish Police

Image
buffalo fish police I finally got around to listening to a few talks from SciPy US 2020 which is when I came across buffalo fish police.

Google's Search monopoly

Does Google use its overwhelming market power to benefit itself while crushing competition? YES. Do these actions have negative impacts on the open internet? YES. Are everyday consumers harmed by Google’s practices YES.   Every time Google commits a flagrantly anticompetitive act, it always points to a flimsy pro-consumer pretense for doing so. Google Product managers convince themselves that it’s a 7better user experienceto simplyprovide the answer, but fail to consider the negative externalities of destroying a small business.  I just read a written statement by Brian Warner of Celebrity Net Worth about Google's Search Monopoly. A PDF version of the written statement can be found at this link . Everyone needs to read this. I wonder how Alphabet would look if it were broken up - Google Search and Ads, GSuite, Youtube, Android and Google Cloud.

The O'Reilly Humble Bundle

 I purchased the O'Reilly Humble Book Bundle two weeks back and I've just read my second book from the bundle. So far, I'm pretty happy with the purchase. I paid for the full bundle and last weekend, I read Introducing Go and today, I read 97 Things every Java programmer should know  and i'm pretty happy with both. "Introducing Go" is a short book that introduces the Go language. The part of it that I found most interesting was the last chapters, one of which introduced Goroutines i.e. coroutines in Go. That leads nicely to looking at "Using Asyncio in Python". I browsed through  Think Julia  and  Using Asyncio in Python  as well last weekend, the latter of which made my head hurt. I'll prolly take a closer look at "Using Asyncio in Python" next weekend. "97 Things every Java programmer should know" seems to be part of the "97 Things XYZ should know" series of books by O'Reilly. There were a lot of "Things

Recommend GitHub Guides to newhires.

I've been using GitHub everyday for the last 4 years. I think I spend 2+ hours everyday on the website. Some of it is spent opening issues. Some more spent opening Pull Requests. Some time spent commenting on open issues and pull requests. That probably covers 90% of the time I spend on GitHub. This is what most software developers can expect if they join a company which uses GitHub for code/software. On that note, becoming comfortable with the website, it's user interface and being able to take full advantage of it is very important to be productive at work. GitHub guides look pretty useful in that context, especially for new developers who have little to no experience with GitHub. I had been using GitHub before I joined Enthought but I was using it purely as a place to back up my code. commit -> push -> rinse and repeat. Specifically, The "Hello world" https://guides.github.com/activities/hello-world/ guide is something that *every single developer* s