HNHacker News
TopNewBestAskShowJobs

btipling

3,035 karma · joined April 16, 2008

submissionscomments
btipling··on Advanced objects in JavaScript
Regarding your first question, it isn't necessary to define properties with that notation at all. You could just do:

  foo.foo = "bar";
But then it would be writable and configurable.

  Object.defineProperty(foo, 'bar', { value: 'baz' });
This foo.foo cannot be deleted. It cannot be written to. So it's a little different. But really I was just demonstrating the use of Object.defineProperty in a non-verbose way. You can try this out yourself, I made a jsfiddle: http://jsfiddle.net/btipling/q1v3fn20/

Regarding your second question, defineProperty is a method on Object, not Object.prototype. "Instances" as you might call them only have direct access to methods found on their prototype chain. You can think of Object.defineProperty as a static method on Object if that helps. I wrote a post about "this" which includes some information about prototypes:

http://bjorn.tipling.com/all-this

You should probably first checkout the mdn documentation though: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guid...

btipling··on Advanced objects in JavaScript
I don't know why, because I haven't thought through it enough yet but I really like the idea of freezing or protection in the case of a reactive data model like Backbone models. I'm thinking of maybe writing up some quick implementation where you provide a schema and you get a reactive object that is frozen and has a catch all. Just want to see where that goes.
btipling··on Advanced objects in JavaScript
I like that, but you'd still have to call a function to get the properties though and this wouldn't prevent anyone from accessing those properties directly.

Like:

  obj.setFoo("bar");
  obj.getFoo();
  obj.foo = "bad stuff"; //overwritten
instead of

  obj.foo = "bar";
  obj.foo;
  obj.foo_ //error, not allowed access
btipling··on Advanced objects in JavaScript
I wasn't aware that the Firefox nightly had Symbol, I will download Firefox nightly later and update the post, I should have Firefox nightly anyway. Thank you!

Edit, tested and updated blog post. Thanks again.

btipling··on Advanced objects in JavaScript
I think the slow browser updates that existed prior to Chrome might have contributed to a lull in developing the language. Some of these features can't be fixed for old browsers with a polyfill, but now that updates are happening quicker and there's a lot of excitement around the language I hope we see more of these.
btipling··on Advanced objects in JavaScript
I like that idea, but with Proxy you don't have to write the functions any more, you could just define that one get on the handler you feed into Proxy and then in your code you can access via the . notation, like:

  var obj = new Proxy(
   {foo_: "bar"}, 
   {get: function(target, name) {
     return target[name + "_"]; 
   });
  console.log(obj.foo); //logs "bar"
Of course maybe you'd do something a little fancier than just return the value, like return null for property names with _ to prevent accessing private variables. I don't know what the performance of Proxy will be like, but it's an alternative to getters and setters and lets you have a fall through for things you haven't defined.

What I'm really excited about is reactivity on objects for setting and getting without using functions. You could have your setter trigger events without forcing someone to use a set function like you have in Backbone.

I think we'll see an entirely new set of model libraries because of these new ECMAScript 5 and 6 features.

btipling··on Show HN: Domcomp, a price comparison site for domain registrars
Is this data scraped via an API or something or are you managing it manually?
btipling··on GitHub Language Visualization
Assuming this is accurate, what I find especially interesting is that if you hover over each of these languages they all have a significant overlap with JavaScript. I think everyone of these languages widest band goes to JavaScript.
btipling··on Show HN: Real-time collaborative editing plugin for IntelliJ
I have bound "summon" to a keyboard shortcut:"cntrl+option+cmd+s". I have a bunch of floobits actions bound to a keyboard short cuts, like Join project's workspace, leave workspace etc.

As for deleting your data, Floobits only ever deletes anything when someone overwrites the workspace from somewhere else. If you run into issues like this please contact us so we can look at the problem and fix it so it doesn't happen to you again and so others also don't run into this problem.

btipling··on Product Hunt Is in Current Y Combinator Batch
Considering that if you look closely at the screenshots and see that it is Erik himself commenting on products, so as to have a reason to notify users, no, not really.

http://www.producthunt.com/posts/instant-chemistry

http://www.producthunt.com/posts/jumpido

http://www.producthunt.com/posts/customeed

Maybe if they made it something you could subscribe to, opt-in, I would think it wasn't spam, but as it stands now, getting a notification on all of my Twitter enabled devices about something I don't care about, that I didn't ask for nor subscribe to, is spam. That some are advocating actually "scraping emails" to automate email notifications because this is so useful just leaves me a little bit dumbfounded.

btipling··on Product Hunt Is in Current Y Combinator Batch
Erik, you even posted this spam almost verbatim on HN:

https://news.ycombinator.com/item?id=8032837

I hope you're not going to continue to do that. I get you're hustling, but this isn't the right way to do this.

> Not one person has said "Spam".

I marked the tweet as spam via the report the tweet feature, I don't know if people usually actually reply as "this is spam."

btipling··on Product Hunt Is in Current Y Combinator Batch
It’s an interesting product but Erik Torenburg (self-described "Product Hunt Hustler" according to his Twitter profile) is not just a little bit of a Twitter spammer:

https://twitter.com/ErikTorenberg/media

He has posted hundreds of reply spam promoting Product Hunt on Twitter. He must be running some kind of script because he has posted so many replies many with product specific screenshots, I can’t imagine someone doing this manually so quickly (every few minutes).

I understand “growth hacking” and sometimes promoting yourself can seem like spam to some, but this really is just spam, and it’s not the good kind. This is probably in violation of Twitter's TOS and not what people should have to be exposed to, especially if you're trying to build a brand. This makes me just want to never use the product, and I really like supporting YC companies and prefer to give the benefit of the doubt and assume good faith in the face of self-promotion. But this is just a little bit too much.

btipling··on The Future of WhatsApp.
Sure, but WhatsApp runs on phones that have a plan with a phone company. It'll just be that the cost is offset by cell phone providers shifting their voice and text revenue to data more than they already have.
btipling··on 0xDBE: JetBrains IDE for DBAs and SQL developers
One big set of features missing are the configuration options available in PyCharm. For example being able to configure Vagrant in PyCharm provides its own UI in the IDE settings. I have created a screenshot showing all the various PyCharm setting views compared to IntelliJ with the Python Plugin installed:

http://imgur.com/tKFnnkj.png

You can actually get some of the Vagrant features with a separate Vagrant plugin in IntelliJ, but PyCharm lets you set up the Python interpreter with Vagrant via a really nice UI.

btipling··on 0xDBE: JetBrains IDE for DBAs and SQL developers
This isn't the case actually. These plugins offer only a subset of the features of the various IDEs.
btipling··on 0xDBE: JetBrains IDE for DBAs and SQL developers
The plugins are not the same as the IDEs. For example PyCharm doesn't distinguish between project settings and IDE settings the way IntelliJ does. The UI for choosing your python version and virtualenv is baked right into the IDE settings where as that is not the case when you install the Python plugin in IntelliJ. The .idea directories also do not seem to be compatible across RubyMine and IntelliJ. I have mistakenly opened up the wrong project with RubyMine and it scrambled the .idea for a non-ruby project.

The same is true with WebStorm, the UI and features found in WebStorm are not the same as in the JavaScript plugin. You cannot buy IntelliJ IDEA Ultimate and get all the features of all the other IDEs, you need to have separate licenses.

btipling··on 0xDBE: JetBrains IDE for DBAs and SQL developers
> What if you were building something that used all of those? You'd be buying a license for 7 IDEs? What happened to the good 'ol plugin model?

We actually buy a license for each of these editors. We test our Floobits plugin for IntelliJ in each of these editors and they are significantly different enough that you should really have a copy of each. They also have different build numbers and different jar libraries included. This means there are differences in the code base and that could affect a plugin you might be building.

For example PyCharm ships with apache java libraries we also ship, and we used to have conflicts when PyCharm had a really old version. The different build numbers indicate different points of history in the IntelliJ code base. Some crucial plugin API may be in one build but not another.

Thankfully Jetbrains gave us a steep discount for the licenses to help us out. But even if I were not editing a plugin for Floobits I would still have to buy a license for PyCharm, WebStorm and IntelliJ separately because the Python and JavaScript plugins for IntelliJ do not have all the features the separate IDEs have.

I took a long time to setup Django and virtualenvs correctly so I can run and debug Floobits.com in PyCharm, I don't see any easy way to translate that work from PyCharm to IntelliJ with the Python plugin. Same with WebStorm. Many of our services are written in node.js and translating my setup from WebStorm to the IntelliJ plugin with JavaScript doesn't seem easy to do or even possible. It might just be I have no idea what I'm doing.

btipling··on Pending Comments
He does improve the site quite a bit. He also has made the source for it available online which is nice.
btipling··on IntelliJ IDEA 13.1 RC Introduces Sublime Text Style Multiple Selections
Look at the gif carefully in this blog post, look at how multiple selections interacts with the clipboard when cutting and pasting, that's pretty amazing.

I never really thought there was much of a need for multiple cursors given the powerful refactoring tools in IntelliJ that work even with dynamically typed languages like JavaScript and Python. But given the clipboard interaction, I can see how this can be helpful.

I hope this also makes it into PyCharms and WebStorm. It's pretty awesome. Ever since we developed our IntelliJ IDEA plugin I've been using all these IntelliJ based editors even more than I've been using vim, which is a bit crazy, but the intelligence IntelliJ brings to the code you're writing is so incredibly useful and nothing else seems to be as good at understanding code. IntelliJ IDEA is an amazing editor.

btipling··on The Housing Market With Nowhere to Go but Up
> but why is it so impossible to conceive of having a distributed, remote employee base? There are many successful tech companies (and YC startups) that have done this.

And there are some that are even trying to solve that problem by making it easier to remote, like ours (Floobits), and our YC competitors: Screen Hero, Hackpad, Sqwiggle. So there are a lot of options for making remoting easier. I know Zapier has a remote team and those guys are doing fantastic. At Floobits we're entirely remote. And really working from home is the best work experience I've ever had, I don't ever want to have to commute back to SF (I live in the east bay). I've been taking and picking up my daughter from school , I've taken her to the library once a week ever since and I've gone to all her ballet lessons with her. Something I couldn't do when I worked in SF.

I hate that every day working people are priced out of their city, and a socially conscious company could consider remoting as a solution. Good for the community, good for their employees and good for the company.

btipling··on Bram Moolenaar responds to Neovim
Nothing you've said is true.
btipling··on [dead]
I've also started reading lobste.rs. It's what HN was about 2,000 days ago minus the startup news. It seems to be catching up to HN in terms of replacing it on my most visited sites new tab page.
btipling··on Bram Moolenaar responds to Neovim
We actually continued to work on the fork until it was clear Bram wouldn't be responsive to any more changes. Once it became clear he wouldn't accept the patch we stopped wasting more time as we are trying to create a viable business. We weren't going to sink our startup for the sake of vim, as much as I love the editor. We spent a long time, it was a frustrating experience, so yes we tell the internet when it comes up. Any of the freezes we found we would have loved to patch back into vim had this gone differently, and it would have been a lot of work.
btipling··on Bram Moolenaar responds to Neovim
At Floobits we tried to submit set_timeout/async stuff, and couldn't get anywhere with Bram. Months of work wasted.

https://groups.google.com/forum/#!topic/vim_dev/-4pqDJfHCsM%...

btipling··on Software Startups Get JetBrains Tools at 50% Off
You can't expense individual licenses. It's part of the terms.
btipling··on Software Startups Get JetBrains Tools at 50% Off
Wow, I type Cmd+F for find in path, but I'll try double shift. The keyboard commands in PyCharm are much different from IntelliJ IDE, so not sure if RubyMine is also different.
btipling··on Software Startups Get JetBrains Tools at 50% Off
JetBrains is super startup friendly. While we have been working on our IntelliJ plugin to edit with others in real time JetBrains has given us discounts, engineering help (via their forums), and we have even started talking to their business development team about getting our plugin more attention. They're also very responsive on Twitter. JetBrains is a great company, with good people. It's weird to me that as a long time vim user to be so happy with their editors. I still use vim for a lot of editing, but the features in IntelliJ and PyCharm and WebStorm and all the others are amazing. I don't use vim anymore to write Java. I use IntelliJ, because you hardly type. You just tell IntelliJ what you want and it writes your code for you, one piece at a time. Even with Python I'm finding myself using PyCharm more often. It's very good, especially for debugging.
btipling··on Making Remote Work Work
Thank you for the kind comments about floobits, seeing comments like that really means a lot to us. All of us work remotely too, so your blog has some good tips. We use IRC for chat and Shush, a Mac OS X push to talk app has also been very good for communicating. Let me know if you do run into any trouble or have questions.
btipling··on An experimental Vim fork with multi-threading capabilities
> If the fork is maintained for a year or so, fixing problems with the timer code and feeding patches for actual vim bugs back upstream, and adding tests for all of that, at the end of that time this patch will be quite different.

There are few problems with the timer code. Vim's code is a monster. As you yourself admit, you don't know the vim code, so how could you possibly judge how demanding the requests are or make any of these other claims.

> The use case is hypothetical

We're building a business on real time editor plugins that isn't hypothetical at all.

btipling··on An experimental Vim fork with multi-threading capabilities
Depending on faith will probably lead to bad decisions, a rational appraisal of available evidence and some critical thinking will probably be more useful. And let me present some evidence that may destroy any remnant of that faith you have:

https://groups.google.com/forum/#!topic/vim_dev/-4pqDJfHCsM%...

That's our async/timers patch, we pretty much gave up for now because debugging vim was a nightmare. Right now something is stomping over regexp objects in memory. We have no idea where. We've found unsafe pointer use, etc. Vim code is pretty much all globals, 25k lines and 400+ ifdefs for at least one file, some crazy file encoding, pre C89 C that still compiles on an amiga, mixed tabs and spaces. The vim code base is pretty much the worst code I've ever seen and Bram doesn't seem to really grok our patch. He's also been demanding with his requests that we feel are over the top. That's fine, that's his choice. We're focusing on other plugins right now, we put in many months of work into vim. It kinda works as long as you don't use leader keys.

← PreviousPage 2 of 24Next →