What the hack? - <AUTHOR> http://www.economist.com/news/business/21679457-tech-industry-tradition-has-entered-corporate-mainstream-what-hack <comment><USER2> If you run into a paywall like I did, click

[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&c...](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=8&ved=0ahUKEwi018fK5cLJAhUCVT4KHViIDIcQqQIIOjAD&url=http%3A%2F%2Fwww.economist.com%2Fnews%2Fbusiness%2F21679457-tech- industry-tradition-has-entered-corporate-mainstream-what- hack&usg=AFQjCNHEzNrxLbJlMuJDdX32DWFr1Y8rkQ&sig2=VwRGvDr-cMe-rR8EWgZilA)

</comment><comment><USER3> I worked as the Developer Advocate at my last company (An Agile tools vendor). While I was there I had helped out some larger companies run their own internal hackathons. One of the services that we helped them with was planning the event.

For the most part I worked as a therapist for their executive team, usually I spent most of my time reassuring them that losing a day of engineering time would be a good investment and that they didn't need to vet the projects that the teams worked on. It was fun work bringing that awesome kind of "goof-off" dev work to engineers that had been working with the same team for 20 years and had been pidgeonholed onto some old legacy system.

The execs pretty much always loved it, you got to see teams led by interns with grizzled senior neckbeards getting to write some code for them.

</comment><comment><USER4> Is this new or just 'new mainstream enterprise practice' I was under the impression that hackathons had been subverted as a tool of corporate exploitation of young devs for some time now.

<comment><USER3> The events that I ran were about team building and giving the younger folks a safe chance to build some leadership skills. They were fully internal events though, not a "win a free monkey if you make the best app on my api" kind of hackathons.

<comment><USER4> A few of my local user groups run similarly positive events, split into teams riff on an idea and do a show and tell at the end.

Great fun and a positive exposure to code for newbies or the simply curious.

<comment><USER3> I found that lots of the older folks were happy to get a chance to sit down and program again. They had moved into jobs that were more about managing and communication, so they were not able to find time to code like they used to. Giving the newer devs a chance to lead a team gave them a chance to hone that skill if it was something they were interested in developing.

</comment></comment></comment></comment><comment><USER5> This article presents no data and does not feature any discussion of economics. It simply lists off a couple of different hackathons, namedropping Mastercard, Disney, and Dropbox. I haven't seen a good article from The Economist on HN in a long time.</comment>


How to Hack the Psychology of Student Motivation - <AUTHOR> http://calnewport.com/blog/2010/12/13/learning-to-love-your-ap-history-assignments-how-to-hack-the-psychology-of-student-motivation/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+StudyHacks+%28Study+Hacks%29&utm_content=Google+Feedfetcher <comment><USER2> As a (recent) student, my problem has always been ego depletion/"lack of willpower", not so much a lack of intrinsic motivation. In the times I could be spending working, I feel too burnt out to do much other than watch TV/read HN. Starting in on reading a new book would be an insurmountable task, let alone doing productive work. And the worst thing is, I've never found anything that will give me back my "mojo" except time. So, I wait, and sometimes I get lucky and feel a burst of energy before the deadline long enough to start (continuing once started is a lot easier, but no matter how little I tell myself I need to do to get started, there's always a constant factor that can't be subdivided.)

I seem to get this way more often in winter, so it seems like it could be something like Seasonal Affective Disorder (i.e. clinical depression), but I'm never _depressed_ , just unable to convince myself to take any other path than the easiest one (e.g. fast food instead of home cooking, Short stories instead of novels, video games instead of hobby coding, organizing my computer rather than cleaning my house, etc.)

I have a feeling quite a lot of students could describe their problems with motivation in a similar way. It's not "I don't want to study right now, there's nothing fun about that," but rather "I _can't_ study right now, because I am curled up in a ball of stress-avoidance." (If these students had an escapist crutch, like drinking to excess, this is when they would be doing it.)

<comment><USER3> I've had the same kind of experience since I started college -- my life's had the pattern of "work hard for several days, then recharge for several days," and the recharging days suck -- and although sleep and exercise help a bit I haven't been able to substantially reduce the amount of time I need to bounce back from the slumps. Until now, at least.

At the end of this past summer I took a meditation course with dhamma.org, and three weeks ago I started meditating again. (I went on the retreat for unrelated reasons -- mostly I was thinking, "Ten days doing absolutely nothing, that's _crazy_ , maybe something really amazing will happen to my brain" -- and when I finished it I was, at first, mildly disappointed with the results, so I didn't keep meditating.)

Anyway, meditation has had a _really pronounced_ effect on my overall level of mental energy. I only have three weeks of data so I can't say decisively what it can and can't do, but an hour of meditation seems to cancel out a day or two of accumulated burnout. I'm starting to think that meditation could be literally life-changing on a large scale for me. (Incidentally, it's also unbelievably effective at eliminating stress. I'm actually much more certain of its efficacy as stress-reducer than as energy-replenisher.)

I definitely think you should try out a meditation course next time you have ten days free -- it could really do you some good.

<comment><USER4> "... and the recharging days suck ..."

They don't have to suck. It's mostly a perception of what you should be doing. It's sucks, because you think that you should be doing something, that it's not right doing nothing. It's a social issue.

</comment></comment></comment><comment><USER5> Newport makes a really interesting argument in this post. He practically reduces motivation to getting started early on projects which you have a good reason for doing.

I certainly understand the _'good reason'_ part, but the _'getting started early'_ angle is a great insight. Picking off something small right away has a tendency of knocking even the most imposing projects down to size pretty quickly. Even if all I do is define the first thing I need to do, it leaves me with a sense of traction that often continues through the rest of the project.

Continued progress, however small, is one of the most powerful motivators I know. It may even be addictive.

</comment><comment><USER6> Conjecture: procrastination and addiction are codependent, thus curing addiction cures procrastination. The cure for addiction is to do nothing for N days, and thereafter ignore all thoughts about the addictive activity.

</comment><comment><USER7> It seems like the author is making a similar mistake to "all extrinsic is bad" by thinking that school must be of the form: "study hard for your AP history exam".

I think a lot of the intrinsic stuff he talk about is more about getting rid of demotivational: exams, grades, etc. and focusing on finding something that the students really prefers to work on. I don't find this a pipe dream. If studying AP History isn't interesting, they're going to forget it in a year anyway. The valedictorian of my college class (of 8K people) was very good at taking tests, but had no critical thinking ability or interest in the world around her.

Why is it that 4 year olds ask "why?" questions about the world so frequently and by 8 most of them are reduced to: "Do this work, then play at recess". I think Ken Robinson's TED talk is completely correct in saying that we need to stop the standardized approach to education and let kids explore what they wish on their own terms. Sure - they'll probably need to be encouraged to do something at least productive (no playing games the whole day), but ALL KIDS are able to do this: whether its: language / computers / art / tech - whatever. They need to learn that learning is fun and rewarding.

If they want extrinsic motivation, have them think about their future life. Always remind them that this time is for finding out what being human is and preparing to live for their own happiness - not some societal groupthink.

</comment><comment><USER8> If grades don't work what does?

I'm in an anthropology lecture where the professor who taught in the department for 35+ years is allowed to largely not believe in grades and basically dictate answers to students during the exam. I personally used the lectures as an introduction to a new to me topic, but a large number of students sign up for the lectures having found from their peers about an easy GPA booster. Some didn't listen to the lectures; many skipped it entirely.

<comment><USER2> Look at game design. School is the opposite of addictive or fun: it doesn't have a tight feedback loop, you are indefinitely punished for initial mistakes that could otherwise have been experiments, and doing badly has large consequences (repeating/wasting tuition money.) School, ideally, would be a completionist, not competitive, game: every correct question would give you an experience point, and you'd _finish_ (not "pass") when you had (in however much time you like) 100%-ed every question of every assignment of the course.

<comment><USER9> Wow that really succinctly described the difference. I think a bit of the reason why they do have deadlines is because people can put off not doing the work at all forever unless you got some sort of whip cracker going. I did it with a mathematics correspondence course. My linear algebra prof in the middle of the course basically said that he realized that his main job is to be the whip cracker to get people through this, more than learning per say, since there are other methods of learning math too.

<comment><USER2> Well, if that's what people need, then we shouldn't be wasting the time of tenured professors and grad students—who have much more interesting and specialized things to do—by making them into whip-crackers. I think the ideal "teacher" for a completionist education system would simply be someone who could juggle the roles of motivational speaker, hard-ass, and Socratic. In other words, although they would have their own particular skillset, they _wouldn't need to know the material at all_.

 _Lecturing_ would be left to professional speakers backed by a writing team and subject-matter experts, filmed remotely and either sold to schools as materials on the free market, or produced for the public by government media arms such as the BBC. If anyone had a question about the material that couldn't be answered by the lecture, the books, the rest of the class, by the "teacher"'s Socratic deduction, etc., the school would have tutors on-call as well (by remote from a tutoring group, or locally as a service of alumni.) There would be no segregated "classes" or "classrooms", but rather an integrated environment more akin to a combination library/study-hall, with gatherings for people working on the same class of problem at the same time, etc.

In fact, there wouldn't really be a need to "graduate" at all, or to "register" for specific semesters. As long as you could get a print-out at any time proving you had 100%-ed the problems relevant to the job you're applying for, that would be all you would need. You would be able to show up one day, leave for years, then come back and resume your studies as if you had never left. In fact, done this way, people would probably stop considering themselves to be "in school", but rather just say that they "go learning" in the same way one would "go hiking" or "go to yoga." A life-long hobby, in other words—just the way an education should be :)

Ah... but if only.

<comment><USER10> It's interesting for me to hear you describe this as I understand Texas is trying something similar with a program called Avid. My best friend is tutoring, er, facilitating for a smaller district. She tells me it's hard. You have the normal issues of kids not listening (either some classes just go "bad" or sophomore year causes kids to be especially...) but also have to deal with the kids expecting a more normal student-teacher relationship becoming frustrated that they aren't being given answers or being stubborn about how their teacher did it differently. IIRC, the program is for kids who neither parent has a degree so I wonder how much that plays into the difficulties of the program.

<comment><USER2> The one thing missing from my description is the idea of a _role model_ —kids need those, and schools shouldn't be where they get them. It used to be that kids would first use their parents as role models, and then enter vocational training, where they would have a _master_ as a role model.

Right now, teachers act like role models for kids, but they're an intrinsically bad fit: kids want to see their role models _doing the things they want to do_ , but teachers simply _teach_. Ideally, role models would be "visiting fellows", perhaps alumni, of a completionist school, psyching kids up about doing some thing or other such that they see school as a step toward doing that thing. Without _that_ , school is meaningless, and it's no wonder kids aren't interested in it.

</comment></comment></comment></comment></comment></comment><comment><USER11> I have a belief that if a professor assigned a 15 page paper on the first day of class on the first chapter in a textbook, you wouldn't see too much a difference than if you assigned it 6 weeks into the semester.

</comment><comment><USER12> <http://en.wikipedia.org/wiki/Student_syndrome></comment>


Getting Out of MySQL Character Set Hell (2009) - <AUTHOR> https://www.bluebox.net/insight/blog-article/getting-out-of-mysql-character-set-hell <comment><USER2> ctrl+f doesn't show mention of utf8mb4 except in comments.

In short: you should only use utf8mb4 in mysql as charset, cause utf8 in mysql is a broken invented 3-byte charset that will explode when you input 4-byte characters (i.e. an emoji).

utf8mb4 is what the rest of the world actually calls utf8.

<comment><USER3> To clarify: the 3-byte subset is not a MySQL invention. It is the Basic Multilingual Plane (BMP): [http://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multi...](http://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)

<comment><USER4> Most smileys now ubiquitous on smart phone keyboards are valid Unicode characters outside of the BMP set, yet being used constantly on the web. BMP just doesn't make sense anymore, nor does mysql utf8.

<comment><USER3> I totally agree! It also makes sense for countries that have their own character sets to use utf8 too (as they may borrow words, characters from other languages).

I was just pointing out that even if it was limited support, it wasn't a set of characters that MySQL came up with.

</comment></comment></comment></comment><comment><USER5> The authors actual understanding of MySQLs encoding is only half way there. Collation specifically is the algorithm it will use when ordering by the column for instance.

The article contains numerous half truths and generalizations (the kind someone in the process of learning would say) and not expertise.

Take what he says with a grain of salt.

<comment><USER6> Collation is _both_. It combines both the locale-specific sorting approach, and the encoding.

<comment><USER5> Collations are encoding specific, eg: utf_general_ci works specifically on UTF8 values, that said, the collation does not determine the encoding, the encoding determines the potential collations.

<comment><USER6> But the collation field specifies both the collation and the encoding?

<comment><USER5> CREATE TABLE tbl_name (column_list) [[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name]]

Character set is specified separately from collation. It's like having a ford vs a ford headlight. The collation is a part of the character set.

</comment></comment></comment></comment></comment><comment><USER7> " _Sometimes forcing the browser to treat the page as being encoded in UTF-8 will show you the characters as they 're supposed to be._"

You really _SHOULD_ always say something equivalent to charset=utf-8 in your HTML head (naming your actual encoding, of course).

<comment><USER8> Naming your encoding? So always charset=utf-8 then, right?

Seriously - is there ever any reason to use anything else on the Internet?

</comment></comment><comment><USER9> I use utf8mb4 with binary collation as a default.

When I then get to a column type like email, I don't know what I should use. Dropping down to 7-bit case-insensitive sounds plausible, but another option would be to stick with utf8mb4 but case-insensitive?

Is there a best practice?

<comment><USER10> I almost exclusively use utf8mb4_bin (for "human" text) and ascii_bin (for ID's or other "computer" text) -- they're basically the two 'extremes', and it's rare to need anything in between.

And then other collations like case-insensitive or accent-insensitive only when required, e.g. because the field is used for search.

</comment></comment><comment><USER11> Does MySQL have a dump(column_name) function like Oracle? The dump function was a life saver when I needed to verify if some non-ascii columns had transferred correctly or were now full of upside down question marks.

<comment><USER3> Easiest way is probably to run a HEX() function on the column, and compare output.

</comment></comment><comment><USER12> WTF-8</comment>


Parse Launches Cloud Code to Run Custom Code for Your App - <AUTHOR> http://blog.parse.com/2012/09/11/welcoming-cloud-code-to-the-parse-family/

<comment><USER2> This looks incredible. I've been wanting a clean way to select multiple random objects from my Parse db. Until now, this was the best answer: <https://parse.com/questions/random-search-its-possibile>.

Also, it seems possible to combine this with IronWorker. You could create a worker in Ruby, then in the Parse Cloud Code, call that worker's endpoint. Something like this (rough sketch):

worker.rb:

      require "some_ruby_email_gem"
      cgi_parsed = CGI::parse(payload)
      email = payload["email"]
      SomeRubyEmailGem.send(email, "Welcome, #{email}!")

upload.rb:

      require 'iron_worker_ng'
      client = IronWorkerNG::Client.new(:token => config['iw']['token'], :project_id => config['iw']['project_id'])
      code = IronWorkerNG::Code::Ruby.new
      code.merge_worker 'worker.rb'
      code.merge_gem "some_ruby_email_gem"
      client.codes.create(code)

      url = "https://worker-aws-us-east-1.iron.io/2/projects/#{config['iw']['project_id']}/tasks/webhook?code_name=#{code.name}&oauth=#{config['iw']['token']}"

      puts "Add this url to to your Parse Cloud Code:"
      puts url

Parse Cloud Code:

      Parse.Cloud.define("welcome, function(request, response) {
        var user = request.object.get("user");
        var url = "https://worker-aws-us-east-1.iron.io/2..." // the url from upload.rb
        http.open("POST", url+"?email="+user.email, true);
      });

EDIT: HTTP requests to 3rd parties within Cloud Code are not possible _yet_ , but Parse will add the feature soon. (<http://twitter.com/ParseIt/status/245584646686003200>)

</comment><comment><USER3> This looks great and should solve a number of issues with the current API.

I have an app that basically tracks donations for different campaigns. Getting total donations per campaign isn't easy with the current API. There is nothing like a "select sum()" statement in Parse. Basically I currently have to run a cron job on my machine that will periodically download all donations by campaign and update the total donations field on the campaign (the regular user account doesn't have privileges to edit the campaign object).

This seems like it will be a much cleaner, saner way to take care of this type of task.

</comment><comment><USER4> It seems like Parse will be in a never-ending battle to continue adding functionality on the back-end to approach what one gets when they simply run their own back-end. Surely there is a happier medium?

<comment><USER5> I think Cloud Code is a good example of why this is not the case. The more flexibility and customization they allow in the platform, the fewer long tail features they need to implement because people will be able to do it themselves.

<comment><USER6> I imagine the argument is "once you add Cloud Code and people start using it to solve problems, you have pretty much re-built Google App Engine"; it means the only thing that separates Parse/StackMob/CloudMine (which now all have this feature) is that they come with a simple default app which provides an HTTP API to the data store that is used by an even simpler client library.

<comment><USER7> Except Parse is much more usable and more productive than AppEngine for regular folks who build mobile and web apps.

<comment><USER6> Right, because they provide the two things I stated: a default app on the other side that provides fairly liberal access to your schema, and a library that can be used on the client that provides a fairly reasonable API (maybe even CoreData integration; I know some of their competitors do this) to access that API.

Neither of these, however, are that complex to do, and the value of both of these drops dramatically once you start writing server-side logic in Java.

</comment></comment></comment></comment></comment><comment><USER8> Finally! I can run server code! I just might take another look at them now!

Edit: Huh? Why was this downvoted? The problem I've had with Parse for a long time was that I still needed a separate server to do some backend processing that was not feasible to do on a client. Now I may no longer have need for that server.

<comment><USER9> My thoughts exactly! This makes it much more appealing to me now. If they add in some helpers for Core Data I would be even more excited to try it.

</comment></comment><comment><USER10> It seems to make sense. Looks similar to the way Windows Azure Mobile Services lets you run JavaScript code on the server.

[http://weblogs.asp.net/scottgu/archive/2012/08/28/announcing...](http://weblogs.asp.net/scottgu/archive/2012/08/28/announcing- windows-azure-mobile-services.aspx)

</comment><comment><USER11> This is great! And perfect timing! Just today I was starting to write a set of external hosted scripts to generate XML from my Parse objects, but this makes everything much easier. Parse is just terrific!

</comment><comment><USER12> This definitely lifts off the cons I've had so far with Parse, adding logic to the backend instead of just a pure data storage. Awesome job to the Parse team

</comment><comment><USER13> This is great news.

I've been using parse on a project and was missing this functionality.

As a side note, I'm loving parse, but their iOS SDK is poorly designed. Like really badly designed. I had a few email exchanges with one of their devs, but it didn't really seem to go anywhere. You can't create subclasses of any of their objects because they like using static methods versus singleton instances. It's really stupid and it really ties you to using parse. You also have shit like this everywhere:

        NSString *someval=[pfobject objectForKey:@"shit"];

Where this would be preferred:

        NSString *someval=mySubclass.shit;

So you can create a wrapper/shim for PFObject, but that doesn't float across queries returning arrays of objects.

And, yes, I considered writing my own wrapper around their REST API but I don't have that kind of time.

<comment><USER14> Helping subclassing to work more smoothly is definitely on our minds. A lot of people do subclass PFObject right now, and as you point out that means you need to handle queries in a slightly different way. It could be nicer, though, and we intend to make it nicer.

</comment></comment><comment><USER15> This is great, but not quite what I had hope for. Yes you can run custom code, but only what their current API allows. It just saves time by not having to transfer data to the client to aggregate.

Step in the right direction though.

</comment><comment><USER16> Yeah! I requested this when I first started using parse a long time ago. I'm so happy that I can now implement hooks for syncing other db's.

</comment><comment><USER17> how is this priced?

a cloud code request probably can't fit within the pricing model posted on the parse site as a single API request because it may presumably have huge variance in resource consumption. like what's to stop someone from use parse's resources to run bitcoin miners?

<comment><USER18> It looks to me like these are going to be short-running, on-request computations, that might timeout. Not long-running back-end code.

Edit: Confirmed! <https://news.ycombinator.com/item?id=4506783>

</comment></comment><comment><USER19> How do they secure this?

<comment><USER14> The environment is based on V8, which provides a lot of tools to sandbox javascript code. There's some other pretty cool technology there - we might write a more detailed blog post about it if folks are interested.

<comment><USER20> I would love to read that. Having a strong sandbox as a tool makes all kinds of interest things possible.

p.s. My last name is Lackner. Glad to meet someone else with the unfortunate Lack- prefix.

<comment><USER14> Unfortunate? Psh. When I was a little kid I liked "Lacker" because it rhymes with "Hacker". Then I grew up and became a computer programmer. See also:

<http://en.wikipedia.org/wiki/Nominative_determinism>

</comment></comment></comment></comment><comment><USER21> I assume there're execution limits to avoid while(true) {}. Can't seem to find information on that though.

<comment><USER14> Yes, each request is limited to a few seconds. We should make that more clear in the documentation - thanks for the feedback.

</comment></comment><comment><USER22> I wish them luck securing that. Even app engine had security trouble at first :)

</comment><comment><USER23> What now is an API call that counts towards your quota? An API call to the Cloud Code from the client, or each call to a Parse method within the Cloud SDK?

<comment><USER14> Each of these counts as an API call. It's a good question - we should make this more clear in our documentation.

</comment></comment><comment><USER24> This is good news. I had to move away from Parse just because I had to do some computation at the backend. Will try out the new feature.

</comment><comment><USER25> Is there any mechanism for specifying the HTTP method or is every function mapped to POST? I'm not complaining, I'm just curious.

</comment><comment><USER26> Does parse talk about how they run their backend? I feel like it's a lot of mongodb...

<comment><USER27> They use MongoDB, and MySQL. This worries me immensely. The Mongo part more than MySQL, only because historically, MongoDB has not had a great story around HA, and reliability...

</comment></comment><comment><USER28> Sweet! Parse is one step closer to being as powerful as my dream host vps was 10 years ago! Congrats guys!

</comment><comment><USER29> How is it everyone's opinion of PaaS went sour when Google AppEngine readjusted its pricing to reflect costs. Now someone else comes along and PaaS is the greatest thing since sliced bread.

These guys will never be bought by a bigger company with nothing but profits in mind?</comment>


Top 10 Software Innovators of All Time - <AUTHOR> http://www.devtopics.com/top-10-software-innovators-of-all-time/

<comment><USER2> What exactly is youtube doing on the list? Big - yes, a succes - absolutely, great software inovators - I don't think so.

Or am I missing something obvious here?

</comment><comment><USER3> How about Ron Rivest, Adi Shamir, and Leonard Adleman the creators of RSA without which the entire online e-commerce thingy wouldn't have existed.

</comment><comment><USER4> What about Bram Cohen, for BitTorrent?</comment>


Building an Art History Database Using Computer Vision - <AUTHOR> http://ejohn.org/blog/building-art-history-database-computer-vision/

<comment><USER2> This is a really cool project, but i was hoping for more detail on the method other than "TinEye's Matching Engine". I guess if you're going to advertise "Computer Vision" you should expect readers to be curious about some of the details.</comment>


France to ban food titanium dioxide additive - <AUTHOR> https://medicalxpress.com/news/2019-04-france-food-additive-e171-year.html <comment><AUTHOR> Titanium dioxide is potentially extremely harmful. It is found as a commonly occurring additive in OTC meds and supplements, etc. Here is some evidence:

Reviews

Effects of Titanium Dioxide Nanoparticles Exposure on Human Health-a Review. (2019)

[https://www.ncbi.nlm.nih.gov/pubmed/30982201](https://www.ncbi.nlm.nih.gov/pubmed/30982201)

> TiO2 NPs can induce inflammation due to oxidative stress. They can also have > a genotoxic effect leading to, among others, apoptosis or chromosomal > instability.

Toxicity and mechanisms of action of titanium dioxide nanoparticles in living organisms. (2019)

[https://www.ncbi.nlm.nih.gov/pubmed/30473306](https://www.ncbi.nlm.nih.gov/pubmed/30473306)

> The mechanism of TiO2 NP toxicity to organisms can be outlined in three > aspects: The Reactive Oxygen Species (ROS) produced by TiO2 NPs following > the induction of electron-hole pairs; cell wall damage and lipid > peroxidation of the cell membrane caused by NP-cell attachment by > electrostatic force owing to the large surface area of TiO2 NPs; and TiO2 NP > attachment to intracellular organelles and biological macromolecules > following damage to the cell membranes.

The inflammatory response to silver and titanium dioxide nanoparticles in the central nervous system. (2018)

[https://www.ncbi.nlm.nih.gov/pubmed/29199887](https://www.ncbi.nlm.nih.gov/pubmed/29199887)

> Ag-NPs and TiO2-NPs could translocate into the CNS through damaged blood- > brain barrier, nerve afferent signaling and eye-to-brain ways, and even cell > uptake. NPs could stimulate the activation of glial cells to release > proinflammatory cytokines and generate reactive oxygen species and nitric > oxide production, resulting in the neuroinflammation. The potential > mechanisms of Ag-NPs and TiO2-NPs causing inflammation are complex, > including several immune response relevant signaling pathways.

Titanium Dioxide Nanoparticles: a Risk for Human Health? (2016)

[https://www.ncbi.nlm.nih.gov/pubmed/26996620](https://www.ncbi.nlm.nih.gov/pubmed/26996620)

> The main mechanism underlining the toxicity potentially triggered by > TiO2-NPs seems to involve the reactive oxygen species (ROS) production, > resulting in oxidative stress, inflammation, genotoxicity, metabolic change > and potentially carcinogenesis. Studies

Amorphous aggregation of tau in the presence of titanium dioxide nanoparticles: biophysical, computational, and cellular studies. (2019)

[https://www.ncbi.nlm.nih.gov/pubmed/30774341](https://www.ncbi.nlm.nih.gov/pubmed/30774341)

> It was shown that TiO2 NPs result in hydrophilic interactions, secondary and > tertiary structural changes, and the formation of amorphous tau aggregates. > Conformational changes of tau increased the induced cytotoxicity by TiO2 > NPs.

Association of Type 2 Diabetes with Submicron Titanium Dioxide Crystals in the Pancreas (2018)

[https://www.ncbi.nlm.nih.gov/pubmed/29792697](https://www.ncbi.nlm.nih.gov/pubmed/29792697)

> humanity's increasing use of TiO2 pigment accounts for part of the global > increase in the incidence of T2D.

<comment><USER2> It's not just a matter of toxicity. All food coloring is fraud. Even in the obvious uses like candy, where you can readily identify that coloring is in use, it is yanking on instincts that we evolved to obtain nutrition.</comment></comment>


What's so great about JavaScript Promises? - <AUTHOR> http://blog.parse.com/2013/01/29/whats-so-great-about-javascript-promises/ <comment><USER2> Promises do 2 things:

1) Give the illusion that control has been returned to the caller. It hasn't, but it kinda looks like it. This is soothing for people who don't really like JavaScript all that much.

2) Provide a structured way of dealing with callback-oriented code. You don't have to think about in a function whether the callback should be that last parameter, the only parameter. You don't have to think about whether it should include an errback or if the error should instead be the first parameter of the callback. You just do it the way the promises library describes, so the interface is predictable.

#1 is of no concern to me. #2 I feel pretty meh about. A consistent interface is nice, but I don't lose sleep over a library using callbacks in a slightly different way than I like, I just write an extra function or two to wrap it into the way I like and move on with my life. I don't have a problem with Promises per se, I just don't want a library I'm using to pick a winner and tact on an extra few k.

Doesn't look like ES6 is going to pick a promises winner, so I probably will largely ignore it until ES7.

<comment><USER3> I wrote a ton of callback-oriented code, thinking similarly to you. Promises have come a long ways since then, and I tried out Q.js and discovered that I was missing out on a significant and powerful abstraction. The two things you're missing out on here are:

#1 Promises have strong guarantees. A promise will be resolved at most once, and it will be either resolves successfully or unsuccessfully. This makes reasoning about them and composing them together much easier. For example, whenever I need to perform multiple async calls with callbacks I've always got to write a bit of repetitive error-prone boiler plate to wait for and combine their results. With a good promise library this is a one-liner using a well tested library function.

#2 Error propagation. With callbacks most exceptions vanish into the ether, only catchable by window.onerror and friends. Propagating that promise up to the caller who can handle it is an enormous pain in the ass and requires repetitive error handling code everywhere if you want to be resilient. With promises an exception raised in a handler counts as the resulting promise failing, which can propagate up similarly to the way exceptions propagate with try/catch. Again, this makes writing reliable abstractions so much easier.

<comment><USER4> #2 cannot be emphasized enough, I can't count the number of times this would have improved my code in a huge way.

</comment></comment></comment><comment><USER5> So, as far as I can tell, there are two benefits this article outlines: avoiding highly nested code, and handling certain types of errors better. Are there other benefits?

In my experience, promises can be more difficult to debug (once the promise library takes my callback, I can't follow the flow of execution until it is called, unless I crack open the library itself), and are less intuitive. While those shouldn't disqualify the idea immediately, it does make me hesitate.

And I'm not sold on the benefits to error handling either. In the author's example, yes, all those error handlers could be grouped together - but how often do you have that many async function calls with _identical_ error handlers? In most situations, that is a warning sign that you aren't handling errors properly and with enough "resolution".

All that said, I don't think promises are useless. There may be times when it makes sense to use them. But calling them the "next great paradigm in JavaScript programming" seems like a bit of a stretch to me.

<comment><USER6> At least in node, you usually pass errors all the way back up the call chain. With normal callback style error handling, you have to put "if (err) return cb(err)" after each async call. It's crazy.

With promises, you can attach an error handler once. If you think of errors as only unexpected conditions, you can have a single error handler for each set of operations and not have to worry about checking at each step.

<comment><USER2> You can wrap your callback functions and handle errors all in one spot. Example:

        var slice = Array.prototype.slice;

        function errHandler(callback) {
          return function(err) {
            if(err) {
          // Error handling code here.
            } else {
              callback(slice.call(arguments, 1));
            }
          };
        }

<comment><USER6> I've tried stuff like this before, but it clutters your code pretty bad anyway, doesn't it? You have to do something like this:

        function myAsyncThing(cb) {
            var handleErrors = errHandler(cb)
            doSomethingElse(handleErrors(function(data) {
                // repeat. use handleErrors at each callback.
            }))
        }

Am I missing something? Can you get it cleaner than that?

<comment><USER2> That depends, if you're using doSomethingElse a lot I'd just go ahead and wrap that as well, if you're using it once it's no big deal.

      doSomethingElse(errHandler(function(real, results) {
        // foo
      }));

If you're using Node you should be writing small(ish) modules anyways, so it doesn't lead to much code blote and its advantageous to consolidate your error handling in one or 2 spots.

</comment></comment></comment></comment></comment><comment><USER7> Promises are not great -- I'd much rather have real coroutine support. But given that we don't have real coroutine support, promises are absolutely essential do writing sane, fault-tolerant Javascript.

<comment><USER8> If for some reason you end up writing javascript that only needs to run on Firefox, you do get coroutines via the _yield_ keyword. Pretty sure it will also appear in a future version of javascript.

[https://developer.mozilla.org/en- US/docs/JavaScript/New_in_J...](https://developer.mozilla.org/en- US/docs/JavaScript/New_in_JavaScript/1.7)

<comment><USER9> I wrote a library that adds support for this using yield: [http://eligrey.com/blog/post/pausing-javascript-with- async-j...](http://eligrey.com/blog/post/pausing-javascript-with-async-js)

</comment></comment></comment><comment><USER10> Promises are fine, but I much prefer C#'s await. The last example using await:

      try {
        await Parse.User.logIn("user", "pass");
        var results = await query.find();
        await results[0].save(new { key = value });
      } catch (Exception e) {
        // Some error handling
      }

      // the object was saved

Does anything exist to do this in JavaScript? Can CoffeeScript emulate it? C# does it entirely in the compiler, I believe.

<comment><USER11> There's an extreme amount of magic going under the hood when you do this- from [http://msdn.microsoft.com/en- us/library/vstudio/hh156528.asp...](http://msdn.microsoft.com/en- us/library/vstudio/hh156528.aspx) :

| "An await expression does not block the thread on which it is executing. Instead, it causes the compiler to sign up the rest of the async method as a continuation on the awaited task. Control then returns to the caller of the async method. When the task completes, it invokes its continuation, and execution of the async method resumes where it left off."

The implementation detail is that your caller's state needs to somehow be re- asserted when the asynchronous wait finishes evaluating- anyone mildly versed in computer hardware knows that to, in most situations (some green threading environments aside) be a very onerous scary intensive thing, speak nothing of the tasks of capturing and storing the continuation, which likely is fairly deep in a call stack somewhere.

It's great magic, it's certainly putting a lot of magic programmers like to use at their fingertips. But be advised that it is somewhat scary, handing out magic wands like candy to newcomers and telling them it's OK and good.

<comment><USER10> It's only magic if it's poorly or non-documented. I'm aware of many of the internals, and have written my own SynchronizationContext before. Execution actually can (and often) does continue using the same thread.

I still strongly believe it's better to make cool things available rather than try and protect people from themselves.

<comment><USER11> I'd fallen out of the .NET world before Async/Await arrived, but were someone to put some under-the-hood-monkeying around-with-it docs under my nose, I'd love to brush up. I seem to have osmosed that there is some compiler transforming going on, but I've not been exposed to ways to monkey around, did not know there was more than a use-only black box: would be lovely to get an engine-bay tour. Have you any recommendations?

</comment></comment></comment></comment><comment><USER12> Funnily, I was just doing some comparison shopping between different promise libraries as well.

Besides avoiding highly nested code, and handling certain types of errors better, I've found that they also provide an optional progress callback, in addition to the success and error callbacks in then(). This is highly useful in reporting the progress of a long running process, to help give the user some update or stream the results as it's being completed. That cuts down on both the actual and perceived response time.

In normal callback-style, it's awkward to have two callbacks, one for success/err, and one for progress. In addition, it's not the canonical form for node.js, so we often skip doing it.

As for between the different libs, I've found that Q has one of the better APIs, but it's also the slowest. <https://github.com/kriskowal/q/issues/153>

But that's because it uses Object.freeze(), which the js V8 penalizes with a slowdown, when iterating over it. [http://stackoverflow.com/questions/8435080/any- performance-b...](http://stackoverflow.com/questions/8435080/any-performance- benefit-to-locking-down-javascript-objects)

<comment><USER13> The usage of Object.freeze() was removed recently and is slated for release in v0.9 [https://github.com/kriskowal/q/commit/ef6c1b9ce35c7bf3949c70...](https://github.com/kriskowal/q/commit/ef6c1b9ce35c7bf3949c7035b877d153af766987)

<comment><USER12> Awesome, looking forward to the update, and speedup.

</comment></comment></comment><comment><USER14> >That's getting pretty ridiculous...but because of the way promise chaining works, the code can now be much flatter.

In what way is the indented code ridiculous, and why is flatter better?

Conceptually, you still have to think of the callbacks operating the same way in order to properly understand the code. Flattening it out and changing the shape so that it isn't nested doesn't really help change what is going on. Maybe I'm missing the bigger picture.

<comment><USER11> Indenting is a symptom of having to write code structurally, having to tightly couple call side with it's handler.

Promises break that structural linkage: we have the only thing in JS that matters, an object, a first class plain old object, that we can reason with and perform operations on as if it were any other object. It happens to be an object about a future which will one day resolve, but it's just an object.

And because it's an object that can, after it's inception, have handlers added to it, we break the necessary structural linkage that callbacks mandate: we can make callbacks latter, we can condition what callbacks to attach, we can compose or chain more promises after our first promise and put our handler on that... we have a first class thing to work with, not just a function, which expects a fully-readied handler. It defers the need to define handling.

Read more of my comments to get a better sense of why A) I adore promises B) I feel this article is injurous to the case for promises.

<comment><USER15> _this article is injurous to the case for promises._

Haha I thought the same about the Crockford talk. Can you point me to a non- injurious source?

<comment><USER16> see also: <https://gist.github.com/3889970>

</comment></comment></comment></comment><comment><USER13> I'm glad promises are gaining traction in JavaScript, but it's a shame they chose to use jQuery promises rather than CommonJS Promises/A. The differences in error handling are significant.

See Domenic Denicola's comment at the bottom of the article, and his excellent "You're Missing the Point of Promises" post: <https://gist.github.com/3889970>

</comment><comment><USER17> Most of the time I'm processing data that is on a queue, and I have some kind of event loop. Promises are great for simple things, I guess. But they just seem like extra, unnecessary syntax. I tried a while ago looking at the different libraries to see if they would give me a "resolveAll/sequential/parallel" for a list of promises, but none of the libraries even seemed to do something very basic like that, which is where I would get any actual utility. I guess most promises are told to "execute" (do their asynchronous thing) as soon as the promise is created. I'm more interested in being able to have more fine grained control about when the execution happens, too.

All in all, I find promises to be pretty pointless in javascript. Until ES6, that is. I also experimented with the "yield" expression in google's traceur compiler, but they were still working out their issues last time I tried.

</comment><comment><USER18> I think I'm the only one in this world who doesn't mind the async pyramid. To me, it is very intuitive. Also, if your pyramid is too deep, chances are you need to extract some of it into functions.

<comment><USER19> I hate the async pyramid because explicit continuation passing ought to be a low-level representation generated exclusively by machines, instead of by programmers.

For example, one of the great things about high level programming languages is that you can write _composable_ expressions such as

        f(g() + h())

but you can't do that if f and g are written in CPS style, since then you need to give an explicit names to all the intermediate "registers" used in the computation as well as baking down an specific order of evaluation for things

        g(function(a){
            return h(function(b){
                return f(a + b)
            })
         })

> Also, if your pyramid is too deep, chances are you need to extract some of > it into functions.

This sounds like that "if your method is more then 15 lines you should split it into subfunctions". I never liked this line of reasoning because the complexity (number of possible interactions) in a module increases quadratically with the number of functions in it. You fight this complexity by only breaking down a function on "natural" boundaries dictated by encapsulation and reuse, rather then by code size.

</comment></comment><comment><USER20> I think Iced CoffeeScript's await and defer are nicer.

There is also LiveScript which has backcalls:

        x <- map _, [1 to 3]
        x * 2
        #  => [2, 4, 6]

        data <-! $.get 'ajaxtest'
        $ \.result .html data
        processed <-! $.get 'ajaxprocess', data
        $ \.result .append processed

I think the LiveScript syntax is awesome.

</comment><comment><USER21> promises are also pretty essential when doing RPC-esque back-and-forth with web-workers when you need to distribute a workload and wait for all results to come back to continue a chain of ops on the main thread.

</comment><comment><USER22> Promises actually aren't far off from functional reactive programming (FRP). The idea in common is to take the abstract notion of an entry point and make it an actual object to be manipulated.

</comment><comment><USER23> If your original callback approach just had one callback it wouldn't look so terrible. success: error: is some old jqueryism.

</comment><comment><USER24> Why are these called promises and not futures?

<comment><USER25> ES6 generators are futures</comment></comment>


CNN on how Microsoft's kinect might change the way we interact with tv  - <AUTHOR> http://articles.cnn.com/2011-04-22/tech/xbox.kinect.column_1_kinect-apple-tv-microsoft-s-xbox?_s=PM:TECH

<comment><USER2> Kinect is probably the best thing to come out of Microsoft in a while. If Kinect had come out in the late 90s or even early 2000 (go along for argument's sake) I doubt if Microsoft would have been this ready to embrace community hacking of kinect. More likely we would have seen the heavy handed actions that were synonymous of Microsoft that would have nipped these in the bud and we would have never seen the likes of cool hacks that Kinect is now famous for.

I still wonder how Kinect came out of a Microsoft led by Ballmer.

</comment><comment><USER3> By change, do they mean waiving my arms around all over the place, or are we talking something more subtle? Here's the rub. A remote control is a means to an end. It is a pathway for my cognitive decision to change channels or search for content. Ideally, the remote should disappear in to the background. I shouldn't think about the fact that I'm using it. I don't see how the Kinect puts me any closer to that goal. What I've read so far -- and this may change -- is that the Kinect works best when you're standing up. Even if it did work well when sitting, I can use a remote by lifting my thumb. The Kinect would require some sort of gesture that involves a lot more motion. The usual gorilla arms arguments apply.

What would be far more useful is if home entertainment manufacturers solidified a protocol for devices to talk to one another, so that we could ditch all these remotes.

<comment><USER4> I am flabbergasted there isn't more going on in this space. I am sitting mere feet from a tv, I am holding an iPad, why do I have to pick up a remote.

As for Kinnect there are some obvious, and probably useless gestures you could implement, such as point up or down for volume, but how about mute or pause when you answer the phone, how about pause when you leave the room.

Give people an sdk to interact with the tv, maybe in the short term IR will do, and things we can't even imagine will emerge.</comment></comment>


BlueGlass Interactive Snatches Up 3 Dog Media - <AUTHOR> http://techcrunch.com/2010/10/04/blueglass-inc-3-dog-media/ <comment><USER2> What an epic merger, This will surely bring huge changes to the online marketing industry.

<comment><USER3> Really? I'd be curious why this is so epic. 3dogmedia (the company that was acquired) has less than 50 followers on Twitter. That doesn't seem very epic.</comment></comment>


Valve is building its own high-end VR headset called 'Index' - <AUTHOR> https://techcrunch.com/2019/03/29/valve-is-building-its-own-high-end-vr-headset-called-index/ <comment><USER2> Ok, now everybody reading this has to buy one so we get some good VR content.</comment>


Appreciating R: The Ease of Testing Linear Model Assumptions - <AUTHOR> https://joshualoong.com/2019/09/20/Appreciating-R-The-Ease-of-Testing-Linear-Model-Assumptions/ <comment><USER2> R (and its predecessor S) is so great, thank you for writing and sharing this!

In a way, R is very similar to APL and J in that many operations automatically scale from scalars to vectors, and you can therefore conveniently express applications of operations to many elements at once. In fact, even its assignment operator is chosen to syntactically resemble that of APL:

[https://blog.revolutionanalytics.com/2008/12/use-equals- or-a...](https://blog.revolutionanalytics.com/2008/12/use-equals-or-arrow-for- assignment.html)

Regarding the quote:

 _" All statistical models and tests have underlying mathematical assumptions on the types of conditions upon we can generate reliable results (Hoekstra et al., 2012)."_

Indeed! There is hence also a very close connection between statistics and logic.

</comment><comment><USER3> Have I gone overboard in remembering that Gauss-Markov is overrated? It's nice that some assumptions guarantee BLUE, but then there is real world data and modelling. Understand where your data come from, what distributions they have, what the relationship is with your dependent variable. Testing for these assumptions might be helpful as a teaching tool, but please get to the level to be able to demonstrate that your model can fail a few of these (like heteroskedacity) and still work (or recognize you need more than a linear model).

</comment><comment><USER4> It's not surprising that R has good tools for statistical assumptions checking. It has _everything_ with an API perfectly suited for stats professionals. In the Python world scipy and statsmodels implement most of the important tests, but probably not as many as the ones available in R.

One recent project that I looks very promising in the Python world is called Tea: a high-level language for expressing statistical analysis questions. Basically the user describes the characteristics of the data they have, their assumptions, and their hypothesis, and then the tea runtime checks all the assumptions and figures out which test can be applied to test the hypothesis. You still have to know some stats jargon, but the user-interface between human and machine is revolutionary! Here is a bunch of links I collected about tea: [https://www.one-tab.com/page/aUF1eWnDT8CIyrwScWD2uA](https://www.one- tab.com/page/aUF1eWnDT8CIyrwScWD2uA)</comment>


There's truth to 'dead battery bounce' after all (2015) - <AUTHOR> https://theconversation.com/it-turns-out-theres-truth-to-dead-battery-bounce-after-all-38680 <comment><USER2> I have switched to using NiMH rechargeables almost exclusively now, even for low power devices (e.g. remote controls, clocks). The problem I have encountered with alkaline batteries is that they leak chemicals which can destroy the electrical contacts and sometimes the entire device. I've never had a NiMH rechargeable battery leak in the roughly 15-20 years that I've used them. But I have seen so many alkaline batteries leak that I don't trust them anymore. Maybe it's my imagination but alkaline batteries seem to leak far more often today than 10-20 years ago. Is it just me, or are Duracell brand batteries worse than others in terms of leaking?

The traditional argument for not using rechargeables on low-power devices is that the self-discharge rate for the rechargeable battery is higher than the power consumption of the device itself. However, some NiMH batteries (e.g Eneloop, [https://eneloop101.com/](https://eneloop101.com/)) seem to use a special chemistry that results in only a 30% discharge after 10 years. I use the Eneloop brand pretty much exclusively. I think the extra cost of the rechargeable batteries have more than paid for themselves by avoid the damage caused by leaking alkaline batteries. The cost of NiMH batteries are now low enough that they may be far cheaper than alkaline batteries for almost all applications.

<comment><USER3> The difficulty that I have with NiMh batteries is that it is very difficult to tell when they are done charging, and they are less tolerant of overcharging and "trickle charging" than the NiCad chemistries which preceded them.

Most chargers will just assume that you've discharged them fully between uses, and perform a "full" charge cycle when one is plugged in, maybe with a temperature sensor to stop if they get too hot. You can't really use resting voltage as a gauge, and it's tricky to find a good charger which can reliably detect the small and brief "dip" in voltage which occurs around the time that the batteries are fully charged.

They're great batteries, and I also prefer them for applications where the batteries get fully drained before being plugged in, but they can still be iffy for applications where you only discharge them briefly and want to keep them "topped up".

For those applications, these days you can buy 1.5V lithium cells in AA/AAA form factors with built-in microUSB charging ports. But those are lithium- based, so you have to be careful about thermal runaway.

Life is a balancing act full of compromises...

<comment><USER2> The NiMH chargers that I've seen have a negative delta-V detection and a timer shutoff. I've had problems charging the Eneloops when used on devices that drain the battery too much. When they are inserted into the charger, the voltage seems to rise too quickly and and somehow confuses the charger so that it stops charging early. In those situations, I've resorted to charging those batteries twice. First time, charge for 5-10 minutes to raise their voltage. Then remove and reinsert the batteries to charge a second time using a more normal voltage curve. Maybe it's a quirk of my charger.

I didn't know about lithium AA/AAA rechargeable batteries. Interesting. I see that most are rated at 1200-1500mAh (AA) and 400-500mAh (AAA). These are only a little over 1/2 the capacity of the NiMH that I normally use. I guess the charging circuitry takes up room in the battery.

<comment><USER3> Got any charger recommendations? :)

And yeah, the lithium AA/AAAs were news to me too. I learned about them when I got a headlamp that could either take 3 AAA batteries or a same-sized lithium battery with +/\- contacts in the right places. I think the single-cell ones include a buck converter along with the charging circuit, which probably cuts down on the space they can devote to the battery itself.

<comment><USER2> Yup, it's old but I use this Titanium Smart Fast 8 Bay AA/AAA charger ([https://www.amazon.com/gp/product/B0035HCTLS](https://www.amazon.com/gp/product/B0035HCTLS)). The manual states that it has negative delta-V and timer shutoff. One of the Amazon reviewers mentions a problem with deeply discharged batteries, similar to what I've seen where I need to charge the battery twice.

By the way, this situation happens mostly on my motion-activated staircase LED lights which take 4 x AA. That thing is amazing because it works until 3 x AA are essentially dead and only 1 x AA is giving out power. For most of my other devices, the device stops working before the battery voltage becomes that low.

</comment></comment></comment></comment></comment><comment><USER4> Wow! I was asked by a friend if dead/flat batteries were weighing less, since I was working a little bit with batteries. Back then I dismissed it as utter nonsense. But I still googled the question because you never know right? and I stumbled upon either this article or a similar one: [https://www.quora.com/Is- a-charged-battery-heavier-than-a-de...](https://www.quora.com/Is-a-charged- battery-heavier-than-a-depleted-one)

After finding and reading an answer that agreed with my initial assessment I never continued to investigate why my friend would make such a claim, but now I guess it was related to this phenomenon. Guess I owe somebody an apology. Crazy how somethings seem so outlandish that I did not even ask myself if this was possible or what fundamental differences there are between batteries of different states of charge. Also it would have been quite easy to test this in retrospective... Note to myself: I should be more careful and curious in the future!

<comment><USER5> Energy equals mass times the speed of light squared.

That alone tells me a dead battery of one composition will weigh some fraction less than a fully-charged one of the same composition, assuming all other things are truly equal (number of atoms in the containing can, etc.) The fractional difference might be very, very small (billionths of a gram difference?) but should still be present.

</comment></comment><comment><USER6> The linked video is something else.

[https://youtu.be/ZywsCbWEun8](https://youtu.be/ZywsCbWEun8)

</comment><comment><USER7> Now they just need to study the drop's impact on battery lifetime.

</comment><comment><USER8> I've been using this trick to tell dead from fresh alkalines for years! I thought the science was well understood

</comment><comment><USER9> Blast from the past, I remember doing that when I was little. Forgot all about it. Thank god for rechargeables.

</comment><comment><USER10> Ignobel material</comment>


How to Secure Websites for Clients - <AUTHOR> https://blog.sucuri.net/2016/12/secure-websites-clients.html <comment><USER2> An interesting new market.

It scales with the number of employees. How many customers can a security professional follow?

<comment><AUTHOR> With the right tools and processes, I think it's very scalable for agencies and freelancers alike to support quite a few clients. Certainly the size and scale of the environment comes into play determining what you can and can't handle.</comment></comment>


Bold: Make Your Words Stand Out - <AUTHOR> https://bold.io/post/make-your-words-stand-out-udvqaw <comment><USER2> This basic post with two images (four counting the logo and author avatar) clocks in at 30 requests and a plump 6.10 MB. Bold!

<comment><USER3> I'm clocking in at 5.1MB which is still huge, but 4.4MB are from images alone. However their biggest image is a 2.8MB 24-bit monster PNG. That really could be a JPEG, with moderate compression it could come in at only a few hundred kilobyes I think.

<comment><USER4> Thanks for the heads up guys!

We spent a good amount of time compressing our blocking bundle size (html, JS, CSS), which actually is JS for the entire app, not just that page. Certainly have more work to do, but given the amount of code, our JS/CSS is pretty low.

I just compressed the large image and it dropped to ~430KB.

Meanwhile, the other large asset is the animated GIF, which I suppose we could switch to a looping webm/mp4. Was hard to reduce the GIF further and keep the same quality...

Where's Pied Piper when you need them?

<comment><USER5> > We spent a good amount of time compressing our blocking bundle size (html, > JS, CSS), which actually is JS for the entire app, not just that page

The problem with this approach is that, whilst it might be great for readers that view > n pages, the experience for viewing the first page is so terrible that many won't get past that one. It's still running at 37 requests, 2.7 MB, and 4.2 seconds even after your optimisations. Didn't load at all on my iPad.

If the javascript is for editing, it's clearly wasteful to deliver that to people who definitely won't be doing any editing; isn't it possible to defer that until it's needed?

</comment></comment></comment></comment><comment><USER6> Why this gets so many upvotes? Just out of curiosity to know what it is (though personally it does not excite me)?

It's a bloated site - bold [0], people do not understand what it is [1][2], seems like a Medium clone [3], it does not seem to solve any problems [4].

To add from myself, to block ambient noise I launch my preferred music player with my likeable music, which blocks noise and does not distract me (same with many colleagues of mine), IMHO it's useless feature to have ambient music in you word processor.

Also, do we really need another (too) clean, (too) minimalistic, hipster writing/blogging platform, which looks like Medium clone and is probably 'made with <3 in Bay Area/NYC/Seattle/whatever (c)'?

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

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

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

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

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

</comment><comment><USER7> After reading over their landing page a few times, I think that this is writing assistant "service". You start writing out your proposal and some automated "asssistant, not a bot" is supposed to analyze your writing and provide suggestions to make it more memorizable and easy to understand (group this into 3 phrases instead of sentences. Remove this adverb. Change this sentence from passive to active). I assume once you write it up, it gives you the ability to share your masterpiece as a link, possibly export to word/pdf/stone tablet.

Much like Microsoft's Clippy, the idea is pretty sound, but a bad implementation will make it more of an annoyance than a feature. Given the confused meandering of their landing page, I don't have much hope for their product.

</comment><comment><USER8> Is this a new blogging engine? I can't seem to get a proper mental picture for some reason.

<comment> ux-app It's not that complicated.

The second paragraph.

      > 'Bold aims to provide the best experience for reading and writing long-form content at work so that your best ideas can be heard.'

Seems like an unique and interesting product. My work doesn't involve writing 'long-form content', so I'm not in the target market but I didn't find it hard to work out what it does.

<comment> King-Aaron So...

Is it a blogging engine? A notepad app? A ... ?

<comment> ux-app FFS. I hate snark. Developing a product is hard. did you take even 5 mins to read the post. If you did then you wouldn't have any issues with understanding the product and the value it's trying to add. I didn't. And I'm not exactly Einstein.

<comment> King-Aaron I read it numerous times. And nowhere does it mention whether it's a web app in the browser, a standalone app for the desktop, if it's a social/sharing site, etc. The page discusses lots of features, lots of solutions to problems which they don't define the problem of, etc. It's one thing to assume what a product is, but that's not good marketing.

<comment><USER9> Agreed. I've spent 18 years as a computer journalist and I still can't make head or tail of exactly what "Bold" is. Really vague description on that page. Certainly hasn't encouraged me to investigate or write about it...

</comment></comment></comment></comment></comment></comment><comment><USER10> "Hi! It looks like you're trying to recycle an idea from the late 90's into yet another SaaS product. Would you like to (a) post to HN a bloated landing page with almost no details, (b) collect email addresses, or (c) both?"

<comment><USER11> What is the idea? I can't tell from reading the link. I'm surprised this managed to make it to the front page.

<comment><USER10> Clippy? Remember Clippy? "Hi, it looks like you're trying to write a letter."

</comment></comment></comment><comment><USER12> What problem is this solving? I don't really need ambiance music in a word processor.

</comment><comment><USER13> I truly honestly have no idea what this is. Is it a blogging platform? A CMS?

<comment><USER14> My first thought was it was a new npm package for wrapping bold and/or strong tags around arbitrary DOM nodes.

Was slightly disappointed.

<comment><USER15> So I am not alone! Thought this was a satire of sorts at first.

</comment></comment></comment><comment><USER16> I can definitely see how this could be useful for teams that create content collaboratively. When our team works on release notes, blog posts, support articles, etc we use a combination of Slack and Google Docs.

After editing, we post to tumblr (product updates), Medium (blog/marketing) or any one of half a dozen other places where we out stuff. Bold feels to me like Medium with bonus collaboration features + integrations. Tools like [http://www.hemingwayapp.com/](http://www.hemingwayapp.com/) built in sound awesome. Add in the ability to create your own assistants (import brand assets, pull up GitHub issues, insert content from your YouTube channel, find the right gif for this paragraph) and it adds up to a much more centralized writing experience for modern work-related content creation.

</comment><comment><USER17> Looks like a Medium clone?

</comment><comment><USER18> As an aside: I do not like the idea behind the Hemingway app. Editing prose is not the same as debugging code. Removing adverbs will not make you a good writer. And the whole idea of having some bot making automated comments on my text as I write it sounds distracting at best.

If you want to write better, write more. And let people read your writing. Hear what they have to say. Style handbooks like "Writing with Style" or "The Elements of Style" are great, but you should attempt to understand the reasons they behind their recommendations, not just use them as a mindless checklist.

Craft your own voice.

</comment><comment><USER19> The content is served in a span in a span in 11 nested divs in a span in a section in 2 more nested divs -- at least it looks nice.

The "discuss on slack" feature is pretty neat. The thought of being able to hop into a discussion with people on a topic rather than making static posts would be cool.

</comment><comment> King-Aaron How many times does the user need to read the page before they discover what bold.io even is? I'm at about five now and just want to know before I move on to my sixth.

</comment><comment><USER20> Until reading these comments, I was completely convinced this was fairly good satire.

</comment><comment><USER21> Absolutely no clue what this is.

</comment><comment><USER22> What's the source for the first image?

<comment><USER23> [http://orlincultureshop.com/blog/2015/2/2/opera](http://orlincultureshop.com/blog/2015/2/2/opera)</comment></comment>


Flexible Muscle-Based Locomotion for Bipedal Creatures (SIGGRAPH) - <AUTHOR> http://vimeo.com/79098420

<comment><USER2> This got lots of attention on Reddit. I'm guessing that the title caused it to get skipped over here, which is really too bad.</comment>


35C3 – Inside the AMD Microcode ROM - <AUTHOR> https://www.youtube.com/watch?v=W3FbTMqYi4U <comment><AUTHOR> Related: [https://github.com/RUB-SysSec/Microcode](https://github.com/RUB- SysSec/Microcode)

<comment><USER2> Other links and abstract for this talk are available on the CCC media site: [https://media.ccc.de/v/35c3-9614-inside_the_amd_microcode_ro...](https://media.ccc.de/v/35c3-9614-inside_the_amd_microcode_rom)</comment></comment>


Do you believe Michael Cohen is turning into a Stoic? - <AUTHOR> https://donaldrobertson.name/2018/12/12/the-stoic-philosophy-of-michael-cohen/ <comment><USER2> Of course, if Michael Cohen were _completely_ like the Socrates of Plato's Apology, he would have spent more time insulting the judges and criticizing democracy. (It's also worth noting that Plato and Epictetus disagreed on a number of issues.)</comment>


Neurotic Styles of Management (2010) - <AUTHOR> https://gbr.pepperdine.edu/2010/08/seven-neurotic-styles-of-management/ <comment><USER2> This article hits too close to home.. I myself have a manager who has grand swings of emotion. His sole attitude can ruin my day. Otherwise, I kind of like the job..

</comment><comment><USER3> Compulsive/abrasive styles seem to describe a lot of leaders in the technology industry, including Bill Gates and Steve Jobs. Because I tend to be a bit perfectionist when it comes to code quality and user experience, I myself could be described as "compulsive". Where does one draw the line between good perfectionism and bad?</comment>


Get Paid to Move to Maine - <AUTHOR> http://www.bostonmagazine.com/property/blog/2016/06/03/maine-vacation-paid/ <comment><USER2> This "program" is essentially nothing more than a PR grab. From the FAQ:

 _How much will I get reimbursed if I land a job in Maine?

That will depend completely on the employer who hires you. They have complete discretion to provide a signing bonus or expense reimbursement as an incentive to get you to move to our great state. There is no requirement for an employer to reimburse any job seeker._

In other words, there is no program. There is a logo that falsely implies there is a program, and apparently some kind of marketing budget to get places like Boston Magazine to write sponsored content about said falsely implied program. But that is all there is.

Another oddity in the FAQ is that they actually say that job boards are not allowed to link to their website. I'd love to see such a policy challenged in court, but the fact that they would even come up with such a heavy handed and ridiculous policy, regardless of whether it can be enforced, is very off putting.

<comment><USER3> Plus you're not getting paid to move to Maine...if you do get paid, it's to visit Maine before deciding that you want to move.

</comment></comment><comment><USER4> If I can offer some unsolicited advice, here's your "head's up" from someone from Maine that recently passed on moving back:

\- Maine jobs are low-paying and few-and-far-between. Not an issue if you're positive you can line-up recurring remote jobs, but be honest with yourself.

\- Income taxes are pretty high.

\- You'll want to live in Portland.

\- Portland is "expensive" for rent (you're very lucky to get a nice 1br for 1400/mo, with rents on the rise due to out-of-state purchasing of condos for rental-income or airBNB/subsidizing owner-seasonal housing)

\- Portland is a driving city. You _do_ have a car, right?

\- Food/drink/going-out is a little below NYC prices (they can get away with it due to out-of-state travelers). There are great restaurants, but most are mediocre to bad. The beer's great though. Enjoy your beer per hour, as you'll be driving home.

\- Everything is closed by 11 on weekends.

\- Housing costs are steeply on the rise and the local culture is on the decline -- it's not a secret Maine is beautiful, and most of the population is retirement age (oldest in the nation!), so the culture is whatever sells to out-of-state money. Hope you're cool with those taxes going up to support the baby boomers leaving the workforce.

</comment><comment><USER5> Anyone to share their stories living and working in Maine? My background: I have a great job in SF, but SF is such a terrible city to live in. In the 5 to 10 years time frame, I am strongly considering moving away from SF.

<comment><USER6> Would anyone mind expanding on why SF is a terrible city to live in?

<comment><USER7> Expensive. If you moved here 5-10 years ago your rent isn't too bad but good luck if you need to move out for whatever reason (eviction, bad housemate vibe, meet a partner, have a kid...).

Relatively high crime rate, human shit on the street everywhere, terrible schools...

By comparison Portland Oregon is 50% less expensive to rent or buy (1 bed SF = $3500-4500; 1 bed Portland $1435-$2535).

Plenty of high paying jobs but I know that personally I would be up if I moved to any other city and took my companies cost of living adjustment.

<comment><USER8> >human shit on the street everywhere

Uh, what? I've never been to SF, but I've never heard this before.

<comment><USER9> It's definitely a thing. SF has a pretty substantial homeless population and apparently very few options for them to defecate that isn't the sidewalk. You can spend all day walking around playing human or dog. Walking by one of the BART stops on a warm day, you're hit with a pretty strong smell of urine.

<comment><USER10> I've travelled all around the world, including India and a number of poorest countries, and I've never seen anything like this.

<comment><USER11> Then you haven't looked. When I visited China I saw lots of people deficating in the streets, parents encouraging children to do it etc.

When a man's gotta go...

<comment><USER10> If you're thinking of the same thing I am, then it's different. In some places, the only option may be to defecate on the side of the street by the curb, but that area gets swept frequently. I have never been able to play a dog vs human sidewalk poo guessing game as suggested above, including in the African, Asian and LatAm slums.

Perhaps it's because those people are not a transient homeless population that (presumably) gets cleaned up after, but they actually live there.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Born and raised in Maine, worked there for 5 year or so, but can't imagine going back. Maybe if I got something remote I'd go back for a few months in the summer(Maine is awesome for about 2-3 months) but there's almost no jobs and if you manage to get one the pay is abysmal. Oh and winter is like 5 months long, so living there year round is brutal(a _lot_ of people move to Maine for 1 to 3 years and leave after the first bad winter)

</comment><comment><USER13> One local recruiter linked to a Forbes article about "Best States for Business" and tweeted, "We beat MS and WV - hooray!"

I recently reached out to a small company in Portland with a posting on its web site that seemed like a great fit. Unfortunately, hiring in ME is no different than MA: they never call, they never write.

I spent a weekend up there looking at neighborhoods. Beautiful area with nice houses and good schools.

</comment><comment><USER14> I've heard of some large companies opening up offices in Portland. Beautiful town and area for half of the rent and other costs, and there is a great network of agencies and talent in the area to hire from.

</comment><comment><USER15> Does Maine have similarly good FTTH coverage as Vermont?

<comment><USER16> Nope. This is a marketing move, but one that is not done in concert with actually making the state's infrastructure and utility access and cost any better.

I love Maine, I love living here, but it is not friendly to business and for the life of me I can't figure out where the leadership gap is in terms of turning it around.

<comment><USER15> What makes Vermont so great that it has Sanders and FTTH?</comment></comment></comment>


Dear God READ THE NEW HEADLINES before posting - <AUTHOR>

Seriously?? 10 Apple v. Samsung stories? People, get a clue. <comment><USER2> The best story on this breaking news item was posted by grellas (from Groklaw) after you posted your complaint.

<http://news.ycombinator.com/item?id=4430341>

I hope all the readers of HN who want one best story about the Apple versus Samsung verdict to read will prefer upvoting grellas's submission.

<comment><USER3> The Groklaw coverage was late, pretty average in format and biaised.

Why would I upvote that submission in favour of better ones ?

<comment><USER2> You ask a very fair question. I prefer following legal news (which this mostly is) in an online community that is attuned to legal issues, for many of the same reasons that I prefer to follow startup and technology news discussions here on Hacker News.

</comment></comment></comment><comment><USER4> How is this 3-day-old 3-point post on the (bottom of the) front page today?</comment>


Battle of the Bits, a music and art competition community - <AUTHOR> http://battleofthebits.org/

<comment><USER2> [http://www.reddit.com/r/newretrowave/](http://www.reddit.com/r/newretrowave/)

<comment><AUTHOR> if this is a comment on the site stylings, I think BOTB's CSS/layout is part of its general aesthetic, one that is very charming to me!

<comment> joe-m I think he's just linking to a subreddit based on this style of music.

</comment></comment></comment><comment><AUTHOR> BOTB also has an IRC channel, #botb on Espernet (irc.esper.net) if you're at all curious!</comment>


Cornershop enters United States, plans to expand further in Brazil - <AUTHOR> https://www.contxto.com/en/chile/cornershop-expands-grocery-delivery-united-states/ <comment><AUTHOR> 'Chilean-Mexican Cornershop continues its expansion. Yesterday, the grocery delivery startup announced the official launch of operations in Dallas and Miami. This marks the first time the startup enters the United States.'

'All this scaling up only sweetens the deal for Uber, who announced its intention to buy Cornershop last year for US$459 million. But this transaction still hangs in the balance as Mexico's antitrust body, Cofece, has yet to announce its approval.'</comment>


Introducing Social, A Wordpress Plugin - <AUTHOR> http://blog.mailchimp.com/introducing-social-a-wordpress-plugin/

<comment><USER2> Would it be useful to remove the tabs so you can scan them all at once? I've seen blogs that have both Disqus and FB displayed together.

<comment><USER3> They're all together in the first tab. See the comments under the linked post.

<comment><USER2> Cool. Seems like adding Disqus might be useful.

</comment></comment></comment><comment><USER4> anyone tried this? does it work reliably? i've tried a few plugins that purport to do great things but fail to deliver.</comment>


Why do I do this to myself? Bob's first predictions for 2018 – I, Cringely - <AUTHOR> https://www.cringely.com/2018/01/16/bobs-first-predictions-2018/ <comment><USER2> I think the death of net neutrality is an act of desperation (clearly someone is behind it, because...why now, why the spam comments, why so fast, etc), because cable was a medium of control, but broadband is a utility with little opportunity for resource extraction. Here comes 5g and lots of wireless bandwidth for even more price competition which will either put incredible pressure on the ISPs to violate net neutrality to extract value or create a proliferation of ISPs, ala the 90s that race to the bottom, some of whom will offer net neutrality as a feature of their service. Curious to see how the increase in bandwidth affects the market in the coming years. Wireless presents all kinds of interesting possibilities.

</comment><comment><USER3> " _All the mobile carriers will begin rolling-out 5G wireless networking in 2018, though only about 22 percent of the country will be covered by the end of this year._ "

22% by population or by geographical area? (Yes, I think I'm funny.)

What exactly are the details of 5G? My understanding was of lots of short- range, very smart antennas. Which would require some kind of backbone, probably wireline, right? And which those of us who do not live in major metropolitan areas probably shouldn't expect to see, ever.

</comment><comment><USER4> I've wondered for years now, who is the woman in the image with Cringely? Partner, coauthor, wife, daughter, model? (To be clear, I don't want someone to DOX her, just curious as to her relationship to Cringely's web site.)

<comment><USER5> (In no way trying to impact the perception of submitted text - just honestly asking for context.)

I have a better question - _who is Cringely_? It's the first time I hear of him. Is he some SV celebrity?

<comment><USER6> Short story: he was a big deal back in the day, has had a couple pretty big stories but these days he's much less influential.

Now he blogs very infrequently, largely concentrating on his slightly-creepy obsession with IBM. The fact that he so easily gets duped by scammers pretending to be Google[1] and then actually blogs about it is quite indicative of how far his finger is from the pulse of technology.

So, no, you're not missing anything.

[1] [https://www.cringely.com/2015/09/07/evil-google-waiting- on-l...](https://www.cringely.com/2015/09/07/evil-google-waiting-on-line-one/)

<comment><USER7> His essays have been submitted 40 times as HN stories in the last two years (most with more than one person submitting). I have gotten useful insights from all that I have read. If you are going to be so dismissive you might at least give us your recommendations for who has a better bird's eye view of current technology.

<comment><USER8> I think he's reasonable enough although he doesn't write a lot. The world has changed to the degree that it's probably hard to point to a generalist weekly writer who is the equivalent of the columnists at the old weekly computer magazines. Today, you tend to get writers who are more specialized in AWS, IoT, virtualization, cloud, or whatever. And most of them are consultants, vendors, etc. rather than full-time journalists.

</comment></comment></comment></comment></comment><comment><USER9> What is buffer bloat and how do old routers contribute, how did new routers fix it?

Also I didn't realize broadcasters can sell their frequencies and it can be used for non broadcasting uses such as data? Is that true?

<comment><USER10> From wikipedia:

> Some communications equipment manufacturers designed unnecessarily large > buffers into some of their network products. In such equipment, bufferbloat > occurs when a network link becomes congested, causing packets to become > queued for long periods in these oversized buffers. In a first-in first-out > queuing system, overly large buffers result in longer queues and higher > latency, and do not improve network throughput.

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

<comment><USER11> Measure the bufferbloat in your connection:

[http://www.dslreports.com/speedtest](http://www.dslreports.com/speedtest)

</comment></comment></comment><comment><USER12> Whatever ISPs will do with no more net neutrality (assuming its not overturned by Congress) may affect the prediction about streaming. Guessing what this will result in is impossible.

<comment><USER13> Guessing the result should be informed by the cycles of regulation and deregulation in the telecom industry as a whole. We have decades of history to pull from, if anyone wants to take the trouble to learn the history and apply it to the current scenario.

</comment></comment><comment><USER14> *Microsoft's concentration is on: 1) Azure; 2) Azure services like storage and — to some extent — Office 365; 3) Microsoft Office, and: 4) Windows.

If something is your fourth priority it might as well not be on the list.

<comment><USER15> I sure hope my government still adresses things after #3 on their to do lists.

<comment><USER16> Well certainly maintained.

</comment></comment></comment><comment><USER17> > 5G is interesting because it will bring a huge increase in wireless > bandwidth that we don't really need.

640K of RAM…

<comment><USER18> Correct. We (users) don't need that bandwidth. Advertisers and social media companies who consume us and market us as a product to be sold needs that bandwidth.

<comment><USER19> Don't be such a cynic. If you think the differentiator between 1G broadband and a 56k dial-up is ad bloat you're crazy. Significant bandwidth increases enable applications that weren't possible before.

I want that bandwidth to do cool things. And there's nothing stopping you from doing cool things with it either.</comment></comment></comment>


Show HN: PyFuzz2 – A little fuzzing framework in Python - <AUTHOR> https://github.com/susperius/PyFuzz2 <comment><USER2> What is a fuzzer _supposed_ to do? It seems something like randomly injecting some (data) into a network and hoping something significant happens / breaks?

This seems a bit too unlikely - can anyone supply more details?

<comment><USER3> Instead of pure random data, fuzzers can use 'attack heuristics' to try and minimize the search space. These are specific patterns that are more likely to expose bugs, based on previous vulnerabilities and known coding errors. For example using '%n%n%n%n%n' many times to exploit C-style format string stack vulnerabilities.

Mozilla started a project known as FuzzDB to collect these heuristics, although it doesn't appear to have been maintained recently.

Here's some examples from FuzzDB: [https://code.google.com/p/fuzzdb/source/browse/trunk/attack-...](https://code.google.com/p/fuzzdb/source/browse/trunk/attack- payloads/format-strings/format-strings.txt)

<comment><USER3> Here's another set of examples, for different targets:

[https://www.owasp.org/index.php/OWASP_Testing_Guide_Appendix...](https://www.owasp.org/index.php/OWASP_Testing_Guide_Appendix_C:_Fuzz_Vectors)

</comment></comment></comment><comment><USER4> Cool! I'll admit I haven't had time to give this more than a gloss yet, but the architecture is interesting. I've always wanted to implement a fuzzer. My current fuzzer of choice is Sulley: [https://github.com/OpenRCE/sulley](https://github.com/OpenRCE/sulley)

<comment><USER5> I prefer Hypothesis. It's not so much a fuzzer as a library to generate data for unit tests, and thus fits much more easily in the development flow.

<comment><USER4> Yeah, it really depends on your use case. Hypothesis is better for unit testing and development. It's a developer's tool. Sulley is better for finding bugs that could lead to vulnerabilities. It's really an infosec tool.</comment></comment></comment>


Employee email claims leadership delayed acknowledging McClure's harassment - <AUTHOR> https://techcrunch.com/2017/07/03/employee-email-claims-500-startups-leadership-delayed-acknowledging-mcclures-harassment-as-new-allegations-surface/ <comment><USER2> The timing and delivery of Dave's "I'm a creep, I'm sorry." mea culpa now seems more logical to me.

A person who has committed transgression B, which is one-level more reprehensible and more opaque than transgression A, will admit to A in the hopes of forestalling a deeper inquiry into B.

I don't know what to call this rhetorical tactic (fallacy?), but I imagine sex offenders must employ it regularly to mitigate public backlash.

<comment><USER3> It is called a "limited hangout."

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

</comment></comment><comment><USER4> This is a good example of the dynamics of harassment. What was perceived as a one incident a day ago is now a much more widespread issue.

When talking about harassment keep in mind that for every voice that rises chances are many more have not come forward due to pressure or fear of consequences.

<comment><USER5> This is the sort of logic that ultimately destroys due process. "This person was accused so they must be guilty of the accusation... and much more!"

<comment><USER6> How about "This person was accused. Let's at least take the accusation seriously instead of dismissing it out of hand."

The consequences of making a public accusation like this are generally negative for the accuser as much as or more than the person accused. Often even if the accusations result in a conviction in a court of law. Often even true accusations do not result in convictions. Sometimes even accusations of actual physical rape of an unconscious woman, accompanied by video evidence.

Meanwhile the accuser's life gets turned upside down. They're demonized. Their every past relationship is scrutinized. They're accused of "asking for it" and not taking necessary precautions. Their reputation is dragged through the mud. Their career ends because they're deemed a troublemaker and nobody wants to alienate the boys club, nor work with someone who might have the audacity to call out colleagues or superiors on their misbehavior.

The person they accused is defended and excused as being drunk or, well, "boys will be boys".

So, yeah, every now and then someone makes a false accusation.

By for every _true_ accusation there are typically many more victims who were too afraid of the consequences of speaking up.

</comment></comment></comment><comment><USER7> Silence is the enemy of justice.

</comment><comment><USER8> The leadership of this organization is complicit. It's disingenuous to pretend they "just found out." There are enough signals that indicate that they let "Dave be Dave." They let this continue on for years. Terminate this organization for the good of those involved and their investors (some of whom also likely knew).

<comment><USER9> This presentation of his seems like it should have raised some eyebrows: [https://www.slideshare.net/mobile/dmc500hats/how-to- pitch-a-...](https://www.slideshare.net/mobile/dmc500hats/how-to-pitch-a-vc- or-angel-13504703)

<comment><USER10> Wow, that presentation is pretty shocking. How on Earth did he get away with both the harassment and the crude commentary for so long? In retrospect, knowing how he was treating women for years and looking at a presentation like this, it seems almost as if he was taunting the general consumer tech public with his behavior.

</comment></comment></comment><comment><USER8> "Due to the sensitivity of personnel issues and the privacy of all involved, the investigation was kept confidential."

Wow, there is a predator in the group, but "privacy"?

<comment><USER11> Privacy concerns of the _victims_ is a serious point to be respected.</comment></comment>


Xonsh: a Python-ish, BASHwards-looking shell language and command prompt - <AUTHOR> http://xon.sh/index.html <comment><USER2> It's like somebody finally got around to building the think we've been asking for all these years.

</comment><comment><USER3> Fairly recently discussed on [https://news.ycombinator.com/item?id=11672023](https://news.ycombinator.com/item?id=11672023).</comment>


Fulcrum - Open Source Agile Project Management Tool - <AUTHOR> http://wholemeal.co.nz/projects/fulcrum.html

<comment><USER2> Thanks everybody for your comments. I should probably point out a couple of things.

\- The project is most definitely not ready for prime time yet, and I hadn't intended to publicly launch until I have two more major features ready. Thank you NoSunlight for letting the cat out of the bag! \- Those features are comments and iterations, which are both nearing completion. \- In its present state, the project is probably only suitable for competent Rails / Backbone.js hackers. It will probably be usable in the near future, but not yet. If you need a working alternative, sign up to Pivotal Tracker, it is well worth it.

My motivation for creating this project was twofold. One, I love Pivotal Tracker, to a degree that is probably not healthy. I use it extensively and, crucially, I use it for estimating projects. I completely understand the move to a paid model for PT, but it would impact my way of working considerably and become one of my main expenses. Secondly, I was kind of intrigued by how hard it would be to implement an alternative to what is, in my opinion, one of the most impressive web applications I've ever used. It turns out it's very hard!

For those of you who find this project offensive or unsatisfactory in any way, I genuinely and sincerely implore you to continue using PT. It rocks!

</comment><comment><USER3> I don't think I'd feel comfortable using such a direct clone of someone else's software. From a cursory glance it doesn't seem that Fulcrum brings anything new to the table, so using it would make me feel like I was stealing from Pivotal.

Hopefully over time Fulcrum can differentiate itself and compete on features, not on price.

<comment><USER4> Stealing what?

Fulcrum developers had decided to implement FOSS self-hosted solution, comparable to Pivotal Tracker. They even wrote this clearly in project's README file. How that could be "stealing"?

<comment><USER3> Please read what I wrote more carefully. I didn't say that the the Fulcrum developers were stealing. I said that _I_ would _feel like I was stealing_ from the Pivotal developers by using a free clone instead of paying for the original. Since Fulcrum os (or appears to be) so similar to Pivotal I'd feel as if I was choosing it simply to avoid paying, and that isn't a feeling I'd like to have.

</comment></comment></comment><comment><USER5> I think the most important think you must implement to have more adoption is to have an on-line (no registration required) demo of your software.

<comment><USER6> There's a good demo at <http://pivotaltracker.com> (registration required, though)

All joking aside, this project probably will appeal most to people already familiar with Pivotal Tracker, much like the Basecamp clones out there will appeal to people familiar with Basecamp, who either can't afford or don't want to pay for Basecamp. I don't think these kinds of projects really hurt Pivotal Labs or 37signals in any significant way, and can even help them in two ways: 1) having some competition to light a fire under their butts, and 2) often times when you use these FOSS clones you realize how much better and smoother the real versions are and go back.

</comment></comment><comment><USER7> It looks very similar to a certain other online agile tool. How is it better, other than being open source?

The name 'fulcrum' is a word that brings to mind physical force... I think you meant it to bring to mind that you put a little effort in, and a lot of work gets done... But for me, the idea that force is needed at all seems like a negative.

<comment><USER8> _It looks very similar to a certain other online agile tool. How is it better, other than being open source?_

It does indeed, but the author isn't hiding that in any way. Here's what's on the page at Github:

 _Fulcrum is a clone of Pivotal Tracker. It will almost certainly never surpass the functionality, usability and sheer awesomeness of Pivotal Tracker, but aims to provide a usable alternative for users who require a Free and Open Source solution._

I think this looks pretty good - particularly because it's hosted and a lot of companies still need that today (a day doesn't go by when I don't get requests for hosted versions of the service I run).

</comment></comment><comment><USER9> Very interesting discussion here. I was just developing a free PT clone too. We are and were using PT already as paying members.

But I started developing a clone in my sparetime just for fun. I didn't really like the look&feel of PT and I tried to improve that. Also we were missing a good timetracking part in PT too. And what came out is Planthat (Planth.at).

I would love to see some screenshots of Fulcrum. Is there any resource out there?

If you feel interested in our tool you may want to take a look at some screenshots here: <http://www.facebook.com/pages/Planthat/187262291341546>

<comment><USER2> There are screenshots at the originally posted link, <http://wholemeal.co.nz/projects/fulcrum.html>

</comment></comment><comment><USER10> There definitely hasn't been an Open Source project similar to Pivotal Tracker and I am happy that somebody has finally taken the time to write one. I am sure, this will help many small companies like ours.

I've tried a couple of times to build a usable bug tracker (we actually use an inhouse bug tracker at our company), but this is a hard problem. It'd be great if the ruby community rallied around this and make it into the "goto bug tracker"

</comment><comment><USER11> In case anyone wants to get fulcrum up and running under ruby 1.9 I've patched a couple issues in my pending pull request: <https://github.com/malclocke/fulcrum/pull/5>

</comment><comment><USER12> So is there any instruction on how to install or try out this software project. I know Ruby on Rails is popular but at least some instruction on configuration would be helpful.

</comment><comment><USER13> I'm not familiar with Ruby projects and there are no install instructions. How do I get this running on OS X?

<comment><USER14> Try any Ruby project with installation instructions. I was also clueless at first, but found it very easy to deploy a Ruby project.</comment></comment>