The Treachery of Image Files - <AUTHOR> http://beyondloom.com/blog/images.html <comment><USER2> > Despite frequent threats by the developers to remove them, the GIMP > application had (at time of composition) some obscure and infrequently-used > features permitting the creation and manipulation of image files.

I chuckled.

</comment><comment><USER3> > Preview cannot save files in the Graphics Interchange Format (GIF).

It can, actually, you just need to hold done ⌥ while clicking on the file format picker. (Perhaps Apple thinks demonstrating the true capabilities of Core Image would blow the brains of Preview's users.)

<comment><USER4> Useful to know, shame I'll forget about it again in a few days time :)

<comment><USER5> Glue down your Option key and you're set!

</comment></comment></comment><comment><USER6> Context (?): [https://en.m.wikipedia.org/wiki/The_Treachery_of_Images](https://en.m.wikipedia.org/wiki/The_Treachery_of_Images)

<comment><USER7> You cannot eat the pipe in the picture.

</comment></comment><comment><USER8> I wonder if there are any real programmers out there who have decoded GIF by hand. The IETF is clear that the header should be 6 7bit bytes (GIF##a), and the ends with `\x00\x3b`.

without LZW, it should be trivial to append a frame to an image. its so hard... instead of downvoting me, does anyone know of a good/simple example of this in C/python or anything? array2gif[1] is pretty close.

1: [https://github.com/tanyaschlusser/array2gif](https://github.com/tanyaschlusser/array2gif)

<comment><USER9> Don't know a simple example: when I did trivial encoding[1], it was by reading the spec. Dim memories for keeping it simple: choose an advantageous bit depth and palette so your non-lzw'd data can trivially be written out bytewise per pixel. If you can control width to avoid line padding, even better.

(Yet dimmer, possibly false, memories: by taking advantage of LZW literals, I think it's possible to unencodedly write supposedly encoded blocks?)

[1] 10-50 lines of python, depending upon fanciness, IIRC

</comment></comment><comment><USER10> #0000FF has really seen a resurgence as of late, it is brilliant to see this medium executed by a master.

However, where does one go from here? Does it become old hat? I hear some Avant-garde types are beginning to explore post-blue ideas. #333333 has a romantic bleakness to it that I would love to see explored.

<comment><USER11> #0000ff00, zero alpha blue, or as I've taken to calling it: post-blue. You cannot see the blue, but it exists in our shared conciousness and we know it is there. The opacity only adds to the tension when imagining the hidden pigment.

<comment><USER12> > You cannot see the blue

Oh my. One should not so blithely confess that they can't see The Emperor's New Blue. Such a shame.

</comment></comment></comment><comment><USER13> I enjoyed the writing and exploration of different image creation formats. So novice question, but are the resulting GIFs actually _different_ (and if so, how)? Or is this just different ways to generate identical output?

<comment> yjftsjthsd-h I saved the whole page in order to grab the images all at once, then used md5sum:

        [images_files] 0 $ md5sum * | sort
        4a93faba1d6abc2f3c0fa4a925a23a4c  viii.gif
        672b8ee4b7e2893f209dd66eeb368744  ix.gif
        7005d06133499ca4d1e6d1b265adea83  ii.gif
        784f2d5bc7cb0cdce826fb656896c034  v.gif
        8e39d526b119fabfacb259d53eb89140  vi.gif
        9d2e88d7588d5e22c9d51d6b005034fb  vii.gif
        9f55b70b1564ab62faafbf37f311c5c0  iv.png
        b67f99e04dc8720d5846b818e86ecd39  style.css
        eb42e0f64ece46753a7aeba4fe3149a6  i.png
        f346c6fbe6fa659b6020c75c579084de  iii.gif

So I'd say no, they're different for some reason. Sizes vary a lot, too. Unfortunately I don't even know where to begin telling _why_.

<comment> em-bee they probably have different metadata. if you convert all of them to png, do they still differ?

<comment> yjftsjthsd-h There are already 2 pngs in that list, and they already have different md5s

<comment> em-bee that could be caused by different compression levels or other artifacts in the metadata.

my expectation was that in the conversion, metadata and possible artifacts that stem from different tools used to create the image would be normalized.

in the sister reply diggernet choose even better formats than png as conversion targets, and answers the original question in this subthread

</comment></comment></comment></comment></comment><comment><USER14> "Macintosh Operating System X Mach-O Gnu's Not Unix-based assembler" and "Gnu's Not Unix Plotter" ?

But:

      % as --version
      Apple LLVM version 10.0.1 (clang-1001.0.46.4)
         ...

and gnuplot (famously) isn't part of the GNU project.

I know, missing the point, but those jarred - was that deliberate by the artist, or a mistake? In either case, it seems to distract from the overall artistic intent.

<comment><USER15> _> was that deliberate by the artist, or a mistake?_

If you have to ask this, you don't know the art world. Artists don't make mistakes.

The proper way to ask is "was this an attempt to communicate X, or simply an acceptance of Y?". If the latter, or if the answer contains "I was fascinated by the results" or "I found the result even more enlightening", you have your answer.

<comment><USER14> I have been enlightened - thanks!

</comment></comment></comment><comment><USER16> This is so cool. I like this guy's work. I want to see this stuff in a gallery. I mean that, I'm not being flippant or facetious.

</comment><comment><USER17>
      /* XPM */
      static char * treachery_xpm[] = {
      "10 10 1 1",
      "       c #0000FF",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          "};

X Pixmap format. Save as treachery.xpm. (Made using Gimp, because it was faster than writing by hand. Sorry. But I have generated large pixel files programmatically in the X Bitmap format, which is similar but only one bit color information. Easier than writing a GIF.)

</comment><comment><USER18> This is brilliant. In some ways, it reminds me of the musings about "Voice of Fire". Mostly over my head, but somehow made me smile.

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

</comment><comment><USER19> On the first one I was like, wha... but by the second and beyond I was getting a good chuckle. Great satire.

</comment><comment><USER20> For, um, future reference, here's a minimal[1] RGB TIFF version suitable for assembly with _nasm -f bin_ :

            db    'II*',0         ; header
            dd    ifd             ; offset to IFD
      xres: dd    72,1            ; XResolution value
      yres: dd    72,1            ; YResolution value
      bps:  dw    8,8,8           ; BitsPerSample value
      data: times 100 db 0,0,255  ; image data
      ifd:  dw    (next-ifd)/12   ; IFD entry count
            dw    256,4           ; ImageWidth tag, type
            dd    1               ; ImageWidth count
            dd    10              ; ImageWidth value
            dw    257,4           ; ImageLength tag, type
            dd    1               ; ImageLength count
            dd    10              ; ImageLength value
            dw    258,3           ; BitsPerSample tag, type
            dd    3               ; BitsPerSample count
            dd    bps             ; BitsPerSample offset
            dw    259,3           ; Compression tag, type
            dd    1               ; Compression count
            dw    1,0             ; Compression value, padding
            dw    262,4           ; PhotometricInterpretation tag, type
            dd    1               ; PhotometricInterpretation count
            dd    2               ; PhotometricInterpretation value
            dw    273,4           ; StripOffsets tag, type
            dd    1               ; StripOffsets count
            dd    data            ; StripOffsets value
            dw    277,3           ; SamplesPerPixel tag, type
            dd    1               ; SamplesPerPixel count
            dw    3,0             ; SamplesPerPixel value, padding
            dw    278,4           ; RowsPerStrip tag, type
            dd    1               ; RowsPerStrip count
            dd    10              ; RowsPerStrip value
            dw    279,4           ; StripByteCounts tag, type
            dd    1               ; StripByteCounts count
            dd    ifd-data        ; StripByteCounts value
            dw    282,5           ; XResolution tag, type
            dd    1               ; XResolution count
            dd    xres            ; XResolution offset
            dw    283,5           ; YResolution tag, type
            dd    1               ; YResolution count
            dd    yres            ; YResolution offset
            dw    296,3           ; ResolutionUnit tag, type
            dd    1               ; ResolutionUnit count
            dw    1,0             ; ResolutionUnit value, padding
      next: dd    0               ; next IFD offset

[1] Source: page 24 of [https://www.adobe.io/content/dam/udp/en/open/standards/tiff/...](https://www.adobe.io/content/dam/udp/en/open/standards/tiff/TIFF6.pdf)

</comment><comment><USER21> Ceci n'est pas une bleu

</comment><comment><USER22> am do a confuse :(</comment>


Fastest way to find out if a file exists in S3 (with boto3) - <AUTHOR> https://www.peterbe.com/plog/fastest-way-to-find-out-if-a-file-exists-in-s3 <comment><USER2> Caveat emptor - List does not have read-after-write consistency. See [https://forums.aws.amazon.com/thread.jspa?messageID=687028#6...](https://forums.aws.amazon.com/thread.jspa?messageID=687028#687028)

I've seen this issue numerous times in production. I've been quietly waiting for AWS to fix it :)</comment>


SpaceX Starlink Mission: Livefeed - <AUTHOR> https://www.youtube.com/watch?v=AfbIMknNWks&feature=youtu.be <comment><AUTHOR> This is the live feed for the 2230 EDT scheduled liftoff of a two-stage SpaceX Falcon 9 rocket carrying the first 60 satellites of the Starlink Internet- satellite constellation.

Read more here: [https://www.space.com/spacex-starlink-internet-satellite- lau...](https://www.space.com/spacex-starlink-internet-satellite-launch- today.html)

See SpaceX Twitter feed for updates: [https://twitter.com/SpaceX](https://twitter.com/SpaceX)

Update: Success! Satellites are deploying: [https://twitter.com/SpaceX/status/1131765246664646657?s=09](https://twitter.com/SpaceX/status/1131765246664646657?s=09)</comment>


How to change your life and become a developer without going to university - <AUTHOR> https://medium.com/@KeepCoding_/how-to-change-your-life-and-become-a-developer-without-going-to-university-79993c275939 <comment><USER2> AKA: how to provide a lot of work to security engineers, pentesters and security researcher for a long time.

</comment><comment><USER3> TL;DR: This post is just an extended ad for a code boot camp. Flagged.</comment>


Speed reading images in under 4000 characters of code - <AUTHOR> https://medium.com/@vahidfazelrezai/speed-reading-images-in-under-4000-characters-of-code-8cdc6f384743 <comment><USER2> Great concept, but why just images? It should be comparatively trivial to enhance it to accept text files, PDFs, etc. I hope the 4KB limit target didn't mean an artificial limitation on the feature set.

</comment><comment><USER3> THIS IS COOOL</comment>


Show HN: Nomino, a cool name for your product - <AUTHOR> http://carrapide.com/nomino/ <comment><USER2> It'd be cool if it didn't suggest names that very obviously don't sound good in (at least common) non-english languages, eg., I got "culojoo" as a suggestion for 3 syllables, which won't sound good in Spanish at all.

<comment><AUTHOR> Names are totally random, not checked against any dictionary, that's what I thought was fun. It would be hard to appreciate the goodness of a name, at least programmatically, how would you do that ?

<comment><USER3> He's saying be sure the generator doesn't sound like a bad name in any language.

I'd say make a dictionary of bad words and their syllble sounds. Then disallow close Levienstein based words....

<comment><USER4> Levenstein is an absolute metric, I think something like soreson-dice would be more useful.

Regardless, if you take the short keywords and blacklist them by approximation with curse words from several languages I think it would be really hard to get something at all.

</comment></comment></comment></comment><comment><USER4> Looks pretty cool, I've been playing with it for a while now, too bad the refresh button is so small on mobile.

Mind if I steal the concept for namegrep.com? :)</comment>


Visionati releases image/video recognition API that accepts crypto currencies - <AUTHOR> https://www.prnewswire.com/news-releases/visionati-releases-worlds-most-powerful-image-recognition-api-300934449.html <comment><AUTHOR> More information is available on the website: [https://visionati.com](https://visionati.com)

Docs are at: [https://docs.visionati.com](https://docs.visionati.com)</comment>


Review my startup: HelloFax, the easiest faxing service on the web - <AUTHOR>

www.hellofax.com
There are some huge online faxing players, like eFax, but we're trying to emphasize usability in a way that none of the other players are doing.
1. If you were making the ideal / online faxing startup, what would you do?
2. A different business model? -The standard model is users pay a monthly X dollars for Y faxes, usually around $10 for 400 faxes.  But, these players lose out on lower volume customers who don't want to pay monthly rates -Skype-style pre-charge with the option of a monthly rate for those who want a unique fax number.  20 cents a page. But, if a user spends $10 in one month, we give him/her a few hundred free pages for that month. -What do you think?
3. What features would it take to get you or people you know to use it?
-We're thinking about different "killer features" we could use to pull people in.
If you want to test hellofax, it comes with 3 pages automatically. But, ping me at email@example.com and I'll give you more credit.
I really, really appreciate feedback.  Thanks for reading. <comment><USER3> I love this idea. I keep asking friends about a reasonable online fax service, and the only one that keeps coming up is eFax, which seems good for businesses, doesn't seem to serve individuals well.

Most of us never need to send faxes, until we need do. When we need to deal with faxing, it's likely related to some event. A job offer, housing paperwork, refinancing, etc.

I would love the following two payment options:

\- $1-$5 to send a fax. This seems totally within reason. Driving to find someplace with a fax, waiting in line, exposing your document to some clerk, etc. The one-time fee gives me the service I want with no commitment.

\- $10-$20 for bigger faxing 'events'. I should be able to send unlimited faxes (which in reality will be <10 but makes me feel better they are not metered) AND have a temporary incoming fax number that I can receive faxes on, which forward to an email address. This service could be available for 30 calendar days from the moment you buy.

Nail those two things and I think you've nailed the modern use cases for faxing.

<comment><AUTHOR> This comment is really, really helpful.

-We get the one off faxing market.

-But, we continue to pursue the business part of the market as well.

I was talking to my co-founder about having a free, advertised tier as well. We don't do random adds. Rather, we do cover page which talks about hellofax. Might be a good way to expand our user base. What do you think?

I appreciate the feedback!

</comment></comment><comment><USER4> I'm a fan. I'm from a niche market who need to receive faxes more than I send them. I'd kill for a small, annual plan that just lets me receive without signing up for monthly payments or attaching it to sending credits.

A la carte all the way. I'm unsure if competitors offer this.

Hope this helps.

<comment><AUTHOR> Very helpful. Thank you!

</comment></comment><comment><USER5> Useful startup. I had to send a fax recently to renew my SSL cert - and a lot of your competition are sharks - trying to trick people into paying monthly (and making those subscripts hard to cancel).

So, some practical advice:

* I would implement Amazon FPS. Your target audience is likely to have an Amazon account - so FPS would make it quick and easy to pay.

* I would keep the per-page model.

* I couldn't see an email-to-fax feature, but that would be a useful one.

<comment><AUTHOR> Thanks for the advice. The monthly fees kept me from online faxing for a long time.

-Definitely. For payment, we were thinking of pay pal, amazon, and google checkout.

-Email-to-fax feature. Great to hear. That's one of the features we have listed. We're just waited for comments like this one to implement it.

-Per-page model. \--->Out of curiosity, how much would you or other people be willing to pay per page?

</comment></comment><comment><USER6> I like it! I've had to use one of the other online faxing services a couple times lately and a per-month fee was way too much for sending a whopping two faxes.

</comment><comment><USER7> I have been an eFax user for many years. I completely overpay for the service (monthly charge) since I only send a receive faxes occasionally. Neverthless I still need the service for the sending of fax from my computer and the receiving of faxes into my computer. I no longer own a fax machine. I would like to see a side by side chart comparison between your service and eFax to help make a decision to switch.

<comment><AUTHOR> Yeah, eFax is definitely on the pricey side. We only send faxes for the moment. So, if you need to receive, you can stick with them. But, when we have that feature, I'll let you know and make a side by side comparison with eFax.

I appreciate the feedback.

</comment></comment><comment><USER8> As far as pricing, you may have to do better.

Outgoing: I use greenfax.com for sending 7 cents per page, 5 cents per page after with no setup fees.

For receiving, used Packetel for unlimited fax-to-email (PDF) for $3.95/mo, they have since been acquired so now I use: Popfax $5.49/mo - <USER2> incoming

I suppose if it's easy to use on a web browser, it may not be too bad.

<comment><AUTHOR> For greenfax.com, did you charge your account with $25? I can see why they made it that high. Otherwise the transaction fees really eat into revenues.

Popfax: 5.49/month for unlimited receiving. That's not bad.

What would we be the model that would sway you to combine the service into one? Is it mainly a money proposition or could we add value in another way (Apple computer style ) that would make some extra money worth it?

</comment></comment><comment><USER9> I use onesuite.com to receive faxes. They charge $1 per month and forward received faxes by email. There is no per fax fee.

The thing they are missing is a way to send faxes. I usually go to Kinko's and spend a dollar a page to send. I guess if I used it more I'd think about optimizing.

<comment><AUTHOR> Thanks for the feedback. Does that come with a unique phone number as well?

I'm curious, if you could change something to make onesuite into an awesome fax service, what would it be?

<comment><USER9> OneSuite doesn't let me send faxes. For receiving it seems to be fine. So if they enabled sending that would make them awesome. Since they don't, next time I have to send a fax I'll try HelloFax.

<comment><USER10> Check Onesuite fax page to see the fax feature with sending capability <http://www.onesuite.com/products_OneSuiteFax.asp>

</comment></comment></comment></comment><comment><USER11> I love this. I don't usually have to fax stuff but, when the need arises (usually 4-5 times a year), this is how I'll send them.

I've used a few of the other online services before but canceling a monthly plan was like pulling teeth. I love the idea of being able pay by the page.

</comment><comment><USER12> I can't say enough how much I love your design. Super simple, super sleek, just awesome.

</comment><comment><USER13> We were joking that we were going to try to pitch a fax-based startup to VCs this year - just to see what their reaction would be.

Actually this is kind of cool though :)

I think if you keep it simple and convenient, it's nice.

<comment><AUTHOR> Haha. With some VC cash in the pocket, we could really run fast with this. But, something tells me this isn't up their alley :)

</comment></comment><comment><USER14> How much is your rates? Can you do a prepaid plan like Onesuite? Onesuite rates is good for both medium and low volume users. Also how about sending international fax?

<comment><AUTHOR> Your account is one day old. Are you trolling?

</comment></comment><comment><USER15> As for features, drag and drop to attach files ala GMail would be excellent (if it doesn't already work).

<comment><AUTHOR> Will write that down. Thank you.

</comment></comment><comment><USER16> Clickable:

<http://www.hellofax.com>

</comment><comment><USER17> when i signed up the password was in plaintext..

what are the country restrictions?

<comment><AUTHOR> Thanks! We'll fix that.

So far, we only allow faxing to the US. But, if there is interest, we plan on expanding to other countries.

</comment></comment><comment><USER18> I use Grasshopper, but they can't send a fax. This looks like a service I was looking for a couple of months ago, but couldn't find.

Everything wanted me to sign up for $5 a month or more. Or I could send one fax for $3 dollars. I forget the exact numbers, but I remember being annoyed.

You are now bookmarked! Though, you'll be lucking to make $10 per year off me given my limited faxing needs.

<comment><AUTHOR> Thanks for the feedback! I'm a huge, huge fan of Grasshoper.

I have a quick question for you. We can make the service cheap, but credit card transaction fees get expensive. If it were available, would you be willing to pre-charge your account with $5 or $10? What would be your ideal cost for faxing?</comment></comment>


I could do that in a weekend (2016) - <AUTHOR> https://danluu.com/sounds-easy/ <comment><USER2> To OP's point of "features are more complicated than they appear" I always like to point to the flowchart of Slack's notification logic.

[https://pbs.twimg.com/media/C6ROe0mU0AEmpzz?format=jpg](https://pbs.twimg.com/media/C6ROe0mU0AEmpzz?format=jpg)

<comment><USER3> This was actually less complicated that I had expected it to be.

<comment><USER4> Yes, this is what my co-workers refer to as an if-statement.

<comment><USER5> All programming is just if statements. That doesn't mean systems can't be complex.

<comment><USER6> Not true; if the conditional branch goes backward then it's a (possibly do-) while statement. Also subroutine calls.

<comment><USER7> Counternitpick: Those subrouting calls and while statements are compiled to conditional jmps. If you squint your eyes it's just a fancy 'if'.

<comment><USER8> "It's no use, @a1369209993 - it's IF statements all the way down!"

Apologies to William James' apocryphal quote.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I wholeheartedly agree, to a point. Sometimes hideously complex things look so easy because really smart people came up with a particularly elegant solution, so any rando off the street sees it and figures they could reproduce the thing.

However, I worked for a company who had a whole team of engineers and QA people working for months on what was basically a Django CMS, but with a large dose of "not invented here"-driven writing of everything from scratch. I'd finally gotten tired of it, so I spent a weekend at home implementing it in Django and being done with it.

I did learn two very important lessons, though:

\- The other stakeholders _really_ did not like someone demonstrating a working prototype of something they'd been doing unsuccessfully for months, and I got a thorough chewing out for disrupting their processes.

\- I really didn't want to work for such an organization, and was much happier after moving to a smaller, more nimble company.

<comment><USER10> From my experience, when I'm working on real world problems of nontrivial sizes and I see a big chunk of well organized, like a really well organized service, almost always it's because that was the latest cleanup/refactoring effort that happened after many years when the problem space was a moving target, and finally it stopped changing long enough to come up with a clean abstraction.

The cleanest code I've ever written has always been on the second or third try. Write it once, test it against the real world, then rewrite it to take the new discoveries into account. It's too bad we rarely have the luxury of breathing room to rewrite things.

<comment><USER9> I wholeheartedly agree. This was a brand new project, though.

<comment><USER10> Indeed, upon reread I think I responded to what I thought you said, not what you actually said.

Anecdotally, "not invented here" is consistently the most egregious source of unneeded complexity I've seen in my career.

</comment></comment></comment></comment><comment><USER11> There's always two things that these armchair quarterback software devs seem to miss: Scale and Money.

Sure you can hack together a small Google clone using Elasticsearch in a weekend. Can you index all the worlds information and serve the worlds search needs with your little MVP? 99.99% chance no, even if you were given a few hundred engineers to scale it.

Even if you could do it technically, where are you coming up with the money to do so? That's not seed-round or even series A round money to do that. That's series D, hundred+ million dollar swipes of a VC's credit card just to get off the ground. Microsoft threw billions at it with Bing and still never became more than an also-ran. The only place that seems to have a real chance is DuckDuckGo, and I'd be very interested to see how their story has played out up to this point.

Google benefited greatly from growing as the web was growing. Trying to index the world's information in 2020 is an astronomical task compared to indexing the world's information in 98, 99 era.

<comment><USER12> > Scale and Money

This is too simple of an answer. By these metrics Google+ would be a success. Also, the total funding amound of DDG is 13M (see Crunchbase). While that is serious money, that's not series D money.

Moreover, there are counterexamples of companies that did build an app in a relatively short amount of time, kept a small team and made millions per employee. I don't know of many [1], but I think WuFoo is an interesting example, founded in 2006 while SurveyMonkey was founded in 1999. WuFoo exited for 35 million in 2011 with a team of 9, I think (there's a YC YouTube video about this somewhere).

Disclaimer: I'm an armchair quarterback.

[1] I don't know of many tech companies in general.

<comment> drevil-v2 WhatsApp is another example. I believe it was 13(?) employees, $16 billion exit and close to a billion users worldwide

<comment><USER12> Yea, also pretty small scale-wise, from what I've heard.

</comment></comment></comment></comment><comment> gustavo-fring There is a lazy argument that ignores the difficulty and hard work of putting out not only a working but a good application out, but the other end of that is using Dan's argument (which is valid), to dismiss criticism.

To wit, Google has 80k employees now, in 2010 it was at 10k and the number only drops as you go further back. I think it's pretty easy to say that Google was doing more impressive things at the beginning of the century, and certainly the climb was greater. Within the last five years, there was a moment when Google had 4 competing chat apps. This is pretty rank inefficiency. If you were to take 80k people (not all are engineers, obviously) and sit them down and ask them to use their talents to build separately, you'd end up with a lot more innovation and productivity, I'm pretty certain of that.

The entire point of a minimum viable product is not that you have a complete, flawless app, but rather that you get something up you can iterate on quickly. That can be built in a weekend (I'm a slow worker, but I know people that can do crazy stuff in a night and interest). My personal criticism (and something I'm testing), is that our current processes are not harnessing all the gains in productivity we've seen over the decades, nor the ability to do that because it is very cheap to do so is not happening on a large scale. It's not totally apparent why it is happening, but it isn't.

I realized late that people take this criticism personally and feel like you're saying they are stupid or don't work hard or it is all so easy, but I ask you to consider the nature of our industry and how easy things are to build and then ask you why we don't see real competition across so many products.

The moats of many companies are perceived. The goal isn't to build Google in a weekend, it's to take the first step and give yourself an opportunity.

edit: my numbers are off, it's 25k to 100k

<comment><USER13> > _I think it 's pretty easy to say that Google was doing more impressive > things at the beginning of the century... Within the last five years, there > was a moment when Google had 4 competing chat apps. This is pretty rank > inefficiency. If you were to take 80k people (not all are engineers, > obviously) and sit them down and ask them to use their talents to build > separately, you'd end up with a lot more innovation and productivity, I'm > pretty certain of that._

You're misunderstanding how large companies operate.

Their job is not to produce massive innovation -- that's what startups are mostly for, because most innovation actually fails in the market. Once innovation is proven, a big company like Google or Facebook can buy it to scale it larger and with less risk than the startup could have on their own.

Google's job has been to increase revenue, and they've been doing a great job at that. The productivity increase happens from building enterprise features, hiring gigantic sales teams, etc. Building Google Cloud.

And separate chat apps is necessary when WhatsApp and Slack and iMessage are eating your lunch. You can't risk having a single chat app that fails -- so you build one (Duo) that competes with WhatsApp and iMessage, another (Hangouts Chat) that competes with Slack, without pulling the plug (yet) on the legacy Hangouts.

So if you took all 80k people, as you suggest, you'd wind up with a mess of startups which will mostly fail. You're not going to wind up with Google's actual increases in revenues, that's for sure.

<comment> gustavo-fring I understand that's how lots of big companies operate, but I disagree that's how companies have to or should operate. The 80k thing isn't he notion that you'd get 80k success stories (you won't), but rather that if you had a .01% success rate, you'd still end up with 8 successful companies out of that, and the market is big enough for those 8 companies doing different things, making lots of money, and creating jobs/value. But more importantly, I feel like it would be better for us as societies.

<comment><USER14> Google Ventures already spends $4.5 billion on that very thing? And there are tons of other VCs and incubators out there?

</comment></comment></comment></comment><comment><USER3> I'm obligated to post a reminder that sometimes your team _is_ horribly bloated or incompetent or your choice of technology is wrong, so make sure you're actually doing useful things before feeling relieved that you're invincible. Sure, nobody is going to upend your business in a weekend, but there's been many, many examples of a company doing this and then someone working by themselves for a couple of months or years (usually, this is just someone who actually bothered to care enough to spend time on the problem) comes along and does far more than they thought was possible. Stay on your toes!

</comment><comment><USER15> I wonder about this as an efficiency thing. Instead of search, let's use a charity as an example. Why does XYZ charity need a zillion people? Why does it spend so much on TV ads? The answer tends to be that hiring more people and advertising more brings in more net dollars. You add and add until the marginal cost of another ad/hire/whatever matches the marginal gain. It makes total sense for the charity to do this, but as a potential donor, now less of your dollars go to the thing you care about and more go to admin, advertisers, etc. It's like friction in the system. To compete with you, now other people have to spend on ads, and the whole ecosystem is less efficient.

I think there's an analogy here for for profit companies. Maybe if instead of adding a tiny marginal dollar for BigCo, you could add a big marginal dollar for SmallCo, and society's per capita productivity is lower? I can't pinpoint whether the analogy works for companies, but I suspect it does.

</comment><comment><USER16> The author's website is an example of a product that is "done in a weekend".

It is very annoying to this post on a 28" monitor... the text runs from left to right with no margin spacing.

<comment><USER17> A certain set of people take enormous pride in using unstyled HTML like this. (See "Motherfucking Website" [0])

The problem is it's not 1994 anymore, monitors are no longer 800 pixels wide, so it looks like shit and is impossible to read. It's well accepted that 70-90ish characters per line is best for readability, and instead now on an average monitor unstyled HTML gives you like 250.

[0] [https://motherfuckingwebsite.com/](https://motherfuckingwebsite.com/)

<comment><USER18> I solve this problem using a bookmarklet [0] which automagically applies sane css to websites like these.

It's insane that it's 2020 and some people still refuse to use CSS haha

[0]: [https://oxal.org/projects/sakura/bookmark](https://oxal.org/projects/sakura/bookmark)

<comment><USER19> What is insane is that peoples user-agents do not format documents the way their users want.

<comment><USER20> They're getting better with reader modes, I just which they could remember what pages were in reader mode and be less picky about when it's available. Some default syntax highlighting would be nice too.

</comment></comment></comment></comment></comment><comment><USER21> So yes. I'm a big fan of avoiding the hand waving and garbage like that when describing/specing a product's behavior. Features are always more complicated than the elevator pitch, there are edge cases, points of integration with the rest of the system, etc. So yes, things are almost always more complex than they appear.

But also, no, I've definitely seen a lot of companies with an insane headcount simply to "do more in parallel" or "deal with the complexity of the system". Sometimes, having too many people to keep busy is really bad.

</comment><comment><USER22> God. I remember reading this a year ago.

I've been working on TinyDev for about...two months longer than I thought I would have, and I still have probably a month left to go before it's completely ready. Just the amount of ops work you need to do in order to lock down your stack is absolutely insane. That's assuming you invest in ops work in the first place, which many places don't, hence technical debt and war rooms and fires and the slowness of project management resulting in massive backlogs and the like.

I'm going to do a writeup hopefully up this weekend on backend level to VPC level work, just so that I can lock in my learnings. What I can say now is, the only easy day was yesterday.

</comment><comment><USER23> A little line-height and content max-width could go a long way

<comment><USER24> Because the content is just simple HTML, it's amenable to the reader view option available in most browsers.

<comment><USER25> You can put some simple CSS and still leave the simple HTML available to be styled by the browser's reader mode.

<comment><USER26> You're never going to please everyone. I've seen HNers complain about the opposite, that they have a large monitor for a reason and the web designer has wronged them by adding margins.

Anyways, I think we're all big boys and girls who can figure out how to use reader mode or resize a window in 2020. That's the whole beauty of the web browser.

</comment></comment></comment></comment><comment><USER27> I like the post but it does somewhat miss the point of these comments when they're made. It's not usually someone saying they could rebuild the whole site / product / company in a weekend but rather challenging the value that everything beyond MVP is adding and all the staff that go into supporting everything beyond MVP.

Companies tend to vastly over-complicate things and to support that end up having ever growing teams to support the ever growing over-complexity and feature bloat.

I can't tell you the number of times a team has said it takes so long to deliver something with 3x the number of engineers because they need more testing, backend and such but meanwhile the core product features that customers care about are delayed and not materializing. It's not that these other things don't matter but all the "other stuff" shouldn't take priority over having a lean and mean product that works and people use.

Thus it's less "why does this company have 100 engineers" and more "why does this company not just exist as a far simpler and leaner product?"

<comment><USER28> _> "why does this company not just exist as a far simpler and leaner product?"_

I'm sure there are bloated teams, but apart from those the argument against a very lean product is growth of the consumer base. You make a lean product, get some users. They love it. You do a little research into customer churn though, or followup on marketing efforts to people that didn't yield, and find out that feature X is a common thread: you don't have feature X. So you build feature X. You gain incremental customer & revenue growth as a result. Then the process begins again. The problem is that at some point you reach a point of diminishing returns, and if you don't recognize that point, you'll still go over the bloat line.

</comment></comment><comment><USER29> Great read. HN and reddit comments like the post title always irks me whenever a product is talked about in here or in reddit.

<comment><USER30> I would find it hilarious to throw a QA team at one of those weekend builds.

<comment><USER31> Hey, now. I built a PHP CMS for my friend's university club website 12 years ago in a weekend. It had user accounts, profiles, user posts. That's pretty much proto-Facebook, right? I could just scale that up to a billion users, right? /s

</comment></comment></comment><comment><USER32> To make this website readable in Chrome, load the page, type "javascript:" into the URL bar (it can't be copy-pasted there), paste the following paragraph after that text, hit enter.

document.body.style.cssText = 'max-width: 35em; margin: 0 auto; padding: 1.5em; line-height: 1.4;'; 0;

In Safari, Firefox, and Edge, I recommend just using reader mode.

</comment><comment><USER33> Someone with considerable but realistic skill _could_ build a passable approximation of a lot of successful web apps in a weekend, and a very small team of good people could probably build a production-ready version in a month.

It's the other 95% of what the original business did to become successful that usually gets overlooked.

</comment><comment><USER34> The community solved this generations ago with one phrase: "Talk is cheap. Show me the code."

I guess now that we know it's more than just the program, the startup adage equivalent is "Talk is cheap. Show me the product."

</comment><comment><USER35> Most of the big sites _were_ built by a couple of coders in a few weekends. Google was online a few months after the page rank paper was published. Twitter took a small team a couple of months for the initial release. Zuckerberg famously wrote facebook in a couple of weekends.

Most of the explosive growth of those companies was built on essentially weekend projects by a handful of coders, or even one person.

You absolutely can write a billion dollar app in a weekend. If you have the right idea at the right time, with the right connections.

<comment><USER36> The entire point of the article is that the long tail of things to do grossly outweighs the happy-path MVP...

</comment></comment><comment><USER37> Should be marked "(2016)"

</comment><comment><USER38> About _non-algorithm_ competitive advantages. It's easy to switch search engines, so google invests madly:

Capital - massive capital investment in data centre around the world, for low latency, particularly for Google Suggest. Capital is an enormous barrier-to- entry for web startups. Google made search capital-intensive.

PR - consumer habit, supported by those myriad projects that position google in consumer minds as "leading tech company". It matters that you are the best; it matters that decision makers know you are the best.

Data - being first gives you a headstart, but competitors will catch up if you don't run at least as fast (and ways to improve that consumers care about - more running track). If you can something you have to do this that competitors lack, it's easier. So google madly collects data, and uses it to e.g. NLP of queries

Backend - Sergy did a lot with little hardware in the beginning, and that has continued, I believe including their own silicon.

All that gives google time to rival better search - and money buy it.

</comment><comment><USER39> The article seems to argue that

1) there is no viable search competitor to Google, therefore

2) search must be a much harder problem that takes more engineers than we expect, therefore

3) it's hard to reproduce Google's success because you can't actually do what 10^n engineers do in a weekend.

I think that's plausible, but it needs to be emphasized that search could very well be not that hard, but no one has overtaken Google because they have inferior marketing, distribution, present too high of a switching cost, etc.

Just because Google has a bunch of engineers solving that problem (and reproducing what Google does seems complex for correct reasons pointed out in the article) doesn't mean that the engineers are actually adding that much marginal value. My guess is that even if Google invested less in search engineering, and didn't solve real time indexing and some other edge cases this well, it would still be leading the field.

<comment><USER40> Part of the challenge of competing, is that it's so easy for Google to adopt good features from other search engines.

I'm not sure what to call these, but you know the rich results Google searches provide these days? Like showing the definition of a word, or a snippet of data from Wikipedia off to the side of the main search results. It's a useful feature, and it was first developed by DuckDuckGo not Google. But it didn't matter, because it was so easy for Google to adopt a feature like that into their own product.

</comment></comment><comment><USER41> I was in a meeting where someone from the business side complained that we were taking too long developing the feature and said "I wrote the same thing at my last company and I did it in one night while watching TV."

My boss paused for a minute and then asked "What were you watching?"

</comment><comment><USER42> Except when Uber and Lyft were kicked out of Austin, ride austin was up in a matter of weeks

<comment><USER43> Ride Austin is wonderful, but does not do the same thing that Uber and Lyft do. Namely: they're only in Austin.

Additionally, from their own site: [http://www.rideaustin.com/faq](http://www.rideaustin.com/faq)

> How much has it cost to build RideAustin?

> The tech community contributed technology to power the app that costs > millions to develop - but it also took over $7 million in cash donations and > significant in-kind services donations to make RideAustin what it is today.

That is non-trivial.

</comment></comment><comment><USER44> It's all fun and games until it's time to scale, which comes with the need for monitoring, versioning, scaled rollouts/rollbacks, DoS protection, replication and distribution, and the long tail of bugs.

</comment><comment><USER45> [https://en.wikipedia.org/wiki/Coastline_paradox](https://en.wikipedia.org/wiki/Coastline_paradox)

The devil is always in the details.

</comment><comment><USER46> I was recently reminded of this while reading posts on hn wondering why Lyft and Uber have thousands of engineers and what do they do all day.

I wonder if this was reposted here for the same reason.

</comment><comment><USER47> People make the mistake of saying "I could build GMail in a weekend!", when they really mean, "I could build _a web-based email system_ in a weekend."

</comment><comment><USER48> Discussed at the time: [https://news.ycombinator.com/item?id=12626314](https://news.ycombinator.com/item?id=12626314)

</comment><comment><USER49> "except that when you talk to companies that handle their own billing, they can point to individual features that increase conversion by single or double digit percentages that they can't get from Stripe or Braintree"

Kinda intrigued as to what that means? What features in the billing increase conversion by percentage points, but are not available via an outsourced payment provider like Stripe?

<comment><USER50> They lose customer data and then end up in newspapers.

</comment></comment><comment><USER51> Except that Google didn't become #1 by having better support for Arabic and Japanese than Yahoo/Lycos/Dogpile.

</comment><comment><USER52> I never have this problem because it always takes me solid weeks to properly design and implement a single new feature in my photo editor's user interface. Sure, I could slap something shitty together in a weekend, but then you have a shitty UI and people complain about open-source software UI enough already.

</comment><comment><USER53> I've heard plenty of comments like that. People often trivialize things they don't understand. As a developer I tend to focus on that one feature I know how to build and ignore the rest.

Or in other words - it's easy to bake a bread loaf but running a bakery is much more complicated.

</comment><comment><USER54> This article would be better if be didn't use Google indexing Twitter as an example, since I can never ever find tweets I remember on Google.

</comment><comment><USER55> The other is "why so many employees." As if one guy writes Salesforce in a weekend and then that's all there is to it.

</comment><comment><USER28> I could have written this blog post in a weekend.

(I know, downvotes incoming. Worth it)

</comment><comment><USER56> It's not trivial to build google.com? No shit, Sherlock.

</comment><comment><USER57> Except I actually could build StackOverflow in a day. Less than that actually, just need some fiber and coffee.

</comment><comment><USER58> There is a simple recipe:

1 part arrogance.

1 part optimism.

1 part naïveté.

Do not over mix. Bake half way.

</comment><comment><USER59> This is overly simplistic. There is plenty of great services that can be done in a weekend. And some very elaborate engineering projects with tiny traffic. When people wonder "why they need so many programmers", sometimes they are right. They hired them to stop them from building competitors.

<comment><USER60> > They hired them to stop them from building competitors

If that were true, wouldn't you have to hire every developer who could possibly build your app in a weekend to succeed at that? It just takes one to start a new competitor.

Building a new competitor is more than just a matter of code, there are often network effects, a lot of marketing, and often still a cost to switch from a less than optimal but good enough solution to an optimal one.

<comment><USER61> You're not wrong, but neither is the OP. Sometimes big companies simply buy out startups so they can maintain market dominance - whether they be direct competitors or new emerging markets.

You see this with Facebook buying Oculus in 2014, Microsoft buying Skype in 2008, Google buying Waze in 2013, Apple buying Shazam etc.

Also this is not privy to the tech industry. Large companies of all sorts of industries use the growth by acquisition strategy.

</comment></comment></comment><comment><USER62> > But in the comments on Alex's posts, multiple people respond and say that > Lucene basically does the same thing Google does and that Lucene is poised > to surpass Google's capabilities in the next few years.

Let's first build a benchmark. Without it, you're basically in the dark.

<comment><USER63> Well that's just reinforcing their point. Do you have any idea how much Google spends on creating some semblance of "search quality benchmarking" that actually means something? I'd venture it's way, way more than you imagine.</comment></comment>


Study: Renters in high-rent cities are as NIMBY as homeowners - <AUTHOR> https://www.cambridge.org/core/journals/american-political-science-review/article/when-do-renters-behave-like-homeowners-high-rent-price-anxiety-and-nimbyism/72B5F7B4CFEC099E9EC4A7A1EAD8611D <comment><USER2> I live in Oakland and am a member of a few groups that give me a look outside my usual wealthy tech bubble to the sentiments of the lower income folks here. There is HUGE resistance to new development in Oakland among the very people who are being priced out. But unlike property owners who tend to resist new development because they worry about supply pushing prices down, many of these people seem to see an opposite correlation: that new development means higher rents, which displace them and their communities.

I think this is simply a misunderstanding of how development works. They see rents going up, and new buildings going up, and assume that the new buildings are the cause of the increase, not a response to the increase. They think we need to build more below-market rate units, because the luxury ones raise average rental prices.

But really, the shortages which create high prices are what create the business case for building expensive luxury condos. If rents weren't already high, these buildings wouldn't be built. If the demand is there but not the supply, everyone at the wealthy end of the spectrum will take all of the supply, leaving the poorer ends out of a home. So the more market rate units we have, the more lower end units that are available. Seems simple to me, but a lot of people seem to get this wrong.

They have this idea that there are a bunch of wealthy and greedy developers out to get them and their precious neighborhoods. The buildings these developers start have a shockingly high rate of spontaneous combustion in Oakland, right when framing is complete.

I wonder if the property owner interests only encourage these mis-perceptions since they serve their interests.

<comment><USER3> The crowd tends to speak the truth.

People aren't dumb. The type of construction common today isn't in the interest of people who own single or <4 unit property or people who rent.

Developers are absolutely greedy and generally have no interest in the impacts surrounding their work. For most, their job is to gather capital, do a deal and gtfo.

<comment><USER4> Building high-density housing is certainly in the interest of people who rent, since more rental supply equals lower prices for rent.

But you're right that it isn't in the interest of people who own a property. Congratulations, you've identified the cause of NIMBYism!

<comment><USER3> It does not. Only one thing leads to lower rent in these cities -- real estate busts.

There are probably two dozen residential or mixed use skyscrapers alone being erected in Manhattan. The annual rents of 80%+ of these units probably exceed the median household income in Manhattan, unless they are directly subsidized.

The rents will come down when rates go up and overleveraged developers go bankrupt.

<comment><USER4> I don't think you completely understand supply and demand. If Mercedes makes more cars, that does not raise the price of a Toyota.

<comment><USER3> Unlike cars, there is a finite supply of real property, most of which is enjoyed by its owners for whatever purpose they choose.

To borrow your car analogy, there will never be a "Toyota" housing unit built in Atherton, CA or a few blocks from Rockeffler Center in NYC.

The current issues have more to do with a glut of cash than a shortage of housing.

<comment><USER4> >Unlike cars, there is a finite supply of real property, most of which is enjoyed by its owners for whatever purpose they choose.

In what world do you live in where the number of housing units in a city is bounded by some value? A cursory examination of any city's housing stock data would tell you otherwise.

>To borrow your car analogy, there will never be a "Toyota" housing unit built in Atherton, CA or a few blocks from Rockeffler Center in NYC.

This is like saying that when you go to the Mercedes dealership all you see is expensive cars, therefore there only exists expensive cars.

Each incremental Mercedes that is produced does not raise the price of a Toyota. In fact, the derivative of that price curve is most likely negative.

Why is housing any different?

>The current issues have more to do with a glut of cash than a shortage of housing.

I agree that low interest rates have exacerbated the situation, but the fact of the matter is that there is a net influx of people to large cities like San Francisco, and there is indeed a shortage of housing. Why you choose to ignore the data, I do not know.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> This is not at all surprising when one considers that most of the time housing intensification is focused around low income areas, and so new market priced housing goes hand in hand with gentrification and displacement of low income residents. Why wouldn't existing renters be opposed to this?

This wouldn't be an issue at all if municipal governments instead intensified housing in the _most expensive areas_ , but homeowners there are rich and capable of superior organization. For that reason you basically never see any attempt to upzone wealthy areas with low density detached housing.

The only available easy out for municipal governments is to rezone industrial land to residential and upzone it before anyone lives there.

<comment><USER6> I've always thought that cities needed to focus on redevelopment as a much broader, city-wide strategy. Instead of following trends of what the next "up and coming" neighborhood is, actually revitalize all areas of the city.

Right now, Chicago has maybe 6 neighborhoods that people from outside of the city consider moving to. This puts a ton of pressure on the rents in those few neighborhoods and their surrounding areas.

But if the whole city had proper services, transportation, properly maintained housing units and relatively low crime, that should ease the demand on those few neighborhoods.

Instead, people just move into one area until it's too expensive to live there, then get pushed into another area until it's too expensive to live there, and so on and so forth.

<comment><USER7> This doesn't work in practice. Places like Switzerland have all around good city strategies, yet finding a place to live is still super hard and super expensive. You can't even run off to the ghetto for cheaper options.

<comment><USER6> There are always geographic considerations that limit market availability, of course.

<comment><USER7> Its not even that really. They just do well overall. Even Renens outside of Lausanne, inconvenient in its location, is a nice place to live with decent public transit links. I guess you could try living farther away, but the train system even makes that viable. There is nowhere to get a good deal, except maybe France, but I doubt Evian is much of a deal, and that ferry ride across Lake Geneva is bound to get old eventually.

<comment><USER6> In that sense, it's the evidence of a strong economy. There's a lot of factors in play, like Switzerland having double the population density, but half of the income gap disparity. The United States has twice as many people living in poverty than Switzerland.

There's also the issue of how tourism affects local economies.

So yeah, it's a complicated issue.

<comment><USER7> > like Switzerland having double the population density, but half of the > income gap disparity.

If you build evenly gentrified cities, isn't that going to be the results anyways? (also, I'm sure the US has way more than twice the number of people living in property, perhaps you meant per capita)

But when I was living there, it was fairly stressful. I guess if I was a poorer resident rather than a relatively more well off post-doc, it would actually be easier to find housing since there would be some assistance at least.

<comment><USER6> > perhaps you meant per capita

Percentage of population, yes. 7% in Switzerland, 14.5% in the US.

> But when I was living there

Do you mean living in Switzerland or the United States?

<comment><USER7> Switzerland

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Of course they are, they don't want to get priced out of their neighborhood by gentrification. You can live in an undesirable area for 20 years and have somewhat stable rent, but once the area gentrifies because of a crunch on housing availability, a developer's going to start buying properties, slapping on a coat of paint, and doubling the rent.

It's happening _incredibly_ quickly in Boston's neighborhoods one by one. It happened to The South End, Southie, Jamaica Plain, Somerville (not technically Boston proper but 10 years ago they used to call it Slummerville), and now Dorchester and Roxbury are gentrifying.

I own a single-family house in a previously undesirable area, and on 2 separate occasions I've had developers come to my door cold trying to buy my single-family house to tear it down and develop on the property.

<comment><USER9> But new developments _lower_ rents, since they increase the housing supply.

But a lot of people simply don't understand this and fight development despite it being in their best interest.

 _Then again_ , I see that one of the two studies was done in San Francisco, and if the renters are in _rent controlled_ apartments, they don't have much reason to care about housing prices and can oppose development because they don't like change.

<comment><USER10> They only lower rent if they meet demand. If demand far outstrips supply, rent will continue to rise, just slower with new development.

<comment><USER9> They always lower rents, compared to if they hadn't been built.

<comment><USER10> Not if they _increase_ demand, as gentrification does!

<comment><USER9> I know people _think_ that happens, but economists haven't been able to see it.

What _does_ happen is that both housing construction and gentrification increase when the economy is going well. It's easy to think that one is causing the other when in reality they're both caused by an underlying factor.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> Link to paper: [http://mhankinson.com/assets/jmpWeb.pdf](http://mhankinson.com/assets/jmpWeb.pdf)

</comment><comment><AUTHOR> tldr; At the macro (city-wide) level, renters tend to be more supportive of development. But wrt development in their own neighborhood, renters in high- rent cities exhibit NIMBY-ism towards market-rate housing (associated with gentrification). Interesting that they don't mind more _affordable housing_ , which suggests that their concern is not simply economic but rather involving risk-aversion, fear of lesser quality of life, and gentrification.

</comment><comment><USER11> Renters and pro-growth, urban-minded owners would seem to constitute a majority in many of the highest cost parts of California. And yet my town recently passed a milestone of sorts: the principle and interest to buy the median home consume 100% of median household income, before taxes, food, or any other expenses. This study appears to explain how the current situation has come about.

<comment><USER6> California seems to have a (huge) added problem of speculative real-estate investment. The median price on a home will skyrocket if there's a significant amount of people who buy up properties for investment and not for use.

<comment><USER12> People buy properties as "investments" when they see prices rising constantly, not the other way around.

<comment><USER6> Sure, but it exacerbates the problem of rising rents.

</comment></comment></comment></comment><comment><USER13> Isn't the causational arrow in the other direction? If your polity didn't prefer to have high prices, you wouldn't have high prices. If you have high prices, _of course_ your polity prefers high prices.

<comment><USER14> It's surprising that renters would ever prefer high prices.

<comment><USER15> Prospective renters prefer low prices. Existing renters don't care, but they like the things that cause high prices.

The rent will not change for the life of the lease. Under rent control, the renter won't be much affected ever.

</comment></comment></comment><comment><USER15> This is due to rent control.

Renters become more like homeowners when there is rent control. They essentially have an investment to protect. Their immediate financial situation (rent being due, much like a mortgage payment or property tax) is unaffected by neighborhood changes. The enjoyment of their neighborhood is affected though, and they seek to maximize this.

The difference between the controlled rent and the market rent is in some sense an income that the renter receives from the landlord. The higher the market rate rent, the greater this income will be.

Long leases may have a similar effect; this is voluntary rent control.

<comment><USER16> Nope not due to rent control. It's due to things like it it taking me 45 minutes today to drive from my apartment to the bay bridge.

What I find annoying is the same people that are against rent control and zoning are also utterly against government providing basic public services such as buses, subways, and mass transit.

So developers build more office space, businesses add jobs, people get packed in tighter with no increase in transportation services to match. You don't need to be a renter or owner for that to rankle. And at least as a owner in theory the value of you asset is going up. As a renter there is no upside at all.

<comment><USER12> > What I find annoying is the same people that are against rent control and > zoning are also utterly against government providing basic public services > such as buses, subways, and mass transit.

I guess I must be the exception then. I am very much in favor of government spending on public transit (which is a reliably good investment in our economy) and generally against rent control (which is known to suppress the creation of new rental stock) except as a temporary measure.</comment></comment></comment>


Unknown USB Device (Device Descriptor Request Failed) Windows 10 - <AUTHOR> https://youprogrammer.com/unknown-usb-device-descriptor-request-failed-windows-10/ <comment><USER2> My son's Windows 10 Gaming PC had problems reading USB devices on some ports (His mouse and keyboard are USB based) but a USB thumb drive and WD Passport could not connect and we tried all of those things on the website linked here.

I changed my Windows 10 back to Windows 7 due to Windows 10 breaking some software I need. When I tried to plug the devices back into my Windows 7 PC I got the error it can't find the driver or read the USB device. The USB Thumb Drive got very hot and I had to unplug it, fearing it might start a fire. My WD Passport was the same way, can't access it and all the files I backed up to it are lost.

I'm not sure if my Son's PC had some sort of virus that infects USB devices, or an electrical problem on some USB ports? I don't want to keep trying different USB devices to figure out what is wrong with it.</comment>


Learn Spock, a Haskell web framework - <AUTHOR> http://www.spock.li/tutorial/

<comment><USER2> I have been using spock for a 2-3 end point website. It's good. Very simplistic form of web framework (along the lines of sinatra).

The docs should be a bit better, with some examples of how to use the database and session features. I couldn't figure out how to get the database pool to work with Persistent (a db mapper library).

I bet its obvious to somebody with more knowledge of the type system extensions used, but I gave up after playing with it for an hour or two.

<comment><AUTHOR> Did you look at [https://github.com/agrafix/funblog](https://github.com/agrafix/funblog) ? It shows how to use Spock with persistent.</comment></comment>


Truth about Defibrillators - too many fail at crucial moment - <AUTHOR> http://spectrum.ieee.org/biomedical/devices/the-shocking-truth-about-defibrillators/0

<comment><AUTHOR> "There are now 1.5 million AEDs deployed nationwide, five for each of the 300 000 people in the country who need them every year."

[...]

"Yet despite the enormous investment in these AEDs, the death rate from sudden cardiac arrest is no better than it was 20 years ago. It still kills more Americans than lung, breast, and prostate cancers and AIDS combined. Worldwide, it kills about 7 million people a year."

[...]

"In 1998, Washington state began a citizen defibrillation program that included advertising, public training sessions, and the creation of a detailed registry of AED locations around the state. The survival rate for witnessed sudden cardiac arrest in Seattle is now more than 45 percent, compared with less than 0.5 percent in Detroit and 4 percent nationwide."</comment>


'The Icarus Deception' By Seth Godin [video] - <AUTHOR> http://www.huffingtonpost.com/2012/12/31/the-icarus-deception-by-s_n_2389148.html

<comment><USER2> His use of Kickstarter was pretty interesting in this case. I think he funded the book in 2 hours and now is funded 10X what he was looking for. He proved demand before anything else, minimizing the blind risk for the publisher. Given the state of the book publishing industry, he could have created a new model for future authors/publishers.</comment>


The Lean Startup Video - <AUTHOR> http://www.performable.com/blog/the-lean-startup-video/ <comment><USER2> "While most of the customer development/lean startup process focuses on product development you can also apply it to your marketing process." Customer Dev / Lean start up is about marketing (ie finding a market) not product development

<comment><USER3> Actually Lean Startup is more the whole startup methology, about both the problem(customer development) and building the solution(agile, testing and leveraging oss/platforms).</comment></comment>


Action Script 3 Memory Management - <AUTHOR> http://tomgabob.blogspot.com/2009/11/as3-memory-management.html

<comment><USER2> I've been developing relatively large and complex games on the Flash platform for a while (see: <http://www.rocksolidarcade.com>), and if I put into words just how badly made I think the entire platform is, I would expect to get written off as a troll.

With that said, the garbage collection is actually pretty decent. It's one of the few (perhaps only) parts of the entire ecosystem where I've never found any hair pulling, WTF worthy bugs.

</comment><comment><USER3> > Making sure every "new" was matched by a "delete" was tedious but absolutely > necessary

Anyone who thinks this is necessary should check out boost::shared_ptr, weak_ptr, and scoped_ptr:

[http://www.boost.org/doc/libs/1_42_0/libs/smart_ptr/smart_pt...](http://www.boost.org/doc/libs/1_42_0/libs/smart_ptr/smart_ptr.htm)

C++ has been around long enough to have had several distinct epochs of style and best practice. It's not necessary to do much manual heap management in modern C++.

And the subtle upside of using ref-counting is that the ownership and lifetime of your data becomes self-evident in the types. It takes awhile to appreciate that, but it makes garbage collection feel a bit like dynamic typing: yes, it requires you to think less, and there are heroic, inspiring optimizations behind it, but ultimately makes it harder to understand the runtime behavior based on just looking at the code.

This post is interesting because he's identifying those limitations of GC: he's ending up having to add reference management to his GC code, by making sure to null out references, etc. It's nice to have the type system do that for you.

</comment><comment><USER4> I am really not sure about the tip #1. Isn't that the main advantage for GC when comparing to reference counting because it can recognize circular referencing etc?</comment>


Google has plans to deprecate cookies over http - <AUTHOR> https://github.com/mikewest/cookies-over-http-bad <comment><USER2> >> Should we special-case the cookie value "OPT_OUT"? It would be unfortunate indeed if removing old cookies meant that users who had opted out of interest- based advertising started being targeted again. Perhaps excluding the special value OPT_OUT (and asking advertisers to standardize on it?) is justifiable.

 _Still_ suggesting the Evil Bit? [https://www.ietf.org/rfc/rfc3514.txt](https://www.ietf.org/rfc/rfc3514.txt)

<comment><USER3> To be fair, the evil bit's a great idea; it just failed to get much support from the malware developer community.

<comment><USER4> Maybe they didn't ask them nicely enough.

Likewise, instead of using technical measures to stop websites from acquiring analytics, we can make them pinky-swear to delete out data. This simply cannot go wrong.

</comment></comment></comment><comment><USER5> Shouldn't the title have 'deprecate' instead of 'depreciate'?

<comment><USER6> They want them to last for less time. Perhaps that's the right word.

<comment><USER7> I think so as well. The intent of this write-up is explicitly to advocate for a practice to "Expire cookies early". "Depreciate" might not be the perfect word, but "deprecate" is outright misleading.

</comment></comment></comment><comment><USER8> Can we change the clickbaity headline? This is a Google employee, but there is no evidence in that repo that supports the claim that "Google has plans".

<comment><USER9> Speaking with some amount of experience working with people on that team: his role at Google is precisely what you see him doing here—deprecating insecure fundamental components of the web.

A proposal like this wouldn't have been approved for public release if the rest of the Chromium security team didn't see merit to it.

Everyone keeps calling him "some guy." Mike West is attached to a number of similar RFCs.

That all being said, I wouldn't immediately discount the idea even if it only turns out to be a research exercise.

</comment></comment><comment><USER10> Discussion thread on the blink-dev list here:

[https://groups.google.com/a/chromium.org/forum/#!topic/blink...](https://groups.google.com/a/chromium.org/forum/#!topic/blink- dev/r0UBdUAyrLk)

</comment><comment><USER11> Might cause an issue for WiFi access portals in short term. Not really related, more of a side effect of poor implementations. Some use cookies to route around settings, I've had trouble with in past.

</comment><comment><USER12> next step: disable javascript served over http

<comment><USER13> next step: disable javascript

<comment><AUTHOR> It's not the 90's... WebApps and PWA's require JS. And Javascript in browser is secure as it is sandboxed. Minute privacy concerns are not enough for 99.9% of the people to disable js either.

</comment></comment></comment><comment><USER14> plan? No, some guy has suggested it. That does not equal to plan.

</comment><comment><USER15> Should there be an official Google update or blog on this?</comment>


Without $20 million more, the search for planets like Earth may get derailed. - <AUTHOR> http://www.theatlantic.com/technology/archive/2011/09/nasas-planet-hunter-needs-money-to-keep-searching-for-earths-twins/245712/

<comment><USER2> Let's save these $20m to give Americans a well deserved tax cut of $0.06 per head</comment>


Show HN: 3D Raycasting Engine in JavaScript - <AUTHOR> https://ahuth.github.io/raycast/ <comment><USER2> Very cool!

I went deep down the rabbit hole with raycaster engines over the last 2 years. While this particular rendering technique has lots of limitations (like a fixed camera - unable to look up and down) it also has some interesting properties. Such as the ability to create windows, mirrors, and portals very easily by re-directing the way the rays fly.

I actually put together an entire game around this to test the limits of what I could achieve with raycasting. If anyone is curious you can see a video of it on my blog: [https://blog.sb1.io/gateescape/](https://blog.sb1.io/gateescape/)

What I think would be a great project is moving the casting and drawing part over to a compute shader. My engine is multi threaded and chunks the screen so each thread can do some section of the work. Unfortunately I want the engine to be cross platform, but Apple has made that rather difficult with the requirement of Metal going forward. If anyone has seen this style of raycasting implemented on a GPU I would be very interested!

<comment><USER3> Wow, that looks cool. Portals are a great idea and seem like the would be (relatively) easy to implement in a raycaster!

The simplicity of them makes them fun to experiment with: I used one in a Ludum Dare game ([https://www.mrspeaker.net/dev/ld27/](https://www.mrspeaker.net/dev/ld27/)) and made the field-of-view and movement speed a "mechanic".

<comment><USER4> I just finished your game, and it was really, really good! I love trippy, timey-wimey experiences!

</comment></comment></comment><comment><USER5> Very neat. Shameless plug: Things can get extremely minimal if you make the view frustum orthogonal and also use _raymarching_ instead, then the geometry (SDF) is very concise to define... a lot of the math disappears and the code gets super short... like 140 chars short:

      Spheres + Displacement
      https://www.dwitter.net/d/15947
      https://www.dwitter.net/d/15951

      Spheres Orbit + Fake Lighting
      https://www.dwitter.net/d/16192

      "Smoke" (3D perlin-esc noise)
      https://www.dwitter.net/d/16179
      https://www.dwitter.net/d/16169

      Snowman + Snow
      https://www.dwitter.net/d/16955

Not very practical for much of an engine of course, and also much slower than casting, but it makes it dead easy to understand by removing matrix transforms et al.

</comment><comment><USER3> Ha ha - very interesting use of React... I love that the columns are components!

Though my "negative nancy" comment would be that this is the wrong tool for the job (or at least, it could use a little renaming?) because after jumping from Scene to App to useCastRays hook... I finally found all the actual logic in "utils": which I'm always suspicious of ;)

Anyhoo - really cool, I'd like to see how the 2D sprites are integrated!

<comment><AUTHOR> Definitely a misuse of React! And for whatever reason, naming is always an issue for me. Need a better name than "utils" for sure.

One thing that surprised me about this is how fast the browser renders 320 absolutely positioned divs that are constantly updating.

But then I thought about it some more, and realized that many websites these days probably have way more DOM and DOM manipulation than that going on!

<comment><USER6> As a developer that uses react every day, I'm so glad it was used in this project because I was able to look at the code and understand it quite quickly!

<comment><AUTHOR> That's the reason I used React in the first place - because I'm very familiar with it. Made it easier to focus on the concepts, not the technology.

</comment></comment></comment></comment><comment> 0-_-0 Interesting trivia: The game Wolfenstein 3D originally used raycasting to determine visibility. Later, id software signed a contract with Nintendo for a SNES port, which they outsourced to a contractor while they worked on Doom. During this time Carmack realized that the same method won't be fast enough for Doom and started studying BSP [1] trees. Meanwhile, the contractor was unable to do the port because of the very paltform-specific code (heavy optimisations for the 386 and 486). So id software took time off from Doom and went back to do the port themselves, eventually succeeeding by using BSP for visibility and a lower resolution.

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

</comment><comment><USER7> A couple years ago I got bored on the train, and coded a simple ray-caster in Pico-8.

Ray-Casting is fun because it's a relatively simply algorithm to "rediscover", and can be coded in just a few hundred lines of code... I've debated making it a guided question to ask during interviews, though I've resisted thus far because I'm afraid it might be a bit too much for a junior candidate, and might be too easy for a senior candidate.

<comment><AUTHOR> My worry about asking it as a question is that because it's kind of esoteric, someone could have all the tools they need to implement it, and not know it.

That's probably where your guidance comes in, though.

<comment><USER7> Yeah, I wouldn't expect them to already know the way to do it, more of a "walk-them-through-it" question.

</comment></comment></comment><comment><USER8> Great demo.

A couple of years ago, I wrote a Javascript implementation myself: [https://github.com/avik-das/js-raycast](https://github.com/avik-das/js- raycast)

And then, when asm.js (precursor to WebAssembly) became a thing, I rewrote it in C and compiled it to asm.js: [https://github.com/avik-das/emcc- raycast](https://github.com/avik-das/emcc-raycast)

I'd already written a ray tracer (so a fully 3D renderer) prior to that in college, so it was fun to learn about a more limited algorithm that was better suited to older hardware.

<comment><USER9> What was performance like js-raycast vs emcc-raycast?

<comment><USER8> At the time I wrote those, I was actually surprised because I didn't see much improvement using emcc-raycast. In both implementations, you can see that I'm allocating objects/structs all over the place, so that probably brings down the performance.

</comment></comment></comment><comment><USER10> Nice. Not so long ago I was trying to make one without the grid layout, using lines instead. Never got the math quite right thou. Here's the link if you wanna take a look:

[https://github.com/victorqribeiro/myRaycast](https://github.com/victorqribeiro/myRaycast)

</comment><comment><USER11> These are fun!

Shameless: [http://www.dormando.me/post/fpga- raycaster/](http://www.dormando.me/post/fpga-raycaster/) \- I did one of these last year with an arduino using an FPGA as a weird GPU :)

</comment><comment><USER12> Also this -> [https://keithclark.co.uk/labs/css- fps/](https://keithclark.co.uk/labs/css-fps/) \- 3D using CSS :)

</comment><comment><USER13> Very cool but the WASD keys do not work on Firefox. Arrow keys work fine though!

edit: it suddenly started working after I switched to a different tab, and then back to the raycast's tab.

<comment><AUTHOR> That's weird. The WASD keys work for me in Firefox.

Do you have shortcuts bound to those keys? Maybe I need to preventDefault() on keypresses, or something.

</comment></comment><comment><USER14> Nice! A trick from Wolfenstein 3D to improve the look is to give all the north-south walls a lighter colour, and all the east-west walls a darker colour.

</comment><comment><USER15> Can you add virtual keys so I can play with it on my phone? I like raycasters, written a few back in the day :)

<comment><AUTHOR> That's a good idea. I'll do that

</comment></comment><comment><USER16> you're killing your stack with redundant recursion, here:

return findWall(map, position.add(deltaX, deltaY), deltaX, deltaY);

no reason not to loop here.

</comment><comment><USER17> Doesn't work with the arrow keys :(

</comment><comment><USER18> Oh wow, this is quite impressive.

</comment><comment><USER19> Looks more like 2d?

<comment><USER20> There is perspective, so it's 3D. Unless you are talking about the fact that your display can show only 2D images then you are technically correct since most displays are not 3D displays.

<comment><USER19> Perspective does not require 3d.

You can have perspective in flatland.

<comment><USER21> I think you're right, its a sort of pseudo3d. Its a 3D presentation of a 1D (2D environment) perspective. Cut a horizontal row of pixels from the center of the screen and you have its flatland point of view.

<comment><USER22> [https://free-visit.net/index.php/fr/demos](https://free- visit.net/index.php/fr/demos)</comment></comment></comment></comment></comment>


A Girl Who Codes - This is what change looks like - <AUTHOR> http://www.fastcompany.com/3021466/a-girl-who-codes

<comment><USER2> > Rau, in other words, is the very opposite of the sort of computer programmer > you would imagine: a guy with pasty skin who hasn't showered in days, > sitting in a dark room tapping away on a keyboard through the night.

I wish they would stop projecting such stereotypes of teenage male programmers. Isn't it possible to celebrate Rau and others like her without what seems like attempts at character assassination on male programmers?

</comment><comment><USER3> This article should be studied, not for being yet another post about the gender imbalance in coding, but for being an excellent example of how _not_ to write about this issue.

Apart from the somewhat historically inaccurate linkbait title "Computing has always been a boy's club", I noticed the following things:

* Note the contracts of the usage of _boys_ and _young women_. Although the term _girl_ is used throughout the article, whenever the author wants to refer to Nikita Rau or women coders in a more professional way she uses _young women_ , presumably because _girls_ is belittling. Yet, she frequently uses _boys_ in a somewhat derogatory way, e.g. "boy's club", "boy's are silly".

* It's understandable that Nikita uses a logo that targets women only, e.g. "bright pink, surrounded by pink dots", Girls Who Code uses pink extensively and after all it's her club. Yet, when boys react to feeling being excluded she resorts to "Boys are stupid, I think to myself, but Rau is Zen about it." How's this different than what's been done to exclude girls all these years from coding?

* The author uses the standard crude and uninformed coder stereotype "a guy with pasty skin who hasn't showered in days, sitting in a dark room tapping away on a keyboard through the night". Not only is this offensive to programmers out there and thereby makes her lose their support, she doesn't even begin to understand that this very stereotype she's using is one of the big roadblocks against having more women coders.

* A false dichotomy is presented to show the effectiveness of Nikita's education, presumably compared to standard coding education approaches as "Lessons were based in problem solving, not binary abstractions." It is argued (in a muddy way) that this is an important factor in attracting more Women to the field. No adequate reason is provided for this. It should be noted that such differences in learning between the sexes, even if they exist, should be taken into account but not stressed as that can lead to perception of women coders as being taught "programming light" and not the hardcore stuff.

* A couple of anecdotal overgeneralizations from Reshma Saujani, the founder of Girls Who Code are presented as truths, e.g. "The thing I struggle with is, girls have a natural inclination not to want to pick a job just to make money."

There are other points like this in the remaining part of the article but let me stop here.</comment>


Obama's plan to predict leakers unproven, isn't likely to work - <AUTHOR> http://www.mcclatchydc.com/2013/07/09/196211/linchpin-for-obamas-plan-to-predict.html

<comment><USER2> Ironically, this will just inform future leakers on how to effectively hide their behavior.

This is not unlike what happened with Jérôme Kerviel[0], the trader from Société Générale, who worked in compliance, learning all the ways in which the bank spots risky trader behavior and then used those lessons to hide his risky trades.

[0] [http://en.wikipedia.org/wiki/Jérôme_Kerviel](http://en.wikipedia.org/wiki/Jérôme_Kerviel)

</comment><comment><USER3> Treating the citizens as the enemy is one thing but treating your employees the same way is on a whole new level.

I'm actually interested to see how this plays out.

The only thing that is for sure is that the job won't get done if everybody is scheming and plotting against one another.

</comment><comment><USER4> My first thought is that this limits your employee pool to people who will put up with that type of environment. I don't want to have to inform on my fellow employees' possibly-suspicious behavior, and I don't want to live with the possibility of being investigated because someone else reported something benign I did that triggered some kind of behavioral flag. My personal increased disinterest in working for an intelligence agency is not exactly going to hurt their applicant pools, but a general attitude shift could.</comment>