HNHacker News
TopNewBestAskShowJobs

plq

1,366 karma · joined April 2, 2010

github.com/plq ext-hn@burakarslan.com
submissionscomments
plq··on Windows Sandbox
> Microsoft should make it easy to download, install and update on all non-Enterprise versions of the OS.

I'll take this one step further: Microsoft should make this as easy as "right click > Run in Sandbox". It would make the lives of everyone so much easier.

plq··on Windows Sandbox
How detectable will it be? I doubt this will make the lives of malware analysts any easier.
plq··on Microsoft is building a Chromium browser to replace Edge on Windows 10
> Many of you here don't test your own work in Edge.

I'd have loved to if it'd work on my development environment (! Windows) They should be focusing on porting IE to other operating systems and not leaving the control of a core component of their offering to somebody else.

They've been doing some good stuff lately, and I'm sure this is another honest attempt towards doing good to developers, but they got this one completely backwards.

plq··on Microsoft is building a Chromium browser to replace Edge on Windows 10
> My favorite is prompting me to restart to install an update when I open it.

It's the best they can do. Windows carries a lot of baggage and bad decisions around its OS design. One of them is that when a file has an exclusive lock (eg an .exe file that's running) it can't be deleted. NTFS and Windows Kernel don't implement reference counting like a proper OS.

So Firefox (or any software package with in-place self-update functionality) needs to wait until the application is shut down to perform updates. Firefox team chose to do it before launching the app. They could have done it after closing it. Both approaches have their pros and cons so it's not easy to criticize them either way.

plq··on Ditching Windows: 2 Weeks with Ubuntu Linux on the Dell XPS 13
I honestly don't see the problem. It's a different platform so it's got different quirks, that's just life.

Having said that, I strongly prefer Linux's explicit shared object search paths and very user-friendly dynamic linker to Window's implicit search scheme (aka the DLL hell). If that means I need to add my dynamic linker along with a couple lines of wrapper script so my binaries work, so be it.

And, you can even avoid the wrapper script if you can make sure your stuff is always installed to a standard location (eg. /opt/yourcompany) and you pass -Wl,rpath to your linker (at compile time) but I really don't see the point.

plq··on Ditching Windows: 2 Weeks with Ubuntu Linux on the Dell XPS 13
> It's still a PITA to deploy a compiled app on Linux with unclear glibc versions

If you don't want to worry about the glibc version on your users' machines, you can just ship your dynamic linker and use it to run your executable in your wrapper script (you do have one, right?). Why's that so hard?

plq··on Show HN: WebRTC implementation for Python using Asyncio
You can't use UDP with web sockets.
plq··on SQLite Release 3.25.0 adds support for window functions
While binary size could certainly be a factor in a good deal of embedded environments, we also need to look at the resource requirements of the binary in question as well.

Sqlite doesn't need too much more memory than what its binary needs whereas with postgresql, you need all sorts of bells and whistles just to get the database system to boot.

plq··on SQLite Release 3.25.0 adds support for window functions
There is nothing stopping you from doing it yourself. The Sqlite FAQ[1] even has an entry on it.

Two things holding this back: 1. code being inside our outside sqlite would not be much different. 2. the amount of additional test code would be humongous for an operation of that level of complexity.

So, just do it yourself. It's not that hard.

[1]: https://www.sqlite.org/faq.html#q11

plq··on Why Discord Is Sticking with React Native
When you calculate the sum of the so-called "memory consumption" of all processes, you generally end up with a number ridiculously above your the amount of physical memory installed on your box.

The only reliable way to learn the memory consumption of a process is to somehow make sure other processes don't allocate/deallocate memory, kill the process in question and watch the difference in global memory consumption.

plq··on How I use Wireshark
> Crazy useful for sending server side errors to mobile apps to simulate failure

That's what test suites are for.

plq··on LemonGraph – A log-based transactional graph
The committers' names are all fake though :)
plq··on Data serialization
Serialization format has no relation with schemas. Also, Schema validation can be as strict or lax as you want it to be.

I wrote Spyne (in Python) mainly to abstract the schema from the serialization format. The protocols are totally pluggable and your code cares only about the models and not the serialization format. The latest alpha is out not long ago. Check it out if this sounds interesting.

https://github.com/arskom/spyne

Code generator: http://spyne.io

plq··on So Long Last /8 and Thanks For All the Allocations
You need NAT whenever you can't change your peers' routing table, for whatever reason.

It's used extensively in IPv4 world for LAN=>WAN connectivity because your only peer (your ISP) won't agree to send all traffic for 192.168.0.0/24 to your home.

Its most popular use case disappearing doesn't make it any less useful for the narrow set of circumstances when it's basically your only option.

plq··on C++17 constexpr everything, or as much as the compiler can
Genuine question: Is there anything protecting us from an entirely new class of compiler bugs where the constexpr code and the compiled code behave differently? Is it at all possible?
plq··on The Peculiarly Quiet Decline and Fall of the KVM
... which makes this a total non-story in my opinion :)

Of course KVM switches will eventually disappear; when was the last time any of us (minus datacenter staff) has been to the server room since the dawn of the PaaS age?

plq··on How Stylo Brought Rust and Servo to Firefox
Typical behavior when the OS is writing to the swap space to free some ram.

If that ever happens again, you can run "free" on the terminal to see whether this is the case.

plq··on Dell’s gamble on Linux laptops has paid off
FWIW, my Lenovo T460s also has NVMe and it works just fine via /dev/nvme*. Eg. my boot partition is /dev/nvme0n1p1
plq··on Saying Goodbye to Firebug
Wasn't SoftICE a bit of an overkill for cracking WinRAR? If memory serves right, it was a tool mainly for debugging kernel-level code (drivers) -- that's why it had to start before windows. WinDBG and similar userspace tools should have been just as good (or even better, as they woudn't interfere with WinAMP :)) for dealing with userspace processes.
plq··on Micro Front ends – extending the microservice idea to front end development
The web rediscovers what Delphi, VB and similar tech did at nineties -- components :)

From my limited exposure to the subject, Google's Polymer framework seems like a good base to build on if you are willing to drink the web components kool-aid.

plq··on The Serverless Revolution Will Make Us All Developers
This is where the good old car analogy falls apart doesn't it :)

I have this software package that I happen to own (the car) whose engine (the backend code) is claimed to be nonexistent, which annoys me slightly more than just "slightly" which motivates me enough to exchange micro-rants on forums with complete strangers.

plq··on The Serverless Revolution Will Make Us All Developers
I've developed some resistence against marketing people talking nonsense over the years but this serverless thing is ... some next level bullshit.

Just because I'm not maintaining my car's engine doesn't mean my car's engineless! Just call it "managed cloud" or something -- calling it "serverless" is nothing short of a blatant lie!..

plq··on Modern terminal-based text editor
mcedit, the editor of the infamous Norton--err, Midnight Commander, was my best friend back in the good old days of writing php via ssh directly on the server of our university's LUG. It even supports block editing!

But please, instead of screaming upon being hit with that bright blue background, run mc, press F9, go to General > Appearance and select the dark or darkfar theme :) (and F10 to save config and exit)

Having said that, it breaks my heart a little to see nano bashed like that. (those of you who upvoted parent, I'm looking at you too!)

nano is 1) designed to be the best editor for slow connections, 2) Its source code is also quite easy to instrument. Eg. if you need a nano that is able to edit just a single file, someone familiar with application programming in C on linux can do it in no time.

plq··on Redesigning Python's named tuples
vtable is always "hidden". It's only there when there is at least one virtual member defined. Sole difference between class and struct in C++ is default visibility.

    class A {
        int a; // private
    }

    struct A {
        int a; // public
    }
plq··on Unix Time 1500M – Friday July 14 02:40UTC
> looks awful today

I don't know what you don't like about it but I think not only that it looks great, but also to me that's a design that's got character.

plq··on How hackers abused satellites to stay under the radar (2015)
> So they're going to trade off signal:noise to get 99.99%, but not 99.99999%.

Depends on where you are in the footprint as well, but of course, totally forgot about the suits.

I should have said it's entirely possible to make Ku withstand the worst weather conditions known to mankind, which is not the case for Ka.

Trivia: Ku stands for K-under, and Ka stands for K-above, where K-band is IIRC something between 18-27 GHz. Electromagnetic transmissions in this spectrum are absorbed by water vapour, so it's a very bad idea to use this spectrum for satellite. Again IIRC, above 70Ghz, the atmosphere stops being radio-transparent.

Ka is way more efficient, but you need a ground station, a satellite and modems that are built from ground up to cope with rainfade. The tricks that work with Ku won't work with Ka.

plq··on How hackers abused satellites to stay under the radar (2015)
$DAYJOB is about deploying satellite equipment.

> Are these satellites in geosynchronous orbit?

Yes. Satellites in other orbits require tracking antennas. A typical one has a four-figure cost at the very least. And if you need uninterrupted connection, you need to have at least two of them, one for tracking the one that sets, and another for tracking the one that rises.

> I'm willing to bet that satellite downlink performance degrades in bad weather

Ku band, as deployed, is highly resilient to bad weather. The SNR will drop, sure, but it will be well above the threshold where it will be unintelligible to the receiver. These things are designed with worst weather conditions in mind. If ever you lost satellite tv during bad weather, that's due to your antenna shaking because of the wind, not rainfade.

DVB-S2 in particular supports adaptive coding modulation (ACM). The standard supports between 4psk and 32psk which can be changed by the ground station when fade is detected in their reference terminals scattered around the footprint region.

You can't really do that for TV links where the bandwidth allocation is more-or-less constant, but you can definitely change modulation for data links which are actually designed to handle such fluctuations in available bandwidth.

plq··on How Unix made it to the top
> Other documents began to accumulate in their directory. By the time we became aware of it, the hoard came to include minutes of AT&T board meetings. It didn't seem like a very good idea for us to be keeping records from the inner sanctum of the corporation on a computer where most everybody had super-user privileges.

I wonder how many meeting minutes, price lists, product specs, supplier agreements, etc. etc. are currently sitting on Google's, Amazon's, Dropbox's servers now...

plq··on WebExtensions in Firefox 52
Will I be able to keep my tree style tabs?

https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta...

The moment this plugin stops working is the moment I stop upgrading. Seriously!

plq··on I don't understand Python's Asyncio
And how is this not a mutex?
← PreviousPage 7 of 13Next →