Ask HN: How to become ramen profitable - <AUTHOR>

  How do I properly research a life style web app niche that can become ramen profitable, enough for me to live on, until I figure out what next to do with my life.
  Getting a job is out of it as there are no much tech opportunities where I live, and I have pretty much lucked out severally on the freelancing side of things.
 <comment><USER2> Never been there, never done that, but it seems one of the things you could be doing is to put up the most interesting ideas you have on sites, just to gain the operational experience and to see what it takes to transfer an idea, any idea, into served bits.

Sidenote: as for "ramen profitable," for anyone in the situation where they're eating ramen or similar to survive, don't. Ramen's expensive and not great for you.

Buy dry black beans and vegetables. Soak the beans over night (rinse a few times during the process), then boil the beans the next day as you cut up carrots, peppers and onions. Saute the peppers, onions, garlic and similar, wash and cut up the carrots, saute with the rest just to have some place to put them. Other vegetables too if you like.

Pre-heat the oven to 300 F.

Rinse the beans once more, dump everything in a big oven pot (which you bought with the money you saved from not eating ramen and going under-nourished). Add about two cups of water, half cup of wine that can be drunk, or quarter cup of apple cider vinegar if you don't have wine. Or neither. Whatever spices you have.

Cook in oven about 3 to 4 hours. This will feed you for days. 16 oz black beans costs $1 here; the above bean stew costs in total $5 US or less. And there's actual nutrition in there, as opposed to ramen.

<comment><USER3> Assuming you have access to an oven. In my brief stay in Silicon Valley, I lived in an office in an industrial building with only a hot pot to cook with.

<comment><USER4> A great thing about the internet is it's decentralization. If you don't have tons of capital or income, you might consider moving to somewhere with a lower cost of living and making your app there. You can host it nearly anywhere with an internet connection until you hit a global scale, at which point you should be able to go to a more expensive area.

</comment></comment></comment><comment><USER5> Sounds like what most of us want. I would like to be at the point where if my job laid me off... I can still pay my mortgage and bills and not have to worry.

I would love to develop that saas web app that many people use and it is enough for me that I could even quit my day job. And sure enough, I'm working on it too.

The solution is this: Find a common problem people have. Solve it. Charge for it. Market it. Sell it. Prosper.

If the solution already exists and someone is charging for it, than find a way to make it better (and possibly cheaper though this is not always necessary).

How I usually do this is: I have a problem. I want to solve it. If I have a problem, it is more than likely that others have the same problem too. It is almost unlikely that NO ONE but me has that same problem.

For example, I wanted a place where I could easily create a web page on the Internet, set my own URL, change the way the page looks, and share it with others. The result was a free web app I developed called MyPost ( [https://mypost.io](https://mypost.io) ). I shared it on here and on Twitter a few times... and now the world is using it daily. I've seen it being used in places as far as Russia and the Philippines. I had gotten the idea from another web app that .. was basically lacking a lot of what I wanted to do. So I created my own.

As far as doing your own research... sign up for a website like: [http://oppsdaily.com/](http://oppsdaily.com/)

Don't tackle every problem, but seek to get in touch or turn it into your own. OR just use to get ideas about problems people have.

You can also navigate to websites like ProductHunt and get ideas... sure, products already exist, but there is nothing wrong with re-creating them, making them better, etc. After all.. not everyone drives a Chevy. There is Ford, Toyota, Audi, Acura, etc. Not everyone uses T-Mobile. There is Sprint, Verizon, AT&T, etc.

It is illegal to copy a product outright where it looks EXACTLY the same. It is not illegal to make a clone of another web app. Good luck. Always be working on something.. you'll get to where you want to be eventually.

</comment><comment><USER6> _Getting a job is out of it as there are no much tech opportunities where I live, and I have pretty much lucked out severally on the freelancing side of things._

Remote work is still popular and if you freelanced enough, don't you have some good references or success stories to tell?

I'm sorry i cannot answer your core question, but I would not discount the ability to continue working as a freelancer until you figure out what the right answer is.

</comment><comment><USER7> Local news / content with ads. Easy day-by-day work, big rewards in the long term.

<comment><USER8> i'm pretty sure most if not all the evidence is against you, seeing as the small news outlets are all dying and the large (non-tv based) news outlets are struggling to monetize.

<comment><USER7> Yep, but most of the small news outlets are dying because of a lot of one- person side projects, blogs, fanpages or communities getting each a small chunk of it ;)

</comment></comment></comment><comment><USER9> side gigs, but they are annoying when you got something better to work on</comment>


Google Analytics for developers - <AUTHOR> http://blog.arkency.com/2012/12/google-analytics-for-developers/ <comment><USER2> Here are two of my favorite tricks. You can do this just after you set your account ID:

            <!-- Async Tracking Code - http://code.google.com/intl/en-US/apis/analytics/docs/tracking/asyncTracking.html -->
    	<script type="text/javascript">
    	  var _gaq = _gaq || [];
    	  _gaq.push(['_setAccount', 'YOUR ANALYTICS ID GOES HERE']);
    	  _gaq.push(['_trackPageview']);

              //*******************
              // Trick #1: Track page load time in Google Analytics
              // (note: only works for HTML5 browsers)
              //*******************
    	  _gaq.push(['_trackPageLoadTime']);

    	  (function() {
    	    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    	    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    	    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    	  })();

              //*******************
              // Trick #2: Add a Javascript error handler so that it creates an event in Google Analytics
              // whenever there's a CLIENT-SIDE javascript error
              //*******************
    	  window.onerror = function(message, file, line) {
    	     var sFormattedMessage = '[' + file + ' (' + line + ')] ' + message;
    	     _gaq.push(['_trackEvent', 'Errors', 'Browser', sFormattedMessage, null, true]);
    	  }
    	</script>

Update: Included complete GA code to address any confusion on order and values available in stack.

<comment><USER3> According to this page [0], _trackPageLoadTime() is deprecated because site speed reporting is enabled automatically for all users.

Update: your 2nd trick is still relevant though

[0] [https://developers.google.com/analytics/devguides/collection...](https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiBasicConfiguration#_gat.GA_Tracker_._trackPageLoadTime)

<comment><USER2> Thank you! I was unaware of this change.

</comment></comment></comment><comment><USER4> I'm a big fan of the GAS (Google Analytics on Steroids) wrapper [1]. One of the coolest features is firing GA events from embedded YouTube videos [2] to track viewer retention [3].

[1] <https://github.com/cardinalpath/gas>

[2] <https://gist.github.com/2715896>

[3] <http://i.imgur.com/QILnG.png>

</comment><comment><USER5> I was expecting something different with the "for developers" title. Perhaps replicating some of the features of MixPanel or KissMetrics, which can track all kinds of interesting things for developers -- which features users of your app use most, in which order they use those features, whether this week's signups are more engaged than last week's signups, etc.

<comment><USER6> I actually use event tracking a lot to track exactly that. For our clients, we not only know which features they're using most but by tracking validation errors in Google Analytics we also know what parts of the app is giving users trouble.

Best part is, with Google Analytics you can see what people did before and after they ran into trouble and correct for the user experience.

<comment><USER7> This. We recently started doing this and the data it's provided has been awesome.

</comment></comment></comment><comment><USER8> Is anyone using GA to track mobile apps? The mobile SDKs shows a lot of potential until you start wondering about _offline_ usage, GA being a website tracker first. I couldn't find any final answers but from what I can see it might be a sore point: the SDK docs dodge the topic [1] and I see complaints, ie events can be batched for later but get the timestamps of when they were uploaded, instead of when they happened [2,3,4].

[1] [https://www.google.com/search?q=site:https://developers.goog...](https://www.google.com/search?q=site:https://developers.google.com/analytics/devguides/collection/ios/v2/%20offline)

[2] [http://stackoverflow.com/questions/6618719/how-does- google-a...](http://stackoverflow.com/questions/6618719/how-does-google- analytics-for-android-handle-offline-app-usage)

[3] [http://stackoverflow.com/questions/4484748/what-happens- with...](http://stackoverflow.com/questions/4484748/what-happens-with-iphone- google-analytics-calls-when-theres-no-internet-connect)

[4] [http://productforums.google.com/forum/#!msg/analytics/132Eet...](http://productforums.google.com/forum/#!msg/analytics/132Eet7kVFE/rM_kp4j8uIEJ)

<comment><USER9> We are using GA to track mobile apps. The local queuing and dispatch of hits to GA is covered here[1]. We've found it to be pretty reliable. You can also modify the dispatch time for testing, etc.

[1][https://developers.google.com/analytics/devguides/collection...](https://developers.google.com/analytics/devguides/collection/android/v2/dispatch)

<comment><USER8> _Note: Data must be dispatched and received by 4 a.m. of the following day, in the local timezone of each profile. Any data received later than that will not appear in reports._

Do your mobile apps require an Internet connection? From what I'm seeing I imagine that's a prerequisite to use GA. It's a deal breaker for me though, I can't intentionally throw away a slice of offline usage data (iPods, iPads, etc).

</comment></comment></comment><comment><USER10> > _"You probably use most of basic features of Google Analytics - you know how > to get information how many visits was made each day, you know your users > browser segmentation etc. But how can you measure effects of your blog > post?"_

That hits the nail on the head. Great article, although I wish you went into it a bit more in depth on how to do those actions, how to do other actions, and then maybe talk more about the benefits.

I love browsing Google Analytics but I will be the first to tell you that I don't really understand much from it, other than than the obvious things. I really wish I could figure out how to integrate it better with my web sites, like you quickly demoed. Again, I really suggest doing this same article with a bit more information. It would really help out those who are your target audience for this article. Thanks! :)

<comment><AUTHOR> Thanks, as I mentioned in other comment - I plan to digg deeper and share knowledge, so be patient :)

<comment><USER10> Oh, I must have missed that in the comments. I really appreciate that! Keep me posted, would love to see that article! Thanks! :)

</comment></comment></comment><comment><USER11> You can also do this on the server side. Here is a Python implementation: <https://github.com/kra3/py-ga-mob>

<comment><USER12> This is the Python port of my <http://code.google.com/p/php-ga/> project :)

</comment></comment><comment><USER13> The article is interesting, but gives some bad instructions on how to track outbound links and also probably how to track form submissions. Because of the asynchronous nature of communications back/forth from Google Analytics if you load a new page before an event is properly tracked, you won't be able to see it on the GA Dashboard. Bad intel is worse than no intel at all.

Here's what Google itself has to say on the matter: [http://support.Google.com/analytics/bin/answer.py?hl=en&...](http://support.Google.com/analytics/bin/answer.py?hl=en&answer=1136920)

Here's how to correct one code example from the blog post:

      //this function is OK, but probably an unnecessary abstraction of a one-liner
      function trackEvent(category, action, label) {
        window._gaq.push(['_trackEvent', category, action, label])
      }

      //this event handler will not track some non-negligible percentage of events
      $("article a").click(function(e) {
        var element = $(this)
        var label = element.attr("href")
        trackEvent("Outbound link", "Click", label)
      });

      //corrected outbound link event handler which gives GA 100 ms to register
      //the event.  higher than 100 risks UX degradation, lower increases the %
      //of untracked events.  100 ms is happy medium
      $("article a").click(function(e) {
        e.preventDefault();  //stay on the page for now
        var element = $(this)
        var label = element.attr("href")
        trackEvent("Outbound link", "Click", label)
        //leave the page after a short delay
        window.setTimeout("window.location.href='" + label + "'", 100);
      });

<comment><USER14> I'm a bit suspicous of that method... will it still work for people right clicking and opening in new window, or shift-clicking, or middle-clicking, or right clicking and copying the URL?

</comment></comment><comment><USER6> If you want to track if people are reading your blog, you can use the onscroll javascript event that fires events into Google Analytics. (eg: [http://cutroni.com/blog/2012/02/21/advanced-content- tracking...](http://cutroni.com/blog/2012/02/21/advanced-content-tracking- with-google-analytics-part-1/))

By looking at time to scroll, time to the end of the blog post, and comparing that to the number of unique page views per visit, you can tell if your content is engaging.

</comment><comment><USER15> Those are some good basics.

Tracking user actions can be very useful: I use it on movieterminals.com to see everything that gets typed into each console. The theory being that (one day?) I'll use that to enhance the scripts to work how people expect.

Tracking an event per page 404 or 500 can also be very helpful. If you aren't already using something more robust to track errors you could even setup alerts to watch for those events and contact you.

Goals are good, although funnels are even better.

Finally: if you can afford it I've found that Clicky offers many great advantages over google analytics. More helpful default reports, a better realtime view, etc.

</comment><comment><USER9> At the risk of going off topic, a question about sampling and sampling rates. If I set sampling to 1%, will the visitor totals in the Google Analytics dashboards reflect 1% of my true values or do they compensate/extrapolate out to 100% based on the sampling rate?

<comment><USER6> No.

There are two things here. Sampling rate for calculating page timing and using sampled data when generating reports. Confusingly, they are two different things with the same word "sample."

Sampling rate only affects calculating page timing because it's client side and slows down the client. ([http://support.google.com/analytics/bin/answer.py?hl=en&...](http://support.google.com/analytics/bin/answer.py?hl=en&answer=1205784))

Google Analytics will collect all the unfiltered data for the web property. ([http://support.google.com/analytics/bin/answer.py?hl=en&...](http://support.google.com/analytics/bin/answer.py?hl=en&answer=2637192))

However, to speed up ad-hoc querying, like when you create a custom report, it will limit the amount of data it will fetch to generate that report in order to make the user interface faster.

You can increase/decrease that using the slider. YOu will only see the slider after something like 250k unique pageviews.

Google Analytics Premium increases the number. If you really want to get a better sense of page timing, you should look both at the client side timing and the server side timing together. All you can really control is stuff going out. You can't help it if the user is running a netbook with 512 megs of RAM :)

</comment></comment><comment><USER16> If you want to extract more data from your site to Google Analytics I recommend GAS (Google Analytics on Steroids).

<https://github.com/CardinalPath/gas>

It adds these events and even more to your site.

(I'm the main developer by the way.)

<comment><USER17> This is really impressive.

</comment></comment><comment><USER18> How can you see individual user sessions using Google Analytics? In other words, how can I see, for an individual visitor, their landing page, sequence of subsequent page views, and finally their exit page?

<comment><USER6> Generally you should be paying attention to trends, not individual users. Either way:

Landing pages: Go to Content > Site Content > Landing Pages

What you probably want is to create an advanced segment: Landing page = something. You can use regex or an exact match term.

Then go to audience > visitor flow, select the advanced segment you used and you can visually see how users navigated your site.

Remember: Keep in mind that a user can technically visit your site using browser tabs. That would give you a report where people went from page A to page B even if there isn't a link on page A going to page B.

Hence: Use GA to gain insight into trends.

</comment></comment><comment><USER19> Perhaps I'm confused but what benefit do you get from using event tracking for an outbound click, and lastly what does ET have to do with real time?

Thanks

<comment><USER20> I use event tracking on my outbound clicks all the time. My side project is a vertical niche search engine, so I like to know when, where and how people are leaving the site (since that is the point of the app afterall).

I have some of it tracked with internal code, but for a lot of things that don't need rigorous analysis/tracking, firing an outbound click event to GA is sufficient.</comment></comment>


Simple apply/filter/reduce package in Go - <AUTHOR> https://github.com/robpike/filter <comment><USER2> I don't get why someone would rather write a for loop than use declarative data syntax. If I want to get the names of all administrators doing `users.Where(user => user.isAdmin()).Select(user => user.Name)` is so much nicer than using a for loop - or maybe he's suggesting we start writing FOR loops instead of SQL for our databases too?

<comment><USER3> In most languages, the for loop ends up being faster. Sometimes noticeably so. Me, I generally start with declarative syntax, but the profiler frequently tells me to go back and change it.

Being a systems programmer, wonder if it's easier for him to just use the for loop as a default. Performance demands are always high in systems programming (because there'll be a whole stack of additional software standing on top of your code and depending on it for performance), so one might end up needing to use for loops often enough that it's easier to just use them all the time for consistency's sake.

<comment><USER4> > In most languages, the for loop ends up being faster. Sometimes noticeably > so. Me, I generally start with declarative syntax, but the profiler > frequently tells me to go back and change it.

The optimization techniques to make higher-order functions compile down into the same code as a for loop are well-known. All you have to do is inline, constant propagate, and maybe SROA. Every optimizing compiler I know of, even JavaScript, has no problem doing this.

<comment><USER5> FWIW, PyPy has a hard time with this since Python's iterators are really heavyweight.

</comment></comment></comment></comment><comment><USER6> This isn't "reduce" as I know it.

It requires the user function return the same data type as contained by the slice. Furthermore, for a slice of size 1, it simply returns that single element.

      case 1:
      	return in.Index(0)

      ...

      if !goodFunc(fn, elemType, elemType, elemType) { ... panic }

So I could not, for example, reduce a slice of numbers into a struct of (min,max,mean).

<comment><USER7> The "official" way to do this is map, then reduce. The way reduce is meant to be used exactly matches this implementation.

Consider that you have a large quantity of numbers that you want to get the min, max, mean for. If you write something like the following:

        function minMaxMean(list) {
          return list.reduce(function(lastState, n) {
            var min = lastState.min,
                max = lastState.max,
                sum = lastState.sum,
                count = lastState.count;
            if(n < min) min = n;
            if(n > max) max = n;
            sum += n;
            count += 1;
            return {
              min: min,
              max: max,
              sum: sum,
              count: count
            }
          }, {min: Infinity, max: -Infinity, sum: 0, count: 0});
        }

...then you're assuming that the reduce function will run _once_ , over a _single_ list of numbers, _in order_ from left to right. However, if you implement it as the following:

        function minMaxMean(list) {
          return list.map(function(n){
            return {
              min: n,
              max: n,
              sum: n,
              count: 1
            }
          }).reduce(function(a, b) {
            return {
              min: (a.min < b.min ? a.min : b.min),
              max: (a.max > b.max ? a.max : b.max),
              sum: a.sum + b.sum,
              count: a.count + b.count
            }
          });
        }

... _then_ you can distribute this out across multiple threads/machines/etc, update it when new data comes in, reduce in any order.

<comment><USER8> There are many cases of elegantly using reduce() with a different return type than the list's item type.

Here is a JS function which computes the combined length of all strings in a list:

        stringsLen = (strings) => strings.reduce((acc, item) => acc += item.length, 0);

        stringsLen(['hello', 'world'])  //> 10

Sure, you can argue that this works, but it misses the point.

        stringsLen = (strings) => strings.map(s => s.length).reduce((acc, n) => acc += n, 0);

         stringsLen(['hello', 'world'])

</comment></comment></comment><comment><USER9> With so many "interface{}"s Go looks more like weakly-typed.

"Apply takes a slice of type []T and a function of type func(T) T"

And after that golang.org docs are saying "We don't feel an urgency for them" about generics"...

<comment><USER10> He does say "don't do this" and that's exactly one of the reasons why... because you lose compile-time type safety (it's still type safe at runtime, though). All the reflection is bound to be slow, as well.

<comment><USER9> My point is not to say "look, this code is dirty". My point is "look, he use generics in comments, __in his mind __, so it 's natural thing and obviously should exist in Go". Only this.

</comment></comment></comment><comment><USER11> To see the docs, use godoc.org, copy/paste the full URL for the repo into the search, and you get this[0]. Nicer way to see the API for the package.

[0] [http://godoc.org/robpike.io/filter](http://godoc.org/robpike.io/filter)

</comment><comment><USER12> But you can't write generic functions in Go!

Oh, wait. He just did.

As a caveat to my exasperated sarcasm, I do realize he's using reflection to identify and type the data at runtime, as opposed to compile time as with C++ templating, but this is kind of generalization is still quite useful when writing general purpose library code.

Personally, I'd not be inclined to use this either, the number of times I've actually had to write generic code using reflect in my time writing Go could be counted with one finger.

I do appreciate that it's there, however, since it is what allows the JSON library to do its magic.

<comment><USER13> This only handles functions of type a -> a -> a ([https://github.com/robpike/filter/blob/master/reduce.go](https://github.com/robpike/filter/blob/master/reduce.go)), whereas a generic reduce takes functions of type a -> a -> b. So this is certainly not proof that you can write generics in go. See also pmahoney's comment in this thread: [https://news.ycombinator.com/item?id=9315721](https://news.ycombinator.com/item?id=9315721).

<comment><USER14> Minor nitpick: a generic reduce should take functions of type a -> b -> a, where a is the type of the reduced values, and b is the type of the elements in the sequence to be reduced.

<comment><USER13> Ah, of course.</comment></comment></comment></comment>


Ramen noodles are apparently responsible for one in five childhood scald burns - <AUTHOR> https://6abc.com/health/warning-about-instant-soups-like-ramen-/4611012/ <comment><USER2> Disposable microwavable meals in cheap foam with scalding water have no place in a home when you can simply use a cooking pot to boil water and use the ramen that isn't inside of a foam bowl. So ramen itself isn't to blame so much as a unsafe convenience packaging that people evidently give to their kids while forgetting the laws of thermodynamics.

</comment><comment><USER3> Not to be confused with retinal burns caused by Raman amplifiers.

<comment><USER4> I find it hard to believe this is a confusion people are making.

Im not even sure I believe you confused the two

<comment><USER3> I'm not serious. The original post title had it spelled "Raman".</comment></comment></comment>


To the US wireless industry:  stop treating your customers as prisoners - <AUTHOR> http://communities-dominate.blogs.com/brands/2010/06/us-vs-them-american-wireless-industry-come-meet-me-at-camera-3.html

<comment><USER2> This article has a great set of examples.

I have a phone that is many years old. I have gone to web sites for U.S. carriers to try to find a replacement, and I often _leave the entire site without finding a single worthwhile offering_. If I didn't know better, I'd guess that they were trying _not_ to sell any of their products.

Even if I forget the phones, and just look at the plans, all I see is overpriced garbage. While I could afford $99/month, I see no reason to pay that to keep a stupid phone working; $30/month is more than enough.

Not that you actually pay whatever they say. Here is a list of additional fees, verbatim, from my last bill:

      - "Federal - Univ Serv Assess Non-LD" $1.15
      - "State - Univ Serv Assessment"      $0.80
      - "State - Margin Fee Reimbursement"  $0.34
      - "Regulatory Charge"                 $0.40
      - "Administrative Charge"             $0.99.

In other words, $3.68 per month, or $44 more per year, of absolute crap that is not in the advertised cost of service. And that's not even counting things like charging for incoming text messages (which they do).

I couldn't agree with this article more; the wireless industry has lost its mind, and it needs to be fixed.</comment>


See what your Twitter friends listen to on Spotify with SpottMusic.com - <AUTHOR> http://www.spottmusic.com

<comment><AUTHOR> This app (Spottmusic.com aka Spot Twitter Music) builds a profile for you and the ones you follow with all music shared on twitter from Spotify.</comment>


Deep Learning Summer School Video Lectures (2015) - <AUTHOR> http://videolectures.net/deeplearning2015_montreal/ <comment><AUTHOR> This series has a lot of good stuff. If you want to clear the hump between "someone who knows what neural networks are" and "someone who can use neural nets in practice", there are introductions to the basic theory and foundational ideas.

If you already use neural nets and want to get better with them, Hugo Larochelle and Adam Coates have worthwhile videos. Larochelle's lecture describes the various sorts of optimization techniques you can try out, while Coates' goes into how to analyze training efficiency in terms of the model you've chosen and the hardware you have available.

Finally, there's some really neat stuff that's perhaps a bit more "cutting edge"; I particularly enjoyed Goodfellow's talk about adversarial networks.</comment>


Ask HN: Unix philosophy as a way to live - <AUTHOR> Does this philosophy influence your life style, your work and relationships? Quote: The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. <comment><USER2> The Unix _practice_ is anything but minimalist or modular, it's crazy, complex and very crufty (notice it's talking about 38400 baud!): [http://curiousthing.org/sigttin-sigttou-deep-dive- linux](http://curiousthing.org/sigttin-sigttou-deep-dive-linux)

</comment><comment><USER3> Hell no. Unix philosophy is an empty naive dream.

It was good for its time but right now it can only seduce a young inexperienced student with basic examples that fall apart quickly.

Oh look we can read a file with "cat" then we pipe it into "wc -l" to count the lines just like this "cat file.txt | wc -l" WOW!

Isn't that a genius simple philosophy of "do one thing and do it well?".

It is, but only on a very shallow level.

It is a practice that actively encourages throwing away information. Mangling it up in ad-hoc data structures then relying on more ad-hoc arbitrary text parsing to extract the information.

Then you end up with "cat | awk | sed | tr | perl | kill-me-now --force | bullshit --verbose | xargs crap 2>&1".

It creates problems then wants you to applaud it for solving them with crufty tools?

No thank you.

It was nice for hobbyists sitting behind slow terminals saving keystrokes in the 80s.

It's no longer appropriate today.

A huge percentage of the problems that we deal with today are "artificial" because we have decided not to embrace sane universal methods of data transport/transform at a core level.

So you just have to shovel things back and forth from one subsystem to another.

Today I'd be impressed by a software system/philosophy where each component is in perfect harmony with the others.

An operating system whose state, packages and configuration is stored and managed via a proper database.

Programs that communicate with each other in structured form so every piece of input and output that you need is right there for you to consume.

I could go on but that's enough for now. Phew.

<comment><USER4> Alan Perlis, Epigram #34.</comment></comment>


Ready or not, software is eating the government contracting world - <AUTHOR> http://ctovision.com/2013/03/ready-or-not-software-is-eating-the-government-contracting-world/ <comment><AUTHOR> I would appreciate any evidence for or against this thesis. Do you believe software is going to eat the government contracting world?

<comment><USER2> I think it's going to happen and actually launched a startup[1] in this space after seeing just how inefficiently things were being done. Cloud security polices probably need to mature a little in the defense space first though, even just an open API standard to access government owned storage would probably do it.

[1] <http://www.requirementweaver.com/></comment></comment>


RVM and Bundler in Five Seconds - <AUTHOR> http://ginzametrics.com/rvm-bundler-in-five-seconds.html

<comment><USER2> Are people using RVM in production? (like on a VPS) If so, how is that setup?

<comment><USER3> RVM can generate wrappers for Passenger. So you use a separate gemset for each app on the server, generate wrappers for each gemset, and then in your web server config you pass the right wrapper to each Passenger directive. You can't use more than one Ruby with Passenger, but you can use as many gemsets as you want.

You can probably do similar things with unicorn, mongrel, etc, but I'm not sure how those work :)

</comment></comment><comment><USER4> That took me more than five seconds. Maybe I'm a slow reader.

</comment><comment><USER3> Bundler uses Gemfile, not .gemfile.</comment>


The Algorithms Behind Moana's Animated Ocean - <AUTHOR> https://www.theatlantic.com/technology/archive/2017/05/the-algorithms-behind-moanas-gorgeously-animated-pacific-ocean/528645/?single_page=true <comment><USER2> Very nice. In the 1990s, when I was doing Softimage physics plug-ins, I met the guy who did the first good water surface shader. The first application was _Waterworld_ , which was such an awful movie the reputation rubbed off on his plug-in. Then he sold some to _Titanic_ , and the business improved.

(Add-ons for Softimage were a crappy business. "400 people chasing $4M in revenue", one Softimage rep told me.)

<comment><USER3> I loved Waterworld!!

<comment><USER4> At least it wasn't the Postman, that's the best thing I can say.

<comment><USER5> I loved Postman!!

<comment><USER6> I liked that part where he only rang twice.

</comment></comment></comment></comment></comment><comment><USER7> """ "You know it's hard for me to go to the beach nowadays," she said. "When I'm there, I'm looking at how foam dissipates, at how the water recedes back into the ocean, the cadence and the rhythm of the little breaks. I'm looking at how the beach itself is modeled to create the reef breaks, how the light affects the water, the clarity of the water itself, the colors. There's just a million things going through my head." """

Yup. Once a graphics nerd ... always a graphics nerd. This is me looking at everything.

<comment><USER8> Ah yes, the beauty of a flower.

</comment></comment><comment><USER9> CNET did an in depth video last year that I think does a better job without the fluff.

[https://www.youtube.com/watch?v=S-HG8IA-2TI](https://www.youtube.com/watch?v=S-HG8IA-2TI)

</comment><comment><USER10> I didn't see any particular algorithms in this paper, I felt kinda let down.

</comment><comment><USER11> The water on Moana was cool, but the hair was _way_ cooler!

</comment><comment><USER12> I wonder how soon we'll have animated movies that seem entirely realistic, including the actors.

(I know, not a goal of this movie).

<comment><USER13> Something I have wondered often.

Why animate a movie, if you all your characters are human beings? I don't get it. Isn't the whole point of animation to bring creatures and stuff into life in fantastic ways...

Think Tom & Jerry. You cannot do that using a conventional movie (unless you have Jim carry at your disposal, of course)

It feels so pointless when animated movies try to get accurate portrayal of human attributes.

That is not at all the point of being an animation!

<comment><USER14> Cheaper talent, risk-free stunts, don't have to worry as much about an actor getting seriously ill or dying during filming (voice acting can be time- compressed, and you can replace someone much more easily). CGI actors don't have bad days on the set.

I'm sure there are more reasons. Ultimately I think it gives a director much more control.

<comment><USER12> Also, CGI actors don't age, and they don't need contracts. And they can be copyrighted.

<comment><USER12> Another thing is: they can be "optimized", like, god forbid, given larger eyes, or made unnaturally thin.

</comment></comment></comment></comment></comment><comment><USER15> Along similar lines there was a fascinating video about modelling different types of snow for Frozen which goes into some detail about the Material Point Method (MPM) algorithms:

[https://www.youtube.com/watch?v=O0kyDKu8K-k](https://www.youtube.com/watch?v=O0kyDKu8K-k)</comment>


Firefox supports supports, gets my support - <AUTHOR> http://www.broken-links.com/2012/08/06/firefox-supports-supports-gets-my-support/ <comment><USER2> Is there a discussion somewhere that clearly articulates the merits of the increasing complexity of CSS? I realize there's some maturation taking place, but there seems to be a giddy, almost drunken, exuberance for expanding a language beyond logical context. (e.g., Frodo carrying a BFG?) At what point does a new container become reasonable? Something such as "SOS" (Style Objects Sheet)?

I'm not confident if that made sense, but basically I'm concerned that we're (re)creating a personally oft-encountered tension where the individuals that best understand a complex syntax are the least able to create anything aesthetically-pleasing, let alone usable, from it...

<comment><USER3> I'm concerned about what level feature detections occurs.

For example, it makes sense to have a native @support CSS rule checking for things like border-box support.

But what about detecting features that are separate from rendering? Should @support check for geolocation?

If not, where does that test live - javascript (modernizr, yepnope)? Is separating tests based on type of feature a good thing? If so, how should the interactions between display and feature be intelligently managed? If not, is CSS, Javascript, or some other layer the appropriate place to consolidate tests?

Testing for non-rendering concerns in CSS doesn't make any sense to me, and I'm afraid our future will be HTML markup full of classes namespaced by concern, managed by javascript & feature detection. It's an evolution, but hardly elegant. (class="js-toggle function-geolocation structure-list typography-chrome")

<comment><AUTHOR> >>But what about detecting features that are separate from rendering? Should @support check for geolocation?

>>The '@supports' rule is a conditional group rule whose condition tests whether the user agent supports CSS property:value pairs.

Source - <http://dev.w3.org/csswg/css3-conditional/#at-supports>

So, no. @supports will check for css rules, and nothing else.

That would just be silly.

<comment><USER3> Agreed :).

My point is only that the alternatives aren't all that less silly, at least from an actually-building-and-maintaining perspective.

</comment></comment></comment></comment><comment><USER4> Is it not ironic, though, that we're at a point that any browser which supports @supports would also support any property you'd test for support for?

<comment><USER5> Now yes. But what about in 5 years time? You'll be able to use @supports to find out what a browser supports

</comment></comment><comment><USER6> Good step in the right direction. Now we need the same thing for JavaScript.

<comment><USER7> JavaScript already has this, no? Just check to see if a function is typeof undefined.

<comment><USER6> I meant to test of HTML5/CSS features are supported through JavaScript. For example, if I want to know if the browser supports <input type="number" /> it's not as easy as it should be.

<comment><USER8> Fair enough. Though that's exactly what <http://modernizr.com/> provides, no?

I realize nobody likes adding extra JS libraries, but if your only trying to access these properties from JS to begin with it doesn't seem like that big a deal.

<comment><USER9> It does, but since browsers have no defined API for this Modernizr deals with quite a few false positives. Putting the onus on browsers to accurately describe what features are present is good.

Plus it's always a good thing to kill off javascript libraries; we don't want to always keep sending JS down the wire when the platform should have this stuff by default.

</comment></comment></comment></comment></comment><comment><USER10> I rather see this:

        @supports (vendor-prefix)

then apply vendor prefixes to all css rules not understood by the browser.

End of nightmare.

<comment><USER11> >> to all css rules not understood by the browser

I don't get it. It seems like you're saying, "if it supports the -moz prefix, it's FireFox, therefore I know that it doesn't support X and needs -mox-X."

But that requires you to separately know that the browser doesn't support X - the very thing this is trying to solve.

It's much simpler to say "if it supports X, use it." If the browser releases a new version that supports X, you don't have to do anything for those users to get the benefit.

Did I misunderstand you?

<comment><USER3> The progressive enhancement approach you describe does not address cases where an alternative should be provided for less capable browsers.

The closest analog in existing tools might be YepNope - "a conditional loader for your polyfills." <http://yepnopejs.com/>

There's an argument to be made that this is unnecessarily reducing maintainability and increasing development complexity by building redundant functionality to account for edge cases, but there are scenarios where it's appropriate. Building modern web apps with a support gradient more inclusive than latest Webkit/Gecko will appreciate the tools.

</comment></comment></comment><comment><USER12> Just me, or an issue with the styling?

<http://i.imgur.com/pEzve.png>

<comment><USER13> I'm the site owner; never seen that before. Which browser/OS are you on?

<comment><USER14> I'm not him/her, but I've experienced this on Linux sometimes. It's not something you can fix as the site owner, I think.

<comment><USER15> If I reload the page, it always fixes itself for me.</comment></comment></comment></comment>


Renaissance: the iOS app maker's conference. January 21-23 in SF. - <AUTHOR> http://renaissance.io Bill Dudney and I are organizing a conference for iOS app makers in San Francisco next month. It's unique because it's not being run by a platform company, a media company with a network of sponsors to satisfy, or a professional conference organizer. We're just two app developers with some ideas about how to make an event that's more productive for app developers like ourselves.<p>Check out our speakers, and I'm sure you'd find that the people who are signed up so far are just as impressive. Join us? <comment><AUTHOR> Bill Dudney and I are organizing a conference for iOS app makers in San Francisco next month. It's unique because it's not being run by a platform company, a media company with a network of sponsors to satisfy, or a professional conference organizer. We're just two app developers with some ideas about how to make an event that's more productive for app developers like ourselves. Check out our speakers, and I'm sure you'd find that the people who are signed up so far are just as impressive. Join us?

</comment><comment><USER2> Uniqueness blurb proposal: A community-focused conference organized and conceived by two app developers, about the app development movement as a new Renaissance.

</comment><comment><USER3> Much needed conference for iOS app devs.

</comment><comment><USER4> Sounds like a good idea.</comment>


How Subarus Came to Be Seen as Cars for Lesbians - <AUTHOR> http://www.theatlantic.com/business/archive/2016/06/how-subarus-came-to-be-seen-as-cars-for-lesbians/488042/?single_page=true <comment><USER2> What? I realize that cars carry connotations for people but I am certainly not aware of them. How are other people?

I remember trying to buy a second car (my first car was a Subaru, and I loved it!).

Mazda Miata looks nice. (No! That's midlife crisis). Toyota Carolla? (No! It says you're a family man)

And so on. Finally, I just went on the basis of which car was in the shop the least amount of time and had high safety ratings.

How do people pick up on connotations like these ones? I watch all the same movies, and shows.

<comment><USER3> > How do people pick up on connotations like these ones?

By stereotyping the people that drive them. Most cars target a certain demographic and sometimes those demographics are easy to pick out.

I bet you know some of these, I bet you have an image in your head of the typical driver of some of these cars:

Jeep Wrangler

Toyota Prius

Chevrolet Corvette

BMW 3-Series

Ford F-150

And whether or not you'd consider owning one of these vehicles would have a lot to do with whether or not you identify with the group you associate with it.

<comment><USER2> Now that you mention it, I do for Ford Trucks from those ads, but then when I see people on the road driving them, they don't stick.

As for the others, you got me. A Jeep Wrangler? Prius? (Environment?). BMW? Corvette (80s?).

<comment><USER4> Corvette = "successful plumber" or "poor man's supercar" (i.e. people who climbed the economic ladder over their lifetime and

Jeep Wrangler = "I'm not too outdoorsy but I like to think I am" (doesn't apply to the third owner onward

Prius = college professors and people who suck at driving, people who want the world to know how environmentally friendly they are

Subaru wagon (new)= lesbos and people who are outdoorsy

Subaru wagon (old) = poor white trash

Land Rover = trophy wife

SUV/Minivan/Crossover (new) = soccer mom

Acura/Lexus = old money

Volvo (old) = hipster

Single cab pickups = poor young men and old white guys

<comment><USER2> I love my old Subaru wagon. Okay, I hesitate to ask, what is an Audi?

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


Gilbert Garcin - <AUTHOR> https://en.wikipedia.org/wiki/Gilbert_Garcin <comment><AUTHOR> I am posting this because I have just discovered him in the news on the occasion, sadly, of his death. It is inspiring that someone could take up photography at 65 years old in order not to get bored upon retiring, and then to become an internationally recognised photographer.

[https://www.pinterest.co.uk/rpitskhelauri/gilbert- garcin/](https://www.pinterest.co.uk/rpitskhelauri/gilbert-garcin/)</comment>


Handling the notch on iPhone X, iPhone XS, XR and XS Max on your webpages - <AUTHOR> https://bubblin.io/blog/notch <comment><USER2> Some informative pointers I hadn't seen elsewhere, about adapting layout to accommodate the notch. Note that the CSS snippets seem to be in Sass (using nested selectors).

Personally, that notch just makes me sad, and I probably won't bother thinking about it unless otherwise specified by client request.</comment>


BarleyDB: An alternative approach to Java ORM - <AUTHOR> https://github.com/scottysinclair/barleydb <comment><USER2> Glad to see folks critique traditional ORM tropes and putting forward some innovation in the area.

On that note, as a highly subjective opinion, I have really soured on the philosophy that guides many popular ORMs.

Relational data does not map to OOP well, and I think the point is not to actually force that. Instead, I think there are ways to _embrace_ the relational model, because it is actually quite apt for many business cases.

For those further interested in the general topic of alternate ORM approaches, here is a link to a proof of concept from a while back, when I was exploring how to express column-driven data in Java code: [https://github.com/fxrm/fxrm- store-java](https://github.com/fxrm/fxrm-store-java)

This is not to hijack attention from the OP idea, of course; just noting that this is still a fruitful area of improvement in software.

<comment><AUTHOR> Yes, I agree with you about relational data, BarleyDB holds the relational data in memory and then provides Pojo proxies to it. Combining an active record approach with a domain model Pojo approach if you like.

This is why it is fully possible to use BarleyDB without compiling any classes, you can just use the in memory model instead.

</comment></comment><comment><USER3> Any advantage compare to JOOQ[0](Apache license 2).

One main diff is this lib license under (LGPL) which might prohibited to use in certain app.

I think JOOQ is quite powerful and more mature.

[0]: [http://www.jooq.org/](http://www.jooq.org/)

<comment><AUTHOR> Well JOOQ certainly influnced the query DSL API which we use. JOOQ is certainly very mature and can express much more complex SQL statements.

JOOQs API is more database centric and I was looking for a framework with a similar query DSL but which produced more Pojo like objects.

One of the most interesting things about BarleyDB is that it can be used (if so desired) without any compilation. You can import a schema from an XML file and the use the meta model to query and to save data.

BarleyDB also provides: optimistic locking, query batching, access-control checks - via plugin, auditing - via plugin, insert / update statement reordering for increased batch sizes.

Scott

<comment><USER4> > You can import a schema from an XML file and the use the meta model to query > and to save data.

You can do the same with jOOQ, just in case.

> optimistic locking, query batching,

Also supported in jOOQ

> access-control checks - via plugin, auditing - via plugin

Also possible in jOOQ, although, perhaps not out of the box. How does this work in BarleyDB?

> insert / update statement reordering for increased batch sizes.

A quick win that appears to be a very bad idea in general, e.g. in the presence of triggers.

</comment></comment></comment><comment><USER5> You might also consider my project: [https://github.com/dieselpoint/norm](https://github.com/dieselpoint/norm)

Not exactly the same thing, but serves a similar purpose.

<comment><USER6> This looks really nice. Thanks for the link.</comment></comment>


"One day, a computer will fit on a desk" - <AUTHOR> https://www.youtube.com/watch?v=sTdWQAKzESA <comment><USER2> Funny how he suggests that the computer might not be as powerful as mainframes of the time. In every other respect, Clark was 100% on-target.</comment>


Intel vs. Nvidia: Which Pays Software Engineers More? - <AUTHOR> https://insights.dice.com/2019/10/04/intel-nvidia-pays-software-engineers/ <comment><USER2> There is no distinction here if a person is a full time employee or contract worker. Those wages, benefits and perks will be greatly impacted when you compare the two types of workers.

The "grade 8" spoken about however would assume they are only talking about full time employees.</comment>


Free Services for Websites - <AUTHOR> https://github.com/Constructor-io/free-services-for-websites

<comment><USER2> This is a list of free services mainly geared for start-ups. A lot of companies cut start-ups some slack and have a free plan for them, and we thought it would be useful to people to compile that in one place.

</comment><comment><USER3> No phabricator?

<comment><USER2> Phabricator's great, but the intention of the list is free _hosted_ services, and phabricator you have to host yourself.

</comment></comment><comment><USER4> great list</comment>


A voice separation model that distinguishes multiple speakers simultaneously - <AUTHOR> https://ai.facebook.com/blog/a-new-state-of-the-art-voice-separation-model-that-distinguishes-multiple-speakers-simultaneously <comment><USER2> This is known as Blind Source Separation [1], and it's been a field of study for decades. The specific problem here seems to be the "cocktail party problem", where you want to isolate a single speaker (or in this case 5?) in a room full of conversations.

When I was in grad school, I knew an EE research group in the building next to mine working on this problem using ICA (independent components analysis) -- this was ca 2004, before the resurgence of deep learning. Even with ICA useful results could be obtained.

The results of the FB work [2] with RNNs are pretty impressive (audio samples).

[1] [https://en.wikipedia.org/wiki/Signal_separation](https://en.wikipedia.org/wiki/Signal_separation)

[2] [https://enk100.github.io/speaker_separation/](https://enk100.github.io/speaker_separation/)

<comment><USER3> Are the audio embeds on that second site working for you? Can't get most of them to play.

<comment><USER2> Yep, they're working for me.

</comment></comment></comment><comment><USER4> I feel that they are underplaying just how big a deal this would be in hearing aids. It's not just a case of "slightly better noice filtering" for some it is the difference between being able to go to social events or not. For a large group of people using hearing aids the cocktail party effect means they can't hear anything at all in social settings, so they avoid them completely because of the negative effects that come from everyone assuming your able to follow group conversations when your in fact sitting in your own little bubble only able to pick up what's going on when someone semi-yells directly at you.

In any case the box you'd be selling them this product in wouldn't say "better sound" it would say: "Get back your ability to attend and enjoy parties, enjoy group conversations and socialize unencumbered". That's a huge quality of life improvement.

You still have the issue of how to figure out which voices to boost and which to reduce, but I'd expect that to be simpler issue of using multiple receivers and directional detection.

</comment><comment><USER5> Facebook's work on separating multiple sources in an audio stream is fundamentally different from prior ICA-based methods of Blind Source Separation [0] in ways that are both interesting and seem to be part of a broader trend at FB Research.

ICA-based BSS requires at least n microphones to separate n sources of sound. This work does the separation with one microphone.

What makes this more broadly interesting is FB Research has separately developed the capability to reconstruct full 3D models from single image photos[1].

Both of these reconstruct-from-single-sensor problems are MUCH harder than their associated reconstruct-from-multiple-sensors variants (ICA in the case of audio, stereo separation or photogrammetry in the case of video) so they aren't efforts one undertakes casually.

The obvious motivation for this single-sensor approach is augmenting existing video and audio clips, most of which are single camera, single microphone (or very closely spaced stereo microphones with minimal separation), and all of which people have already uploaded massive numbers to Facebook.

The more interesting motivation could be that FB (Oculus) is widely believed to be developing next generation AR or VR glasses. Most of the discussion around AR/VR headsets focuses on the displays, but if you wanted to keep both your physical size and hardware parts cost to an absolute minimum, one of the things you'd want to minimize is your sensor count.

FB Research seems to have a strong interest in things that reduce the number of sensors required to provide high grade AR/VR experiences and that make it possible to explore pre-existing conventional media in spatialized 3D contexts.

[0] [https://en.m.wikipedia.org/wiki/Independent_component_analys...](https://en.m.wikipedia.org/wiki/Independent_component_analysis)

[1] [https://ai.facebook.com/blog/facebook-research-at- cvpr-2020/](https://ai.facebook.com/blog/facebook-research-at-cvpr-2020/)

</comment><comment><USER6> This is a really interesting problem to work on. A couple obvious points:

1\. This is a task that humans must do _all the time_. It's very important in all kinds of different circumstances.

2\. This is also a task that humans find very difficult. It's not like recognizing someone by their face, where humans do it effortlessly but struggle to describe how. We frequently fail at this.

Combining (1) and (2), and the assumption that this task has been just as important historically as it still is now, we might conclude that this is a _really hard problem_ and AI is unlikely to reach the level of performance we might hope for.

And if AI quickly jumps to superhuman levels of performance, that too would have many interesting implications.

<comment><USER7> I have some skepticism. Humans can't process multiple audio streams simultaneously. Recognizing faces is a poor analogue to compare with, it would be more similar to photostitching several faces all superimposed on top of each other and asking a human to identify each component face, which humans are also terrible at.

But we also rarely need realtime solutions for this. Casually tracking gross features from a mixed audio source, like a big crowd, is easy, but we almost never need to be actively listening and disambiguating between several deliberate audio signals all at once. Human communication just isn't setup that way, though I'm sure there are niche exceptions.

Note here that video conferencing is emphatically not an example of an exception. You still need to have synchronous order of speaking, not because technology lacks the ability to separate the streams for the listener, but because the listener cannot pay attention to more than one stream at a time.

To me this technology seems almost exclusively useful for surveillance and offline audio analysis or audio synthesis / mixing.

Still possibly valuable, but definitely not in any fundamental way that would significantly change or augment realtime verbal communication.

<comment><USER8> We are much better at faces than we are at voices:

• Imagine I show you 10 photos of faces. Then I come back 15 minutes later and ask you to pick them out from a set of 20 faces.

• Imagine I play you 10 audio snippets of someone talking. Then I come back 15 minutes later and ask you to pick them out from a set of 20 audio snippets of people talking.

That said, I agree with you that primarily this technology would be useful for surveillance.

If you can zoom in on any given conversation happening at New York Penn Station, you're basically in the Bourne Identity, with all the privacy- destroying overreach that entails.

<comment><USER7> I think you completely missed the point. If you think the overall fact that humans are better at face identification than audio identification is relevant here, you missed the point, since that high level fact is not related to this specific problem or the comparison being made.

<comment><USER9> Can you explain the point? Because I've missed it too.

<comment><USER7> The task of disambiguating speakers, relative to skill at other audio processing tasks, is more similar to disambiguating _superimposed_ faces, relative to skill at other vision tasks.

It is _not_ similar to quickly recognizing several _different_ faces that are present in a video stream.

Tasks requiring simultaneous processing of focused attention on multiple input streams are _not_ very related to human visual or audio processing. These types of tasks are _not_ similar to attending to things in peripheral vision or peripheral audio.

</comment></comment></comment></comment></comment></comment><comment><USER10> Not an expert in this domain but I'm not sure this can be done (well) without a physical component.

Recent studies have shown that we can consciously and subconsciously physically manipulate the position and directionality of our outer ear and some of the mechanics in the inner ear to "zero in" on noises and affect the frequency response of the ear. Our ears move imperceptibly when we look from side to side to synchronize what we hear with what we see. Try listening to one person in a busy room is saying then try doing the same while looking somewhere else.

There is hardware actively filtering out interfering sounds based on location and frequency, then there's the wetware that further processes the incoming signals and attempts to strip unwanted noise. I don't believe the second can be effectively done without a feedback loop to the first.

<comment><USER11> If you've ever listened to a podcast or talk radio then you've done all of this without the physical component.

</comment></comment><comment><USER12> The "Why it matters" section is interesting. Cynically I'm trying to think of commercial uses of this for FB. I'm thinking if you built a device that you could put into public places, restaurants, or stores:

* People could order food from their table without summoning a server. I guess some restaurants have tablets or other devices at their table but it seems to break immersion if you're enjoying your company.

* In a big box store someone could come help you where you are without having to have workers roam the store and then you hope you run into someone.

* Fingerprint people in public or private for targeted advertising.

</comment><comment><USER13> The assumption that this is possible come from our ability to isolate voices in a crowd by paying attention to one or more of them. However our ability to do so rests on two important factors that don't exist in these datasets. 1. We have two ears to allow for sound localization and 2. The sounds we distinguish are colocated in space allowing us to use ambient information for disambiguation.

This means that the problem being solved here is _harder_ than the natural problem we have evolved and learned to solve.

This is both impressive and possibly problematic. Some feature of training in a goal directed fashion in naturalistic environments could be essential for higher quality speaker isolation, or it might not matter at all. The multiplicity of models phenomenon tells us there are likely many solutions to this problem.

<comment><USER14> It's porentially even harder than this. Not only do we have two ears, our ears are shaped to help determine where sounds are coming from, and we make constant movements to further help process audio. I remember years ago I played an FPS capture the flag type game with headphones, and, not everyone knows this, but the math works out that the same sound could come from in front or behind, so I developed a strong tendency to make small mouse movements rotating left and right to help me identify where footsteps were coming from. I didn't even know I was doing it until I talked to an audio engineer who mentioned this problem, and next time I played, I realized how much I relied on it to avoid getting blindsided.

</comment></comment><comment><USER15> i'm excited that FB develops and shares their research and simultaneously terrified of what they will do with it given past behavior

its very disconcerting - i feel this way everytime i use pytorch - which i love

</comment><comment><USER16> Nice, now Facebook can spy on several people at once.</comment>


Is Stealth Mode Ever Worth It? - <AUTHOR> http://founderdating.com/is-stealth-mode-ever-worth-it/

<comment><USER2> Don't think buzz is a good reason to be "stealth" either - very few companies get buzz because they were stealth. there is also a difference between being stealth and just not yelling from the rooftops about what you're doing. The latter is usually enough to make sure you don't get covered before you want to.

</comment><comment><USER3> "Stealth mode" is the dumbest fucking buzz word.</comment>


Switch to HTTPS Now, For Free - <AUTHOR> https://konklone.com/post/switch-to-https-now-for-free

<comment><USER2> "SSL's not perfect, but we need to make surveillance as expensive as possible"

So this is why the NSA budget get increased every year? And there does the money come from? ;)

</comment><comment><USER3> Thx for the useful and succint article.

<comment><USER4> Glad you found it useful!</comment></comment>


Remember broken Nexus telephony? This is how Google treats it's customers - <AUTHOR> https://code.google.com/p/android/issues/detail?id=82949#c483 <comment><USER2> In the link #440 reports that disabling "NuPlayer" fixed the issue. This setting is in _Settings_ > _Developer options_ under "Media".

I've also found that NuPlayer plays unpredictable havoc with an audio playing app I wrote that is currently on Google Play. Some users on Lollipop report audio glitches, silence or weird bluetooth issues. Disabling NuPlayer fixes these issues. I wish there was a way for me, as a developer, to force use of the old AwesomePlayer system for my app in particular, but have no idea if this is possible technically. I certainly haven't found a way to do it.

But what I find surprising is that NuPlayer is labelled "experimental" in Developer options but is _enabled by default_. Isn't that a bit weird?

<comment><USER3> Is NuPlayer a 5.0 only option? (My son's Nexus 5 isn't in front of me.) Using 4.4.4 here, with no plans to upgrade.

<comment><USER2> Yes, as far as I'm aware the option to default to NuPlayer system-wide is only present (and default) in 5.x

<comment><USER4> It's not on by default and it's labeled "Experimental" on my Nexus 5 running stock 5.0.1.

<comment><USER2> That's interesting. I didn't realize that only some 5.x devices came with it enabled by default. I can only speculate as to why some devices come with it turned on and some don't, but I've definitely supported some Nexus 5 users on 5.x who had it turned on by default - they didn't even have developer options enabled prior to contacting me.

</comment></comment></comment></comment></comment><comment><USER5> The difference between android and iOS and windows phone is that android has an open bug tracker, making issues like this a lot more visible. Maybe this issue doesn't affect many people, or google determined that it only happens for phones on a certain carrier and can't disclose that publicly. Sure, the bug could have been closed with a friendlier message, but an open bug tracker seems like a good thing to me

<comment><USER6> That difference applies to individuals and SMBs. With both Apple and Microsoft, if you have an account team you have a channel to get things escalated, and if you are a strategic customer, you'll get rapid attention.

Google doesn't really offer that, or if they do, the threshold to get that attention is very high.

</comment></comment><comment><USER7> More than the fact that tickets like this get closed, I find the way that they are closed infuriating. You would think that dozens of comments, many of them with lots of details, would merit a more extensive answer than a single

> contact customer support.

How about "Thanks for all your comments. Unfortunately, this is the wrong forum to report problems like this. Please contact the Nexus customer support and let them know about the issues you are having."

<comment><USER8> Google _is_ "Nexus customer support", they just don't particularly care about doing that job. Google drops support for their own developer phones faster than Samsung and HTC do.

E: To address the initial downvoters: why don't you explain yourselves. How is Google not responsible for supporting nexus devices? They're sold directly by Google, they're produced for Google, and they're heavily marketed by Google. Google provides the software and hardware support directly after purchase and handles RMAs directly. Google depreciates Nexus device support in <18months. Nexus One, Nexus S and Galaxy Nexus were all dropped about a year after release, significant performance problems were never addressed. N7(2012) was dropped early last year from official maintenance and the absolute shit NAND quality was never addressed. Google has a history of not caring about proper support for their Nexus devices.

HTC has released lollipop upgrades for devices that are >2 years old. Samsung has also released lollipop upgrades for devices >2 years old.

<comment><USER9> I didn't vote your comment, but the issue tracker for AOSP is not Google customer support.

(Let's not bother discussing whether it should be or whether it makes sense to file customer support issues there in the face of lackluster support elsewhere, those are mostly opinion battles)

<comment><USER8> The only other option is the Google Product Support forums[1], which are mostly "staffed" by non-googler community moderators that offer no real support. Googlers who are on the forums do their best to ignore actual problem posts.

Regarding this particular issue on AOSP issue tracker, it is a software bug in AOSP that kills voice calls. Filling an issue report would seem prudent.

[1] [https://productforums.google.com/forum/#!forum/nexus](https://productforums.google.com/forum/#!forum/nexus)

<comment><USER10> Huh? If you bought it from Google, just ask the play store customer support. What other support would they mean by "contact customer support"?

<comment><USER8> Play Store support can't do anything about software bugs, at most they'll offer to let you return the device.

</comment></comment></comment></comment></comment></comment><comment><USER11> Of course there are multiple rationales for choosing a platform, but support is certainly one of them.

A while ago someone made a nice graph of how good Apple/Google are at maintaining OS support for their devices, it's pretty informative (although I'd like to see a new one). [http://www.fidlee.com/android-support-vs-ios- support/](http://www.fidlee.com/android-support-vs-ios-support/)

In this case the Nexus 4 is still officially supported by 5.0... but not being able to call on a phone seems like unsupported to me.

<comment><USER12> My wife has an N4 running 5.0.1 with no issues re calling, so if there is an issue for these users it's an isolated one and not a systemic problem with all N4s.

Most of the Android phones on the page you linked are not Google phones. Whether or not they get updated is up to the manufacturers and carriers, not Google. You'll note that the Nexus phones have more update support in general.

Whether providing major updates to a phone is a good thing is debatable. My wife _hated_ getting the 5.0 update. She saw it as a major inconvience that changed how her phone worked for no good reason. She would prefer to have the phone work the same way for the entire time she owns it.

PS: 'Sup, fury?

<comment><USER13> > My wife has an N4 running 5.0.1 with no issues re calling, so if there is an > issue for these users it's an isolated one and not a systemic problem with > all N4s.

That's a bit of a leap to declare that the issue is an isolated one because your wife is not having the problem. As it turns out, my wife had that exact problem with her Nexus 4 on 5.0.1.

How widespread is the problem? Who knows. From my perspective it seems like the 5.0 release has been a bit more problematic than previous major Android upgrades.

<comment><USER12> If there is one device which is not impacted then it is not a problem with all devices. The problem is therefore isolated to a subset of all devices. Perhaps that subset is the majority of all N4s, perhaps it is a small fraction. We don't have enough data to say one way or another.

</comment></comment></comment></comment><comment><USER14> If you have time (and the inclination) then you could report this to the technical support department of the mobile telco you are using.

You won't get instant gratification that you would by using a bugtracker but technical reports back to the vendor (in this case Google) do eventually get sent upstream.

If enough people complain via Google's channels then the bug will be brought up at higher levels _eventually_.

The other option is to tweet at senior Android guys and see if you get a response.

Good luck.

<comment><USER15> You know, that is a valid option. When iPhone 4's telephone broke because of the "grip of death" antenna issue, Steve Jobs himself came out, apologized, offered a free bumper case to mitigate the issue. Compare that to this.

And the telco of Nexus is Google! Google just pointed to contact Google.

<comment><USER16> That's not quite how I remember the "grip of death" events doing down.

<comment><USER17> Yea, looks like the "You are holding it wrong" part was deliberately left out.

<comment><USER18> And with good reason. That was never said by Apple. They simply explained why it happened (people's hands touching various parts and messing with the antennae). The media created that whole "You're holding it wrong" thing.

</comment></comment></comment></comment></comment><comment><USER19> I wish Windows Phone was just like... 15% better in terms of app support. Existence as an Android user just seems more and more self-hating as time goes on, and it's clear that Google, the OEMs and the carriers are just not about to cooperate to make the user experience any better. (I know, I know, there's the iPhone, but I have a pathological hatred of iTunes for Windows, so that's not really an option.)

<comment><USER20> There is also the problem where companies like Google refuse to acknowledge platforms apart from theirs. The iOS apps are usually faulty, and Google DMCAs any third party apps that talk to their services on the windows platform.

<comment><USER19> I'm not sure there IS anyone like Google. Apple is all walled garden, but they don't offer all that many services that make sense outside of their platform anyway -- they don't offer anything like Maps or YouTube. (Well, I guess iTunes, but... Apple gonna Apple.) Amazon is outright weird about supporting non-Fire Android, but they've finally got Amazon Video available on other Android platforms, and stuff like Kindle readers are available for any platform imaginable. Amazon Video is also on the Xbox, Playstation, Wii and Wii U, Roku and all kinds of smart TV/I guess smart BluRay devices. With the weird exception of Xbox Video, Microsoft is pretty much falling all over themselves to be on every platform -- Xbox Music, Xbox Smartglass, Office, Outlook.com, OneNote... they're all on iOS and Android.

Google has a Google PLay app for Roku, at least. They offer some stuff on iOS, but not as much as they do on their own platform. But they're not on Xbox. They're not on Playstation. I can at least reason out why they don't want to be on Windows Phone or such, but... Google isn't competing with the Xbox and Playstation, and they're kidding themselves if they think they are. Why not a Playstation app for movies?

<comment><USER10> > _But they 're not on Xbox. They're not on Playstation_

There's a google-made youtube app on xboxes and playstations. I've never actually tried buying a play store video so not exactly sure if it works on the consoles themselves, but you can at least purchase them on a computer and then watch them on the playstation (Kotaku did this for The Interview, for instance[1])

[1] [http://kotaku.com/sonys-the-interview-can-now-be-seen-on- xbo...](http://kotaku.com/sonys-the-interview-can-now-be-seen-on-xbox-but-not- on-1674936343)

<comment><USER19> Huh, interesting... I've actually used the YouTube app to watch YouTube videos on the Xbox, but it never occurred to me to try it on Google Play movies. Thanks.

</comment></comment></comment></comment></comment><comment><USER21> I remember reading the google+ page of JBQ a while back where he openly lamented having to do customer support bullshit all day because Google is terribly organized without enough Android staff.

Also the stock lollipop Nexus4 image doesn't fix this, you still have to reboot every so often to get voice back. It will only happen at the most crucial times too given Murphy's law, like phoning a cab in the pouring rain with only 5% battery left, and when I called a girl I met back and ended up calling 4 times looking like a complete inept fool or harassing weirdo when the voice first disappeared.

</comment><comment><USER22> I don't want to be a nitpick, but it's "its customers". Possessive its (for some reason, the words google, possessive and customers together like that make me feel uncomfortable). Not "Google treat it is customers".

<comment><USER23> I don't mean to nitpick, but you used the term 'nitpick' incorrectly.

<comment><USER22> How embarrassing. But thanks, I learned something.

</comment></comment></comment><comment><USER24> Funny, I'd imagine a number of Googlers still have Nexus 4 corp phones. Just curious how that sort of thing is handled internally. You get a new phone issued?

</comment><comment><USER25> I've the same model (Nexus 4) and can confirm this issue. Can't believe Google's response to this.

<comment><USER26> My daughter and both have the Nexus 4 and I don't recall ever having this problem. Suppose its a carrier issue? We're on TMobile.

<comment><USER27> My wife and I both have the Nexus 4 and are using TMobile. Her phone has this problem. Mine does not.

</comment></comment></comment><comment><USER28> I am so glad that I hold off on the bleeding edge android. I am sticking with 4.4 till there is more adoption

<comment><USER29> It's funny, I actually upgraded to 5.0.1 stock from Cyanogen 11 (4.4.4) because the phone portion stopped working in 4.4.4. Haven't had any issues with calls since then. Now I'm worried that it'll suddenly go south again :(

Nexus 4 is clearly the red-headed stepchild in the Nexus family now. If there was a newer Nexus that wasn't the size of an iPad, I'd upgrade; but there isn't. Call me old-fashioned, but I don't like holding War and Peace against my ear to talk on a phone.

<comment><USER30> > If there was a newer Nexus that wasn't the size of an iPad, I'd upgrade; but > there isn't.

The Nexus 5 isn't that much bigger than the 4, and certainly isn't as big as the Nexus 6. It's also not nearly as expensive as the 6.

Size comparison of the 5 and 4 (from the left, respectively):

[http://newlaunches.com/archives/google- nexus-5-competition-c...](http://newlaunches.com/archives/google- nexus-5-competition-comparison.php)

<comment><USER23> I really like my N5, and i have been enjoying Lollipop as a user experience. I use ADW launcher and keep my device very trim in terms of apps; the only niggling issue currently is that TextSecure does not receive group texts from iTards when WiFi is enabled, but they are aware of the problem so it is a m00t point.

It bears consideration that the N5 is not carried by Verison [CDMA].

<comment><USER30> > It bears consideration that the N5 is not carried by Verison [CDMA].

The Nexus 5 does actually have a CDMA radio and works well on Sprint and its MVNOs. The problem is that Verizon won't list it as an approved device in their database, which means it won't provision for them. From what I understand, it's a control issue, not a technical issue; they can't get carrier exclusivity with an unlocked Nexus phone so they don't want it on their network. In short, the problem is Verizon, not the radio in the phone.

<comment><USER23> Thank you for explaining that. I am on Tmobz and their customer service has been exceptional to date (which is why i left Verizon) but i miss the connectivity as i travel in rural areas a fair amount.

Seeing as the hardware is there, is it theoretically possible to jigger the channels (technical term) and use an N5 on Verizon?

<comment><USER30> I don't think approaching it from a radio standpoint would help, since it's simply a matter of Verizon choosing deliberately not to provision the phone.

For extra coverage while traveling, you could order a SIM from Ting[1] (a Sprint MVNO that I've used and really enjoyed), and switch to it for coverage on Sprint's LTE network; they fully support the Nexus 5. It's not as expansive as Verizon's network, but from my experience it tends to fill in the gaps left by T-Mobile. I say that because my service is with Straight Talk on T-Mobile's network, and my wife's phone is on Ting. Everywhere I don't have coverage, she does, and vice versa.

Ting charges a base price of $6 per month per device, then charges for metered usage. My wife uses about 800 MB of data, about 80 minutes of calls, and about 300 texts per month, and her bill comes in at under $40 per month. I won't pretend to know your travel itinerary, but if all you do is order the SIM and activate it once every few months, you're probably looking at less than $70 per year to have the convenience of extra coverage when you need it.

Or, you could forgo all of that and go back to Verizon on a Moto X, it's the closest you'll get to a Nexus device on that network, but then you're back in user-hostile support territory.

[1] [https://ting.com/shop/microsim](https://ting.com/shop/microsim)

</comment></comment></comment></comment></comment></comment></comment><comment><USER31> I feel like Android 5 is a step back, UI-wise. One of those "change for the sake of change" things. I don't see how a triangle, square, and circle are more user friendly than a back button, a home button, and a tab button.

Chrome is also crashing constantly on 5.03 and the new keyboard is very very bright at night.

Not a telephony issue, but I feel like 5.03 was a step back and I've actually contemplated downgrading back to 4.* Is that an option for phone users, or does the carrier push the updates?

Edit: It seems like every time I make a comment that might be slightly anti- Google these days, it receives downvotes. That's concerning.

<comment><USER32> The chrome is very annoying. Constant crash and New Tab takes a few seconds. But the most annoying is tabs are treated like apps.

When I'm on tube and read Effective Go I need to scroll through all apps and tabs to go back to it.

<comment><USER33> Tabs being treated like apps is definitely annoying. However, you can fix that by going to the chrome settings and turning off the "Merge tabs and apps" switch.

Why "on" is the default setting is beyond me.

</comment></comment></comment><comment><USER34> I have Nexus 4 and can confirm the issue. Never had it in the previous version. So much for the Lollipop update

</comment><comment><USER35> Heh. I've just been hunting for clues to fix my "Nexus 6 randomly reboots" problem. Also quite common problem, and also radio silence from Google. Missed several phone calls due to phone having secretly rebooted. Nice synchronicity.

</comment><comment><USER36> I will never buy a Nexus tablet or phone again. Still no Lollipop for the razorg.

<comment><USER37> Google is well know for their abysmal costumer support, but this is just the last straw; a telephone that cannot make calls, not even emergency 911/112\. And such issue is marked as "Priority-small" and dismissed.

It was good while it lasted, but it's clear now that Google not only cannot be depended on for their software (see Google Reader), but also cannot be relied on for our hardware needs.

At least they have the search thing...

<comment><USER38> > but it's clear now that Google not only cannot be depended on for their > software (see Google Reader)

How about all versions of Android 4.3 and down? 60% of the Android user-base is now without updates for critical security errors.

Their support is ridiculous.

<comment><USER39> I have a Nexus 4 on Lollipop and I was experiencing this issue too, and saw the response. Last night I bought an iPhone.

<comment><USER40> Good luck with your iOS 8 bluetooth connectivity issues. (other than that, everything seems to work fine)

<comment><USER36> I have no issues at all (but had issues with the 3GS a few years ago). Which issues do you have?

</comment></comment></comment></comment></comment></comment><comment><USER41> I'm on CM11 with 4.4.4 and I need to reboot daily to get around this issue. CM just posted an upgrade to CM12 nightly for Nexus 4 and I'm thinking of biting the bullet and taking on that upgrade

</comment><comment><USER42> That bug tracker is for AOSP code issues, not issues related to any specific device, so contacting customer support is the best route for the problem no matter who sold you the device.

</comment><comment><USER29> I'm going to cross the streams a bit here and bring up a major concern going forward. Right now, "Project Ara" is Google's project to create a modular phone that allows hot-swappable components in a totally customizable pocket device. That is, you could have 3 cameras and no wifi in your device if that's how you choose to put it together.

How in the hell do we expect the Android OS to actually make this anything but a bug-laden shit show? They're clearly having a hard enough time making Android work on their own narrow line of devices. The very idea of using this same OS for a completely open-ended device seems laughable, at best.

<comment><USER23> I was getting excited about the Spiral but this thread has decreased the wind pressure in my sails considerably. Theoretically speaking, is any big mobile device company capable of supporting a modular device that can compete with the top of the line devices?

</comment></comment><comment><USER43> I had the same problem on android 4.4.4, but on moto G. The solution given on the Motorola customer support site was to wipe the cache partition. It worked.

</comment><comment><USER44> What other response did you expect from Google employee? Google doesnt hire low level customer support people, google hires top of the line, few hours in front of white board interview coders, people with multiple phd's and industry veterans. I bet they dont even have dedicated support staff, just 200K a year programmers assigned to bugtracker having to divide their time between actual work and asking 'have you tried turning it off and on again'. Its BENEATH those people to interact with rabble.

and here we have a result of this broken system.

<comment><USER45> And unlike hard- and software, such a broken system can last a very long time. There's an old French joke about "polytehcnician" (i.e graduate from Polytechnique, a top-level post graduate institution). What's the difference between a train and a polytechinician? When the train gets off the tracks it stops.

</comment></comment><comment><USER46> Had to downgrade because of the issue. Can't believe how Google behaves in this situation. My next phone is definitely not a Nexus.

</comment><comment><USER43> I have the same problem on 4.4.4, but in moto G. The solution that worked was to wipe the cache partition and reboot.

</comment><comment><USER47> Google doesn't even have "customer support"!

</comment><comment><USER48> This is a terrible precedent Google is setting, and it is going to cause considerable harm if it gains traction: It's one thing to stop upgrading "older" devices, but quite another to actually break critical, regulated functionality. The Google employee who decided this was a "small" issue apparently doesn't realize that the inoperation of basic voice functionality of cellular devices is the fuel for fat, deserved lawsuits.

I have a Nexus 5, have no interest in the Nexus 6, and could easily think "Oh well...upgrade", but as the old saying goes -- first they abandoned the Nexus 4, and I didn't speak up...

<comment><USER49> I think they are starting to regret the Nexus line as they don't make any money off of it and users have high expectations. You can tell, imo, that they are looking to just slowly kill it off.

<comment><USER48> The Nexus line really saved Android -- it was always the excuse (the best word I can think of) when other devices had update, performance, or security issues. "Well it isn't Android, it's Samsung/HTC/Motorola/Sony/etc, because my Nexus...". It was a critical line.

Google may have killed the Nexus line by making the 9 and 6 so uncompelling, but I doubt it was intentional. They're just a company that has a chronic difficulty prioritizing customer service. Further I don't really think it's "high expectations" to demand that voice functionality works (again, this stuff gets you in serious trouble with regulators. If this were raised to the FTC and/or CRTC, you can bet Google would find a fix extremely quickly).

</comment></comment></comment><comment><USER50> This is your second submission of it after [https://news.ycombinator.com/item?id=8838578](https://news.ycombinator.com/item?id=8838578)

I agree this may haven't been resolved nicely, but hidden extrapolation from a few employees to the whole company is not cool on your side either. There are people in there, working their butts off to make one of the largest open source projects better.

<comment><USER15> There is also another employee who marked a disfunctional telephony on a phone as "Priority-small."

I think we're seeing a pattern here.

<comment><USER51> I think they're handling this poorly and that for a company as big and rich as google, "we only have so many people fixing Android 5 bugs." is a pretty weak excuse.

That said, I bet google knows better than we do how many active Nexus 4 users are still out there, my suspicions is - not many.

Here's my guess - they prioritize bugs not just on severity but also based on number of users impacted, and who those users are (in this case, people who are still using a phone that was discontinued over a year ago, have manually updated their phones and then reported a bug in the AOSP tracker. a demographic I suspect is going to be very hard to satisfy no matter what). I'm guessing they hope that people will take this problem to the carrier they bought it from (if they got it from someone besides google), contact google play store customer support (who have always been helpful in my experience), downgrade, or just move on and buy a more recent phone.</comment></comment></comment>


GNU Emacs 23.1 has been released - <AUTHOR> http://www.gnu.org/software/emacs/#Releases

<comment><USER2> Hmm... from the News on the new release:

 _Mac OS X is no longer supported via Carbon. Use the NeXTSTEP port, described above._

A NeXTSTEP port, a.k.a. "Cocoa support".

And, meanwhile, the Carbon Emacs guy reports that he doesn't plan to release an Emacs 23 version of Carbon Emacs in 2009:

[http://groups.google.com/group/carbon- emacs/browse_thread/th...](http://groups.google.com/group/carbon- emacs/browse_thread/thread/7ea0166c4ae089ce?hl=en)

Perhaps the time has finally come to try rolling my own emacs from source. That will require a Great Package Hunt in the short term, but once you've got emacs set up you've really got emacs set up. It's not like it changes every weekend.

<comment><USER3> So. How well does Emacs work on a Mac these days? I'm strongly considering switching from Linux to Mac, because I'm sick of running Windows in VMWare just so I can use Microsoft's Office suite. I couldn't live without Emacs though.

<comment><USER4> I use it every day and it works fine for me. Since Mac OS X has unix underpinnings all the good stuff works just fine (unlike trying to use M-x grep on windows). If you compile ispell and put it in your path then all the spelling stuff works, etc.

I had to do very few Mac specific things in my .emacs to make it comfortable.

And on top of that it supports basic mac interaction, so if you drag a file into the window it'll open it in a new buffer, you can associate files with it so that double clicking them works, etc.

</comment></comment></comment><comment><USER5> Don't miss the badass cover to the original Emacs Manual for ITS:

<http://www.gnu.org/software/emacs/its-cover.png>

Or rms's only cartoon (It's ... funny?):

[http://www.gnu.org/software/emacs/self-doc-extensible- editor...](http://www.gnu.org/software/emacs/self-doc-extensible-editor.png)

<comment><USER6> Not funny me thinks, but much better, in a modern art sense interesting, very clean concept. He should do 20 of them and see what evolves out of that.

And thanks for the cover!

</comment></comment><comment><USER7> How to get the command key back as the meta key on Mac OS X: (setq ns-command- modifier 'meta)

<comment><USER8> But how, how, how to get it back in the terminal emacs? :)

<comment><USER9> I use (setf mac-option-modifier 'meta) and then swap Option and Command keys in keyboard preferences, and that makes meta work correctly with windowed Carbon Emacs and terminal mode emacs (both Carbon and the default OSX emacs).

I also use DoubleKey to map the Enter key (right next to Command key on the right) to Ctrl. It bugs me to have to do all this, but it makes meta work just like it does on Linux, so it's worth it.

</comment></comment></comment><comment><USER10> I'd love to finally use emacs 24/7 (rather than randomly jumping between (ubuntu) gedit, gvim, vim, emacs and (osx) textmate) but _arg_ I still can't figure out how to force emacs to: Never insert a tab character, ever. When I press tab, _just always insert the freaking spaces_ instead of apparently not believing me that I want to indent there.

Honestly, am I missing something? I don't leave trailing whitespace in files because, well, it's our convention and I think it's pointless anyway. So I go into a function to add some code in the middle and it's _impossible_ to get indented the right amount without hitting space 12 times since pressing tab just does nothing. I know I could go onto a previous line and hit C-e C-j to line break + indent but do you know how often I just try to insert code in the middle and realize it doesn't work? Google has not been my friend on this issue.

/rant

<comment><USER11> Is this what you are asking for? [http://www.gnu.org/software/emacs/manual/html_node/emacs/Jus...](http://www.gnu.org/software/emacs/manual/html_node/emacs/Just- Spaces.html)

<comment><USER10> Unfortunately, no. Go to a blank line inside a code block that's indented a bit and hit tab. Nothing happens :/

I wasn't clear above, I have been able to have it never insert a tab, but it's that and the "don't try to 'intelligently' prevent me from indenting" thing that I need.

</comment></comment></comment><comment><USER12> Scrolling (redisplay?) slow for anyone else? When using a small font (ProggyTiny) it gets really slow.

<comment><USER13> It is for me. I think it has something to do with the baud rate of the virtual terminal...?

</comment></comment><comment><USER14> Very cool.</comment>