HNHacker News
TopNewBestAskShowJobs

davekeck

590 karma · joined May 24, 2014

Hardware / software engineer

davekeck at gmail

submissionscomments
davekeck··on ASCII art editor designed for the Mac
You simply can't create an app with a high-quality, Mac-conforming, polished UI with cross-platform tools like Qt. The apps always end up with small but noticeable differences and peculiarities compared to 'native' Mac apps.

You can argue about the merits of wanting such a UI, but given that the Monodraw developer does, creating a Mac-only app is the only option.

davekeck··on Show HN: Go channels as a C library (with Obj-C wrapper)
Thanks for the feedback!

I didn't mean to imply that this project even remotely implements CSP. What I mean to say is that this library is an implementation of the channel primitive associated with CSP. I mentioned CSP to give the project some context outside of Go.

And yes, the pointer can still be mucked with after sending over an eb_chan; perhaps I should call them "cooperative channels," meaning the sender agrees to cooperate with the receiver and not modify the data after sending.

> Who's meant to deal with freeing? Do you necessitate GC?

eb_chan instances are reference-counted, so any entity that needs to ensure its existence should retain the channel, and release it when it no longer requires its existence.

I decided to make eb_chan a reference-counted type instead of using an alloc/free pattern because the former is much more flexible in a multithreaded environment. Furthermore, the RC pattern is a superset of the alloc/free pattern, so if you prefer to use it as such, just never retain the instance after creation.

> It's also fairly distasteful that all type safety is discarded.

I agree, but so far I haven't found a better way given that the target language is C. I've thought about using some preprocessor magic to allow defining of custom eb_chan types, I may have to revisit that.

Thanks again!

davekeck··on Show HN: Go channels as a C library (with Obj-C wrapper)
eb_chan is a C library (supporting OS X, iOS, and Linux) that provides a complete implementation of the Go channel primitive. Also included is an Objective-C wrapper which allows for a convenient select-statement syntax using blocks.

eb_chan provides the full range of functionality of Go channels, including blocking and non-blocking selects on an arbitrary number of sends and receives.

Two focuses of this project are to maximize throughput and minimize resource consumption. To maximize throughput, eb_chan includes a fast-path (to avoid making system calls) which consists merely of acquiring a spinlock and modifying a structure. To minimize resource consumption, eb_chan avoids using scarce resources, such as file-descriptor-based primitives like UNIX pipes. Instead, eb_chan uses Mach semaphores (semaphore_t) on Darwin, and POSIX semaphores (sem_t) on Linux, both of which can be allocated on the order of 10^5 without hitting resource limits.

Feedback appreciated!

davekeck··on The Home Depot confirms payment systems breach
No damages?

- Go through your entire credit history over a six month period looking for illegitimate charges. (Many people, such as myself, use a single credit card for most of their payments -- that's thousands of transactions.)

- Wait a week for a new credit card to arrive in the mail, and hope none of your automatic payments try to charge the old card while you wait for the new one.

- Update all of your automatic payments. Doing it once would be one thing, but every time one these breaches happens?

None of these are the end of the world, but they're certainly not "no damages".

davekeck··on If You Want to See Inequality in the U.S. at Its Worst, Visit an Impound Lot
Of course -- the fines don't have to relate linearly to one's income, in the same way that taxes aren't linearly related to one's income. But a system that relates fines to some function of income could be a lot more just than the current system.
davekeck··on If You Want to See Inequality in the U.S. at Its Worst, Visit an Impound Lot
A much fairer system would charge people based on their income. Parking tickets, speeding tickets, towing charges, and really fines of any kind, would be much more just if they took into account how much money a person has, so that it stings the same for everyone.

As the article mentions, a poor family getting their only vehicle towed could devastate them, while it's only a mild inconvenience for someone that can afford a limo to pick their towed Ferrari up. That doesn't seem like the optimal system.

davekeck··on EFF Asks Judge to Rule NSA Internet Backbone Spying Techniques Unconstitutional
Of course the NSA needs this ability -- as an agency whose recognized goal is having information, they of course will always need all information.

The question is whether we need the NSA, and whether we're willing to forfeit our rights and principles to provide them with all information.

davekeck··on Named parameters in C
The problem is that arguments are often ambiguous without the accompanying function declaration. (And the problem's exasperated when there are lots of arguments.)

The solution is named arguments, but I'm not convinced the added complexity of this solution is a net improvement.

davekeck··on Atlassian developer apologizes to "all getting offended" by his sexist joke
I'm trying to imagine the reverse situation with a female speaker playing on negative male stereotypes with a primarily-female audience. E.g.:

X is my boyfriend: physically strong, just wants sex, doesn't do laundry, generally messy, checks out my friends

Personally I wouldn't be offended if someone presented the slide above, and I have a hard time imagining that there'd be an uprising about it. To me this clearly indicates a double standard. So where should we draw the line on gender stereotypes, to be applied equally to both sexes? I can't answer that, but I think the above analogy shows that people are being hypersensitive.

davekeck··on Apple Testing ARM Based Mac Prototypes
I'd be surprised if they didn't have prototypes running on ARM processors. I can already imagine their marketing for a Macbook Air that runs for a week on a single charge.

Of course such a transition would require developers to re-compile their software for the new platform, though I imagine Apple would make "Rosetta 2" to run x86 software of ARM processors.

I wonder how much Apple cares about users not being able to boot Windows. I suspect not much.

← PreviousPage 4 of 4