HNHacker News
TopNewBestAskShowJobs

MetaCosm

1,665 karma · joined August 6, 2011

[ my public key: https://keybase.io/robertmeta; my proof: https://keybase.io/robertmeta/sigs/UgvPNSEcpGbldHtQnQ_-c8SyRvBKjKTr_CLh0lpK0h0 ]
submissionscomments
MetaCosm··on 210 Zappos employees – 14% of the staff – take buyouts after CEO ultimatum
Yep, 3k -- and for the same reason. http://bigthink.com/inside-employees-minds/zappos-will-give-...
MetaCosm··on Go-bootstrap: Generates a lean and mean Go web project
Indeed, it is one of the best one page introduction for a project I have ever seen. Making me go back to some of my projects and redo the READMEs.
MetaCosm··on Microsoft makes its case for Windows 10
I don't think that would be terribly useful, as a bunch of concepts important to Windows the BSD core utilities would have no idea about. Registry, NTFS, etc.

Honestly, I find 'nix users unwilling to learn PowerShell the exact same as Windows user unwilling to learn a 'nix shell and core utilities.

PowerShell doesn't have SED -- but it has pipeline replacement.

  $ cat .\x.txt | %{$_ -replace "sed", "powershell"}
It also has ideas that are completely different... rather than plain text pipe, it has an object pipe, which lets you do stuff like:

  $ ps | sort company | ft ProcessName -groupby company
Which outputs your processes in table format grouped by company, like

  ...
   Company: Greenshot

  ProcessName
  -----------
  Greenshot

   Company: inkscape.org

  ProcessName
  -----------
  inkscape

   Company: IvoSoft

  ProcessName
  -----------
  ClassicStartMenu

   Company: Microsoft Corporation

  ProcessName
  -----------
  taskhostex
  conhost
  explorer
  ...
MetaCosm··on Plain Threads are the GOTO of todays computing [video]
Read this: http://www.lighterra.com/papers/exceptionsharmful/

There is a reason exceptions are often banned from environments and it isn't because they are awesome. They make code "exceptionally" (zing) hard to reason about.

MetaCosm··on Plain Threads are the GOTO of todays computing [video]
I am a bit confused, what is the relevance of that paper to the comment? Unless I misunderstood, the comment appeared to be about flow control issues of exceptions(hidden control flow and corrupt state), and I don't see that addressed in that paper.
MetaCosm··on FizzBuzz in Too Much Detail
I think HIS point was about premature abstraction and YAGNI. The article was just examples of terrible abstractions... they were intentionally terrible. The "generic solution" was an example of what NOT to do.

The article wasn't interview advice, it was advice about avoiding premature abstraction.

MetaCosm··on FizzBuzz in Too Much Detail
> I take serious issue with the "lesson" that this article is trying to teach at the end, which is that you should not generalize your particular problem into something abstract...

The problem, simply stated by Emil Persson is "Premature optimizations can be troublesome to revert, but premature generalizations are often near impossible."

Or, less delicately phrased by Chris Eric -- "Premature optimization, that's like a fart. Premature abstraction is like taking a dump on another developer's desk."

The root problem is -- you think you know all the possible use cases, you don't. You think you can see the future, you can't. Solve for what is in front of you -- abstract it when you need to for reuse.

As for Alan Kay and his fight against complexity (which is fair and nobel fight, great video on it: https://vimeo.com/82301919) -- he is arguing for the RIGHT abstractions from the perspective of DSLs ... with all the good (and very, very bad) that entails. That said, it is 7 levels of bullshit when you get down to "deploy to metal". Sure, it is a few hundred lines of code for a DSL and OMeta to render geometry -- but skip to 1:40:00 for the real scoop. It was incredibly hard to get to run with any level of performance on ACTUAL hardware in the REAL world. Alan Kay even puts forth that you should always keep the option of "rolling your own hardware", which sadly speaks to a disconnect with ACTUAL software development (and hardware development for that matter). There is no doubt he is a legend of CS (and brilliant), but I simply think his perspective is too far away from reality.

"Software does not run in a magic fairy aether powered by the fevered dreams of CS PhDs." -- Mike Acton (https://youtu.be/rX0ItVEVjHc)

MetaCosm··on FizzBuzz in Too Much Detail
Didn't make it to the end?
MetaCosm··on Maintainership transfer of uBlock: post mortem
Yeah, it is rather transparent he is trying to reap the rewards of others peoples effort to jack up his reputation.
MetaCosm··on Maintainership transfer of uBlock: post mortem
I have to assume he wasn't aware of the feature or simply acted hastily.
MetaCosm··on Maintainership transfer of uBlock: post mortem
I was going to ask, why didn't he convert it to an org and still maintain the tippy-top reins, but none of the day to day? Was it an ill-thought out rage-quit?
MetaCosm··on Zappos CEO Tony Hsieh: Adopt Holacracy Or Leave
It seems like using "glassfrog" or something equiv is required. Makes more sense when you look at a "glassfrog" example: https://glassfrog.holacracy.org/organizations/5
MetaCosm··on Four days of Go
> If you want to upgrade a third party library then you are expected to globally upgrade every user of it .... simply bumping the version of a widely used library can thus turn into a multi-month promotion worthy project!

The alternative is of course supporting dozens or hundreds of copies of a library and every possible commit hash of said library. I contracted at a python shop that had 81 versions of a single library in use all pinned at different versions. The reason I know this is that I had the great joy of dealing with upgrading all of them after a critical hole was not only discovered (the company knew about it for some time, but just didn't want to bother updating all those apps) but exploited... repeatedly.

> it's perhaps not surprising that you can import code from github .... but not specify which version you want. (unless that is now fixed?)

If by "fixed" you mean there are dozens of solutions to pin versions -- then yes. If you mean baked into the go tool, then no.

MetaCosm··on Using Go's interfaces at Clever – more than just easy collaboration
I think the point was implicit interfaces, that can actually be easily created before or after the implementation is finished.
MetaCosm··on Why, oh why, do those nutheads use vi? (2007)
Clewn for GDB.
MetaCosm··on Why, oh why, do those nutheads use vi? (2007)
> * in my IDE I can search for classnames, I can press ctrl-T to find who inherits from something, ctrl-alt-H to find who uses something etc...

>> -> I believe there are some plugins for but here i haven't seen anything good so far.

Language dependent, Go has "Oracle" for example, for finding callers, etc.

> * debug inside your IDE

>> -> good point. have to wait for Neovim for this - I believe. Installing current WIP version from neovim is on my todolist. ;)

Clewn.

> * auto refactor (I.E. extract method, move variable, extract class etc...)

>> -> good point. don't know any good plugin.

Language specific, Go has multiple and lots of people write small bits of script to do this -- but it is a place IDEs are far ahead of Vim.

> * showing when files are/aren't in version control and integrating version control so that you view history in your IDE.

>> -> if you need to do in the editor... there is plugin for that. However, i found git command line is usually find. and for more serious committing I use GitX (L).

Nerdtree & git-nerdtree.

MetaCosm··on Why, oh why, do those nutheads use vi? (2007)
Absolutely. That said, I think modern IDEs suffer from huge discoverability problems as well. The truth is, when you have thousands of features, discoverability had to give way to documentation.
MetaCosm··on Why, oh why, do those nutheads use vi? (2007)
Way more than half, everything except great refactoring support really.
MetaCosm··on Why, oh why, do those nutheads use vi? (2007)
There have been a lot of replies addressing a few of your concerns, I will attempt to hit all of them. The only one that really has any no great solution is the refactoring support.

> * no tabs

There actually are tabs, but they probably don't work the way you expect, they are closer to viewports or workspaces, but they are there. You can also use assorted plugins to improve tabs and/or emulate them.

> * no project structure

Not sure I understand this way -- no enforced structure? Neither to IDEs, no tree viewer -- there are bunches of tree based file viewers.

> * in my IDE (eclipse based or intellij based) I can ctrl-click a class/object/other to navigate into that object's definition

This is supported by the tags system in Vim, which depends on ctags. :tselect, C-], lots more -- this exists out of the box.

> * in my IDE I can search for classnames, I can press ctrl-T to find who inherits from something, ctrl-alt-H to find who uses something etc...

This obviously very specific to some language you have in your head, as many of those things don't make sense in some languages. That said, this is supported in various languages by various plugins (In Go, Oracle for example).

> when I find myself actually writing code, it's usually a line or two in each of several files (because modern programming paradigms tell us we should split code as much as possible), or modifying some copy pasted snippet I found on google - so navigation is extremely important even when editing.

Agreed, which is why Vim has so many ways from jump-to-def to jump-to-file to various smart plugins for rails and C and <X>.

> * auto-complete(with annotation to tell you what the function variables are)

Gobs of plugins do this for Vim -- normally language specific and they tend to work rather great.

> * debug inside your IDE

See Clewn, full gdb support integrated with vim.

> * run code-lint, auto-build on typing to detect errors, etc...

Vim has all of that, syntastic will show errors in the left bar as you type, setting things to autorun is trivial, all major languages already have this.

> * auto refactor (I.E. extract method, move variable, extract class etc...)

Language specific (as is your IDE's features, because to do requires understand the language), but this exists in limited form for Go and C++ -- and I am sure others. The level isn't up to major IDEs. That said, many of these things are easily scriptable in vim.

> * format all your files according to your pre-specified project guideline.

Tons of vim support for this, even supporting standard 3rd party like EditorConfig.

> * sharing you IDE configuration with other contributors

I think you will find far more vimrc files shared in the wild than any IDE.

> * showing when files are/aren't in version control and integrating version control so that you view history in your IDE.

Fugitive has great time travel features for flipping through versions of files and seeing differences. Use git-nerdtree to add git status to nerdtree.

MetaCosm··on How the THX Deep Note Creator Remade His Iconic Sound
Tip: Whatever sound/song you set your alarm to you will grow to hate.

Right now that Deep Note has good feeling by association, it will grow to be your nemesis as your alarm. Then movies will remind you of your alarm. :(

MetaCosm··on Athame – Full vim for bash and readline
http://www.vimperator.org/vimperator / http://www.vimperator.org/muttator
MetaCosm··on In praise of the mechanical keyboard
Yeah, it is still a big deal in a lot of environments (including home, making your signification other want to kill you is never good).

Years ago I switched from Cherry to Topre when that was a fancy import-only thing. Now, you can get Topre all over the place. I use the Novatouch TKL currently with dampeners (which come right in the box) -- which is office friendly, has MX compatible stems and is just an all around awesome keyboard.

MetaCosm··on Reddit CEO eliminates salary negotiations for new employees
Reddit might be a unique case because of "passion hires" -- like gaming studios. People will take far less than market rate if they are working on a project they are passionate about.

That said, I suspect "outside signaling" will become a huge thing. You tell your recruiter you need $X, your recruiter tells Reddit that you need $X, you get offered $X, how convenient for both you and Reddit! On the executive side, over dinner you discuss what it would take you to leave your current company -- of course, not negotiating, just two people talking -- and low and behold, the offer will be exactly what was discussed, of course, no negotiating.

MetaCosm··on Buffer: Composable Buffers for Go
There are a lot of ways to make arguments nicer in Go. The simple on is to just use a configuration struct (or anon struct) at that has nice names. But, for complex stuff, functional options as laid out by Dave Cheney: http://dave.cheney.net/2014/10/17/functional-options-for-fri... (video: https://www.youtube.com/watch?v=24lFtGHWxAQ)
MetaCosm··on Is the Unix shell ready for XML? (2006)
Sadly, deployment of Python (or Ruby, Perl, etc) is horrific pain at scale.

If you are automating a large organization -- Powershell has one massive edge, already deployed and able to be managed sanely via the domain management tools with a permission model around it.

Some large (30k+ machine) organizations actually have fairly decent sized research projects on best ways to automate deployments and system management. It ends up being far trickier than it appears on the surface and any tool blessed by MS and shipped by default has a huge edge. Powershell might not be great -- but it is already on the machine and the competition is batch files.

MetaCosm··on Code Keyboards
Additional benefit of the TKL: office friendly with included dampeners, first mechanical(ish) I feel non-rude wanting to use in a shared office environment.

Just realized I didn't mention the actual keyboard, too much inside baseball on this thread I guess -- you knew what I was talking about at least, the Novatouch TKL: http://gaming.coolermaster.com/en/products/keyboards/novatou...

It is interesting that in the time since I purchased it, they toned down the gaming aspect in the marketing.

MetaCosm··on Scaleway: Bare metal SSD ARM servers
I think the implication was an infinite amount of those 1Gb chunks -- IE: they can grow the infrastructure as fast are you can use it.

It is almost assuredly a lie (as someone who is working on a project scaling to PBs -- I pressed a lot of vendors on "unlimited" or "infinite" and most said they simply couldn't scale to X).

MetaCosm··on Living with a Computer (1982)
I just had a flashback to my PB and the combined sound card / modem -- that sometimes almost worked.
MetaCosm··on Code Keyboards
The CM brand sort of surprised me. I am a keyboard snob and didn't really consider them as they are marketed as a "gaming" keyboard. Then I saw they had a "Hybrid Capacitive" (read: Topre) keyboard, which is my absolute favorite switch type -- but this had a unique spin, Topre + Cherry Caps...

I was able to get my hands on one, and it felt perfect... tenless, nkey rollover, topre, cherry mx keycaps, removable cable and built like a truck (thing is like 2 pounds).

MetaCosm··on GitHub under ongoing DDoS attack
I really wish they would post what the attacker wants removed so we could mirror it, post it, etc. The streisand effect is a good response to things like this I think.
← PreviousPage 2 of 23Next →