Mapping Strings in C++ - <AUTHOR> https://cdacamar.github.io/data%20structures/algorithms/benchmarking/mapping-strings/ <comment><USER2> The benchmark is kind of dodgy.

\- It looks up the same key on every iteration, so every level of the trie stays in the cache, no matter how large the nominal data set size is.

\- The setup appears to be such that even though the key is 128 bytes, it's probably not going to share a prefix longer than 4-5 bytes.

\- The code is constructing a temporary string of the 128 byte key for every lookup in the hash table (by going from a string to char-pointer to string), but not for the trie.

So it first eliminates the problems of a trie (especially the cache inefficiency) by an unrealistic test setup, and then has a bug introducing probably a factor of 2 unnecessary overhead to the hash table.

<comment><USER3> There's an incredibly simple algorithm for such an access pattern. Store all values in a vector, without regards for order. Then when an element is requested, find it's index i with a linear scan and swap elements i and i/2.

In an access pattern where the same elements are requested over and over this very quickly brings those elements to the front, giving really fast access times. This super simple data structure would totally blow the rest out of the water on this benchmark, and should illustrate the issue with it quite well.

<comment><USER4> And enable OpenMP afterwards, to process the 1 million strings in parallel using all the available cores.

<comment><USER5> I hate it when libraries try this sort of thing. I've already used all of the cores higher up in the program logic where it's far more effective, but doing that all the library is going to achieve is a net slow down of all throughput.

Don't blindly throw work at multiple cores low down in algorithms. Amdahl's law tells you that the pay off is likely low, and if the program already makes proper use of the cores you're just going to slow things down.

<comment><USER4> Agreed that library needs to think about how programs will interact with them.

That program is just a benchmark to map millions of string to integers, it's valid to optimize processing.

</comment></comment></comment></comment></comment><comment><USER6> "At around 1,000,000 elements our unsorted vector takes around 32 minutes to lookup a string."

I don't at all believe that C++ can only iterate through 2000 strings a second. Python takes an imperceptibly small time to iterate through an array of a million strings when I test it out in my repl, and I imagine C++ would either be as fast or somewhat faster. This number is so ridiculous that it makes me very skeptical of the rest of the article.

<comment><USER7> The x-axis is the number of iterations, i.e. the number of lookups. The collection is always size 1,000,000. Also, each of those lookups is for the exact same entry, so after the first time, it'll be all cache hits. Well, except for the std::vector, which is what you're talking about... :)

<comment><USER8> Strings are length 10 to 100. A cache line is 64 bytes. A cache miss is < 1000 cycles < 10^3ns. That makes < 1s for 10^6 strings.

Furthermore adjacent strings are likely to be adjacent in memory, from which I would naively expect cache prefetching to succeed.

Additionally, the curve is quadratic (if at all), not linear. I bet the author looked up all n strings from the vector of n strings.

<comment><USER9> I think the curves are linear because the x-axis is log scale but the y-axis is not.

<comment><USER8> Gotcha. It's probably still quadratic, just judging from the values. You can't need 32 minutes for 10^6 100-byte comparisons (which typically abort after the first character compares unequal. Not that that matters).

<comment><USER9> It's definitely a strange set of graphs:

Mixed (log/linear) scales on the axes

Only two columns of points on each graph matter (the last two) because the left hand side is all zeros (an artifact of the y axis not being log scale)

The y-axis is sometimes in thousands-of-mega-nanoseconds (with two significant digits) or sometimes in giga-nanoseconds (with one).

Giga-nanoseconds are seconds!

The colors for each line sometimes changes between graphs.

</comment></comment></comment></comment></comment></comment><comment><USER10> Why is the time for map lookup going up so fast for large numbers of strings? Is he running out of memory and thrashing? Is the implementation of map broken? Does the benchmark include growing the map? (If you include growth time, map insertion is O(N log N, because you need log N recopies of size N.)

<comment><USER7> Update: The author is always using a collection of 1,000,000 entries. The horizontal axis is the number of lookups, into a collection of 1,000,000 entries, e.g. always ~ 20 entries in the tree. So the x-axis is logrithmic, but the y axis is linear and we expect the graph to be linear.

Original comment: Good question. The x-axis is logrithmic, the y axis is linear. Without cache effects, std::map and lower_bound should take logrithmic time, so should be a straight line on the graph. Also, unordered_map should be constant time, independent of size. So its either cache effects (including swapping / thrashing), or there's some other overhead that's dominating the whole thing, and the author isn't measuring what they think.

</comment></comment><comment><USER11> If you don't need sorted search (lower/upper bound) or prefix search I doubt even a good trie would beat a good hash table. Have you tried google::dense_hash_map? std::unordered_map is slower because it uses chaining to resolve collisions.

<comment><USER12> Tries have the incredibly useful feature that they fail fast and match fast when you get to a unique prefix. Hash you always need to process the full string though.

<comment><USER11> Unless you're talking about extremely long strings, computing a hash takes far less time than a cache miss.

<comment><USER12> Yeah, the most cache-friendly structure is going to win, but failing fast means no strcmp test if you happen to get a collision, which is potential miss to fetch the characters. And if the hash uses bucket chaining, the programming gods help you.

On an interview I was once asked to calculate the latency on a hash fetch in Java with the JDK String, hit and miss. It all basically boils down to how many caches misses are you going to have. I literally just counted up the memory accesses and counted up the hits and misses then gave an answer for cold and hot cache. Then we worked on rewriting it.

</comment></comment></comment></comment><comment><USER13> Interesting write up. There was a claim I didn't understand though

> Let's fix this. An easy way to get our std::vector implementation in-line > with the rest of the containers is we can sort it and utilize an algorithm, > std::lower_bound, in order to speed up our lookup times.

Unless I'm missing something, isn't this wrong? The point of the vector is that v[enum_value] gives you the name of enum_value as a string. Once you sort it this relationship no longer holds, unless it so happens that the vector was already sorted (which happens to be the case for "circle", "square", "triangle").

<comment><USER14> You are absolutely right - and the benchmark in the repository doesn't even try to get the value - it's only check for existent of key.

However, it can easily be fixed by using something like vector<tuple<string, types_t>> and supplying predicates for both std::sort and std::lower_bound to only consider the first element in the tuple. There will be some performance hit, but should be minimal.

<comment><USER13> I see, that makes sense. I guess at that point you have something very much like std::map, except it doesn't keep itself sorted, you have to do it yourself.

I guess for cases like this where you initialize it once and never change it again it could even be a better choice (i.e., faster initialization).

<comment><USER15> The main difference is that map cannot be reserved ahead of time.

</comment></comment></comment></comment><comment><USER16> The performance gap between unordered_map<> and the custom implementations seems to be less than 2X. This will quickly evaporate if one uses an efficient hash such as dense_hash_map<>.

<comment><USER17> For the trie, things would be a lot better if the words got longer. All the 'inefficiencies' of a trie lie in the pointer chasing. The great thing is that you can process a string 'on-line'.

If things start getting really big, there are some tricks with LCP-arrays and constant time RMQ (range minimal query) that have great theoretical performance. I haven't seen that stuff in practice though.

</comment></comment><comment><USER18> I love how it's always the native code developers who worry the most about performance implications, when they often have the least to gain from doing so.

It must be something about being close enough to the metal to realize and care about what happens.

<comment><USER19> Hopefully if you're using C++, it's because the performance implications matter. And hopefully, you're nitpicking on the implementation of the mapping algorithm for the same reason. Third, that's that only good reason to be close to the metal anymore: that there's a requirement for some particular speed target, and none of the "good enough" solutions are good enough.

Otherwise, why wouldn't I build my program in Python or something? If selecting the right data structure just based on Big-O notation will get me to a good enough solution, digging down is just a waste of time, like saving microseconds when network latency is 1000 times the problem.

<comment><USER20> There are other reasons to use C++ besides performance, and other reasons to not use Python besides performance.

<comment><USER19> Sure, but it's one of the biggest go/no-go reasons. Preexisting codebase, available libraries suitable to the problem domain, platform limitations, desire to obfuscate code, developer experience, desire for speed of development, and whatever else I'm forgetting would be other reasons to choose a particular set of technologies.

But the comment I was responding to was about performance implications, and whether or not development was "close to the metal", so my response was too (using C++ and Python as examples of lower-abstraction and higher-abstraction languages).

</comment></comment></comment></comment><comment><USER12> Tries can be memory hogs and the techniques for level and path compression can add significant overhead. It would have been interesting to see memory usage.

I've of the more interesting data structures for things like this are Ternary Search Trees after each subtree starts with a common prefix. That would have been an interesting comparison.

[https://en.m.wikipedia.org/wiki/Ternary_search_tree](https://en.m.wikipedia.org/wiki/Ternary_search_tree)

<comment><USER21> Overhead, fragmentation, pointer chasing, malloc() bound.

It's one of those data structures that makes perfect sense in CS theory but is only applicable in a limited set of real world problems.

For now we're beholden to implementation of our architectures, their quirks and side effects.

<comment><USER17> Suffix tries are an even better example. Donald Knuth once heralded them as the greatest algorithmic break-through of the '70s but in practice, it doesn't quite perform.

The point of suffix tries is finding substrings. I.e. build a suffix trie of all of Shakespear's works in linear time and memory (linear w.r.t. the total length of the string). And then, given a potential quote of length K, see if it is in Shakespear's work in O(K) time. The big draw there is that the complexity of string lookups does not depend on the length of the big text against which you are matching. This finds practical use in genome sequencing.

<comment><USER22> Suffix arrays, on the other hand, have worse complexity in the typical implementation (O(n) construction, O(k + log(n)) search [1]). However, they work extremely well in practice, because they use (contiguous) arrays.

[1] Though there is an O(k) search approach too: [http://www.sciencedirect.com/science/article/pii/S1570866703...](http://www.sciencedirect.com/science/article/pii/S1570866703000650)

<comment><USER17> If I recall correctly, the linear search approach is based on constant time range minimal query on the suffix array. That feels rather likely to also be worse in real life applications.

Heck, as far as I can tell, this approach is just another way of storing a tree.

</comment></comment></comment></comment></comment><comment><USER23> In the first chart, the units for the Y axis appear to be "giga-nanoseconds".

That's... interesting.

<comment><USER24> Also either the best or worst name for a band, depending on what music you're into.

<comment><USER25> Well, from the band's perspective, it's preferable to the nanosecond gig.

</comment></comment></comment><comment><USER21> Based on experience I'm going to form an educated guess (hypothesize) and say that both std::map and author's trie container are primarily bound by pointer chasing. Obviously one should test this.

If that's the case, use a C++ btree_map implementation.

<comment><USER26> I'm fond of sorted vectors as well such as boost flat_map. The worst case performance can be surprising! But eventually if it gets too big you'll need a btree

<comment><USER27> Can you share an instance where you actually needed a btree? What made it a true need (business need of some kind maybe_ and not just a measurable difference?

<comment><USER15> Generally the requirement for range queries and piercing queries. (Does range x,y contain object o; is object o overlapping range described by object p) Additionally requirement to maximize immutability for reasons of thread safety.

Range queries do not really work well on sorted vectors even if you have as many as needed indices. Immutability and race freedom are even more complex.

With a tree, copy on write solves many problems. (And can be much cheaper than copying whole structure.) If not, you can atomically replace subtrees in a safe way.

</comment></comment></comment></comment><comment><USER28> I'm wondering why the author didn't try to use binary search on sorted std::vector. It should be as fast as std::map (if not faster).

I also did some experiments with lookups using collections of std::map: [http://0x80.pl/notesen.html#stl-map-with-string-as-key- acces...](http://0x80.pl/notesen.html#stl-map-with-string-as-key-access- speedup-3-04-2010)

</comment><comment><USER29> It would be interesting to see a zoomed in view of how things perform at small numbers of elements. Perhaps an unsorted vector is actually the best up to a certain point, for example.

<comment><USER30> No, the charts should use a log-log scale. Now only the x axis is logarithmic which makes the behavior confusingly exponential-looking and also hides the differences at small sizes.

</comment></comment><comment><USER31> The plots would have benefitted from a log scale on the y axis, or both axes. The behaviour at the low end can't be clearly visualised since it's squished to the baseline by the exponential behaviour for high x values.

</comment><comment><USER32> This seems fairly involved for a problem that should be solved in the database...

I mean seriously, this is the kind of thinking that at least in theory is going on inside a relational database. If you have a table mapping these strings to values, (or, in a more sane database, it's the way around), you would just do the join and be done with it.

</comment><comment><USER4>
        auto get_type(const std::string& type) {
            auto e = m.find(type);
            if (e == std::end(m)) return type_t::num_types;
            return e->second;
        }

I don't understand the point of that code. Use "map.at(key)" and you get the value from the map. No need for function and branching and whatever.

If you really want to mess around, you compare "map.at(key)" against "map[key]". at return a const, [] is not const and allows to create the key (if I remember well).

To conclude, if you really really want to show off your optimization skill, you optimize return types: "auto &&" vs "auto &" vs "auto" vs a few other ones.

Can't help you with that last one. One decade of C++ and still struggling with reference, value copy, left-value reference...

That reminds me how bad C++ is a mess. 5 minutes of optimizations and my brain is already hurting. Good thing I moved to DevOps. More pay, less hassle.

<comment> charles-salvia The point is apparently to return "type_t::num_types" if the key doesn't exist in the map. Using at() throws an exception if the key doesn't exist.

<comment><USER4> That's an artificial requirements, you can do the same with at() or change the requirements.

Catching all errors to return a default type is an arguable decision.

</comment></comment></comment><comment><USER33> I wrote a 3D engine in C++ many years ago and it still feels wrong. At least with C you get the power to do things the way you want to and yes it is mostly unsafe if you don't know what you are doing. IMHO C++ is a failed attempt to reinvent already working language. C should not be extended. There are other languages like go and rust that provide good performance while not bastardizing C.

<comment><USER34> Define "bastardizing C". Which improvement do you consider as "failed attempts"? RAII, constructors/destructors, so you don't need to write spaghetti code to free resources reliably? Templates, so you can write sort() function once, for all comparable types? Lambdas? Or maybe GLib is somehow better than stl/boost?

C++ saves TONS of time and effort in our projects, thank god that I don't need to write in plain C anymore.

<comment><USER35> > Templates, so you can write sort() function once,

C has a generic sort: qsort [1] (or mergesort, heapsort or radixsort if you have specific requirements).

[1] [https://linux.die.net/man/3/qsort](https://linux.die.net/man/3/qsort)

<comment><USER36> Good luck chasing bugs then, though. qsort() will be totally happy comparing apples to oranges - aka there is zero type safety.

Templates give you compile time type checking, that's why one doesn't pass void pointers like this anymore but uses templates to implement generic functions.

<comment><USER35> > Good luck chasing bugs then, though. qsort() will be totally happy comparing > apples to oranges - aka there is zero type safety.

That's a fair point. However, I do not tend to make many of the mistakes that would be caught by the C++ type system. But different people tend to make different kinds of mistakes.

The type bugs that happen tend to be pretty obvious and easy to debug. Good luck to you debugging template code :) I've had a harder time debugging C++ code than C code. Again, YMMV.

<comment><USER37> I agree that YMMV.

Although sometimes "I do not tend to make many of the mistakes that would be caught by the C++ type system" might be related to "how to use C++ type system so it would catch mistakes people tend to make".</comment></comment></comment></comment></comment></comment>


Intence, the scrolling indicator - <AUTHOR> http://asvd.github.io/intence/ <comment><USER2> Looks similar to something Lars Jung made several years ago: [http://larsjung.de/jquery-fracs](http://larsjung.de/jquery-fracs)

Seems interesting.

<comment><USER3> That's a different thing. The menu on the Intence page is implemented using viewport.js: [http://asvd.github.io/viewport/](http://asvd.github.io/viewport/)

The Intence itself is the one which highlights top and bottom edges of the area in case if there is something to scroll.</comment></comment>


Show HN: My Friday evening hack - Frustimonials - <AUTHOR> http://frustimonials.com/ <comment><AUTHOR> This is just a fun app I hacked together in response to someone's tweet complaining about getting the wrong size clothes from an online store. It made me think of all the times I'm cursing companies or products for being rubbish. So, few hours later I had this up (long live Heroku!).

Any comments or suggestions welcome!

EDIT: Sorry about all the spam on the page right now. I guess it was bound to happen on an anonymous site.

</comment><comment><AUTHOR> Sorry I nuked the submissions for now. I've got real work to do for now, but I will put the site back up with better spam control. It was a fun experiment :-)

Mods, feel free to delete the post.

<comment><USER2> Haha, it was fun, wasn't it? :D</comment></comment>


Former Google ad boss to launch subscription-based search engine Neeva - <AUTHOR> https://searchengineland.com/former-google-ad-boss-ramaswamy-to-launch-new-search-engine-neeva-336200 <comment><USER2> I thought DuckDuckGo was the working antidote to Google. It's hard to imagine what they can provide that will justify $10 a month.

</comment><comment><USER3> Do they seriously expect users to pay to be able to perform searches? Users don't need new platforms, its vice versa.

<comment><USER4> One thing I'd pay for is deep search - give me more than just the top 100 or 1000 results. I'd use it to scrape information for NLP models.</comment></comment>


Bloomberg Plea: Ad-Blockers Disrupt the Experience - <AUTHOR> http://adage.com/article/media/bloomberg-ad-blockers-disrupt-experience/304299/ <comment><USER2> I could live with ads:

* If I was assured they didn't collect my private information or track my behavior

Ads very rarely offer me something I'm interested in. They disrupt my experience, but I could live with them under the above condition.

<comment><USER3> Or were free of malware. Also, if the ad servers didn't bog down the web site loading.

</comment></comment><comment><USER4> I made an ad blocker for iOS that I popped up on the App Store so friends and family can find it easily.

But lately, some websites seem to prefer displaying nothing unless the blocker is disabled.

For those instances, I recommend using Chrome or Firefox. Then you can experience the site unprotected, if you want.

Usually it's not worth it.</comment>


The Human Settlements - <AUTHOR> http://www.humansettlements.com/ <comment><USER2> "Look how it's in places where you're never going to live"

We pass those awesome photos around, but the places where most of us are actually going to live are nothing like, and arguably become worse.</comment>


Ask HN: Does HN automatically censor some new posts? - <AUTHOR>

I just tried to submit a post for a kickstarter project, but when I log out the article disappears from the "New" page.
This is the item ID. https://news.ycombinator.com/item?id=7902079 which I can see fine when I'm logged in, but it's blank when I log out.
Is there some unwritten policy disallowing links to kickstarter? People seem to be able to read my comments and reply to them fine, and I don't post often, so I'm not sure what is going on.
Post was to http://kck.st/1nh8gp4 <comment><USER2> Shorturls are almost always autokilled. Try submitting without the shorturl.

<comment><AUTHOR> Awesome, that looks like it was the issue. Thanks so much!

</comment></comment><comment><USER3> The thing to know is that if something happens its up to you to find out, then figure out why. Just think of HN as actively hostile to all participation and you'll have the right mindset to get stuff done.

</comment><comment><AUTHOR> And this post shows up fine, whether I'm logged in or not. Is this domain based filtering?

</comment><comment><USER4> yes, but by "Moderators".</comment>


The future of remote work is flexible work - <AUTHOR> https://www.friday.app/remote-work-flexible-work <comment><USER2> The positive is that it's great to have the option to work from home.

The negative is that once this becomes the norm, you will be competing with people from potentially anywhere in the US (and maybe other countries as well) and wages will most likely decline.

Why would an employer pay you $250K+ in California when they can find an engineer for half the cost in another state? Most wages in Canada for software engineers are absurdly low in major cities like Toronto.</comment>


Scientists Discover Particle Formed by Three Photons - <AUTHOR> https://www.morningticker.com/2018/02/scientists-stunned-by-huge-light-discovery/ <comment><USER2> Scientist: Under extremely low-energy, highly controlled conditions, photons can be made to act in a way that strongly suggests some sort of bond or attraction has been created between them.

"Journalist": So, photons did something, that's like, light, right? Lightsabers! By Jove, you've done it!

What utter tripe.

</comment><comment><USER3> Submission which links to the underlying MIT News source: [https://news.ycombinator.com/item?id=16401904](https://news.ycombinator.com/item?id=16401904)

<comment><USER4> Which in turn links to the paper [http://science.sciencemag.org/content/359/6377/783](http://science.sciencemag.org/content/359/6377/783)

<comment><USER5> >This approach should prove useful for producing novel quantum states of light and quantum entanglement on demand.

</comment></comment></comment><comment><USER6> Waiting for the day that all particles are found to just be various states of Photons and we can find the arch. :P</comment>


Can the Covid-19 epidemic be managed on the basis of daily data? - <AUTHOR> https://arxiv.org/abs/2003.06967 <comment><AUTHOR> Abstract:

Short answer: not much, and only with an overly cautious approach. The paper presents a simple mathematical model of the process and uses well-known results from control theory to prove that the approach taken by China and, to a slightly lesser extent, by Italy can work if the effect of delays is accounted for when taking the decision of the country lockdown, while the approach currently announced in the UK is likely to fail.</comment>


Ecommerce isn't just for Websites - Threadless Vending Machines - <AUTHOR> http://replicatorinc.com/blog/2011/11/ecommerce-isnt-just-for-websites-threadless-vending-machines/

<comment><USER2> I am in love. Can't wait until I actually have some money to buy these shirts.

</comment><comment><USER3> These things would make a killing at music festivals.. if you could stop people breaking them / vandalising them long enough to sell some stock</comment>


Show HN: Create pretty resumes in HTML, Latex, Markdown from a single JSON - <AUTHOR> http://prat0318.github.io/json_resume <comment><USER2> I made a similar thing a while back. My resume in PDF:

[http://hackerb.io/cantlin.pdf](http://hackerb.io/cantlin.pdf)

In MD:

[http://hackerb.io/cantlin.md](http://hackerb.io/cantlin.md)

In JSON:

[http://hackerb.io/cantlin.json](http://hackerb.io/cantlin.json)

You can generate a decent chunk of the content from LinkedIn/GitHub too :)

[http://hackerb.io/](http://hackerb.io/)

<comment><USER3> Very slick. The creation process is very nice, but editing an existing account is less straightforward.

<comment><USER2> Indeed, it's evolved over time as I've needed more from it but the UX has wound up pretty awful. Adding a personal statement for example involves finding and pressing the oh-so-very-intuitive "add block" button at the bottom of the edit page.

For reference you can drag and drop any of the sections to reorder them, and most of the fields will happily accept Markdown.

Any feedback appreciated for next time I have a weekend spare :)

<comment><USER4> Pretty cool. Just a suggestion, why not display a few more rows for the stack options instead of a single row. It would be pretty neat if I can just click through the stacks that I knew instead of figuring what I probably left out.

</comment></comment></comment></comment><comment><USER5> Very cool project! The Latex version is based on the awesome modern cv template. If you prefer not to install the massive TeX package on your computer you can use the online apps like ShareLatex[0] and WriteLatex[1] both of which have templates that you can use to get a CV ready in no time.

[0] - [https://www.sharelatex.com/templates/cv-or- resume/moderncv-c...](https://www.sharelatex.com/templates/cv-or- resume/moderncv-classic)

[1] - [https://www.writelatex.com/templates/modern-cv-and-cover- let...](https://www.writelatex.com/templates/modern-cv-and-cover- letter/vbrtdnffktzz#.U5OFJZSSxYU)

<comment><USER6> As someone who has read hundreds of resumes filling positions, I've got to admit this is not a great template, IMHO. I don't (and shouldn't) care about a candidate's picture/logo and the horizontal rules just burn more space. This strikes me as a template for someone that is trying to take up space.

Frankly, the hackerb.io template is something I'd prefer to read.

<comment><AUTHOR> even something slick like this[0] can be generated using json_resume. Just a new template has to be given.

[0] [https://www.writelatex.com/read/tktqrbmhnyqp](https://www.writelatex.com/read/tktqrbmhnyqp)

</comment></comment></comment><comment><USER7> While this seems like a nice exercise, I wonder how much things would break when the JSON is slightly "off" in terms of the schema, which seems to be very ad-hoc.

And with so many standards for resume schemas going around, I fear this will end up in a [http://xkcd.com/927/](http://xkcd.com/927/) situation.

Perhaps this exercise could've been more interesting if it were some nifty XSLT that took HR-XML and made HTML (preferably with tags that followed the hResume format) and LaTeX? The "XML Résumé library" [http://xmlresume.sourceforge.net/](http://xmlresume.sourceforge.net/) seems to be abandoned, but it is still worth to take a look.

<comment><USER8> I really like OP's suggestion.

"Interesting" ≠ Better right?

I kind of thought JSON _is_ [essentially] HR-XML. lol. But then again, I have not heard of Human Readable XML, and sort of chuckled at the thought of "HR" meaning human readable (until I googled it — __face–palm__).

Anyways, this is begging to feel a little like; [http://xkcd.com/378/](http://xkcd.com/378/)

</comment></comment><comment><USER9> I also made an attempt to unify my resume in different formats.

But I ended up in much simpler, but not so advanced solution. I'm just writing in Markdown and use a Makefile to generate other outputs using Pandoc.

Here is the input: [https://raw.githubusercontent.com/utdemir/resume/master/resu...](https://raw.githubusercontent.com/utdemir/resume/master/resume.md)

HTML Output: [https://rawgit.com/utdemir/resume/master/build/resume.html](https://rawgit.com/utdemir/resume/master/build/resume.html)

PDF Output: [https://github.com/utdemir/resume/blob/master/build/resume.p...](https://github.com/utdemir/resume/blob/master/build/resume.pdf)

And here is the whole project(I mean, the Makefile, and my Markdown resume): [https://github.com/utdemir/resume](https://github.com/utdemir/resume)

</comment><comment><USER10> This is particularly amusing because 6 or so months ago I had to write a résumé as part of a "career unit" in my Engish class. I was fed up with the whole thing -- what we had been taught seemed totally obvious to me and I was pretty much only doing busy work -- so I decided to write mine in JSON, and its schema happened to look pretty similar to this one's! The best part of the story, however, is that my awesome English teacher (only doing the unit because of the district), understanding of my interest in tech, loved it and thought it was clever and so gave me full points on it.

<comment><USER11> Was in a similar situation with a less happy ending. I had already generated a LaTeX résumé starting from around 2010. However, this year in an English course, I had to rewrite one in Microsoft Word, which was the only method accepted.

<comment><USER12> tex4ht cv.tex > html > copy-paste into/open in word > save as word?

</comment></comment></comment><comment><USER13> Hmmm, should be using en-dashes (--) not hyphens (-) for date-ranges, uses mathematical superscripting $22^nd$ and so gets incorrect fonts and spacing of the superscript, .... It's a CV, write it (carefully) in LaTeX!

</comment><comment><USER14> Great idea actually. Also, there is [https://europass.cedefop.europa.eu/en/documents/curriculum-v...](https://europass.cedefop.europa.eu/en/documents/curriculum- vitae) which can convert your XML to PDF or Word file. See also [http://interop.europass.cedefop.europa.eu/data-model/xml- res...](http://interop.europass.cedefop.europa.eu/data-model/xml-resources/)

</comment><comment><USER15> Nice work...

Mine only does Latex, has a slightly similar layout... To be honest I don't think that a HTML version of a 2-page, non-interactive resume is needed. And since I know Latex I prefer to have the full toolset of Latex at my fingertips in order to make it stand out (babel+hyphen, vspacing, href links, content flow control).

Here the link, I hooks you up to a rendered version, and pointers for a zero- install-get-started-now-for-free route of getting your own print-perfect PDF using the awesome ShareLatex web app.

[https://github.com/cies/resume](https://github.com/cies/resume)

</comment><comment><USER16> This is a great idea! I did something similar which stripped the text out of my tex resume, but I like the idea of writing it in the intermediate format and then converting to whatever you want.

While on my most recent job search, I found that a lot of places want a copy/pasted version of your resume in a plain text box. It would be nice if this printed out a pretty plaintext version of your resume too for boxes like this.

<comment><AUTHOR> Agreed. I think even the raw markdown output version is really human readable and can be used for text boxes.

</comment></comment><comment><USER17> Pretty neat! Might be nice to add YAML as a format too, since it's easier to write by hand than JSON. Might submit a patch at some point soon :)

</comment><comment><USER18> I find it interesting how techies rather make a complex generator than just open up an editor, write their resume and be done with the whole thing. Personally I find the JSON structure much harder to read than just use MD in Sublime or even something as trivial as using Word. By saying this, I don't try to bash on the creator, just acknowledge the phenomenon. Cool idea.

</comment><comment><USER19> Nicely done, I'd been thinking of making something similar, because I've been using JSON to power my resume already.

My JSON is: [http://itskrish.co/krish.json](http://itskrish.co/krish.json) and my resume, powered by the JSON is: [http://itskrish.co/resume](http://itskrish.co/resume)

</comment><comment><USER20> I would rather start with markdown than json.

<comment><USER17> Would be harder to parse than JSON, I'd think. Also much more unambiguous with JSON.

I do think writeability would be improved by using YAML, though.

<comment><USER20> I'm not sure why you'd want to start with json or yaml. Seems like you'd want to start with a _document_ , not a _datastore_. A datastore would tend to being opinionated and inflexible. What happens when my resume doesn't match a prescribed format? Or what about other documents beyond resumes? And whats with the star bullets? Why mix style with data? What if I want hearts instead of stars?

I only mention this cause I'm working on something similar for my resume. I start with markdown and output pdf, html, etc.

<comment><USER21> What happens when the code you wrote to parse markdown is unable to understand your new fangled resume material? Then markdown is just as much a datastore as json. The problem is not in json or markdown. It is in the code: your code must be able to understand all reasonable resume material.

<comment><USER20> I don't understand. Why would you write a markdown parser? Theres like a million implementations already. I use [https://www.npmjs.org/package/markdown- pdf](https://www.npmjs.org/package/markdown-pdf)

</comment></comment></comment></comment></comment><comment><USER22> Most jobs still request Microsoft Word resumes. How difficult would it be to support that format?

<comment><USER23> I've never heard of an employer requesting a Word document, but a plaintext version would be useful to paste into poorly-designed webforms.

<comment><USER22> That's all I ever hear from recruiters. Send a Word version.

</comment></comment></comment><comment><USER24> I render my resume in a similar way using Knockout.js, but with fewer options. I might steal a few ideas from this one.

[https://github.com/mgraczyk/resume](https://github.com/mgraczyk/resume)

<comment><USER25> You resume is black when I browse to your website. annotator-notice is overlaying your resume.

<comment><USER26> Its because of mixed-content

<comment><USER24> That would be very surprising since the site is a static HTML file on Google drive and contains no https links.

<comment><USER26> The site's served over HTTPS and the assets over http. That's mixed-content

</comment></comment></comment></comment></comment><comment><USER27> Very cool, I have a similar project that reads yaml and produces LaTeX and markdown/HTML: [https://github.com/bamos/cv](https://github.com/bamos/cv)

</comment><comment><USER28> Better would be software that can read a job posting and adjust your resume to align with the posting.

<comment><USER29> That would be really cool. But that requires an understanding of what u have to offer and what they REALLY need.... I mean humans have issues with this problem, its gonna be tougher to write a program that does it

</comment></comment><comment><USER30> Nice. I like it. Looks clean and professional. It'd be neat if you could offer themes, too.

</comment><comment><USER31> This resume makes me feel inferior.

</comment><comment><USER32> It's far from "pretty". To many fonts, too many symbols, hyphens instead of dashes, …</comment>


The Complete Animated History Of The Internet - <AUTHOR> http://uk.gizmodo.com/2009/02/11/the_complete_animated_history.html

<comment><USER2> Posted ten days ago: <http://news.ycombinator.com/item?id=463851></comment>


How to Really Measure Software Teams 2 - <AUTHOR> http://www.whattofix.com/blog/archives/2009/09/how-to-really-m-1.php

<comment><USER2> The article shows how to figure out where you are failing in a large government project. You would think that someone somewhere would learn that large monolithic-fix-all-our-problems-and-replace-all-our-antiquated-systems- at-once projects are doomed to failure. There are enough examples out there to satisfy anyone. Having done modest by comparison government systems, I can tell you that you cant get everything down on paper at the beginning. You have to be prepared for change.

Paperwork is the killer. Requirements are the killer. Design is the killer. They should start with something achievable and evolve into the desired system incrementally. The problem is that the tools necessary to achieve the task arent there. Government software is full of exceptions, special cases, union rules and all that stuff and we dont really have the tools to encapsulate the idea of special cases that can flow through the system.</comment>


A Node.js log library that enables you to view logs in Chrome dev tools - <AUTHOR> https://github.com/eshengsky/ServerLog <comment><USER2> If you are going down this path, I think the killer feature is to simply put the log in the console.log area, so there are interlaced with whatever you are logging on the client side, perhaps in a different colour.

Then you can see the timeline of both client and server ha penning together.

<comment><USER3> I've always done this the other way around, and had the client send back messages to be included into my server logs. Spraying the server logs to clients would really not be something I'd be very comfortable doing. Certainly not in production, and if I'm developing in debug mode, I've already got the log output scrolling by in a console appender, so seeing it in the browser dev tools isn't really any better or worse.</comment></comment>


Show HN: Showkr - minimal embeddable Flickr viewer - <AUTHOR> http://showkr.org/ <comment><AUTHOR> If anyone is interested - it's built with CoffeeScript, Backbone.js, Ender and GNU Make.</comment>


Show HN: First Chrome Extension – Meow - <AUTHOR> https://chrome.google.com/webstore/detail/meow/jdddffodghppjekljonbecncgcifehoh <comment><AUTHOR> Here is the source code for anyone interested in creating something similar: [https://github.com/sacert/Meow](https://github.com/sacert/Meow)

</comment><comment><USER2> > Fun little extension that changes the word "now" to "meow"

I can't believe in my eyes.</comment>


The Underappreciated Power of the Apollo Computer - <AUTHOR> https://www.theatlantic.com/science/archive/2019/07/underappreciated-power-apollo-computer/594121/ <comment><USER2> This article seems to be making a lot out of conflating peripherals with the computer itself. Seems to be a well-written article otherwise.</comment>


Google's Network Congestion Algorithm Isn't Fair, Researchers Say - <AUTHOR> https://www.vice.com/en_us/article/xwepkw/googles-network-congestion-algorithm-isnt-fair-researchers-say <comment><USER2> With modern congestion control oversubscribed connections can run smooth as butter for most users.

Despite this essentially no ISPs use them. I have coworkers, friends, and family members who can't reliably video-call on their '300mbps down / 15mbps up' cable connections because upload is oversubscribed 50 to 1 and one person on their drop has dropbox uploading.

Any sort of modern congestion control would fix this instantly, give everyone a better experience.

But modern ISPs refuse to consider it.

I once took a informal survey of why at a network operators meetup.

The answer was universal, article titles like this mean that they would rather everyone have bad service all the time than deal with any potential bad publicity.

I really hate Google as a company, but this isn't worth complaining about until they actively refuse to fix problems. It's especially not worth punishing Google for being transparent about the algorithm so external researchers can find flaws rather than hiding it.

<comment><USER3> Or.. they could not oversubscribe their lines? Cuts into their profit margins, sure, and they'll need to reinvest in their infrastructure, but it makes the whole business a lot less unethical.

<comment><USER2> It's a Malthusian trap if you don't advertise 100 some other dude advertises 100 and customers think you need 100mbps to browse facebook because the 100 connection they got from that dude wasn't so good. So they won't even consider your real 50mbps connection.

Selling speeds is a scam, but until enforcement is solid you can't afford not to oversubscribe.</comment></comment></comment>


Merch by Amazon - <AUTHOR> https://merch.amazon.com/landing <comment><USER2> Great until they decide to offer their own line of merch and yours isn't allowed in the store any more...

<comment><USER3> They wouldn't want to confuse their customers with merch that's not compatible with their body types.

</comment></comment><comment><USER4> And in other news, Teespring is launching an ecommerce store.

Seriously though, the thing that Teespring really nailed for me is the experience. It's so unbelievably smooth, hats off to that team. Every inch of the product is very well thought out.

I just doubt that Amazon can do something as well when it's one of the million things they have on their plate.

<comment><USER5> Well, Amazon also has an army of middle managers, engineers, and others.

<comment><USER6> When has an army of middle managers ever been a competitive advantage?

<comment><USER7> See US Army.

<comment><USER8> US Army's huge bombs and its row and rows of cannon fodder are its main strength.

<comment><USER9> What good are bombs and cannons if you don't have fuel for the bombers or shells for the cannons?

</comment></comment></comment></comment></comment></comment><comment><USER10> So...they're going after Teespring?

<comment><USER11> Probably understood this business more after their acquisition of Twitch.

<comment><USER10> I don't follow...can you clarify please?

<comment><USER12> Many streamers/ esports teams / etc make good portion of their money from selling merch.

<comment><USER10> Ah, makes sense. Thanks for the context.

</comment></comment></comment></comment></comment><comment><USER13> Strange that the artwork upload doesn't seem to support vector graphics. They want a rasterized JPEG?

</comment><comment><USER14> This name will raise unfortunate associations for fans of the Penny Arcade comic: [http://www.penny-arcade.com/comic/2005/01/05](http://www.penny- arcade.com/comic/2005/01/05)

</comment><comment><USER15> Interesting; in addition to competing directly with sites like Zazzle and Spreadshirt (with the Amazon name attached), they've targeted their marketing specifically at mobile app vendors making shirts to go with their games.

<comment><USER16> Maybe the revenue here is small for them, but the possibilities and relationships it opens to them with app developers are good, and could help their app store indirectly.

For example , they are currently working on paying developers through in-game ads.Another source of payment could be t-shirt discounts, or t-shirt marketing services.

EDIT:and let's not forget - if t-shirt game marketing becomes popular , and most such t-shirts would be for games in amazon's appstore , that would create a powerful marketing tool for amazon's appstore.

</comment></comment><comment><USER17> I love these weird unexpected Amazon projects. They're like the opposite of Google's moonshots.

"What bizarre project with small potential can we pour a bunch of time and money into today?"

<comment><USER16> I think it somewhat looks that way ,because Google is a technology driven company, while Amazon is more business driven.

So one creatively manipulates technology - you raise doubts about what weird technology will they be using( internet baloons ??? ) , while the other creatively manipulates business models - so you raise doubts about the business model .

</comment></comment><comment><USER18> I wonder why Amazon didn't get into this business 10 years ago...

<comment><USER19> Hindsight is always 20/20...

<comment><USER7> Introducing Amazon Hindsight

</comment></comment></comment><comment><USER20> No details on whether you can sell only to US customers or worldwide. SDK Seems small enough for people to integrate into Games and make some easy money if supported worldwide.

</comment><comment><USER21> Not a single thing about the type of t-shirt? This basically guarantees it is the crappiest possible t-shirt with printing, not something you'll actually want to wear, right? i.e. something like cafepress.

</comment><comment><USER22> T-shirts only? You'd think Amazon would be able to offer more merch variety right off the bat. Mouse pads, coffee mugs, all the stuff, like Cafepress does. How many T-shirts does a person need anyway?

</comment><comment><USER23> Interesting business model...Promoters design shirts then advertise to their customers to buy them? Amazon gets the $$ and the promoters get brand awareness and a few cents of royalty...

<comment><USER24> Their example shows that a shirt selling for $19.99, the designer/promoter would get $8.89 royalty. More than a few cents and not a bad deal for not having to deal with the actual production.

<comment><USER23> And if you use anything but their lowest quality shirt and make it double sided then your cut is dropped to about $3.40..true it's more than a few cents but still a pretty small cut per shirt.

<comment><USER25> That depends on the volume you're moving.

With their volume discount (400 per week), and a nicer quality shirt, you can make ~$7.30.</comment></comment></comment></comment>


Coinbase Custody is exploring a range of new assets - <AUTHOR> https://blog.coinbase.com/coinbase-custody-is-exploring-a-range-of-new-assets-e700496844be <comment><USER2> Glad to see Tron did not make this list. With its whitepaper fiasco it shouldn't be a trusted Token.

<comment><USER3> I have some friends that are invested in Tron and I can't stop trolling them whenever it doesn't make a list. That being said, Coinbase is not even a top 5 global exchange. All Tron needs to do is become successful in China (where most of the top 5 exchanges by volume are) and it will be fine.

</comment></comment><comment><USER4> I'm a developer on one of these projects (Nano). I normally refrain from posting about it on Hacker News, since it's almost never actually on-topic, but if there are any questions I am happy to answer them.

<comment><USER5> Remember when you got a piece of technology that felt like magic? Like 'this is what the future feels like'?

I had that feeling again when I first used Nano. A friend of mine and me, we got the wallets and kept sending Nanos back and forth, just because. 2s per transaction, no fees. It blew our minds.

Not to shill Nano. It might well be the case that Nano won't be occupying this space of near-instant and feeless transactions. But _something_ definitely will, and it will happen rather soon.

<comment><USER6> > A friend of mine and me, we got the wallets and kept sending Nanos back and > forth, just because. 2s per transaction, no fees.

LINE Pay (a local service trying to recreate the success of WeChat Pay) used that as an ad campaign. "Just flick 10 cents back and forth between your friend to see how quick and seamless the service is" [and get free stuff because of course it's an ad campaign] [https://www.youtube.com/watch?v=OwDM0oKCgbE](https://www.youtube.com/watch?v=OwDM0oKCgbE)

<comment><USER7> Both Line Pay and WeChat Pay are centralized systems, nothing magical about them.

<comment><USER8> To the end user, what difference does it make?

<comment><USER7> In a decentralized system no goverment or private entity can freeze your money. Your financial status cannot be used against you from getting financial services.

</comment></comment></comment></comment></comment></comment><comment><USER9> I know this is literally the first sentence in the article but just thought it worth repeating for anyone coming straight to the comments:

> Coinbase Custody is exploring the addition of many existing and forthcoming > crypto assets for storage only, and will be working to add them as quickly > and safely as possible. At this time, we have not yet considered these > assets for trading.

TLDR - assets in _Custody_ != assets in _Trading_

</comment><comment><USER10> Glad Monero made the list.

Sad to see XLM is not included.

<comment><USER11> XLM was "premined" (instantly generated for free) and distributed to the established "wealthy" userbase in an effort to get them to tell outsiders to buy in.

It's like some evolution of Multi-Level-Marketing meets penny stock.

<comment><USER12> Could you share sources? I would love to know more

<comment><USER11> [https://www.stellar.org/blog/bitcoin-claim- lumens-2/](https://www.stellar.org/blog/bitcoin-claim-lumens-2/)

[https://www.stellar.org/about/mandate/](https://www.stellar.org/about/mandate/)

      Lumen Distribution

>At the genesis of the Stellar Network, 100 billion lumens (XLM) were created as specified in the protocol. As part of its custodial mandate, SDF is entrusted to oversee that the vast majority, 95 billion, of the lumens are distributed to the world.

>SDF manages the execution of lumen distribution, with oversight and direction provided by SDF's Expansion Board. The initial lumens held by SDF are required to be distributed to the world in the following manner:

        50% for distribution via the Direct Sign-up Program
        25% for distribution via the Partnership Program
        20% for distribution via the Bitcoin Program
        5% held by SDF to support operational costs

Funny part of the protocol is that the voting power goes to the rich, and they just vote themselves all the new money that's generated:

>The Stellar Network has a built-in, fixed, nominal inflation mechanism. New lumens are added to the network at the rate of 1% each year. Each week, the protocol distributes these lumens to any account that gets over .05% of the "votes" from other accounts in the network.

The cryptocoin community has an established Modus operandi.

Write a piece of software that generates a supply of database tokens, and write the rules in such a way that they gain majority ownership and distribute a large portion of the supply to a few early "whales". These early users then act in every way they can to spread promotional promises and propaganda to the public in an attempt to convince people they too can become an oligarch of this token system that will surely be the future (as they sell their tokens for fiat) and all they need to do is "hodl" the supply and wait of course.

</comment></comment></comment></comment><comment> ur-whale This is interesting to me in the following way: it seem that there now is a _business_ case for hyper-secure storage (both in terms of it not being destroyed and in terms of not being copied) of rather small bits information where I don't think one existed before.

The fact that this idea has finally gained traction because of crypto- currencies is - I think - largely irrelevant: there are now real information "vaults" in the world that you can rent.

<comment><USER13> Key storage, eg HSM market etc has existed for a while. There are variations in how often you want to access different types of keys.

</comment></comment><comment><USER14> « Secular market » A secular market trend is a long-term trend that lasts 5 to 25 years and consists of a series of primary trends. A secular bear market consists of smaller bull markets and larger bear markets; a secular bull market consists of larger bull markets and smaller bear markets.</comment>


Jodorowsky's Dune - <AUTHOR> http://www.jodorowskysdune.com/index.html <comment><USER2> I found easier to understand the synopsis than the home page: [http://www.jodorowskysdune.com/synopsis.html](http://www.jodorowskysdune.com/synopsis.html)

</comment><comment><AUTHOR> [http://www.chrisfossart.com/](http://www.chrisfossart.com/)</comment>


Ask YC: Sites similar to News.YC - <AUTHOR>

I know it's been asked before, but I spent 30 minutes using Google to search the YC archives and the keywords are just too abundant and the first 20 pages yielded no results.
I'm looking for sites similar to news.ycombinator.com -- Just quick blurbs about what's new and happening in the nerdosphere.
On any given day about 10 items interest me, so I'm looking for other sources for more data.
Anyone? <comment><USER2> Fred Wilson covers off the agregators he uses in the comments here, which might provide some inspiration: <http://www.avc.com/a_vc/2009/04/celebrating- aggregation.html>

While slightly different, the reddit code is here, and publicly available: <http://code.reddit.com/>

lastly, if you're looking for environmental news topics, I've slapped together: <http://www.environmentalbubble.com/>

</comment><comment><USER3> <http://www.cs.toronto.edu/~ad/news/> Academic Hacker News - although it isn't too active

</comment><comment><USER4> <http://news.ycombinator.com/item?id=576677>

</comment><comment><USER5> <http://newmogul.com> if you're into business, financials and that sort of stuff.

It's run by our very own nickb (<http://news.ycombinator.com/user?id=nickb>)

</comment><comment><USER6> As an aside, SearchYC (<http://searchyc.com/>) and HNSearch (<http://www.webmynd.com/html/hackernews.html> \- Firefox plugin) might help you if Google isn't.

</comment><comment><AUTHOR> Thanks for the suggestion guys... it looks like dzone.com from the thread you linked is exactly the type of site I'm looking for.

</comment><comment><AUTHOR> That brings up another question.... since newmogul.com and AHN seem to use the same script, is it open source somewhere?

<comment><USER7> <http://arclanguage.org/>

A bit more than a script.

</comment></comment><comment><USER8> slashdot.org -- nerd news

dzone.com -- programming

<comment><USER9> Slashdot has been useless for at least the last 2 years. They even removed the link to the "developers" section from their category list on the front page, though "idle" and "games" remain.

Never heard of dzone.</comment></comment>


Tell HN: We separate the wheat from the chaff - <AUTHOR>

Hello dear HN folks,
I've subscribed to all of your ideas, wishes, projects, startups, failures and successes thanks to HN and I'm grateful that I could remotely participate with all of you creative and innovative people. You're truly awesome, keep up your spirit!
The founders of Hackernews have interviewed so many innovative heads, listened to so many ideas, but still don't understand the fundamental concepts that platforms exchanging information have to obey. Here's why HN is losing it's initial spirit and distracts many thousands of people all over the world: "Categories & Sub-Threads".
We're seeing an increasingly large amount of surveillance, security and other remotely related topics to Startups. That's ok, unless we have to pick ourselves what we want to listen to. This work could easily get removed by creating a dropdown with categories that's added to known our title/url scheme.
Please don't let us peasonts separate the wheat from the chaff on HN. Do it for us instead and let us focus on innovation and helping others innovate.
-- Thanks
a HN reader <comment><USER2> Allowing 'sub HN' pages is risky. People are already reluctant to flag poor content. Sub HN pages would probably see even more reluctance to flag poor content. It also means that some threads will be diluted, because people are discussing something in thead_A or thread_B, but not both. Threads A and B might be in different subHNs too.

Really what is good for HN is an active base of users, upvoting the good content; providing great answers[1]; and flagging content that should not be here.

Filtering is tricky, but achievable. There's probably an extension or plugin or script, or perhaps someone could create one?

All the privacy stuff is a bit overwhelming at the moment. I can understand people's frustration with it. I've noticed a few people dragging in irrelevant comments to other threads. Downvoting those may help keep privacy stuff in it's own group of threads?

The political aspects aren't so interesting, but the technical stuff can be quite detailed. Keeping something secret, or anonymous, or both, is actually very tricky. Designing better secrecy and anonymity tools for normal people to use should be a priority; and building in privacy to your startup idea may be a useful selling point now.

<comment><USER3> On the other hand, how many people consider 'poor content' to be 'anything they would rather not read?' If people started flagging PRISM content now, that doesn't serve the pool of people who still actually want to read it.

I think tags would be a good idea. "ask hn" and "show hn" are practically tags already. Although that would probably just add another layer for people to practice political infighting over (particularly if users can submit their own tags and vote for them, and tags are weighted), it might also be simple if you want to see PRISM content, or want to exclude it, to just search by #prism or !#prism (or what have you.)

Thread folding inside discussions could also go a long way towards giving the perception of segregating content without actually doing so.

<comment><USER2> There are a few different thread-folding addons and scripts.

Here are a few.

([https://chrome.google.com/webstore/detail/hacker-news- collap...](https://chrome.google.com/webstore/detail/hacker-news- collapse/bbkfcamiocfccgmcjngdljolljhifdph))

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

([http://alexander.kirk.at/2010/02/16/collapsible-threads- for-...](http://alexander.kirk.at/2010/02/16/collapsible-threads-for-hacker- news/))

etc etc.

EDIT: I would like a nice way to see "SHOW HN" posts, because these are often interesting and fun bits of stuff. I usually upvote these because I like the micro-encouragement. I guess having a separate "Shown HN" page risks people spamming it, but it should be easy enough to detect and ban those people?

<comment><USER3> a 'show hn' page might be a good idea. It could go right next to 'ask'.

<comment><AUTHOR> Yep, I'm also for it.

</comment></comment></comment></comment></comment><comment><USER4> I totally agree that yet another article about Elon Musk, "silver bullet workflow" and "new stuff that compiles to Javascript and then to JVM" are much more important for any startup founder than events that can shape what the digital landscape and the internet will look like in the next 20 years.

</comment><comment><USER5> _Please don 't let us peasonts separate the wheat from the chaff on HN._

That's the fundamental premise of this site. If you aren't satisfied with the content then browse /newest and upvote and comment on the content that appeals to you.

<comment><AUTHOR> Sincerly, I do exactly that and others also do that. But because upvoting is democratic, it means that the majority will have another opinion. We lived with that right? But the HN audience changed thank to it's popularity.

Upvoting is no quality guarantee. I could throw up an algorithm that picks higher quality content and flags it as such, but that's overkill for HN. Sub- Threads would solve the problem that likeminded people like each other's stuff oly when they like it.

The theory is that quality per information in a randomly organized source cannot be measured democratically.

 _btw: I 'm writing my thesis in a field of information management_

</comment></comment><comment><USER6> So you're essentially asking for subreddits?

<comment><AUTHOR> I'm glad that you really grasped the essence of the question. I didn't want to mention subreddit, because people would associate me of being a redditor, although I'm solely on HN and classical new sites only.

But I admit that reddit is a great, esp. when it comes to organizing urls/threads/comments.

<comment><USER7> Totally sincerely, why not just use reddit for that? Hacker news is not "better" than reddit, it's just (meant to be) highly focused on news that's specifically relevant to the hacker community. The PRISM situation impacts privacy for many software startups, and that's why it's so well covered.</comment></comment></comment>


Serving static websites for free with Heroku and Stasis - <AUTHOR> http://jaredonline.posterous.com/serving-a-static-website-with-heroku

<comment><USER2> Why does the title here on HN say "for free" ?

<comment><AUTHOR> Because all apps are free on Heroku until you up the number of dynos you're using. Nothing in this stack, out of the box, costs any money.

Edit: And I didn't think to add "for free" to the original blog post.</comment></comment>


MIT indefinitely removes online physics lectures and courses by Walter Lewin - <AUTHOR> http://newsoffice.mit.edu/2014/lewin-courses-removed-1208 <comment><USER2> "She provided information about Lewin's interactions with her, which began when she was a learner in one of his MITx courses, as well as information about interactions between Lewin and other women online learners."

So it wasn't an isolated incident.

"Based on its investigation, MIT has determined that Lewin's behavior toward the complainant violated the Institute's policy on sexual harassment. Following broad consultation among faculty, MIT is indefinitely removing Lewin's online courses, in the interest of preventing any further inappropriate behavior."

There was an investigation, run by the head of the Physics department, and they determined sexual harassment happened through MIT online materials. The faculty of the department were consulted, and it was decided to remove his material, to prevent any future issues.

He used his online content to prey upon female students. They removed that content. I mean what was the alternative for MIT? Not tell anyone? Leave it up, with a warning that you shouldn't contact the professor because he has harassed women in the past?

Call me old-fashioned, but I think when people abuse their positions of power and authority in order to victimize others, the institutions SHOULD cut ties with those individuals. As far as I know, nothing prevents Lewin, or others, from hosting the videos of his lectures elsewhere.

But MIT is right to disassociate from somebody they have determined to have behaved inappropriately.

<comment><USER3> I absolutely hate how MIT's statement on the incident _completely lacks_ any details on what exactly he did wrong, presumably in the interests of "political correctness" and all that doublespeak. I certainly do not condone sexual harassment, but with this massive lack of information I can't help but feel there is something else that is suspicious about the whole thing...

<comment><USER4> Why? And what the hell has it got to do with political correctness? A person has committed a serious infraction while employed. His former employer is washing their hands of him, and the things he has done are tainted. The nature of what he did necessitates a short statement. But they don't, and shouldn't have to, go into the exact details just to satisfy the curiosity of unconnected people, because really, that's what you're asking for. If it were to go through public court, then it would be on record, but it hasn't, and no employer with an iota of sense/HR department ever willingly releases detailed private internal information on an investigation. Sure, it might be great big conspiracy, but more likely is that he's a huge arsehole who abused his position and is now on the receiving end of utterly predictable consequences.

Edited in response to comment below, exact same point stands.

<comment><USER5> It is "politically correct" in that it is a high status well connected white man brought low by the bureaucracy and a mere student who also happens to be a woman.

</comment></comment></comment></comment><comment><USER6> I think everyone understands the frustration with taking down these notes on 'hurting so many to get to him?' grounds

but do any of you see the opposite viewpoint? that's the one that barely anyone in this HN thread is discussing? that MIT is basically saying to any profs "you play around with this and you're done"?

I feel like it's extremely encouraging to women, and may very well outweigh the marginal benefits of yet another physics lecture set online, particularly since they can easily be reinstated after the punishment and political message sinks in.

all of this stuff about the sanctity of information rings really hollow in a forum full of cynics anyway. and the skepticism about the accusations is just the cherry on top.

<comment><USER7> I agree with you. So many seem willing to give this guy a pass based on the quality of his lectures. I think that's bullshit. We need to get rid of the notion that genius academic output forgives sexual harassment. Fuck that. Genius academic output forgives bad dinner party hosting skills or walking around the office in an 8-day-old t-shirt, not harassing women.

However good this guy might be at teaching physics, this "loss" to the community cannot begin to approach the loss of uncountable women who decided to avoid quantitative fields because of the male culture dominance.

Meanwhile, as we discussed a few days ago, image processing researchers continue to use the studio-lit, soft focus, 1970s slide film captured, limited color gamut, badly scanned, low resolution 'Lena' image as if it is even a tiny bit relevant for today's image processing applications.

I'm sure there are many fun and engaging physics teachers at universities big and small across the world who can lecture equally well and don't harass women online. One of them can step up.

<comment><USER8> > However good this guy might be at teaching physics, this "loss" to the > community cannot begin to approach the loss of uncountable women who decided > to avoid quantitative fields because of the male culture dominance.

This comparison is completely inappropriate. You're pitching the contributions of one individual against the mores of the entire society over generations, as if Walter Lewin is single-handedly responsible for this "loss of uncountable women". How are you not ashamed to do this?

> I'm sure there are many fun and engaging physics teachers at universities > big and small across the world who can lecture equally well and don't harass > women online. One of them can step up.

Well, MLK was a plagiarist. Do you think it'd be a good idea to stop celebrating his life and works, stop citing him, revoke the holiday, etc.? After all, there are many fun and engaging civil rights activists around the world. One of them can step up.

<comment><USER9> _Well, MLK was a plagiarist._

For someone calling shame on another for poor debating tactics, engaging in this level of misdirection is pretty poor form.

Not to mention that MLK has been dead for over 40 years, so it's not like he's stepping down to leave a place vacant right now.

<comment><USER8> I don't understand where the misdirection is in what I said. It's not like I'm actually suggesting to debate whether MLK should be forgotten: I'm making a point through comparison.

MLK being dead plays to the strength of this analogy, because Lewin is retired. Removing his lectures on OCW, recorded 15 years ago, is like refusing to read or watch MLK because of _his_ moral failings. The issue with the MOOC on MITx, where he participated as late as last year, is different, and I would agree with barring his participation on the platform in case the transgressions are serious enough. But if you look over the discussion, it is the removal of the static, non-dynamic, incredibly popular and famous lectures on OCW that strikes many people as unjustified.

P.S. Feynman was a creep, and anyone who thinks that fact should cause people to stop reading his justly famous textbook and prefer that others "step up" is, not to put too fine a point on it, an idiot.

<comment><USER10> Plagiarism isn't illegal. Were there policies in place where MLK agreed to not plagiarize?

While on the other hand, MIT has public, written rules against sexual harassment and takes active measures to reduce sexual harassment. It's also illegal for MIT to be a workplace which allows sexual harassment.

It's a bit of a stretch then to make the comparison. Why not be more direct and use Bill Cosby as your comparison? Last I heard neither Cosby nor Lewin have been charged with any crime. And Viacom has stopped showing reruns of "The Cosby Show", last recorded 22 years ago.

</comment></comment></comment></comment></comment></comment><comment><USER11> This is a real travesty. While sexual harassment deserves suspension from future teaching, the existence of Lewin's (highly regarded and instructive) lectures in no wise endorses or encourages sexual harassment, and their loss is truly detrimental.

<comment><USER12> This is exactly my opinion as well. We don't remove books from the library because the author had moral failings, or even if the author committed genocide. The content has value and should be preserved. The removal of the content from OCW is the step too far. Lewin absolutely should be restricted from further teaching at MIT or on MITx but the work itself should not be considered problematic.

<comment><USER13> It's weird. I'm all for punishing sexual harassment, but I just don't see how removing his content from OCW does anything but punish society. It's not like static material is suddenly going to start harassing people.

As you say, they wouldn't remove an author's books in this case. How are course notes and videos any different?

Poor decision, in my opinion.

<comment><USER14> I've talked about this at greater length in another comment, but removing OCW content strikes me as a serious blow to any professor's legacy. For someone who invested years into that project, that's one heck of a punishment; it's one of the harshest things I can think of that MIT could do to a retired professor.

</comment></comment></comment></comment><comment><USER15> MIT uploaded 8.01, 8.02, and 8.03 (as well as other courses) to the Internet Archive awhile ago.

8.01: [https://archive.org/details/MIT8.01F99](https://archive.org/details/MIT8.01F99)

8.02: [https://archive.org/details/MIT8.02S02](https://archive.org/details/MIT8.02S02)

8.03: [https://archive.org/details/MIT8.03F04](https://archive.org/details/MIT8.03F04)

Edit: I don't know if all the problem sets are up there.

<comment><USER16> Excellent! Thank you. Cuts across the problems alluded to for those who want to hear the lectures whatever (it is their decision).

</comment></comment><comment><USER17> Wow, this is a tough one.

When I was an undergrad at MIT in the late 1980s and early 1990s, Walter Lewin was synonymous with amazing physics teaching. We would watch his videos on MIT's internal cable TV channel, to better understand (or just to understand) our physics homework.

I wasn't surprised to find that Lewin became an online teaching star, and that he was repeatedly praised for his instructional videos. Indeed, just a few days ago, I showed some of his videos to my 13-year-old daughter, who is showing some interest in physics.

So the videos are good and useful, and nothing changes the fact that Lewin is an exceptional teacher.

At the same time, it looks like MIT has investigated these charges of sexual harassment, and that there is truth to them. True, without hearing more details, we have to rely upon their judgment, which is frustrating. But the press release tries to make it clear that the investigation was handled by multiple people, including faculty members, and that it wasn't a one-time occurrence.

So I'm willing to believe, and be profoundly disappointed, as I accept the fact that Lewin engaged in sexual harassment. Such behavior is unacceptable, and I'm glad that MIT wants to stop it.

However, I wonder whether removing high-quality courses from the Internet is the right way to do that. I assume that they removed the videos so as to remove any reputational damage that Lewin's actions might cause to MIT. But there is also some educational damage here, and many people will suffer as a result.

There is no good or right answer here. I think that MIT is trying to do the right thing, but I'm not sure if their actions were, on balance, the right thing to do. I do hope that their actions will make it clear to other faculty members that they simply cannot behave this way, though.

<comment><USER18> The "First Commandment" of MIT is to not embarrass the Institute, so, yeah, a concern of reputational damage is certainly at the forefront here.

The problem, of course, is that this digital book burning is also causing reputational damage to the Institute, and I would guess quite a bit more. That professors are human is hardly a revelation. That the world's top engineering university would engage in such an overreaction, cutting off students in the middle of study (even if copies are available elsewhere, many will not learn of them, and there's disruption and chaos in the meantime), putting its online teaching efforts into jeopardy ... that's really big.

<comment><USER19> _That professors are human is hardly a revelation._

Did you just equate being human to forcing unwanted sexual interactions on individuals under your power and stewardship? Wow. Just wow.

 _cutting off students in the middle of study..._

It may cut off a few students this one time but the overall effect is to improve study conditions for multiple students for years to come.

<comment><USER18> " _Did you just equate being human to forcing unwanted sexual interactions on individuals under your power and stewardship? Wow. Just wow._ "

Yes, it's well within the arc of normal human behavior (power corrupts and all that). If you weren't surprised to learn of this event you should agree, unless:

More generally, another MIT professor said, to great acclaim from the class including myself, that " _Original Sin is an empirical observation_ ". And this is the precise fault line between the right and the modern left: is man "fallen", or perfectible?

And getting back to this case, if the latter, what do you do with those you can't perfect? From that comes, among other things, examples like this of making people unpersons.

<comment><USER17> I can completely understand removing Lewin from the faculty as a professor emeritus.

I can understand getting rid of his e-mail address and office (which I believe were also done).

If he really engaged in sexual harassment, then he deserves to have the book thrown at him.

The question isn't whether to punish him or make an example out of him. The question is whether we should remove all of the high-quality work that he did because of his moral or legal failings.

I'm not sure. Emotionally, I like the idea of removing his work from EdX. But I find it hard to justify pedagogically.

<comment><USER18> Revenge, for that is the best possible interpretation of MIT's deletion action, and is I assume related to your emotional desire, frequently makes poor policy. If it _is_ motivating you, you should think really, really hard about it, preferably at a remove from what sparked it (and if you can't achieve that, e.g. victims and those close to them, then have some people you trust provide that).

Heck, his " _Banned in Boston!_ " works might achieve greater fame, lure of the forbidden fruit, and plenty of us had never particularly heard of him before now....

</comment></comment></comment></comment></comment></comment><comment><USER20> This is absurd. Ignoring the ever loosening definition of sexual harassment combined with its increasingly retroactive application, what does the man's academic work have to do with these allegations?

Do the excellent lectures he's put online to help millions of students suddenly become illegal material, akin to child pornography?

I find it ironic how the new "politically correct" legions behave increasingly like a subversive fascist movement. "Incorrect" thoughts and opinions become illegal taboos, and alleged "criminals" are assumed guilty without trial.

The irony resulting from the escapades of these so called "social justice warriors" would be comical, if the results weren't so tragic. Walter Lewin's lectures are an incredible resource for the entire world. Taking them down because of alleged misconduct is the height of absurdity. MIT is harming millions of students worldwide who don't have access to any other resources.

The time has come to stop these modern witch trials, and return to a sane legal process. Particularly, innocence until proven guilty.

<comment><USER21> Not as absurd as you equating private decisions by a privately-run educational institution with legal process. MIT is within its rights to do anything it likes with material it publishes.

 _MIT is harming millions of students worldwide who don 't have access to any other resources._

As we all know there are no other resources available for learning physics on the internet. Surely this heralds a plunge back into the dark ages.

edited for typo

<comment><USER22> > Not as absurd as you equating private decisions by a privately-run > educational institution with legal process.

I just wanted to repeat this bit for emphasis.

MIT does not wield the state's authority. Only the state can effect censorship; private choices are not enforced by state power.

</comment></comment></comment><comment><USER23> Lewin was a superstar in online education circles, and very highly regarded at MIT. The NYT, among others, covered this: [http://www.nytimes.com/2007/12/19/education/19physics.html?_...](http://www.nytimes.com/2007/12/19/education/19physics.html?_r=0)

</comment><comment><USER24> I've been going through these courses slowly. This is a punishment for me, too, as their sudden removal means I can no longer continue.

I think MIT could have left the lecture videos online, prefixing them with a notice, which would have amounted to the same thing (disassociating from Walter Lewin and punishment for him), except that countless people that used those videos would not be punished.

I do hope there is a torrent with the archived Electricity&Magnetism lectures.

</comment><comment><USER25> I sure hope the Feynman lectures from Caltech aren't next.

People seem really quick to forget that fundamental science endures and political correctness is fleeting. I wonder what the next world threatening catastrophe to make people remember will be.

<comment><USER26> And we don't know what he was accused of and how serious it was, how strong the evidence was, and how fair the process was that condemned him.

Certainly there are plenty of cases of universities making terrible decisions in this space eg men being expelled for sexual assault, followed by conviction of the complainant for making a false report.

Levin seemed to be very popular with his female students; on one of the courses some of them actually came in at the end and sang him a song of appreciation.

<comment><USER14> I continue to be amazed at the degree to which "no actual harassment happened" is the _strong_ default belief for so many people here, despite the fact that a thorough investigation _has already happened_ and decided otherwise. A group of smart people (led by _MIT physics professors_ who are friends of the accused, for goodness sake) looked at the evidence and concluded that serious harassment occurred. Doesn't that merit at least a _bit_ of a Bayesian update?

I'm similarly amazed that the existence of examples of false accusations is taken as a more salient fact than the overwhelming weight and history of cultural indifference toward sexual harassment (or even approval). False accusations are the "man bites dog" story: they get attention because they're so far from the norm.

<comment><USER8> Consider that these people updated, you just don't share their conditional probabilities. In particular, they might think that P(response by MIT as given|harassment nonexistent or relatively trivial) is fairly high, given their understanding of or experience with the academic climate in the recent years, internal politics in academia, standards of institutional ass-covering etc. It's also notable (given that sexual harassment is a crime) that no involvement by authorities is described or even hinted at.

You do make a good point. "no harassment happened" shouldn't be the strong default belief (I'm not sure it actually is for many people here). But based on the statement and what is known about the relevant politics in academia, "serious harassment definitely occurred" shouldn't be one either.

</comment></comment></comment></comment><comment><USER27> Just want to point out to anyone upset that his lectures and notes have been taken offline: MIT's OCW is typically CC-BY-NC. Anyone is free to share their backup copy of the lectures online as a replacement.

</comment><comment><USER28> Why does MIT have to remove the video content? Lewin's lectures are one of the best sources to learn physics. Period.

<comment><USER29> Anyone seen both Lewin and Susskind[0] got any thoughts on the differences? I was thinking about starting on one of these.

[http://theoreticalminimum.com/courses/classical- mechanics/20...](http://theoreticalminimum.com/courses/classical- mechanics/2011/fall)

<comment><USER8> Susskind is much more advanced. Realistically speaking you need to understand and internalize the content of Lewin (or comparable) before you take on Susskind.

Lewin = undergraduate-level physics Susskind = graduate-level physics, converted to minimize math and maximize accessible explanations, but still graduate-level physics.

</comment></comment></comment><comment><USER30> The lectures themselves were a fantastic resource. I had been watching them in order, and was about half way through his 801 physics course. They are extremely entertaining and very well presented. He even addresses the issue of sexism at a few points in the lectures, and is clearly extremely popular with his students.

It's a shame he overstepped boundaries in another way, leading to the removal of a really seriously good resource. On the other hand, one can understand MIT's point of view, given the facts. It would be very wrong of them not to remove his online course and allow the platform to continue to be misused in this way.

I hope that Lewin or a colleague will release a statement, since at the moment there is such an enormous scope in the possibilities regarding the accusations. It could cover anything from otherwise polite, oblique references to students' appearances in a photo, to something overtly sexual and predatory. All kinds of sexual harassment are wrong and unwarranted, but some kinds are much more serious.

</comment><comment><USER31> Time to site rip and create an OCW torrent in case other materials and lectures disappear.

</comment><comment><USER32> This is a reasonable thing for MIT to do. Many comparisons to book burning have been made in various comments, which is not a good analogy. In this situation, the analogue to book burning would be burning his books[1]. MIT is just declining to have their name on the cover of his books (read: lectures) any more.

MIT is not trying to decree that the guy has some egregious objective moral failing. They're saying that they ran an internal investigation, with the help of other physics faculty, and found Lewin to be in violation of their institutional sexual harassment policies, and as a result, they're removing his content from their platform. This is a perfectly good reason to distance themselves from him, as well as making it clear that they take sexual harassment very seriously by impacting his legacy so negatively.

MIT OCW continues to host courses for 8.01 and 8.02, the courses his lectures covered, with lectures given by other faculty[2]. The loss of material to learn from is marginal at best - these videos are for the same courses at the same school with much of the same infrastructure (notes/recitation videos/etc).

[1] [http://www.amazon.com/For-Love-Physics-Rainbow- Journey/dp/14...](http://www.amazon.com/For-Love-Physics-Rainbow- Journey/dp/1439108277/ref=tmm_hrd_title_0)

[2] [http://ocw.mit.edu/courses/physics/8-01-physics-i- fall-2003/](http://ocw.mit.edu/courses/physics/8-01-physics-i-fall-2003/)

</comment><comment><USER33> I don't know how I feel about this. I mean sexual harassment is just ugly and disgusting, but I did like Lewin. Science is heartless, MIT. So why take those valuable courses offline?

</comment><comment><USER34> Absurd. Don't think there is a need to remove his lectures ,which benefit the many in the student fraternity, from the edX or MIT OCW.

</comment><comment><USER35> I think a lot of people who are upset about them removing his lectures probably misunderstand how OCW is being viewed by universities. From the perspective of MIT, these OCW materials are not videos and materials to be preserved for future generations, they're a product of the university.

We're not talking about stripping his materials off the shelves of a library. We're talking about taking them off the shelves of a store.

And MIT, as a brand, has no intent to sell products (for charge or not) which are associated with sexual harassment. This is even more important in the higher education space than in other industries because of the fact that the instructor is very much part of the product - it is an expectation of academic materials that the author can be contacted with inquiries about them.

The choice here for MIT, I think, is not about burning books. It's about continuing to present Lewin as one of their products. And when he's been found to have harassed women, it's obvious that they cannot do so.

</comment><comment><USER36> Removing his lectures seems a bit extreme. It's their content, though. They do only mention "MIT OpenCourseWare and online MITx courses" though, so hopefully the lectures will stay up on YouTube. They really are excellent lectures.

That said, I've watched a good portion of Ramamurti Shankar's lectures from Open Yale courses [0]. They're pretty good, but perhaps not broken down as logically as the three courses of Lewin's.

There is also some really good lectures from Leonard Susskind's The Theoretical Minimum [1]. However, these are perhaps a step beyond the normal undergraduate lecture series.

[0] [http://oyc.yale.edu/physics](http://oyc.yale.edu/physics)

[1] [http://theoreticalminimum.com/courses](http://theoreticalminimum.com/courses)

</comment><comment><USER37> I'm really anxious about this ambiguity of the "sexual harassment". This guy seems have no way to defend himself if in one of millionth chance that he is innocent.

People need information and actual cases to define the boundary. Just "common sense" is not enough. The way that MIT handles the information of investigation is really scary to me.

I know that smart guy does stupid things. However, a power that can punish people without going through court or public, isn't it scary?

Basically, an investigation conducted by a bunch of people behind the door does not hold more credits than an individual. Anybody has the same feeling?

</comment><comment><USER38> He's being punished for irresponsible behavior, fair enough.

But the one good he did in the world is now being taken away to the detriment of many. Think of it this way- Right now you can find books in the library written by people who have committed genocides. If we were to ban all the good (or at least of academic value) works of people who also did some very bad things, we'd have to burn A LOT of media, and arguably to the detriment of us all. Cutting off the nose to spite the face...

He should have been punished somehow, but not in this way.

Anyway, I'm sure his lectures will be torrentable, if they're that good.

<comment><USER39> I believe the OpenCourseWare materials were made available under a permissive license. And the lectures are available on archive.org e.g.

[https://archive.org/details/MIT8.01F99](https://archive.org/details/MIT8.01F99)

I can understand MITs decision to remove the materials from OpenCourseWare, OpenCourseWare is not a library. Removing his materials from there distances themselves from him, and his actions. They have however allowed them to be made available elsewhere.

<comment><USER38> That seems reasonably fair, then, all things considered.

Found a positive article on him. Seems like a really cool prof, those are hard to find, sigh

[http://www.technologyreview.com/article/426949/the- professor...](http://www.technologyreview.com/article/426949/the-professor- who-brings-physics-to-life/)

What bothers me is that we're entering a world where most of the things that are considered "real" live online, so this is a rather large hit to the legacy of this guy, looking back on this day from the future.

</comment></comment></comment><comment><USER40> I understand why they did what they did, but it's a real shame because he was a fantastic teacher and the material on both OCW and edX was incredibly valuable. I took two of his courses on edX and both were among the best of the 10 or so courses I've done on there.

I hope another copy of them pops up. It'd be great for them not to be lost from public availability without MIT having to support it.

edit: Of course, I don't think I ever archived a copy of these edX courses (it was difficult to) but I'll check when I get home.

</comment><comment><USER41> Sack the guy, prevent him from teaching. Leave the courses online.

Having and excellent resource and not using it is stupid.

</comment><comment><USER42> It's good they took immediate and decisive action.

Aren't the courses pre-recorded/-written/-etc. materials?

</comment><comment><USER43> This feels like a digital book burning.

</comment><comment><USER44> Wow. I'm really sad to hear this. His online courses got me through E&M back in college.

</comment><comment><USER45> Right when I needed to study for my Physics E&M Final...

</comment><comment><USER46> This resembles the practices of universities in China, that when a famous alumnus is accused of corruption, all that remind people of his existence in the campus are removed.

</comment><comment><USER45> More like Walter Lewinsky...

</comment><comment><USER47> Steve Jobs was an irrefutable dick. So tell me, should we throw all Macintoshes and iPhones into an incinerator?

<comment><USER48> Was he using them as a particular channel to harass people?

<comment><USER49> Steve Jobs touched my sister's boob.

<comment><USER50> So he married your siter?

</comment></comment></comment></comment><comment><USER51> This is going to turn around and bight them in the ass...</comment>


String Interpolation in Clojure - <AUTHOR> http://muckandbrass.com/web/display/~cemerick/2009/12/04/String+Interpolation+in+Clojure <comment><USER2> _Strings cannot be used within interpolated expressions; e.g. this will cause a straightforward parse exception_

This ought to be pretty straightforward to fix by escaping the quotes via \"

<comment><USER3> Sure, but that's not what you'd like to have happen in the end (though it works in a pinch). I mentioned it because it was one of the issues that is insurmountable from userland right now.

<comment><USER4> cemerick, I've hacked both Ruby & Clojure, so I can comment on the way Ruby handles stings.

Ruby has a concept of a 'string', as opposed to a "string". 'This is strict input, no escapes' "This is input with escapes"

I think that the suggested \" method is the best solution in Clojure.

</comment></comment></comment><comment><USER5> Super cool.</comment>


In New Military, Data Overload Can Be Deadly - <AUTHOR> http://www.nytimes.com/2011/01/17/technology/17brain.html

<comment><USER2> Sounds Like a good and bad issue. It's good to have so much rich data, and then to not be able to synthesize and use the data is tough.

With our generation of data mining and aggregation, you could approach it by using a data aggregation feed, similar to feedburner, with a "smart" priority system. So think of it as a small version of a secretary. The higher up the command call or person you talk to, the default feed is seen first. You can arrange the importance in your settings.

The other way to improve massive data overload, is through visualization of data, much like www.bundle.com did with our consumer data from the government quarterly reports. Visual data streams would allow soldiers to effectively understand the threats and process more data efficiently in "chunks" rather than through reports.</comment>


Please help me find a reliable apex/visualforce developer to extend SalesForce. - <AUTHOR>

I am looking for recommendations for visualforce developers for an ~1 week project to extend SalesForce functionalities.
The Project:
Capture html mass emails with data merged from accounts and save as PDF with naming convention.
Avenues Explored: 1)   I have tried the "Conga Composer" app but it does not capture the html formatting correctly as it is processed through MS Word. 2)   I have asked SalesForce support for recommended developers.  They are contractually obligated to pass me to HiSoft, but they are unresponsive.  If they are unresponsive before they get the job...  they are most definitely not getting my business.
The Question:
Do you have any recommendations for reliable coders?  Should I use a freelance developer website? If so which one? <comment><USER2> There's a pretty big shortage out there. Be ready to pay $100+ / hour. Your other alternative is to learn it yourself, or find someone who knows java, and pay them to learn Apex.

<comment><AUTHOR> Thanks for the advice. We are prepared to pay a premium to avoid paying for a learning curve. Can you offer any suggestions on the best place to find capable developers?</comment></comment>