Threadless is shutting their iOS app down next week - <AUTHOR> https://itunes.apple.com/au/app/threadless/id428853321?mt=8 <comment><USER3> Hi. I lead the Digital team at Threadless and we're shutting down the app because doing so allows us to spend developmental energy making the experience of our main app better for everyone. It served the purpose at the time, but as our focus shifted more into the Artist Shops platform over the last two years, maintaining and updating the native app proved to not be the best use of time or resources for the team. The web and phones have come a long way since we launched it, and we feel that pulling it now is better than letting customers use something that we're not giving our full attention to.

</comment><comment><USER4> I really think having a dedicated native app is a huge hassle for most businesses today. The web has come a long way and is no longer plagued by the perf issues of old. I'd imagine having to support both, sync up features and styles would get extremely difficult both logistically and financially. Far easier to just have a responsive site and be done with it. Probably save a bit of money on the payroll side too, frontend engineers are usually cheaper.

<comment><USER5> The problem is most of the companies think that what they are doing is too important for the user not to use the app. They think that Push Notifications are the holy grail to keep people engaged and bring the users back.

It will be good if Google allows developers to list pure progressive apps in the AppStore. Since for many non-technical users, PlayStore is how one is supposed to install apps, decision makers think it's important to have the apps.

<comment><USER6> One thing I can't firgure out is why reddit is pushing me to use their app when the site is better. I dont even understand why they want to.

<comment><USER7> A reason might be because it's harder to block ads in an app than it is in a browser?

<comment><USER8> As far as I know it isn't possible to block ads inside the Android Chrome browser? Only way to do that is using your own DNS, but that would work both on native and progressive apps.

Correct me if I'm wrong, I'd love to block ads inside my Chrome browser.

<comment><USER9> It's not possible in Chrome on Android, but it is in Firefox.

</comment></comment></comment></comment></comment></comment><comment><USER10> Threadless has an iOS app?

I don't mean to be snarky, but I love Threadless and I had no idea, so maybe that's why they're shutting it down.

</comment><comment><USER11> Doesn't feel that notable. The friction of a native app download vs just using the web means that an app is rarely the right answer for shopping. Makes sense to ditch the app and focus on web.

<comment><USER12> Time to build a Progressive Web App? ;)

<comment><USER13> If Apple supports progreasive web-apps this decade I'll eat my hat.

It does nothing for their business and cuts off their revenue streams. It's simply a bad idea for them.

I'd be curious to see what WASM means for progressive web apps on Android, however. There Google does benefit but it does weeken their platform by making competing hardware like Samsung's Tenzen or the near-death Windows Phone far more viable.

So the question becomes, is Google invested in Android specifically or simply the existence of mobile that they can profit from?

</comment></comment></comment><comment><USER14> Threadless shirts are hands down the worst quality clothing I've ever bought online. Great designs, terrible quality.

I didn't know shirts could be sewn up with so little material. Felt like I was wearing a light handkerchief.

I instantly returned my shirt and had to cover shipping, sneaky bastards.

<comment><USER15> Must've changed since the early days when I bought 20+ of their shirts. Ended up wearing most gardening, etc and never had any tear or feel flimsy at all. Been many years since I bought from them though.

<comment><USER16> They changed from American Apparel to in-house (read: crappy overseas garbage) a few years back. Quality went down the drain, as did the fit.

<comment><USER17> That is disappointing to hear. I have bought years ago from Threadless and the American Apparel shirts still hold up well.

</comment></comment></comment></comment><comment><USER18> The more RAM devices have, the more widespread web apps will be. A lot of niches, originally covered only by native apps, lost their luster for native development. Web does it all nowadays. See things like Basecamp, Tidal - <USER2> apps are web based and they work just fine on recent devices. By a pure coincidence, those apps have an outstanding quality. So web stack is a thing nowadays.

</comment><comment><USER19> Darn. Hope this isn't a reflection of their business health. Was hoping the trend of individualized and/or unique clothes would swing back in their favor.

Can't remember the last time I wore a shirt that had a logo or graphic on it, but think the world be slightly more interesting if people were just a little more individual in what they wear.

Love their business model, technology and collaboration for something tangible.

Edit: they still have it nice and big on their home page. And the landing page seems a bit dated or neglected with the dislaimer "* iOS 7 only"

[https://www.threadless.com/app](https://www.threadless.com/app)

</comment><comment><USER20> If you have a decent number of iOS users, why pull the app? Why not just let it spin out into deep space, and stop supporting it with updates?

That's an honest question, by the way.

<comment><USER21> They may have a decent number of downloads, but none of us knows how many users they have. I don't know how long the app has been on the store, but it only has 53 ratings which indicates very little engagement.

<comment><USER22> There is almost no incentive to rate app. They can't reward user and why should someone leave a comment? This is why I like what Amazon does with comment.... but if most of these are real users I think the app did a good job.

</comment></comment></comment><comment><USER23> Anyone know how they handled payments in the app? If it wasn't through Apple I wonder if Apple was coming after them to get their 30%.

<comment><USER24> Apple only takes a cut from the sale of digital goods, not physical ones.

<comment><USER25> And even that can really fuck with a business. 30%.

<comment><USER24> Okay, but that has nothing to do with the original conversation we were having.

<comment><USER25> I don't see how it doesn't? This was a discussion about a company shutting down, and this particular sub-thread was regarding speculation that the shutdown was the result of Apple 'coming after them' for their 30%... Your comment that it was only for digital goods, while true, required further elaboration that even that can be hard on a business. This comment is directly related to the sub-thread's speculation on why Threadless shut down.

</comment></comment></comment></comment></comment><comment><USER26> So what's the backstory? The only thing the page says regarding the shutdown is:

> We will be shutting down the Threadless iOS App on June 5, 2017.

<comment><AUTHOR> I have no idea. I'm hoping by posting here I might find out too.

</comment></comment><comment><USER27> I wonder if Apple Pay for the web has something to do with this.

</comment><comment><USER28> They have an app‽ I've always used TeeFury for the quality.

</comment><comment><USER29> The app has had about 200k all time downloads~

</comment><comment><USER30> Same day as WWDC keynote? Coincidence?

</comment><comment><USER31> Harper</comment>


Ask HN: How often do you use/encounter a QR Code? - <AUTHOR>

<comment><USER2> This has been brought up in various forms on HN many times before.

What am I missing about QR Codes: <http://news.ycombinator.com/item?id=5019658>

Ask HN: Do QR Codes work?: <http://news.ycombinator.com/item?id=4929262>

QR Code Fatigue: <http://news.ycombinator.com/item?id=4194985>

Dear Marketers, Enough with the QR Codes: <http://news.ycombinator.com/item?id=4128022>

Hacker news actually has pretty usable search at this point. I just typed "QR Codes" in the box at the bottom of the page to find these. There are lots more. Also, may I ask why you want to know? I feel like it's poor etiquette to ask us this question (or really any question) without giving any context as to why you're interested in the answer.

<comment><AUTHOR> Thanks for those links... I should have guessed that people may have asked that before. To answer your question on why I want to know, basically to research what is the best way for people to check-in at a place (kinda like foursquare) using their smart phones, supported by app or browser.

</comment></comment><comment><USER3> I work for a company and set up QR codes for advertising campaigns. We ran a campaign in a large ad in a _national_ newspaper.

Want to know how many scans the QR code got? 18.

</comment><comment><USER4> Encounter... So-so. Usage... Almost never. Don't care to

</comment><comment><USER5> Not very often tbh. Probably about 5 times a year.</comment>


David Goldberg Died in Mexico, Exercising During Vacation - <AUTHOR> http://recode.net/2015/05/04/david-goldberg-died-in-mexico-exercising-during-vacation/

<comment><USER2> New information has arrived since this story was posted -- apparently it wasn't a cardiac thing, as I'd thought when I posted my comment about Douglas Adams' death -- in this case, there was head trauma as a result of slipping while on a treadmill [1]:

 _The official said he left his room at about 4 p.m. to exercise, and family members went to look for him after he didn 't return. He was found at about 6:30 p.m. in a resort gymnasium lying by a treadmill in a pool of blood, with a blow to the lower back of his head. He apparently had slipped on the treadmill and hit the machine, said the official, who spoke on condition of anonymity because the person was not authorized to speak to the press.

The official said Goldberg still had vital signs when he was discovered, but later died at a hospital in Nuevo Vallarta.

The official said the cause of death was severe head trauma and hypovolemic shock, or bleeding._

[1] [http://www.sfgate.com/news/world/article/SurveyMonkey-CEO- di...](http://www.sfgate.com/news/world/article/SurveyMonkey-CEO-died-of-head- trauma-in-exercise-6241399.php)

</comment><comment><USER2> Reminiscent of the untimely death of Douglas Adams [1] (author of "The Hitchhiker's Guide to the Galaxy", etc.) at 49, post-exercise:

 _Adams died of a heart attack on 11 May 2001, aged 49, after resting from his regular workout at a private gym in Montecito, California. He had unknowingly suffered a gradual narrowing of the coronary arteries, which led at that moment to a myocardial infarction and a fatal cardiac arrhythmia._

[1] [https://en.wikipedia.org/wiki/Douglas_Adams#Death_and_legacy](https://en.wikipedia.org/wiki/Douglas_Adams#Death_and_legacy)

<comment><USER3> [http://my.clevelandclinic.org/services/heart/disorders/coron...](http://my.clevelandclinic.org/services/heart/disorders/coronary- artery-disease/understandingcad)

> The American Heart Association (AHA) estimates that about every 34 seconds, > an American will have a heart attack. In addition, the lifetime risk of > having cardiovascular disease after age 40 is 2 in 3 men and more than 1 in > 2 women."

These numbers are so high :(

<comment><USER4> It seems to me that this must use a very broad definition of cardiovascular disease.</comment></comment></comment>


Easily share your Spotify music with friends. Bops Music: just launched - <AUTHOR> https://apps.apple.com/us/app/bops-music/id1498351981 <comment><AUTHOR> TLDR; Bops Music (launched today) showcases your saved, recently played & top Spotify songs and has a nice timeline format to preview your friend's songs as well. Think instagram + spotify combined. It creates a music timeline so you can listen along with each other.

This idea came from the fact that I usually just find some new music, save it, and then go to my saved songs and put those on repeat. I thought that opening up my favorite/saved songs to others and being able to view friend's songs would provide new music inspiration.

The interesting thing about music is that you can gain hours of new tracks from just connecting with one person.

The information you can access on Bops is NOT available in the main Spotify app, but it is open for developers to get creative with it.

It is currently only available for iOS. I'd love to know what you guys think! Any/all feedback welcome.</comment>


Cahasing Butterflies in the Days of War - <AUTHOR> https://medium.com/@nasrullahkhan_96636/chasing-butterflies-in-the-days-of-war-b7f4b33eae1e <comment><AUTHOR> A story of an autistic boy who thought butterflies were more important than wars.</comment>


Audio synthesis / processing in JavaScript - <AUTHOR> http://audiolibjs.org

<comment><USER2> Does it support large (256k samples) array FFTs? I could use it for PADsynth algorithm ( <http://zynaddsubfx.sourceforge.net/doc/PADsynth/PADsynth.htm> ).

Also, from the API, it seems that I could implement Paulstretch algorithm ( <http://hypermammut.sourceforge.net/paulstretch/> ) easily. When I'll have some free time, I'll try it. EDIT: I looked a bit closer on interface EFFECT and Paulstretch cannot be implemented as an effect, but as a generator. Needs to be studied more :)

<comment><AUTHOR> fft.js supports as large buffers as JS can handle, that depends a bit on the browser, but 256k samples will probably work, you might have some trouble in Chrome, if you have too much other stuff in memory as well. Would be cool to see a demo of PADsynth on the web, especially with audiolib.js!!!

Paulstretch would be a perfect addition to the library, it would open whole new doors for example for samplers (whoa, the sample is sustained forever!), of course with some limitations in regards of real time. Send me a message on GitHub, if you decide to take up on the task, I'd be glad to give you a hand with it! :)

<comment><USER2> Unfortunately, in this period of time I am quite busy porting Paulstretch to Android. I have rewritten a (C++) fixed point implementation of Paulstretch and now I have to write the GUI for Android. After I will release it, I hope that I will have some time to port it to JS. Anyway, feel free to add the task for me (my user is 'paulnasca').

If you want to look at the algorithm of Paulstretch you can have a look to a simple Python implementation: [https://github.com/paulnasca/paulstretch_python/blob/master/...](https://github.com/paulnasca/paulstretch_python/blob/master/paulstretch_stereo.py) The algorithm is pretty fast, the most time consuming operations are the FFTs and IFFTs. That's why I think that it might work on real-time JS.

</comment></comment></comment><comment><USER3> I wrote an interactive demo to create sound waves (FM Synthesis) using JavaScript. Now I will try this audiolibjs to make it better and add effects. I was creating effects from the scratch (using rand to produce white noise, etc): <http://js.do/sound-waves-with-javascript/> (Click each "Interesting Sound and Waves" to see each effect. Graphics/waves are created using Processing.JS)

<comment><AUTHOR> Wow, that's very cool! I think you could make a great learning resource for FM synthesis from there, especially if you'd explain how each of those examples are put together!

</comment></comment><comment><USER4> Ooh. This might be the beginning of JS/web-based synths. I'm curious what kinds of cool synths musicians might dream up and how the having synths on the web could make it different than anything before. Are browser-makers considering an API that allows me to plug my MIDI keyboard into a webpage?

<comment><AUTHOR> One of the earlier demos (about a year old and unfinished) : <http://niiden.com/orbisyn/> :) has a virtual MIDI keyboard, to which you can connect a MIDI synth if you have Java. It isn't exactly native support, and it's very unpredictable, but it's something that can be used meanwhile.

However, the Device API should allow access to external inputs, such as microphones and MIDI controllers, so it's coming along!

</comment></comment><comment><USER5> This is interesting, but it seems like they are processing/producing a single sample at a time (though some effects seem to be buffer-based.) While convenient, it is a very, very inefficient way of doing things.

<comment><AUTHOR> Actually, the API allows for both, whichever suits your needs. When doing buffer based processing, you can even add advanced automation, etc.

<comment><USER5> I've looked at all of the examples in the src/generators, and the amplitude processor and I don't see the buffer-based generate() -- maybe I am just missing something?

<comment><AUTHOR> Ah yes, looking at the source code makes it a bit obscure, because the inheritance patterns are described in the wrappers. But for generators, you can do, for example osc.append(buffer, channelCount);, because generators are by nature multi-channel, but for effects you have to create a multi-channel instance, like flt = audioLib.LP12Filter.createBufferBased(channelCount, sampleRate, cutoff); and then you can use the append function similarily to generators.

This is a design choice to make implementing new effects simple, and the framework providing this extra functionality for you.

<comment><USER5> I see that you have layered a Buffer-style API on top of your per-sample code (api-buffer-effects.js), and I could still be missing something, but it looks like that just automates the call to process each sample individually --

        //api-buffer-effect
        self.effects[n].pushSample(buffer[i + n], 0);

        //api-generator
        out[i + n] = this.getMix(n) * this.mix + buffer[i + n];

This is _very_ different from being able to process batches of samples within your effect or osc code -- even if the JIT inlines the functions of this.mix, you will still incur unnecessary setup cost.

Of course, without profiling this is just speculation.

<comment><AUTHOR> Yep, I definitely see where you're coming from with this. It was my initial take as well, but as crazy as it is, after some time spent comparing different approaches, turned out that this is the fastest way to do it in JavaScript world, and that is true even up to older browsers such as IE8 (I haven't bothered measuring anything related in browsers older than that, because IE8 is the oldest browser with some way to output generated sound), but especially true with the latest optimizations such as CrankShaft.

However, I should probably set up some public performance tests and compare the instructions these things compile to have some hard data back my claims, I wouldn't exactly trust me just saying it is so, as I have just tested these things on the fly.

But, however, this approach is more modular, and fits more use cases, and that matters even more for me right now, but trust me, I've spent my time optimizing every operation to the point that it doesn't make things harder to use. :)

<comment><USER5> Very cool! It is so exciting to see jit technology improve so much. In C, it is definitely faster to go in batches -- having things in batches in C also makes it easy tO plug in vector libraries if available on the current platform.

I would _love_ to see your performance benchmarks.</comment></comment></comment></comment></comment></comment></comment>


Ask HN: Persevere, pivot, or fail? - <AUTHOR>

Depending on which successful startup company you read about, you hear one of three lessons:
1) We had a great idea and while no one was buying it or giving us the time of day, we pushed forward.  Many times only eating rats for weeks on end, but we had grit, if nothing else.  And then eventually we sold the company for $1B.
2) We had a great idea that was having trouble, but we realized there was this interesting aspect of our product that we pivoted on and this became MacroWare -- the largest software company ever.
3) We tried for six months, but clearly the idea had no legs.  Many said to push for a full year, but I believe in failing fast.  So I killed the company, and that is what allowed me to start my next company, that made instantly made billions.
All these success stories face a crossroads where things aren't really going well and they all end with a different "moral to the story" ending.  But when you're actually living it in real life how do you figure out which story you're in?  Should we hunker down and start eating rats, or fail now and move on to one of the other 50 ideas I have? <comment><USER2> Here are some ideas to think about.

1\. Depends on what the problems are and if they are fixable. If there are solutions, if others have done it before, or if you know you can persevere and win in the end than obviously stick to it.

2\. How passionate are you about the idea/product/industry? If you know deeply inside your heart that's what you want to do then you either persevere or pivot by changing something small or trying a different angle. If it's a throwaway idea and you're in it for the money and quick bucks then it doesn't matter if you do another idea or project...then fail fast.

3\. How much time/money have you already invested into it? Can you salvage it or is there something valuable you can save out of it? If you spent a few hours on a landing page and it doesn't convert, toss that. Or if the project was started in a weekend and you don't really have much to lose if you start another project because you don't think it'll work after a sample testing.

4\. But if you spent a year or two years on your company and all your life's savings on it, then ask yourself why you did that and if those reasons are still valid today.

</comment><comment><USER3> The best way to do this is to precommit to a decision based on any number of metrics. For example, you might decide that if in 6 months time you have less than 10k users, or less than 50k in revenue you will give up on the company. This has the the downside of not allowing you to incorporate lessons that you learn during the creation of your company into your decision making process, but this pales in comparison to the disadvantage of making the decision at a point where you'll be increasingly likely to fall prey to sunk cost biases.

</comment><comment><USER4> I've been where you are now and I perservered on and it was for me the wrong choice. For you it might be the correct choice. How do you know?

Read Eric Ries the lean startup and Ash Maurya's Running Lean and I truthfully belive you will get your answer. Just wish they had been published ten years sooner.

</comment><comment><USER5> We can't answer for you, bud. Read rmason's material and try to decide for yourself. You know best! Good luck

<comment><USER5> How do I get points deducted for this?..

<comment><USER6> It happens. In the most stupid case, someone on an iPhone tried to upvote you but narrowly missed the small up arrow. Move on, and don't pollute the comment thread with "why did I get downvoted" comments.

</comment></comment></comment><comment><USER7> Talk to more people, and try to find the theme in the discussion? Then pivot that way.</comment>


Ask HN: Rate my OCW math curriculum for comp sci - <AUTHOR>

I've been programming professionally for 5 years - mostly java. The prospect of doing the same thing in 10 years is less than attractive and  a PM position doesn't appeal to me. What I really want is to further my technical knowledge, dig deeper. Machine learning is something that springs to mind, as I really enjoyed the coursera course. But above all I just want options.
I have no math above college level and I think this is my main achilles heel. I actually started with an algebra refresher via ALEKS and have now commenced Calculus I on MIT Open Course Ware. Two Exams in and I'm actually performing well. This has removed a long standing irrational fear I had with math.
My emboldend plan is now to continue with the following courses (all on OCW) : http://i.imgur.com/nHFoQip.png
My questions are:
1) These are all MIT courses, any graduates care to comment on the experience, perhaps weigh in on which are more and less useful in your day to day work.
2) Am I overstating the importance of math in comp sci, will I be dissapointed?
3) Any addendums or modifications to the plan are welcome. <comment><USER2> I think it depends a lot on what you want to do.

For any kind of machine learning or data processing, linear algebra is definitely a good thing to have. Basic calculus is good too, but I'd say may be less important if you're applying methods and approaches as opposed to developing them too. Differential equations, while providing an important set of mathematic tools which may open some doors you didn't even know existed, may not be the "highest yield" material from a programmers point of view.

In my opinion, probability and statistics is a _big_ yes for anything data related, doubly so for algorithms. I'd also consider some graph theory, as it's amazing how many problems can be projected as networks and then approached from that perspective.

</comment><comment><USER3> I think combinatorics -- both enumerative and graph theory -- are likely to prove very useful, perhaps the most important thing you could study.

I suspect that differential equations could be left out if you choose. IMHO the subject is boring, but naturally others disagree.

I suspect it will be indirectly helpful to get practice writing proofs. I imagine some of these courses already involve proof-writing.

Finally, I also believe it will be helpful if you see some mathematical abstraction. I think the best place for this is abstract algebra (= "modern algebra"), and in particular group theory.

Here is one fact to convince you that group theory is cool. It turns out that there are 43,252,003,274,489,856,000 positions into which you can manipulate a Rubik's cube. But suppose that you are allowed to take apart the puzzle and then put the pieces back together any which way. Then there are 519,024,039,293,878,272,000 positions - _exactly_ 12 times as many.

 _Why is the ratio of these an integer_? Study group theory, and you will have a very good intuition for questions like that. Probably not something you will need directly, but I imagine it will sharpen your mind in the direction you'd like to go in.

Good luck to you!

<comment><USER4> Differential equations has its uses within specific fields.

If you want to do anything involving control systems or robotics it would be good to have a background that includes differential equations.

Anything related to kinematics usually involves differential equations as well.

As for compsci outside of controls and robotics you see diff eq a lot less.

</comment></comment><comment><USER5> I didn't go to MIT. I think Automata and Combinatorics were two of the more interesting and relevant courses I've taken. Calculus is enlightening but I've yet to find a use for it. I think Probability is important too. "Math for CS" aka Discrete Math is good. If you're into graphics I guess Linear Algebra is helpful but I've never use that.

</comment><comment><USER6> Do linear algebra and stats+prob before getting into multivariable calc. You can probably leave DiffEq out entirely unless you're getting into modeling. Math for computer science is a grab bag. Graph theory comes up a lot but propositional logic never comes up.

</comment><comment><AUTHOR> clickable link for the plan : <http://i.imgur.com/nHFoQip.png></comment>


Ask HN: Why don't we use subtitled films/tv to train speech recognition? - <AUTHOR> There are thousands of films and tv episodes that have subtitles throughout their duration. Millions of music that are sung that we can find lyrics for. Would it not be possible to use this material to train speech recognition. This would then make it possible to train in the multiple different dialects and accents of a particular language.
Speech recognition as a technology, has always appeared to move slowly although with the advent of mobile popularity, the technology is becoming increasingly popular.
Is anyone doing anything like this? <comment><USER2> I used to work for a company that built Speech Recognition systems and I came up with a similar/related idea - the idea being to take a load of videos of barack obama (for example), and create an accurate 'voice print'. Once done, any videos or speech could be scanned and if Barack Obama's voice print was recognized/detected, the recognizer could be tuned to his voice print AND could apply a set of appropriate grammars/vocabluary (for example the 'politics' grammar, or 'american' grammar or 'economics' grammar) - then you could very accurately perform speech recognition and automatically create text translations. Then when you google for text, you could actually retrieve videos whose content exactly matches the search terms and jump directly to that part of the video.

Over time you could build up a database of voice prints and grammars for not just celebrities, policitians, but also criminals (for automatic identification).

I had this idea almost 4 years ago, submitted it to the company, but it wasn't taken seriously.

If anybody is interested in this, let me know!

<comment><USER3> _> when you google for text, you could actually retrieve videos whose content exactly matches the search terms and jump directly to that part of the video_

The search aspect of this is very interesting and I hadn't thought of it before (though in hindsight it seems like an obvious benefit).

</comment></comment><comment><USER4> Aside from issues relating to background noise on the soundtrack, the subtitles are frequently abridged from the spoken word in the interests of space and / or readability, so you'd need to account for that in your algorithm.

If it were me... Project Gutenberg has free books available in both audio and text formats. You may well again run into issues with the spoken and written text not exactly matching (it's not something I've looked into to know) but I wouldn't be surprised if it was rather less than what I've observed in subtitles, and the data concerned is in a more easily parsed format.

<comment><USER5> Audio recordings of book readings are less practical than subtitles because they are not synchronized. Every subtitle in a film is associated with the sound clip that plays while it is visible, whereas for an audiobook or similar, any algorithm would have to "align" the audio and text in order to obtain usable training data, and then it would have to deal with the errors introduced by this process.

<comment><USER4> Hmm, good point, though still against a cleaner audio signal, easier input data to process and (likely) closer matching of text. I'm not remotely involved with the field so I won't indulge in further wild speculation, but an interesting balance.

</comment></comment></comment><comment><USER6> I happen to know that they do this at the Linguistics Data Consortium (<http://www.ldc.upenn.edu/>), at least with cable news shows. They mostly do that to obtain data for languages with more minimal resources though, and for the purposes of transcription, not for speech recognition qua engineering research. The real issue though is the research community is interested in increasing the accuracy of recognizers on standard datasets by developing better models, not increasing accuracy per se. Having used more data isn't publishable. Further, in terms of real gains, the data is sparse (power law distributed), and so we need more than just a constant increase in the amount of data. This issue is general to any machine-learning scenario but is particularly pronounced in anything built on language.

Some related papers ~ Moore R K. 'There's no data like more data (but when will enough be enough?)', Proc. Inst. of Acoustics Workshop on Innovation in Speech Processing, IoA Proceedings vol.23, pt.3, pp.19-26, Stratford-upon- Avon, 2-3 April (2001). Charles Yang. Who's afraid of George Kingsley Zipf? Ms., University of Pennsylvania. <http://www.ling.upenn.edu/~ycharles/papers/zipfnew.pdf>

</comment><comment><USER7> Well I am sure they would do, though subtitles aren't the most reliable source for movie dialog. Often the dialog is altered subtly to fit the space and timing requirements.

<comment><USER8> And they are translations not speech-2-text.

<comment><USER9> Movies are also subtitled in the same language for the hearing impaired.

</comment></comment></comment><comment><USER10> There are two different but correlated fields: Speech recognition and Natural Language Understanding.Speech Recognition is easier if the scope is minimised, that is, if th system knows which subset of keywords of orders to recognized. But recognizing an open scope, including different accents, slang, etc is a much more difficult task.

<comment><AUTHOR> I mean there must be millions of times where a character has said 'hello' in a film or tv episode. Each person may have a slightly different way of saying it which can then be used to make a model for speech recognition software which may no longer require the user to train the software.

It may also be possible to automate the entire process as we have both the audio and the words spoken at a particular time.

Take it a step further, we have millions of sung songs with lyrics that can also be used. Its a gold mine of information that can be repurposed.

</comment></comment><comment><USER2> Very interesting. In a similar vein, automated language translation could be assisted too - beacuase a film DVD often has different audio and subtitle languages, so it would be possible to pair up semantically similar audio and written content... and put it all into a magic computer

</comment><comment><USER11> For the purposes of speech recognition, songs strike me as being particularly _noisy_.

<comment><USER12> That's a plus though, on the testing front. Once it works with random sections from songs that were not part of the training set that would be a significant improvement over what we have today.

The problem would be the disproportionate weights given to the words 'I', 'love', 'you', 'baby'. Songs are probably not the best training data when it comes to getting a well rounded vocabulary.

</comment></comment><comment><USER13> A similar idea: "Learning sign language by watching TV (using weakly aligned subtitles" from CVPR 2009:

<http://www.comp.leeds.ac.uk/me/Publications/cvpr09_bsl.pdf>

</comment><comment><USER14> For films and music the audio data may have too much noise, but TV programmes with low background noise (news, documentary, interview) with available Closed Captions (CC) are good training sources. CC transcripts are enforced by broadcasting regulators so they should be highly accurate.

The big problem with using these sources is the huge vocabulary. Speech recognition works better for smaller vocabularies than bigger.

</comment><comment><USER15> <http://voxforge.com> have been collecting a big speech corpora over the last few years, under GPL license. That should be the way to follow imho.

Training a speech recognition engine is quite a sophisticated process, and usually requires at least a clean (not noisy) set of samples, which you can't find in dubbed movies and surely not in music.

</comment><comment><USER16> Google had a service (6 or more years ago) that would search TV shows (that they were recording themselves) and provide back the transcripts and thumbnail images for any matches. I suspect this was used as training data.</comment>


The End Of Venture Capital As We Know It?  - <AUTHOR> http://www.techcrunch.com/2008/12/06/the-end-of-venture-capital-as-we-know-it/ <comment><USER2> Key point: "[Low capital requirement/pure software] [s]tartups can be run so cheaply now (with open-source software, cloud computing, and virtual teams spread across the Web) that many more can achieve profitability without any VC cash."

I truly believe that this is the silver lining for software developers willing to take the leap into the new economy in this cloudy economic situation.

</comment><comment><USER3> Its only the end of VC if you think that VCs only invest in Internet start- ups. Its great that its become vastly cheaper to create a new Internet product.

There are many other industries that can make use of VC; green tech, for example. VC isn't dying, its just going to focus on different industry segments.

</comment><comment><USER4> VC is working its way to irrelevance, due to the "no man's land" around $150-500k of initial funding. This is, uncomfortably, the order of magnitude which can give a serious start to a promising idea: 2-4 peoples' salaries, plus operating expenses, for 12-18 months.

Investors seem to either want to put up small amounts (~$20k) that equate to mere weeks of living expenses, or make multimillion dollar investments, forcing a company both to give up an unreasonable share of its equity and to grow more rapidly than most tech companies are ready for (just try adding 6 new programmers to a 2-person project). By having a blind spot inconveniently placed right at the amount that most startups need, investors are pricing themselves out of relevance.

Given this undesirable arrangement, the reason startups exist at all is that most tech people usually have some savings after being employees for a few years, and during good economies, it's so ridiculously easy for a talented programmer to get a decently well-paying job that no one's worried about risking some savings by working for equity and deferred pay-- e.g. quite possibly for free-- on a cool idea. If the economy continues to sour and the ease of finding a good job is no longer the case, startups will have a much tougher time finding people to work pre-funding, and if investors aren't willing to meet startups on their needs, there will be fewer of them.

One major trend (and a positive one, in my mind) that I'm going to call in the startup world is that many, many more startups in the 2010s will be starting in smart, low-COL locations such as Minneapolis, Madison, and Portland.

</comment><comment><USER5> Related Article ->

"As IPOs hit 30-year low, VCs hit tough times"

[http://www.sfgate.com/cgi- bin/article.cgi?f=/c/a/2008/09/30/...](http://www.sfgate.com/cgi- bin/article.cgi?f=/c/a/2008/09/30/BU101387M9.DTL)</comment>


Consciousness and its Place in Nature (2002) - <AUTHOR> http://consc.net/papers/nature.html <comment><USER2> I've always been more on the materialist side. Reading this, I finally managed to put a finger on something that's been bothering me.

Our brain knows it is conscious. If consciousness is an immaterial phenomenon, emerging from those processes, how can the brain know it is conscious? What way could a brain possibly have to measure consciousness? When I refer to brain, i mean the physical, scientifically measurable computing system. Several conclusions are possible:

1) The brain is conscious and can accurately measure that it is conscious. -> we should then also be able to measure this consciousness, if we figure out how the brain does. (wouldn't we have found something already?)

2) The brain is conscious and accurately guessed it is conscious. -> problem: why would the brain guess this, especially about something it can not measure?

3) The brain does not produce consciousness but thinks it does. -> Just as the metaphysical zombie, being molecule for molecule identical would assert it is conscious. (but now we're denying consciousness exists, see arguments about eliminativism in the original post)

Any thoughts?

<comment><USER3> Without language there is no consciousnesses. That's it. The brain does what it does. We think, occasionally, then imagine that we cause brain to function.

All animals are just dandy without complex language, it's not really a miracle that we are conscious, just a different too.

<comment><USER4> Language is a learned behavior. Consciousness is a property of the learner. Language may influence conscious experience, but it certainly doesn't create it.

<comment><USER5> I think the development of complex language and the internal feedback mechanism it enabled might have led to a higher level of consciousness in humans.

<comment><USER4> It is entirely possible that language development created a self-reinforcing feedback loop for the development of intelligence. I don't think intelligence and consciousness are necessarily correlated though.

<comment><USER5> Unless you think a shrimp is as conscious as a person, or that a dog is completely lacking in consciousness, you have to accept that consciousness comes in degrees. Unless you believe consciousness is supernatural, you have to accept that it has an organic origin. What that says to me is that humans have evolved brain structures that give us a higher level of consciousness than other animals, and IMO the best candidate for how that happened is we learned how to self-reflect through things like speech and art.

<comment><USER4> I don't know that the experience of being a human is any more vivid or real than the experience of being a shrimp. Don't conflate the ability to reason with the quality of having an internal experience. Perhaps the shrimp lives more truly, undistracted as it is by meaningless thoughts.

The state of consciousness is correlated with the state of matter. We don't know more than that. We've assumed that physical reality is the ground state and consciousness is the phenomenon, but reality could just as easily be a dream in the mind of the universe. If consciousness can influence reality that would seem to indicate it is either equally fundamental to, or even precedent over material reality. The alternative, that consciousness is a passive observer, is both depressing and unlikely.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> "Conscious states include states of perceptual experience, bodily sensation, mental imagery, emotional experience, occurrent thought, and more. There is something it is like to see a vivid green, to feel a sharp pain, to visualize the Eiffel tower, to feel a deep regret, and to think that one is late. Each of these states has a phenomenal character, with phenomenal properties (or qualia) characterizing what it is like to be in the state."

...

"Here, the task is not to explain behavioral and cognitive functions: even once one has an explanation of all the relevant functions in the vicinity of consciousness — discrimination, integration, access, report, control — there may still remain a further question: why is the performance of these functions accompanied by experience?"

\-- I'm not getting why this is suppose to be "hard". Any information processing system would have internal processes, ones that reflect current and past input, "raw" and suitably modified. A sophisticated information processing system could be expected to have observations on its internal processes too - just a server might have logs, processed logs and what-not.

I mean, all of this is important to _us_ because we are it. Any autonomous system would be more concerned with its internal processes than random things. So for such a thing, a brain or even a self-driving car, it's internal processes have a unique place - inside of its memory.

" Why do not these processes take place "in the dark," without any accompanying states of experience? This is the central mystery of consciousness."

\-- Because each information processing system only processes its own information? It only "sees" its input, not some other system's input.

Of course, I'd say that such reasoning seems plausible because humans have a strong tendency to project our experiences on other human beings and to imagine other people having our experiences and vice-verse. So we experience only our input (rather tautologically) but imagine others having our experiences, imagine others imagining us having their experiences and so- reflexively via "mirror neurons" and such.

But beyond that I think it seems "hard" because we value these experiences so highly. Having it all be banal and obvious seems to devalue it. And that's about it.

<comment><USER7> Always hilarious to me how many educated humans will actually go argue that they are p-zombies rather than face the paradoxes of consciousness.

I guess all I'll say is, physics seems capable of explaining the evolution of our universe and e.g. the emergent complex phenomena of solar systems and planets and such. Physics and the other hard sciences do not seem to lend a lot of clarity as to how a self-organizing piece of the universe developed into beings that believe themselves to be conscious, believe they in some sense have the power of mind-over-matter, and in fact have constructed a globe-spanning civilization that appears to demonstrate the ability of billions of minds to understand to some degree themselves, each other and the universe, and to willfully bend matter to suit its purposes. aka Hofstadter's "who pushes whom around inside this cranium?" question.

We have not come anywhere close to constructing an artificial system with similar capabilities nor to understand how or why they arise in our own brains. It's presumptuous in the extreme to hand-wave away this conundrum with an "information processing" metaphor.

<comment><USER6> You're mobilizing a different argument here - since we can't construct it, there must be some transcendent property.

I can't see how that evokes any of the paradoxes of consciousness.

I mean, 200 years ago, humans didn't have a plausible idea how the sun work, should they have assumed God was behind it?

Edit: and humans certainly broadly have a decent idea of the physics and chemistry that gave rise to life even if the function of the brain is so far beyond us. So we're certainly not confronting life as something wholly unexplained. Some parts are still beyond us, some things we don't know yet. But un-knowledge usually isn't evidence for any specific thing.

<comment><USER8> The sun is a physical body, so a physical explanation makes sense. The problem is, our subjective experience isn't actually physical so the same logic doesn't apply. Our subjective experience has no mass, no shape, no size, and can't be measured. It may correspond to movements in the brain, but the experience itself is not material. For all we know we could be in the matrix, and our subjective experpence could be just as real. In fact Elon musk thinks it's a very high probability that we are in the matrix. Since our experience of the world is not material it doesn't seem to follow that there must be a material explanation for it.

<comment><USER9> Ponder this: the number 15 exists but isn't material. It is an extrapolated common property of physical systems. The number $2^789 - 53$ exists but isn't material; and you've never seen a physical system which embodies that number, but there could plausibly be one.

Why could your consciousness not similarly be an extrapolated property of a physical system, without being physical itself?

<comment><USER10> That's a good question and the answer is that both the sun and the number 15 are concepts created by the mind because creating concepts has great survival value. You are conscious of these concepts. "Consciousness" itself is also a concept you are conscious of. We tend to confuse the map with the territory - perhaps because believing the reality of the map makes us more real and gives a sense of control over things - I wouldn't know. What I am convinced of is that consciousness (and I'm not referring to the concept of it) is not a product of the mind, but vice versa.

<comment><USER11> The sun is a physical body that exists despite us, 15 exists only on the mind.

<comment><USER10> Perhaps investigate what physicality is beyond the awareness of it. The only reason something objective exists is that there's a separate subject to say so. And no, this doesn't mean that nothing existed prior to human beings, it does mean however that the division of the world into "physical" vs "mental", "objective" vs. "subjective", "me" vs. "not me" was created by the human mind.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> How about Nature and its place in Consciousness?

</comment><comment><USER13> Analytic philosophers love to talk of qualia, but Continentals (Phenomenologists in particular) were on to the idea of the "lifeworld" well before (late 19th century) the Analytics came up with qualia (1929). I'd love to see the two concepts compared and contrasted.

If anyone knows of such a comparison, I'd love to read about it.

<comment><USER14> The concepts of 'qualia' and 'lifeworld' are not directly comparable. Qualia are qualitative aspects of experiences, but lifeworlds are complexes of objects associated to a 'perspective' which operates on them (and possibly constitutes them) - essentially subjective worlds. The point of contact between those ideas is this: different lifeworlds could include the same objects but have a different qualitative character. The trick is that saying that the objects in two different lifeworlds are the same might make the assumption that the objects are 'given' (then, the qualitative aspect would be extrinsic to them). But if the subject of the lifeworld actively constitutes the objects of the world the objects could be different anyway, because those qualitative aspects would be intrinsic.

Imagine a meadow. An insect experiences differently than a girl who is picking flowers, and both experience it differently than a cow who pastures (I think this is Uexkull's [who introduced the notion of Lebenswelt] own example). We might assume that beyond those lifeworlds there is a real world that grounds them and includes the objects that they . But it is not clear that the objects in all those worlds are the same, because the cognition of the insect, the cow and the girl might carve the world in different ways.

Btw, historically, similar ideas where explored by William James around the same time the early phenomenologists and proto-phenomenologists (like Brentano), and James' influence through pragmatism fed back into analytic philosophy. Mainstream analytic philosophers more or less abandoned the idea for a while because of the influence of behaviorism (e.g. Ryle), but I don't think it was ever entirely expurged.

<comment><USER13> It sounds like with the lifeworld concept, the Phenomenologists were coming up with another way to talk about solipsism. Would I be mistaken in thinking about lifeworlds like that?

<comment><USER14> Well, they didn't necessarily give in to solipsism. The original idea was meant to accommodate, I think, the idea that different subjects could have entirely different experiences and still share a world. Actually, I think Husserl's idea that lived worlds have 'horizons' (beyond which you can somehow anticipate something you don't see) can capture the thought that the experience of others can be somehow be part of our own, so solipsism is partially defeated. But this is just a rough thought.

</comment></comment></comment></comment><comment><USER15> I wonder why NYU Professor of Philosophy Thomas Nagels 2012 book "Mind and Cosmos: Why the Materialist Neo-Darwinian Conception of Nature is Almost Certainly False" until this point hasn't been mentioned in this thread?

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

[https://books.google.de/books?id=pOzNcdmhjIYC&printsec=front...](https://books.google.de/books?id=pOzNcdmhjIYC&printsec=frontcover&hl=de&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false)

<comment><USER16> Because, let's be frank, Nagel's work is bad and he should feel bad. There's ongoing work in producing naturalistic explanations for both consciousness and morality, so Nagel doesn't get to use those as, "Therefore we need to throw out all our existing science for a theory of teleology that makes no actual predictions other than that Thomas Nagel's intuitions should come out one way."

</comment></comment><comment><USER17> A framework for conceptual ideas is provided, but within this lengthy quantity of words, not much else is accomplished other than to admit that consiousness is safely a material reality.

<comment><USER18> A comment is provided criticizing the article as usual, not much else is accomplished other than unintentionally admitting that the commenter doesn't really understand the gigantic difficulty of the problem at hand.

<comment><USER19> Oh, goodness yes. Bravo.

</comment></comment></comment><comment><USER20> Finally some Chalmers has graced the front-page. Aleluja!</comment>


Docker tells employees it's trying to raise cash amid 'significant challenges' - <AUTHOR> https://www.cnbc.com/2019/09/27/docker-is-trying-to-raise-money-following-arrival-of-ceo-rob-bearden.html <comment><USER2> DockerHub used to be one offering that made them some cash. This is now being commoditized by major cloud providers.

<comment><AUTHOR> I am a strong believer that open source infrastructure companies are extremely difficult to make work. Once you get enough market share and exposure AWS will just take your open source software and wrap their own service. Examples include MongoDB and Elasticsearch, though both went public and are successful. I just wonder as a purely business move if open source infrastructure software is really the way to go.

<comment><USER3> Couchbase comes to mind here as well. How are they doing? They have been around for quite some time as well.

</comment></comment></comment><comment><USER4> Maybe Docker should copy the successful business model of bash or ssh.

<comment><USER5> Can someone explain this? I assume it's a joke but I don't know enough

<comment><USER6> It's a joke. But it goes to the point that companies founded on open source are in a precarious place

</comment></comment></comment><comment><USER7> Another Kubernetes casualty.

</comment><comment><USER8> If they go down that's be a big pita.</comment>


Show HN: Chrome extension that plants trees for free while shopping at 50k shops - <AUTHOR> https://www.treeclicks.com <comment><AUTHOR> Users need to activate the affiliate links themselves by clicking on a modal that appears when an affiliated website is visited (indeed by insertion in the page's html content). The majority of the fee goes into tree planting.

</comment><comment><USER2> How large is your fee/overhead? Are you changing page content/high jack affiliate links, or are you only adding tracking parameters to type- ins/bookmarks?

<comment><USER3> yes, I'm interested in the overhead as well, and how much of that is actually going to planting trees?

The only information on the site about this question would be; "We use the majority of that fee for planting trees."

<comment><AUTHOR> Thanks! We mention these average percentages in the Chrome Webstore: [https://chrome.google.com/webstore/detail/treeclicks/obcaknm...](https://chrome.google.com/webstore/detail/treeclicks/obcaknmopenojgcmacjbkpdjainhaebn)</comment></comment></comment>


ButterCoin (Y Combinator) CEO Reveals 'Mistake' That Lead to Company Closure - <AUTHOR> http://www.coindesk.com/buttercoin-ceo-mistake-bitcoin-business/

<comment><AUTHOR> A lot of good take-aways from this, the most noteworthy and obvious one though:

In interview, Dahl talked at length about his regret that he didn't bootstrap the company, instead trying to raise "a significant amount" early on.

"What I should've done is really start with a fraction of what I would actually need and once you have enough demand, raise more," Dahl said.</comment>


Show HN: Machine learning cheat sheet - <AUTHOR> http://eferm.com/machine-learning-cheat-sheet

<comment><USER2> In case you see the cheat sheet and think, "Wow, I'd love to understand that," there's an excellent (albeit challenging) complete course on machine learning in Stanford's "engineering everywhere" online repository. [http://see.stanford.edu/see/courseinfo.aspx?coll=348ca38a-3a...](http://see.stanford.edu/see/courseinfo.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1)

<comment><USER3> Another option is "Programming Collective Intelligence," by Toby Segaran. I read through it recently on a long flight to Australia. It's one of the most straight-forward AI books out there, presenting most of these algorithms in just a few pages with nice sample Python code and diagrams. A perfect intro/refresher, and it takes a web developer perspective on these techniques.

Since reading it I've noticed how many friends have it on their bookshelves.

Here's a link: <http://oreilly.com/catalog/9780596529321>

<comment><USER4> I haven't read the COIN book, but if you want to get aggressive you can go for "Elements of Statistical Learning".

Free pdf download, probably not a one-flight book:

<http://www-stat.stanford.edu/~tibs/ElemStatLearn/>

side note: Nat, did you intern at SGI in the late 90s, as the self-titled "armchair programmer of the apocalypse"?

</comment></comment></comment><comment><USER5> All the algorithms requiring training can be optimized using stochastic gradient descent-- which is very effective for large data sets (see <http://leon.bottou.org/research/stochastic>)

Also, here are some additions for the online learning column:

* Online SVM: <http://www.springerlink.com/index/Y8666K76P6R5L467.pdf>

* Online gaussian mixture estimation: [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87....](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.1698&rep=rep1&type=pdf)

One more thing: why no random forests? Or decision tree ensembles of any sort?

<comment><AUTHOR> Thanks for the comments!

The course unfortunately couldn't cover all material on all algorithms, so the cheat sheet basically reflects my own knowledge rather than what's possible. I've referenced the Online SVM and Online Mixture model though, thanks for those.

Also, I'll have to look into stochastic gradient descent!

</comment></comment><comment><USER6> KNN _"no learning involved"_ : one probaby wants to cross-validate K at the least, if not learn the metric.

Some methods say online learning isn't applicable. As pointed out elsewhere, objectives for K-means and mixture models could be fitted with stochastic gradient descent. In general there is always an online option. For example, keep a restricted set of items and chuck out ones that seem less useful as others come in.

(Aside: I have a _very_ introductory lecture to machine learning on the web: <http://videolectures.net/bootcamp2010_murray_iml/> — not for anyone that knows the methods on this cheat sheat!)

<comment><AUTHOR> Thanks for the comments!

Good point about using cross-validation to learn K, I forgot about that. I added this to the cheat sheet.

Also regarding online learning methods, I was probably a bit quick to dismiss certain algorithms as not supporting online learning; in coursework we unfortunately didn't have time to delve into all aspects of all algorithms. I've rewritten the Online column as "To be added." for those online methods I'm not familiar with (yet). Someone else is, of course, free to fork it on Github: <http://github.com/Emore/mlcheatsheet>

</comment></comment><comment><USER7> Nice summary; I like the format as well. However, the title of the cheat sheet is misleading since (a) many of the algorithms listed can be used for non- linear classification and (b) some of them can be considered supervised learning, such as naive Bayes and perceptron since they're trained with sample inputs and expected outputs (supervisory signals).

Otherwise, this is awesome. Hopefully you will add to it, and make it available in web form.

<comment><AUTHOR> Thanks for the feedback!

I've changed the title to "Algorithms for Supervised- and Unsupervised Learning", which is definitely more appropriate. Initially the cheat sheet only contained linear classifiers, hence the misleading title.

</comment></comment><comment><USER8> Fantastic work, I have an ML exam coming up and this should really help. If I'm honest its one of the subjects I've struggled with the most. It seems experts in the field while incredibly intelligent, have a hard time breaking the material down into structured and easily digestible pieces of information.

</comment><comment><USER9> No idea what i'm looking at but it definitely looks cool.

</comment><comment><USER10> I'm taking this class next semester, downloaded it so hopefully I'll understand it later and it will come in use. Thanks!</comment>


Show HN: HTTP Mock – Intercept, debug and mock HTTP(S) with zero setup - <AUTHOR> https://httptoolkit.tech/mock/ <comment><AUTHOR> Hey HN! I've been building this for a while, but up until now it's been a read-only HTTP debugging tool, and today's my first foray into proper mocking, which opens up a whole new world of fun (and practical use cases).

Let me know what you think :-)

<comment><USER2> I hope this works out! Using fiddler us such a frustrating experience. The documentation is practically non existent and the ux is atrocious, and as far as I can tell the closest thing to a manual is a paid ebook by the developer (I was so pissed when I discovered this). I would be very happy to have an open source alternative!

<comment><USER3> If you think Fiddler sucks get a Mac and try using the tools available there like Charles Proxy. Ugh.

<comment><USER4> Curious about this comment. I'm a Mac user and a Charles user. I find it to be a great tool. Why the negativity?

<comment><USER3> It's extremely hard to use compared to something like Fiddler, especially when you are doing more than just tracing.

</comment></comment></comment></comment></comment><comment><USER5> I understand why you're doing it, but the download link redirecting me to an email capture page is quite jarring. If your download link is at the top of your homepage, and there's more product details below that link, it's pretty typical to hit download and assume it's a normal download link while you read the rest of the page. An easily dismissible modal would work better (or put an email capture in your app on first-run)

<comment><AUTHOR> Hmm, interesting. I really just did it without much thought, I didn't think it was particularly unusual behaviour.

That said, this completely makes sense, I'm definitely going to look at that. I could fairly easily swap the 'sign up for updates' in directly in place of the download button when that's clicked I think, which would avoid the extra page and the modal all together, make everything much nicer, and still give keen users a clear opportunity to properly follow the project.

Thanks! Great point.

<comment><USER6> I don't see too much of a problem, just that if the download link does not come up right away (this could be caused by a user's browser settings or connection speed, which are beyond your control) it looks like they have been taken to a "Here, have some spam instead" page. I would just switch the position and styling of "Sign up for updates" and "You are now downloading..." so that confirming the download request is the primary message on the screen. You could also ask a user to wait three seconds and make them look at your (now less prominent) appeal to sign-up for emails while they do so.

The project looks very nice and I do a lot of HTTP work so I will try it out today. Good work!

</comment></comment></comment><comment><USER7> _THIS_ would have been nice to have at the beginning of the summer.

The tests I wrote tested the boundary between my code and the HTTP library but the API I was writing against wasn't particularly well behaved and so that wasn't quite enough.

</comment><comment><USER8> How is this achieving https interception with zero setup? Does that not require a system-level root CA to be installed and trusted?

<comment><AUTHOR> > Does that not require a system-level root CA to be installed and trusted?

No, happily :-)

The trick is that it starts the application to be intercepted for you, so it can control it a little. It then does some magic to get that specific instance of the application to trust the certificate. There's a lot going on there, but as an example: Chrome has a --ignore-certificate-errors-spki-list to inject the hashes of extra CAs that can be trusted in this specific Chrome instance. When HTTP Toolkit starts a Chrome process, it adds that command line option, with the hash of your locally generated CA.

There's nothing here with a lasting effect, and other running apps on your machine won't trust HTTP Toolkit unless you specifically configure them to. Only the processes spawned by HTTP Toolkit trust your CA, which avoids a lot of the downside of other similar tools like this.

<comment><USER9> So, I'm confused. Does this work on a set of programs where you know eg the right command line parameters to give them or on all programs?

For example, let's say I have a program which uses the openssl API to set a custom trust store. Do you mess with openssl to make sure your cert is in there, or will this break?

<comment><AUTHOR> It works on a set of programs, plus terminal interception that works on anything (more or less) that you spawn from the given terminal.

For that terminal interception, HTTP Toolkit injects a lot of environment variables, including adding some wrappers to your path, which allow it to inject into a _lot_ of places. It sets `SSL_CERT_FILE` for example, which reconfigures the default CA for any processes started from that terminal that use OpenSSL. Again, all scoped to just this one terminal window.

In the case where you specifically manage the trust store as you describe I suspect that'll break (the requests will fail, but they'll still appear in HTTP Toolkit as just 'Certificate rejected for ABC.com', without the full details). The vast majority of applications don't do that though; they rely on the environment to tell them who to trust, and HTTP Toolkit creates the environment. For specific cases that don't, I also include a bunch of extra overrides and injections, so if there's anything that comes up that doesn't fit it's fairly easy to work around it.

It's all open-source, so you can look through the specifics if you like. The core terminal interception setup logic is [https://github.com/httptoolkit/httptoolkit- server/blob/maste...](https://github.com/httptoolkit/httptoolkit- server/blob/master/src/interceptors/terminal/fresh-terminal-interceptor.ts). That spawns a terminal and injects the environment variables from [https://github.com/httptoolkit/httptoolkit- server/blob/maste...](https://github.com/httptoolkit/httptoolkit- server/blob/master/src/interceptors/terminal/terminal-env-overrides.ts), which notably add a bunch of things from [https://github.com/httptoolkit/httptoolkit- server/tree/maste...](https://github.com/httptoolkit/httptoolkit- server/tree/master/overrides) to your PATH/PYTHONPATH/RUBYLIB/etc.

<comment><USER9> At that point why not just LD_PRELOAD and hook the creation of all cert stores?

<comment><AUTHOR> I did look at it! It's still an option in my back pocket if I find things that don't work nicely, but right now this is much easier. I'd need to use LD_PRELOAD to hook lots of different libraries and tools (OpenSSL is just the start, and I also need to hook proxy settings), plus handle different versions of the hooked libs, and make it work reliably on Windows & Linux & Mac.

AFAICT, it's hard to do everywhere reliably for the general case, though as I say I might use it for specific niche cases later. At the moment there's zero native code required in this terminal hooking, which is very nice, and it's very nearly identical logic for all platforms too. It's not so bad, right now it's less than 1000 lines of code in total, and it works out of the box for Python/Node/Ruby/PHP/curl/npm/apt-get, etc etc etc.

<comment><USER10> An LD_PRELOAD approach would be useful for working around that flavour of certificate 'pinning' where the cert files are embedded in the application rather read from the filesystem. I don't know how common that is compared to the other pinning methods (public key pinning, hashing) but maybe you could make it work for those also. I guess you'd have to implement it for each individual library but does any other (free) mitm proxy offer this feature?

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Love it. We definitely need a fiddler in macosx.

<comment><USER12> Charles is pretty good, though it's paid. It's definitely nice to have an opensource tool, though.

<comment><USER11> Charles is okay. But when you have been used to Fiddler is hard to go back.

</comment></comment></comment><comment><USER13> Arch AUR package here everyone > [https://aur.archlinux.org/packages/httptoolkit/](https://aur.archlinux.org/packages/httptoolkit/)

`yay -S httptoolkit`

AUR is 0.1.13 and latest is 0.1.14 fwiw.

<comment><USER13> WOW. Just WOW. Easiest intercepter I have EVER used. (Charles, Fiddler, MITMProxy). After install I was able to edit requests and responses with the MOCK rules in no time.

The language was confusing but I got through it and WOW.

Nice job on the UI too, Linux UI's are hit or miss and HTTP Toolkit's is pleasant!

<comment><AUTHOR> Haha, thanks! Glad you like it.

When you say 'the language was confusing' though, what do you mean? I should fix that.

<comment><USER13> It has to do around intercepting the response body and resume vs edit wording. I'll try to submit an issue soon with more details.

</comment></comment></comment></comment><comment><USER14> There are full opensource alternative for this? I like the product, I'm testing it right now. But I'm curious if there is a way to accomplish something like this with existing opensource tools or a similar full opensource project.

<comment><AUTHOR> HTTP Toolkit is fully open source, primarily AGPL: [https://github.com/httptoolkit/](https://github.com/httptoolkit/). That includes the Pro version too - it's not open core, it's just open source all the way down.

There are other tools that exist anyway, but all the big ones (Fiddler & Charles, for Windows & OSX respectively) are very much closed source. The other similar open source competitor I'm familiar with is James Proxy ([https://github.com/james-proxy/james](https://github.com/james-proxy/james)) but that's now effectively unmaintained.

For comparison, using the internals of Fiddler by itself would cost $2,999 per application per year ([https://www.telerik.com/purchase/fiddlercore](https://www.telerik.com/purchase/fiddlercore)). The standalone internals of HTTP Toolkit OTOH are on GitHub: [https://github.com/httptoolkit/mockttp](https://github.com/httptoolkit/mockttp).

<comment><USER15> The parent was likely referring to AGPL, a somewhat-encumbered copyleft license, which most folks working in proprietary software are hesitant to touch. They are probably looking for a non-copyleft license.

Though, as a development tool, I don't see any issues using AGPL software.

<comment><AUTHOR> Could be! It's all open-source but actually not all AGPL: the core desktop app is, but the internal libraries like [https://github.com/httptoolkit/mockttp](https://github.com/httptoolkit/mockttp) are generally MIT or Apache 2, so if you're looking to dig into and use those internals, it's pretty thoroughly unencumbered.

It's really just the runnable desktop app part that's AGPL. That encumbers you if you're making a directly derivative work (no running off with the whole app but closing the source, thank you), but otherwise it shouldn't limit you at all. This isn't like using a (A)GPL library in your codebase; it's a full application and you're an end user.

</comment></comment></comment></comment><comment><USER16> Is this something that could be used in a CI pipeline as well?

<comment><AUTHOR> As a UI desktop app, not really, although it depends what you're trying to do. However, the internals are all open-source too, so you can use them standalone and automate HTTP & HTTPS with that. Take a look at [https://github.com/httptoolkit/mockttp](https://github.com/httptoolkit/mockttp)

<comment><USER16> I think (maybe postman) had a nice gui, and then the same mocks could be loaded up as part of a test. I was thinking more along the lines of how the application actually inspects network traffic, is that something that could be setup & torn down within a unprivileged docker container for example?

<comment><AUTHOR> Yes, that's exactly what you'd want Mockttp for.

It's a Node.js library, so you'd need a Node container and a little script to configure it. Mockttp can spin up an HTTP/HTTPS proxy configured to pass through traffic in a couple of lines, and from there you can add any other mocking rules you want (the Mock tab here is really just a UI over this) and you can subscribe to requests/responses/whatever and report that data elsewhere in any form you'd like (that's where all the data shown in the View tab here comes from).

The details get more complicated of course, but it's definitely possible.

</comment></comment></comment></comment><comment><USER13> Totally nice side effect. Since this launches "fresh Chrome/Firefox". I can use it to read all these paid news sites that track how many "free articles" I have and don't have to worry about resetting all my cookies. Just launch HTTP Toolkit then Fresh Firefox/Chrome, paste link and done.

<comment><USER17> You can also open the dev console and click "Clear site data". It won't evade complex tracking/fingerprinting techniques, but I don't think paywall sites use those to enforce the paywall (yet...).

</comment></comment><comment><USER18> Is intercepting Android traffic planned?

<comment><AUTHOR> Yes, definitely! You can follow progress by subscribing to this GH issue: [https://github.com/httptoolkit/feedback/issues/10](https://github.com/httptoolkit/feedback/issues/10) (or signing up to the general HTTP Toolkit mailing list ofc).

In the meantime, it's quite possible to intercept Android traffic, it's just that you'll have to do the proxy & certificate setup yourself.

<comment><USER18> That's great, thanks for the link! In recent Android versions it has become difficult to inspect the traffic precisely because certificates installed by users are no longer trusted, so one has to either root the phone or modify the apk.

Do you plan to automate app repackaging with the needed changes, or is there a better method for apps to trust local certificates?

<comment><AUTHOR> > Do you plan to automate app repackaging with the needed changes, or is there > a better method for apps to trust local certificates?

Eventually I'm aiming for the former, I'm fairly confident there is no better method. To start with, it'll be an Android app that configures your proxy settings (acting a VPN) and walks you through adding the certificate to the user store, and for your own apps I believe that's useful already: you just need to enable user stores in your app config ([https://developer.android.com/training/articles/security- con...](https://developer.android.com/training/articles/security- config#certificates)), and everything will Just Work.

For other apps though, on new-ish Android apps it's more difficult, as you say. My plan is to try and rewrite them, _probably_ as a Pro feature, but TBC. It should be a matter of:

\- Get hold of the app APK (I think you can pull it with some adb tricks, slightly unclear)

\- Edit the XML config to enable the user cert store, change the app id too (so it doesn't replace or have signature conflicts with the real app)

\- Repackage & reinstall the resulting APK over adb

I haven't tested this yet though, so who knows!

</comment></comment></comment></comment><comment><USER19> Would be cool to have something like this for debugging outgoing container traffic in Kubernetes.

<comment><AUTHOR> Docker is on the list: [https://github.com/httptoolkit/feedback/issues/1](https://github.com/httptoolkit/feedback/issues/1) (you can subscribe to that for updates). Would that work for your setup?

</comment></comment><comment><USER20> Is netflix's PollyJS also trying to solve this? [https://netflix.github.io/pollyjs/#/](https://netflix.github.io/pollyjs/#/)

</comment><comment><USER21> Thanks for the tool.

Is it possible for HTTP Mock to dump both the entire SSL session traffic, and the decrypted HTTP traffic (with fake tcp headers), to pcaps for future analysis?

</comment><comment><USER22> How does HTTP Mock compare with Proxymam.io? Your tool is promising with zero- setup, but it works with different macOS app, doesn't it?

I would try it tmr.

<comment><USER23> The first noticeable feature is that HTTP Mock is cross-platform and Proxyman is exclusively built on macOS.

I'm not sure how zero-setup works, but it's cool feature indeed. I was frustrated to setup those certificate on Fiddler. I suppose that Fiddler tends to expert users, not me.

</comment></comment><comment><USER24> How does this compare Fiddler?

<comment><AUTHOR> It has all the same core functionality, plus:

\- It's open-source

\- It's cross-platform

\- It can do all the interception setup for you, for a single specific target. Fiddler et al set the system proxy, so there's a lot of other traffic going on, and you then need to make applications trust the certificate manually too. Notably some apps (like Node) ignore the system proxy settings entirely, which means you need code changes. HTTP Toolkit does some clever injection, and skips all of that.

\- Nice & modern UI

\- Built in docs for all standard HTTP status codes/headers/methods/etc

\- The Pro features: validation & inline docs from 1400+ API specifications, testing & comparison of compression options, explanations for how your response will be cached & why (and warnings).

I keep meaning to do a proper comparison page (any day now), but that's the gist.

<comment><USER25> What about intercepting requests from other devices on the same network? Fiddler and Charles both let you set a proxy on Android/iOS devices pointing to your instance.

<comment><AUTHOR> HTTP Toolkit can definitely intercept Android & iOS or other network devices, it just can't do it for you automatically (yet. Watch this space: [https://github.com/httptoolkit/feedback/issues/10](https://github.com/httptoolkit/feedback/issues/10)).

If you want to do intercept something manually, there's general instructions under the 'Anything' interception option. In short:

\- Set the proxy on the device to point at your machine's local IP, usually on port 8000 (active port is shown under the 'Anything' option)

\- Trust the generated MITM certificate on your device, so you can intercept HTTPS too (path to the certificate also shown under 'Anything').

Fundamentally, HTTP Toolkit, Charles & Fiddler are all HTTP & HTTPS proxies, so they all allow intercepting the same things, it's just a matter of how easy the setup process is.

<comment><USER9> I know it isn't exactly what you're doing, but you might want to look at nogotofail on the Android side. It has all the per-app goodness baked in, and you could probably borrow its approach.

<comment><AUTHOR> Interesting! Yeah that definitely looks relevant, I'll take a look.

</comment></comment></comment></comment></comment></comment><comment><USER26> Am getting too many redirects opening that link

<comment><AUTHOR> Huh, that shouldn't happen! What browser & OS are you using?

<comment><USER27> I'm getting the same on Chrome/Mac. Requesting /mock/ just 301's me back to /mock/

[https://pastebin.com/vmgSU6nj](https://pastebin.com/vmgSU6nj)

<comment><AUTHOR> Hmm, no idea. I'm using Chrome on a Mac, and it works fine, and my analytics suggest at least 400 other Chrome+Mac users have been getting through, so it's not a general problem...

Any chance you can export a HAR from your browser dev tools and send it to email@example.com? There's something very odd happening there, could be a Netlify bug.

<comment><USER27> It's working now - nothing changed as far as I know on my end, but if it happens again I'll do that.

<comment><AUTHOR> How bizarre, might be a Netlify hiccup somewhere? No idea, but I'm glad it's working now!

</comment></comment></comment></comment></comment></comment><comment><USER28> why do I need to create an account for this?

gawd... I just need a Fiddler in macOS... one can't really improve what Fiddler provides.

<comment><AUTHOR> You don't need to create an account for this! Click download, use the app, it's fine.

You can provide your email after download if you want updates from the mailing list (or you can not), and you can click 'Get Pro' somewhere and provide your email if you want a paid Pro account. The core app will give you pretty much everything Fiddler does though, on Mac, and doesn't require your email or anything else.

</comment></comment><comment><USER29> For this type of HTTP intercept I like to use Fiddler and Charles.</comment>


IntentBox at London Startup Weekend - <AUTHOR> http://blog.intentbox.com/2009/11/intentbox-at-london-startup-weekend.html

<comment><USER2> We are building on top of Django, and currently have most of a prototype up and running.

...back to coding...</comment>


Sweden Stayed Open. A Deadly Month Shows the Risks - <AUTHOR> https://www.nytimes.com/interactive/2020/05/15/world/europe/sweden-coronavirus-deaths.html <comment><USER2> I think this is pretty fair. You can see people still did social distancing without gov't shutting down businesses, yet it did see an uplift in deaths compared to neighbors hit at the same time.

The proclamations of complete disaster were wrong at the very least. I think this soft reopening is where America is headed no matter where we are on the "reopening checklist" targets governors have set up. They will simply run out of time as fewer and fewer hospitalizations occur and people favor ending lockdowns.

</comment><comment><USER3> Is it a sprint or a marathon? If its a marathon, the sprinters won't look so good after the first mile. Although, the sprinters will look great before that.

Aside from that Sweden doesn't look too bad - certainly not as bad as the predictions of the naysayers. They "flattened the curve" and have not overloaded their health system. Many other countries with much tighter lockdowns have performed worse.

[https://ourworldindata.org/grapher/daily-covid-deaths-per- mi...](https://ourworldindata.org/grapher/daily-covid-deaths-per- million-7-day-average?country=BEL+CAN+FRA+DEU+ITA+ESP+SWE+GBR+USA)

Germany and Belgium are outliers in the graph. They are each at opposite ends of the spectrum with regards to how they count covid deaths.

Note the graph is not normalized for time of onset.</comment>


A distraction free GUI for hugo(http://gohugo.io/) - <AUTHOR> http://kubopaper.com/ <comment><USER2> Personally, I've been using Haroopad as my long-form Markdown editor ( [http://pad.haroopress.com/](http://pad.haroopress.com/) ). Good side-by-side preview, and I also run Hugo in server mode to double-check things. Haroopad sadly hasn't been updated in a couple years, but it works well enough for my purposes.

</comment><comment><USER3> If it meets the guidelines, this should likely be a Show HN:

[https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

</comment><comment><USER4> Can anyone provide additional info before I give up my email address to chance? I'd be interested in this but not without details -- especially with the immediate email grab.

<comment><USER5> This usually means that the project is vaporware at this point but may be built if there is enough interest.

</comment></comment><comment><USER6> Please if you know anything like the product in OP, share it. I need this!

</comment><comment><USER7> forestry.io is a great one, too.

<comment><USER8> Thank you kindly for the heads' up.</comment></comment>