PHP 8 to Add a JIT - <AUTHOR> https://blog.krakjoe.ninja/2019/03/php-gr8.html <comment><USER2> This is the RFC with more technical details [https://wiki.php.net/rfc/jit](https://wiki.php.net/rfc/jit).

I believe their plan is to emit low-level code directly via DynAsm, without their own intermediate representation.

This kind of approach has been tried again and again and again and every project doing this either not got the results they wanted and given up or has had to go back and add a proper intermediate representation.

Examples include Rust adding MIR before emitting LLVM, Rubinius trying to emit LLVM directly from Ruby and not getting good results so giving up, JRuby adding an IR before emitting Java byte code, Dropbox's Pyston implementation of Python that emitted LLVM directly where they gave up entirely, etc, etc, etc.

Low level backends are not going to do the kind of key optimisations such as scalar replacement of aggregates that are table stakes for making a dynamic language perform well - they just don't have the high-level semantic model of the language needed to do it.

Maybe they've got some new ideas, or maybe simplicity is a key constraint for them, but I predict from experience that they will need an intermediate representation to get the results that they want.

<comment><USER3> > making a dynamic language perform well

Perhaps the advantage here is that PHP really all that dynamic. PHP is much closer in design to taking Java and compiling it on every request than it is like Python or Ruby.

<comment><USER4> Well, you can do

        $moo = "hello";
        $zork = "moo";
        echo $$zork; // hello

It doesn't get much more dynamic than that.

<comment><USER3> It can. Python, for example, builds up classes at runtime. PHP builds up classes at compile time. There are plenty of other examples. PHP is really dynamic through eval() but that's more rare.

Although PHP does support the above syntax, it's actually pretty rare in production code. PHP can be optimized like JavaScript is: perform direct variable/member access but provide a slow path for these kinds of dynamic lookups.

<comment><USER5> You can't just wave away the impact of having eval though. Just the fact that it exists means you need to keep around some supporting state like variable names. You can't do full constant folding and eliminate all intermediate steps for example if there a chance a runtime-created code will reach into your frame and want them back.

<comment><USER3> eval() is scoped to the current block. If you even just ignored JITing any function with eval() in it then you'd still get quite far.

</comment></comment></comment></comment></comment></comment><comment><USER6> There is something to be said about PHP's staying power. The early versions of the language weren't considered "right". Except maybe they were _right_ for the problem at hand.

The way I see it was PHP captured the _vector of change_ , and left ample room for future developments. Both internal changes (hello, bytecode; hello, JIT), language level features (hi there, namespaces), and runtime level features (oh hai, countless built in classes and functions).

Moreover, unlike many framework that shone brightly and burned out quickly (Rails?), PHP captured the essence of the environment: HTTP is stateless, and URLs aren't uniformly routable from either end, and well-formed HTML/XML/JSON is just a subset of tag soup.

 _Worse is better._

<comment><USER7> I think PHP had a couple of obvious advantages - it almost had a "first mover" advantage in that it happened to be installed alongside CGI-BIN on shared webhosts way back in the way - plus Drupal and WordPress being PHP projects.

But to me, one of the most significant advantages PHP has is that its documentation is _terrific_. PHP.net is simple, clear about parameters and return values (as clear as PHP lets it be anyways) and best of all has a terrific comments / examples section for each function.

 _Better documented is better._

<comment><USER8> Things may have changed since v7 but historically I've not found PHPs documentation any better than any other language.

In fact I remember a few occasions where I've ended up going by the advice of the comments rather than the documentation itself because the documentation was either out dated or just plain wrong.

<comment><USER9> Perhaps not better, but there certainly have been worse.

As for the comments. Yes. But at least they're there, and quite often helpful. Plenty of times I've read other docs where I wished they had commenting but alas didn't.

<comment><USER10> The comments are only needed because the documentation is often wrong or confused. And, of course, usually most of the comments are wrong too.

Other languages don't need comments because they at least aim to have documentation that's correct.

<comment><USER11> If you find the documentation wrong or confused please let us know. [https://bugs.php.net/](https://bugs.php.net/) We do our best. I was granted access some ten years ago and whenever I find a confusing page I fix it. I know there has been terrible pieces before but for the last oh five or six years I don't really find anything too bad. Please let us know what you found wrong. Thanks!

<comment><USER10> I was mostly responding to the idea in an ancestor comment that PHP has unusually good documentation (better than that of other languages), "best of all" having comments.

I'm sure the PHP documentation is getting better all the time! Other languages also have good documentation, though. And as pushpop said in an earlier comment, the reason that the comments were useful historically is that the documentation was not always correct or complete. (Perhaps in part because the the language used to have a lot more unintended quirks?)

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> PHP is doing great! I like the direction it is going in. PHP 7.4 also introduced nice features to improve static typing. The FFI is pretty cool too. You also get free performance improvements while remaining mostly backward compatible. It is trying very hard to stay relevant and I believe it is succeeding.

<comment><USER13> And dont forget about preloading - an OPCache improvement, also available from 7.4.

</comment></comment><comment><USER14> I am pretty impressed with the path PHP has been taking lately. They have moved the language from being a mess into aggressively incorporating modern features at a very rapid pace. Especially PHP7 is a really nice language.

<comment><USER15> I think the problem with PHP is that it's a mature language that is aggressively incorporating modern features, yet _still is a mess_.

<comment><USER16> What are the messy bits? I know they are there but how is it a mess in your opinion?

There seems to be a lot of "PHP is a mess/garabage/whatever else" hyperbole in this thread with no actual explanations why.

<comment><USER17> I for one would rather see common utilities move into proper naming and static classing with proper returns. For instance, strpos(string haystack, string needle) will return the position of needle in haystack as an int if found. If not, it returns false. To me, the proper thing in this scenario is to either return an int (even -1 is fine for not found) or throw an exception.

There's inconsistencies in typing of what is returned. There's nothing wrong with loose typing, especially in the place that PHP is used. It's just that the PHP API regularly returns not what you'd expect.

Throw into the mix that the built in simple-functions are all over the place ([https://www.php.net/manual/en/ref.strings.php](https://www.php.net/manual/en/ref.strings.php)). Seriously, there's str_replace, strpos, and parse_str. These could easily be solved by doing something similar to C#'s naming by changing it to something like String.Replace, String.IndexOf, String.Parse.

</comment></comment></comment></comment><comment><USER18> My feelings about PHP are stuck in what I remember from 2004. If I'm starting a new backend web project in 2019, should I be considering PHP over Ruby, Python, or TypeScript? Why or why not? I'm curious to hear from anyone who's used it professionally in the last couple years.

<comment><USER19> For majority of backend web project, in 2019, there should be nearly no technical advantage re: one language over another among all the popular ones. (i.e. the ones you listed: PHP, Ruby, Python. I would argue to use pure nodejs over Typescript though. Most people underestimate the dev flow speed it gives you to not to have a compile/transpile step. Refresh and rerun is part of what made PHP so popular years ago.)

In short, use whatever you're comfortable with. If you're super proficient with PHP, keep using it. If Python is that language for you, use Python.

<comment><USER20> > there should be nearly no technical advantage

In practice there is. Specifically in regard to parallelism and performance, which is important for any non-trivial application.

You can spin up multiple Python processes or just re-implement in a different language, some nuanced part of the stack that you've crafted to bottleneck(s), or you can just choose not to use it from the start. It's not like you're going to design around the deficiency at all levels.

You'll run into Ruby performance problems very early on without specific knowledge, so people just stopped using it for anything load bearing. My bias against Ruby is limited to PoC programs having memory problems and poor performance compared to virtually identical implementations in other languages, being a cultprit. YMMV.

Perl is hard for people to understand, since every feature of the language is a landmine of obfuscation...php is getting there on it's own, to be fair.

The idea that there should be no technical advantage is ignorant. There are choices that have been made and there's reasons for each. You don't run Python on stream processing with Flink because it's not suited for parallelism. Catching errors like a kafka broker disappearing, in PHP, is almost trivial like in many languages, while Java requires a custom retry method that requires intimate knowledge of how any connector works.

Knowing the languages, PHP has some very compelling strengths, as does Java (performance and safety) and Python (generally consistency of implementation and speed of development)...I still don't understand why I keep running into rats' nests of javascript and other esoterics.

</comment></comment></comment><comment><USER21> One very important motivation what I do not see clearly delineated in this post is for Event-driven applications. Swoole[1] is an example of a PHP framework which enable some very interesting uses such as Websocket services.

In those long lived processes, a JIT really shines!

[1] [https://www.swoole.co.uk/](https://www.swoole.co.uk/)

<comment><USER13> Do you happen to have any benchmarks with JIT and libries like swoole?

I thought the same some days ago, but in theory, the output from JIT lives across requests so it shouldn't matter if its a long lived process or simply a normal PHPfpm process.

Also, the usual bottleneck in PHP is I/O.

<comment><USER22> in long running processes like Swoole, there is no web server running in front of PHP meaning PHP does some more heavy lifting which could benefit from JIT.

<comment><USER23> That is not entirely correct. Swoole already takes away a lot of the CPU heavy code, like HTTP protocol parsing by providing it in its C extension.

For one of my PHP extensions I benchmarked the C level implementation to be 5x faster than Jitted PHP code: [https://beberlei.de/2019/03/25/the_jit_in_relation_to_php_ex...](https://beberlei.de/2019/03/25/the_jit_in_relation_to_php_extensions.html)

So no, if your Swoole application does a lot of async I/O and its only in CPU code to delegate between I/O, then it will not benefit from the JIT.

"Long-Running process" alone doesn't mean that its CPU bound.

</comment></comment></comment></comment><comment><USER24> Article appears to be from the same person that maintains apcu, a very popular user space kv memory cache for PHP. [https://github.com/krakjoe/apcu](https://github.com/krakjoe/apcu)

<comment><USER25> Joe Watkins is a really nice person and contributed a lot to php including the thread support (php-pthreads) the debugger (php-dbg) and other really impressive stuff.

The nice story here is when he was in financial trouble (because of a bad employer) the community stepped up and donated to him ( [https://www.gofundme.com/b9dfcg](https://www.gofundme.com/b9dfcg) ).

He has constantly been useful and a positive force of change and any language ecosystem would be happy to have him.

</comment></comment><comment><USER26> I'm happy PHP is still there, because other much better languages missed a lot of good things that PHP got right immediately (in the context of web development):

1\. You may add complexity if you want but the _bare metal_ of web is that you have some printf() like output construct plus a trivial <? ?> interpolation thing. Then who wants more can add more, but this should be what you get immediately for free, without template languages.

2\. Languages, even high level ones, should be reasonably fast.

3\. Setting up an environment should be trivial.

4\. By default things are created and die in the context of a page load. Then if you want to optimize things, you may have _additional constructs_ to create persistent connections, objects, whatever. But give me this huge garbage collector that is a stateless execution, by default.

5\. A set of libraries already included so that for most things I don't have to go and find some solution.

Many other competitors failed so big in that regards that I really wanted PHP to get better as a language (like it is doing) so that it was not a so bad experience like at the start, because I was pretty sure the others would hardly fix the above points.

<comment><USER27> Now, the actual tragedy of PHP isn't that coding in it feels soul-drainingly tainted, but that it was always 'good enough' for armies of people. Because, as a result, there wasn't any incentive to add features outside of the paradigm of one-shot scripts.

E.g. there are at least three async frameworks, with barely any adoption―and this new 'Swole' one is advertised like ReactPHP never existed, with its promises and everything.

Meanwhile, somehow, the poster notion of PHP's versatility is that it's purportedly just fine for desktop GUI programming, of all things―while being single-threaded (its 'pthreads' aren't threads). The topic of UI freezes never comes up in these pamphlets, for some reason.

</comment></comment><comment><USER28> PHP has made huge strides with 7.0+ but honestly a JIT was nowhere on my list of feature requests. We use it at work (with CodeIgniter) and it gives the company a big pool of reasonably qualified talent. For anything outside our web apps, we switch to Python. I find it unlikely that new PHP shops are going to use it to do all the CPU-bound things we aren't using it for now.

But who knows? I wouldn't have thought it would be as popular as it is now, if you'd asked me 5 years ago.

</comment><comment><USER29> Love what they've been doing on PHP lately :)

> However, this in fact opens the door on things such as machine learning, 3d > rendering, 2d (gui) rendering, and data analysis, to name just a few.

Shouldn't we get decent threading built in before we consider most of those? I've hit that wall many times when processing larger amounts of data w/ php scripts. I know about the pthreads plugin but nothing beats a first class citizen like goroutines for go or similar.

<comment><USER23> Joe (the author of this post and pthreads extension) has been working on a new threading extension in the last months that looks extremely promising and more along the lines of goroutines than Java style threading:

\- [https://github.com/krakjoe/parallel](https://github.com/krakjoe/parallel) \- [https://blog.krakjoe.ninja/2019/02/parallel-php-next- chapter...](https://blog.krakjoe.ninja/2019/02/parallel-php-next-chapter.html)

<comment><USER30> Wow, that looks incredible. Thank you for linking it.

</comment></comment></comment><comment><USER31> Apart from ubiquitous cheap hosting another big factor in PHP's early success was the numerous magazines pumping out "Build X with PHP and MySQL" articles. The shelves of newsagents were full of them in the early 2000s, some devoted purely to PHP development. Dreamweaver also adopted PHP for its dynamic site generator which made it accessible to front-end developers.

</comment><comment><USER32> Need some love here for AOLServer and TCL. Got "Philip & Alex's Guide to Web Publishing" and within two weeks had a major Mutual Fund company up on the web. The CICS interface was a little wonky, but it worked and worked well.

I do things now with Wordpress, since that grew and was maintained past AOL server. I always look forward to improvements in PHP, the last few releases have made huge strides in page load times

</comment><comment><USER33> I care enough to click the link. But I don't care enough to know anything about PHP 8. Why is the author insulting me with the intro?

<comment><USER34> I felt the intro was a little off too. I hadn't even heard of PHP 8 until today.

</comment></comment><comment><USER35> So if JIT involves compiling into native machine code, can we expect that in the future JIT capability would help PHP devs implement compiling whole PHP project into native (like a single .exe binary for Windows)?

</comment><comment><USER36> Doesn't this duplicate the effort of HHVM?

<comment><USER37> Nope! As of last year, HHVM no longer targets PHP [1]; instead, it targets a Facebook-specific variant of PHP called "Hack". It will still run some PHP code, but that's on its way out.

Even better/worse, PHP 7.2 with an opcode cache can actually outperform HHVM on many practical benchmarks [2], and 7.3 is faster still.

[1]: [https://hhvm.com/blog/2018/09/12/end-of-php-support- future-o...](https://hhvm.com/blog/2018/09/12/end-of-php-support-future-of- hack.html)

[2]: [http://web.archive.org/web/20180305000053/https://kinsta.com...](http://web.archive.org/web/20180305000053/https://kinsta.com/blog/php-7-hhvm- benchmarks/)

</comment></comment><comment><USER38> For a second I read that as "PDP 8..."

</comment><comment><USER39> The article says that this will help PHP in areas outside of the web. But what others areas actually _want_ PHP? Even in its niche, the web, it has fallen out of grace for new projects.

<comment><USER40> Don't believe it. Maybe in SV it's out of grace, but it gets plenty of use.

</comment></comment><comment><USER41> I already submitted that: [https://news.ycombinator.com/item?id=19531611](https://news.ycombinator.com/item?id=19531611)</comment>


Ask HN: Zero programming experience and badly want to learn. Where to start?  - <AUTHOR>

I have zero programming experience, since I work mostly on the nontechnical side of start-ups. Ruby and other languages are extremely interesting to me and I am definitely interested in learning how to use them, but I want to have a basic idea of the time involved. Was it weeks/months/years until you felt comfortable writing an entire Web app with basic functionality?<p>The problem I have is that I have at least one idea that I'm really interested in fleshing out, and I'm wondering whether I'm going to have to sit on it for a year if I want to code the web app myself. Like I said, I'm usually on the non-technical end of start-ups. <comment><USER2> _Was it weeks/months/years until you felt comfortable writing an entire Web app with basic functionality?_

Comfortable? I don't know. Capable? a few months. Starting to flesh out your ideas? Within 1 month of starting an EARNEST effort to learn what it takes to write web apps.

I was in your shoes about 15 months ago (roughly).

I had ideas and wanted to be at least "sort of" able to flesh them out on my own. I had more than zero exposure to programming, but by most standards not much more. I had recorded and hacked up some VBA macros for work, had no idea what objects in object oriented programming were, and in college I had used Mathematica. I had just started using python and the longest script I had written was less than 100 lines.

I had ideas and I wanted to be able to execute (even poorly).

The general "I can't hack but I want to" theme comes up quote frequently on HN. There are a ton of resources for this. This link by by iamelgringo is the one I first read and it was immensely helpful, partially because it gave me time targets to try to beat. I more or less tried to follow this path.

[http://iamelgringo.blogspot.com/2008/05/teach-yourself- you-t...](http://iamelgringo.blogspot.com/2008/05/teach-yourself-you-to-hack- in-6-9.html)

After you get started though it'll become clear to you what you need to learn and the process will take on a mind of its own.

Other resources from HN:

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

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

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

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

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

If you're really at absolute ZERO on programming, I've been recommending Zed Shaw's python book:

<http://learnpythonthehardway.org/>

By lesson 20, you should be concurrently working on iamelgringo's lesson plan.

I am really happy on the python/django side, still awful at CSS, can barely deploy a server right, and use the reference manual all the time for jQuery. What you'll realize is that being comfortable has less to do with being able to sit at a blank terminal and typing than knowing how to traverse the documentation for each project.

People WANT to help you learn. As long as you make some effort to try yourself, hang out in the python, django, jquery rooms and ask questions whenever you need. I still do all the time. Spend 5 earnest minutes each question looking for the answer. If you keep asking questions that are answered by the first google hit, nobody will want to help. But if you're making an effort to self-learn, people will be very sympathetic.

Typing "terminal" above also just reminded be that learning to use linux and vim was an entirely separate battle. The process is the same. You'll keep hitting tasks you don't know how to accomplish. Google it and ask someone. I still suck with both, and I'm still learning.

Its a tough battle, I definitely recommend you reach out to people in your city, find startups and say "hey I suck, want a free intern?" (I did this). Try to sit in the same room as them once a week and hack. Having an immediate resources available to answer questions verbally is huge.

You don't have to "know" how to do all that stuff to be able to write apps quickly, you need to know where to find all the information.

I'm probably slow by most people's standards here, but less than a year after I started I felt comfortable with deploying a small weekend project. For the first 3 months, I was hacking 60+ hours a week, not because I felt like I should, but because once you start learning, you realize how much you still need to learn and you get obsessed. There's a sick satisfaction to banging on your terminal and watching your vision come to life, little by little. Every month you'll look back at your code and want to vomit. This is a good sign (I think?). Don't worry about memorizing anything, just worry about doing it more and more. The things that you look up a lot will stick and your production efficiency will improve.

Last week I spent 60 hours to produce a crappy MVP of a project I"m working on, roughly 2300 lines of code. I was on IRC the whole time asking questions.

<comment><USER3> I want to say thank you for the list before I ask my stupid questions. How and where did you learn about object-orientation, etc? I find myself in a very sticky situation where I've been programming micro-controllers in C and assembly for years and using Matlab for high-level simulations with a giant chasm in my knowledge in between. Every resource that I have read so far seems to assume a student who has formally studied CS. Is there an accessible guide to object-orientation?

<comment><USER4> If what you're comfortable with is lower level stuff, one possibility is to look at an implementation of an object system in C. In particular, I found reading the Python source code to be helpful when learning about object orientation.

</comment></comment></comment><comment><USER5> If you've never programmed before, the effort would be comparable to becoming fluent in another language or becoming proficient with a musical instrument.

When learning programming for the first time, you'll be able to do some basic things pretty quickly, similarly to how you can learn basic phrases/words in another language or learn how to do scales/simple songs with a new instrument. But to get to the point to be able to code any idea you have into reality it takes much more time. As in years, not months.

</comment><comment><USER6> I was in the same position as you a few months ago. I had an idea for YComb!, and I didn't know any technical guys well enough to be a technical co-founder, so I decided I was going to be the technical co-founder.

I would recommend picking up SAMS Teach Yourself HTML and CSS in 24 Hours: [http://www.amazon.com/Sams-Teach-Yourself-Hours- Coverage/dp/...](http://www.amazon.com/Sams-Teach-Yourself-Hours- Coverage/dp/0672330970/ref=sr_1_1?ie=UTF8&qid=1287249172&sr=8-1) and O'Reilly's Learning PHP, MySQL, and Javascript: [http://www.amazon.com/Learning-MySQL-JavaScript-Step--- Step/...](http://www.amazon.com/Learning-MySQL-JavaScript-Step--- Step/dp/0596157134/ref=sr_1_2?ie=UTF8&qid=1287249246&sr=8-2)

Do the SAMS guide first, then O'Reilly. Do the examples, do the examples, do the examples. That's the most important part. Even if you only have a few spare hours per day, you can get through 3-4 chapters of HTML/CSS, but I would recommend only doing one chapter of the O'Reilly book a day, since it's a bit more to learn than the SAMS book. So, it should take you about 3 weeks to work through both of those, and have at least a competent grasp on web dev. From there you can probably make your own decisions about where you want to go from there.

<comment><USER7> >I didn't know any technical guys well enough to be a technical co-founder, so I decided I was going to be the technical co-founder.

The world needs more people like you.

</comment></comment><comment><USER8> Zed Shaw recently made a nice free book for those with zero programming experience:

<http://learnpythonthehardway.org/>

That's not a path, but a start.

</comment><comment><USER9> I started learning python in March of this year. I couldn't tell you how much time I've put into it - it's hard to keep track of.

Within two months I had my first rudimentary web app up and running. I used Django for the app itself and used linode for the hosting.

Now it's not a great app by any means. It doesn't make a real contribution to the world. But the experience was enormously satisfying and genuinely life changing.

One thing that astonished me was that I had to learn a whole lot less than I thought I would in order to actually get something done. One of my best mates has been coding in PHP for years and years and watching him made me think that the process of deploying a webapp was monumental. I thought - wow, I have to learn html, mysql, css, before I can even make use of my pythony backend.

But it's just not true anymore. There is so much free code out there - enormous amounts. It's a wonder to me now why everyone isn't coding. It's really only one level of effort removed beyond learning to deal with the shitty interface on over hyped product X you just blew your hard earned on.

Just over six months on from the time I started - I certainly don't count myself particularly skilled as a coder - not by any means. But no matter what I think up to do next, within a few days I've figured out how to do it. I kinda feel like there just isn't anything I can't do if I put my mind to it. As my confidence grows I come up with ever more ambitious ideas. It's a wonderful feeling.

So stop worrying about how much time it's gonna take you to get to your (probably myopically) perceived endpoint - and just get on with putting code to screen to see what you can do right now. It's a lot more than you think.

</comment><comment><USER10> A must read before starting the journey.. <http://norvig.com/21-days.html>

</comment><comment><USER11> You can probably hack something out from tutorials, books, etc... but it won't be _good_. It'll work and seem impressive, but you might be surprised by security holes or server outages. Dealing with those issues will teach you other things... but it takes a certain amount of thick skin to learn in such a "trial by fire."

If it's your own time/money -- go for it.

However, mastery of anything demands sacrifice and dedication. If you want to go beyond practical application and become really good at something where you can create and contribute new ideas; it will take you years of work and study. You will have to crack open text books, take notes, read source code to old operating systems, review the important academic papers, constantly hack on new projects, and spend a lot of time developing poor vision, lower back pain, and RSI. Learn to fear the outdoors and make sure you find a partner who'll remind you to take care of yourself and stop sitting in front of the computer so much.

</comment><comment><USER12> This says it much better than I can: How to Build a Web Site from Scratch with No Experience ([http://lifehacker.com/5336113/how-to-build-a-web-site- from-s...](http://lifehacker.com/5336113/how-to-build-a-web-site-from-scratch- with-no-experience))

It details how the author built mixtape.me starting with basically zero experience, and is quite worth your while.

The advice below uses Rails as the framework, but will work whichever one you choose. The steps stay the same: build a basic app with help (from a book, tutorial, etc.) to understand the framework/language, start building what you want to create and learn at the same time.

What I'd suggest is to obtain a copy of "Agile Web Development with Rails (4th edition)" ([http://pragprog.com/titles/rails4/agile-web-development- with...](http://pragprog.com/titles/rails4/agile-web-development-with-rails)). Side note: it's not published yet, so make sure you get the beta version (an e-book version, and you'll be notified of updates as content is modified/added).

Then read through the book while building the example application in the book (a basic shopping website). This approach is great, because you learn by doing and you also get to glance at agile methodologies.

Once you've gone through the toy app and understood it, you'll be quite proud of yourself and will be able to build simple things already.

At this point, you should start to work on your own idea, it's much more motivating and you'll always learn the most when working on a "real" project.

To be noted: the Rails book does assume you have passing familiarity with Ruby (or at least a programing language), HTML, etc. If you need/want to learn programming first, you should probably also get an appropriate book on the subject, such as "Learn to Program (2nd edition)" (<http://pragprog.com/titles/ltp2/learn-to-program>) or, if you're more advanced, the Pickaxe (<http://pragprog.com/titles/ruby3/programming- ruby-1-9>).

Oh, and the reason I mention PragProg books isn't because I'm affiliated with them (I'm not), but because I have yet to get one of their books that doesn't live up to my expectations.

</comment><comment><USER13> I'd start much simpler than any of the full-on backend languages mentioned like Ruby, Python, Java, etc.

Get the very basics down - it will be fast and easy and you'll feel good you are making progress. HTML and CSS - don't get bogged down in HTML5 or any latest cutting edge thing or another. Just the core for now.

Once you've got this down, which really is pretty simple stuff, I'd go into jQuery and Javascript. Both are fairly easy to approach though deceptively so maybe, with a ton of upside; and with the push that NodeJS is making, that may be all the programming you need even for the backend.

I don't have any good rec's on learning HTML but google it, there's a ton out there.

CSS I'd do the same, though I also really like _CSS - The Missing Manual_ by McFarland.

For Javascript you'll be hearing a lot of _Javascript - The Good Parts_ by Douglas Crockford, a must read if you are serious.

And jQuery, honestly is so fun/powerful/addictive, if you get a big of Javascript down you will be off and running. There are countless tutorial websites on jQuery and more books coming everyday. Bookwise it's hard to rec right now as the new version of jQuery just dropped today and everything is a bit out of date as it stands.

Bottom line, don't get caught up in trying to learn too much to begin with. Also, good UI Coders are hard to come by and you can always find a Rails/Python/back-end guy to help out until you get that stuff down too.

</comment><comment> cool-RR My advice is: Before you think "how many months/years it will take me to create program X", just dive in for a couple of weeks to basic programming. The information you'll have from this experience will allow you to decide much more wisely whether you want to continue on this path or not.

</comment><comment><USER14> You're going to need to learn more than a programming language. You should really learn how web transactions work, the roles of the browser and web/app servers, browser-side markup and programming, ...etc.

I would recommend that you pick up the book "Using Google App Engine" by Charles Severance. The book teaches the reader how to build applications specifically for the GAE, but it contains very good introductory chapters for the person who is trying to come up to speed quickly on web development technologies.

The early chapters begin with explanations of the mechanics of web transactions. The next chapters deal with HTML and CSS. Another chapter in the progression then provides rudimentary Python programming instruction ( programs in this chapter are executed under a command-prompt ).

After these fundamentals have been covered, the GAE web programming specifics are introduced. At least one of the programs that had been an exercise in the command-prompt-Python chapter is then rewritten as a web application to illustrate some of the differences.

Development for the GAE itself is different than other approaches to web development, but I believe that if you become conversant with the subject matter covered in this book, you could more readily learn other web development technologies.

</comment><comment><USER15> I've been programming for probably 17 years, since high school, and just recently I appreciated JavaScript. For all its shortcomings, it's beautiful. If you'd just understand it, you would be able to easily understand other languages, dynamic or otherwise.

<comment><USER16> _If you'd just understand it, you would be able to easily understand other languages, dynamic or otherwise._

I am genuinely curious to know why you think so.

<comment><USER15> Sorry for delayed reply. I think so because JavaScript, with its prototype system, dynamic typing and closures, makes various famous language features and their implementations explicit, while other languages may hide their inner workings in the name of simplicity, safety, etc. Thus, by learning JavaScript first, one can bypass the reverence for OOishness espoused by Java or C#, and yet understand them better because "class", "type", "object" in JavaScript understood to be not atomic concepts, but constructable pieces of code. With JavaScript, one starts interacting with inner workings of the language very early in the learning process. Really, in which language one learns about events first? Remember "onClick"? Sure, interaction starts at level 0, but that's great because already the value of events is understood without writing a single "public static main voiid".

</comment></comment></comment><comment><USER17> 1\. If you don't already have familiarity with HTML and CSS, learn those first. I recommend a book called Learning Web Design: <http://www.learningwebdesign.com/>

It teaches like a math book, with practice problems after each lesson.

2\. Pick a language to learn. I had a C++ background that I hadn't touched since high school, so I found Ruby a little confusing. But it may also be because of the teaching style of the books I used...

Anyway, I switched to PHP and learned from Larry Ullman's book, PHP 6 and MySQL 5 (<http://www.dmcinsights.com/phpmysql3/>)

3\. Going through both of these will probably take you 2-3 months if you're diligent. But once you're halfway through the second book, I'd say you know enough to start building something and using the PHP book as a reference.

What you'll find is that as you build things, you will learn a lot more about how to make your app come together.

Also, I disagree with the comment that it takes years to be able to do something decent with your newfound programming knowledge. Yes, it will take years before you can talk shop with the best of them, but as someone who has taken several languages (Spanish, Japanese, Latin) and played several instruments (piano, flute), I know it doesn't _have_ take years to get past doing scales.

That's has more to do with ability to learn quickly and dedication.

</comment><comment><USER18> I'm teaching a dozen people or so how to build "websites" with HTML/CSS/Javascript/python. There's four intro lessons that take about an hour-ish, and then we review code once a week or so.

The idea is to give you the absolute minimum exposure you need to build what you want to build, show you how to look up the rest, and introduce you to some of the more abstract principles by correcting your code as you go.

Definitely still in Beta / Guinea Pig mode, but send me an email if you'd like to try it out: japherwocky [at] pearachute.com

</comment><comment><USER19> Start with more basic tasks like script automation and you'll be able to work your way up. I went like this (if its any help):

HTML, IT-Basic, Visual Basic, C++, Java, C, PHP, Ruby.

Of course there's small pieces of python, shell, more Javascript than I'd want to admit, and a couple of others.

But I first started writing HTML. This helps because it makes you think technically at multiple levels. First what you want to do (the goal), then the language needed (HTML), and why what you wrote (HTML) isn't what you want (the goal). Trial and error will get you into a program's mind.

Then I ended up using TI-Basic to program every math problem I would have to solve in high school into menu-based programs for tests.

Then I started writing VB programs (hangman, calculators) and even wrote a fully animated GDI game. It was slow, the VB code was absolutely terrible. Which moved me into C++ / DirectX for making games... etc.

So mainly, start with something small and consumable. Once you can eat that, hopping to the next, bigger problem seems smaller from where you are?

</comment><comment><USER20> Don't think of it as learning a language. You will never be able to learn everything.

Best way is to pick a project. Any simple small project to begin with. And start implementing it.

Dont worry about anything (optimization and all stuff) as far as you are getting results.

If you are not able to find any Simple project, just try to implement a To-do list.

</comment><comment><USER21> I'm a believer that in order to learn programming you first need to find a problem you want to solve. Then solve it. It really, really helps if there is someone who you can ask questions of. But it's not absolutely necessary.

Which language you pick is less relevant than finding the right problem to give you the motivation to want to learn.

</comment><comment><USER22> I've written a very basic introduction to Django, no programming experience is required, or assumed:

<http://www.instantdjango.com>

It also includes a standalone Django development environment for Windows, so you don't need to waste time learning how to install and configure everyting. Give it a shot, and see if you can follow along. If you like it, there are plenty of great free Python and Django resources out there.

As an aside, I'm also writing an iPhone game programming tutorial for complete beginners:

<http://coconutcollege.net>

It's not done yet, but the first four courses should get you up and running with Cocos2d for iPhone. I should have the next two courses finished and posted within the next two weeks.

</comment><comment><USER23> I'm trying to learn programming with zero experience too, and highly recommend book "Learn to Program" (<http://pine.fm/LearnToProgram/>). It was worth every hour even while my goal is to learn JS and book based on Ruby. Now I'm reading JS book with much better understanding of basic things.

Also, "Ship It!: A Practical Guide to Successful Software Projects" (<http://www.pragprog.com/titles/prj/ship-it>) gave me a good understanding of development process. I think it's worth to read even if you are going to work on project alone.

</comment><comment><USER24> Everyone's gotta start somewhere. My advice to you is to stop worrying about how long it's going to take you to do what you want. Just keep putting one foot in front of the other and working towards that (those?) goal(s) and you'll be there before you know it. If you've worked with startups before, just not the technical side, talk with some of the programmers you know and ask them to give you a lesson or two or even just direct you towards some good resources and cheat-sheets (these are a lifesaver for me). Just stop worrying about the time; you'll drive yourself crazy and it will feel like going nowhere fast.

</comment><comment><USER25> If Ruby intrigues you, there's no better place to start than with the Poignant Guide:

<http://mislav.uniqpath.com/poignant-guide/>

<comment><USER5> TryRuby <http://tryruby.org/> and Learn to Program <http://pine.fm/LearnToProgram/> are better places to start.

The Poignant Guide is more entertaining but not the greatest for actually learning the language.

</comment></comment><comment><USER26> _At a university._

I can't tell you how sick I am of laypeople thinking they can just pick up one or two programming languages in a couple hours a week and get a job. These people end up with a very small skillset and no knowledge of what things they don't know or where they might learn those things, and therefore they're of negative worth to a programming team. You need the experience and breadth of at least topical expertise before you'll be of any use to anyone.

<comment><USER27> University will teach you the underlying principles of computing and give you the foundation and knowledge to be a better programmer, but it won't necessarily teach you how to be a programmer.

It doesn't teach you a variety of languages or the language that you hope to work with professionally. It doesn't teach you about version control or how to work with legacy code.

I decided to get a degree because it would make be a better programmer and hopefully that has happened. But it wasn't going to a university that taught me how to get stuff done in a language I like.

For reference: I have been in the programming industry for seven years and only this year will I finish my degree (been studying part time).

<comment><USER26> _At a good university, with the intent of putting in lots of extra effort on your own and going beyond the scope of the classes._

I contest that the vast majority cannot program effectively without the foundation you get at a university, nor without learning what knowledge is out there that you don't have yet.

Also, _my_ university had a class all about version control, legacy code, and portability. [so, suck it, other universities ;-)]

</comment></comment></comment><comment><USER28> <http://www.greenteapress.com/thinkpython/>

This will get you a very good understanding of basic programming. After that, try <http://railstutorial.org/> if you want to learn rails. (while ruby is a different language, Think Python teaches concepts that apply is all languages. Python is just the transport.)

Good luck

</comment><comment><USER29> _Was it weeks/months/years until you felt comfortable writing an entire Web app with basic functionality?_

Felt comfortable? Probably months.

Looking back -- was actually competent? I'm not sure that I am now but I'd wager 2-3 years before I knew enough to both code an app, debug said app, and secure the app.

</comment><comment><USER30> I understand the common HN view for just jumping in and trying to build stuff. Nevertheless, I wonder when would you consider a good time to attack some more complex stuff (e.g. SICP, PAIP, K&R, etc)?

I guess it is the kind of thing you don't miss, until you go through them and really see what you're missing.

<comment><USER31> They should probably have simple programming experience (say, basic Python) first, otherwise they won't have enough context to know "SICP" from "PAIP". That's just a bunch of acronyms.

SICP - _Structure and Interpretation of Computer Programs_ by Abelson, Sussman, and Sussman (<http://mitpress.mit.edu/sicp/>). Free online. Probably one of the best _computer science_ books. It doesn't cover web programming, but if you know your programming fundamentals and theory well, you'll be in a good position to pick up whatever else comes along after current web programming techniques become unrecognizable. (The code is in Scheme, a Lisp dialect.) Do the exercises. Seriously - do the exercises. And yes, some of them are difficult.

PAIP - _Paradigms in Artificial Intelligence Programming - Case Studies in Common Lisp_ by Peter Norvig. This could very well have been three or four separate books. It has case studies of historical AI projects, chapters on learning / optimizing / implementing Lisp, chapters on search problems and logic programming, etc. Highly recommended, but I would wait on this one until you're proficient in at least two unrelated languages.

K&R - "Kernighan & Ritchie", aka. _The C Programming Language_. This is _the_ book on learning C. Short, concise, informative. Your programming will benefit considerably by learning C (you'll be able to access low-level OS features, esp. on Unix, and it gives a good mental model for the lower-level stuff going on). If you like C and are comfortable with the exercises in K&R, then get _C Interfaces and Implementations_ by David Hanson - it covers practical library / API design, by way of a guided tour through several of the author's freely available libraries.

Also recommended:

_The Practice of Programming_ by Kernighan and Pike - Concise, practical advice about the programming skillset not specific to any one language: debugging techniques, how to write clean code, testing, rules of thumb for performance tuning, etc.

CTM, _Concepts, Techniques, and Models of Computer Programming_ by Van Roy and Haridi (<http://www.info.ucl.ac.be/~pvr/book.html>). This book is about the fundamental models different programming languages are based on, and how they complement each other. The writing is lucid and accessible, and covers many things (constraint programming, for example) that similar texts never get to.

</comment></comment><comment><USER32> Choose a programming language, and write an application where anyone can add links+titles, and people can leave comments on them. Doing something will make you learn a lot more than reading books.

</comment><comment><USER33> I can also relate to this problem ? I want to learn programming from scratch. Should I start with C and then go for C++ and then to Python or which way ? For me difficulty of learning is of no concern, I can manage ? But how and where to start ?

</comment><comment><USER34> It shouldn't take long. You should be able to do it in weeks time.

Just search the internet for something like 'ruby tutorial'

<comment><USER18> I think it would be constructive if one of you downvoters left some sort of comment on why you've downvoted poor nozepas into graydom. :(

I, for one, think if you were persistent and started with a ruby tutorial, you could indeed make an MVP in a few weeks effort!</comment></comment>


Ask HN: How can I help the Coronavirus situation? - <AUTHOR> Beyond simply slowing the spread by practicing good hygiene and avoiding exposure. <comment><USER2> I was just at a pharmacy where I asked the cashier to use hand sanitizer because she kept touching her damn nose every minute or two and she blew me off and told me "I've been using hand sanitizer all day."

If you could smack a few million people upside the back of the head and get them to actually, in fact, practice the hygiene stuff that gets repeated all the time and utterly ignored, you could save thousands of lives.

Stop touching your face.

Stop touching your face.

Train cashiers to practice actual germ control.

Don't let them lick their fingers to open bags. Fire them if they do stuff like touch their nose and then immediately handle money or lick their fingers to open bags.

The single biggest obstacle to germ control is the fact that most humans don't want to actually practice it. Making it a widespread habit would nearly put a stop to most epidemics all on its own, but we are too busy sticking our heads up our butts to do that.

<comment><USER3> > Don't let them lick their fingers to open bags.

How else would you do it? I stopped myself when I was just about lick my fingers to open a plastic bag for fruit the other day, realizing maybe it's not good to do in these times, but I couldn't figure out an alternative and gave in.

<comment><USER2> I persist and wrestle with it. You eventually get better at it and figure out how bags actually work.

They actually have tabs built in designed to help you open them. If a bag is particularly stubborn, move on to a new bag.

Some cashiers have damp sponges or similar to help them open bags without licking their fingers because they aren't heathens. They are the rare exception.

<comment><USER4> You work at it hard. Like, _really_ hard. Hard enough that you start to sweat. Then you've got moisture on your hands...

;-)

<comment><USER2> Non-germy moisture. The only acceptable kind.

</comment></comment></comment></comment></comment><comment><USER5> Accept that there's a significant chance you're going to get coronavirus.

Educate yourself and be realistic.

Realize that 80% of patients have mild symptoms, only 20% have serious symptoms, and of that 20% only 2% fatalities occur.

Also, accept that nothing in life is guaranteed, appreciate the time with the people you love and care about, and be grateful this pandemic isn't some more virulent version of something more lethal like yersinia pestis.

That's about all you can do.

<comment><USER6> Minor correction, you make it sound like 2% of 20% which is a .4% fatality rate. The total fatality rate is 2%

<comment><USER4> Is it? If I understand correctly, it's 2% of the cases we know about. How many of the patients with mild symptoms do we know about? (But if we don't know about them, how do we know that 80% of the people only have mild symptoms? We guess... or so I suspect.)

<comment><USER6> People keep bringing up edge cases like this. If we look at strictly died/(recovered+died) the mortality is 6%. Obviously it's lower because there are recoveries which are not recorded.

I'd tend to believe that the statisticians putting out the 2% figure understand enough about disease dynamics for it to be accurate.

</comment></comment></comment></comment><comment><USER7> By keeping an eye on vulnerable people around you and ensuring they have access to life's necessities without risk penalty.

</comment><comment><USER8> The only thing I'm personally vaguely concerned about is making sure my grandparents have access to basic necessities without having to expose themselves in places like supermarkets.

If you're under 40 and healthy it seems that you don't have much to worry about besides not spreading the virus yourself (self quarantine as soon as you think you might have it).

<comment><USER9> Parents too

<comment><USER8> Yes of course. In my case I feel like my grandparents wouldn't feel very concerned if no one was pressuring them and telling them it could potentially be very serious.

</comment></comment></comment><comment><USER10> I encourage you to write your local politicians to encourage policy changes that would encourage people to self-quarantine or to seek treatment for infectious diseases. I wrote the following to my state senators:

Many people currently are concerned about the corona virus outbreak. I believe that Washington state can take the lead in medical policy decisions that would help to mitigate the effect of the disease on the most vulnerable members of our state.

There are two key legislative gaps that prevent people from seeking proper care for infectious diseases:

1\. A lack of legislation protecting peoples' jobs when taking leave for treatment or diagnosis for an infectious disease.

2\. The high potential cost of medical care when seeking treatment or diagnosis for an infectious disease. Although many people have health care in Washington state, many have high deductibles that are so high that they may choose paying their rent over treatment.

I am not a medical professional nor a medical policy expert, but an ordinary citizen of your district and these gaps are frightening. Please help Washington be a national leader in infectious disease policy.

<comment><USER11> > I encourage you to write your local politicians to encourage policy changes > that would encourage people to self-quarantine or to seek treatment for > infectious diseases.

Isn't that easier said than done if you have no paid sick leave?

</comment></comment><comment><USER12> I had this question of software engineers with maybe access to social data. But I think I posted it at a poor time - no replies.

Ask HN: Usefulness of social network data for epidemic management?

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

But really it seems like a natural reaction to want to help, but I suspect if you aren't already tied in to a network of people/resources with a jump on the issues already, that coming up to speed is more of a idle thought than practical.

</comment><comment><USER13> You could build insurace infrastructure for people at a high risk of the disease.

[https://asindu.drileba.capital/2020/02/fighting-of- disease-p...](https://asindu.drileba.capital/2020/02/fighting-of-disease- pandemics-with-defi/)

</comment><comment><USER14> I've just purchased the domain name coronavirus.rehab Planning to compile useful content and share it with public

</comment><comment><USER15> Wash your hands.

</comment><comment><USER16> Question, should I go to office tomorrow? First case just reported a few hours ago.

</comment><comment><USER17> You can donate your computational resources to Stanford.

</comment><comment><USER18> Wash your hands.

</comment><comment><USER19> Wash your hands.

</comment><comment><USER20> Write an app!

On the first screen it poses the question, "Should I buy a bunch of N95 masks?"

On the second screen, it says, "Fuck, no."</comment>


Pebble Watch Teardown - <AUTHOR> http://www.eetimes.com/design/microwave-rf-design/4410474/Slideshow--e-paper-Pebble-watch-teardown

<comment><USER2>
        > You've been busy! Looks like you've hit your 2 article limit.

No, I clicked on page 3 of a 4 page article. That will be the last time I visit eetimes. <_<</comment>


The Implications of Full Self-Driving on Insurance - <AUTHOR> https://onlyusedtesla.com/the-implications-of-full-self-driving-on-insurance/ <comment><USER2> > This is important because Autopilot has proven itself to be safer than a > human driver by a significant degree: a crash only occurs with Autopilot > engaged approximately every 2.87 million miles, as opposed to traditional > cars being manually driven which results in a crash every 436,000 miles.

This is an extraordinarily deceptive statistic, since it compares:

\- Predominantly highway miles (driven on Autopilot) to miles driven in the overall mix of conditions where incidents are much more common

\- Incidents in Tesla's relatively new vehicle fleet, which has safety features like AEB, to vehicles of all ages and technology levels in the entire U.S. fleet

\- The Tesla driving demographic (usually wealthier drivers using better maintained roads) to drivers across all demographic categories</comment>


Ask HN: Best framework to build RIAs? - <AUTHOR>

Hi All, I just wanted to ask you all for your advice... I already have a great idea, I have done the market research, the funds are in the bank, I am moving to SV mid July and I just cannot wait to launch my product!!!
Unfortunately I am not a hacker :( ... although I do know my stuff - I have a technical background but went from student (Computer Science) to being a business analyst for IT & Web companies...
So I have a couple of questions I wanted to ask your advice on:
1. What do you think is the best framework to build RIAs?
2. Do you know if it is very hard to find kick-ass flex developers?
Many Thanks! R <comment><USER2> RIAs? Rich Internet Applications? Stick with JavaScript. Flash and Flex aren't currently supported on the iPhone or 64 bit browsers. Microsoft Silverlight is Windows only, which will arguably make your software inaccessable to a large pool of early adopters.

Recent developments with SquirrelFish will make Safari's JavaScript implementation 10 times more efficient and subsequent developments could provide an additional factor of four improvement. Firefox is likely to follow with a similar implementation.</comment>


Ask HN: Cloudflare Down? - <AUTHOR> Our prod site is down, and can't reach Cloudflare. https://www.cloudflarestatus.com/ <comment><USER2> See the bigger thread: [https://news.ycombinator.com/item?id=20334924](https://news.ycombinator.com/item?id=20334924)

</comment><comment><USER3> [https://www.npmjs.com/](https://www.npmjs.com/) \- the same problem 502 error

</comment><comment><USER4> fyi the actual status page for cloudflare is [https://www.cloudflarestatus.com/](https://www.cloudflarestatus.com/)

But yes, down in the NY area, however one of my colleagues in Chicago is totally unaffected

</comment><comment><USER5> Currently many Hong Kong sites, protected by cloudflare, are under a huge DDOS attack.

</comment><comment><USER6> Yes, seems to have impacted all CF sites. (UK here)

<comment><USER7> +1 from UK as well.</comment></comment>


Judge agrees that Apple was complicit in fixing price of e-books - <AUTHOR> http://www.techradar.com/news/computing/apple/judge-agrees-that-apple-was-complicit-in-fixing-price-of-e-books-1154204 <comment><USER2> Regardless of whether or not her opinion turns out to be unwavering/correct, I find it crazy that a judge would expose her bias before the trial starts. Is this common?

<comment><USER3> The article did mention that it was "unusual". I find it to be unprofessional. It seems justices like to express their personal opinions on big tech cases; perhaps it's a move for free publicity?

Either way, it doesn't sit right with me.

<comment><USER4> It wasn't a "personal opinion." It was a pre-trial opinion ("opinion" in the formal sense of a judicial decision) on the case. A judge will issue something like this during a bench trial (trial in front of a judge rather than a jury) basically as a way of telling the parties: "based on the evidence I've seen so far I'm leaning towards ruling this way." It's a way of giving the parties an idea of which way the wind is blowing to guide settlement discussions before trial.

</comment></comment></comment><comment><USER5> Take a look at Bob Kohn's hilarious _amicus_ brief for an idea of just how bad this could go for the DoJ:

<http://www.scribd.com/doc/104906877/Kohn-Amicus>

Apple will probably lose the district court case, but that has as much to do with geography and Judge Cote as it does with actual law. When they appeal to the Supreme Court, which they will, they will get the trial they wanted—a trial on whether Amazon, not Apple, committed antitrust violations by selling e-books below marginal cost in order to capture the market.

(To be clear, Apple's legal strategy should not be asking the DoJ whether it thinks Amazon practiced predatory pricing. Amazon certainly did, but the DoJ can always say, "No.")

<comment><USER6> What is the marginal cost of a digital good? The cost to download it one more time? It seems like the marginal cost to produce one more copy of an existing digital good is close to zero.

Books and music and other similar works certainly have a large fixed cost to produce: the opportunity cost of the creator's time; the technology or equipment involved. The producer might choose to market the work, which incurs further cost (but it's not marginal). However, once the work is created, can it really be said to have a marginal cost beyond the cost of digital distribution?

<comment><USER7> There is a marginal cost to Amazon. They're paying the publishers a certain amount for every copy sold. And if they're selling a copy for less than they bought it for, they are selling it below the marginal cost.</comment></comment></comment>


Woz: Microsoft might be more creative than Apple - <AUTHOR> http://news.cnet.com/8301-17852_3-57550839-71/woz-microsoft-might-be-more-creative-than-apple/ <comment><USER3> Imagine if Bill Gates were to give interviews like this commenting on Microsoft. Woz is one of my heroes, but I can easily see that the Apple PR department cringes every time he gives an interview.

And they can't do anything about it either, they're damned if they're quiet and they're even more damned if they would speak up because they could never meet him at his level, straight to the point and with an honesty that is probably disturbing them greatly, and responding would likely result in something akin to the Streisand effect, further increasing the visibility of his words.

For those that wish to belittle Steve Wozniaks' contribution to computing: you likely would not be on this forum right now if not for him, the IBM pc only happened after early Apple validated the market.

Steve Wozniak is more of a tinkerer and an engineer, which makes him one of the hacker crowd, something that most business guys have very little empathy with (engineers are tools in their toolbox). As such I listen to what he says because he speaks my language more than the marketing and sales guys and I'm happy I don't have to parse it, all the meaning is there in plain sight, no hidden agendas.

Such transparency, even a sense of naivety is quite rare in the business world, where spindoctors will twist words until they have a meaning far removed from what I would normally get out of them.

<comment><USER4> > you likely would not be on this forum right now if not for him, the IBM pc > only happened after early Apple validated the market.

Years before the IBM PC came out, I had a Heathkit H11 (a version of the PDP-11) and was writing and selling software for it. I'm fairly confident that the PC revolution would have happened with or without Woz. I had been working with 11's, 6502's and 6800's for years before that, and it was pretty clear that there was a revolution in the works.

The students at Caltech (75-79) I was with were all excited about microcomputers and quite a few designed and built their own systems from scratch (it wasn't very hard, the chips pretty much just plugged together). Hell even I made one around a 6800. None had an Apple II, mainly because a PDP-11 was the preferred system used to dev the software for the microcomputer boards.

Woz certainly made enormous contributions, and nobody can say what the shape of it would have been without him, but it would have happened anyway.

<comment><USER3> The H11 was released a year after the Apple I.

I had a KIM-1 at the time and the Apple was lightyears ahead of it, even though they shared the same processor.

Most other 'personal computers' were still stuck in hexadecimal keyboard territory.

I've rolled my own (6800, '09 and 6502 based boards) and learned a lot doing that but the Apple I and later the Apple II (neither of which I ever owned but an uncle of mine had an Apple II that I played a lot with) was a _real_ computer rather than something more akin to a large embedded system, programmed with paper tape and terminal interface using current loop. The Apple stuff rocked the world of personal computing.

The difference was huge, and I'm pretty sure that the design elements present in the Apple II raised the bar considerably for the competition and had a direct effect on the PC lineage.

It would be nice to interview the designers of the original IBM PC to ask them where they got their input.

<comment><USER4> The H11 was just a repackaging of the PDP-11 which had been around for years, at steadily dropping prices. It was far, far more powerful than the Apple II.

Apple had many firsts, but it's an awful stretch to say the PC revolution wouldn't have happened without them. It's like saying we wouldn't have airliners today if the Wrights never existed.

<comment><USER3> You'd have airliners today. But likely they'd be the airliners of a decade or two ago.

The Wrights are an excellent example because they did what they did when they did it, and there were still people talking about whether powered flight was even possible. Kitty Hawk was a milestone for exactly the same reasons the Apple I was a milestone: huge improvement over the status quo, accelerating development and validating a market.

That's worth a lot in my opinion, it moves the needle with a large jump rather than a tiny increment.

<comment><USER5> There's is quite a list of inventors from around the world who independently invented powered flight at about the same time as the Wright brothers. Flight being invented in 1903 actually has more to do with the evolution of petrol motor power to weight ratios than it did discovering the principles of flight. It would have happened within 1 year of 1903 with or without the Wright bros.

<comment><USER6> And even if it had taken a decade, that almost certainly wouldn't have set us back a decade today.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Serious question: I know he's the Woz, but is there any other reason that we care about his opinion?

He hasn't been involved with Apple since 1987.

Has Woz ever demonstrated any expertise in design or UX?

[edit: For anyone that has accused me of bias or fanboi-ism, let me disclose where I stand. I have run Linux on PC hardware almost exclusively from roughly 1996 through October 2012. I bought my first Mac computer a few weeks ago, being frustrated by occasional hardware compatibility issues running Linux on laptops. I think Apple has good design, but would be happy with a slim Linux laptop that works without issues.]

<comment><USER8> Are you fucking kidding?

Woz CREATED Apple... Job's single defining contribution to the Apple I was "hey we should sell this!", he did literally NOTHING else.

<comment><USER9> Let's turn down the hyperbole. Jobs still marketed the company, even if Woz was the technical genius. Selling your product is just as essential as having a product.

<comment><USER8> In the context of the question being asked, I think a little indignation is entirely in order.

Has Woz ever shown any expertise in design? I mean really, it's like asking if Michelangelo knew his way around a fucking paint brush.

<comment><USER10> You are talking about hardware and/or engineering design. Important for sure but only one part of "design" and of a product having success in the marketplace. Without that appeal all the engineering genius in the world means nothing (and vice versa of course..)

</comment></comment></comment></comment></comment><comment><USER11> Saying that "Improving is not Apple-style innovation," seems kinda wrong. Yes, they've had a few brand new product launches, but most of their time has been spent improving existing products. The progression from the original iPod to the current version has been a series of incremental improvements over the course of the last 11 years. Same goes for all the Mac computers. If anything I think the opposite is true, that Apple-style innovation tends to be improvement, with a few big leaps once in a while.

Also, new isn't necessarily better. I think Microsoft is in a position right now where they have the choice of duplicating the iOS/Android experience, or trying something completely different. Since they've shown a willingness to spend tons of money on new projects and play the long game, I think their strategy of trying new things is good for them. Products don't generally start out great, but rather get there over time and over multiple incremental iterations. I think Microsoft is essentially still searching for v1. Apple on the other hand already has a product that people love and buy in huge numbers. They have their good v1 and are now trying to make it great through incremental improvements.

<comment><USER12> > they've had a few brand new product launches

They haven't really done anything truly new for decades now. The iPod was what made their comeback. It was an MP3 player. Those have been around for a while at that time. Then there was the iPhone which was a really good effort but didn't really invent the smartphone. It evolved what we already had (Nokia and Sony Ericcson had Smartphones on Symbian that did most things the iPhone did, only worse. They played MP3s, you could use them to browse the web and you could install Apps on them). Don't get me wrong, the iPhone was like a catalyst to the smartphone world, accelerating the development of mobile platforms, but it was not a true innovation. In fact, Android was already in development for quite a while at the time the iPhone was released. And to me, the iPad is basically a big smartphone that can't make phone calls. I don't really see much innovation there either. Did it create markets? Yes. Was it really innovative? No.

On the software side there's not really any innovation either. OSX is really a polished BSD. Sure, Apple seems to know what they're doing in terms of UX but again, no real innovation - just one of the few companies that knows how to do it properly.

So yes, I agree with the Woz quote in the title. Microsoft Research has some pretty staggering projects going (both for developers as well as consumers) and Apple seems to be milking tried and tested cows lately. It works for them but it's neither creative nor innovative. This is exactly where Microsoft _has_ to shine these days because people got incredibly bored with MS. Windows 8 is pretty much a disaster on the desktop and the Surface tablet seems to be too slow to handle proper loads. I hope some of those research projects make it into applications even if just for the sake of competition.

<comment><USER13> > Then there was the iPhone which was a really good effort but didn't really > invent the smartphone

There was _nothing_ like the iPhone in the market. Not even close. It was like alien technology at the time. You must be joking about Symbian. My brother's Palm from 2003 could play MP3s, 'browse the web' and install apps too, yet it looks as sophisticated as a wristwatch today.

The development version of Android before iOS still had physical keyboards and a trackwheel, running on 240x160 screens. I'm not even going to comment on OSX or iPad because that's starting to sound like a troll.

By your standards, Tesla isn't doing any innovation either. Batteries and cars have been around for centuries, in fact the first cars at the beginning of the 20th century were battery-powered. It's just a really polished electric car.

</comment></comment></comment><comment><USER14> If you take a step back in perspective I think you find that both companies are _incredibly_ innovative... compared to other big companies or by any fair standard.

Microsoft sat on huge market influence and a captive market for 15 years with Windows. Even with the recent changes in the consumer OS market, they still have a incredible market power. Yet, You can't really honestly say that they haven't advanced the product with innovation. Apart from Windows they also went into new product categories. They've been developing genuinely futuristic technologies.

Compare the innovation at MS to the innovation at Sony or Panosnic, IBM or SAP. There is (was?) a lot of hype around companies of more recent generations. Take Salesforce. They were applauded for being innovative and pioneering SAAS for enterprise. Forbes most innovative company. They _are_ innovative, but not more that Microsoft. Nt over the long term.

Compare MS (or Apple) to companies considered creative _outside_ of the tech industry and it's Mike Tyson vs a skinny 14 year old. Ikea? Toyota? The Prius is creative and innovative. Toyotas quality system is one of the big innovations in manufacturing. Ikea really has had a cultural impact with their designs. Their way of setting up stores is innovative and creative. But these companies do not compare to MS or Apple. If you take 3-5 year blocks individually you will find big-to-huge innovations from Apple or MS in every block. If you look at Ikea or Toyota, you won't.

</comment><comment><USER15> This guy knows how to seed his interviews with one liners that will rate in the press.

"Even hardware from Apple is a subscription, in a couple of years it isn't going to work with the newer stuff".

Well... duh, but goodluck finding a company with a much better record on this front.

And how is Apple non-innovative for "pumping out the iPhone" compared the Android world with hundreds of failed models, or Windows with its reluctant shape shifting on what constitutes a good smart phone.

I like Woz, and he did a good job fielding some very biased wording in the questions - but really, it's been a long time since he was at Apple.

<comment><USER16> _> Even hardware from Apple is a subscription, in a couple of years it isn't going to work with the newer stuff_

Historically, Apple hardware has kept its value very well. I could just as well still be using my 2008 Unibody Macbook. Equipped with an SSD, it's still plenty fast enough for my work.

<comment><USER17> Try putting a bigger SSD in your Air sometime. It's possible, but far from easy. Even the Macbook Pro's are becoming more difficult to upgrade with each new generation. The Retina Pro is rather similar to the Air in terms of ability (or lack thereof) to upgrade.

Also, your 2008 macbook probably isn't worth as much as you think it is. Over the last few years Apple has done an excellent job of driving their prices down. A typical macbook pro from 2012 is more than 25% cheaper than one from 2008, if you're okay with a smaller screen an Air would be lighter, faster, and even cheaper.

What is true is that hardware requirements, in general for all OS's and software, have been stuck in neutral for the last few years. Whether your computer is a desktop Dell, a home-brew gaming rig, or a Mac, you probably haven't _really_ needed to upgrade for a period of more than twice as long as you would have even just five years ago. That's why your 2008 Macbook doesn't seem like a hunk of junk, not because it's particularly powerful. While other manufacturers are being bitten by the slowing obsolescence cycle of computer hardware, Apple is very deliberately speeding the obsolescence cycle of their hardware up with a combination of marketing, reduced ability to upgrade, and price reduction.

<comment><USER16> _> Try putting a bigger SSD in your Air sometime_

There are aftermarket Air SSDs.

<http://eshop.macsales.com/shop/SSD/OWC/>

Note that they even sell IDE drive upgrades.

</comment></comment></comment></comment><comment><USER18> Last time Woz did an interview I said pretty much the same thing, and I say it pretty much any time he pontificates on Apple (good or bad), his opinion on Apple is the same as anyone with the history in the industry he has. Useful, but not as relevant as it gets turned out to be. His involvement with Apple ended decades ago, so he's an observer from the sidelines.

He makes an interesting point about Microsoft's creative development for sure, but because it's 'Apple cofounder disses Apple for Microsoft!' it has column inches galore thrown at it. Plus it ignores the fact that Apple's development cycle for it's products (release, iterate, 5 years in, release new product, iterate, repeat) has been ongoing for at least 10 years. Apple does innovate, they just do it on a much slower cycle than we'd all like, but it's good for business.

I mostly like Woz because of his honesty and straightforward manner, but it's telling from the article: " _He seemed to almost decry the iPad as something that's easy, for normal people, but not for the true nerdy geek._ ". Apple shouldn't be building products for the true nerdy geek, we're a small percentage of a small percentage. It'd be lovely if they made an Apple Macbook Pro developer edition with all sorts of random additional tools and ports and so on, but it'd sell poorly and be waste of time. We're not their core market. That's okay.

</comment><comment><USER19> If it's your taste the WP8 interface might be more pretty; I find it annoying to work with and the jury is out on 'normal people' (non tech crowd); I still know zero non-tech people in my vicinity who actually like metro (or whatever it's called now). And as far as the phones go; non-tech people downright _hate_ them. Not sure if it's the interface, but in the local pub it's clear; people get passionate about their hate for the devices. And these are people who never heard of HN, so they are not just trolling. I'm talking about lawyers, builders etc; most brought them back and have S2/S3s now.

MS has the one of the best (or the best when it comes to language research) R&D department; there are too many brilliant people doing brilliant stuff there. And they are only just starting to use that power. That should give them their edge (besides a monopoly on the desktop and billions in the bank ofcourse), about their design skills i'm not so sure.

<comment><USER20> I'm convinced that Microsoft is an amazing _technology_ company that's utterly and truly terrible at _product_. They have a tremendous amount of impressive R&D and capability that seem to fall flat every time they try to ship it for, well, actual users.

I'll believe Woz when he says MS is more innovative than Apple, but I think Woz makes the classical geek fallacy that more innovation is the end goal. The end goal is innovation that people actually benefit from, and that involves more than paying a lot of people a lot of money to conjure up new amazing technology and then ship them in boring, poorly implemented products.

I believe that at some level MS realizes what it needs to do, but corporately it has trouble getting there. The core problem here is that the company simply doesn't sweat the details, and continually, severely underestimates how critical details are in today's market. They developed a no-frills, cheap-plan device that taps directly into our social network addictions, and then failed to actually ship the "cheap plan" part.

They released a new, innovative smartphone OS where performance was a critical differentiator from the competition (Android 2.x), and then failed to ensure that 3rd party apps had access to the same performance abilities.

And now they've released an innovative new desktop OS that bets the farm on touch interactions being the wave of the future - and their own first-party apps are in many places poorly designed for touch interaction. Major parts of the core OS are also not touch-ready.

The details matter, and MS never, ever gets the details right.

<comment><USER16> _> MS never, ever gets the details right._

What about Windows 7?

<comment><USER21> Isn't Windows 7 in a large way a refinement of Vista where they did get the "details" right? It's probably overkill to say that Microsoft never gets the details right, but I do agree that their first version product which introduces their inovations is generally rough and unpolished to say the least.

I loved metro when I first saw the build videos in 2011, but that's because I looked at the demo apps as early and unfinished examples of the direction they were taking. Now over a year later I see almost nothing has changed and the same level of quality I saw back then is what is being released now. A lot of things are unintuitive, apps have awkward layouts, the icons are downright awful, etc.

There was a lot of promise for Windows 8 back then, and to some extent I still expect them to refine the UI and make it into a better user experience by the next version of Windows -- but by then the feeling of "innovation" will be gone and they will have missed their chance to make the big impact that they needed and would have otherwise gotten.

</comment></comment></comment></comment><comment><USER22> Woz:

"I don't believe Steve [Jobs] had to be as much of a real rugged bastard, put people down and make them feel demeaned."

"I don't think that was necessary for Apple to have great products"

<comment><USER23> I had no idea that delivering a great product and not being a shithead to your employees was mutually exclusive.

<comment><USER19> Can we have a list? Delivering something 'great' should be subjective here; it means that someone sustained a profitable multi-billion company with products for many (>10) years. Not if YOU like the product. I see a lot of bastards (Gates, Ellison, Jobs); where are the _nice_ guys?

Edit: Google? I don't know if he is?

<comment><USER24> Zuckerberg, too. And this isn't even limited to tech companies, but any business.

</comment></comment></comment></comment><comment><USER25> Sounds like what actually happened is Woz had a long friendly open far- reaching conversation with a guy from Tech Crunch and then got quoted out of context.

I would imagine that any intelligent Apple exec (presumably a tautology) would also worry about Microsoft, they just wouldn't chat amiably about it with someone from TechChrunch.

</comment><comment><USER26> Without hating on apple, Woz does make an interesting point (regardless of whether or not you think he's relevant). Sure apple have been innovative and have released some really ground-breaking advances in product design and standards, but he's commenting on the fact they have been stagnate of late.

I'm not suggesting that what Microsoft is putting up is any good (I'm really not), they have been experimenting releasing a more varied range of products than apple has lately. That's the point Woz is making..

<comment><USER27> > _Sure apple have been innovative and have released some really ground- > breaking advances in product design and standards, but he's commenting on > the fact they have been stagnate of late._

The iPhone was released 5 years ago. The iPad, 2 years ago.

It actually took _more time_ to go from the first iPod to the iPhone, than the whole period the iPhone exists.

What exactly has the competition (MS, Google) produced at the same time that is innovating (not in some "groundbreaking tech" sense -- in the "a new product category/market" sense)?

Nothing at all. Google's innovating thing was search and maybe mail. Android is a me-too, first sold one whole year after the iPhone. MS innovating was mostly Windows and Office and the .NET ecosystem. Surface is a me-too going after the iPad and Metro is just a UI (and not a very good at that). So what's the point of comparison here? Vaporware like the Google glasses thing?

Plus, Apple brought to mass market (or, more precisely, brought to market, because only like 10 guys had those before) stuff like hi-dpi displays, unibody construction, and thunderbolt. And that "ultraportable" thing (as opposed to the dying netbooks), mostly inspired by Air? Introduced merely 4 years ago, again by Apple.

<comment><USER28> That's an extremely narrow (and imo incorrect) definition of "innovation". Ignoring things (for the purposes of measuring innovation) from the last 5 years like Google Chrome, self-driving cars, street view, knowledge graph, instant search, public transit directions (for which a whole standard for encoding transit directions was created and implemented) etc, simply because they're not new product categories (with the exception of the cars) just seems silly, especially since that measure implies that Apple did one thing 5 years ago and one thing 2 years ago and has spent the rest of their time since doing nothing innovative whatsoever. Choosing a measure that arbitrarily narrow not only undersells Google's achievements, but also Apple's (and Microsoft's), by ignoring all the improvements to products (or new products in existing categories) that are technical and product feats in and of themselves. The parent post was talking about the fact that (in his opinion) Apple has stagnated recently by coasting on the success of their initial product, rather than constantly striving to improve everything they do and come up with new things.

Note that your definition (and even my response) ignores a massive amount of innovation that goes on under the hood; If Google Search (e.g.) used the same algorithm and had the same performance as it did ten years ago, it would be _horrible_ by today's standards, and that's precisely because we've been spoiled (in a good way) by the fact that the algorithm and the infrastructure is constantly improving, not only through small iterative improvements but also through occasional leaps which undeniably fit under the definition of innovation.

I've largely left Microsoft out of my counterexample, but that's only because saying "Google hasn't innovated at all in the last 5 years" is just such incredibly low-hanging fruit. Most of what I said applies to Microsoft as well, albeit perhaps a little less so, given that they were on the tail end of their "lost decade".

<comment><USER27> > _That's an extremely narrow (and imo incorrect) definition of "innovation". > Ignoring things (for the purposes of measuring innovation) from the last 5 > years like Google Chrome, self-driving cars, street view, knowledge graph, > instant search, public transit directions (for which a whole standard for > encoding transit directions was created and implemented) etc, simply because > they're not new product categories (with the exception of the cars) just > seems silly_

Well, true I have to count Maps (Earth/Street View) to Google's innovations. It's an important thing that millions use everyday, and that rules it's field.

Chrome, OTOH, is just Apple's webkit work with a sandbox. Not substantially better than either Firefox or Safari. If we count that as innovation, then sure, Apple put out 2 versions of it's OS and several iOS versions with hundreds of new features, the new iMac, etc etc.

As for the glasses and the self-driving cars, when we actually see them in the market I'll count them as innovations. Heck, I'll count them as innovations for Google even if someone else brings them to the market. As it is, they don't amount to much better than vapor(hard)ware. Plus, we know that behind the secrecy veil Apple also has dozens of prototypes and testing products most of which will never see the light of day. If they did a Google or Microsoft, they would have saturated the media with vaporware too.

</comment></comment></comment></comment><comment><USER29> The interesting thing in Microsoft slight awakening is that we all know they have loads of 'hidden' resources R&D wise. For years they used almost none, let's see what happens when they do.

</comment><comment><USER30> Hmmm. This is an interesting one here.

On the one hand, we simply can't dismiss Woz by stating nonsense such as "he hasn't designed UI", "hasn't been involved with Apple since 1987", and "Jobs is the reason for Apple's success." Because that's all simply bullshit. UI, UX, Steve Jobs, him not being involved with Apple since the plane crash - <USER2> zero to do with this post and our discussion of it. So some of you need to cut out the Apple fanboy bullshit.

Now, to his thoughts. But first, let's define "creative" because reading some posts in here, I'm alerted to many of you not knowing what that even means.

"Creative" is defined as "Relating to or involving the imagination or original ideas, esp. in the production of an artistic work"

Does Apple have any more original ideas? Of course it does. Perhaps there are some still left in the pipeline from the Jobs era (these companies have long roadmaps). Jony Ive is still there and he's quite creative unless I'm mistaken. So creativity will flow. Albeit from different sources and no, Tim Cook is not creative. He's simply the supply chain guru. Are these "original ideas" good? Maybe. Maybe not. Maybe they'll fail. They can still, however, be creative.

Has Apple released any "original ideas" in the past 3-4 years - I'd say no, they haven't. The iPad might have been the last really "original" concept (if you can even call it that, but hell with it, they can have it). The iPod, the iPhone - what else? The GUI, no. They didn't inven the laptop. See - not much originality here. I digress.

Microsoft. They might be considered more "creative" (by Woz) because of their departure from the desktop with Windows 8 - so in essence, they're being more "creative" because the ideas are more original than iOS4>5>6, iPhone 2>3>4>5>5S and iPad 1>2>3>4 (all refreshes). We also have the new voice recognition initiative which, if successful, will be a big game changer for Microsoft. WAY more "creative" than Siri or anything from Cupertino. Can Microsoft's "creative" ideas fail? Of course. And from what I've been reading and personally have experienced, Windows 8 RT is not that good, and confusing.

So, yeah, seems Woz is right so far, doesn't it?

It's a multi-dimensional issue here of creativity and innovation. Apple simply isn't innovating, whether you want to admit it or not. They appeal to the consumer, they're a solid company, huge margins, and that's fine. I've owned most every product they've ever made from XServes to Mac Pro's to Newtons to Powerbooks to the IIe and Peformas, list goes on. I love the company. I wrote my first program in BASIC on a IIe.

Will a flat-screen TV from Apple be considered "innovative" or "creative" maybe a little creative but it's certainly NOT what Woz is talking about.

Remember, Woz is an engineer, so he's not here to market consumer products and sell 5 million of them in a quarter. He's speaking purely on innovation and creativity in technology. He loves technology. You can tell. From the CL9 remote to devices and what not - he loves the craft. So he's right, Apple isn't being creative, they're just constantly refreshing products to stay competitive in an insanely competitive market. They sort of have to. The iPhone 5S is already slated for June! What in the hell will be different about than the current 5?! An A6X and... Unless that phone charges wirelessly, is 1mm thin, and has a new cutting-edge battery for 40 hours of talk time - there's NOTHING creative or innovative about it.

So, maybe Woz is right. Microsoft is taking bolder steps, they're breaking from the norm of Windows desktops, getting into a different space, taking risks, trying innovative concepts such as voice translation. To me and apparently Woz, that's more innovative than "the new iPad"

<comment><USER31> Once I looked up the word "innovation" it made sense. I understood "invention" and "improvement", but "innovation" always sounded like marketing-speak to me, so I turned off my brain on that one.

The page at <https://en.wikipedia.org/wiki/Innovation> compares all three.

</comment></comment><comment><USER32> Woz: Strawberry is more banana than apple</comment>


Disadvantages of purely functional programming - <AUTHOR> http://flyingfrogblog.blogspot.com/2016/05/disadvantages-of-purely-functional.html?m=1 <comment><USER2> Recent discussion: [https://news.ycombinator.com/item?id=11841248](https://news.ycombinator.com/item?id=11841248)</comment>


Cyberwar: China Declares War On Western Search Sites - <AUTHOR> http://www.techcrunch.com/2007/10/18/cyberwar-china-declares-war-on-western-search-sites/ <comment><USER2> So much for ratting out dissidents to get on their good side.

<comment><USER3> Amen! That was my very first thought as well :) You would think history provides sufficient demonstrations that private deals with tyrants usually backfire in the end.

The Dalai Lama is an amazing person; always has a smile and kind words, even in response to threats and anger from the Chinese govt. I loved his responses after meeting Bush: [http://edition.cnn.com/2007/US/10/17/dalai.lama.ap/index.htm...](http://edition.cnn.com/2007/US/10/17/dalai.lama.ap/index.html)

</comment></comment><comment><USER4> If you investigate this story a little you find that the same thing is happening in Southern Africa right now. This 'trade war' can be attributed to African network engineers who do not know how to properly manage their machines.

CHECK -> [http://www.digital-m.co.za/seo-blog/2007/10/yahoo- hijacked-b...](http://www.digital-m.co.za/seo-blog/2007/10/yahoo-hijacked-by- baidu.html)

Please people . . . 'Fact checking'.

A little less alarmist tone in our posts would go a long way. China has so many things that we could legitimately complain about that I see little reason to concoct stories.

We could complain about their government. The hypocrites who profess to believe in the communist ideal of all men being equal, and at the same time deny all men an equal say in the selection of their leaders. Oh I forgot, it's not communism . . . it's 'communism with Chinese characteristics'.

We could complain about their business leaders. Who profess to believe in fair trade, and at the same time manipulate their market to prop up domestic companies at the expense of foreign competitors. Which, if this story were true, would almost certainly be the reason for it.

But MOST of all we could complain about the people. I imagine many people on this board have been to China. So you are already aware that even if one were allowed to shout about democracy and human rights from every classroom at Fudan, the students would ignore it. Why? Because they are all greedy little snots only interested in getting rich. . . . There I said it. We in the West are too concerned with hurting the feelings of the Chinese people to state the obvious.

And speaking of the Chinese . . . right now Yu Yen is looking at me with that smug Chinese smile and chuckling . . . I have to decide between smacking her around, or going for a run.

I am reminded of a scene in the Bruce Willis film 'Hudson Hawk', where the security guards are chasing Bruce through a museum and two of them end up splayed out on the floor. The third one runs by, still chasing Bruce and yells back at the other two . . . "Get up! You're embarrassing me."

Get it?

</comment><comment><USER5> I am dissapointed that TechCrunch is once again reporting stories without decent fact checking. The fact that some people in some parts of China couldnt access Google and Yahoo does not mean the chinese government is involved. Unless baidu was state owned there is little motivation for the to do something like this. Google has already agreed to implement filtering in China to please the Chinese government. This smells like Baidu or someone else in China was poisoning some DNS servers to get some attention.

Wake up people!

<comment><USER6> Don't understimate the extent of Chinese Govt. anger over the Dalai Lama photo-op with Bush. The Chinese govt. effectively controls every company and person in China (if they want to), including Baidu. It would be fully unsurprising that they would shut down American search engines to "teach us a lesson" about not heeding their demands. It could, however, prove untrue as well - we'll see.

<comment><USER7> This anger about the Dalai Lama is just a bunch of posturing on their part, absolutely nothing will come of it.

<comment><USER7> Well, looks like they are redirecting searches to Baidu, which is a very funny way of doing nothing.</comment></comment></comment></comment>


Why you shouldn't trust Gmail's new TLS icon - <AUTHOR> https://halon.io/blog/gmails-new-tls-icon/ <comment><USER2> They don't need DANE, they validate certificates signed by a CA [https://support.google.com/mail/answer/21291?hl=en](https://support.google.com/mail/answer/21291?hl=en)

<comment><USER3> You obviously didn't read the link you posted. Email servers cannot do name verification with CAs, because there's no mapping to the domain/MX [http://www.postfix.org/TLS_README.html#client_tls_verify](http://www.postfix.org/TLS_README.html#client_tls_verify)</comment></comment>


ProPublica Illinois Uses GNU Make to Load 1.4GB of Data Every Day – ProPublica - <AUTHOR> https://www.propublica.org/nerds/gnu-make-illinois-campaign-finance-data-david-eads-propublica-illinois <comment><USER2> I once replaced a Hadoop ETL process that took several hours with a GNU Make ETL process that took several tens of minutes and loaded well more than 1.4GB of data, at a company that shall not be named. Its Java developers working on Windows machines blinked uncomprehendingly at it and muttered, "This is not enterprise." I quit within the month.

</comment><comment><USER3> GNU Make's documentation is actually excellent. It's dense, but that is only because there is a lot to cover.

<comment><USER4> While the autotools system is _very_ powerful, I think people's problem with it (`make`) is its syntax. `configure` is usually a bash script, but `make` isn't. It's pretty unintuitive to a newbie. It _looks_ like a script, but it's _kindof not._ The lack of arrays is a weird choice (AFAIK _everything_ is a string) that requires one to use quotes in a lot of places so "array-like" "functions" work correctly.

When I was learning C++ a bit ago, I _tried_ to write basic `Makefile` files, but switched to CMake. There is the disadvantage of practically every Unix- like OS having `make`, but not always CMake, but I found the trade off worth it for one-off projects

I am partial to Rust over C/C++ here, but I do like Rust's method of a simple `cargo build`, but with the ability to write a program (`build.rs`) for non- Rust parts.

</comment></comment><comment><USER5> Just a question:

Is i really a good idea to download voting data over a unencrypted ftp?

<comment><USER6> RTFA. It's campaign finance data. Contributions and spending, which is publicly available information. ProPublica is a watchdog group.</comment></comment>