HNHacker News
TopNewBestAskShowJobs

joshuata

227 karma · joined January 25, 2016

[ my public key: https://keybase.io/joshuata; my proof: https://keybase.io/joshuata/sigs/t7yGcWn1oZG_J-i005iiYefOofxoeXo5rgsmlHKvs8o ]
submissionscomments
joshuata··on Google Talk Is Being Discontinued
Although this is an appealing idea, I don't think it is realistic. Lobbying would destroy any legislation almost immediately, and there would still be the issue of competing standards.

I think a more achievable version would be that any online service which maintains user data must provide a method for a user to retrieve that data in an open-source format. Some companies would deliberately obfuscate formats, such as calendar appointments as JSON rather than iCAL or another existing standard, but I think it would give users more control than they currently have.

joshuata··on Overkill: Java as a first programming language (2010)
It was even worse starting in C++. Almost half the code in any project was opaque black magic. What is char and why do I need it? Why do I need `using namespace std`? Why do I need to create a Pair in order to insert into a Map?
joshuata··on A Visual Guide to What's New in Swagger 3.0
Just read the first paragraph: "...Since then, it's been moved to the Linux foundation and renamed to Open API"
joshuata··on Lack of Oxford Comma Could Cost Maine Company Millions in Overtime Dispute
I would write it (agree I you) since it is similar to a conjunction - the "with" is implied.
joshuata··on Plex Media Server on Cloud
It's also painfully slow. I've been using it for the past few months, and it rescans my library every time I access it. Half the time it shows my libraries as empty. Overall it feels very unfinished.
joshuata··on ANTLR Mega Tutorial
You are right, the regular/context-free comment was a typo. You are also correct about c being non-context-free[0]. I have just seen many explanations of language hierarchy online mistaking type-checking for language complexity that it is a pet peeve of mine.

[0] http://eli.thegreenplace.net/2007/11/24/the-context-sensitiv...

joshuata··on ANTLR Mega Tutorial
You are (essentially) correct. The language itself is context-free, and therefore parse-able as a regular language. Looking up identifiers in symbol tables is part of the type checking phase of compilation. This is a pretty common misconception, that type constraints effect the parsing complexity of a language. Language type only relates to the process of building an abstract syntax tree from an input, not validating it.
joshuata··on A Fight to Fix Symplectic Geometry
Many of the ideas from infinite mathematics interact with finite mathematics in very interesting ways. For example, the traditional integral is the Riemann integral which cannot handle sets with too many (uncountably many) discontinuities. The Lebesgue integral loosens those restrictions by using measure to guarantee there aren't too many discontinuties. The Lebesgue integral, in turn, is used to integrate over function spaces, allowing for techniques like fourier transform and technologies such as mp3 encoding.
joshuata··on Master C++ Programming with Open-Source Books
I was reminded of this yesterday: I work on a research-oriented C/C++ compiler with several people who would certainly be considered C++ "experts". We came across a bizarre bug introduced by static destructor ordering. Even with the lines of code highlighted and a detailed paragraph explaining the error, it took us almost 30 minutes to figure out how the undefined behavior was causing the bug we saw.
joshuata··on Things Every Hacker Once Knew
I understand your argument, but I would disagree with a few points:

First, we use computers for so many more things than cars. The average user does really well with basic tasks like checking their email and simple word processing. This would be daily driving in your car analogy. Occasionally things blow up, but that isn't too different from a major problem with a car. However users are constantly trying new things with computers, new programs, websites, and tasks. Car-owners who are constantly trying new things with their cars have as many problems, if not more, than the average computer user. The difference is that the people who use the full range of their car's capabilities are deeply interested in their vehicles.

Second, abstractions like the check engine light are far from perfect. How do you know whether the light signals imminent failure or a minor inconvenience? What additional information is needed for the mechanic to diagnose the problem? I recently chased down a problem in my car that caused the check engine light to come on with a code that was physically impossible. It took a few weeks of careful experimentation and instrumentation before I was able to figure out what it thought was going on. This was a case where I absolutely needed more than a cursory knowledge of how my car works.

I also think that a hacker should be similar to a amateur mechanic: although their car might be fuel-injected, they have a cursory knowledge of how a carburetor works. They may have an automatic transmission, but they understand what a clutch is. Compare that to many developers who have never set foot outside their niche; They have never used a radically different programming language or a different OS. They've never taken the time to dig into the layers beneath the one they use. I would argue that is a weakness. How will you ever debug a problem when it inevitably occurs in the layers beneath you?

joshuata··on Rust vs. Go
That is one reason to choose Rust, but that is far from the only reason to prefer Rust over Go. I've found that algebraic data types and pattern matching have become irreplaceable parts of my programming toolbox, to the point it is painful to work without them. Rust also has a powerful macro system that Go cannot match.

This is not to say that Rust is better than Go in every way, but performance is far from the only facet when I compare the two.

joshuata··on Show HN: Alacritty, a GPU-accelerated terminal emulator written in Rust
I love tmux since I regularly move between OSX and linux machines across several versions. With tmux I can create one .tmux.conf file that standardizes my tab/split behavior across all of the systems regardless of the emulator I use. This works a lot better for me than having to install specific emulators on each machine, several of which I do not have administrative rights over.
joshuata··on Vivaldi – A Browser for Our Friends
The source is available at https://vivaldi.com/source/?lang=en_US
joshuata··on Grumpy: Go running Python
In regards to the third point: The global interpreter lock protects the fact that python's GC scheme is not thread safe. It does not coordinate accesses across threads, and therefore grumpy's would not either. In grumpy the GIL is replaced by Go's GC implementation that is specifically tuned for multithreaded execution. Any additional synchronization would need to be done with individual locks etc...
joshuata··on Problems with CSVs
Many of these problems could be avoided if we used the character codes for unit (31) and record (30) separator. This would avoid any problems with tabs or line feeds, as well as better matching the intended semantics of ASCII/UTF-8
joshuata··on Worried About the Privacy of Your Messages? Download Signal
I thought the same as you about gif search until I saw what signal is planning for the feature: https://whispersystems.org/blog/giphy-experiment/

By proxying the encrypted request through another server, signal never sees the content of the request and giphy never gets the identity of the requester. I'm not sure that this is strictly necessary, but it certainly increases my confidence that the signal team are serious about their work.

joshuata··on Security for Open Source Code: Dynamic Analysis Is the Only Way
Agreed. Their definition of static analysis is laughably bizarre as well; there are many security and safety properties that can be proved by static analysis but not by dynamic analysis. Additionally, many of the problems they attribute to static analysis (non-specific versioning and recursive dependencies) are caused by the package managers themselves, and can be solved using static analysis if the build tool is well defined and well behaved.

Their tool has a few major weaknesses:

  1. Builds are not reproducible - Reproducible builds require pinned package versions, which they specifically avoid. This could result in security holes if a dependent package version was bumped after the parent project was tested.

  2. Subject of analysis - Their main target of analysis is the build file. This severely limits the extent of their analysis and requires them to build new tools for each build tool used.

  3. Underestimation - Since a code path must be exercised in order to analyze it, you are guaranteed that the set of vulnerabilities detected is a subset of (or equal to) the true set of vulnerabilities. This is the opposite of what I believe should be the default: Always prefer false positives over false negatives. Both static analysis and binary analysis allow the programmer to over-estimate their analysis, guaranteeing that all vulnerabilities will be found.
joshuata··on Overselling A.D.H.D.
I have struggled with ADHD for my entire life. I don't think you realize how it can affect you.

I started to take medication after nearly failing out of college. It was physically impossible for me to study for more than 40 minutes; I would fall asleep no matter where I was. It was not a matter of motivation or dedication. I was hitting a physical barrier that I could get around any other way.

I agree that there is over-diagnosis is a problem, but especially as a person who came around to medication as a last resort, it is very offensive to say that I don't need it. I avoided it for years, but within a few months I was able to use all of the strategies I had learned, coupled with the meds, to seriously turn my life around. I went from academic probation (GPA in the 2.2 range) to top of my classes with about 15 mg of adderall a day. I've tried placebos, I've tried therapy, but I would not be able to do the work I do today without drugs.

joshuata··on Some news from LWN
It's actually very problematic from an accessibility standpoint. The entire text of each post is a single pre tag which makes it almost impossible to use with a screen reader. This is exactly why there were complaints about fancy style on websites; it often ruins the structural markup of a page.
joshuata··on The Brain That Couldn’t Remember
I'm very skeptical of scientists who destroy experiment data. Storage space is less of a problem every year, and it is a huge comfort that you can ask a researcher for the data they collected.

In this case she was actively destroying data after finding contradictory evidence. It is hard for me to conceive of a situation where that would be appropriate, especially where there other researchers cannot duplicate her experiments.

joshuata··on Ask HN: What's the best material to learn Racket?
One of the best resources I've found is Programming Languages: Application and Interpretation by Shriram Krishnamurthi[1]. It walks you through building a small interpreter and language in Racket. Not only does it teach Racket, but it helps understand how and why the language works.

[1] https://cs.brown.edu/~sk/Publications/Books/ProgLangs/

joshuata··on Securing a travel iPhone
I did this and then tested it against several friends and family. I could only unlock the phone about 75% of the time, but I never got a false positive after about 20 different tries over the next week or two (cleaning the sensor regularly, of course)
joshuata··on Ask HN: Examples of reliable software you enjoy using
I've gotten to the point that sqlite is my immediate answer to any Ask HN about useful tools or good source code. I'm to the point of slight obsession...
joshuata··on What People Who Demand Innovations from Apple Don't Get
A couple lines really bother me in this piece:

"... it matters to you whether your phone has 64 or 128 GB of RAM"

Holy Cow! I want that phone! I've only got 8 GB of RAM on my desktop.

"The first iPhone had apps..."

The only apps the original iPhone had were the kind you could get on any feature phone: weather, stocks, etc... It wasn't until later that the app store opened and really changed things.

As a whole, the article seems incredibly uninformed about technology. I would give the author a pass, but their conclusion doesn't seem to agree with history either. When the iPhone and iPad were released they were incredibly expensive and dismissed as toys for geeks. Less than a decade later those two devices have revolutionized technology and given Apple a dominant position. Apple has already crossed the chasm. Not with MacBooks, but with iPhones.

joshuata··on MacBooks are outdated, underpowered and overpriced
I agree. I use a 13" 2013 rmBP with the base processor and 8 gb of RAM. There have been several times where I was running 2 external monitors (1080p), watching HD video, running 2-4 virtualbox vms, running a big compile job, and surfing the web with 10+ tabs open. Even under that load the computer felt responsive, and that is all I really care about.
joshuata··on Ask HN: What are some examples of beautiful software?
My vote is for SQLite. It is very well written, incredibly well tested, and one of the simplest and most flexible tools out there. My favorite part is the extensive documentation explaining the architecture decisions they made.
joshuata··on Ask HN: What do you use to manage dotfiles?
Thank you so much for that post! I used it extensively when I set up vcsh and my. It took a few hours to get everything working, but the flexibility is unbelievable.
← PreviousPage 2 of 2