HNHacker News
TopNewBestAskShowJobs

jgable

284 karma · joined November 26, 2013

submissionscomments
jgable··on The Business of SaaS
Just made a reminder note to do so! As it turns out, you’re squarely in my target audience, as “a software person with hardware ambitions.” :D Will keep you posted.
jgable··on The Business of SaaS
I’m keeping a journal as I go thru the class that I plan to publish at some point. I’ve just gotten to some meaty parts and I can say I’m impressed, but you’re right, I’m not a success story (yet). We will see!
jgable··on The Business of SaaS
I'm taking 30x500 from Amy Hoy and Alex Hillman. They are in patio11's orbit. It's an expensive class and would only be worth it if you are really willing to commit. They have some other less expensive products (Year of Hustle, Just F$&*% Ship) that you can use to dip your toe into their methodology. Look up their blog "Stacking the Bricks". Not affiliated in any way, just a fan and appreciative customer.
jgable··on PID Without a PhD (2016) [pdf]
I always do integrator wind-up similar to how you do it -- apply limits to the overall controller output (which are typically necessary for the system anyway), and use that to limit the integrator. Just putting limits on the integrator is too crude, and it's not like it's any easier to program. Maybe the author introduced that because it's easier for a beginner to understand.

However, I typically do not change the state of the integrator the way you are doing here. I just hold the integrator state (i.e. don't update it) if the controller is limited. That way, noise on the P or D signals doesn't cause my integrator state to hop around. I may do it your way if the controller limits are changing over time for some reason.

I also always low-pass filter the D term, as you mentioned. Otherwise, the D term is just too noisy.

I often find that my P and D terms are limited by how much sensor noise I'm willing to let thru to my controller output.

jgable··on Revisited: Watership Down
My favorite book of all time, bar none. Adventure, bravery, friendship, loyalty, love, life, and death. Written with a vividness and tenderness that brought me to tears. It sounds trite, but it's so true. If you haven't read it, do yourself a favor and do so.
jgable··on The art of over-engineering your side projects
If you are doing hobby side projects that are solely for learning, then this article's advice is (mostly) not intended for you. If your goal is to explore new tech, try new approaches, go down rabbit holes, then by all means, go for it!

The author's use of "side project" is referring to "I'm building something outside of my day job that I hope will turn into a business." IF your goal is to make money, then the author's advice is spot on. Get to MVP. Get users. Listen to them. Iterate. All the advice we hear that applies to startups, applies here.

jgable··on Thunder Run to Seoul: Assessing North Korea’s War Plan
A bit OT: does anyone have recommendations for textbooks or other resources that teach basic military strategy and tactics? Whenever any military discussion comes up that even touches technical aspects, I feel pretty lost. Similar to how with certain sports, I just can't see the movement patterns or how the plays develop.
jgable··on Rust on RTL8710 running FreeRTOS
My company uses a C++ subset (no STL, no malloc) on all of our embedded projects, which are mostly on ARM Cortex-M4.

I'd love to learn and start using Rust in our work, but we are client-project-driven, so it will be hard to justify the investment and productivity drop. I think it would make it easier to attract top talent, though things are weird in the embedded world.

jgable··on Disseminating the New Kilogram: An International ‘Dry Run’
Has anyone here worked in a laboratory or other environment that uses these reference masses and requires this level of precision?
jgable··on Found in translation: More accurate, fluent sentences in Google Translate
(Very) Long term, it will be interesting to see what happens when everyone is carrying Google Babelfish around with them.
jgable··on Page Dewarping
She scans it in a scanner, but the music is often in large books that don't lay completely flat, so you still see the warping near the binding.
jgable··on Page Dewarping
Thanks for the suggestion! I'll check it out.
jgable··on Page Dewarping
This is great! My wife is a music teacher and often scans sheet music so that it's more portable. She has been asking me for a while for something exactly like this. I'll have to tweak it to work on sheet music, since I imagine his methods to identify lines of text won't work for the music staff out of the box.
jgable··on Fellowship V2
Sure, the board may rarely actually hold a vote on a given direction, but their ability to vote to remove the CEO is a huge threat hanging over the CEO. If a majority of the board favors a certain direction, even if they don't hold a vote on it, that exerts enormous pressure on the CEO to follow that direction.

In that sense, we are saying the same thing. I agree that "control" does not require voting by the board. I do assert that investors with board seats exert far more control that those without, and investors with higher equity positions exert more control than those with less. I also assert that an equity stake of 1.5% exerts very little control. Again, YC exerts _influence_ (call it control if you want) simply because of their reputation for being good at what they do, but 1.5% ownership barely changes that equation.

jgable··on Fellowship V2
At 1.5% ownership, YC has no say over the direction of the company (other than through the influence they have from being well-known and respected in the startup space). The conflict arises when your VCs sit on, or even control, your board. Then you, as the Founder/CEO, can be forced by your board in directions that you don't want to go. That situation simply does not exist here, with YC taking such a low ownership stake. Nor does it exist in the normal YC program, since again, they do not take board seats with their 7% stake.
jgable··on How Robots and Algorithms Are Taking Over
"... In fact, this is already happening, in part because programmers increasingly rely on 'self-correcting' code—that is, code that debugs and rewrites itself ..."

What on earth is the author talking about? I've never heard of self-correcting code, certainly never used it, and can't find a reasonable reference to it with a google search. Is he mistakenly referring to "Error-Correcting Code", that is, using redundancy in data storage or transmission to catch and correct for random bit flips?

jgable··on [dead]
Not disputing the likelihood of pilot error, but note that the pilot had nearly 3000 hours of flight time. From the linked Oklahoma 6 story: "The NTSB says Inhofe [the pilot] had a total of 2,874 flight hours, with more than half of those in multiengine airplanes."
jgable··on 0h n0 – A new game from the makers of 0h h1
So who will be first to make a 0h-n0/2048/flappy-bird mashup?
jgable··on A practical introduction to functional programming
I do know list comprehensions, and I use them all the time (not trying to be defensive here, just providing context). I understand that they are just a different syntax for mapping -- applying a function to members of a list to produce a new list. However, while list comprehensions are clean and pythonic syntax, I think the "map" syntax more clearly illustrates the concept that the author is trying to teach.

Your suggestion for asides is certainly valid, and I agree would make it more useful for budding pythonistas. I just think that her focus was to introduce functional concepts, and python was simply an easy language to make the concepts concrete. I think that it's stretching the scope of the article, and therefore watering down its message, to put any additional focus on specific features of the python language.

I guess this is an example of my earlier point: I knew about map and reduce, and understood their power. However, it had not clicked for me before reading this article that they feature so prominently in functional programming because they work with functions that have no side effects.

jgable··on A practical introduction to functional programming
I am. I know python quite well, but I did not understand functional programming before I read this article. Oh sure, I'd looked it up on wikipedia, and read a few blog posts, and perused a Haskell tutorial, but none of that made it click. Too many new concepts at once. Using python as the instructive language is great simply because many people know python, and for those who don't, the syntax is easy to follow.

This article was perfect for me. The "guide rope" paragraph instantly clarified and put into context all the other disjoint pieces of information that I had picked up.

I can now see how to apply these concepts in almost any language. Right away, I can see how to refactor my side-effect-riddled C++ to make it more suitable for unit tests.

I came across this piece after following a previous story on HN, and was very tempted to post it at the time, because it really helped me.

jgable··on Feet-On With Boosted Boards’ New Faster And Cheaper Electric Skateboards
This is indeed a non-educated opinion. Please don't spread FUD.

Lithium-ion batteries are perfectly safe to regen. You need to monitor the cell and pack voltages and limit regen under certain conditions, but it's well understood how to do this.

Any electric vehicle with a lithium-ion battery (and there are millions of them, from skateboards and scooters to cars and trucks) does regen braking. Without regen, you lose one of the most compelling advantages of having an electric vehicle in the first place.

In general, supercapacitors do have much better power density than batteries, but much worse energy density, making them impractical for vehicles at this point in time. There's a reason the vast majority of electric vehicles today use lithium-ion batteries.

Disclaimer: I was formerly a controls and systems engineer for a hybrid-electric vehicle company.

jgable··on RC fighter model UAV build in Jet engine 360+mph [video]
You got that right. I tried RC heli flying for a little bit. Spent several hours flying in the sim and several more flying the real thing, and could never comfortably do a nose-in hover. Very humbling. These professional RC hell pilots are incredible.
jgable··on Firebase is Joining Google
Solution: "They're a stable, growing business that is profitable and intends to be in business for themselves for a long time! Not as risky!"

Not under the control of the customer, obviously.

jgable··on Feynman on how magnets work, and the problem with “Why?” questions
I referenced this video in a discussion the other day about the Conada effect and how wings work [1], and I thought the video was so good it merited its own thread. Feynman gives a supremely insightful answer to a superficially simple question, and I think the issue that he discusses is at the heart of many disagreements, especially on internet forums.

[1] https://news.ycombinator.com/item?id=8470234

* edit: rewording for clarity

jgable··on Coanda Effect: Understanding Why Wings Work
Which is exactly my point.

You: "But that doesn't answer the question. WHY does the air get pushed down?" They: "Because of such-and-such effect..." You: "But that doesn't answer the question. WHY does such-and-such effect happen?" They: "Because of fluid viscosity and boundary layers and navier-stokes blah blah blah..." You: "But that doesn't answer the question. WHY does fluid have viscosity?" They: "Because a such-and-such bonds between the molecules of the fluid..." You: "But WHY..."

See how it goes? Turtles all the way down.

jgable··on Coanda Effect: Understanding Why Wings Work
I think that this topic is a classic example of people trying to answer the problem at different levels of abstraction. There is a famous clip of an interview with Richard Feynman where he cannot give a simple answer to "Why do magnets repel each other?" [1]. He can't give a simple answer because there is no simple answer -- any answer he could give could be followed by the question "And why does THAT happen?", requiring ever more complex answers that quickly descend into quantum mechanics that only top physicists can understand. He makes a meta-point that a person who asks such a question needs to specify the level of abstraction they expect, or barring that, the answerer needs to try to anticipate the correct level of abstraction that will satisfy and/or educate the questioner.

Now, some answers to why wings work are just plain wrong (like the original wrong answer -- the Bernoulli effect). However, when one person says "Wings work because they push air down, and the air pushes the wing up", and another person yells "No, that's all wrong! It's because of <insert-fancy-effect-here>", they can both be right. They are answering the question at different levels of abstraction. They also can be right in different cases -- the source of lift for wings, and the strength of different effects, can change with wing and flow conditions (at low speeds, one effect dominates, and at high speeds, another does. At supersonic speeds, a totally new effect takes over. and so on...)

Here's my attempt at an answer aimed at an appropriate level of abstraction, though of course it is doomed to failure: - Air striking a wing is divided by the leading edge into two streams, one that flows over the top, and one that flows under the bottom.

- Assuming the wing has some positive angle-of-attack, the stream under the bottom of the wing will be deflected downward, and therefore pushes back against the bottom surface of the wing. This part is reasonably uncontroversial.

- The stream flowing over the top of the wing tends to follow the surface of the wing, even when the surface is curving down and away from the stream. Why this happens is subject to the multiple levels of abstraction problem that I mention above. If the curvature of the top surface is too severe, the flow cannot follow the surface, and it separates. This is "stall". Again, why this happens is complicated, and there are multiple effects and levels of abstraction at work, and I only understand the basic levels, so I won't try to go any further. The net result for a typical wing in typical flight conditions is that the flow over the top surface is also deflected downward.

- You can get the amount of lift on the wing by integrating the pressures over the surface of the wing or by examining the curvature introduced to the flow by the wing -- both methods will give you the same answer (and they damn well better!). This is if you have modeled the airfoil and flow in a CFD software package with a reasonably tight mesh so that you know the flow conditions at every point in space near the airfoil. Or, you can pick a standard airfoil whose properties have been determined experimentally! There are exhaustive tables of NACA airfoils to pick from. [2]

Still confused? Yeah, so am I. This is about as deep as I'm prepared to learn this topic, considering that I've given up my former life as a thermo/controls specialist in mechanical engineering, and am now trying to stuff as much understanding of software engineering and computer science into my tired brain as I can. :-)

[1] https://www.quora.com/Why-couldnt-Feynman-answer-the-questio... [2] https://en.wikipedia.org/wiki/NACA_airfoil

* edit for typos

jgable··on Patent troll gives up, can’t defend “matchmaking” patent under new law
Not the case. Piercing the corporate veil depends on a number of factors that do not involve grossly illegal actions like you describe.

https://en.wikipedia.org/wiki/Piercing_the_corporate_veil#Un...

jgable··on We Are Entering the Age of Alzheimer's
I suppose I didn't do much research before posting my original comment. I should have known that there would be plenty of resources out there.
jgable··on We Are Entering the Age of Alzheimer's
I'm assuming you're replying in good faith, but that's pretty silly. I'd prefer that every person gets to choose how to live (and end) their own life the way they damn well please, not starve to death in the woods because of a family tradition. There are a lot of glib solutions would greatly "simplify" things.
jgable··on We Are Entering the Age of Alzheimer's
This comment is asking for trouble, but I'm making it in the hope of getting some good discussion going, and hopefully not a flamewar. I've been thinking about this a lot lately since my own family is struggling with this issue.

I very strongly feel, like many people probably do, that I would not want to live with dementia. I would not want to live that non-life, I would not want my family to have to experience it, and I would not want to burden them with my care. In the not-unlikely event that I'm diagnosed with Alzheimer's or some other form of dementia, I would want to end my life while I'm able to competently choose to do so. I would want to do so with quick and painless drugs instead of a gun. However, assisted suicide is only legal in a handful of US states, and then only in cases of terminal illness with less than six months to live. There is nowhere in the US for an early-state dementia patient to commit assisted suicide.

It is currently legal in Switzerland to do so, and people have traveled there for that very purpose. [1] Other people have committed suicide without assistance to avoid the ravages of dementia. [2]

I'm aware of the counter-arguments to assisted suicide: that it can cross the line into euthenasia, that it makes the most vulnerable in our society even more so... but still, there has to be some way for this to be legalized.

What to do? What are some concrete proposals for how to alter existing legislation to allow assisted suicide in cases of dementia? Does anyone have personal stories that make the argument against it?

[1] http://www.bbc.com/news/health-22715363 [2] http://news.nationalpost.com/2014/09/01/ethically-this-seems...

← PreviousPage 2 of 3Next →