Boosting teeth's healing ability by mobilizing stem cells in dental pulp - <AUTHOR> https://www.scientificamerican.com/article/instead-of-filling-cavities-dentists-may-soon-regenerate-teeth/ <comment><USER2> Dentistry technology seems similar to battery technology in that these developments never seem to filter down out of the lab, ever. The only thing new that's been added to my dentist visits is that little graduated paperclip looking thing that measures depth between your teeth and gums. Other than that, every dentist visit I've ever been to has been basically identical, as far as technology goes.

I get that much of it works, so there's not a lot of need to throw it out, but where's the progress? My eye doctor visits add new technology regularly. Not _often_ , to be sure, but still regularly. My eye doctor visits now are quite a bit different in many ways than they were when I first got glasses.

There's a point where I started to wonder if dentists in general are worried about becoming obsolete. That's conspiracy theory, of course, so I don't take it seriously. But I do wonder all the same.

<comment><USER3> My dentist, a younger generation who took over the practice from a retiring dentist, has installed a Cerec crown milling machine. It was amazing to see the tooth modelled in 3d using a series of photos, then I watched my dentist raise the ridges of the tooth to create what would become the crown. After a few clicks he sent it off to be made - in the next room! In literally 10 minutes he had a crown milled from a block of dental porcelain or some kind of hard ceramic, ready to be fitted in my mouth. See a video of the process here: [https://www.youtube.com/watch?v=ajj4zkXHe6U](https://www.youtube.com/watch?v=ajj4zkXHe6U)

<comment><USER4> Just one thing you should be sure to check: how the crown reacts to UV light. Real teeth fluoresce!

Unfortunately, a surprising number of manufacturers don't take this into account when formulating ceramics for crowns.

It's quite disconcerting to find yourself in a night club, unable to smile or talk properly because of the huge black gap in your teeth...

<comment><USER5> > Just one thing you should be sure to check: how the crown reacts to UV > light. Real teeth fluoresce!

Sounds like a cool way to embed secret messages on your teeth.

<comment><USER6> But with Morse that'll leave us fewer characters than a tweet does!

<comment><USER5> 32 teeth, one bit per tooth, that gives us 4 ASCII characters to work with.

<comment><USER7> Works for FUCK and not much else.

<comment><USER8> Works for six of the seven words you just posted :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Speaking of new dentist tech, this is something that has been bothering me (reposting from my answer above):

I've been looking into root-analogue implants [1] - essentially a physical 3D-printed copy of the whole tooth, including roots. Unfortunately information is scarce (as you can see in that wikipedia page), it's not even mentioned in the main 'Dental implant' article. No drilling required, the implant is literally pushed into place after removing the tooth [2].

There is a single dentist in the entire world actively offering these implants [3], and going at it for 20 years. The idea and results seem solid, you can find several papers from other researchers confirming that it works. Last year a company announced a similar root-analogue implant (though titanium instead of ceramic) in the Netherlands, but haven't seen anything since.

Current root canals are filled with 'gutta-percha', a natural latex used since the 1800s, quickly blacken and are a common source of complaints. I have a single filled tooth and it seems to collect way more plaque than its neighbors. It really feels like an ancient tribal practice rather than modern medicine.

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

[2] (GRAPHIC) [https://www.youtube.com/watch?v=uR1is1XxCLY](https://www.youtube.com/watch?v=uR1is1XxCLY)

[3] [http://www.bioimplant.at](http://www.bioimplant.at)

</comment><comment><USER10> There is a product called Novamin that can help remineralize teeth, currently owned by GSK. They took the competition out of the marketplace, and AFAIK only put it in certain "Sensodyne Repair & Protect" toothpastes, which also contain fluoride; unfortunately it isn't available in USA, but is available in Canada, Thailand, and China (and probably other places also, that's just where I've purchased it). Another source is SHY-NM toothpaste which is sold only in India. One can brush with these toothpastes, or use a dental tray to soak the teeth in Novamin.

Above age 35 or so, rather than direct dental caries, the bigger risk for many people is receding gums (gingival recession), which also leads to tooth decay, hot/cold sensitivity, tooth loss, infection, and so on. To try and prevent this, people go to their dentist for scaling and root planing ("conventional periodontal therapy"), which are fancy terms for what is, to me, medieval treatment -- scraping the teeth with metal instruments that readily damage the enamel and dentin. I believe Periogen is a far superior alternative, which is administered using a waterpik and is able to reach significantly below the gumline. Periogen dissolves dental calculus chemically, without the risk of damage that comes with the instruments used in conventional periodontal therapy.

Another treatment that promotes healthy gums and discourages tooth decay are probiotic lozenges; the exact formulation differs from brand to brand, but in general the idea is to replenish the microbial colonies in the mouth with species that are helpful rather than harmful.

As far as I can tell, the simplest and most effective preventative measure against cavities is to vigorously wash the mouth out with water after eating or drinking anything, every time, no exceptions.

<comment><USER11> Praise Novamin. You can buy it on Amazon, they will ship to the US.

[https://www.amazon.com/Sensodyne-repair-protect-novamin- pack...](https://www.amazon.com/Sensodyne-repair-protect-novamin- pack/dp/B00RZ2OB5Q)

</comment></comment><comment><USER12> I'm increasingly of the opinion that teeth just need to go. They don't heal, so all your efforts are only to postpone their decay. The pulp and nerves only serve to help them grow and then only provide a liability. Modern implants seem overall superior. If you have the money and tolerance for short-term-pain i'd advise just yanking them all and getting implants.

Edit: I'd like to apologise. I was raised in a rural area without floride or proper dental care. My teeth are in a place where no matter what I do I will be losing almost all of them over the next decade. I am frustrated.

<comment><USER13> Having went through removing a single healthy tooth (Wisdom) I'd say that yanking 20+ teeth is a crazy endeavour.

<comment><USER14> People used to do it in the past, I remember reading about a groom who paid for his wife to have all her teeth removed as a wedding present.

<comment><USER15> I recall a crackpot that pulled every last one of his own teeth and replaced them one at a time with polished rocks from his own gravel driveway.

I think it was a video segment on The Daily Show, with Beth Littleford as the correspondent. So that would have been quite a long time ago, somewhere from 1996 to 2000.

</comment></comment></comment></comment><comment><USER16> Dental tech is antiquated and the dentists want to keep it that way so they can keep doing the same things the same way without any new capital investements so they can minimize any capital risk.

In case it makes you wonder how they can keep doing that they spend more money lobbying than any other industry. They are right up there with the NRA. Suprising but true

[https://www.washingtonpost.com/politics/the-unexpected- polit...](https://www.washingtonpost.com/politics/the-unexpected-political- power-of-dentists/2017/07/01/ee946d56-54f3-11e7-a204-ad706461fa4f_story.html)

</comment><comment><USER17> When I was in college I had a hole on the side of my molar, it was a cavity that had started as small dot, and gotten bigger. I didn't have insurance.

So I took a toothpick and cleaned out the gunk and washed it out with peroxide. (just on the toothpick) I kept it clean with a tooth pick, and intentionally swished spit around the tooth regularly.

Eventually the hole filled back in.

I know teeth can "heal", but I think "re-calcify" is a better term I ran into the past few years. But like anything else on your body, I think it hits a point where there's nothing you can do about it.

I knew a lady that drank so much coke that it ate her teeth away, nothing that lady could do about fixing her own teeth.

</comment><comment><USER18> First rule of science reporting: Instances of the word "May" should be read as "Probably Won't".

<comment><USER19> or add a 20 years delay for each conditional term

<comment><USER20> Someone should probably go check Peter Thiel's teeth for signs of regeneration... and bony eyelids.

<comment><USER19> He actually fought for Trump to get elected. I don't expect his brain implants to be working very well

</comment></comment></comment></comment><comment><USER21> I remember twenty years back a new technique where the destructive bacteria were replaced with friendly ones. Never made it to market I guess, would have made half of dentistry obsolete.

<comment><USER22> You can get it here, actually. [https://probiorahealth.com/probioraplus/](https://probiorahealth.com/probioraplus/)

The downside is that they weren't allowed to sell the genetically modified version, they had to derive it from natural bacteria and formulate it to be a daily supplement instead of a permanent replacement.

<comment><USER18> > _they had to derive it from natural bacteria and formulate it to be a daily > supplement instead of a permanent replacement._

There couldn't possibly be any perverse financial incentive to make you keep buying their product repeatedly instead of only once.

<comment><USER22> They were facing a full FDA trial for the whole thing. Certainly a perverse incentive _not_ to fully develop the product :)

Considering how poor the sales of the tablet have been, I'm sure they'd rather be charging $20,000 per treatment. They actually sold the entire tablet business for $2m which is pretty abysmal compared to the value of 'curing tooth decay forever'

</comment></comment></comment></comment><comment><USER23> i keep reading this article every few months and it's still not here yet.

<comment><USER24> Aaaaany decade now!

</comment></comment><comment><USER25> We've been conditioned to learn that soon >= 10 years (until the next 'soon' is announced). Has that changed in biosciences this decade?

Edit: i see a lot of similar comments here. This hope market has become a plague

</comment><comment> 52-6F-62 I heard about this years ago!

I even think I recall info coming out about results from a mouthwash developed by the Australian military that regenerated teeth.

I've been waiting ever since.

As somebody who has left dentists and hygienists completely quizzical about some of the mineral decay on my teeth (in spite of my praised hygiene habits), something like a periodical regenerative treatment or a regular mouthwash would make me so happy.

In the interim, I've been recommended and given a Japanese toothpaste that contains some extracts of dairy (cheese?). I can't remember for the life of me what it's called, but it's supposed to help with some of the enamel and mineral issues. If anybody knows off hand what it's called. I think it begins with an M...

<comment><USER26> I used to be that guy; brush _and_ floss after every meal from one checkup to another, and there was still buildup. Very morale-crushing. No longer.

Only habit change: I dropped net carbohydrates to 20g per day. I did that for a chronic condition, but the change in dental health was a pleasant side effect. My dentist told me he's never seen such a dramatic difference. Gum- inflammation was causing gaps between my teeth, and that receded to where he couldn't detect it any longer. I went from a teeth cleaning once every other month to once every four months, and that is only by personal choice to get what little buildup he can find (the cleanings are nearly perfunctory, about 10 minutes now). Yet my dental routine has _worsened_ , as I no longer brush and floss after every meal (going to one meal a day at the end of the day also gave me time to brush and floss after that).

YMMV. I suspect a large genetic component, and dropping carbohydrates will impact dental health for some even with a modest drop to 1-200g net carbs per day, and not at all for others even down to 20g net carbohydrates.

<comment><USER27> Is that only sugar or also starch?

</comment></comment></comment><comment><USER28> Tideglusib

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

> "Promotion of natural tooth repair by small molecule GSK3 antagonists" > [https://www.nature.com/articles/srep39654](https://www.nature.com/articles/srep39654)

> [...] Here we describe a novel, biological approach to dentine restoration > that stimulates the natural formation of reparative dentine via the > mobilisation of resident stem cells in the tooth pulp.

</comment><comment><USER29> So, is this better than using lasers? IIRC, the lasers also did something with stem cells to get them to heal/regenerate teeth.

</comment><comment><USER30> Ah dentists. Following the same sophisticated techniques for the past 3,000 years.

If something is in pain just chop it / remove it.

</comment><comment><USER31> The same will be said about broken bones, and other bone based issues.

I'm just hoping we will have solved ligament issues the same way, as an avid hockey player I'll need some upgrades in a few decades.

</comment><comment><USER32> This article, in various forms, gets posted more or less annually, no?

</comment><comment><USER33> Cool! I remember reading about this 25 years ago and telling my dentist. "may" and "soon" indicate another decade, perhaps two?

</comment><comment><USER34> DR.: ___Well, thats odd - your getting a bit long-in-the-tooth... Should I regenerate you body instead?_ __

</comment><comment><USER35> A GSK3 antagonist, lithium, treats bipolar disorder. It's a small world in drug development.

</comment><comment><USER36> Will they REALLY, though?

</comment><comment><USER37> I spent many thousands of dollars for crowns made inside the dentist office with 3d printing and regretted it. The crowns hurt for months because of the material they were printed with, fit poorly and half of them failed within 4 years. Sometimes new technology isn't better.

</comment><comment><USER38> I've never had a cavity or major repair procedure for my teeth, and I don't understand why. I'm not particularly obsessive about my teeth. Are cavity resistant teeth some kind of genetic trait? Does drinking milk regularly maintain healthy teeth?

<comment><USER39> Likely a large genetic component. Also the bacteria in your mouth could (possibly also due to your own genetics) be different. I've also never had a cavity filled, I'm 32 and have one spot on an x-ray that dentists disagree on so I've left it.

<comment><USER40> What's your diet like? There's some evidence that the microbiome of your gut affects tooth decay (or the lack of it, in your case).

<comment><USER39> Pretty normal "healthy" american diet, I guess. I eat meat and most other things. try to eat healthy whole foods and less processed stuff. Rarely drink soda but do eat sweets a few times per week

</comment></comment></comment></comment><comment><USER41> "Soon"

<comment><USER42> In 30 years we will have finally solved all the dental problems of rodents.

<comment><USER43> Who will now live forever as we have cured them of every form of cancer.

I am quite conflicted about science news of this nature. "Study looks interesting!" covers 95% of these stories, but doesn't have the same jazz to it as the headlines we get.

To be honest, I've consumed thousands of these stories. Not a one of them provided information that I ever found valuable. They just took up a few minutes of reading and provided some fodder for online conversation.</comment></comment></comment>


Network visualization: mapping Shakespeare's tragedies - <AUTHOR> http://www.martingrandjean.ch/network-visualization-shakespeare/ <comment><USER2> Cool analysis...I think the works of Shakespeare are vastly underused for fun little tests of text mining and visualization, given how accessible (well, in the downloadable/publishing sense, if not the language :) ), ubiquitously taught, and relatively standardized they are, as far as works of literature go.

But in terms of the article's visualizations, this seems to me a good example of how network visualizations (note that visualization is different from analysis, which are often conflated) are not especially effective, other than to make people want to think "Oooh that's complicated" whether they derived insight or not.

In contrast, I find things like this matrix diagram of Les Miserables, as found in the D3 gallery [1], to be much more straightforward, even before you use the dropdown box to interact with it. It's not as attractive or high of "wow" factor, but its information clarity more than makes up for that IMO.

OTOH, one thing that the spaghetti network maps _do_ show is that there's much room for more sophisticated analysis. The OP looks at whether characters appeared in a single scene together. I was about to criticize the uselessness of the Hamlet graph:

[http://www.martingrandjean.ch/wp- content/uploads/2015/12/Sha...](http://www.martingrandjean.ch/wp- content/uploads/2015/12/Shakespeare-Network-Hamlet.png)

But then I realized...that's what it _should_ look like if you are simply doing scene presence analysis. From my memory, Hamlet _interacts_ with a great many more characters than do Gertrude or Claudius, such as the Ghost and the gravediggers. However, technically, the Ghost and the gravediggers appear in all the same scenes that Gertrude and Claudius do. I think the network graph would look much different if it were based on adjacent dialogue (or some other way to distinguish between co-appearance and actual interaction). It's a little more parsing but it would be more accurate in quantifying the strength of the network ties.

[1] [http://bost.ocks.org/mike/miserables/](http://bost.ocks.org/mike/miserables/)

</comment><comment><USER3> Someone should graph the Avengers which seems to ave an abundance of main characters. Shakespera results seem to show on or two protangonists and antagonists each works better.</comment>


Apple to Cease Development of Aperture and Transition Users to Photos for OS X - <AUTHOR> http://techcrunch.com/2014/06/27/apple-to-cease-development-of-aperture-and-transition-users-to-photos-for-os-x/ <comment><USER3> As a multiple-times-a-day Aperture user for the last several years - I'm _really_ glad to hear this. Apple has made it abundantly clear, that they were longer going to invest any effort into Aperture, and so we're going to get the best of all worlds. The application is absolutely rock solid for me - most of the database crashes, and corruptions have stopped occurring for over a year - so in the interim, I have a product that works for me and will keep me satisfied for the next couple years.

Meanwhile, Apple is going to put all their energy into a single photo system, instead of trying to do some schizophrenic split between iPhoto/Aperture - <USER2> expect to see a pretty excellent system out of it.

Perhaps it's because I don't work commercial or event photography, but the reality is that most of what I use Aperture for these days could probably be done with a slightly beefier iPhoto - which is pretty much what Photos is going to become.

Photostream, as of about 3-4 months ago, has also gotten reliable enough that I _never_ have to worry about any picture that I've taken being on my Laptop. Unlike the early days (months, year?) when it was pretty much a crapshoot as to whether your pictures would move from your iPhone to PhotoStream and then to your laptop - It Just Works now.

So, good news all around.

<comment><USER4> The one worry, and this is more of an ancillary one, is that now without the Aperture competition, Adobe will let lightroom development slack off. Lightroom is (was) one of the adobe apps that don't totally suck, and I always credited this w/ them getting taken off guard by Aperture (competitions is a great thing, etc etc). That being said, I suppose the writing is on the wall and whatever changes in direction were in store for lightroom is probably already in motion.

<comment><USER5> I'm not even so worried about Adobe letting Lightroom languish as I am about them using their newfound monopoly position to at last move Lightroom into the mandatory Creative Cloud subscription model that ate the Creative Suite last year. As an enthusiast photographer and avid Lightroom user, there's no way I'm paying a recurring subscription for the same app when I'm not using it to make an income.

That said, there's a potential twist here. Apple's upcoming Photos app can go one of two directions: Apple could, as everyone seems to be assuming, go the consumer-focused route and stay out of Lightroom's market. On the other hand, Photos could pack all of Aperture's pro features and more behind an "advanced mode" UI. Suddenly, Lightroom isn't just competing with an Apple product, they're competing with _free_.

<comment><USER6> Apple never does simple/advanced mode UIs

<comment><USER7> Also, compare clicking on various Menu Bar items (or other UI features) with option-clicking on the same item. Apple has advanced little mini UIs all over the place.

Similarly, look at many current System Preferences panels in Mac OS X. The basic stuff most users need is up front, and the rest is hidden behind an "Advanced..." button.

I conclude that having an advanced mode, or various enhanced features accessed in different ways from the standard UI, is not inimical to Apple's approach or UI philosophy.

</comment></comment></comment></comment></comment><comment><USER8> Years ago we had the choice of Aperture or Lightroom - we have been happy with that decision so far and this just confirms it. But lightroom still leaves a lot to be desired from a photo management perspective - and I wish there were more alternatives. I'm afraid that the one main competitor going away will cause improvements to languish in lightroom. Even though we didn't use Aperture, I will be sorry to see it go.

<comment><USER9> On the other hand, I will give credit to Adobe: since the transition to Creative Cloud and the new incremental release model I've felt that they've been _much_ more responsive to actual customer needs. From an outsider's perspective, getting to this point seems to have been a cultural shift that took a lot of work to get to -- and they've been getting a ton of positive response to it.

So I'm hopeful that Lightroom and the rest of the CC apps will continue to improve considerably because of culture rather than purely the goad of competition.

<comment><USER8> I'm not sure I agree with you - they released Lightroom 5 around the same time as the CC transition, and as far as I can tell they haven't updated it since beyond support for new cameras and bug fixes, which I would have expected for lightroom 5 anyway. The last major update I can find is over a year ago now. They have released Lightroom Mobile but thats all I am aware of.

I hope you are right though and that they do improve based on culture - but if lightroom is the only major option for a digital darkroom and photo management, and most of their customers are paying monthly anyway, I don't see them pushing new innovations.

<comment><USER10> I think Lightroom was already a bit of a cultural separation from Creative Suite. It's more like Creative Cloud is playing catchup with Lightroom's model, which was already fairly modern and nice.

I don't think the monthly model discourages innovation -- as a product person, more people using the new product is more motivating for the organization, not less.

<comment><USER11> > _I don 't think the monthly model discourages innovation -- as a product > person, more people using the new product is more motivating for the > organization, not less._

Well, "more people/more motivation" wasn't exactly the case with Quark. Or with lots of enterprise software companies having their customers by the balls.

<comment><USER12> Quark wasn't subscription and it fell down the "Who cares about OS X anyway" hole. Adobe saw that, and smashed indesign onto the market.

<comment><USER11> I'm not strickly talking about subscription vs no subscription.

I think the key distinction, which is common in Quark of old and Adobe's subscription model, is "having the customers by the balls".

And the problem I'm reffering to with Quark was not the "Who cares about OS X anyway". It was about arrogant and complacent company, not caring about its customers in general, even in the platforms it did support.

<comment><USER12> Adobe have picked up the pace massively since CC.

I'd call it the opposite of complacency. I work heavily in most of their products (the entire Adobe suite), and the amount of features they are releasing and the speed at which they are doing it, is amazing given their size.

If you focus on one product (like lightroom, which is a minor product at best) then sure, it doesn't look like much, but take a look at Edge, InDesign, Flash, etc, and there is a lot of improvements taking place.

How are they not caring?

<comment><USER11> > _Adobe have picked up the pace massively since CC._

Yes, but it's also the opening stage of this. They would risk a backlash if they started their CC-only period as complacent. After all CS6 still works atm.

A few years down the road though?

After all Quark was also innovating and caring at first.

<comment><USER10> I'm not seeing it. What I do see is an organizational change. I can't agree with the argument for the gloom and doom.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I really wish the Pixelmator guys will do a product in this category. They've already got the core engine, and they have a perfect 100% intersection with the Aperture userbase (Mac-only).

I for one would like to see a OSX-only photo editing suite. If it's anything like Pixelmator (no UI/UX compromises for the sake of cross-platform, insanely fast hardware-accelerated-everything) it'd be a real treat.

<comment><USER14> The amount of work required for software of this type that can reasonably compete with Lightroom is really massive.

Beyond the obvious editing features you've got colorspace handling issues that most image editors don't bother with (Pixelmator actually handles this fairly well already), the need for a very robust plugin system, non-destructive editing, cataloging features (including image stacks), and a huge amount of largely unnoticed work that goes into simply keeping up with RAW formats for new cameras as well as profiles (for automatic CA/distortion fixing) for new camera/lens combinations.

<comment><USER15> > a huge amount of largely unnoticed work that goes into simply keeping up > with RAW formats for new cameras

Could this be largely mitigated by only working with DNG files and letting Adobe handle the conversion? Their RAW->DNG converter is free after all.

<comment><USER16> Raw DNG is no more a standard for sensor data than MKV is a standard for video encoding.

In other words, raw (as opposed to linear) DNG is basically a container format for sensor data and related metadata. So even assuming Adobe's DNG converter perfectly supports your camera, you still need code to handle its underlying sensor data format (your Bayer demosaicing code won't be much help in processing data from, _e.g.,_ a Foveon sensor) and whatever mandatory image correction it requires ( _e.g.,_ many cameras and lenses rely on software correction driven by camera- or lens-supplied metadata, and will yield _heavily_ distorted images if this correction is skipped).

In other words, until camera development stagnates, raw processing is a moving target by its very nature.

With that said, AFAIK, Aperture uses public OS X APIs for raw support, so potential Aperture replacements on OS X can get up-to-date raw support "for free". Given that Photos will support camera raw, this announcement gives me no reason to believe Apple won't continue to add support for new cameras in future OS X updates. Which is not to say Apple will support as many cameras as Adobe, of course — I'm pretty sure they already don't — or that support for new high-end (think $20K+ medium-format, not Nikon DSLR) camera support will decline now that no first-party professional software requires it.

<comment><USER14> Yup, all true.

I think (generally speaking, for most people) that Linear DNG using the Adobe DNG conversion method asked about is probably sufficient, if inconvenient. Most people I know who shoot RAW do it for the high-bit-precision dynamic range and white balance adjustment capability, both of which Linear DNG preserves.

But there are very valid reasons not to want to settle for partial-baked DNGs. Personally I was converting my CR2s to DNGs at Lightroom import for a couple of years (since DNGs compress and take up much less disk space) but regretted that when Canon's DPP DLO got really useful and I was unable to easily get those DNGs back into DPP as RAW.

Now I'm a big fan of saving the actual camera RAW file as the 'digital negative' even if that means the files are bigger and the format is more likely to be 'obsolete' in the future (there will always be older versions of Adobe DNG converter and dcraw to use if that is ever a real issue for me).

</comment></comment></comment></comment></comment><comment><USER17> I have to imagine they'll do three things:

\- Feature/Adjustments parity with Aperture

\- Migration of 100% edits/metadata from Aperture/iPhoto

\- Photos Extensions on Mac

The third will be really exciting. It's already going to be awesome to have VSCOcam connected to the Photos library without having to create duplicate images; this on Mac will be terrific as well.

I am looking forward to moving off Lightroom! Seems very far out for Apple though.

<comment><USER18> just like Final Cut Pro X, right?

(can't tell if you're sarcastic, thought maybe not)

<comment><USER17> I wasn't being sarcastic, but with FCP's history I can see the skepticism.

I do think/hope it will be different. I feel like there are more signs pointing to "Photos" app as being superior to Aperture/iPhoto (which, yes, are totally the same thing really now) and Lightroom.

</comment></comment></comment><comment><USER19> Someone help an Adobe-acolyte out: about how far behind/apart was Aperture from either Photoshop or Lightroom in feature set? My impression (from reading Wikipedia and past announcements) was that it was closer to Lightroom in intended use?

I've recently seen a few articles about startups/business ideas in the mobile/consumer photo space pointing at the problem of users not having enough storage space for photos. I _guess_? My perception and personal experience has been that users don't have enough _ability_ to sort/filter the photos they already take. Digital/phone photography has allowed users to be voracious photographers...without a corresponding increase in being able to handle the information overload...it's already hard enough to pick the best photo among 5 - 10 takes, but a cognitive-chore to search through a flat-folder collection of thousands of photos with nothing more than a vague recollection of the photo's date...a wedding photographer once told me that by far, the best marketing tool he has is to produce a physical album of 50-100 photos, rather than just a PhotoDVD of thousands of photos. Theoretically, that DVD can be reproduced and sent around, and many more photos included for the client's enjoyment...but realistically, clients (and their relatives) don't find browsing through photo volumes on their OS default viewer to be engaging. Brevity in editing is important, but also, visitors to a client's living room can directly see and touch the physical photo album (and see who produced it), and that in itself is an effective marketing tool.

I guess this is a long way of saying that whatever the state of Aperture was, I hope Apple makes some innovations in photo sorting/filtering, rather than just trying to provide tools to beautify photos. I'd argue that Instagram's killer feature is how it _limits_ the user's ability to hoard photos...once you take a photo, you are pushed into publishing it...the photo filter is a way to make you feel less self-conscious about it. After taking 100 photos with Instagram, you have 100 photos to show off in a nice web album. If you take 100 photos with just your standard phone camera app, you have 100 photos waiting to be uploaded/downloaded to iCloud into a standard file system.

<comment><USER20> >My perception and personal experience has been that users don't have enough ability to sort/filter the photos they already take. Digital/phone photography has allowed users to be voracious photographers...without a corresponding increase in being able to handle the information overload...

I think that's fair. Presumably facial and other pattern recognition, together with the increasing prevalence of geo-encoding, will improve this to a certain degree. But I know that I'm not nearly as good as I wish I were at entering metadata into Lightroom today--and I'm probably better than most.

The one saving grace is that I do publish a subset of photos to Flickr through the jfriedl Flickr plug-in which has, as sort of a side effect, the characteristic of creating a sort of album of my better photos.

</comment></comment><comment><USER21> Do pros really want to store their photos "in the cloud"? I'm just an amateur and have ~500GB of photos. Uploading that much is almost impossible over a normal asymmetric home internet connection, and I imagine professional photographers must have multi-terabytes of data easily.

<comment><USER22> Not a chance. Takes too long to upload and download and the 'cloud' data usage and rights assignment stuff is pretty unclear. My father (a pro) has about 3TiB on a NAS and AIT backup.

<comment><USER23> Offsite backups are critical. What happens when wherever you're storing those nas drives / tapes gets flooded or destroyed?

<comment><USER22> Tapes are manually archived off site in a safe deposit box monthly. A month window is an acceptable loss.

Agree entirely. T'was an idiot company I worked for at the time that stored their backups in the basement of the World Trade Centre. Yes that worked out well...

</comment></comment></comment></comment><comment><USER24> I had to read this headline 3 or 4 times before I realized Transition wasn't an additional product being phased out.

<comment><USER25> Apple to Cease Development of Aperture, Transition Users to Photos for OS X

</comment></comment><comment><USER26> Makes sense really, I know people who do use Aperture but they're out numbered by Lightroom users by a fair margin. It'll be nice to see more advanced features being provide in Photos as well, to fit the gap between the advanced (Lightroom/Photoshop user) and the keen amateurs.

</comment><comment><USER27> Man, this just sucks. iPhoto (okay, they're killing that too, but "Photos" will be similar if not more limited) is weak, and Lightroom feels like a bad Java app. Aperture was fantastic, a true Mac app.

</comment><comment><USER28> It's clear they are putting everything into Photos and so this makes sense. Big question is what they do with all the edits/metadata/etc that people have invested in Aperture.

<comment><USER29> Aperture and iPhone seem to share a lot of data even if that data is not accessible from iPhoto. I would assume everything would still be available in Photos even if the UI isn't as advances.

</comment></comment><comment><USER30> Sometimes I feel as though I'm in a minuscule minority, as an avowed Mac user who gives a wide berth to any of their software. From the saga of FCP/X, to mail.app changing archive formats, to the auto-save/save-as clusterquack - I've long preferred finding niche vendors for my niche needs. I chose Lightroom at version 1 for exactly this reason.

<comment><USER31> +1 In the modern Apple era their applications, particularly the consumer or pro-sumer oriented ones, have tended to (1) not live up to their demos (2) and get constantly redesigned and yanked around. What made using a Mac a joy was the culture of quality espoused by third-party software vendors.

</comment></comment><comment><USER32> Unifying the integration with iCloud is okay, but that's really unfortunate. Apple kills a "pro" app while the "basic" apps lose features every new release.

If you compare iMovie and iPhoto '09 to the latest ones it's a downgrade from every angle. Even GarageBand lost features, you could use plugins before.

I'm afraid they will "transition" users to Photos in the sense they will let you import your Aperture library, and that's it. The app will have 50% of the editing features, because that's what happens everytime a company promises a new version written from the ground-up.

<comment><USER33> Look at what happened with FCP, though. They released a new version, missing lots of features, and then future releases restored functionality.

When you're doing a ground-up rewrite, it makes sense to get the basics working first.

<comment><USER34> However they radically changed the way the workflow works in ways that some (many?) users cant adapt to. I don't do much any more since I shuttered my production side business, but I can't use the current FCP. It's still (and will always be) missing some do-or-die features for me. The Apple Pro App that I really use though is Logic, and, please Apple--do not "improve" it.

<comment><USER35> What do-or-die features are missing for you?

<comment><USER34> For me, batch log and capture from tape. FCPX no longer has any tape support.

</comment></comment></comment></comment></comment><comment><USER36> I used Aperture for a long time, and last year moved to Lightroom. Aperture has been effectively dead for awhile and this news is just confirmation.

<comment><USER37> I'm a fairly happy aperture user but have been thinking about moving for a while since practically everybody uses Lightroom. How did you find the transition?

<comment><USER36> Not too bad. I spent a weekend figuring out the different workflow and then some time learning the LR adjustments. The part that took the most time was unlearning/relearning the different hot keys for basic operations.

</comment></comment></comment><comment><USER38> A weird thing to think about: Instagram is, by most metrics, the world's most successful photo editing software.

<comment><USER39> Not really that weird. Fast food is, by most metrics, far more popular than Michelin star restaurants. Doesn't mean it replaces them.

<comment><USER40> McDonalds is probably making more money for its shareholders than The French Laundry, however.

<comment><USER34> And when I'm looking for a nice dinner, I'm definitely considering the value the restaurant provide to its shareholders in my decision.

<comment><USER40> I'm just talking about the incentives as to which type of restaurant to open, or more generally, which set of tastes to cater to. Do labors of love scale? No. Does it make sense to start a business that doesn't scale? I have no idea.

</comment></comment></comment></comment></comment><comment><USER41> It seems to have been confirmed (as Techcrunch reasonably speculated) that development will cease on iPhoto as well. [http://www.loopinsight.com/2014/06/27/apple-stops- developmen...](http://www.loopinsight.com/2014/06/27/apple-stops-development- of-aperture/)

<comment><USER42> The Photos app looks like they are rebranding iPhoto, not "ceasing" anything.

<comment><USER43> This seems logical, especially in light of the Aperture news, but I'm not so sure -- all references to the new Photos app, including the demo at WWDC, refer to it as a viewer for your iCloud-stored photos. It's possible that instead of cloud storage being an option added to iPhoto, it is being re- designed as the primary use case, with your Mac as just another iPad-like device that may occasionally cache some local copies of photos as needed. I understand that from a practical point of view in 2014, but I think I'm philosophically against it.

</comment></comment></comment><comment><USER44> I think most people kind of knew that Aperture was not going to be updated, it's been on life support for a while now. I prefer the editing tools of Lightroom, but I prefer the Aperture way of organizing photos. Oh well, can't have everything I suppose.

</comment><comment><USER45> I really hope thet will allow for (optional) manual control of where jpeg files are stored regarding the file system. The opaque "photo library" thing was really inflexible especially as the size eventually outgrows the internal SSD drives.

<comment><USER37> Aperture has a pretty nice method where you can save photos in the library or in a separate location. You can also have multiple libraries (which are basically just packages and you can go in and access the jpg and raw files as well)

I'm kinda bummed, I have been a pretty happy Aperture user for a while even though I know most people use Lightroom. Not exactly sure what I'm going to do now.

<comment><USER45> I tried it once and it was pretty horrible, the folder structure on disk didn't stay in sync with the aperture library. Moving or renaming photos or folders in one stop didn't update the other spot, so when you thought you had organized stuff physically, only the aperture library links updated or vice versa.

</comment></comment></comment><comment><USER46> This is unfortunate. I hope someone is working on a competitive software offering.

<comment><USER47> I'm surprised that nobody has mentioned DarkTable yet. I guess more HNers just use the default Apple programs than I thought. I didn't realize anyone would even miss Aperture.

<comment><USER48> I didn't know that they had finally gotten an OSX native (meaning not requiring X11) version out.

Now I will try Darktable on OSX.

</comment></comment></comment><comment><USER49> I wonder how I would have felt had I bought Aperture a couple of weeks ago. Sure, 69€ isn't much, but knowing that those were basically thrown away would have been bad nonetheless.

Thankfully, I resisted the urge.

</comment><comment><USER50> People who are about to have the rug pulled out from under them might want to check out Digikam. Version 4 was released in May.

</comment><comment><USER51> Apple needs to allow iPhoto (Photo.app now) to import Aperture libraries then-I have a huge collection of photos in an Aperture library (I no longer have access to Aperture so I can't export the library).

<comment><USER52> My understanding is that iPhoto and Aperture now share the same library format in the latest versions, so you should be able to open your Aperture library in iPhoto right now.

</comment></comment><comment><USER53> Alternatives:

Capture One Pro Various ACDSee apps DxO Paint Shop Pro

</comment><comment><USER54> I guess I'm installing Lightroom now

</comment><comment><USER55> I don't use Aperture, but I think it's really unfortunate that the standard practice for companies like Apple is to simply drop a product entirely rather than open-sourcing it.

<comment><USER3> I do use Aperture every day, and I'm happy Apple isn't open sourcing it. I want all energy/attention/testing/use to go against their next platform, and not be fractured.

<comment><USER55> And what if their next platform is insufficient for your needs? Then perhaps you'll wish you still had Aperture as an option, but it'll be an obsolete application with no chance of revival.

<comment><USER50> Why are people downvoting your comments? Is there a pro-Apple, anti-FOSS element here?

The more time I spend on web sites with voting, the more I think upvoting should be the only option.

<comment><USER55> Honestly, I have no idea. Once you've spent a bit of time on HN, you realize it's no better than reddit when it comes to voting.</comment></comment></comment></comment></comment>


Germany to reintroduce military rabbis for the first time since 1930s - <AUTHOR> https://edition.cnn.com/2020/05/29/europe/germany-military-rabbis-grm-intl/index.html <comment><USER2> Does Germany have positions for religious priests from other religions? I can understand the sentimental and symbolic aspect of this reintroduction but do they already have or will they hire priests from every religion?

<comment><AUTHOR> Christian priests have always been there (both Catholic and Protestant). No other religions are planned, and many MPs are very decidedly against opening this to Islam.</comment></comment>


Show HN: Shooting pose analysis and basketball shot detection - <AUTHOR> https://github.com/chonyy/AI-basketball-analysis <comment><USER2> This is against the OpenPose license, which strictly disallows the use of it for sports if anyone uses it for commercial purposes. I'd take this down or at least note it. They're known for being extremely litigious. It's not clear why this carveout exists but it's likely they licensed it to an NBA team or a provider for basketball (not going to get into how I know this).

From their non-commercial licensing page:

"The non-exclusive commercial license cannot be used in the field of Sports. ("Sports" shall mean any and all athletic competition between individuals, groups of individuals or teams.)"

[https://cmu.flintbox.com/#technologies/b820c21d-8443-4aa2-a4...](https://cmu.flintbox.com/#technologies/b820c21d-8443-4aa2-a49f-8919d93a8740)

<comment><USER3> It's definitely riding the edge of their license, but I don't see any content indicating "competition". While this could be used for an athletic competition, the author is only using it for personal, non competitive use on his GitHub. Best to be careful, make it clear it's not being used in competitive sports.

<comment><AUTHOR> Sure, thanks for checking it for me. I would add some extra information to my README. Telling that this project is only for noncommercial research use only.

It's kinda weird that the LICENSE in CMU's OpenPose repo didn't indicate anything about sport or competition.

</comment></comment></comment><comment><AUTHOR> Hi guys, I know some of you may have already seen this project. I have made some big updates and add some interesting new features. I wanna share it with you guys and once again ask for more feedback.

The original feature of this project is only shot analysis, it could trace the basketball shot and determine whether it's a score or miss. And now, it has a brand new feature! It's capable of analyzing the shooting pose. Besides displaying the angle of elbow and knee on every frame, it will also show the average pose analysis of each shot attempt. Release angle and release time are also included!

1\. I implemented OpenPose to analyze the shooting pose. The angle of elbow and knee is calculated with the data collected by OpenPose.

2\. The original shot analysis has a big problem which is that it would misdetect a head as a ball, and that will really mess up my algorithm. I solve this problem by avoiding the detections near the head coordinate collected from OpenPose.

3\. The shot release angle is calculated with the first two detection points of the shot analysis.

4\. Please note that there will be a relatively big error for the release time since it was calculated as the total time when the ball is in hand for each shot. I would be glad if anyone has a suggestion to solve this problem.

Please feel free to check out the README on GitHub page for more detail.

BTW, I would like to add more and more features. Please feel free to suggest what more analytics you would like to see on this project! I'm currently doing research on YOLOv4. I think it will significantly improve the efficiency of this project.

<comment><USER4> Neat! To be frank, I don't care about basketball in the slightest, but I do want to be able to use this to analyze my yoga poses and make suggestions about how I can improve my form.</comment></comment>


Show HN: How to steal SSH Key Passphrases - <AUTHOR> https://insinger.me/posts/2019/06/susssh-passphrase-phishing-via-the-ssh-prompt/ <comment><USER2> I've always wondered about this, but never had the time to actually investigate if this is possible. What's the best way to protect oneself against this sort of "attack"?</comment>


Ask HN: Do you use feature flags? What's the best tool for the job? - <AUTHOR> I'm currently evaluating tools to add feature flags to my application at work. Looking for open-source or SaaS tools you folks have used or are currently using. <comment><USER2> Hi, I'm a Developer Advocate at LaunchDarkly: [https://launchdarkly.com/](https://launchdarkly.com/)

Obviously I'd like you to use our service, but I'd rather that you find the one that best suits your business needs. There are plenty of good open source feature management systems out there. Just - whatever you do - don't fool yourself into building your own. Your time's worth more than that.

If you want a deeper argument, I wrote it up here, along with some examples of good open source systems: [https://launchdarkly.com/blog/feature-management- platform-bu...](https://launchdarkly.com/blog/feature-management-platform- build-or-buy/)

</comment><comment> kyle-ssg I think something to note on this as I already see this in the comments. There's always the suggestion of "Yeah that's easy we could do that".

To this I'd say it totally depends on the usecase, I've seen 10s of tech teams build this badly and end up causing more harm than good, some even just static config files that require a build to change which totally defeats the point.

I think looking for an open source tool is great, to this I'd say consider the following :

\- Before anything else, you'd definitely want the ability to turn the flags off per environment (dev/prod etc) without having to deploy code.

\- Do you want to control who can manage features? Quite often you'd want to enable non-tech people to manage / test features.

\- How scalable does it need to be? Some people might want to just not have to worry about serving thousands or millions of flags.

\- Do you want to serve flags based on users or maybe even groups of users? I've seen attempts at this but then you start having to worry about setting traits and building some sort of rules engine.

</comment><comment><USER3> I've worked with Split.io at a client, they had libraries for our frontend and our backends. Their interface was also neat and would allow you to separate out your feature flags per environment, per user or user group, or through any other custom condition. They'd also provide statistics for A/B testing, but I never got that far with them to try it out.

Theirs was dynamic in that you could change the rules and at a given interval the connected user's app would refresh and react accordingly. It was pretty complex, I suppose, but I'd roll out my own and go to something like them if I had a lot more conditions or targets.

</comment><comment><USER4> If you mean global feature flags, use the config file built into virtually every single webframework and and an if statement.

It's really not complicated.

Some webframeworks require an app restart for config file changes to be detected, or restart the app automatically when it detects changes to the file, so I've seen people use databases. But it tends to be an overcomplication and it's usually turned out to be a bit of a pita. It's only worth it if you're regulalrly turning the feature on and off.

Many languages also support build flags, which strips the extra code out completely, but it's an obscure feature, unless you write libraries, that can confuse other programmers.

<comment><USER2> (I'm a Developer Advocate for LaunchDarkly.)

There's a huge amount of value in being able to flip a flag value and have the app react without a restart. The most basic scenario: being able to separate deploy from release. Deploy code with each major code change turned off; ensure the deploy's gone well, then turn the changes on one at a time (or whenever the feature is meant to go live). Not only does it make problem diagnosis much easier, but it means you don't need to rollback if one of them is buggy - just turn it off again.

But these are only feature flags in the simplest sense. Modern feature flag systems also allow targeting rules, which allow the flag to evaluate differently based on contextual attributes (e.g. something about the user). They also stream these rules to a simple local rule engine within the code so that evaluation isn't blocked on I/O. Then there's access control, experiments, multivariate flags...

</comment></comment><comment><USER5> I usually avoid using third-party FF enablement services. Maybe 5 years ago it made more sense to use them, but as of 2020 I can't find good reasons anymore. They don't solve the right problem. Rolling your own FF enablement solution is cheap nowadays, it's much less hassle, much more robust, adjusted to your needs, and it's more privacy friendly.

KISS, you most likely don't need to use an external feature flag "hadron collider".

</comment><comment><USER6> Like me who didn't know about feature flags it is described here. [1]

[1] [https://www.martinfowler.com/articles/feature- toggles.html](https://www.martinfowler.com/articles/feature-toggles.html)

</comment><comment><USER7> Should you use a tool at all? One code file with the flags, and a small piece of router middleware that allows the URL to override the value of flags, and then just if statements. This has served me well on the past 3 frontend projects I have built.

<comment><USER8> So the URL can turn on different features?

<comment><USER7> Yes, using #feature:name=value. This makes it easy to share a URL to someone who wants to test a not yet enabled feature

</comment></comment></comment><comment><USER9> This isn't a huge ordeal to DIY. A database table with some fields (name, on/off, dates) and a module to call that checks the db. A simple UI/API to CRUD those rows.

If it's a SaaS, how does your app function if the SaaS is unavailable?

<comment><USER10> I've never used a full blown whiz-bang solution for feature flags, but when I stared at the launch darkly API one day it seemed as if:

* feature flags were generalised as certain class of functions that made an on/off decision based on certain inputs, and the definition of these functions could be sent from the server to client services that had integrated the feature flag library. Functions could be refined at runtime etc -- generalised notion of toggling a toggle.

* there appeared to be capability for services to maintain local cache of the feature flag / expression rules so it didn't introduce a hard failure point on external service. Functions uses to make toggling decisions could be evaluated with inputs locally.

Take this with several grains of salt, never used it, I might be misremembering and it might not actually work this way

<comment><USER2> (I'm a Developer Advocate for LaunchDarkly.)

Both of these are true. See also my reply to the parent comment - you don't even need a local cache, since all flag evaluation calls should include a fallback value.

</comment></comment></comment><comment><USER11> We recently open sourced our platform, Bullet Train.

[https://github.com/BulletTrainHQ](https://github.com/BulletTrainHQ)

We'd love feedback!

</comment><comment><USER12> I typically roll my own. Never had an issue. The flexibility is nice especially if you get into very granular feature flags.</comment>


Everything in C Is a Pointer - <AUTHOR> https://gist.github.com/nicknapoli82/30f1c7b30e7b1561026d88655e5278f7 <comment><USER2> Remembered old university days when I was learning C/C++. By that time I felt like a hacker.

Right now I'm making sites with HTML :)</comment>


Allocators in Rust - <AUTHOR> http://smallcultfollowing.com/babysteps/blog/2014/11/14/allocators-in-rust/ <comment><USER2> (Please note this is 2014, aka, "before Rust 1.0", and so doesn't really describe the state of the world. The section "a hybrid scheme" is the closest to what the state of things are now.)</comment>


Basic Cryptography Concepts for Developers - <AUTHOR> https://paragonie.com/blog/2015/08/you-wouldnt-base64-a-password-cryptography-decoded <comment><USER2> I once saw a production site that stored the password in plaintext, and then ran base64(base64()) on the result and sent that in a cookie. It still gives me nightmares sometimes. That's what I consider to be criminal incompetence.

<comment><USER3> I would love to know why the programmer thought the second base64 would help.

"No one would ever expect the data to be base64-encoded _twice_! Mwa ha!"

<comment><USER4> Probably. "Looks like gibberish. Base 64 decode it. Still looks like gibberish. Must be random bytes." Never mind that random bytes are not likely to all be ascii letters and numbers.

<comment><USER5> Random ascii letters and numbers are just as good as random bytes.

<comment><USER6> Sort of.

There's less entropy per character if you know it will always be alphanumeric versus a string that of random bytes.

If you take 32 bytes from /dev/urandom and base64 encode it, it has the same entropy as the original binary string (unless you use it in a way that will result in it being truncated).

But the total entropy of the two strings is unchanged. One is just longer.

In short: You're correct, but with nuance that bears stating explicitly.

</comment></comment></comment></comment></comment><comment><USER7> > "Furthermore, don't confuse password hashing algorithms with simple > cryptographic hash functions. They're not the same thing:"

"Password hashing algorithms" should probably be replaced with "key derivation functions" \- which makes it clearer what they are, and makes further reading (by the reader) into KDFs easier.

<comment><USER8> For Password Hashing Competition ([https://password- hashing.net/](https://password-hashing.net/)) we tried to come up with a better term, which describes both password-based KDF and password hashing for server storage, but couldn't, so it's been decided to keep calling those things "password hashes".

\- "KDF" says nothing about passwords (e.g. see HKDF) and,

\- "PBKDF" (password-based KDF) says nothing about password verifier, such as for server storage (e.g. bcrypt doesn't produce a "key"), plus already taken by specific algorithms,

\- "password hash" sounds good for both key derivation and verifier, but makes it easy to confuse with normal hashes.

</comment></comment><comment><USER9> Great article for a basic primer, but anyone who is actually developing cryptography needs to hit a few more books - short articles like this are great because they make it simple, but that can often lead to the perception that a dev understands everything they need to, which leads to broken crypto in production and tears.

<comment><USER10> Reading Ross Anderson's "Security Engineering" is probably a good idea. It covers security as a system, instead of concentrating just on encryption.

PDF of the first and second editions available at [ [https://www.cl.cam.ac.uk/~rja14/book.html](https://www.cl.cam.ac.uk/~rja14/book.html) ]

<comment><USER11> Security engineering is a great book. I learned a lot about systems (as opposed to software) from the first edition. Definitely worth a read for getting the 'security mindset'. Techniques can be picked up according to the needs of the job (and should be!)

</comment></comment></comment><comment><USER12> I really don't like to see code examples with all the

      /* Don't ever really do this */

comments. Why not show the correct way to do it?

It's not any more clear to see an example of how NOT to do something. And yes, despite all the comments, someone will copy and paste that into their program, remove the comments, and then never really properly update the code.

<comment><USER6> Doing things the right way is not very illustrative. This isn't meant to teach developers how to reinvent NaCl in $langOfChoice, it's meant to instill an understanding of the vocabulary.

If nothing else, it aims to put to rest stupid phrases like "password encryption".

If people copy&paste despite all the warnings, they're beyond the help of any blog post.

EDIT: In the spirit of being more helpful, I've added links to more complete sample code (on StackOverflow) and made the warnings less obnoxious.

<comment><USER13> In that case they should just leave out the examples entirely. If the code runs, someone in the world WILL copy & paste it into their project and walk away, no matter if it's marked as insecure or not, which just perpetuates the problems that the post is trying to deal with.

Also I'm not sure "password hashing" is any more descriptive than "password encryption."

<comment><USER6> > In that case they should just leave out the examples entirely.

I'll consider it.

> Also I'm not sure "password hashing" is any more descriptive than "password > encryption."

It absolutely is. Encryption is a two-way transformation of data. It is, by design, reversible.

Hashing is one-way.

Password hashing is a special case of hashing where you want it to be computationally expensive (even with special hardware at your disposal) to attack, but still perform well enough to interact with.

Password encryption implies that a two-way transformation has taken place, and given the key, you should be able to reverse it. This is _not_ within the scope of the requirements for secure password storage.

</comment></comment></comment></comment><comment><USER14> Funny thing is I did BASE64 a password. Sort of. I used to run strong passwords + random stuff on paper through SHA-2 with result encoded in BASE64. Optionally an extra iteration or two for SHA-2. Used BASE64 because it fit the max number of characters for TrueCrypt passwords: my use case for this method. Had a tool to make this easier.

Idea was to obfuscate a strong password to make cracking more difficult. Plus, it was relatively easy to implement on arbitrary computers. These days I just memorize them or write them on paper.

<comment><AUTHOR> If you use bcrypt (which we recommend), you're technically using a variant of BASE64 too.

The title is a reference to a meme ("You wouldn't download a car!") and also a reference to some absurdly bad cryptography, e.g. [http://www.cryptofails.com/post/87697461507/46esab-high- qual...](http://www.cryptofails.com/post/87697461507/46esab-high-quality- cryptography-direct-from)

</comment></comment><comment><USER15> I don't quite understand the point concerning executable downloads and comparing hashes. Yes, comparing a hash found on a file downloaded from mozilla.com and a hash also on mozilla.com is stupid. However comparing a hash on mozilla.com and a download/torrent from an untrusted source seems to be valid and useful. The only attack vector in that case is at mozilla.com and not the download source.

<comment><USER6> > I don't quite understand the point concerning executable downloads and > comparing hashes.

Downloading a file from Server A and checking the hash delivered by Server A is security theater. In this case, only a digital signature (with a pre- established public key that you already trust) can really stop the server from being compromised (or malicious).

Downloading a file/torrent from Server B and verifying the hash delivered by Server A is a different situation entirely, and that boils down to a trust decision. Do you trust Server A to not be compromised? Do you trust them to not be malicious or in cahoots with Server B? If not, at the very least it's probably a larger attack service than the previous scenario. (Trusting the public key for the digital signature is also a trust decision. Only the details are different.)

Basically: If you're going to do anything at all, verifying hashes from the same source is a waste of CPU and human effort.

I hope that helps at all.

<comment><USER3> You made exactly the same point as the post you are replying to, you just used more words.

<comment><USER6> I wasn't really trying to argue, they said they didn't understand the point.

<comment><USER16> Re-read their post. I think you probably didn't understand _their_ point. :)

<comment><USER6> That's certainly possible. I'm not seeing what I missed. Maybe if I sleep on it, it will be clearer?</comment></comment></comment></comment></comment></comment>


Sunnytrail - get notified when influential people buy your products or service - <AUTHOR> http://www.thesunnytrail.com

<comment><USER2> Congratulations on the launch! I think the concept is great, but your site is pretty bare. I would suggest adding more info to get people through the conversion funnel. How it works, case studies, who the influential people are, etc.

<comment><USER3> Most probably they will add that once they get the initial feedback.

</comment></comment><comment><USER4> I tried Sunnytrail about 6mths ago. At that time it appeared to be focussed on funnel and cohort analysis (the latter being why I checked it as at the time neither MixPanel nor Kissmetrics had it).

So this looks like a bit of a pivot?

This seems to be a "feature" existing in other products such as intercom. Not sure I'd want _another_ user tracker just for this purpose.

<comment><USER5> This is just the beginning. You can follow us to see further development.

</comment></comment><comment><USER6> I actually found it pretty easy to understand, but it wasn't clear that it was the Klout score. I half thought you mined a ton of celeb emails and were checking them against what I send.

This is awesome though! Great idea! I'm already up and using it!

</comment><comment><AUTHOR> The service was just launched and is looking for feedback.

<comment><USER7> Can you explain how this works? I couldn't find any info on your page.

<comment><USER5> You have to put a javascript on your registration page and then you see all your new signups in a realtime dashboard with added social context, like the screenshot on the home page. You also get email alerts whenever someone who is really influential signs up.

There is also the option of calling a REST api to send us new signups.

<comment><USER8> How do you tell who is influential? How can you map email addresses to Twitter accounts, or other social media accounts? Most influential people don't really share it to the public.

Anyway, I know this site was just put up to garner demand, and you probably haven't implemented anything. If this really works, I'd be willing to pay say $30/month for it.

<comment><USER5> We're using Klout to determine influence.

It works, you can go ahead and give it a try. After registration, you will be redirected to a friendly integration wizard.

</comment></comment></comment></comment></comment><comment><USER9> The chat feature is pretty sweet for a new service. That's a nice job on the part of the founders doing the extra work to help people out. Nice job guys, and good luck!

<comment><USER10> Yeah I thought it was, I ended up at SnapEngage because of it and It seems like a great customer service tool. Definitely seems like something I would love to have when we go live. Customers first!

</comment></comment><comment><USER11> Do you really need to use CAPTCHA? It increases the bounce rate needlessly in most cases.

</comment><comment><USER10> Interesting. Is this opt in on their part or are you doing some form of online stalking? I'm curious how it works the site has a very clean design. Good job.

<comment><USER12> I'm curious as to how it defines identity. If handled through email or domain, I'm sure many influencers have non-public spam-catcher gmails; if done by name alone, there will be false positives due to matching names or pranks.

If I met the threshold for an influential person, this would probably make me more than a little uncomfortable, and I'd start signing up to services with fake info.

<comment><USER5> It's through email.

If you use a fake email to signup, then you probably aren't that interested in that service. We curate signups, so that only the relevant ones are displayed on the Sunnytrail dashboard.

If there's no info about an email address, then we display info about the domain.

<comment><USER13> It's not really clear when you're providing the e-mail address that it's going to be used as an index for you later. That might need to be better stated.</comment></comment></comment></comment>


Show HN: Subgraph OS, the secure os - <AUTHOR> https://subgraph.com/sgos/graph/index.en.html <comment><USER2> Trying to achieve Qubes OS concepts with containers is a very hard task. Wondering how this can be achieved. Do they provide any paper or detailed view of the implementation?

Some questions:

      - Do they provide their own implementation of containers or
        rely on some already existing (docker, rkt, etc)?
      - How containers communicate? what protocol?
      - How filesystem is handled? Containers have volumes for file system sharing?
      - What's the plan for devices management? How my USB
        pendrive, speaker or webcam is available inside a
        container?

<comment><USER3> Sandbox implementation is described here:

[https://github.com/subgraph/oz/wiki/Oz-Technical- Details](https://github.com/subgraph/oz/wiki/Oz-Technical-Details)

<comment><USER2> I really liked the architecture, but I don't think container is a good name for the kind of isolation it has. For the machinery work as expected, the namespaced application must follow the Oz-rules/policies. Container nowadays are complete environments, everyone with different rootfs and so, very different of the kind of container required in subgraph. It can lead to misinterpretation, because I cannot reuse existent distros/rootfs and package managers to run other applications in subgraph. As I've understood, subgraph only bind-mount the common directories from host to the namespace mount point of process on top of a tmpfs. Hard to reuse an ubuntu app.

How persistent data will be managed isn't detailed in the document.

Seccomp-bfp is a good enhancement. It can really fix the well know security issue of docker when using volumes with write permissions.

Still wondering what's the plan for persistent data. If someone has more info, please share :)

</comment></comment></comment><comment><USER4> Nice diagram, very pretty.

It's a bit less ambitious than it sounds, though, as it's not really a different operating system (such as sel4) but a Linux distribution with armouring, secure defaults, Tor, and some useful userland software. Running the PDF viewer in secure isolation is a nice touch.

It says that higher-level languages are preferred for the userland software but doesn't say which language?</comment>


Ask HN: How to block proxies like hotspot shield? - <AUTHOR>

Is there any way to block them thats public? I know hulu managed to do it, but I wonder if they just collected a massive list of IP addresses and blocked them all. <comment><USER2> You'll never block them all, so unless there is a _really_ good reason (such as your lawyer tells you to, like Pandora) - don't. Proxy server does not equal evil.

If you don't care about blocking all proxies, just the ones most people would use, you could do two things:

\- Google "proxy list". See what comes up. Now write a script that blocks these IPs automatically.

\- Look for headers such as "X-Forwarded-For" in your requests. The problem with this is that you will be blocking legitimate proxies that advertise their presence. This is _not_ a good idea. Many people (for example, on corporate networks) rely on a proxy to get their web access.

Again, you will never block all proxies, out-of-country logins, or whatever else you are trying to defeat. Tor and SSH tunnels immediately come to mind as the first things to try to defeat your proxy filter. I'm sure there are lots more.</comment>


Soylent Dick (SFW) - <AUTHOR> http://nicole.pizza/soylent-dick/? <comment><USER2> Great writeup...not sure if most people would agree that it is SFW though. A link to the Github account might be more palatable (which contains the Node code "to run a server that allowed for serial communication between the browser and Arduino)" because it at least looks more like a work page, for the many readers who are devs...

[https://github.com/nicolehe/soylent- dick](https://github.com/nicolehe/soylent-dick)</comment>


Sketchpad - Adobe Illustrator circa 1963 - <AUTHOR> http://www.swiss-miss.com/2009/08/illustrator-circa-1963.html

<comment><AUTHOR> From the video: "I once asked Ivan Sutherland, 'How could you possibly have done the first interactive graphics program, the first non-procedural programming language, and the first object oriented software system in one year.' And he said, 'I didn't know it was hard.' "</comment>


Comex @ github: "the code behind the second incarnation of jailbreakme.com" - <AUTHOR> http://github.com/comex/star

<comment><AUTHOR> Uh. Time to patch.

The code in cff/ generates the poisoned PDF. CFF is Compact Font Format; here's the spec:

<http://www.adobe.com/devnet/font/pdfs/5176.CFF.pdf>

</comment><comment><USER2> Great to see this going for many reasons. It makes programmers security-aware.</comment>


4 Reasons to Keep a Work Diary - <AUTHOR> http://blogs.hbr.org/cs/2011/04/four_reasons_to_keep_a_work_di.html?cm_sp=most_widget-_-default-_-Four%20Reasons%20to%20Keep%20a%20Work%20Diary

<comment><USER2> > _Although it can seem that I'm making only baby steps of progress — and, > yes, sometimes going sideways or even backwards before moving forward — my > journal is an independent arbiter (and a silent cheerleader)._

Yep. That's now the most part why I am blogging.

The line about going sideways is also quite resonant to me. I found that I work in circles, making progress in places I consider most important now.</comment>


Why the Media Fixation on "Transit Is Failing" Stories? - <AUTHOR> http://humantransit.org/2016/04/why-the-media-fixation-on-transit-is-failing-stories.html <comment><USER2> People love to hate public transit, and will click on any headline that promises to fuel their sentiment.

In particular, people who commute using single-occupancy vehicles are happy to read anything which externalizes and validates their views about the viability of transit.

<comment><USER3> Can't you just use the same logic to make the opposite point?

"In particular, people who commute using public transit are happy to read anything which externalizes and validates their views about the viability of single-occupancy vehicles."

In general, it's not constructive to make arguments based on questioning the motivations of people you disagree with. I try to always assume rationality and good faith on the part of everyone, even when they appear to be brainwashed or just plain crazy from a distance. Trying to figure out why people might be irrationally disagreeing with you is a lot less useful than trying to figure out why people are rationally disagreeing with you, even when they are being irrational (because aren't we all, in one way or another?).

<comment><USER4> I don't know, with that kind of thinking your inevitably going to question your own rationale for believing what you do. And who knows where that could go.

</comment></comment></comment><comment><USER5> I think the reason has to do with the perception that ridership should be rapidly increasing and it isn't. Population is up, urbanization, is up, but public transit isn't keeping pace. That's an interesting story because it is non-obvious. I don't think there much else to the media fixation than that.

<comment><USER6> Building good rail transit infrastructure takes a pretty long time, and it's very expensive. You can also have good bus service, but having it competitive with driving usually requires bus-only lanes, and that's a difficult proposition in America. If you look at Seattle, for example, people there are desperate for new transit, and they want it done as soon as possible, but the timelines for the upcoming ST3 package have most of it taking upwards of a couple decades to complete.

For most Americans, getting around means driving, and other modes are seen as either impractical (walking), a toy (biking), or just for the poor (transit). It's a relatively difficult culture in which to improve alternative modes of transport.

<comment><USER7> _For most Americans, getting around means driving, and other modes are seen as either impractical (walking), a toy (biking), or just for the poor (transit). It 's a relatively difficult culture in which to improve alternative modes of transport._

Self-driving cars will go a long way towards improving this. The focus needs to be on avoiding silly mistakes in the meantime, like sinking billions of dollars into new fixed-rail transit routes that will be obsolete the day they enter service.

<comment><USER8> Self-driving is also a long way off in terms of the entire fleet. Poor people aren't driving new teslas. Even if every new car sold is non-human drivable, it will take a couple decades before the entire fleet is wholly autodrive. It would also be naïve to assume that any future tech will dominate the market when there isn't even a product yet in the market. City planners cannot take autodrive for granted.

(imho it won't ever happen. People like driving cars, but that is a different debate)

<comment><USER7> _Even if every new car sold is non-human drivable, it will take a couple decades before the entire fleet is wholly autodrive._

Coincidentally, that's about how long a typical urban rail transit project takes these days. Here in the Seattle area, we're looking at a 30+ year timeline for light rail construction. In military parlance this is known as "fighting the last war."

 _It would also be naïve to assume that any future tech will dominate the market when there isn 't even a product yet in the market. City planners cannot take autodrive for granted. (imho it won't ever happen. People like driving cars, but that is a different debate)_

I like to drive, too, and I spend an unreasonable proportion of my own money on cool cars. But the fact is that self-driving tech will turn driving into a hobby rather than a necessity. Right now, our "hobby" kills about 30,000 people per year in the US alone.

The transition away from human drivers will look like an example of punctuated equilibrium. It may seem like little progress is being made, but we'll all wake up one morning and discover that the status quo has become impossible to justify. Life (and death) on the roads will change faster than almost anyone can imagine.

 _Poor people aren 't driving new teslas._

Not a problem, because the idea that everybody has to own one or two cars to be a full-fledged adult is going to become obsolete at around the same time.

</comment></comment></comment></comment></comment><comment><USER9> In Washington DC it has taken over ten years of crashes, worker and passenger fatalities, and awful service for the press to start telling "Metro is failing" stories. Up until then the stories generally were positive.

<comment><USER10> Out of curiosity - per day or week: how many people ride the DC Metro, how many people die on the Metro, how many people drive, and how many people die driving? Metro services have the same issue as airlines in that a non-issue failure rate ends up reviled in the news because there's the same name attached to every single incident and everybody is completely failing to group up the alternatives to examine them.

Bad service I can agree with - that's something that needs to be fixed. More money, supportive legislation that makes it easier for them to acquire capability, etcetera. But unless the Metro is killing someone _literally every day_ I doubt its fatality rate approaches cars.

<comment><USER9> Metro's problem is gross and chronic mismanagement. Not a single fatality or injury on Metro has been attributed to lack of money. So they do not need more money or legislation to make it easier for them to acquire anything. A common bogeyman among Metro apologists is "lack of dedicated funding," even though no one has shown any link between this lack of dedicated funding and any of the problems Metro is facing.

The airlines are an excellent example of how regulation and safety consciousness can succeed in creating an extremely safe means of transportation. Causes of mishaps are tracked down and fixed. Meanwhile Metro kills people due to gross mismanagement.

I do not think "more people die driving" is an excuse for gross mismanagement in a government agency.

</comment></comment></comment><comment><USER11> Public transit is a very visible part of government for people who live in cities that have it, and it's controversial because it's partially financed with taxpayer money whether you use it or not.

I feel like especially in southern California, there are a lot of people in the suburbs who don't use public transit and who feel like the money spent on transit ("moving poor people around") should go to road projects instead which benefit them.

I was recently in Miami, and my friend who lives there said to use Lyft instead of taking the bus or the metro, because "it's only used by poor people". I compare this to Boston, where people complain about MBTA crowds and management, but in general if you're near a subway stop you'll take the subway over Uber of Lyft (when it's running).

<comment><USER6> > it's controversial because it's partially financed with taxpayer money > whether you use it or not.

This is true of every form of transportation. It's just that motorists are frequently unaware of how their preferred mode is subsidized by the government.

<comment><USER12> Actual cash subsidies for roads are minimal relative to the economic benefit.

This is another way to say that you could eliminate all subsidies on road construction/maintenance, make everyone pay a sufficient per-mile tax, and the system would continue successfully more-or-less as it exists today

The same is not true of most public transit systems.

Now you can start arguing about implicit and explicit subsidies for suburbanization over the decades, but in the here-and-now, public transit is directly subsidized in a way that roads are not.

<comment><USER6> > Actual cash subsidies for roads are minimal relative to the economic > benefit.

Sure, but that's true of every mode of transportation, that's why we use taxes to also build sidewalks, light rail, bike lanes, etc. On an absolute level, subsidies for roads are still very large. And while some level of available roads is obviously necessary, we really overbuild to support our sprawly development style.

> This is another way to say that you could eliminate all subsidies on road > construction/maintenance, make everyone pay a sufficient per-mile tax, and > the system would continue successfully more-or-less as it exists today

Well, except that poor and working class people would probably not be able to use it much anymore. Paying for infrastructure via most taxes is inherently redestributive (exception for gas tax, obviously).

I'm actually generally for some more market-oriented policies around cars though. Congestion charges and parking fees are a great idea.

> The same is not true of most public transit systems.

I mean, the poor make up a larger % of transit riders, particularly in the US, so looking at it that way yes the impact would be larger.

> Now you can start arguing about implicit and explicit subsidies for > suburbanization over the decades, but in the here-and-now, public transit is > directly subsidized in a way that roads are not.

No, you're simply wrong. Road construction and maintenance is heavily subsidized by taxes other than the gas tax (which of course works more like a user fee).

<comment><USER12> _No, you 're simply wrong. Road construction and maintenance is heavily subsidized by taxes other than the gas tax (which of course works more like a user fee)._

You're missing the distinction I'm drawing: If all funding for all transportation schemes was entirely user-derived, roads would survive (as you admit in your other comment they do in Europe at much higher rates). Very few public transportation systems would.

If your definition for "subsidized" is "receives some amount of funding from general revenue, or forbearance for hard-to-capture externality", then just about every commercial aspect of our lives is "subsidized" in one way or another and the term fails to have much meaning.

<comment><USER6> > You're missing the distinction I'm drawing: If all funding for all > transportation schemes was entirely user-derived, roads would survive

That's very intellectually disingenuous. Whether one form of transport _could_ survive sans subsidy is orthogonal to whether they're receiving large public subsidies right now. You said

> public transit is directly subsidized in a way that roads are not.

which is flat out wrong. Yes, roads probably do not _have_ to be subsidized, and they'd still be around at least for freight transport and the affluent, but right now, they are still heavily subsidized.

</comment></comment></comment></comment></comment></comment><comment><USER13> Is it just me or does the type of chart used only make it harder to interpret things?

Why not plot actual numbers for population and ridership on a chart instead of % change relative to 2001? It seems deceptive.

</comment><comment><USER14> Maybe I need to take off my tin-foil hat - but I think this reads exactly as if somebody paid the newspaper to write a story about the "failure of mass transit", and the writers/editors snuck in this graph as a hidden message.

<comment><USER15> I'm interpreting that chart as tracking the year on year percentage increase/decrease of the population and ridership.

So the population has more or less been increasing year on year since 2005, with a near zero decline prior to that.

The ridership has gone through a steep decrease which bottomed out at -35% in ~2005. Sure it's been decreasing less, but isn't it still decreasing? The ridership line is flat near the end, but isn't it still decreasing at more than 20% year on year?

How else can the chart be read? How am I reading it wrong?

<comment><USER14> The chart label of "% change since 2001" is pretty unclear, but based on the quote "ridership...has dropped a staggering 23 percent since 2001", it seems to mean "% _difference_ from 2001", not "% change year-to-year, since 2001".

</comment></comment></comment><comment><USER16> It may have to do with for example, the VTA expanding service (in miles of track) but the ridership not going up to match. Also, rail in places like the bay area, or even buses, just can't justify the opex given the relatively light ridership. Mass transit is rarely profitable (financially self sustaining) but many transit systems, given housing density and commercial/residential patterns, in the US, are woefully in deficits.

Edit: To add, I mean this in terms of more than just the high density corridors and terminus to terminus lines. I mean if you live in Almaden Valley and want to get to East San Jose or you want to get to Milpitas. Or if you want to get from The Marina in SF to the Outer Sunset. Most SF transit is designed to pull people in and out of the old downtown core (even MUNI uses the terms "inbound" and outbound" which tell you a lot about the passenger flow they had in mind. There is no "ring" line or N-S LRVs in SF.

<comment><USER17> Public transit has huge positive externalities in terms of reduced traffic. I think that in Europe on average tickets cover only 25% of expenses.

<comment><USER16> It really depends. Many large metro systems in Asia do better than 100% farebox recovery. Europe hovers between 30 to 60%. In the US anything above 35% is pretty remarkable -and there are a few over 50% but not many. Most recover less than 30% from their boxfare. And that's mostly due to being too "diluted". You have lines in suburban-like areas who cannot sustain the lines via ridership.

I'm a fan of public transit I love punctual, clean, timely, dependable mass transit, but I realize it may not be the best answer for agglomerations like we have in San Mateo and Santa Clara counties in the Bay area or Dallas-Ft Worth, TX.

</comment></comment></comment><comment><USER18> I'm hoping the failure of transit leads into a 32-hour/4-day work week media fixation... Overnight 20% reduction in load = dramatically faster service and reduced congestion.

<comment><USER19> Plus basic income bitcoins as a service and uber, but for light rail. Am I right, guys?

</comment></comment><comment><USER20> It plays into the "ridesharing is the future" narrative that pulls in the big bucks.

<comment> xkcd-sucks Don't forget the self-driving cars!

</comment></comment><comment><USER21> Reminds me of Paul Graham's article about newspapers shilling for suit companies: [http://paulgraham.com/submarine.html](http://paulgraham.com/submarine.html)

</comment><comment><USER22> As a long-time rider, the VTA infrastructure is excellent, and the route coverage is good. It even has wifi.

In the short-term, if buses left and arrived on time, that would be a helpful improvement. Longer-term, ride analysis from Clipper data could optimize routes and frequencies.

When looking at farebox recovery numbers, remember that the bloated bureaucracy, driver salaries and pensions have to be paid from that.

Doubling the speed of the light rail would make it much more usable.

</comment><comment><USER23> I have zero evidence of this, but having witnessed Uber and Lyft spending over $8 million dollars trying to pass pro-ridesharing legislation here in Austin (which failed, thankfully), I can't help but wonder if these types of "Transit is Failing" stories might be their astroturfers/PR agencies at work.

Think about it: as a ridesharing company, the more you convince people that public transit is in bad shape and getting worse everyday, the more they will clamor for your ridesharing service.

<comment><USER24> > which failed, thankfully

Why are you opposed to Uber & Lyft?

<comment><USER25> OP implied he was opposed to the ride-sharing legislation and related initiatives. Not Uber and Lyft.

</comment></comment></comment><comment><USER26> This is California specific. Don't bother reading if you thought the title was about larger scale trends.

<comment><USER27> Please don't post any comments about how you live in Montana, then.

In the meantime, I thought that it was not merely an interesting article about a particular newspaper in a particular place, but an interesting observation about how to lie with graphs and what interests newspapers really serve.</comment></comment>


A command line refactoring tool for PHP - <AUTHOR> http://qafoo.com/blog/041_refactoring_browser.html?utm_source=hn&utm_medium=social&utm_campaign=refactoring <comment><USER4> Is this really needed? I get away with :%s/$abcd/$this->abcd/gc just fine.

When you leave vim and do this:

        $ php refactor.phar convert-local-to-instance-variable tests/FooServiceTest.php\
        6 dependency | patch -p1

I stay in vim and simply do this:

        :%s/$dependency/$this->dependency/gc

And hit y a couple of times.

Pros:

I dont need to install, trust and learn a new tool.

I dont have to worry if i broke somthing. Because of edge cases the tool did not handle or because I messed up the syntax.

<comment><AUTHOR> You picked the simplest refactoring, for converting local to instance variable I agree with you, this is easy in Vim.

But still there are some potential problems:

1\. The variable already exists in the class. 2\. You accidently mark to much or to few lines with ":<,>%"

For refactorings such as extract method the number of preconditions and information to gather is much bigger, such as input and output variables, existance of return statement etc.

We plan to integrate the tool into vim as well, so that you can call the refactorings through vim directly.

<comment><USER4> I did not pick anything. It is your example. Right from your page. And the only one you provide. If you have a better one: show us.

<comment><AUTHOR> The blog post shows extract method as well as a second refactoring

Edit: Also see the screenshot here for a more complex extract method refactoring: <http://qafoolabs.github.io/php-refactoring-browser/>

<comment><USER4> Ah, I missed the extract-method example.

Similarely to the convert-local-to-instance-variable example, to me it looks like overkill. I never had a problem, doing these things manually. But if you like doing it this way - I dont complain. To each his own.

<comment><USER5> I never had a problem doing things manually either. However, as soon as I can automate them, I do. If I can automate extract method to, in effect, a single keystroke, why not?

It's the difference between using hjkl for movement, and ignoring all the other commands vim as to offer. Why wouldn't want you to automate patterns in your work?

</comment></comment></comment></comment></comment></comment><comment><USER6> I have minimal exposure to PHP, but recently helped a friend out with a small project on the weekends, that someone else he knew had built. When I first saw the codebase I found a veritable mess of very unreadable unmaintainable code. No functions - no OOP of any kind - no separation of concerns - <USER2> reusable - SQL calls (probably vulnerable to injection) mixed with HTML - <USER3> hulking mess of spaghetti.

Can tools like these fix code like that, or at least help? It would have taken me about a day per page just to make it readable - and there were dozens of pages. I don't plan on going back into that minefield if I can help it, but it would be good to know in the future.

 _\--EDIT--_ Thanks for all the helpful replies. Luckily I'm pretty sure the project is behind me. Seeing that PHP reminded me of old bad ASP (pre .NET) - it was easy to get away with lots of really bad stuff (on error resume next anyone?). It makes me wonder if auto-refactoring spaghetti is a crackable problem. When I dared look I did see lots of things that I could have fixed with a little bash and sed, but of course I am human so I understand the 'intent' of the code. Fascinating stuff.

<comment><USER7> _Can tools like these fix code like that, or at least help?_

If you're working with PHP professionally, invest in PHPStorm. The time savings it brings - not to mention, the improved reliability - make it an instant win.

<comment><USER8> How is it better than Netbeans or Eclipse? I've been using mostly the former (after Zend Studio went AWOL). How does PHPStorm compare to those alternatives?

<comment><USER7> _How is it better than Netbeans or Eclipse?_

It's been a couple of years since I last looked at Netbeans/Eclipse, so take this with a grain of salt: PHPStorm _just works_.

The biggest issues I used to have were finding Netbeans very slow, and auto- complete in both Netbeans and Eclipse being somewhat unreliable - great when they worked, but that wasn't 100% of the time.

Essentially, PHPStorm is what I always wanted Netbeans/Eclipse to be.

As I say, though, it's been a long time since I last looked, and that's for a very good reason: at long last, I'm completely satisfied with my IDE.

<comment><USER8> Thanks, checking out their free trial now

<comment><USER9> PHPStorm is like the perfect gateway drug. I first became familiar with JetBrains products through PHPStorm, but have since upgraded to IntelliJ IDEA. IntelliJ IDEA is the perfect polyglot IDE, with support for the following either in-built or via plugin (and forgive me if I leave anything out, or add it in a reply):

\- Java

\- Scala

\- Clojure

\- Android

\- PHP

\- html/css/javascript

\- Python/Django

\- Ruby/Rails

\- Groovy/Grails

\- Actionscript/Flex

I'm a raving fan!

</comment></comment></comment></comment></comment></comment><comment><USER10> Yeah, but then you're still working in PHP.

I cannot state clearly enough, PHP will not help you. Neither in your project or in your career. If you are doing PHP, do everything in your power to switch to something else. There is no use case for PHP that is not better served by something else.

</comment><comment><USER11> Seems like a neat and very clever tool, but why would you use a test case as an example? Maintainability in unit tests is nowhere near as important as with actual implementation code (refactoring eventually may even _hinder_ the documentary aspect of test code).

<comment><AUTHOR> I disagree heavily.

Refactoring tests is as important as refactoring "production" code. Following the four elements of simple design ([http://www.jbrains.ca/permalink/the-four- elements-of-simple-...](http://www.jbrains.ca/permalink/the-four-elements-of- simple-design)) you can use test refactorings to find better names and detect need for abstractions.

Tests with lots of duplication, for example in the test setup, get hard to maintain and developers tend to abandon them more easily (my own experience).

</comment></comment><comment><USER12> Can it be integrated into an ide? I like it a lot better when I point at method or variable in IDE and can quickly rename it. BTW: there is already such thing for PHP: PHPStorm, although not open source.

<comment><AUTHOR> I suppose it can be integrated into IDEs. We (the developers) are Vim users, so there is no immediate need for us to integrate it into anything except Vim.

We know that PHP Storm has many refactorings implemented very well, but a command line tool is much more flexible and useable for everyone, not just PHP Storm users.

</comment></comment><comment><USER13> Looks neat. :)

It would be pretty nice (if I may suggest that ;)), if you added add branch support so the patches are saved into a refactoring branch or maybe individual branches?</comment>