Scripting For Others

Yesterday I was cleaning up a google spreadsheet that contained a data dump I wanted to do something with. The spreadsheet had a bunch of blank rows and columns and garbage data in it that I needed to remove. So I was going through the sheet deleting stuff, moving stuff, and in general cleaning it up. It was super boring work. I got about half way through this mundane chore and was so bored that I decided to tweet about it to relieve the mental drain this chore was creating for me.

This is what I tweeted out:


I don’t think I will ever have to do the same set of cleanup actions that I did yesterday afternoon and I don’t expect to get a data dump in that general format again so I think the decision not to write a cleanup script was the right one. I got through the cleanup in about 15-20 minutes, not including the time I spent on that tweetstorm, and it would have probably taken me as long or longer to write the script to automate the cleanup.

So I think I made the right call.

But then I got this reply on Twitter:

And I thought to myself that my current “script or not” algorithm is a selfish one and I need to add another factor which is a modification of the 2nd tweet in the tweetstorm. It should be “if I or others are going to find ourselves doing this again.”

Thanks Francesca for correcting me on that one.


Comments (Archived):

  1. jason wright

    we are one species. we’re all in it together.

  2. David Semeria

    I remember how one of my old CS professors described software libraries as the opposite of normal libraries: people put things in but no-one takes things out.That may be too much of generalization nowadays, but it’s still true that usage for open source projects is very much a power law.In other words, it may make you feel good to open source your spreadsheet script, but it’s unlikely many people would actually use it.Which is a lot like creating a web site — and so, at the end of the day, not a good reason for not at least giving it a shot….

    1. Anne Libby

      One problem I’ve been giving a lot of thought to: how do we find things online? Search results are often irrelevant, not surfacing the “best” results, but the results that SEO made best.

      1. sigmaalgebra

        Yes, we could use some progress in search.Of course, techniques and, then, softwarefor real text understanding, i.e.,a case of real artificialintelligence (AI) would help, but thenwe’d worry if computers that smart mighttake over!Ah, a law for the third millennium: Acomputer smart enough to do your work issmart enough to replace you!Sure, can work with the socialgraph, i.e., “what your friends like,”but usually the accuracy here will bepoor.More can be done: In the end, short ofsome AI, a better solution about has to befrom some math. But the level ofdiscussion of the math of searchtechniques, say, at Wikipedia, etc., is abit too low to get something better.About have to think of some newmath/techniques.

        1. leapy

          Check out the work of Mark Levene, Head of the CS department at Birkbeck College in London, UK.His team was doing some interesting work on trails-based search algorithms.L

        2. SubstrateUndertow

          As powerful as math is, it is still a subset of human language/signalling.

          1. sigmaalgebra

            Math has the advantage of mathematicalproof which the rest of language, etc. doesnot.So, go in steps:Real problem.Assumptions appropriate for real problem.Hypotheses for math.Math (theorems and proofs).Math solution.(likely) Computer solution based on math solution.Interpretations of computer solution.Real solution.So, do the math/computing carefully;otherwise argue the assumptions andinterpretations; and, if like all that, thenuse the real solution with confidence.The math is an advantage, especiallynow that we have such powerful, cheapcomputing.

          2. SubstrateUndertow

            The proof of the pudding is in its pleasure!Under the hood the whole reality stack is some sort of mathematical expression, still, consciousness as a viscerally abstracted expression of that mathematical substrate hold the key to extending both its power and pleasure.

          3. sigmaalgebra

            Under the hoodWe are talking about very different things.Sure, physics sees math as with “unreasonableeffectiveness”, and maybe “under the hood”there’s a lot of math. So, on that maybe youare correct.But that’s not what I’m talking about: Independent of whether physicists believe that God is a mathematician,I’m talking about actual, hands on, real, today, practical applications ofmath, with theorems and proofs, includingnew math, that is, from original research,yes, with more theorems and proofs,executed specifically for a particular practical problem.Not everyone is familiar with such math,but the US DoD very much is. So is theUS NSF. So are people in the oil patchwho send seismic pulses into the ground,get the signals back, which are convolutions of the pulse, and usethe fast Fourier transform (FFT) to do adeconvolution of the signals and,thus, develop maps of the rock layersunderground and likely locations for oil.Some people in industry use integer linear programming to schedule airlinefleets and pilots.And there are many more applications.And usually it’s not K-12 math or evenugrad math. And sometimes it is fromoriginal research in math. And the mathis crucial, the crucial core of the work,the crucial part of specifying what the software should do. Then the software is to implement the data manipulations specified by the math,e.g., the FFT.For the past 70+ years, the US DoDhas taken pure and applied math veryseriously, and for good reason. E.g.,the remark “Mathematics won WWII”is not far wrong. I started my career insuch math; the US DoD was fully correct — given a real problem, one ofthe best paths to a real solution is theone with the steps I outlined above.That’s just the way it is. It’s not a fad,hype, happenstance, trivial, niche, fantasy, pie in the sky, etc. Instead it’slikely the most powerful work so far inall of civilization. Sorry ’bout that.Such uses of math in current informationtechnology entrepreneurship appear tobe rare. Thus, some advantages andopportunities can be had.For such work, what is philosophicallydeep under the hood is next toirrelevant.

          4. JLM

            .Stronger than an acre of garlic.JLM.

          5. sigmaalgebra

            My father in law was like that, includingthe school board. One winter a neighborwas off the road stuck in the snow, andmy FIL stopped, shoveled, and fell over with a fatal heart attach.

          6. SubstrateUndertow

            I did not mean to dismiss the pivotal importance of the underlying mathematical gears that drive technology just saying that those underpinning’s largest impact is to empower higher-level social recombinant processes that are viscerally accessible to everyone.Paraphrasing Steve Jobs the point of critical-math that ignites innovation is at the intersection of math and politics.

      2. awaldstein

        85+% of everything I find comes from my networks.They are the most important things I build.

        1. Anne Libby

          Yup.As you know, I’ve been exploring how people learn to manage, and doing a lot of talking with people about this.Like learning to ski — or drink wine for that matter — reading about it is a supplement to what happens in real life.That said, most of what floats to the top of a search on “#management” is not useful. Some of it could even be harmful in less-than-experienced hands.Sigh.

      3. LE

        One problem I’ve been giving a lot of thought to: how do we find things online?If I ran a major corporation or even a minor corporation I would have staff whose job it was “information concierge” to just deal with tracking down relevant information for other employees in order to save them time. The info could come from many sources, traditional, networks, web searches all of that. My guess is this is already being done. (Normally I would do a search and confirm this..)I have someone who does technical work for me on the side that is quite knowledgeable. Anytime I can’t find the answer to something (or don’t have the time to do so) I fork the question to that person who comes up with the answer for me either based on what he knows, research he does, or people he asks (on, for example, a sysadmin list). He gets paid for this on a monthly basis. As a general rule I really don’t like to ask others for help and I have never done so [1] and feel that all the effort that I have put in to not asking and figuring things out on my own has definitely given me a leg up. No question about that. However there are cases where it makes sense to do that.Interestingly enough sometimes the act of just formulating the question for that person (this happens very frequently) tells me exactly what I need to do to find the answer myself.[1] Having started in business back when there were no “manuals” on what I did and literally nobody to ask you had to figure it out with whatever slim materials were available. And by trial and error.

        1. Anne Libby

          Yes, agree 100%I’ve been talking over this topic more recently with a family member who’s an academic librarian. Over the years she has helped with with research from time to time.When I was in banking, we had a staffed library at HQ, probably used less as a place than for the people who could track things down for you. I might guess that they no longer have this function…but if anything, it’s more necessary.That person with a degree in Library Sciences is pretty valuable.

          1. LE

            Exactly It is more necessary. If they don’t have this, one reason my be that the people at the top of the organization have admin assistants and staff whose job it is to take care of details like that for them. So they don’t seat of the pants understand the time wasted and the frustration experienced by ordinary employees from day to day.

        2. Jon

          This role is called a “librarian”, or “researcher” and many corporations have them, especially law and medical firms.

      4. Nick Ambrose

        Wouldnt it be awesome if Google Search had a “Was this helpful” checkbox next to search results so that they could modify the results of future searches based on aggregated responses from people with same/similar search terms ?

        1. Anne Libby

          Oh, yes! Like when you’re searching for “management” and you get “anger management.”

          1. Donnie mao

            You basically don’t know how show to search. Did you work with computers bef

  3. Seenator

    if you open source it, then the person needing that open source script has to spend sometime searching for it. and probably not knowing if something is out there.Google Refine (… )is an example that comes often to mind in cleaning up data and refining it but the use case is always just a little off where Google refine doesnt work perfectly.

  4. William Mougayar

    Being bored from mundane tasks- is that an ADD trait? I find I’m often bored with tasks that don’t challenge me.

    1. fredwilson

      yes it is. and it creates a lot of mental strain on me. very strange the effect it has on me.

      1. falicon

        I “code to forget” a lot…this is partially why I ‘appear’ unfocused at times to outside parties πŸ™‚

    2. Richard

      People talk about how important it is to deal with stress. My take is that Boredom is far worse the silent killer.

      1. William Mougayar

        But for me it’s very temporary and short, sometimes amusing to notice. Pushing reset is relatively easy.

        1. awaldstein

          I’m with you on this.There is stuff in business each and every day that part of the solution is just moving stuff.Part of the game.Focus and getting it done is the answer to most everything.

          1. Chimpwithcans

            This is so timely for me. I just had a real boredom / Shawshank Redemption “Cats crawlin up trees” moment. I took myself outside, re-grouped and came back to grind out the work over the next hour. Focus Focus Focus…..boredom……re-focus and get it done!

    3. Barry Nolan

      I wonder if all the digital distractions in our life accentuate ADD traits.

      1. William Mougayar

        Yes. Boredom by a thousand bits πŸ˜‰

    4. LE

      I will add to this that a big factor is whether you can do the task on autopilot and get into a zone or not. (And the degree of physical exertion of an unproductive type).Some tasks allow you to do something mundane but be in a zone because they are so easy you are almost hypnotized and before you know it you are done. And example of this might be when I was in high school and used to type invoices for my dad on an IBM Selectric (loved the sound of that). I could just sit there and be in a zone. Otoh I hated to take inventory in the warehouse. Boring work that you couldn’t be in a zone because you always had to be thinking… but thinking in a non challenging way.Likewise a very stressful mundane task that I would suspect most people don’t like is cleaning out a room. Why? Because you not only have to move in an unproductive way (bending, picking up, looking at) but more importantly you have to make decisions “what do I keep what should I throw out”. That is extremely, for some people, stressful. [1][1] This relates to part of my theory on why some people are pack rats or hoarders. It’s extremely stressful to decide what to keep and what to throw out. My solution for family members is simply to offer to move everything to a storage facility and not throw anything out. That’s what I did when I moved my office a few years ago. To much work to decide what to keep and what to throw out. So I essentially, with few exceptions, rented a truck and put just about everything in storage. Save a ton of work and stress over disposing of old records and gadgets.

    1. fredwilson

      yeah, that was referenced in the replies to my tweetstormit’s great

  5. Bobur

    It’d be cool to have a one go-to place for such open source projects. People can share their work and get rewarded. Organised, easy to find and reliable. Or is Googling always going to be better?!

    1. Vasudev Ram

      Github, Bitbucket, SourceForge, DZone are some such places.Most of them have a site search feature.

  6. pointsnfigures

    awesome reply…I hate doing mundane tasks as well. but, you have to do the mundane ones to get to the fun ones sometimes.

  7. Richard


  8. Barry Nolan

    Do you miss coding?

    1. fredwilson

      A little bit

      1. Vasudev Ram

        Learn Python on the side. Pros: 1. The basics are easy. It’s one of the most English-like and hence high level languages. That’s why they call it “executable pseudocode”. 2. They are many tools nowadays that allow interfacing between Python and Excel, or writing Excel scripts in Python. DataNitro, pyxll, etc. 3. Highly productive language.Note: I’m probably biased some, as a Python guy, but a lot of this can be verified.

      2. LE

        Fred, as good as sex. Or having your team win a game. Difference is you get a benefit from what you create. Can you say that after your team wins a game?

  9. sigmaalgebra

    Spreadsheet scripts and macros? You havemy sympathy.My world of work on a computer has me do,yes, some things just once or a few timesbut otherwise, especially for the moreimportant work, some things a few dozen toa few thousand times.So, as a general principle of computerusage and application architecture, I want to be able to drive softwarewith scripts. So, right, since softwarewith graphical user interfaces (GUIs) arerelatively difficult to drive withscripts, I generally I don’t like GUIs andprefer interfaces of command lines andfiles of text easy to parse.So, with this applicationarchitecture, long ago I gave up onspreadsheets — for programming withscripts and macros, the spreadsheetsoftware I had was just too darneddifficult to program; the programmingmodel of spreadsheets sucked.So, for spreadsheet type things, usually Ido something with text and scriptsinstead. Here commonly I exploit myfavorite text editor which has a nicemacro language, a nice version of MikeCowlishaw’s elegant Rexx. That texteditor is by far my most important tooland will have to be torn from my cold,dead fingers.In particular, to me spreadsheets havesuch an awful programming model that Ihave to doubt if open source spreadsheetmacros would get much usage. Maybe justsome notes on how to write macros wouldget more attention.For my editor, I have 175 macros I like alot, and I write new ones, that I mightuse only once or on only one day,frequently. E.g., take some text, run mymacro TOKENIZE to put one token, e.g., word, per line. Then use theeditor’s command SORT to sort the lines.Then use my macro UNIQUELN delete theduplicate lines and keep just the unique ones. Then use the editor’s wild characters and wildstrings to wash and dry theresulting lines.There’s macro GPTOK for global puttoken which has a positive integerargument n and copies to thesystem clipboard token n from thecurrent line of the file being edited.Yup, for most work, I like text, tokens,macros, scripts, and command lines. GUIs?Only for work that really can’t beautomated and where GUIs are effective.My latest editor macro is my largest ever(some scripts I’ve written are larger)~1000 lines long, counting comments, andcurrently my computer is running thatmacro about 10,000 times. I don’t want todo that by hand!

  10. Andrew Kennedy

    This is great. Answers the question you asked. Stick it in code pen or other next time.

  11. JimHirshfield

    In sales we do this with templated emails and replies to frequent buyer objections. Craft the message, then refine it…and get everyone on the sales team answering buyer questions accurately and satisfactorily.

    1. fredwilson

      Have you ever cut and pasted the wrong answer?

      1. JimHirshfield

        Nope. Because as you inferred with “cut & paste”, it isn’t 100% analogous to scripts in that it’s not a one-step push of the button. The sales templates are more like libraries of answers or most effective emails. So, sometimes the text is injected into the email (by gmail “canned responses” or a 3rd party add-in) and other times the text is just in a gDoc. Important point is to use these snippets and edit them to fit context and recipient. This is NOT mail merge bulk shit.

        1. awaldstein

          You answered my question above.

        2. LE

          I’ve found it’s helpful when using “canned” response to have a header to the “canned” response that looks like it was personally sent.So if the canned response says:”Disqus is the best advertising solutions. Here’s why….”Then the “header” to that, also canned says:”Hi Steve,The below information should help you with understanding why Disqus will work for you. Let me know if you have any questions!- Dave”—begin canned response——end canned response—Idea being that even though the info presented is canned the header makes it (by juxtaposition to the canned response) look like a human actually gave some thought and made an actual decision on what to send. Best of course is to then personalize the header a bit as well if possible even if just adding a word or two. Other case would be to write the canned response with language that made it seem less likely to be a canned response.

          1. JimHirshfield

            Yes. Great tip.

          2. LE

            That’s what the mohel said.

          3. JimHirshfield

            Tell him to bring his brisket.

      2. LE

        I wrote some shell scripts that I can trigger from the command line for templated things. [1] Much quicker than using an email client. Greatly reduces the chance of pilot error as you describe as well. Not difficult to do at all. And plenty of fun no question about that. It’s a total zone. And the feeling of solving a problem and making something easier is as good as sex.Further with something similar you could do the following.1. Have lists of email addresses and names of CEO’s, of all your investments from 2009. <— Example for illustration purposes2. Have a letter that says “Hard to believe it’s been 5 years!” 3. Have an option to change the reply address for any email. (So any replies and backscatter don’t clog up your normal email box). If you want to that is.4. Have an option to add something extra to the form letter (if desired)5. From the command line choose, say, list #1 and combine it with #2-4….and so on this is like cooking there are many things you can do since you are writing it from scratch.Letters are just setup in text files. Want to change the form letter? Just edit it. Want to add another form letter? Just add a menu item to the shell script.Point being this is quicker than using an email client or a dedicated program to do the same. Reason is that you can customize it and, this is important, reduce it down to just the keystrokes that are relevant to what task email wise you are trying to accomplish.(We use this type of thing for credit card declines (as one example) works much faster than even any email autocomplete…))[1] And I wouldn’t open source any of this because the time to make it sanded and ready would be way greater than the rough form that works very well for the particular purpose it’s used for.

    2. Barry Nolan

      Yesware is a great automation for this

      1. JimHirshfield

        Yes, I’ve seen it. I’ve used a few of these types of email automation, tracking tools and I generally don’t like them.

      2. SubstrateUndertow

        “Yesware” strikes we as an amusing name because it conjures up visions of an automated “Yesman”:-)

    3. awaldstein

      There has never been a templated email that unpersonalized was anything but just that.The key is having the right answers but communicating personally.

      1. JimHirshfield

        No argument there. See my reply to Fred for more clarity on my use case.#notmailmerge #notmassmail

        1. awaldstein

          The very best salespeople are brilliant communicators, marketers who understand that their job is to influence the sense of timing and urgency to act in their customers.

          1. JimHirshfield

            Yes, but without being pushy. Fabricated timing and urgency can backfire and taint a relationship.

          2. awaldstein

            pushy is just bullshit in any realm.but I believe and hire on the premise that the thing that truly great sales people do is manage customer urgency.if they don’t do that they don’t close and honestly, cust service can answer questions and marketing can provide information.closing is what sales is actually about. sure–not always possible but that is what we pay people

          3. JimHirshfield

            Yes. Close. A.B.C.

          4. awaldstein

            Many reasons why this doesn’t happen that may or may not be individually related.This is why movie execs, salespeople and marketers all go the office one day and don’t have a job.No matter how good they are.

          5. SubstrateUndertow

            Surly a soft/slower-close get more return business than a hard/faster-close ???

          6. awaldstein

            Never said anything about hard or pushy.I said that salespeople’s job is to uncover the customer sense of urgency to act.If all you do is wait for the customer you don’t need sales. And you most certainly do.

          7. SubstrateUndertow

            I guess sales professionalism is all in the subtly and finesse with which you stimulate that urgency.

          8. awaldstein


          9. Donald E. Foss

            With too many soft/slow closes, you may not have a business for the customer to return to.In addition to that, as Arnold noted above, pushy = BS in my experience. It’s called the Art of the Close for a reason. Sales must be bold, sincere and totally truthful, while not being pushy or wimping out if the deal hits a snag or the customer pushes back. I’ve always sold on value, not price, which means I rarely make pricing concessions and avoid devaluing or commoditizing my products.

          10. Donald E. Foss

            You are so correct about this Arnold. It’s something I understood instinctively, and when I examined closely why leads moved all the way through the funnel but didn’t close. Making sure potential sales staff understand that fundamental is now a key step in my hiring process.

          11. awaldstein

            So great to hear from you my friend!I’ve held this as a golden given forever.Really true for everyone raising dollars as well. How do you create urgency to get the $$ not committed but transferred.This is all about selling the future in that case and you as architect of it.Call me one of these days.

          12. Donald E. Foss

            Fund raising is just another form of sales, and honestly, it reminds me of my consulting days. You are selling your vision, your and your team’s skills and using confidence as the key to getting cash wired to you.Beyond that, fund raising is also like sales in that you need to research your targets, qualify them, understand their needs, strategy, goals and how they measure success. If those don’t align, then move on because the customer (investor) isn’t going to buy your vision no matter how well you articulate it.I’ll get around to calling you one of these days, however I’d prefer conversation over dinner and wine.

          13. awaldstein

            Yes and–completely different.It is true though that a litmus test for possible success is proving that you can raise capital.It is also true that raising capital in no way proves that you individually have what it takes to build the company that can win.Ambiguity is correct in this case from my experience.

          14. LE

            Sales is a very broad topic. Sales technique in one situation won’t necessarily apply in another situation. What works with an old lady in a row house buying home improvements wouldn’t work with the buyer at Whole Foods or the University of Pennsylvania bookstore.I’ve never read any sales books and never intend to (I’ve been selling my entire life and do a good job with what I’ve learned I have no interest in polluting my brain with someone else’s “technique”) but I can always tell a salesman that has read a book and is following some particular path to closing a deal. I ran into these people right out of college.At least when I sling bullshit I do it in a creative manner which limits setting off any alarms. I put effort into creating the back story to make it believable. Takes a bit more effort of course but it’s part of the is manage customer urgencyUrgency as a topic is very interesting. Some time ago my ex wife owned an advertising book. There was a similar competitor that used shorter deadlines and urgency to close sales that seemed to help them greatly. For example my x did 2 books a year and the close competitor did, let’s call it, 6 books a year. They definitely benefited by the fact that the deadline means “you will miss the book coming out” (so shit or get off the pot) and overall my view was it worked very well in terms of getting people to make decisions and deals closed. It carried through their entire organization. The (real) urgency pervaded enough to because a self fulfilling prophecy. Everyone believe it. My feeling is if acted correctly you can do this if everyone believes and buys into the urgency. (Sales incentives help with this obviously it becomes a squeaky wheel thing.0

          15. LE

            True but it depends on the relationship. In some sales situations there is no expectation on either side of future business or maintaining a relationship.For example in the dog eat dog world of car sales I don’t really care what the salesman thinks of me that much (although I have found exceptions to even that “rule”). So I can be “less fair” in my dealings because of the risk of being perceived as not playing fair. Not to mention that the other side isn’t a saint typically.I always evaluate at the start what the relationship is as a generality and that typically will change how I deal with someone and how hard I bargain and what I say and do as a result.The best is when you can play a salesman and make them drool. Back in the day I used to dangle non existent orders to salesman to quote on for things that I regularly purchased that I never intended to purchase at all (that particular time). The salesman would quote me a price and of course wouldn’t get the order because there was no order. Later when they asked “hey what ever happened to the quote we gave you on X?” I would say “oh … got a better price (or better product whatever) from your competitor” and in so many words “better luck next time”.One thing I practically never do (and I think is a big mistake) is to call a salesman on his “fabricated timing”. I always make them think I buy their stupid bullshit.

    4. sigmaalgebra

      Disqus detail: Firefox 27.0.1 hangs at the end ofFred’s post and won’t display the Disqus contentif there is no Disqus cookie and Firefox optionsare set so that Firefox is not accepting morecookies. Apparently to display the comments,Disqus want to use cookies and otherwisehangs.I discovered that Firefox 27.0.1 always starts up accepting cookies. So, to keep down hugelists of cookies and sites where Firefox is accepting cookies, start an instance of Firefox,use the check boxes to block cookies, minimizethat instance, and use other instances. That is,apparently the Firefox program runs with, maybe,several windows but as only one running program,and that running program has only one collectionof options.

      1. JimHirshfield

        I’ll be frank with you, I value the feedback, but it’s technically over my head.I will point our Product Support team to your comment.In the future, feel free to email me (jim@) or hit up Product Support to get directly into our support queue.

  12. Sebastian Wain

    I think the issue is not having the right scripting environment ready to be used. Nowadays you can lose more time setting and understanding the environment for scripting Google Spreadsheets than developing the script itself.With the right environment/scripting language probably you can solve the issue in less than 15 minutes.

    1. Vasudev Ram

      I think that should only be an issue if you only plan to develop just one or a few scripts. If you plan to develop many (over time), the setup and understanding time is amortized over a lot scripts and the time you save by using them instead of doing those tasks manually.

  13. Kasi Viswanathan Agilandam

    Boredom is the triggering point of innovation and invention… so to answer your question….Boredom is a blessing.

    1. Tom Labus

      Malcolm Gladwell agrees with you big time about boredom

      1. Donald E. Foss

        Yup, I’ve read his thoughts on the boredom/innovation cycle and have a difficult time disagreeing with him on any substantive points. It’s similar to the Freakanomics book–I have a hard time arguing against their hypothesis that legalized abortion caused the beginning of a continuing drop in crime rates 18-20 years later. While recognizing it’s benefits and respecting a woman’s right to decide what happens to her body, I am not required to like it.

        1. Tom Labus

          They are both always great reads

    2. Donald E. Foss

      They also say that war causes huge amounts of innovation and discovery, but I wouldn’t call that an even trade.

      1. pointsnfigures

        Agree, that’s the broken window theory of economics.

      2. Kasi Viswanathan Agilandam

        It is not a ‘say’….it is true.Yet another factor that drives innovation “Fear”.The fear of being attacked or encroached gives raise to adrenaline pumping to innovate something to “protect one-self” or “attack the potential attacker”.Yes… 75% of the innovation happens to tackle war and then gets adopted to common man use.I don’t like it either … but it is a fact and we cannot say “I never heard it or seen it”.

        1. Donald E. Foss

          I don’t disagree that it’s a fact, I simply maintain that it is not an even trade, nor to I have to like that it’s true. I’d prefer that our innovation pace/cycle could be as fast without the calamity and price of war.

  14. Ro Gupta

    What you and Francesca describe is more or less what I always envisioned as the opportunity for IFTTT: a) Empower mainstream users — not just CS types — to automate mundane/recurring tasks, b) Let them pay it forward by publishing their recipes for the global community to use.

  15. ShanaC

    I should open source more for the same reason.It is hard to know, however if anyone is going to do what you do.Annoying, ain’t it?

    1. falicon

      In a lot of ways, you have to think about it like blogging…you are *hoping* for outside readers/users, but at the very least your are writing for your future self (and maybe your kids to some day review and laugh about). πŸ˜‰

  16. Semil Shah

    Kind of reminds me of IFTTT, where the ideas are you can automate via recipes but then share those recipes broadly. I’ve done this for my specific reading list for tech/startups and have noticed many people have taken these for their own over the years (you can see the “used” count in each recipe)

    1. mia phillip


  17. John Revay

    My first observation is…what is a well healed, famous VC like Fred doing cleaning up a spread sheet…..But over time, after following Fred for last 3+ years…that is one of the things I most admire of him….as it seems like he is not afraid to get his hands dirty now and then….

    1. Vasudev Ram

      That getting his hands dirty is actually a strength for his line of work. He’s said it before here a few times – he tries out a lot of the tech of the startups they invest in, and other tech too, which I guess gives him a better feel / instinct for what works, what is user-friendly, etc. (things techies often overlook).Reminds me of a line I read in a computer book, long back:”C is a version of Pascal that is not afraid to get its hands dirty.”I had learnt Pascal before that (early college days); reading that line made me learn C (and UNIX), and I worked on both a lot from then on.

      1. Donald E. Foss

        I hadn’t heard that line before, but it’s totally true, and I love it! You could also say “Assembly language is a version of C that is not afraid to get its hands really dirty.”Secondly, while I was good at programming in C in the 80’s (and assembly on 3 CPU architectures, Pascal, Fortran, Cobol and several other obscure languages by today’s terms), I didn’t become an expert until the late 80’s/early 90’s when I was writing bug fixes for the 386BSD project (…, then switched to Linux in 1991/2 and writing serial and network card drivers. Why you may ask? Because I needed it to work better than it did. I was working to commercialize an early MMORPG and it didn’t work with the 32-port serial cards that I had, and the 16554 UART didn’t work correctly.I did not successfully commercialize the MMORPG, but I learned a lot trying to do that while at the same time as launching an ISP in 1994.Those were all learning experiences, due to my compulsion to make things work, or work better. What can I say?Now, many years later, I’m running a startup doing things nobody has thought of, or at least implemented. I still keep my hands dirty, even or especially as CEO. It helps keep me grounded in reality and avoid unrealistic expectations.

        1. Vasudev Ram

          >I hadn’t heard that line before, but it’s totally true, and I love it! You could also say “Assembly language is a version of C that is not afraid to get its hands really dirty.”Cool πŸ™‚ And that’s true, about assembly language. Done a bit of that too, as a hobby, earlier, on the 6502 and x86 CPUs.Interesting story about your work. Serial and network drivers are not easy, I guess.>assembly on 3 CPU architecturesWhat were they?>Now, many years later, I’m running a startup doing things nobody has thought of, or at least implemented.I checked out your company; the idea is interesting, and as you say, haven’t come across anything similar before. Not just performance of site loading but something more, tied to ROI. Had you come across Torbit? Not in the exact same space as you, but related – speeding up site performance. IIRC they were acquired by Walmart Labs after a few years of operation. They used Go, BTW – heard that from the founder, Josh Fraser.> I still keep my hands dirty, even or especially as CEO. It helps keep me grounded in reality and avoid unrealistic expectations.Absolutely, and is needed, really. I think a lot of the failures in software products are due to the lack of that.

          1. Donald E. Foss

            Hi Vasudev. I learned assembler concepts while writing a Zmodem protocol file transfer on 65xx 8-bit processors. After that I wrote lots of assembler code for Intel 80?XX, as well as ALC on ESA/390,I’m familiar with Torbit and their acquisition. Blue Triangle was around and in pure dev mode then. While WalMart Labs acquired them, they weren’t the only bidder, which was very good for Torbit. I have worked with and knew most of the key players up to Gene Wojciechowski. Torbit didn’t have many customers but was in the right place at the right time. Blue Triangle goes well beyond their initial concept. If you look at our partner page, you’ll see that we partner with those who speed up sites and focus on our core competencies.

          2. Vasudev Ram

            Thanks for the replies, Donald. Seems like a good strategy. All the best for Blue Triangle.

  18. David A. Frankel

    Actually, you would think that we are moving in a direction where an exercise like this should yield a much different, smarter result: where Excel (or your spreadsheet of choice) can proactively identify that you are doing a repeatable task and direct you to a crowdsourced repository of scripts that could solve the problem for you. I have to imagine that there is an audience of people in the world that either have done a similar task and automated it, or who could write a script for it in a much shorter time than you could.

    1. John McGrath

      Or smarter yet, where Excel (or whatever) identifies that you’re doing something robotic, and writes the script itself.btw, David, been a while–we went to high school together! Hope you’re well πŸ™‚

      1. LE

        Ask yourself whether if Excel did this they would sell more copies of Excel. This becomes the classic “if a car maker puts x into the car will it increase revenue?”. Meaning nobody decides to buy a car based on it having some small extra feature that is used by a minority of people.Look at all the things that are screwy and aggravating about Windows in general. They’ve got much better things to spend their time on that they don’t.

        1. David A. Frankel

          I agree with your point, but to use your analogy, I think we are talking about Teslas vs. traditional cars. I believe we are headed toward a shift in how people view the components of their daily workflow and what they expect from them. Smartphones have gotten most people to expect interactivity and connectivity in applications. If MSFT can’t find the time to do it with Office (and I think they are, but slowly), someone else will.

      2. David A. Frankel

        John, of course I knew it was you — from your avatar it looks like you haven’t changed a bit! πŸ™‚ Hope you are well too.

  19. Teren Botham

    Tweeting is therapy ?

    1. Donald E. Foss

      Totally therapeutic! It lets me let my mind drift away from the current problem I’m solving, laugh or learn something new, let my subconscious work on it, then come back 20 minutes later with a solution.

  20. Jim Bumbulsky

    This may seem like a terrible question to ask here, but I deal with many circumstances like this daily. Where is the best place to go to learn “how to script”?

    1. falicon

      depends on how you learn best (books; doing; talking; etc)…but (a USV portfolio company) is a good place to start πŸ˜‰

      1. Jim Bumbulsky

        I have done some stuff on there and have found it valuable. However, I am not a programer in my day-to-day, and always find it hard to deeply invest when many of the concepts are not affecting my job.I am working through a book now on Rails, but again, I wish there were more direct links to application.

        1. falicon

          I’ve found the best motivation and way to learn a side thing is to pick a specific project/goal and just focus on getting that done…don’t think about it as ‘learning to code’ but rather, learning enough code to get ‘X’ done…before you know it you’ll just ‘understand’ the code bits.At it’s core, all coding is a set of logical steps (and syntax)…so if you can break something down into it’s core steps, you can program it.

          1. LE

            and way to learn a side thing is to pick a specific project/goal and just focus on getting that done…don’t think about it as ‘learning to code’ but rather, learning enough code to get ‘X’ done…before you know it you’ll just ‘understand’ the code bits.Exactly! And perhaps that’s one of my issues with codecademy … that you can’t really do that because there doesn’t appear to be a way to “random seek” the information that you need to get parts of a job done.For example my motivation for learning perl was being able to write some cgi’s to process old style web forms. So I needed to know enough to do that and simply bought the O’Reilly book and then a few other books and triangulated by way of those books the information specific to the problem at hand. And learned as a result which led to other solutions to problems. Same with learning HTML.Prior to that (in the 80’s) it was shell scripting on the Unix system that I bought where I wrote a job estimating system using “sh”, awk and sed. All from a few books that were available at the time. And the manuals that came with the system (all bound looseleaf). To restate, I’m not a programmer and don’t consider myself one.Last thing (a few years ago) that I did was learn php, mysql (lampy stuff) in order to wack together a system to track sales leads but even more importantly to actually keep a database of code and examples of things that I learned programming wise. That was super helpful (augments the many thousand page wiki that serves the same purpose that I use and frequently add to). Anytime I figure out the syntax that works I note it in the database which is fully searchable. That way I don’t have to slog through the examples on the web. [1](Small example attached of the php “learn” database…)[1] I used to actually do the same thing with 3×5 cards back in the day.

          2. falicon

            I actually have no opinion on codeacademy (never used it or even dug into it personally)…I only mentioned it as a top option here because it’s directly related to the question AND something the bartender here has an interest in patrons knowing about πŸ˜‰

          3. LE

            Well you know the proverbial case where someone wants to know what book to buy on “x” and they ask someone who knows “x” to suggest one. In the case of books I could go to a store take a look and say “yes this is a good book on x I would buy it”.I’d be curious if you get a chance whether from your perspective codecademy is a) good for someone like you and b) good for someone who knows nothing. My feeling is for “b” it’s not at least the way my brain works as a sub “prosumer” coder. I say “sub” because I’m not one of those people who really gives a shit if something is ritually correct or not I just care if in the end it gets the job done that I want to get done for me. I’ve run into many people who concentrate more on the technical aspects and the “elegant” solutions to things and lose track of the bigger picture of achieving a particular goal.

      2. LE

        I’ve checked out codecademy in the past and I just looked at it again.I simply don’t like that approach to learning (I just checked php which I know enough to “do something of value for me”). Something about the presentation and the gui I don’t like.It doesn’t surprise me that your brain thinks codecademy rocks. You are a programmer but the net that codecademy, from what I understand, is trying to cast, is over people with a different brain type.

  21. PrometheeFeu

    Open sourcing a script you wrote to solve your problem is usually not helpful. Most likely, your script will be a quick and dirty solution to your problem and useless to anyone else. Writing readable and reusable code takes work and reflection. Are you willing to spend hours on this? (I mean hours considering what interface will make your code reusable on top of the work needed to make your code work)But for myself, I always do such tasks in a programmable environment. The python REPL, vim or even just the unix CLI mean I dont have to do repetitive things.

  22. Kevin Hill

    Egh, you’ll do less good than you think as there needs to be a way for you to find out if a given data set has a pre-made processing script with a high degree of certainty. Otherwise you face the choice of ‘search for a script or write a script or do it by hand.’ That doesn’t solve much.Instead, I think you should almost always script because you are building human capital in adding extra training on writing short data-munging scripts. More selfish, but same outcome.

  23. bsoist

    I always choose to script something like that. If I end up with a few extra minutes, I’ll try to generalize it a touch for open source and share it, with appropriate warnings that it was designed for a very specific purpose. At the very least, it could be a head start for someone who has a similar problem to solve later. Maybe modifying my solution slightly will be faster than you writing your own or doing the cleanup manually.

  24. LE

    And I thought to myself that my current β€œscript or not” algorithm is a selfish one and I need to add another factor which is a modification of the 2nd tweet in the tweetstorm. It should be β€œif I or others are going to find ourselves doing this again.”Oh sure…you have time [1] to think like that. And if you thought like that you wouldn’t be where you are today [2] [3] I’ve always noted a correlation between “selfish” [4] and “success” in many people. So have you. Admit it. Maybe not in some young people but you’re going to tell me a guy like Mike Bloomberg is not a selfish person? Or Steve Jobs? Or Bill Gates (of days past at least). Apologies for my outlier examples but same is true on a smaller scale that I’ve definitely noted over the years..Look if you want to write a script because it’s fun to do and/or you want to open source it because it’s fun and it will make you feel good fine. But let me ask you this. How likely are you to take off in the middle of a work day and do a “fun” thing? It’s easy to justify anything as having “benefit” if you are at the top of the rational game.[1] Otoh if you’re a college student or someone starting out open sourcing has other benefits which don’t apply in your situation.[2] Most likely … I mean sure anything is possible now everyone can pull out the outlier examples of people that made it doing the same w/o knowing all those that didn’t….[3] Tell Gotham Gal you can’t do XYZ because you are spending time open sourcing because “You never know who will need to use it in the future and I’m a good guy who cares more about unknow people than I do about my family!”. (Shit I’m glad my dad wasn’t like that and made enough money to not be a burden on me now..)[4] A matter of degree of course everyone is selfish it’s not a 0 or a 1.

  25. LE

    So I was going through the sheet deleting stuff, moving stuff, and in general cleaning it up. It was super boring work. I got about half way through this mundane chore and was so bored that I decided to tweet about it to relieve the mental drain this chore was creating for me.You were just mad at your self because you made the wrong decision and in retrospect wished you had gone down the road of scripting. Maybe you should have just put on the headphones and listened to some music while doing this job.

  26. JustinHK

    Reminds me of these two classics: problem with automating to share is that you have to make it much more robust than when you automate for yourself (e.g. variables, commenting, input checking, etc.)

  27. LE

    For one thing open sourcing something means that you are going to have to spend way more time on creating the script or program than if you just jig it up for your own benefit and usage. No way you need to cover the same bases when writing some for only your own use vs. something that others will use. Not to mention the overhead time of posting it and putting up instructions and all of that.

  28. Donna Brewington White

    I love how the least selfish/most generous people are the most concerned about being selfish and ungenerous.

    1. stevewfindlay

      Combined with this Xkcd cartoon on automation ( and you’ve got the full picture…

  29. James Ferguson @kWIQly

    Post and comments are all standard response to Gigo:”How do we clean this mess?”Perhaps a better question for the future is how do we avoid this mess?A better export filter perhaps ?

  30. Amar

    We need a XKCD law.. something that postulates how deep a tech/geek heavy comment thread gets before someone references an XKCD cartoon.

  31. daryn

    It’s a fair thought, but as with software, there’s almost always an additional time cost to building something generic/flexible versus a quick hack. Not sure it’s always worth it, even if theoretically you have the potential to be saving humanity some hours in the long run.

  32. Kimberly Klemm

    I have to laugh……

  33. Santiago Uribe

    The other option is that someone my have solved the problem you had. There’s a good Add-On gallery for Google Sheets. Sometimes there’s a great answer waiting out there to be found.

  34. Jon

    Splunk can take spreadsheet or any text data in, then make it easy to clean and export. Yes I work for Splunk.

    1. Jon

      Oh yeah, the never-expiring free version will handle it for you. It’s limited to 500MB/day indexing, but it allows you to exceed that a few times a month with no lock-out.

  35. SubstrateUndertow

    We would all be in deep trouble with out that !

  36. Donna Brewington White

    Two thoughts:Optimism can seem like either a blessing or a curse.So can sanity.

  37. JLM

    .I think sanity is like a unicorn — a beautiful but mythical idea.The only thing that really counts is the degree of craziness.JLM.