HN user

ferdterguson

50 karma
Posts0
Comments40
View on HN
No posts found.

Python is my day job and I'm very fluent in the common data science tools like Pandas, but you'll hardly ever catch me using Pandas because Excel is just so much easier for 2d data.

The thing is, I never use Excel because the data I work with every day is almost always multidimensional, so I work with xarray[1]. It drives me crazy to see coworkers using Excel for things that it is not suitable for and having crazy solutions like multiple tables per sheet, multiple sheets, multiple files or other hacks to describe another dimension of data.

[1] http://xarray.pydata.org

It still takes lot of expensive human work to select the good quality works and proofread /edit/ peer review them etc before it is fit for publishing in a decent journal

Good thing that almost all of that expensive effort is done by volunteer scientist editors and reviewers. I routinely see spelling errors and english errors (going against journal guidelines for British/US english) in scientific literature. I'm convinced publishers do as little proofing as possible.

One thing they mentioned in the 'left out' section is code review. I'm a researcher in a computation-heavy field and I think that anything I write that is intended to be used in our research group or used by other people should be code reviewed. In my experience, so many codes written by former group members or by senior group members become blackboxes that no one can read or maintain in five years.

Code review for anything more complicated than a script has helped the quality of what I write. It also ensures that there are other people who have at least seen the code that I wrote. Even if they don't fully understand it, they are at least empowered enough to wade through it if need be.

Python in some cases can be 100x slower than C

Yeah, the Python implemented version is. But people doing serious computing in Python that requires speed are doing it with NumPy or even Cython or just straight up calling C/Fortran libraries in Python.

I understand the GPL, but I personally prefer BSD/MIT and I am disappointed when I come across things I like in the GPL. IMO the GPL is not really 'free'.

On the other hand, the GPL wouldn't make a difference here unless they are actually distributing it and my understanding of LGPL means that they could do whatever they wanted to as long as they use NumPy and don't change it.

Just because the API is bad doesn't mean we should throw money at it. I agree that NumPy might not be the best recipient either. It's hard telling, really.

Personally, I believe the biggest blocker for me is to have good visualization tools. That's ultimately what gets me paid is showing other people my work and getting them to give me money to continue it.

On the core science stack IMO there's numpy, scipy, sympy, matplotlib, pandas and xarray. I probably use it next to least, but I really think sympy is the one that could benefit the most from some funding.

Word has built in diff. Review -> Compare.

It's kind of slow though in my experience. Diffing plain text is amazing. I recently used it to diff a research paper I was peer reviewing that the TeX source was provided for. I felt like a wizard.

People are dogging on you for suggesting learning styles. Learning style aside, seeing something with your eyes helps you see it with your mind. I think very few people would find it easier to understand a paragraph or a few than a good illustration or demonstration.

I use Microsoft OneNote to take notes. The math notation is almost exactly the same as in LaTeX and you basically compile it on the fly with the spacebar. <ctrl>+'=' toggles math mode on and off from the Mac. There are some hiccups, especially with OneNote keeping track of fonts (in my experience) but you get used to them.

You make some good points regarding LaTeX. In my opinion, anything that you can express in markdown is not that hard to read in TeX source. Most of md is centered around section headers, links, basic text formatting (bold/italic) and lists. Most of those are very readable in TeX source.

I like reStructuredText, but the format is grating compared to markdown. The two things I do the most are sectioning and links. Inline links are ok in rst, but I prefer markdown. Sectioning though is awful. I hate having to hold the damn == or -- or ~~ down and getting the length right. It's easier to parse when you read the plaintext, but makes me loath writing it. Most the time I deal with md or rst, they end up formatted anyway, which is the point IMO.

I feel like we are inching closer to being able to write code on iOS. Swift storyboards on the iPad kind of opened the door and I hope we can keep chipping away at this.

The day I can run and write Python natively on iOS is the day I buy an iPad Pro. Right now there are some good ssh clients and I can write code from a terminal, but pros of the device are not worth that tradeoff right now IMO.

I do a deeper hour-long review of lower priority content at least once a week, but my email is an effectively infinite backlog of interesting-possibly-relevant information.

As a zero-inbox kind of person this is terrifying. It's already enough effort to keep up with the new journal articles every day. I use my morning commute to do that and my evening commute to unwind and read the more interesting stuff.

The one sentence answer from a FP perspective, imo, is that if you are passing the same data (e.g. a record) between functions, doing stuff with it, and returning a new record then that should be a class that hangs on to that data with the methods being the functions that act on it.

This is especially true if your functions if you have a bunch of functions that do this and they aren't really useful for anything else.

I struggle with this as well. I wouldn't say I'm very experienced, but I've been around the block for awhile. I use TDD successfully, but I always have problems with edge cases. I think of and try to guard against edge cases, but I feel like testing in practice is really just preventing regressions for test cases. Most the bugs I actually see in my software are of things I didn't think about (obviously).

Sometimes I wonder if I should only write a test when something unexpected happens (e.g. user has a bug report) instead of wasting time writing tests on the front end for core features and obvious edge cases.

I mostly work on scientific software, btw.

If money is no problem for you, hell yeah, get a liberal arts education and pursue your passions. I totally agree that a degree in something you enjoy can be very personally rewarding.

Most people don't give a shit about their jobs. They want to be comfortable in their lives, go home at 5, retire early and get on with doing what they like doing. To do that you need money. To get money, you need to have skills that create value for the entity paying you.

I'd argue that college is only about the money, because money is more freeing than anything you can learn. Just look at all the dumb rich people in the world and all the smart poor people that can't get a foothold.