I found this pretty awkward, but rewarding, and have let it help guide my personal prioritization. In this case, having a few anecdotes was a lot more powerful than the dry aggregated data.
481 karma · joined June 22, 2010
I found this pretty awkward, but rewarding, and have let it help guide my personal prioritization. In this case, having a few anecdotes was a lot more powerful than the dry aggregated data.
Seriously, as a mostly C++/python/R developer, maven was a PITA to set up for experimenting with Java, and I still don't feel like I entirely understand the npm/bower/yarn ecosystem. (Will they install globally or locally? What permissions do I need? etc. etc.)
It's certainly not something that I can't learn, or something that's really all that complex, but it's another barrier to just messing around with a new project. It's better for the frequent-users than the infrequent.
As an infrequent user of Java/Javascript, I'm fine with just downloading a tarball or cloning a single all-inclusive repo, and dealing with it being harder to update or to push a change back to the source project.
Even in python, I just maintain a local global install and occasionally update numpy/scipy manually. I'm not saying it's the best setup, but it's pretty easy to download verson X.Y.Z, config/make/make install, and done.
I still don't see why dependency management has everyone so up in arms for Go, though. Especially for infrequent use, it's hard to beat just copying the lib into your source tree and re-fetching from git every now and then.
I'm in the Google NYC office, which occupies most of a building that's a full city block and 15 stories high (https://en.wikipedia.org/wiki/111_Eighth_Avenue) and that sits on top of a major subway station. We also have floors in a few of the neighboring buildings (Chelsea Market, etc.).
It seems to work really well. The density means that it's not that physically far to go to meet with another team, and that you hear what's going on with completely unrelated divisions.
I'm a little surprised that Silicon Valley overall has stuck with these relatively low-rise, sprawling campuses.
It's not like there's any dead time, for me at least, although it probably varies by industry. Back when I was in finance, we needed to be around whenever markets were open, if only to be able to run one-offs and answer questions for the traders.
In tech, there's always more to do. The bulk of the hard stuff isn't raw programming, it's doing the data analysis to figure out where problems are, trying to come up with experiments to run, documenting them so you don't repeat yourself six months later, and so on. On top of that, there's whiteboarding out ideas with people, teaching interns and more junior folks, meetings with aligned teams to share knowledge, manager-stuff (1:1s, planning), writing up docs (also to share knowledge), trying to learn how something works, etc.
I don't think I can manage more than a few hours of raw code time myself, but that's a pretty small slice of the things that need doing.
At a previous gig, I had done a lot of F#, and I think that's close to my personal sweet spot, but I'd have to use it frequently to keep it in my head. Go is small enough that I can load it into cache when I need it.
Sure, I could use something like Haskell, but then I'd have to worry about whether I'm accumulating a giant stack of thunks that'll blow up. go just works, and less of it will bit-rot than the comparable python script, thanks to at least some types.
This is why the SREs seem to be fans, e.g. https://talks.golang.org/2013/go-sreops.slide#1
In industry, all I've ever seen is Sybase, SQL Server, and MySQL (ok, technically Oracle). (My background is finance and technology.)
And meaningful variable names would be absolutely horrible for anyone trying to calculate with them or visually comprehend them. Energy = lorentzFactor * restMass * speedOfLight^2? You'd be writing all day to get anything done, and it would be hard to see the forest for the trees.
See also the brevity of notation in J, q, and APL, and the "tacit" style of J and "point-free" style of Haskell.
If we try to standardize, we'll end up with some awful compromise position that no one likes. For example, I still dislike the push for MKS units where CGS would work much better, such as E&M, plasma physics, and much of astrophysics.
None of those are legacy projects, but none of them are the primary focus of my work, either.
The results-processing I could do from anything (R, python), but scripting the run (running N random samples of something, doing simple cross-validation, manually hacking a pseudo-hierarchical model, etc.) is much easier when I have direct access to the C# API.
Since the codebase is always-evolving, the type checks of F# (as opposed to IronPython) are useful when going back to an old script.
I also just enjoy using F#. I'd been hoping to learn a ML-family language for years and working at a F#-friendly shop has let me do that.
For my purposes, kx got it entirely right: I can barely scratch my own nose with <2 GB of data. :)
df_subset = df['date buyer nwidgets'.split()]
That is far easier to type than the explicit list, with all its punctuation. Now, it's definitely weird that they did a `split(" ")` rather than just using the default, but the idea is the same.I do try to strip stuff like that out before I put it into a script, replacing it with the explicit list, but I'm never sure if that actually improves anything. It's not as if the explicit list is any easier to read.
Cite: ask any actual physicist. I hate to appeal to authority, but this is the view I was taught in grad school (PhD, UCB, 2001), and I have never spoken to anyone in physics or astrophysics who thought "relativistic mass" was helpful.
Photons have no mass, period. An ensemble of photons may have a non-zero invariant mass, but there's just no way in which it's correct to say a photon has a mass.
This has nothing to do with saying that you can't convert mass to energy. Electron-positron pair creation from ultra high energy gamma rays has been a known thing for a long time. Pulsars are thought to run partly off of pair creation off the magnetic field, etc.
There was a wave of excitement about doing numerics in Java around 2000ish, but it seems like everyone has since moved on.
Right now I'm mostly using modeless interactions, but every now and then it feels good to get the vim muscles moving.
If, for example, you want to aggregate a table using a list of supplied variable names, like if you wanted to abstract out some aggregation code, you need to descend into horrible quote/substitute/etc. hackery to make it work.