Happy Valentine's Day - <AUTHOR> https://www.google.com/search?client=ubuntu&channel=fs&q=5+%2B+(-sqrt(1-x%5E2-(y-abs(x))%5E2))*cos(30*((1-x%5E2-(y-abs(x))%5E2)))%2C+x+is+from+-1+to+1%2C+y+is+from+-1+to+1.5%2C+z+is+from+1+to+6&ie=utf-8&oe=utf-8

<comment><USER2> You too!

[http://www.wolframalpha.com/input/?i=Plot%5BSqrt%5BCos%5Bx%5...](http://www.wolframalpha.com/input/?i=Plot%5BSqrt%5BCos%5Bx%5D%5D*Cos%5B200*x%5D+%2B+Sqrt%5BAbs%5Bx%5D%5D+-+0.7*%284+-+x*x%29%5E0.01%2C+%7Bx%2C+-2%2C+2%7D%5D)

</comment><comment><USER3> <http://mathprospects.com/node/5>

</comment><comment><USER4> > 3D charts require a web browser and system that support WebGL.

I guess I'm not getting a Valentine this year.

<comment><USER5> What browser/OS/gpu are you using?

<comment><USER4> Latest Safari on OS X 10.8.2 in a Macbook Pro w/ Retina

<comment><USER6> You can enable WebGL in Safari. Go to Preferences -> Advanced and click "Show Develop menu in menubar". "Enable WebGL" is the last item in the Develop menu.

<comment><USER7> I believe it's not enabled by default because there are still some security vulnerabilities present, is that right?

<comment><USER6> Yes. Here's a DoS for Firefox that forced me to reboot: [https://cvs.khronos.org/svn/repos/registry/trunk/public/webg...](https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/extra/lots- of-polys-example.html) (it asks permission first). I did not test it in Safari, because I don't want to restart again :(

</comment></comment></comment></comment></comment></comment><comment><USER8> heh, very neat. You can also play around with the parameters and equation of the graph.

Check out my "tan" heart : 5 + (-sqrt(1-x^2-(y-abs(x))^2)) _tan(45_ ((1-x^2-(y-abs(x))^2))), x is from -1 to 1, y is from -1 to 1.5, z is from 1 to 6

</comment><comment><USER9> Ferris wheels make me so happy. In related news, I think I shall watch Ferris Bueller's Day Off with My Beloved Husband today.

</comment><comment><USER10> Such things never cease to amaze me. How do you start with a blank paper create an expression which produces that?

<comment><USER11> It's actually pretty easy...

The actual function being plotted is the two ellipsoids

1 = x^2 + (x - y)^2 + z^2 for x >= 0

1 = x^2 + (x + y)^2 + z^2 for x <= 0

Each of which which is just an ordinary ellipse but rotated a little along the z-axis. If you expand the square and by standard linear algebra techniques (see: diagonalising a quadratic form), you can put both of these in standard form:

1 = x^2/a^2 + y^2/b^2 + z^2

which confirms it's an ellipsoid.

Whoever made the original heart just took these two ellipses and then multiplied by the cosine of the height in order to give it some oscillations and make it look more showy, but the basic idea is just that: two ellipsoids, at opposite slant angles, joined along the middle.

</comment></comment><comment><USER12> Google scares me sometimes.

<comment><USER13> Me too. But in a good way ... :]

</comment></comment><comment><USER14> Looks good! Happy Valentine's Day to you too!

</comment><comment><USER15> Works in Chrome Canary ;)

</comment><comment><USER16> Nice. Nice again, I say.

</comment><comment><USER17> well done sir. well done.

<comment><USER18> The OP din't claim to have created this (although arguably it's implied by it's posting without comment). Rather, that's just one of quite a number of such functions posted here before. I don't know their origin.

So well done for remembering it, and reposting it on an appropriate day; or more likely someone else remembered, and this is just a cross-post of a cross- post of a blog of a re-post. But well done anyway.</comment></comment>


Ask HN: Best way to get into embedded programming? - <AUTHOR> Eventually I would like to get my Masters in Robotics. After a decade of building apps and infrastructure I'm pretty bored of it. I am thinking that doing embedded programming for a robotics company might be a good stop-gap while I pursue my M.S. Any recommendations on where to get started? I see a lot of job postings wanting VxWorks, embedded C++ that kind of thing. <comment><USER2> Digilent has a lot of good educational boards for embedded systems and associated training material. You might consider starting with their Basys MX3 board with a 32-bit processor and a luxurious 128 kB of RAM.

[https://store.digilentinc.com/basys-mx3-pic32mx-trainer- boar...](https://store.digilentinc.com/basys-mx3-pic32mx-trainer-board-for- embedded-systems-courses/)

Free course material that you can go through is available for this board.

[https://reference.digilentinc.com/reference/microprocessor/b...](https://reference.digilentinc.com/reference/microprocessor/basys- mx3/start#coursework)

</comment><comment><USER3> Play around with an Arudino, Raspberry Pi if you are getting started. If you know how basics works, get yourself to solving a problem that you think can be solved using an embedded device. Start with some home automation. It's the best way to get your hands dirty.

Get a board, LCD display,a couple of motors, LEDs and stuff like that and make something legit!

</comment><comment><USER4> Highly recommend the book Computers as Components by Wayne Wolf. Thoroughly discusses the principles of embedded computing. From an interviewing perspective, I believe the focus is mainly on hardware abstraction layer (bit manipulation/register handling), OS concepts and C/C++ embedded programming.

</comment><comment><USER5> I'd suggest you monkey with the ESP8266 boards.

ARV Micro's are bare metal and have a large friendly community. Generally the tools are cheap and just work.

See [https://www.avrfreaks.net/](https://www.avrfreaks.net/)

<comment><USER6> Agreed. Most people start with arduino devices, but they're a little limited compared to the ESP8266 - which is programmed by the same tools but has on- board wifi.

Hookup a board to an i2c LCD-display, and then write code to poll a remote website and display text on it. It'll be a reasonably easy project for a beginner and will get you in the mindset of working on a constrained device.

After that you can go smaller, using devices with less RAM & I/O, or you can go bigger and look at embedded ARM/x86 boards which can run Linux - but still have their own quirks.

</comment></comment><comment><USER7> I work in embedded programming. You can reach me at my username at gmail.com. It's not quite robotics but feel free to reach out to me if you want more info</comment>


Safest seats on a plane are at the back - <AUTHOR> http://www.popularmechanics.com/technology/aviation/safety/4219452

<comment><USER2> This is an interesting approach, though I would've liked to see some attempt to put error bars on those estimates. With a sample size of 19 crashes in which passenger seating could be determined, where rear passengers were favored in 11, front passengers in 5, and no strong pattern in 3, I'm not sure I'd be confident extrapolating a strong trend.</comment>


Improving SSL Warnings: Comprehension and Adherence [pdf] - <AUTHOR> https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43265.pdf

<comment><USER2> a link to the accompanying presentation is here [1] This is an interesting topic as the way browsers currently treat SSL warning is very user unfriendly. Most users just know what to click to get past the warnings, not what the warning actually means for them.

[1] [https://docs.google.com/presentation/d/1TNFx6eaQVfe83PV80-FZ...](https://docs.google.com/presentation/d/1TNFx6eaQVfe83PV80-FZ39QY1dSLGCWW8f2i5-NeJ48/edit#slide=id.p)</comment>


Better Lithium-Ion batteries are on the way from Berkeley Lab - <AUTHOR> http://newscenter.lbl.gov/news-releases/2011/09/23/better-li-ion-batteries/

<comment><USER2> "on the way" as in "we're looking into it" versus "we've spun out a company to manufacture these."

Basically they are attacking one of the current problems with LIon batteries which is degredation in the anode over time across recharge cycles causes them to lose capacity. The current 'best practice' anode is graphite which works well but limits the charge it can hold. Their polymer in the lab is 10x better at holding charge. They give some analysis of why its durability should be good too. If so, and we can get batteries made with this polymer ion they would have 10x the capacity of current batteries.

That is all great except reduction into something manufacturable and repeatable is like a 3 year process so 2015 you might see them.

</comment><comment><USER3> But do we have enough lithium in the world to power all batteries of all cars?

<http://www.google.com/search?q=lithium+availability>

<comment><USER4> There was a guest on Fresh Air that was talking about this recently:

 _DAVIES: Now that there's more interest in electric cars, is there a concern that, you know, the known lithium deposits will be inadequate for our needs in the future?

Mr. FLETCHER: Not anytime soon. I - these things are hard to forecast 100 years out, of course, because nobody knows what's going to happen. But when I was at the Annual Lithium Supply and Markets Conference last January, an analyst got up and basically told all the miners in the audience that there was going to be such an enormous oversupply in the last half of this decade that only the strongest were going to survive. There are a lot of people getting into the lithium mining business right now, but there seems to be more than enough to go around. And so I haven't seen anybody express concern about lithium supplies for any foreseeable reasonable number of these cars, you know, in batteries.

Of course, I'll just point out a misperception. A lot of people speak of lithium as if its oil. They talk about Bolivia or Chile being the Saudi Arabia of lithium. But you don't burn lithium. Lithium is a metal used to make a device that stores energy that's produced by other means. So it can be recycled. The batteries can be reused. There is plenty to go around for quite some time._

[http://www.npr.org/2011/06/08/136856479/leading-the- charge-t...](http://www.npr.org/2011/06/08/136856479/leading-the-charge-to- make-better-electric-cars)

</comment></comment><comment><USER5> Did the article say how much better these are than the current generation? A quick skim didn't show anything.

<comment><USER6> It said it stores 10 times as much lithium. I don't know how that would translate into energy storage.

But even if the only improvement is longer lifespan that would still be huge.

<comment><USER5> Oh, definitely. I'm not asking for anything more, really, just the thought of my mobile lasting maybe 10 days is very exciting.

<comment><USER6> Just watch them use 10 times as much energy and put you right back where you started.

</comment></comment></comment></comment><comment><USER7> Berkeley.

</comment><comment><USER8> What about disposal?

<comment><USER6> What about it?</comment></comment>


What Stupid Things Do Smart People Do? - <AUTHOR> http://www.quora.com/What-are-some-stupid-things-smart-people-do

<comment><USER2> The top rated post has some good points, but this is just plain wrong:

"Using terrible tools, and taking pride in their awfulness - Especially common with programmers, who take pride in using programming languages and text editors that have been designed by programmers, not updated since the 1970s, and never touched by anyone with a modicum of design sense. "

Comments:

* Since when is being "designed by programmers" a negative thing? Best tools are built to scratch an itch.

* "Not updated since the 1970s", I hope he isn't talking about emacs, C, UNIX and (many different) Lisps

I'm most productive with Linux, emacs, slime and a either an ML dialect or Lisp (I also love C greatly). All of these have their roots in 60s, 70s and sometimes earlier but have been updated recently (that's where there's "C99"). I don't know anybody running SysV and using Bill Joy's original ex, or original teco emacs. Seems like the post is just flame-bait against hackers who use tools they love and are productive with.

The part about Apple products is the same as well: I like my Macbook Pro laptops and I like the idea of iTunes (but I find Amazon MP3 to be a better implementation). However, for many of their other products hackers simply aren't the target audience: am I being "stupid" by not using an iP(phone|pad|pod) when it just doesn't do what I like?

<comment><AUTHOR> I think the bigger point here is "taking pride in working long, rather than working smart." Putting in long hours and working inefficiently rather than working quickly.

</comment></comment><comment><USER3> They forgot one thing. Smart people can sometimes get lost in their own heads and the world passes them by. Look at Einstein. He spent the last half of his career trying in vain to solve the unified field equation theory. During that time the string theory was beginning to take hold but he couldn't see it. I don't know if it's hubris or simple ignorance that causes it but that is the biggest thing that smart people do that regular people would consider stupid.

<comment><USER4> I think it's more the things the cause people to succeed in one way force them to fail in another. If Einstein was equipped to with the attributes that would've made him "see" string theory, he likely wouldn't have necessarily been equipped with the attributes that would've lead to the general theory of relativity.

Einstein himself even said (although it's laughably inaccurate) that he wasn't smarter than anyone else, he just stuck with problems longer than other people.

<comment><USER5> I agree. People of the future who are truly going to change the world as we know it have insights and points of view that would not really make sense to us people of today. Some times today's crack-pots are tomorrow's visionaries.

</comment></comment></comment><comment><USER6> Argue well past any chance of persuasion is one I see people fall into too often. There is value in moving on when you can not convince. But as the author points out:

 _They also believe that they can change other people's minds through argument and facts, ignoring how emotional and irrational people actually are when it comes to making decisions or adopting beliefs._

</comment><comment><USER7> Agreed with everything he said except the terrible tools item. Sounded like he's referring to things like Unix, vi, emacs, terminal/shell, etc. If so, he's wrong and has it backwards. Folks use them precisely because they are so powerful and flexible, and yet can be both very simple or as complex as needed to fit the problem. Where he sees a complicated tool a good engineer sees a complex problem space and then appreciates a tool which lets him solve it efficiently.

</comment><comment><USER8> >Using terrible tools, and taking pride in their awfulness - Especially common with programmers, who take pride in using programming languages and text editors that have been designed by programmers, not updated since the 1970s, and never touched by anyone with a modicum of design sense.

I'm learning emacs at the moment. Tell me I'm not wasting my time. Should I just give in and buy TextMate like every other programmer that works on a Mac seems to?

<comment><USER9> You're not. A lot of good programmers use Emacs or Vi on Mac.

<comment><USER10> If you download and build emacs from source, you can give it a cocoa interface that, I feel, is much better (for its minimalism) than aquamacs.

How-To:

      $ tar xzf emacs-23.2.tar.gz
      $ ./configure --with-ns
      $ make
      $ sudo make install

      [command] + [space] // Spotlight
      Emacs

<http://www.emacswiki.org/emacs/EmacsForMacOS>

<comment><USER2> 'port install emacs23-app' works well

No need to use Aquamacs. The great advantage to using regular GNU Emacs is that I can keep the same config on Linux as on OS X with a couple of cond/if expressions e.g.,:

      (if (eq window-system 'ns)
        (setq default-frame-alist '((width . 132)
                                    (height . 60)))
      (menu-bar-mode nil))

</comment></comment></comment></comment><comment><USER11> This seems more like a list of things that obsessive, insecure, narrow-minded people do.

<comment><USER12> I was going to say, seems more like a list of things that introverted people do. Either way (obsessive/introverted), I wouldn't define it as "smart".

</comment></comment><comment><USER13> Doing stupid things is a basic part of the human condition. You may do more of them if you're stupid, but you still do plenty of them when you're smart, too.</comment>


Review Monkey: Create amazing Yelp reviews with almost zero thinking - <AUTHOR> http://www.reviewmonkeyapp.com/

<comment><USER2> Cute idea. The mouth on the monkey logo is a little scary to me for some reason but the app idea is funny.

<comment><AUTHOR> Thank you! This cute monkey was drawn with a finger on iPad

</comment></comment><comment><USER3> Been wanting this type of tool forever! Now I can troll review sites effortlessly.

<comment><AUTHOR> Thanks, the venue choice is not that big, but will do more choices in the next version

</comment></comment><comment><USER4> will there be an Apple Watch version?</comment>


How Much Processing Power Does it Take to be Fast? - <AUTHOR> http://prog21.dadgum.com/68.html?1 <comment><USER2> Intermediate point of reference: Crash Bandicoot, which came out at the end of 1996 and ran on the original PlayStation, used 2MB of RAM and a 33Mhz processor. As in Defender, there was no operating system to speak of, and though Sony "required" developers to use libraries, we ignored that dictum and coded the rendering pipeline in R3000 assembly. We could render about 1000 polygons per frame, 30 frames per second.

Now I have to work similarly hard just to get IE8's crappy JavaScript implementation to sort 1000 objects in under 33ms on a 3GHz machine. Sigh.

For even more extreme examples of performance within confines, see the excellent chronicle of Atari 2600 development, "Racing the Beam".

</comment><comment><USER3> I enjoyed reading this piece from the same site: <http://prog21.dadgum.com/52.html>

It's about how modern interpreted languages such as Ruby and Python are orders of magnitude faster than BASIC's such as found on typical 1980's systems.

<comment><USER4> The speedup is actually precisely what you would expect from hardware over that time period.

2^((2009-1984) / 1.5) = 104031.915

He's accidentally demonstrated that we would expect a 1984 implementation of BASIC on modern hardware to be _exactly as fast_ as modern Python.

<comment><USER5> Which actually isn't damning of Python at all. Python has optimized for things other than speed. I'm pretty sure that you wouldn't choose a 1984 BASIC implementation (on modern hardware) over Python for any of your projects. You can have a Better Language at no cost to performance.

<comment><USER6> True, I expect (but don't know for sure) that BASIC was actually highly optimized to be as fast as it was.

<comment><USER7> Well, it was also usually written in the local machine language as well.

</comment></comment></comment></comment></comment><comment><USER8> If you can live without such luxuries as an operating system, libraries, and drivers then you too can write software as efficient as Defender! But resources are well spent on abstraction, most of the time.

<comment><USER9> But is it mere abstraction that causes me (to take a _completely random_ example) to wait on Windows so often, when I've got so many GHz and so many GB at my disposal?

I think it's more likely to be a matter of priorities. It's more important to ship your PC software than it is to expend the effort required to make it slick and responsive. On non-PC platforms (like the iPad) that's not true; the platform's relative simplicity and responsiveness is a big selling point, so it's crucial to be fast and slick to fit in.

<comment><USER10> >when I've got so many GHz and so many GB at my disposal?

Because like most laptop and desktop users youre IO bound by your slow mechanical spinning disk. My desktops at work at home and my laptop all have SSD's now. I have a level of responsiveness that's very close to what I get with an ipad or my transformer.

Don't blame the software, blame the hardware. You can't really compare flash- based storage to mechanical storage. A lot of the "bloaty" OS's really aren't. Its the damn mechanical storage. I mean, there's literally a mechanical arm that roams around spinning platters. You can't compare that to electrons dancing on flash media.

<comment><USER9> I'm aware of the mechanical I/O bottleneck, and I'd love to have SSDs in the machines I use, but funds do not permit.

But I doubt that's the whole story. The first time I type "Ctrl-F" in a VS2010 session, the disk thrashes and there's a noticeable delay of a couple of seconds before the Find tool loads. The delay is so bad that keystrokes are lost; if I not-particularly-quickly type "Ctrl-F mystring", the find tool searches for "tring."

I'm sure an SSD could improve that situation, but the real issue here isn't that the disk is slow, it's that the software is causing disk access where none should be necessary.

I'm sure there are reasons behind it; the find tool is a module in a modular system, it's not hanging around when it's not needed, it makes a smooth fit with the rest of the framework that was used to build VS2010, etc.

But the end result, the end user experience, is worse than it was in older, simpler versions of the product. (In this particular way, it's actually worse than a DOS-era editor, running on far more severely bottlenecked hardware, was 20 years ago.) The find tool was probably built in whatever was the most straightforward way to get it to fit into the horrendously complicated system (VS2010 on Windows) it's a part of, and no effort (or not enough effort) was expended to make it any better than that.

This is just one example that struck me today. There are plenty of other situations where a Windows machine full of Windows apps will cause the user to wait in situations that shouldn't require waiting. You can classify them as I/O bottlenecks, and that's not wrong, but I think it's missing the point. Everyone knows there's an I/O bottleneck there; when you develop code, you're supposed to bear that in mind.

But backwards compatibility and shipping the damn thing are more important than optimizing, and that goes for Windows itself and all the components thereof as well. The stuff we write today has to accommodate the foolish-in- retrospect decisions of yesterday.

<comment><USER11> This complaint is the reason why some apps include "quick" loaders under Windows. Effectively they have a tray icon, run after startup and load the files making up an app so they are already in memory when you run the app. Then when you launch the app for real it appears very quickly including all the functionality.

Of course people get annoyed at these things, taking up "memory", "delaying" system start etc and get rid of them.

I/O just tends to be more expensive on Windows. Not only does the code have to deal with backwards compatibility, old drivers and tag alongs (anti-virus, backup), potentially obstinate hardware, and numerous other things but often the OS is supported for a long time. For example Windows XP uses a 10MB buffer cache, irrespective of how much RAM you really have. (Can be changed via registry, code changed in Vista.)

</comment></comment></comment></comment></comment><comment><USER12> Funny, there's no discussion of the modern bottlenecks: the bus in between the CPU & GPU, and the speed difference of the CPU and RAM. And no discussion of what else the modern machine has to do now: maintain a lot more devices (like radios), handle background work, and have a network stack.

It's not like we have faster hardware but suddenly got dumber programmers.

<comment><USER13> The CPU & GPU bus is hardly a meaningful bottleneck when dealing with basic UI interactions. 3d games often have less input lag than the background windowing environment because they are optimized for that. The technical problem is simply excessive buffering and a poor interrupt implementation.

<comment><USER14> The real problem is levels of abstraction that let you do anything, but not necessarily quickly.

Compared to the old games, where you could do only one thing, but you could do it fast.

<comment><USER13> Abstraction is not what causes modern operating system to buffer user input. You can often have the same image drawn to 7-10 buffers a user can see it. And honestly most of the time there is plenty of time for this so it's not a big deal, what you don't have time for is doing the full path for each tiny input. Let's suppose you want to drag a window. The secret is you don't need to use the same window location for every stage of the process as long as you find an acceptable middle ground so that not rendering part of a dragged window does not look that bad.

Now you need to do this for menu options etc etc.

PS: Games often do this trading a little less accuracy in a single frame to enable low latency responses.

</comment></comment></comment></comment><comment><USER15> There were a lot of other tricks to be had:

\- Some form of sprites were the rule, not the exception. Albeit very hardware coupled, usually a fixed width and maybe unlimited height. Fixed # of sprites per line as well, or they'd just turn invisible.

\- Tile based (character) graphics, so there's a lot of games that aren't bitmapped, but rather character or tile based. So think updating a 40x25 screen (eg) not a 320x200 screen.

\- Palette (indirect) based graphics = some tricks for animation here.

\- A hardware supported transparent color.

\- Direct control of frame buffer pointer = lots of goodness.

\- Interrupts based on raster position

\- DMA for sound

Sometimes:

\- Some control of modulus based scrolling (think starting bitwise horizontal and vertical for up to 8 bits) = easy tile based bit scrolling.

\- Blitter (with boolean ops) - maybe.

\- Planar graphics.

Still, we're lazy today. Lots o layers in between us the hardware.

</comment><comment><USER16> The screen resolution he mentions is 0.1% of a 1024x768 resolution. So lets say we need 1000MHz to render 1024x768. Then I think modern software is doing alright. Because today we calculate more color bits, keep track of all the input devices, output 'real audio', keep the device online and so on.

<comment><USER17> 320x256 is 10% of 1024x768 in terms of raw pixels, not considering bit depth. But bit depth and raw pixels shouldn't matter here, the GPU takes care of mucking about with those and the GPU in the iPad is amazingly fast for its power consumption.

I think the point is that the iPad is sluggish and it shouldn't be. 30 years ago people knew how to make something fast reacting with way less hardware behind it, somehow we've lost that and added complexity that doesn't really seem visible to the user.

<comment><USER18> >think the point is that the iPad is sluggish and it shouldn't be The OP is arguing the opposite-- the responsiveness of the iPad demonstrates that we can have responsive systems even with all of today's luxuries

</comment></comment></comment><comment><USER19> "And of course there's overhead involved in the application framework where messages get passed around to delegates and so on." Am I the only one who finds this an amusing & concise summary of iPhone development?</comment>


Google to sunset Google TV brand as its smart TV platform merges with Android - <AUTHOR> http://gigaom.com/2013/10/10/google-tv-rebranded-android-tv/

<comment><USER2> Perhaps this is an indicator of why Google has not released an official Google Play Music app for Roku and other third-party devices?</comment>


Google Maps Shows Edward Snowden in the White House - <AUTHOR> http://marketingland.com/google-maps-shows-edward-snowden-in-white-house-125059 <comment><USER2> Why couldnt he just leave it alone? Was it hurting anything?

I suppose some people like the attention "Hey, look at me, I found a bug!", "I know how that magic trick works!", etc.</comment>


Planetary Annihilation hits $900K goal with 16 days remaining - <AUTHOR> http://www.kickstarter.com/projects/659943965/planetary-annihilation-a-next-generation-rts/posts/298124

<comment><USER2> Finally a crowdfunded RTS game.

The fact that it's made by many of the guys involved with Total Annihilation and Supreme Commander gives me hope this will be a really deep, scalable and fun game.

Proud to be a supporter.</comment>


Dexter: Connect the web the way you want - <AUTHOR> https://rundexter.com/ <comment><USER2> [https://rundexter.com/terms/](https://rundexter.com/terms/)

No thanks.

<comment><AUTHOR> Every platform is going to have "terms of service". What in particular bothered you?

<comment><USER2> It's compared to bash, but bash does not have a ToS.

When somebody is making a closed source product targeted at developers, could they at least put a the text "closed source" somewhere on the front page so I don't have to systematically search the site just to confirm that expected link to source is in fact missing?</comment></comment></comment>


Audiophiles - <AUTHOR> http://xkcd.com/841/ <comment><USER2> I was an audiophile until I realized I couldn't upgrade the key component in my system: my ears.</comment>


I don't know mathematics, I want to learn it, where to begin? - <AUTHOR>

Practically the most advanced aspect of mathematics that I know is "1 + 1", I want to learn more advanced topics; where to begin? <comment><USER2> These two books will get you started, I was very much in the same boat as you and endeavored to improve my mathematical skills in a self directed manner.

"Practical Mathematics", C. I. Palmer (great for practice and learning your stuff in a framework that isn't boring)

"Mathematics for the Nonmathematician", Morris Kline (great for staying inspired, it teaches a lot of history with good exercises)

This website also has some great recommendations for books: [http://math- blog.com/2007/07/17/ten-must-read-books-about-ma...](http://math- blog.com/2007/07/17/ten-must-read-books-about-mathematics/)

Good luck! I've enjoyed math much more since I've tackled it on my own time and under my own desire.

</comment><comment><USER3> So I know more about your current knowledge, can you answer these questions?

What is x if x+5=13?

What is x if x times 5 = 13?

What is x if x+13=5?

What is -23 times 7?

What is -5 times -14?

You probably find those completely trivial, I know. Can you give me an example of the sort of question you would find more challenging?

And I'm serious. If you're serious, knowing how you answer these questions means a lot.

The other thing is - what do you think mathematics is? I'm not yet sure what you think you want to learn. Can you tell me more?

</comment><comment><USER3> You haven't answered my previous questions, you may not have thought I was serious. I am. Very. Can you answer these?

What's 3/5 times 8/7 ?

What's 3/5 plus 8/7 ?

What's 23/9 - 7/4 ?

What is x if x^2-3x+2=0 and how did you get your answer?

<comment><USER4> Don't want to hijck the op's thread, but am curious where you are going with this even if they don't answer.

</comment></comment><comment><USER5> mathoverflow.com and sosmath.com

<comment><USER6> The spammer was a coincidence. He posted all over.

<comment><USER5> I can't edit my comment - is there a way you can do that for me?

</comment></comment></comment><comment><USER7> If you are being literal, than I'd suggest any grade school math book in your library.

Assuming you actually mean that you know algebra/trig (or can review these quickly), I'd suggest a good calculus book. I don't know any off hand, but I'm sure someone here can suggest.

Assuming you know calculus and you want to learn what you have heard of as "real math" there are a few options. 1) You can pick up a good linear algebra book 2) Pick up a book on discrete mathematics 3) Pick up a book on introductory analysis.

I guess a big question is why do you want to do this? For fun? For your job?</comment>


Ask HN: What code makes you happy? - <AUTHOR> Perhaps a clean code sample? A library where the code seems to read as naturally as if you wrote it yourself? <comment><USER2> Code with few dependencies! I am _not_ a fan of app-generators or specialized overweight package managers. Folks take enough advantage of yum/apt.

<comment><USER3> > I am not a fan of app-generators

Does a compiler count as a kind of app-generator?

</comment></comment><comment><USER4> Forgive the narcissism but I quite like the main function here:

[https://github.com/mbrock/klatch/blob/master/Klatch/Embassy/...](https://github.com/mbrock/klatch/blob/master/Klatch/Embassy/Embassy.hs)

And also this (incomplete) test suite for a language interpreter:

[https://github.com/lessrest/koko/blob/master/test/Tests.hs](https://github.com/lessrest/koko/blob/master/test/Tests.hs)

Other than that I really love well-written shell scripts that do their job.

<comment><USER5> Narcissism forgiven. That is petty code.

Readable, followable code is definitely on my top sexy list. I want to be able to read it like a story and not have to guess at obscure conventions someone made up to keep their job proprietary.

<comment><USER4> I really like it when the entrypoint function itself tells the basic story of how the program works.

Too many entrypoints are a combination of verbose boilerplate and obscure setup of "handler managers" and "event factories" and god knows what.

Often I look at a main function and it just seems to kind of start... something... and I have no clear idea of where to look for the code that actually does anything.

</comment></comment></comment><comment><USER6> Intuitive code, which tell itself what is supposed to do. When someone saw the code, they should be able to know what is happening. Another thing which will make me happy is to defines clear interfaces which can be extensible for any future change.

</comment><comment><USER7> No code is the only type of code that makes me happy.

</comment><comment><USER8> Taylor written in Swift.

[https://github.com/izqui/Taylor](https://github.com/izqui/Taylor)

</comment><comment><USER9> Code that runs for a decade without issue

</comment><comment><USER10> Code that replaces/relieves humans.

</comment><comment><USER11> LBH UNCCL</comment>


Show HN: Download and edit images on any website - <AUTHOR> https://chrome.google.com/webstore/detail/download-edit-all-images/dgichcjohmoeadceadnhjhcpmkcfhklc <comment><AUTHOR> Hi! I built this Chrome extension a few weeks ago... it allows you to see, download and edit all images on a website. You can download all images in one go as a .zip file, download individual ones, or edit images directly in the browser (e.g. resize, crop, apply filters, etc).

I've been using the extension myself over the past couple of weeks and find it super useful.

It's still a bit rough around the edges and could do with a bit more polishing. I would also like to add a lot more stuff, especially when it comes to the editor, but would love to hear your thoughts in the meantime.

Any feedback/ideas/comments/suggestions much appreciated! But be gentle pls!

Thanks!

<comment><USER2> nice tool, but downloading all images from a website seems far fetched call, as it downloads the images from the current page? and not all the images from all pages of a website?

<comment><AUTHOR> You are right - the tool downloads all images from the page that you're currently on. I should make that clearer in the future.</comment></comment></comment>


Balaji Srinivasan's plan to save journalism - <AUTHOR> https://davidgerard.co.uk/blockchain/2020/08/08/balaji-srinivasans-plan-to-save-journalism/ <comment><USER2> > The goal here is the Silicon Valley dream of automating away the human > element.

this doesn't seem to be an accurate characterization of the plan proposed by Srinivisan.

> There is no shortage of raw data — people read news at all because you're > using narrative to explain why these facts are noteworthy.

This idea seems more targeted at the proliferation of false information than the lack of information. Another relevant consideration would be the democratization of the narrative shaping process.

> And McCrum relied utterly on the backing of the Financial Times, a strong > paper with strong opinions on frauds in the market — particularly when the > "checked aggressively" was private investigators following him, and the > German regulator trying to prosecute him for looking too deeply into the > fraud.

Hence the movement to broaden participation in journalism by creating technology that allows everyone to participate rather than rely on the existence of powerful institutions that are favorable to your cause.

> But I'm also not so sure Srinivasan would think taking down the Wirecard > fraud is the sort of thing journalists should even be doing

Part of the allure of the blockchain is that, in theory, neither Srinivasan nor anyone else would be able to stop randos from publicizing their attestation to the occurrence of frauds etcetera in real time in a way that their claims could be independently vetted by other people, all of whose reputations would be attached to their output.

> Dr. Srinivasan is a smart dumb guy, not a dumb dumb guy. But this is idiot > nerd nonsense that's been tried repeatedly — it's a stupid ICO idea, that > multiple ICOs tried variations of. This is the particular species of dumbass > that a crypto guy comes up with.

Theres a lot of bad shit in the blockchain world but this is not a good take. Gerard seems to be more motivated by his dislike of certain personalities mentioned and his disdain for blockchains than anything else.

I'd like to see someone with less baggage critically engage with these issues because its interesting and would be a public service. I'm disappointed that this article wasn't able to do this. Looking at the author's background, he seems to be a "bitcoin critic" and hopefully Srinivasan et al publish a more formal statement of their proposal and perhaps Gerard can engage critically with the actual proposal instead of what he did here.

</comment><comment><USER3> balaji is a clown</comment>


Does your estimation include procrastination time? - <AUTHOR>

When I make an estimation of the tasks - be it assignment, projects or some reading I want to do, it often starts well for a day. Then next couple of days I sometimes get sad, sometimes depressed. I question myself what I'm doing with life and compare it with what I should be doing. Then I look at things what I could do and question why am I doing what I'm doing right now. Then the phase comes where I get scared of failure. I search for motivation, in music, in articles, what great people said, how they lived. Then I gather enough courage and enthusiasm to finish the task. However, When i look back, I have just taken more than a week to finish the project which according to my assumption, if I worked hard should've been finished in 2-3 days.
Does anyone experience these things? Am I normal? <comment><USER2> If you make stew from a can you can use a microwave and be done in two and a half minutes. If you make it from scratch, it's better if you let it simmer awhile, come back and stir it, then let it simmer awhile more, and so on. Eventually it gets into bowls and onto the plate. That's not procrastination, it's cooking.

Creative and cooking processes take time. Where nothing really appears to be happening. Ideas become richer with time.

</comment><comment><USER3> I have the same problem, and I've come to accept it. Sometimes I'm very efficient, sometimes not...

Acceptation helps: you won't feel like sh __anymore. Acceptation also means "let's go for a walk" is often your best option.

A todo list, the pomodoro technique (google it), relaxation/meditation can help too.

Productive procrastination is also a good way to cope: find a better procrastination, learn something, anything that will make you a better you...

So yes, I account for procrastination in time estimates. I think "nobody" can be 100% productive for 8h a day for some jobs.

EDIT: by definition, time estimate means "how long will I take to achieve X", so including procrastination in it sounds right...

</comment><comment><USER4> Is anybody normal? Would you like to be normal? How do you define normal?

When you ask if you are normal, you at the same time define "not normal" and put yourself in that box, what about rejecting the concept of normal and work on accepting who you are?

On the other hand I understand and recognize what you describe, sounds like what I used to do and what I have seen in many.

Try this: Divide your project into timeblocks of half a day's work (not in hours but in a size you can realistic reach either before midday or from midday until end og working day)

Then take a piece of paper and make a grid with the five weekdays and two cell's per day and write one of the timeblock you defined above in each cell.

Then show someone this paper and hang it somewhere visible, this is your accountability.

Then in each timeblock, after reaching your task, mark it complete and procrastinate until the next timeblock begins :)

This helped me.

Edit: then only sell timeblocks not hours - that way you get paid for doing tasks not doing hours.</comment>


Ask HN: Why aren't there more Python in-person courses? - <AUTHOR>

Sorry if the wording is confusing, not sure how else to title this. I don't mean formal Universities (like MIT which has a course in Python, etc). Referring more to the likes of DevBootcamp, StarterLeague, etc...
I noticed (maybe incorrectly) that Python seems to be the most popular language discussed here as well as in a lot of the online education stuff (Coursera, Udacity, etc...) but when it comes to 12-week training in-person programs like the above, they are mostly or all Ruby. Is there a reason why there are more/all Ruby courses and no Python courses like them (as far as I can see) aside from maybe no one with Python chops is interested in running a DevBootcamp-like course or something, or am I totally missing something here?
Please no comments on language doesn't matter as much as programming principles (I get that at the end of the day). More curious as to why they all appear to be Ruby-centric. <comment><USER2> It's that you hear of Rails developers more than you hear of Django developers. The Django community thinks of themselves as Python users first, whereas in Rails the wisdom is that Rails is easier if you learn some Ruby, but not necessary.

Also, the couple of Rails classes that have gotten a lot of the press just happen to market themselves well. One of them obtained a 37signals investment and has gotten a lot of attention from that.

Also, for some reason, a Rails developer is perceived to be in-demand in a way that a Django developer is not. It might be that Rails is more popular, though.

That said, there seem to be a lot of Python courses out there. Any of them could be the next Startup League with a website facelift and different sales copy.

</comment><comment><USER3> I am trying to fix this by teaching a Python For Beginners course in the SF Bay Area on 1/5/2013. More details here: <http://pythonprogrammer.eventbrite.com>. Email me privately if you have questions.

</comment><comment><USER4> In Israel the first "devbootcamp" is being held in Python. <http://10x.org.il></comment>


Show HN: Open sourcing my running app for iOS - <AUTHOR> https://github.com/kevinhankens/runalysis <comment><USER2> Very cool. No nonsense. I'm excited to try it.</comment>


Rockefellers hired militias to shoot at strikers in Ludlow massacre - <AUTHOR> https://timeline.com/rockefellers-hired-militias-to-shoot-at-strikers-in-ludlow-massacre-115ae488164c <comment><USER2> I'm honestly surprised that they couldn't just name Rockefeller in this headline.

<comment><USER3> Yeah, such a loaded title it's almost a clickbait

<comment><USER4> Isn't the whole idea of a title to entice readers to click on it?... why would one want to do otherwise?

</comment></comment></comment><comment><USER5> The kind of story you expect to see a Hollywood movie about. In 1914, after decades of feudalistic oppression, which culminated in two dozen men, women, children killed, a multi-national party (some veterans of various wars) went on a 10 day revenge spree around Colorado's mining fields, beating all opposition faced.

<comment><USER6> It is an interesting if brief article. I don't see why everyone is obsessing over the title. The article was about what I expected to see after clicking through.

<comment><USER5> I can see that the referenced book [0] is on Library Genesis in pdf. It might be an interesting read.

[0] [https://books.google.be/books?id=0H93RqyCXboC](https://books.google.be/books?id=0H93RqyCXboC)

</comment></comment></comment><comment> em-bee i learned about this event through woody guthries song some years ago. i never read anything else about it until today. this story more or less confirmed the picture that the song already created in my mind.

</comment><comment><USER7> But with the orchestrated death of men, woman and children. Did anyone actually go to jail?

<comment><USER8> Those with vast amounts of wealth never go to jail unless they step on the toes of someone else with a vast amount of wealth. It's how it's always been.

The only people who were imprisoned were those oppressed, I guarantee it.

</comment></comment><comment><USER9> bad title</comment>


Zero-confirmation inter-account transfers of .uk domains with eNom - <AUTHOR> https://m.pr/enom-advisory-20170901.html <comment><USER2> The timeline at the end is painful reading, especially with the time delta.

        2017-09-01 (+122 days) - Errata made public and notification sent to NameCheap and Nominet.
        2017-09-02 (+122 days and 9 hours) - eNom disable inter-account .uk transfers

122 days notice to achieve nothing meaningful and then ... 9 hours once it goes public.

<comment><USER3> This is precisely why full disclosure is a valid and correct option once the vendor has shown that they are either unwilling or unable to address the security concern in a timely and/or competent manor.

</comment></comment><comment><USER4> This was really poorly handled on eNom's part. No bug bounty programme, inability to comprehend the problem, ticket closed without resolution and then they only fixed the issue after their hand was forced.

I, for one, will be transferring all my domains away from eNom. This sort of response to a critical issue is just inexcusable.

<comment> unkown-unknowns I've tried a bunch of different registrars and ended up with gandi.net whom I've been with for several years now and am very happy with. Switch to gandi.

<comment><USER5> Gandi are expensive and I had a nightmare experience where they literally lost one of my domains on an inward transfer.

Customer service was unhelpful and downright rude.

Never had any problems with Namecheap.

<comment><USER6> Namecheap has a good service but their lack of proper 2 factor auth (opting for only SMS which is really broken[1] rather than proper TOTP) scared me away a while ago.

After raising this issue last February, they said it was coming soon. A year and some more of no action later, I transferred all my domains out since using known-broken security apparently isn't a priority for them, and it probably reflects in other and harder-to-see ways.

[1]: [https://www.theregister.co.uk/2016/07/24/nist_says_sms_no_go...](https://www.theregister.co.uk/2016/07/24/nist_says_sms_no_good_for_authentication)

<comment><USER5> It's not full TOTP support, but they do now offer 2FA via an Authy OneTouch implementation.

<comment><USER6> I did not know that! Looks like[1] it went live back in July. I still wish they'd have used TOTP rather than this onetouch thing that's restricted to a single app, but just about anything was better than SMS, so this is a welcome development.

[1]: [https://blog.namecheap.com/announcing- onetouch-2fa/](https://blog.namecheap.com/announcing-onetouch-2fa/)

</comment></comment></comment></comment></comment></comment><comment><USER7> Nominet don't do any verification when these transfers are made.

Most registrars I've checked don't do any verification themselves either.

Here's an example of the race conditions many registrars fall to: [http://blog.pricechild.co.uk/2016/06/uk-domain-transfers- are...](http://blog.pricechild.co.uk/2016/06/uk-domain-transfers-are- scary.html)

Nominet allow you to enable 2fa on your account but this means sweet fa. It doesn't stop transfers by other actors.

</comment><comment><USER8> The handling of this is so fcked, respect to you for remaining patient and persistent. How could they possibly forget to implement some authentication for transfers in 2017? I love how it took 122 days of brain dead support tennis, then only 9hrs to fix after going public - then again 9hr response to this is also pretty bad considering

I'm really reconsidering if I want to keep anything in Namecheap going forward.

<comment><USER9> We did lose our temper to be honest, however we could only publish the errata once our domains were transferred away which took 6 weeks or so to complete. We've moved to Gandi if you were after a recommendation!

</comment></comment><comment><USER10> This reflects extremely poorly on eNom and NameCheap. I might consider moving the domains I have with them now...

<comment><USER11> good luck if it's a .uk domain, I tried moving a couple of mine away and eventually had to force the transfers through nominet, which cost me money!

thankfully .uk domains have this option, otherwise I would have been screwed

their support kept saying "its the fault of the registry"... I did a test from another supplier for transferring a .uk domain and it went through instantaneously

66 days after I forced the transfer I received the email from namecheap saying "domain transferred out"... what the hell

namecheap's systems appear to be antiquated and the support are worse than useless

I would advise anyone avoids "resellers" for domains, at least if you go directly to the registrar there's one level of bullshit removed

<comment><USER8> This could be Nominet fault. Years ago as a registar had to send PGP signed emails to some Nominet automated address to make changes or register UK domains, it was clumsy, slow and you had to maintain the state yourside. Nominet then got some independence, a CTO, a sales/business dev department dedicated basically to domain snippers, and Oracle got a ton loads of money (it was one of giant Sun mainframes if I recommend correctly) and it was still a PITA. This was 15 years ago apparently it is still a train wreck. When you start making decisions on the golf course its very difficult to recover

<comment><USER10> This is interesting. I know that some TLDs have very antiquated, 100% manual management of registrations and transfers, although I wasn't aware that .uk was one of them. So to be fair it might not be eNoms fault.

The timeline with over 122 days before any useful action was taken, coupled with the apparent misunderstanding and LOCKING of the reporter's account, still reflects extremely poorly on eNom's support department.

<comment><USER8> Internic used to send you a paper invoice a few months after registering a .net, you then had to tear it off and send a us$70 check to them - and this applied if you were in the UK too, that all changed with joker.com iirc. Nominet system was just poorly engineered, slow (occasionally took hours) and damn right nasty to use in an end to end automated fashion - parsing emails for clues of errors etc.. The Oracle upgrade was just OTT for a system managing maybe 5m domains at the time (not an NS provider, although maybe they managed a root), the early 2000 version of big data, big money and loads of golf (Im guessing on the golf).

</comment></comment></comment></comment></comment><comment><USER12> Awful. There should be a way to force companies that are so clearly in the wrong into compliance.

</comment><comment><USER9> Cheers for submitting this again Tony! :)</comment>


Engadget Editor Joshua Topolsky Joins SB Nation - <AUTHOR> http://joshuatopolsky.com/post/4327161218/this-is-my-next-project

<comment><USER4> If you have your existing Engadget editorial team in place apparently - <USER2> presumably the same contacts and access to news stories and new products - <USER3> would you have to wait until the Fall to launch? Engadget will have moved on by then and by the Fall, this particular group of people will have been forgotten.</comment>


Neutun- a smartwatch app that tracks seizures - <AUTHOR> http://neutun.com

<comment><USER2> How does Neutun know that someone is having a seizure? What characteristics might someone be exhibiting?

<comment><USER3> Hello,

Neutun can detect seizure-like movements by analyzing the acceleration of the wearer's limbs and by tracking the regularity of that acceleration.

Thanks,

Neutun Team

</comment></comment><comment><USER4> Nice!

<comment><AUTHOR> thanks!</comment></comment>


Visualizing the Fourth Dimension Using Color - <AUTHOR> http://www.rdrop.com/~half/Creations/Puzzles/visualizing.4D/

<comment><USER2> Those that enjoyed this may also enjoy the film "Dimensions".

A brief guide for the film that gives an overview: [http://www.dimensions- math.org/Dim_tour_E.htm#guide](http://www.dimensions- math.org/Dim_tour_E.htm#guide)

Watch online (Deutsch, English, French, Spanish, Italian, Japanese, Russian and Arabic subs available): [http://www.dimensions- math.org/Dim_regarder_E.htm](http://www.dimensions- math.org/Dim_regarder_E.htm)

<comment><USER3> Great link!

</comment></comment><comment><USER4> Better cache: [https://web.archive.org/web/20130601110834/http://www.rdrop....](https://web.archive.org/web/20130601110834/http://www.rdrop.com/~half/Creations/Puzzles/visualizing.4D)

(Includes images)

</comment><comment><USER5> OR you can simply project the fourth dimension into 2D, much like how we project 3D pictures onto 2D screens. Here's an example [http://jakebian.github.io/hypercanvas.js/](http://jakebian.github.io/hypercanvas.js/)

<comment><USER6> It's a cool idea but I don't know how to comprehend what I'm looking at.

<comment><USER7> What would your response be to a child who said something similar when you drew a cube?

It does take practise to be able to visualise 4d objects, and I agree that 2d projection example isn't helpful. I find it interesting to think of the 3d -> 2d problem that some people have, and extend it to 4d.

<comment><USER6> I mean that there is no description on how these projections are even created.

A child would recognize a cube since we naturally see 2d projections of 3d objects as it is. Likewise a 2 dimensional being could recognize a 1d projection of a 2d object (looking at the 2d object on it's side.) But would a 3d object projected to 1 dimension make any sense?

</comment></comment></comment></comment><comment><USER8> I've thought a lot about visualising higher dimensions in 3D. Colour is a fantastic way to start, and it infact is adding 3 more dimensions (hue/saturation/lightness). If you could add other senses, e.g., touch, taste, pain, etc., you can sense even more dimensions.

However, one thing does strike you that no matter how many senses you incorporate, you will always navigate a particular 3D projection.

EDIT: Cached page: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.rdrop.com/~half/Creations/Puzzles/visualizing.4D/)

<comment><USER9> > no matter how many senses you incorporate, you will always navigate a > particular 3D projection.

How do you mean? I can think of visualizations that do not.

<comment><USER10> Could you describe the visualizations you're thinking of?

<comment><USER9> An animated visualization, for example.

</comment></comment></comment></comment><comment><USER11> Can someone give a two dimensional analogy to the unknotting example?

<comment><USER12> Nontrivial knots don't exist in 2D, so not really.

Something almost analogous is if you imagine two circles: one smaller and one larger in 2D. Let's say the smaller circle is inside the larger. It's impossible to move the smaller one outside smoothly without intersecting the larger.

In 3D of course this is trivial, just move the smaller circle up away from the 2D plane, then over the larger one and down on the plane again.

<comment><USER2> I think your circles analogy is good.

To tie it in a bit tighter with OPs article, I would just add that if we could only perceive two dimensions, the inner circle would disappear as we "move the circle up and away from the 2d plane".

It would only reappear to us once we moved it back down into our plane of perception, safely outside of the other circle.

The relevant bit from OPs article that this is analogous to is:

> " _What would we see if you watched this happen in real life? Since we can > 't see anything outside our 3D slice of 4D space, from our perspective the > moving (green) loop would disappear, to reappear later in the unknotted > position_."</comment></comment></comment>


Lenovo Yoga 3 Pro ultrabook announced - <AUTHOR> http://www.engadget.com/2014/10/09/lenovo-yoga-3-pro-thinkpad-yoga-14/

<comment><USER2> There should be a policy not to post stories here about laptops having less than 16GB RAM. :)</comment>


Ask HN: What is the state of eGPU on macOS? - <AUTHOR> What is the real state of eGPU on macOS?
Akito Node says it supports macOS 10.13, AMD CPU's only.
Razor Core X says it supports macOS, nVidia and AMD it seems.
I feel like Windows eGPU support is the best and I have projects where eGPU's will be used. Switch to Windows for development or is eGPU support on macOS really production ready? I have no objection to making my own tools if needs be. <comment><AUTHOR> Found this: [https://support.apple.com/en- us/HT208544](https://support.apple.com/en-us/HT208544)</comment>


There is literally a US government conspiracy against vegan mayo - <AUTHOR> http://qz.com/493958/there-is-literally-a-us-government-conspiracy-against-vegan-mayo/

<comment><USER2> So fraud prevention is now a "conspiracy"?

There is no such thing as "vegan mayo". Mayonnaise is made from eggs, by definition.

Note that the purveyors of vegan sandwich patties don't call them "Just Hamburgers". They call them "garden burgers" or "soy burgers" or some such. Calling them "Just Hamburgers" (with a picture of a cow on the label, no less) would be a lie.

Note also that Kraft sells two products: "Kraft Mayo", made with eggs, and "Kraft Miracle Whip", made without eggs.

<comment><USER3> They call it "vegan mayo" so you know what the real product it replaces is. Just like the vegan burger patties. If they didn't specify, then their product could be just about any sort meat patty replacement. This way you know exactly what the vegan replacement version product doesn't taste like.

<comment><USER2> They don't call them "vegan _hamburger_ " though.

Also, the label depicted doesn't say "vegan mayo", at least not in large print. It says "Just Mayo". It looks pretty deceptive to me.

<comment><USER4> Apparently mayonnaise did not always include egg yolk.

      https://en.wikipedia.org/wiki/Mayonnaise

But besides this, the label appears to do plenty to explain to consumer what it is:

[http://www.choosingraw.com/wp- content/uploads/2013/07/IMG_55...](http://www.choosingraw.com/wp- content/uploads/2013/07/IMG_5545.jpg)

<comment><USER2> Sorry, that's like calling something "24 Karat Gold" in large print, and calling it "gold-free" in small print. You can't do that.

This is a deceptive product. All they need to do is change the name to make sure it's clear you're not buying "Just Mayo", but rather an egg-free simulation of mayo, and they'll be fine. There's no conspiracy here that I can see, just truth in packaging laws functioning as they are intended to function.

<comment><USER4> I guess there's something valid to what you're saying, but at the same time I generally think about these things in scales of gray and not in black and white.

What if someone comes up with a new technique (or new material) for manufacturing paper. It's not technically the same material being used in the product, but everything about it, and everything about people's experience with it, is exactly the same as their experience with and uses of "paper". Should they be forced to stop using the word "paper" on their product and start their advertising pitch with "please buy our 'something that is flat and white and you can use it to write things on. But it is certainly not paper' product, in the same aisle and probably on the same shelf as the real paper products"

and come to think of it, by taking a hard line approach we may be asking for a "naming crisis" (a marketing company's wet dream) and making things unnecessarily complex for consumers. Think of all the different names we'd need to start giving fruits and vegetables. Well it's yellow, not red. So it's not an apple. That has oats in it? It's certainly not bread.

We all know how difficult / expensive it is to educate consumers on a new product. Why create artificial barriers to entry for startups or companies trying to do things a little different? "A little different". We're not trying to call spaghetti moon rock, and we're not saying it's ok to market napkins as beer.</comment></comment></comment></comment></comment></comment>


The Moral Power of Curiosity - <AUTHOR> http://www.nytimes.com/2014/04/11/opinion/brooks-the-moral-power-of-curiosity.html

<comment><USER2> >One lesson of this tale is that capitalism doesn't really work when it relies on the profit motive alone. If everybody is just chasing material self- interest, the invisible hand won't lead to well-functioning markets. It will just lead to arrangements in which market insiders take advantage of everybody else. Capitalism requires the full range of motivation, including the intrinsic drive for knowledge and fairness.

Alternatively stated: 'Capitalism, as we understand it, requires that market actors are enabled to realize the full spectrum of net-benefit desires. That no (intrinsically good) class of human desire should be inherently privileged relative to others. That intrinsic market biases which select for certain classes of motivation place an "invisible tread" on those that market machinery is not aligned for; the antithesis of the "invisible hand".'

Under the assumption that capitalism is the best means of organizing and maximizing societal utility and productive output, people can look at the world through the "market bias/full spectrum motivation" filter and _still_ walk away with remarkably disparate philosophical outlooks on capital market organization.

It's troubling (or exciting, depending on your outlook) that Economics is such a young field. The optimist would say that there is so much to be discovered. The pessimist would say that our entire meta-organizational mechanism for the human species is predicated on a precarious understanding of emergent systems; an understanding with a high intellectual center of gravity. That it's wrought by a legacy where positive and normative statements are considered, or at least perceived, to have the same scientific (or effective) impact within the field, and by extension, society. Not only are these types of understanding often traded pound for pound, but this legacy provides higher dimensional vectors of debate. A dimension that may (or may not) have any bearing in reality or analogue in effect. Often, these vectors are political, hardened by moral absolutism.

Statements like: "Capitalism requires the full range of motivation, including the intrinsic drive for knowledge and fairness." and "One lesson of this tale is that capitalism doesn't really work when it relies on the profit motive alone." give us a skein of understanding of societal condition. On a surface level, they seem to be predicated on positive knowledge of market failures. However, by the vary nature of Economics in its current state, we cannot know how well founded these statements are. Market machinery, organizational dynamics, philosophical market doctrine have all evolved in a universe where positive and normative statements of understanding have historically had the same molecular weight.

The systems, taken whole, are inherently untestable. That is not to say Economics is doomed as a science. As a species, we are just barely figuring out how to remove our own biases from our understanding of emergent systems. There lies ahead a bright future for Economics. Perhaps some future Adam Smith will yield a _Philosophiæ Naturalis Principia Mathematica_ of behavioral economics-unearthing the underlying axioms of rational and irrational action in markets. Or perhaps some future son or daughter of ours will discover some novel underlying geometry to (or approximation of) chaotic systems, allowing our species to further unveil one of our oddest creations. Perhaps further integration with high horsepower computational machines will enable us to develop more experimental means of validation and understanding.

I suspect one thing is certain, any framework of understanding which values normative understanding as equal to or above positive understanding will likely end up at an intellectual local maxima. To put it melodramatically: we may argue over the rations as the lifeboat sinks. Did I say local maxima?

Of course, I have normative beliefs. Normative outlooks are inherent to the human condition. They are our attempt to abstract, approximate, and process information from systems that we do not yet fully understand. But I worry that my normative beliefs will delude me into thinking that my philosophy will help those in need, those for whom the market has failed, when I am in fact harming them. This is also to say that all normative beliefs aren't necessarily bad. There are some that most people will agree with. If anything, this furthers the need to develop a positive understanding at the foundation of those beliefs. Imagine how much worse off we would be as a species if we dusted our hands and decided that there 'should' be four elements, a universal aether, lobotomy, and a moral stance against vaccination.

For what it's worth to this tangential rant, I really enjoyed this article. Thanks for submitting.</comment>


FPGA 101 Lessons/Labs - <AUTHOR> https://github.com/litex-hub/fpga_101 <comment><USER2> This seems to be using some sort of homegrown python system (migen) for fpga development.

If you really want to learn fpga/asic development do yourself a favor and learn a real hardware description language such as verilog or vhdl. It is really not that hard. If you have some minimal knowledge in digital systems you will be up and running in a few hours.

And with a good teacher it will be really fun:

[https://www.fpga4fun.com/](https://www.fpga4fun.com/)

<comment><USER3> I Fully agree. Learning Verilog, or ideally SystemVerilog, to a basic level is important to have as a foundation for when you may need to build more advanced designs. I'm in favour of more high level languages being developed for HW generation, but I've yet to see a true replacement language for the main HDLs. For a counter and blinking led example, Verilog is very easy to read/understand for a beginner.

<comment><USER4> I would always say that the important thing is the paradigm you need to adopt when writing RTL. Whether it's VHDL or systemverilog, the differences are details. It's like programming C# vs Java, they have the same core concepts. But if you hand a C# Developer VHDL/SystemVerilog/Prolog they're not going to have a good time.

<comment><USER3> That's a good point,the dataflow can be confusing to understand at first, especially when used to a purely procedural paradigm. In a way its similar to the differences between functional and imperative programming, and you first need the right mindset/basis for how it works before you can be productive. Once you understand the concurrent nature being described by HDLs, it begins to make sense - I always elaborate my HDL (actually usually other folks code) so I can see the dataflow that's being inferred graphically and it's very useful</comment></comment></comment></comment>


I built a simple CPU in Desmos (graphing software) - <AUTHOR> https://www.desmos.com/calculator/pg31zvw3rx <comment><AUTHOR> For an explanation on how it works, see this Reddit thread.

[https://www.reddit.com/r/programming/comments/8v0p4z/i_built...](https://www.reddit.com/r/programming/comments/8v0p4z/i_built_a_simple_cpu_in_desmos_graphing_software/e1jmxne)</comment>


The routing security battles intensify - <AUTHOR> http://www.internetgovernance.org/2013/01/09/the-routing-security-battles-intensify/

<comment><USER2> I don't know. The security policy in BGP isn't all that agile and decentralized to begin with; it's mostly just a mess, isn't it? Different providers with different systems for truing up filters, many of which themselves rely on centralized databases? Can it get much worse than it already is?

<comment><USER3> Any resources for learning about BGP, preferably through the lens of security? I feel like it's something most people (myself included!) have no clue about.

<comment><USER4> Take a look at <http://moo.cmcl.cs.cmu.edu/~dwendlan/routing/> (slow to load, but it does load) - he covers a good number of the security aspects around a distributed routing protocol like BGP.

Network engineers tend to be big fans of simplicity - enabling security options like md5 passwords was like pulling teeth until a few years ago . This is partially because it quickly becomes difficult to keep track of what password is used where, and the netengs like their excel files to be clean and simple.

Not sure what my thoughts are on this RPKI thing - taking days to sync the local cache doesn't sound right, altho I'm not fully through the paper, yet. Needing a full copy of the cache to guarantee security in a distributed routing protocol doesn't sound right. And if it is, Cisco's gonna make a small fortune selling memory upgrades...

A linux box and a BGP peer won't teach you BGP...it'll provide you with a nice start. This is one of those things that requires battle scars, like solid UNIX admin skills. You have to be running one or more BGP peers for a good period of time to get exposure to what can break and how it should be fixed. Going through CCIE labs will get you closer, but this is definitely one of those things where there's nothing like experience.

</comment></comment></comment><comment><USER5> "RPKI is being advocated by US government-funded contractors and US government agencies such as the US National Institute of Standards and Technology (NIST)."

Big, bad, NIST!

Also, nearly every company that knows anything about internet routing is a government contractor. Because, you know, they invented the internet under government contract.

<comment><USER6> And how is Verisign not also a government contractor?

</comment></comment><comment><USER7> Looks to me like Verisign isn't a fan of the scheme because it would take a few hours to propagate routing changes.

That makes it harder to run its DDoS prevention business. Not sure that's a good reason to oppose better routing security.

</comment><comment><USER8> rough consensus, running code

This is too much talk, not enough code. Whoever wants PKI needs to put together a POC and release it into the wild.

</comment><comment><USER9> Key quote: "If authoritarian governments were smarter and really did want to assert direct control over Internet operations, they would forget about the ITRs and push for passage and implementation of BGPSEC, and then make plans to assert legal control over the ROA certificates. Oddly, the only government that seems to be present in SIDR is the USG. Hmmm…"

Sounds a lot like actors within the US government want to maintain and extend their just-hidden-enough centralized control of internet information, just as the intelligence apparatus achieved for finance (via SWIFT and credit/debit card networks) and telecommunications (via global interception of conventional networks, and US-centric internet routing).

What I've always wondered is why China doesn't give fat pipes to Russia, East and Southeast Asia.</comment>