Ask HN: How do you design your personal (toy) projects? - <AUTHOR>

I am about to start a personal web-based project, it is of no commercial value - just something fun.<p>How do you go about designing your personal projects? Do you hack them straight out or sit down and design them first (pencil and paper/UML)? <comment><USER2> It really depends on the scope of the project. Simple projects I just hack through, which acts like a design process.

In 2004 I built a personal delicious clone, which I pretty much hacked together in a week. Overtime I added more and more features. Now, I'm contemplating rewriting it in a framework. It has grown past a weekend hack so now I'm mapping it out.

It's best to know how you work. For me its better to have a working prototype that I can tinker with, even if I know I'll rebuild it eventually.

</comment><comment><USER3> I usually start with some rough pencil drawings and a lot of thinking about the flow of the site, then hack out a prototype. Then I sit in front of it and stare, tweaking a thing at a time, until I'm happy with the result. Then I leave it there for a few hours or a day and stare some more. Whenever I have an idea that would substantially change the look, I usually sketch it again before implementing it.

The pencil and paper thing in my case works as a way to organize my thoughts and define what I'm actually going to do, rather than a formal design process. Usually I have an A4 sheet (or rather several) scribbled with ideas and sketches regarding a single project.

</comment><comment><USER4> Typically I do work flow UI drawings for high level design. Then do what ends up looking like a dictionary of class names and descriptions of their responsibilities|interactions but only at a high to intermediate level of the program.

</comment><comment><USER5> "hack them straight out"

Any design would be totally just in my head. I'd only sketch something on paper if it's a GUI.

The design that's in my head is basically a short list of what it should do and what it should _not_ do.

</comment><comment><USER6> Always always pencil and paper. Even if it's a wireframe, and that's all you "design" (meaning no graphics, etc). Even on a personal project, don't waste time! Do the process right.

</comment><comment><USER7> Break it into 100 tasks and start chipping them away. One a day. I started on this in Septeber <http://alpha.beepl.com> currently stuck on broken down computer.. Kind of sucks.

</comment><comment><USER8> design? :)</comment>


Ask HN: Client Risk Assessment on Startups - <AUTHOR>

We're a maturing startup company with primarily Fortune 500 clients. Recently, amid all the economic events, we have seen a significant uptick in the implementation of "vendor risk assessment requirements" from our clients.
These requirements require us to fill out our P&L and balance sheets for a number of years, from which they calculate our solvency risk.
Obviously, this is not a favorable practice for vendors (us) who are startups or young companies -- who typically lack the sort of financial strength of large, older vendors, even if our product is better. We're also concerned because this client represents a healthy chunk of our revenue and for purposes of negotiation we'd rather that not be known.
For those of you who have sold products to big companies, what have you done in these situations? Is it safe to ignore the request and say we do not provide financial data? <comment><USER2> Interesting - may I ask what line of business you are in?</comment>


Ask HN: How do you secure your IP camera(s)? - <AUTHOR> My spouse and I are looking for a good IP/Baby Camera. The Mirai botnet story from last year has me uncertain as to the security of IP cameras.<p>If you use IP or Baby cameras, what's your setup like, and do you have any advice for a secure setup that doesn't expose yourself to high internet risk? <comment><USER2> Not connecting them to the Internet would be a first step.

</comment><comment><USER3> Wired camera</comment>


What's holding up .NET 4.5 support on AppHarbor? - <AUTHOR> http://blog.appharbor.com/2012/08/20/what-s-holding-up-net-4-5-support-on-appharbor

<comment><USER2> That's one of the more ridiculous bugs I've heard of...

I wonder what the root cause is.

<comment><USER3> As a frequent user of the .Net stack, this sort of thing is common and very annoying indeed.

I'd guess that it's probably using a temp path which is close to the length of the path limit on Windows and is either not handling it or truncating it. Either that or it's just shoddy code.

<comment><USER4> You can generally get around windows' 255 absolute character length limits by using UNC paths. We had that problem at my last company, where the system would allow you to write files into a path but not delete them.

There isn't a modern reason for the limit either. NTFS supports longer path names, as does FAT if I remember correctly. Rather irritating.

<comment><USER3> Never tried the UNC hack. Might have a bash at that.

The actual restriction is in the Win32 subsystem which has both C string and Unicode versions of API calls. Some API is hooked in via the C API which tends to use TCHAR var[MAX_PATH] as the buffers. It's a royal PITA.

The NT Native API and NTFS don't have such small limits (32k comes to mind).

It's a shame really as NT is a beautiful piece of engineering with a shitty Win32 subsystem thrown on the top.

</comment></comment></comment></comment><comment><USER5> BTW, if you're one of the people waiting for .Net 4.5 on Azure, upvote it here to get Microsoft's focus on it: [http://www.mygreatwindowsazureidea.com/forums/34192-windows-...](http://www.mygreatwindowsazureidea.com/forums/34192-windows- azure-feature-voting/suggestions/2598170-iis8-and-asp-net-4-5-support-in- azure-platform)

</comment><comment><USER6> Dang, that's too bad. This could have been a great opportunity for them. A lot of people are going stir crazy because Azure doesn't support .Net 4.5 either yet. I imagine a lot of folks (including myself) quickly checked to see if App Harbor supported it.

<comment><USER7> Rest assured, we'll have it ready very soon - Microsoft bugs notwithstanding.</comment></comment>


Image Deblurring using Inertial Measurement Sensors - <AUTHOR> http://research.microsoft.com/en-us/um/redmond/groups/ivm/imudeblurring/ <comment><USER2> This would find its best use in cell phone cameras. I don't remember the last time I took a non-blurry picture with one...</comment>


Ultimate Electronics - <AUTHOR> https://ultimateelectronicsbook.com/ <comment><USER2> I don't want to be a jerk with this comment.. this looks like a great resource, and it obviously represents a lot of work by a lot of talented people. But the premise seems to be the same premise that kept me away from a fun and practical hobby for decades.

I got a Radio Shack 50-in-1 electronics kit for Christmas when I was a little kit. I thought it was the coolest thing ever, but when I tried to go further with my interest, all I got was equations and theory. For years I just wanted to understand how a transistor, with only 3 connections, could be like a relay, which had two pairs of connections and made logical sense to me. Keep in mind this was pre-Internet, so resources were somewhat limited. In any case, I eventually gave up on hardware and focused my attention on programming.

It wasn't until the advent of the Arduino that the spark was rekindled and I found a new on ramp to electronics. Start with a breadboard and cookie-cutter circuits that you don't really have to understand at first, and control everything with software, because you know software. Gradually phrases like "current-limiting resistor" and "bias voltage" start making sense. Watch people like Dave Jones and Big Clive take things apart on YouTube and reverse engineer them. The circuits get bigger and more complex. The next project needs an op-amp, and to your surprise, you can understand the theory now. The data sheet parameters make sense. You can pick out which 4 of the 5 answers on the electronics Stack Exchange are wrong, and adapt the right one to your needs.

I'm having a lot of fun making things, and to answer the question in the book's introduction, "have you considered how electron collisions lead to Ohm's Law's linearity", the answer is a resounding "no". And if people hadn't told me I needed to consider that to play with electronics, I might not have missed out on many more years of fun.

<comment><USER3> (Ultimate Electronics Book author here.)

Thanks for the feedback. I had a similar experience starting with one of those 50-in-1 kits! And for me it didn't entirely click until I studied more of the theory and then looped back to the practical.

I've decided to mix both the theory and the practical here, and if "conventional academic textbook" is on one end of the spectrum and "Arudino" is on the other, then I'm aiming somewhere in the middle.

For a recent anecdote: this week, a coworker asked me at lunch, "How does the wall receptacle know to send more power to a 1500W space heater than to my MacBook charger?" And that's a great question. And in 15 minutes we ended up talking about fields and forces and resistive materials and the microscopic origins of Ohm's Law and hydraulic analogies... and somewhere in there, it seemed to start to click for him. And that foundation opened the door to his next question, "So why can't we hear the electrons colliding into the wire?" And that opened the door to a new topic: of course we can "hear" them if we just "listen" at the right frequencies, as analog electronic noise.

I'd love to be able to communicate that sort of intuition on a wider scale than the lunch table!

<comment><USER2> I appreciate the response. I hope my story didn't give the wrong impression. There are a lot of paths to enlightenment, and who knows what 8-year-old me could have done with an interactive book.

I could only view it through a mobile device earlier, and now that I've had a more detailed look, I see how the simulation and experimentation aspect adds another dimension to the theory. I intend to work my way through the whole thing and see how knowing more of the math will influence my future tinkering.

</comment></comment></comment><comment><USER4> I was wondering about the authors of this book. It's in the Introduction:

> Michael F. Robbins holds the S.B. in Electrical Science and Engineering and > the M.Eng. in Electrical Engineering and Computer Science degrees both from > the Massachusetts Institute of Technology. Mike is the co-founder of > CircuitLab, Inc. and developer of the CircuitLab circuit simulation software > used by universities, hobbyists, and practicing engineers in 196 countries.

It looks like an introductory book to electrical circuits with interactive simulation exercises built into the book. This should give you an intuitive understanding of how the math that was presented actually works at the circuit level, which, I think, is very cool.

<comment><USER5> Certainly makes it clear that this is an attempt to commoditize CircuitLab's complements.

More circuit knowledge = more need for simulation resources. Also serves as a pretty good SEO resource for CircuitLab.

There are plenty of great analog electronics tutorials out there already that mostly differ in that they don't point to CircuitLab's material. My personal favorite is Analog Devices electronics course.

[https://wiki.analog.com/university/courses/electronics/text/...](https://wiki.analog.com/university/courses/electronics/text/electronics- toc)

<comment><USER3> (Ultimate Electronics Book author here.)

I'll add that it's also great documentation / example material for how to use CircuitLab. In fact, that's how it started.

In many ways, circuit simulators are a power user tool, and so I started this project by just making a larger library of example circuits. It then became clear that I needed to put the circuits together in context, and the idea for the textbook popped up since the context many of our customers share (at least the hobbyist and education segments) is in learning electronics.

Now, I'm inspired by communicating in this part-theory, part-practical style that seems hard to find in conventional resources.

<comment><USER5> It's a good idea on _many_ levels. Power to you!

</comment></comment></comment></comment><comment><USER6> Looks like a neat book. I'd stress early on, once you get to inductance and capacitance, that the energy in a circuit is contained in the fields, which are the consequences of charges (or vice versa). It's the fields that matter.

When you flip that switch, the drift velocity of charges in (on) the bare copper is only a few cm/s, but the field propagates at the speed of light, between the wire and it's return (mathematically convenient ground). The energy is around the wires in the fields. The only true ground is at infinity.

If you can get that drilled into your head from early on, it will be beneficial to high speed circuits and RF. Introductory books never do that.

<comment><USER7> I am an EE with a degree from a big ten university. Now turning 66. What amazes me about electronics/computer science is how much I do not know and how much I am still learning.

</comment></comment><comment><USER8> I was obsessed with electronics from about age 3 or so... I was introduced to Ohm's law around age 10 or so but having no Algebra knowledge it made practically no sense. The way current flowed (or didn't flow) was quite mysterious.

It wasn't until I learned current and voltage laws that the way current flowed actually made sense.

Analogies were super helpful too. A capacitor is like a rubber membrane that pressure can build up on. Voltage is pressure. Current is rate of flow. An inductor is a wheel in the pipe with inertia. A transformer is two mechanically linked inductors. A Mosfet is a pressure-activated switch. A BJT is a current-activated switch. A diode is a check valve.

It wasn't until I took Physics in high school/college though, that it all finally "clicked". All of electronics could be described quite well by those finicky electrons that repel each other. How a capacitor actually works. How a charged pointy surface draws the electrons to the point, sometimes enough to escape. How magnetic fields are actually produced.

Digital electronics was actually much easier especially coming from a background in computing. It's all logic, you don't really need algebra or calculus.

Anyways I would like to offer this as a counterpoint and say that learning the fundamentals and physics made the world of electronics way more satisfying than to always be tinkering but not really understanding.

I do think though that these topics are really quite difficult to understand and internalize. Even most practicing EE's I think struggle with really able to internally translate the physics, and Maxwell's laws into the day to day work. It is just quite abstract. I know I still struggle with it.

The truth is most EE work is not so different from software where you can get by most of the time by reading datasheets, basic laws, following working circuit examples, and relying on what's worked in the past. You don't have to derive everything from first principles all the time. There is just a wealth of well understood designs out there to pick from. Additionally a lot of the work is plumbing and being careful, such as basic PCB design.

</comment><comment><USER9> Recently picked up an interest in electronics, almost finishing up with Ben Eater videos, this looks amazing!

</comment><comment><USER10> I recently got interested in the IoT world, home made.

Unfortunately I could not go to far because I am missing an "electronics cookbook".

As an example I wanted to build an internet radio off a Raspberry Pi, hooking a small amplificator "chip" (a pre made circuit with an IN from the rpi and an OUT to small loudspeakers).

There was a buzz from the loudspeakers and I am sure an electronician (of there is such a word) would immediately say "you need a 1 pF capacitor here and a 200 ohm resistor there because this is a basic Schmidt-Landau-Trump bridge, obvious in loudspeakers".

I will never understand why a parallel resistor and a capacitor in series is the way to go, but would love to have a cookbook for such circuits, with some explanation such as "if it buzzes, uncrease the resistance between 100 and 1000 ohm" \- for the typical circuits one would make in IoT (say, a plant humidity detector where I have the sensor, the nodemcu and need to kniw what to use in electronic parts to hook them up).

<comment><USER4> There are different ways to approach electronics. You can spend a few years getting formal background in math and electrical engineering, but I don't think that will necessarily answer the hypothetical question of "why does this buzz". Anecdotally, I struggled to even get digital circuits working after several years of electrical engineering university education until someone who ran our labs told us about bypass capacitors.

Which brings me to another way to learn, which is by hands-on tinkering and picking up theory where it is needed. I am pretty sure the guy that ran our labs didn't have a degree in electrical engineering, but he was amazing at building things and troubleshooting them. Building up intuitive knowledge and experience also takes years though.

<comment><USER11> _" Anecdotally, I struggled to even get digital circuits working after several years of electrical engineering university education until someone who ran our labs told us about bypass capacitors"_

You're kidding, right? Electrical engineering from University and never heard of bypass capacitors?

<comment><USER4> Not kidding. I was a few years in having taken a few analog electrical engineering courses with labs, signals and systems, a course and a lab on power before we got to digital circuits. The first course in digital circuits didn't have a lab. It wasn't until we got to the microprocessors course where we had to work with a Motorola 68HC11 on a breadboard that the concept of bypass capacitors was explained to us in a lab. It was 20+ years ago. Maybe things are different now.

<comment><USER11> Bypass capacitors are used in analog circuits as well. Not sure what is wrong about that uni. Anyways I am a former physicist and do not have any formal education in electronics. I learned electronics on my own and bypass capacitors were definitely not the last thing to come by.

<comment><USER12> > Not sure what is wrong about that uni.

Same experience in my university. I think the curriculum has analogues with the CS/SW dichotomy. CS programs are not meant to teach you programming. Similarly, EE programs are not meant to teach you how to build stuff.

In fact, the electronics for physicists course often had more practical material than you'd get from an EE course.

<comment><USER13> Engineering programs in the US are required by accreditation boards to have lots of lab courses. One of the primary reasons is the industry advisors on these boards want graduates to be able to build stuff. And from what I've seen, it's a lot easier to get an engineering degree by being able to build stuff but struggling with the math, versus learning a bunch of math but not being able to build anything. Assessment courses in your final year of school are required to test you at real-world-level tasks.

Similarly CS is required to have labs which force students to be able to program. If someone gets a CS degree but can't write a program, they either cheated their entire way through every programming assignment, or got that degree at some international university that would never be accredited here.

<comment><USER14> This is pretty much the same in EU, modulo some controversy about the exact point during the course of higher education when you should be expected to be able to design things on your own.

I have no idea how an EE curriculum doesn't cover bypass capacitors. They're in virtually every real-world circuit. Even if it's not an item that's specifically covered in a course, lab or seminar, there's no way you can put a real-world schematic on the projector and not run into one.

I can't point at a specific course I took where they were covered but I am sure everyone who made it to the third year knew what they were. I definitely remember talking about them extensively in at least three courses (Circuit Theory, Digital Circuits and Digital Instrumentation).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> This looks great.

I tinkered with circuits as a kid in the 60's and subscribed to Popular Electronics back then—it was may favorite magazine when I was 16 years old.

I always viewed electronics as only a hobby, kind of like being a Ham Radio enthusiast and went to college to be a mathematician instead. However, I had a great elective that covered how to build electronic apparatus for scientists. After all the years of Math, it awakened my old interest in electronics and I stayed in college for a second degree in EE.

Popular Electronics was a hobby magazine and it was a lot of fun. On the other hand, a book like this one is more like what one learns when studying for an engineering degree. It teaches at a level where you can really understand the circuits you see and gives you the ability to put together your own, not just wire up projects someone else designed. I wish the author good luck it and look forward to future chapters. It could be a nice complement to Paul Horowitz'a _The Art of Electronics_.

By the way, I know that many HN readers are computer scientists. That's what I ended up being, but having a deeper understanding of electronics than most of the other software guys has opened many doors for me.

</comment><comment><USER16> I love interactive books but will the links to Circuit lab will still be alive 40 years from now? I can pick up a book from 1860 and still read it with no loss in fidelity or information.

I think interactive books are destined to go to the graveyard. I admire the effort and the medium in every other way - except for aforementioned issue.

</comment><comment><USER17> Browsing randomly through the content I've noticed that you're discussing impedance, capacitive/inductive loads and transitional states in the DC section (and also fairly early in it). I think it'd be way easier to grasp for someone new to this if it was a section on its own, and after the AC circuits are already well explained. To tackle this properly mathematically and understand it well you need to understand a lot of very abstract things like impedance, phase shifts and complex numbers very well, and IMHO that's much easier to explain on a stable state AC circuits, and then apply that knowledge on the on/off transitions too.

</comment><comment><USER18> > Studying electronics will enhance your understanding of calculus

This is absolutely true for me

<comment><USER19> Studying [X heavy field] will enhance your understanding of X.

Studying electronics did not enhance my understanding of calculus, but maybe I didn't study it enough. On a related note, I have grokked logarithms only when I needed them to implement some graphing module

</comment></comment><comment><USER20> You can tell they're not messing around because there are 7 MIT math and physics courses listed as corequisites. Looks like a fantastic resource. On the other hand I have no idea when I'd get the time to do this until I retire. Maybe I'll spend my retirement years like fixing up vintage amplifiers and designing circuits.

</comment><comment><USER21> This looks great, but while one is playing with it (or, alternatively, while one has classes on electronics), it may be good to know that you do not need your browser to simulate electr(on)ic circuits: try _ngspice_ (should be available on all operating systems where one could expect such software; Unices, Windows, Mac): it is an implementation of the SPICE simulator, but with many modifications, including scripting support (it has its own language built-in, or one can use tcl or C to control ngspice). The main difference while getting started is that one does not lay out schematics while working with nspice, rather one just describes the circuits as graphs where the edges are electronic components. It is more abstract in that sense, but I think it is closer to programmers in these ways, and it provides more power to the (programming) user. (Note that one would probably draw the graphs on paper before describing them for SPICE/ngspice.)

EDIT: see [https://wiki.archlinux.org/index.php/List_of_applications/Sc...](https://wiki.archlinux.org/index.php/List_of_applications/Science#Electronics) and, especially, [https://wiki.archlinux.org/index.php/List_of_applications/Sc...](https://wiki.archlinux.org/index.php/List_of_applications/Science#Electronic_circuit_simulation_and_schematic_capture_editing) for other simulators.

Side question: I would like to get to being able to design PCBs which I could then get produced and populated in very small quantities, just as a hobby. What are the fields of knowledge which one should approach before designing PCBs oneself? Any good books? After that, I would need to choose between gEDA and KiCAD, while the latter seems to be quite a bit more popular, gEDA's supposed design in the UNIX philosophy (as a suite of tools that the user uses through programming/scripting) appeals to me, so does somebody have any experience with gEDA to share (pros, cons, etc.)?

Another question, more on-topic: could somebody clarify in what cases can we simulate electronic circuits while representing values with phasors/complex numbers? As far as I understand there are some limitations, like it is always a correct identification _if all components are linear_ , or _if the AC parts of the signals have "small" values compared to the DC parts of the signals_. Am I mixing stuff up? What are some of the real world situations in which simulating with phasors breaks down?

<comment><USER22> Back in the day I used TKGate. Not so UNIXy, but it's TCL/TK.

</comment></comment><comment><USER23> Somewhat related:

I want to build my own electric car, well, convert an ICE car to an electric one. I have the fabrication skills but I want to learn more about of the _electric_ stuff (the motor, AC vs DC, the controller, differences in batteries, etc). Does anyone have a good resource for that?

<comment><USER24> [https://endless-sphere.com/forums/](https://endless-sphere.com/forums/)

<comment><USER23> Thanks!

</comment></comment></comment><comment><USER25> Very nice. The interactive examples really make it very appealing for people learning.

I hope it get completed someday.

</comment><comment><USER26> [https://www.allaboutcircuits.com/textbook/direct- current/](https://www.allaboutcircuits.com/textbook/direct-current/) this is the one I used, very comprehensive and useful.

</comment><comment><USER27> Just read through a couple chapters and this is fantastic. Does anyone have a resource like this (theory-based, but still very hands-on and practical) for other subjects related to engineering, like say building engines?

</comment><comment><USER28> I have bookmarked it and will certainly refer to it in the future. Thanks!

</comment><comment><USER29> Cool, waiting for the more fun parts to come up

</comment><comment><USER30> What a lovely book. Thank your for sharing.

</comment><comment><USER31> Maybe I'm not the right audience for this as I came from a EE background, but I really do not see this as a good resource. I feel like the material from allaboutcircuits.com covers most of the material in this site up until chapter 11 or so and this site only has two volumes written out of 19 planned chapters.</comment>


The Swedish and git pull, or 'I fingered myself 5 min. ago' - <AUTHOR> http://lericson.blogg.se/code/2010/february/this-might-seem-silly-git-pull.html

<comment><USER2> I run into this problem as an English speaker. My university makes its directory accessible via the finger protocol, so I talk about fingering people all the time. Worst named command ever.

Of course, being a college student, I find the whole thing hilarious.

</comment><comment><USER3> The command "git" itself is not exactly international-friendly.

<http://en.wiktionary.org/wiki/git>

We must simply assume that Linus was trying to annoy as many people as possible.

<comment><USER4> Considering Linus speaks Swedish I'd have to agree. To his kind of bilingualism, hearing people 'gitpull' all the time can't help but summon a grin.

</comment></comment><comment><USER5> Hardly a new problem. This happens in english all the time.

A friend and I were using the word "twat" as a passed tense for tweet until someone pointed out this word already has a meaning. And yes, I was completely unaware of the meaning.

You can also discuss processes as parents killing children, reaping dead children, zombied children, etc.

</comment><comment><USER6> Personally, I say that it's difficult enough to choose a name that fits just one language. But to make it fit multiple languages? I hypothesize that the difficulty in naming will increase exponentially based on how many languages you're considering.

</comment><comment><USER7> Another reason you should fetch and merge, not pull!

</comment><comment><USER8> Then consider the Swedish name "Jerker" (for males, of course).

Maybe there is some deep insights here into our Swedish psyche? :-)</comment>


Ask HN: How do you do domain randomization for a given web element? - <AUTHOR> I want to rotate the domain name in a random way. Do you folks know the best way to set the "src" attribute in such a way this can be accomplished?<p>In other words instead of src=x.foo.com I want to say some <random_str>.foo.com ? <comment><USER2>
      function makeid() {
        var text = "";
        var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

        for (var i = 0; i < 5; i++)
          text += possible.charAt(Math.floor(Math.random() * possible.length));

        return text;
      }

      console.log(makeid());

      var randomDomain = makeid() + '.foo.com';

      document.getElementsByTagName("object")[0].setAttribute("src", randomDomain);</comment>


Building a Distributed Log from Scratch: Data Replication - <AUTHOR> https://bravenewgeek.com/building-a-distributed-log-from-scratch-part-2-data-replication/ <comment><USER2> Regarding Kafka replication: What if the following scenario happens?

1\. Leader replicates to followers

2\. Followers get the messages and send ACK to leader

3\. Leader gets the confirmation from followers, increments high watermark (HW) and replies client that messages is commited.

4\. NOW: Leader fails before it could piggyback to followers that HW has been incremented.

5\. The question is: Since potential leader is not aware of the fact that HW has been incremented, it becomes the new leader and truncates the log to old HW, which means we have lost an entry in the log that has been confirmed by previous leader.

As a result, client has been confirmed that the message has been successfully written, but it has been lost.

<comment><USER3> There's a more accurate and detailed explanation of the Kafka protocol here: [https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Repl...](https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Replication)

In step 5 of your example, the new leader _does not_ truncate its log; only the new followers do.

Basically, every message that was committed is guaranteed to be in every in- sync replica's log. (Some of these may be after the replica's HW.) But the converse is not true: some replica's logs will contain messages that may not have been committed.

So the new leader has to keep its entire log -- which includes all acknowledged messages, plus some unacknowledged ones that become committed as a result of the leadership transition. But the new followers have to discard messages above their HW, because those messages might not be present on the new leader.

<comment><USER2> The doc says:

> The replica that registers first becomes the new leader. The new leader > chooses its LEO as the new HW.

Isn't it a better idea to elect a process who has the largest offset? Basically during leader election, a process should get confirmation of majority of correct processes. If another process observes that it has larger offset in the log, rejects the election and starts another round of election. Eventualy a correct process who has largest offset will become leader. Regarding correctness, this sounds to me as a safer election.

<comment><USER3> Yeah, I think that would be a reasonable alternate approach. It's not really "safer", though.

None of the replicas are guaranteed to have all of the messages that reached the old leader (some of those might never have been replicated anywhere). So clients that didn't receive acknowledgements might need to retry on the new leader, no matter what. Since the clients have to have retry logic anyway, there's no safety issue with discarding some of the messages that weren't yet acknowledged.

Your suggestion would try to minimize the number of necessary retries, but at the cost of adding delay and complexity to the leader election process.

</comment></comment></comment></comment><comment><USER4> Are there any distributed logs which operate more as a framework than a service/platform?

Imagine Kafka but I am able to run my processors within the same JVM. You might even call them servlets for Kafka.

<comment><USER5> Plenty of things available when you google "embedded kafka". Still, it's mostly a bad idea.

</comment></comment><comment><USER6> Outstanding material. Bookmarked.

<comment><USER7> Please try to be more substantive in your replies. I would love to hear why you think this is such outstanding material, or what your own connection to the subject is.

</comment></comment><comment><USER8> id like to hear if blockchain can be used here to simplify all of this, anyone?

<comment><USER9> The blockchain supports untrusted nodes. This is typically not a requirement in the typical distributed commit log usecase. Also, this wouldn't be a simplification. It would increase your costs and decrease performance.

<comment><USER8> i was thinking if you roll your own fork of the blockchain and set the costs to free, you just roll your own miners as the distributed nodes and it can work as a distributed storage that takes care of the consensus.

<comment><USER3> On top of the extra complexity, a blockchain has much weaker consistency properties than Paxos/Raft/Kafka. Because of finite propagation delays and network packet loss, there are normally multiple valid chains at any given moment in time.

Even if you assume that all nodes are benevolent, and try their best to converge on the single longest chain without needing mining fees as an incentive, you still can't know whether the chain you're querying is the "winner" unless you have an omniscient view of the entire system. So you only get eventual consistency, as opposed to sequential consistency.

<comment><USER10> This comment is correct, I've heard the property described as "probabilistic consensus".

However, this part is wrong:

> Because of finite propagation delays and network packet loss, there are > normally multiple valid chains at any given moment in time.

How often forks occur is a property of a specific system, not of "blockchain" in general. Bitcoin, for instance, usually does not have multiple chains. They do sometimes happen but generally the orphan rate is quite low. Ethereum has a much higher block rate so propagation delays are more important and forks happen there much more often.

There's an improvement called Bobtail [1] which makes the network much better at estimating how much work has been done. A blockchain which adopted Bobtail would still have probabilistic consensus but would almost never have forks.

Casper, Ethereum's proposed Proof of Stake system, is designed to provide "finality", what the rest of us call "consensus". Once adopted, and assuming it works, we'll have a blockchain where you can be sure that every block you see which you determine is valid is a block which the rest of the network will also decide is valid (assuming less than 1/3 of the network is byzantine).

[1] [https://arxiv.org/abs/1709.08750](https://arxiv.org/abs/1709.08750)</comment></comment></comment></comment></comment>


Ask HN: anyone know when Apple Java will support the Retina Display? - <AUTHOR>

Like a lot of people I'm sure, I've ordered a MBP with the retina display for programming. Apparently applications have to explicitly add support for it - does anyone know when that support might be being added to Java for Swing applications? I spend a lot of my laptop time in IntelliJ, it would be a pain if there were no support there. <comment><USER2> Ditto. I'd be very interested in knowning the answer to this. Only I also use Eclipse a lot, rather than IntelliJ, so it's not so much Swing as SWT that is used. I know SWT wraps native GUI components. Does that mean that SWT will automatically benefit from the higher resolution graphics? I somehow doubt it but would be interested if someone could shed some light on it.</comment>


Coding Horror: That Means It's Working - <AUTHOR> http://www.codinghorror.com/blog/archives/001298.html <comment><USER2> > So, to the extent that I can become a conduit for other programmers to have > that same epiphany [that "you are your own worst enemy" and "everything > [you] write sucks."] in their own programming careers, that means it's > working.

There are a couple of problems with this.

First, it's possible to aspire to a higher level of quality than that. You don't get there without lots of self-criticism, but you can get there. Wietse Venema, Dan Bernstein, Edsger Dijkstra, Alan Kay. It isn't always practical, but it is definitely possible.

Second, Jeff is so cartoonishly idiotic that it's hard to identify with him. Brian Gianforcaro is some kind of Zen Master of humility. If he wants to show people that they should criticize themselves, I think writing total bullshit the way you do is the wrong way to do it. Instead, people congratulate themselves on their intelligence: "I thought I wasn't very smart, but compared to this guy, I'm a genius!"

</comment><comment><USER3> The tipping point between amateurs and professionals (what happened to average?) is probably not empty platitudes and a sweeping disdain for one's code. And sorry, Jeff, I blog mostly to help people. The rest of the time I'm just looking for some catharsis. I also don't have Google Alerts for my name or any of that nonsense.

 _So, to the extent that I can become a conduit for other programmers to have that same epiphany in their own programming careers, that means it's working._

That means _what_ is working? Bolding something doesn't mean it magically makes sense. I don't try to make it a habit of engaging in ad hominem attacks, but if everything I hated about Jeff Atwood was something I hated about myself, I'd have thrown in the towel on programming a _long_ time ago.

</comment><comment><USER4> As usual, Jeff finishes by confirming that the whole post was a waste of your time, but this time it's a bit novel: an admission that he's a troll!

<http://blog.wekeroad.com/blog/nothing-to-say/>

<comment><USER3> I knew reading the post was going to be a waste of time, yet I did it anyway. That was stupid. Thanks to your link, I now feel (perhaps irrationally) absolved. Thanks!

</comment></comment><comment><USER5> I can see that most of us here at HN do not like most of Atwood's posts which are silly and ridiculous. However, I can also see that almost all of his posts earn more points than some other good articles. Wondering why ?!

By the way, this link has just 2 points now !!</comment>


Ask HN: Funding a project with launch expenses - <AUTHOR>

I just figured out that I could dramatically improve my user experience and decrease my long term costs if I had some money from the get-go.  I'm expecting the price to be around $5500/month at the time of launch, and it should raise slightly after each month.
What's the best way to approach this kind of situation?  Should I launch on my own dime and pray I can get some sort of funding within a month?  Or should I try and get the funding ahead of time?
If I go with the first idea, does anyone have any recommendations for closing a deal so quickly? <comment><USER2> you can do a lot with a prototype (zero cost) and a pitch deck. use angel list (angel.co) and other means to get the idea in front of investors.

what are you building that would cost $5k the first month?</comment>


New Cookie RFC Published: RFC 6265: HTTP State Management Mechanism - <AUTHOR> http://www.rfc-editor.org/rfc/rfc6265.txt

<comment><USER2> Prettier formatting: <http://tools.ietf.org/html/rfc6265>

There's no Changes section but these sentences can be considered a summary:

\- "This document specifies the syntax and semantics of these headers as they are actually used on the Internet. In particular, this document does not create new syntax or semantics beyond those in use today."

\- "In particular, in moving RFC 2965 to Historic and obsoleting it, this document deprecates the use of the Cookie2 and Set-Cookie2 header fields."

<comment><USER3> Most notable addition that I can see is that of the HttpOnly attribute. Apart from that, there's not really much that I can see different.</comment></comment>


Why GOO is especially object-oriented - <AUTHOR> http://people.csail.mit.edu/jrb/goo/why.htm

<comment><USER2> Has anyone used the OpenGL Extensions with GOO?

</comment><comment><USER3> 12 upvotes without a single comment.

<comment><USER4> Maybe there are people who found the article interesting and worth sharing but did not have anything original to add to the discussion. That doesn't seem too far fetched to me....</comment></comment>


"Dude, what on Earth are you talking about?" - <AUTHOR> https://medium.com/zeduhow/dude-what-on-earth-are-you-talking-about-ff5a996b5f89 <comment><USER2> An "Education Facilitator" should do basic proofreading before publishing.</comment>


Universal transistor serves as a basis to perform any logic function - <AUTHOR> http://www.physorg.com/news/2011-12-universal-transistor-basis-logic-function.html <comment><USER2> tl;dr: This transistor doesn't use doped silicon, instead it has an extra gate which gives the effect of dynamically choosing the polarity.</comment>


C Programmers; don't write macros - <AUTHOR> http://poincare101.blogspot.com/2012/02/c-programmers-dont-write-macros.html

<comment><USER2> Since when did "don't" mean "only in moderation"?</comment>


Fracking may be a bigger climate problem than we thought - <AUTHOR> https://www.vox.com/energy-and-environment/2019/8/15/20805136/climate-change-fracking-methane-emissions <comment><USER2> Than who thought? Literally every study has shown that fracking releases millions of tonnes of methane and co2, in addition to the direct environmental damage and earthquakes.</comment>


Ask HN: Can companies stop using Google's CAPTCHA? - <AUTHOR> thanks. <comment><USER2> Please elaborate on your rationale.</comment>


We're Getting It Wrong - <AUTHOR> http://weregettingitwrong.com/

<comment><AUTHOR> Personally, I don't feel all that strongly that we are collectively getting it wrong, certainly not to the extent of getting a domain name just for that! I think most developers do indeed talk to their users, and they rather enjoy doing it, too. I've once worked in a place where developers are more detached from users, but that was an exception, not a norm.

There's also a difference between the opinion of one user vs the collective opinions of users as a whole. In most software these are conflicting goals. For example, iOS can't just add random features willy-nilly to satisfy an individual's feedback. So the product management needs to come in between developers and users to aggregate user demands. You'll have to make everyone a little bit unhappy to make users collectively happier. One of the reasons I like extensible software is that those two goals are no longer conflicting. Hopefully you know what I mean when you see Jenkins ([http://jenkins- ci.org/](http://jenkins-ci.org/))

I do share the joy of "caring about your users," there's something very special in knowing this one person/user, understanding his/her needs, solving it, and making him/her happy. We obviously do that through software, but this drive is universal.

</comment><comment><USER2> _> For example, in my entire carrer in this industry, I can honestly say without any exaggeration that I have never met a single person who was obsessed about proving P != NP._

Fair point - an example related to inventing new datastructures would probably have been slightly more realistic ;-)

I certainly agree with your point about "the challenge of the collective user" from a PM perspective. I've worked on quite a few teams where this "collective user" was more of a product of the marketing or PM team's imagination than actually representative of real users, though - and even if you cannot please all users all of the time, in my experience the more of those users are real, the more motivated you are to try to please as many of them as you can.

Overall, very glad to hear there are lots of parts of the industry that are doing a lot better than I have experienced!

Regards

ap</comment>


Opal-native – React Native in Ruby - <AUTHOR> https://github.com/zetachang/opal-native <comment><USER2> This is awesome. I'm really curious to see if the Ruby community will ever fully embrace something like Opal.

Having used ClojureScript a bunch it's pretty nice to compile whatever backend programming language you're using to Javascript to use in your UI. Makes it really easy to share data structures between the front and back end. Would be really interesting to see more Ruby code written this way.

<comment><USER3> As someone who has been trying to spread the word on Opal for a few years (including this talk [http://funkworks.blogspot.com/2014/01/opal-new-hope-for- ruby...](http://funkworks.blogspot.com/2014/01/opal-new-hope-for-ruby- programmers.html) for full affect, For watching the video I would start with the uncensored [https://vimeo.com/82573680](https://vimeo.com/82573680) and then switch to [http://www.youtube.com/watch?feature=player_detailpage&v=GH9...](http://www.youtube.com/watch?feature=player_detailpage&v=GH9FAfKG- qY#t=170) when it's done), it surprises how little interest the Ruby community has taken in opal.

I would in part attribute this to not enough documentation and examples, but otherwise I'm surprised.

This is about as comprehensive a list of opal resources as exists ATM

<comment><USER3> This is the resources link I forgot to post [http://metaruby.com/t/opal- resources/201](http://metaruby.com/t/opal-resources/201)

</comment></comment></comment><comment><USER4> You may be interested in the opal-phaser game development library / wrapper: [https://github.com/orbitalimpact/opal- phaser](https://github.com/orbitalimpact/opal-phaser)

</comment><comment><USER5> The interesting question that Opal brings to the forefront is to what degree do Rubyists, like myself, use Ruby for the exact toolset it provides (aka everything in the MRI, all the gems, Rails or Sinatra, etc.), or to a certain extent because of the syntax and design principles found in corelib/stdlib and third-party DSLs, etc. -- aka the "Ruby way".

In my case, I've discovered that I love Ruby as a language/philosophy even more than I love Ruby as it's been precisely defined for the last couple of decades. And so, what that means is that "alternative" flavors of Ruby, like RubyMotion for native iOS and Android dev, and Opal for compile-to-JS scenarios like browser-based client-side development (or even Node.js-based development), are extremely appealing to me. I'm even interested in non-Ruby languages that are heavily influenced by Ruby such as Crystal.

I should note at this point I'm pretty heavily invested in the Opal ecosystem (I'm the publisher of the [http://www.opalist.co](http://www.opalist.co) newsletter for instance) and have shipped production apps that include real- world Opal code, so of course I want the project to be successful. But I came to that conclusion in part because I took a hard, hard look at the future of web development and decided I simply did not want a career as a Javascript programmer. Sure, I can write advanced, modular, well-crafted JS code. But can and want to are two different things. :)

</comment><comment><USER6> Also check out React.rb [0] ruby wrapper for react

[0]: [https://github.com/zetachang/react.rb](https://github.com/zetachang/react.rb)

</comment><comment><USER7> This is the first time I've heard of Opal (and I think it's pretty neat). Has anyone written about sharing ruby code between the frontend and backend with Opal (or something like it)?

<comment><USER8> I've been blogging about it as hard as I can over at [http://datamelon.io/blog](http://datamelon.io/blog) . Hope that more people spread the word- it's going to be an amazing technology.

<comment><USER9> Thanks for that, I've been following your series - good stuff.

Personally, I might jump into Volt once it becomes more mature.</comment></comment></comment>


Microsoft's AI Just Shattered the Ms. Pac-Man High Score - <AUTHOR> http://sploid.gizmodo.com/microsofts-ai-just-shattered-the-ms-pac-man-high-score-1796091352 <comment><USER2> It's a cute achievement, but the only reason Microsoft could set the Atari Ms Pac Man record is because no one else cared enough about that game to write an AI for it.

<comment><USER3> I get you're joking, but:

[https://blogs.microsoft.com/next/2017/06/14/divide- conquer-m...](https://blogs.microsoft.com/next/2017/06/14/divide-conquer- microsoft-researchers-used-ai-master-ms-pac-man/)

"Doina Precup, an associate professor of computer science at McGill University in Montreal said that's a significant achievement among AI researchers, who have been using various videogames to test their systems but have found Ms. Pac-Man among the most difficult to crack.

But Precup said she was impressed not just with what the researchers achieved but with how they achieved it. To get the high score, the team divided the large problem of mastering Ms. Pac-Man into small pieces, which they then distributed among AI agents."

<comment><USER4> Ms PacMan is difficult for current general-purpose models. Nonetheless, it's accurate to say that other groups haven't focused on developing a model or method specifically tailored to the game. The result in the linked article is from a model engineered expressly for Ms PacMan, which makes comparison with previous work from the deep RL community a bit misleading.</comment></comment></comment>


Power line explodes at Yscaper, productivity destroyed - <AUTHOR> http://twitter.com/danielha/statuses/331970912 <comment><USER2> Why is this interesting?

<comment><USER3> b/c many yc companies live there. power and internet failures suck.

</comment></comment><comment><USER4> No biggie. I lose my Google WiFi here in Mountain View a couple of times a day for a few minutes, sometimes more--it's my enforced break time. I take the dog for a walk or go have a bubble tea at Verde. When I get back, WiFi is back, and I'm refreshed and thinking more clearly. Of course, on the occasions when it's gone down for more than a few hours, I get twitchy and nothing gets done. So, I guess a long-term power outage would be dramatic.

</comment><comment><USER5> First the elevator and now this. And the rent is almost $3000 (Isn't it?). There is no better place? Where are the other yc companies?

<comment><USER6> The mission is way cooler. Better restaurants, cheaper rent. Justin.tv.

<comment><USER7> Seriously. There's nothing more un-SF than living in a high-rise apartment building with asshole landlords. It's much better to live in a 3-flat building with a near psychotic landlord for the real SF experience.

<comment><USER8> What's wrong with the landlords? I know nothing about this place but since I might move to SV I'd like to know why to keep away from it.

<comment><USER7> [http://valleywag.com/tech/justin'tv/landlord-evicts- startupp...](http://valleywag.com/tech/justin'tv/landlord-evicts-startupper- allegedly-bans-his-friends-256021.php)

</comment></comment></comment></comment></comment><comment><USER9> Is that the chance for non-YC startups to take over? ;-)

Are there no WLAN-enabled coffee houses nearby?</comment>


How Thomas Jefferson prepared for meetings - <AUTHOR> http://www.johndcook.com/blog/2011/03/03/thomas-jefferson-meetings/ <comment><USER2> No disrespect to Mr Jefferson but this management method does not work.

It always results in a pyrrhic victory and resentment from the other people on the table from being made to look incompetent (although the truth is that indeed, they are for not coming to meetings prepared).

Let me explain

My last job was President of a College Newspaper. It was a pretty cool job. I had lots of power and I felt like I was "the one" who would usher this paper into a web 2.0 era. I came up with this grand plan and all. Unfortunately, much of the rest of my board was largely incompetent (or this was what I thought). Also, running the college newspaper wasn't as much of a passion for them as it was for me. They all had better things to do.

Ofcourse the natural resulted. Lots of meeting where we would not make quorom. Discussions without reading the background material however earlier on we had sent out a padded agenda etc. Naturally also, I was the most prepared for most of the meetings. I knew our Byelaws and PnP in and out and ofcourse, I knew the operations and management procedure for the newspaper, start to finish at the back of my hand. I got my way at meetings a lot of the time because no one at the table knew better and the people who knew better knew I was (mostly) right.

Soon enough however, resentment had begun to build. I was "arrogant" and an "asshole". We were always moving "too fast" even when it was clearly the right management decision (often taken 2 weeks after it should have). My VP was beginning to overrule management decisions we had discussed at meetings she had failed to attend for one reason or the other. In short, it was chaos.

I started work in May. By October, I was insane, overworked, single and had not spoken to my family in months. I resigned.

Long story short: If you are banking on the ignorance of your team to succeed in a project by pushing through your agenda. You have already lost. Surround yourself with people smarter than yourself, who will come to meetings as prepared as you are. Watch your project, team, committee soar. Surround yourself with morons who are too slow to keep up with you and you'll always be lagging behind.

You can trust I took this lesson to heart when I started building my own startup.

<comment><USER3> The only way this usually works in software is to JFDI (Just Freakin' Do It). The thing that Jefferson did is he did the _work_ , not just present the idea. In software, the "work" is running prototype code.

Even then if you have a "vision" person, they may not be 100% sold if they don't like the design, but know your audience a bit you can be prepared for it.

I understand what you are saying, because very early on in my career I was one of those people that would present ideas, even architectures and expect people to get on board....now I realize that you have to sometimes drag them and in software, you drag by showing them something working and how it is possible...give them something to tweak and criticize that is real working code, not drawings on a page.

<comment><USER4> > _"The thing that Jefferson did is he did the _work_"_

Jefferson didn't do it alone - his team slaved away for him.

Literally.

<comment><USER4> University of Virginia's Apology for using slave labor in the execution of Jefferson's plan [2007/4/27].

<http://www.virginia.edu/uvatoday/newsRelease.php?id=1933>

</comment></comment></comment></comment><comment><USER5> This works very well IME. There is a potential issue however, in that if you are _too_ prepared, you become married to your vision, even when someone else points out fatal flaws. Essentially you can lose flexibility.

This may or may not be what is desire, but I have seen projects go down in flames because of over-prep. The goal is to find a nice balance.

<comment><USER6> If you know what you're doing, then you'll actually be the first to dismember your original vision. Indeed, a principle value of this approach is that when you do hit the inevitable need for changes, you're already well acquainted with how all the pieces fit together. This allows you evaluate options by considering not only their obvious pluses and minuses, but also by anticipating the more hidden costs and benefits of any given alteration.

This (I believe) is what Eisenhower meant when he said "plans are useless, but planning is invaluable."

<comment><USER7> Agreed. For example, you can intentionally leave the color of the bike shed unspecified. So the other folks can launch into heated debate over something they can understand and take ownership over the final decision. Meanwhile, the overall shape and functionality of the shed gets accepted per your design, even the very necessity of the shed may be blindly accepted.

<comment><USER6> A classic play. If Jefferson were involved in product design, I suspect he would approve in full.

</comment></comment></comment></comment><comment><USER8> I've used this approach before in meetings where I suspected I was going to meet resistance to the ideas I wanted us all to form a consensus around.

I found that this approach is successful but, as sophacles says in a different thread, it can (in theory) lead to you become somewhat blinkered to better ideas. Since I _know_ I'm right when I go to meetings this prepared it isn't an issue, right? ;-)

However, the main problem I found with this approach is not that it leads to me to reach detailed conclusions without all the input I may need to do so. I'm fortunate that a lot of people I meet with are either smart, experienced, stubborn, or some combination of the three - the information needed to reach a sensible consensus will often emerge.

Instead, what concerns me is the sheer amount of time it takes to do this much preparation and the opportunity cost I have to pay while I'm busy trying to get an "A" on one particular meeting.

There's a lot to be said for "winging it" (or, in the recent history of memes, "doing it live"). If you're confident in your ideas and in your ability to persuade people then over-preparing is a waste of time akin to procrastination.

I can't guarantee that arriving for a meeting without elaborate handouts will always lead to a better result. But in my experience I'd rather get 80% of what I want in 3 meetings than 100% of what I want in only 1 meeting.

Disclaimer: This advice obviously doesn't apply to the once-in-a-blue-moon meeting, e.g. meeting with a potential investor or asking your boss for a raise. My context here is working for a large bureaucratic organisation where meetings are a frequent and necessary evil in order to get things done.

</comment><comment><USER9> One thing I've learned is how much _surface quality of presentation_ matters. As much as we might pretend to be perfectly logical rational beings, psychology, aesthetics, and emotion are always part of our decision-making process. So when I present something, I try to have great material, but I also try to make it visually appealing, clearly-written, friendly, and warm. Makes a huge difference.

<comment><USER10> A beautiful demo beats a working prototype, at least as far as management is concerned.

I've actually seen this at work, where I managed to hack together a working (but ugly) system only to experience a lot of push-back. Once I polished the output, the same idea was welcomed.

Oddly enough, I learned this lesson back in college. In one engineering design class, I got an A on an assignment that looked really cool, but didn't actually work. I didn't hide the brokenness at all: I clearly documented the fact that it produced utterly nonsensical results in my report and discussed how I would have fixed the problem.

In retrospect, I've decided that they were teaching me an important lesson, but I'm still not quite sure if it was intentional or not.

</comment></comment><comment><USER11> I'm running a project right now where the main stakeholder contact wanted me to call some meetings so we could brainstorm the use case scenarios, functions, etc. Thing was, she didn't want to relinquish the lead creative role for the project. So I'd be running meetings being a facilitator. The way she explained it, I felt like I would be babysitting people unnecessarily.

Me: OK, I can do that, but I'll just send a note out to everyone to brainstorm their ideas first, and then we can have items on the table to discuss.

Her: No, nobody has the same ideas or same vision, so we need to have a session first to brainstorm all the ideas.

Me: Well, I find in my experience that discussions can be much more productive if a lot of the thinking has been done beforehand. How about I'll just get everyone to think of a few items to suggest/discuss before we meet, and then our discussion will be able to really get into it?

Her: No, that's a waste of time. You'll be duplicating work. Besides, people won't know what to write beforehand. They need someone there who can help pull the ideas out of each person. Everyone already has the ideas, it just needs to be pulled out.

Me: Judging from my conversations with everyone else so far, I think this team is quite capable and intelligent. I really do believe we'll be more productive if everyone contributes some ideas beforehand so we can assemble an agenda of sorts. This won't restrict us from brainstorming new ideas either.

Her: No, they need someone there to guide their discussion and help them to articulate what it is they're thinking.

Me: That may be the case with many people, but that's really not the sense I'm getting from these folks. To be frank, I think it may even be insulting to think they need that kind of help.

Her: I'm not going to argue about this anymore. We can agree to disagree. Just organize the meetings.

Me (in my head): You're just too lazy to do your own work to figure out what you want, even though you claim to already know what you want.

End of story, there was no way getting around it. This was escalated to senior management, and while senior management agreed with my perspective, they told me to essentially take just care of her. So I scheduled the weekly meetings. The very first meeting, as I tried to lead the discussion, one of the senior customer folks involved suggested that they take away this discussion and come up with some documents and lists, and they'll come back to me when they're ready. I thanked God that competent people still existed.

<comment><USER12> You're very patient. After the second idiotic "no, it's a waste of time" I would have just said "ah ok, as you wish" and then did it how I wanted. Why bother trying to educate people who don't want to be smarter?

</comment></comment><comment><USER13> The HN title somewhat implies that Jefferson showed up to all the meetings this way; overly prepared. But the title of the original article states "Thomas Jefferson and preparing for meetings" which clearly does not convey that Jefferson was always like this. Furthermore in the article it is narrated one instance when Thomas Jefferson showed up prepared, which does not constitute enough evidence to support that Jefferson was this guy that wanted to be the most prepared in the room.Hence the HN title is very misleading.

Anyway, my point is not about Jefferson; my point is this: Why do people change the wording in the HN tittles (vs original ones) so that people would click on them? Can't we all be accurate when we transmit information to others?

<comment><AUTHOR> _"The HN title somewhat implies that Jefferson showed up to all the meetings this way; overly prepared. But the title of the original article states "Thomas Jefferson and preparing for meetings" which clearly does not convey that Jefferson was always like this."_

Actually, the HN title does not in fact say that Jefferson prepared for all meetings like this. He clearly prepared for at least one meeting this way. And I wouldn't be surprised if this was not the only occasion where he was so prepared. But I'll grant you that perhaps using the plural of the word "meeting" instead of the singular was a tiny bit misleading.

 _"Furthermore in the article it is narrated one instance when Thomas Jefferson showed up prepared, which does not constitute enough evidence to support that Jefferson was this guy that wanted to be the most prepared in the room. Hence the HN title is very misleading."_

Actually, the _title_ doesn't say anything like _"Jefferson was this guy that wanted to be the most prepared in the room"_. The _article_ may have implied that (with good reason, I think), but not the title.

So to call the title "very misleading" because we can't know what was going on in Jefferson's mind is a bit harsh, in my (admittedly biased) opinion.

 _"Why do people change the wording in the HN tittles (vs original ones) so that people would click on them?"_

The fact is that the stories submitted to HN have to compete with other stories. Many, many other stories. Personally, I find every story I submit to HN interesting, and think they would be found interesting by other readers on HN as well, if they'd actually take the time to read them. But if people don't click on them, they obviously won't read them, and not even know what they missed.

Usually, that means the titles have to be attractive, punchy, and interesting to grab readers' attentions, no matter how interesting the contents of the article may be. That's just a fact.

Another fact is that otherwise interesting authors sometimes suck at giving their posts or articles good titles.

Here's a case in point:

<http://news.ycombinator.com/item?id=2143752>

The original title was _"Understanding Syntactic Macros"_ , while my submission had the title _"How Lisp macros differ from static code-generation and metaprogramming"_ (a title I got verbatim from the body of the article, which I felt was a better and more interesting description of what the article was about).

My submission got a lot of upvotes; and, consequently, was probably read by a lot of people. Do I think it would have gotten the same amount of attention if I'd used the original title? Not for a second. The original title might have been technically correct, but not very interesting at all.

So I do occasionally change the titles of my submissions to improve the odds of the article being read (while remaining faithful to the author's intent), or to make the title more clearly reflect what the article is about. I think of what I do as a positive service to the HN community, and am not ashamed of it in the least, since when it works and the stars are right, people will actually read the article and be pleased by what they read. Then everybody wins.</comment></comment>


Xkcd: Open Letter - <AUTHOR> http://xkcd.com/1274/ <comment><USER2> Gah, he's fallen straight into their trap!

Of course they _want you to think_ that nothing's under control!

:-)

<comment><USER3> So at least one part of their strategy works.

</comment></comment><comment><USER4> You don't need an invisible bogeyman to be able to see that some people profit from a government that does not work.</comment>


A tweetable Turing machine - <AUTHOR> https://gist.github.com/mrrrgn/3200044be3fd31f4c3b5

<comment><USER2> While a nice novelty, simulating TM on your computer is not that interesting. I mean you can do it with a single instruction: [https://en.wikipedia.org/wiki/One_instruction_set_computer](https://en.wikipedia.org/wiki/One_instruction_set_computer) (or even zero instructions on x86).

<comment><USER3> These are not simulating a Turing Machine, they are computationally equivalent to a Turing Machine (for practical purposes). I am adding the practical purposes disclaimer because an x86 has limited memory which makes it actually just computationally equivalent to a finite state automaton.

<comment><USER4> In all honesty, I think it'd be more interesting to see analysis of turing complete OISCs than repeatedly seeing these minified homework solutions posted to HN

<comment><USER5> In all honesty, I think it'd be more more interesting to see cat pics than repeatedly seeing these your-work-is-less-deserving-than-the-hypothetical- post-I-just-thought-of-yet-haven't-put-any-work-into-nor-written comments posted to HN

<comment><USER4> so post some cat pics then

</comment></comment></comment></comment></comment><comment><USER6> Minor thing, but you could save some characters by using for(;;) instead of while(true)

<comment><USER7> As is now reflected in the comments on the gist, the tweetable version is minified by a tool and thus uses this optimization and others like variable name mangling.</comment></comment>


Startups – Do Not Jump Over The Hills - <AUTHOR> http://tomasdostal.com/startups-do-not-jump-over-the-hills/

<comment><USER2> One of the worst submissions I have ever seen here.

<comment><AUTHOR> Thank you very much, and don't worry more is coming

<comment><USER3> So, I think he's being serious. "Jump over hills," is not an English idiom. I really have no idea what you mean when you say that, and it's the central point of your article. Towards the end, you change it to "jump through hoops", which _is_ understandable. (My first thought when reading the article was that you meant "move mountains", but that's not what you meant at all.)

You could boil this blog post down to one paragraph:

 _Hello fellow startup founders. If you're like me, you probably want to get some press coverage and incoming links. As I've reached out to bloggers to ask for this coverage, I've noticed a disturbing trend: the bloggers always want something in exchange! One blog wanted me to make 100 comments. Another wanted me to bring them 50 new users. I decided it wasn't worth it and that I'd rather focus on making a great product. You should consider doing the same. It's just not worth feeding these parasites._

Done.

<comment><AUTHOR> I really, really like your comment! Even though the tone is probably a bit sarcastic. You are right about the title, I was going to change it, but forgot. Sorry to everyone.

And I do like your summary, awesome writing skills, give me time to get there ;)

</comment></comment></comment></comment><comment><USER4> I hope the blog is disclosing that its content is paid placement, even if in kind rather than cash. But there's something almost ironic about somebody working on gamification being upset that somebody else wants to use quantified progress and a reward to modify their behavior.

<comment><AUTHOR> I see your point, but there is a difference between rewards and ripping people off. Anyway, I did not expect at all, this kind of traffic to this post. I just wanted to simply point out to other startupers not to be afraid and stand up to people like that.</comment></comment>


Wind power blows past coal in Texas - <AUTHOR> http://www.chron.com/business/energy/article/Wind-power-blows-past-coat-in-Texas-12386751.php <comment> xkcd-sucks I was going to say big deal, Texas has lots of wind, no coal, and a de facto independent electric grid.

But! It turns out Texas mines a whole bunch of lignite coal which typically feeds an on-site power plant because lignite is too worthless to ship anywhere</comment>


Physicists Claim They've Found Even More Evidence of a New Force of Nature - <AUTHOR> https://www.sciencealert.com/physicists-claim-a-they-ve-found-even-more-evidence-of-a-new-force-of-nature <comment><USER2> Evidence of a 'Fifth Force' Faces Scrutiny (2016) [https://www.quantamagazine.org/new-boson-claim-faces- scrutin...](https://www.quantamagazine.org/new-boson-claim-faces- scrutiny-20160607/)

TL;DR: authors have a long history of discovering new particles at various masses, but these discoveries disappear on later studies with no explanation.</comment>


Rapid Decline of the Natural World Is a Crisis Even Bigger Than Climate Change - <AUTHOR> https://www.huffingtonpost.ca/entry/nature-destruction-climate-change-world-biodiversity_n_5c49e78ce4b06ba6d3bb2d44 <comment><AUTHOR> As we begin to appreciate the damage industrialization has brought about the future looks increasingly bleak.</comment>


The Arm Morello Board (2019) - <AUTHOR> https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheri-morello.html <comment><USER2> The board seems much less interesting than this feature it delivers. "CHERI" sounds really cool. At first I thought it was a rehash of pointer auth/hw sanitizer ARM features that already exist. But no [1]:

> A Portable Architectural Protection Model ... We have experimented with > adding the CHERI protection model to a number of ISAs, beginning with 64-bit > MIPS, which was the baseline for our original research. More recently, we > have developed an experimental version for 64-bit ARMv8-A (in collaboration > with Arm), and also for 32/64-bit RISC-V.

Something that can work across architectures will see much faster adoption, I'm happy to see it.

[1] [https://www.cl.cam.ac.uk/techreports/UCAM-CL- TR-941.pdf](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-941.pdf)

<comment><AUTHOR> We (University of Cambridge) have added it to MIPS and RISC-V. As the same team did both of these they feel similar. Arm is working closely with us to add it to their architecture, but it has a few differences, mostly to allow for experimentation to see what should be added to the future production architecture.

</comment></comment><comment><USER3> If I understand correctly, this is going to be the first custom silicon implementation of a CHERI-style capability architecture. So far the CHERI-MIPS and CHERI-RISC-V implementations have been FPGA-only.

<comment><AUTHOR> That is correct. We have FPGAs, qemu, and formal models (that can boot an OS) of CHERI-RISC-V and CHERI-MIPS. Most software development uses qemu as it is faster than the FPGAs at around 100MHz.

Having something in the GHz range will give us a chance to try things we are currently struggling with, e.g. fuzzing is painfully slow.

</comment></comment><comment><USER4> Thanks. I've seen this before, but I don't think I noticed this:

 _prototype board to be available from late 2021_

I didn't realize the wait would be quite that long.

<comment><AUTHOR> There will be a simulator later this year. I expect CheriBSD on Morello will released at the same time with a feature set compariable with MIPS and RISC-V.

</comment></comment><comment><USER5> "Show me the way to Arm Morello, tralala la la la la la..."</comment>


Show HN: Grab the palette used by another website - <AUTHOR> http://palettecrawler.com <comment><USER2> It gave me "tons" of colors, not principal ones.

<comment><AUTHOR> It gives any and all colors that are found on the site, with some related info if you click on the color. What type of breakdown do you think would be useful?

</comment></comment><comment><USER3> It broke on my first try.

Https://www.airbnb.com

<comment><AUTHOR> Thanks, I'll look into it. The headless browser underneath is not as tolerant of errors in the target site as a real browser.</comment></comment>


Lessons in Reputation Management from Conan O'Brien - <AUTHOR> http://www.successful-blog.com/1/conans-good-bye-10-of-10-in-leadership-reputation-and-community/

<comment><AUTHOR> A very good read for any struggling entrepreneurs. Obviously, no entrepreneurs would walk away with a $45M severance package and call it a failure. However, when entrepreneurs do fail, either due to our own inexperience or outside factors, the first thing we need to repair is our reputation. Again, my own painful experience with recovery is not that different from falling off a bike. In the process of getting back on track, your attitude and your outlook are the most important. It is natural that you want to get even. Think positive. Whatever you do, do not get into other people's way and do not wish for other people's fall. You are now at your most vulnerable and deflated stage of your life. You don't have any money. You don't have any friends. Your reputation is in complete ruin. As a result, you can't afford to be negative and you can't afford to be surrounded with negative people. Not having the ability to be constructive doesn't give you the license to do destructive. Whatever you do, stay away from bad Juju. Now is the time to levitate yourself. Now is the time to fill your head with positive thoughts ... "if you work really hard, amazing thing will happen." I love this guy.</comment>


Uber Is a Scam - <AUTHOR> https://www.jacobinmag.com/2019/05/uber-ipo-profitability-value-labor-costs <comment><USER4> This is kindergarten-level financial analysis from a socialist magazine. All this to say that Uber is losing money right now - we already knew that. Then a bunch of other random stories of other companies that have lost money in the past, including, well, some of the biggest and most successful companies on earth.

The question is will revenue overtake costs as it grows more quickly - <USER3> serious analyst would insinuate Uber will be gross margin unprofitable over the long-term. It would be awfully difficult to do so given they collect a percentage of every sale.

Uber has opened offices all over and has high fixed costs. It's waiting on the small variable revenue from each trip to catch up with those costs, and the question is "will it?" That's all.

<comment><USER5> > The question is will revenue overtake costs as it grows more quickly - <USER3> > serious analyst would insinuate Uber will be gross margin unprofitable over > the long-term.

How much room do they have to grow? Uber is already a, what, multi-billion- dollar company? If they're not gross margin profitable now, where's the tipping point?

> Uber has opened offices all over and has high fixed costs. It's waiting on > the small variable revenue from each trip to catch up with those costs, and > the question is "will it?" That's all.

What's the high fixed cost? App development surely can't cost _that_ much. Drivers, server hosting, support, lawsuits etc. are all going to be variable cost.

<comment><USER6> Uber is almost the quintessential example of that old chestnut: _Sure, we lose money on every sale, but we 'll make it up in volume!_

<comment><USER4> Except they don't lose money on every sale...

</comment></comment></comment></comment><comment><USER7> I can't work out how uber can continue to operate post-IPO. Currently it operates by converting VC funding into discounted transport.

Post-IPO I don't understand how it can gain ongoing sources of cash it needs while operating at a loss (unless of course the IPO raises enough cash immediately to fund it until after it has autonomous cars).

<comment><USER8> I don't see how autonomous cars will save them. They don't build cars

<comment><USER9> The want to replace drivers, not cars..

<comment><USER8> All car manufacturers will do both once SDC tech is commoditised which will happen almost immediately

</comment></comment></comment></comment><comment><USER10> How is it a scam? I'm using it and I'm not being scammed. Drivers are getting paid, they are not being scammed.

Investors know it's not profitable and operating at loss, yet they keep investing.

Uber is not lying and report their numbers accurately. They don't report unflattering numbers, which is telling, but still - it's not scam.

<comment><USER11> _Investors know it 's not profitable and operating at loss, yet they keep investing._

Otherwise known as "There's one born every minute."

Uber (and Lyft, et al.) are in competition with traditional taxis. There's a good reason taxis are more expensive, which is that taxis have to break even, at the bare minimum. If Uber charged what the service costs, there would be no difference in costs to the consumer between using a taxi or calling a Uber. It's the dumb investors which are making up that difference. They won't be dumb forever.</comment></comment>


Robot city: how the machines are driving Pittsburgh's future - <AUTHOR> http://www.theverge.com/2013/10/23/4749276/robot-city-how-machines-are-driving-the-future-of-pittsburgh

<comment><USER2> The video editor tries to appeal to those people who would think that robotics takes away jobs and that robots might "uprise" against humans, while the content will mostly be interesting to robotics enthusiasts. Seems like the journalist wanted to make doom-bringer dystopian video about robots but failed.</comment>


What programming languages have you used this year? #code2011 - <AUTHOR> http://code2011.hybridgroup.com/ What programming languages have you used this year? Find out what other people are saying on Twitter #code2011 with our handy mini-site <comment><USER2> Unrealscript, Java, javascript, F#, C#, C++, some mel-script,

</comment><comment><USER3> The auto-page-refreshing is annoying!

</comment><comment><USER4> Heroku down...

<comment><USER5> working fine for me

<comment><USER4> Back up now!</comment></comment></comment>


Quantum Physics & Natural Language Processing (pp. 8-11) - <AUTHOR> http://www.cs.ox.ac.uk/industry/content/IndustryNewsSummer2011.pdf

<comment><USER2> Cool, didn't know about these publications (I'm at the Comlab myself.)

Seems like the webpage to sign up for the newsletters (by email!) is <http://www.cs.ox.ac.uk/industry/public/newsletter.jsp>

<comment><AUTHOR> I graduated from the Comlab / New College last year. Which college are you at? What year?</comment></comment>


Show HN: Mornin.am – A Calendar that helps you make time for what matters - <AUTHOR> https://www.mornin.am/ <comment><AUTHOR> Hello Everyone,

I'm a Product Manager at a Tech Co. A few weeks back I was having a conversation with my Manager on priorities and how and where I spend my time (in a positive context). I realised that since I use calendar judiciously, I can actually look up the data and look at where I spend my time more objectively.

I found it surprisingly hard and ended up spending hours downloading the data and tagging it. This inspired me to start work on mornin.am . The goal is to build a calendar that helps people understand where and how they spend their time and assist them in getting better at managing time overall.

You can find our concept video here - [https://www.mornin.am/](https://www.mornin.am/)

I will really appreciate if you can share your inputs on the idea and challenges you face with your calendar. If you find this interesting, please do sign up for our beta when we launch.

Thanks</comment>