The Zig Programming Language - <AUTHOR> https://ziglang.org/ <comment><USER2> The website has been refreshed. The feature highlights section on the front page gives many examples of the features with code samples.

Even as someone who follows zig closely (from a distance), I was glad to read that front page again to day to refresh my memory about:

* Cross-compiling is a first-class use case

* Zig Build system

Also, IMO Zig has some of the most exciting WASM related stuff going on in my limited experience as an outsider (to WASM). Following Zig's development of WASM capabilities has taught me more things with less confusion.

<comment><AUTHOR> Shoutouts to Shritesh Bhattarai who has been spearheading that work. Some cool demos he has produced in the last couple weeks:

* [interacting with the DOM from Zig]([https://shritesh.github.io/zig-wasm-dom/](https://shritesh.github.io/zig-wasm-dom/))

* [zig fmt in the browser]([https://shritesh.github.io/zigfmt-web/](https://shritesh.github.io/zigfmt-web/))

* [implementing the WASI target]([https://twitter.com/shritesh/status/1123049218086666246](https://twitter.com/shritesh/status/1123049218086666246))

<comment><USER3> The Web site redesign is looking really good. Clean and minimalist.

One point I noticed: under "Small, simple language", you mention that Rust and C++ have operator overloading. But D does as well:

[https://dlang.org/spec/operatoroverloading.html](https://dlang.org/spec/operatoroverloading.html)

</comment></comment></comment><comment><USER4> I really, really hope every time they are preparing to push a release, the process involves someone saying "RELEASE ZIG" and someone else voicing their approval by saying "FOR GREAT JUSTICE".

<comment><USER5> Zig is released constantly if you count the master builds that are published to the site every time a change is merged.

In other words, you could say they TAKE OFF EVERY ZIG.

</comment></comment><comment><USER6> The section about overflow put me off. Undefined semantics is one of my least favourite parts of C. It seems from the article that Zig is leaving not only signed overflow but also unsigned overflow as undefined (or runtime crash in "safe" mode, which is equally as bad). In C at least unsigned arithmetic is well-defined so I could get away with some casting back and forth.

This irks me especially badly since the underlying hardware operations are almost always well-defined, but in my "high-level" language I constantly have to worry that I missed something and maybe the compiler will "optimise" my + into something other than addition.

Is there a fully well-defined addition operator in Zig? What about a well- defined shift operator? This might make me, as a professional C programmer, more interested in a new C-like language.

<comment><AUTHOR> I think we just need a terminology update: [https://github.com/ziglang/zig/issues/2402](https://github.com/ziglang/zig/issues/2402)

Would you feel better if it was called "illegal behavior"? In the safe build modes of Zig, integer arithmetic, shifting, wrong union field access, etc is 100% well-defined. Integer overflow is defined to panic. Unless of course you use one of the wrapping arithmetic operators; in these cases it is defined to do wrapping arithmetic.

Integer overflow is usually a bug. If it weren't illegal behavior, zig wouldn't be able to help you catch the bug. That's why clang's integer arithmetic sanitizer only works for signed ints. It's much better for programmers to specify their intent precisely, which is why Zig has different operators for wraparound and assert-it-doesnt-overflow.

Undefined behavior in the unsafe modes is what lets the optimizer make code go fast. C has given undefined behavior a bad reputation, but it's a tool. Zig lets you decide exactly where to opt in or out of the speed/safety tradeoffs.

<comment><USER6> That sounds reasonable. I agree that overflow is often a bug (and in GCC can use -ftrapv to enforce that view). But overflow is also frequently what you want in algorithms that deal with counters or differences of sums. Maybe point out that there are well-defined operators available in Zig as well?

I'm not immediately seeing how non-wrapping arithmetic can enable significant optimisation. What could be faster than an integer add? If you have an example, I would be very interested (the classic "infinite loop" example is not particularly meaningful in my view).

I always assumed that C left this undefined mostly to support non-two's complement machines, which should probably not be a concern anymore. That's the only explanation I can come up with that explains why unsigned arithmetic is well-defined, but not signed arithmetic.

</comment></comment></comment><comment><USER7> I've been supporting this project on Patreon for $30/month for 10(?) months now and it is remarkable how much progress has been made. Replacing C would be quite a revolution, but I hope it happens.

<comment><USER8> I am amazed how much money and effort goes into building software on top of the ancient wasp nest that is C. People boldly taking on that issue deserve our support.

</comment></comment><comment><USER9> What is "optimality", described as one of the three primary goals of the language? Zig is intended to be "optimal" in what dimension?

<comment><USER10> From the Documentation page[1]:

> Robust - behavior is correct even for edge cases such as out of memory.

> Optimal - write programs the best way they can behave and perform.

> Maintainable - precisely communicate intent to the compiler and other > programmers. The language imposes a low overhead to reading code and is > resilient to changing requirements and environments.

[1] [https://ziglang.org/documentation/master/](https://ziglang.org/documentation/master/)

<comment><USER9> Thanks. Based on that definition of optimal, it sounds like Zig intends to be optimally predictable and performant. Other languages would define "optimality" differently: Python aims to optimize readability, Lisp aims to optimize expressiveness, Erlang aims to optimize availability, and so on. I don't mean to nitpick, but choosing an excessively general term as one of the three primary goals seems like a missed opportunity to focus the Zig language community on specific goals.

</comment></comment></comment><comment><USER11> Glad to see you still going strong! I've been a supporter on Patreon since your job-quitting announcement 10 months ago. How has it been working full time on Zig? Did you end up relocating from NYC?

<comment><AUTHOR> I'm happier than ever before. When I had a day job, I worked on Zig nights & weekends, and I was pretty stressed out.

Now, I work on Zig during the day and I'm training with my brother for our first marathon on nights & weekends. I'm really thankful for you and others' support so that I can do this.

Still in NYC for 1 more year, but my girlfriend is finishing up her master's and looking for Ph.D. programs in California.

</comment></comment><comment><USER12> I'm glad that Zig doesn't use <,> characters. To me <,> is the most annoying things to read in source code.

Zig's program source code is extremely readable. I love it !!

<comment><USER13> I don't mind < > , especially when it's generics/templates. For example, D chose !() for it, and it's much harder for me to read.

I'll take S<T, U<int, long>, W<int>> over S!(T, U!(int, long), W!int) any day.

<comment><USER14> For some reason, I've always preferred OCaml's style of generics notation: (T, (int, long) U, int W) S

I'm pretty sure I'm in the minority with that opinion though.

</comment></comment></comment><comment><USER15> Interesting language. I do find the statements a bit 'absolute', eg higher performance than C. In terms of what? Floating point, concurrent processing, ...?

<comment><USER16> C's simplicity leads to fewer guarantees, this makes some optimizations impossible. E.g. Fortran used to be faster than C in numerical code, because the guarantee of no aliasing allows for more aggressive optimizations.

Maybe Zig has something in this department, too.

<comment><AUTHOR> Cross posting from [https://www.reddit.com/r/programming/comments/bjwhm5/introdu...](https://www.reddit.com/r/programming/comments/bjwhm5/introduction_the_zig_programming_language/emc30to/)

Parameters can have `noalias` on them. This is [currently undocumented]([https://github.com/ziglang/zig/issues/1521](https://github.com/ziglang/zig/issues/1521)) and [not yet safety checked]([https://github.com/ziglang/zig/issues/476](https://github.com/ziglang/zig/issues/476)) and there is an [open area of research considering doing it the opposite way]([https://github.com/ziglang/zig/issues/1108](https://github.com/ziglang/zig/issues/1108)). Provided that it could be safety-checked, opt-in aliasing has the potential to make Zig even faster. As far as I'm aware, this is currently the only way in which Rust could potentially outperform Zig (and C).

</comment></comment></comment><comment><USER17> Does zig have tooling to serve a language server? It would be cool to get IDE support.

<comment><AUTHOR> It's [planned]([https://github.com/ziglang/zig/issues/615](https://github.com/ziglang/zig/issues/615)). The feature will only be present in the self-hosted compiler, not the "stage1" C++ compiler, which is what is currently shipped.

It'll be especially well suited for this kind of thing because the self-hosted compiler is a long running process that watches files for changes and rebuilds incrementally. [1 minute demo of early progress]([https://www.youtube.com/watch?v=b_Pm29crq6Q](https://www.youtube.com/watch?v=b_Pm29crq6Q)).

<comment><USER18> Just so you know HN doesn't support reddit markup for links, you can only post the url for the link directly, not highlight text. That's why most ppl here use a footnote index to post links [0][1][2]etc

[0]

[1]

[2]

<comment><USER19> It's not "reddit markup", it's just Markdown. A rather common format, not specific to Reddit. And honestly, I wish HN would grow a few features in this area — links and blockquote would be really nice. It'd be good to have common formatting s.t. common formatting can just get out of the way, so that we can all focus on the discussion, instead of parsing text with our eyeballs.

(FWIW, M↓ is supposed to be lightweight enough that it's readable inline. The links can get a little long, but I think it's not too hard to skip, and it does have the upshot of not making you have to match up citation numbers. But you're right that the numbered format is more common among posters.)

<comment><USER18> I guess I should have checked how long you were around before lecturing you.

Personally I like the lightweightness of HN comments, it forces the content to be good over everything else.

</comment></comment></comment></comment></comment><comment><USER20> Reading through some of the examples in the documentation, I love the look of this. It really does feel easy to read.

</comment><comment><USER21> Great project, but it has had more than one major discussion on HN in the last year, which makes this submission a dupe (see [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)).

Most recently: [https://news.ycombinator.com/item?id=19610199](https://news.ycombinator.com/item?id=19610199)

Other big ones: [https://hn.algolia.com/?query=Zig%20points%3E30&sort=byDate&...](https://hn.algolia.com/?query=Zig%20points%3E30&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

<comment><USER10> FYI, the main page of ziglang.org was completely overhauled, which is why this was submitted.

Here it is from a few days ago: [https://web.archive.org/web/20190430121340/https://ziglang.o...](https://web.archive.org/web/20190430121340/https://ziglang.org/)

</comment></comment><comment><USER22> Andrew does post YouTube videos of his coding sessions which teaches me a lot of Zig and gives me pointers on using Vim as an overall IDE [https://www.youtube.com/user/superjoe30](https://www.youtube.com/user/superjoe30)

</comment><comment><USER23> > C++, D, and Go have throw/catch exceptions, so foo() might throw an > exception, and prevent bar() from being called.

Since when can you throw exceptions in Go?

<comment><USER24> Probably referring to panic and recover.

</comment></comment><comment><USER25> I actually have never wondered before: is it ever valid to use pointer 0?

<comment><AUTHOR> Yes, and here is an example: [https://github.com/andrewrk/clashos/blob/91f45cff49128b3322f...](https://github.com/andrewrk/clashos/blob/91f45cff49128b3322f98cc78ed08df5bcec35cb/src/main.zig#L81)

When the raspberry pi 3 hardware boots, it jumps to 0x0. So this is the part where the bootloader loads the new kernel image into memory... starting at address 0!

<comment><USER26> > @intToPtr([ _]allowzero const u8, 0 [0..@ptrToInt( &__end_init)]

vs

> (int_*)0

They sure make you pay though the nose to cast in zig -- maybe a good thing?

<comment><USER5> Zig's type system tries to be aware of what its pointing to. Is it an array of comptime known length? An array of unknown length? An array of runtime known length? or a single item? Is it mutable? What's its alignment requirement? etc. It even has a pointer type for "something that came from C, who the hell knows". There is an accepted proposal to have pointer types for null- terminated blocks of memory too.

So when you create a pointer out of thin air, you have to inform the type system precisely what kind of pointer it is. That's why it is so much more gnarly than C, it wants you to be explicit.

</comment></comment></comment></comment><comment><USER27> There seems to be a new programming language every day on HN, it raises many questions

<comment><USER28> Are you new here?

In all seriousness, what questions does it raise? HN has a long history of featuring old and new languages on the front page and often you'll bump into language designers and researchers.

I could be wrong, but I recall the front page featuring more esoteric languages/ideas in its early days. (My username doesn't reflect how long I've been here BTW)

<comment><USER27> didn't mean to ruffle any feathers, it seems like the ones that have appeared lately are "new language like language X but does Y". Maybe I'm getting old and grumpy but can't help but think the time would be better spent adding feature Y to language X, but didn't mean to start anything :-).

<comment><USER28> You didn't ruffle my feathers, but I can easily see how you'd ruffle the feathers of someone who's invested a tremendous amount of time into a new language.

> but can't help but think the time would be better spent adding feature Y to > language X, but didn't mean to start anything :-)

When people create new languages, the premise is rarely along the lines of: "I like this language, but if it only had this feature." The truth is there are a whole slew of very legitimate reasons for creating a new language. Many of those reasons are predicated on the idea that the mainstream alternatives have too many wrong features and/or it would be difficult-impossible to fix those flaws by adding new features. As you already know, it's a lot harder to remove a feature from a mainstream language than it is to introduce a new feature, so languages tend to become more complicated as time goes on. New languages tend to provide a clean slate and opportunity to learn from the mistakes of its predecessors.

Another reason to create new languages: New languages often act as the test bed for ideas that eventually end up in mainstream languages. As mainstream languages mature, they rely on more experimental languages to introduce ideas so they can be tested. The only way to test these ideas is to have people write programs in these languages and study the outcome. With that being said, if it wasn't for the experimental languages, mainstream languages would not likely have things like objects, or lambda functions, continuations, type inferencing, polymorphic type systems, etc.

So, if you find yourself being down-voted for asking questions like, "why don't you just add feature Y to language X", it's because you're in the wrong venue. You're not the first to ask the question. I'm not the first to answer it, so you're bound to ruffle feathers.

</comment></comment></comment></comment><comment><USER29> move zig

<comment><USER30> Upvote for username.</comment></comment>


One Web App = One Language - <AUTHOR> http://blog.opalang.org/2012/04/one-web-app-one-language.html

<comment><USER2> The innovation here is using the type system to determine whether code should be executed on the client or the server. Contrast this with writing code manually for node and the browser. In this case, though it's all javascript, the programmer must explicitly divide the code for the server and the client. Or contrast with Meteor. Here there is a bit more code sharing, but the programmer still needs to think about client vs server (by checking `Meteor.is_client` and `Meteor.is_server` where appropriate).

In Opa (as I understand it--I haven't used it), the programmer can be explicit about where code execution should occur, but the compiler can also infer where it should occur, determine the best place to put the "data boundary", and warn the programmer if code is executed in an unsafe context.

For "traditional" next-gen web apps, it's a tough call that this is enough of a win to warrant learning a new language. Further, because this style of server-client programming is pretty immature, programmers may want to have tight control over where code is run.

However, I think this is very important work for the future of distributed computing. In particular, consider if we are ever to move from the web's dominant server-client architecture to a more fluid peer-to-peer model, with code moving from client to client where appropriate (i.e. mobile agents). For example, say my phone needs to grab some data from my laptop, but rather than have the laptop send all the raw data to my phone and have my phone process it, the system figures out that it would be more efficient for my phone to send code to my laptop, have the laptop process the data locally, then send the processed data back to my phone.

To be able to make inferences like in that example, I think we will need to use approaches like Opa.

<comment><USER3> > For example, say my phone needs to grab some data from my laptop, but rather > than have the laptop send all the raw data to my phone and have my phone > process it, the system figures out that it would be more efficient for my > phone to send code to my laptop, have the laptop process the data locally, > then send the processed data back to my phone.

I've been romanticizing this kind of dynamic client-hopping execution in my head for a long time, and I even tried to implement it once. The biggest problem is that it's a provably impossible problem to solve! If your language is Turing-complete, it reduces to the halting problem.

You can make guesses (as Opa does) and cover the simple cases with code analysis, but in practice such attempts have devolved into inefficiency and synchronization problems once you start implementing nontrivial systems over fallible interfaces such as the web. It all brings to mind FGCS[1], and how that just didn't work.

[1] <http://en.wikipedia.org/wiki/Fifth_generation_computer>

<comment><USER4> What exactly is the problem you are referring to as unsolvable?

<comment><USER5> The problem of deciding where best to execute code.

</comment></comment></comment></comment><comment><USER3> We already have this. Node.js.

So I'm confused as to why we need another language which is like JS but _not really_ , that compiles to Node (which it doesn't, but the author wants to give it a shot).

Sharing server and client stuff in Node is already trivial. So are RPC's (dnode) and realtime streaming (socket.io). And for the sake of security/perf, this separation works very well.

Not to detract from the accomplishments here -- the type inference looks awesome, and I started off as a "compilers guy". But... why?

<comment><USER6> As a member of the Opa team, I can think of at least three problems that Opa solves for you compared to Node.js frameworks.

1) Asynchronous (a.k.a. event driven) programming. Lightweight threads are a very efficient paradigm but dealing with callbacks manually is cumbersome and is sometimes very difficult to get right. (Exercise: try to code a solver for the "Tower of Hanoi" in Node.js that is really non blocking :-))

The Opa compiler cuts your code into chunks and makes it non-blocking by managing all the callbacks for you. (Technically, Opa compiles functions using a continuation-passing style.)

2) Consistency between code and data (using static types). Opa features a static type checker with (almost complete) type inference. Programmers can also declare typed MongoDB collections and build typesafe DB queries in the Opa syntax. In the end, consistency between code and data is statically ensured in the entire application (client code, server code, and database queries).

Needless to say, there exist no such things as script code or database code injections in Opa programs :)

3) Transparent protection against XSS attacks. Most frameworks are based on a templating system that sees XHTML values as a "flat string with holes". In this setup, the problem of choosing the right escaping function at insertion points is called "context sensitivity" and is generally considered very difficult to solve without hints from the programmer. In Opa (as in Scala) XHTML and XML values are first class tree-based data structures. Inserting a string into a XHTML value will generate an automatic typecast and trigger the proper escaping function by default in a very predictable way.

In the end, I believe that Opa has the potential to be for V8+NodeJS what Scala+(Lift or Play) are to the JVM -- Opa being at the same time arguably simpler to use.

How does this all sound to you?

<comment><USER7> These are all potential wins. However, having tried the tour and the example code, a concern is the memory usage on the client side. Even for simple examples, it's very high. Prohibitively high for mobile usage. Would you care to comment on this? Is it something that can be improved upon in future versions or is it inherent to the approach?

<comment><AUTHOR> Currently, we did not work a lot on reducing the size of the generated JavaScript code nor the memory usage. There are definitely huge potential gains in that space, and we planned to focus on this once we have the Node.js backend: Benefits will be doubled.

</comment></comment></comment></comment><comment><USER8> Are there good examples of this kind of coding? I'm excited about the idea of using the same language and maybe some of the same models on the client and the server, but the idea of just writing one application and having pieces of it execute on the server and pieces of it execute on the client is not clicking for me yet. Is it a good idea to abstract away the communication between the client and the server? It seems to me that designing that is one of the important parts of writing a good client/server app. How does that work when you are running the same code on both sides?

<comment><USER9> I've played with toy versions I've hacked up, and I think the idea is promising, but the analysis is difficult. The idea is that you should be able to write, say, an HTML canvas game as if you were running code on one machine, writing to a 2d framebuffer. But then how do you deploy it? If the clients are powerful enough (and there are no dependencies on server-side state), you can run it all client-side, as JS that implements the game and writes to the canvas.

Alternately, you can run everything server-side, except every time a framebuffer update is needed, you generate an AJAX call which triggers the appropriate canvas update, treating the client as just a remote framebuffer. But that can be way too high-latency, and not run _enough_ on the client side. So instead you might want to put the data boundary somewhere between those two extremes. Ideally the compiler would figure out where, based on some kind of analysis (either static or from profiling data, or both) that tries to minimize latency problems and/or data transfer, and takes into account capabilities of the client and server.

</comment></comment><comment><USER10> Some previous discussions:

<http://news.ycombinator.com/item?id=2925609> <http://news.ycombinator.com/item?id=2802736></comment>


Ask HN: What's a Mac app you wish you had - <AUTHOR>

I like building and using native Mac apps. Just wondering what the community is thinking of <comment><USER2> Had this on my wish list for a while:

An app that "sticks" windows together. Essentially joining two or more apps, either:

1) Sticking edges, E.g. The Calculator app sticks to the side of Chrome. I move Chrome, Calculator moves. I "Full screen" Chrome, it leaves room for calc etc.

2) Stacking, E.g. My communication apps (Slack, Messages, IRC) are all stacked on top of each other. I move one, all move. I resize one, all resize. I like this too keep things organized - I use alt-tab to bring one to the front.

You can use my made up name for this app if you want, "Herd" :)

</comment><comment><USER3> It depends what sort of approach you intend to take with this really.

There are several things I'd like to see built, but ideally as open source/free, even if that means providing some financial support to make it happen.

Some of these ideas are about providing a better GUI around an existing library or CLI tool, and some are about providing an open option where currently there are only options tied to SaaS/proprietary services.</comment>


Being honest with myself: my journey to learning how to code - <AUTHOR> http://zackshapiro.com/post/31002274175/being-honest-with-myself-my-journey-to-learning-how-to <comment><USER2> This is more or less my story as well.

I graduated from college with a philosophy degree and took a job in marketing. That job wasn't really marketing, despite the title, and I ended up spearheading a digital marketing effort that was 95% technical project management. That was the point when I realized I wanted to be the person _making_ the products, not managing the people making them.

So I did everything I could to get closer to the technology. I quit my job in the non-profit sector and moved to Chicago, took a job as a project manager at a technology/marketing company, learned QA processes, taught myself python over 12 months, built some scripts to automate tedious parts of my job, and eventually got a job in Automated QA.

Now I'm an engineer in SF Bay Area at a startup. And yes, every day I go home and realize that my brain is wrung out, my mind is exhausted, and I am totally happy with it.

<comment><USER3> > And yes, every day I go home and realize that my brain is wrung out, my mind > is exhausted, and I am totally happy with it.

I had this issue the first two years I worked full time as a developer. It disappeared eventually.

<comment><USER2> Hmm, I really hope it doesn't go away. It's the best part of the job. I have seen a number of my peers still doing this after many years, and still experiencing the same thing.

</comment></comment></comment><comment><USER4> I'm currently learning how to code. The biggest problem that I consistently have is _getting the damn thing to work._ I'm about halfway through the Hartl Rails Tutorial, and moving at a snails pace because I have to google error messages every five minutes.

I end up spending hours changing permissions, re-installing packages, and poring over StackOverflow posts. I get that real-life software development is very similar, but I'd really just like to build something.

Coding isn't all that hard (in my experience). It's the tangential stuff that makes it hard, and as a result, turns people off from learning.

<comment><USER5> A huge part of coding is tenacity.

Run into a problem you can't figure out? Time to get resourceful...go for the common solutions first: Think through the problem and try to figure out where you went wrong. If that doesn't work, look at similar examples and documentation. If that doesn't work go to the common win areas: StackOverflow, Google. If that doesn't work, go on to IRC or forums. If that doesn't work walk over to a knowledgeable collegue etc. etc. until, all at once, the solution comes to you like a bolt out of the blue and it is like you've known it your whole life. Rinse and Repeat until you've built something useful.

The hard part is not cutting corners and sacrificing your original intent for the sake of getting over a hump. This is not so hard when expectations are clear like a tutorial but it is all-too-easy when creating a new product or feature.

Good luck and welcome to the Tribe!

<comment> benji-york I have come to believe that tenacity is the most useful skill (or trait) that programming can teach (or ingrain).

Done well, the tenacity that a programmer possesses looks almost super-human to outside observers as well as being extremely valuable in other areas of endeavour.

</comment></comment></comment><comment><USER6> Good story. I did my undergrad in history and came out wanting to do something else.

I spent a year on help desk, two years as a system and network administrator (skills I acquired by studying while I was on help desk) then I transitioned to development (which I studied for while doing admin) and now I lead my own projects. Like other have mentioned, it's all about dedication, tenacity, and passion.

However, I don't want to overlook the importance of the people along the way who took a chance on me. Those people were just as important to me being able to continue down this career path as the my own efforts.

</comment><comment><USER7> A lot of my friends have the opposite problem. They're in college in order to learn programming so they can make games, but they seem too content with enjoying other people's games to realize how satisfying it can be to actually create your own.

</comment><comment><USER8> I am interested in what you found to be the most effective learning tool or tools along your path. How did going through the rails book compare to the learning experiences on the job? Did you consider one of the many bootcamps, online programs, or other more structured learning?

<comment><AUTHOR> Most effective for me have been Railscasts, building real projects and not just following the book. Learning on the job far surpasses the book as I'm actively engaged and not just following along on Rails (sorry, had to)

</comment></comment><comment><USER9> Great post - I did the same thing, and 2 years on, best decision I've ever made. It takes time but the main thing is to take the plunge and stick with it. Great job!

</comment><comment><USER10> Bravo!</comment>


Indian Court says may "block" Google and Facebook, like China - <AUTHOR> http://www.ndtv.com/article/india/can-block-websites-like-china-delhi-high-court-warns-facebook-google-166383

<comment><USER3> Being an Indian, I can confidently say that neither Facebook nor Google would be blocked..Ever. Unlike China, India is a democratic country and its media is independent from the clutches of the higher authority. Serious objections would be raised from all quarters if the high court decides to go ahead with the ban.

<comment><USER4> Not being an Indian, I'm surprised at how often the word "defamatory" appears in discussions by Indian government officials and now this court. Is prior restraint an established Indian tradition? Is criticism of government or other public figures out of bounds? If it is, it's difficult to see how the internet could ever be made to conform.

<comment><USER5> As discussed earlier, criticism of government or public figures is not out of bounds. Freedom of speech is very important and everyone values that in India. Print/electronic media is not regulated and they often criticize the government. However, they (especially print media) work under certain moral framework like not making any obscene remarks or vulgar attacks. I believe that is the sticking point for all the authorities in India. If traditional media can follow this "moral framework" then why not the Internet? And to be honest, I'm not sure how many people even understand the concept of user generated content based websites or web 2.0; let alone the inner workings of the Internet.

I fear Internet regulation will be the major theme of 2012. All the major countries are looking ways to regulate it. And its really sad.

</comment></comment></comment><comment><USER6> An old but apt tweet:

Clean drinking water in villages. Primary education for all. Safe streets. No hungry people. Ah never mind. Let's monitor content on the net and block sites.

<comment><USER7> If we asked a good sample of Chinese citizens if they valued freedom of speech more, I wonder what their choice would be. Based on my Chinese colleagues, it will be probably split down the middle, i.e. 50% of them picking freedom - <USER2> reasons of the "lost generation".

</comment></comment><comment><USER8> I am sure it would be tough, but as we have seen that this could happen, as happened in China. What could be a viable solution? I mean, for future, how can we make it so that blocking two domains is not what it would take for a government agency to block big networks like Facebook and Google.

</comment><comment><USER9> Seeing as the general perception of the Indian economy is IT services and call centres, switching off Google would be akin to banning the telephone.

<comment><USER10> IT services and call centers make up for only 3% of GDP despite the general perception</comment></comment>


Google got rich from your data. DuckDuckGo is fighting back - <AUTHOR> https://www.wired.co.uk/article/duckduckgo-android-choice-screen-search <comment><USER2> In my opinion Qwant.com is just as good if not better and isn't located in the US. Why anyone would pick a US-based service for more privacy when other services exists that are just as good and makes the whole NSA/FISA problem go away is beyond me but feel free to educate me.

<comment><USER3> I personally agree, but I don't disagree with their advocacy for online privacy and will fully support their endeavours.</comment></comment>


Passage: a Gamma256 video game by Jason Rohrer (2007) - <AUTHOR> http://hcsoftware.sourceforge.net/passage/

<comment><AUTHOR> The game takes five minutes.

After playing it, read the Creator's Statement: [http://hcsoftware.sourceforge.net/passage/statement.html](http://hcsoftware.sourceforge.net/passage/statement.html)</comment>


Chipotle Is Apple - <AUTHOR> http://www.slate.com/articles/business/moneybox/2012/02/chipotle_is_apple_how_the_burrito_chain_is_revolutionizing_fast_food_.html

<comment><USER2> The weird thing is that Apple is trading for less than 10x PE and Chipotle for about 40x. Chipotle is certainly well-appreciated on Wall Street and, given the implications of the PE, is seen as a steadier and more resilient business that will grow enormously over time.</comment>


Engineering Director of Graph Search - Lars Rasmussen - does reddit AMA - <AUTHOR> http://www.reddit.com/r/IAmA/comments/18jb6d/i_am_the_pointyhaired_engineering_director_for/c8fbw4v

<comment><AUTHOR> I took the liberty to ask why platforms and APIs today stink. Most of them guard their core functions and move back to become destination sites

[http://www.reddit.com/r/IAmA/comments/18jb6d/i_am_the_pointy...](http://www.reddit.com/r/IAmA/comments/18jb6d/i_am_the_pointyhaired_engineering_director_for/c8fbw4v)</comment>


How to Beat Jetlag and Travel Healthier - <AUTHOR> http://www.huffingtonpost.com/matt-wilson/how-to-beat-jetlag-and-tr_b_9158142.html <comment><USER2> I'm one of those weird ones who enjoys being on a plane. Like the Seinfeld bit goes, it is a tiny snapshot of life... tiny tables, tiny cramped seat, tiny bottles, tiny food. Anyway, I feel like this article just throws everything at you.

The following works very well for me:

1 - Adjust your sleep to reflect your destination. Advance or delay your body clock according gradually prior to your trip.

2 - Water. Drink lots of it inflight.

3 - High-Protein, low carb meals just before travel and inflight.

4 - Walk around on a plane or use compression.</comment>


The Gladwell pivot - <AUTHOR> http://languagelog.ldc.upenn.edu/nll/?p=8123

<comment><USER2> good article , its frustrating when people romanticize dyslexia . My father was a genius in his own way and it was visible to those who worked with him on any of his project's. He could never overcome the liabilities of his "challenges".

There is nothing more frustrating than living in a world of words, and realizing it takes you 5x longer to work through the medium.</comment>


Did China just fully block Google.com today? - <AUTHOR> http://viewdns.info/chinesefirewall/?domain=google.com

<comment><AUTHOR> I was using Google/Gmail last night, and now all Google services are down this morning...</comment>


Site Claims to Loosen Google "Death Grip" - <AUTHOR> http://blogs.wsj.com/digits/2011/07/13/site-claims-to-loosen-google-%E2%80%9Cdeath-grip%E2%80%9D/

<comment><USER2> I'm not sure whether they've loosened Google's "Death Grip," as much as they've separated garbage content from good content so the algo doesn't have to blacklist their entire site.

<comment><USER3> Which would be a success of Google's new algorithm, as far as Google's users are concerned: force the website owner to separate out his own garbage, and only the good stuff makes it to the search results.

Although I wonder: if a website spreads enough of its "garbage" around multiple domains (not subdomains), it might be able to still avoid the new blacklist threshold while polluting entire pages of Google results. It's not hard to trivially reskin your site and pump it through hundreds of domains-- certain sites in, ahem, seedier parts of the web have done it for years.

</comment></comment><comment><USER4> The article is mediocre at best, but it does reinforce my belief that Panda was the most effective Google update so far in whittling down internet spam. HubPages became a magnet for SEO spammers wanting to create backlinks to their sites. In fact, here's a HubPage detailing the practice: <http://hubpages.com/hub/How-To-Create-Backlinks></comment>


Ask HN: Subcontracting – pressured to move from percentage to flat rate - <AUTHOR> About a year ago I began taking on some data analysis clients as a subcontractor. The contract I signed has me receiving a percent of whatever hourly rate the firm I contract though bills that particular client. Six months into the gig, the firm asks if I would be willing to change from a percentage to a flat rate. I know that the rate they bill varies, considerably greater for short term contracts, so I said no and explained my reasoning. There was a little hemming and hawing, but they dropped the request.
Well, they brought it up again this month. Again, I said no. They said they could have one of their full time people do the work. I said that was fine. They said they want to discuss again in the new year.
So my question is: beyond increasing the margin they make off my work, why might they be so insistent on changing to a flat rate? And, any thoughts on how we might resolve this in a way that is mutually beneficial?
From a negotiation perspective I don't need the money. I'm more worried about being fairly compensated for my work. <comment><USER2> Companies, and often just about any type of business, will often seek to convert variable costs into fixed costs because they are more predictable and easier to plan for. It means they can project out over a given time frame and know what their costs will be. Variable costs are harder to plan for.

It's not unreasonable that they are seeking to make such a change. It is unreasonable if they expect your net income to decrease as a result. If you can, determine what your average weekly/monthly rate was over the past year, and then try to negotiate a fixed cost that is at least that much. Maybe a little more: you can argue the justification that you're giving up the possibility of making more should the % split fall that way. This could make it a win-win situation, where in effect you both get the benefit of stability in planning on fixed costs, and in your case fixed income.

Of course they may not be willing to negotiate, and then you need to decide if it's worth the possibility of lesser income, which of course depends on how easily you might find comparable work with comparable compensation.

<comment><USER3> > _Maybe a little more: you can argue the justification that you 're giving up > the possibility of making more should the % split fall that way._

Another way to think of this is that the contractor would be personally taking on the risk of a cost overrun (which previously would have been borne by the customer, who would have had to pay more for additional hours of work).

The amount they'd need to be paid for a fixed cost contract would need to take this risk into account.

If I were doing contracting work, I don't think I'd ever take the risk of entering into a fixed cost contract for any non-trivial project, since I can't estimate programming work well enough to have any confidence that I won't end up doing the work at a loss.

<comment><USER2> Ah, my interpretation was that the OP would be choosing between a % of the entire contract vs. a fixed _hourly_ wage of some sort. A fixed price for the entire contract would indeed introduce complications of the sort you mentioned. And the one massive fixed price contract I've been involved with (on the client side, not the vendor, which was Oracle ::shudder::) went to sh#t when, despite the fixed-price contract, when there were cost over runs due to delays (roughly 20% blame on client, 80% on Oracle) the result was that Oracle took their ball and went home, virtually over night. A lawsuit ensued. (We won. We had a fixed price contract, they violated it)

<comment><USER3> On second reading, I think you're right.

</comment></comment></comment></comment><comment><USER4> Instead of telling them straight up "No," a better response is to express your concerns. "So, if we do that, how does that impact my hourly rate?" Or counter offer with something that you think covers you.

You should read a negotiating book. "Getting to Yes" is short and research based.

Flat out turning them down without really exploring it is not a best practice.

<comment><AUTHOR> This is helpful. I haven't read "Getting to Yes."

I should add, that neither conversation was particularly acrimonious. Just frustrating because no reason for switching to a flat rate, beyond that that was how they were doing it now, was given.

</comment></comment><comment><USER5> > They said they could have one of their full time people do the work.

> why might they be so insistent on changing to a flat rate?

It's cheaper for them? Why not just ask them?

</comment><comment><AUTHOR> I'd love to hear from people who work in consulting firms that occasionally pass work through to subcontractors. How is this situation typically handled?

<comment><USER2> I know a small number consultants that work like this, and they actually end up negotiating various details of their contracts, including hourly rate, per- diem expenses when travelling, and the travelling expenses themselves.

</comment></comment><comment><USER6> You could always say if you can guarantee me a certain amount of work per year then sure we can talk about a fixed rate per hour.</comment>


Early Surface Pro hands-on review: RT was mistake, Pro "superior" - <AUTHOR> http://gizmodo.com/5974705/microsoft-surface-pro-hands+on-this-is-what-it-should-have-been-all-along

<comment><USER2> Like many others, I wonder about Microsoft's logic in giving the RT a desktop, and this article made gave me a thought.

I haven't used an RT, haven't even seen one, but if the only thing the desktop is useful for is navigating the filesystem so you can put photos, video and other files on it, why not have a Windows8 File Manager app.

Is there anything else you can do with the desktop? This might go some way to reducing the confusion between this Pro 'real computer' vs. the RT, which nobody seems to get.

<comment><USER3> I would say the main reason they left the desktop is Office... not file system manipulation.

Jumping into Office from Metro, without going through the Desktop would be even more jarring.</comment></comment>


Out in the Open: These Hackers Want to Give You Coding Superpowers - <AUTHOR> http://www.wired.com/wiredenterprise/2014/01/light-table/ <comment><USER2> Sorry for being "that guy" \- but this article reads like a sensationalist press release, without actually releasing any (new) press.

<comment><USER3> Welcome to the world of Wired articles. They seem to have a formula of taking open source projects which are interesting in their own right and sensationalizing and overblowing them to ridiculous proportions.

</comment></comment><comment><USER4> I'm just not getting how this is all that different from something like Eclipse, which compiles code while you're writing it, displays error messages in real time, and allows you to gain a sense of what the code is doing (which method is called) by mousing over methods. Is this a way to make life that much easier or is it the same basic idea?

<comment><USER5> This one has pretty colors and Silicon Valley investors.

<comment><USER2> I empathize with this sentiment.

It's becoming increasingly difficult to contain my eye-rolling whenever yet another SV company announces their plans, intent or manifest destiny to "change the world".

</comment></comment></comment><comment><USER6> Is it just me, or is LightTable still pretty far from their original promise?

I downloaded the app a few weeks ago, and I never saw anything that gave me realtime feedback on my coding. I admit, I was just playing around with putting in the odd function and variable, but it didn't give me anything submlime text doesn't currently.

As far as the spending ' hours or days working on code before they can make sure it actually works', isn't this solved with TDD?

<comment><USER7> Did you start an Instarepl? That's where you get the most obvious realtime feedback.

</comment></comment><comment><USER8> I loved how it displayed code in functions in separate tiles, instead of all concatenated together in a long file. And it shows the code for the other functions being called, in their own tiles.

The video in the linked article is a good short explanation of how the tool works. You can skip the hype in the article.

I think this concept could represent a significant advance in IDEs. I don't care if it's a new idea or not, it's a gorgeous implementation of the concept.

<comment><USER9> Agreed.

Following the flow of information is what I do all day every day at my new position. If I could have something like this which would allow me to quickly watch how information was flowing from one end of the spectrum to the other without having to follow the method definitions that'd be great.

I wonder how well it will work with complex multilingual web applications?

Either way, very cool. I hope I keep hearing about it. It looks really great.

</comment></comment><comment><USER10> The amount of negativity in this thread is amazing. I've watched the video and I'm positively impressed. The demo is building the insight _why_ is my code / unit test computing a certain value with instant feedback and full information of the whole call chain. It's far from perfect, but it's miles better than writing a unit test, having it fail, scratching your head, adding some log statements / breakpoints, re-running the code, doing a little tweak, oops, still broken, lather, rinse, repeat. REPL is poking at the problem through a tiny keyhole and Light Table is opening the door and shining the light on the full behavior of the code. No more playing [http://en.wikipedia.org/wiki/Blind_men_and_an_elephant](http://en.wikipedia.org/wiki/Blind_men_and_an_elephant).

<comment><USER11> I agree. It's impressive to me the people who are claiming that something like unit testing can compare to these kinds of tools, without seeing the general direction these tools are headed in. Unit tests are helpful, no doubt. But compare the following:

\- Spend several minutes writing a small test suite for the functionality you're writing. Write that functionality until you think it's correct. Compile, run. See a "Pass!" or "Fail! (reasons: ...)" in your console or IDE, fix it until it's working. Feedback loop is measured in minutes, seconds at best.

Vs.:

\- Write the functionality. As you're writing, you see the data flow through your program in real-time, immediately identifying bugs. Any unit tests you may have are _even more useful_ because you can inspect your program at any level, without having to debug or step through your program. No need to re- compile and re-run, no need to even Alt-Tab. Feedback loop is measured in milliseconds.

Light table isn't quite there yet, but it's a strong step in the right direction. Unit tests help, but they don't obviate the need for better tools.

To give a bit of context on the direction these tools are trying to move in, Light Table was heavily inspired by the work of Bret Victor, who bases his work on the idea that, quote, "Creators need immediate feedback to what they're creating." If you haven't seen his _Inventing on Principle_ talk [0], you should. It's one of the most eye-opening talks on software and design I've ever seen.

[0] [http://vimeo.com/36579366](http://vimeo.com/36579366)

<comment><USER10> Precisely. Software it's all about shortening the length of the feedback cycle. Chorus: "How is email / web / google different than pigeons / library / index of an encyclopedia book?".

</comment></comment></comment><comment> vezzy-fnord Light Table is a nifty concept, but it's hardly anything revolutionary like this article portrays it.

Especially this:

 _The problem with coding, he says, is that you can't see the results of your work until after you're done._

Which basically describes a REPL (although LT features a real-time one, still not a new idea by any means).

</comment><comment><USER12> I am pretty sure I've heard of Light Table here a few times. It's hard to be sure though since Microsoft's LightSwitch (see [http://msdn.microsoft.com/en- us/vstudio/ff796201.aspx](http://msdn.microsoft.com/en- us/vstudio/ff796201.aspx)) which is almost identically named and has almost the identical purpose. That is, making programming easier for everyone including non-programmers.

I was about to forward this to a friend of mine who has several ideas for web startups but lacks all technical skills and is therefore waiting for the time "any day now" that non-programmers will be able to generate programs as fast, cheap and maintainable as programmers. But then I saw the website and realized he would have no idea what the heck it is from their elevator pitch:

[http://www.lighttable.com/](http://www.lighttable.com/)

 _Light Table is a new interactive IDE that lets you modify running programs and embed anything from websites to games. It provides the real time feedback we need to not only answer questions about our code, but to understand how our programs really work_

That has to be about the least useful description of what it does I can think of.

</comment><comment><USER13> Yes! Hope guys like Chris & Rob at LT (and/or Bret Victor) will succeed in reinventing programming - making it more tangible and visual. Programming doesn't need to be that tedious!

</comment><comment><USER14> Light Table is bigger than Jesus now.

</comment><comment><USER15> The article is badly written. For example,

> The problem with coding, he says, is that you can't see the results of your > work until after you're done. In that sense, programming is unlike almost > every other craft. "When a chef adds an ingredient, he can smell it, he can > taste it," Granger says. "When an artist makes a stroke on a canvas, he can > see it. But programming isn't that way."

The rest of us would say we just run our unit tests in a couple of seconds and call it a day. At least, if you didn't watch the video.

The video shows a potentially useful tool (on Clojure no less). It's more about watching the propagation of values through code, than it is about "feedback" per se.</comment>


PDP2011: A re-creation of the PDP-11 computer systems in VHDL - <AUTHOR> http://pdp2011.sytse.net/wordpress/pdp-11/ <comment><USER2> DEC actually made a microprocessor implementation of the PDP-11 processor, called LSI-11. It has two chips, and is functionality equivalent to the large thing. Unfortunately, DEC was in a complete disregard of personal computers or workstations at that time, I don't think they made workstations with it. Otherwise it could be another legend in computing history: a PDP-11 workstation! Never happened.

Here's S100 computer board built around this microprocessor with a great introduction to the hardware details. [http://s100computers.com/My%20System%20Pages/PDP11%20Board/P...](http://s100computers.com/My%20System%20Pages/PDP11%20Board/PDP11%20Board.htm)

<comment><USER3> I had an LSI-11, in the Heathkit H-11 configuration. A wonderful machine. It's my background picture here:

[https://twitter.com/WalterBright](https://twitter.com/WalterBright)

</comment></comment><comment><USER4> (In)famous for being 'middle-endian'

[https://en.wikipedia.org/wiki/Endianness#Middle- endian](https://en.wikipedia.org/wiki/Endianness#Middle-endian)

</comment><comment><USER5> I used RSX-11M and I remember a few interesting things about it. First, it had an overlay linker: code would swap in if it used the same space as other unused code. Second, this extended to the operating system. There was a giant system build process where you linked all system programs in with the operating system. To run a command, it first had to be explicitly loaded into memory. So during this system generation process, you decide which commands should not interfere with other commands so that many could be loaded at once. Anyway, I remember it took many hours to run this process.

The 'M' means the system had virtual memory, but virtual address space was tiny- smaller than the physical memory space.

<comment><USER6> Johnny Billquist wrote a TCP/IP stack for RSX a few years ago and a webserver too. [http://magica.update.uu.se/](http://magica.update.uu.se/)

</comment></comment><comment> cbm-vic-20 I'm so happy to see an upswing in PDP-11 projects in the past year. It's such a nice architecture- very extensively documented, and from a time where it was possible for a programmer to really understand what the machine is doing, top- to-bottom.

</comment><comment><USER7> Another rathole to chase down. If I could emulate an 11/70 but connect a real decwriter paper terminal, I'd be doomed.

<comment> cbm-vic-20 You can use SimH for the emulation, which can direct emulated serial port to a physical one on your host. If your DECwriter has the EIA/RS-232 option, you're in business.

<comment><USER8> Weren't all DECwriters, and just about any terminal from the 1970's on, pretty much exclusively RS-232?

<comment> cbm-vic-20 A lot of serial equipment back then still had 20mA current loop. For example, the ASR 33 Teletype[1], which was often connected to PDPs of its era did not have RS-232.

[1] [https://en.wikipedia.org/wiki/Teletype_Model_33#Communicatio...](https://en.wikipedia.org/wiki/Teletype_Model_33#Communications_Interface)

<comment><USER9> Easily fixed with an opto-coupler, a transistor, and a hand full of resistors..

</comment></comment></comment></comment></comment><comment><USER6> There is another VHDL PDP-11 called the W11a: [https://wfjm.github.io/home/w11/](https://wfjm.github.io/home/w11/)

One eventual goal is for it to be a PDP-11/70mP, a PDP-11 "quadcore".

</comment><comment><USER10> BSD 2.x is tbe most insane OS ever. It is a backport from Vax Unix 4.x -- which used real virtual memory, often "lots" of it (2MB or even more!), 32-bit registers -- back to the 16-bit PDP-11, which had two (count 'em) 8Kbyte mappable pages in its 64K address range, and could swap 8 other pages into each. It came with all the same utilities as Vax Unix, except the networking bits.

We were so happy when we got a big -- 3" high, 6-platter 5.25" 20M -- Shugart disk. Didn't know we needed to recompile the kernel so it wouldn't swap in the middle of the fs (which had been at one end of the old 5M disk).

<comment><USER6> 2.11 BSD is still maintained by Steve Schultz. Latest patch level is 451 released last year.

</comment></comment><comment><USER11> This is really cool, though I have never played with the PDP-11 architecture. When I first took computer organization and architecture at my alma mater, Wittenberg University, my computer science professor (Brian Shelburne) made us learn the PDP-8 architecture. I will never forget learning machine code on the PDP-8. He was very popular among the PDP-8 fan community as he developed two different emulators for the PDP-8 and published a few articles on using the PDP-8 in teaching computer science. He made an emulator for Windows DOS and later on a different one in C++ for Windows 7/8/10.

</comment><comment><USER9> I'm so drooling at the idea of building a pdp-11 laptop right now!

</comment><comment><USER12> Supposedly, this project was going to include pinouts for the mini-replica front fascia provided by Pidp-11...a pretty cool project itself: [https://obsolescence.wixsite.com/obsolescence/pidp-11](https://obsolescence.wixsite.com/obsolescence/pidp-11)

</comment><comment><USER13> Cool! Now let's make a FPGA clone of _Super Sprint_.

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

</comment><comment><USER14> I can't get onto this site - just times out - anyone else ?

<comment><USER15> Yep. But thankfully archive.org has it. [0]

[0] [https://web.archive.org/web/20190708094632/http://pdp2011.sy...](https://web.archive.org/web/20190708094632/http://pdp2011.sytse.net/wordpress/pdp-11/)</comment></comment>


Chrome will use gpu to render pages - <AUTHOR> http://blog.chromium.org/2010/08/chromium-graphics-overhaul.html

<comment><USER2> Not trying to detract from Chrome here, but IE9 should have a similar ability:

[http://blogs.msdn.com/ie/archive/2010/04/09/Benefits-of- GPU-...](http://blogs.msdn.com/ie/archive/2010/04/09/Benefits-of-GPU-powered- HTML5.aspx)

<comment><USER3> Not trying to detract from IE9 here, but Opera already has a similar ability:

<http://my.opera.com/core/blog/2009/02/04/vega>

The interesting parts of the article are the implementation details about the sandbox.

<comment><USER4> Opera's hardware acceleration is vaporware. It has not been included in any release of Opera, despite that article being over a year old now.

<comment><USER5> It's not vaporware. It's been in Opera since 10.5. It isn't being used at all but it's still in the release.

</comment></comment></comment></comment><comment><USER6> Good - Opera, Firefox, and IE9 are all aready going this route. For Chromium not to support this would be a big thorn in their side, especially with their plans to support native code for extensions (aka, "Chrome Apps").

</comment><comment><USER7> Looking forward to this - I frequently scale web pages (my vision isn't great) and it bugs me this common activity still isn't smooth in 2010.

<comment><USER4> Have you tried an iPad? For some reason Mobile Safari is still far better at scaling pages than desktop Safari.

</comment></comment><comment><USER8> As exciting as it is for IE9 to enter the next-gen browser wars in earnest I wonder if they are already too late.

IE releases are still tied to the years long windows ship cycle, which is a significant disadvantage when all your competitors are on months long cycles. Saddled with such a huge OODA disadvantage as well as all the strategy-tax BS from MS is there any hope?

By the time IE9 is actually out Chrome may well have hardware accelerated everything, an LLVM client/plugin model, javascript that runs faster than Java, and client-side Erlang support (or who knows what), with Firefox not far behind. It'll be interesting to see how this plays out.

<comment><USER9> IE still has 60% market share, and it's holding steady. IE9 is going to be one of the most important products Microsoft ever ships. It will be compatible enough with web standards, and offer enough performance, that it should allow developers to build more sophisticated apps based on open standards. Html5, css3 and fast Javascript will soon be a given.

<comment><USER10> Holding steady? How do you figure that, exactly?

[http://en.wikipedia.org/wiki/Usage_share_of_web_browsers#His...](http://en.wikipedia.org/wiki/Usage_share_of_web_browsers#Historical_usage_share)

<comment><USER9> I figured that because between June and July, IE marketcshare increased by .4%

[http://marketshare.hitslink.com/browser-market- share.aspx?qp...](http://marketshare.hitslink.com/browser-market- share.aspx?qprid=1)

</comment></comment></comment></comment><comment><USER11> Matt Cutts tweeted a design document about the technical details

[https://sites.google.com/a/chromium.org/dev/developers/desig...](https://sites.google.com/a/chromium.org/dev/developers/design- documents/gpu-accelerated-compositing-in-chrome)

</comment><comment><USER12> Also Flash 11 is about to support 3D and it looks serious

<http://news.cnet.com/8301-30685_3-20009940-264.html>

Unity3D is at a turning point.

<comment><USER13> Yeah, it is at a turning point, it's about to become plugin-less using Native Client.

[http://blogs.unity3d.com/2010/05/19/google-android-and- the-f...](http://blogs.unity3d.com/2010/05/19/google-android-and-the-future- of-games-on-the-web/)

</comment></comment><comment><USER14> It would have been helpful to have some kind of benchmark to show performance improvements or cpu load reduction.

I guess this is more important for advanced features like canvas than regular browsing.

</comment><comment><USER15> I imagine this is related with WebGL support, right?

<comment><USER16> The article says, "New APIs and markup like WebGL and 3D CSS transforms are a major motivation for this work".

That's what makes it exciting. Hardware acceleration for rendering the front page of HN: not so exciting. Hardware acceleration for 3D APIs drawing stuff in a canvas tag: very exciting.

</comment></comment><comment><USER17> I didn't saw libGLcore.so in `ldd chtomium-browser' output. ^_^</comment>


How I ended up with so much Hacker News karma (2012) - <AUTHOR> http://blog.jgc.org/2012/12/how-i-ended-up-with-so-much-hacker-news.html <comment><USER2> _Some headline numbers: I 've been on Hacker News for well over 5 years (I joined on July 2, 2007)_

Ha! when I wrote that it was 5 years... now it's > 8 years. I think the same conclusion still applies: _" So, to answer my original question about how I ended up with that much karma: slowly, consistently, over years by submitting things that people like."_

<comment><USER3> HN Karma functions much like the odometer on a car.

Use the car more frequently and for longer distances and the odometer will advance more rapidly.

<comment><USER4> Someone downstream said "A good trick is to post a solid counterpoint as a reply to the currently topmost comment: people are more likely to vote on comments near the top"

So I'm looking for a counterpoint except that this is actually quite a good analogy (ignoring the quibble that a good driver can move to a new car with a fresh odometer but retain a good driving record. Or that there is no legal odometer equivalent to being downvoted)

Edit: grammar

<comment><USER5> Counterpoint: The Cuckoo's Calling, by Robert Galbraith, sold 500 copies. The Cuckoo's Calling, by JK Rowling, sold a 100,000+ copies.

</comment></comment></comment></comment><comment><USER6> A few observations from someone in the "Top 10" for 8 years now:

      - You're never as good as your upvotes.
      - You're never as bad as your downvotes.
      - Karma ebbs & flows with the audience, which changes dramatically.
      - I sense no correlation between karma & quality of real life.
      - I sense little correlation between karma & quality of contribution.
      - I sense heavy correlation between karma & volume of participation.
      - I sense very heavy inverse correlation between karma & real work completed.

(Back to work)

</comment><comment><USER7> This could be simply answered with a single answer that applies to any community - just post whatever panders to the average community member if you care about irrelevant counter in your profile.

<comment><USER8> I love that irrelevant counter in my profile. Especially when it goes down. It's a signal that I should stop and rethink what I wrote - is it getting downvoted because of tone? Because I'm stupid? Or because I'm right but present an unpopular opinion?

Usually it's the second.

<comment><USER9> > Or because I'm right but present an unpopular opinion?

Some opinions are neither right nor wrong, they are just point of views, and the unpopular ones tend to get downvoted--admittedly, to a lesser extent on HN than other communities, but still happens. This has the unfortunate effect that, as you point out, the downvoted author doesn't know if there was something wrong with the tone or content, or if it just happened that his/her views are unpopular.

Maybe asking for a few words (presumably in a small, unintrusive ajax form, and not visible in the main thread) as reason for downvoting could be useful, and somewhat deter "not-my-opinion-at-all" downvotes.

<comment><USER10> Like the old slashdot "+1 interesting"?

There are nonconfrontational ways of presenting views you know are going to encounter flak. One is to do so as a question.

<comment><USER11> > There are nonconfrontational ways of presenting views you know are going to > encounter flak.

True, but...

> One is to do so as a question.

...this can often come off as passive-aggressive when it is used to present a view; that's not really an improvement. If you are stating a view, just state it: to make it nonconfrontational, don't be condescending to people who disagree, don't predict that you will be downvoted into oblivion or otherwise persecuted for posting it, and generally extend the same charity to the community that you would like them to extend to your viewpoint.

<comment><USER12> >...this can often come off as passive-aggressive when it is used to present a view; that's not really an improvement. If you are stating a view, just state it: to make it nonconfrontational, don't be condescending to people who disagree, don't predict that you will be downvoted into oblivion or otherwise persecuted for posting it, and generally extend the same charity to the community that you would like them to extend to your viewpoint.

Unfortunately this doesn't work. You still tend to get downvoted into oblivion. The problem is that if you poke holes in a dubious argument, you'll get downvoted simply because people disagree with you. There is no real way around this, and I've mostly given up on commenting except when I know I won't be downvoted. I don't really give a shit about karma, it's more the idea of rudeness/negativity behind people downvoting things that they disagree with -- even if you post a logical, well thought-out argument -- that I have a problem with.

<comment><USER11> > Unfortunately this doesn't work. You still tend to get downvoted into > oblivion.

No, it does work; if it didn't, I wouldn't have more than 20K Karma, often with highly upvoted posts disagreeing with posts that are also upvoted (or at least not downvoted), including from people who are higher on the leaderboard.

The idea that you get downvoted to oblivion simply for disagreeing with the majority regardless of quality on HN (whether it comes from people who describe the majority as politically right-libertarian or leftist, or pro-FSF, or those who describe it as pro-Apple, pro-Microsoft, pro-Google, or anti- any of those things -- and I've seen it from every possible side of all of those, except I don't think I've seen anyone accuse HN of having an anti-HN downvote- to-oblivion majority) is simply wrong.

Depending on basically random factors (who is reading when) posts on controversial topics that make substantial points well may occasionally get early downvotes for disagreement, but usually that gets overwhelmed, or at least neutralized, by positive votes very quickly.

<comment><USER12> It's pretty consistent. See for example my recent comment on a Parkinson's treatment where I said "there's fuck all evidence that it works", mentioning the placebo effect and overhyped science, which has -2. Perhaps people are offended by the swear word (which I thought was appropriate in the circumstances)? Perhaps I need to write a whole spiel explaining the placebo effect so I don't get instantly downvoted (I don't really have the time for that)?

This happens every time, and it's a little irritating.

I had a quick look at your comments and didn't see any comments such as this.

("downvoted into oblivion" is perhaps an exaggeration. I'm talking about -2 or -3 votes for a comment).

<comment><USER13> The -2 means that a couple of people (out of an unknown number) didn't like something. For example, some people don't agree with you and think that it's never appropriate to use foul language.

Most of the time you get downvotes on something, the number of downvotes is small. Only the cases where something is massively downvoted and flagged out of existence can be readily explained.

Suppose 5000 people look at your posting and almost all of them agree that sometimes it is appropriate to swear, and your posting is one of those occasions: but two out of those 5000 don't agree, and downvote you. Well, there you go: you have the _tacit_ support of 4998/5000 readers (just not enough to give you an upvote for it) and two downvotes.

Being acceptable to the majority in some "common sense" way is not enough to spare your comment. Either your comment has to have appeal so that it attracts upvotes from a significant segment of the site readers who come across it, or, failing that, a comment which doesn't attract upvotes, has to avoid raising the ire of minorities.

(Regarding the use "minorities": I'm using that here to denote absolutely any rare trait, background or world outlook whatsoever (where "rare" doesn't mean "odd" or "strange"); I am not specifically referring to "ethnic minorities".)

For the above reasons, situations where a comment is reduced to 0, -1 or even -2 are not always easily explained, other than by the general remark that it is probably less than "spotlessly inoffensive". (Imagine the ways in which some element in the comment might rub someone somewhere the wrong way, and you have a halfway plausible explanation.)

Only when some comment is massively flagged out of existence is there an _obvious_ plausible explanation.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> >>" It's content that's king. That's good news for Hacker News because it indicates that what matters there is content and not game playing". <<

If that were the case I should have much more Karma. The fact is many times I posted a submission, only to see it slip off the headline in 0.2ms. Then a few days later, someone else (with more Karma) posts the same thing and it stays on for 2 days ... I'm not complaining, simply stating that it is not as cut and dry as the author mentions.

<comment><USER15> In theory, that shouldn't happen. HN should detect duplicates and just add an upvote to the existing submission when it is resubmitted.

<comment><USER10> In practice, it happens quite a lot. The duplicate detector is easily fooled, and often the same underlying "story" is reported in a bunch of places.

Getting traction on an HN submission is very random. Unless it's about discrimination in tech work, at which point it will be flagged off the front page almost immediately.

<comment><USER16> Also, duplicates are only detected for (I think) 8 hours. After that you can resubmit.

</comment></comment></comment></comment><comment><USER10> I keep meaning to reverse-engineer my own submission stats to find out where this nearly 9k karma comes from. A good trick is to post a solid counterpoint as a reply to the currently topmost comment: people are more likely to vote on comments near the top.

<comment><USER17> I don't agree, I find the most informative posts are usually mid way down its where the meat of the comment section really is.

</comment></comment><comment><USER18> Those blog posts about HN trends and stats remind me a bit of stuff about SEO. Lots of tricks and hacks, but essentially it boils down to relevant content.

So yeah, you can probably gain a bit of an edge by posting at a certain time of day, or using specific keyword etc. but nothing beats an interesting post or a great comment.

<comment><USER19> Outside of engineering responses I've noticed "progressive" (regressive left) comments never get down voted.

Basically take anything Randy Marsh would say from latest season of South Park and you'll get up voted. No matter how ridiculous it sounds. Do the same with Cartman and something about minorities and you'll be (rightly so) down voted. There is no balance.

I'm slightly facetious ;)

<comment><USER20> I downvoted you. Because I often get downvoted for left leaning posts...

<comment><USER19> There is nothing pro working class about the shit portrayed in South Park.

<comment><USER20> And now I upvoted this comment just because. I guess my point is that voting on HN seems largely random to me.

</comment></comment></comment></comment></comment><comment><USER21> Means that the karma system is good.

Anyone can point out what are the features that can be unlocked with more karma? I'd like to know what I'm missing.

<comment><USER22> You need a small amount of karma to get the flag button.

You need a bit more karma to be able to change the colour of the top bar.

You need a bit more karma to get the downvote button.

I'm not sure whether your average comment karma is used to place your comment on a page.

<comment><USER23> I worked really hard to get that downvote arrow, but then stopped caring much about karma and probably haven't actually downvoted anything (just like that the option is there). Now I'm off to change my banner color.

<comment><USER21> That's what I was thinking, is karma really worth the time and effort?

I understand how it helps the forum work well, but for the user doesn't seem much more than a vanity feature. Being able to flag/downvote is something I really don't care about.

<comment><USER11> > That's what I was thinking, is karma really worth the time and effort?

Score on particular posts is a signal rather than a reward, IMO, and, no, if you are expending effort _specifically_ in order to boost your karma score, its probably not worth it.

</comment></comment></comment></comment></comment><comment><USER24> Karma should be worth more in the past since there were fewer voters and fewer submissions.

<comment><USER25> If "Internet points" like karma motivates people, inflation like this is actually useful to keep people in the community active.

<comment><USER24> It is also useful in searching for the most popular posts on HN.

A post years ago on HN getting 150 to 200 points may have been the most popular (perhaps most significant) post for a while. We get posts like that daily now.

</comment></comment></comment><comment><USER26> I sometimes wonder if there are people here (as on reddit) that try to game the system to get upvotes... seems ridiculous as there's no functional purpose of accumulating upvotes here.

I assume that a lot of the top posters spend a large volume of time submitting and commentating on HN-- myself included.

</comment><comment><USER27> You're going to end up with a few more with this post

<comment><USER8> It wasn't him that submitted it.

</comment></comment><comment><USER28> According to the current leaderboard:

11\. jgrahamc 55788

In comparison:

100\. DiabloD3 18551

:<

<comment><USER8> You're working too much at your job, and not procrastinating enough. Keep on pushing!</comment></comment>


What Instagram's New Terms of Service Mean for You - <AUTHOR> http://bits.blogs.nytimes.com/2012/12/17/what-instagrams-new-terms-of-service-mean-for-you/ Instagram released an updated version of its privacy policy and terms of service, and they include lengthy stipulations on how photographs uploaded by users may be used by Instagram and its parent company, Facebook. <comment><USER2> I'm glad that I am not an Instagram user. Those changes would have made me stop using the service.</comment>


Coin – Used - <AUTHOR> https://www.ifixit.com/Store/Tools/Coin/IF145-095-1 <comment><AUTHOR> I don't know what's more surprising. That they couldn't spring for new coins? That they're charging $2.95? That as of this comment, there are only 15 left?</comment>


Facebook CEO suing hundreds over Kauai land - <AUTHOR> http://www.hawaiinewsnow.com/story/34289685/facebook-ceo-suing-hundreds-over-kauai-land <comment><USER2> Seems like a very aggressive move. Do these people even care or is he doing this to flush them out? This story deserves more than a blurb of an article.

<comment><USER3> > A contested case could potentially cost land owners more than $200,000, > though Shultz says Zuckerberg has no intention of contesting any co-owner > who can prove their interest in any of the land parcels.

Sounds like he just wants to ensure he doesn't build on any contested land.

</comment></comment><comment> awinter-py clearly he hasn't seen The Descendants

</comment><comment><USER4> He is an as*hole.</comment>


Space Force Unveils New Uniforms and Is Roundly Mocked for Camo Design - <AUTHOR> https://slate.com/news-and-politics/2020/01/space-force-unveils-uniforms-mocked-camo-design.html <comment><USER2> All those comments are little more than "haters gotta hate".

Nobody questioned why the USSF didn't model themselves after the Navy uniform and go with Service Dress Blues and Service Dress Whites.

USSF says "...working with joint partners like the @usairforce and @USArmy. Hence utilizing their uniform."

Surely they will work with the Navy too.

And the Navy works with the Air Force and Army. ( _ahem_ , right?) even with different uniforms.

I'll bet the Navy uniform is cheaper too, for even more cost savings.

And we already know the NOAA Commissioned Officer Corps and US Public Health Service Commissioned Corps use the Navy design, so it's not like that uniform is restricted to the Navy.</comment>


The Sorcerer's Apprentice Guide to Training LSTMs - <AUTHOR> https://www.niklasschmidinger.com/posts/2020-09-09-lstm-tricks/ <comment><USER2> Clarity on many issues I've had with LSTM. Makes me field that the field is becoming post-preparadigmatic.</comment>


Tell HN: AWS south america has been down for hours, only now Amazon confirms it - <AUTHOR>

It started at least 6 hours ago. I contacted Amazon various times they said everything was 'normal'.<p>If you are using cloudfront, your assets are not accessible  for south american users, no matter which region your origin is located. <comment><USER2> I've detected this around 21:45 GMT-2, and still down. Looks like the API is responding now, but still have lots of services down, including RDS and EC2.

<comment><USER3> Yep, I can confirm that.</comment></comment>


Ask HN: What would you have done, in Satoshi's shoes? - <AUTHOR>

Here's an article from the personal blog of a prominent Bitcoin journalist -- http://timothyblee.com/2014/03/06/why-satoshi-worked-so-hard-to-hide-his-identity/ -- rationalizing (and supporting) the creator's decision to remain pseudonymous.<p>What would you have done, had you been on the verge of publishing that paper in late '08? <comment><USER2> Post it on HN.</comment>


Work on Unimportant Problems (2012) - <AUTHOR> http://yosefk.com/blog/work-on-unimportant-problems.html <comment><USER2> Important problem: you have to raise lots of money, work with a huge team, become a manager, fight with government regulators, do lots of marketing.

Unimportant problem: you spend your days coding, you work alone or with a small team, you stay lean and don't worry too much about money, nobody can override your architectural decisions, the government has never heard of you, your product spreads via word-of-mouth from excited users.

<comment><USER3> If your product is able to spread by word of mouth, then I'd argue you were working on an important problem. People generally don't recommend things that are not 'important' to them in some way.

<comment><USER4> Eric Barone's success with _Stardew Valley_ won this debate. Hell, Eric won this debate by virtue. He didn't have to do _everything_ himself, but the very fact he's limited anyone else working on the game has played a huge role in every port of it continuing to sit in the top 10 for sales nearly four years on from its release.

I love Eric. Like, _love_ him. He did something unimportant, but it meant something to him. And over time, it began to mean something to other people. Harvest Moon is not a massive selling franchise, so Stardew Valley was more likely to flop on that basis alone. Then you add in that indie devs get little exposure, no advertising, none of the connections that AAA companies have access to. And then there's the fact the game wasn't broadly tested before release. Eric had weeks of major bugs to patch right after release, and the pressure of hundreds of thousands of people who'd just spent $15 on his game. But maybe, just _maybe_ , the patience and gratitude he received for his unimportant game was all the product of what he did and how he did it.

Any of the people could've said, "Just sell this to Valve. They'll fix it. You're in over your head, dude." But instead, he got a lot of, "Saves still corrupt. But make sure you get some sleep!" and a whole lot of "Can't get X to work, so I'm going to do Y." People could've abandoned the game. They didn't.

I like this idea of unimportant things. I can't be the only person thinking it's both absurd to spend time inventing a new way to keep shoes on our feet, but also thinking it's absurd we're using a piece of string still but sending billion-dollar machines to collect soil from nearby planets.

</comment></comment></comment><comment><USER5> Theres a decent point in here, but the examples given are far less convincing than the author seems to think.

> C/Unix

developed to improve global telephony (important)

> the world of businessy/officy/enterprisey software (Windows, VB, Java, C#, > ASP)

Perhaps "unimportant" to the author but most of these were aimed at multimillionaire sales contracts or major consumer sales (important). Its a categorical difference from a "small side project" (e.g. Python, Linux, etc.) of a solo author, and not really beneficial to his point.

<comment><USER6> No, C and Unix were not developed to improve global telephony.

Part of the story is that Ken Thompson wanted to play a video game. This is documented in a number of places

[https://en.wikipedia.org/wiki/Space_Travel_(video_game)](https://en.wikipedia.org/wiki/Space_Travel_\(video_game\))

 _As a part of porting the game to the PDP-7, Thompson developed his own operating system, which later formed the core of the Unix operating system._

Multics was closer to something "important", while Unix was something unimportant and a great example of the principle laid out in the article.

Also, the first application of Unix beyond Bell Labs was typesetting. They were using it to produce patent applications, saving the labor of many secretaries. It was not used for telephony.

C was co-evolved with Unix as portable language to write an OS in.

\---

edit: For some color on how Bell Labs related to the rest of the org, I recommend "The Idea Factory" by Gertner and Brian Kernighan's recent memoir on Unix.

<comment><USER5> Gotcha, that's an interesting history and the additional context definitely illustrates the authors point.

</comment></comment></comment><comment><USER7> I think this is a basic tenant of research - you can't always expect a specific outcome, sometimes you just have to explore curiosity and see what turns up.

However the contrarian in me wants to call out a counter-point:

> Working on unimportant problems can create important side-effects.

If over-applied - this logic can essentially become the tech-investor equivalent of trickle-down economics.

Who is to say that those areas that benefited from the side-effects of other work wouldn't have benefitted even more from direct investment?

<comment><USER8> FYI, the word is 'tenet', a tenant is a person who lives in a particular residence.

<comment><USER9> This sounds a bit odd, but I've found your comment strangely informative and made an account just to say so. Thank you.

</comment></comment></comment><comment><USER10> > For instance, GPU hardware was developed to run first-person shooters with > increasingly fancier graphics. Today, it powers some of the largest high- > performance computing clusters where "important" science is done.

When graphics hardware was relatively new, a better graphics card could make business applications like spreadsheets faster. It was practically a joke that people who wanted a video card to play games would rationalize their purchase by saying that they needed it for office applications.

The 'important work' surely benefited from the frivolous work that the hardware was purchased to run, but it was funded for a very long time under the guise of the important work.

<comment><USER11> I also think the GPU example is really flawed because ultimately it required other people who were working on "important" problems to execute the work of adapting GPU programming to their domains.

While "unimportant" work might lead to important developments, that only happens because other people were doing the important work, and saw the opportunity.

So at the end of the day if you still want these societal gains, you must be advocating for working on "important" problems.

</comment></comment><comment><USER12> Nice article, but I got sidetracked by this line near the beginning:

> Office software arguably solves no important problem: as Berglas > convincingly argues, office automation results not in increased > productivity, but in increased complexity of rules and regulations.

I've observed this phenomenon in my personal life, where I use automation and productivity tools to make my life more complex instead of reducing stress (especially my finances).

</comment><comment><USER13> I'm reminded of how the Inca had wheels on their toys but never put them into practical use.

I kind of believe that similar things are happening now with video game tech, GPU mostly happened due to gaming and now benefits a lot of other fields, game engines are now being used in architectural, automotive and video production pipelines. I think there is a lot more to come.

<comment><USER14> Useful to keep in mind that wheels confined to toys was due some combination of a lack of animals that are good at pulling (llamas aren't great as that) and metal use being primarily confined to decorative purposes (so durable axles unlikely) :)

</comment></comment><comment><USER15> I often take the perspective (with my loosely anti-capitalist sympathies, admittedly) that the mechanistic forces of capitalism aren't "bad", but simply aren't curious about certain things in the world. The system is just a bit incurious about some very human things, and just like an emotionally incurious person might ask less questions of a peer, so too does our dominant system act in some parts of human affairs.

I often tell friends that I enjoy working on neglected things that capitalism isn't curious about. This domain is a whole subset of reality, which has specific properties, especially in relation to network structure.

I would say that much of what's described in this post is to work on things that capitalism isn't _yet_ curious about.

While this is neat to suggest, I believe that maybe some things in the world (that are worth working on) might categorically be impossible for capitalism to become curious about -- capitalism is only eager to explore domains where value can [eventually] be skimmed by occupying a structural hole[1] (in other words, a choke point) in the social and/or information graph.

But some innovations are such that they only manifest and take form within resilient and redundant "clique"/"support" networks (in social capital theory parlance [2]). These networks by their very defintion lack a clear choke- point. To capture value there, someone must either (1) find the elusive but existing choke-points or (2) distort the whole system into produce a chokepoint. But this might be like capturing and compacting a cloud -- you force a phase transition and no longer have the thing you started with.

Anyhow, thanks for the chance to reflect :)

[1]: [https://en.wikipedia.org/wiki/Social_network#Structural_hole...](https://en.wikipedia.org/wiki/Social_network#Structural_holes) [2]: p. 408, fig 8 [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.652...](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.652.5296&rep=rep1&type=pdf)

<comment><USER16> This is an interesting hypothesis about capitalism (also seems to go against "capitalist realism" theory). Can you give a few examples of what the areas that capitalism cannot get curious about are? What would be the common characteristics?

</comment></comment><comment><USER17> They had them back then, too: [https://news.ycombinator.com/item?id=4088214](https://news.ycombinator.com/item?id=4088214)

</comment><comment><USER18> Love it!</comment>


Tribes fear that legalizing online poker would hurt casinos - <AUTHOR> http://www.sacbee.com/2012/07/28/4660376/tribes-fear-that-legalizing-online.html

<comment><USER2> No shit, it's called disruption.</comment>


Chamath Palihapitiya: Former Facebook Exec, Comments on FB Human Programming - <AUTHOR> https://www.youtube.com/watch?v=PMotykw0SIk&feature=youtu.be&t=1282 <comment><USER2> One of the best videos I've watched in a while. Chamath accurately articulated all of the negative beliefs I've held about Facebook for many years, and some more I hadn't considered.

We're seeing the effects of this already. Never before has society been so connected for the sharing of information/data, whilst simultaneously disconnected spiritually/politically etc.

Kids hooked on social media are growing up anxious, depressed and totally overwhelmed.

None of this will end well.

</comment><comment><USER3> amen he hits all my points.</comment>


Show HN: Learn Algorithms by Solving Challenges - <AUTHOR>

I think people can learn Algorithms by solving programming challenges, so I created a (beginner) tutorial for learning Recursion:
http://www.learneroo.com/modules/71/nodes/398
I also made tutorials on Trees & Graphs and Sorting:
http://www.learneroo.com/modules/32/nodes/227 http://www.learneroo.com/modules/4/nodes/15
I'm interested in hearing feedback on this approach. <comment><AUTHOR> Clickable links:

\- Recursion: [http://www.learneroo.com/modules/71/nodes/398](http://www.learneroo.com/modules/71/nodes/398)

\- Trees & Graphs: [http://www.learneroo.com/modules/32/nodes/227](http://www.learneroo.com/modules/32/nodes/227)

\- Sorting: [http://www.learneroo.com/modules/4/nodes/15](http://www.learneroo.com/modules/4/nodes/15)</comment>


Hello, Printer (now with instructions to build your own) - <AUTHOR> http://gofreerange.com/hello-printer

<comment><USER2> Instructions to build your own are at [https://github.com/freerange/printer/wiki/Making-your-own- pr...](https://github.com/freerange/printer/wiki/Making-your-own-printer) along with a load more information about the distributed architecture of the system. It's very easy to build a content service for yourself, and anyone else with a connected printer!

</comment><comment><USER3> This looks like a fun project and the thermal paper is nice and cheap. Sent over a drawing this morning!

<comment><USER2> What did you draw? Let me know and I'll find it and send you a picture :)

<comment><USER3> This guy! Haha, pretty cool.

<http://i.imgur.com/0g2Sl.jpg></comment></comment></comment>


Indian looking for a job in USA (non IT/Software) - <AUTHOR>

Hi, I'm from India. I've been following Ycombinator for aound 2 yrs and I'm glad to say that it's one of the best non-ad based site for like minded peoples.
Here comes the tough part, for around 6 yrs I've been working in a company which works for US & UK based clients (Recruiters), we normally do backoffice work for them, this process is called Rrecruitment Process Outsourcing. For quite some time I'm planning to move to USA for jobs. The thing is I'm not an IT guy and we still work on XP with P4 processor, I don't hold any degree in Software Engineering or any Computer Networking.
My LinkedIn profile - http://in.linkedin.com/pub/gordon-freeman/32/a92/665
The only advantage I believe I had is that I'm well versed with their culture, work ethics and understand georgraphically much better then a common American citizen. :)
I want to know what are the options for me, is there even a possibility that I can get a work over there (considering my job profile)? if yes then what/which steps should I follow if not then what should I do to get the oppurtunities.
The name which is mentioned in my LinkedIn profile is pseudo name.
Thanks <comment><USER2> Green card lottery Marriage

Though target American companies that are trying to break into the Indian market and leverage your skill at knowing both languages. Though the lack of a higher education works against you, look at getting a degree, whatever is easiest for yourself.</comment>