Eric Schmidt Is Right: Google's Glory Days Are Numbered - <AUTHOR> http://techcrunch.com/2011/11/06/schmidt-right-google's-glory-days-numbered/ <comment><USER2> How much of Google's total revenue comes from iPhone searches that Siri would possibly redirect? Let's not forget that Google gets revenue from a great number of advertising markets.

They bought DoubleClick, YouTube, they have their own AdWords program. There is also Google mobile ads for both mobile versions of websites as well as Android. Android itself represents something like 40% of the mobile market.

Even on the iPhone itself, what does Siri redirect away from google? Restaurant queries. Some question answering queries. Appointments, playing music, setting timers, sending emails, none of those are relevant to this argument. The remaining queries all still go to Google and google gets paid for these either from it's API usage or from later ad impressions.

This argument was poor and full of hyperbole when it first appeared in the scene and it surprises me to see it continuing to make the rounds.

</comment><comment><USER3> I'm getting pretty tired of these "siri is our new savior" articles. Siri is a lobotomized brain dead service outside of the states.

In canada? "siri, where can I buy a candy bar?" > I'm sorry, I can't search for locations in canada "siri, where is the Tacoma dome" > I'm sorry, I cant search for locations in canada

Pull out my ancient google phone, hit the voice command button "where is the tacoma dome" > loads a google map centered on the tacoma dome

Google has had voice command for a long time now, they just didn't anthropomorphize it, they didn't give it a name and some sarcasm.... they just made it work... everywhere.

<comment><USER4> It's true, Google did made it work everywhere.

But I think Google should anthropomorphize theirs too. After all, people are used to talking to people.

<comment><USER5> But you cannot talk to Siri like you can talk to people.

The charade breaks after a short while. And after that, if you want to know the weather, you stop saying "Siri, what's the weather like today?". Instead you order "weather". Because you learned that this is what the "AI" triggers to show you the weather.

I think the question if people want to talk to their phone is not relevant today, because we do not have the technology yet to make the phone really understand what we are saying.

</comment></comment></comment><comment><USER6> There are problems with Google, and I don't disagree with the headline, but I don't see Siri as the disruption. Google already has voice search, and I am pretty sure they are working hard on getting it up to the user friendliness of Siri. They will 'catch up'.

The real question has absolutely nothing to do with Siri and everything to do with innovation in general. As long as Google continues to innovate they will be on top. Historically all companies eventually get too large and gunk up their own 'innovation machinery'. It's only a matter of time. Same goes for Apple.

<comment><USER7> Don't forget that companies are in the end made up of individuals. The key is when those individuals find it difficult or impossible to innovate within the confines of the company. This is what you should look for as it is the trigger that results in the inevitable downfall. The individual starts to look elsewhere (even starting their own company) and thus a new giant, monolithic corporation is born.

</comment></comment><comment><USER8> Anybody with an Android can tell you the threat of Siri is vastly overstated.

<comment><USER9> I have both an iPhone 4s and a Nexus S. The first thing I did when I got the iPhone was to play with Siri for an hour.

Only tonight did I realize that Android also has voice recognition, and it's pretty good. But the threat of Siri is very real, mostly due to Apple's marketing.

</comment></comment><comment><USER10> Well all that is true until Google launches something like siri but better, because they have been doing voice recognition and (of couse) search for long time.

<comment><USER11> Unless Apple has it patented up the wazoo. Which they no doubt do.

(As an aside; I think this is a completely fair use of patents. You're creative, you make a new patent, you get to exclusively use that technology for the next X years to build market share)

<comment><USER12> Which parts of Siri are so original that Apple deserves a monopoly on them for 20 years? Just take a second and think about how long 20 years is in software. Do you really think that no one else would have invented a similar product given 20 years?

<comment><USER11> Yes, patent lengths are rather absurd in this day and age. It should be on the order of 3 years. While it's easy for Apple to catapult new software into the market place, it can take several years for a small entrepreneur to market his technology.

</comment></comment></comment></comment><comment><USER13> Whoever wrote that article has only used an iPhone and the web just for some time now. From my point of view Siri is just a toy, yes, is cool, funny, smart but again, is just a toy, I couldn't really use it in real situation, probably Siri could disrupt the GPS manufacturers market as the only place I feel confortable talking with a device is in the car.

<comment><USER14> Re-read your comment, it sounds like the type of statement that is just ripe for foot-in-mouth syndrome 5 years from now.

<comment><USER13> Excuse my english, 5 in the morning, writing from a phone. Will try to rephrase that later.

</comment></comment></comment><comment><USER15> The ace up Apple's sleeve is their full hardware and operating system control on iOS devices. Siri is just another example of this. Third-party software on iPhone is sandboxed in many ways that give Apple apps a competitive advantage.

With regard to Siri and voice control, no third party app is allowed to respond to the critical press-and-hold-home-button shortcut. Another example is the hardware volume buttons, which Apple repurposes for Camera.app shutter control, but access to which was denied for the popular third party Camera+ app for that same purpose. Only Apple's Camera.app gets a lock-screen shortcut. Only Apple apps are allowed to access the carrier's SMS and voicemail. Only iBooks got access to real brightness control (may have changed in iOS 5). Only Apple apps can show a photo preview (e.g. MMS/iMessage) in a notification. Only Apple apps get to put widgets in the iOS 5 Notifications panel. The list goes on...

</comment><comment><USER4> Google has one advantage for the time being in being able to support more languages and regions.

My Siri can't give me directions or maps in Japan yet which is a bit of a disappointment. Hopefully it'll be rectified soon.

</comment><comment><USER4> I think the threat Siri poses to Google is that it relegates Google to the background.

People on Smartphones can ask a question of Siri in 2~3 seconds as opposed to typing that question in Google within 10~20.

And if Siri can't answer the question she offers to send you to Google without having to type that question again.

I've never used Android search before, but I hope it's as good as Siri if Google wants to stay competitive.

<comment><USER16> >People on Smartphones can ask a question of Siri in 2~3 seconds as opposed to typing that question in Google within 10~20.

Umm...Siri is cool, but that's not the advantage over Android. Android has had awesome voice recognition built in for ... over a year now? Not sure exactly how long, but my wife's dirt cheap ($150 with no contract) phone does voice recognition really well. I haven't had to type in a search query (with a 3G or WiFi connection active) since I got my new Android phone, either.

In addition to the basic Google search, it will send you to Google Navigation, send SMS messages to a friend in your contacts, and other things (I don't have the list in front of me). Siri adds to it by having a bit more context ("when I get home", for instance). It's cool, but it's not the voice recognition that's new. Except on the iPhone.

The big significance to Google is that it cuts them out of the iPhone search. But there are more Android phones than iPhones already, and the Android is growing faster, so that's becoming less relevant as well.

<comment><USER4> Sorry, maybe I didn't phrase my point correctly.

Since Apple controls the iPhone they can make it favorable for people to avoid visiting google.com and typing in their query (of course they can dictate that query too).

That's a very powerful position to be in.

Apple has demonstrated this by making Wolfram Alpha available for answering some queries.

I see Apple continuing on this road and maybe aggregating results from various search engines (including Google even) and presenting them outside of Google's format.

</comment></comment></comment><comment><USER15> Will Apple open Siri to third party developers before Siri is out of "beta"? It would be nice to be able to ask Siri to do something that involves an arbitrary third-party app. Maybe apps could register to respond to certain voice "intents", similar to Android?</comment>


Why and How to Start Your SICP Trek - <AUTHOR> http://hackerretreat.com/why-how-start-sicp/ <comment><USER2> If folks are interested in having a person to talk to while doing SICP, we're doing it in the iPad app we released last Thursday. We were going to do a Show HN, but hey, HN's already talking SICP!

Understudy: [https://itunes.apple.com/us/app/understudy/id782635884](https://itunes.apple.com/us/app/understudy/id782635884)

The setup is basically like private music lessons. We pair you with a somewhat more advanced student also doing SICP. The deal is to

(1) Work on SICP by yourself during the week

(2) Once a week, discuss the material with your more advanced partner. The app builds in a videochat + whiteboard communication tool (you can see it in the app screenshots).

(3) When you get about a month in, also start discussing with someone who is just starting out. When you help that person understand, it very much improves your own understanding.

Basically, it gives you good discussion with people who are genuinely interested in SICP.

We've been running it in beta for a while – see [https://twitter.com/understudyapp](https://twitter.com/understudyapp) .

<comment><USER3> Sounds like the learning equivalent of a Ponzi scheme ;)

In all honesty, though, this sounds like a really cool idea. I may check it out.

<comment><USER2> Yup, kinda! Except in a Ponzi scheme, value only flows down. Explaining something really straightens it out for yourself.

Conversation isn't zero sum.

</comment></comment></comment><comment><USER4> For a gentle introduction to functional programming and Scheme/Racket, check out [https://class.coursera.org/programdesign-002](https://class.coursera.org/programdesign-002) and the How to Design Programs book [http://htdp.org/](http://htdp.org/)

These can be good precursors before starting on SICP. I have to say, though, that I have never felt comfortable with LISP's syntax. The parentheses and the prefix notation are convenient for the parser, not the programmer. Pyret [http://www.pyret.org/index.html](http://www.pyret.org/index.html) might be a step in the right direction.

<comment><USER5> I am a big fan of HtDP, and Felleisen's in-progress 2nd edition of HTDP is here: [http://www.ccs.neu.edu/home/matthias/HtDP2e/](http://www.ccs.neu.edu/home/matthias/HtDP2e/) . It contains many improvements over the first (completeness however is not among them).

That said, HtDP's focus is very different from SICP, and I would not sequence one before the other. HtDP focuses on a methodology for writing robust maintainable software. It emphasizes specifications and testing and functional procedures.

SICP is focused on computer science and emphasizes much higher levels of abstraction - e.g. the *nix signal processing model, logic programming, constraint programming, stack machines and dealing with concurrency. It is more directly an introduction to Computer Science [despite Ableson's questioning the utility of the term 'computer science'] whereas HtDP is more of an introduction to the practice of programming.

Philosophically, SICP is ok with the idea of placing the student in over their head, e.g. the digital logic simulator and various mathematical examples treat digital logic and mathematics and banking as domain knowledge that the programmer might not have, but does not need in order to create sound abstractions.

[And Kickzales's course on Coursera was I awesome, I took the first version last summer.]

</comment></comment><comment><USER6> For anyone interested, Paul Snyder and I are running a SICP study group going on right now. We also have online and in person meetings in Philadelphia and King of Prussia. We are currently doing one minor section every month, which averages out to roughly one homework question every 3 days.

For anyone interested we will help you get setup and started, no prior programming needed.

We are running section 1.3 this month, so there is not much to catch up! Also, anyone who wants to work it their own pace is welcome too!

[http://www.meetup.com/Clojadelphia/events/172933722/](http://www.meetup.com/Clojadelphia/events/172933722/)

Paul hasn't put up the info for the 1.3 online session yet, join the Clojadelphia group to get updates when he does.

</comment><comment><USER7> When I first read the title/url I got excited. I remember on the thoughbot podcast, Ben Orenstein spoke about going to Cape Cod with some people to go through SICP in a nice but isolated setting. I thought something like that was being organized on a larger scale...

Still a very good article, with great arguments for why the book is a must- read. Great links too. I would also include something easy like Realm of Racket (or Land of Lisp) as a good first-date before shacking up with SICP.

Hacker Retreat does look great though. Wish I had the free time to give it a try.

<comment><AUTHOR> Can't say Berlin is an isolated setting, nor does it feel/look like Cape Cod, but it is nice - if you like cities, it's got something of everything. :) And the summer here is fantastic.

SICP is always "on" at Hacker Retreat - I've always got SICP buffers open. If you're able to work remotely from Berlin, consider coming to Batch-02 this summer.

</comment></comment><comment><AUTHOR> Author here - happy to answer questions and address feedback. I suspect I didn't explain Lisp-in-Lisp as well as I need to, but maybe it's enough to get non-Lispers intrigued. :)

<comment><USER8> what about the people who did not do a math major. Is this a book they can get through? I tried once and saw that I had to read two other books before I could even read chapter one. one for discrete mathematics and the other for calculus. do you have any tips for the people in my situation?

<comment><AUTHOR> Not sure without knowing more of your background - provisional answer is "maybe." Some parts of Ch.1 are certainly math-heavy. The video lectures are quite accessible. Did you study, say, ~1 year of calculus?

<comment><USER8> yes, 1 year of calculus. differentiation and integrals were the only two calculus topics that I recognized from that chapter. at the time when I was trying to get through sicp I wasn't sure whether the pay off was worth the effort of covering all those math topics and I wanted to learn other programming related topics as well with my time.

<comment><AUTHOR> At least up to 1.3.3, if you've already done single-variable calculus, the math isn't bad - it's stuff you likely saw before (if a while ago).

It seems heavier on math than it really is because (I believe) the authors want the reader to see the parallels between math notation (functional, declarative, concise) and Lisp implementation (also functional, declarative, and quite concise).

<comment><USER5> I agree, math is used as a domain for black box abstraction for the same reason banking is used for the example domain for concurrency and graphics for data abstraction - the domain provides good examples for trivial implementations.

A person no more needs extensive understanding of mathematics than they need such understanding of accounting or image processing.

</comment></comment></comment></comment></comment></comment><comment><USER9> Does anyone know of anything like SICP, but that integrates more type theory into it? Like an SICP for OCaml or Haskell?

Something challenging yet doable for a determined independent student.

<comment><USER10> This isn't quite about OCaml or Haskell, but might be relevant.

I've been looking around for a good way to learn type theory via self-study, and my current plan is to go through these courses on my own:

1) [http://www.cs.cmu.edu/~rwh/courses/typesys/](http://www.cs.cmu.edu/~rwh/courses/typesys/) 2) [http://ttic.uchicago.edu/~pl/classes/CMSC336-Winter08/](http://ttic.uchicago.edu/~pl/classes/CMSC336-Winter08/)

1 uses Robert Harper's _Practical Foundations for Programming Languages_ (and was taught by him) and 2 uses PFPL plus Benjamin Pierce's _Types and Programming Languages_. Both courses have lecture notes and readings for each session as well as homework assignments with solutions which ought to make them straightforward to go through on your own.

There's also these Type/Category/Proof Theory Foundations videos (with Robert Harper as well): [https://www.youtube.com/playlist?list=PL8Ky8lYL8-Oh7awp0sqa8...](https://www.youtube.com/playlist?list=PL8Ky8lYL8-Oh7awp0sqa82o7Ggt4AGhyf)

I found these by doing some Googling and evaluating various forums/Stack Exchange posts; if anyone has any better suggestions I would love to hear them. (I haven't done SICP in depth and now, of course, I'm considering putting this plan on hold and doing SICP instead...)

<comment><USER9> Thanks for the links -- wish I could take those courses in person.

I haven't found anything like SICP (thus my question), but I feel compelled to mention two great practical repos I discovered yesterday thanks to HN, both of which are teaching me a lot about practical type systems:

1\. [https://github.com/tomprimozic/type- systems](https://github.com/tomprimozic/type-systems) (great practical intro to Hindley-Milner and variations)

2\. [https://github.com/typeclassy/plzoo](https://github.com/typeclassy/plzoo) (collection of mini languages implemented in OCaml, many of which feature different type systems)

Edit: Can't reply to jcurbo yet, but I'd be really interested in that Haskell link if you can remember it.

<comment><USER10> Thanks, those are good links too. I seem to recall seeing something similar to the first link, except in Haskell, but I can't seem to find it right now.

</comment></comment></comment></comment><comment><USER11> Totally on a tangent, but I'd love to see a 'Hacker Retrete' style session targeted at hackers / devs that have jobs.

Something on the order of 1 or 2 weeks in length, super compressed that gives working devs a chance to learn something new or explore something outside of their normal job. I'd love to do something like this, particularly in an exotic location, but against a set amount of time that doesn't require me to quit my job.

<comment><AUTHOR> As a coding-vacation? Or as something that blends well with remote work?

We've adjusted the format of the current Hacker Retreat to accommodate people working (remotely, on their startup, etc) - 20% of your time is committed to learning, the rest of the time is up to you. The time-span is over 2 months minimum. We're currently taking applications for the Batch-02 starting in May/June.

Super-compressed, 1-2 week retreats are something we've thought about, especially for advanced topics like data science and functional programming...may do it later, but not this summer.

<comment><USER11> I was thinking coding vacation. I perform improv on the side, and it's not unheard of to have intensive 'improv camps' for adults over the summer where performers go for up to a week at a location to focus on improving performance skills.

I love the hack camp idea and chance to fully dive into something with like minded people, it just needs to fit into something I can spend my vacation days on.

<comment><AUTHOR> Yep, it would be fun to do that for code - we're thinking of different models and timings for Hacker Retreat. Consider sub'ing to our email list to stay in touch, thanks.

</comment></comment></comment></comment><comment><USER12> Our group, the LA Computer Science Reading Group has been interested in doing SICP for a while. For those in Los Angeles who are interested in joining us, here's the link to the meetup group: [http://csrg.org](http://csrg.org)

</comment><comment><USER13> I have a very specific question about starting out on SICP. A few months back, I worked through roughly half the exercises in the book. I got stuck on 2.2.4 (a picture language)[1] and was unable to run any of the examples or test any of the exercises.

Is there some prerequisite library for these exercises? Or am I missing the point and these are not actually intended to be run?

1\. [http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-15.html...](http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-15.html#%_sec_2.2.4)

<comment><USER14> I believe there is a language for Racket which has what you need in it, I used that when I got to the picture language bit.

Check it out here:

[http://www.neilvandyke.org/racket-sicp/](http://www.neilvandyke.org/racket- sicp/)

<comment><USER2> This works great, with one caveat: the picture language in SICP has built-in primitive images such as "wave" and "rogers".

The DrRacket SICP package has only one primitive image, "einstein".

<comment><USER14> I had to make do with Einstein. I also discovered afterwards you can copy and paste images directly into DrRacket and pass them round like anything else - you might (very big guess) be able to create the wave and rogers primitives this way.

</comment></comment></comment></comment><comment><USER15> The article recommends mit-scheme. Anyone know how to get that working as a Sublime Text build? From what I can tell, to invoke mit-scheme on a file, you redirect stdin, a la:

      mit-scheme < foo.scm

This doesn't play so nicely with the ST2 build system, which seems to assume the input will be simply be a filename arg. E.g., it's assuming you can do:

      mit-scheme foo.scm

<comment><USER16> Perhaps create a script that does just that?

#!/bin/sh

mit-scheme < $@

<comment><USER15> Well, that seems obvious in retrospect... ;) Yes, that works.

</comment></comment></comment><comment><USER17> As someone with fine arts background, does anyone have a suggestion for a text to get me quickly caught up on the math required for SICP?

<comment><USER2> It doesn't really require any math… some exercises and examples do require math, but you can just skip them. The first chapter has a lot more of that than the rest. It's very much not essential.

To give an example, the hardest math I can remember is one exercise where they ask you to _prove_ the equation listed if you search for "closed form" at [http://en.wikipedia.org/wiki/Fibonacci_number](http://en.wikipedia.org/wiki/Fibonacci_number) .

I'm relatively sure that the point of this exercise was just to drive home that performance characteristics of a problem can be non-obvious. We just finished making an O(n) implementation of Fibonacci numbers and feel pretty good about it, but oh wait, you can actually do it in O(1).

However, to literally answer your question, the math used in exercises mostly tops out at polynomial algebra (like, adding X^2 + 3 _X + 1 to 3_ X^2 + 3), with a little bit of calculus - namely taking derivatives (and maybe integrals? I forget) of polynomials. The calculus is not used to solve a problem - rather you're implementing a program that lets the user take derivatives of polynomials.

<comment><AUTHOR> I'd have to disagree - the math is important, and lays a foundation for functional/declarative programming. One major lesson of Chapter 1 (where the math is most evident) is conceptually tying math (and its notations) with functional, declarative programming. Math still shows up in Chapters 2 (e.g. generic operations, polar vs. rectangular coordinate system math) and 3 (streams). It can't be skipped over without missing a lot of lessons.

</comment></comment></comment><comment><USER18> Shameless plug - I'm making an interactive version of SICP where you can edit and run the code in your browser.

xuanji.appspot.com/isicp/

</comment><comment><USER19> Seems like a good idea, but it's horribly presented :-)

You should consider adding a TL;DR at the beginning, to explain what it is all about.

<comment><USER20> And the author may consider to keep the "quotes of famous people" part near the end or as an appendix.

</comment></comment><comment> brown9-2 Has anyone ever tried to read through SICP on a Kindle or other e-reader?

Or would it be pointless to read through the book without a REPL/command line next to it?

<comment><AUTHOR> Much better to have a REPL handy - like order-of-magnitude better. :) The further in the book you go, the more you need to write, run, tinker and test to check your understanding(s).

</comment></comment><comment><USER21> if you're in London and looking for someone to share in your SICP adventure, check out the London SICP study group: [http://www.meetup.com/London-SICP- Study-Group/](http://www.meetup.com/London-SICP-Study-Group/) we just simmered down for the time being, but parallel groups are planning to start soon.</comment>


Ask HN: Which static site generator is your current favorite and why? - <AUTHOR> There are thousands of static site generators to pick from and it is very confusing for a beginner. Which static site generator is your current favorite and why? <comment><USER2> In the Stay Static showcase [1] I've built the same (static) website with pages, posts and datafiles in 10+ versions (e.g Jekyll • Middleman • Nanoc • Webgen • Metalsmith • Gatsby • Harp • Nikola • Hugo • Jigsaw [2]). I'd say pick the one with your favorite template language or scripting language. I'm a fan of Jekyll (thanks to GitHub Pages) and the kramdown markdown to markup converter. Easy to get started - no config needed, just a single README.md, for example. See my collection of Jekyll themes (starter sites) called Henry's Themses [3] incl. Hello, Pages! or Hello Jekyll! etc. Happy publishing. Stay static.

[1] [http://staystatic.github.io](http://staystatic.github.io) [2] [https://github.com/staystatic/staystatic](https://github.com/staystatic/staystatic) [3] [https://github.com/henrythemes](https://github.com/henrythemes)

<comment><USER3> your showcase is an excellent idea!

the huge array of static-site generators today is amazing, as a demonstration of the creativity of developers, but it makes it difficult to sort out all of the contenders.

a head-to-head matchup, on the same material, is a fantastic way to make an informed decision to cut through the clutter.

<comment><USER2> Thanks for your kind words. Don't be afraid to build your own. With the magic of libraries or tools a build script for your use case might just be a couple of lines. A great real-world example is the Raspberry Pi documentation website build script [1]. Cheers.

[1] [https://github.com/raspberrypi/documentation/blob/master/Rak...](https://github.com/raspberrypi/documentation/blob/master/Rakefile)</comment></comment></comment>


"To be reimbursed for Papermill at this rate would take approximately 5 years" - <AUTHOR> http://www.papermill.me/firstweeks/#fnref:1

<comment><AUTHOR> Apologies for the deep link. This page had already been submitted to Hacker News, but I thought this post deserved more discussion.</comment>


How to Split Early Profits in a Bootstrapped Software Startup - <AUTHOR> http://www.jeffstanden.com/blog/2007/12/03/how-to-split-early-profits-in-a-bootstrapped-software-startup/

<comment><USER2> Splitting all profit between founders early on just seems very wasteful to me. You should be reinvesting that money into your company, instead of wasting it on paying salaries.

On day one you should decide on the minimum amount it'd take for you both to be ramen profitable. And that amount should be considered as an expense. Then out of the remaining profit, you should decide what % will go back into the company, and what % will be given out as a bonus.

So if for example you decide on $1,500 and 10% - on a $10,000 profit month, $3,000 will go to salaries, $700 will be split among founders as a bonus, and $6,300 will be spent on buying additional ads.

And if you for example have a 3x ad return. Meaning your ads make you $3 for every dollar you spend.

1st month you'll make an additional $18,900 that you wouldn't have had otherwise. Out of that $1,890 will go as bonus, and $17,010 will be spent on ads for next month.

If that trend continues(lets say your product is only limited by exposure), 2nd month that $17,010 will turn into $51,030, out of which $5,103 will go as bonus and you'll have $45,927 to spend on ads for next month.

And on the 3rd month, that will balloon up to $137,781, out of which you can get $13,778 as a bonus and a whopping $124K to reinvest.

So in 3 short months, you'll make an additional $14,471 for yourself and an additional $124K for your company, that you wouldn't have had otherwise.

Early on every penny counts. If you withdraw an extra penny on day one instead of buying ads that would net you 3x return, you are losing a ton of money

Month 0: $.01

Month 1: $.03

Month 2: $.09

Month 3: $.27

Month 4: $.81

Month 5: $2.43

Month 6: $7.29

Month 7: $21.87

Month 8: $65.61

Month 9: $196.83

Month 10: $590.49

Month 11: $1771.47

Month 12: $5314.41

<comment><USER3> I agree. I ran a company that started making serious revenue its second year in operation. My partner and I made the choice then of paying ourselves salaries, keeping a considerable portion of the revenue in our business bank account.

It was one of the best business decisions we ever made. The income that we saved is paying for our living expenses while we work behind the scenes to launch our new startup. If we had pocketed the cash, I doubt we'd be in as strong a position.

<comment><USER4> I am working on a new vetnure with some friends, payed for from the cash flow/savings from their other project. It's the best system. Eat out less, build more things.

</comment></comment></comment><comment><USER5> @vaksel

You're also right that if you're reasonably comfortable with planning on a 200%+ return on an ad, your founders will likely agree to invest in the ad rather than take the split. But it's best to have (and propose) that clear use for the money opposed to making people sacrifice out of principle.

The later point of my post was that founders should be able to agree to their "buffer" and shared expenses. What you don't want to do is reserve money based on the philosophy the company _COULD_ use it better, but not actually execute on that. You can quickly demoralize quality people by saving up a war chest for ads, while people are trying to do their best work on "ramen" draws after the release (and reality sets in).

When intelligent people know they get a percentage of the profit at weekly checkpoints, they can do the math on how their time is being spent in the present (opposed to thinking it will rain money at the finish line; which maybe it will, but it's rarely that easy).

</comment><comment><USER5> Hey guys! I wrote the linked post.

Very early on, you are right; it doesn't make sense to pay founders before you pay the bills and invest in your product/marketing. But when you maintain the bootstrap mentality beyond the very early days, and when you add people who aren't programmer types, you need to think about incentives rather than sacrifices. The fuel that keeps people going very early on is thinking about launch/release, but realistically very few things achieve overnight success. Organic growth can take a while, and my point was by giving people a fair, scalable taste of the profits (at a weekly interval, out of real profits) you can keep morale and creativity up.

-Jeff</comment>


Sustainable UX design: saving the environment with smarter websites - <AUTHOR> https://www.parkersoftware.com/blog/sustainable-ux-design-saving-the-environment-with-smarter-websites/ <comment><USER2> Good on you. Making the world a better place through constructing elegant hierarchies for maximum code reuse and extensibility.

<comment><USER3> Silicon valley (TV show not place)?.

<comment><USER2> ;-)</comment></comment></comment>


How I serve my site using only CloudFront, S3, and a few small tools - <AUTHOR> http://blog.andrewvc.com/how-i-switched-to-using-only-s3-and-cloudfron

<comment><USER2> For what it's worth, you can point an arbitrary CNAME at an S3 bucket -- you don't need to use CloudFront for this. See [http://docs.amazonwebservices.com/AmazonS3/latest/dev/Virtua...](http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html) for details.

However, S3 doesn't have default root object support, so you do need CloudFront if you want <http://mydomain.com/> (vs <http://mydomain.com/index.html>) to return an object instead of an error.

<comment><USER3> You can do that, but it's a pretty bad idea.

Cloudfront will server your content anywhere in the world with a latency of 43ms. S3 latencies range between 200 and 800ms, which is not particularly suitable for delivering web content.

For the privilege of this faster delivery, it will take you 30 seconds in your AWS tool of choice, and will roughly double your monthly bill (thus potentially pushing you above the $1/month barrier.)

I'm sure there are levels of laziness and thriftiness for which serving straight from s3 seems attractive, but off the top of my head I can't think of any.

<comment><USER4> In the past, S3 was required for SSL, but I hear they've fixed that now. CloudFront is pretty sweet...

</comment></comment></comment><comment><USER5> > Doing so I wound up saving money, and increasing my site's load times as > well.

Well, if that's what you want...

Personally, I serve my site by putting files on a computer running Apache.

<comment><AUTHOR> Hehe, I meant 'improving' not 'increasing'.

I'll admit it's less convenient in some ways, but not significantly so.

At any rate, it being my personal site, I'm going to make experimental engineering decisions. I like the aesthetic of S3 and CF as an ultra- minimalist deployment stack. If all I wanted was 'easy' I'd have stayed w/ my VPS at Rackspace, or gotten a Dreamhost account.

You'd probably be crazy to do this in production for a real site however, at least until cache invalidation with CF gives you more control.

<comment><USER6> Have you thought about uploading the index.html with a version number ( index_12345.html ) and all the support files (css, js, etc) in a directory like 'support_12345', then just changing the DRO in cloudfront?

That might make the updates faster while not requiring you to set a low cache value.

<comment><AUTHOR> Yeah, definitely thought about it. It probably makes more sense, however it's a bit more of a pain since you have to re-upload everything to that folder. However, it's probably a better way of doing things in terms of invalidation, as visitors either get site version X, or Y, instead of a potential mishmash of both if you invalidate only some part of it by mistake.

<comment><USER6> Just did an experiment out of curiosity.

Once you change the DRO it takes about 3-5mins for the changes to be visible on the cloudfront url, another advantage seems to be that once the served version is updated you no longer get the previous version.

Also it seems you cannot change the DRO if an update of the distribution is in progress ( i.e. you cant change it twice in quick succession. )

</comment></comment></comment></comment></comment><comment><USER7> I'm a little surprised how slow the initial image loads are (the download is choppy; kind of reminded me of my old 56k connection :)). Obviously, once the cache is warmed it's much better, but it's not like they're huge files.

</comment><comment><USER8> I really see no benefit to doing this as opposed to using shared hosting or a cheap vps (prgrm's smallest is like 8 bucks right?) ... nevermind that, doesn't amazon have a free tier right now for aws?

<comment><USER9> Wow, I hadn't checked Prgrmr's rates in a while. Their smallest is now $5 for 64MB of ram, and for $20 you get 1GB.

<http://prgmr.com/xen/>

</comment></comment><comment><USER10> Why don't you just host it on github pages or similar? With a CNAME entry it would be seamless.

Surely there are simpler and cheaper (free?) solutions than this.

<comment><AUTHOR> It's my personal site, experiments like this are why it exists :)

As far as costs go, my Rackspace VPS was $11/mo. Given that I get close to zero traffic and CF is $0.15/GB, this will cost less than $1/mo. I'd say that's a pretty good price for having my site hosted on a high performance CDN with points of presence worldwide.

</comment></comment><comment><USER11> One big(?) problem with this: really ugly 404 pages -- <http://www.andrewvc.com/asdgadf></comment>


Submit to HN: Whispero - <AUTHOR> http://whispero.com

<comment><AUTHOR> A friend has created this and is nervous about feedback. It is, however, fantastic to spread interesting, secret gossip or share information. Please try it out and feed back.

</comment><comment><USER2> turkeys love candy

<comment><AUTHOR> Is there a notification system to see if the whisper has developed?</comment></comment>


Free Ebook – ECMAScript 6 and TypeScript - <AUTHOR> http://free.codingthesmartway.com <comment><USER2> Don't want to sound ungrateful, really, but sharing a little more info about the book "before" asking for my e-mail would be nice. A table of contents in the book download page, maybe a small summary.

</comment><comment><USER3> calling about 15 A4 pages of text a book is a bit of a stretch, I think.</comment>


How I Became a Better Programmer - <AUTHOR> http://jlongster.com/How-I-Became-Better-Programmer <comment><USER2> There's a lot of value here, but I have to raise concerns about a few things.

First, the title: written in the past tense makes it seem like he believes the journey is complete. The article itself doesn't convey that message, fortunately. But I think it's worth noting that a critical skill for a professional is constant education - don't be satisfied that you're already "better", get better every day.

I also strongly disagree with the suggestion that you should ignore the form of your code. Code is read many, many times more than it is written, so improvements to your own and your teammates' understanding can pay huge dividends.

In particular, the advice to "not worry about" DRY and duplicate freely reveals a common misunderstanding. DRY shouldn't be taken literally, it is a recognition that repetition is evidence of some greater underlying truth. By duplicating freely rather than thoughtfully avoiding duplication, you're just creating opportunities for bugs.

<comment><USER3> Responding to your last two paragraphs...

James's suggestions about ignoring code form, DRY, etc resonate with me because I'm someone who is usually inclined to spend too much time on those things. I consciously try to reduce the effort I put into those things and instead focus on trying to get the code to actually _do_ something!

<comment><USER4> The time to clean up the code is when it already _does_ what it should.

That is: Make it pretty and readable and DRY once the code works. Until then my code can have several ugly and improvised things I've left for later.

<comment><USER5> _> The time to clean up the code is when it already does what it should._

I'm a bit skeptical of that as a general principle.

I want code to be a consistent representation of my mental model of the solution _at all times_. I use code to help me think, remind me of my thinking and communicate with others. It's not just a series of commands that make a machine do something.

As long as any ugliness is not in conflict with this purpose it's fine. I can totally live with functions that are a bit messy and probably need cleaning up later.

<comment><USER6> Yep, I agree. I see it more as a list of priorities, not necessarily sequential steps.

1) Make it work 2) Make it maintainable 3) Make it fast

All three should be on your mind when developing something, but if you have to choose between 2 and 1, go with 1.

<comment><USER7> And you end up with the 60+ year old TODO this way. Or lack proper reason comments (the why) and end up in a gaggle of legacy code.

My rule is simpler: never write instant legacy code. If it feels like something you won't understand a month later, it likely is legacy code.

If it reads badly (and I'm not talking about this or that brace or whitespace choice), then it also provably is in that category.

<comment><USER8> If there is actually a trade-off like tshannon notes, then by not making it work first, you may end up with un-finished projects.

<comment><USER7> The solution to making it work first is to make a prototype with the correct design. You do not have to implement it at once.

(On C2 wiki, a proper SpikeSolution)

If you hit a case your design cannot cleanly handle, it is time for redesign, but often a tiny amount of design constrained by use cases will expose a good design quickly.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Those that are complaining about this article: Care to share the experiences that made you a better programmer? Can you link to blog posts yourself or others made that we may find useful?

<comment><USER10> I like this question!

I think that working in constrained environments early in my career gave me lasting instincts both for efficiency and maintainability/sustainability. I wrote a lot of code on Win16, GeoOS, Epoc32, and a variety of embedded systems. Debugging tools aren't good, the dev-test-repeat cycle can be arbitrarily long, so you learn to avoid a certain sloppiness.

I've been having fun with PICO-8 on a Pocket CHIP, it has some similar constraints, the keyboard is awful and the screen is small, so there are similar incentives, and the added bonus that making a cute game is fairly accessible.

<comment><USER10> Also, pre-internet I learned from books. I lived in a provincial town, so I would go to London, buy a book and then devour it, but if I didn't understand something, I had to either keep plugging away until I did understand it, or wait possibly weeks til my next opportunity to find another explanation. Keeping looking at blogs until you find an explanation that makes sense is an amazing resource for getting shit done, but doesn't encourage deep understanding when you really need to internalize something

</comment></comment></comment><comment><USER11> ___Learn C - Just the basics, if you don 't already. I think it's valuable to understand why everyone complains about it._ __

When you say just the basics, what are you referring to? Syntax? Pointers? Dealing with garbage? I 've got a vague idea about it, but never had to really do anything with it so I feel now is a good time to mess around with it.

Great read though, always a pleasure seeing James mentioned (someone that definitely inspires me).

<comment><USER12> I think most advice to "learn C" really aims to get you to learn how things work closer to the metal. What actually becomes of your code and data, broadly speaking, once your high-level language's interpreter or compiler have had their way with them.

So things like:

\- viewing primitive objects, structs and arrays as blobs of bytes arranged between address X and address Y

\- a pointer as an address of that blob. Understanding what it means to copy that blob vs. to pass around the pointer: calling by value/reference not in terms of the semantic effect, but in terms of what happens underneath.

\- the stack and how it's typically used, esp. in recursion. Local vars vs. heap-allocated vars. How control flow leaves its trace on the stack. How arguments are passed and return values are returned.

\- complex data objects viewed as blobs of memory pointing to each other vs. pointers. Concept of "owning" such a blob and how ownership is passed. Understanding how your language's runtime keeps track of the blobs if you don't have to, and what are common pitfalls.

\- clear understanding of the difference between int8, int32, int64. Strings as null-terminated or counted arrays. Bitops.

"Learn C" is just a useful way to force you to internalize all of the above, because you can't properly "learn C" without doing that. But it's the above that helps you back in your favorite language. That, and perhaps the fact that C gives you a feeling what it's like when you can look at a line of source code and understand immediately what happens in the machine (broadly) when executing it. No hidden effects. C++ doesn't have that (constructors you don't know about when looking at the line, exceptions etc.) That "local clarity" isn't the most important thing in the world, but if you feel and appreciate it, perhaps you'll strive for local clarity back in your favorite language, too.

</comment></comment><comment><USER13> My advice is that whenever you become confident/comfortable in your current work, that's when you have to change team or company. Whenever it gets easy, it means you have stopped learning. I agree with what was said about tools; it doesn't make you a better programmer to know all the latest ES6 features and frameworks. What makes you a better programmer is your ability to adapt and customize your approach to different situations and environments (with different scalability, stability, interactivity, security, time and regulatory constraints). I've been through a lot of different companies (I usually stay 6 months to 1.5 years each on average) and the environments/workflows are usually VERY different each time. After changing a few times, it gets easier to move between different companies - You learn how to produce code that is universally acceptable and not just acceptable within the confines of a single company.

<comment><USER14> _My advice is that whenever you become confident /comfortable in your current work, that's when you have to change team or company. Whenever it gets easy, it means you have stopped learning. I agree with what was said about tools; it doesn't make you a better programmer to know all the latest ES6 features and frameworks._

It's tough to say. Given a choice between being a JS ninja capable of hammering out [http://www.track-trump.com/](http://www.track-trump.com/) in a week, or a generalist with a wide variety of skills, the former is so much more valuable from a monetary standpoint that it'd be hard to turn it down.

It's less satisfying, and you end up less capable in certain respects, but it all depends which axis you want to optimize along.

<comment><USER15> Offtopic, but I have to say - I love the site you linked. This should be a standard thing done about every politician in power.

<comment><USER14> It's the brainchild of Sam, Greg, Alec, and Peter. [https://twitter.com/sama/status/822494523959877632](https://twitter.com/sama/status/822494523959877632)

Greg is the JS ninja I was referring to. [https://twitter.com/sama/status/822500368797966336](https://twitter.com/sama/status/822500368797966336)

</comment></comment></comment></comment><comment><USER16> Not sure I agree with a lot of those recommendations - the number one recommendation I have is to challenge yourself as much as possible, whether it is with picking up algorithms, or learning new things such as the workings of a compiler. Other aspects include challenging yourself to be more efficient in your workflow, such as running through your thought process faster, decrease iteration time due to absorbing prior lessons, etc. This also includes the humility of being willing to learn from anyone, including developers who haven't been in the profession as long or haven't accomplished as much as you - ego can get in the way of challenging yourself to better yourself, and maybe that more junior person will indeed become better than you/has better intuition.

Make sure you get good rest too - all the learning in the world won't help you if you cannot retain what you learn. If you're in a pressure cooker of a job, consider transitioning to a less stressful job to give yourself space to work on yourself so you're better prepared for the long haul/set yourself better up for success.

Lastly, focus on being a problem solver - this means if you see a point of friction/inefficiency/tricky situation, that is something to be solved. Your success rate in solving these problems is ultimately what drives stable success. This means practice as much as possible applying your mind to these problems, and if you fail, be ruthless about figuring out what you did wrong and iterate. Very few people can get away with being excellent there with minimal effort.

</comment><comment><USER17> > Even now, though, I continually doubt myself. The point is that this feeling > doesn't go away so just try to ignore it,

No. This is the advice you'd expect from someone in their early thirties who has been coding and doing nothing else their whole adult life.

Your doubts should fuel your learning and temper your decisions. They are the voice in the back of your head and you can make it work for you instead of against.

Mastery isn't working harder, it's working smarter. It involves retraining your instincts to match your rational understanding of the domain. You get the shape of a problem and you naturally gravitate toward a reasonable solution without having to intellectualize the whole process first. If challenged, you of course have to walk back your intuition and build a step by step case, not just a rationalization, but that's fine because you've trained for that.

Study something else, anything else. Preferably with a teacher. What you're going to learn about the process of learning (and teaching) will be profound. It will make picking up and putting down new things easier, which will keep you from getting in a rut later.

Source: 40-something who spent his precocious twenties only coding. I learned a hell of a lot but I didn't know everything.

<comment><USER18> When you mean studying something else, do you mean something academic or hobby-based? I think having deep hobbies are really beneficial, and with mine I like to take a more "organic" or free-form approach to learning.

<comment><USER17> Generally I think developers don't see our 60 year history as a liability. We've only begun to figure stuff out (the 90's and early 00's were punctuated by arguments over Tony Hoare's work in concurrency, that was all done in the mid 70's by people who don't seem to be aware that they were all written by a single person).

I think specifically it helps to deep dive on something that is much older than programming. A craft, an art, a sport, or a physical passtime (dancing, martial arts, kayaking). People have been teaching that stuff for centuries and it turns out they actually know a few things that we only pretend to know. Two things in particular stand out.

Cross-training is one. The notion that pushing harder, white-knuckling everything, is a virtue in software development is rarely ever challenged. Not good yet? Just keep doing it.

The second is that we don't get that rules exist in a context. Always do this. Never do that. As you mature it is partly your responsibility to figure out when you are no longer part of that context. When you are ready, you will understand why you had to follow the rule and why you are now free of it. Look at the backlash against DRY. A bunch of people who've been using it for 10-15 years figuring out it's not all roses. See also: 'it depends...'

</comment></comment></comment><comment><USER19> Ok I came in thinking this was going to be another "don't do this, don't do that" type of deal, but was pleasantly surprised about it being upbeat and closer to e-prime. Nice job.

<comment><USER20> TIL: e-prime. Thanks. [https://en.wikipedia.org/wiki/E-Prime](https://en.wikipedia.org/wiki/E-Prime)

<comment><USER14> The E-Prime article used to be written in E-Prime. Unfortunately it looks like they reverted it.

It was especially fascinating because the first sentence was something like "E-Prime refers to a version of the English language..." instead of "E-Prime _is_ a version...". The article had all sorts of interesting quirks that really highlighted the diffs.

</comment></comment></comment><comment><USER21> " (This also applies to the DRY principle. Don't worry about it so much. Feel free to duplicate.)"

The sort of advice followed by programmers when building systems that will accumulate heavy technical debt that someone else will eventually have to sort out.

You will not become a better programmer this way.

<comment><USER22> application of DRY can also accumulate technical debt.

The main thing is communication - duplicate, but put comments in both places regarding the duplication so they can be merged if they haven't diverged after time.

This is also why I dislike "no comments in code" principles - communication is key, and there are some things only plain English can convey; If all your comments are code, you aren't communicating enough!

</comment></comment><comment><USER23> We've got pretty good continuations, call/cc, generators etc in here too. [http://pharo.org](http://pharo.org)

If you do want to leave the comfort zone, this is a must.

And we really do not care for the framework du jour, even if we use some.

</comment><comment><USER24> I think that a lot of the cognitive dissonance between what we think very good programmers do and what we ourselves do stems from the fact that the people whom we perceive to be very good programmers do greenfield projects and we non-rockstars are stuck having to maintain legacy applications, where there's a lot less room to be "very good"; mostly, it's a success to do this work for 2 weeks before giving up.

</comment><comment><USER25> He mentions SICP, which is trending on HN right now: [http://sarabander.github.io/sicp/](http://sarabander.github.io/sicp/)

</comment><comment><USER26> I would shorten it to:

\- develop critical thinking

\- take time to learn

\- force yourself to understand (avoid cargo cult)

\- accumulate non-redundant experience

<comment><USER27> At this risk of sounding like a Buzzfeed headline, number 3 has been key for me. Diving into a new "whatever" and asking how and why it does something makes it so much easier to "get" something. Bottom up vs top-down approach.

</comment></comment><comment><USER28> all of these suggestions are tbh ok. but id like to say one of the things that helped me most to get better was when i wrote my own framework. doing so helps you understand not just to code, but how to architect for many many different scenarios.

this allows you to write simpler and cleaner code, which is a high quality code.

and lots of coders think clean code means isolating code into many different pieces but that is so far from the truth. clean codes to me are generally less lines of code, files, and places to look for your stuff. its elegant and efficient. should put effort to separate less and group more. i cringe everytime some dev breaks up a simple methid into dozen pieces when there arent much justification to begin with.

so pls try write your own framework as an exercise. even in a crowded seas of framework, coming up with your own will be the best learning excercise you can do imho. it doesnt even have to be framework but something along the lines that will lead you to think outside the box.

</comment><comment><USER29> Excellent practical comments. Have not attempted the compiler piece yet. Will try Also, taking pet projects and tech to completion has helped me learn tech deeper. Plus doing office-Wide sessions in sharing them.

</comment><comment><USER30> I also have 10 years experience but I am in the same job because I can't defeat recruitment agencies. If today a new Framework, let's call it "Framework9" is announced, all jobs will instantly want 3 years experience, and 4-5 years experience of all other known frameworks, preferably in all languages, and preferably a designer who is a master of photoshop and CSS, with a long history of blah blah blah blah

I am really starting to wonder what other careers are possible as this kind of sucks. I am especially bad at bullshitting so I don't really get anywhere.

<comment><USER31> In my experience that's often sign of either a job position where they don't really know what they want, or a recruiter casting a wide net trying to catch people with a bit of each on their resume. Playing keyword bingo. I've had much more success by looking around on the likes of linkedin / twitter to find the good recruiters. Single people with their own shop or ones within an org. The ones who seem to be well recommended or seem to know their game. Approach them personally, make friends with them, get to know them. Tell them you are bad at BS. Once they get to know you, they will go to their network. Let them do their job of finding you the position. Or, they will put you on their books for when a suitable one comes up. I find the quality of positions and work is much higher doing things this way. This took me a long time to work out too.

</comment></comment><comment><USER32> >> Take on big projects. Get uncomfortable.

To add few more points on this, work on side projects. I have to tell, how a side project can help you. For example, I was very comfortable using React in my project. I thought of building a simple preview container (for different sizes from desktop, mobile, tablets), where user can drag and drop few components, position them etc.

I'm in the initial phase of this and guess what, its really helpful. Making you uncomfortable at times (as in this case for using React to position components on the fly, which I had never done before) helps a lot.

</comment><comment><USER33> I agree with the author, I think people are getting too hung up on the "fluff" statement. His point is that their are deeper issues in programming that will make you a better programmer. Still useful to write clear concise code, just don't get hung up on it, and certainly don't mistake it for being a good programmer.

My other piece of advice would be to code with other people as much as you can, ideally from very different programming backgrounds.

</comment><comment><USER34> I'm glad the author mentioned learning new languages. I have been coding Go recently and even tho it's not my main language, it has helped me to think about simpler designs when I'm using other languages.

Other than that becoming proficient in C and systems programming (Thanks xv6 book) was a major game changer for me.

</comment><comment><USER35> Regarding the claim that only Scheme implements continuations, aren't coroutines/generators in Python a type of continuation as well?

<comment><USER36> yes, they absolutely are. the author would probably argue that only scheme natively implements first-class continuations though, which is more specific and a little different.

</comment></comment><comment><USER37> Step 1: Document all the things.

Step 2: Update the documentation the next time through.

There is no step 3! ;)

</comment><comment><USER38> > Find people who inspire you, but don't idolize them.

Luckily this is rather easy in the JavaScript world, haha.

Many good devs have bad attitudes, which makes it a bit harder for junior devs to value their skills, but it prevents them from being idolized too much.

Also, I always think it's a good sign if devs I look up to said stuff I found bad, so I know I still see them as humans and not as infailable idols.

> Don't devalue your work

This is a hard one.

On the one hand, if you work with too much non-technical people, they tend to overvalue your work. I met rather much mediocre devs who got sold to me by managers as the best devs ever. They simply always "delivered", which some devs don't. But finishing your work is a minimum in my eyes and not the "best thing ever".

On the other hand, if you only work with highly skilled devs, you could start to think you can't do anything right. In the end you got skills worth mad money to non-technical people, but you think you wouldn't get a job ever again if you lose your current one.

> Don't feel pressured to work all the time.

This is hard, especially for us devs who think of programming as their hobby.

I started freelancing 2 years ago and got about 4 weeks holidays in this time. I worked on many weekends. Not because of "crunch time" but because I liked what I was doing, but I found out it really takes its toll :\

Now I try to do 3-6 month long projects and 1 month holiday after every project. Also, only weekend work on "crunch time".

> Ignore fluff.

This is really hard, because fluff is fun.

I started with JavaScript by reading "JavaScript: The Good Parts" and "Pro JavaScript Techniques" and I learned a lot of pit-falls before I went in my first big JavaScript project.

But I came at the price of fluff everywhere.

It gives me a nice feeling reading about other devs who just don't get async/await, observables or destructuring. Not because I think they are idiots, but because I think "This seems to be hard and I already know about it!"

But yes, I probably poured days into learning observables and probably can't use them in my next projects.

> Dig into past research.

This is a nice thing, because most people don't do this.

I got a big book on HCI research of the last 50 years or so and I always find nice solutions for my problems there. Since many of the web and mobile problems have already been solved with experiments on research devices that never went mainstream.

> Take on big projects. Get uncomfortable.

Also: Let your life depend on it ;)

If you need to pay the rent with a project, you're much more inclined to "really" finish the thing and "really" learn the hard parts you need to understand before you can implement the solutions, which you need to "ship".

(Okay, letting your life depend on it isn't that good of an idea, but if money is involved it's often easier for me to walk to the end. You always should have enough money backed up to survive a failed project or two, so you can also logically justify to leave your comfort zone)

<comment><USER39> > I got a big book on HCI research of the last 50 years or so and I always > find nice solutions for my problems there. Since many of the web and mobile > problems have already been solved with experiments on research devices that > never went mainstream.

Please share, which book is this?

<comment><USER38> the human computer interaction handbook

by Julie A. Jacko and Andrew Sears

</comment></comment></comment><comment><USER40> > Learn C - Just the basics, if you don't already. I think it's valuable to > understand why everyone complains about it.

WHAT? C is beauty, C is art, C is clean and concise. What is this guy talking about? Nobody complains about C, it's about C++ they complain, you idiot.

</comment><comment><USER41> Apparently the author still has a long way to go to become somewhat good, given how this link returns 502 on moderate load for a something like a simple blog. I also wonder if this discredits the article itself.

<comment><USER36> I don't think it discredits the author's coding skills to _not_ being using cloudflare (or similar) on what is otherwise a very low traffic blog. you don't get HN spiked every day.

</comment></comment><comment><USER42> He writes "find people who inspire you, but don't idolize them".

And yet, his blog repository[1] which is, in his words, "This is just a stupid simple server that indexes posts off the filesystem", has 1193 stars. Why would anyone star anything like that if not because they idolize jlongster?

[1]: [https://github.com/jlongster/blog](https://github.com/jlongster/blog)

<comment><USER43> i don't see the contradiction. he's not asking for people to star his repo and it's not unreasonable to offer this advice if you perceive harmful cults of personality developing in a community. besides, lots of people just star things for lots of different reasons, bookmarking, giving props or ???.

<comment><USER42> "or ???", what does that mean?

I didn't point a contradiction, just noted that he has fans that idolize him. The contradiction is theirs.

<comment><USER44> Having an audience doesn't mean having a cult of personality.</comment></comment></comment></comment>


White roofs catch on to save energy costs - <AUTHOR> http://www.nytimes.com/2009/07/30/science/earth/30degrees.html?_r=1&hpw

<comment><USER2> I don't mean to make fun, but this sentence struck me as funny: "Relying on the centuries-old principle that white objects absorb less heat than dark ones"

As if before those "centuries" light and dark objects absorbed heat differently. :)

<comment><USER3> In the same manner: Was there ever a time when a human could not figure out that black rocks got hotter than white rocks?

</comment></comment><comment><USER4> How about making them more reflective and aiming them at New England for a little winter heating help.

</comment><comment><USER5> A friend who used to live in Florida told me they would put water on the roof in the summer. The evaporation of the water would cool down the roof and house.

</comment><comment><USER6> My Toyota FJ Cruiser has a white roof and tinted glass, it seems to stay much cooler in the sun than any vehicle I had before.

</comment><comment><USER7> What you really need is a roof is that is black in the winter and white in the summer.

<comment><USER8> Well if you want to save big on energy costs and you don't mind your house being quirky an underground home is for you. When you're below the frost line, the underground temperature is 55-57 degrees F, in winter or summer. Plus you get great noise insulation.

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

<comment><USER3> No windows though. Big turn off.

<comment><USER8> What about skylights?</comment></comment></comment></comment>


Where Be Monsters? The Daedalus Sea Serpent and the War for Credibility - <AUTHOR> http://theappendix.net/issues/2014/4/where-be-monsters-daedalus-sea-serpent-and-war-for-credibility

<comment><USER2> > Whatever the reality, the number of reported sea serpent sightings declined > rapidly after the nineteenth century. Writing in 1925, Austin Clark of the > Smithsonian Institution offered a typical explanation for the decline. "In > the last 20 years," Clark noted, the size of ships rapidly increased and > steam ships replaced sailing vessels. These maritime advances mean that the > "vantage point" for observing the sea serpent moved "from the low and > insecure wave-washed deck of a small sailing boat to the high, comfortable, > secure, and relatively dry deck of a much larger steamer." This shift in > perspective "removed the element of fear and hence dulled the imagination so > that sailors are now able to study calmly and report correctly what they > see."

Or perhaps the sea serpents were predators, and they depended on one of the species that our bigger and more powerful ships allowed us to hunt more efficiently, and we destroyed enough of their food source that they went extinct.

Much of these stories remind me of the stories of giant waves that come out of nowhere and destroy ships. Sailors told stories of these waves for centuries, and their stories were dismissed as exaggerations from drinking or their judgement being thrown off by rough seas (e.g., you think the wave was 75 feet because it was taller than your 75 foot mast...but because of the rough seas you didn't realize the mast was actually pointing at a steep angle at the time so the top was only 40 feet above the water).

By the late 19th and early 20th centuries, scientists thoroughly understood ocean waves, and stated that it was impossible to have waves higher than 50ft in open ocean. No matter how many sailors saw such waves, they were told that they MUST be wrong because science had proved such waves cannot exist.

Then sensors on an unmanned platform in the North Sea reported an 84 ft wave during a storm. The operators assumed that this meant that the sensors were malfunctioning, and sent a repair crew. The crew found that the sensors were fine, and there were clear signs of wave damage showing that the wave really was that big.

Now that scientists finally had evidence that they could not dismiss as drunken sailors, they went looking for more evidence and quickly found many instances of rogue waves. They found enough to see a pattern, and were able to figure out some of the conditions that would cause them, and find areas that would have a lot of them. And guess what, those were the areas where sailors had long been reporting ships wiped out by those "impossible" waves.

Science is great. It's the best thing we've got for finding out the truth about nature. But sometimes science gets arrogant and ignores anecdotal evidence even when it is so widespread that some of it almost certainly is from reliable observers. That's what happened with rogue waves, and I would not be at all surprised if that happened with at least some of the "mythical" large sea creatures.

<comment><USER3> You explained it better than me: "Science is great. It's the best thing we've got for finding out the truth about nature. But sometimes science gets arrogant and ignores anecdotal evidence even when it is so widespread that some of it almost certainly is from reliable observers."

</comment></comment><comment><USER4> You've got to remember that the first anatomical specimen of a platypus sent from Australia to London was considered to be a hoax. That was the scientific establishment rejecting an actual specimen. [http://en.wikipedia.org/wiki/Platypus](http://en.wikipedia.org/wiki/Platypus)

It's hardly surprising that mere sightings of a creature were treated with the same incredulity, particularly if it had originated as the stuff of sailors legends. Most people would associate it with Yeti sightings or similar.

But as a lost airliner proves, people are too willing to think that searchability and knowledge about continents extends equally to the deep ocean. When the truth is that we probably know a lot more about what's in the solar system than what is in the deep oceans.

<comment><USER5> 'They laughed at Galileo. But they also laughed at Bozo the Clown.'

The platypus is remembered _because_ it was one of the many hoaxes which turned out to be real; the OP even lists a whole bunch of hoaxes and fakes!

Similarly for the comment about rogue waves: are giant waves really that improbable? Now, how about giant ship-sized sea snakes? (What do they eat? Why haven't we gotten any real samples of their bodies, when they aren't even abyssal creatures? Why has the rate of discovery of sea-going reptiles been zero for decades when human populations, scientific research, travel, and sensor technology have all been increasing exponentially?)

The OP links a short statistical analysis of discovery rates: [https://dl.dropboxusercontent.com/u/182368464/2008-woodley.p...](https://dl.dropboxusercontent.com/u/182368464/2008-woodley.pdf) What struck me was not that the most reasonable analysis, the logistic regression, estimates zero species remaining to be found, but the authors' list of lame discoveries in 'cryptozoology': stuff like moths, peccaries, and whatnot. Really? Really? That's your defense for the plausibility of giant sea snakes - moths and small land mammals in extremely remote locations?

</comment></comment><comment><USER3> Not my post but I'll add a little meta observation anyway: I can't see why this isn't taking off at HN.

I've personally found the recent discovery of the giant octopus interesting. It has been reported by sailors for numerous times as far as I know, yet science has shown little intereset until a specimen was found.

In the same vein the fact that wolves have attacked humans in the last 5 years is very interesting. When I grew up we were taught that wolves were afraid of humans and none of the old stories were true. (I have come to the conclusion top trust naval officers and grandparents more than scientists in such cases.)

<comment><USER6> > I've personally found the recent discovery of the giant octopus interesting.

By "giant octopus" (creatures that have been known for a very long time) do you mean "colossal squid" (which has been known, and of interest to science, from body parts since the early 20th Century, but of which a live specimen was never discovered until the 2000s)?

Because your statement doesn't make much sense for the former, and is still wrong for the latter (science showed plenty of interest before the recent live-specimen discovery, though the _popular media_ , at least briefly, became more interested when a live specimen was found.)

> In the same vein the fact that wolves have attacked humans in the last 5 > years is very interesting. When I grew up we were taught that wolves were > afraid of humans and none of the old stories were true.

When and where were you taught that? While I certainly remember being taught as a child that -- like many animals -- wolves were shy of humans, I certainly was _also_ taught that they were dangerous, extremely territorial, aggressive pack animals and that they might attack humans in any of wide range of circumstances.

<comment><USER3> >Because your statement doesn't make much sense for the former, and is still wrong for the latter (science showed plenty of interest before the recent live-specimen discovery, though the popular media, at least briefly, became more interested when a live specimen was found.)

Thanks for correcting me.

Now tzs also has a much better example than me :-)

>When and where were you taught that?

Primary school I think.

</comment></comment></comment><comment><USER7> There are a lot of interesting subjects this article covers. One that stood out to me was how new evidence seeming in favor of something can be turned against it. E.T. Jaynes describes it with what he calls the "deception hypothesis". A nice article touching on that can be found here:

[http://blog.chron.com/climateabyss/2011/12/e-t-jaynes- explai...](http://blog.chron.com/climateabyss/2011/12/e-t-jaynes-explains-why- people-aren%E2%80%99t-convinced-by-climate-change-evidence/)

<comment><USER8> Interesting article. If I might "think out loud", and summarize:

Suppose I have decided that claim X is false. Now someone says, "Here is evidence for X." Then I am likely to think that there is deception involved: someone made something up, or misinterpreted something. Now suppose someone comes up with _very strong_ evidence for X. I think: _of course_ there is deception involved.

Thus, what is presumably strong evidence for X becomes, in my hands, strong evidence that either flawed reasoning or fraud is happening.

</comment></comment><comment><USER9> Experts in a field can also be quick to dismiss new ideas and accounts presented by people not in their field, or without years of experience and a strong reputation. To me it seems similar to how programmers can be quick to dismiss unlikely-sounding user bug reports, until they can see the bug with their own eyes.

</comment><comment><USER10> preface: this was a great and interesting article, forgive my grumbles below :)

People are rarely reliable witnesses when they are trying to tell a story. Being an officer of anything doesn't really lend anyone extra credibility either, everyone has their own biases and fantasies. Astronauts have claimed to see aliens and this doesn't make them more credible than a guy on his farm who claims the same thing.

I do think that it's always worth keeping an open mind about the existence of undiscovered creatures, but I don't think it's necessary to latch on to transient sightings to decide that those are the creatures we should look for.

Every time a decaying dead whale washes up on shore, even smart people think it might be something new or undiscovered, because that sounds less banal than the reality, this causes news media to stir up because life is generally boring, and people eat it up for the same reason.

I'll leave the science to the scientists and wait patiently for their new discoveries :)

<comment><USER11> I think it does make them more credible. Our early astronauts came from the test pilot programs, mostly, where careful observation of things (expected or not) out of the ordinary was a critical life skill, not to mention part of their job.

If Bob says he saw a UFO, I am likely to believe that he might have been drunk, or mistaken, or tricked by the light. If a test pilot (who is more familiar with light effects and weather balloons, etc) or astronaut tells me they saw something out of the ordinary, I lend that more credence.

Of course it's possible that they're mistaken in their testimony, but I think it's more likely for the astronaut to have noticed and correctly reported something than for the average Joe.

<comment><USER12> Whatever your experience, there always is something that is so rare that you won't have seen it. Bob's will have that with an event of which the test pilot thinks "I have seen that countless times", that test pilot will have it with an event that is way rarer, but that still may have some quite ordinary explanation. Program is, we don't have an super test pilot who can say "I have seen that countless times".

And yes that will be something out of the ordinary. But the test pilot claims as to what it is, I wouldn't trust more than Bob's claims as to the nature of the things he finds extraordinary.</comment></comment></comment>


Has the WSJ started to paywall Google users? - <AUTHOR> Until recently, the Wall Street Journal allowed users who saw an article in a Google search result to view that article without signing in. That is, traffic referred from Google bypassed the wsj.com paywall. This no longer seems to be the case. Does anyone know if this was an intentional change? If so, what does it say about the value of traffic from Google to the WSJ? <comment><USER2> I just noticed the same thing. It's possible that the WSJ has analyzed their logs and discovered that most of the traffic they're getting from Google is people searching for the exact text of article titles, in an attempt to circumvent their paywall.

Or, it's possible that it's just a temporary misconfiguration. Only time will tell whether it's a temporary or permanent change.

</comment><comment><USER3> What's changed is that switching browsers (or even devices) no longer extends the number of WSJ titles you can Google search successfully. 3 or 4 is the limit/day across all.</comment>


Ask HN: What Architecture Apple uses in its iOS Apps? - <AUTHOR> I am curious what SW architecture(s) were used for development of the system iOS apps like Messages, Photos, App Store, etc.<p>I would assume that with the more complex apps, a simple MVC/MVVM is not scalable enough and alternatives like VIPER and VIP (or a completely custom architecture) may be used. Does Apple use the new SwiftUI and Combine Frameworks? <comment><USER2> It's a closed source system so only a privileged few get access to that information. The public can only speculate...</comment>


I'm a PC, and I Write Blog Entries - <AUTHOR> http://mattmaroon.com/?p=486 <comment><USER3> For what it's worth, I worked in television while in college, running the tape machines, and various behind the scenes stuff. From the perspective of TV stations, a new spot can definitely go online within 24 hours (usually less). The actual time is generally already bought and paid for months in advance... _but_ there's always time available for the right price. Anytime you see an ad for a show or movie or event for the station itself (e.g. "Watch Friends every day at 6 and 8 PM"), that is a spot that is for sale, for the right price, until the day the spot runs.

Here's how it worked from a technical perspective ten, or so, years ago, when I worked in the industry:

Ads come in automatically via satellite twice per day, in big batches of 20-40 spots. They are automatically recorded onto a single tape (a computer was put online for this a few weeks before I left the station--it was a different ad distribution company, I believe, and so only a few ads were running off of this system, so I'm not deeply familiar with it, but it was _fully_ automated, with no human intervention required to go from ad network to air). The single tape was then processed by a tape operator (me) onto individual tapes, and labeled with a barcode, for use in the master control automated tape loader. Turnaround time was usually an hour or two from the usual spot feed, and the spots were usually airing by the next day.

When an ad had a mistake, a special feed would be scheduled...sometimes within hours of the mistake being found and the ad producer being notified. A new version of the ad could definitely be online the same day. With the automated computer system, I suspect it could be replaced in minutes.

 _However_ , spot production is a somewhat different story. Depending on the size of the production, it could take weeks to schedule all of the pieces to fall into place. That said, with enough money and enough muscle (which Microsoft has in spades), a large scale production could be done in days or even hours.

To put things further into perspective, the station I worked for (WB 39 in Houston) also had a production division, and would occasionally make spots practically in real-time for local advertisers to tie into ongoing events like Rockets games. Adding running commentary of the game to spots, by the usual spokesperson for the company (like Mattress Mac), was a reasonably common practice. If Microsoft _really_ wanted to change directions fast, they could do it. It'd cost them two or three times as much (if they were a normal customer...though their agency may have eaten some of the cost just to keep MS happy through these trying times and the perceived disaster that is the spots they'd already produced), and the agency would have to re-schedule other customers productions (or pay lots of overtime), but it could definitely be done.

</comment><comment><USER4> _You can't simply start making five ads with Jerry Seinfeld, start airing them, decide you don't like them after a week, film a new ad, and switch the old one out and the new one in within 7 days._

I'm pretty sure you can. Most advertising agencies present multiple options to their clients and variations thereon, so Microsoft likely had half a dozen half-fleshed-out ideas they could have followed in addition to the Seinfeld one. And, yes, producing an ad could take a long time, but it could also take a very short time, depending on what is needed and how much money you are willing to throw at it. Every day, news networks come up with hours of professionally produced graphics, interviews, and reports, with lead times varying from a few days to a matter of minutes.

</comment><comment><USER5> _I think there's a very good chance that we're seeing the sort of marketing campaign that will be studied in universities for years to come. I'm not sure which way it will go. It might be looked back upon as the spark that ignited a massive resurgence and a prime example of one of the all time great ad agencies at the peak of their game. Or it might go down as act of hubris on par with Gigli but with ten times the budget_

Matt, I think you may be onto something there. Things in front of us always seem bigger than they really are, but when they went from M$10 on Jerry Seinfeld to directly responding to the "I'm a PC" commercials, this went from being another M$300 ad spend to a very high stakes gamble.

When they were doing the Seinfeld thing, it could have been a defensive move. They solidify their support with their core market, and Apple's ads solidify their support with Apple's core market. It stops and further switching, but creates a stable stalemate with Microsoft maintaining huge market share and continuing to farm its customers for upgrade revenue.

But directly responding to the Apple ads changes things. Now it's a kind of winner-take-all strategy. If they succeed, they could reverse the trend and win customers and mind share back. But if they fail, they accelerate the defection and actually get their own customers talking about Apple's advertising!

If Microsoft spends any serious money on this "I'm a PC" series, I don't see this ending in a stable stalemate. One or the other is going to win out. It "I'm a PC" flops, Microsoft looks very, very bad and validates Apple's advertising. Of course, if it succeeds it could undermine everything Apple has worked on and claw back their gains.

So... I would have to say that before canning Jerry this was not going to be a B-School case study. But now that the #1 player with 90+% of the market is breaking all the rules by referencing a competitor's advertising...

Yeah, I see this as a B-School case study no matter how it plays out.

</comment><comment><USER6> Matt's right. A "Vista rocks" ad wouldn't be talked about this much. Case in point: see Mojave experiment a month ago -- all Vista, limited success.

Even more than fixing Vista's problems, Microsoft needs to get back mindshare & brand that it has been losing to "cooler" competitors like Apple & Google. Microsoft wants to be talked about. And that takes a lot more guts than saying "Vista rocks". To their credit, they recognize that.

</comment><comment><USER7> "Most of the people counting them out aren't the target audience."

Microsoft kept dismissing people switching to Linux and OS X as not being in their target audience. But I think PG said it best in <http://www.paulgraham.com/mac.html>

"Who cares if hackers like Apple again? How big is the hacker market, after all?

Quite small, but important out of proportion to its size. When it comes to computers, what hackers are doing now, everyone will be doing in ten years."

Unfortunately I didn't read that essay back in 2005.

[http://finance.google.com/finance?chdnp=1&chdd=1&chd...](http://finance.google.com/finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=maximized&chdeh=0&chdet=1220472000000&chddm=343032&q=NASDAQ:AAPL&ntsp=0)

</comment><comment><USER8> The ad progress was freakin' brilliant. Bizarre ads got EVERYONE talking about Microsoft again, whether you liked them or not. The followup ads ("I'm a PC") were less remarkable, but people paid attention a lot more because of the initial grabber-ads with Seinfeld.

And, as Arrington said in a post today-- the "I'm a PC" ads made the Mac ads seem less funny and more arrogant. It had a great, "Fuck you, I'm not lame just because I don't use a Mac" quality and I think will nudge people to be proud of using a PC.

FWIW, I use a PC and I generally feel pretty content about it. I paid $400 for a great box on Craigslist. I can play games from time to time. I don't get viruses. My computer doesn't crash/freeze. I've watched my Mac buddies recently have a LOT more frequent hardware issues than I do (tho Apple is admittedly great at dealing with it when it happens).

My computer has no white plastic, no rounded corners, aliased fonts and I love it. :-)

</comment><comment><USER9> It's not exactly fair to call John Gruber a "Mac fanboy" and dismiss him at that. He's got a point with his postings: Microsoft touted Seinfeld for a LONG time and then dropped him after two weeks. They announced this not from the ad firm they hired but from their PR department, which is indicative of the fact that this wasn't a decision straight from the firm. That all leads to the conclusion that Microsoft is slightly panicking. Considering how adamant Gruber is AGAINST things that Apple does that he DOESN'T like, I think it's fair to say that he has a reputation for being fair-minded. And, you know, if a ton of fair-minded people like one product (Apple), perhaps there's a logic behind their liking it. You never know. It's possible. ;-)

As for your saying that this is good because it can't be understood: I'm going to call BS. Being deliberately vague never works for anybody. The ads WERE understandable (hey, guys, Bill Gates is pretty cool, and we're not a faceless empire!), so your point doesn't quite work, but things that you can't understand are either things you can LEARN to understand or they're poorly done. Simple as that.

<comment><USER10> Lol. Bill O'Reilly often points out some minor gripe he has with a conservative and uses that to tout how unbiased and moderate his views are. And his viewers lap it up. What you said about Gruber is the same thing.

Which is not to say that I do (or anyone should) simply dismiss his arguments because of that. He is a fanboy, in fact, he's the closest thing to a leader they have. If he told his readers to march on Washington, there'd be a million Priuses (or is it Prii?) with Apple bumper stickers clogging the expressways in every state. I'm truly impressed that he's made such a career out of it, but if you don't think that the fact that most of his income is derived from blogging about how great Apple is taints his views, you're simply and obviously wrong.

Here's a thought experiment. Suppose you were Microsoft, and you made a series of ads, planning the first two and possibly a third to be with Jerry Seinfeld (pending reception of the first two) and the rest with lesser celebrities or none at all. Would you not still hype them up for a couple months beforehand? I mean, you just hired possibly the biggest celebrity in TV history to do your TV ads. You wouldn't be issuing press releases, even if it were just for the first two weeks of a year-long campaign? I would.

So then, suppose they get a highly mixed reception and you continue on with your original plan of switching to the other ones. People start asking you why. What do you tell them?

They answered through their PR department because that's who questions to Microsoft (or any large corporation) go to. The PR department. That's the point of a PR department, to be the liaison between the company and the press.

CPB group's job is not to talk to reporters on Microsoft's behalf, and it would be unusual if they were the ones issuing press releases and statements on Microsoft's behalf.

<comment><USER9> You used "fanboy" like a negative term when you referred to Gruber. The name has negative connotations. Here you dismiss him again by calling him a "fanboy leader" and generalizing against Apple users and Gruber readers. People read his stuff not because he constantly supports Mac, but because he's a good writer, he finds good links, and he tends to be pretty honest about how he feels. I read him before I was a Mac user, and it was the things that he pointed out that made me certain that I wanted a Mac. I don't think that's fanboyish of him, though: he honestly pointed out interesting stuff, and he never acts with a bias towards Apple, beyond the bias of them working well for him. If Apple does a bad job, he points it out.

I'm not digging your style, I must say. Comparing my point to Bill O'Reilly's style is pretty distorted. My point - that if a lot of smart people are also big Apple people, that Apple may actually be making the best products - <USER2> hardly irrational. I don't know why you've got a problem against Apple, or why you like tinting every lens in favor of Microsoft, but it's not pleasant and most of your posts have things in them that seem sneering towards things I genuinely like. Apparently your big web site is also a blog that got famous for being offensive, so that's no big surprise, but at the same time you'll forgive me from finding it a bit immature of you.

You think Microsoft only had three ads planned? You think they dropped only a single ad? Citation? And if they DID overadvertise Seinfeld for only a few ads, I'd say that was a bad move on Microsoft's part.

<comment><USER10> I'm not dismissing him. But he makes his living by writing a blog that Apple fans read. No offense, but if you believe he is unbiased despite that, you're naive.

I don't have any particular love for Microsoft or loathing for Apple. I really don't care. I don't like the fanboy mindset that's pervaded the tech media, where Apple can do no wrong and Microsoft no right. I see Apple fans routinely criticize Microsoft for the DRM in Vista (which affects the 8 people who have a Vista PC with BluRay hooked up to an HDTV but not through an HDMI connection that supports HDCP) but not Apple (who has done more to promote and benefit from DRM than anyone by a factor of 1,000) and I call bullshit on it. If that's offensive or immature, then I'm OK with that.

My blog is neither famous nor big. I don't make any money at all from promoting Microsoft. Gruber, on the other hand, makes money from being an Apple fanatic. And of course, that doesn't mean that he can't form a coherent argument, but it does mean that you need to take whatever he says about Microsoft with a grain of salt.

I do think Microsoft dropped at most 1 Seinfeld ad. My citation would be Microsoft's and Crispin Porter + Bogusky's statements to the press. Not to mention the fact that he took Microsoft's response to the press coming through their PR agency (whose main job it is to respond to press on their behalf) to be any sort of proof of anything.

Where's your citations, other than baseless illogical heresay on fanboy blogs?

<comment><USER9> I think that there's a difference between a bias and outright fanboyism. I've met Apple fanboys: they're not fun. They take the thing that I love about Apple users (the generally rational mindset) and make it look dumb. Gruber's not one of those people. Does he like Mac? Of course. But I think he likes it because they genuinely please him, not because he's getting paid to like them.

You're allowed to call bullshit on Apple fans who act like hypocrites. Apple fans who attack DRM without calling attention to iTunes are being stupid. At the same time, ignoring the fact that Apple's got more DRM-free music than any other store, last I checked, is ignoring the fact that Apple is TRYING to allow for open systems insofar as it doesn't ruin a business deal. But DRM isn't the issue here, and I don't see why that's being brought up.

Your initial stance against Gruber's reaction was a sneering one, though. I mean, those Seinfeld ads really didn't push much for Vista. They were well- made shots, but you've been saying repeatedly that they're possibly going to revolutionize advertising and make history. I think that's illogical just as you seem to think disliking those ads were illogical.

When I read blogs, I take their arguments at face value. If I'm reading an argument from Apple itself, if that argument makes sense then I'll agree with it until other proof comes up. Similarly, if somebody who's usually big on Apple turns around and starts praising Linux or Windows, I don't think they're more credible because it's such a big change. Unless their reasoning is good, I'll still call BS.

I didn't see the part in their statement where they said they had only dropped a single ad. I don't recall seeing that anywhere. If you've got a link to that, or even the site you found it on, then tell me and I'll give it a look. But I still hold that their having only two ads seems pretty lackluster and looks like they're panicking, even though I acknowledge the fact that there might be more reasoning behind them. I think that the terrible phase two that we're seeing continues that trend.

What would you like me to cite? Anything you think I said that isn't rationally thought-out I'll try to clarify. I will point out, though, that your responding to my accusations by using yet more weasel words really doesn't make you seem particularly more believable.

<comment><USER10> I read on TechCrunch (and scores of other places) that Microsoft said that this has been their plan all along.

[http://www.techcrunch.com/2008/09/17/its-over-for- seinfeld-b...](http://www.techcrunch.com/2008/09/17/its-over-for-seinfeld-but- crispin-porter-keeps-microsoft-business/)

Gizmodo says that CP+B confirms there was one produced that hasn't aired, but may later, along with others yet to be produced:

[http://gizmodo.com/5051682/microsoft-ads-featuring-bill- gate...](http://gizmodo.com/5051682/microsoft-ads-featuring-bill-gates-and- jerry-seinfeld-not-canceled)

There you go. Got anything to the contrary that isn't baseless hearsay like "Microsoft's questions from the press were replied to by their public relations agency, ergo they are panicking"?

Surely you must admit now that Gruber's logic there was deeply flawed.

<comment><USER9> Gotcha. I hadn't seen either of those two stories. Thanks for the links!

And yeah. Flawed logic following those two stories. I still think Microsoft's campaign is questionable at best, but at least it looks like they're still proceeding as per plan.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> The new ads by Microsoft are good.

What will be better is how Apple will respond to the ads.

</comment><comment> captain-m I like Seth Godin's take on the ads:

"[...] Vista and PowerPoint and Microsoft's other core non-game products are largely devoid of personality and are optimized to be sold to organizations that prefer it that way. Microsoft can change this if they want to, but until they do, running ads pretending to be something other than that is a waste of money."

[http://sethgodin.typepad.com/seths_blog/2008/09/what- adverti...](http://sethgodin.typepad.com/seths_blog/2008/09/what- advertisin.html)

</comment><comment><USER12> "Opinions seem to be wide-ranging, and of course your day wouldn't be complete unless you heard mine. "

HAHAHA</comment>


Android Jetpack Compose Is Welcome, but What About the Churn? - <AUTHOR> https://www.i-programmer.info/news/193-android/13985-android-jetpack-compose-is-welcome-but-what-about-the-churn.html <comment><USER2> Isn't android really a case of

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

?

It lets Apple keep making all the profit in smartphones without facing antitrust concerns for dominating the upper-middle to high priced smart phone market. It also gives Apple a motivation to let Google have it's way with advertising as there is a quid pro quid -- if Android goes down than Apple would be torn apart by regulators in Europe and China at the very least.

Thus nobody was really supposed to use Android or write apps for it.</comment>


Why experts are overwhelmingly skeptical of online voting - <AUTHOR> https://arstechnica.com/tech-policy/2020/09/why-experts-are-overwhelmingly-skeptical-of-online-voting/ <comment><USER2> One company featured in the article, VotingWorks, recently provided electronic voting machines in Mississippi. They're a non-profit and were funded in YC's W19 batch. They made this short film documenting the voting machine procurement process they encountered in Mississippi [https://youtu.be/huAMMppBV1w](https://youtu.be/huAMMppBV1w)</comment>