3,035 karma · joined April 16, 2008
https://github.com/Floobits/floobits-vim
I just wanted to make a good toolbar that people liked using. I worked on a Facebook version of the toolbar. A lot of the ugly things about the toolbar, the way it gets installed and what it changes for users are options the company (Nero, Oracle etc) that adopts the toolbar pick. It was a really good team with great people, but despite this I didn't feel good about working on the toolbar because of how it was used. Everyone on my team just wanted to make a really good toolbar. I am not proud of the work but not because of anything our team did. I don't plan to do any kind of work like that again.
[1] http://www.reddit.com/r/IAmA/comments/bqvme/i_am_an_ask_tool...
I think stalking people on social networks is also a net negative experience. I realized I should spend less time worrying about what other people are doing with their lives and focus more on my own.
There was also a recent NY Times article about how employers use LinkedIn candidates contacts to disqualify them for employment[1]. So LinkedIn can actually be detrimental to your career.
I just don't think LinkedIn adds anything. Businesses and recruiters use it to get your email to target you for spam. But what do you get out of it and think, if there wasn't a LinkedIn would you be out of a job right now?
[1] http://www.nytimes.com/2014/11/09/technology/on-linkedin-a-r...
For one thing librarians try to satisfy the information need of a patron. This is different than answering the question asked, which even now search engines can't really do well yet. Google search is powerful but you're searching an unfathomably large index and your query is a key. What librarians do is try to understand the exact thing you want to know, which you may not even know when you asked the question. Often a librarian will respond to a question with a question.
A librarian will also continue to help until the problem has been solved for the patron. They'll encourage a patron who might feel discouraged. Librarians treat people as people, not as queries.
Librarians are also staunch defenders of privacy and information freedom. In America, librarians are professionals with a code of ethics, which is codified by the American Library Association. Librarians are taught the complex issues involving privacy, the chill effect. Librarians are not in the business of collecting your personal information or selling you advertising. Librarians fight censorship, and they fight to protect your privacy.
Librarians are supremely excellent at curating. Go to a Barnes & Nobles and look at the selection of children's books. Read some of them. Then go to your local library's children's section and read some of those books. It's night and day. Libraries are filled with amazingly valuable books that, especially in the case of children's books, address important issues, are beautiful and beautifully written. They're not stories about Barbie rescuing a fashion show, they're about relatable and enjoyable characters that discover the world around them, learning to understand themselves.
Having said all this there are considerable problems in the American librarian profession which turned me off to it.
Librarians were slow to react to digital content, which put them at a disadvantage on digital rights management issues. Walking into a public library can for some be like a time warp to 20 years ago, with volumes of books filling shelves everywhere. There's a reason for that, books can be lent out. By sticking to books librarians haven't been the force they should have been in fighting DRM and copyright laws that would enable access to digital information to more people. Libraries spend considerable amounts of money for highly protected digital content like JSTOR.
Librarianship as a profession is also one dominated by time in service type of seniority. I wanted to be a programmer at a library. I was a programmer at a library as an undergraduate student and there were librarians who programmed to manage the library's website and library. But coming out of MLS the unfortunate reality was that programming jobs are jobs that go to librarians with seniority. I would have had to man a reference desk for a decade. And that kind of advancement, where it isn't skill, but time spent warming a seat that gives you political power is just not for me.
Finally, it's not clear what the future of libraries will be. Fewer and fewer people are reading books. Libraries are very popular places, especially for children, but in many cases libraries are just places that have a computer or a meeting room. Public librarians don't seem to have an answer for what's to come.
I don't actually. (I'm the author) I know that the this key word is executed at run time to figure out what this is. It is true there are simpler ways to explain this and this blog post isn't that. I link to such a post at the bottom of my own. These are just some examples. There's also more to that blog post than what everyone is discussing, like returning from a constructor and global this in node.js and accessing this in eval and more. Anyway, I didn't submit this to HN and hadn't intended to. I also didn't intend to sit here tonight and put on a thick skin to deal with all this criticism for something I wrote months ago.
It would have to be written using the new remote-plugin architecture I'd think. Plugins that were written for Vim would always be synchronous.
And when did you last try Neovim? Because I use it everyday with all of my plugins from vim with 0 problems. The new remote plugin system with python support is making huge strides. People have already started on Go support and I imagine JavaScript, lua, etc is not far behind. It's a very exciting time. I recently even got a commit merged, it's a great community and I've plastered my Macbook with Neovim stickers. :P
They've done even more than that. They have gone to great lengths to be helpful. For example, tarruda created an issue on our own issue tracker to let us know they updated their python plugin architecture so that we could fix our Neovim plugin. He didn't have to do this.
https://github.com/Floobits/floobits-neovim/issues/10
tarruda has shown himself to be a very productive engineer and a great steward of a growing Neovim community.
Our experience with Neovim and Vim has been night and day. The reality is that with Neovim you can build plugins that do more than you can with vim, painlessly. I don't really want it to be a vim versus neovim thing, but Bram strikes me as someone who at the very least doesn't understand Neovim's goals. I certainly hope that Neovim's changes are not backported into vim, Neovim is much more open about contributions whereas with vim there's a single gatekeeper with limited time to address big changes.
https://gist.github.com/btipling/0d6faa80b24ccee5caea
Note this requires +python, :he nvim-python for how to get that (involves pip install neovim)
You can't do something like this clock in vim without the feed keys cursorhold hack that breaks using leader keys. Otherwise I'm still using vundle and have made 0 changes in my .vimrc other than move it all to .nvim and .nvimrc. All my plugins and vundle worked out of the box.
I'm working on an alternative template engine for Meteor now based on django. Currently in a big branch that's moving slow since I'm pretty busy at my regular job.
> Entrepreneurs don't seem to learn much from their failures
There is a difference between not learning anything at all and not learning something from failures that will help in a future startup venture. I have learned a tremendous amount working at startups. I am closer to everything, nothing is in a silo and I have gotten exposure to all parts of the architecture whereas at an employer I would have been barred from infrastructure and operation tasks. There is also much more freedom to use whatever technology you want to try out, and thus you learn a lot about new programming languages and new libraries and new ways of doing things without having to get approval from layers of management and architects. You learn about your self too, your limits, you have to become independent, and self-reliant.
> Our most important finding is that the reward to the entrepreneurs who provide the ideas and long hours of hard work in these startups is zero.
Maybe if you only consider money. If you are into startups for the money alone, I feel like I would agree, stay away. If you're in a start up for the small team size, for controlling your own destiny, for being close to the customer, close to the product, and don't want to see your life's days waste away in meetings and products that never see the light of day then the value is actually immeasurable.
This goes with sexual orientation as well. We want to map people into straight or gay, but that is also a gradient where, like gender, people fall in in various parts of the gradient.
When I brought this up with a friend, we were talking about the new women.com yc startup and how they only accepted "women", he responded with that there are two distinct peaks in this gradient, like if you mapped this as a graph. I think you can actually blame these peaks not in small part on the immense social pressure to conform to either being male or female (which bathroom do you go into?), or even being straight or gay. It doesn't have to be that way, and there are ways other cultures solved this problem, like some Native American groups actually had a third gender[1].
I find the concept of "essentialism" interesting and intuitive to think about, including its flaws, which as Dawkins points out can be quite destructive.
So think about opening up a file in a web editor, that's an action. Many things might care about when a file is opened. The tab UI, maybe a log, other users connected to your session. Sometimes views correlate well to model updates, like a form, but many times they do not in which case a different event type can be useful.
As for interviewing, I cringe when I think about the poor questions I have asked and the poor decisions I have made, and I try to learn from them. We ended up not hiring qualified people because of bad interviews, although that wasn't obvious to us at the time.
I was thinking for a future interview the candidate and I would try to learn some new technology and try to build something together during the interview or talk about it at least.
for(var i=0; i<products.length; i++) {
content += products[i].name + '<br />';
}
$('.content').html(content);
Use a template library, do not concatenate strings and then just set HTML. Most template libraries will have safeguards in place to prevent XSS vulnerabilities. Even if the product name is always trusted to be non-malicious, it's still a dangerous anti-pattern.XSS will eat your lunch. It breaks every safeguard there is, it even defeats 2 factor auth and lets the attacker adopt the identity and privileges of whoever has been exposed to the attack. It's prudent to be extra careful and never have code that looks like this.