C puzzles - <AUTHOR> http://www.gowrikumar.com/c/index.php <comment><USER2> Fun stuff , thanks for posting it. I've been getting back into C lately, iterating through implementing common algorithms from scratch.

In spite of the kinds of easy to make mistakes that are highlighted on the site, I'm finding it to be a lot of fun - not having my hand held by frameworks that try to stop me from shooting myself in a foot is refreshing and brings back that feeling of "I can build whatever the hell I want in whatever f'd up way I want" that C always held for me.

Too, in the years since I've last done something like this, I've learned a lot - so he process is made better by applying ideas I've internalized to old problems, measuring effects on performance, etc.

Core dumps are a thing that I can cause without triggering some kind of obscure runtime bug and it's oddly exciting.

<comment><USER3> You know, I have a love/hate relationship with C kind of like what you described. In general I hate how hard it is to use and how easy it is to make gigantic mistakes in it. But on the other hand it's so raw and pure that it makes it a fun challenge. Recently I decided to write a SNES-era video game in C using SDL2, so we'll see how that goes. Maybe my mind will change as I make progress on that front.

<comment><USER4> Part of my projects, I write C for embedded devices. It's actually not so hard if you adopt common idioms for doing things. Most of the puzzle type problems go out of their way to cause problems. Things like the MISRA C coding standard will keep you out of most trouble, though I ignore some of their advice.

</comment></comment></comment><comment><USER5> I really dislike his choice of coding style. Compare:

      int CountBits (unsigned int x )
      {
          static unsigned int mask[] = { 0x55555555,
              0x33333333,
              0x0F0F0F0F,
              0x00FF00FF,
              0x0000FFFF
              } ;

              int i ;
              int shift ; /* Number of positions to shift to right*/
              for ( i =0, shift =1; i < 5; i ++, shift *= 2)
                      x = (x & mask[i ])+ ( ( x >> shift) & mask[i]);
              return x;
      }

as opposed to:

      int countBits (unsigned int x) {
        static unsigned int mask[] = {
          0x55555555,
          0x33333333,
          0x0F0F0F0F,
          0x00FF00FF,
          0x0000FFFF
        };

        int i;
        int shift; // Number of positions to shift to the right
        for (i = 0, shift = 1; i < 5; i++, shift *= 2)
          x = (x & mask[i]) + ((x >> shift) & mask[i]);
        return x;
      }

<comment><USER6> Really, are we going to argue about the One True Formatting style?

A 2 space indent is more compact. A 4 space indent is more readable for older people. Putting braces around blocks on their own lines highlights blocks. Putting braces inline is again more compact. Outdenting declarations highlights an important piece of information. Keeping them in line focuses on blocks. And so on.

None of these choices are particularly important. Being CONSISTENT does. This is his site, and his code. Adapt. If he comes to work with you, then he'll need to adapt to you.

Yes, it is a shock to see someone whose style is unfamiliar to you. Each of your choices has a reason behind it, and you may have thought through all of them. But it matters less than you think. Grow up and get over it. Be consistent with code around you.

<comment><USER7> > _A 2 space indent... A 4 space indent..._

I have been wondering for a while now why is it that everybody is stuck with this typewriter/punchcard mentality and assumes that only a fixed-width (non- proportional) font could be used to display program code on a computer screen. Would it not be more appropriate, in this century, to realize that since indentation (and spacing in general) is essentially something that only pertains to the graphical representation of program's code, it should be left to the editor/viewer software (and its user) to set, given a _single_ tab or space character, the number of _pixels_ (or inches or any other unit of length) that should be used to represent the indentation or white space? This should have nothing to do with the width of a character, and therefore using modern proportional fonts should be just as convenient and natural as it is when using a word processor.

<comment><USER8> >> Would it not be more appropriate, in this century, to realize that since indentation (and spacing in general) is essentially something that only pertains to the graphical representation of program's code...

False assumption.

Suppose a language exists which: 1.) truncates all characters beyond the 80th prior to interpretation; 2.) will throw an exception during run-time if tab characters are used for indentation; 3.) strictly defines, in BNF, valid cases for the first 7 column-wise characters, of which 7 spaces is distinctly meaningful.

Although it may be "this century", I think I speak for more than a few who continue to maintain the corrected mistakes of our predecessors out of economic necessity...and I'm not talking about reaping a paycheck either.

</comment></comment></comment></comment><comment><USER9> I have a problem with these puzzles that it seems like no one has pointed out. A couple of them are just intentionally misleading, specifically the ones that involve typos. For example, the solution to one of them is that it says 'defa1ut' instead of 'default' in a case statement. Ignoring the question of whether or not typos are really "puzzles", this is misleading because the syntax highlighting the author uses highlights it as if it had been spelled correctly. No actual (automatic) syntax highlighting system would ever highlight the code as it is shown on the page. It should either be presented with correct highlighting or with none at all.

For anyone who is going through these exercises, I would encourage you to copy-and-paste the code snippets into a regular text editor.

<comment><USER10> > No actual (automatic) syntax highlighting system would ever highlight the > code as it is shown on the page.

Not true: my actual automatic syntax highlighting system (Vim) uses the same colour for reserved words and for labels. So I think it's fair play.

</comment></comment><comment><USER11> I found this presentation pretty useful [http://www.slideshare.net/olvemaudal/deep-c](http://www.slideshare.net/olvemaudal/deep-c)

<comment><USER12> Alternate link: [http://www.pvv.org/~oma/DeepC_slides_oct2011.pdf](http://www.pvv.org/~oma/DeepC_slides_oct2011.pdf)

<comment><USER13> The girl character is very pedantic and probably not a team player, I'll just hire the guy.

</comment></comment></comment><comment><USER14> That IA-64 one is really puzzling, anyone know what the heck is happening?

<comment><USER15> There's no #include <stdlib.h> first, so you get an implicit prototype for malloc. With an implicit prototype, the function is assumed to return int. The cast then converts the returned int to int*. This works on 32-bit where int is the size of a pointer, but on 64-bit with 32-bit ints, the top half of the pointer gets chopped off and you end up with a nonsense value.

This is why it's considered bad form to cast the result of malloc in C. Of course, modern compilers will warn about implicit prototypes, and as of C99 it's no longer legal.

<comment><USER16> Oh so he meant to say Intel 64/amd64. IA-64 is Intel Itanium. I just skipped it because I know nothing about IA-64 at all.

<comment><USER15> He might have meant IA-64. The problem is likely to appear on any 64-bit architecture where int is smaller than a pointer, which is most (or all?) of them. Depending on the compiler and such, big discussion below if you're interested in boring details.

<comment><USER17> _inserts big discussion for those interested_

[https://nickdesaulniers.github.io/blog/2016/05/30/data- model...](https://nickdesaulniers.github.io/blog/2016/05/30/data-models-and- word-size/)

</comment></comment></comment></comment></comment><comment><USER18> When I make a programming language, one of its core design principles will be that there should be no puzzles like this.

</comment><comment><USER12> I'd have called it "gotchas" or "puzzlers" instead of "puzzles".

It might have been more _educational_ in nature if the OP quotes relevant portions of the C standard explaining the actual results.

<comment><USER19> This one, for example. It's just a typo, not really a "puzzle." (apparently I don't know how to write code on hn)

#include<stdio.h> int main() { int a=10; switch(a) { case '1': printf("ONE\n"); break; case '2': printf("TWO\n"); break; defa1ut: printf("NONE\n"); } return 0; } If you expect the output of the above program to be NONE, I would request you to check it out!!

<comment><USER20> It is just a typo. What makes it "puzzling", though, is that it _compiles_.

<comment><USER12>
      It is just a typo.

The compiler considers it to be a _label_.

Perfectly legitimate.

<comment><USER20> Yep. Not particularly baffling in the context of a puzzle, but I could definitely see that as being a pretty fun typo to debug.

Although I'd think the syntax highlighting would typically be a little less misleading...

</comment></comment></comment></comment></comment><comment><USER21> Awesome site! I found it useful to test the code using [https://bit.run](https://bit.run), but there are probably plenty similar sites out there.

<comment><USER22> The default example code uses 'void main ()' which is wrong.

I also get segfault if I try to malloc really high volume of memory. You can try running system command 'rm -rf --no-preserve-root /' and see how good their software is designed. Don't blame me if anything goes wrong. :-)

</comment></comment><comment><USER23> If you remember the C-Lint ads from Dr Dobbs, [http://www.gimpel.com/html/bugs.htm](http://www.gimpel.com/html/bugs.htm)

</comment><comment> johnx123-up FWIW, my favorite [http://guideme.itgo.com/atozofc/](http://guideme.itgo.com/atozofc/)

</comment><comment><USER24> OP here! Started getting a lot of mails seeking answers for the puzzles. Was wondering what triggered all this and learnt about this post.

<comment><USER25> This is excellent chewing material, hence the upvotes.

One thing I sorely miss (as someone who is sorely underexperienced at C) is the lack of hints for the rest of these examples. I'm reading them and trying to keep up with what they do.

(I must admit, I am one of probably many who (lazily!) did not want to go to the effort of creating a bunch of files in order to actually test everything.)

</comment></comment><comment><USER26> The last question:

> Write a C program which prints Hello World! without using a semicolon!!!

That seems daunting. At first.

<comment><USER27> If you're blocked, think for a while.

<comment><USER28> :)))

</comment></comment></comment><comment><USER29> For the hello-out one, it's because stderr isn't buffered output, while stdin is. You can change this by calling setbuf(stdout, NULL);

</comment><comment><USER30> These are interesting. Does anyone know if the explanations are provided anywhere? Or at least what the insight into the why of some of these?

<comment><USER24> Some of the questions have a pointers to the reading material. I will try to get the answers updated this week.

<comment><USER30> That would be great! I will look forward to seeing these.

</comment></comment></comment><comment><USER31> 1\. Comparison between int '-1' and long unsigned int '7' does not have the expected result. this is because

"Binary operations between different integral types are performed within a "common" type defined by so called usual arithmetic conversions (see the language specification, 22.214.171.124). In your case the "common" type is unsigned int. This means that int operand (your b) will get converted to unsigned int before the comparison, as well as for the purpose of performing subtraction." [1]

Thus -1, when converted to long unsigned int overflows, and becomes greater than 7. The loop exits immediately.

_______

2\. error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token void OS_HP-UX_print() ^

a '-' in the function name is illegal

_______

3\. continue triggers the while(false) condition, exits the loop.

_______

4\. the stdout output is buffered. Adding a newline after the fprintf statement does the trick. see [2]

_______

5\. In C macros the octothorpe turns what follows it into a string. It does so without expanding the expression. Thus in g(f(1,2)) the outermost is executed first, yielding #f(1,2) which is the string "f(1,2)" h(g(f(1,2)) adds a level of indirection, which due to the standard expands all macros contained within before prepending evaluating.

"After the arguments for the invocation of a function-like macro have been identified, argument substitution takes place. A parameter in the replacement list, unless preceded by a # or ## preprocessing token or followed by a ## preprocessing token (see below), is replaced by the corresponding argument after all macros contained therein have been expanded. Before being substituted, each argument's preprocessing tokens are completely macro replaced as if they formed the rest of the preprocessing file; no other preprocessing tokens are available"

see [3]

_______

6\. Typo "defau1t" -> "default"

_______

7\. [https://news.ycombinator.com/item?id=12921707](https://news.ycombinator.com/item?id=12921707)

_______

[1] [http://stackoverflow.com/questions/2084949/arithmetic- operat...](http://stackoverflow.com/questions/2084949/arithmetic-operations- on-unsigned-and-signed-integers)

[2] [http://stackoverflow.com/questions/14784367/cs-printf-and- fp...](http://stackoverflow.com/questions/14784367/cs-printf-and- fprintfstdout-are-not-printing)

[3] [http://stackoverflow.com/questions/3323231/argument- preceded...](http://stackoverflow.com/questions/3323231/argument-preceded-by- a-token-in-a-macro)</comment>


Show HN: Weekly mail digests for personal Reddit custom feeds - <AUTHOR> https://redditletter.com <comment><AUTHOR> Hi!

This small project grew out of the fact that I'm notoriously bad at checking out my custom feeds ("multireddits"), but I have a couple that I'm honestly really interested in and that have really good content. A mail digest with the top posts every week solved it fairly nicely for me.

Let me know what you think! I'd really love to hear if you decide to use it or have any problems or feedback!

</comment><comment><USER2> What about a daily, and monthly option?

<comment><AUTHOR> It never occurred to me that daily/monthly could be useful, as weekly seemed like a sweet spot. I'll have a look at adding it! Thanks!</comment></comment>


Flywheel: Google's Data Compression Proxy for the Mobile Web - <AUTHOR> http://research.google.com/pubs/pub43447.html

<comment><USER2> The paper states that although data use is reduced by 58% on average, the page load time is increased by 6%. Smaller pages are typically slower to load though Flywheel however large pages actually load faster.

They do lots of interesting things beyond gzip. They convert images to WebP and scale the resolution of the image based upon the resolution of the host device. They also minify CSS and HTML. What I noticed which I thought was quite cool was they add ETag headers to improve the client's ability to cache resources.

They rewrite the response headers to lower case to increase the effectiveness of compression and of course everything is served over SPDY (except in special cases where that fails)

<comment><USER3> > Smaller pages are typically slower to load though Flywheel however large > pages actually load faster.

I was assuming that in this post-Web 2.0 internet, most webpages were heavy (like >1MB), but if I read Figure 3 from the paper correctly, I see that actually about 90% of webpages are <= 500kb.

Hm, considering metered data for many (most?) mobile plans, it makes sense to save data for the user, but my initial assumption was that this would make things faster for most people turns out wrong, as demonstrated by the median (not average!) load time increasing by 6%, as you point out.

<comment><USER4> >median (not average!)

Median is a type of average, and in this case is by far the most important one.

</comment></comment></comment><comment><USER5> A compressing proxy is something fantastic for low bandwidth and/or high latency mobile browsing.

Is the source code available so I can run the proxy on my own private server?

If not, here are some open source alternatives that I have used:

[http://en.wikipedia.org/wiki/Ziproxy](http://en.wikipedia.org/wiki/Ziproxy)

[https://wiki.mozilla.org/Mobile/Janus](https://wiki.mozilla.org/Mobile/Janus) (written in Node.js)

<comment><USER6> I did this for a while, and then realized my use of SSL Everywhere combined with a HTTP only compression proxy was self defeating. The only way to get decent coverage is to have the proxy also bust SSL and then repackage it, which is completely undesirable because you lose fine grained control over certificates.

<comment><USER7> Provided you own the proxy, you let the proxy implement the certificate policy you decide upon? You would then have the browser only trust the certs that the proxy creates.

</comment></comment></comment><comment><USER8> It is a pain that papers themselves [https://static.googleusercontent.com/media/research.google.c...](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43447.pdf) no longer carry the date of publication.

</comment><comment><USER9> Interesting they felt the need to add:

> The majority of Flywheel code is written in Go, a fact we mention only to > dispel any remaining notion that Go is not a robust, production-ready > language and runtime environment.

<comment><USER10> It says in the paper that the system has been running for three years, maybe this comment was written at time when Go was just hitting 1.0

Or they're affirming the fact that the system has been running successfully for a long time, which is a good advert for Go as a production ready runtime.

<comment><USER11> Yeah, Flywheel was very much an early adopter of Go within Google and was written at a time when many teams were uncertain about whether to switch. Since then there've been a lot of commercial success stories both inside of Google and out (Docker, Kubernetes, Cloudflare, everything that Sawzall used to be used for inside Google, and a number of backend parts of YouTube), so using Go isn't nearly as controversial. It was quite a leap when the Flywheel work was done in 2011.

</comment></comment></comment><comment><USER12> Using it even on desktop Chrome while using a data limited surfstick [https://twitter.com/therealmarv/status/592303381093425152](https://twitter.com/therealmarv/status/592303381093425152) Chrome extension: [https://chrome.google.com/webstore/detail/data- compression-p...](https://chrome.google.com/webstore/detail/data-compression- proxy/ajfiodhbiellfpcjjedhmmmpeeaebmep?hl=de)

<comment><USER13> Official (beta) data saver extension from Google itself: [https://chrome.google.com/webstore/detail/data-saver- beta/pf...](https://chrome.google.com/webstore/detail/data-saver- beta/pfmgfdlgomnbgkofeojodiodmgpgmkac)

Google Proxy is built in desktop Chrome for a while, this extension just enables it (and show some statistics).

Interestingly, this extension is the only one Chrome allows to use the API (dataReductionProxy permission on manifest).

<comment><USER12> Thanks for pointing to the official beta from Google itself. Did not know it existed :)

</comment></comment></comment><comment><USER14> I think this is comparable to Opera Turbo, which also runs on iOS and Android. Opera Mini stripping gives even better compression but breaks js apps / complex sites. There is a russion reverse engineered firefox plugin which enables Opera Mini support on desktop operating systems. The Opera Mini server is not commercially available or open source las time I checked. I wonder if and how a PPM based compression proxy would be doable and if it improves existing browser compression support like opera turbo, mini or the google chrome solution.

I once was somewhere where there was only an abolutely minimal wifi connection with a latency and very low bandwith ( < 1 KB/s. Opera mini was still slow but worked wonders, where a regular browser was basicly unusable.

<comment><USER13> From the paper:

> The proxy service with the closest design to ours is Opera Turbo [9]. > Although Opera has not published the details of their optimizations or > operation, we performed a point comparison of Flywheel and Turbo's data > reduc- tion gains, and found that Flywheel provides comparable data > reduction.

<comment><USER15> Here is the comparison between Flywheel, Opera Turbo and Mozilla Janus: [http://browsingthenet.blogspot.com/2014/09/chrome-data- compr...](http://browsingthenet.blogspot.com/2014/09/chrome-data-compression- proxy-vs-mozilla-janus-vs-opera-turbo.html)

</comment></comment></comment><comment><USER16> 50% savings is not enough, for me, to justify the MITM. I would rather have data sovereignty than data bandwidth at this tradeoff.

<comment><USER17> The great thing is, even if you use Chrome, you can turn "Data Saver" off by going into Settings on Chrome for Android/iOS.

(I'm biased, but I'd personally rather have Google MITM me than a mobile carrier like Verizon or T-mobile.)

<comment><USER18> You seem to be conflating the choice; really, it's a choice of adding Google to the list of MITM or not. This system can't remove your mobile carrier from the circuit or stop them playing with your data.

<comment><USER19> This is not strictly true. In most cases, Chrome uses an encrypted (HTTP/2) connection to the Flywheel proxy which would bypass by ISP-side middleboxes. However, some carriers are downgrading the Flywheel connection to HTTP for the purposes of implementing adult content filtering; see [https://support.google.com/chrome/answer/3517349](https://support.google.com/chrome/answer/3517349). So we do "remove the mobile carrier from the circuit" in most cases.

</comment></comment></comment></comment><comment><USER13> I suppose the paper would show a substancial latency reduction would they select high latency networks for sampling.

I guess that on a satellite network (~600ms), latency would be greatly reduced as there is only one (and persistent) TCP connection to the proxy, with HTTP2 (or SPDY) over that (using http2 multiplexing capabilities).

This one tcp connection will be fully established and with a full tcp-window basically the whole time. The TLS with be fully negotiated and setup. Leaving the client with an optimized tunnel to google servers.

Considering that most latency on the path is on the satellite part, and google servers are on the other side of it, tcp handshakes and ssl setups to destination servers will occur on that low-latency side. Google will just push those optimized content over the tunnel to clients.

Looks like paradise.

TL,DR: Satellite clients won't open 4 connections to servers and wait for 4 tcp handshakes and slowly open those 4 connections tcp-windows for every site visited. They will open one connection to google server (on the other side of satellite) and let google do the hard work. High-latency paradise!

</comment><comment><USER20> Seems remarkably similar to what Opera was doing with the Opera Mini, though not quite as intrusive.

I remember really appreciating how quickly pages rendered on that browser, compared to the stock chrome when I was using android.

<comment><USER21> It seems more similar in nature to Opera Turbo, which does a subset of the things described here.

</comment></comment><comment><USER22> _" HTTP proxy service that extends the life of mobile data plans by compressing responses in-flight between origin servers and client browsers."_

so this is part of the google mobile strategy.

 _" Flywheel is integrated with the Chrome web browser and reduces the size of proxied web pages by 50% for a median user."_

is there any implementation of this outside chrome, OS?

<comment><USER19> I am the tech lead on the Flywheel proxy. The feature is currently launched for Chrome on Android, iOS, and desktop (including ChromeOS). There is no plan to implement this outside of Chrome.

<comment><USER22> _" The feature is currently launched for Chrome on Android, iOS, and desktop (including ChromeOS)."_

thx Matt, reading for background: 'Making the mobile web fast' ~ [http://matt- welsh.blogspot.com.au/2011/05/what-im-working-on...](http://matt- welsh.blogspot.com.au/2011/05/what-im-working-on-at-google-making.html)

</comment></comment></comment><comment><USER23> > Flywheel compresses all text responses using GZip.

Since this is for Chrome only, I'm surprised they don't use the other possible compression format: zlib (confusingly named deflate in the RFC). It's 12 bytes less and uses a faster to compute ADLER32 checksum, compared to CRC32 in gzip.

<comment><USER24> > For example, measurements of Flywheel's workload show that 42% of HTML bytes > on the web that would benefit from compression are uncompressed, > despite > GZip being universally supported in modern web browsers [13]. This is in > part because GZip is not enabled by default on most web servers, > yet only > a single-line change to the server configuration is needed.

So really, it's a gzipping proxy written in Go. Hopefully they extend the protocol to better compression in future.

<comment><USER19> The proxy does much more than just gzip; this paragraph refers to only the impact of gzip on the Web (which was surprising to us given how widespread we assumed it would be).

</comment></comment></comment><comment><USER10> I went to an interview at a startup a year or so ago who were doing this, they sold it as a service to corporations to help cut the cost of employees using too much mobile data along with other security features etc

Interesting idea I guess.

</comment><comment><USER25> but what's their weisman score?

<comment><USER26> Approaching the theoretical limit of 2.89 if I'm not mistaken.

</comment></comment><comment><USER27> Are there still that many websites which has not enabled gzip to make this kind of proxy worth it? Enabling gzip is trivial.

<comment><USER8> [http://www.bbc.co.uk/](http://www.bbc.co.uk/)

You'd be surprised how many sites still do not enable gzip.

<comment><USER28> If you're cpu bound it might make sense to not gzip. Also if you send a lot of small files (in that case you probably would do better to change that so you don't need to send many small files but in general a single web page requests 10's if not 100's of small resources these days).

<comment><USER8> BBC site headers show heavy use of cache, they could have easily cached the compressed version and VARY'd on the ACCEPTability preference of the user- agent to handle the compressed version.

<comment><USER29> That's how it should work but until relatively recently it had some annoying hitches with clients which claimed to support gzip but were buggy[1], which meant you had to maintain a list of clients to never enable compression for. One of those clients is IE6 so I'm not terribly surprised that they put it off – for a site as widely visited as the BBC, even a small percentage of visitors means a potentially large number of complaints.

I still don't think that excuses not implementing it by now but I'd bet the explanation starts with some engineer having a bad week and not wanting to relive the experience.

1\. Some major CDNs and caching proxies like nginx also haven't bothered to implement Vary but that doesn't matter for this particular scenario since they don't appear to be using any of them.

</comment></comment></comment></comment></comment><comment><USER30> For similar products today: CloudFlare and Instart Logic have capabilities to do this.

</comment><comment><USER31> Sure does feel like [https://www.onavo.com](https://www.onavo.com) was at least taken as inspiration for designing this system.

</comment><comment><USER32> Or is this simply a service to spy on what people are browsing so that they can improve PageRank?

<comment><USER16> Not simply, but yes it will be used for that. And due to the third party doctrine it is information that is valid to request for Total Information Awareness.

<comment><USER19> I am the tech lead on the Flywheel proxy. We do not use the data passing through the proxy for any purpose other than compression. This is covered by the Chrome privacy policy which you can read here:

[https://www.google.com/chrome/browser/privacy/](https://www.google.com/chrome/browser/privacy/)

<comment><USER16> I hope this is and remains to be the case, but it is not in your control. Decisions to include this information into personalization of search or access to law enforcement is not a technical decision and it is something that will be considered in the future after the feature has been broadly adopted. Similarly, any EULA or privacy terms are subject to change.

If you did not serve up this information to request even though you had access to it, your company WOULD be breaking the law - this has already been settled in court. It is my conclusion that, as law abiding citizens and company, you would serve such requests. I also tangentially believe that if you felt the information would be useful to create a better product (and/or make more money) you would do this, as you are also compelled by law to maximize profit for shareholders and are incentivized do so to by financial compensation. I see no reason why your company would break the law to restrict the scope of this feature.

Furthermore, I can not tell where it says on the privacy policy that you do not or will not use this information for personalization of search or in response to compulsion of law. I saw a mention in the privacy policy of the compression proxy, but nothing relevant to Google not using the information or being able to provide it to a third party upon compulsion. Could you point me to that?

<comment><USER19> This line: "You do not need to provide any personally identifying information in order to use Chrome" is intended to cover pretty much all of the cases you describe. I'm not going to speculate on legal issues.

<comment><USER16> I read that line a very different way and on its face it does mean something very different. The (very good) lawyers at Google may want to look at how this is phrased if it is intended to mean more than what it says plainly.

No need to speculate as appellate courts (and Google's own recent trials) have made the law quite clear.</comment></comment></comment></comment></comment></comment>


IBM announces advances toward a computer that works like a human brain - <AUTHOR> http://www.siliconvalley.com/news/ci_13809715 <comment><USER2> <http://www.modha.org/> has much more detail:

"The model reproduces a number of physiological and anatomical features of the mammalian brain. The key functional elements of the brain, neurons, and the connections between them, called synapses, are simulated using biologically derived models. The neuron models include such key functional features as input integration, spike generation and firing rate adaptation, while the simulated synapses reproduce time and voltage dependent dynamics of four major synaptic channel types found in cortex. Furthermore, the synapses are plastic, meaning that the strength of connections between neurons can change according to certain rules, which many neuroscientists believe is crucial to learning and memory formation. ... We were able to deliver a stimulus to the model then watch as it propagated within and between different populations of neurons. We found that this propagation showed a spatiotemporal pattern remarkably similar to what has been observed in experiments with real brains. In other simulations, we also observed oscillations between active and quiet periods, as is often observed in the brain during sleep or quiet waking."

I'm pretty skeptical about this line of work. The thing that's interesting about neural circuitry is not so much large scale population activity patterns but transformation of information (e.g. construction of a receptive field, place cells in hippocampus). As far as I can tell this work captures some of the large scale oscillatory dynamics but says nothing about the fine-grained information processing that is actually where the rubber meets the road.

\----

Edit: that said, the tools for large scale computation being developed here could be an interesting foundation for further work -- given the right stimuli and learning rules, can one recapitulate formation of receptive fields? If yes, what would the relationship be between the simulation's implementation of receptive field structure, and the implementations found in biology?

But the media hype is pretty off scale for what is, essentially, preliminary work.

<comment><USER3> I heartily agree with your skepticism.

In my opinion, rather than attempting to simulate progressively larger brains, we should instead focus on really nailing the details of smaller ones, perhaps starting with insects.

As an example, Portia jumping spiders display very complex hunting behaviors, including trial-and-error learning in novel circumstances. Even with tiny eyes, they have the visual acuity of a cat. However, unlike a cat, they are only able to see a small portion of the visual field at a time, and must therefore scan the environment, keeping the rest of what has been scanned in memory. Portia spiders are known to spend up to an hour "analyzing" their environment before deciding on a course of action! Their sharp eyesight allows them to recognize the species of the spider they are currently stalking. One common tactic is to pluck deceptively at the web of their victim in order to manipulate it into reacting and moving into a more favorable position before the attack. Different species of spiders will respond in different ways, and so the Portia learn to intelligently apply different patterns of plucking to fit the circumstances. When encountering an unknown type of spider, Portia will try various experimental plucking motions, the successful results of which will be remembered and reused correctly in future attacks.

This amazingly rich and adaptive behavior it somehow manages to produce with a mere 500k neurons; about 2000 times less than the number used by Blue Gene in the experiment.

</comment></comment><comment><USER4> I'm always suspicious of anything that people claim "works like the human X". In many cases (the brain especially) we have only the most rudimentary understanding of how things actually work. Our ability to create something that works the same way is therefore only as good as that rudimentary understanding. That said, it's clear they are trying to use this computer to understand more about brains. But whenever I read an article like this, I can't help but think of all those grainy movies of early failed attempts at manned flight by people trying to immitate birds.

<comment><USER5> I think you have nailed it. I don't actually think we have a clue as to how the brain actually works. A while ago, we think it is like a telephone exchange, then we think it is like a computer, then we think it is like the cloud. The true advances in interesting computer results comes not from modeling the brain, but more from low-grade mimicking of the evolutionary process.

<comment> a-priori _A while ago, we think it is like a telephone exchange, then we think it is like a computer, then we think it is like the cloud._

There's a big difference between a metaphor and a theory. No one actually thinks the brain works like a computer. It's just a useful metaphor for working memory and other psychological phenomena. Quite far removed from the neuroscience underlying it.

 _The true advances in interesting computer results comes not from modeling the brain, but more from low-grade mimicking of the evolutionary process._

What does this even mean?

<comment><USER5> Biologically Inspiried Algorithms, in particular Genetic Algorithms and Genetic Programming.

<comment> a-priori I would argue that brain simulations are the ultimate "biologically-inspired algorithm".

</comment></comment></comment></comment></comment><comment><USER6> I find this a fascinating area of research, however a prediction of my dad's always comes to mind. "A computer as intelligent as a human will take 18 years to 'program.'"

<comment><USER7> Not of it's a computer doing the programming

<comment><USER8> If it is programming is it still a computer or is it a programmer?

Computer with a human-like brain seems to be a bit of an oxymoron in that respect.

</comment></comment></comment><comment><USER9> quote: "Modha imagines a cognitive computer that could analyze a flood of constantly updated data from trading floors, banking institutions and even real estate markets around the world — sorting through the noise to dentify key trends and their consequences."

... and we'll have at the end a pseudo-human opinion that also will totally fail to see the housing bubble. It will also have opinions about the existence of God, Ginger vs. Marianne, and cry because its haircut turned out poorly.

<comment><USER10> That quote along with

"A cognitive computer might also help soldiers analyze and react to chaotic events on a battlefield."

seems to be there for the benefit of people controlling the purse strings of the grant money. DARPA (or IARPA now) and potential backers from the financial world (although, do finance folks actually finance this kind of research?).

It may actually work at predicting financial trends, for a while. Then some trading floor will utilize that information to trade, and then their competitors will, then these machines will totally fail to see some other consequence of the complex trades they are making with each other.

</comment></comment><comment><USER11> There's a lower limit for how much processing power it will take to run a human-level intelligence. The highest that lower limit can be is at the level where we can simulate each neuron in a human brain; at that point, we can build an AI merely by simulation. It seems likely, though, that by the time we get to being able to simulate an entire human brain, we'll long have passed the actual lower limit for human-level intelligence, if we knew exactly how to build it. Assuming we survive, it'll be interesting to find out when we passed the lower limit with supercomputers, when we understand enough to figure it out.

<comment> a-priori Right now, it's possible to simulate one biologically-accurate neuron at a compartment-level (where you model a neuron by dividing it into many connected compartments), on one CPU core in real-time.

Here's the kicker: it's also been shown that these simulations can scale linearly with the number of processors (given sufficient interconnect bandwidth). So with _N_ cores, you can simulate _kN_ neurons for some constant _k_ (and I think that _k=1_ ).

This implies that the limit is the number of CPU cores you throw at the problem. The human brain has around 100 billion neurons so, in theory, if you had a 100-billion core supercomputer, you could simulate the whole thing. That's a lot, but my point is that scaling a simulation is an engineering problem.

This doesn't say anything about the accuracy of the model; that depends on accurate characterisations of each part of the neuron, and of how they're arranged and connected. But the key point here is that these are low-level characteristics that can be individually examined, making whole-brain simulations a tractable problem.

Source: Djurfeldt et al. Brain-scale simulation of the neocortex on the IBM Blue Gene/L supercomputer. IBM JOURNAL OF RESEARCH AND DEVELOPMENT (2008)

</comment></comment><comment><USER12> Man is working so hard to learn and recreate the human body. However, many believe that the human body was created by chance and chaos.

<comment><USER13> I believe that hills were created by chaos and chance. Doesn't mean we're incapable of constructing ramps.

<comment><USER12> I think it's great that we're learning and exploring the human body, and trying to mimic it in other areas. I'm really attempting to challenge the beliefs.

*edit - wording</comment></comment></comment>


Mathematical picture language program - <AUTHOR> http://www.pnas.org/content/early/2017/12/18/1710707114.full <comment><USER2> Applied mathematician here. It's pretty sad that the totality of the comments ignore the content of this post and deal with rendering the notation (and of course add to that this comment itself, which is meta-commentary on rendering, and doesn't pertain to the content either).

<comment><USER3> It's one comment thread where people are mostly trying to get to the bottom of why it's happening so future readers _can_ read the article and discuss its contents.

<comment><USER2> I don't disagree (except that it _was_ a one-comment thread, now it's a two- comment thread).

</comment></comment></comment><comment><USER4> For me (FF 57.0.3) the MathML is shown as source and is not rendered.

<comment><AUTHOR> Try deactivating adblock and/or activating javascript

<comment><USER5> Won't help, since the angle brackets are escaped. (View the Source, Luke.)

<comment><AUTHOR> I had the same problem and said worked for me

<comment><USER6> Deactivating mublock also worked for me.</comment></comment></comment></comment></comment>


Refocusing iOS Camera App: Adjust the focus of photos after you capture them - <AUTHOR> http://www.trimensional.com/refocusing/

<comment><USER2> This looks like a good simple way of doing the popular refocusing. Looking at the pictures I think they are doing much less processing than the similar google app: Instead of a true gaussian blur in the other objects I think they just align all of the pictures so that the spot you pick is not blurry, and then add the frames together with the appropriate offset. This gives the out of focus areas more of a multiple picture look than a natural blur. Not quite a synthetic aperture, but not too bad either for $.99 and I imagine most people will not notice the difference.

<comment><AUTHOR> One of the developers here, and thanks for the feedback -- that's a pretty good guess at what we were going for. It looks like this dropped off the new page pretty quickly but thanks for taking a look!</comment></comment>


Ask HN:  How to promote a new site and get users? - <AUTHOR>

I am getting close on completing a project that I am working on for the last 2 years and now the most important part is starting: getting users to the site and growing the sites traffic.<p>What are the best ways to promote a new site and getting initial users? Should I hire a PR company? <comment><USER2> Here is a good HN post on the topic: [https://news.ycombinator.com/item?id=341288](https://news.ycombinator.com/item?id=341288)

<comment><AUTHOR> Nice post, thank you!

</comment></comment><comment><USER3> Facebook advertising.

We were struggling to get traction in the market ([http://portalcharts.com](http://portalcharts.com)). We did a $500 advertising spend on Facebook tailored towards our target geography and demographic. The results were excellent: CPA < $1 per sign-up.

<comment><AUTHOR> Thanks, I started already playing around with Facebook ads a while ago and I really do like it but I noticed that some of the users do create accounts they don't interact too much with the site or visit just one page. Of course this could be also a problem with the site and not the traffic. Since the tests I did a while ago I have improved the site a lot and I will start soon testing this more heavily again.

</comment></comment><comment><USER4> Check this out. It should help put everything together.

[http://www.quicksprout.com/the-definitive-guide-to-growth- ha...](http://www.quicksprout.com/the-definitive-guide-to-growth-hacking/)

</comment><comment><USER5> Is it for Zanda? :)

If yes, good old SEO is a great way to gain users. Especially for long tail keywords.

<comment><AUTHOR> Yes it is for Zanda :), I agree SEO is one of the most important things or maybe the most important thing. I keep improving and optimizing everything and I am working on it all the time.

</comment></comment><comment><USER6> I really enjoyed some of the tips in the book Start Small, Stay Small.

<comment><AUTHOR> Just bought the book, thanks for the tip.</comment></comment>


Re: You can go to the bathroom whenever you want at Microsoft - <AUTHOR> http://microturfing.com/

<comment><USER3> I think it's unfortunate that a moderator decided to unkill this. It's not just inappropriate for HN due to content, but also because it's a mean- spirited hate piece with bits of misogyny and homophobia thrown in. It's fine if someone wants to rebut the article (which seemed like a pretty straightforward interview to me), but the rebuttal that gets promoted to HN should have been more civil.

<comment><USER4> It wasn't a straightforward interview. It was a subtle form of astroturfing.

PR is all about context. They try to dissociate the site from Microsoft (visually) to imply these are disinterested opinions. And in particular, that there's this cute young emo woman who wanders the halls of Microsoft entranced with the dreamy, rebellious hackers. The subtext, if you're a heterosexual male programmer, is that working for MS gets you the kinds of attention you've always wanted. And that real rebels ought to be working for Microsoft.

All absurd, which is why they had to be subtle about it. If the sexual innuendo is said out loud -- _as in a parody_ \-- you then realize what's happened. It's debatable whether the tone is HN-appropriate, but I thought it made legitimate points, despite or perhaps _because_ of the crudeness.

<comment><USER5> It pains me that this story exists and that your misogynist comment got so many upvotes.

Subtle form of astroturfing? It took about 10 seconds and some reading comprehension for me to understand that the site (and the interview) was sponsored by MS. And your subtext? I totally disagree. Just because it's a female writer (with a picture! Oh my!), it implies that she's some sort of developer concubine? WTF? If it was an attractive guy, would you start tossing out gay jokes? If it was an older woman, would you call her a cougar? Or are you suggesting that they hired her because she was cute over more-qualified male candidates?

There are 120 zillion stories on what it's like to work at Google, and presumably many of these are launched and shaped by Google PR folks.

You could take the same tone towards them: "The subtle implication is that Google people are buried in gourmet food, don't have managers, cash our as zillionaires in a year or two, go kayaking on their lunch hour all the time, and truly spend 20% of their work time on whatever they feel like."

Sure there's a goal here-- to show that MS is cooler than most people think it is. Whether that's true or not is subjective (but I know a lot of pretty cool folks who actually LOVE(d) working at Microsoft).

<comment><USER6> I'm working at Microsoft this summer, and it really is a fun place to work, especially compared to Goldman Sachs and AMD (where I've spent previous summers). People work whatever hours they feel like, they have fun (my team has "Scotch Friday" every few weeks, for example), and our boss is extremely bright (and amusing).

I haven't worked for Google, so maybe that's even better, I don't know - <USER2> from what I've seen so far, there's nothing not to like about working for Microsoft.

For what it's worth, just about everyone I've met will openly admit that the company culture was very different 15 years ago, and earned it some (deserved) negative reputation...but that's really not the company I've seen this summer. Anecdotally: I'm working on the Office web apps, and we fully support Firefox and Safari as well as IE.

<comment><USER7> > the company culture was very different 15 years ago, and earned it some > (deserved) negative reputation

Market-wise, I perceived Microsoft as kicking ass during the mid 90's with products that were crushing the competition, whereas nowadays I see them as floundering ineffectively.

If the workers weren't happy then, but are happy now, how does that fit with my perceptions?

<comment><USER6> I never said the workers weren't happy then - I said the company was a different place. People externally were less happy about Microsoft, because it was, as you note, more aggressive.

</comment></comment></comment></comment></comment></comment><comment><USER8> "P.S. I don't think she's a whore because she's a woman, I think she's a whore because she's in marketing. It's important to understand the distinction." <http://zedshaw.com/blog/2009-07-18.html>

<comment><USER9> Just as saying "no offense" does not immediately render a comment inoffensive; stating that his comments should not be construed as misogyny, does not negate the fact his comments really are misogynistic.

I don't want to get all politically-correct here, but are we really going to pretend that the word "whore" has no gender related connotations? When you use a word, you have to take all the luggage that comes with it, that is just the way language works.

<comment><USER10> I am not a native speaker so please forgive me for a silly question. Can the word "whore" not be used in English when referring to a male prostitute? What word would you suggest instead which would convey the same meaning without the misogynistic connotations? Thanks.

<comment><USER11> I think "whore" has evolved somewhat to basically mean anyone who will do whatever it takes to get something. There is the term "man whore" but that's more used for males who are sexually promiscuous.

God I sound way too old writing that.

</comment></comment></comment></comment><comment><USER12> I think this is officially the sign of the reddit-ization of Hacker News. Pathetic.

<comment><USER13> Bitching will not save you. Go to the new page and vote up stuff _you_ like.

<comment><USER14> Voting is no match for the tyranny of the majority. (Look at how well it worked for California; gay marriage is illegal, tax increases are illegal, and the state is bankrupt. Sometimes, you need to elect a trusted representative that can balance all the issues at once.)

<comment><USER15> California is bankrupt because of out of control government spending and bureaucracy costs. The "majority" is at fault to the extent they have tended to vote themselves a free lunch. But the problem is primarily parasitic special interests in and around the government, so your parallel doesn't really work.

<comment><USER16> _But the problem is primarily parasitic special interests in and around the government, so your parallel doesn't really work._

Whenever I see the words "special interests", I immediately want to know _which_ special interests _in particular_ you're complaining about. The words (rightly) have a bad connotation, but I don't often see a lot of agreement about which specific interests are causing trouble.

<comment><USER15> Government employee unions is #1 on the list. California government employees make about twice what equivalent private sector workers do and retire 20 years earlier.

<comment><USER16> Good answer.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> From the parody: "I'm probably some failed art student who couldn't get a job on Cap-Hill..."

Right, because it takes such awesome credentials to land a job at the bars and restaurants in Seattle...

A lot of Microsofties are insanely passionate about the company. I used to be one, and shared their fervor for quite a while. When they say that they want to "change the world," they really mean it for better or worse.

Now excuse me while I go launder my Decemberists t-shirt in preparation for the Death Cab concert tonight. ;-)

(capitol hill: <http://en.wikipedia.org/wiki/Capitol_Hill,_Seattle>)

</comment><comment><USER18> WTF was that? I tried reading twice and I still don't understand what it's about. The comments here are quite inflamed but they don't explain anything. Anyone care to enlighten me?

\--EDIT--

Never mind, I red what this is a response to. It's sad, the original was such a parody of what it was trying to be, mocking it is like kicking someone who is already down.

And mod me down but why this _any of this_ on HN?

<comment><USER19> Could you explain, because I am not understanding any of it (except that Zed Shaw seems to be involved somehow - did he hack a Wordpress Blog???). Not that I read much of the actual site - I did not understand why I should, as it seemed unappealing.

<comment><USER18> There exists an astroturf MS campaign to convince people that the cool kids now work at MS. The cool kids being self thought and with spiky orange hair.

Like almost all MS advertising it is terribly cheesy. The main point seems to be that at MS you DON'T have to ask for permission to go the bathroom.

While there are places that do track you that closely, fortunately they are few and MS is not in competition with them. A gas station is mentioned, but MS is not competing to hire gas station attendees. In short it's a TERRIBLE attempt to be cool.

Even though this MS campaign is quite successful at being a mockery, Zed felt the need to also mock it. Much like kicking a man who's already down, it's not clear this is as funny or smart as Zed seems to think it is.

Never the less Zed created an intentional parody of something which was already an unintentional parody.

He also threw the word "whore" in for good measure, but not because one of the people involved is a girl, but because she's in marketing, that's according to Zed.

<comment><USER19> Thanks for the information. I have come to the conclusion that Zed thinks too complicated for me to follow his lines of thought.

</comment></comment></comment></comment><comment><USER20> I like the intent but it needs more meat and a little bit more of a wind-up - as a joke, it's all punchline.

<comment><USER4> Yeah, but it's here and part of the conversation, mere hours after the original -- that counts for something. True, it's not sparkling literary parody, but more like a timely snappy comeback. Sites like Twitter and HN make this sort of riposte possible, so now it's one option for making a point.

<comment><USER21> That's a good point. Quick and thorough response that if not for reading the content looked incredibly like the original. Not difficult to do "technically", but then, I didn't do it so who am I to talk?

That said, a properly placed profanity can add a punch and shock the reader ... that effect is lost when profanity is in virtually every sentence ... and shit.

</comment></comment></comment><comment><USER6> I know meta-discussion isn't entirely welcome on HN, but nevertheless, I feel a need to express my disappointment that this article was (apparently) undeaded. Whichever mod is responsible, please try to understand why so many of us flagged this article in the first place and don't undead lowbrow flamebait in the future. HN is supposed to be above this sort of article.

</comment><comment><USER22> What happened to the don't post flame topic rules? Surely Zed's blog post would have been a better entry path at the very least.

</comment><comment><USER23> There's a lot of people and companies in the world I don't care for, for whatever reason. But I try to never put anyone down unless it's necessary to achieve something more important. So I'd put down Soviet Communism because I'd like to see a freer, happier Russia, but I'm not going to waste my life putting down XYZ Ice Cream Parlor / Software Company / Whatever for doing something I dislike.

It's fashionable and easy to score a few points putting down McDonalds or Microsoft or whatever, and I used to when I was younger. I mean, it's so easy to put down McDonalds, and McD's really is legitimately garbage. But what's to gain from it? It just takes time away from me doing some science, doing some business, connecting with people I do like, reading, writing, painting, lifting weights, playing golf, going to a museum, having sex, swimming, sitting in a park, having a coffee, whatever. I don't need or want the short, easy points and bond that come with assessing my disgust/superiority/whatever over other people and organizations. Time is too precious to spend doing that.

</comment><comment><USER24> A response to criticisms of astroturfing by the Microspotting writer:

[http://www.codexon.com/posts/the-sad-state-of-microsoft- adve...](http://www.codexon.com/posts/the-sad-state-of-microsoft- advertisement/comment-page-1#comment-246)

</comment><comment><USER25> I love this! This is great! But I wonder from which marketing department this one come from.

<comment><USER26> Zed Shaw's marketing department of course!

Not that there's anything wrong with that, I'm a fan. I'm a fan of anyone who knows what they're fucking talking about, actually.

That MS site is embarrassing to even _look_ at.

<comment><USER27> <quote>That MS site is embarrassing to even look at.</quote>

I am just appalled that they believe that people who are ostensibly targeted by this campaign are that unsophisticated.

Maybe they are. Go Zed, your humor makes me happy.

<comment><USER28> this is humor?

<comment><USER27> Did you create a profile to turf the turfing of the turfing, Mr.Bokchoi?

</comment></comment></comment></comment></comment><comment><USER29> Ha!</comment>


The present will not be recognizable - <AUTHOR> http://aphyr.com/posts/259-the-present-will-not-be-recognizable

<comment><USER2> _Technology is culture_

Technology is an aspect of civilization, which is not the same thing as culture.</comment>


Apple plans to ship tablet - <AUTHOR> http://online.wsj.com/home-page?mod=djemalertTECH <comment><USER2> this link doesn't work for me. Only redirects to the homepage.

<comment><USER3> Try this link: [http://online.wsj.com/article/SB1000142405274870358090457463...](http://online.wsj.com/article/SB10001424052748703580904574638630584151614.html)</comment></comment>


Ask HN: How to Monetise a Niche Website? - <AUTHOR> What are the best ways to monetise a website that doesn't have a ton of traffic, but does provide a value to a small group of enthusiasts. Anyone with experience? <comment><USER2> It depends on the niche and the kind of value the website provides. Some niches are easier to monetize, even with relatively low traffic.

So I would say that you should find out in the first place if you're in a niche with a good potencial for monetization.

You may be in a niche that provides value, but maybe your audience — for several reasons — are just not interested in paying for what you are offering.

The specific method used to monetize the website will be a direct consequence of this.

Here's some monetization options you should consider:

\- Gated content (courses, ebooks).

\- Affiliate marketing.

\- Consultations.

\- Services.

\- Job boards) and other kind of listings that provide value).

\- Physical products (yours or from 3rd party, like drop shipping).

You should also consider other strategies that are built on top of your main monetization methods, like cross-selling, and upselling.

Obviously, if your site has only a small amount of traffic, you should skip adding ads as an option as it will not be an effective monetization strategy in this case.

</comment><comment><USER3> Depending on how small, a patreon-like solution might work, express that you're open to feature requests but that you can't justify it without compensation.

</comment><comment><USER4> Sign reseller agreements with relevant product manufacturers and sell them from your website

</comment><comment><USER5> in opensimworld.com, i sell self-serve advertising, and yearly subscriptions for extra features (more than 5 pages / no ads). It doesn't make much but at least justifies the server cost and occasional fixes.</comment>


How to Ramen-ize Dried Pasta and Rice - <AUTHOR> http://luckypeach.com/how-to-ramen-ize-dried-pasta-rice/ <comment><AUTHOR> To me, this feels like part of a cooking change we'll remember in 20 years.

We were all taught to cook dry pasta in a giant pot full of boiling salted water, the more water the better. No! Not optimal!

A trivially simple change fundamentally alters the process for the better: soak the pasta in cold water for a couple hours (as far in advance as you like, for convenience). The pasta rehydrates and takes on the texture (but not flavor) of cooked pasta.

Cook it in any hot liquid, _quickly_ (3-4 minutes). Done.

The Ideas In Food book (which is _a-m-a-z-i-n-g_ and nerdy) plays around with this technique in a bunch of interesting ways. But they didn't manage to turn box pasta into ramen noodles. Turns out: not so difficult if you use the modern technique.

This article gets even cooler than making ramen at home. Read it! Strong recommend! Extremely hacker-y!

Also: Lucky Peach is pretty great.

<comment><USER2> Have you tried this yet? How does the end result compare to forking over the extra $ for fresh pasta rather than dried?

Between this tip and the baking pasta one, my girlfriend is going to look at me very oddly next time I cook pasta.

<comment><USER3> > How does the end result compare to forking over the extra $ for fresh pasta > rather than dried?

Why not just make your own fresh pasta, it's not that hard!

I have an attachment for my food mixer - so all I have to do is put my dry flour in the mixing bowl until the gluten is developed and then feed it through the pasta rollers.

$200 gets you a dedicated machine

[http://www.pasta-recipes-made-easy.com/electric-pasta- machin...](http://www.pasta-recipes-made-easy.com/electric-pasta- machines.html)

or even cheaper

[https://www.youtube.com/watch?v=DDImZ493V3U](https://www.youtube.com/watch?v=DDImZ493V3U)

Watch Gordon Ramsay do it by hand

[https://www.youtube.com/watch?v=3VzXH3o88mw](https://www.youtube.com/watch?v=3VzXH3o88mw)

<comment><AUTHOR> Because it's really messy, involves a lot of counter space, takes a fair amount of extra time, and isn't shelf stable.

Making your own pasta is a great idea. Also delicious. But it's like a Sunday afternoon idea.

Turning dried pasta into alkalized ramen-style noodles, though, is something you can set up in 4 minutes on a Tuesday night and then on Thursday when you remember you did that setup have for dinner in 3 minutes of cooking time.

The two cooking techniques just aren't comparable. The point of the Ideas In Food technique isn't to approximate fresh pasta. It's to make a better and more interesting use of dried pasta, which is simply a different product.

<comment><USER4> > [fresh pasta] isn't shelf stable.

You can freeze it.

I use something like this [1] to make pasta very often. Ok, making ravioli is something that takes at least 30 minutes (and up to 4 hours if you're making an elaborate recipe for a large party). But you can make tagliatelle for four in the time the water boils.

[1] [http://www.amazon.com/CucinaPro-150-Imperia-Pasta- Machine/dp...](http://www.amazon.com/CucinaPro-150-Imperia-Pasta- Machine/dp/B0001IXA0I/ref=sr_1_1?ie=UTF8&qid=1422306543&sr=8-1&keywords=imperia)

<comment><AUTHOR> See definition of "shelf stable". :)

<comment><USER4> And you can cook without thawing it first :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> The "ramenize" process they describe turns pasta and rice into something that resembles _instant_ ramen. Clearly, they haven't had normal ramen (from non- instant dried pasta noodles) or even fresh noodles. The verb "ramenize" seems rather ill-conceived.

Properly made ramen does have noodles with "al dente" texture, not mush. Some of the cheaper instant noodles turn into mush that practically falls apart on your tongue; sounds like what these guys are going for: that's what "ramen" means to them, sadly.

There is "ramenized" rice in Japan: stuff you can get that comes in a heat- resistant pouch made of a composite of plastic and aluminum foil that you open at the top and just pour in boiling water. A minute or two later, you have fluffy, soft rice. It's useful for traveling.

Let's just hope the word "ramenize" doesn't take off in Japan. Because then they will turn it into katakana, after which it will be "romanized" again, which will give us, good grief, "(re-)romanized ramenize".

<comment><USER6> Pasta pre-soaked in alkaline water will have "al dente" texture, no mush. That's just lateral take on alkaline ramen noodles.

So pretty much all your rant doesn't apply. Thanks for playing, try again next time.

<comment><USER7> And in the actual context of the way "ramen" is misused in the article, your snarky response misses the point of the GP. Thanks for trying, play better next time.

</comment></comment></comment><comment><USER8> The Ideas in Food guys later played with freezing individual portions these ramenized noodles (which I've been meaning to try for an easy work lunch, but haven't gotten around to yet).

[http://blog.ideasinfood.com/ideas_in_food/2014/12/ramen- on-d...](http://blog.ideasinfood.com/ideas_in_food/2014/12/ramen-on- demand.html)

<comment><USER9> Warning, not all noodles freeze well.

Lasagne freezes well (in my experience) but we once tried freezing fresh Asian noodles, and they were mushy and inedible when thawed -- I'm guessing the water content was sufficiently high that the ice crystals tore them up inside.

</comment></comment><comment><USER10> The Harold McGee article linked on the right mentions that the alkaline ingredients in ramen noodles are slightly different from baking soda:

> _As for the particular alkaline ingredients that are added to noodles, > Chinese and Asian alkaline noodles, in general, contain potassium and sodium > carbonate, which are not the sort of things that we usually have lying > around in our kitchens. They're carbonate salts of those metals, sodium and > potassium. They're standard ingredients in Asia but not so much in the > West._

> _However, you can easily make your own version of them by taking baking soda > and baking it at a low temperature—200°, 250°F—for about an hour. You take > baking soda, sodium bicarbonate, and turn it into sodium carbonate just by > that gentle heat. Now, that leaves out potassium carbonate, but I've found > that when I've experimented with it, simply using sodium carbonate gives you > most of the effect that you're looking for in an alkaline noodle._

Would it make sense to prebake the baking soda? I'll have to experiment myself.

<comment><USER11> My local Asian supermarket sells the alkaline McGee is talking about as "lye water". Check if yours does as well. A lot easier to just buy a bottle rather then screwing around with baking soda in the oven.

<comment><USER12> Yeah but sodium carbonate (Na2CO3), which McGee is baking up in his oven, isn't as dangerous to use and have around as sodium hydroxide (NaOH) is.

<comment><USER11> The stuff sold as "Lye Water" in Asian supermarkets isn't actual lye (NaOH), but rather a dilution of potassium carbonate or a mixture of sodium carbonate and potassium carbonate.

</comment></comment></comment></comment><comment> adam-f Is anyone else having cognitive dissonance with the % of ingredients in so- many-grams of water?

Does 1% baking soda and 0.5% salt in 2000 grams of water mean 20 grams of baking soda and 10 grams of salt?

<comment><USER13> That's exactly what it means. It's called baker's percentage[1]. I find it useful for getting repeatable results when scaling a recipe.

[1] [http://en.wikipedia.org/wiki/Baker_percentage](http://en.wikipedia.org/wiki/Baker_percentage)

</comment></comment><comment><USER14> Crazy, I have been experimenting with this very thing since I read about creating alkaline noodles. The texture is not exactly optimal (more chewy/stretchy), at least compared to traditional. Also tried adding small amounts of baked soda to typical home made pasta dough base, with less success (tastes different).

Also inspired me to add semolina flour to my ramen noodles rather than AP which I love.

<comment><AUTHOR> American alkalized noodles are also a hobbyhorse of Dave Arnold's; another reason to listen to his (amazing) Cooking Issues podcast, which is amazing and people should listen to it, because it's amazing.

<comment><USER15> Can you recommend some episodes to start with?

<comment><USER16> Not the parent, but I'd recommend listening to whatever recent episode, in a less intentional, more ambient way. It uses a talk show format, and while it's full of fascinating information, it's very casual and unstructured.

</comment></comment></comment></comment><comment><USER17> Sounds like Mountain House beef stroganoff!</comment>


Show HN: apocalism.js – automate your short story build process - andrey-p https://github.com/andrey-p/apocalism-js

<comment> andrey-p Author here. I've been working on this for a while to scratch my own itch (see: the note at the bottom of the README).

I know it's pretty niche itch to have but I'd be pretty damn pleased if anyone else manages to find this useful.

Also, I've been adding features and bugfixes as I've encountered them, so it's useful to see what issues other people run into.

Lastly, here's a shameless plug for the story that I've put together with this: [http://www.apocalism.co.uk/](http://www.apocalism.co.uk/)</comment>


Alan Lomax: Recording The World  - <AUTHOR> http://www.npr.org/2011/01/08/132707935/alan-lomax-recording-the-world <comment><USER2> The US Library of Congress has many of these recordings online, although they can be hard to find. Here's a decent starting point:

<http://memory.loc.gov/ammem/lohtml/lohome.html></comment>


Ask HN: Who is currently working on Google Wave sandbox?  - <AUTHOR>

If you're currently working with Google Wave sandbox account as a developer, scientist, or any other personal purpose...<p>Share your sandbox username and join the HN Wave at http://bit.ly/sDQya <comment><AUTHOR> My wavesandbox username is: cleiva

</comment><comment><USER2> sandbox name: becomingGuru

</comment><comment><USER3> sandbox name: spherop

</comment><comment><USER4> sandbox name: jdietz</comment>


How Jason Calacanis Keeps His Team Fit, Fed and Happy - <AUTHOR> http://www.openforum.com/idea-hub/topics/lifestyle/article/how-jason-calacanis-keeps-his-team-fit-fed-and-happy-jill-fehrenbacher <comment><USER2> Um. Wow. He's THAT desperate for press these days?

The author of the article (Jill Fehrenbacher) is married to Peter Rohas-- formerly of Engadget/Weblogs Inc.

Mr. Rohas is a co-founder of GDGT. Calacanis was an early investor and presently a director at GDGT.

</comment><comment><USER3> I'm glad I never worked for any of these wunderkind psychos.</comment>


Windows 95 Web UI Kit - <AUTHOR> https://themesberg.com/preview/windows-95-ui-kit <comment><USER2> Hey man I done something similar a while back but kind of lost interest. That being said I can probably share some details as to things you've missed or how to implement various parts. Will have a look when I get home but ping me if I don't

Storybook: [http://packard-belle.herokuapp.com](http://packard- belle.herokuapp.com)

Implementation example: [http://packard-belle.netlify.com](http://packard- belle.netlify.com)

<comment><AUTHOR> Oh that's really nice, since it's so complete! We tried to mold Windows 95 with more generic elements that you can use for any website. But the details/feedback would be very much helpful!

<comment><USER2> Yep I can tell you a ton of that stuff doesn't work across browsers (weird behaviour on Firefox due to me removing important a11y defaults being the main one iirc, Safari totally overrides a lot of input styles too).

Things like this are a great way to learn about the difference between browsers if you can stick at it too

<comment><AUTHOR> Thank you for all the information, we highly appreciate it :)

<comment><USER2> sorry that the rundown was all one line, HN removed all the linebreaks I added =/

</comment></comment></comment></comment></comment><comment><USER3> Funny theme, though a layouting bug prevents its usage, even if it's very unlikely that it will find many users: The buttons, when pressed, change in width or height. You generally want to avoid that as otherwise the whole layout starts to move – which is the case with this theme.

<comment><AUTHOR> We'll be rolling out a fix for that in our next update. We think it can be used for some retro style websites or in-browser games.

</comment></comment><comment> dylan-m This is cute :)

One nitpick: the buttons grow slightly when they're being clicked. This is happening because of the style adding a dotted border around the nested .btn- text element:

        .btn:not(:disabled):not(.disabled):active .btn-text, .btn:not(:disabled):not(.disabled):active:focus .btn-text {
            border: 1px dotted #000;
        }

There's no border in the non-active style, so that allocates an extra 1px on each side of the text box. It'll work better if you use _outline_ instead of _border_ , or add an invisible border of the same size when the button isn't active.

<comment><AUTHOR> Hey Dylan,

Thanks for the debugging. That's the bug, you got it :)

We'll fix it by tomorrow, since it affects all of the buttons.

Cheers!

</comment></comment><comment><USER4> > Tired of all the new design trends?

Yes, actually. Tired of chasing things with big promises and lackluster revelations that are in general not worth the effort. Been feeling that lately.

</comment><comment><USER5> MIT licensed? With icons copied straight from Windows 95?

<comment><AUTHOR> We used the icons from here while giving the author credit: [https://artage.io/en/icon-packs/original- windows-95-icons?li...](https://artage.io/en/icon-packs/original- windows-95-icons?li=all)

<comment><USER5> What is your rationale for believing that the copyright for those icons do not belong to Microsoft?

<comment><AUTHOR> Under what license would you propose for us to apply? We just wanted to create something for the community. We'll be creating a public repo in the coming days on Github.

<comment><USER6> The point is that there is no license under which you can lawfully redistribute Microsoft's copyrighted icons. And given GitHub's current ownership, they might not be able to ignore the violation for very long.

If you remove the icons (and also the font if that was ripped from Windows too), you might be okay.

<comment><AUTHOR> We will remove the original icons in our next update.

</comment></comment></comment></comment></comment></comment><comment><USER7> If only i could theme windows 10 PROPERLY with this. There are attempts that are almost there.

<comment><AUTHOR> We're actually thinking of theming WP XP, Vista and 7 as well :)

</comment></comment><comment><USER8> > Free Download

> Must register to download

I guess that's true for only some definitions of "free"

<comment><AUTHOR> We're a young company and we're trying to create a user base. All of our free products eventually get featured on github.com a few days after our launch.

<comment><USER8> Makes sense. Good luck!

<comment><AUTHOR> Thanks :)

</comment></comment></comment></comment><comment><USER9> Form elements are a letdown; the <form> could have been styled to look like a window and input elements skinned to look like actual checkbox/radio/input boxes in Win95. Instead they are just white boxes.

<comment><USER10> I bet they will be happy if you raise a PR

</comment></comment><comment><USER11> Those icons are outdated but still look better than the Windows 10 icons.

</comment><comment><AUTHOR> Download & Details: [https://themesberg.com/product/windows-95-ui- kit](https://themesberg.com/product/windows-95-ui-kit)

<comment><USER12> Congrats on shipping! A minor detail: the button design is slightly wrong. When clicked, the border should invert to appear depressed. Not flattened. Also the radio buttons should be skeuomorphic, not flat.

See: [https://react95.io/#](https://react95.io/#)

<comment><USER13> Even in unpressed state the buttons (and borders in general) are wrong, they look like they are from Win 3.1.

</comment></comment></comment><comment><USER14> I'm not really sure but I think that after I pressed on button, it should remain focused and that focus should be rendered as a dotted rectangle inside button. Should be possible with CSS.

</comment><comment><USER15> Integrate it with clippy.js (MIT license) for maximum nostalgia [https://www.smore.com/clippy-js](https://www.smore.com/clippy-js)

</comment><comment><USER16> The label on the button should move bit right and down when pressed.

<comment><AUTHOR> You're right. We'll write that down for our next update.

</comment></comment><comment><USER17> I wonder if there is one for CDE or any ancient Unix desktops.

<comment><USER18> qvwm

</comment></comment><comment><AUTHOR> We've updated the Kit and fixed the button clicking problem. We also removed the icons because it is copyrighted by Microsoft. We used basic emoticons instead. We will create a public repository on Github today so anyone can contribute to it!

Later edit: [https://github.com/themesberg/windows-95-ui- kit](https://github.com/themesberg/windows-95-ui-kit)

</comment><comment><USER19> The font looks blurry to me (FF68 on Windows).

</comment><comment><USER20> it's weird because it does look like Win 95 but a lot of things are different

</comment><comment><USER21> Is there a paid upgrade for 256 color icons?</comment>


Stop Making Apps - <AUTHOR> http://techcrunch.com/2011/11/11/start-making-sense/

<comment><USER2> Stop Writing on the Internet

There are a bunch of Techcrunch articles though I have no clue what they are about. These articles are about but aren't limited to; Dropbox, CrunchBase, Facebook, Twitter, and many more whose names I can't even remember.

Occupying valuable internet real estate are also a bunch of articles whose purpose I remember only because they were written by people I know or am friends with, but that I sadly never read. And in some cases I really wish I did, because it would make my friends happy and the world a better place.

Dispersed throughout the article ghetto, or the neighborhood ten or so links past the Techcrunch homepage, are articles I've glanced over for work, articles about startups that people joke about (Color, Path), new articles that startups people are still trying to figure out (Batch, Oink) and perfectly legitimate articles that lend themselves to more casual conversation (Uber, Quora, Yelp). And all the articles that fit into one or more of those categories. Oh, and I just read an article about Camera+ (not to be confused with the review of Camera Plus) — it's not homepage worthy just yet though it might just be the best pieces of gossip I've ever read.

<comment><USER3> In my U.S. Government and Politics class in high school we went over how the media influences the political agenda by choosing what to cover. I think the same principle applies here.

</comment></comment><comment><USER4> """Stop making apps, or gimmicks, things that don't solve problems"""

I hate the false sheen of 'altruism' that seems to be pervading start-up (i can't think of a better word to describe it) circles. Solving problems. Changing the world. Fundamentally, if it's making the app-author money, it's solving a problem. If you don't like it, don't buy it, and if you're right that crap-apps are a problem, the market will sort it out.

<comment><USER5> I think "solving problems" is fine because for the most part that will be why people will use what you built. But I'm with you on "changing the world". When I hear about wannabe entrepreneurs who say they are out to change the world with their photo-sharing app ("we're gonna change the way people share and communicate with their close friends!"), in a way I'm impressed by the dedication and motivation, but wonder if they're just saying that to appear confident and motivated or if they're just delusional.

Someone was telling me that they were working on something that could become a fundamentally new mean of communication comparable to emails or SMSs. I later worked on said product and it was of course nowhere near the hype (though still cool).

<comment><USER4> It really does come across as either naive, delusional, or socially maladjusted, sometimes.

Ah and you're right on the 'solving problems' thing, it'd have to solve _somebody's_ problem to get any sales.

</comment></comment></comment><comment><USER5> Thinking that installing "Pimple Popper" is a good idea might be the root of your problem of home screen overcrowding.

Sure there are a lot of crap apps, the same way there are a lot of crap websites or crap restaurants, because there will always be some people who think they know better or enough to start something and some people, like the author, who will install them hoping for at least a minute of fun.

This pseudo-rant could be about "stop making clothes and decoration gadgets" if the author never cleaned her room and found her house very cluttered with crap she doesn't need.

</comment><comment><USER6> Reminds me of when I first got a modem and was able to connect to local BBSes and discovered shareware. Huge selection of things that sounded cool but only ended up running once or twice.

<comment><USER4> You'd be surprised at how much regular money some of the shittiest looking shareware made/makes people. And i guess that's the same case with the app store, there's a lot of crap that you and I will never need, but if we look for some niche thing, find it, pay for it, we have something we want and the author gets money...the system works! Sounds to me like the article writer needs to delete apps he doesn't like, pretty simple.

</comment></comment><comment><USER7> Just because there are apps doesn't mean you have to download them all. I made a point of removing all apps I hadn't used daily when I wiped it clean for iOS 5. I then installed the apps that were previously on my homescreen. Beyond that, I only installed the apps when I needed to use them. This meant that apps I'd never use again were never reinstalled. I have a folder of 4-5 games, a couple social networking/communication apps (facebook, google voice, and twitteriffic) in their own folder. A utilities folder for things like Dropbox and other similar apps. The total screen space? Not even two screens thanks to the folders.

For the most part, i never go beyond the first page. But the apps on page two are useful and i use them maybe once a week.

Again, just because you have a billion apps at your disposal doesn't mean you have to have them all installed. Remove them for christs sake or quit your bitching.</comment>