Show HN: Python requirements for Humans - <AUTHOR> https://github.com/socketubs/requirements <comment><USER2> This is a nice idea in theory, but setup.py and requirements.txt are not the same, and you cannot particularly generate one from the other:

[https://caremad.io/2013/07/setup-vs- requirement/](https://caremad.io/2013/07/setup-vs-requirement/)

Also, unfortunately pip's parser for requirements.txt isn't public, like much of its internals at the moment, which means AIUI it's likely that the parsing code here is going to be brittle if it uses it, or miss edge cases if it doesn't. (I haven't read this carefully yet though).

<comment><USER3> As somebody who deploys a lot of business-critical Python apps at $EMPLOYER, I don't even _write_ a requirements.txt.

During development and integration testing, I want to get the latest version of my dependencies that I should be compatible with, so I use SemVer matching (somepackage~=1.2.3) in setup.py.

For deployment, I want to use the exact dependency packages that the code was tested against. So after automated testing is complete, it runs "pip wheel" to build wheels of my package and all its dependencies and put them into a directory, then _that_ is the artefact I use to recreate the package in production. Much more reliable than requirement.txt, since it doesn't assume that PyPI or internet access is available, and it doesn't care if upstream authors silently update packages without changing the version number.

The last scenario is unit-testing, because sometimes tests have extra dependencies the rest of the code doesn't share, like a mock library or other test helper. In theory, these extra things could be put in setup.py's "tests_require" option, but then they'd only be installed if you run tests with "python setup.py test", and they'd also be installed with "easy_install", which is terrible. I'm thinking maybe I should use setuptools' "feature" syntax, so you only get the test dependencies if you install with the [test] feature.

<comment><USER4> Another way to do this, that you or someone may be interested in, is by using pip-tools.

You write a requirements.in text file where you list libraries by just their name, and then run "pip-compile requirements.in" and it will output a requirements.txt.

It also has a function called "pip-sync" which will then install/update everything in the requirements.txt file.

[https://github.com/nvie/pip-tools](https://github.com/nvie/pip-tools)

</comment></comment></comment><comment><USER5> Python dependency management is a hard problem, but better than most languages [citation needed]. And `pip` and `setup.py` have emerged over several years, with several influences merged in (remember distutils?).

Honestly, I wish you'd picked a different tag-line though (riffing on `requests` no doubt). Unlike `requests`, your solution only works for a subset of deployment situations, because - as already pointed out - `setup.py` and `requirements.txt` are for different things.

One of the best examples for this I've seen is to use both to deploy to a server with no internet connectivity. For development the dependencies are installed from `setup.py`. Then, before deploying, all dependencies are downloaded via `pip download`. Put the dependencies on the server, finally, use `requirements.txt` with `--no-index` and `--find-links` to install. Definitely an _interesting_ setup, but needs must. Unfortunately, your solution doesn't support `--no-index`, `--find-links` and a few others.

You may want to have a look at tools like `pbr` (Python Build Reasonableness) [1], which has an interesting way of dealing with some hard problems. It also shows how to use `setup_requires` so you don't have to have `requirements.py` hanging around in your repo.

[1] [http://docs.openstack.org/developer/pbr/](http://docs.openstack.org/developer/pbr/)

<comment><USER6> I split my time pretty evenly between the Python and Node ecosystems, and I've found that Python dependency management is extremely poor compared to Node dependency management.

For example, Python's lack of support for nested dependencies means that it can be extremely difficult to use small "utility" libraries like six as subdependencies without running into potential problems from conflicting version requirements from other dependencies.

Additionally, Python's management of different types of dependencies is very weak, specifically with regard to setup.py and requirements.txt. npm has (among other things) very nice explicit concepts of development dependencies and regular dependencies, in addition to application shrink-wraps, which gives library maintainers very easy ways to split out different kinds of dependencies, or lock down all dependencies and subdependencies, using the same set of tools.

While I can say that the current version of pip, especially in conjunction with pip-tools, is significantly better than earlier iterations of Python packaging, I strongly hold that Python packaging is substantially worse than at least one other prominent example.

<comment><USER5> Interesting, I've never hit this and I though I've deployed some fairly complex apps, but you're right of course. The site-packages approach isn't great, and means you pretty much need virtualenv, especially on e.g. Debian where the system Python is really important (I do love virtualenvs, and for a workaround they're pretty solid). Nice to see npm has this pretty much baked in (is my understanding?).

And don't get me started on eggs. I guess the nice thing about Python is that the packaging genuinely seems to be improving year-to-year, although still limited by design decisions and backwards compatibility.

Anyway, thanks for this; I've had a pretty informative morning searching for "npm vs pip". I'm not a Javascript dev, and when I've tried to use it I've struggled with the sheer bloat, even e.g. npm vs bower. Even though I'm a bit jealous of npm now, I'll take pip over package management in the usual enterprise juggernauts (C, C#, Perl or Java) any day!

<comment><USER6> npm has a feature that's broadly equivalent to virtualenvs, in that each directory is implicitly a virtualenv, and you use the packages installed in a given directory (or its ancestors). This is a bit less powerful than virtualenvs since it's tied to the directory structure, but in practice it ends up being really convenient for most use cases. Along those lines, there are also some cool affordances for managing dependencies – you can do e.g. "npm install --save <package>" to install a package and update the equivalent of setup.py with the new package, and it will automatically set that up with a semver range that matches the current stable release of that package.

That's actually not what I'm talking about, though, since ultimately those are just DX conveniences. The big difference is that, by default, npm installs dependencies in a nested rather than a flat manner. This means that you can install "library A" and "library B", which both depend on "library C", without worrying about potential incompatibilities between the required versions of "library C". This isn't possible in Python; one consequence is that you see a bunch of libraries that vendor their own small subsets of six to avoid having potential dependency issues – you don't get this in the Node ecosystem, because you can just pull in that dependency and not worry about potential version conflicts.

All of this adds up to a much nicer experience when developing libraries.

</comment></comment></comment></comment><comment><USER7> Ironically, the package to make your package requirements easier to write has additional requirements not in the core distribution :)

But more seriously, good idea in thinking that things should already be this way. The dual maintainance of the dependency list between setup.py and requirements.txt unfortunately leads to a lot of packages being left out of one or the other, or a package that works great from source that has a broken setup.py (which usually applies to everything I do).

A setup.py command for installing deps from setup.py would, to me, seem a bit more logical - but things already exist the way they do.

In the end though, it's a bit weird to deviate from the standard norms of package installation, at least in Python circles, which may introduce some confusion -- contrast this with Javascript circles that replace "the one true way" about every 3 months :)

<comment><AUTHOR> Thank you for your feeback. Same reasons that encourage me to build `requirements` :)

I know this isn't perfect for now, `requirements` could evolve!

</comment></comment><comment><USER8> I see a problem with that "License is MIT". That's not how software is licensed and if the author wants this to be used, the legal part must be flawless.

Who's the copyright holder? How can I contact that person? What's the copyright year? Licensing software with MIT licence is trivial: [http://choosealicense.com/licenses/mit/](http://choosealicense.com/licenses/mit/)

Depending on the project, if I really care about the legal status of the code I use, I may contact the author to clarify this kind of thing, but sometimes it is too much hassle. Just look at it as a critical bug in your software, and fix it.

On a more personal note I started to dislike the "* for humans", it's been overused.

<comment><AUTHOR> I'll add license file in repository. Thank you.

</comment></comment><comment><USER9> I wish the Python community would adopt a Bundler/Gemfile style. The project.clj concept is also a fantastic approach. Environments should just be maps of data that you can modify or compose on the fly.

</comment><comment><USER10> How would you install a package that depended on this? You can't install it's dependencies automatically until you've got one of the dependencies installed.

<comment><AUTHOR> Like I say in README[0], you have to put `requirements.py` beside your `setup.py`

[0]: [https://github.com/socketubs/requirements#usage](https://github.com/socketubs/requirements#usage)</comment></comment>


Show HN: dateamp.com gets you cheap critiques on your online dating profile - <AUTHOR> http://www.dateamp.com

<comment><USER2> There's something slightly disturbing about this need to airbush your online persona and I think you need to address this in your marketing. Try to focus on the positive aspects of your application, e.g. that some people are so clueless that they portrait themselves as losers/jerks when they in fact are very nice people; your service really helps people.

It seems to me that you are making an assumption that the reviewers are equally competent on reviewing a certain profile, but doesn't this type of work involve individual taste? How can you decide if the profile is good or not without looking at the semiotics of the profile or the identity of the customer? A profile for a New York hipster is probably very different from a blue-collar worker in Germany. Are your reviewers cognizant about these things? If so, maybe you should communicate this in your marketing, i.e. that your reviewers have diverse backgrounds ("We have reviewers who are hipsters, yuppies, hippies, Christians, Asians, African-Americans and more!").

The core issue here is credibility but also the reason why the test panel sucks as a feedback instrument: how people claim to perceive reality differs greatly from how they actually perceive it. Your reviewers might claim that a certain profile is sleazy but that's an opinion formed without the actual context. So highlight the good stuff about your reviewers, transform them into expert on the subject, not just some opinionated randoms. Whether anonymity hurts or strengthens your reviewers is up to you to figure out. In real life we put a lot of trust in acknowledged experts who per definition cannot be anonymous unless they work under the banner of a prestigious organization.</comment>


Grub with YC alumni during interview week - <AUTHOR> https://www.grubwith.us/san-francisco

<comment><USER2> I did a GWU in Palo Alto last week and it was a cool experience. The group of people was interesting - it included YC alums, VC's, and engineers and designers of all kinds, but most importantly everyone was welcoming and genuinely interested in meeting new people.

</comment><comment><USER3> I did a grub during the interviews for the Winter 2011 batch and it was really helpful meeting the alumni but more importantly, the other interviewees.</comment>


Best, Worst States for Tech Jobs - <AUTHOR> http://www.informationweek.com/it-life/best-worst-states-for-tech-jobs-comptia/d/d-id/1324746 <comment><USER2> Direct link to report (PDF) without the 13-click blogspam slideshow (which hits external metrics sites _145 times_ ):

[https://www.comptia.org/docs/default- source/advocacydocs/cyb...](https://www.comptia.org/docs/default- source/advocacydocs/cyberstates/comptia- cyberstates-2016-vfinal-v2.pdf?sfvrsn=2)</comment>


Runs on the Librem 5 Smartphone – Week 1 - <AUTHOR> https://puri.sm/posts/runs-on-the-librem-5-smartphone-week-1/ <comment><USER2> I was really excited about the Librem 5 (really, anything Purism is neat), and am still very interested but have had reservations regarding Purism ever since the Yale Privacy Lab published a few short tweets with the conclusion that they cannot recommend the Librem One services suite[1].

There have been a few other hiccups along Purism's way as well (0day on launch, ruffling the feathers of the FOSS community, etc.).

According to Forbes[2], in response to trackers being included in the Librem One suite, CSO Kyle Rankin said :

> _" While we took efforts to disable tracking with code flags, a few days ago > week we discovered that even with that it still had trackers in it,"_

The article mentions:

> _" Rankin reiterates that the company upstreamed the Librem One Chat app > from the Riot Android app, and discovered those same trackers a few days > ago."_

Which, for a company almost solely built on the concept of privacy, I would expect an extremely thorough vetting of every line of code prior to product launch. When your target market is those who care about privacy the most, you're potentially dealing with customers whose lives depend on that very privacy.

I'd like to stay optimistic about all of the Purism products, and I hope to eventually be a customer. I think it might be prudent to wait a little bit though, until the wrinkles are ironed out.

[1][https://twitter.com/YalePrivacyLab/status/113903927498732748...](https://twitter.com/YalePrivacyLab/status/1139039274987327489) [2][https://www.forbes.com/sites/jasonevangelho/2019/05/06/puris...](https://www.forbes.com/sites/jasonevangelho/2019/05/06/purism- explains-why-there-are-trackers-in-librem-one-chat/#11d18d705feb)</comment>


XS: Lisp on Lego MindStorms - <AUTHOR> http://www.yuasa.kuis.kyoto-u.ac.jp/~yuasa/xs/index.html <comment><USER2> MIT Handyboard is a much more powerful platform for hobbyist robotics. Check out the light seeking robot I built:

<http://www.youtube.com/watch?v=KaeWc4RPhok>

<comment><AUTHOR> Neat! Reminds me of the 'elektor' turtle from the 80's, did much the same thing with a bunch of opamps.

It also was clever enough to find a place to recharge iirc.

There was another one in one of the early 'byte' issues.

</comment></comment><comment><USER3> Given that Roombas are programmed in Lisp, how long before someone ports the Roomba AI to Lego?</comment>


Show HN: FizzBuzz purely in Rust's trait system - <AUTHOR> http://github.com/doctorn/trait-eval/ <comment><USER2> Unusually nursery rhyme-like for code :)

      impl<T: Nat,
        Mod3: Nat,
        Mod5: Nat,
        ShouldFizz: Bool,
        ShouldBuzz: Bool,
        ShouldFizzBuzz: Bool,
        DidBuzz: FizzBuzzType,
        DidFizz: FizzBuzzType,
        DidFizzBuzz: FizzBuzzType>

</comment><comment><USER3> It's horrible, I love it!

Interesting implementation of `If`, I had no idea the trait system could be... _used_... to such extent.

<comment><USER4> A lot of this is fairly standard church encoding.

<comment><USER5> Not sure why this got downvoted. I'm familiar with Church encoding but not Rust's type system. Armed with that knowledge, I can read the source and deduce what the foreign syntax means. To somebody who knows neither, identifying this pattern can be helpful -- without that, they can read Rust docs and puzzle through the weird construction. With the information, they can read up on Church encoding at an abstract level, and then recognize it in the source -- which can help untangle the Rust syntax.

</comment></comment></comment><comment><USER6> Oh good. We're reaching C++ levels of template metaprogramming.

<comment><USER7> C++ allows expressing that more concisely though :p [https://twitter.com/Cor3ntin/status/1264600096869691392](https://twitter.com/Cor3ntin/status/1264600096869691392)

<comment><USER8> That's because it's using constexpr. The equivalent in Rust would be const fn. This is using Rust traits.

The goal isn't to be concise, I think the goal is literally to just do it in the trait system

</comment></comment></comment><comment><USER9> Makes me think of the time, many, many, many years go, when I was learning IBM 7090 assembly language (my introduction to computers). The macro assembler was powerful enough that I could check for primality at assembly time.

<comment><USER10> This sounds super awesome! I can't imagine how interesting those times might have been. I started to play around with a 6502 just because there is the possibility to understand the system to some extend. Modern day software engineering is like sitting in the golden cage. Not because the the systems are inaccessible like mobile devices or Apple Computers – you can still get pretty far on Linux systems – but the main reason is that you just can fit all the stuff in your brain. If you try to understand how your Angular/React/whatever project is getting their pixels to the screen all the way down – its just a project for a lifetime and even that is not enough. Understanding modern x86 processors is almost impossible – yeah to some degree enough to understand some basic concepts to not shoot yourself in the foot with how the cache works etc. but getting your hands dirty with an 8-bit processor and reading the datasheet is just something very different.

<comment><USER11> It's not that bad, check out the Serenity OS project (on Youtube).

<comment><USER10> It is to be honest. I checked out various OS's and being involved in one of them ( Redox OS ). The problem is that this is "just" the OS part. There are multiple layers above and multiple layers below. Understanding the ins and outs of modern processors (pipelining, branch prediction etc.) motherboards pcie, things like coreboot, modern RAM etc. multiple layers of software abstractions until chrome or firefox have rendered the pixels i command with the javascript engine ... that is just humongous compared to a simple 6502 setup where i am able to really understand every aspect, can replace pieces, build things on top (hard and software) .. making my own RAM ... just for fun. Its a different kind of thing.

<comment><USER11> While the Serenity OS does not address the layers below, it does address layers above, e.g. the browser.

If you have a blog, I would like to read about your experiments!

</comment></comment></comment></comment></comment><comment><AUTHOR> You didn't need this, you didn't want this, but here we are.

<comment><USER12> ...and now that you've seen it, you can't unsee it.

</comment></comment><comment><USER13> At least this kind of thing is genuinely useful as a stress test for the Rust compiler.

</comment><comment><USER14> Beautiful. With such advances on the frontier of Trait exploitation, soon most of the Rust language will become obsolete and everything will be evaluated on compile-time! It is the ultimate optimization. Just embed the most expected output values in the binary and run time calculation becomes redundant.

</comment><comment><USER15> On the "clunky syntax" doc comment: a thing typenum does repeatedly is to define generic typedefs that become trait exprs. For example,

      type If<Cond, Then, Else> = <(Then, Else) as If<Cond>>::Output;

<comment><AUTHOR> I was unaware of typenum until I started showing people this - I'm actually amazed at the level of effort that's gone into it.

</comment></comment><comment><USER16> Fizz Buzz rules here: [https://en.m.wikipedia.org/wiki/Fizz_buzz](https://en.m.wikipedia.org/wiki/Fizz_buzz)

Rules for actually using this crate: Don't :-).

That said, there are legitimate reasons to implement things at compile time. It means that libraries can create very efficient code that you don't have to write. But like all of powerful capabilities you should beware of misusing them. Like this :-).

<comment><USER17> Of course, anything this complicated should probably be a proc macro in Rust.

</comment></comment><comment><USER18> Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should.

</comment><comment><USER19> Wait, there's no loop from 1 to 100. I would not count.

</comment><comment><USER20> what's Three here?

<comment><USER5> I was a lil confused too, but that's just an overview of the actual source:

[https://github.com/doctorn/trait- eval/blob/master/src/lib.rs](https://github.com/doctorn/trait- eval/blob/master/src/lib.rs)

</comment></comment><comment><USER21> Someone looking for the unbeatable [https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...](https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition) ?

<comment><USER22> Seems unrelated. Does Java have a compile-time feature that is Turing complete and can be (ab)used to write FizzBuzz? For example, C++ has such a feature: [https://gist.github.com/bgaff/2496338](https://gist.github.com/bgaff/2496338) (there's more examples, try searching for "accidentally Turing-complete", there are some really fun solutions.)

<comment><USER23> As far as i know, No. The compiler stubbornly refuse to inline any method calls.

But it has been proposed in JEP 303 [1]

[1] [https://openjdk.java.net/jeps/303](https://openjdk.java.net/jeps/303)

<comment><AUTHOR> Actually, subtype-checking in Java is Turing-complete. Someone proved this and used the result to build a parser generator for fluent interfaces. [1]

[1] [https://arxiv.org/pdf/1605.05274.pdf](https://arxiv.org/pdf/1605.05274.pdf)</comment></comment></comment></comment>


Which devices will get Ice Cream Sandwich? - <AUTHOR> http://www.engadget.com/updates/which-devices-will-get-ice-cream-sandwich/ <comment><USER2> An equally important question is "when?" I don't understand why this part is overlooked. Getting ICS within a month of release is not the same as getting ICS 12 months after release.

<comment><USER3> I am also more interested in when. I can only make wild speculations based on history. The first phone to feature ICS will be the Galaxy Nexus which will begin being sold around mid-November. In the past it has taken around a month for the previous gen Nexus to get the OS update. I'm holding out hope that the Nexus S will get the update by mid-December, but that is just speculation. As for other carriers and manufactures, there is no telling when upgrades may come. Upgrading people's phones with a better OS does not exactly help sell phones so I'd bet a longer wait for those without a Nexus S.

</comment></comment><comment><USER4> At this point I'm more interested in which devices some future Cyanogen release of ICS will support.

</comment><comment><USER5> Given the history of android update promises "confirmed" is probably best saved for when ICS is actually available for user update.</comment>


Ask HN: Does my homepage make sense to you? - <AUTHOR>

I'm looking for some feedback from the HN community on my homepage for a new project I'm working on. Would love some critiques and insights. The URL is http://www.audienceowl.com<p>Included a clickable link in the comments. Thanks. <comment><USER2> _1\. Landing Page Copy:_

This piece of text is your USP "Identifies which of your subscribers are influencers"

I think that all you need is , with a slight modification:

i. "Identify influencers in you email list" and

 _ii._ the 4 bullet points above the How it works video. ie

"Generate relevant content for your audience (more traffic)

Segment your audience so you can send targeted offers (save money)

Create offers that will convert better (more revenue)

Target advertising dollars that reaches your ideal audience (higher ROI)"

Everything else is too much to read - most people are just not going to do that.

 _2\. How it works Video:_

This can then come directly under this copy (in place of the infographic you have currently.

 _3\. Background Image:_

This is just too random. You want something that's more reflective of your users end state after they've used your product.

 _4\. Call to Action button:_

Instead of what you have, induce a little excitement/urgency by changing the text in the button to something like "Get Early Access".

Being "notified" is just boring.

Note: Everything to this point, ie the landing page copy, the video and the CTA button should fit on one page without scrolling.

 _5\. Other Links:_

The purpose of this pre-launch landing page is to get people to click on the CTA button and give you their email address, not click around.

 _a._ If you take the suggestion I made in #2, that removes the need for the "How it works" link in the header

 _b._ Similarly, the CTA button in the header is redundant

 _c._ The Pricing link: Given that people haven't had a chance to play around with your product, giving them info on pricing is without context and they can't really judge whether the features make sense or not. Also, there's no comparison info to similar products to judge the value of your offering.

I suggest one of 2 paths:

 _i._ Either remove pricing info for now and see if the landing page with the video itself converts or not or

 _ii._ Try testing pricing with a 3-page landing page strategy like Buffer did: [https://blog.bufferapp.com/idea-to-paying-customers- in-7-wee...](https://blog.bufferapp.com/idea-to-paying-customers-in-7-weeks- how-we-did-it)

Hope that all made sense.

</comment><comment><USER3> \- Way, way, waaaaaaaay too much text.

\- Odd color and layout choices:

\-- Why is "Enterprise" in scary black?

\-- Why are some things vaguely centered (but not), other items right-aligned, and then back to left-aligned?

\-- From the top, we go through blue, light-gray, orange, grayish-blue, black, yellow, dark-gray, blue, etc. colors.

\- Bottom menu links don't work.

\- "It's as easy (and awesome as pie)" should probably read "It's as easy (and awesome) as pie"

\- "Hoot doesn't?" ... just... no.

\- Lots and lots and lots of little things like missing decimal commas ("2000 profile matches" should be "2,000 profile matches", etc.)

\- Resizing the browser window makes the hero image appear/disappear (Firefox 33, OSX 10.9.5, latest rMBP)

\- The website is missing a useful title tag (currently: "Audience Owl -/")

\- And again: Shorten ALL texts! Example for the top call-to-action: "Next Level E-mail Marketing. [new line] Deep insights into your e-mail recipients"

<comment><AUTHOR> thanks for taking the time to write all of this, I really appreciate it. So it looks like I have a lot of work to do, mostly clean up the design colors and fix the copy, formatting. There was actually a lot more text in previous iterations believe it or not! I'll work on it. Thanks again for the candid feedback.

</comment></comment><comment><USER4> One or two other commenters mentioned there's a lot going on, but I feel there are MUCH worse websites for that.

I think all it needs is a little more negative space, and it'll pop. Good stuff!

<comment><USER5> The site looks good but it will never compare the masterfully crafted demonstrated by Geocities Bootstrap

</comment></comment><comment><USER6> Looks pretty slick. I like that it's full width, at least on my screen.

On my computer on initial load the image is almost, but not quite, all above the fold, with the orange button cut in half, which isn't a great look.

The colour scheme seems slightly incoherent - you've got a lot of blues, some orange, and then this black/yellow section in the middle that sticks out almost like a banner ad. I'd see if you can rework that to fit in better with the rest of the page.

<comment><AUTHOR> thanks, mate. I'll fiddle with it some more to move the button higher up. I'll also try to cut back on all the colours, it is probably overwhelming to users.

</comment></comment><comment><USER7> Personal opinions about what you offer aside:

Link to your Privacy Policy doesn't work.

The "get notified when we launch" buttons look odd (I don't like the tab-like look, and the lines below them don't always match the width of the tab). If I click on one the background of the page jumps around.

The first blocks are to short, making the page very busy. Try to combine their looks.

<comment><AUTHOR> Yeah, the links at the bottom don't work yet. When you refer to the "first blocks are to short", which are you referring to?

<comment><USER7> The 3 "blocks" below the image (4 vertical points, then three horizontal, then 4 in different color scheme). I hope you get now which part I mean.

</comment></comment></comment><comment><USER8> I think there is too much going on there, in terms of text, and colors. Try moving the video to the top just below the main headline. Also a span12 grid with 3 cols would look better since you want an opinion.

"Use this knowledge to build strategic relationships, sa.." text looks really out of place.

<comment><AUTHOR> Thanks man. It seems like the general consensus is that there is too much going on which I'll need to address somehow. Back to the drawing board.

</comment></comment><comment><USER9> Doesn't work with old browsers. And may want to make sure potential clients browser versions are compatiable with the site

<comment><AUTHOR> Which browser did you try it with? Thanks for the heads up.

<comment><USER9> When it broke I was using IE version 9.0.8112.16421.

<comment><AUTHOR> Interesting, when I switch to IE 9 it loads fine over here. What exactly broke?

<comment><USER9> Just some layout things. Everything is there but the layout gets totally screwed.

Works fine and looks good in Firefox though.

<comment><AUTHOR> shit, ok will look into it. Thanks!

<comment><USER9> Personally I wouldn't bother fixing it just have a warning that says "This version of Internet Explorer is no longer supported. Please upgrade to a ......" (I took from gmail) So they know if they continue this isn't how the webpage is suppose to look and may behave badly because of it. Or something along the lines of that

<comment><AUTHOR> I think IE 9 is about as far back as I'm willing to go. So I would like to get that working, but you are right, anything older and I should have a warning.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> If you think about this project seriously then you should hire a designer, it's gonna be money well spent.

<comment><USER3> I didn't want to be rude... ;)

<comment><AUTHOR> not rude at all! very helpful :)

</comment></comment></comment><comment><USER11> Site is blank with cookies disabled. (Yes, there are a few of us out there :->)

</comment><comment><AUTHOR> link is [http://www.audienceowl.com](http://www.audienceowl.com)

</comment><comment><USER12> It's not terrible.

<comment><AUTHOR> hehe thanks! Is there anything you like about it? Anything you hate?</comment></comment>


If you're a startup, you should not use React - <AUTHOR> https://medium.com/@raulk/if-youre-a-startup-you-should-not-use-react-reflecting-on-the-bsd-patents-license-b049d4a67dd2 <comment><USER2> Great article, I gave it a clap!

</comment><comment><USER3> Vice analysis, thanks for the heads up</comment>


Marie Kondo betrays her whole premise by launching e-commerce store full of junk - <AUTHOR> https://news.avclub.com/marie-kondo-betrays-her-whole-premise-by-launching-e-co-1839960688 <comment><USER2> I've seen the question raised whether the "minimalism" (in terms of not owning much) often attributed to Marie Kondo is actually an accurate representation of what she says. The alternative interpretation being something more like "mindful ownership".

I'm in that second camp, slightly confused by people saying things like "Marie Kondo thinks I shouldn't own more than 20 books" or whatever, because that wasn't what I understood. The point is to _think_ about whether that number of books is an effective use of your living space - and the answer can be yes.

So yeah, an online store seems a little odd, but by this point my default position on anything M-K related is "take a second and make sure this isn't misrepresenting her views". Maybe a little shop full of neat things that Marie Kondo likes is... fine? ¯\\_(ツ)_/¯

<comment><USER3> On the other hand, a $14 empty bottle for hand soap, or $180 for a cheese knife... I mean, come on.

There is mindfulness about what you own, and then there is selling overpriced junk using your brand just like everyone else. Sure, you can be mindful and enjoy your MK $220 fruit bowl, but really what you are buying is the brand, not the bowl.

I think there is an implicit "don't buy things just because you want other people to see you bought it", which is contradictory with the idea of selling overpriced knickknacks that only serve to show other people that you bought into some kitchy fad.

<comment><USER4> I can understand the soap bottle¹. A dedicated reusable glass container instead of a bunch of single-use plastic ones is less wasteful, and looks better, in my opinion. $14 ain't bad for that, price-wise, assuming they're good quality (which is a big "if", in fairness, but still).

$180 for a cheese knife, or $75 for a tuning fork and a crystal the sum of which costs half that on Amazon (let alone Alibaba), is on the other hand quite absurd.

\----

¹: Disclaimer: my employer sells (among many other things) glass bottles pretty similar to the ones on shop.konmari.com. something something these are my opinions something something not representative of my employer something something

</comment></comment></comment><comment><USER5> Minimalism is something only the truly rich can actually afford to do: [https://priceonomics.com/post/45447777955/is-minimalism- just...](https://priceonomics.com/post/45447777955/is-minimalism-just-for- rich-people)

Money is the ultimate backup for missing things or for things that are needed infrequently. Regular people can't afford to keep minimal, once you have paid for the item, it needs to be kept for future uses, even if those are very infrequent.

<comment><USER6> > _Minimalism is something only the truly rich can actually afford to do_

Hardly. I know lots of minimalist people that barely make ends meet (and could have loaded their credit cards to get a house full of junk like other people I know, but they didn't) -- you just have to get out of the rat race.

A writer that lives in a bare apartment, doesn't even have a TV set, doesn't need a designer espresso machine, or to stuff the house full of IKEA, is not a "truly rich" person.

Some such people I know make like 20-40K/year (US equivalent, they are in Europe, but I'm pretty certain tons of people like that exist in the US too. E.g., does this person look "truly rich": [https://www.youtube.com/watch?v=rfmfz_8b5fA](https://www.youtube.com/watch?v=rfmfz_8b5fA) ).

And yes, this includes people with kids.

It's also not about having few but hella expensive "quality" things. E.g. you don't need a Macbook to be a minimalist, you can do it with a knackered PC laptop you use for 10 years.

<comment><USER7> Maintenance is a big catch. You can either pay other people to maintain your things, or you can maintain them yourself. The former is expensive, the latter involves keeping an array of tools & materials. Cooking is another, and similar.

There's always the option of simply not doing maintenance and eating unhealthy, of course. But I wouldn't' consider that successful minimalism.

<comment><USER6> > _Maintenance is a big catch. You can either pay other people to maintain > your things, or you can maintain them yourself. The former is expensive, the > latter involves keeping an array of tools & materials. Cooking is another, > and similar._

But how is minimalism related to maintenance? I mean, minimalist just have/feel the need for less stuff. They still take their cars for service (if they have a car), wash their clothes, call the plumber, etc.

In that sense, minimalist is the opposite of consumerism. It's not about fixing your fridge yourself or making your own furniture. It's more about buying less furniture.

Same for eating. A minimalism and a non-minimalism can eat exactly the same, there's nothing much about minimalism as commonly understood that dictates how to eat.

Minimalist just says you don't need 50+ kitchen gadgets, fancy coffee makers, etc. A simple kitchen (with an oven, fridge, pans, microwave, etc) will do. And you can always cook (if you have the time regarding work) or eat out. Minimalism doesn't say anything about not eating out. Just says "don't amass stuff / consume less clothes/furniture/gadgets/shoes/etc / simplify your surroundings".

<comment><USER8> > They still take their cars for service

But not every car owner takes their car for service! That's the point.

Some car owners service their own cars, for a variety of reasons, not least of which is that it can be quite a bit cheaper.

I think this goes back to the point about needing money to afford having less stuff.

I have a set of ramps, an oil drain pan, a jug for returning the old oil, a specialized filter wrench, and a ratchet. That's about $200 in stuff, and then I pay $20 for oil and $4 for a filter each time. As opposed to $65 at the oil- change place or $80 at the dealer, because they both charge a mindboggling markup for using full-synthetic oil. (And I'm not confident the place on the corner actually puts in what they claim to anyway.)

Since I count this as something of a hobby, I don't count a dollar value for the time I spend doing it. Which means I'm saving roughly $50 each time, and the tools are paid for after 4 oil changes. After that it's pure savings. If I wanted to have less stuff, I'd pay quite a bit more for the privilege.

I assert that minimalism is directly at odds with self-sufficiency.

<comment><USER6> > _But not every car owner takes their car for service! That 's the point._

That's ~a~ point, but it's not tied to minimalism. That's more about the savings.

And in this day and age, with modern cars being quite unserviceable, I don't know many (whether poor or not) that fix their own cars, except for very basic things (changing oils, and so on. Not many tools needed for those).

> _Since I count this as something of a hobby, I don 't count a dollar value > for the time I spend doing it. Which means I'm saving roughly $50 each time, > and the tools are paid for after 4 oil changes. After that it's pure > savings. If I wanted to have less stuff, I'd pay quite a bit more for the > privilege._

Well, that's still like a small set of stuff, at best fitting in a small box and forgetting about it. So it's not really outside minimalism.

A person who is a minimalist but also a carpenter could have 10x the devices and still be a minimalist.

It's all about not getting more than you need to get the job done, which many people, whether in their regular decoration/life/job/etc, or in their hobbies, do (e.g. related to "gear acquisition syndrome").

In other words, it's like the idea of "minimum viable product", but applied to buying stuff. Orthogonal to how much that product must cost.

Sure, if someone is rich enough to oursource all of their life (e.g. have chefs deliver them food) then they don't need a kitchen at all, and can have a more minimal house this way.

But that's in no way a requirement for being a minimalist, or applying minimalism to one's house.

And in most cases it's the inverse: people with more money get a bloated kitchen with all kinds of crap they don't need ("juice squishier" anyone?) compared to people with less. But people with less are hardly minimalists either. You can overbuy stuff and fill your house even on a very basic wage (30-40K say).

> _I assert that minimalism is directly at odds with self-sufficiency._

It's really orthogonal. What you describe as self-sufficiency example consists of buying all kind of tools to save $200 a year or less (and that's if one doesn't count their own time's value).

But even a person making $40K could still pay those $200 -- and they mostly do, minimalists or not.

So it's not like "changing oil self-sufficiency" or the need to save money on oil changes prevents one from being a minimalist. Or proves that you need to be "ultra rich" (the claim at the start of this thread) to be one.

<comment><USER8> > And in this day and age, with modern cars being quite unserviceable, I don't > know many (whether poor or not) that fix their own cars, except for very > basic things (changing oils, and so on. Not many tools needed for those).

Well, you just met one. Aside from pulling the engine, which would need a hoist I don't own, or body work (I've never been much good with sheet metal), there isn't a job I can't do on my car, which is a 2012 hybrid. Diagnostics are a USB dongle instead of a stethoscope now, and tweaks are likewise software-based, but here on HN of all places, this should not be surprising. Bearings are still bearings, tires are still tires, and the whole thing is held together with clips and screws and glue just like every other car in the history of cars. It's hardly rocket science.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> To be fair, I think her shtick is throwing useless stuff away, not avoiding acquiring it in the first place (because if you didn't have, you wouldn't need to discard it). With this new store, she profits from both ends of the junk lifecycle.

</comment><comment><USER10> Marie Kondo's main criterion for keeping stuff is whether it makes you happy to have it. "Does this spark joy?" It has nothing to do with the utility of the items in question.

<comment><USER11> Does it spark joy?!? I don't have a toliet brush because I find it joyful...it's a utility...

<comment><USER12> Because I own a toilet brush I feel a tiny amount of joy each time I _don 't_ have to use my bare hands to clean the toilet.

Your preference may be different and that's ok.

<comment><USER13> Interesting digression: In Japan there was a recent fad of cleaning toilets with bare hands. A sort of hyper-stoic discipline exercise. It's not as big as western media makes it out to be, the story mainly revolved around a volunteer group that cleans public toilets with their hands.

[https://japantoday.com/category/features/lifestyle/the- tao-o...](https://japantoday.com/category/features/lifestyle/the-tao-of- toilet-cleaning)

</comment></comment></comment></comment><comment><USER14> I honestly don't get the problem. If they had read the book, it should be obvious that throwing away "useless"(as in utility) stuff isn't the point of it. Sure, Marie presses hard, but she doesn't compel you to throw away things you like, just the stuff you think you like or you liked or may like in the future. In general, things that have no purpose being in the house.

Calling her store a site full of junk shows just how much some people got out of the book. I mean, she is just selling some novelties and if something on there sparks joy for someone, that's their business.

This utility only, multitool, male fantasy kind of minimalism that people want to believe Marie is all about is honestly very annoying.

<comment><USER15> It's the same simplistic interpretation of financial frugality, or just plain old sound money management. People like to present is as hair-shirts and gruel, and depriving yourself for no reason other than the accumulation of wealth for its own sake. But the whole point of good money management is so that you have the money to spend on the stuff you really care about, rather than wasting it on that which you don't.

</comment></comment><comment><USER16> She's pragmatic and has to somehow capitalize on her success. And the very reason everyone owns so much crap is because this is the way you can easily do that. Selling cheap shit to the masses. She was never preaching an end to consumerism or actual social change. She just had a cute pitch for a role that could provide her fame so she could get a payday.

No doubt tons of fans of hers will fill their houses with her crap-ware and the irony will be lost on them. But what does it matter? They'll buy it because they want to express their alignment with her image through their spending. Just like they bought an exercise bike because they wanted to seem fit. And then they threw it out because she told them it was what they should do and they listened and now she's saying buy tuning forks and they'll listen.

</comment><comment><USER17> Went through the e-commerce site they reference. Besides spiritualist tools like tuning forks (useless to some, some people dig it, I try not to hate on fandoms of any flavor), I wouldn't call anything in there completely useless.

Maybe overpriced, but overpriced, high quality, purposefully minimalistically designed items are a staple now. Given the number of questions you can find on /r/minimalism of "what is the most minimalistic toothbrush", this is mostly harmless in the way capitalism tends to be.

The store is for people trying to deal with their anxiety by adjusting their environment to be more like a luxury spa/hygge cottage in the Alps. At the point where buying things from her website sounds awesome, I'm guessing you've already read the books and gotten something out of them.

</comment><comment><USER18> George Carlin on Stuff:

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

</comment><comment><USER19> Included in the collection is a Lego container--now thats something to spark joy and be tidy about it.

[https://shop.konmari.com/collections/tidying- organization/pr...](https://shop.konmari.com/collections/tidying- organization/products/konmari-tidying-room-copenhagen-lego-storage-brick)

</comment><comment><USER4> To play Devil's Advocate:

Maybe the reason why this junk is so expensive is specifically to discourage people from cluttering their lives with it? Some of the more-obviously-useful stuff is more reasonably priced (organizers, soap bottles, etc.; there's a markup, sure, but it ain't extreme for a "premium" brand like Marie Kondo might be trying to establish). Meanwhile, the useless-looking junk is almost universally priced high.

Marie Kondo's playing a joy-sparking 4D chess game while we're here playing checkers.

</comment><comment><USER20> It's certainly stuff that I would never purchase, but if they spark joy for her, it seems perfecty aligned with her philosophy. Tastes differ. Meh.

</comment><comment><USER21> The Guardian covers the story entertainingly [https://www.theguardian.com/lifeandstyle/shortcuts/2019/nov/...](https://www.theguardian.com/lifeandstyle/shortcuts/2019/nov/19/therapeutic- tuning-fork-unnecessary-item-marie-kondo-queen-of-tidying-online-shop)

</comment><comment> tom-thistime She's not buying junk. She's _selling_. If that's not walking the walk, I don't know what is.

</comment><comment><USER22> Throw away crap so you can make room to buy NEW crap? Genius. That sounds like an idea straight from SV

</comment><comment><USER23> TO rehash an old line: I put her book in my hand, and it did not bring me joy. So I binned it.

</comment><comment><USER24> Why is the author picking on the tuning fork? The author even quotes Kondo explaining why the tuning fork has importance for her. Is it just that the author does not agree with the explanation?

<comment><USER4> Probably because it and the accompanying crystal are 1) marked up 100% relative to the comparable equivalents on e.g. Amazon and 2) seem to be aimed squarely at homeopathic "alternative" "medicine", within which 4096Hz tuning forks and quartz crystals and essential oils are all the rage.

In Kondo's defense, though, at least the product descriptions stick with vague weasel words like "believed to help restore a sense of balance" instead of actually making borderline-FDA-enforceable medical claims like snake^Wessential oil peddlers do.

</comment></comment><comment><USER25> She never claimed to be a minimalist. She only claimed to be tidy.

</comment><comment><USER26> I'm not judging, but I'm honestly surprised we care what Marie Kondo does and how she betrays her whole premise. Sure, I heard about her, but is she considered to be a respectable lifestyle guru in USA now, or what? I thought, she is just some media-entertaiment celebrity for housewives, and it's not like it is unusual for a celebrity (or anybody else, for that matter) to betray his whole premise about 500 times a day...

</comment><comment><USER27> Maybe she should have a nicer 'minimalist' trash can available to buy on her site ...

</comment><comment><USER28> This is to be expected, it's part and parcel of capitalism. If you have an audience, you will eventually feel the pressure to sell something to them while the iron is hot, as maintaining an audience is work after all.

It's the same as Youtubers pitching phone skins and makeup brands. Or bloggers pitching their books or filling their posts with affiliate links?

</comment><comment><USER29> You would have nothing that gives you no joy otherwise

</comment><comment><USER30> One person's junk is another person's treasure

</comment><comment><USER31> .... But earned 150$ from me just now

</comment><comment><USER6> She betrayed her whole premise when she did a 10 paragraph idea into a whole TV series, books, and so on...

</comment><comment><USER32> >Sure, nobody should fault Kondo for being a capitalist, and props to her for introducing some Eastern spirituality staples to Western sensibilities.

Why on earth not?</comment>


Four Lessons From Evernote's First Week On The Mac App Store - <AUTHOR> http://techcrunch.com/2011/01/19/evernote-mac-app-store/#comments

<comment><USER2> It would be interesting to see how these numbers compare with apps that were not as prominently featured or not as well-known as Evernote. Clearly the numbers would not be as high, but I'm wondering if some of the percentages would be consistent.

<comment><USER3> My big takeaway from the article was that the Mac store is a solid marketing/discovery vehicle for applications and a decent way to pick up some new users.

</comment></comment><comment><USER4> Is the success of the Mac App Store reproducible on Windows? I don't see Microsoft coming up with a successful solution and its hard for a third party to navigate the Windows version jungle.</comment>


What can I do for Mozilla - <AUTHOR> http://whatcanidoformozilla.org

<comment><AUTHOR> Previous discussions: [https://news.ycombinator.com/item?id=5503973](https://news.ycombinator.com/item?id=5503973) 691 days ago [https://news.ycombinator.com/item?id=4635990](https://news.ycombinator.com/item?id=4635990) 869 days ago</comment>


Beginning Node.js Development  - <AUTHOR> http://javascriptplayground.com/blog/2012/04/beginning-node-js-express-tutorial

<comment><USER2> First: node is freaking _amazing_. I've been writing python CGI on Apache for the last few years, but can easily see myself moving to:

nginx -> Static html/javascript/images/css

node.js -> API

Apache -> old Python CGI stuff I still want (beautiful soup, for instance)

To me, this stack is a lot more comfortable, and is a _lot_ faster.

\----

Here are a couple of things that this tut misses.

1) You need to talk to your database. This will become immediately apparent when you try to do anything. You can google around, which will lead you to stack overflow, or you can just listen to me right here and use "mysql".

         npm install mysql

Easy.

2) Callbacks. This is freaking _huge_. node will not make any sense to you if you do not understand this. For instance, if you have a function called "get_username()" (Hi! I have a function called get username, I'm speaking from a mistake I made about this!), and you call it like this:

         username = get_username();
         res.write("Hi, you are: " + username);
         res.end("buhbye!");

Your page is just going to crash because username is undefined. This is because node is nonblocking. It doesn't wait for get_username() to return before continuing...meaning your server will end before get_username() finishes.

This is a problem.

So what you need to do won't make sense at first (and maybe I'm doing this wrong, correct me if I am).

you would do:

        get_username(res);

and then you would have:

        function get_username(res) {

            do_some_things;
            db.query(query, function() { ;
                 //this is your db connectors callback function.  It fires when your query is finished.
                 username = some_query_results['user'];
                 res.write("Hello, you are: " +  username);
                 call_some_other_function();
                 or_if_this_is_the_last_thing_you_want_to_do_call res.end();
                 });
         }

The point here [and this is obviously just pseudocode] is that you don't just write out a list of functions. You write functions that call each other when they're finished.

read this: [http://blog.mixu.net/2011/02/01/understanding-the-node-js- ev...](http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/)

<comment><USER3> > This is because node is nonblocking. It doesn't wait for get_username() to > return before continuing.

You misunderstand how non-blocking works. In this case, it -most definitely- waits for get_username() to return before continuing. If get_username itself does some asynchronous calls (like db.query), that's its problem, but execution absolutely waits for your own functions to finish.

I'd recommend reading up more on event-driven programming.

<comment><USER2> Great, could you point me somewhere to learn more about the topic?

<comment><USER3> Sorry, nothing off the top of my head, but a good starting point would be googling for stuff like "node event driven" or maybe "event driven programming" in general.

<comment><USER2> Not sure if you're still monitoring this thread [no HN notifications, eh?], but here's my question:

My get_username() function, say I have this code:

         var server = http.createServer(function(req, res) {
             username = get_username();
             res.writeHead(200);
             res.write("<html>");
             res.write("You are " + username);
             res.end("bye");

This obviously won't work, res.end() gets fired long before my DB query in get_username() finishes. How else would I accomplish what I'm trying to do here other than putting my response stuff in the DB query's callback function?

<Sorry for the newb question, buy what I'm doing: having the response generated inside of the query's callback, seems to be the way most of these node tutorials suggest.>

<comment><USER3> Manually, you could structure it in several functions like prepare_response() and render_response(), possibly with other functions in-between for the various chunks of data you need in your response. When all the chunks are ready, you finally call render_response() and send it.

In practice, you can find a ton of libraries that can help you manage this [1], I -believe- the most recommended one would be 'futures'.

[1] <https://github.com/joyent/node/wiki/modules#wiki-async-flow>

</comment></comment></comment></comment></comment></comment><comment><USER4> Yet another "hello world" tutorial; does the world really need another "hello world" node.js tutorial?

I can't seem to find any good design/architecture for node.js articles though, does anyone have any links?

</comment><comment><USER5> This is a nice addition to other Node.js tutorials. But a few gripes I have: 1) No explanation of callbacks or event-driven architecture 2) Mac specific instructions only. Why would you limit your tutorial to a specific brand of hardware? Please include Linux instructions or at least a link. Not everyone who wants to code wants to overpay for their hardware. Macs are great, and they are priced as a luxury good, and are consequently completely unaffordable for developers in the non-Western world.

I recommend that folks new to Node check out some much more in-depth tutorials that actually explain callbacks and event-driven design. Google for "Mixu's node book" and "The Node Beginner Book" for a more in-depth introduction to Node.

</comment><comment><USER6> There are a ton of "hello world" tutorials around. As someone who's currently trying to learn node + express it is very difficult to find tutorials that properly explain everything that are still up to date.

</comment><comment><USER7> NPM now comes with Node out of the box.

</comment><comment><USER8> Nice to add the tip about creating a "package.json" file.</comment>


We've developed an iOS app to natively test APIs. Should we open source it? - <AUTHOR> http://www.intridea.com/blog/2013/8/1/should-we-open-source-this-app-for-ios-development

<comment><USER2> Yes</comment>


Slack isn't interested in remote workers - <AUTHOR> https://twitter.com/mrmrs_/status/567832899854065664 <comment><USER2> Bummer, but remote work should DOE and responsibilities, and everything else being equal, most hiring managers prefer the "pop-in" face to face updates.</comment>


Booking.com donates $60000 to Perl development - <AUTHOR> http://news.perlfoundation.org/2014/10/bookingcom-donates-60000-to-pe.html

<comment><USER2> Doesn't surprise me. Booking.com has been searching for Perl developers (or people willing to learn Perl) for ages[0], which makes it clear that Perl is important for the company.

At the same time, I suspect not many developers have an interest in learning Perl or working with Perl on a day to day basis. Booking.com seems to have a hard time finding said Perl devs.

[0]: [http://careers.stackoverflow.com/jobs?searchTerm=booking.com...](http://careers.stackoverflow.com/jobs?searchTerm=booking.com&location=)

<comment><USER3> I thought you were exaggerating, but their listings are titled

"Software Developer - willing to learn Perl"

They really are having trouble finding perl developers.

<comment><USER4> Best thing to do - you do not need people who already know a language, just good people who want to learn.

<comment><USER5> > just good people who want to learn

"just", right? Booking.com must be doing a massive palm right now. Why didn't they think of that...

</comment></comment></comment></comment><comment><USER6> It seems they donate for perl 5 development. Nothing for perl 6 ?

</comment><comment><USER7> C'mon booking, add one more 0 at the end :)</comment>


If DjangoGirls makes you uncomfortable, maybe that's a good thing - <AUTHOR> http://pfctdayelise.tumblr.com/post/124739040293/if-djangogirls-makes-you-uncomfortable-maybe <comment><USER2> As a low femme girl who's also a software professional and a hobbyist, I'll say we need more articles like these.

I'm also particularly impressed to see Julia Serrano being quoted here. Serrano is mostly known as a trans activist, but she's also done a lot to tackle what she terms _femmephobia_ , which is a serious problem even in progressive spaces such as LGBT and feminist communities.

While efforts to get more women into tech are commendable, I've witnessed an attitude of "we'd love to see more women, just as long as they act like honorary guys, and they get rid of all that girly shit". What's worse is that this attitude is perpetuated by the very same people who want more women in tech. Honestly, I think it's a problem. There's very much a tendency for feminist activists to throw their femme sisters under the bus, and it bothers me. I already don't get along with a lot of feminists because they take issue with my personal choice to refer to myself as a "girl" rather than a "woman".

I love slinging code, and I've always had an interest in taking things apart to see how they work. That said, I also really like looking pretty, and I go nuts over anything that can be described as cute. That shouldn't be a contradiction, and I'm glad groups like the Django Girls are here to get more girls like me involved with programming.

</comment><comment><USER3> I like the argument and Django Girls, but the article seems to act like some things are inherently feminine. Pink has only been considered feminine relatively recently, for instance, previously the blue/pink thing was reversed.

I have no problem with them using cupcakes and yoga if it appeals to their chosen demographic, but acting like such things are inherently feminine seems wrong to me.

Things are only feminine because we(society) choose them to be.

<comment><USER4> I would disagree with your assertion that gender specific items are "nurture" and not "nature", and a lot of research would disagree with you, too.

I remember reading about a specific study done on humans, but I can't recall enough to find it at the moment. However, there seem to be several similar studies done on primates that reinforce the conclusion.

[https://www.psychologytoday.com/blog/the-scientific- fundamen...](https://www.psychologytoday.com/blog/the-scientific- fundamentalist/200804/why-do-boys-and-girls-prefer-different-toys)

/edit Here it is

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

<comment><USER3> My last statement may be too strong, but I still believe there is a very strong amount of nurture in our culture regarding gender differences. Things like "girls like pink" is a big one considering that previously it was boys who were associated with pink and we changed that as a society.

On the other hand, things like girls liking dolls may indeed be due to nature (never mind that boys like action figures which are basically dolls).

I think like most things it is actually a combination of nurture and nature.

</comment></comment></comment><comment><USER5> _Compulsory femininity, where girls and women are expected to act and look a certain way, is bad, yes. But femininity itself is not inherently weak, or silly, or frivolous, or bad._

The thing about this is, you have a situation where some resources are offered along with the expectation that a group of girls will want a certain aesthetic. There's nothing wrong with just choosing that aesthetic but giving something with the strong expectation that you will like a given aesthetic seems to be actively pushing a person in a given direction.

It's not that I have an objection to someone freely choosing this aesthetic as such but that you can't be certain that target audience is going to like being pushed towards this aesthetic. And as the author essentially acknowledges, girls are frequently pushed in this direction normally.

<comment><USER6> My impression was that the DjangoGirls founders have probably done some significant A/B testing on their presentation, and found that having a more "feminine" (even if that follows stereotyped gender lines) set of options makes it more appealing to their target demographic (ladies).

If having flowers, sparkles, cute animals, or beautiful typography on the pages helps women and girls discover that they love programming (or even that they don't), that's _awesome_.

</comment></comment><comment><USER7> The comment about being women being treated differently when they wear a dress shows misunderstanding. The male equivalent to that is not a T-shirt and jeans. It's the suit. I'd sure be treated differently if I wore a suit. I'd be trading one kind of signaling for another, giving up technical cred in favor of business cred.

<comment><USER8> There are many styles of dresses with multiple levels of formality. A sundress, for example, is in no way equivalent to a suit.

<comment><USER7> A sundress is much closer to a suit than it is to a T-shirt and jeans.

Considering modesty though, a woman in a sundress is equivalent to a man wearing a tank top. We don't get males in the office wearing tank tops or anything else that would expose the collarbone, armpits, shoulders, or shoulderblades. These things are normally considered inappropriate. We also don't normally see males wearing snug form-fitting shirts. It's not considered appropriate. Feel free to wear that stuff while you weed your lawn at home.

So that is two strikes against the sundress. It's kind of formal, yet no more modest than a tank top.

<comment><USER9> "We also don't normally see males wearing snug form-fitting shirts"

Heh you should really visit Shoreditch or Soho on a warm sunny day. ;-)

</comment></comment></comment></comment><comment><AUTHOR> I came across this a few days ago, and posted because some people in the other thread ([https://news.ycombinator.com/item?id=9982730](https://news.ycombinator.com/item?id=9982730)) were getting uncomfortable about DjangoGirls.

<comment><USER10> Which seemed to mostly be Joe - and I support Joe's criticism. It has to do with gender norms, society constructed and "helpful to market" or not.

Where do tomboys fit into this? Where do transgender women fit into this [3]? I'd be put off from attending due to all the emphasis on "girly things" and the fact that I don't know if I belong or not (without doing some more research at least).

On the blog here [0] there is a mention for "Yay Python", seemingly headed by some Django Girls. It caught my interest so I went to the page [1]. Glitter, art, and sparkles. Beautiful (used 5 times on the one page) and imaginative. A child-like connect-the-dots with flowers and pink and "girly typography".

I'm sure it's, on a technical level, a great book. But it comes off as "this is girly, made by girls, and it's meant for girls [2].

In their attempt to make "squirrels feel more welcome" they've marginalized even more squirrels _further_ by showing that these "tomsquirrels" don't even belong with the squirrels!

 _> The book will build on the Django Girls tradition, with "a good dose of emoji and funny little quirks"._

So girls have to use a lot of emoji and be "quirky" (cutesy?)? I'm feeling less and less like I belong...

[0] [https://lwn.net/Articles/651833/](https://lwn.net/Articles/651833/)

[1] [http://yaypython.com/](http://yaypython.com/)

[2] Usable by anyone is a cop out. Girls can play with Hot Wheelz and action figures too, but they aren't the target demographic. The book is obviously marketed towards girls even if it is usable by anyone.

[3] [http://organize.djangogirls.org/attendees/index.html](http://organize.djangogirls.org/attendees/index.html) | I did more research, though I'm still confused if I would be encouraged to be given priority or not? Not renumbering to show that I checked after writing everything else out.

<comment><USER2> Hey, I'm a trans girl. I'm also fairly feminine. I love coding, I especially love Python, and I also love stuff with "glitter, art, and sparkles". That should never be a contradiction.

I'm thoroughly sick and tired of all the femme-shaming that's endemic in feminist and LGBT communities. Julia Serrano is right: femmephobia is a serious problem.

Honestly, as a mostly platform-level programmer who never really got into webdev, something like the Django Girls stuff might actually get me to learn the webby side of things.

<comment><USER10> I have nothing against femininity. There are some tomboys who essentially tie their very identity to "hates girly things" and they are _still girls_ and should _still feel included_ in a place like this. Django Girls place _too much emphasis_ on the femininity of everything, as if someone is questioning if they are girly enough because they're "nerds doing tech things". It's bizarre to me and I'd feel uncomfortable. I've also had some time to speak to a few coworkers and, with no surprise to me, the more tomboyish ones would feel weird or unwelcome because femininity is too much of a focus.

A tech conference should not be the time or place to play on gender norms. If you are not interested in technology for technologies' sake then you shouldn't be there! Go do something you're _interested in_. If an all-tech place is too boring for you to attend that speaks more about _you_ than _tech_.

I'd also like to clarify it's perfectly fine to love glitter, art, sparkles, and Python. If your goal isn't to be inclusive, it's fine to host an event loving all 4 at once! But if you want to be inclusive, you should focus more on the Python and less on the glitter, art, and sparkles.</comment></comment></comment></comment>


Google Shopping is no longer filtering all searches containing "gun" - <AUTHOR> https://www.google.com/search?output=search&tbm=shop&q=guns <comment><USER2> It is insane that google did that in the first place. The amount of censorship creeping into google the last few years is rather disappointing.

We need more competition in search and technology. Google would never have done this when they were fighting yahoo, excite, altavista and dozens of other search engines for their survival.

Now that they are a near monopoly, they are playing "political police man"?

There is too much politics seeping into tech.

Google should be displaying results that the user wants, not what they want the user to see.

</comment><comment><USER3> I'm actually in support of this. It's very important to separate content providers from entities that make things more discoverable. Google's job is to help me find what I'm looking for, not to decide what I can or cannot buy. I see this analogous to Cloudflare not supporting a site because they don't agree with the content.

<comment><USER4> Note that it is extensively filtering the results.

Earlier a bunch of searches were returning items that violate their policy ( [https://support.google.com/merchants/answer/6150004](https://support.google.com/merchants/answer/6150004) ) and so they started blocking keywords entirely.

Now they aren't blocking keywords but have reduced the number of items in the results that violate their policy. It's wack-a-mole though: [https://www.google.com/search?output=search&tbm=shop&q=black...](https://www.google.com/search?output=search&tbm=shop&q=black+powder)

Triggering spell check is a fun pattern:

[https://www.google.com/search?output=search&tbm=shop&q=trigg...](https://www.google.com/search?output=search&tbm=shop&q=trigger+grou)

At the moment the second result there is AR-15 parts, while "trigger group" is blocked as a search term.

</comment></comment><comment><USER5> We know where it starts. Where does it end? What business value are such search filters achieving for Google?

Wouldn't that kind of action lead to a growing number of users losing trust in their search results? e.g. if they manipulate the outcome of searches for a kind of object which one has a right to purchase and keep; would they do the same for certain ideas which one has a right to express and read; or for sets of people which one has a right to vote for?

</comment><comment><AUTHOR> Followup on an earlier discussion: [https://news.ycombinator.com/item?id=16474102](https://news.ycombinator.com/item?id=16474102)

Earlier today it was noticed that Google Shopping was filtering all searches containing the string "gun" (and various other firearm-related terms). This led to some amusing issues where search terms like "burgundy" were being blocked as well. As the day went on, the filter first was adapted to not apply to phrases that were part of words, but was still being applied to the word "gun" in isolation. As of an hour or so ago, it looks like the filter has been disabled. It will be interesting to see what happens in the future and if there will be any official statement from Google.

</comment><comment><USER6> Google censors. Use duckduckgo or an alternative.</comment>


With Jony Ive's Successor, Apple Bets a Pragmatist Can Turn Prophet - <AUTHOR> https://www.wsj.com/articles/with-jony-ives-successor-apple-bets-a-pragmatist-can-turn-prophet-11562319008?mod=rsswn <comment><USER2> It's a somber reminder about the fragility of companies that one of the world's wealthiest and most innovative design companies not only struggles with leadership culture but that it's downfall might be caused by this. Apple employs 132000 individuals, many who are the best of the best in their respective fields, yet so much of its success has been dependent on just a handful people like Jobs, Ive or Cook.

Was post-Jobs Apple always doomed to eventually fail? Could they have done anything to keep the company as innovative even without Jobs or Ive?</comment>


eBay Seller Revolt Gaining Traction - <AUTHOR> http://ecommercetimes.com/story/eBay-Seller-Revolt-Gaining-Traction-61650.html?welcome=1202921491 <comment><USER2> It seems like this is a huge opportunity in waiting: a scam-free (or reasonably low-risk) auction site would be welcome by most of ebay's users.</comment>