Hacker Newsnew | past | comments | ask | show | jobs | submit | intea's commentslogin

But the root cause here lies with GCC or rather glibc and not the language? C++ is but a tool, just like every other language.


It likes with C++ not having a proper module system enforcing properties like module import order being irrelevant, and the glibc developers apparently failing to produce modules having such properties even if the language doesn't enforce it.


>in 2008, we announced that we would sunset Python 2 in 2015

More like 12 years by now :-)


Can you elaborate here? One of the Ls in DLL stands for library after all.


Thanks for bringing that up. Im wondering why they went through all that trouble though. Are there no alternatives to GA?


According to the issues trackers, various forms of "self-hosting would be more work for a lesser product".

I'm not sure that would still be the case if the decision were being made today, and would quietly hope not, but I guess we can charitably say that the reason now is "inertia".

Personally, I think they may have underestimated (or failed to fully predict) the anti-google, pro-privacy sentiment in the wings, and it's clear even from this thread and the issues on bugzilla that it's probably cost them enough privacy-capital at this stage to have justified the extra work required to self-host.

But hindsight is 20-20. There are sunk costs now which also must play into the decisions.


Or just don't load any "analytics" scripts at all. Do you really need to know the aggregate mouse positions of every user on your addon page?


Definitely not, but I can see how it might be useful to know aggregates of the Firefox version and locale information for people visiting that particular page.


Sure, but you can do that with just your web server log.


> Personally, I think they may have underestimated (or failed to fully predict) the anti-google, pro-privacy sentiment in the wings, and it's clear even from this thread and the issues on bugzilla that it's probably cost them enough privacy-capital at this stage to have justified the extra work required to self-host.

Or maybe the "anti-google, pro-privacy sentiment" isn't really all that big. Could be a relatively small but vocal set of people.


> self-hosting would be more work for a lesser product".

The same argument applies to the whole of Firefox. It's more work and it's a lesser product. If Firefox can be a better product, than Mozilla Analytics could be too.

At this point it's clear that Mozilla is a business (with well paid management and staff) like Google that is using Privacy as a promo like Google used Don't Be Evil. Mozilla might be better in practice today, but it's not on a principled foundation. It looks like a Google Lite - Firefox vs Chrome, Rust vs Go, etc.


>Are there no alternatives to GA?

There is Matomo (formerly Piwik): https://matomo.org/


We use this one, paid version. Sometimes it's a slower load, the UI is less good than GA, other little issues but we still get the core data, and can trap page-level-events.


Actually most modern hypervisors allow nested virtualization.

https://www.linux-kvm.org/page/Nested_Guests

https://communities.vmware.com/docs/DOC-8970


Not even just modern hypervisors. The IBM mainframe hypervisor z/VM (and its predecessor VM/CMS) has supported nested virtualisation for decades. It was an important tool to support its own development (especially considering that mainframes were expensive and not even IBM could afford to give every mainframe OS developer a whole mainframe to themselves.)


Why are empty elements in an array allowed? oO

[1,2,,3]


They need to ensure that any combination of characters will produce some result.


Quite useful in situations such as:

> (str.match(regexWithGroup) || [, null])[1]

I.e. if the regex matches, then give me the first group (1st index) otherwise give me null.


Because you can create that array anyway, like so:

  var arr = [];
  arr[0] = 1;
  arr[1] = 2;
  arr[3] = 3;
so there's not really much downside to also allowing a literal syntax for the same thing.


A closed source git client, that's almost an oxymoron.


No it isn't.

Git kraken, sublime merge, sourcetree. It is pretty common among the most famous ones, just look at the list on wikipedia, https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs


jmp [rip] .dq 0xCCCCCCCCCCCCCCCC

works too


Mixing code and data, right? I think the downside here is if you tried to install another hook it’d fail because the LDE wouldn’t be able to make heads or tails of the address. I suggest embedding the value into something with an imm64 argument (mov?) so that LDEs can handle it.

I guess also though, at ~16 bytes its probably deep enough into the function that it may no longer be position independent, or hell, maybe the function isn’t even that long to begin with.


If you're writing a hooking library / a hook you should be keeping track of where they are. It's a big hook, that is true but it's also one that doesn't spoil a register and is pretty straightforward to add. It's a tradeoff.


Well the bigger problem imo is other hook engines that might also be roaming around the process space. I think all you need is two extra bytes to make it valid instructions, and in theory then nested hooking should work fine. Though it only exacerbates the length issue.


if you place the data at the end of the trampoline it avoids these issues of mixing data and code, it's like a little custom data segment you make since you have to allocate the trampoline anyways. This is what i do in my lib. The disp is after the jmp the trampoline uses to jmp back to the original. The original function only has the jmp [disp] and no data is mixed.


I wish there was something as simple to use as Discord but selfhosted. The closest thing I've found so far was rocket.chat which is only halfway done or Matrix which has close to no admin tools available.


Mattermost.


inline syscalls? How would that work?


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

Search: