HNHacker News
TopNewBestAskShowJobs

jclay

376 karma · joined December 5, 2016

Founder @ meldstudio.co
submissionscomments
jclay··on Librem One – A growing bundle of ethical services
I find the “ethical” framing around this to be rather problematic.

I hate ads and care about my privacy as much as anyone else here. However, the argument that a free ad-supported product X available to anyone in the world with an internet connection is less ethical than product Y which requires a monthly payment for access seems tenuous at best. Especially when you consider that the price is out of the question for those in developing countries.

This is a luxury purchase, not an ethical one.

jclay··on Librem One – A growing bundle of ethical services
I agree and this strikes me as odd as well. I really want to like this product and it’s squarely in the area of a service I would pay monthly for.

But, the Social app looks exactly like a twitter screen shot, and the VPN looks identical to PIA’s iOS app.

The chat UI isn’t great, and the Mail app is even worse. They all look like apps you would find on F-Droid which are great, but I wouldn’t feel excited about paying monthly for an app suite that lacking in polish.

Their claims of millions of active users on each of the services also seem questionable. Maybe if they’re counting the total number of XMPP users I could see that.

Lastly, the framing of donating to what is by definition a for-profit company is off putting for me personally.

jclay··on Modern C++ Won't Save Us
The point is that I've noticed a broad "religious" trend where those promoting Rust don't lend any credit to the places where C/C++ has valid strengths, even if due to it's legacy. It doesn't do a great service to either community to constantly pit the two against each other, and to misrepresent the other in a way that's not honest. C++ doesn't exist and continue to evolve just because it's been around forever, there are a number of things leading to it's continued use that should be brought into the discussions.

C++ isn't going anywhere. In 20 years you may not be writing in it, but you'll still be calling into it somewhere in the software stack (especially if things continue moving the WebAssembly direction).

Even if you're using Python's SciPy today, you're calling into LAPACK written into Fortran.

jclay··on Modern C++ Won't Save Us
The issue with bindings is that you either commit to maintaining them yourself, or you rely on someone else. In this case, the Rust Qt bindings I found [0] were generated for Qt 5.8, which was released nearly 3 years ago. The tests on Github report "failing".

Then, you have the cognitive overhead of translating the documentation, and other sample code. In my experience with bindings, this ends up requiring knowledge of the language you're binding to. It seems easier to just write it in the native language instead and deal with those quirks rather than bindings quirks.

Do the Rust bindings show the Qt docs in the autocomplete? If there's not input validation on the binding side, then you'll end up in C++ again figuring out how to sort things out.

Regarding CUDA, I think we're all hoping for a cross GPU alternative. There's OpenCL, Sycl, ROCm, Kokkos but their API is also written in (you guessed it) C++. Need to render to OpenGL? You'll be writing in C. Unless one of the companies decides to replace driver interfaces with Rust, any application using them will be dependent on N bindings working.

You're ultimately not escaping C/C++ for any systems development. You either deal with the complexity of interfacing between language A and C/C++ or just deal with the quirks of C/C++ themselves. Pick your poison.

0. https://github.com/rust-qt/ritual

jclay··on Modern C++ Won't Save Us
I really don't get all the hate that C++ gets. The suggested alternatives in the article are Rust and Swift. What if you need to develop a cross platform GUI, that has a backend running a CUDA or OpenCL algorithm? For the former, you can use Qt, which isn't without it's warts, but is pretty tried and true in my experience (see KDE, VTK, etc). For the latter, you'll end up writing your CUDA code in C++ anyways. I guess you could go the route of writing bindings, but that is not without additional effort. Not that it won't happen for Rust, but C++ also has tooling suited for enterprise use that are largely unmatched in other languages (Visual Studio, Qt, etc). Sandboxing, static analysis, and fuzzing tools are also mostly built for C/C++ codebases. It's also an ISO standard language which makes it both a language full of warts due to decision by committee, but also a candidate for a stable, long-lasting language that will outlive many of us. (Try finding an ISO Standard Language you don't hate).

Either way, C++ is certainly not for every project, but the articles scattered around the web claiming it should be superseded by Rust are plentiful. These opinion pieces make no attempt to credit C++ for when it does make sense to use. Despite it's quirks, it is still the most optimal way to program HPC applications or cross platform GUIs that are not Electron based. The security tools around it and the fact that it's an ISO standard language make it a solid choice for many enterprises.

jclay··on The SR-71 Spy Plane Was So Fast, It Outran Every Missile Fired at It
The SR-71 flight manual can also be found here [0].

I was surprised to find the plane can be flown solo [1], and with no pressure suit below 50,000 feet [2].

There is also a section on "Tactical Limits" describing scenarios where exceeding normal operating limits is advised to exit a hostile area [3]

0. https://www.sr-71.org/blackbird/manual/

1. https://www.sr-71.org/blackbird/manual/5/5-23.php

2. https://www.sr-71.org/blackbird/manual/5/5-23.php

3. https://www.sr-71.org/blackbird/manual/3/3-135.php

jclay··on How I'm able to take notes in mathematics lectures using LaTeX and Vim
I used to do this, but I switched to just using a Jupyter Notebook. It’s nice to be able to move between multiple computers, with no need to set up a LaTeX install.

A couple of things I love about this setup:

I can write in Markdown and drop to LaTeX when I need to forumalate any equations.

For homework, I can implement a quick Python script inline to build intuition behind a topic.

I can use Sympy to simplify and solve for more complex derivations. This outputs LaTeX which I can paste into the requisite Markdown cell.

With Plotly, I can quickly create a nice 2D or 3D visualization.

jclay··on A framework for creating Python/C++ polyglots
I believe it's no longer the case. The maintainer of Cppyy was cautioning that the Python 3 support was somewhat experimental at the time, but I believe it's officially supported now. Either way, it could have been solved by building from source, but I was feeling lazy :)
jclay··on A framework for creating Python/C++ polyglots
For anyone looking for a more usable version of C++/Python interop, I can't recommend Cppyy[0] highly enough. You can use any C++ code/libraries from Python without the need to write any bindings. I created an example project here to test it out[1].

0. https://cppyy.readthedocs.io/en/latest/

1. https://github.com/jclay/cppyy-knearestneighbors-example

jclay··on Some Details of My Personal Infrastructure
I really like the personal homepage idea. Reminds me of the iGoogle days.

Anyone know any products / tools to create a simple one consisting of essentially an organized collection of links? I guess any static site generator could work, but would be nice to have an out of the box theme and can show RSS Feeds.

jclay··on U.S. Student Debt in ‘Serious Delinquency’ Tops $166B
American here who just went through this process. I returned to finish my undergrad at one of the most expensive schools, in one of the most expensive cities.

I think as others said, many students aren’t doing the ROI calculations.

For me, the government loans are 3.75% which is totally reasonable IMO. One could easily outpace this with an ETF fund.

The private loans are more expensive at 6% and up but the lower end is still totally reasonable.

The real issue is that people taking these loans lack the financial skills to pay them back. A friend who is out of school for 10 years has a near six figure loan debt that he refuses to pay down despite earning six figures. Learning to budget and live frugally is a required skill to escape the debt that many don’t have.

I also know very few that have visited financial aid to get a second look at their scholarships / grants. I went every semester and walked out with something. A friend walked out with $14k extra in financial aid from one meeting. Those in the worst positions financially also get vastly more aid. I had some savings going in but still paid a fraction of the tuition sticker price.

In all, the experience worked out well in my favor with a paid research position and other breaks along the way, but given any other situation I would recommend going the state school route which is often a tenth of the cost.

jclay··on Cygwin 3.0.0-1
Hadn't seen this until now. This project looks great.

As someone who has mostly used the MSVC environment on Windows, can you comment on how often Cygwin allows for a Linux port to compile and run with no source changes? I read a while back that the fork "emulation" is a performance hit. I wonder if Cygwin benefited from the WSL fork implementation [0]

0. https://news.ycombinator.com/item?id=11391797

jclay··on Problem solving with Unix commands
I’ve tried to love it while using it as an interactive shell, but it’s hard for me to lose the Unix muscle memory and remember their verbose commands.

For anything more than a single pipe, or anything that requires loops or control flow, I switch to Powershell in Visual Studio Code with the PowerShell extension which has intellisense and helps to poke around the methods on each object. From there you can select subsets of your script and run with F8 which helps me prototype with quick feedback.

jclay··on Problem solving with Unix commands
Great example. PowerShell is definitely underrated. I don’t care to use it as an interactive shell, and that likely turns many off to it, but now that it’s cross platform I think it’s massively underrated for these sorts of tasks.
jclay··on Problem solving with Unix commands
After moving back to working on a Windows machine the last several years and being “forced” into using PowerShell, I now find myself using it for these sorts of tasks on Linux.

I now use PowerShell for any tasks of equal or greater complexity than the article. It’s such a massive upgrade over struggling to recall the peculiar bash syntax every time and the benefits of piping typed objects around are vast.

As a nice bonus, all of my PowerShell scripts run cross-platform without issue.

jclay··on Marker: A terminal command palette
Are your dotfiles available anywhere? I'd be interested in trying out this setup.
jclay··on The Apple iPhone XR Review
You can move the cursor with a long press on the space bar for iPhones without 3D touch.
jclay··on AresDB: Uber’s GPU-Powered Open-Source, Real-Time Analytics Engine
Does the LLVM IR output from the JIT compiler have to then be compiled to CUDA PTX with nvcc? I looked a while back for a JIT compiler for CUDA, but didn't find much.
jclay··on AresDB: Uber’s GPU-Powered Open-Source, Real-Time Analytics Engine
Can you share the academic work you're referring to? Would be interested to read more.
jclay··on AresDB: Uber’s GPU-Powered Open-Source, Real-Time Analytics Engine
Interesting. MapD and this project both use Thrust under the hood and from what I gather, both attempting to address the same issue. Can anyone speak to the differences?

While I originally didn’t get the case for GPU accelerated databases, it makes more and more sense given that the bandwidth speeds between GPU and CPU are steadily increasing, making the GPU an increasingly attractive option since the latency for GPU<->CPU syncs is diminishing.

jclay··on Goodbye Big Five: Google
What did they switch to?
jclay··on Yarn's Future – v2 and beyond
Since it seems the devs are here answering questions:

Which lightweight shell will be used on Windows? Does it also bundle standard unix tools (if a script pipes to grep or less for example)?

How will paths be translated on Windows? I’ve attempted something similar recently and had to do a fair amount of regex magic + using cygwins built in path translation utility to preprocess commands. Curious to see if there’s a better way to solve that.

jclay··on AMD is edging closer to breaking Nvidia's graphic dominance
Ah, I hadn't seen that announcement. It looks like this was announced recently (November 2018) and it's still 100Gb/s slower throughput than the latest NVLink. Either way, it could certainly be interesting if they compete on price, but I cannot find any information yet on actually using it to sync with OpenCL / ROCm.
jclay··on AMD is edging closer to breaking Nvidia's graphic dominance
Maybe for the competitive consumer graphics market, but I don't see them disrupting Nvidia's hold in the HPC world. With Nvidia's NVLink, you can achieve high bandwidth data transfer between graphics cards without having to pass through the PCIe to CPU. If you have large computations that require syncing data among multiple GPU's, NVLink is your most performant option by a large margin. That's not to mention how much further ahead CUDA is from Sycl, OpenCL, ROCm, etc. I certainly welcome the competition (and hopefully an open standard). In my experience, CUDA is ahead on developer tooling, performance and productivity features (Thrust, Unified Memory, C++17 support, etc).
jclay··on FBI affidavit against Ryan S. Lin in cyberstalking case (2017)
One important distinction could be that these were HTTP requests made on his account page or other. If he logs into the account to update billing, etc that would certainly be logged.

All of what is claimed in the statement would be possible even if we assume no logs are stored for the VPN Server they run, which makes no guarantees about access to their HTTP properties.

jclay··on Language Server Protocol implementation for Swift and C-based languages
Related: It's an interesting time for C++ tooling in general. Based on conversations with a member of the Visual Studio team, I've come to understand they're responding to increasing competition from CLion. This was the driving force behind the decision to prioritize first-class CMake support in VS 2017. I also think they're taking notice of what's working well with VSCode and taking that into account for VS 2019 updates.

I've moved away from it for my C++ needs since it's just so complex. The vim extension works well, but beyond that I can't master any of the keyboard shortcuts as they're so different than any other editor I've used in the past. These days I use VSCode with VSCodeVim, cmake tools and clang-query (which is fantastic). I've been really loving working with this setup. I fire up VS 2017 with `devenv my_proj.sln` when I'm lacking any advanced performance profiling / debugging features, but this is increasingly rare.

Overall, with the clang developments in the last few years, you can entirely replace the MSVC tooling. PDB debugging, ABI-compat, etc. Now clang-query and this work by Apple will ensure the IDE experience is taken care of too. The competition is welcome.

jclay··on Language Server Protocol implementation for Swift and C-based languages
For anyone interested, here is their official announcement back in April 2018 on the LLVM mailing list about their vision and plans for the clangd updates. As a C++ dev, I'm excited to see this tooling come to fruition. It's going to make the IDE experience with Clang based tooling far superior on all platforms.

https://lists.llvm.org/pipermail/cfe-dev/2018-April/057668.h...

jclay··on Six-Year homelab history in pictures
Can you expand on the QoS setup you’re using? I’ve recently read about the fq_codel addition to Pfsense and wondering if anyone here has been using that.

I’m also looking for more performance related tunes as well. To that end, I’ve configured Cloudflares DNS but not sure what else yields results. It sounds like squid caching is mostly useless due to most traffic being HTTPS.

jclay··on Six-Year homelab history in pictures
I recently set up Pfsense on an old box I had lying around. The practical uses i’ve found are: setting up the PfsenseNG DNS adblocker and setting up an OpenVPN server so I can VPN into my LAN away from home instead of port forwarding. I also just set up Dynamic DNS so that I can do this with a domain.

Can anyone share other use cases they’ve found to be practical with their homelab setup?

jclay··on Windows file access performance compared to Linux
They mention that file performance decreases with the numbers of filters that are attached to the NTFS drive. Is there a way to list the filters to determine which ones (and how many) are applied on your system?
← PreviousPage 2 of 4Next →