Ask HN: Would you pay to have a penpal? - <AUTHOR> There's an epidemic of loneliness and there are some services that are trying to solve in some way this problem like having lunch with strangers or professional huggers.
I'm toying with the idea of creating a penpal service because I like to email and I want to solve problems like this. If you have read "The hacking of the American Mind" you'll know that one of the things we can do to become happier is to CONNECT (the others are Contribute, Cope & Cook).
The focus of the service would be to "be there" in an empathetic way for the people who need to be heard or exchange.
Do you think you could use something like this (now, or at some point of your life)? Do you think someone of your entourage would benefit from this? <comment><USER2> If you charge for it, do so in a way that doesn't seem like you're paying for the friendship itself. Imagine two scenarios: 1) You pay $10 for the pleasure of seeing your friend. 2) You meet your friend for drinks, where you end up spending $10. There's a subtle difference between the two, the latter of which is pleasant, the former not.

<comment><USER3> Depends on the culture of the target audience too. In Japan, paying for a friend isn't terribly uncommon. OP could consider that market as well.

</comment></comment><comment><USER4> I really want to like this idea, I think the ideals behind it are laudable, and honestly I would fall well within its target market.

There's zero chance I'd ever sign up for such a service.

It feels artificial (It's an internet friend you have to pay for!) and self- defeating (it's a platform for shared misery!) The idea of being paired up with some other lonely person so we can vent at each other empathetically about how lonely we both are doesn't sound like it'd be a support at all; it sounds like a burden. Best case scenario is we really hit it off, and then there's one more person I like but don't really get to ever connect with for real, because long-distance. Got plenty of those already, thanks.

<comment><USER5> But what if this other person is on the company's payroll, and is/acts really cool? And perhaps they are being rated by other users, so you'd know in advance?

EDIT: removed some ambiguity in wording.

<comment><USER4> > But what if this other person is really cool?

That's the "best-case scenario" I was talking about. Still not great.

> And perhaps they are being rated by other users, so you'd know in advance?

Whaaaaaaaaat hell no kill that idea with fire.

First off that implies that users are being paired up with many other users, not one-to-one (otherwise there's no way for a user to build up 'ratings') which makes it sound more like a subject-specific message board than a "pen- pal" service.

More importantly, wtf? rating individual users? On a service whose purpose is for people to empathetically "be there" for one another? Seriously? "Bob's really lonely and hurting, but he's also kind of dull. One star." No. No no no no no.

<comment><USER5> Ok, I changed my wording a bit. What I meant is that the other person (the penpal) could be paid by the company. As such, I don't think it is bad if they are being rated.

<comment><USER6> In this case I think you are effectively offering something like psychotherapy/counseling/coaching/advising. It's not necessarily bad if some these things are provided by people without certain kinds of training, although there are some serious and complex problems that really are best handled by a professional.

I have three thoughts about this:

* You should think carefully about your marketing about the nature of the service that you offer (as you can see that some people were really rubbed the wrong way by the original description).

* Similarly, you should be sure to be clear about the scope and nature of the relationship.

* You should consider the issue of things that "escalate quickly", e.g. customers who behave inappropriately toward your staff, or customers who threaten to harm themselves or other people, or who seem to be in need of more extensive professional help. You might think this is unlikely if your service isn't marketed as psychological counseling, but all of these things are going to come up eventually!

Overall, I think it's pretty useful and valuable to have more places and options that people can turn to for conversation, interaction, and advice. I agree that it's really tough that so many people feel isolated and don't know where to turn for connection or how to talk about their experiences.

(Edit: People in this thread seem really upset about describing the other person in this interaction as a "friend". And indeed, if I pay someone to interact with me for various purposes, I wouldn't describe that relationship as "friendship". It is a professional relationship, not a friendship. But it doesn't mean that the relationship isn't beneficial. There are all different kinds of relationships that involve payment that can be enormously beneficial. Maybe you can even develop some new ones!)

(Edit 2: It doesn't have to be presented and marketed as something like psychotherapy. It can still just be corresponding about one's situation. But the parameters should still be as clear as possible.)

<comment><AUTHOR> Thanks for your comments. I was an Educational Psychologist at some point. This wouldn't fall under the umbrella of traditional therapy, but it will be certainly a professional relationship that will need some clear framework (ethical and operational).

And I agree also with you in how beneficial is to have multiple choices for interaction and advice. I was delighted when I read philosophical counseling is a thing.

</comment></comment></comment></comment></comment></comment><comment><USER7> There are a range of services out there already. There was a YCombinator startup where you could sign up and be a volunteer "listener" after completing some online training - sorry forget the name now - it was designed to solve the issue you are talking about.

There's also Interpals - a free penpal service. You can use it to learn languages too, although some people seem to use it as a dating site!

<comment><USER8> [https://www.7cups.com](https://www.7cups.com)

7 Cups

<comment><USER7> That's the one - thanks for reminding me!! :)

</comment></comment></comment><comment><USER9> No. People are lonely because they have incentives to do things other than make human connections, mostly in the form of technology. It's not a problem that is caused by lack of availability, it's a problem caused by short-term gratification that is more appealing and easier to obtain for people. Providing availability would be moot since there's no demand to begin with, and any that exists is already met by online forums like this.

A penpal situation in particular is the antithesis of what you'd want, as sitting down and writing letters to other people is actually _work_ that people don't want to do. Maybe the first time is fun, but then it becomes a chore. I'm not going to pay someone to sign me up for a service which carries a bunch of obligations in addition to what I already have in my life.

</comment><comment><USER10> My opinion is that as long as there exists free ways to connect with people, nobody is going to pay for it. So it's tough for me to see a way to build a business around this; I don't think people will be particularly willing to pay.

</comment><comment><USER11> While I would love to find a penpal, I don't think I'd pay for such a thing. I can only imagine the pricing revolving around a convenience fee, and that's not too much to hang a business on.

</comment><comment><USER12> People already pay to be listened to. It's called therapy. So yes, I think people would pay for it. Perhaps someone that's just lonely wouldn't use such service, but people that are truly depressed and struggling to make it each day my give such service a try.

The problem with this services is that you are paying to have a "friend", that might says whatever you want to hear. So it would work best if it's sold as a professional service and not as find a buddy service.

</comment><comment><USER13> No.

Here's the problem with paying for social things: I already feel like nobody ever treats me like a human being unless money is involved. The only time anyone smiles at me is if they're chasing a tip. The only time anyone speaks to me is if they need something or are getting paid for it. And that hurts.

So, using your service would hurt emotionally. That's kind of a tough sell.

</comment><comment><USER14> I'm 99% sure that I saw this idea floated during the DotCom boom on Slashdot.

Maybe it was Interpals [0]?

> For over a decade, InterPals has been the Internet's premier free site for > online correspondence, cultural exchange, and learning foreign languages.

> Created in April 1998, the site began as the "International Penpal Page." A > friendly forum for people to find email and postal penpals from around the > world, the page quickly became so popular that it was rebuilt from the > ground up in 1999 and renamed InterPals. (Want to see what it looked like? > View archived versions of InterPals).

[0] [https://www.interpals.net/](https://www.interpals.net/)

</comment><comment><USER15> There are a bunch of subreddits for that already so I'm not sure a paid service would work that well for that. One advantage could be that people stay more engaged for longer because they are paying for it?

<comment><AUTHOR> Some subreddits are awesome. The advantages here will be avoiding flakiness & ghosting, the intended depth of the connection (something that would be more along catharsis than let's say discovering a stranger's books taste), a focus on the client needs and avoiding "catching feelings".

</comment></comment><comment><USER16> If the service is good and truthful it has a great potential.

If it's fake and people have to force themselves into a helpful mood then it's probably not gonna work.

I guess that the magic behind something like this is to be able to create actual human connections.

Anecdotaly I find that getting drunk with people is the easiest and fastest way to make connections like that. Not that it is a good idea, but it works.

<comment><AUTHOR> Yes, I think authenticity is the key here.

There's no way to scale this (as a one-man show) and keep with the quality, so I'm not trying to make this a big business, just something sustainable.

</comment></comment><comment><USER17> Fascinating idea. I don't mean this in a bad way, but it fulfills the same role as prostitution - a basic need met with money.

<comment><USER18> My thinking was similar but a bit more cynical: if I'm going to be paying someone for company, I feel like I'd get more (pardon the awful pun) bang for my buck with a sex worker.

</comment></comment><comment><USER19> I would definitely not pay for this. But there are a lot of interesting cool people out in the world that would be nice to meet for intellectual discussion. Finding them is the challenge.

Maybe an idea that will suggest meetup groups based on some personal scoring method.

I know the meetup site now spams the hell out of me with new meetups that I have absolutely no interest in.

</comment><comment><USER20> I am convinced that there's a (paid!) market for this, but you are also asking for feedback from the wrong crowd, that's why you are getting feedback like this

> There's zero chance I'd ever sign up for such a service.

Majority of HN users are I am guessing under 50 and most if not all have good paying jobs -- money is a factor in quite a few instances of loneliness directly or indirectly. Ex: Guy loses job, girlfriend leaves him, starts drinking and become lonely.

The loneliness epidemic is also very prevalent in the 50+ age group, esp. with rising longevity and healthcare facilities in the developed world, people are living longer and longer.

I saw in the news the other day how the mailman was sitting and reading mails to senior citizens in some french village and they were paying him for it.

You should do a quick and simple MVP, and position it positively, like "make friends anywhere in the world" or something like that, not too cheezy, but nothing "negative" sounding like "overcome your loneliness" etc cos that will just remind people how lonely they are.

I recently interviewed at [https://www.keen.com](https://www.keen.com) and when I visited their site, it looked scammy like 1 of those online horoscope, lover gurus and tarot card readers. On site I learned that they are very highly profitable since 2004. It's a bunch of online properties where people call into a phone # and discuss their relationship, get "happiness advice" etc. Apparently quite a few of those "Advise providers" are making a fulltime income.

You could apply the same principles to penpal / email to help people combat loneliness, make news friends, and get relationship (this also causes loneliness with breakups, divorce etc) advise etc.

Email me if you wanna discuss more. Email in bio.

</comment><comment><USER21> There's good reason to believe that the increase of loneliness is being caused by an increased sense of alienation in society, which was predicted to occur due to economic forces under capitalism by Marx. So heartwarming to see this loneliness being viewed as just another potential to extract profit from people...

</comment><comment><USER22> No; there's no need to pay. There are a load of free dating/friendship sites. I got onto a couple about 10 years ago and made friends from dozens of countries. Learnt Spanish cause I liked the Latin Americans I met so much. (Still friends, now old friends, with a few of those original people from 10 years ago.) That just changed my life, never had so many awesome friends. Also later I joined a free language-exchange site, where you're matched with appropriate people and teach each other your native language—another very good way of making friends. Sure, it's not great for real hugs, but apart from that :-)

</comment><comment><USER23> One group of lonely people who need Connection are residents in assisted living, memory care, nursing homes, etc. They will likely not seek out a service for themselves, but their relatives might pay. Family members often don't have the time, inclination or ability to stay connected with their older relatives, especially those at a distance. And frankly (sadly) many of the residents have simply been forgotten. Pen pal emails would not cut it for most of the over 70 crowd (especially those with dementia), but a snail mail handwritten letter or card could go a long way toward brightening somebody's week.With some additional tech video pen pals might work. There is a vast untapped market of "upwardly mobile people who cannot pay enough quality attention to their older relatives living in facilities".

</comment><comment><USER24> No.

I have seen USA's loneliness crisis in the news several times the past few days in relation to the tragedy in Florida. However, it feels wrong to capitalize on it. Especially given that people living in poverty may be the ones suffering from loneliness the most.

Cool idea if it were offered as a community service, and managed by a team of people who are passionate about helping people find community. Of course, a consensus that there is a loneliness crisis in the USA doesn't appear to have been reached with people with authority to take wide actions

</comment><comment><USER25> Just being honest - no.

There exists too many free forums on the internet, and moreso even subreddits, to make such a thing worth paying for.

</comment><comment><USER26> I'm sure somebody would pay.

Sure there may be proxy services out there that cater to these needs, but this isn't to say that they can't be improved.

Check out also the number of companies that are doing some version of digital therapy.

Would recommend reaching out to the people that are using other support channels and hearing their stories and thinking of ways to support them.

</comment><comment><USER27> All of these are already handled by facebook and such. Maybe involving something useful in the process would justify a new service.

For instance look at language exchange, which is penpals with an intent to learn each other's language. There might be other useful stuff a service could match people for.

<comment><USER28> I'm not sure that Facebook already doing something is a valid reason not to do it in a new service. Quite the contrary, Facebook has validated the market for online connection, but is now struggling to find a way that to do it that is received positively by all. This could be a great time to slice off a piece of Facebook and make a new service.

</comment></comment><comment><USER29> I don't think people will pay for a penpal. However, they might pay for advice if the person giving the advice qualified as some kind of expert in the area in question. Perhaps you could consider an idea pivot to something similar that people would be willing to pay for.

</comment><comment><USER30> I would say no, because paying someone to do this means your friendship is shallow and based off money

</comment><comment><USER31> >There's an epidemic of loneliness.

This problem isn't solved by a penpal service. It's solved by the living situation. The people you live and work with everyday are the people you become closest to.

</comment><comment><USER32> Call it PayPal :0

<comment><USER33> PenPayPal

</comment></comment><comment><USER34> The argument "X already exists" is not a reason not to do something. We have both Coke and Pepsi ya know.

</comment><comment><USER35> I would pay _not_ to have one.

</comment><comment><USER36> No

</comment><comment><USER37> No

</comment><comment><USER38> $0.00

</comment><comment><USER39> This is pathetic and you should feel ashamed for trying to exploit individuals with such needs for profit.

As others have pointed out, those seeking that kind of companion already have free alternatives available, in Reddit and other places.

<comment><USER40> You think he should build it for free? How is he supposed to pay his bills or eat while he's making it? Profit is not necessarily a dirty word.

<comment><USER39> I don't think that he should build that, period. It is an abomination of an idea.

Just like the "professional huggers" which he mentions. You can't purchase human affection.

<comment><AUTHOR> I think it's fine to call this an abomination. I wouldn't be on Ask HN if I didn't want honest opinions.

However, the very spirit of being a hacker is to solve problems with less than optimal solutions, like duck tape. Human affection is the optimal solution, but people who use services provided by professional huggers know that they're buying an interaction that is positive to them, not a feeling in the other person.</comment></comment></comment></comment>


My first 15,000 curl commits - <AUTHOR> https://daniel.haxx.se/blog/2020/09/18/my-first-15000-curl-commits/ <comment><USER2> Oh boy, i wish i had such patience with my pet projects</comment>


Ask HN: Do We Need Both Websockets and The Wave Protocol? - <AUTHOR>

I do not quite grasp the difference between the two as they both appear to use push technology to communicate data real time. Are we splitting what could be one? It reminds me of a common problem from the WEB2.0-era, S-EXP. vs. XML vs. JSON. Basically breaking the web unnecessary much. <comment><USER2> They don't solve the same problem. The Wave protocol is a higher-level document-based protocol and WebSockets are a transport layer. In fact they can be used together:

[http://www.waveprotocol.org/protocol/design- proposals/client...](http://www.waveprotocol.org/protocol/design- proposals/clientserver-protocol)

To explain at greater length, WebSockets are much simpler. If you wanted to do something simple, like let your website's users chat with each other, you could whip something up with WebSockets. If you wanted to do something complicated, like a real-time cooperative game, you could use WebSockets as the basic structure that you would built a more complicated messaging system on top of. A WebSocket is a two-ended pipe, client to server, and if you want a more complicated network structure you have to create that yourself.

The Wave protocol is much more complicated and aimed at a more specific case. It is built on the idea of shared documents which is at a higher level than sockets. It contains specifications for things like cursors and deleting segments of text in documents. If you were building a system that did not have something akin to shared documents, it would probably not make sense to use the Wave protocol. But if you were building a system based on shared documents, like an EtherPad clone, then the Wave protocol might be perfect and save you a lot of work.

They are not really direct competitors like JSON vs XML. It is more like comparing HTTP to XML. You could operate the Wave protocol over WebSockets, just like you could send XML over HTTP.

</comment><comment><USER3> One's (very nearly) a socket, the basic communication primitive used by almost everything to implement higher level protocols.

The other is a high level protocol that sits on top of a socket and does all kinds of various presumably-wonderful things, but is not itself a socket. Trying to replace sockets with Wave would be a major step backwards; the reason we need websockets in the first place is that the high-level HTTP protocol embeds assumptions that are not always correct for a given application and therefore gets in the way; Wave would be even worse about that.

Google Wave is one of the many protocols that can be built on a socket. Wave and HTTP are peers, sockets are the foundation they both sit on, WebSockets are as close to sockets as the web will let us get.

(It should be pointed out that WebSockets still are not the ultimate in flexibility; the TCP that WebSockets sit on itself makes assumptions about applications that are not appropriate to all applications, which is why not every packet on the internet is a TCP packet. I've glossed over some other details too, which in my judgment would only confuse at this point.)

</comment><comment><USER4> The Wave Federation Protocol applies the old-school newsgroups philosophy of a local server handling storage and federation of communications (perhaps about a document, as in Google Wave, but more generally about arbitrary things) so that there are far fewer redundant transmissions of data. Bandwidth is much cheaper now than it was in the early days of the internet, but this does have potentially interesting applications.</comment>


GPU Platforms Set to Lengthen Deep Learning Reach - <AUTHOR> http://www.nextplatform.com/2015/12/07/gpu-platforms-emerge-for-longer-deep-learning-reach/ <comment><USER2> It makes no sense to make "x10", or "x40" speedup claims, without mentioning a specific benchmark. I'm guessing the code that scales well with 200 or even 12 GPUs is fairly rare. For example, problems like ImageNet classification with convolutional NNs don't scale well beyond 2-4 GPUs. At some point, you will actually get a slowdown, because of the communication overhead.

</comment><comment><USER3> But why do we (they) keep on calling them GPUs?

And why not improve their form factor? Currently, a GPU hardly fits into a server slot. And a typical desktop can host at most 2-3 of them.

As a radical idea: why not design this type of auxiliary computing power as separate boxes that can be attached to a desktop or server computer by a cable?

<comment><USER4> We call them GPUs because they are built from GPU chips. The Tesla M40 for example is based on a GM200 chip which is the same as in a GeForce GTX Titan X GPU.

Also Nvidia and other assemblers have done exactly that: separate boxes that you attach to servers by a PCIe cable. See for example the Tesla S2050 server: [http://www.nvidia.com/docs/io/43395/nv-ds- tesla-s2050-june10...](http://www.nvidia.com/docs/io/43395/nv-ds- tesla-s2050-june10-final-lores.pdf)

A good list of Tesla systems is at [https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_proces...](https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units#Tesla) (which, coincidentally, I have been heavily updating these last few days).</comment></comment>


SQL Injection through HTTP Headers  - <AUTHOR> http://resources.infosecinstitute.com/sql-injection-http-headers/

<comment><USER2> Reddit.com's response headers:

        Cache-Control: no-cache
        Connection: keep-alive
        Content-Encoding: gzip
        Content-Length: 18170
        Content-Type: text/html; charset=UTF-8
        Date: Wed, 04 Apr 2012 04:50:39 GMT
        Pragma: no-cache
        Server: '; DROP TABLE servertypes; --
        Vary: Accept-Encoding

<comment><USER3> I put that in as a joke years ago. I can't believe it's still there.

<comment><USER4> I've tried to write a program (<https://gist.github.com/392445>) which would be affected by this. It seems it should be `'); DROP TABLE servertypes; --` to actually drop any tables. All I was able to get now is syntax error.

<comment><USER5> I had the same idea: <https://gist.github.com/913402>

<comment><USER2> That's not a valid syntax for INSERT in MySQL. When you use the VALUE or VALUES keyword, it must be followed by a set of parentheses.

</comment></comment></comment></comment></comment><comment><USER6> I once found this in live code which was -- irony alert -- checking Authorization headers. Something of the flavor:

"select user.* from users where TO_BASE64(email + ':'+ password) = '" + headers["Authorization"] + "' limit 1";

(Can't quite remember -- that base 64 bit might have been pre-calculated in a column. It has been a few years.)

One would hope that in addition to fixing the SQL injection they fixed the use of HTTP basic auth over a non-encrypted connection but, well, some stories are probably better left untold.

<comment><USER7> Not to mention storing passwords with a trivially reversible transform...

<comment><USER8> I once worked in a company where another team were responsible for the company flagship services which - after you'd logged in - stored your customer id in a cookie.

That was the _only_ authentication for subsequent requests. And the ids were sequential.

After I demonstrated to them that I could get the CEOs personal details, as well as trivially brute force all other personal details in the system with a bash script calling curl, not to mention run up massive bills (the system allowed setting up phone conferences with up to 30 participants and let you use the web interface to _call out_ to participants worldwide), they thanked me and told me they'd fix it.

Next day they'd released an updated version which they said encrypted the customer id.

Two problems:

No nonce or anything, so if you sniffed it once, you could still trivially use it to "log in" and continue as before.

Secondly, their "encryption" turned out to be base64.

I sent them a new script that showed them how to get the customer id's still. They were amazed that I'd "cracked their encryption".

</comment></comment></comment><comment><USER9> This article does not provide a good pattern for protecting against SQL injections. You can protect against all possible input vectors by using placeholders. Constructing SQL queries with string formatting or concatenation should be avoided. When executing bulk queries it is also more efficient.

      $stmt = $dbh->prepare("SELECT user,password FROM admins WHERE user=? AND password=? AND ip_adr=?");
      $stmt->execute($_POST['user'], md5($_POST['password']), ip_adr())

The above approach does not require that you think about what data you are accepting, and if done through-out your code, others who may not be so pre- disposed to think about escaping will not make mistakes if they copy you.

</comment><comment><USER10> The x-forwarded-for example is the perfect example to explain why you should just escape anything and never try to guess trust boundaries.

Sure. When you started with that query, that IP address likely was just REMOTE_ADDR (guaranteed to not contain "bad" characters), but then the app was put behind a reverse proxy and support for x-forwarded-for was added, suddenly changing the IP address to something user-modifyable.

It costs practically nothing to use your ORM or prepared statements in order to escape all values you put into a query. So just do it and don't try to guess whether you can trust a value or not, because, after all, the source of these values can change, sometimes even without you knowing.

<comment><USER11> It's also a great example of assumptions leading to bugs.

It's not a standard header, it's just a header... a string.

IP addresses may easily be IPv6.

You can easily have comma delimited lists of them.

You don't know how long the input will be.

And unless you are sure that your network is cleaning the incoming requests and setting those headers, you shouldn't even begin to think that they are to be trusted for anything.

</comment></comment><comment><USER12> This seems like a total non-issue. Just CORRECTLY sanitize everything going into the database!

<snark> By the way, just to let everyone know also. You should also sanitize form submissions. </snark>

<comment><USER13> Or, more succinctly, don't trust anything that comes from outside your application stack.

<comment><USER2> Or use prepared statements regardless of the source so that knowing the source, and tracking changes of the source of variables, becomes a non-issue.

</comment></comment></comment><comment><USER14> If using PHP, use PDO and always use parameters.

Use HTMLPurifier to avoid xss.

You still need to be careful if building queries dynamically, such as dynamic WHERE or ORDER by clauses.

<comment><USER15> I'd take that one step further and use an ORM like Doctrine, because otherwise doing trivial stuff is completely annoying. If you don't use an ORM package you quickly start writing your own ORM anyway.

<comment><USER14> Agreed, but even some ORMs (like Yii's ActiveRecord) don't validate the field name in the WHERE part in certain functions.

</comment></comment></comment><comment><USER16> As well as SQL injection plenty of sites do odd things which mean they don't work for plenty of users. There are numerous sites which don't load when sent the header:

      x-forwarded-for: unknown

Whatever they were trying to achieve with this (I'm guessing some sort of reverse IP/geolocation lookup) the effect was that none of the people behind our corporate filter could view their site at all.

</comment><comment><USER17> While building the web performance analytics system at Yahoo!, I took on a daily task to look through access log lines that our parsers didn't like. Things like strange user agent strings, strange referrers, etc. We'd find all sorts of injection attempts in the User-Agent. SQLi, XSS, Shell injection, windows executable injection. Attackers tried whatever they could.

</comment><comment><USER18> If you ever send /any/ client input (or any variable) un-escaped to your DB, I really hope you get your tables deleted as reminder (of course you have a backup, so it will only be a reminder not a disaster).

After 15 years of web development, there is no reason why people still would make this mistake.

</comment><comment><USER19> I guess this is one benefit of a NoSQL database...

<comment><USER20> NoSQL databases are susecptible to injection attacks.

<comment><USER21> Maybe they ment to say 'NoDatabase' database instead? ;)

</comment></comment></comment><comment><USER22> Incredible</comment>


Eating Heavily: Men Eat More in the Company of Women[pdf] - <AUTHOR> http://download.springer.com/static/pdf/496/art%253A10.1007%252Fs40806-015-0035-3.pdf?originUrl=http%3A%2F%2Flink.springer.com%2Farticle%2F10.1007%2Fs40806-015-0035-3&token2=exp=1448033008~acl=%2Fstatic%2Fpdf%2F496%2Fart%25253A10.1007%25252Fs40806-015-0035-3.pdf%3ForiginUrl%3Dhttp%253A%252F%252Flink.springer.com%252Farticle%252F10.1007%252Fs40806-015-0035-3*~hmac=e0848af72364ddf332969bd3f222ea125b6ce74d5ac4ccc1acf73af83908a45e <comment><AUTHOR> The paper comes to the conclusion that men eat more in the company of women due to sexual selection.

I was wondering if maybe men ate more in the company of women because women eat less, and there was more left over for the man.

But the experiment seems to control for this, as the restaurant serves both salad and pizza in an all-you-can-eat buffet style (probably a Cici's?). So there is, in effect, an unlimited amount of food to eat, but the diners can choose exactly how much they want to eat, at slice-level (for pizza) or bowl- level (for salad) granularity.

As opposed to another all-you-can-eat pizza place that might deliver whole pizzas to the table, which two male friends might be more apt to split evenly, whereas the male in a mixed couple might have more pizza available to him.</comment>


So you want to do a PhD (2012) - <AUTHOR> http://youshottheinvisibleswordsman.co.uk//2012/02/06/so-you-want-to-do-a-phd.html <comment><USER2> _Your supervisor is key. You have to like them, because they'll be criticising your work for the next 3-4 years._

This sentence resonates with me particularly. I was encouraged to choose my PhD based on love of topic rather than supervisor. I had multiple topics I enjoyed, but ended up going with a worse supervisor and a topic I thought more interesting than a better supervisor and a slightly less enthralling topic.

After a year, I quit my program.

What I learnt: even though a topic might be slightly less interesting, the people you work with (and in particular, your supervisor) can make you love something more.

(NB: Obviously I wouldn't recommend choosing a topic you have no interest in and/or hate just because you get along with the supervisor!)

<comment><USER3> How do you know whether your supervisor is a good fit? I have heard this advice, and similar stories, several times. But at the moment (I'm finishing my undergrad), it is not clear how the student is matched to a supervisor. For my dissertation, we were reandomly assigned teachers, and they insisted we cannot change them, etc.

Do you normally have time to chat with your potential supervisor, before deciding if you think it could work?

<comment><USER4> I found it is a bit odd that you couldn't pick your supervisor. I think in most universities who you want to work with are up to you and the supervisors who wish to accept you. The best advice for finding a good supervisor is to ask current graduate students. Some supervisors are well known to be good supervisors among grad students whereas others are known for being super mean to graduate students.. Current grad students usually know who are good at supervising. Also ask about the style of supervising. Some supervisors are very hand off but you get little support from them. Others can help you a lot but may impose their ideas onto you.

</comment></comment></comment><comment><USER5> This is valuable advice. The supervisor is absolutely the most important consideration. It is worth pointing out two things that are different in many U.S. universities.

1) PhDs in the U.S. in CS take between 3-10 years to finish. Less if you are in theory and have a strong set of results off the bat that align around a single area. More if you need to build something with a long cycle time, such as create a new architecture and build a chip.

The first 2-3 years will have classes and feel a little like undergrad. After that it transitions into the free-form research as the post describes. Unlike in the U.K., typically you do not have a hard stop at 4 years, and you can find teaching assistantships or other sources of funding to keep going a year or two at a time.

The good news is that you have more time with relative freedom. The bad news is depending on your advisor, it is easy to drift for years without making much progress.

2) In all the U.S. universities I know, the standard state is for you to be employed by the university as a teaching assistant or a "graduate student researcher." This has impact on intellectual property. For example, the University of California used to ask and may still ask all employees to sign a "Loyalty Oath and Patent Assignment Agreement."

</comment><comment><USER6> As a PhD dropout (computer science) who knew a lot of other PhD dropouts, my advice to anyone who thinks they want to do a PhD is to first have a very clear idea of _why_ you want to do it. If you don't have that to motivate you, it's not likely that you'll make it through all those years of hard work, frustration, poverty and abuse.

Especially in computer science, there are lots of opportunities to work on cool stuff without spending several years of your life to get a PhD.

<comment><USER7> I've always thought that Computer Science is a field best mastered through experience in actually programming in your chosen language(s).

I wonder how many people do Master's or PhD programs simply because they want to stay in school.

<comment><USER8> That's if you want to be a good programmer. But I don't see how programming experience is that relevant to solving a lot of the theoretical problems that exist.

</comment></comment></comment><comment><USER4> Such a well written article on what doing a PhD is all about. Too bad that people start focus on the whether-PhD-worths-the-time debate or the PhD-earns- so-little-money talk again... That is not even the focus of the article

</comment><comment><USER9> Hedge your bets by doing a start-up in year 2, which will hopefully be followed by the epiphany that a PhD is a poor metric of intelligence and "permanent sabbatical" has a nice ring to it.

<comment><USER10> So true, gave you an upboat. I can seriously try 5 startups in 4 years and I'm a millionaire afterwards, can research on whatever I want and don't have to prove myself to nobody ever again. If you choose to do a PhD, you're still nothing afterwards and you still have to prove yourself to everybody, uargh...

Also, when I talk to PhDs, they seem like little kids who don't have an idea of anything in comparison to startup founders. --> Do a startup

<comment><USER11> Startup founders are usually discussing consumer products which are by neccessity easy to comprehend. Research students usually delve into issues of high complexity for the task of progressing the state of the art. They don't often have to communicate the importance of their work to people like you.

<comment><USER10> Yeah easy to comprehend in hindsight, obviously. Sorry didn't want to hate against PhD students, but I don't like the institution of a PhD. Most PhD thesises I have seen are just a waste of time of the PhD students. Less in science PhDs, more so in social studies, business...

<comment><USER12> > Most PhD thesises I have seen are just a waste of time of the PhD students

I'm curious why you feel qualified to judge the quality of PhD theses, or whether they were worth the authors' time. There's obviously a gradient in quality, but your post is overly dismissive.

</comment></comment></comment></comment></comment><comment><USER13> most importantly, have the ability to focus on your paper while same- age/younger folks around you are earning way better salary and banging much prettier girls.

<comment><USER14> Because clearly money and girl-banging are the only reasons to choose a career.

<comment><USER15> No they are not, but they sure are important. Anybody who says otherwise is lying or being naive. We all want to find a mate, is in our genes. Those that profess not to want sex are either lying or are sick.</comment></comment></comment>


How to Crack the Account Password on Any Operating System - <AUTHOR> http://www.makeahistory.com/index.php/free-stuff/225-how-to-crack-the-account-password-on-any-operating-system <comment><USER3> Two glaring problems with this (superficial) article:

(1) No modern OS gives up the password hash without a vulnerability that can probably be used for things worse than reading password hashes.

(2) No modern OS uses a hashing scheme that gives up "good" passwords, and no hashing scheme can protect you from horrible passwords.

In penetration testing, password cracking is something you do after your first game-over vulnerability, to make the report a lot scarier. The game was over when you got the hashes, though.

<comment><USER4> The article assumes that you have physical access to computer and the target does have encrypted disk. So getting password hash is trivial. What is remarkable is that on Windows the article recommends bruteforce attack, while on other OS it recommends changing the password. While bruteforce could take more time, its less noticeable, as the real user can log in normally afterwards.

But the real point is that physical access == security fail.

<comment><USER3> There are, of course, more interesting things to do with physical access to a computer than grabbing password hashes.

</comment></comment></comment><comment><USER5> this just in ... hackers leverage physical access to game the system.

<comment><USER6> I'd say they're overcomplicating the problem. Simply install a keylogger in the guts of the keyboard and come back a week later.

If you feel like doing something fancy install a small fsk modulator in the FM band in the keyboard and monitor the typed in stuff remotely, use that to access an image you made of the drive.

</comment></comment><comment><USER7> These all methods assume:

1\. Lack of BIOS protection.

2\. Lack of HD encryption.

You cannot carry out any of those if you set the on-boot password and don't keep your harddrive in plain. TPM adds some additional protection for bootloader itself. Even if they mention it at the end of the article - <USER2> title is really misleading. It's not "any system".

</comment><comment><USER8> In Unixes that uses the shadow system you just mount the partition and simply delete the string between the first and second colon to clean the password (in the /etc/shadow file), the string before the first colon is the username, but this only works for the users that do not use another authentication system (such as NIS or Kerberos). Mac OS X (>= 10.5) uses a different system (10.4 uses the netinfo database), the user information (And I guess that the password, as well) are in /var/db/dslocal/nodes/default/users/ in separate .plist files, I could not check if the password hash are included there since my Mac is at home, if I remember about this later I'll try to come with a password cleaning to OS X in this article later.

In lilo there is a way to not let the user log in in the single user mode without providing the password, I think that grub could be configured to do the same. So I believe the method that the article describes will not work for every linux installation.

By the way, what about some others operating systems, *BSDs, and some that are more exotic (if they use shadow, the method described above works), such as OpenVMS? I do not use windows since forever, so I cannot say much about how the system handles passwords.

<comment><USER9> Here's my user plist file. <http://pastefree.pjkh.com/pastes/87>

<comment><USER8> Thanks, as you demonstrated, it does not includes the password hash, searching on google I found that the password is stored in /var/db/shadow/hash/, a file for each user, I'm reading these:

<http://www.openwall.com/lists/john-users/2008/06/24/2>

[http://www.dribin.org/dave/blog/archives/2006/04/28/os_x_pas...](http://www.dribin.org/dave/blog/archives/2006/04/28/os_x_passwords_2/)

I will do some experiments at home, but I have no clue how to clean an OS X user's password.

</comment></comment></comment><comment><USER10> I think this "Linux" is deadrat rather than anything else; every other Linux I know of requires your root password before you are given the shell in "recovery mode".

But of course, you can just boot from a flash drive and do whatever you want to the target system; add accounts, change passwords, whatever. This is why you use full-disk encryption.

<comment><USER11> If your bootloader is not locked down, change the Linux command line and add: init=/bin/sh

That'll give you a root prompt. You may need to mount filesystems by hand, etc., since init scripts have not run.

</comment></comment><comment><USER12> > To change the password, turn on the computer and press the ESC key when GRUB > appears. Scroll down and highlight 'Recovery Mode' and press the 'B' key; > this will cause you to enter 'Single User Mode'.

I wonder what Linux distributions have this menu entry. Also, some distributions (e.g. Fedora) allow you to use a GRUB password and you can't edit menu entries without it.

</comment><comment><USER9> Not worth reading in my opinion.

Article -> You can reset the passwords on Windows using Ophcrack. And you can reset the passwords on Linux, and OSX by using single-user mode. You can't get the original password or access to encrypted files.

<comment><USER13> Actually, the article says that Ophcrack does deliver the original password:

> _The computer will restart and Ophcrack will be loaded. Sit back and watch > as it does all the work for your. Write down the password it gives you, > remove the disc, restart the computer, and log in as if it were you own > machine._

<comment><USER14> Ophcrack hasn't worked in years. It relied on a feature of W2k/XP that stored a copy of the password in an older less secure hash for compatibility with Lanman shares.

XP(updated) and newer dropped this and use a secure hash - there are services that will brute force it on a cluster for $$$ but it isn't going to take 5mins with an ophcrack boot cd anymore.

<comment><USER13> From <http://en.wikipedia.org/wiki/Ophcrack>

> _Starting with version 2.3, Ophcrack also cracks NTLM hashes. This is > necessary if the generation of the LM hash is disabled (this is default for > Windows Vista), or if the password is longer than 14 characters (in which > case the LM hash is not stored)._

</comment></comment></comment></comment><comment><USER15> As we already know that physical access = game over so design your systems accordingly.

Plan 9 does this by having a central auth server. You lock the it a cupboard and add some armed guards if you need. In fact, booting a Plan9 terminal doesn't even need a password. However if you want to connect to the other systems you're going to need an auth ticket.

Other systems should be using something like Kerberos or a domain controller or whatever schemes are available.

If it is likely someone will have access to your terminal and they might steal from you, storing passwords there is d u m b.</comment>


JavaScript as an alternative to AppleScript on OS X Yosemite - <AUTHOR> https://developer.apple.com/library/prerelease/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/index.html#//apple_ref/doc/uid/TP40014508 <comment><USER2> AppleScript contains some amazingly powerful APIs, but is nearly impossible to write. Having a Javascript (successor?) implementation is going to unleash its full potential. I could see it becoming much more widely used and supported by third party apps. This is wonderful.

In the same cycle that they release a brand new language, they begin the deprecation process for their (only?) other proprietary programming language in favor of an existing language. Pretty cool.

<comment><USER3> As braindead as the language was, the real problem with AppleScript was the bizarre object model, so the Object help doc was full of nonsense methods that did nothing useful. Finding the one method doExactlyOneSpecificThing that matched what you need was always a low-probability event. The opposite of the UNIX philosophy and modular design.

<comment><USER4> is this going to be solved by writing it in javascript though?

Looking at the sample code in this page:

       Mail.outgoingMessages.whose({subject:'JavaScript'})

is doesn't look much better.

<comment><USER5> I never understood the cutesy naming schemes. What's wrong with .filter or .where.

<comment><USER6> Agree. Hopefully (?) it's just JS by the point we get to `Mail.outgoingMessages` so it should be fairly straightforward to mix-in underscore's methods into whatever their 'collection' representation is, the same way Backbone does [1] to give you map/filter/which etc.

[1] [http://backbonejs.org/#Collection-Underscore- Methods](http://backbonejs.org/#Collection-Underscore-Methods)

</comment></comment></comment></comment></comment><comment><USER7> I love AppleScript because whenever somebody asks, "Why don't they make programming languages more like English?" all you need to do is show them AppleScript.

The functionality exposed by OSX apps via AppleScript is often incredible, but the language itself is annoying.

The question is whether or not applications will support it. With the emphasis shifting away from OSX desktop applications to cross-platform and cloud apps, will OSX app developers still take the time to expose scripting functionality?

<comment><USER8> You show them AppleScript and SQL and they say "Wow, what was I thinking, english is a terrible basis for a programming language."

<comment><USER7> SQL is fantastic for relational data - it maps pretty closely to relational algebra.

About all I'd change is placing the column names after the table/object names - "FROM table1 SELECT col1, col2" instead of "SELECT col1, col2 FROM table" because it makes code assist features easier. (Microsoft did this with LINQ)

<comment><USER9> I guess the reasoning for the 'SELECT ... FROM' is that the FROM part is optional, for example you can do stuff like 'SELECT 40+2 AS the_answer' .

</comment></comment></comment></comment><comment><USER10> If anyone wants to do stuff similar to this on earlier versions of OS X (but arguably even more generally) or on iOS they should look at one of my projects, Cycript, an Objective-C/JavaScript hybrid with a highly-bridged Foundation/JavaScriptCore object model that can inject code into running applications.

[http://www.cycript.org/](http://www.cycript.org/)

(I expect to have the ability to introspect and manipulate Swift objects in the near future as well, and have a talk on preliminary research of low-level Swift object runtime metadata at #AltConf a couple days ago. The console will also support some of Swift's syntax, such as the named-argument-style method calls.)

[https://www.youtube.com/watch?v=Ii-02vhsdVk](https://www.youtube.com/watch?v=Ii-02vhsdVk)

<comment><USER11> > earlier versions of OS X

Will Cycript work on 10.10 or are you just saying that you'll have two JS choices now (Cycript and JS Automation)?

I use Substrate all the time, I really need to look into Cycript! =)

<comment><USER10> The Apple thing only works on 10.10 (which most people reading this wouldn't be using currently), so I am saying that there is an option for earlier systems. Cycript actually doesn't work on 10.10 right now (well, it does, but it is frustrating to use as you have to keep saying this. before global variavles) due to a change made in JacaScriptCore that I am unhappy with (talked to some people at Apple, filed a bug with WebMit, and am checking with a friend of mine on the ECMAScript committee), but I have a reasonable workaround I can use for non-Cydget use and for Cydget crazy one-off Substrate hacks are fair game, so I should have everything fixed soon for a new release.

</comment></comment></comment><comment><USER12> Oh Javascript. This has been said so many times before, but why, oh why, has the world converged on this particular language?

Why aren't there saner alternatives to Javascript in browsers? We have so many languages at our disposal, why choose Javascript? Why don't people realize that web programming is not great because of Javascript but _despite_ Javascript?

We are bound to Javascript on the web because browsers, for whatever reason, don't support anything else. But we don't have to make matters worse by dragging this weirdo language unto the rest of the programming world.

But who am I kidding, AppleScript may be one of the few languages actually _worse_ than Javascript.

<comment><USER13> Why don't people like you recognize the greatness of JavaScript?

Which language would be preferable? Perhaps Lua? Not much else with comparable simplicity comes to mind.

<comment><USER14> Scheme.

</comment></comment></comment><comment><USER15> "Because JavaScript is the language of the web browser, and because the web browser has become the dominant application delivery system, and because JavaScript isn't too bad, JavaScript has become the World's Most Popular Programming Language. Its popularity is growing. It is now being embedded in other applications and contexts. JavaScript has become important.

It is better to be lucky than smart."

\- Douglas Crockford, 2008

<comment><USER16> Could not have happened to a better language! It's about time Javascript finally has its chance to shine.

<comment><USER17> That's the whole point, it could've happened to a _much_ better language.

<comment><USER16> Really? I don't see anything particularly wrong with Javascript... I mean, sure it's no PHP, but compared to travesties like Lua (1-based, seriously? What year is it again?) and bloated, convoluted semantic messes like Python and Ruby... well there aren't many choices left!

Google, Mozilla, Microsoft, and Opera (and obviously Apple) haven't exactly been jumping at the opportunity to deprecate Javascript in or out of the web. I mean hell, now we have technologies like Node and asm.js that make Javascript the fastest dynamic language in existence! People are even using it in embedded hardware now! So it can't be nearly as bad as people say.

<comment><USER18> > I mean, sure it's no PHP

Yup, we're getting trolled...

</comment></comment></comment></comment></comment><comment><USER19> A lot of people in this thread have misconceptions about what AppleScript is and what it means for JavaScript to be an alternative. I recommend watching the WWDC session [1] if you can, and skip to 16 minutes in (through minute 20) for a quick explanation of what this actually is.

TL;DR shell scripting for the GUI, not a way to build Mac applications (which you can already do with JS).

Edit: video link

Double edit: Looks like I'm slightly wrong about using JS to build apps this way. You can bundle scripts as applications, and OSA can create windows and controls, so you could hypothetically build whole apps this way. But I'm not sure I would want to.

[1]: [https://developer.apple.com/videos/wwdc/2014/#306](https://developer.apple.com/videos/wwdc/2014/#306)

<comment><USER20> What video?

<comment><USER21> [http://devstreaming.apple.com/videos/wwdc/2014/306xxjtg7uz13...](http://devstreaming.apple.com/videos/wwdc/2014/306xxjtg7uz13v0/306/306_hd_javascript_for_automation.mov?dl=1)

</comment></comment></comment><comment><USER22> Stupid and uninformed question here:

Given Apple's well-known antipathy to the idea of browser engines other than WebKit and scripting languages other than JavaScript on iOS (yes, yes, I know you can find Python/Lua/Lisp/whatever apps on iOS; I mean as a general rule and for inter-app automation), could this be a prelude to allowing some sort of sandboxed-app automation interface on iOS? That is, allow a JavaScript implementation running on iOS to "drive" apps via this object model?

(Genuine question here. I have no idea whether I'm blowing smoke or whether this is a plausible long-term direction for Apple to take iOS.)

<comment><USER19> Genuine answer here. There's no need to apologize for not constantly immersing yourself in the workings of Apple platforms. :-)

JavaScript is just another interface to Apple's "Open Scripting Architecture (OSA)." Previously, AppleScript was the only way to use it. The fact that they added another language indicates nothing about whether OSA will ever come to iOS. My guess is it won't; the new extensions APIs will likely handle any inter-app communication Apple wants to allow, because they are designed with iOS's sandbox model in mind already.

Put another way, Javascript is to AppleScript with respect to OS X automation, as Scala is to Java on the JVM. The existence of Scala does not indicate that the JVM will be ported to the Haiku OS. (There may be a better analogy but that's what I came up with.)

<comment><USER23> There are other language interfaces to OSA. Frontier's UserTalk was an early implementation (and much more useful than AppleScript IMO) IIRC, there are also Python and Ruby bindings as well.

<comment><USER24> Yes and a Perl bridge as been part of OS X for even longer time (just type _man PerlObjCBridge_ form terminal).

Additional refs:

\- [https://developer.apple.com/library/mac/documentation/Darwin...](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/PerlObjCBridge.3pm.html)

\- [http://www.macosxautomation.com/applescript/features/scripti...](http://www.macosxautomation.com/applescript/features/scriptingbridge.html)

\- [https://developer.apple.com/library/mac/documentation/Darwin...](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/BridgeSupport.5.html)

</comment></comment></comment></comment><comment><USER25> so, I'm a little confused here - more than a year ago, the Gnome Project picked Javascript as its primary dev language and it was linked here on HN ([https://news.ycombinator.com/item?id=5169599](https://news.ycombinator.com/item?id=5169599))

That entire thread is around how Javascript is a _bad_ paradigm for desktop. But, _this_ entire thread is how amazing javascript is going to be for OSX.

Let me add that the JS programming model of Gnome is what powers [http://extensions.gnome.org](http://extensions.gnome.org) \- and I have my own extensions in there. Also (and correct me if I'm wrong) the "GObject Introspection" mechanism is fairly analogous to OSA.

So, is there a underlying technical or implementation issue that makes it good on OSX and bad on Gnome ? use case? technology ? OSA ?

<comment><USER26> They're very different use cases.

Applescript is used for automation of already existing applications which will still be written in C++ or Objective C. Applescript, a proprietary language with no other uses, is just being replaced by a much more common language in Javascript so people won't need to learn a new one to automate apps. People don't generally write applications using Applescript and they probably won't be using Javascript, so there's little overlap.

In GNOME Javascript is being used to write the applications in the first place. There is total overlap between Javascript and C/C++.

People see the GNOME choice as both redundant and reducing performance of desktop apps while people see the Apple choice as simply using a common language instead of a proprietary one for scripting.

<comment><USER25> not entirely true. Gnome has a first class language - Vala [1] - that is for writing performant system level applications. And the community is quite active as well - [https://github.com/trending?l=vala](https://github.com/trending?l=vala)

If you think of automation, there have been attempts at bringing flow based programming to the Gnome-JS engine (think of it as Quartz Composer integrated into the desktop) [3] - plus the fact that [http://extensions.gnome.org](http://extensions.gnome.org) is about as automatic as you can get to customize the desktop.

Is it a difference in positioning ? Because honestly I'm a little befuddled on why all the developers on HN get supremely excited about JS on OSX... and not something like NoFlo.js integrated into Gnome.

[1] [https://github.com/GNOME/vala](https://github.com/GNOME/vala) [2] [http://lethalman.hostei.com/maja/index.html](http://lethalman.hostei.com/maja/index.html) [3] [http://bergie.iki.fi/blog/noflo-and- gnome/](http://bergie.iki.fi/blog/noflo-and-gnome/)

</comment></comment></comment><comment><USER27> The thing i'm not totally sold on is that for arg-free alloc/inits, you can forego 'calling' those methods at all so you get code like `task = $.NSTask.alloc.init;` but sometimes you have code like `ObjC.super(this).init;`. So although you're actually initializing a new object, casually glancing through the code makes it seem that you're actually just accessing a property on NSClassName. Jstalk/cocoascript i think get this right with `NSWhatever.alloc().init()`.

Still, it's a bit weird and it makes me think that the poor folks working on this didn't know what the swift folks were doing because if they had, i suspect that the cocoa-bridged syntax would feel even more natively javascripty than it does right now rather than what's here. For comparison

        // in swift
        var color = UIColor(red: 0.61, green: .71, blue: .23, alpha: .8)

        // in js for automation
        var color = $.UIColor.colorWithRedGreenBlueAlpha(.61, .71, .23, .8);

        // but why not use objs for named args?
        var color = $.UIColor({red: 0.61, green: .71, blue: .23, alpha: .8})

Of the two, the swift feels the most js-native to me because you can easily hallucinate the {}s from the third example. But even if you're creating a js bridge and you're apple, why even force people to deal with alloc/init anymore? Even the registerSubclass syntax feels like a concession

Don't get me wrong, I think it's great that we're getting better applescript support via js, but it's definitely an area where the implementation feels like a step back from cocoascript and jstalk, at least with both of those the syntax highlighted when you were engaging in nonidiomatic behavior but at least both tried their best to paper over it.

What should have been a lightweight approach actually feels more heavyweight than writing equivalent code in swift instead, which makes me sad because i like js and i would have really liked for this to have been more approachable.

<comment><USER28> > why not use objs for named args?

Because then there is no way of conveying the order of the parameters. In this case, it's ambiguous whether the method we are calling is colorWithRedGreenBlueAlpha, colorWithGreenBlueRedAlpha, etc.

<comment><USER29> Order doesn't matter in the above example. In the method body you'd reference arguments[0].green when you wanted green.

</comment></comment></comment><comment><USER30> I'm going to miss AppleScript - in both obvious senses of the word. It was a language I used to swear by, and at. I spent hours getting scripts to work, so I've became used to the language's infelicities, but was always frustrated by the lack of tools. Here, for example, is how I gather you're supposed to change the case of a string:

on change_case(this_text, this_case) if this_case is 0 then set the comparison_string to "ABCDEFGHIJKLMNOPQRSTUVWXYZ" set the source_string to "abcdefghijklmnopqrstuvwxyz" else set the comparison_string to "abcdefghijklmnopqrstuvwxyz" set the source_string to "ABCDEFGHIJKLMNOPQRSTUVWXYZ" end if set the new_text to "" repeat with this_char in this_text set x to the offset of this_char in the comparison_string if x is not 0 then set the new_text to (the new_text & character x of the source_string) as string else set the new_text to (the new_text & this_char) as string end if end repeat return the new_text end change_case

I'm assuming that this will be easier using JavaScript... :)

<comment><USER31> There has been no statement that AppleScript is going away or being replaced by JavaScript for Automation. This is simply a case of offering users more choices.

AppleScript's primary target audience is first-time and casual programmers. (Of course, there are professional programmers writing applications and utilities in AppleScript, too.)

</comment></comment><comment><USER32> You know what's pretty cool? This potentially allows native MacOS applications to be written in JavaScript... Not that I can see any reason to do that.

<comment><USER19> (Downvoters of parent, please stop, it's a perfectly reasonable comment.)

While you're correct that JS can now be used to write Mac applications without an Obj-C wrapper, that's not really the point of this.

Anyway, you can already write Mac applications in JavaScript. And iOS applications! This has been true since iOS 7 and Mavericks. [http://strongloop.com/strongblog/apples-ios7-native- javascri...](http://strongloop.com/strongblog/apples-ios7-native-javascript- bridge/)

You _can_ build double-clickable "applets" in AppleScript and JavaScript, but the OSA interface isn't really made for app development, just automation.

However, they do expose all Cocoa and Obj-C APIs to JavaScript, so anything is possible! They even do a demo of a standalone temperature converter at the end of the WWDC session.

[https://developer.apple.com/videos/wwdc/2014/#306](https://developer.apple.com/videos/wwdc/2014/#306)

<comment><USER32> Yeah, I suspect I was a bit unclear there!

I'm pretty familiar with ObjC-Javascript integration and have been working with it for a while. This change offers a nice direct system interface for automation, and one that has access to all of Cocoa.

I also didn't intend to put Javascript down at all - its more that the more complex part of building a MacOS app is working with Cocoa, and Javascript will make that more _complex_ , rather than simpler, just because of the impedance mismatch.

I'm not sure there's a compelling use case for building such apps, but it's still pretty cool!

<comment><USER33> I think you were being downvoted because some people (myself included) roll their eyes when they hear about Javascript yet again. It goes double when there is a good language already out there (I accept Objective C with its warts. Swift actually has me excited to make something).

It actually kind of cool. And the Temperature Converter example showed a lot of the dynamic nature of the objective C runtime. This one presentation actually piqued my interest in looking at os x scripting.

</comment></comment></comment></comment><comment><USER34> As an aside: if you want to use JS /today/ as an OSX Window Manager (hotkeys, resizing, switch screen etc), you should check out: [https://github.com/sdegutis/Phoenix](https://github.com/sdegutis/Phoenix)

I've been using it for a couple of months now, and it's been glorious! So being able to do more things in JS makes me very excited.

</comment><comment><USER35> The problem with AppleScript isn't so much the language as much as the OSA[1] itself which is really hit-or-miss depending upon how much functionality any particular app chooses to make scriptable, much less actually document in its dictionary.

As to AppleScript's deficiencies, in the past I've used py-appscript[2], though apparently it's no longer developed.

1\. [https://developer.apple.com/library/mac/documentation/apples...](https://developer.apple.com/library/mac/documentation/applescript/conceptual/applescriptx/concepts/osa.html)

2\. [http://appscript.sourceforge.net/py- appscript/index.html](http://appscript.sourceforge.net/py- appscript/index.html)

</comment><comment><USER36> > Scripting additions (plugins for scripts) can be used to enhance the > functionality of applications. The OS has a set of standard scripting > additions available. These offer things like speaking text and user > interaction dialogs.

app.say('This is exciting')

<comment><USER37> Scripting additions have always existed...

I used work for a living in AppleScript nearly 20 years ago. Heavy drinking helps block out the memories.

</comment></comment><comment><USER38> I was watching the talk and thinking all the time, Apple just discovered OLE Automation.

Yes, I know that Open Scripting Architecture is also quite old, but having now JavaScript bindings and the types of demos they made, just reminded me of it.

</comment><comment><USER39> Does this mean AppleScript will actually be documented now? The problem historically has been code is written from random examples, without actual reference docs that make it possible to discover what's available.

</comment><comment> jarek-foksa Not sure why people would still want to use JavaScript to interoperate with Cocoa interfaces, Swift is easy enough to be used as a scripting language and it was designed to work nicely with Cocoa.

To me it makes more sense to either go completely native with Swift and Cocoa / Cocoa Touch or use hybrid model where HTML 5 content is embedded with the new WKWebView API (aka WebKit 2).

WebKit 2 framework will become public in iOS 8 and OS X 10.10 which means hybrid HTML5/Native apps will be able to run with full speed thanks to JIT, split process model and other optimisations.

</comment><comment><USER40> The one thing I still like about AppleScript is the GUI scripting. I don't know of any other way to control the mouse position, clicking, and keyboard input using a programming language.

One time I had to fill out a few thousand pdf files and print only select pages from them (like pages 2-4 and 14-22) for a client. I used applescripting because it was easy to write (took about half an hour) and worked consistently. Are there any other ways to do GUI scripting in OSX?

</comment><comment><USER41> If I were a Mac user I could really get behind this if only for the fact that it means support for any language that can compile to Javascript (particularly Clojure)

</comment><comment><USER42> This means I may actually start scripting apps again. Applescript is a bit of a mess, at least I'm experienced with Javascript.

I wonder if this will imply (significantly) better debugging tools? Like a way to debug a javascript-script in Safari, sorta like iOS webviews?

</comment><comment><USER43> You know, Apple essentially made a new way to build full-fledged Cocoa applications using a dynamic interactive language. You could literally write a whole GUI app in a single JS file without even touching Xcode. That's... kinda awesome.

</comment><comment><USER44> I remember that Windows have had very powerful JavaScript scripting for ages (windows xp or earlier), later they forgot about it and created Powershell. Interest ing to see apple now using the same idea on their platform after so many years.

</comment><comment><USER45> It would be cool if they also add some kind of support for swift (or some variant) too.

<comment><USER46> plot twist: a Swift-to-JS compiler

<comment><USER47> will be a very simple step since swift is a llvm frontend and we already have this great tool: [https://github.com/kripken/emscripten](https://github.com/kripken/emscripten)

</comment></comment></comment><comment><USER48> Haven't wrapped my brain completely around this yet, but I wonder if it's going to allow for some cool (and/or dangerous?) crossover write-once-run-in- browser-or-locally apps.

<comment><USER7> I don't think that's the case. AppleScript is the equivalent of shell scripting for GUI appls.

You don't write applications in AppleScript; you use AppleScript to control other applications in an automated way.

You _can_ write AppleScripts with simple dialog boxes and such, just as you can write interactive bash scripts. And while you could theoretically implement an application entirely as a shell script or batch file or AppleScript, it'd be a bit like mowing your lawn with a pair of scissors.

<comment><USER49> While never particularly popular, both Apple (AppleScript Studio and subsequent AppleScript Xcode templates) and third parties (FaceSpan) have provided full IDEs for developing applications with AppleScript.

<comment><USER7> I didn't know that!

<comment><USER49> Incidentally, I'd still mostly agree with your comment, as the underlying script runtime isn't really designed with application development in mind. For example, I'm pretty sure Xcode debugging support for AppleScript doesn't even include breakpoints or related features like single-stepping (Apple's Script Editor certainly doesn't), and that Script Debugger had to pretty much implement its own AppleScript runtime to support these features.

On another side note, while Yosemite is the first time Apple has supplied or supported JavaScript as an OSA language, third parties have integrated the Mozilla JavaScript engine into OSA in the past in what I believe is an abandoned project (Google "JavaScript OSA").

</comment></comment></comment></comment></comment><comment><USER50> This makes me really happy.

I kind've wish they'd used $ for what Application() is, though, to keep an analogous similarity with jQuery and the like.

<comment><USER51> $ = Application;

Easy fix!

<comment><USER48> Not if you want to use the Obj-C bridge, though :)

"The primary access points for the Objective-C bridge are the global properties ObjC and $."

<comment><USER52> Bridge = $;

$ = Application;

</comment></comment></comment></comment><comment><USER53> This is cool because as a programmer I found AppleScript difficult to pick-up quickly. However, after a recent foray into writing scripts for iPhoto and iTunes, the api's and documentation of those apps totally turned me off.

I'll be interested once I see some succinct JS to show me most played songs in last week, or recent photos imported from iCloud.

</comment><comment><USER54> Forgive me for hijacking the thread. The op is currently featured on the front page for 3 different stories. It's pretty cool!

[https://news.ycombinator.com/submitted?id=bpierre](https://news.ycombinator.com/submitted?id=bpierre)

Edit: Didn't mean to sound critical with "is this normal" comment. Just pointing out.

</comment><comment><USER55> ELI5: What is AppleScript and how does it relate to Swift and Objective C?

</comment><comment><USER56> Atwood's Law in action, I love it :)

</comment><comment><USER57> wert da ferk! ( what happened to apple! this is awesome. :D )

</comment><comment><USER43> This is just so insanely insane. I have such mixed feelings about this.

On one hand, it's really exciting that Apple is taking these huge steps in making our lives as programmers easier. And yeah, I wish they had done this when JSTalk came out, but better late than never.

On the other hand, it really sucks that JavaScript is the new universal scripting language. Swift and JavaScript are now the two blessed languages on Apple platforms. I mean, I get why, but man, JS is just so awful.

<comment><USER58> From the spec, it seems that they've improved on a few things (integers being the big one).</comment></comment>


Startup's Deep Roots: Stanford - <AUTHOR> http://online.wsj.com/article_email/SB10001424127887324020504578396912443242512-lMyQjAxMTAzMDAwMzEwNDMyWj.html?mod=wsj_valettop_email

<comment><AUTHOR> This appears to be Clinkle's launch page:

<https://www.clinkle.com/></comment>


NeXTCube Serial Number AA001032 (1993) - <AUTHOR> http://simson.net/hacks/cubefire.html

<comment><AUTHOR> In light* of the Surface's magnesium-based construction, this seemed relevant. Only other Mg-based computer (case) that comes to mind.

[*] sincere apologies for the pun

<comment><USER2> I think some Sony Vaio Laptops circa 1998-1999 used Mg for part of the casing.</comment></comment>


A Slower Speed of Light - <AUTHOR> http://gamelab.mit.edu/games/a-slower-speed-of-light/ <comment><USER2> I'm quite curious as to whether the speed of light across the game space decreases instantaneously when you pick up an orb or whether the change in the speed of light propagates at the speed of... umm light.

Also they definitely need to have a black hole or 2 chucked in and maybe some miniature binary stars orbiting at relativistic speeds

<comment><USER3> It's instantaneous. There's no answer in physics for what should happen when you change the speed of light because that simply just can't happen. Therefore we didn't bother doing something like prorogation at the speed of light.

We don't do gravity calculations, along with a few other things because we didn't have time and they make the other effects hard to see.

In the future I would have liked to continue with the project and implement some of this though.

<comment><USER4> Cannot happen? Would we able to detect it if it actually did happen?

</comment></comment></comment><comment><USER5> I remember reading a science fiction novel based on a similar idea perhaps 20 years ago. It was pretty good.

[http://www.amazon.com/Redshift-Rendezvous-John- Stith/dp/1880...](http://www.amazon.com/Redshift-Rendezvous-John- Stith/dp/1880448580)

<comment><USER6> Man, the perils of tech. I read these comments over lunch at my desk, bought the book on my phone and read the first chapter. It's _way_ too easy to spend money these days.

On the plus side, I think I'm really going to enjoy this one. Thanks for the recommendation. :-)

</comment></comment><comment><USER7> Also of interest: Velocity Raptor <http://www.testtubegames.com/srel101.html>

<comment><USER8> Just finished the game, it perfectly simulates contractions and time dillation on a 2D surface, check it out.

<comment><USER9> Thanks for playing, tgb and dexter!

</comment></comment></comment><comment><USER10> Very interesting, although I dislike the "ice rink" feel. It makes the game very difficult to control. I'm unsure if this is intentional.

A sandbox approach might be good. I found myself wanting to experiment and change the speed of time myself.

</comment><comment><USER3> I(Ryan Cheu) was on the team that made this if anyone has questions!

Most of my work was on implementing the actual calculations for relativistic effects.

It was coded in Unity Game engine in C# mostly. The hard calculations are actually all calculated in a shader written in Cg (mostly just C) so they're on the graphics card.

<comment><USER11> Is there a description anywhere of exactly how the FOV/perception of distance changes as you get closer to _c_?

Also why is it that you can't see the Lorentz transformations until the final orb? I'd have thought that they'd be apparent _somehow_ \-- is it somehow cancelled out by visual effects?

<comment><USER3> The papers I read in preparation for the project and my main references:

<http://dl.acm.org/citation.cfm?id=234537> <http://dl.acm.org/citation.cfm?id=91423> [http://tobias-lib.uni- tuebingen.de/volltexte/2001/240/pdf/01...](http://tobias-lib.uni- tuebingen.de/volltexte/2001/240/pdf/01dissertation.pdf) [http://www.google.com/url?sa=t&rct=j&q=&esrc=s&#...](http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB4QFjAA&url=http%3A%2F%2Flink.aip.org%2Flink%2F%3FAJPIAS%2F75%2F791%2F1&ei=746VUJLqMo600QHvjYH4CQ&usg=AFQjCNHtynoupTgY-D5NZV9w_OOWBWO4jw&sig2=68Vkty5ot144kQWRxWu1MQ)

There were also a few other documents I had but they don't appear to be hosted online anywhere.

The Lorentz transformations are not as apparent as the visual effects, they're not canceled out though. You can actually see them, try speeding up and slowing down when you have >50 orbs. You'll see a warped view and such :)

<comment><USER11> I saw a qualitatively different type of warping at 100 orbs than I did at 99. For instance, at 100 orbs, I would see the tops of arches bend and distort as I approached them. No such effect was visible at 99 orbs. I'd pull it up again just to double-check, but it's a bit of a pain to actually collect enough orbs -- a freely adjustable mode once you've beaten it once would be nice :)

I also would have expected to see some sort of length contraction evident in things like the fence post spacing, but I never noticed any.

<comment><USER3> There was no difference in the calculations at 100 orbs, we just let v/c get much closer to one. The effects were actually there before 100 orbs you probably didn't notice much because of the colors! Internally the colors and Lorenz and time invariance calculations effect different things, the 100 orb stage just removes the operations done in the fragment shader--the vertex sharer remains unaffected.

</comment></comment></comment></comment></comment><comment><USER12> It's Motion Sickness Simulator 2012! No, seriously, I've never had motion sickness from FPS games but this one made me feel pretty uncomfortable. Those who do get motion sickness should consider themselves warned.

That aside... it's not the first game/toy about illustrating relativistic effects that I've seen before, for instance there's <http://lightspeed.sourceforge.net/> and a funny little Flash game that I've tried: <http://www.testtubegames.com/velocityraptor.html> . Neither of them were very much fun.

This game was not very much fun either, but there was some promise, because at the end once I'd gathered all the orbs by moving slowly and methodically, I enjoyed skating around the level and trying to go as fast as possible without bumping into things. Hopefully someone will use the engine (they say they're releasing it next year) to do something really good.

<comment><USER13> Hans Moravec created a relativistic version of SpaceWar! in 1971:

<http://mathforum.org/kb/message.jspa?messageID=274527>

</comment></comment><comment><USER14> The site seems to be suffering a bit. Here's the cache: [http://webcache.googleusercontent.com/search?q=cache%3Ahttp%...](http://webcache.googleusercontent.com/search?q=cache%3Ahttp%3A%2F%2Fgamelab.mit.edu%2Fgames%2Fa- slower-speed-of-light%2F&oq=cache%3Ahttp%3A%2F%2Fgamelab.mit.edu%2Fgames%2Fa- slower-speed-of-light%2F&sugexp=chrome,mod=0&sourceid=chrome&ie=UTF-8)

<comment><USER15> In case you're not able to download the mac version because the speeds are slow, here is a magnet link for it.

magnet:?xt=urn:btih:1828bafc3135e0b326d31c5030003d7004a86433

<comment><USER16> Anyone got magnet for windows version? I got 15KB/s from the site

<comment><USER15> magnet:?xt=urn:btih:1828BAFC3135E0B326D31C5030003D7004A86433 (windows)

</comment></comment></comment></comment><comment><USER17> Looks very psychedelic. It's interesting how simulating a variable speed of light creates the same visual effect as that produced by ingesting psychedelic mushrooms or LSD. Not just the color spectrum, but also the distance/space distortions one reports while tripping. I guess those mushrooms in the game are not a coincidence. Wonder what the connection is there then.

<comment><USER3> Our initial plans involved mushrooms that grew due to the time dilation. They were nice because they could grow straight up so we had easy time calculating past positions. We only later realized the connection that you could make.

</comment></comment><comment><USER15> Once you get all 100 orbs and you get close to the speed of light you're in for a treat. It gets rid of the funny color saturation effects and you only see the Lorentz transformation. I'd like to know the secret incantations to be able to modify the speed of light manually. (Once you walk fast as light, the game abruptly ends)

<comment><USER18> I think if you don't go under the white arch, you can stay indefinitely in Lorentz transformations mode. At least, I stayed that way for several seconds if I avoided that arch.

<comment><USER19> ESC also seems to end it if you have 100 orbs, instead of taking you to the settings screen as I would have expected.

Also, be careful running with 100 orbs. I ran into a fence and got stuck on it.

<comment><USER15> the same thing happened to me (getting suck in the fence), and pressing escape to try and turn the colors back on.

</comment></comment></comment></comment><comment><USER20> Not available for Linux! :(

<comment><USER21> That's something I didn't expect from MIT. It's ridiculous that they only support Mac and Windows.

<comment><USER22> Apparently the prolbem is that Unity3D still doesn't deploy to Linux, although the next major version will.

</comment></comment></comment><comment><USER23> The Lorentz transformation (as I understand it) pertains only to inertial reference frames moving at constant velocities relative to one another, hence the "special" rather than the "general" theory. However, the player seems to be able to stop, start, or change course at will. Wouldn't those actions cause lots of effects (e.g., gravitational waves, etc.) that are not accurately modeled in this simulation?

<comment><USER24> The special theory can handle acceleration perfectly well. What it can't handle is gravity.

Therefore the game is fine in so far as it has been presented.

</comment></comment><comment><USER25> I don't understand why the colors are changing. Shouldn't the doppler effect not apply if the speed of light is the same for all observers?

<comment><USER26> With sound waves, your speed is added to the speed of sound and you hear a different note. With light, the speed remains at c, but perceived energy of the photons is still affected (energy must be preserved after all). And energy ~ wavelength ~ color.

You can also think about it being one of these "zero (weight of a photon at rest) multiplied by infinity (energy of objects moving at c) gives a finite number (actual energy of a photon)". The last number still behaves nicely.

<comment><USER25> So, the speed of an observer affects its perceived energy of light. How does "conservation of energy" apply? (I don't know what is contributing to the energy of this system.)

<comment><USER27> If you imagine an idealized light source, where photons come into existence out of nowhere, then there is no conservation of energy (energy is being created). But in a more realistic model where photons are emitted as a result of electron excitation, say, energy is conserved because the electron recoils when firing off the photon, so the extra observed energy of a blueshifted photon can be found in the extra kinetic energy of the electron as observed in that same frame of reference.

</comment></comment></comment></comment><comment><USER28> any one get it running in wine? i get through all the menus and story slides but then boom.

<comment><USER29> I got the same in windows (7, x64)

<comment><USER30> Works for me on Windows 7, x64. Try updating your DirectX.

<comment><USER31> Doesn't seem to work for me either on Windows 7 64bit.

Just installed direct X from microsoft's site, still no joy. Crashes just after intro.

Any other libraries I might be missing?

</comment></comment></comment></comment><comment><USER32> Someone should do the same with quantum mechanics by increasing the Plank constant.

<comment><USER33> I wonder how complex it would be to have a physics engine that allows for arbitrary changes in fundamental constants.

<comment><USER34> The thing is, most game engines don't even simulate Newtonian physics very accurately; it would be much too computationally expensive to do so. Gravity only works on certain objects and is usually a constant acceleration applied along the vertical Cartesian axis, objects are composed of at most a couple dozen perfectly rigid parts attached together at defined joints, liquids and particles are simulated in batches using only rough heuristics, and so on. If we were to allow arbitrary changes to fundamental physical constants, the game engine would have to simulate the world from the quantum scale up.

That's a hard damn problem. There are some extraordinarily well-funded research groups that are struggling to model any reasonably large number of interactions at that scale. State of the art supercomputing clusters can currently simulate systems of hundreds of thousands of atoms, not even in real-time, and they're still making some assumptions along the way, which might not hold true if you were to arbitrarily modify any fundamental constants.

You could probably write a physics engine that passably pretends to simulate some (non-arbitrary!) changes in fundamental constants. But it would be hard to guess what matter would even look like for different values of, say, Z0.

<comment><USER33> Yeah, I completely expect 99% of the changes to just resolve to "this is something we can't possibly simulate"

</comment></comment></comment></comment><comment><USER35> This is both very interesting and a little painful for me. It's one of those ideas that I've always wanted to try, but never got around to. In a way it's nice that someone tried it anyway.

<comment><USER36> With 0x10c around and discussions on space combat realism I was thinking about some form of semi-realistic space "naval battle"/wargame.

So the first thing I thought was, well low-scale speed of light giving wonky graphics is both cool and help getting the feel of relativity, but what about some Homeworld or a Master of Orion type of game with relativity ingrained inside the game rules and mechanics? Probably the music sounding Homeworld- esque helped.

<comment><USER37> I imagine it would be quite difficult to have working multiplayer relativistic mechanics. So far, I can only see single player mechanics working, which would restrict the appeal of such a game.

<comment><USER38> Yeah, multiplayer without a unified sense of "time" doesn't seem to work very well...

<comment><USER36> That's only partly true.

Consider a turn-based game: a turn being irrevocably discrete and the same for all players, each entity, depending on its relative speed - hence time dilation/compression ratio - would get a different number of action points to spend each turn. You can globally compute each item action points because you're simulating the game universe.

You can extend this to virtually continuous time by compressing/dilating time depending on the player's relative reference frame, and then you could cap the flow of time so that min_flow=real_time or max_flow=real_time, or even mean_flow=real_time. I could see this becoming a problem for say, a FPS game where the player would feel relativity as time slows down or goes faster, but for a much more global game applying such a scheme would make him witness each unit/planet/whatever relative reference frame time dilations/contractions from a sort of god-like reference frame. In a single player scenario (where you don't need base time flow synchronicity between players) this god-player could even change his own reference frame by scaling his base time flow between say min_flow and max_flow.

<comment><USER11> I don't think it is quite that easy.

Try modelling the twin paradox that way, for instance...

</comment></comment></comment></comment></comment></comment><comment><USER39> Really cool concept! It takes a little while to wrap your head around what's going on but as you get deeper into it things start to make sense. The faster you move backwards the more light you lose which is rather disconcerting.

It's totally worth getting to the end (took me about 10 minutes) so you can play around for a moment without the colour shift affects. Would be really cool to have a version where you could do that.

Well done to the creators.

</comment><comment><USER40> Doesn't run on Intel HD 3000 graphics, apparently. Alas.

<comment><USER3> I believe it breaks if you don't have a lot of memory on your GPU. Never got around to fixing that.

</comment></comment><comment><USER41> Shouldn't mass be increasing as light slows down?

</comment><comment><USER42> It's _barely_ playable on my 2011 MBA. Seems like the limitation is on the CPU side though. Either it's fairly unoptimized, or this relativistic stuff is just really demanding.

It's quite awesome anyways. Funnily if you change direction, that alone triggers no relativistic effects.

<comment><USER43> Oddly enough it runs great on my late 2010 MBA.

<comment><USER11> Different MBAs have different CPUs -- I remember having the option to upgrade when I bought mine, and the base 13" is beefier than the upgraded 11".

 _e:_ Ah, but it actually runs fine on my 2010 unupgraded 11" Air. I'd guess a higher resolution screen would hurt performance, though.

<comment><USER42> Maybe it's because the 2010 MBA had NVidia graphics, and the 2011 has Intel.

</comment></comment></comment></comment><comment><USER44> Also there was <http://realtimerelativity.org/> a while ago, which simulates motion pretty close to C. Don't know which one is more "realistic", but it shows much more pronounced effects

</comment><comment><USER45> What a great idea. The "rainbow colors everywhere" effect if kinda annoying, but the concept is awesome. As they say, that's what I would expect from the MIT Games Lab.

</comment><comment><USER46> That video is kind of annoying. More gameplay, less talk.

</comment><comment><USER47> Is it even a game? It seems to me like a very interesting simulation but I don't see game design there...

<comment><USER11> The best definition I've seen for what constitutes a game is this: _A game is an experience created by rules_.

That captures what distinguishes a game (as an artform) from other media. You could throw in some qualifiers to perhaps narrow it down (is paying your taxes a a game?) but it's not really necessary.

<comment><USER48> A prison sentence is a game?

<comment><USER11> Like I said, you can try to narrow it down, but it's pretty hard to define a rigid line between _art_ and _not art_ in any medium.

Although your particular example is kind of amusing, given the prominent role of the Prisoner's Dilemma in discussing elementary game theory! :P

</comment></comment></comment></comment><comment><USER49> They say it is open source but I can't seem to find the repository. Anyone else see it?

<comment><USER50> Quoting from the site:

> IN PROGRESS OpenRelativity is a set of tools for simulating the effects of > traveling near the speed of light in the Unity3D game engine. > The team is > currently refining the documentation, usability and features in > OpenRelativity, targeted for release as a free, open-source package in 2013, > to allow others to produce more simulations and games about traveling near > the speed of light.

So, it will only be availible in 2013

</comment></comment><comment><USER16> I immediately thought 'space (combat) sim!' when I heard that the engine was open.

</comment><comment><USER51> Ladies and gentlemen, I think we found the Portal 3 game mechanic.

<comment><USER52> What? There's not going to BE a portal 3...

However, this may be the Portal 2 Episode 1 game mechanic.

</comment></comment><comment><USER53> This needs to go up on Steam yesterday. Or tomorrow, depending on your frame of reference.

</comment><comment><USER53> I may be off-base here, but isn't the length contraction backward? Things should appear closer as you approach the speed of light, not farther away. And, it should not matter if you move backward or forward to observe that effect, yet it does (try moving backwards).

Also, relativistic motion doesn't appear to affect the movements of the other actors, though it's kind of hard to tell for certain.

<comment><USER54> With my very limited understanding, my impression is this:

As you move in relativistic speeds, your eye hits more photos, even those going sideways (or backwards), because the photons at an angle are slower than your eye (imagine a car moving fast through the rain, even drops that go in the other direction will hit your windshield).

Therefore, your field of vision grows (you can see things behind you), but only when walking forward.

I haven't read anything about going backwards, but I imagine that your field of vision would shrink, as you are now faster than photons that would previously hit your eye. My guess is that you would only see photons coming directly to you from your front, until you reached the speed of light and went blind (or could see 360 degrees, moving forward).

<comment><USER55> Photons always travel at the speed of light in every frame of reference. Only the medium matters, not the observer's speed.

The observable change is the separation between photons (wavelength) caused by a moving source.

<comment><USER54> Photons traveling along an X axis are traveling along a Y axis at 0 m/s. If you're traveling along the Y axis, you're going faster.

<comment><USER56> Except that's not what we measure. Instead we find the speed of a photon depends only on the medium, not on the motion of the source or receiver.

<comment><USER54> You aren't listening to me. The speed of the photon is c in the direction it's traveling, a photon traveling due west is going north with no speed at all.

<comment><USER57> I don't think it makes sense to say that the speed of a photon is c "in a direction", since speed is a scalar quantity.

(correct me if I'm wrong, I'm terrible at physics!)

<comment><USER11> Here, speed is a measure of the magnitude of velocity. It's perfectly acceptable to describe velocity (or a component thereof) as speed in a particular direction.</comment></comment></comment></comment></comment></comment></comment></comment>


Engineered Tissue Folding by Mechanical Compaction of the Mesenchyme - <AUTHOR> http://www.cell.com/developmental-cell/fulltext/S1534-5807(17)30989-9 <comment><USER3> Congratulations! Very cool.

The goopy proteinaceous environment ("Extra Cellular Matrix") between living cells has such a strong effect on the communication and structure of tissues. And using concepts like tension and adhesion as signals, the ECM seems to act to communicate and coordinate cells across long distances.

The work here is some of the more 'complicated' 3D tissue engineering - <USER2> in an effort to understand the generic organizational design rules of tissue construction. Their control of multiple cell types, in 3D, at single-cell resolution lets them start to ask (and answer) interesting questions about how to go about designing (and altering) tissues of the kind that we are made of.

And with some of that knowledge those communities (tissues) even seem engineerable:

"The predictable relationship between strain and curvature observed in these cell-ECM composites allowed us to program the autonomous folding of tissues into a variety of 3D architectures bearing striking similarity to structures found in vivo, as well as into entirely novel geometries. The folding process is analogous to the autonomous folding of abiotic materials into complex shapes."</comment>


Crashbase - <AUTHOR> http://crashbase.info

<comment><USER2> VC money will definitely flow forever. People get bored of the same old. New ideas and products will always have value.

</comment><comment><USER3> Needs a countdown widget...</comment>