1. 23

    At last, adulthood! Downside, we’re now at legal harvesting age. https://mlcalliance.org/all-about-lobster/lobster-101-reproduction-and-life-cycle/

    1. 3

      Mine is nice and simple. Using Bash, it shows date-time in white, then path in red. First line in my .bash_profile:

      PS1="[\d \t] \e[0;31m\w $ \e[m "
      

      Example output:

      [Mon Jun 17 11:52:27] ~/o19s/metric-plots $
      

      I have every new prompt in my shell print the current date/time, because I often run long jobs from the cli and its a nice little trick I have to check how long it ran.

      1. 5

        If you haters actually got what you were asking for, you would also hate that. Maybe just skip on over articles like these from now on instead of actively discouraging anyone from ever creating checklists, god forbid. You’re going to walk into the airline industry and go “No explanation why I should verify that the door is closed, quite uninteresting” and then fall out of the plane when you get up to get coffee. There’s a downvote button for a reason. You can downvote without shutting down all discussion about the article.

        Meta, perhaps we should have a tag for lists so that people who don’t like lists can avoid them. Personally I love lists, they are clear, efficient, and to the point. No dancing around the important stuff.

        1. 2

          Nobody’s shutting down discussion about the article, and nobody’s being an asshole except you. Some people are criticizing the form and content. Like people do on every article.

          If you haters actually got what you were asking for, you would also hate that.

          We have seen lists with explanations and people absolutely love them: https://lobste.rs/s/txtwkf/falsehoods_programmers_believe_about

          1. 2

            I didn’t ever claim you, or others were being an asshole. I did rightly claim that you hated articles like these, a hater is one who hates, not one who is an asshole. Sure you like lists with full explanations but I’d argue that’s an entirely different kind of article. It’s astronomically more laborious to make and I’d argue no more useful.

            Buildings do not move

            In Zürich, a 6200 ton building was moved by 60 meters to make way for railway tracks

            A single example or explanation of a failure case is not useful. This particular explanation is extremely misleading, and would take at least two paragraphs to sufficiently explore. A building moved 60 feet once, that’s definitely going to be the scenario I run into. The whole point of these is that providing a specific counterexample is not sufficient to show that you aren’t going to hit it. A trailer home can move very easily. A tiny home may be moved at will. Some people have addresses but do not have homes, but they will list themselves as living in a particular building that does not exist and then will move that building around wherever they happen to be. You can’t just avoid having to use your brains, and it’s an unreasonable burden to people who make attempts to have exhaustive exploration of things that can go wrong. The article you linked has a total of 10 examples. That’s not super useful.

          2. 1

            I don’t know who you are, but thank you so much for this comment. The paltry upvote I gave you was not enough.

          1. 21

            Just a list and no explanation, quite uninteresting.

            1. 8

              Hey, so thanks for the criticism (I think). This is the 4 year old party I was talking about. It’s a fun format of rants in a list. I agree it’s not for everyone. https://spaceninja.com/2015/12/07/falsehoods-programmers-believe/

              1. 8

                I think people have the same problem with every list of this genre: There’s no explanations and no suggestions.

                There are, implicitly, problems to avoid, but even that has limits, in that it assumes the programmer is trying to write the most generally applicable software, possible or otherwise. For example, from “Falsehoods programmers believe about time”: “The system clock will never be set to a time that is in the distant past or the far future”. Depending on the software, and how you define “the distant past or the far future”, you can assume this if you document it as a requirement. Kerberos does precisely this as part of its security model.

                So in treating these things uniformly as “falsehoods” these lists assume that engineering trade-offs don’t exist, or that making such trade-offs is incorrect somehow.

                1. 1

                  Well the statement that it will “never be set to a time in the distant past or the far future” is a falsehood. If Kerberos engineers had not considered this then their spec would have a gaping hole in it. So it sounds useful to me. The idea that the statement is carte blanche useless because in one extremely niche scenario you can as a working model assume that the time is not in the distant past or far future is pretty contrived. People will still violate the spec, you’ve just made it a scenario you don’t have to concern yourself with.

                  I do think lists of “Falsehoods” are “Brains not included”, you have to use your own mind and knowledge to consider how these scenarios may apply (or not apply), and that doesn’t mean they aren’t useful. For example in this article I noticed at least 3 things in our application that I hadn’t considered. Pretty useful stuff.

                  1. 1

                    The idea that the statement is carte blanche useless because in one extremely niche scenario you can as a working model assume that the time is not in the distant past or far future is pretty contrived.

                    I said the exact opposite: The statement isn’t completely true because of examples like Kerberos, so pretending that it’s necessarily a falsehood is wrong.

                    1. 0

                      I’m pretty sure you didn’t say the exact opposite, and I don’t even know what that means for this statement. Kerberos does nothing to protect you from getting distant past or future, it just means you are violating the spec by doing so.

                2. 4

                  Almost all of the “falsehoods programmers believe” articles share this problem, though: they’re just a long list of stuff labeled “this is wrong”, but with no explanation of why those things are wrong, or what someone should do instead. This makes them extremely unhelpful.

                  1. 4

                    I strongly disagree that they are unhelpful to everyone, though I do think they are less accessible to beginners. Some of these falsehoods don’t have a thing you can do instead. Some of them don’t have a good explanation as to why it is false. That doesn’t mean it’s not useful to know that it’s a potential pitfall when you hear it. Some of these you will do knowing they are a falsehood because there is no “good option”. In life we don’t always have a clear and obvious best option, but having a heuristic around risks is still useful.

                    https://github.com/kdeldycke/awesome-falsehood

                    1. 1

                      The typical list-of-bullet-points “falsehoods” article, though, doesn’t provide enough information for anyone to decide “this has no good option, I’ll pick the least worst based on tradeoffs”, because it doesn’t say why the things in its list are wrong. If people were doing comparative explanations of why certain assumptions cause problems, and going over the tradeoffs involved, that would be useful. But they’re not: they’re just posting a list of “this is wrong and no, I’m not telling you why or what you could learn about the problem domain to let you make better choices”. Many of them verge on, or simply are, pure self-congratulatory “I know more trivia about this than you do”.

                    2. 3

                      Well-structured articles of this type imply underlying situations and behaviors by the order in which elements are listed, so that if you’re following the list, you end up with a general understanding of the landscape being described. This one mimics the structure only shallowly, though: you don’t, by reading it, get an understanding of how search is actually used or what kinds of problems you run into (although search is a pretty diverse space & depending on your data set & your user base’s needs, completely different behaviors are appropriate, which makes it a poor fit for this kind of list).

                      I’m sort of tempted to write a different version of this list, keeping the “falsehoods programmers believe” format, to illustrate this point. When such a list is well-written, an intelligent reader (even one with no deep knowledge of the subject) ought to require no explanation for each point, because the order of the points has led them to update their mental model incrementally such that each point can be justified based on a generalization of the unstated logic behind the previous points.

                      This one doesn’t do that, but instead just sort of skips around. The points that are obvious to people outside of search are things like “users will not expect search to act like google” – in other words, sort-of-cheap-shots about end users that don’t necessarily apply outside general-audience systems & don’t really need to be said in the situations where they do apply. Other points (like “search is not a database”) are deeper & really do need to be said, but probably ought to be contextualized so that they’re understandable.

                      1. 1

                        Well-structured articles of this type imply underlying situations and behaviors by the order in which elements are listed, so that if you’re following the list, you end up with a general understanding of the landscape being described.

                        I’m not sure that I’d agree with that. Or, at least, I’d dispute how many “well-structured articles of this type” are in existence.

                        I’m sort of tempted to write a different version of this list, keeping the “falsehoods programmers believe” format, to illustrate this point. When such a list is well-written, an intelligent reader (even one with no deep knowledge of the subject) ought to require no explanation for each point

                        This reminds me of “well-written code doesn’t need documentation because it’s self-documenting”. Which is something that’s perhaps true in theory, but which I’ve always found to be false in practice.

                        A little while ago I tried taking a different approach to this sort of article, to show what it would look like: the “truths programmers should know” isn’t a list of bullet points, and does go into detail on the problem domain to explain what’s going on and why common assumptions about it might fail. I don’t see why other “falsehoods programmers believe” articles couldn’t be written the same way.

                        1. 3

                          I’d dispute how many “well-structured articles of this type” are in existence.

                          For sure, they’re a rarity. “Falsehoods programmers believe about names” does this, though.

                          This reminds me of “well-written code doesn’t need documentation because it’s self-documenting”. Which is something that’s perhaps true in theory, but which I’ve always found to be false in practice.

                          I wasn’t going for that take at all.

                          Communication isn’t really a matter of conveying meaning by encoding that meaning (since that kind of communication can only express trivial truths), but by creating an environment that constraints somebody’s existing world model in such a way that the only way to process the message produces a change to the model. A teacher isn’t telling a student a sequence of facts, but asking a question in such a way that answering the question requires them to independently reinvent the theory behind the answer, and a good teacher knows how to do this incrementally so that each discovery is low-effort.

                          In other words, this kind of article oughtn’t be a literal list of falsehoods so much as a tour through the intellectual space of the subject being described by way of iterative violations of successive models.

                          Doing this requires us to begin with an understanding of what the reader already thinks (in the case of names, that one can implement a name form as two input fields that take ascii text, or in the case of time, the idea of newtonian universal time.) Each ‘falsehood’ in the list causes the reader to transform his mental model of an appropriate implementation in a predictable way, and so the order is determined so that it leads the reader from the most obvious model to the most correct model with a minimum of effort on the part of the reader, while still making the reader actually determine both the reasoning & the solution themselves.

                          This is a hard thing to do with search, compared to names or time. Everybody with a CS degree was at one point asked to deal with name records in a naive way as part of some class assignment, & everybody except the sentinelese has basically imbibed newtonian time. Relatively few people think even shallowly about search implementations, so there aren’t obvious-but-false starting points that are easily identified: the points OP rejects are actually more nuanced than what J Random Hacker would probably come up with immediately. And, on the other side, there isn’t a maximally-flexible ending point: ultimately, you need completely different kinds of search systems for different types of data & different types of users (something management learned the hard way when they tried to force patents, trademarks, chemical, and scholarly journals to all use the same underlying search engine!)

                    3. 4

                      That there’s an equal, large number of upvotes for the article and your comment is itself interesting. Does that mean the content was interesting to half with others wanting different style? Or interesting to most of them who then agreed that it could be better after seeing your comment?

                      If anything, it reminds me of the old strategy of having high-level points people can optionally drill down into. They expand, link, pop stuff up, whatever. Some people also did two versions of an article: a short one (eg executive summary) and long one (full details).

                      1. 5

                        Agreed. I’d rather have a list of only five items with a thorough discussion about why this is, than a way too long and boring list that I’m not going to dig through anyway.

                        1. 4

                          If you find it uninteresting then you possibly aren’t in the step of implementing or pushing against implementing search in your application. This is a healthy sane checklist of things to consider.

                          1. 8

                            If you’re pushing against search and bring up a “falsehood”, any good project manager would ask “why?” So having an explanation would help a lot.

                            1. 1

                              Sure, but this article would be a bajillion pages if they felt obligated to describe every one of these, many of which are obvious on a very small amount of reflection.

                              1. 1

                                Exactly. Just think about it and use your brain, don’t expect everything served on the silver plate. If you wanted this checklist with explanations, it would be at least 200 pages long book.

                        1. 7

                          The snow melted and it’s 60F. I’m going to be outside as much as possible. Bike ride, yard work, building something in my garage workshop with the garage door open, etc.

                          1. 5

                            With the door open? Living the life!

                            1. 2

                              Indeed!

                            2. 2

                              What kind of stuff do you build in your workshop? :)

                              1. 4

                                The usual - fixes for the house, minor woodworking projects that I play around with, crackpot inventions that won’t ever work. The last thing I made was an electric shoe sole brush that actuated when you stepped on it - it manages to clean the shoe and in the process spray debris everywhere :). That was the prototype and was too large to be practical (if that’s even possible). I’m going to try and make a smaller one tomorrow.

                                1. 1

                                  That’s a really cool idea. Care to share a photo with us? At least in my imagination you could probably contain the spray of debris with some partial enclosure.

                            1. 4

                              Ted Dzubia is a troll and his inflammatory and insulting articles have no business on this site. Also, given the worldwide popularity and utility of node, it’s safe to say he’s been proven wrong.

                              1. 2

                                Fun fact, he’s running for CA state senate now.

                                I briefly interacted with him online during the heyday of Uncov, which was a bit like N-gate (neither which ever reach the heights NTK used to scale).

                              1. 5

                                Howdy - recovering generative artist here [0]

                                Everything the artist says in this essay is correct. The lost connection between creator and observer hurts generative art. The art community is interested in emotional expression and connecting with the purpose of invoking something new and interesting. I wrote a long treatise about this some years back, attempting to coin the term Artificial Expression [1] (which is partially obsolete with the advent of deep learning but the overall point still stands).

                                Sometimes I wish it weren’t true. Sometimes I wished that technically beautiful stuff was appreciated by everyone without that pesky emotional connection, but it’s not. The same goes for technically proficient photo-realistic artwork. People say “That’s cool” and then move on to something they can actually bond with on another level.

                                But that’s important! It’s important because we’re humans and we suffer from the human condition. So the things that take us out of that plane and let us engulf ourselves in pure emotion is the best kind of art. We’re made a certain way genetically, culturally, and socially - and that’s the good stuff right there. Finding this for yourself as an artist is the most important thing. Once you get out of the rut of trite technicality and see the world for what it is, you’ll be better for it.

                                [0] Shameless plug for some of my stuff- http://binarymax.com/tree.html , http://binarymax.com/randriaan.html , https://max.io/jewels24.html , http://binarymax.com/backgammon/

                                [1] https://max.io/articles/theories-on-artificial-expression/

                                1. 1

                                  So the things that take us out of that plane and let us engulf ourselves in pure emotion is the best kind of art. We’re made a certain way genetically, culturally, and socially - and that’s the good stuff right there.

                                  Do you have any data to support sweeping generalizations like this? How can this theory explain things like Gothic architecture that were created over decades by groups of craftsmen who were focused on mastering and practicing technique? Many of the stone masons did not know what emotional impact their work would elicit. Isn’t it more likely that “people say ‘That’s cool’ and then move on” when what you’re showing them is only that interesting?

                                  1. 3

                                    I do not have access to a formal study that definitively defines captivating art. The accepted definition of art is communication of expression from a creator to an observer. I will take the opportunity to focus on your use of the term ‘craftsmen’. Craft is not art. Technically proficient craft is absolutely admired for what it is, but the lack of emotional connection or purposeful expression to forge that connection is why it differs from art.

                                    1. 1

                                      @binarymax, FYI, randriaan doesn’t seem to work in Firefox 63.0a1 (2018-07-09) (64-bit) on Windows.

                                      1. 1

                                        Hey thanks for the heads up - but I don’t have a Windows box so can’t debug. It works fine on my Firefox 61.0.1 (64-bit) in MacOS. Do you see any kind of error/warning in the console?

                                        1. 1

                                          Oh, it works if I click the link and open it in this tab. If I ctrl+click or third-button click to open it in a new tab, it doesn’t work, but then it does work when I ctrl+F5 to hard-refresh it.

                                  1. 3

                                    I really like the premise of this, and the choice of test and scenario. But I’m a bit disappointed that nobody was caught. Some of these cheats are pretty obvious (the numbers printed on a soda can - really?). Did the proctors even try to catch anyone?

                                    1. 4

                                      During the exam, we sought to further increase the stress and realism by walking occasionally among the student desks. We didn’t try all that hard to catch students, but that wasn’t the point.

                                      It sounds like it was a hands-on lab in the shape of a test. They weren’t testing the students’ ability to cheat; it was more to provoke discussion about how adversaries might consider cheating.

                                    1. 3

                                      Does this apply to (a) businesses with customers resident in California, (b) businesses incorporated in California with customers anywhere, or (c) businesses incorporated in California with customers resident in California?

                                      This seems tricky to do at the state level and should be federal…Similar to how GDPR was EU level.

                                      1. 4

                                        California has a long history of setting a higher (per-state) bar on things like vehicle emissions and mileage, forcing companies to either build two of everything (“49-state” cars) or follow the stricter set of rules for everything – usually they decide to do the latter. California’s lawmakers are probably hoping this will go the same way, since GDPR led the way.

                                        1. 2

                                          It seems they’re doing it to get the ball rolling so to speak. Europe, now California, who next?

                                        1. 7

                                          meta: misuse of the ‘video’ tag, which is used to note whether the linked page is video content (this is an article)

                                          1. 7

                                            Ah good ole FOaaS! This brings back memories, as one of my greatest useless internet accomplishments was getting the Shakespeare route added. https://news.ycombinator.com/item?id=6069514

                                            Nice little project, good example of a Go CLI. Thanks for sharing!

                                            1. 2

                                              Oh, so that was you. The Shakespeare one is among my top 10s

                                              Thank you for your words. I wasn’t sure whether I should share this project or not but I have gotten really good feedback for it on reddit and now here. Means a lot and it just made learning Go more fun.

                                            1. 2

                                              Starting a text classifier and named entity recognition

                                              1. 2

                                                What tech stack?

                                                I’ve used StanfordNLP’s NER on a project previously (we literally just needed NER and some date recognition, no sentiment/etc) and while we got it to work, the amount of work required to get it to a usable stage felt like overkill - it didn’t help that I had to delve back into java to get a usable http interface for it.

                                                1. 2

                                                  If your looking for something better and non-java (with a more permissive license) I recommend checking out spaCy - https://spacy.io

                                                  API is a pleasure to work with and lots of really good NER comes with the pretrained models.

                                                  1. 1

                                                    It was more of a general curiosity than a current requirement, but thanks for the reference.

                                                  2. 1

                                                    I am doing NER with spacy, classification with tensor flow. I am also experimenting with prodi.gy a tool that is developed by the same guys than spacy and offer an easy interface to worwith. For now I still have some issues with my own word vectors (4M words) I have some buffer overflows that I do not yet understand.

                                                1. 12

                                                  I would actually wait until GDPR to kick in before deleting Facebook, or any other online account for that matter, so that keeping user information even after a user has requested deletion is simply against the law.

                                                  1. 2

                                                    I don’t think the fines for violating GDPR are large enough to make Facebook think twice about ignoring it. Short of dissolving Facebook and seizing its assets under civil forfeiture, no civil or criminal penalty seems severe enough to force it to consider the public good.

                                                    1. 17

                                                      don’t think the fines for violating GDPR are large enough

                                                      Actually, they are very large:

                                                      Up to €20 million, or 4% of the worldwide annual revenue of the prior financial year, whichever is higher [0]

                                                      Based on 2017 revenue [1] of $40B, that’s $1.6 Billion Dollars

                                                      But it’s not just the fines. The blowback from the stock hit and shareholder loss, as well as cascading PR impact, is a high motivator too.

                                                      [0] https://www.gdpreu.org/compliance/fines-and-penalties/ [1] https://www.statista.com/statistics/277229/facebooks-annual-revenue-and-net-income/

                                                      1. 3

                                                        0.04 << 1 until you can quantify the cascading PR impact. It will not effect their day-to-day operations from an economic standpoint.

                                                        I would be curious to know how many people have actually taken action on their FB usage based on the recent CA news outbreak. I am willing to bet it’s miniscule.

                                                        1. 1

                                                          1.6 billion dollars vs deleting the data of one user who wants to leave?

                                                          1. 1

                                                            The fines are per distinct issue (not number of people affected). If Facebook breaches GDPR with multiple issues, then Facebook could get hit by a large percentage of their annual revenues.

                                                    1. 1

                                                      If you’re in England go to the Boring conference this weekend! https://boringconference.com/

                                                      1. 3

                                                        The offhand ‘even perl’ in there struck me as unfair. It reminds me that perl is actually pretty fast (specifically at startup, but my recollection was also that it runs quickly):

                                                        $ time for i in `seq 1 1000`; do perl < /dev/null; done
                                                        
                                                        real    0m2.786s
                                                        user    0m1.337s
                                                        sys     0m0.686s
                                                        
                                                        $ time for i in `seq 1 1000`; do python < /dev/null; done
                                                        
                                                        real    0m19.245s
                                                        user    0m9.329s
                                                        sys     0m4.860s
                                                        
                                                        $ time for i in `seq 1 1000`; do python3 < /dev/null; done
                                                        
                                                        real    0m48.840s
                                                        user    0m30.672s
                                                        sys     0m7.130s
                                                        
                                                        
                                                        1. 1

                                                          I can’t comment on how fast Perl is, but you are measuring the time taken to tear down here too.

                                                          The correct way would be to take the raw monotonic time immediately before invoking the VM, then inside the guest language immediately print it again and take the difference.

                                                          P.S. Wow Python3 is slower.

                                                          1. 2

                                                            but you are measuring the time taken to tear down here too.

                                                            I guess so? I’m not sure that’s a useful distinction.

                                                            The people wanting “faster startup” are also wanting “fast teardown”, because otherwise you’re running in some kind of daemon-mode and both times are moot.

                                                            1. 1

                                                              The people wanting “faster startup” are also wanting “fast teardown”

                                                              Yeah, I guess I agree that they should both be fast, but if we were measuring for real, I’d measure them separately.

                                                              1. 1

                                                                I’m not sure that’s a useful distinction.

                                                                If latency matters then it could be. If you’re spawning a process to handle network requests for example then the startup time affects latency but the teardown time doesn’t, unless the load gets too high.

                                                            2. 1

                                                              Hah before I read the comments I did the same thing! My results on a 2015 MBP - with only startup and teardown on an empty script, and I included node and ruby also:

                                                              ~/temp:$ time python2 empty.txt 
                                                              real    0m0.028s
                                                              user    0m0.016s
                                                              sys     0m0.008s
                                                              
                                                              ~/temp:$ time python3 empty.txt 
                                                              real    0m0.042s
                                                              user    0m0.030s
                                                              sys     0m0.009s
                                                              
                                                              ~/temp:$ time node empty.txt 
                                                              real    0m0.079s
                                                              user    0m0.059s
                                                              sys     0m0.018s
                                                              
                                                              ~/temp:$ time perl empty.txt 
                                                              real    0m0.011s
                                                              user    0m0.004s
                                                              sys     0m0.002s
                                                              
                                                              ~/temp:$ time ruby empty.txt 
                                                              real    0m0.096s
                                                              user    0m0.027s
                                                              sys     0m0.044s
                                                              
                                                              1. 2

                                                                Ruby can do a bit better if you don’t need gems (and it’s Python 3 here):

                                                                $ time for i in $(seq 1 1000); do ruby </dev/null; done
                                                                
                                                                real	0m31.612s
                                                                user	0m27.910s
                                                                sys	0m3.622s
                                                                
                                                                $ time for i in $(seq 1 1000); do ruby --disable-gems </dev/null; done
                                                                
                                                                real	0m4.117s
                                                                user	0m2.848s
                                                                sys	0m1.271s
                                                                
                                                                $ time for i in $(seq 1 1000); do perl </dev/null; done
                                                                
                                                                real	0m1.225s
                                                                user	0m0.920s
                                                                sys	0m0.294s
                                                                
                                                                $ time for i in $(seq 1 1000); do python </dev/null; done
                                                                
                                                                real	0m13.216s
                                                                user	0m10.916s
                                                                sys	0m2.275s
                                                                
                                                                1. 1

                                                                  So as long python3 is faster than ruby/node, we are ok…?

                                                              1. 25

                                                                9PM Friday night for a freely available community service. If you don’t hear it enough from us, your humble users, we once again thank you for maintaining Lobsters!

                                                                1. 13

                                                                  I appreciate your kind words. We do as much of our maintenance windows in the evenings and through the weekend as we can. Compared to the weekdays and daylight hours, more folk have signed off or are otherwise away from their keyboards. It lowers the impact for most of our users.

                                                                  We do have customers from all over the world–in addition to some keeping odd hours for reasons other than being in a different timezone–but working late or on the weekend when we need to bring machines down is the best option for the largest number of our users.

                                                                1. 1

                                                                  Why oh why did they have to call it “bionic”…were they trying to increase general nomenclature confusion?

                                                                  https://en.wikipedia.org/wiki/Bionic_%28software%29

                                                                  1. 4

                                                                    All the names that are actual words are already taken by someone somewhere. Naming something these days with a word is a guaranteed collision.

                                                                    1. 1

                                                                      See also Apple’s A11 Bionic processor (the one that’s in the iPhone X)

                                                                      1. -1

                                                                        Increasing general nomenclature confusion is kind of all the Ubuntu release code-names are good for, yes.

                                                                      1. 9

                                                                        I’m buying a fucking house. Today. Then I’m going to be cleaning it up. Moving in the next couple weeks.

                                                                        UPDATE - just came from the closing meeting: https://youtu.be/4-0utDrWa5w

                                                                        1. 3

                                                                          Congrats!

                                                                          1. 2

                                                                            Thanks!

                                                                        1. 6

                                                                          Putting the finishing touches on my talk for Haystack tomorrow. I will be enjoying that conference and also the Tom Tom Machine Learning conference day later in the week.

                                                                          Hoping the weather in Charlottesville is nice!