HNHacker News
TopNewBestAskShowJobs

bilkow

480 karma · joined September 26, 2016

submissionscomments
bilkow··on Google shifting to “upstream first” Linux kernel approach for Android features
Where I live, both of my banking apps work without SafetyNet and even Google Play Services. I have missed one or another app for having no Play Services, but nothing too important and it's offset by having the option to block all internet connection for other apps.
bilkow··on OnlyFans drops planned porn ban
According to wikipedia, the Traffickinghub campaign, created by Exodus Cry's Director of Abolition, resulted on the credit cards ban.

Source: https://en.wikipedia.org/wiki/Exodus_Cry#Traffickinghub_camp...

bilkow··on When zero cost abstractions aren't zero cost
Rust has "typedefs" and those are called type aliases.

The intention of the newtype pattern is to specifically create a new type without the behaviour of the wrapped type, so if there's a special case just for u8, I would expect it not to be on the newtype.

bilkow··on Lang Jam: create a programming language in a weekend
I don't think borrow checking plays a significant roles in most projects compiling performance. Running `cargo check` generally runs a lot faster (after the first run) than `cargo build`, even if it runs borrow checking, etc. AFAIR macro expansion, LLVM code generation and linking takes a lot of time, but it depends on the project.

In the perf site you can see some examples: https://perf.rust-lang.org/

bilkow··on Rally, a novel privacy-first data sharing platform
It is an extension:

https://addons.mozilla.org/en-US/firefox/addon/mozilla-rally...

https://github.com/mozilla-rally/rally-core-addon/

bilkow··on Brave Search beta
Interesting, in my tests (posted at https://news.ycombinator.com/item?id=27598329), the results differ a lot.

Maybe its more about localization, I'm curious to see the same example from someone in the US, but there are two links which do not seem to be in Bing's results at all, making me believe it has been taken from somewhere else.

bilkow··on Brave Search beta
> They pretty clearly only talk about instant answers there.

They talk about both, "traditional links" are not instant answers: "We also of course have more traditional links in the search results, which we also source from multiple partners, though most commonly from Bing (and none from Google)."

> Try some searches for yourself and see that the results are basically identical to bing

I disagree on your definition of "basically identical". Google and Bing results (in a private window) are more similar to me than DDG and Google:

Bing:

1. https://www.monkey.exchange

2. https://play.google.com/store/apps/details?id=cool.monkey.an...

3. https://www.monkey.cool

4. https://en.wikipedia.org/wiki/Monkey

5. https://pt.surveymonkey.com/

(change page)

6. https://play.google.com/store/apps/details?id=cool.monkey.an...

7. https://www.youtube.com/watch?v=q0hyYWKXF0Q (TONES AND I - DANCE MONKEY (OFFICIAL VIDEO))

8. https://www.britannica.com/animal/monkey

9. https://en.wikipedia.org/wiki/Monkey_(TV_series)

10. https://www.monkey.vision/

DDG:

1. https://www.monkey.cool

2. https://en.wikipedia.org/wiki/Monkey

3. https://play.google.com/store/apps/details?id=cool.monkey.an...

4. https://www.britannica.com/animal/monkey

5. https://www.merriam-webster.com/dictionary/monkey

6. 2pchat.monkey.cool

7. https://www.livescience.com/27944-monkeys.html

8. https://a-z-animals.com/animals/monkey/

9. https://www.monkeyworlds.com/

10. https://www.youtube.com/watch?v=XTrnSJLXGBg (Mokey's Show - Is Not Christmas - YouTube)

Google (after changing to english bc they don't respect browser prefs...):

1. https://www.monkey.exchange

2. https://en.wikipedia.org/wiki/Monkey

(Videos links)

3. https://www.motociclismoonline.com.br/noticias/honda-monkey-... ("localized" news bc I can't get rid of it)

4. https://www.linkedin.com/company/monkeyexchange

5. https://motor1.uol.com.br/news/515705/honda-monkey-125-2022-... (also localized)

6. https://play.google.com/store/apps/details?id=cool.monkey.an...

7. https://hbr.org/1999/11/management-time-whos-got-the-monkey

8. https://www.britannica.com/animal/monkey

9. https://www.surveymonkey.com/user/sign-up/

10. https://www.surveymonkey.com/

DDG has more "monkey" definitions than both Google and Bing, all have Wikipedia, all have cool.monkey (in different ways), Bing + Google have monkey.exchange and surveymonkey, the video's the same on Google and Bing, all of them have some unique links (such as monkey.vision and monkeyworlds.com)

Also two of the results ("Mokey's Show" youtube video and 2pchat.monkey.cool) are not on the first 10 pages of Bing's results, if at all.

(Edit: formatting and the two results)

bilkow··on Mozilla plans to remove the Compact Density option from Firefox's Customize menu
This actually only happens when you update Firefox through your distro's package manager when its running (or your distro updates automatically in the background).
bilkow··on Facebook Container – Mozilla
This, and AFAIK they're still implementing the rest of the API so that all add-ons will be supported (on Android).
bilkow··on New malware found on 30k Macs has security pros stumped
The installer asks for root permission and (I believe) may abuse it, being able to modify system files for example.

I also chown + chmod LanchAgents and LauchDaemons in both libraries so that only root may write to it.

bilkow··on New malware found on 30k Macs has security pros stumped
The installer needs root (admin) permission, which may be abused.
bilkow··on Done Answering Questions Stack Overflow
> Several people claimed comments have absolutely zero value. Therefore their deletion is irrelevant.

The author comments (no pun intended) on why it does have a vote system then, but I'd go further: If comments have no value, why do they even exist? They wouldn't need to be implemented and they're just taking up space.

In many answers I found in SO, comments have been very valuable, sometimes more than the answer.

bilkow··on Confession Of A C/C++ Programmer (2017)
> I think you'll have to make "can do" more precise for this question to have a meaningful answer. All mentioned languages are Turing complete and thus equivalent on that level.

I actually agree, I was just arguing with the point of the above comment which implicated you can't do lots of things in Rust that you can in C++. I don't know what the author was referring to, so I can't be more specific.

> I can wrap a file in a ByteBuffer in java and the JVM will (make a best effort to) perform native I/O on that. Does that pass as "access raw memory"?

I was referring to directly accessing the memory "owned" by local variables (the stack), the bytecode of the program itself (on von Neumann architecture), etc. It was a counterpoint in that implication that every other language (akin to publishing systems) had no limitations where Rust had. But I don't think that's actually a problem as (if that's ever needed) you can FFI to another language that can do that stuff and (as you said) all those languages are turing complete.

Sorry if it sounded like I was attacking Java & Python, for most applications I don't think the "runtime" limitation isn't a problem and comparing them to facebook is still hyperbolic.

bilkow··on Confession Of A C/C++ Programmer (2017)
That's really hyperbolic, I don't believe there's anything you can do in C++ that you can't do in Rust.

Your argument seems a lot more valid for Python, Java, as AFAIK in those languages you can't access raw memory.

Do you have a specific example?

bilkow··on Porting Firefox to Apple Silicon
First, (as I understood) you indicated that the market share decline and the layoffs were somehow related. Given that the graph started in 2009, 1 year after Chrome was first released and only the last datapoint is after the date, I don't think they're related at all. We all know that Chrome captured the IE/Firefox market share in the whole last decade and that's what the graph's showing.

Second, your concept of rapid decline clearly differs from mine. That is an eleven year decline and I don't think it's "rapid" at all for a browser.

bilkow··on Porting Firefox to Apple Silicon
What rapidly declining market share? Did you even open the wikipedia page you're referring to? There are no graphs over the last few months, and if you look at the sources[0][1][2], it looks like their market share declined BEFORE the layoff (from January to August 2020). After the layoff, it seems pretty stable.

As a reference, I'm going to post the values here:

  Source: Jan 2020 - Aug 2020 - Jan 2021
  netmarketshare: 3.61% - 3.00% - 2.98%
  wikimedia analytics: 5.2% - 4.6% - 4.7%
  statcounter: 4.7% - 4.09% - 3.77%
Also I'm actually pretty satisfied with Firefox.

[0] https://netmarketshare.com/browser-market-share.aspx?options...

[1] https://analytics.wikimedia.org/dashboards/browsers/#all-sit... (change date range to Jan 1 2020 - Jan 21 2021, remove other browsers)

[2] https://gs.statcounter.com/browser-market-share#monthly-2020... (remove other browsers)

bilkow··on Lua, a Misunderstood Language
You clearly have a different experience using 1-based index than me, it has caused me many off-by-one mistakes. Also, I almost never need to -1 with 0-based index, but in 1-based index its pretty common, specially if moving slices inside an array, the new index of the element is move_position + old_index - 1 (see example). Also see arguments by Djikstra [0].

Example:

  # python
  lov = ['l', 'o', 'v']
  o_index = 1;
  array = ['a', 'b', 'c', 'd', 'e', 'f']
  move_position = 3
  # elements moved here
  array = ['a', 'b', 'c', 'l', 'o', 'v']
  new_o_index = move_position + o_index
  print(array[new_o_index]) # prints 'o'

  -- lua
  local lov = { 'l', 'o', 'v' }
  local o_index = 2;
  local array = { 'a', 'b', 'c', 'd', 'e', 'f' }
  local move_position = 4
  -- elements moved here
  array = { 'a', 'b', 'c', 'l', 'o', 'v' }
  local new_o_index = move_position + o_index - 1
  print(array[new_o_index]) -- prints 'o'
Note that I'm not saying 0-based indexing is always absolutely better, but I generally prefer it and believe it usually makes more sense even outside of programming (including math), we're just not taught that way.

[0] https://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF transcript: https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/E...

bilkow··on Firefox 83 introduces HTTPS-Only Mode
> They're not going to leave malware payloads sitting there. They do though, I usually check where spam emails lead me to as a curiosity, and the payload is sometimes hosted on github.

A simple GET request to https://github.com/adkafdjsh20/cool_repo/blob/master/dns.txt would work for DNS purposes.

Also, there are countermeasures for malware domains themselves, as you can report them to registrars.

bilkow··on Chameleons Not Seen by Scientists for Century Found in a Madagascar Hotel Garden
What, they found only 3 males and 15 females, suggested themselves it should be considered an endangered species, yet they killed one of each to study???

Also looking at the paper it seems that the female had 7 eggs in her

bilkow··on Leaving OCaml
> You'd be constantly fighting the type checker for memory issues.

I think you mean borrow checker for ownership issues...

> why doesn't Haskell take the same route as Rust and ditch its garbage collector?

The Rust language was designed in a way (with ownership) that doesn't need a GC, while Haskell have many different properties (such as lazy evaluate everything) that I don't think would work well without a GC.

The borrow checker is usually a nuisance when you're writing highly mutable code, which isn't a problem for functional code. If you need to store the same data in multiple structures, the sibling is right, .clone() and .to_owned() will usually fix your problem with a very small overhead.

bilkow··on Tor Browser 10
I don't think this is related to script blocking or frames at all, its a long standing bug in the tor project site that anyone can trigger by just refreshing. Check other comments in this thread.
bilkow··on My least favorite Rust type
I don't think Range is intended to be a 100% solution at all. It only supports iteration over integers and slice indexing over a specific integer size, which are its main use cases. Also the author is exaggerating on the footgun, as Range is explicitly end-exclusive, and the Regex is explicitly end-inclusive (e.g. [a-z] includes z), so a RangeInclusive should be a straightforward decision.

Yes, I think it was a rushed type which should be a lot more constrained on 1.0 to allow for modifications later, which is how stuff is usually done in Rust. It also probably should have implemented IntoIterator instead of Iterator directly. It may also be my least favorite Rust type, but I don't think it's really that bad, and I'm thankful for whoever designed it as I find it still much better than slice-specific indexing syntax.

bilkow··on My least favorite Rust type
It looks like you can't. You can create a Range out of it, but the range is not an iterator. If you look at the Range docs[0], you'll see that it only implements Iterator where its generic type (A) implements std::iter::Step.

Going to the Step docs[1] you'll see that its only implemented by integer types and char. If Vec implemented Step, you could iterate over it.

Also, if you're referring to the "contains" guessing puzzle, you have to look at Range::contains docs to see it uses Vec's PartialOrd implementation (basically comparison), in which docs state its elements are compared lexicographically.

Usually in Rust the first thing I'll do when trying to do something very specific (iterate over a Range of Vecs) is try it at the playground (play.rust-lang.org) and/or just look at std docs.

[0] https://doc.rust-lang.org/std/ops/struct.Range.html#impl-Ite... [1] https://doc.rust-lang.org/std/iter/trait.Step.html#implement...

bilkow··on Facebook halts Oculus Quest sales in Germany amid privacy concerns
I'm not sure why you're getting downvoted, they actually lock people out asking for an government ID[0] (AFAIK not necessarily yourself in the photo).

I also know someone who wanted to change their last name (their current one is already fake) and the system didn't let them without sending an ID.

[0] https://www.facebook.com/help/community/question/?id=1016165...

bilkow··on Searching for 'VK' shows only a single result on DuckduckGo. Why?
Kind of, they have their own crawler (DuckDuckBot) and I'm not sure if that changed, but they used to source at least from Yahoo and Yandex. [0]

Although yes, its usually Bing.

[0] https://web.archive.org/web/20180203071252/https://duck.co/h...

bilkow··on Searching for 'VK' shows only a single result on DuckduckGo. Why?
Note that Bing is only one of their sources: https://help.duckduckgo.com/duckduckgo-help-pages/results/so...
bilkow··on Single Page Applications using Rust
I do not disagree on the amount of JS devs who like rust (how many even know that rust exists?), what you think is a syntactical monster I find more readable than JS (except when generics are abused, which is rare in my experience). Just by having no parenthesis around "if" it becomes a lot cleaner, and together with anonymous / arrow function syntax in js it becomes even more confusing. Its still very subjective, but if you're going just for clean syntax, I feel like python is the real winner.

Also, explicitly borrowing in method signatures is a BIG plus for me as its a lot easier to understand an API when its clear whether it mutates or not an argument, as opposed to JS where number arguments just cannot be mutated and pointer arguments (such as arrays) always can be mutated. I find understanding random github projects a lot easier in rust than js or python.

I'm not saying you should use rust, but many like rust specifically because of its readability and even find they're more productive in the long term because of its "high level" features and explicitness (although LEARNING it is a lot harder).

bilkow··on Touch Typing on a Gamepad
On consoles (including the Switch), Scribblenauts mega pack has a similar interface! https://cdn1-www.playstationlifestyle.net/assets/uploads/gal...

You hold the analog in the appropriate direction and press the button. At first its strange, but I got used to it kind of fast.

bilkow··on Internet Archive responds to publishers’ lawsuit
I don't think my post re-characterizes publisher's claims at all, the part you mention simply claim that they offer a way to license those books in another way and they're trying to separate ownership into physical and digital, denying any form of digital ownership (by licensing instead).

> Normal public libraries can do digital lending (and have, for decades) because they get proper licenses from publishers or authors to do so.

Normal libraries do not need any licenses to lend books they own at all, but they can get a digital-only license, which is not ownership

> The IA is claiming that they don't need a license for physical books they own under the first sale doctrine, which is blatantly false: the first sale doctrine means they can sell or lend the physical copy of the book they possess, not that they can distribute the underlying IP of the book without permission of its creator.

CDL is not distributing the underlying IP of the book at all, its lending a single copy of the book using DRM to prevent anyone from copying or reading after the lend time is over. Only a single person can read the legally owned copy of the book at any given time.

> And even to the extent that the IA claimed it was limited lending on a one-to-one basis, it abandoned those limits and simply lent out as many copies as people wanted.

Yes it did it for a limited time (which I believe was an obvious mistake), and that's not what I'm talking about. What I'm saying is that the complaint ALSO goes against CDL in general, not only against their IA's national emergency program, as its clear from the parts quoted by you and me.

bilkow··on Internet Archive responds to publishers’ lawsuit
While IA has temporarily lifted the restriction on number of copies (but not others like lending time), the complaint also goes against CDL in general, making it very dangerous. See for e.g. paragraph 8 and 10.

"IA’s self-serving assertion and promotion of “Controlled Digital Lending” as both an actual legal doctrine and a justification for its infringement affronts the most basic realities of the law and the markets it propels. As a matter of markets, IA’s one-to-one conflation of print and ebooks is fundamentally flawed. Digital books are inherently different from physical books. They can fly around the world in a second; they do not degrade over time as physical books do; and they require devices to read them."

https://publishers.org/wp-content/uploads/2020/06/Filed-Comp...

← PreviousPage 5 of 6Next →