5 ms·
I do a lot of dev work with non-profits and such. About a year ago I was working on an extremely difficult project as a volunteer where I was insistent that a s
by chaps 5y ago
I do a lot of dev work with non-profits and such. About a year ago I was working on an extremely difficult project as a volunteer where I was insistent that a specific part was vitally important to getting the project to move forward (generalizing tables extraction from scanned OCR docs) and I was spending a lot of time on it. One of the devs I worked with, with 40+ years of experience, basically told me this exact thing. He argued that what I as working on was a waste of time and that I shouldn't work on "code golf" problems, because of the likelihood of failure and that ultimately I should consider the human side of the problem. He said it was best to work on other things instead.
Fast forward a month later, I managed to actually do it, and it worked almost flawlessly, across about 100k scanned PDFs. Multiple long-term projects spawned off from the extracted information, including some projects from the dev who told me to stop.
My point being -- sometimes it seems like that line is used as an excuse to not tackle hard problems if they seem likely to fail. I agree with the line, and it's the exact reason I worked on it as hard as I did, but the dev failed to consider that I understood the social part of the problem, on experienced principle.
- cbsmith 5y agoAs per the blog's opening statement: context is key. The industry (and really, it's not specific to the industry) is rife with people who take pearls of wisdom out of their context and apply them without the context to serve their own ends.
- quickthrower2 5y agoPredicting the future is hard. You were both right. You only have the outcome to judge the decision, not the full probability distribution.
- superpope99 5y agoThis is so important - it's so hard to gauge what another person's mental model of a scenario is compared to yours. As in - perhaps OP and 40+ year person had the same, accurate mental model of the probability distribution of success, but OP and 40+ had different attitudes towards risk/reward. Or perhaps the OP happened to have a much more realistic picture of the probability of success, and 40+ was unnecessarily pessimistic. So hard to evaluate these things, and to internalise the fact that other people don't have the information you have all the time.
- chaps 5y agoYep! If I wasn't successful, he would have been right and I can't really blame him too much for thinking it his way. The problem was particularly tricky because it combined bunches of distinctly esoteric domains (OCR, text/vector maps, image processing, fuzzy string matching).. recursively. There were no boundary lines and inconsistently sized black redaction boxes. If I hadn't worked on problems in each domain in separate projects, I doubt I would've been able to do it and he had no way of knowing my experience.
- darthvoldemort 5y agoIf you're volunteering, why shouldn't you work on projects that you find interesting? I don't understand the point of view of the older dev.
- minitoar 5y agoPresumably you want to maximize the positive impact your volunteering has on others.
- darthvoldemort 5y agoBut having people working on potentially extremely useful moonshots that they are interested in for free is a huge win. I think it's really just a case of bad advice, and not all developers with 40+ years of experience are correct. In my opinion, it's better to have a motivated volunteer engaged and working on something with unknown impact that she is interested in, rather than get her to work on boring things with less impact.
- throwaway14356 5y agoof course not, humans are most often wrong about everything. Someone with experience is just that. Our perspective changes. I started coding at 12 because everyone said it was much to hard for me. Now im old and motivate people by doing the same. At the same time its good to be reminded by others what happens if you drop one thing in favor of the other.
- schraeds 5y agoEven if you're volunteering you still have to work towards agreed upon objectives. You wouldn't show up on a Habitat for Humanity build site an start modifying the blueprints and working on whatever you found interesting because you are volunteering and are entitled to only work on interesting projects.
- inglor 5y agoI've found that volunteer work is _harder_ in terms of getting the human aspect right. New volunteers sometimes expect the red-carpet treatment as someone volunteering their (pretty expensive presumably!) time and as someone accomplished in their field. Volunteers usually get the opposite treatment since it turns out the other volunteers tend to come from a similar perspective and someone doing the hard human work is often contributing a lot more to the project than an otherwise excellent engineer. You can of course choose your volunteer activities to be interesting to you. Open source is one such very fun activity but lo-and-behold in projects I've been involved with the human aspect is often very important and requires a similar amount of hard work. This is often truer for bigger projects/organizations than small ones.
- dempseye 5y agoMake an API out of that. There is huge demand for it.
- mvcatsifma 5y agoI believe such an API already exists: https://pdftables.com/ https://pdftables.com/ (no affiliation). Went to a presentation at a Golang meetup in Amsterdam by the guys behind this company. Seemed to know their stuff. But I have no real world experience using it.
- vic-traill 5y agoI had a look - from their FAQ [0]: However, some PDFs are scanned documents, or only contain images. PDFTables doesn't perform Optical Character Recognition (OCR) to turn these images into text. To process these kinds of documents, you will need to either enable OCR in your scanning software, or run the PDF through specialist OCR software before using PDFTables. [0] https://pdftables.com/faq https://pdftables.com/faq
- leesalminen 5y agoI’m in need of that right now! Would pay for it, especially if the proceeds benefitted that non-profit!
- mlboss 5y agoLooks this does it https://www.extracttable.com/ https://www.extracttable.com/
- mediascreen 5y agoI'm pretty sure AWS Textract does that already. https://aws.amazon.com/textract/ https://aws.amazon.com/textract/
- agustif 5y agoI needed to do this, so happy someone else made it! A nice FOSS library for it was on HN recently, sharing is caring I guess https://news.ycombinator.com/item?id=28680136 https://news.ycombinator.com/item?id=28680136 https://extract-table.com/ https://extract-table.com/ https://github.com/vegarsti/extract-table https://github.com/vegarsti/extract-table
- bobthepanda 5y ago> generalizing tables extraction from scanned OCR docs I would actually categorize this as a human problem. As a society, we scan documents all the time. Data entry is a massive time sink usually involving lots of corrections. True code golf would be like switching languages/frameworks for no discernable reason or trying to hit an arbitrary code coverage metric because you're unsatisfied with the current one.
- xwolfi 5y agoIt's a permanent balance. I have to "manage" (but I still am a main contributor) a small team in a big investment bank with angry busy trader-users, irrational "global" management in other continent thinking we're all dumbasses in Asia, and people on loaned rotation. So, like your colleague, I try to strategize delivery. I would never tell a guy not to work on a genius idea that could change the entire paradigm, in fact I let 3 of my guys do just that for the last 3 months, together, sometimes alone. But they either not deliver, or very slowly, or sketchily (not working as well as thought). So what I do a lot is a compromise. I force them, despite their complaint I don't care enough about the big picture of their non-delivering work, to take smaller issues every week. 1 or 2, give a candy to the user, and do your stuff then. It worked incredibly well: while they've delivered absolutely nothing of value in their own initiatives yet (but I still think they can, it's just very long term), the users are delighted by a constant stream of little innovations and we've been recently identified as one of the most productive team. Meanwhile, the team next to us, algo programmers in C++, can take 2 months to enhance an error message. Because they're all revolutionizing the system and have no time for basic human needs. They don't know yet, but they're gone soon. The budget people found there's a new model of delivery that could work, I wonder which one ;)
- bGl2YW5j 5y agoGood on you for trusting your team and allowing for such experimentation! We need more people in management with this attitude.
- WalterBright 5y ago> sometimes Any rule of wisdom, followed blindly, leads to disaster. Don't substitute rules for good judgement.
- Y_Y 5y agoIf we take your first statement to be a "rule of wisdom" then it is either false, or all roads lead to disaster anyway.
- WalterBright 5y agoIf you leave off the rest of my post, you're likely to misunderstand it :-)
- vvanders 5y agoOr sometimes you have an approach that is high risk/reward. That's totally fine to take as long as your aware of the risk and have mitigations or offramps at the right points if you find the path isn't viable.
- agumonkey 5y agominuscule anecdote: my most cherished lines of code were an 8 lines vba excel macro to count duplicates for a non tech colleague. Turned her day from hell to cool (she had to filter duplicates by hand and quadratic formulas over 2000+ lines spreadsheet. That's what computers are for.
- suzzer99 5y agoI once spent two hours thinking about how to recursively assemble a tree structure from the database in a way that the JS presentation library wanted the data, then finally I wrote 2 lines of code. Definitely my most cherished code.
- chaps 5y agoHah, this is something I've done when trying getting data from a government agency that can't run or write code themselves. It's usually in some awkward meta-adversarial context and they tend to be fearful of macros and such, but it's possible to get around that fear by writing everything in excel functions. Sometimes those damn excel sheets take hours and hours to make even though it would otherwise take me less than a minute to write in SQL or unix. But it pays off every time and pushes a clear message that they can do better.