I realized that derivatives are linear - <AUTHOR> https://codesmoothie.com/blog/derivatives-are-linear.html <comment> dan-robertson So the point of this article is that _differentiation_ is linear. That is, the operator D which takes f to d f/d x is linear. The author points out that one can write this down in as a matrix with respect to a basis of polynomials, which is nice for suitably well behaved functions and I think nice for understanding. Other operators one might look at are integration, Fourier or Laplace transforms, or more exotic integral transforms which are linear. One can view a Fourier transform like a change of basis.

In another sense, _derivatives_ themselves are linear: for a function f: U -> V of vector spaces, the derivative (at some point) is a linear map from U -> V, (i.e. the derivative of the functions is a function Df: U -> L(U,V)) and this extends the concept of derivative to multiple dimensions as f(x+h) = f(x) + (Df)(x)h + o(h).

This seems ok at first derivatives but can become unwieldy as they became tensors higher rank.

Another question one might ask on learning that differntiation is a linear operator is what it's eigenvalues are. For differentiation these are functions of the form f(x) = exp(ax). But one can construct other linear operators and from this you get Sturm–Liouville theory which is fantastic.

One final note is that much of this multidimensional derivatives and tensor stuff becomes a lot easier if one learns suffix notation (aka Einstein notation, aka index notation, aka summation convention), as well as perhaps a few identities with the kronecker delta or Levi-Civita symbol. Notation can break down a bit with arbitrary rank tensors: $a_{i_1,...,i_k}$ becomes unwieldy but writing $a_{pq...r}$ is ok.

</comment><comment><USER2> The derivative is a linear operator, but it's not a bounded operator. That is, for example, the vector norm of f(x) = k·sin(x/k) → 0 when k→0, but the norm of d/dx f(x) does not. This also means that it's not continuous.

Of the mappings between vector spaces, the most well behaving are the bounded linear operators, and the derivative doesn't belong to these. But yes, it's linear.

Edit: Originally wrote f(x) = k·sin(k·x), but meant f(x) = k·sin(x/k).

<comment><USER3> Depends on what space you define the derivative on. It is of course a bounded (and therefore continuous) operator from C^k to C^{k-1} for any positive integer K.

Additionally, it only really makes sense to talk about bounded operators between topological vectors spaces (as you need to make sense of what it means to be bounded), of which the most commonly dealt with are Banach spaces.

<comment><USER4> It also depends on what topology you put on your space, while the derivative operator is defined on all of C^k, that does not make it continuous. In fact as the GPs example shows, the topology you put on C^k and C^{k-1} must be so that uniform convergence does not imply convergence in C^k (which differs from many peoples intuitive notion of convergence of functions) or cos(x/k) converges to 0 in C^{k-1} (which is just plain weird).

</comment></comment></comment><comment><USER5> This was an example used in my linear algebra class as soon as they started introducing the vector spaces in an abstract sense.

I think this post may still be _too_ wedded to the idea of linear spaces and vectors being arrays of objects - specifically in insisting on decomposing functions like sin and cos to Taylor Series. In fact, you can have a vector space where, in addition to polynomial terms, there are also dimensions for sin(x), tan(x), sin(x - pi), e^x, etc. The fact that you can't _enumerate_ these dimensions, or even describe the set of them until given a set of vectors you're trying to describe, doesn't keep this from being a vector space.

<comment><USER6> Hm. Interesting.

I always viewed real functions as infinite-dimensional vectors in the "canonical" basis, that is, shifted Dirac impulses. I guess it can be transformed into your representation with a change of basis with some handwaving.

<comment><USER5> What you're describing may not be a subspace of the space I'm describing. Mine is definitely a subspace of yours - e.g. you can project functions into sums of shifted Dirac impulses by representing each function dimension as a linear combination of the "Dirac vectors" for that function's values.

<comment><USER6> Hmmm. I think it's easy to fix that:

Suppose that there's a function f, that can be written as an infinite sum (integral) of shifted Dirac impulses, but cannot be written in your representation as a sum of those "base functions". Then simply add a new dimension to your representation that will correspond to f, so that f will be represented as 1 at this new dimension, and zero everywhere else. (In other words: add f to the base functions)

Repeat until you have covered every function.

</comment></comment></comment></comment><comment><USER7> Well this is the whole point of derivatives (i.e. tangent maps): to be linear approximations of functions.

So yes, a linear approximation of a linear function is the function itself.

<comment><USER8> If a function f passes through some point (a,b), then the tangent to f through that point is given by

        (y-b) = f'(a)·(x-a)

and that function is affine but usually not linear. (For the tangent curve to be a linear function, you would need a·f'(a) = b, so that the tangent goes through the point (0,0).)

It's not at all obvious to me that this means that the function d(f) = df/dx is linear. It is linear, but I don't see how the tangent curve demonstrates it.

<comment><USER9> It is common in this context to say "linear" to also mean "affine", because after all affine functions are not much more complicated than linear functions.

</comment></comment></comment><comment><USER10> The first headline for this was something along the lines of "I realized that derivatives are linear" making it clear that this is not a new discovery, but rather a person sharing a lightbulb moment.

I feel a lot of comments are saying "well of course they are!", not realizing that this is not about a new discovery.

</comment><comment><USER11> Be careful when using knowledge from this post. These are special cases, not the general rules of differentiaton (or calculus).

For example, for multi variable calculus, the results would be very different.

Let's take the example of W.X

d/dx (W.X) = X.d/dx(W) + W.d/dx(X)

since W is not dependent on x, the first term is zero and we get the answer the author got.

Before drawing conclusions from the post, please remember the assumptions the author has taken.

</comment><comment><USER12> Integrals and Fourier Transforms are also linear...

</comment><comment><USER13> There's a ² missing. Should be dC/dx = sum d/dx |...|².

<comment><AUTHOR> Yep, fixed!

</comment></comment><comment><USER14> >Most of the other non-polynomial functions have an equivalent Taylor polynomial

_analytic_ functions have a Taylor _series_, but it would be incorrect to say that "most" functions have a taylor series, and a taylor series is not a polynomial.

</comment><comment><USER15> There seems to be a misconception that linear transformations have to look like lines.

<comment><USER16> One easy way to see that "linear" does not mean "line-like" is looking at matrix transforms: All matrix transforms are linear. And we can do a lot of stuff easily with those, like rotating, distorting, even perspective (with w-normalization).

<comment><USER15> All matrix transforms are linear. And few people understand matrix transforms. The term itself "linear" transform stems more from the contrast to nonlinear equations, but it still "feels" like a bit of a misnomer. Perhaps it should be called "proportional" or "relatable" transform.

Ehh, then again, it doesn't really matter, people who don't understand it still won't with a nomenclature change.

</comment></comment></comment><comment><USER17> HN continues to confuse me to no end.

Mention some mathematically advanced idea: out come the pitchforks about how you don't need that, all you need is code/market size/scalability/product fit/investment/execution.

Mention a banality that anyone who studied algebra knows: frontpage.

<comment><USER18> You may be overestimating the banality. I studied CS with many math courses and some of the article goes over my head. (It would be clearer 10y ago) I don't expect many people here actually studied math as their main goal.

<comment><USER17> That aside I think there's something bigger here.

I think learning is really hard work, and so most people's first reaction to hard work is to say No, and then go and construct an a posteriori rationale for why actually they shouldn't do that hard work (it's not that useful, you're never gonna use it, you're an expert at something else, etc).

Similar story for why asking data structures in job interviews is a bad idea when you're an applicant (but the people who have been hired and are hiring, do think it's good to ask)

<comment><USER19> Yeah it seems analogous to bike shedding or Paul Graham's 'blub' paradox. I.e., "we don't understand that and haven't [realized that we've] needed it to date therefore it's probably not important and certainly not of interest".

I like your conservation-of-mental-energy interpretation.

<comment><USER17> TIL about the Blub paradox [https://en.wikipedia.org/wiki/Blub_paradox#The_Blub_paradox](https://en.wikipedia.org/wiki/Blub_paradox#The_Blub_paradox)

Thanks for that.

</comment></comment></comment></comment></comment><comment><USER20> This is why you take linear algebra and calculus _before_ doing machine learning.

<comment><USER21> On the contrary - ML is a great motivator to finally grapple the "prerequisites".

During school I never understood what the math was for, so my unconscious brain never saw the necessity to actually learn it. Now I _want_ to learn - with hugely better results.

This mechanism should be utilized much more often instead of shoving seemingly unrelated knowledge into peoples ears without letting them feel the need for it first.

<comment><USER22> Right. There are a lot of comments along the lines of "Duhhh, that's the point of calculus" here. But you know what? Screw that. People learn when people learn, and discovering it for yourself is a lot cooler than someone telling you about it, especially if it's related to investigating something you care about.

I can't tell you the number of 'trivial' math facts that I have (re)discovered because they were in the context of something I cared deeply about.

The point isn't to remember D_x is a linear operator--math isn't about memorization. It's about understanding the context where this is a useful fact and knowing how to figure it out.

Learn it in Calc I and you can half-heartedly reference it (...isn't differentiation linear? I feel like I remember that from senior year of high school...).

Figure it out on your own and you own it for life.

Post it to the internet and you get ridiculed and mocked for it so that you wish you could forget it.

<comment><USER23> _> The point isn't to remember D_x is a linear operator--math isn't about memorization. It's about understanding the context where this is a useful fact and knowing how to figure it out._

Totally agree with this part.

 _> Post it to the internet and you get ridiculed and mocked for it so that you wish you could forget it._

Telling everybody you meet about a basic fact that you just learned is mildly cute when a 6-year-old does it.

It's great that this person learned something that was new to them, sure. But that doesn't mean that they need to shout about it to the tens of thousands of their closest friends who read the front page of HN.

</comment></comment></comment></comment><comment><USER24> Heyyy man, what if the universe is LINEAR?

<comment><USER25> "Classification of mathematical problems as linear and nonlinear is like classification of the Universe as bananas and non-bananas."</comment></comment>


A tale of two 9-year-olds - <AUTHOR> http://time.com/3222257/a-tale-of-two-9-year-olds-the-one-on-the-playground-and-the-one-with-an-uzi/ <comment><USER2> I don't think a story like this belongs on HN. Another story on this topic might generate interesting discussion and debate, but this one is written in an inflammatory manner and does not demonstrate deep thinking or clear analysis.

To summarize my problem with the article: it claims that the second amendment should not be used as a reason to allow 9 year olds to do dangerous activities like shooting automatic weapons. And yet nowhere does the article cite (or even describe) someone citing the 2nd amendment in this debate. The article doesn't say that the police used the 2nd amendment as a reason not to charge the girl's parents. It doesn't show the the 2nd amendment prevented laws against 9 year olds shooting guns in firing ranges. It doesn't cite people using the 2n amendment as a reason to defend the girl's parents.

<comment><AUTHOR> It's obviously an editorial. I don't post them often but every now and again I make an exception. I think the subject matter speaks to a dichotomy that crops up frequently here between liberty and the supervisory role of the state.

Perhaps you might try focusing less on the second amendment and more on the question of why letting your child unsupervised int he park is treated as a serious felony.

<comment><USER2> It is the article that has an excessive focus on the 2nd amendment. This is the final paragraph:

 _If you're a parent, you should be absolutely terrified that a 9-year-old's constitutional right to fire an Uzi trumps your right to decide at what age your kids can play at the park unsupervised.

Something has to change. Now._

<comment><AUTHOR> notwithstanding the hyperbole, I'm not seeing the excessive aspect you mention. By international standards, Americans' maximalization of second amendment rights is bizarre to the point of being self-destructive (as exemplified in this shooting incident). I don't need to hear an entire articulation of the water cycle every time someone observes that heavy rain makes things wet.

Clearly we're not going to agree about this.

</comment></comment></comment></comment><comment><USER3> I don't think it's quite a fair comparison. They talk about how no one got charged in the girl's case. But the person most likely to get charged would be the instructor, but he's dead.</comment>


Screenshot URL tracking and niki-bot - <AUTHOR> https://mig5.net/content/awesome-screenshot-and-niki-bot <comment><USER2> I'm not fond of Chrome's app permissions at all. Too many apps just ask for permission to access everything, and there is little insight into what they exactly do.

I run the Ghostery extension and a year or so ago I noticed that when visiting YouTube ~15 analytic trackers were being blocked. Turns out a couple of extensions were injecting tens of trackers into popular sites (without my express permission), and I would have had no idea unless I had another extension to block and report this activity.

My girlfriends computer is worse - her extensions seem to inject actual adverts into lots of her pages. I asked her why there was an obnoxious "click the bottle to win 1000000$" flash advert on Facebook and she thought it was just how Facebook is. Same thing for YouTube and other popular sites.

<comment><USER3> I stopped using ANY extensions for the same reasons. In most cases, the risks outweigh the benefits in orders of magnitude. Well, there are few exceptions, of course, but those are widely used developer tools.

<comment><USER4> For me, the Internet is largely unusable without adblock at the very least. I removed Ghostery and started using Disconnect instead. It does a much better job methinks.

In addition to this on Firefox at least I invoke about:config and make several settings changes:

\- I disable prefetch.

\- I disable media.peerconnect.

\- I disable geo tracking.

\- I disable HTTP/S referer.

\- I disable DOM storage.

\- I disable visited link tracking.

I also use EasyList, EasyPrivacy, and Malware domains adblock subscriptions.

In addition, as a Linux user, I want to use Flash on those sites that use it, but I don't want to deal with LSOs tracking me, so I take advantage of Flash by sending those LSOs to /dev/null. The Website is none the wiser and I get the benefit of the Website.

rm -rf .adobe

rm -rf .macromedia

ln -s /dev/null .adobe

ln -s /dev/null .macromedia

Surf with relative comfort knowing that you've already paid for your Internet connection with cash, no need to give away more of your privacy than needed. Blocking ads is great if you use any social media, as you don't have to see the sodden ads.

<comment><USER5> I use several web browsers, so rather than installing a different 'adblock' plugin for each one, I use Dan Pollock's excellent list as part of my hosts file:

      http://someonewhocares.org/hosts/

(Mentioned in HN previously.)

Works well for MacOS X, Linux and Windows, and doesn't care what browser you're using.

I have been using it for 3+ years now without any problems.

I have a script to toggle moving the file out of the way and then back again, mostly so that I can give ad revenue to those sites that I feel are deserving.

<comment><USER4> I have toyed with the idea of using hosts files instead, but what bothers me is the lack of daily updates. Granted, there is so much bad crap out there that it's impossible to avoid it all.

Another thing I want to do is find a router that allows host files and script regular updates. It would be great to never have to install extensions or tinker with hosts file for every box on the network. I've also said I'd be interested in seeing a proxy server that strips out all of this stuff so no maintenance on the user end is required.

<comment><USER5> A bit of a late reply, but I have switched to using this on my home LAN now: [https://github.com/jodrell/unbound-block- hosts](https://github.com/jodrell/unbound-block-hosts)

Basically, a Perl script to massage the data from Dan Pollock's list into a format suitable for unbound ([http://www.unbound.net/](http://www.unbound.net/))

</comment></comment></comment></comment></comment></comment><comment><USER6> 6 years ago I reported reported 2 important issues [1] to Diigo (XSS in all URLs if their extension is installed and information leakage for SSL pages - similar to what author said).

Due to their response and lack of ability to understand security issues I stopped using them, it's a shame to see they are not any better after 6 years!

[1] [http://www.securityfocus.com/archive/1/493531](http://www.securityfocus.com/archive/1/493531)

</comment><comment><USER7> Hm, whoever edited the title should reconsider - "Awesome Screenshot" is the actual name of the tool.

</comment><comment><USER8> Free tools that provide value should hence be avoided. While evaluating a tool, I've always checked for if a company runs on 1.subscription money, 2. ads, 3. selling my data

Usually stay wary of signing up for anything which tilts towards 3.

<comment><USER9> Quite a lot of tools are actually really just free. Say, the Linux kernel, or most of the free software we all use everyday.

Then there are also the miscellaneous services run by someone on the internet mostly for themselves or a small community (or just to get some publicity for themselves) which are also free and don't run on ads, selling data or subscription. I do that, myself. Do you trust Naptha[0]? It was posted on HN some time ago, from the comments[1] I don't even see anyone bringing up the issue of trust.

[0] [http://projectnaptha.com/](http://projectnaptha.com/)

[1] [https://news.ycombinator.com/item?id=7629396](https://news.ycombinator.com/item?id=7629396)

<comment><USER8> Usually these projects are open source which enable the community to make sure that no fishy stuff happens. Thats probably product type 4.

</comment></comment></comment><comment><USER10> Can anyone recommend a similar extension as AwesomeScreenshot without this shady behaviour?

<comment><USER11> Firefox's Developer Toolbar features a `screenshot` command out of the box. Just hit Shift + F2 and type the command: [https://developer.mozilla.org/en- US/docs/Tools/GCLI#Commands](https://developer.mozilla.org/en- US/docs/Tools/GCLI#Commands) . Also, Firefox >=32 has a button for taking a full-page screenshot in the DevTools: [https://developer.mozilla.org/en- US/docs/Tools/Tools_Toolbox...](https://developer.mozilla.org/en- US/docs/Tools/Tools_Toolbox#Extra_tools)

Alternatively, for the use cases not needing to be in-browser, why restricting to extensions? Your platform has full featured apps doing the job out of the browser:

\- Linux: I use [http://shutter-project.org/](http://shutter-project.org/)

\- Windows: I use (payware, but worth it, it does a lot) [http://www.faststone.org/FSCaptureDetail.htm](http://www.faststone.org/FSCaptureDetail.htm) , or (foss) [http://getgreenshot.org/](http://getgreenshot.org/)

<comment><USER12> GIMP is also capable of taking screenshots on Windows and Linux, and Mac has the cmd+alt+shift+4 shortcut IIRC.

</comment></comment></comment><comment><USER13> > You can drop api28.webovernet.com and the other site into your browser to > see where they lead, but we'll save you the suspense: they are actually > redirects for the API for a company called Similar Web, which is one of many > companies doing this kind of tracking, and selling the data so other > companies can spy on what their competitors are doing.

Is that part of SimilarWeb Pro? It's not clear from the website how their service could be used to monitor the web client traffic of specific companies. An independent reference on the quoted claim would be helpful.

</comment><comment><USER14> Regarding tracking. We had a hickup at work, with a url that triggered an expensive cronjob. It was being hit mysteriously. It turned out to be the new tab page in Chrome or Firefox (I can't remember which one), which was requesting the url routinely. This basically shows that whenever you open your browser a group of sites get requests, whether you have them open or not. Therefore if you have FriendFace say as a most visited site, they'll get a request from you everytime you sit in front of your machine pretty much.

</comment><comment><USER15> I have suspicions that some firefox extensions trigger full page ads such as this on [https://github.com/gantt/downloadyoutube](https://github.com/gantt/downloadyoutube).

<comment><USER16> I suggest [http://rg3.github.io/youtube-dl/](http://rg3.github.io/youtube-dl/)

</comment></comment><comment><USER17> Yes, be careful because probably all of the developers of popular extensions are regularly getting offers to share their users' browsing data or to insert/replace ads on websites.

</comment><comment><USER18> For Mac it's also possible to use 'Stache' from the app store. This has a full-page screenshot functionality built in. It cost's $6,99 but it is also possible to store collections of interesting or inspiring pages/websites in a nice looking library. [https://itunes.apple.com/us/app/stache/id870659406](https://itunes.apple.com/us/app/stache/id870659406)

</comment><comment><USER19> Wow, I didn't acknowledge this at all. Thanks for sharing your discoveries!</comment>


The Basement - <AUTHOR> http://cabel.me/2012/12/19/the-basement <comment><USER2> One of the things I like the most about these photos is the fact that the workers who cut & drilled the walls to install the "new" cables/conduit actually made an effort to not destroy the old clippings on the wall. Sure, there's a place where it's clear they had to seam or otherwise plaster over one section, but for he most part it looks as if they kept it as-is.

This makes me happy. I've seen so many other cases where people doing their jobs totally ignore their surrounds and paint over, cut through, or destroy the things around them with nary more than a shrug and a "just doing my job".

</comment><comment><USER3> "Turns out, he claims, "they used to print The Oregonian down here, way back."

The pressmen, one imagines, worked day and night down here, working the lumbering machines, spitting out another edition of the day's business."

I used to be in that industry. I don't think they printed this paper in the basement (at least not a newspaper). I've had experience getting even small printing machinery into a basement (that was not even as sub grade as this one). It's a big task. You have to either cut a whole in the floor or take it down a bilco type basement door. Generally it would be on reinforced first floors or possibly even above that on reinforced floors (where it could easily be craned into windows if necessary). Then you have the issue with paper down and up most importantly.

It's hard to say exactly based on the info provided in the article. If this was done by web it most certainly wouldn't be in a basement as you would need ceiling height in addition to size and weight of the equipment. And it wouldn't make any sense. Also, you have issues with humidity in basements that have an impact on printing inks and paper. And you would also have the rolls of paper most likely (or sheets once again hard to say w/o more details) to get in and out of the basement? What would be the reason that you would want to do all that extra work?

<comment><USER4> You're correct, this was The Oregonian's editing office and the erstwhile home of the owner but not a press.

<https://en.wikipedia.org/wiki/Pittock_Block>

<comment><USER3> Right and further:

"The paper's offices and presses were originally housed in a two-story building at the intersection of First Street (now First Avenue) and Morrison Street, but in 1892 the paper moved into a new nine-story building at 6th and Alder streets"

<http://en.wikipedia.org/wiki/The_Oregonian>

</comment></comment></comment><comment><USER5> "100 years from now, when another one of you goes spelunking around this basement, that data, those bits, today's moments, will likely be long, long gone."

Well said. Back then the images were pasted on real walls and it adds to the emotional appeal. And now the images are pasted on virtual walls (aka Facebook/desktops).

I always wondered this. The new technology is great in spreading the images wide (wide in the spacial plane - I can see what was there in that room, and I'm sitting here far far away. That is the beauty of new technology. ). But it fails to spread it deep (call it in an emotional plane).

<comment><USER6> To put things in perspective, 200 years ago there were no photos in existence to paste onto walls. So what we're feeling is a cultural nostalgia for a very short period in humankind.

<comment><USER7> True, but there are other kinds of images--paintings, sketches, drawings on a cave wall. We've been putting things on walls for a long time.

<comment><USER8> That's what I found so depressing in the (awesome) augmented reality video, "Sight":

<http://vimeo.com/46304267>

When the characters have their digital glasses on, the guy's apartment is full of pendants and shiny decorations. But you can see that without the glasses, the walls are bare.

Photography is new, but humans have affixed art to walls for millennia. It would be insane if that ended.

<comment><USER9> Interesting video.

After playing with user interfaces like Bump Top, the idea of just hanging an image somewhere doesn't have the same feeling as having it physically there.

</comment></comment></comment></comment></comment><comment><USER10> I'm in the middle of reading "Tubes" by Andrew Blum, which is the story of how the Internet was physically built. MAE-East, PAIX, Ashburn, and all that.

The Kindle version is $1.99 right now. I paid $9.99 for it last week.

[http://www.amazon.com/Tubes-Journey-Center-Internet- ebook/dp...](http://www.amazon.com/Tubes-Journey-Center-Internet- ebook/dp/B006FOHWDI/)

<comment><USER11> Obligatory <http://www.wired.com/wired/archive/4.12/ffglass_pr.html>

90s-era

</comment></comment><comment><USER12> I guessed it was a newspaper shop before he got to the bit about the Oregonian. All the marks are in blue pencil, which was a common tool in graphic arts until the digital era. And because it's a big basement in an old building in the center of a big city, that to me says newspaper.

</comment><comment><USER13> A non-sequitor of sorts - on the subject of Cables and Underground - if you have never read Jamie Zawinski's (jwz) Cable Story, it is one of the most fascinating real engineering reads I've ever read.

"What happens when a 230 kilovolt underground cable shorts out"

<http://www.jwz.org/blog/2002/11/engineering-pornography/>

<comment><USER14> And for a bit more info on the infrastructure spoken of above.

[http://psc.wi.gov/thelibrary/publications/electric/electric1...](http://psc.wi.gov/thelibrary/publications/electric/electric11.pdf)

edit: Also, very nice post and find, Thanks!!

</comment></comment><comment><USER15> Really cool post. If you have ever been in a printing room while a press was operating, it's an amazing experience. It's crazy to think that through those small pipes more data is being passed - more variety, more volume - than was ever passed with all the cacophony of the press.

</comment><comment><USER16> When something catches your eye on the Internet, do you pull out virtual scissors and paste the clipping to a virtual wall?

<comment><USER17> I'm going to start printing out stuff and actually glue it to the wall behind my monitor. Should look awesome after a year or so.

Thanks for the idea.

<comment><USER18> I did this with lolcat photos when I first started my current job. Leaving a bit of extra white space at the bottom made them look like little Polaroids.

</comment></comment></comment><comment><USER19> I wonder how secure that basement is. Someone going down there with a chainsaw could do a lot of damage.

<comment><USER4> I believe this is in the Pittock Block building at SW 9th and Washington. While it's certainly not open to all comers, its no Fort Knox. Attractions upstairs include a police substation, two cafes, and a Swedish bric-a-brac- ery.

<comment><USER20> You're correct—this is the basement of the Pittock. Upstairs are many, many closets for rent to shove servers in.

</comment></comment></comment><comment><USER21> Leads you to wonder where the 641a equivalent is in that building (or is it in the actual telco building nearby, which a lot of the fiber also runs through, with some additional fiber stubs from the exchange back to the carrier building)

</comment><comment><USER22> I was expecting some archive.org advertisement at the end.

</comment><comment><USER23> This is absolutely incredible. I don't have much more to say than that. Thanks for sharing.

</comment><comment><USER24> I keep meaning to do an art walk like this.</comment>


Ask HN:  Dealing with controversy - <AUTHOR>

I actually hate arguing with people, but I am constantly mired in controversy.  The super short version:  I have done something that is supposed to be "impossible", so I fairly often get personally attacked for trying to share information with other people with the intention of helping them.
In some ways, I'm "sensitive".  Yes, I'm "sensitive" in terms of "not liking getting attacked", but I think the other side of it is I am just very aware of even relatively small things that are actually a form of hostility that most people wouldn't notice.  On the one hand, this is often a subjectively very un-fun awareness. On the other hand, it has allowed me to accomplish something most people couldn't accomplish, and that is making it possible to discuss new ideas that most people can't effectively introduce.  This turns me into the lightening rod for such controversies, I think in part because it's clear to a lot of people that if they can shut ME up, they can close the uncomfortable topic altogether.  But I think another part of it is that publicly it gives the appearance that I am the cause of the whole thing rather than that I open the door for latent demand/interest which has been suppressed.
This is relevant to my goals as far as websites and such because the only way there will be an audience is if it becomes possible to have such conversations.  Otherwise, I am merely the Lunatic Fringe and all too easy to ignore.
Any thoughts? <comment><USER2> Whatever your method is have you successfully shared it with anyone. Are the doctors concerned that you had a specifc form (atypical!) and that those with some other form will be tempted to avoid medication to their own detriment. How ahve you been sharing your info. Is there some way you could persuade a medical professional to do a study on you to see how your CF has progressed and whether the initial diagnosis was sound so as to determine if a new treatment based on your modus can be achieved?

<comment><AUTHOR> I have a website where I share info as best I can: <http://www.healthgazelle.com> And I participate in discussions in online forums. EDIT: And I joined HackerNews because I concluded that I need to learn a programming language and write a simulation to overcome the information gap between my mental model and current mental models.

"Atypical" is not a specific form per se. It is a term used to describe diagnoses that fall outside of "classical" symptoms/experiences. In recent years, more mutations are being identified and generally milder expressions are being recognized as still causing the same general profile of problems, but to a usually less severe degree. My mutations and my sons mutations have not been identified, in part because my doctor's request for a more comprehensive test was denied by my insurance company. (This is one of the points used to attack me and say I don't "really" have CF -- never mind that I spent about a year at death's door and came back from that.)

I have had a few people try some of my suggestions and report good results. Two of the most dramatic: Someone with an antibiotic resistant infection went from testing as sensitive to 7 drugs to testing sensitive to 15 drugs in just 3 months. He also generally feels better, sleeps better, etc. In another case, a mom with a young teen whose lungs were in such bad shape they were talking about listing her for transplant began using some of my suggestions. About a week later, her child was so dramatically improved they apparently weren't discussing listing her anymore. (I have had updates from the first person but not the second one, so that may no longer be true.) Her doctor did express interest into looking into one of the supplements I had suggested.

Most research that I know for treating CF is drug research. I have gotten off all drugs. Most research is funded by drug companies. At the moment, I really don't see doing any studies or talking anyone in the establishment into being interested in what I am doing. I believe the top-down approach to treatment which is the current norm is part of the problem. So I believe that the solution requires a grass-roots movement, not more edicts from on high.

</comment></comment><comment><USER3> What did you do that was supposed to be "impossible"?

What do you mean by "attacked"? (Phyiscally?)

"Controversies"?

The whole thing is very vague. :-)

<comment><AUTHOR> Ooh, I was intentionally being vague, cuz I was hoping to avoid getting into it here. :-D

I was diagnosed with "atypical cystic fibrosis" in May 2001. I was extremely ill at the time. I had been bedridden for 3 1/2 months earlier that year. My doctor told me "people like you don't get well, symptom management is the name of the game". My oldest son ended up with the same diagnosis and had not been on antibiotics for over 3 years at the time that he and I were diagnosed. So I just couldn't accept the pronouncement that I should simply accept a slow, wasting death as my only possible lot in life.

I am currently drug free. I got off the last of my medication in early summer this year. I have not been on antibiotics in close to 6 years. I got off digestive enzymes (that I am supposed to need "for life") a little over three years ago. I am well enough to work a full time job for the first time in my life. I live without a car (in part because what I've done has been fairly expensive and not covered by insurance, so it all came out of my pocket and my pockets aren't deep). With living without a car, I do quite a lot of walking as part of my lifestyle -- something I'm probably supposed to be too sick to pull off....etc.

Attacked: No physical attacks (so far). I have had someone imply that I am a neglectful mom because my adult son with CF has chosen to not see a doctor since he turned 18. The fact that he is healthy is apparently irrelevant. If you have CF, you are supposed to get checked several times a year. The fact that we were diagnosed late in life and so for most of our lives went to the doctor only when sick (like normal people do) and we aren't sick right now is apparently no excuse for such heinous behavior.

I have had people imply I am a charlatan, an attention-monger, have Munchhausen. I have had people accuse me of being up to no good because there are a few ads on my website, so clearly I am a snake-oil salesman as anyone trying to make money off of health information is not to be trusted. (These same folks routinely say you need to run everything past your doctor. It seems lost on them that their doctor makes a lot more money than I do and might also be subject to conflict of interest.) I have had someone imply that my son is the product of an incestuous relationship. I have had people imply that I fast-talked some doctor into signing off on a diagnosis of CF for no real reason...and similar.

I've seen controversy before. I used to go down in flames routinely on parenting and homeschooling lists, where, on the one hand, I was quite "popular" (or at least a vocal minority liked my ideas) and, on the other hand, I tended to be a lightening rod in part because I did a lot of things that didn't agree with the norm -- much as I still do in terms of my health. However, at the time, I was also doped to the gills, in constant excruciating pain, had horrible insomnia and was simply very ill. I guess I had fantasies that when I stopped being doped up, in pain and very ill, all this crap would go away. I do cope better with it and I manage to generally not put out fires with gasoline these days <grin>, but I remain at the eye of the storm. It's really gotten to be quite tiresome. Sigh.

Thanks for engaging me in conversation.

<comment><USER3> Thanks for elaborating.

I strongly recommend you find a trusted friend/family member/mentor/etc. to talk with about your concerns. It's really difficult to get a handle on a situation as complex as what you've described without knowing you personally. So I can't really say anymore than that.

But please do take my advice. I wish you well. :)

<comment><AUTHOR> I do have some supportive friends and family. I had really hoped this would be a general conversation about how people cope with controversy in dealing with "the public", whether it's a forum or your own website. That's part of why I didn't want to go into specifics in my opening post. I really don't think anyone can tell me what to do about my specific situation. I was hoping people would tell me what they have found helpful in dealing with their own controversies. I think that would be both more helpful to me and of more general interest to the audience here. My very specific niche worries are unlikely to be anything anyone here can really relate to.

But thanks for your concern.</comment></comment></comment></comment>


Show HN: General purpose hot-reloader for all projects - <AUTHOR> https://github.com/vrongmeal/leaf <comment><AUTHOR> Author here: This is something I personally use a lot. Created this a while back and learnt about concurrent programming a lot. Hope it turns out to be useful to others as well :)</comment>


Run Pac-Man Run - <AUTHOR> https://omerkirbiyik.com/pac-man/ <comment><AUTHOR> Here's a tiny sample of a voice commanded Pac-Man game. It astonishes me how the game industry will evaluate in the near future. It's exciting to see works like this!</comment>


Apple boss Tim Cook clashes with US government over encryption - <AUTHOR> http://www.theguardian.com/technology/2016/jan/13/apple-tim-cook-us-government-encryption <comment><USER2> Another article from The Intercept, posted yesterday.

[https://news.ycombinator.com/item?id=10898840](https://news.ycombinator.com/item?id=10898840)</comment>


ChakraCore v1.2 Released - <AUTHOR> https://github.com/Microsoft/ChakraCore/releases/tag/v188.8.131.52 <comment><AUTHOR> This is the first official build, but the release page is currently pretty light on details.

For now there a bit more information on the roadmap page: [https://github.com/Microsoft/ChakraCore/wiki/Roadmap#12](https://github.com/Microsoft/ChakraCore/wiki/Roadmap#12)</comment>


Are Gummy Bear Flavors Just Fooling Our Brains? - <AUTHOR> https://www.npr.org/sections/thesalt/2018/01/08/575406711/are-gummy-bear-flavors-just-fooling-our-brains <comment><USER2> They should have titled it "Are Gummy Bear _Colors_ Just Fooling Our Brains?"</comment>


Ask HN: What do you wish you had done in 20s? - <AUTHOR> I am looking for tips on things that can be done in 20s and will have really great impact later inc career. <comment><USER2> Career is not the most important thing to worry about in your 20s.

\- Travel a lot, to all continents.

\- Start systematic, long-term investment portfolio.

\- Reduce romantic entanglement with attractive, psychotic girls (s/girl/boy/ as needed).

</comment><comment><USER3> \- Travel more (both in number of places, and number of weird new things you try). Once you're in the throes of starting a family and settling in with a spouse, this becomes harder. A

\- Learn new languages or skills (eg: music). The older I get, the harder I find this to do. I wish I'd started earlier. While this doesn't translate directly in your career, it can open new doors (eg: that assignment in Europe that requires fluency in Spanish/German that you might miss out on). It also allows you to break down cultural barriers when meeting new folks.

\- Get more mentorship - find a group or person that has walked your path in your industry and learn from them. The higher quality mentor you can get, the faster your learning. Additionally, if you are inclined to go into a management position, start investing (or get your company to pay for) in a leadership coach.

\- Spend less on material things (eg: new car, fancy house) and use capital as a leverage. Learn to make money work for you and grow your investment base. Additionally, use capital leverage to cut-out mundane tasks in your daily routine (eg: house cleaning) and use the saved time to double-down on other life/professional skills. Time is money.

</comment><comment><USER4> I wish I could turn back the time and slap me in the face for majoring in Computer Science.

I should have gone something completely different; like arts, photography, even gardening.

What have I accomplished for majoring CS and ending up unemployed for 3+ years now and became a "jack of all trades, master of none"?

I guess that's the thanking part of getting things done and deliver before deadlines...who knows? ¯\\_(ツ)_/¯

Also, if I had to choose between studying for a degree and go for a vocational program, I would choose the latter.

Technology for me is not worth it anymore; only as your hobby, because of the pace _you_ choose to follow, not the stressful "catch me if you can" type of learning process.

If you want to succeed in your life in pretty much anything and everything is by becoming the best of the best at one thing, not on a stack of technologies much like how web development is pushing us to go for.

If I knew I would end up like this, I would have stayed faithful to C++ since 2003 when I first started using it and master it.

</comment><comment><USER5> Once a week public speaking training through Toastmasters, Would have dramatically improved my professional and personal life. Doing it now in late 40s. Helping me grow my career seeker business (think resume editing, linkedin profiles creation, interview coaching, corporate workshops) and global network of new colleagues.

</comment><comment><USER6> Context?</comment>


Oristand – A New Kind of Stand Up Desk - <AUTHOR> http://oristand.co <comment><USER2> A better, cheaper option is to build your own: [http://iamnotaprogrammer.com/Ikea-Standing-desk- for-22-dolla...](http://iamnotaprogrammer.com/Ikea-Standing-desk- for-22-dollars.html)

<comment><AUTHOR> While a cheaper option, it isn't easy to remove when you want to sit down.

</comment></comment><comment><AUTHOR> This looks good if you're using a laptop. Unfortunately this doesn't work as well for people with a large monitor or dual monitor setup.

</comment><comment><USER3> I wish this could hold a 27 inch monitor.</comment>


Algorithms, by Jeff Erickson - <AUTHOR> http://jeffe.cs.illinois.edu/teaching/algorithms/? <comment><USER3> Jeff Erickson was my algorithms professor in 2012. He exemplifies the articulate, passionate educator that I wish I had for my other CS subjects. I recognize many of these notes having read them many times in preparation for quite difficult exams - a fun anecdote shared among people who've taken the class is the 25% credit given on any exam question just for writing "I don't know", effectively a reward for acknowledging your own shortcoming and for saving the TA the time to decipher a bullshit answer.

Professor Erickson, if you're reading this, thank you for being the best educator of my college days and for making your beautifully-written notes available to everyone.

<comment><USER4> >25% credit given on any exam question just for writing "I don't know", effectively a reward for acknowledging your own shortcoming and for saving the TA the time to decipher a bullshit answer.

That's brilliant, yet I've never heard of it. Should be standard scoring for written exams.

<comment><USER5> Random other point of brilliance I've seen: Our Organic Chem teacher (who was loved universally in the Program) had a rule about test corrections. If you wanted a correction to something you believed you should get credit on, he would only offer to regrade your WHOLE test, which meant you could actually get less points on the regrade because it was he and not a TA regrading (could have worked both ways). It really scared off all those one-off "Can I get an extra point here" requests in a 300 person class.

<comment><USER6> I've never understood why that's a good policy. You're (vindictively) punishing the student for pointing out — albeit selectively — where the teacher, supposedly a bedrock of truth on the course material, has falsely labeled your "training data".

<comment><USER7> I think you're running under the assumption that all students making the request are doing it for the right reasons.

I could be wrong, but my intuition goes the other way and I'm assuming most students do it to get a better grade, not learn more.

<comment><USER8> Yeah no, you don't get to say students should care more about learning than grades when jobs, opportunities, and _scholarships given by the very university that claims learning is more important_ are riding on grades.

It is the professor's responsibility to grade accurately, and honestly if there is so much inconsistency in grading that there's a significant probability that the student will lose marks despite having pointed out a reason they should gain marks, the professor is screwing up very badly[1]. Don't pin that on the student not having noble intentions or whatever.

[1]:Or at least that's the case in STEM. My humanities friends tell me that grading is much more subjective there which is a bit disturbing but I'm hardly qualified to make such judgments.

<comment><USER9> As long as we're getting all realpolitik about it, the reason is that lots of students are assholes who will run roughshod over any professor who shows weakness. Source: was a student, watched it happen routinely.

Meanwhile, in a less politically charged situation, it's pretty normal, or at least smart, to go back over any area where you messed up with a fine-toothed comb.

If, and this is a rather pessimistic assumption, if the student is likely to lower their grade on a re-test, in my experience it's more likely to be because the original grader was being generous in the face of ambiguity, rather than systemic random errors. That's because the graders are mostly nice people. If that's not good enough for someone, they damn well better have a good reason for it. I have no problem with policy that enforces this. The politics are a distraction from the ethical question.

<comment><USER6> That policy would make sense, but that involves major caveats that aren't clear from the original description. That works because it's specifically written with "generosity buffer" that (by design) only benefits your grade, and thus doesn't indicate the teacher was falsely labeling the answers as correct when they weren't.

That's not the same thing as the original, which implied "my grading is so random, hope you're lucky on the rescore".

Edit: I had a high school teacher with a policy where she'd add X points to every score from the get go, and you'dlose those if you objected to grading, so you'd only object for misgrades by more than X. But that's not the same as the original "okay, let's roll my truth-recognizer dice again!"

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> > Please do not ask me for solutions to the exercises. Even if you are [an] > instructor, I will say no.

That's kind of a bummer. I like to be able to check my answers when teaching myself things.

Am I somehow alone in that?

<comment><USER11> Hi, I'm the author.

I'm honestly seriously torn about this. There is a serious tension between pedagogical needs of students in formal classrooms and the pedagogical needs of self-learners. I've chosen to aim for the former. Yes, I know it's a bummer.

(From experience) providing solutions interferes with the learning process of my own students at Illinois. I have to change up homeworks and exam questions every semester, because otherwise students will look up and copy/memorize the answers instead of trying to figuring them out, which means they do worse on the exams where they HAVE to figure things out.

Also, a significant majority of the requests I get for solutions are from university students who want to cheat.

I _do_ provide solutions to the homework and exam and lab problems I assign in any particular class, after the fact. (And I release those solutions publicly, despite the protests of colleagues at other universities, until the semester ends.) And I have started proving model solutions in the homeworks, so that the students know what _kind_ of answers I'm looking for. (See the course materials page, under CS 374.)

In practice, my stance is becoming increasingly moot, as more of my official solutions get uploaded to places like CourseHero and Koofers and their many foreign-language equivalents.

I am very likely to include solutions for a subset of problems (maybe three or four per chapter) in a future edition. But that will take a significant amount of time, and I wanted to get something out the door.

<comment><USER12> You could consider providing answers and feedback in a premium priced forum or email subscription.

<comment><USER11> Ew. Ew ew ew. No.

Wait, did I say that aloud? Sorry, I meant "I'm already busy enough, thanks."

</comment></comment></comment></comment><comment><USER13> The logo on the right is the arabic letters of the word Algorithmi (al- Khwarizmi) the persian muslim scholar after him algorithms and logarithms were named

<comment><USER14> Logo on the right of what? All I see is a geometric design in the middle of the cover. It doesn't look Arabic and it seems like it would be very cumbersome for someone to sign as a name.

<comment><USER13> it's a known calligraphy style called kufi, just google it.

[https://www.google.com/search?q=arabic+calligraphy+kufi&clie...](https://www.google.com/search?q=arabic+calligraphy+kufi&client=firefox- b- ab&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiHr_j9q8_fAhWBGewKHXa8BTcQ_AUIDigB&biw=1366&bih=667)

<comment><USER14> Thank you.

</comment></comment></comment></comment><comment><USER15> I am, in all likelihood, _not_ in the target audience (having already spent much time with the material being presented), but this textbook has been a _joy_ to read so far. I am only up to page 14, and I already need two hands (in base 1...) to count the number of times I've laughed aloud or cheered a particular point being raised.

Most algorithms books are _dry_ , or they're obsessed by particular formal details, or (worse) they _implicitly_ include optimizations in the algorithm without explaining what is needed for _correctness_ and what is needed for _efficiency_. Having tutored on one of the books mentioned in the prologue, it can be a real struggle to gain a true intuition for algorithms when you can't yet tell the difference. But the sheer personality contained within this book is infectious, and it really is something of a page-turner. (Lest you think I haven't gotten to the stuff that "matters", I _have_ read through the chapter on depth-first search -- again, an enjoyable read!)

What a great book. I'm definitely recommending this to my friends.

<comment><USER16> Same. I fell in love with it instantly and permanently when I got to the "NO, STOP, YOU'RE DONE" part in the Towers of Hanoi. I skipped around the book and _the whole thing_ is like that. It's simultaneously concise and witty _in service of the material_.

The chapter problems look fantastic, too, and are just as well-written (and they cover a lot of ground).

It's really something!

</comment></comment><comment><USER17> I took Jeff's Algorithms class in college and he's one of the best professors I've had. I still struggled through the class but definitely made it through with a great experience.

<comment><USER18> I took CS 173 and 373 from Jeff nearly 20 years ago, with 273 from another great professor. That course sequence along with Combinatorial Game Theory (which I took on a lark) has had a greater impact on me than the rest of my university experience combined. A lot of that is due to the quality of the professors I was lucky enough to have.

<comment><USER19> Perhaps you might, when you get a chance, email him a brief note to tell him that. That'll make a person's day.

<comment><USER20> You know what, your book on linear algebra is really great too. I tried to understand LA from too many books but your book was the one which made sense for me.

<comment><USER19> :-) Thank you.

</comment></comment></comment></comment></comment><comment><USER21> Isn't this the guy that is famous for being admitted to a PhD program with an exceptionally low GPA?

If so, why is he the exception and why aren't more PhD programs looking for non-traditional talent?

Edit: I read his blog post. It gave me more insight. It looks possible for people with those sort of grades to be admitted even today, but they seem to need a cheerleader on the inside that will help them.

<comment><USER22> I graduated with a Comp.Sci bachelor with a similar GPA. Spent around 10 years as a programmer in the industry and came back to get into the masters program. I was almost laughed off (a good thing) stating I would have to do another bachelor.

Sold my house, got rid of all my stuff and enrolled in pure math bachelor's. Best decision of my life.

I though that in my mid 30s with a lot more discipline, being able to work longer and harder would've made up for the shit grades. I'm extremely thankful to the department head for waving me off like that because it would've been a disaster.

Clearly Jeff could handle himself, however I think one must really know what they're doing. I thought I'd end up doing the 3-year math program in 2... it'll turn out to be 3.5 with good grades this time around. After that I know I'll be very solid for master/phd programs.

<comment><USER23> > I graduated with a Comp.Sci bachelor with a similar GPA. Spent around 10 > years as a programmer in the industry and came back to get into the masters > program. I was almost laughed off (a good thing) stating I would have to do > another bachelor.

Can you expand on this? I'm similar right now. Want to go back and get my masters. Graduated in CS about 12 years ago. Mid 30's. What do you mean about having to do another bachelor? I have not heard this before.

> Sold my house, got rid of all my stuff and enrolled in pure math bachelor's. > Best decision of my life.

I recently just bought a condo downtown. One because I never plan to move again and rent goes up at least 3-5%/year and two because I can easily rent it out if I do end up leaving. The University of Minnesota is only a mile away from me at the moment. Mortgage is probably a little high for a grad student/TA salary considering I'm making well in to the 6 digits right now. This is my only debt and all my stuff is not much. Mostly things I can't really sell for much now or are required to work and live (computer, desk, monitor, clothes, eat, sleep). I have a couch and a TV to relax outside of work.

<comment><USER22> My GPA was 2.37 and I would've had to take so many classes to increase my GPA up to the cut off point of 2.7 (B-). With 90 credits worth of classes, you'd need 90 credits at 3.0 (B average) to make up for the difference, or less if you get better grades and that means you're on the low end of what they accept.

Now I presume if you did 2-3 semester with a B+/A- GPA, they would take that as testifying you can handle the masters and let you in, however I'm enjoying math way too much right now and there are several classes (Algebra 1-3, Topology, Differential Equations and several classes in statistics I intend to pick in the option block) that will come in handy if I head into ML masters I'm also interested in Type Theory and all of Discrete Mathematics. Also, I feel math is a great program to improve at general problem-solving.

The first semester was really challenging, some classes I had in fact already done (Calculus 1 and Linear Algebra) turned out to be surprisingly difficult. I'd say around halfway through the second semester I felt I had gotten my younger brain back.

I don't have expensive habits, have two restaurants meal a week, own a car and live at the university residences (rent is 390$/month, parking 850/year). My cost of life seems to be around 12k CAD/year and am Canadian (tuition costs are 1600/semester) so I really have no idea how much you'd have to have saved up if you are in the USA.

<comment><USER23> My GPA 12 years ago when I finished was 3.5 I think. There about anyway. I figured you were referring more to the length of time you were out of school, not your GPA.

My mortgage is far north of $390, haha. I don't have or need a car though. I lease out my parking spot for $150/month or more. If I go and get accepted I'll have either work pay or try and see about scholarship or something. My brother and best friend got free rides through their master and Phd.

</comment></comment></comment></comment></comment><comment><USER24> Maybe that because english is not my native language, but I honestly find this way of material presentation as rather confusing.

PS: oh and of course all those 'It's quite easy to show that the...' and similar 'by this point it should be obvious'. No, it is not... I guess I will never understand or use those algorithms even though I'd like to.

<comment><USER11> Hi, I'm the author. If you find any particular claim of "obviousness" unclear, submit an issue request!

But please don't confuse "straightforward" with "obvious". Sometimes I deliberately gloss over mechanical details because I think they're a distraction from the main point. I'm NOT claiming that you should immediately know how to fill in the details; I'm claiming that filling in the details is boring.

<comment><USER25> I would agree that words like "obvious" or "trivial" can be disheartening to a learner.

If it's obvious to the reader, they know it whether or not you tell them it's obvious. If it's not obvious to them, then they will try to figure it out. Telling this person "it's obvious" only serves to make them feel bad about not getting it right away.

<comment><USER26> I felt that way when studying math in college, but after sometime I actually came to like the use of "clearly" and the like as it can be used as a check on whether you've spent enough time internalizing the previous information. It's one thing to have a text or a person hold your hand through algorithms or theorems, it's another to be able to do it yourself. So getting hit with a "clearly" that feels unjustified is often a signal to let go of the guiding hand and go back and review until the statement in question does become clear.

<comment><USER24> Sometimes this is th'e case, yes, sometimes it is not.

An example: [http://jeffe.cs.illinois.edu/teaching/algorithms/book/Algori...](http://jeffe.cs.illinois.edu/teaching/algorithms/book/Algorithms- JeffE-2up.pdf) Page 15

> It's quite easy to show that the singing time is Θ(n2); in particular,the > singer mentions the name of a gift ∑ni=1i=n(n+1)/2times (counting > thepartridge in the pear tree).

I'm pretty sure that I still remember how to read the formula and I even know what does Θ(n2) means, but it's still unclear for me how do we get n^2 and this formula from the "NDaysOfChristmas(gifts[2..n]):" example.

</comment></comment></comment></comment></comment><comment><USER27> > ́ Black spades indicate problems that require a significant amount of > gruntwork and/or coding. These are rare.

> ∆ Orange stars indicate that you are eating Lucky Charms that were > manufactured before 1998. Ew.

(p. vi)

:)

Really like the book already. The preface falls under the category of advice on learning to learn. Thanks for all your work. #stealthisbook

<comment><USER28> >Caveat Lector! >Of course, none of those people should be blamed for any >flaws in the resulting >book. Despite many rounds of revision and editing, this >book contains many mistakes, bugs, gaffes, omissions, >snafus, kludges, typos, mathos, grammaros, >thinkos, brain farts, poor design decisions, historical >inaccuracies, anachronisms, >inconsistencies, exaggerations, dithering, blather, >distortions, oversimplification, >nonsense, garbage, cruft, junk, and outright lies, all >of which are entirely Steve Skiena's fault.

Coming from a class where we used a decidedly poor textbook for algorithms, this looks like a joy to read.

</comment></comment><comment><USER29> I used these lectures as a method for learning algorithms as a phys/mech eng with no CS background. I found them incredibly challenging but the lectures were written exceptionally well. On an internet with thousands of resources on this material, this was the very best I found.

</comment><comment><USER30> From the second page (verso page?):

> Download this book at > [http://jeffe.cs.illinois.edu/teaching/algorithms/](http://jeffe.cs.illinois.edu/teaching/algorithms/) > or [http://algorithms.wtf](http://algorithms.wtf)

algorithms.wtf is a beautiful url!

</comment><comment><USER31> I have been reading through these and find them really unique in a good way. I got a new perspective on a lot of stuff I already studied I have a Bachelors in CS and graduated 1.5 years ago.

It doesn't feel formal like a textbook and yet doesn't sacrifice on the mathematical rigor. I would be trying out the exercise problems which seem equally daunting but fun.

I also submitted an issue request on Github and Jeff I have a few questions for you that I put on Quora, I have A2A'd you.

Lastly, thanks for taking the time out and putting content like this out for free. It helps millions of autodidacts like me.

</comment><comment><USER32> Jeff's CS 374 was one of my favorite classes at U of I. It really opened up my mind to thinking about Computer Science as a branch of mathematics, and completely changed how I approach my work today.

The book form of these lectures was in EARLY rough draft when I took the class though-we were proofing chapters for him!

</comment><comment><USER33> Jeff is also a frequent poster on Academia.StackExchange. He helped me quite a bit by answering my questions about grad school life.

[https://academia.stackexchange.com/users/65/jeffe](https://academia.stackexchange.com/users/65/jeffe)

</comment><comment><USER34> " _Sedgwick's reformulation [of AA trees] requires that no right child is red. Whatever. Andersson and Sedgwick are strangely silent on which end of the egg to eat first._ "

</comment><comment><USER35> I had him as a professor as well. He's a brilliant guy and educator, but could be a little rough with questions; i.e. making you feel a little dumb. His notes though were always excellent.

</comment><comment><USER36> I love Jeff Erickson's work and would also like to recommend his notes on Computational Topology [1] for further consumption.

[1]: [http://jeffe.cs.illinois.edu/teaching/comptop/2009/schedule....](http://jeffe.cs.illinois.edu/teaching/comptop/2009/schedule.html)

</comment><comment><USER37> Wow students are so lucky for the sheer number of resources available today. Great post and thanks for sharing!

</comment><comment><USER38> > Chapter 0 uses induction, and whenever Chapter n−1 uses induction, so does > Chapter n

I love this.

</comment><comment><USER39> I don't know why your guys think this book is so good, I don't see any new things out of it nor could I appreciate how he composed the content. It is just one of those random textbooks for this topic.

</comment><comment><USER40> The historic preludes to the chapters are awesome. The dynamic programming chapter starts with an intro to the study of meters in Sanskrit poetry.

</comment><comment><USER41> Great resource, though I wish it was available as an EPUB (or MOBI, or AZW3).

<comment><USER11> You can get an EPUB and MOBI versions from the Internet Archive (auto- converted from my uploaded pdf), but I can't vouch for its quality.

All the fonts are baked into the PDF, so it should be readable anywhere; if it isn't, please submit a bug report!

But if you're looking for a format that lets you reflow the text, by changing the margins or font or text size, you're out of luck. The only way to write something like that is to bake it in from the beginning. That's easy for pure text, but hard to impossible for technical documents with lots of displayed equations, big hard-formatted boxes of text (ie, algorithms), and the like.

(Boaz Barak managed it by writing his Modern Complexity Theory book entirely in Markdown. The mind boggles.)

<comment><USER42> I don't know what you use to typeset the book, as I can't find any source files, but isn't LaTeX really good at this?

I'm not sure what makes it hard to reflow. The text seems to be mostly paragraphs with figures, inline formulas and footnotes; pretty basic stuff, no?

(O'Reilly's books were famously typeset with Troff/Groff for many years, though I don't know how painful that was or how advanced their typesetting needs were.)

All I know is that I'd love a version that worked on smaller devices. I tried the Kindle version reformatted by archive.org, but it has lost most of the formatting, making it almost completely unreadable.

I'd especially like an HTML version of the book that was fully hyperlinked, with zoomable vector figures, footnotes hidden away in popups, etc.

<comment><USER41> _> (O'Reilly's books were famously typeset with Troff/Groff for many years, though I don't know how painful that was or how advanced their typesetting needs were.)_

I beleive that O'Reilly Media has used ASCIIDoc[0] as their preferred internal format for quite a few years. Formulas are supported through ASCIIMthML[1].

More recently, they seem to have transitioned to HTMLBook[2] as a preferred source format for systems like Atlas[3].

[0] ASCIIDoc is basically a Markdown-like (or ReStructuredText-like) format that is feature-equivalent to DocBook XML: [http://asciidoc.org/](http://asciidoc.org/)

[1] [http://asciidoc.org/asciimathml.html](http://asciidoc.org/asciimathml.html)

[2] [http://oreillymedia.github.io/HTMLBook/](http://oreillymedia.github.io/HTMLBook/)

[3] [https://atlas.oreilly.com/](https://atlas.oreilly.com/)

</comment></comment></comment></comment><comment><USER43> I love how he offers the mnemonic [http://algorithms.wtf](http://algorithms.wtf)

Bravo, Jeff!

</comment><comment><USER44> What the heck is the trivial one liner to check who will win a chess game given both players play perfect?

<comment><USER45> I believe this is a trick question. The "standard" chess board is 8x8, with a 32 possible pieces. This gives you a constant (albeit absurdly large) number of configurations, which means that the one-line solution "Brute Force" is an O(1) algorithm.

</comment></comment><comment><USER46> Love his writing style. Accessible yet detailed with fun historical tangents to set context.

</comment><comment> pseudonom- Does anyone have any impressions on how this compares to CLRS? ([https://en.wikipedia.org/wiki/Introduction_to_Algorithms](https://en.wikipedia.org/wiki/Introduction_to_Algorithms))

<comment><USER47> By Ctrl+F'ing, I find 5 mentions of the word "master", none of which are the master theorem. I prefer this to CLRS as, while it's a neat trick, it tends to result in a bunch of people memorising the cases (and taking a "because the book told me to" level of understanding away from that part of the course).

<comment><USER11> Exactly. The students should be the masters, not the theorem.

</comment></comment></comment><comment><USER47> This has always bugged me: what reasons outside of convention do we have for preferring O(V + E) to O(E) on algorithms that only make sense in the context of a single connected component? I know this is slightly OT, but tangentially related.

</comment><comment><USER48> Absolute treasuretrove, thanks for sharing!

</comment><comment><USER49> After a quick browser it seems a little too academic for daily programmers like myself.

Would love to learn more about practical dynamic programming these days, hope there is a book about that extensively.

<comment><USER50> Go back and read it - it's not!

</comment></comment><comment><USER51> Are algorithms useful to learn for a non-programmer? Is there a benefit to thinking through what is presented in a book like this over solving general problems in a day-to-day context?

<comment><USER52> Please find something you love doing and learn more about that instead of picking up random things.

<comment><USER51> Sound advice. Thinking through the scope of a programming problem to come up with an algorithm sounds like a productive way of using your mind, but may be a waste of time if you don't intend on programming.

</comment></comment></comment><comment><USER53> The section on dynamic programming is exceptionally clear.

</comment><comment><USER54> This is a great resource. Though it is dated this month, there seems to have been a mention of it two years ago and a short HN discussion ensued: [https://news.ycombinator.com/item?id=12873426](https://news.ycombinator.com/item?id=12873426)

</comment><comment><USER55> I had the privilege of being an undergrad in Jeff's class in the late 90s. IIRC, it was his first year teaching. On the last day of class he received a standing ovation. The average grade on the final exam was ~50%. And yet he received a standing ovation. He's _that_ good.

</comment><comment><USER56> The graphs chapter is my favorite. It's not very rudimentary like other text books

</comment><comment><USER57> I managed to get a A- in Ericsson's 373 as an undergrad (grads took the same class but had their own curve) in 2001. Great class, great experience, great teacher. Pushed me to do algorithms at a difficulty I didnt hunk possible.

</comment><comment><USER58> I would appreciate a version of the book with the extended material as well! Is there a way to pre-pay advanced copies of the published book?

</comment><comment><USER59> Copyright question, the copyright page says draft published 12/29/2018, but the copyright is 2019; doesn't that mean somebody could have taken the work, published as their own as copyright 2018 on 12/30/2018 which would be earlier than the author's 2019 claim? I'm not a copyright expert by any means, but am always troubled when I see "Copyright $CURRENT_DATE" in electronic works, I thought it was supposed to reflect the earliest date of claim.

<comment><USER11> Oops. I'd say submit a bug report, but as of yesterday it become moot.

As others have said, the copyright notice is only a courtesy/reminder. I've held the copyright on all this stuff from the moment I started writing it (and distributing it) 20 years ago.

</comment></comment><comment><USER60> great job and thanks for keeping this free

</comment><comment><USER61> How does this compare to CLRS? I am neck deep in reading CLRS..

</comment><comment><USER62> The lecture on Matroids is pretty good.

</comment><comment><USER63> gonna take this opportunity to ask for advice: i have an MS in CS and i've gone through all of CLRS twice (yes really all of it and really twice - <USER2> for my grad algos class and once in prep for interviews - and i still don't have whatever intuition i need to be able to effortlessly do DP. it's honestly kind of maddening - mincut/maxflow, RSA, knuth-morris-pratt etc are all completely obvious to me and i can whip them out pretty much effortlessly - but DP i struggle to find the optimal substructure and formulate bottom up (yes i can memoize but that's not clever enough for you know who). what's the magic combinatorial perspective/intuition that enables people to construct dp solutions so quickly??? yes i've read vazirani and gone through the clemson examples and etc. and skiena and sedgwick whatever but the problem is they're mostly all rehashings of the same solutions/perspectives. looking forward to this book's perspective.

<comment><USER11> Forget about efficiency for the moment and focus on discovering the underlying recursive problem.

LOTS of people struggle with dynamic programming. But in my experience, 90% of the difficulty with dynamic programming is actually discomfort with recursion, which is why I talk about recursive backtracking first.

Try reading Chapter 2. My goal in that chapter is to show the process of deriving recursive solutions---how to think about the problem, and what questions to ask---rather than just presenting the solution as a fait accompli.

I do have to assume that you believe in the Recursion Fairy, though. That's probably the hardest step. Computer scientists are TERRIBLE at delegating.

<comment><USER64> > Recursion Fairy

I mentioned this elsewhere but figured I'd bring it up here since you're the author.

I've tried explaining recursion in a lot of ways like this, such as "just assume it will work", "trust yourself", and "turn off your brain". (The first two are paraphrases from Matthew Flatt, the latter is from Will Byrd.)

I think "Recursion Fairy" is my favorite way to phrase the same idea. I think there's something about the nature of invoking a sense of _magic_ in the phrasing that might help people really believe that it's okay to just let the recursion do its thing and not think about it too much. I'll definitely be using "Recursion Fairy" when (if) I end up explaining recursion again.

Thanks for making your material available for free! Cheers!</comment></comment></comment>


Ask HN: Invite me to lobste.rs - <AUTHOR> Let's invite each other to https://lobste.rs <comment><USER2> I don't know if this is legit given lobste.rs community's rules. But I don't spend time on IRC and I do read HN and lobste.rs frequently and assumed I'd never have an opportunity to get an invitation.

So if it's permitted, I'll request an invitation here too.

</comment><comment><USER3> what's special about that site?

<comment><AUTHOR> What's special about HN? It's just another community.

<comment><USER3> cool, thanks</comment></comment></comment>


Why You Should Ignore Every Founder's Story About How They Started Their Company - <AUTHOR> https://medium.com/@trevmckendrick/what-reed-hastings-sam-walton-can-teach-you-about-how-to-start-a-company-d38cfe0eafce <comment><USER2> Best line: The lesson is that there will be mistakes and problems on any path to success.

My wife and found that out while trying to start our restaurant. If you're thinking of starting business I would get with a group like SCORE ([https://www.score.org/](https://www.score.org/)) or contact a college to find an incubator.

</comment><comment><USER3> Pretty much also explains after his early setback why Sam later didn't feel bad for any department stores WalMart put out of business.</comment>


Show HN: HelpStack.io – open-source support SDK for iOS - <AUTHOR> http://www.helpstack.io

<comment><USER2> Can anyone compare this to other solutions?

<comment><USER3> I'm familiar with a couple of vendor solutions but this is the first platform- agnostic one I've come across. Looks promising, excited to check it out.

We used UserVoice's iOS SDK for awhile, then decided to drop it when we started receiving crash reports for the SDK. It worked well when it didn't crash, though. :)

Right now we use a plain old email form, with some meta information prefilled in the body of the message. It's admittedly a bit old school, but it works.

We also looked at the ZenDesk iOS SDK since we're in the process of switching to ZenDesk. However we were turned off by the lack of activity in that repository.

<comment><USER2> cool. thanks

</comment></comment></comment><comment><USER2> What license is this? It doesnt look like GPL ...

<comment><USER4> MIT [https://github.com/happyfoxinc/helpstack/blob/master/LICENSE](https://github.com/happyfoxinc/helpstack/blob/master/LICENSE)</comment></comment>


Ask HN: Why was Usb Audio Support Removed in Android 9? - <AUTHOR> Since Android Pie/9 the support for AOAv2 which enables using usb audio devices we removed from Android (see https://source.android.com/compatibility/10/android-10-cdd).
Why is it that highly useful features like this are removed without any explanation, workaround or alternative solutions?
On iOs you can use external sound cards for music production or using your car stereo if it does not support Bluetooth.
Anybody on a relevant Google team care to comment? Thanks! <comment><USER2> If search for "usb audio" in your link, the first hit is

> _If Handheld device implementations include a USB port supporting host mode, > they:

[7.7.2/H-1-1] MUST implement the USB audio class as documented in the Android SDK documentation._

?

</comment><comment><USER3> i havent heard anything about this being removed and doing so doesnt make sense in a world where there are devices which come with no headphone port

i can go a little bit further too and say my phone actually runs Android 9 and i use a USB audio device almost daily with it (Xperia XZ1 Compact with Audeze Mobius via USB-C)</comment>


Black Holes are sending quantum messages in the universe - <AUTHOR> http://www.astrowatch.net/2016/10/quantum-information-processing-near.html <comment><USER2> The name "quantum message" is misleading. They are not transmitting anything interesting. All the message is the speed of the rotation of the black hole.

This is interesting for theoretical calculations, but I think it would be very difficult to measure it experimentally. Anyway, it's totally impossible to use this in a quantum computer, as the article try to induce.

</comment><comment><AUTHOR> gus_massa - You are totally wrong, you should read the article. First of all you do not know what the quantum message is all about to be in the position to judge the importance of it. Second you do not know how to use a quantum computer, none really knows at this moment. The article states for instance that Bell states are transmitted via the light emitted near spinning black holes, which is incredible since nothing else in nature could process quantum information.

</comment><comment><AUTHOR> Waiting for the quantum computer to decipher the messages coming from the black holes!!</comment>


Spring Data REST Tutorial: Developing RESTful APIs with Ease - <AUTHOR> http://on.geeklearn.net/a54c0df2ba <comment><USER2> This is actually a good intro to Spring Data Rest. Thanks</comment>