Hacker News new | past | comments | ask | show | jobs | submit | berfarah's comments login

(author here)

Good question! Because this is on a hot code path, we were allocating new values faster than the garbage collector was able to remove them. Over extended periods of time, the server would trend toward running out of memory.


Interesting! That sounds like a garbage collector bug! It's probably worth opening a ticket.


I did for a while. Around version 58 it started performing better again. Then something in v60 caused a bunch of CPU spikes again, so I'm using Developer Edition, which is on v61 and doesn't have that issue.

I would say 99% of the time, Firefox is great for me. There are occasional sites that I open in Chrome - either because of video choppiness or JS going out of control on a page.

However, I would love it if it were less of a gamble when upgrading versions.


You likely won't come back to this, but in the event you do - thank you. V61 dev edition is working an absolute charm for me.


I hear you. I'll give v61 a go.


Do you mind expanding on what you mean? When I look at the instructions here, they seem pretty concise.

`export` -> exports the thing

`default` -> if you require from this module, this is the default

`class` -> class definition

`extends` -> speaks for itself

`Controller` class it's extending.

You could maybe rework it so you don't export it on the same line:

```

class Foo extends Controller {}

export default Foo

```

The parallel I see here to Java is the object orientation - which is a fair criticism. There are probably ways to execute on this using other mechanisms other than inheritance. But then, sub-classing to me still feels better than assigning the prototype via direct assignment.


Java has no concept of default, but otherwise `public class Foo extends Controller {}` would be pretty similar. It's not that the keywords are overly verbose for the purpose they express, it's that they relate more to "code bureaucracy" than to direct functionality.

In a language with fewer developers/smaller projects/fewer interdependent modules, there would be no need for exporting (no privacy, everything public by default), there would be no special syntax for extending a class (after all, you could just write it yourself if you need it), there might not even be any classes at all (again, you could just implement them if necessary).

But as languages mature, code bases start to grow, and every project depends on a web of dozens of slightly incompatible packages, people begin to realize that they need some mechanism to enforce order and to standardize on a single, officially blessed implementation of all those things you could just do yourself (and everyone did, with no regard for compatibility).

Then, when the language feels bogged down with the ceremony necessary for programming "at scale", someone decides to just throw all that baggage over board and develops a fresh scripting language, where the cycle begins anew.


Ruby has one of the better communities among programming languages - disproportionate to its popularity. I wish more languages had that quality of discourse.


My favorite thing in this release is that shift+tab works in the terminal now.


To unindent a visual selection? The "correct" way to do that is "<" in visual mode.


What has always annoyed me about this is that < and > (de)indent but also unselect the text and put you back in normal mode. Why? I often want to indent more than once but don't want to count ahead of time how many it will take, but that means I have to reselect the text N times. Is there a good way around this?

Edit: just found that gv will reselect the last visual mode selection, which makes this much less cumbersome.


Why don't you just hit . to repeat the last indent?


This is the super easy way to do it.


I like to us gv as default, so I have this in my .vimrc:

" Align blocks of text and keep them selected

vmap < <gv

vmap > >gv


I think my comment wasn't super clear. What I meant is shift-tab in terminal emulation, which wasn't registering correctly.


What does/should shift+tab do ?


Before this release, using shift tab (as well as the function keys and a few other key combos) in the embedded terminal would just output weird junk characters. Now they all get passed through to the terminal correctly and behave like they would in a normal terminal.


Reverse tab completion for autocomplete suggestions.


Shift+Tab always worked in the Terminal for me since Vim 7.3. What Terminal are you using?


I should have been more clear. Shift tab wasn't registering correctly in terminal emulation.


Flow is specifically mentioned in the linked release as getting rid of it...


I think the way they see it is:

Voice is basically deprecated

Hangouts is enterprise

Allo and Duo compete with Whatsapp/iMessage and Facetime/Skype respectively


Not quite:

- Facebook Messenger combines all the functionality of Allo and Duo. - Whatsapp already has voice calling and is adding video soon (so I read on the internet) - iMessage and Facetime integrate in IOS much better than Google Duo does. In IOS, you go to a contact and press facetime. On Android, you go to a contact... then go back out to Duo and call them.

WeChat, of course, does everything that all these apps will ever do - as of many years ago.


I feel like ICQ 98 was the pinnacle of chat applications. Floating contacts and email style messages... brilliance.


The "find random chat partner" feature was so addictive!


> email style messages

Care to elaborate? I'm having trouble picturing what you mean. Long form with styling?


Strongly agree. It's still unsurpassed. And it worked well on systems with 64mb of RAM (maybe even less) without stomping all over the rest of the programs you were running. Seems like no-one can even "Hello World" a desktop app these days without a 100mb download and requiring several hundred MB of memory all to itself.


I was visiting China recently and started using WeChat... it really is far ahead of other messaging apps, the amount of integration with other services is staggering (many shops offer payment through the app, QR codes to link to WeChat are commonplace, even my hotel advertised its wifi settings through WeChat!)

I wonder if WeChat will try to push the service more outside of China?


you can call/message a person from contact page directly, I have done that with whatsapp


Duo competes with Facetime, except it's not integrated in Contacts and I can't imagine why. Duo and Facetime don't compete with Skype because they don't have the IM part which is a very important component of Skype. I used it for all these years as an IM client (business or friends), less as audio and rarely as video. But video is always the least used form of communication. Still I'd like to see some global usage stats of Skype: minutes by chat, voice, video. My customers, friends and I could be the outliers.


but hangouts lacks things which are useful for enterprises such as video recording (it's possible only if you make a "hangout on air", afaiu) and, in my experience, screen sharing text/code is painful because of the video encoding making it unreadable.

To me hangouts looks like a competitor to Skype only, at this time.


Hangouts on air is being replaced by Youtube Live


Except that Skype can be used for text chat like Allo.

And Apple doesn't really treat Facetime as an app.


> And Apple doesn't really treat Facetime as an app.

It's a separate app on the iPhone, no?


Don't you have

  React.PropTypes.shape({
    foo: React.PropTypes.string,
    bar: React.PropTypes.shape({
      fieldNum: React.PropTypes.number
    })
  })
? I'm not saying it isn't verbose, but I'm pretty sure that as of a few months ago, this existed in React natively.


PropType support is pretty iffy, see e.g. https://github.com/facebook/react/issues/1833#issuecomment-1...


Thanks, I didn't know that (I've been using React.js just a month, and from beginning with TypeScript)


You can also do ImageUser.propTypes = { image: CustomImage.propTypes }


I don't know how you would handle all the banking websites that simply break or log you out if you accidentally go back a page.


I feel like your comment is misleading. People who are military trained have guns - but no ammunition. Ammunition is harder to come by. People are psychologically evaluated before they join the military.

And the union thing - Switzerland is part of the economic area, officially, and observes a lot of treaties/agreements in exchange for the benefits they get. This is a point of contention in Swiss politics as some feel like Switzerland gets pushed around a lot.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: