So You Think You Have a Power Law (2007) - <AUTHOR> http://bactra.org/weblog/491.html <comment><USER2> Rule 6 of Akin's Laws of Spacecraft Design _:

6\. Everything is linear if plotted log-log with a fat magic marker.

_[http://spacecraft.ssl.umd.edu/akins_laws.html](http://spacecraft.ssl.umd.edu/akins_laws.html)

<comment><USER3> I was surprised to not see my favorite NASA quote... "no situation can be so bad that it can't be made worse"

</comment></comment><comment><USER4> Back in my academia years, I was really frustrated with that group of researchers, "cult of power law" I called them - mainly centered around Santa Fe Institute.

In all their talks, the pattern was always the same: 1) take a dataset from some random system, and strip it from all its domain context ("interdisciplinary" research) 2) brag about being a "physicist" thus applying a "physicist's" approach to new areas of research 3) plot data on log-log scale - kind of looks like a power law 4) make a toy model and use it to "simulate the system" 5) plot simulation vs real data on log-log scale -- kinda look the same 6) promise that your trivial little model will reveal whole new horizons for that field you know nothing about - because others are stupid and you're a "physicist" 7) write a grant proposal

</comment><comment><USER5> Power laws and scale-free networks are discussed in [https://arxiv.org/abs/1801.03400](https://arxiv.org/abs/1801.03400) with HN comments at [https://news.ycombinator.com/item?id=16144867](https://news.ycombinator.com/item?id=16144867). Both this and the cited paper are worthwhile reads for power law users.

</comment><comment><USER6> You can't use a goodness of fit test to claim that your data follows a power law (or any distribution). You can only use a GoF test (such as Kolmogorov- Smirnov) to collect evidence that your data don't follow some hypothesized distribution. And if you collect enough data, your GoF test will reject every hypothesized distribution.

<comment><USER7> That's where #6 comes in:

>Use Vuong's test to check alternatives, and be prepared for disappointment. Even if you've estimated the parameters of your parameters properly, and the fit is decent, you're not done yet. You also need to see whether other, non- power-law distributions could have produced the data. This is a model selection problem, with the complication that possibly neither the power law nor the alternative you're looking at is exactly right; in that case you'd at least like to know which one is closer to the truth.

</comment></comment><comment><USER8> Note that paper appeared in SIAM, not "Reviews of Modern Physics" or some place where physicists might read it.

(Speaking as someone who wrote a probably invalid paper about power laws and who had Mark Newman working just across the hall in the 1990s)

</comment><comment><USER9> Can anybody say which kind of function on these graphics?

Distribution of atoms in Solar systems looks like cos(m): [https://upload.wikimedia.org/wikipedia/commons/e/e6/SolarSys...](https://upload.wikimedia.org/wikipedia/commons/e/e6/SolarSystemAbundances.png)

Star clusters, looks like sin(s): [http://cdn.iopscience.com/images/0004-637X/725/2/1717/Full/a...](http://cdn.iopscience.com/images/0004-637X/725/2/1717/Full/apj371793f4_lr.jpg)

Exoplanets, looks like sin(m): [http://exoplanets.co/img/exoplanets-mass- distribution.jpg](http://exoplanets.co/img/exoplanets-mass-distribution.jpg) (more at [http://exoplanetsdigest.com/author/yaqoob/](http://exoplanetsdigest.com/author/yaqoob/) )

<comment><USER10> Star clusters look like normal. Exoplanets looks like 2 normals added up (probably because of 2 different detection procedures).

Distribution of atoms in the Solar System is the weird one. No idea what it is.

<comment><USER11> Yeah, the distribution of elements is weird and wonky because it depends on a lot of details about nuclear physics. First off, nuclei with odd number of protons or neutrons are less stable than nuclei with even numbers. That is what causes the staggered bumps every-other element.

The low-mass region is largely determined by stellar nucleosynthesis. After helium, largely works by shoving more helium atoms on. So, to you get lots of Carbon-12 and Oxygen-16, which are kind of like 3 or 4 helium nuclei stuck together.

The heavier regions get really weird, because those depend on the r-process. Some astrophysical events spit out heaps and loads of neutrons, which stick to nuclei. You go way the heck away from stability, then beta-decay back once things calm down. What products you get depend on the reaction rates of hundreds of possible reactions, few of which can be experimentally measured in a lab, because there is no way to make that strong of a neutron source.

Explaining that distribution is a topic of many, many dissertations, and does not in any way reduce down to a simple law.

Source: am nuclear physicist

</comment></comment></comment><comment><USER12> Any similar articles or advice about power law relationships in general (not distributions)? I've fit a lot of data to power law relationships in the past but don't know if there are any non-obvious pitfalls. I can recognize when a power law obviously won't work, but as has been said, a lot of data can look like a power law relationship. So for each obvious failure of a power law relationship, there are a certain number of false positives.

</comment><comment><USER13> Why do you guess that their paper from June 2007 mentioned in the blog was only released February 2009? Seems like a long revision period.

Nothing important, just threw me a bit off guard seeing the date of the blog post and the authors own prediction "forthcoming (2009)". But maybe he edited the blog once he knew when the paper finally came out.

<comment><USER14> I know for a fact that Clauset, Shalizi, and Newman first submitted their article to Reviews of Modern Physics. It was rejected there and then submitted to SIAM Review, which published it at one round of revision. SIAM Review back then was not known for being a "speedy" journal.

</comment></comment><comment><USER15> Title should have: (2007).

<comment><USER16> Added. Thanks!

</comment></comment><comment><USER3> IMHO this feels like quibbling as the author doesn't make clear when this would actually make a difference.

<comment><USER17> > the author doesn't make clear

he makes the point across several points (4, 6, and 7 and maybe 1) which is that using a power law gets tail estimates very badly wrong (or they fit the tail and then get the distribution of the rest of the domain wrong).

</comment></comment><comment><USER18> This a fascinating article that provides lots of worthwhile information for anyone planning in fitting a power law to their data.

I will probably never read another of the author's writings due to the pervasive negativity.

<comment><USER19> I don't see any negativity in this article, outside of maybe the headline and the first paragraph. It consists almost entirely of constructive suggestions for how to do data analysis.

</comment></comment><comment><USER20> I used a power series to approximate the radius of a planet to its mass for a webgl space game I'm making [0] where solar systems are randomly generated. I needed something to roughly approximate the size of a planet or star based solely on mass. Using the 8 planets + (sedna & pluto) and our star to generate the curve function I got a r^2 value of 0.989. [1]

I'm not about to make some scientific claim based on it but for my purpose (a neat game) using a power series to approximate mass was an extremely efficient and simple solution to my problem.

[0] [http://thedagda.co:9000/](http://thedagda.co:9000/)

edit: if you have an xbox controller you can use this: [http://thedagda.co:9000/?gamepad=true](http://thedagda.co:9000/?gamepad=true)

[1] [https://docs.google.com/spreadsheets/d/1GKPNNMJrZMaf8aQqgGD-...](https://docs.google.com/spreadsheets/d/1GKPNNMJrZMaf8aQqgGD-9DNJMkYVO7BKJvAIQL9o5aI/edit?usp=sharing)

<comment><USER21> Yeah that's a power law. It would have been pretty easy to see had you used a log-log plot.

<comment><USER22> This is literally what the article is arguing against doing.

<comment><USER21> They're cautioning against drawing statistical conclusions from it. That doesn't mean the log-log plot isn't more useful than the linear plot.

Also they seem to be talking about a power law distribution, whereas here we're talking about the dependence of two variables. As a first step plotting them on a log-log plot and saying 'yeah, looks straight' is fine. Among other things this tells us the dependence is suspiciously close to a cubic root law, which could possibly be justified using dimensional analysis.</comment></comment></comment></comment>


Who's minding the nukes? - <AUTHOR> http://www.cbsnews.com/news/whos-minding-the-nuclear-weapons/

<comment><AUTHOR> There's some tidbits about the computer systems used in the missile launch facilities, e.g.:

Lesley Stahl: And they're using really, really, really old computers. I saw a floppy disc and not a floppy disc that size [indicates a 3.5 inch floppy]. It was gigantic.

Jack Weinstein: I'll tell you, those older systems provide us some -- I will say huge safety when it comes to some cyber issues that we currently have in the world.

Lesley Stahl: Now, explain that.

Jack Weinstein: A few years ago we did a complete analysis of our entire network. Cyber engineers found out that the system is extremely safe and extremely secure on the way it's developed.

Lesley Stahl: Meaning that you're not up on the Internet kind of thing?

Jack Weinstein: We're not up on the Internet.

Lesley Stahl: So did the cyber people recommend you keep it the way it is?

Jack Weinstein: For right now, yes.</comment>


On-demand booth spaces for those on-the-go - <AUTHOR> https://lodge-pods.herokuapp.com/?ref=producthunt <comment><USER2> Any guess on how long until these are used for prostitution?</comment>


Meet the man who flies planes from the ground - <AUTHOR> http://www.wired.co.uk/magazine/archive/2014/01/features/remote-control-aeroplane

<comment><USER2> This has been on the front page for hours. Only 30 votes and no comments. Odd.

<comment><USER3> Title looks like a link bait that's why. Every plane flies from the ground.

</comment></comment><comment><USER4> Whatever her reasons, Missy Cummings frequently overstates the role of automation as it's currently used in commercial aviation in her public comments.</comment>


Developers Bailing on Twitter - <AUTHOR> http://staynalive.com/articles/2008/06/19/developers-bailing-on-twitter/ <comment><USER2> This is all just market hype. Twitter is still as useful as it was yesterday, even though it may have its problems.</comment>


Co-founder won't move to the valley if accepted by YC. What do I do? - <AUTHOR> Well, I had a kinda ugly conversation with my team yesterday. I'm starting on our YC application for the winter term, and of course the first question is "will you move to the valley Jan-Mar if accepted?". My answer is a resounding "hell yea!" but my co-founder, and our #3 guy both said no.
This is not the first symptom of lack of dedication from my others on my team. I quit my job last November (wow, 10 months already) to work on the startup full time. I've done 85% of the code, server admin, graphics, everything. I'm pretty much running the operations by myself
Co-founder is not a technical person, but does a good job with idea generation, responding to our alpha users, legal documents and creating bug tickets for me to fix ... but that's about it. He doesn't do much in the way of progressing the product to be ready for market (which is what we need most right now). I've urged him many times to join me full-time, I'll teach him basic web design and testing, I'll of course still handle the complicated stuff. He has a very good job (he's MUCH younger than anyone in his industry) at a private equity firm, and won't leave that without some guarantee of funding his relatively high cost of living for at least 6 months or so.
#3 guy is a talented developer, but also has a full-time job, new wife, and other projects. We work great together. The hard part is getting together. I don't think he's got the "startup drive" that must of us have, though. I didn't really expect him to say yes.
My predicament is pretty clear. I need help getting our product market-ready (public beta is supposed to be this month, but it won't be everything that I wanted it to be) and I'm hitting a wall from my team. I can do a lot by myself, but I'm still only one person.
I want so badly to be in the YC environment, working with smart people all around. It's been 10 months now of me hacking away alone in my condo ... getting very antsy. If I got accepted, I'd pack up right away and plan on a permanent move out west (It's always been a dream of mine to live out there).
Part of me is thinking that I need a new team. Or maybe just another technical founder. Will YC even consider me with a non-committed team as baggage? Should I apply just by myself? Please share your advice. <comment><USER2> YC isn't for every startup. Viaweb couldn't have done it in the winter; I couldn't have gotten Rtm and Trevor to move. Yet they were good cofounders to have.

It's always a judgement call whether one's cofounders' inability to move is a sign of general lameness, or whether they're so good that they're worth having anyway. But it's that deeper question you need to answer. If your cofounders are lame, you should ditch them regardless; and if they're not, don't worry about YC, because good cofounders are worth more to a startup than we are.

<comment><AUTHOR> Paul, thanks for the reply. I know that YC is not the end-all be-all, but I do think it would be a great way to increase our chance of success. I don't think my co-founder is lame at all. Actually he's a super smart guy, we have known each other for 7 years, and have started and sold one moderately successful startup together during college.

What is frustrating that maybe you didn't understand before is that we're not working together now as it is (in two different cities ... at least a 2hr plane away). For my own saneness, team energy, and for the sake of teamwork, I thought that moving to YC would be a great opportunity for us to actually work in the same room together, and have support all around. I know that if that happens, we will do great things.

btw ... I'm gonna apply anyway. So, you'll hear from me again soon.

</comment></comment><comment><USER3> The truth is you can't succeed with that type of a team. Read PG's article "How Not to Die". A great quote is:

"The number one thing not to do is other things. If you find yourself saying a sentence that ends with "but we're going to keep working on the startup," you are in big trouble. Bob's going to grad school, but we're going to keep working on the startup. We're moving back to Minnesota, but we're going to keep working on the startup. We're taking on some consulting projects, but we're going to keep working on the startup. You may as well just translate these to "we're giving up on the startup, but we're not willing to admit that to ourselves," because that's what it means most of the time."

I've run into similar situations before. This is a serious problem and one you should deal with immediately, because it will only get worse. Have an honest, tough talk with your team. It sounds like you won't convince them to put it all on the line like you have, but at least you'll know and you can make an arrangement so that you're moving forward with the company and not having this looming over your head. If worse comes to worst, tell them you are going to move on because its sounds like you are pretty talented and there are many opportunities for someone like you.

Good luck.

<comment><AUTHOR> Yep, I agree with your advice and I also read PG's recent article that you referenced. Totally agree.

I have talked with the team, and we seem to all understand that this is not going the way we want. I have made it clear that I will be looking for others to join in a "co-founder" capacity if I get the opportunity to go to YC this winter. They are reasonable people and good friends, so I don't think it will be a big problem to do a little equity restructuring if its in the best interest of the startup.

My real question is not "am I screwed?" because I already know that. I'm asking "how can I fix this now?" or, in other words "please help me find a new co-founder and a chance to get into YC (or another good startuppy environment)."

<comment><USER4> We were in a similar situation in the last YC funding cycle. 5 founders, 3 were not willing to quit their day jobs or move to Boston for the SFP. It absolutely is a problem - the first thing PG shot back was "Too many uncommitted founders!", and we didn't get accepted (or even interviewed). It'll likely be a problem without YC too: you end up spending more time ensuring that everyone's on the same page than actually building the project. We sped up noticeably after we dropped from 5 founders to 2.

I can't really help find a new cofounder (other than reiterate what others have said: ask around here, check cofoundr.com, etc.), but I can tell you what we did. We (my surviving cofounder and I) bought out the other 3 founders for $1000 apiece. In retrospect this was probably too high, given how quickly they accepted. But it was done mostly to preserve good relations and make sure nobody felt they were being cheated, and I think it succeeded in that. When our incorporation papers come through there will be a few agreements for them to sign to make sure we own the stuff they did before we bought them out.

</comment></comment></comment><comment><USER5> You quit your job and put 10 months worth of effort into a product that succeeds or fails based on whether Paul Graham gives you $15,000?

I know this is a YC forum and all, but the cargo culting here is creepy, which is too bad because if you weed through it there are obviously some smart people posting.

Here's a tip: if you can solo jump start a fundable product, your consulting bill rate will "fund" you, YC style, in less than a month. Then, you can ignore what YC says, keep the talented developer (finding talent in this market is like finding weaponizable plutonium on the shelves at a Des Moines Wal-Mart), chuck the dead wood, and take yourself to market on your own terms.

<comment><USER6> You're right that $15,000 is easy to find. But what you don't realize is that hardly anyone here is applying to the YC program for the $15k...

I saw more VCs at the last YC demo day than I have in my entire life. And, from talking to the YC founders, I'm not alone. I'm not claiming that high VC interest predicts success. However the number of VCs interested in your startup is a good proxy for the overall interest in your startup, since VCs want to invest in what's popular.

<comment><USER7> I agree, 15k is something my parents will give us or money i could raise selling my 350z.

The real victory is winning the prize, and the attention of VC you get.

<comment><USER5> It seems like your odds of "winning" this contest are not great, and your odds of "converting" that win to an A round are also not great. I like the YC idea and have little more specifically to say about it than that, but if you're investing 10 full time months, the quality of your execution will dominate your chances, not Paul Graham's imprimatur.

</comment></comment></comment></comment><comment><USER8> Sorry to hear that your team is not on the same page.

I think the level of commitment from the other two co-founders is much less according to your description, I am not even sure you should give them co- founder status. Remember you're working full time on the project that means you're investing $x (your full time job's salary) every month as opposed to the other guys. From your description the other two guys seems to be playing safe, not risk takers (very much required ingredient for startups)

I think you really need to find new team members who are committed, dedicated, and risk takers.

As far as finding new team members, I think it would be nice to work with people who you know already to reduce time consumed building a new relationship. Otherwise, you got to work with people for some time to find workable team members.

Best of luck

</comment><comment><USER9> Hello everyone, this is the infamous #2 here. Yes, I am a co-founder of a new Web 2.0 startup and do have the Hacker News RSS feed on my homepage. Airing our dirty laundry in a public forum wasn't my decision, but. . .

I feel like I have to defend myself a bit about all of the negative comments. We are clearly in the product development stage and I'm not a developer, so my efforts are focused on enabling #1 to spend 100% of his time on product development. I have 2 years VC experience and 3 years LBO experience (where I am now), so I do all the legal agreements (options, LLC filings, prop rights agreements, Trademark filings, contribution/consulting agreements, etc.) and I'm the one that negotiates and drafts terms for all of our other developers (they tend to come and go due to the lack of cash to pay). I file taxes, pay the bills, and track financials to report to investors on a quarterly basis. I prepare executive summaries to send to prospective investors and submit to conferences. I am the one that plays "bad cop" with the developers when things aren't going well or they are underferforming so #1 can maintain a good working relationship. I help with design, layout, and other ideas related to the site, mainly with UI, new features, and catching bugs/fixes. I interact often with our Alpha users to stay in touch with what they need and what they want. Soon I will start helping with writing tests since I asked #1 what I could do to help more directly with Beta short of learning Ruby. Some of the toughest decisions that we face having so much to do with so few resources to do it with is WHAT to work on, and I try to have open conversations with the team to make sure we're prioritizing everything right and agree as a group, because startups tend to start to ramble along unless we discuss what we absolutely need to get out the door every week. So, I wouldn't say that I don't do anything, but rather I don't do anything to ease the bottleneck, which is currently product development. #1 and I came up with the idea on a phone call a while back and it has become what it is today, so I truly am an original co-founder. It's also important to note that #1 and I started another internet company in college which worked out well considering it was a one semester project. We are also best friends.

I just got married 2 weeks ago and have a job that I can't just bounce back into ever again. My entire family is in the Midwest and there are few good PE shops there. Getting a job in PE is really hard. I believe one in 50 Harvard MBAs can get one, and I was fortunate enought to get one at a good firm in the midwest near my family. So quitting my job is not something I take lightly, but I am open to it. #1 was previously an independent consultant that can easily get a job as good or better within months. He is a tremendously talented developer and I'm proud to call him my co-founder. When you say "risk", I'm not sure you can compare one man's risk of quitting with anothers. Different industry, different pay, different location, different circumstances. #1 and I had the discussion of what it would take for me to quit on day 1. I said a significant capital raise (I tossed out $500k-$1mm+) or a really strong user ramp. I spend nearly all my free time (I work a LOT, so there's not much) on this startup. For me to dedictate my only 2 free hours a day to this is a lot, especially considering my recent marriage, but I do it anyway. I would not call this a lack of dedication at all. I've taken 1 C++ class in my life, so convincing me to quit my job to learn to code is a bit far-fetched. We know what we need, we just need the developers to create it, but using me as a developer does not seem like the right decision.

I really don't think the issue here is that I suck, I think it's that I'm not a developer. Things took longer than expected to get off the ground as far as product developement and #1 is getting antsy, and understandably so. We've gone through several equity-only developers that, in the end, may have taken up more of #1's time then they were worth. I've tried getting in touch with the Universities CS departments where #1 lives to try to get some local candidates to get a better startup culture/environment going since I'm in a different location than #1, but there aren't many resumes that come across with Ruby experience.

If I'm in the way of making this a success, I'm willing to do what it takes to remove me as an obstacle. I guess (no offense) I'm just not convinced that YC and $15,000 is what it takes to make this a success. I think another full-time talented developer that can work with #1 in the same city would do wonders, and I'm willing to cough up the equity. Now that everyone knows the full story, I'd be interested to hear some feedback. Maybe the feedback is still that I suck, but at least you have my side of the story. If everyone thinks YC is critical to where we are going and if PG would admit #1 if I stepped down and re-worked the equity I would be willing to do that. The important part is that I'm a fair, honest, and flexible guy and just want this to be a success. I understand my lack of development is not really helping us right now, but my "non-production" contributions should not be overlooked either.

I apologize for airing our dirty laundry here, but I felt I had to respond once it was up.

\- #2

<comment><USER10> I think you need to let go, for now.

It's obvious where your priorities are (family/wife, career/money) and at this early stage where product development is driven by coders that need to go full steam ahead, you're not in a position to help.

When your product gains more traction and more attention, you should step back in and help. Your experience in terms of financing and business development will be of better use then.

The timing, unfortunately, just isn't right. Number 1 should move to the West Coast, live for a few months, mingle with people, latch on with a couple of more developers and then give you a call a couple months down the road.

<comment><USER9> This is #2 again. I think you're getting to part of the issue here. We need to be coding full-steam ahead and we need more coders - it is the clear bottleneck. We can either do that through money or options. To date, we have been cycling through developers with all options, but we have found that it's hard to source good ones, and they often move on by the time we've gotten a return from the time spent getting them familiar with the code. The current course is to have #1 and #3 crank out some code in the next month, launch Beta, and go after another round of funding to hire some full-time developers to join #1.

I don't think what I mentioned above or what you mention in your post means that I have to "step back" or "step down". I do everything but code, enabling those that code to be as efficient as possible. You said yourself that the product is currently "driven by coders that need to go full steam ahead" and I'm not in a position to help. If #1 had to figure out all the legal documentation, pay taxes, manage cash, put together marketing materials, respond to users, find and log bugs, put together investor reports, file trademarks, etc. would our development would be going "full steam ahead"? Also, do you think the quality of that stuff would be the same coming from a developer? I'm also guessing it would cost a considerable amount of money. I'm not sure how I'm not in a position to help and what good "stepping back" would do. If #1 wants to move, network, and take greater risks, I'm open to talking about re-working equity, but saying that I'm just going to drop off the earth for 2 months until I get a call is just rediculous.

</comment></comment></comment><comment><USER11> Take it form a non-technical co-founder. Nate, your co-founder doesn't have to move. You can. It is even better this way. I am working on my startup and my co-founder is a good thousands miles away from me. He handles all technical aspects and I do the other stuff. I read and learn a lot of stuff, so we can communicate technically, but the truth is if I was close to him all I would do is waste his time. So move and do your technical thing, Let me stay where he is and do his thing. Communicate a lot though. And do not start to IM with people like us unless you want to take a break from coding. I only talk with my cofounder at the end of his day, that way I know I am not in his way anymore.

</comment><comment><USER12> _I want so badly to be in the YC environment, working with smart people all around. It's been 10 months now of me hacking away alone in my condo ... getting very antsy. If I got accepted, I'd pack up right away and plan on a permanent move out west (It's always been a dream of mine to live out there)._

YC is not the only path to success, nor should you think that you absolutely need these two other people (especially if they won't go with you).

If you really feel that way, you should just take the plunge and head out there, even if YC rejects you.

<comment><AUTHOR> I just might do that. I'm sick of Atlanta anyway.

<comment><USER13> You and me both... I'll miss Octane and Javamonkey, though.

</comment></comment></comment><comment><USER14> Heh-- I had a similar conversation with my team with similar results. Sucks, eh?

I'm 35, I've built and sold two web businesses, and I think the YC program is a freakin' steal for the 2-10% that they want.

If anyone wants to chat about partnering up on a YC app, drop me a line. My background is design, UX, light coding (rails, etc), SEO, SMM, etc. I'd happily chat about any ideas (I've got a few of my own), as long as the proposed revenue model isn't "targetted advertising". :-) I bet we could have a prototype ready for review-time.

</comment><comment><USER15> Before you, your cofounder and your team came together to work on the startup, did you "communicate" to your cofounder and/or team that you might/will consider moving to a different city if the need arises? Did you guys talk through any such possibility if the startup looks promising in the future? If not, then do you think its justifiable to only hold them accountable for not agreeing to move with you?

Teams are made up of people, not ideas alone. They may have families and other responsibilities which might be more important to them. So if you think that they do not share your vision, then try and talk to each one of them individually and understand what's holding them back. And if its really not going to work out, then be polite and express them clearly that you care about the future of this startup a great deal, and you will have to find a team member who shares your vision. But be humble, and stay humble. Nobody likes a cranky selfish boss. Good luck!

<comment><USER16> _"... did you "communicate" ..."_

Hmmm communicating. Sounds like your making a statement there. Why?

 _"... Each person should just do what they need to without anyone telling them ... If that sounds like a recipe for chaos, think about a soccer team ... David Beckham if there were any language problems at Real Madrid, since the players were from about eight different countries. He said it was never an issue, because everyone was so good they never had to talk. They all just did the right thing. ..."_

It's _"bleedin obvious"_ that at some stage you _might_ have to move. So the requirement for communication bit could be an indication of co-founders (3) _"Not determined enough"_ or (9) _"Family to support"_ or (11) _"Not ready for commitment"_.

All reasons to 'not (not) start a startup' with them ~ <http://www.paulgraham.com/notnot.html>

<comment><USER15> OMG! Here come The Commandments!

Imo, a startup is a relationship, where you need communication - with your team, as with your customers.

<comment><USER16> " _The Commandments!_ "

I like that.

Sure it's a relationship. But the type of relationship bw co-founders, team and customers is very different. If your co-founders, fellow hackers, the ones that should understand the implications of startups the most, balk at such a simple hurdle to start a startup. Communication is not the problem, commitment (or insert N other reasons is).

A very different relationship (more communicative) exists bw staff who are not the core of the team at the start. It goes unsaid that the on-going relationship with the customers is paramount.

But to misunderstand the idea that founders & co-founders should explicitly have to communicate such fundamental concepts as _"we might have to move sometime to achieve 'Foo'" or "we might have to actually do 'bar' to get to the next hurdle_ is fundamentally different from communicating to hires or customers.

BTW can you point <http://www.feedity.com> to news.ycombinator?

<comment><USER15> >> BTW can you point <http://www.feedity.com> to news.ycombinator?

I didn't get what you mean by that.

<comment><USER16> " _... I didn't get what you mean by that. ..."_

can I run feedity over news.yc? or turn the news.yc site to rss. I gave it a go but couldn't get a result. It would be useful to try because it's a pain scraping lots of different nyc pages.

... try again. Ahh now I got it. The first time I didn't select a category. Is it possible to get an rss result back without selecting a category? (like select your own?) as the categories restrict (reduce the returns). I want everything back.

... now I understand. I've tried to do something that's only found in the _"Advanced Refine"_ menu. Would it be a good idea to add an "Advanced" link at the front page?

... aggh the _Advanced Refine_ cr@ps out on my blocks. I'm trying this bit because I've been hacking with BeautifulSoup pretty much doing exactly what the refine is doing. Its an absolute pain. One idea to make selection of the blocks easier is to parse the html doc, then render the structure as an outline visually (like HTML Validator or below) .... table tag

                + td child tag 1

                + td child tag 2

                       + tr child 2,1

When I was trying to parse pages the ability to see the page + markup overlayed with the structure HTML Validator ( <https://addons.mozilla.org/firefox/addon/249> ) made it 10 times easier for me to select exactly _"what"_ I wanted to parse.

<comment><USER15> Thanks :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> Girlfriends and wives are always the hidden factor that will hold you back if you don't consider this carefully.

So I say, go straight to the root of the problem. See if you can make a plan that allows them to destroy neither their personal lives nor the company.

</comment><comment><USER18> Based on this info you need to cut ties with these people. Equity is for risk takers. If you are taking all of the risks, then you should get all of the equity.

Now, if you have already shared the equity, then you are in a big bind.

</comment><comment><USER19> You really need to drop this guy (#2)--I predict failure, near-failure, or serious regrets and much less than what could have been if you don't.

<comment><USER9> Please see my long-winded previous post further up in the thread but chronologically after this.

<comment><USER20> sam's still right. all kinds of red flags -- "i'll give up my job, but only if things are going well", "i have 2hr/day to spend", resentment already building, etc. it's only gonna get worse.

number2 -- that's fine that you have those priorities (family, steady job), but it seems like you're in denial about the situation. absentee (or remote + part-time, whatever) cofounders are not what early stage startups need. and even if you disagree, your potential investors (e.g. yc) won't. if being remote and working 2hrs a day was a viable strategy for a startup founder, don't you think there would be more success stories that fit that profile? :P

that said, you can still come on board later after #1 gets things going.

</comment></comment></comment><comment><USER21> You really want to find yourself another technical cofounder that is fully committed to the project.

<comment><AUTHOR> Is anyone on here interested? Email me email@example.com.

<comment><USER22> Do you even have ownership of the project at this point? Don't all these others have a claim to it? Are you prepared to buy them out and/or completely start from scratch?

<comment><AUTHOR> I do not have complete ownership, no. Co-founder has an equal stake as currently, but we have a prearranged agreement where I will be entitled to more equity upon our first financing. I don't really want to throw them out ... they are good at what they do (just not doing enough, in my opinion). I don't think it would be a problem to come to an agreement to redistribute equity.

</comment></comment></comment></comment><comment><USER23> Fortune favors the bold my friend. Be Bold.</comment>


Illucia: a modular codebending instrument - <AUTHOR> http://vimeo.com/22732435 <comment><AUTHOR> My friend made this instrument and made a video to showcase its' quirky talents. Definitely a one-of-a-kind fusion of music and code.</comment>


C++14 published by ISO today - <AUTHOR> http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=64029

<comment><USER2> So no more trigraphs??//

<comment><USER3> They're still part of C++14. You have to wait for C++1z (or use a compiler switch).</comment></comment>


Linear Programming Based Bidding Strategy for AWS Spot Instances - <AUTHOR> https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/btx787/4708304 <comment><USER2> The novelty of this approach seems to be that the authors have provided both a system that runs a resource selector of instance types (not sure that I would call it "bidding") and a backend where one can essentially spin up a virtual HPC cluster from their laptop and an S3 bucket. I've been a bit cynical of AWS recently with products like Batch and newer products just introduced at ReInvent making claims that "We will allocate you the optimal instances/abstracted compute for your batch job" while in fact in seems as if Amazon could stand to profit if they allocate you more expensive compute for these types of jobs. Perhaps an open source allocation algorithm that does this will force amazon to be more transparent on how they handle this in their products (It is interesting that Amazon seems to be funding the academics who wrote this article!).</comment>


Porn industry still firmly behind HD-DVD - <AUTHOR> http://www.dailytech.com/Pornographic%2BFilm%2BIndustry%2BStill%2BFirmly%2BBehind%2BHD%2BDVD/article10369.htm

<comment><USER3> This meme is dumb. Look at the pattern from last time:

1\. New Technology

2\. Enables qualitatively different consumer behavior (Anonymous video rental or mail-order > Creepy Theater).

3\. Creates a large market of early adopters

4\. Who embrace a particular technology, which goes on to mainstream success.

Nowadays, porn on video at home is the old, accepted behavior. Watching porn doesn't force anyone to become an early adopter like it did with VHS -- porn buyers can take a wait-and-see attitude just like everyone else. And then tehre is teh pr0n on teh internets...

</comment><comment><USER4> "still firmly behind" - <USER2>

<comment><USER5> Aye, for about 2-3 minutes. Pop a few viagra pills and they will still be behind for a long while to come.

</comment></comment><comment><USER6> people still buy porn on discs?

<comment><USER5> People still buy porn?

<comment><USER7> A few for-pay sites are in the top 100 overall by traffic, so it would seem they must.</comment></comment></comment>


Chicago police are running a horrifying CIA-style black site out of a warehouse - <AUTHOR> http://www.theverge.com/2015/2/24/8101169/chicago-police-cia-black-site

<comment><USER2> Except if you look at the timeline, this particular facility started up in the late '90s, and continues a multi-decade pattern of abuse, so it's at best/worst the reverse, " _CIA has been running horrifying Chicago police style black sites_ ". At least per the original _Guardian_ account: [http://www.theguardian.com/us-news/2015/feb/24/chicago- polic...](http://www.theguardian.com/us-news/2015/feb/24/chicago-police- detain-americans-black-site)

(Which, BTW, should replace the posted link, since that minor detail makes the spin of original and current as I type this _The Verge_ link blatantly wrong. Heck, is it even news that Chicago police are severely abusive?)</comment>


Show HN: Introducing Webase, a Platform for Creating Applications - <AUTHOR> https://www.webase.com/blog/introducing-webase <comment><USER2> I'm interested to build something like this too. Would you open source it so we can collaborate? It's surprising how few OSS alternatives exist for low- code programming.

<comment><AUTHOR> I'd love to chat more. How can we connect? You can find me on Twitter in my profile.

</comment></comment><comment><USER3> Why not just allow users to generate the app from a spreadsheet? Right now it seem cumbersome to create a 'model' within Webase...

<comment><AUTHOR> That is a great suggestion! If we allowed a CSV import we could easily decipher a flat data model.

</comment></comment><comment><USER4> I'm going to need to see photos of the finished treehouse before we go any further.

<comment><AUTHOR> Ha! :-)

The latest iteration of the treehouse includes rails that make it much much safer for children!!

</comment></comment><comment><USER5> what database are you using on the backend? Can people directly query it with SQL?

<comment><AUTHOR> Webase uses MongoDB for the dynamic data layer so currently we aren't using SQL or allowing direct queries. We may add that in the future if there is demand, but to start we are focused on non-SQL type users.</comment></comment>


We are not all programmers - <AUTHOR> http://flowplayer.org/forum/2/13200#post-13200

<comment><USER2> It's free. You get what you pay for. Yelling at the developers because they hit your pet peeve is not a good idea.

Instead of that rant, asking what those things mean and then writing good documentation would have been a much better use of their time. Or just some research, even.

When I'm doing something new (and I do that a lot... I tend to start new hobbies all the time) I don't rant at people for not explaining things to me. Instead, I do a lot of research and experimentation. As a last resort, I politely ask questions, first of friends and family, then of strangers on the internet. It's just polite.

</comment><comment><USER3> "Spend it, cheapskate."</comment>


The Sustainability Pledge - <AUTHOR> https://www.sustainabilitypledge.earth/ <comment><AUTHOR> I just launched the first public pledge for individuals to commit to sustainability. It's a list of essential actions that will minimize negative environmental impacts.</comment>


Pointers Are More Abstract Than You Might Expect in C - <AUTHOR> https://stefansf.de/post/pointers-are-more-abstract-than-you-might-expect/ <comment><USER3> This scratches the surface of why I hope C slowly fades away as the default low-level language. C sounds simple when you look through K&R C. C lets you feel like you understand the stack, ALU and memory. A pointer is just an integer and I can manipulate it like an integer.

But the reality is filled with a staggering number of weird special cases that exist because memory doesn't work like a simple flat address space; or the compiler needs to optimise field layouts, loops, functions, allocations, register assignments and local variables; or your CPU doesn't use the lower 4 bits or upper 24 bits when addressing.

C has no way to shield common language constructs from these problems. So everything in the language is a little bit compromised. Program in C for long enough and you'll hit a lot of special special cases – usually in the worst way: runtime misbehavior. Type punning corruption, pointers with equal bit representations that are not equal, values that change mysteriously between lines of code, field offsets that are different at debug and release time.

When using fundamental language constructs, we shouldn't need to worry about these ugly special cases – but C is built around these ideas. The need to specify memory layouts, direct memory access and other low level access should be gated by barriers that ensure the language's representation and the machine representation don't tread on each other's toes.

Rust has a long way to go but is so much more robust at runtime. I think there's room for other languages to occupy a similar space but they're need to focus on no-std-lib no-runtime operation (not always the sexiest target).

<comment><USER4> The following is purely my opinion.

Rust might have gone too far the other way. Yes it strives to be a modern language, with a lot of functional programming features and "OOP" done right (aka no inheritance, simply method polymorphism). To me Rust is more a C++ replacement than a C replacement.

A replacement for C should try to be as simple as possible while fixing C weak typing mess with strong typing for instance, including when it comes to pointers (for instance like in Ada where you can't just take the address of anything you want, you need to declare it as aliased to begin with). In fact Ada tries hard to make pointers redundant which is a great thing. This and range types and bound check arrays( Ada has a lot lot of great ideas, and "C style" Ada is a treat to use).

So a C replacement should keep the procedural nature of C, with closures perhaps, but not go further in terms of paradigm. C aficionados often claim they love C because it's "simple"(it isn't) That's what they mean, they love C because you can't really do OO with it.

On the other hand, Rust macros are exemplary of what a good macro system should be.

<comment><USER5> > OOP" done right (aka no inheritance, simply method polymorphism).

Why do you consider inheritance a bad feature of OOP?

<comment><USER6> On a very high level, in the vast majority of cases, you bring along lot of baggage, both in code and mental, that you don't need, and compared to some alternatives, such as composition, it is simply far less flexible. Inheritance fits a much smaller subset of problems than people think (one of them is GUI design, a problem inheritance fits with nicely). But like everything in this industry, it tries to get shoe-horned in to solve every problem.

<comment><USER7> It's surprising when I go into interviews and the people interviewing me do not have enough experience working with object oriented code (in the languages I know) to have come to realize this - it's one of those things it seems to have to be relearned over and over.

</comment></comment></comment></comment></comment><comment><USER8> Note that if the two pointers are passed to a function, and the comparison is done in the function, the results are different:

      #include <stdio.h>

      void pcmp(int *p, int *q)
      {
          printf("%p %p %d\n", (void *)p, (void *)q, p == q);
      }

      int main(void) {
        int a, b;
        int *p = &a;
        int *q = &b + 1;
        printf("%p %p %d\n", (void *)p, (void *)q, p == q);
        pcmp(p, q);
        return 0;
      }

That is giving me:

      0x7ffebac1483c 0x7ffebac1483c 0
      0x7ffebac1483c 0x7ffebac1483c 1

That's compiled with '-std=c11 -O1' as in the article. The result is the same of pcmp is moved into a separate file so that when compiling it the compiler has no knowledge of the origins of the two pointers.

I don't like this at all. It bugs me that I can get different results comparing two pointers depending on where I happen to do the comparison.

<comment><USER9> Yes, I agree. It makes far more sense to make guarantees in a language, that two values are compared using a metric that is invariant. Especially in a language like C, where we expect it to be a very thin abstraction over the machine.

</comment></comment><comment><USER10> I like the behavior of the compiler here. There is no guarantee that a and b are next to each other in memory. That's why the comparison fails, the alternative makes is runtime/compiler/optimization level dependent which would be a total mess.

As usual with those C bashing articles you won't run into trouble if you don't try very hard to write contrived code. I mean, the moment you see:

         int *q = &b + 1;

on your screen alarm bells should go off. Doing pointer arithmetic on something that is not an array is asking for trouble. If the standard should be amended in any way it should be undefined behavior right away you do pointer arithmetic on non-array objects.

<comment><USER8> > I like the behavior of the compiler here. There is no guarantee that a and b > are next to each other in memory. That's why the comparison fails, the > alternative makes is runtime/compiler/optimization level dependent which > would be a total mess

Yes, there is no guarantee that they are next to each other, but in this case they _happen_ _to_ be next to each other, and according to the spec as quoted in the article, two pointers are equal if:

> [...] one is a pointer to one past the end of one array object and the other > is a pointer to the start of a different array object that happens to > immediately follow the first array object in the address space

Note that it says "happens to" immediately follow, not "is guaranteed to" immediately follow.

This are pointers to ints, not arrays of ints, but that should not matter because as quoted in the article:

> For the purposes of these operators, a pointer to an object that is not an > element of an array behaves the same as a pointer to the first element of an > array of length one with the type of the object as its element type.

I don't see any way to read these as not requiring the pointers to compare as equal if the compiler happens to put a and b adjacent in memory in the right order and with no padding between them, other than resorting to something ridiculous like claiming that "follow" or "immediately" follow are not defined in the spec and so one object occupying that very next available address after another does not necessarily "immediately follow". This seems to be what the gcc developers went with to declare this is not a bug.

Also, note that if you move the "int a, b" to outside main, so a and b are on the heap instead of on the stack, then gcc does find that the pointers are equal.

<comment><USER11> > > For the purposes of these operators, a pointer to an object that is not an > element of an array behaves the same as a pointer to the first element of an > array of length one with the type of the object as its element type.

> I don't see any way to read these as not requiring the pointers to compare > as equal if the compiler happens to put a and b adjacent in memory in the > right order and with no padding between them, other than resorting to > something ridiculous like claiming that "follow" or "immediately" follow are > not defined in the spec and so one object occupying that very next available > address after another does not necessarily "immediately follow". This seems > to be what the gcc developers went with to declare this is not a bug.

"These operators" in the spec refer to the (additive) pointer arithmetic operators, not the equality operator. So incrementing a pointer to int behaves as if the pointee were in an array of length one, but that does not mean any subsequent equality operator should consider the objects as arrays.

It's totally fine for the equality comparison to return false when the objects in question are actually not arrays.

<comment><USER8> Then let's make them real arrays:

      #include <stdio.h>

      #define N 8

      int main(void) {
        int a[N], b[N];
        int *p = &a[0];
        int *q = &b[N];
        printf("%p %p %d\n", (void *)p, (void *)q, p == q);
        return 0;
      }

Results:

      $ gcc -std=c11 -O1 ar.c; ./a.out
      0x7ffd32d048c0 0x7ffd32d048c0 0
      $ gcc -std=c11 ar.c; ./a.out
      0x7ffe3f8ccd60 0x7ffe3f8ccd60 1

<comment><USER12> BTW, things work correctly when the objects live inside a real array:

      #include <stdio.h>

      int main(void) {
        int arr[16];
        int *p = &arr[0] + 1;
        int *q = &arr[1];
        printf("pointers: %p %p %d\n", p, q, p == q);
        return 0;
      }

The result is perfectly correct and predictable, as the Standard guarantees pointer comparisons in this case:

      pointers: 0x71b35ac790d4 0x71b35ac790d4 1

The original code in the article relies on UB, I think, so all bets are off.

</comment></comment></comment></comment></comment><comment><USER13> the comparison at the start is nonsense - there is no specification for the ordering or location of stack variables. by taking the address of these variables, you could see that they actually are the same value, and so intuitively you'd think they might be the same, but a different compiler might put them in different locations. or they may be elided entirely through optimisation. it's far safer to fail the equality test in this case - this is what the model specifies.

this is not even the first example of this counter-initiative behaviour. imagine two floating point values with exactly the same bit-representation. it is possible, without any trickery for them to fail an equality check - i.e, they are both NaN.

this is what IEE754 demands of a compliant floating point implementation. and indeed, it's a sane choice when you understand why it was made.

similarly, it's perfectly reasonable for this example to fail.

<comment><USER14> Surely the point of writing an if-block testing the equality of the pointers is precisely because the code _isn't_ assuming that they are the same - <USER2> maybe it has something it wants to do if it finds itself running somewhere where they are.

Writing code which assumed those pointers were equivalent would be bad, but this code doesn't do that. Instead, it looks like the compiler assumes that the pointers won't be the same and refuses to let you entertain the possibility at all.

<comment><USER13> > Instead, it looks like the compiler assumes that the pointers won't be the > same and refuses to let you entertain the possibility at all.

and indeed it should - it's sane to use the address of a stack variable for the purposes of writing something into it, but assuming that it forms some sort of array in memory is sure to cause pain if you rely on that assumption.

</comment></comment></comment><comment><USER15> clang is a bit more sane:

       > cc pointereq.c
       > ./a.out
       0x7ffee83163b8 0x7ffee83163b8 1
       > cc -O pointereq.c
       > ./a.out
       0x7ffeeeb8b3b8 0x7ffeeeb8b3c0 0

So without optimization, the pointers are the same and compare as equal. With optimization, the pointers compare as not equal. At first that seemed horrible, until I saw the pointers actually are not the same. Since I don't recall any guarantees about stack layout, that seems perfectly fine.

       > cat pointereq.c

       #include <stdio.h>

       int main(void) {
         int a, b;
         int *p = &a;
         int *q = &b + 1;
         printf("%p %p %d\n", (void *)p, (void *)q, p == q);
         return 0;
       }

</comment><comment><USER16> There's nothing surprising in the first example. Comparing the addresses of stack variables is undefined behaviour.

The second one is more interesting:

        extern int _start[];
        extern int _end[];

        void foo(void) {
            for (int *i = _start; i != _end; ++i) { /* ... */ }
        }

GCC optimized "i != _end" into "true". The kernel guys fixed this by turning "_start" and "_end" into "extern int*". I always thought [] was just syntactic sugar over a regular pointer, but seems like I was wrong.

<comment><USER17> Actually, the headline article tells us that it optimized it to true.

That affected some of my code from years ago, too; and another fix is to keep _start and instead of having another array called _end have an external size_t giving the number of elements of start and loop while i!=_start+count .

In fairness to the compiler people there shouldn't really be anything surprising in the second example, either. There are x86 memory models (compact and large) where that loop never terminates in the general case, because the two arrays are not in the same data segment and no amount of incrementing a (far but not huge) pointer will get from one to the other. So it's not the case that this is a _new_ pitfall. It was a pitfall decades ago.

People just thought that it didn't exist with modern tiny (a.k.a. flat) memory models, because the old explanation wasn't applicable. It does, but with a different explanation.

<comment><USER16> Yup, I've mistyped "true" as "false".

If you set "_start" and "_end" to addresses of different objects, then you're invoking undefined behaviour and all bets are off. But this should be perfectly valid IMO:

        extern char* _start;
        extern char* _end;

        void foo() {
            for (char* c = start; c != end; c++) ...
        }

        int main(int, char**) {
            char buf[128];
            _start = &buf[0];
            _end = &buf[128];
            foo();
        }

Right?

<comment><USER17> The thing there is indeed not the validity, but the introduction of extra memory references and variables.

The code with the arrays compiles to immediate value loads with load-time fixups to the code; and if this is linking to an assembly language module the necessary assembly language is just some labels against the data.

The code with the pointers compiles to loads from data memory, with (in the more usual paradigm where the start and end are bracketing some vector of initialized data in the program image) load-time fixups to the initial values of the variables; and the assembly language has to be different, some variables with these labels whose initial values are the addresses of some other labels against the actual data.

Notice that the Linux Kernel developer in 2016 did not immediately appreciate the need to modify the concomitant assembly language and linker script stuff to match the change in the C language code.

The approach that I mentioned keeps the immediate value for the start, and uses a load from initialized data memory for the count. Other approaches are possible, but they need more work in the build process. For example: By generating the C/C++ language declaration and definition from a script or suchlike, one could calculate and declare the number of elements in the array, making it possible to use sizeof.

</comment></comment></comment></comment><comment><USER18> Basically you have no guarantee where the pointer q is pointing to. Some compiler/static code analyzer will yell at you with this code.

<comment><USER19> isn't it guaranteed that is points sizeof(int) bytes higher than the address of b?

Whether something useful is behind that address is another question

<comment><USER17> There's a guarantee relative to the address of b. But there's no guarantee about the relative addresses of a and b _themselves_ , i.e. where they are placed in automatic storage. So even setting aside the idea of optimizing the test away at compile time, there's no guarantee that the comparison result will be a specific value. a could be above or below b, and they are not necessarily adjacent objects.

<comment><USER20> From the C11 spec quoted in the article

> If both the pointer operand and the result point to elements of the same > array object, or one past the last element of the array object, the > evaluation shall not produce an overflow; otherwise, the behavior is > undefined.

So although most implementations might produce an address that's relative to b, that's not actually guaranteed by the spec unless it's `&b + 1`.

<comment><USER17> ... _which it is_ in the program under discussion. Again, the address which has no guarantee relative to the address of b or the value of q is _the address of a_.

</comment></comment></comment></comment></comment><comment><USER21> _Two pointers compare equal if and only if both are null pointers, both are pointers to the same object (including a pointer to an object and a subobject at its beginning) or function, both are pointers to one past the last element of the same array object, or one is a pointer to one past the end of one array object and the other is a pointer to the start of a different array object that happens to immediately follow the first array object in the address space._

Can someone explain to me the rationale behind this? Why not just "two pointers compare equal if they point to the same address"?

<comment><USER17> Because (a) pointers do not point to addresses, and (b) now you have to define the concept of addresses being equal in the language standard and haven't actually reached the goal. (-:

<comment><USER22> Indeed; pointers intentionally abstract away memory addresses and addressing, which, as the article states, can be much nastier business than the benign flat address space of i386 protected mode.

</comment></comment></comment><comment><USER23> When I compile the example, i get:

      0x7ffd0b57ebd0 0x7ffd0b57ebd8 0

OK, so gcc reordered a & b; I'll fix this by chaning the initialisation of p and q to:

      int *p = &a + 1;
      int *q = &b;

But when I now run the example, I get:

      gcc -o c c.c && ./c
      0x7ffe55eb0aa4 0x7ffe55eb0aa4 1

      gcc -O -o c c.c && ./c
      0x7ffcfeffd914 0x7ffcfeffd914 0

So, p==q only evaluates to 1 if optimisation is enabled.

      $ gcc --version
      gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0

<comment><USER24> It shows the exact options the author used if you click on GCC:

Version: 8.1.1 Options: -std=c11 -O1 Target: x86_64-redhat-linux

</comment></comment><comment><USER25> > If we step back from the standard and ask our self does it make sense to > compare two pointers which are derived from two completely unrelated > objects? The answer is probably always no.

The one big counterexample I can think of is the difference between memcpy and memmove. The latter is supposed to be able to do arithmetic on memory regions, to see if they overlap. Is this article saying that the standard C implementation of memmove is relying on unspecified behavior?

<comment><USER26> Memmove is frequently cited as an example of a standard library function that can't be implemented using only standard C. It's incorrect, though: the way to do memmove using standard C is to use malloc to allocate a temporary buffer.

But the whole question is not terribly relevant. When memmove is provided as part of the C implementation it can rely on non-portable platform behaviour just fine. There's no rule that you have to implement libc using only standard C facilities.

<comment><USER27> And how do you implement malloc() in standard C?

</comment></comment></comment><comment><USER22> > _...or one is a pointer to one past the end of one array object and the > other is a pointer to the start of a different array object that happens to > immediately follow the first array object in the address space._

I was not aware of this special case. What's the rationale? Is there even a way in standard C to guarantee that two array objects are laid out in memory like that, with no padding?

<comment><USER28> A two-dimensional array?

<comment><USER22> Yeah, good point.

</comment></comment></comment><comment><USER29> Ummm, when I run this on gcc 7.3.0 on OS X I actually get:

0x7fff5dbd89fc 0x7fff5dbd89fc 1

Which kind of shoots the whole article in the foot ...

<comment><USER30> Did you compile it using '-std=c11 -O1' ?

<comment><USER29> No, but that just makes me assume that this is an optimization bug. Especially since -O4 actually coughs up _different_ pointers:

      gcc-7 -std=c11 -O4 -o test test.c
      $ ./test
      0x7fff5b5f5a08 0x7fff5b5f5a10 0

The following code works as expected even with your flags and the pointers are clearly not related to one another:

      #include <stdio.h>
      #include <stdint.h>

      int main(void) {
          uint32_t *p = ((uint32_t *)0x7fffffffffff3eac)+1;
          uint32_t *q = (uint32_t *)0x7fffffffffff3eb0;
          printf("%p %p %d\n", (void *)p, (void *)q, p == q);
          return 0;
      }

So, I would either chalk this up to either 1) "compiler optimization bug" unless a gcc maintainer _explicitly_ gave me a reason to believe to the contrary or 2) getting your underwear eaten by weasels because you optimized after invoking undefined behavior (attempting to probe stack layouts qualifies as undefined behavior in a big way).

My _assumption_ would be that the compiler had to do something screwball that it got wrong because you actually asked for a pointer to a stack object that it had optimized to always be in registers.

</comment></comment></comment><comment><USER31> Not related to the content but I find the colored links in the nav a simple and very good idea.

</comment><comment><USER32> Just a datapoint: VS2017 on Win10 x64 gives me 00AFF89C 00AFF894 0, which is what I naively expect.

<comment><USER17> Actually, you _should not_ expect that, because you don't have a guarantee of ordering of the addresses of a and b on the stack.

Now try with /O2 . (-:

<comment><USER32> Maybe I'm misunderstanding you, but it's precisely because I have no knowledge of the stack frame's layout that I didn't expect the pointers to be equal.

With /O2 optimisation I get:

00B1F99C 00B1F9A4 0

<comment><USER17> That's where you are going wrong. You have no guarantee that the compiler places a and b next to each other, let alone in a defined order with a at a higher address than b such that one integer width beyond the end of b you find a.

Expecting _one thing_ is wrong. You are expecting the _one thing_ that the comparison always returns false. You should _not expect anything_. The comparison result could be true or false.

        H:\>cl /O2 pointereq.c
        Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26431 for x86
        Copyright (C) Microsoft Corporation.  All rights reserved.

        pointereq.c
        Microsoft (R) Incremental Linker Version 14.14.26431.0
        Copyright (C) Microsoft Corporation.  All rights reserved.

        /out:pointereq.exe
        pointereq.obj

        H:\>.\pointereq
        00CFFA20 00CFFA20 1

        H:\>

<comment><USER15> You are confusing "did not expect them to be equal", which is what the OP wrote, with "expected them to be not equal", which is what you are railing against.

<comment><USER17> Ahem!

"which is what I naively expect."

<comment><USER32> My expectation was that they wouldn't be equal.

<comment><USER17> I already knew. (-: Tell mpweiher.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER33> if you're adding 1 to a pointer, why would you expect it to be equal? I would not expect it to be equal.

<comment><USER34> He's adding "1" to the pointer that points to the variable "b" which in this case is allocated immediately below "a" in the stack. Thus adding one will make the two pointers equal.

<comment><USER28> The layout of things on the stack is completely implementation-defined.

<comment><USER35> It has been a while since I read the standard, but this seems well into the realm of undefined behavior, not implementation defined.

<comment><USER28> From my understanding, how the stack is laid out is implementation-defined; attempting to actually observe this ordering in your program is undefined behavior.</comment></comment></comment></comment></comment>


[Show HN] Bookmarklet to track prices everywhere (not just Amazon) - <AUTHOR> http://prispy.com

<comment><AUTHOR> Studying in London is quite expensive so I thought I have to save some money. There are some price tracking tools out there, but they are limited to a few shops. So I've built a little tool to track prices everywhere on every shop.

Would be great if you could give me some feedback :)</comment>


Ask HN: How do I get contributors interested in my open source project? - <AUTHOR>

I'm working on a Ruby gem that adds two-way data binding functionality to Rails apps, and am looking for additional contributors.  Any suggestions on how to get other people to help out? <comment><USER2> My general assumption about contributors is that the labor they're investing provides some personal benefit to themselves. That could be either the value they'll receive from using the gem in their own projects, or as a portfolio showcase when selling themselves to clients or potential employers.

Since you didn't provide a link to your gem, we'll also assume you haven't built it yet. If you want complete strangers to help you, you'll most likely need to build it yourself until it's reached enough popularity that people are submitting issues and requests for feature enhancements.

</comment><comment><USER3> Start by posting a link.</comment>


Analysis of Dota 2 forums hack - <AUTHOR> https://www.leakedsource.com/blog/dota <comment><AUTHOR> Their "analysis" isn't particularly insightful, but I wanted to submit it anyway, given that such a large number of accounts were affected.

The database also isn't included at [1] at the time of submission.

[1] [https://haveibeenpwned.com/](https://haveibeenpwned.com/)</comment>


Apache CouchDB 1.5.1 Released (security release) - <AUTHOR> https://blogs.apache.org/couchdb/entry/apache_couchdb_1_5_1

<comment><USER2> Worth noting, this is not related to Heartbleed. Find a Heartbleed-related advisory at [https://blogs.apache.org/couchdb/entry/couchdb_and_the_heart...](https://blogs.apache.org/couchdb/entry/couchdb_and_the_heartbleed_ssl)</comment>


'Zoom is malware': why experts worry about the video conferencing platform - <AUTHOR> https://www.theguardian.com/technology/2020/apr/02/zoom-technology-security-coronavirus-video-conferencing <comment><USER2> İ used Zoom a couple of times with friends. Thanks, covid. But what bugged me is that both time my phone battery died kn less than an hour. Thats with 50% before the conference. So it ate through the battery 3 times faster than a say whatsapp video call. İ dknt know if it means anyrhing.

</comment><comment><USER3> My main complaint about Zoom is that, when using it on PC, you have to install something. You can't just use it in the browser.

At best, Zoom's devs need to RTFM for WebRTC. At worst, they want to do some kind of intentional surveillance or even malware-like activity.

<comment><USER4> Zoom works using the web browser but it's using dark patterns several times to allow you to have the Join via browser option in tiny text...

</comment></comment><comment><USER5> On Ubuntu would installing Zoom via Snap be preferable than as a normal package when it comes to security / sandboxing?</comment>


The Human Mission to Mars - 55 Papers, 1700 pages - <AUTHOR> http://journalofcosmology.com/Contents12.html

<comment><USER3> I went to see Buzz Aldrin, the 2nd man on the Moon, speak at a book lecture. He is very passionate about colonizing Mars. He says there are two big things that have to be accomplished before we can colonize Mars. The first is to train astronauts to live in a confined isolated space for 260 days (the length of a journey to Mars).[1] The second is harder: We need to go to Mars at least three times and bring back the men and women successfully. Once is not enough. Three proves we've mastered the engineering, financial, physical, and physiological aspects.

[1] [http://www.guardian.co.uk/science/2010/jun/03/mock- mission-m...](http://www.guardian.co.uk/science/2010/jun/03/mock-mission-mars- moscow-hangar)

<comment><USER4> Why do the men and women have to be brought back? It adds a big amount to the requirements of the craft to get them there.

Perhaps that space, weight, time, and money could be better spent on developing long-term survival and colony-establishment equipment and techniques.

<comment><USER3> From a purely logistical standpoint, if the first people you send to Mars had no hope of returning - how would they quickly enough create a bubble within which lies a life-sustaining environment to survive? Unless of course you're thinking of crash loading the entire contents of a remote manned space station. Psychologically, it might drive men and women to madness - <USER2> forever marooned.

Just saw this. More on Mars from Buzz Aldrin in a NOVA PBS special:

<http://www.pbs.org/wgbh/nova/space/aldrin-mars-au.html>

<comment><USER4> Heavens, not by any means, "forever marooned." Just for a maximum of 10 years while we get another mission with a return vessel over to Mars. In the mean time, those men and women could establish a fledgling colony there with hydroponics, a rover or two, and ways to build housing with present materials. I'm not in a position to comment accurately about how long it will take them to establish the livable colony because I don't know specifically what provisions and methods of atmosphere production/recycling they're bringing with.

Think of it like a startup. PG once wrote something like (paraphrasing here), to prove that a startup will work, try to build the smallest functional subset and build from there. And launch quickly and iterate often.

After we get a craft to pick them up, we'll have a temporary colony that the return craft's crew can occupy.

Besides, if those men/women were not able to stand ten or twenty years of loneliness and hard work being colonists, are they really the right people to send on a mission to explore another planet?

<comment><USER3> > Heavens, not by any means, "forever marooned

You'd think by some of my friends comments visiting in-laws that they were visiting Mars this holiday season.

I wonder if there have been any Sci-Fi treatments done of the one-way colonization of Mars.

<comment><USER4> lol... We got a lot of snow here too. My cofounder was tied up for most of the day negotiating her way through the transit system back home. At least I assume that's what you mean. :)

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> If you're interested in a human mission to Mars, I highly recommend the book "The Case for Mars"</comment>


WW.com Sold in Private - <AUTHOR> http://www.domaininvesting.com/ww-com-sold-private/ <comment><USER2> Seems like a bad time to be buying domains, since the new TLDs are going to shift the supply/demand landscape.

<comment><USER3> Which is exactly why I decided to sell.

<comment><USER4> I have a list of domains I've gathered over the years. What would you recommend doing if I wanted to see which are valuable? And secondly how do I go about finding buyers?

<comment><USER3> > What would you recommend doing if I wanted to see which are valuable?

Attempt to sell them. That's the only way you can establish the value of anything.

One easy way to get an idea is by looking at recent transactions for similar domains (do not look at the asking prices, they are typically not realistic).

> And secondly how do I go about finding buyers?

There are many ways to attract buyers, advertising, auctions, brokers, messages on the domain itself, a blog post. Whatever you feel is required.

</comment></comment></comment></comment><comment><USER5> Congrats to one of my favorite HN contributors. Hope you got something close to what you were asking.

Now if I can only sell my 2 letter domain for that...

<comment><USER3> > Now if I can only sell my 2 letter domain for that...

I'm pretty sure you could. What domain do you have?

<comment><AUTHOR> I understand that you said your broker did a good job for you so I'm sure others would want to contact him. For example the parent commenter.

But if you follow the links the site premiumurls.net redirects to twitter and the whois info is private (and why does it need to be?)

If he is really good at what he does then why is that, other than trying to operate in some kind of stealth mode?

How did you hear about him originally I can't find out that much about him. (I am finding that history records indicate a woman was attached to that domain name and it seems odd that someone would pick a .net like that..)

<comment><USER3> tom at premiumurls dot net

Feel free to refer to me as the link-up (or reference this thread).

I completely understand someone that does not have a very public service in a high stakes market. Being extremely visible is not always helpful. But he's earned his spot in the light on this one and since it's easy to find him through tfa I'm sure he's ok with his contact info being listed here.

</comment></comment></comment></comment><comment><USER6> I just went to ww.com, clicked translate and it said the following (originally in Chinese) "Your domain name is for sale.

A good domain only have the economic strength and strategic vision of the business or individual reservations!"

Was this what jacquesm had on there or is this post aquisition? For some reason I found it quite funny.

<comment><USER3> Yes, it's funny, and that's post acquisition.

Let me explain what drives this process. The buyer here is a Chinese company that somehow magically can move millions of $US to the other side of the world. _Most_ Chinese companies, even those that have lots of $US can not do that, they run into the $50K/year barrier that the Chinese central bank has set up.

So by buying domains abroad and then offering them to Chinese buyers that can not move their $ outside of China these people will make a substantial profit on their deal. And I don't think it takes too much imagination to figure out why they can move money out of China when everybody else can not.

<comment><USER7> Corruption?

<comment><USER3> More or less, yes. My take on this is that if they allowed people to wire all that money back out for goods that it would turn out that not all the money is there anymore.

It's very nice to look at all your dollars in a Chinese bank account when you can't do anything with them unless you go through the 'happy few'.

Think of the effect a bank run would have if all those people demanded to actually see their dollars ostensibly kept in Chinese dollar accounts. That would have some interesting effects, but I hope the day will not come while I'm alive.

<comment><USER8> It's none of my business, but to an outsider it seems like you're being _extremely_ frank about this whole thing.

<comment><USER3> What's wrong with that?

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> Perhaps if Jacques is not willing to give the price that he sold the name for he could mention the % that the broker received for the sale and/or the gross commission.

Edit: I'm curious why the HN handle of the seller was removed from the post. To me that is an added point of interest and relevant.

<comment><USER9> In general, HN tries to emphasize content, not personalities. So this was a clear case for reverting to the article title, even though you're right that jacquesm is the only reason why people here (including me!) would find it interesting.

It sometime happens that a story makes it to the front page because of some bait that was added to the title (in this case, to add social interest where intellectual interest was lacking), whereupon a moderator removes the bait from the title. This is not a bad pattern if you think about it. It's ok for the front page to have a few such stories, but they shouldn't dominate it. And once a story makes the front page, it should stand on its own.

<comment><USER3> I totally agree with the sentiment here, applying that even-handedly is going to be hard though. Plenty of articles about frequent HN contributors had the HN handle in the title, and in the future you're going to have to decide between 'original titles only' and this 'emphasize content, not personalities' policy.

Two samples:

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

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

But those were not on 'your watch' so I'm 100% on board with your new policy.

Quite a few blog posts carry the name of the blogger in the domain as well, which emphasizes personality rather than content, that's going to be harder to get rid of.

Anyway, I didn't even expect this to be on HN at all, it's been a roller coaster month of negotiations and traveling, I'm happy it's done. Now to repair the website, amazing how many dependencies on a domain name creep in over the years!

</comment></comment></comment><comment><USER10> Why doesn't someone have a cap on domain name sales? What sense does it make to make this some sort of land grab promoting squatters.

(note that ww.com was not squatted on, i know that. i am just asking in general why a price cap is a bad idea for resale.)

<comment><USER11> Are there caps on any other purchases out there?

Should we start capping the amounts that startups can be acquired for? If FB is willing to pay 1B for Instagram, 19B for Whatsapp, or more - who's to say that they can't spend their money the way they want to?

<comment><USER10> Well, if we start treating domain names as a public resource, then caps might start making more sense. It's like any other regulation.

AFAIK, there are regulations already for how much you can pollute your environment, usage of rivers, height of buildings, rearchitecting your house etc.

</comment></comment></comment><comment><USER12> Outside of the get rich quick dopes who think they're going to strike it big, who cares about this? If I wanted to read about vapid people concerned only with making money out of thin air while doing nothing useful, I'd be reading SEO blogs. "It's worth a lot of money because people pay for it!!" is a pathetic excuse to give attention to something, especially on a site ostensibly for people with active brain cells.

<comment><USER13> Yo.

</comment></comment><comment><USER14> The exact same concept as holding onto a parking spot and waiting for someone to come along and pay for it. Despicable. I read most everything jacquesm writes and enjoy it, but how can you justify rent-seeking on a public resource?

<comment><USER3> You do realize that that 'parking spot' has had my highest income website on it for over a decade with about 100K visitors daily even at the low times?

Also, I'm not sure what you mean with 'public resource' in this context, domains are more like private registries held by semi-official companies that you can choose to do business with or not.

There is a near infinity of them, shorter ones are obviously in short supply but to date I've never ever had a problem buying a domain for a new project for $8 or so.

<comment><USER14> In that case, my apologies, this is the edge-case of a domain-transfer of a domain that was truly being used. The way I had read things, it sounded as though you parked a two-letter domain on a sketchy web-cam site.

And regarding the public resource, it really is a public resource. You may have to go through a registrar, but it is open for any and all to register. In the case of "squatters", it is the same as attempting to rent a parking space. Something meant for the public to use which requires a nominal fee.

<comment><USER15> I'd say it's closer to real estate than a parking spot... Think of a book store that has a great business but it is located in the middle of a bar district. At some point the property is more valuable than the business and it makes sense to sell it so someone else can develop a business that better leverages the location.

<comment><USER14> Except you do not own it, you rent it. Most folks who sell domains just pick one up for a few bucks and try to charge a ridiculous fee to transfer it. You are taking a publicly available address and extorting someone who actually intends to use it.</comment></comment></comment></comment></comment>


Self-hosted, super simple photo stream - <AUTHOR> https://github.com/maxvoltar/photo-stream <comment><USER2> If you're looking for a self-hosted/decentralized Instagram alternative, there's also pixelfed.org, a very active project which supports ActivityPub. This means that people can follow your "Instagram" (really Pixelfed) stream from their "Twitter" (really Mastodon) account.

<comment><USER3> I keep looking at Pixelfed, and even as a relatively technical person, I have absolutely no idea how to get going with it.

Right now, go to pixelfed.org and there's a "Join" button in the top right corner, click on that and there's a message telling me "To join Pixelfed, you need to pick an instance. You can find a list of instances on the sites below." \- click on either of those and it's a completely baffling list of stuff with no obvious way to continue. At this point I always give up.

<comment><USER4> > click on either of those and it's a completely baffling list of stuff with > no obvious way to continue.

Hah, you're right, you end up in some slow-loading dashboard (hooray fancy graphed realtime numbers!). I clicked on a random hostname, it's another dashboard page with the hostname in large, the same hostname as a link as a subtitle. I clicked the link, and hey, it's a page that looks like Instagram's sign up page, with the difference being that this one says:

"Registrations are closed."

I tried a few more sites, even the one with the most number of users, and they all say this. Only the 5th site I clicked on allows me to register.

Ah only now do I notice the column "Open Signups" in their fancy dashboard...

<comment><USER5> The author very actively try to avoid centralizing it which may explain why all big instances has signups closed.

</comment></comment></comment></comment><comment><USER6> Hmm, this looks great. I'd really love to pair it with a simple way to add text or tags to my photos. What is the simplest way to write "Visit to the creek after the bushfire" and save it with the two or three photos I took that day?

I wish (hope?) something simple like this is supported in a linux picture viewing application, and I just don't know which one it is. Can a line or two of text be stored in an EXIFish field? Has someone already written a script to take care of this?

But back to the main point - this is a great app and I can see myself using it to share photos with friends and family. Thanks for making it :)

<comment><USER7> As for the 'linux picture viewing application', I've started using the mpv video player[1] for showing a local gallery of photos and videos. Text is added as subtitle files, such as SubRip .srt files[2]. Image-specific options can be configured in mpv, such as the "image-display-duration"[3].

[1] [https://mpv.io/](https://mpv.io/) [2] [https://en.wikipedia.org/wiki/SubRip](https://en.wikipedia.org/wiki/SubRip) [3] [https://github.com/occivink/mpv-image- viewer/blob/master/mpv...](https://github.com/occivink/mpv-image- viewer/blob/master/mpv.conf)

</comment></comment><comment><USER8> Very interesting if you consider the "offline fist" or "local first" movement that supports the idea that all content must be created, stored and managed by the user first, then shared in the cloud(s). We saw the first wave of discussions about text-based content, then a void when the focus moved to images and video. Solutions like this one may represent a turning point.

</comment><comment><USER9> I like the look and feel of this. My wife is an amateur photographer and she's been looking for a simple way to post / share outside of social media. Fun side project for the weekend setting this up!

</comment><comment><USER10> Just wanted to say thank you, I have been looking for something almost like this.

Only thing it is missing for me is support for videos. But I know videos are pain to self-host and if you use embedded player from YouTube or Vimeo then it kills the aesthetics.

<comment><USER11> peertube attempts to address this pain and supports the activitypub fediverse

[https://github.com/Chocobozzz/PeerTube](https://github.com/Chocobozzz/PeerTube)

</comment></comment><comment><USER12> I do like the idea, and I've love to move from Google Photo into something... now Google.

However, Google Photos covers an aspect that this does not: it syncs the photos _off_ my phone into an online stream.

I actually use Google Photos because it's the only way of getting photos off your phone. The only other mechanism is iCloud, but if you don't have a Mac, there's no way to read from it.

<comment><USER13> I use [https://www.photosync-app.com/home.html](https://www.photosync- app.com/home.html) On my phone and transfer photos when on home wifi AND phone being charged to my NAS. I have a private static photo gallery generated from my nas.

For static gallery generation, I use a project called sitelen-mute.

[https://github.com/kensanata/sitelen- mute](https://github.com/kensanata/sitelen-mute)

No affiliation with either tools.

<comment><USER14> Which NAS do you use?

<comment><USER15> Not OP, but I've had excellent luck with a Synology DS418 containing a RAID-1 of four 8TB disks I peeled out of USB enclosures bought absurdly cheap last Black Friday. Simple, fast, and compatible; the drawback is that it's expensive compared to similar 4-bay SOHO offerings, but IMO it's worth the premium.

<comment><USER12> I've been reading about Synology, but I can't figure out the encryption.

Does the encryption key also live in the NAS as well? Is it like, sitting there?

<comment><USER15> I haven't used it, so I've no idea.

</comment></comment></comment></comment></comment></comment><comment><USER16> This is nice and all, but why on earth do I have to enable JavaScript to see the photos?

</comment><comment><USER17> Just finished the readme and I have no idea what makes this "super simple".

</comment><comment><USER18> Awesome. What a joyful experience after IG or similar services. Nimble and simple.

</comment><comment><USER19> Another good option in this space: [https://github.com/thumbsup/thumbsup](https://github.com/thumbsup/thumbsup)

</comment><comment><USER20> Look awesome - I've been looking for some hackable code like this to present my photos from google drive. Cheap photo hosting from google + minimal load on my server...

</comment><comment><USER21> I hope it could be extended to retrieve tags and titles from IPCT/Exif. To rename files to photo titles is not very viable and scalable solution, IMHO.

</comment><comment><USER22> Thank you for sharing! I've been looking for something just like this forever.

</comment><comment><USER23> Looks cool. How much storage do Github Pages or Netlify support for free?

<comment><USER24> Github pages will limit you to their git repo size, which appears to be 75Gb and a maximum of 100Mb for any one file.

(Using github to host my photos was my thought as well)

</comment></comment><comment><USER25> thank you for sharing. I was thinking about building the same thing.

</comment><comment><USER26> I need exactly this! Looks very nice and simple, and fast.

</comment><comment><USER27> Seems interesting, but I'm missing a preview site ;)

<comment><USER28> It[1] was in the project description on GitHub.

1\. [https://maxvoltar.photo/](https://maxvoltar.photo/)

</comment></comment><comment><USER29> Very nice, congrats! :)

</comment><comment><USER30> where is the back button ?</comment>


Five Intel Microcode (UCode) Sequencer's Arrays - <AUTHOR> https://github.com/chip-red-pill/glm-ucode <comment><USER2> Extra context can be found in tweets by @_markel___[1].

[1] [https://twitter.com/_markel___/status/1262697756805795841](https://twitter.com/_markel___/status/1262697756805795841)</comment>


Are Golden Age Writers Worth It For New SF Readers? - <AUTHOR> http://www.sfsignal.com/archives/2011/06/mind-meld-are-golden-age-writers-worth-it-for-new-sf-readers/ <comment><USER2> What's a "new" SF reader?

Someone who's young and reading SF is probably going to start out on Harry Potter or contemporary young adult fiction. By the time they're reading adult stuff -- be it current cutting-edge authors or golden age classics -- they're not going to be "new" to the genre and its conventions.

Someone who is coming to SF for the first time as a mature reader may well have difficulty handling the internal dialogue within contemporary adult SF, as it has been evolving for decades -- but there should be no problem starting with the likes of H. G. Wells or Jules Verne (recognized literary classics by those outside the genre) or _1984_ or _Brave New World_ and working inward from there.

Either way, I figure it's unlikely that anyone truly "new" to the genre is going to start with the likes of Asimov or Heinlein or Clarke today (which is not to say they they should be ignored, but that's a whole different argument).

</comment><comment><USER3> Yes, although it's a mixed bag. I've found all of the Asimov stuff to hold up well.

Heinlein is hit or miss. I loved Heinlein's "The Moon is Harsh Mistress" (one of my favorites), but I found "Stranger in a Strange Land" to be utterly full of sexist behaviour that I struggled through it.

I can say for sure: definitely Clarke and definitely Asimov.

</comment><comment><USER4> hmm, should new painting viewers bother with rembrandt, michelangelo, caravaggio, da vinci, etc?

um, yes!

asimov, bradbury, clarke, huxley, etc are worth reading no matter what century you're in.</comment>


Ask HN: What are your new year resolutions - <AUTHOR> <comment><USER2> My New Year's resolution is to start a lifestyle business. I got a head start last week and the website and user dashboard is up, and I already have a few customers.</comment>