HNHacker News
TopNewBestAskShowJobs

mihai_ionic

266 karma · joined October 12, 2012

submissionscomments
mihai_ionic··on Will It Optimize? (2010)
Is there any reason why something like the following should not work?

    while (condition)
    {
        a();
        if (!condition)
            break;
        b();
    }
mihai_ionic··on Don't run 'strings' on untrusted files
Yes, for example this bug affects 'file': https://sourceware.org/bugzilla/show_bug.cgi?id=16825

The code in 'file' tries to parse the given file with every built-in format loader, so there are likely many more vulnerabilities like this one.

mihai_ionic··on Don't run 'strings' on untrusted files
The binutils maintainers aren't exactly responsive when it comes to following up on security-impacting bug reports: https://sourceware.org/bugzilla/show_bug.cgi?id=16825
mihai_ionic··on Why your first Rust FizzBuzz implementation may not work
Here's what the final example from the blog would look like, if you were to directly translate it into C++: http://coliru.stacked-crooked.com/a/265c6ec6fb6751a9

Now, of course, no one would program that way, but I think it does help visualize what really happens.

The obvious cost from delaying the printing is that you have to branch a second time, later in the code, to consume the value. I wonder how feasible it would be to introduce some kind of compiler transform that could invert the control flow, essentially pasting the surrounding code into the inner branches, to make this abstraction cost-free.

mihai_ionic··on Postgres full text search is good enough
One use case where Postgres FTS fails spectacularly is when your search has to return results ordered by some field (e.g., timestamp). This is critical for applications that have to return close-to-realtime results due to the queried content being time-sensitive.

Neither GIN nor GiST indices support such document ordering. For a top-N query of the most recent results, the entire result set has to be processed. With common domain-specific words, this can be more than 50% of the entire document set. As you can imagine, this is insanely expensive. When you are in this situation, it helps to set gin_fuzzy_search_limit to a conservative number (20000 works for me, less if you expect heavy traffic) in postgresql.conf, so that pathological queries eventually finish without processing every result. Result quality will take a hit, because many documents are skipped over.

If you need any type of ordered search on more than a hundred thousand documents, do yourself a favor and use something else than Postgres.

I'm not sure what search back-end Wikipedia is using, but it seems like they are not quite immune to this problem either: https://en.wikipedia.org/w/index.php?search=a+the

mihai_ionic··on GPS and Relativity
Or, as I prefer to think of it, the state of a distant object is undetermined with respect to your state (in a superposition of all reachable states since your last interaction) until you actually interact with it, at which point both get reconciled into a compatible state. Of course, it's slightly more complicated than that, because this applies to every particle you're made of individually. And then the particles are actually merely excitations of a field.

I'll leave the rest to actual physicists. :)

mihai_ionic··on Reverse Engineering Vendor Firmware [video]
Likewise, I've witnessed a reversible variant of SHA-1. They must have somehow messed up the break condition because it essentially only did one round.
mihai_ionic··on Microsoft takes down No-IP.com domains
This decision is very disturbing indeed.
mihai_ionic··on Undefined behavior can result in time travel
According to the C++11 standard, the compiler may assume that any loop terminates, so unless you mark ring_bell as [[noreturn]], the code will be assumed reachable.

Furthermore, when undefined behaviour is invoked anywhere within a program, the whole program is undefined.

mihai_ionic··on Google Cardboard
> Q: Can I use a pizza box for the cardboard? A: Yes. Make sure you order an extra large.

I'm not sure I'd want to stick my phone into a soaked pizza box though.

mihai_ionic··on Static checking of units in Servo
Boost has a neat library that does this and more: http://www.boost.org/doc/libs/release/libs/units/
mihai_ionic··on The MIN Challenge
I have come to really dislike people who think it's a good idea to define macros such as min, max, major and minor in system headers.

* http://msdn.microsoft.com/en-us/library/windows/desktop/dd75...

* http://msdn.microsoft.com/en-us/library/windows/desktop/dd75...

* https://stackoverflow.com/questions/22240973/major-and-minor...

mihai_ionic··on The MIN Challenge
Meanwhile, in C++14:

    auto min = [] (auto a, auto b) { return a < b ? a : b; };
mihai_ionic··on YunoHost: Aiming to make hosting accessible
Y U break my back button? Seriously hate sites that do that.
mihai_ionic··on Introducing DirectWrite (2011)
I find DirectWrite to be a step down from GDI in terms of crispness and readability, and I don't think I'm alone.

Infinality on Linux can look great on the other hand, if configured properly.

mihai_ionic··on Free SSL Certificate for Open Source Projects
So no one can do a MITM attack and change the SHA1 checksum, OpenPGP Key ID, file lengths and code signing certificate fingerprints as you download package-integrity.html?
mihai_ionic··on EBay Inc. To Ask All eBay Users To Change Passwords
I just made a PayPal account just the other day.

Now I'm really glad that I used `makepasswd --chars 20`, even though I had to paste the password into the input element's value with Inspect Element.

mihai_ionic··on Mandatory encryption on XMPP starts today
I've dropped her a message (kcushing at google dot com) and I suggest you do the same.
mihai_ionic··on YouTube to Acquire Videogame-Streaming Service Twitch for $1 Billion?
It also doesn't fit their app store policy at all, particularly in light of the recent takedowns aimed at guides or utilities for PC games in absence of any copyright claims.
mihai_ionic··on How I bypassed 2-Factor-Authentication on Google, Facebook, Yahoo, LinkedIn
Their customer support may be bad, but their developer support is far worse.

If your application is ever suspended from Google Play, you will be greeted with a message directing you to an appeal form which lets you enter a maximum of 1000 characters to make your case. This is without having an exact idea of the reason your application was suspended in the first place. You are also advised that you may not ask any questions about why you have been suspended, or else they will not reply to your appeal.

A few hours later you will invariably receive the following email:

    Hi,

    We have reviewed your appeal and will not be reinstating
    your app. This decision is final and we will not be
    responding to any additional emails regarding this removal.

    If your account is still in good standing and the nature of
    your app allows for republishing you may consider releasing
    a new, policy compliant version of your app to Google Play
    under a new package name. We are unable to comment further
    on the specific policy basis for this removal or provide
    guidance on bringing future versions of your app into policy
    compliance. Instead, please reference the REASON FOR REMOVAL
    in the initial notification email from Google Play.
    Please note that additional violations may result in a
    suspension of your Google Play Developer account.

Sources:

* http://www.bytesinarow.com/2014/04/skyrim-alchemy-advisor-pr...

* http://blog.hutber.com/how-my-google-devlopers-account-got-t...

* http://arduinodroid.blogspot.de/2014/03/arduinodroid-is-temp...

mihai_ionic··on Why Games Should Enter The Public Domain
There's no such thing as "registering a copyright."
mihai_ionic··on Trolling homework questions - sorting
I would't really count time passing as an operation, since other programs are able to run during that time.
mihai_ionic··on Trolling homework questions - sorting
And it even has the best time bound you can get for a comparison based sort. Most OS schedulers would use a heap/priority queue internally for timers, which makes sleep sort O(n log n).
mihai_ionic··on Federal judge rules NSA phone surveillance legal
Thanks.

The ranking algorithm seems to be acting in strange ways. The top submission only shows up on the third page, which explains how I missed it.

mihai_ionic··on GTFO of my menu bar
Right. And even then, if you open a resource intensive page in Chrome, it will often kill processes that have ongoing notifications.
mihai_ionic··on Ask HN: Is C++ still worth learning?
Have you looked at Boost.Proto? You can in principle manipulate syntax trees in any way you like, but you'll have to spice things up a little to fit with operator overloading.
mihai_ionic··on Ask HN: Is C++ still worth learning?
C++ has <chrono>, which guards against this kind of mistake by using the type system.
mihai_ionic··on Ask HN: Is C++ still worth learning?
Because in C++ the rule is "you only pay for what you use."

All the things you want would incur a performance penalty were they the default.

mihai_ionic··on AMD Introduces "Mantle" API Initiative
That's sort of the fault of the hardware vendors though for not proposing any viable extensions that expose texture swizzling. Why would it get any better with a new API?
mihai_ionic··on AMD Introduces "Mantle" API Initiative
libgcm is pretty much just OpenGL with a few Sony specific extensions - plus you have to use their headers which use macros to build the command lists, probably pulled right out of NVidia's driver code.

It's quite fascinating how many of the PS3's APIs are wrappers around established standards/libraries, almost as if they were deliberately crafted to require more porting effort from developers.

Page 1 of 2Next →