Show HN: Picnic – Using synced filesystems for realtime collaboration in Sketch - <AUTHOR> http://picnic.design/ <comment><USER2> TL:DR - this is a plugin that lets users collaborate on a native OSX design app called Sketch by reading/writing files on any synced filesystem (google drive, dropbox, sync, etc.).

<comment><AUTHOR> It's essentially google-docs style collaboration (multiple users in a single doc), but doesn't require a dedicated server and has to get around using all the diff/match/patch magic you can apply when working mainly with text (since Sketch uses lots of binary files).

What's particularly cool is making an existing app collaborative by simply creating a plugin and leveraging realtime syncing services. Curious how many other apps could use this same approach. :)</comment></comment>


Tesla board to meet about going private, may ask Musk to recuse himself - <AUTHOR> https://www.cnbc.com/2018/08/09/tesla-board-tells-elon-musk-to-recuse-himself-prepares-to-review-take.html <comment><USER2> Holy shit. If the following qoute is to be believed, it's almost certainly the Saudis backing it since I don't know who else has that kind of money and also considering the Saudis hit the 5% investment mark which requires you to announce it at the perfect moment. Shit, with tsla dropping back down now and elon being quit, i think it helps the case more that it is them because I would want them to have the full opportunity to buy as much stock now while it is below 420$ before the buyout is confirmed.

"Musk previously talked with Saudi Arabia's sovereign wealth fund about a take-private deal, said one of the people. Saudi's Public Investment Fund bought a 3 percent to 5 percent stake in the electric car maker, The Financial Times reported earlier this week. It isn't yet known whether Saudi's Public Investment Fund has agreed to commit money to the transaction."

<comment><USER3> Ofcourse its the Saudi's. Why? because Tesla can make their oil worthless. Strange times indeed.

<comment><USER4> > because Tesla can make their oil worthless.

No, it can't. Even if 100% of cars and trucks were electric, Saudi crude wouldn't be worthless.

<comment><USER5> Instead of it being a main fuel source, would only be useful as lubricants, and plastic compounds until hemp is allowed to become popular for manufacturing again.

<comment><USER4> No, even if 100% of cars and trucks were electrified, light sweet crude would still be the feedstock for fuel for aircraft, ships, boats, trains, small engines (gas-powered tools, etc.), portable generators, and so on.

<comment><USER6> And that would be devastating for countries who are as reliant on oil as Saudi Arabia.

</comment></comment></comment></comment></comment></comment><comment><USER7> The reason why I don't believe they need a 70 billion dollar deal, is that Elon doesn't plan on buying himself out! And if they take the same structure as SpaceX, I would expect at least half of current shareholders to stay in the company, as well as most employees. That would then require 20-30 billion, on the high end. Far more feasible and a great strategy, really. Everyone's that's long stays, everyone that's medium to short term gets a nice bonus with the 420 payday, Every short dies, if everything goes as planned.

</comment><comment><USER8> Can anyone explain to me how if it's true that the Saudis are backing the buy out it would not be a case of insider trading? The way I understand it the Saudis announced they bought a 5% stack the morning that musk announced that he plans to take the company private (presumably with Saudi money) so wouldn't the Saudi's 5% stake have been purchased with the "inside information" that a going "private" announcement was imminent?</comment>


So you want to learn Python? - <AUTHOR> http://neopythonic.blogspot.com/2009/05/so-you-want-to-learn-python.html

<comment><USER2> I'm not going to argue with the notion that Knuth is "the source" when it comes to learning Computer Science, but his views on SICP are a bit idiosyncratic, don't you think?

 _So, how do you learn about Computer Science? Some would no doubt recommend "Structure and Interpretation of Computer Programs" by Abelson and Sussman here. (Someone sent me review copy of that book too.) But really, SICP (as it is often referred to) has its own agenda: convincing the reader that the most important thing computers can do is interpreting computer programs. This agenda has arguably caused the proliferation of Scheme implementations and indoctrinated many young minds with certain ideas about how to design and implement programming languages. But personally, I recommend you go straight to the source. After all these years, there is still no substitute for Knuth._

<comment><USER3> "but his views on SICP are a bit idiosyncratic, don't you think?"

I'll say!

I can't believe he wrote this.

"SICP (as it is often referred to) has its own agenda: convincing the reader that the most important thing computers can do is interpreting computer programs. This agenda has arguably caused the proliferation of Scheme implementations and indoctrinated many young minds with certain ideas about how to design and implement programming languages."

"indoctrinate" and "agenda" sound very harsh to me. I've read and worked through SICP and never felt it was an "indoctrination" attempt. Imagine this were a comment on HN - such a pathetic claim would be downvoted to oblivion. Just shows you can be very bright and still have blind spots.

"But personally, I recommend you go straight to the source. After all these years, there is still no substitute for Knuth"

I see TAOCP and SICP as complementary books not substitutes. I fail to see how one can be substituted for the other as a "learn to program" choice.</comment></comment>


Include-what-you-use: Clang tool to analyze includes in C and C++ source files - <AUTHOR> http://include-what-you-use.org/ <comment><USER2> I would love if imperfect #includes (what I understand this tool is supposed to point out) simply became a compile warning and part of the toolchain. I would love such a feature and would use it a lot.

However wrt this project I just looked at the "Instructions for Users" and it tells me how to build it and that I need to observe this and that and a lot of other things for it not to go wrong. Sorry, I just don't have the time for that. Why not just provide binaries for the most important platforms?

<comment><USER3> [http://include-what-you-use.org/downloads/](http://include-what-you- use.org/downloads/)

</comment></comment><comment><USER4> I'm trying to get into refactoring (and even semantic analysis, and code- generation) for large C++ codebases using libclang, libtool, and the ilk.

Any guides to get started, and/or best practices?

Does it increase productivity by order of magnitude? (I'd like to think so. I think it's madness not to use any AST tool when working on large codebases).

Also I'm assuming "white-box" C/C++ tools like libclang/libtooling are much more powerful than black-box ones (like eclipse CDT), because of extensibility/programmability. Any comments, experiences?

what I'm trying to say is that a non-IDE but programmable editor (vim/emacs) combined with programmable libclang/libtooling, would trump a prepackaged IDE (like Visual Studio, Eclipse+CDT) by a wide margin. (of course there would be quite a bit of programming involved though).

<comment><USER5> I think you'll enjoy this talk: CppCon 2015: Atila Neves "Emacs as a C++ IDE" \- [https://m.youtube.com/watch?v=5FQwQ0QWBTU](https://m.youtube.com/watch?v=5FQwQ0QWBTU)

<comment><USER6> The main feature that I miss from CLion is the ability to refactor. In CLion you can rename a class, and all of its usages, declarations, etc. will be renamed.

The most useful thing CLion can do is change the signature of a function, and its corresponding implementation and header declarations will be changed. So, you can rename a parameter and its declaration and implementation will be renamed for you, or you can delete a parameter, or change the type of a parameter, and CLion will change all its usages/definitions/declarations for you. All of this effects across all files in your project, so if you're in a .cpp file and you change the function signature, its declaration in the corresponding .h file will change as well.

(I believe you can do all of this in Eclipse as well)

Sadly I have yet to see a vim/emacs configuration that gets anywhere near the level of Eclipse/CLion.

<comment><USER7> >and all of its usages, declarations, etc. will be renamed.

Along with header include statements in any file that referenced the class - so say I refactored class Foo in include/mylib/foo.hpp and it's included in src/mylib/foo.cpp as <mylib/foo.hpp> \- CLion happily "refactors" that to #include "foo.hpp" \- spent the same ammount of time fixing this stuff as I would manually renaming use cases...

</comment></comment></comment></comment><comment><USER8> I've been using _deheader_ ([http://www.catb.org/esr/deheader/](http://www.catb.org/esr/deheader/)) for this.

It detects unnecessary inclusions and also warns about missing headers required for cross-platform compatibility.

<comment><USER9> I wrote a tool to do this in 10 minutes just several days ago. It iterates over a file, and removes one #include at a time (while keeping all the other headers in place), and each time builds a file. For any successful build, it reports that header.

I used this to prune unnecessary includes throughout the TXR project.

There are some obvious false positives, like includes wrapped in #if/#ifdef and also certain system headers which look unnecessary on one system, but are actually required on others (due to the mess that is called POSIX).

After I applied some of the header removals, I pushed the changes to git and went through all the supported platforms to validate the changes. Almost every platform had some problem which resulted in some header having to be put back: MinGW, Cygwin, Solaris, Mac OS X. For instance, Mac OS is a stickler for needing <signal.h> to declare the kill() function. On other platforms, it also shows up elsewhere, perhaps unistd. On glibc, you get va_list if you include <stdio.h>. Some platforms guard against this; they use some internal typedef name instead of va_list for vfprintf, so you must include <stdarg.h> for va_list. Various problems of this type. So just because a tool tells you, "hey this compiles without <stdarg.h> just fine", that of course means "well, on this system".

       #!/usr/local/bin/txr
       @(next :args)
       @file.c
       @(next `@file.c`)
       @(collect)
       @  (some)
       @lines
       @  (and)
       @    (line linenum)
       #include @header
       @  (end)
       @(end)
       @(require (boundp 'linenum))
       @(do (rename-path `@file.c` `@file.c.bak`))
       @(try)
       @  (do (each ((rem-line linenum)
                     (rem-hdr header))
                (with-stream (s (open-file `@file.c` "w"))
                  (tprint (partition* lines (pred rem-line)) s))
                (ignerr (remove-path `firstname.lastname@example.com`))
                (when (zerop (sh `make firstname.lastname@example.com > /dev/null 2>&1`))
                  (put-line `@file.c:@{rem-line}: can remove @{rem-hdr}`))))
       @(finally)
       @  (do (rename-path `@file.c.bak` `@file.c`))
       @(end)

The output is in a form that looks like compiler diagnostics. I can stick it in errors.err and run "vim -q".

This simple tool works in conjunction with the project rule that that headers don't include other headers. The .c files include everything they need in the right order. But the inclusions are added by hand by copy and paste, which can pull in something that isn't actually needed.

You have to iterate the tool. If you remove some header which isn't needed, a second pass can then determine that yet another header isn't needed, because it was only needed by that which was just removed. The iteration isn't worth building into the code.

</comment></comment><comment><USER10> Personally I don't like this. Often enough there's includes in headers, which are an implementation detail for the functionality in the originally included header. Iwyu will just include that, increasing coupling between components.

<comment><USER11> I don't get it, can you give an example?

<comment><USER12> Big libraries like Boost and OpenCV usually have meta-headers for features and components that just include all the other headers for that particular part you want to use.

(e.g. [https://github.com/Itseez/opencv/blob/master/include/opencv2...](https://github.com/Itseez/opencv/blob/master/include/opencv2/opencv.hpp))

A tool like this would see right through that and walk the tree all the way to the final leaf headers that actually implement the parts you use. This not only means one single include will balloon to many smaller ones, but when the library moves things around internally your code will break.

(Unclear if this is what this tool in particular will do, but I've certainly seen this behavior with Clion for example when it recommends what header to include.)

</comment></comment></comment><comment><USER13> I have made a similar tool that is a lot more hacky, but does not require compilation or preprocessing of the source (and is this not reliant on any single compiler): [https://github.com/orlp/iwyu](https://github.com/orlp/iwyu).

It also does nothing smart, it is user trained. Every symbol prefixed with a namespace you are interested in will be presented to you, and you must tell it where to find the symbol. Any other symbols will be ignored.

</comment><comment><USER14> In related news, Stroustrup's and dos Reis's tool ( [http://stroustrup.com/gdr-bs-macis09.pdf](http://stroustrup.com/gdr-bs- macis09.pdf) , [http://stroustrup.com/sofsem10.pdf](http://stroustrup.com/sofsem10.pdf) , [http://stroustrup.com/icsm-2012-demacro.pdf](http://stroustrup.com/icsm-2012-demacro.pdf) ) finally showed up on Github ( [https://github.com/GabrielDosReis/ipr](https://github.com/GabrielDosReis/ipr) ).

</comment><comment><USER15> Actually it would be nice to see that functionality as a compiler warnings.

<comment><USER16> With CMake it is possible to run the tool as part of the normal build process [1]. Not as nice as first class compiler support, but still quite helpful as part of day to day development, I find.

[1] [http://stackoverflow.com/questions/30951492/how-to-use- the-t...](http://stackoverflow.com/questions/30951492/how-to-use-the-tool- include-what-you-use-together-with-cmake-to-detect-unused-he)

</comment></comment><comment><USER17> I find that a strict coding style can make this easier to implement, and more likely to restrict warnings to the code that you directly control.

For example, I used a module prefix consistently in my code so that any occurrence of an "Xyz_" prefix in a file would pretty much _guarantee_ that "Xyz.h" is required to compile. I also put all local #include references in the same part of the file under a predictable comment header. That way, I didn't need a C++ parser; I just needed to know where to start searching for the list of headers, infer prefixes from their names, and complain about prefixes that were not found in the rest of the file. This has worked surprisingly well, and I can tune the script to skip modules for any reason.

This is also important for the reverse case. I don't really _need_ an IDE or ctags to figure out what file is needed for a #include in most cases because I have the name of the function/type/constant/etc. to guide me. Similarly, I know exactly what file to open in my editor without using magic tricks. (Although, code completion and jump-to-definition are still quite helpful, especially for things like OS calls that may follow no particular convention.)

</comment><comment><USER18> Hmm, I happen to know a colorful-logo company that has a internal unrecommended tool that has the same name and does the same thing :) Are they making this public?

<comment><USER19> I'm pretty sure we open sourced it in 2011 actually ....

(I don't think this version has been kept up to date with the internal one, but i could be wrong)

</comment></comment><comment><USER20> The first sentence reads: "'Include what you use' means this: for every symbol (type, function variable, or macro) that you use in foo.cc, either foo.cc or foo.h should #include a .h file that exports the declaration of that symbol."

For clarity and correctness, I think it should be changed to: "'Include what you use' means this: for every symbol (type, function variable, or macro) that you use in foo.cc _that is not declared in foo.cc_ , either foo.cc or foo.h should #include a .h file that exports the declaration of that symbol."

Not having that phrase tripped me up for a few minutes. I guess everyone else thinks it's implied, but for some reason that wasn't clear to me until I read through more of their documentation.

</comment><comment><USER9> Ther is also: "don't include anything except for one header, and let a tool manage what is in it based on analyzing your code":

Makeheaders:

[http://www.hwaci.com/sw/mkhdr/](http://www.hwaci.com/sw/mkhdr/)

</comment><comment><USER21> I've used this for years. It takes a bit of work to get it working well on a codebase, but I find it worthwhile.

Refactoring often involves moving functionality between header files, which can mean fixing up the includes in a large number of other files. IWYU makes this a lot easier. IWYU does require the code to build before it works, but this can usually be easily gotten after a refactor by making one header file temporarily include the other.

I have, a couple times, modified templated code so it wouldn't confuse IWYU, as that is easier than maintaining pragmas correcting IWYU in the files that call the templated code.

</comment><comment><USER22> This tool doesn't work well. [https://issues.apache.org/jira/browse/MESOS-1583](https://issues.apache.org/jira/browse/MESOS-1583)

</comment><comment><USER23> How about a tool to "exclude what you don't use"?

I have several personal hacks for doing this I have written over the years but I've yet to find anyone else who tried to automate it.

For example, one task is to determine the functions in a library that are not actually used in your program and exclude those from linking, instead of blindly linking libraries full of unused functions (that sometimes cause name conflicts).

</comment><comment><USER24> The LibreOffice project has been using this a lot to refactor a large, ancient codebase. They've also developed a lot of Clang plugins, which can be found here: [http://cgit.freedesktop.org/libreoffice/core/tree/compilerpl...](http://cgit.freedesktop.org/libreoffice/core/tree/compilerplugins)

</comment><comment><USER25> This seems like an awesome tool. I was thinking about going trough a code base for an hobby project a while ago. But this tool could make it a much easier task. I haven't tried following the instructions yet. But it seems to be correct. Good work!

</comment><comment><USER26> yay C/C++ tooling: [http://nickdesaulniers.github.io/blog/2015/07/23/additional-...](http://nickdesaulniers.github.io/blog/2015/07/23/additional- c-slash-c-plus-plus-tooling/)</comment>


Intel's "cripple AMD" function - <AUTHOR> http://www.agner.org/optimize/blog/read.php?i=49 <comment><USER2> I was an intern for AMD a few years ago (these are my views and not AMD's). I was pretty skeptical about AMD's antitrust claims against Intel until I went to work there. I'm as free market as they day is long, but there's a whole untold story of the evil things that go on in the back meeting rooms, even outside of sales, where most of the public lawsuit claims are/were.

The thing to remember is that AMD is a small fraction of the size of Intel, and they have to cover the same market segments. If they try to specialize (say, servers, or notebooks), Intel will just sell that segment at a loss. AMD has to cover everything with only a fraction of the people to stay competitive, and it's really hard.

Even while I was there, we had what I suspect (but have no proof) were incidents of people leaking product plans, roadmaps, etc. (but no IP) to Intel. It's sad, really.

<comment><USER3> "Even while I was there, we had what I suspect (but have no proof) were incidents of people leaking product plans, roadmaps, etc. (but no IP) to Intel."

I can't imagine Steve Jobs allowing this to happen at Apple. They have definitely caught people leaking things, and the consequences were swift and unpleasant for the leaker. Why can't AMD catch these people? Is there something preventing them from implementing the same kinds of measures to catch leakers as Apple?

(Using Apple just as an example, of course. I'm sure there are other companies who find leakers and make an example of them through the legal system.)

<comment><USER2> There was one guy who was strung up as a leaker ten years ago. Don't remember his name, but it was a big deal.

AMD's culture is just different than Apple's. For one, there are no "secret teams" like iPhone, iTablet, etc. (well, at least none that I knew about). For another, developers have real autonomy to make business decisions, something that would never happen at Apple. For instance, I, a lowly intern, redeployed software to the production line during an emergency. If something went wrong, chips would actually stop rolling out of the factory. I would imagine normal (non-senior) Apple engineers don't have that kind of autonomy.

The other major difference, which perhaps you caught above, is that AMD actually manufactures their own stuff. So, not only are there US engineers, but engineers overseas in the plants that AMD owns, engineers in Dresden, etc. Not to say that foreign engineers are somehow bad, but it is a lot harder to control leaks when you have engineers working literally 24/7 all around the world. And at the scale that you're making your own stuff, there are just more people than there are at Apple, and things are way harder to control. It's like herding cats.

<comment><USER4> > For instance, I, a lowly intern, redeployed software to the

> production line during an emergency. If something went

> wrong, chips would actually stop rolling out of the factory.

While I'm all for letting engineers react to things progressively, that you were in position where a screw up could have shut down a fab as an intern is nothing short of terrifying to me.

<comment><USER2> > That you were in position where a screw up could have shut down a fab as an > intern is nothing short of terrifying to me.

To me, the converse is a lot scarier: what if I, feeling no personal responsibility for yield, wasn't there after-hours looking for bugs in the first place? Or what if I did find the critical bug, but had to wait weeks for forms before it was pushed through? Or was blocked by office politics?

There's nothing more disheartening as having a fix for something serious that you can't push through. I've worked at companies like that: taking away the power to break something means taking away the power to make it better.

Not to say that I somehow dislike code reviews or generally fly by the seat of my pants: the situation really was a real emergency. I can't talk specifics, but the bug had already cost more than the damage it would do to if I broke something.

</comment></comment></comment></comment></comment><comment><USER5> When using IPP, I had to rewrite the CPU detector, even for new Intel chips as they came out. This code should be better...really it should just benchmark all the options and catch processor exceptions to pick a supported path.

Instead, the idea is to do a static dispatch for 'known' chips, which is really bad. When the Core2Duo came out, the version of IPP we used reverted to basic MMX code instead of SSE2, about 2.5x slower. This is just bad code, and it's bad on Intel chips, not just AMD.

Also there is the "optimized for benchmarking" piece. It's not always good to use all your cores for one job, for instance, but a lot of these libraries make the assumption that your CPU has nothing else to do.

</comment><comment><USER6> Isn't this the textbook reason for using - and contributing to - open-source compilers and libraries?

<comment><USER7> and gcc is not that bad after all. I uses openmp to parallel my program on core i7 860 cpu which should support 8-threads. But using icc as compiler, it will only utilize 7 cores, and it does affect performance (about 10% slower (wall time) than gcc which uses 8 cores). I suspect that it has something to do with the dynamic linked openmp library for icc.

<comment><USER8> Really? I find Intel's compiler to outperform GCC on pretty much all of the numerical work I do. I build with "-O3 -xHost" and make use of OpenMP.

Dynamic linking of the OpenMP library is almost certainly _not_ the cause of the slowness you're observing. If you really want to force the Intel OpenMP runtime to use all 8 cores:

      export OMP_DYNAMIC=false
      export OMP_NUM_THREADS=8
      export KMP_LIBRARY=throughput

      # "KMP_BLOCKTIME" is how long an idle worker thread
      # should enter a blocking wait for more work before
      # sleeping, in milliseconds. default value is 200ms
      export KMP_BLOCKTIME=1000

      # following are needed if you use Intel MKL
      export MKL_DYNAMIC=false
      export MKL_NUM_THREADS=8

For more info: [http://software.intel.com/sites/products/documentation/hpc/c...](http://software.intel.com/sites/products/documentation/hpc/compilerpro/en- us/cpp/lin/compiler_c/optaps/common/optaps_par_var.htm)

<comment><USER6> "I find Intel's compiler to outperform GCC on pretty much all of the numerical work I do."

It's only a question of time. I suspect that if more companies decided to pool resources around GCC (or any other free C compiler, like pcc or clang), they will pretty much bury Intel.

Intel is a chip company. The only conceivable reason for them to want to maintain a C compiler is to make a C compiler that's better than the competition on Intel processors and that sucks as much as possible on competing architectures.

Icc is not a compiler. It's a sales tool.

<comment><USER8> I fully agree. I'm looking forward to LLVM becoming fully mature; it's a great platform already, and just needs to be fleshed out with some more optimizations/analyses/etc. And with the clang front-end, we can get rid of the unmaintainable pile of crap that is GCC.

</comment></comment></comment></comment></comment><comment><USER9> Sounds like AMD should just start setting the vendor string to "GenuineIntel", then. (This is something like the "like Mozilla" in every user agent string. If dumb software is going to do dumb tests, and you need to fool the dumb test to get your interoperability.)

<comment><USER6> Better yet: make it writable.

That way the OS could change it per process/thread/context and the code would be happy.

<comment><USER10> VIA has a writable vendor string which they have used to reveal this type of shenanigans in the past.

<comment><USER6> I always liked those guys. The über-486 Centaur built was briiliant design and out-of-the-box thinking from top to bottom.

Weren't the VIAs able to trounce Xeons in some crypto stuff?

<comment><USER10> _Weren't the VIAs able to trounce Xeons in some crypto stuff?_

Yes, since they had crypto instructions and nobody else did. Now I would expect Westmere to be faster.

</comment></comment></comment></comment></comment><comment><USER10> Has anyone tried the Sun Studio compilers? They're free and supposed to be as good as Intel, but I've seen virtually no discussion of them.

<comment><USER11> For x86, they fall behind a bit. For x64, they're faster than ICC in general. Definitely worth a look if you don't mind going to OSol.

<comment><USER12> My experience on x64 has been that Sun is usually competitive with GCC/ICC, but not clearly better. Sun's C99 compiler does really atrocious things with SSE intrinsics, strange since their C++ compiler handles intrinsics almost as well as GCC/ICC. Note that they also work fine on Linux.

</comment></comment></comment><comment><USER13> Not only should they fix it, they should open source the code, so AMD can contribute.

Intel often makes noises about open source, so they should put their money where there mouth is.

<comment><USER14> Compiler discussion to one side for a minute...

Intel does more than just make noises about open source. Their wifi and graphics chip set support has been excellent over the years. Prior to the recent changes at ATI they were pretty much the only company doing that.

<comment><USER13> Agreed and it's good that they do that since I use their graphics and Wifi drivers on my Ubuntu Laptop.

My point was if they are truly committed to open source they would do this too, they are after all a hardware company and should compete by making the best hardware.

</comment></comment></comment><comment><USER15> I do not know much about processor benchmarking, but is it not a little weird that the bench markers use software that is not independent of the hardware they are testing? It seems like they are asking to be manipulated: why do they do this?

<comment><USER10> They think the software is processor-independent but it's really Intel-biased; that's the problem.

</comment></comment><comment><USER16> Sensational headline: this article is only about the Intel C Compiler, which as far as I can see, is only used for benchmarketing and research purposes.

<comment><USER17> "Only" benchmarketing? If any published benchmarks are affected by this misfeature, it's pitchforks and torches for Intel.

<comment><USER16> Does it really come as news to anyone that if Intel wants to show their CPU in best light, they'll use their own compiler?

Caveat emptor.

The bulk of the x86 world uses Microsoft C++ or GCC - end of story.

<comment><USER18> I think the parent was talking more about third parties doing benchmarks. If someone (not Intel) uses benchmarking software compiled with ICC, it might report erroneously bad results on an AMD system.

<comment><USER17> Yup, that was my point. Also, 'caveat emptor' has limits - Intel should at least state that their compiler produces suboptimal code for their competitors' CPUs.

</comment></comment></comment></comment></comment><comment><USER19> Bottom line: it's a business decision. Code generated by the Intel compiler "works" on AMD chips, although it may not be optimal. For Intel to support the optimal codepaths on AMD chips would require a substantial amount of research. I don't think they're intentionally crippling AMD chips; just declining to invest the effort to support them optimally.

<comment><USER20> That isn't exactly how it works.

The proper way to do it:

        if( CPUIDbits & SSE1_CAPABLE ) {enable SSE1}
        if( CPUIDbits & SSE2_CAPABLE ) {enable SSE2}
        [etc]

The even better way to do it:

        if( CPUIDbits & SSE1_CAPABLE ) {enable SSE1}
        if( CPUIDbits & SSE2_CAPABLE ) {enable SSE2}
        if( CPU is Athlon 64 ) {disable some SSE2 functions}
        if( CPU is Pentium-M ) {disable all SSE2 functions}
        [etc]

Intel's way of doing it:

        if( CPU is Pentium 3 ) {enable SSE1}
        if( CPU is Pentium 4 ) {enable SSE1/SSE2}
        if( CPU is Core 2 ) {enable SSE1/SSE2/SSE3/SSSE3}
        [etc]

Practically all sane applications do things the first way; a couple do things the second way. Anyone doing things the third way is just asking for trouble both in terms of future compatibility and resilience to unexpected situations. For example, some VMs disable certain instruction sets, which would result in SIGILLs when using the last method.

<comment><USER18> If you read the article, it looks like Intel's CPU-type dispatcher actually does it the second way (sorta; it appears to only check Intel CPU family IDs), but at the bottom of that list there's a big "if(CPU string is not "GenuineIntel") { disable everything and use crappy fallback code path }".

</comment></comment></comment><comment><USER21> This doesn't really make any sense. All you would need to do is compile the code on an Intel machine to get fast speed and then you can run it on an AMD machine. It shouldn't really cause any problems as long as developers build on genuine Intel machines. Of course that it irritating, but it shouldn't cause any slowdown on other machines.

<comment><USER22> I think the compiler generates code which checks processor type at runtime, not compile time. If the compiled code is running on an AMD processor, the "safe" version of the compiled code is chosen automagically.

<comment><USER21> Wouldn't that make the code twice as large?

<comment><USER22> Perhaps, but size doesn't really affect runtime performance that much, especially if most codepaths are never execute -- no processor cache churn because the unused paths are never executed.

I don't really know anything about this compiler, so I'm certainly speculating. My assumption is that one writes some function foo() and the compiler prepends a dispatcher in front which forks (code paths, not processes) to one of N optimized but functionally equivalent codepaths based on the actual processor upon which the code runs.

<comment><USER23> Size does affect performance because of the cache.

If the forks are inline, and the cache works in blocks, then you are wasting cache space for code that never runs.

But considering it's intel I'm sure they thought of that.

<comment><USER24> I suspect it patches a jumptable at initialisation time based on CPU type, and all the code used by one type of CPU is bunched close together. The unused code probably isn't even paged into physical RAM.</comment></comment></comment></comment></comment></comment>


Ask HN: post your productivity tips/hacks in 160 characters or less - <AUTHOR>

I only allow myself to code between 9-11PM each night. It's quiet & most nights I'm chomping at the bit to get started.  Productivity has gone through the roof. <comment><USER2> Do the hardest thing on your TODO list first thing in the morning. Later in the day you might not have enough energy to take it on.</comment>


Forth on the Commodore 64 - <AUTHOR> http://code.google.com/p/durexforth/

<comment><USER2> I got started with programming on a commodore 64 and after not realizing there was an easier way to do it than machine language, moved on to using a c-64 fig forth implementation for writing video games called White Lightning ( <http://www.crashonline.org.uk/08/whitelig.htm> ).

Ah, nostalgia.

edit: that link is to a non c-64 version. couldn't find anything on the c-64 version in my lazy search.

<comment><USER3> I have really good memories of using Forth on 8-bit computers (I played a lot with GraFORTH on my Apple II clone). It may have undone some of the damage learning BASIC did...

<comment><USER2> Everyone is always amazed that I only know three bits of BASIC syntax... does it really do damage?

<comment><USER3> I, personally, don't think so. I think it's a lot like a low entry barrier: before BASIC, it was hard to program those 8-bit computers. After BASIC, a lot of people who have no particular inclination or ability towards programming computers called themselves programmers and inflicted their creations upon innocent users.</comment></comment></comment></comment>


To Be More Creative, Cheer Up - <AUTHOR> http://nautil.us/issue/20/creativity/to-be-more-creative-cheer-up-rd <comment><USER2> I have to say, I can't help thinking the author doesn't know anything about Hemingway or Picasso. Both are very famous examples of how _depression_ can be creative. You can name many others like Virginia Woolf or Emily Dickenson.

I think both depression and exuberance can be creative, albeit creative in different ways. Exuberance is very good for, as the author notes, divergent thinking. You simply have the ability to come up with so many positive possibilities. Depression on the other hand is very converging. You just know _for sure_ that something bad is going to happen.

EDIT: I should add that Hemingway at least was likely bipolar. So it may very well be that he's a good example of how both depression _and_ exuberance can be creative.

<comment><USER3> > Both are very famous examples of how depression can be creative.

That probably had more to do with their substance abuse.

<comment><USER2> We don't really know the full relationship between substance abuse and mental illness. There's a very well-known correlation between the two, but it's questionable whether the substance abuse causes mental illness or the mental illness causes the substance abuse. It's likely some combination of the two: the substance abuse aids the mental illness and the mental illness aids the substance abuse.

<comment><USER4> Or, you know, actual sensitivity and sadness for something causes both depression and substance abuse.

It's not like don't have things to be sad and depressed about, creative people doubly so.

Thinking it's all just chemicals gone bad in the brain is the fad of the day, like electroshock treatment for gays and ADD over-perscription in previous decades.

People are always conflating circumstantial pepression with "mental illness" but it's not the same.

Or, even worse, a lot of persons with circumstantial pepression prefer to think they have a "chemical imbalance" to get people to think they are absolved of any influence in the matter. Which is the wrong reason, because with circumstantial depression you also don't have much, if any, influence in the matter. It's not like you can reverse the loss of a love or failed ambitions, for example, and just rewire your psyche to not care about those.

(Doctors of course, eager to prescribe anything and with no time for subtle distinctions, easily assure them that they indeed have a "mental illness". There was a whole counter-culture movement in medical circles criticizing that in the '60s and '70s, with is sadly forgotten.).

<comment><USER5> Not quite forgotten: [http://www.theicarusproject.net](http://www.theicarusproject.net)

</comment></comment></comment></comment></comment><comment><USER6> I know that one isn't supposed to judge a book by its cover, but I refuse to take Kirsten Weir seriously by the title of this article alone.

"Are you depressed? Cheer up!"

"Are you in a wheelchair? Get up and walk around!"

"Struggling with money? Try _not_ being so poor!"

The title of that article makes me unreasonably angry.

<comment><USER7> It's different! Not being creative isn't the opposite of being cheery. The assumption is that the reader may not see any connection at all between happiness and creativity, and that the association might provide some insight. Though if you're like me and are only happy when you are able to create things, I can see why you would be irked.

<comment><USER6> I honestly can't tell if you're trying to troll me or not. Is there any adult alive who hasn't at one point realized that being depressed might--just MIGHT --impact one's ability to be creative?

<comment><USER4> Again with "depressed".

Not being cheery is not the same as depression.

It's a super-set that includes depression cases as a small subset.

If only depressed people were moody and grumpy... We'd all be smiling and singing all the time...

</comment></comment></comment></comment><comment><USER8> >Bilder offers up one last bit of practical advice: Just get your ideas out there—on paper, on canvas, out of your head.

This is why a lot of creative keep a "brainjuice" file full of half-cooked ideas they can later dip into. When you have some creative energy, its easy to just dump it out and then, later, when you're in a more sober and productive mood, start implementing those ideas in an effective manner. Or as writers say: write drunk, edit sober.

<comment><USER9> This is exactly how I make music. There's three distinct steps, sound creation, arrangement, and mastering. Usually I don't spend more than 15-30 minutes on any one track and sometimes as little as 5-10. But I have a huge pile of unfinished work in various stages, some I never get back to, but some I finish happily enough. My key to creative happiness is to be entertained, engaged, and moving forward.

<comment><USER10> This is how I write my essays. Out of order. I toy with ideas, play with arguments. Lots of disjointed paragraphs in a single document. Then I step back, look at them, pick out my strongest points and stitch them together into a cohesive paper (dumping quite a lot of work along the way).

<comment><USER9> > dumping quite a lot of work along the way

As if your work were... say... evolving?

</comment></comment></comment></comment><comment><USER11> Counter examples (a few):

Hemingway, Sylvia Plath, Larry David, Kafka, Schubert, Heraclitus, Beckett, Beyonce, William James, Henry James, David Foster Wallace, Winona Ryder, HP Lovecraft, Mozart, Oppenheimer, Rilke, Celine, Faulkner, Baudelaire, Newton, Nietzsche, Rachmanioff, Craig Ferguson.

One of the main thrusts of the article, that incubation of ideas often occurs during divergent thinking, does not entail that one must be in a cheerful mood (in fact, one could view many forms of depression as extended periods of divergent thinking), despite the study referenced therein, which claims "People are more likely to maintain broader attention and solve problems when they're in a positive mood." Moreover, the studies represent data on a statistical average (and probably apply largely to settings conducive to such studies, like sorting blocks, or playing Jenga in a novel way), while many historical examples of creative minds suffered prolonged periods of depression.

Finally, I wonder, how many man-hours have been wasted on clickbait?

</comment><comment><USER12> A lot of nice information in the article. I think people can be more creative than they realize if they (1) legitimize associative thinking (this is what I translate "being uninhibited" to mean) and (2) insist that they have a basic capacity for being creative. Creativity often does not come immediately when you want it, so (IMO) when it does not, you have to insist you still have the capacity rather than treat that as a failure and give up.

</comment><comment><USER13> [http://www.wired.com/2010/10/feeling-sad-makes-us-more- creat...](http://www.wired.com/2010/10/feeling-sad-makes-us-more-creative/)

Just above in the news someone posted an article about being more creative when sad. Which one is wrong?

<comment><USER14> Feeling sad can motivate you to try things to make yourself happy.

Feeling happy can motivate you to try things that make you happy.

<comment><USER13> What is the difference between yourself and you? I don't see any

</comment></comment></comment><comment><USER15> To cheer up, _fix your environment_. (And your health.)

Most of the unhappiness I've encountered has related to poor environment. Wear and tear over time brought on increasing poor health -- another significant factor.

Meantime, I had people telling me I simply needed to "adapt". Consistently, _I_ was supposed to change in order to meet _their_ goals.

It was the rare person who simply took me as I am and genuinely sought to work _with_ that to mutual advantage. Those people and occasions were some of the most productive of my life.

A consequence of all this, is that I tend to think _quite_ poorly of most prescriptive advice. When people are all busy talking at you, they're hardly ever actually listening to you.

</comment><comment><USER16> Also on Hacker News home page: "Feeling Sad Makes Us More Creative" [https://news.ycombinator.com/item?id=8915681](https://news.ycombinator.com/item?id=8915681)

Well, which is it?

<comment><USER17> Maybe: Extremes of feeling make us more creative? (just a guess, mind)

<comment><USER18> But then we also have "How boredom can boost creativity". I wouldn't say boredom is an extreme feeling.

</comment></comment></comment><comment><USER19> Decent article. Appalling title. There was essentially only one paragraph that dealt with the importance of a positive mood on creativity. The article outlined many other more important factors.

</comment><comment><USER20> In other news: (same HN page)

Feeling Sad Makes Us More Creative (wired.com) [https://news.ycombinator.com/item?id=8915681](https://news.ycombinator.com/item?id=8915681)

<comment><USER21> Also, being bored makes us more creative: [https://news.ycombinator.com/item?id=8915371](https://news.ycombinator.com/item?id=8915371)

From those results we could make one of three conclusions:

* Any sufficiently strong emotional response inspires creativity

* Different people respond to different emotional queues and the studies had samples of people biased in different directions

* It is all a load of bunkum.

</comment></comment><comment><USER22> [http://nautil.us/blog/how-meaning-withdrawal-aka-boredom- can...](http://nautil.us/blog/how-meaning-withdrawal-aka-boredom-can-boost- creativity)

[http://www.wired.com/2010/10/feeling-sad-makes-us-more- creat...](http://www.wired.com/2010/10/feeling-sad-makes-us-more-creative/)

Clearly everything boosts creativity

</comment><comment><USER23> >> After all, creativity may be the key to Homo sapiens' success.

Unlikely. Creativity in this context is only useful when it's about problem solving. Otherwise it's about art at most. And problem solving may or may not be creative. Point - problem is gone, everyone can move on.

</comment><comment><USER24> One thing the article gets right I believe is that highly creative people are annoying, almost psychotic individuals. It can't be otherwise. If they cared what other people thought as much as the rest of us do they'd self-censor their ideas.

</comment><comment><USER18> Didn't reads the article yet, but it seems ironic that the front page currently contains three articles :

"Feeling sad makes us more creative", "How boredom can boost creativity", and this one, "To be more create cheer up".

</comment><comment><USER25> This article reminds me why I don't like working in a busy office. For me, it's very hard to get into divergent thinking mode with other people around.

</comment><comment><USER26> TLDR; _drink_.

<comment><USER27> And with this added element, we got the missing link between "To Be More Creative, Cheer Up" and "Feeling Sad Makes Us More Creative".

On one hand, drinking will cheer you up. On the other hand, it will also make you feel miserable.

Add to that the fact that boredom is one of the top reasons to drink and we have a link with "How Boredom Can Boost Creativity".

To quote Bukowski: "That's the problem with drinking, I thought, as I poured myself a drink. If something bad happens you drink in an attempt to forget; if something good happens you drink in order to celebrate; and if nothing happens you drink to make something happen."</comment></comment>


Silicon Valley billionaires are 'prepping' to survive in underground bunkers - <AUTHOR> http://www.recode.net/2017/1/23/14354840/silicon-valley-billionaires-prepping-survive-underground-bunkers-new-yorker <comment><USER2> > the prepper movement among tech-made billionaires is largely inspired by > fear that artificial intelligence will one day displace so many jobs that > there will be a revolt against those behind the technology.

Something something worker ownership of the means of production something something.

Seriously though, workers should be the first to benefit from automating their own jobs out of existence. It's been over a hundred years since marxists talked about what they perceived as the inherent contradictions of a capitalist system. Automation and the struggle for a livelihood in the face of falling wages and growing profits isn't new. Technology has changed but the fundamental conflicts remain unsolved. So while we can all debate here about the effectiveness of bunkers, we're glossing over the systemic problems that necessitate the capitalist class to hide in bunkers in the first place. At least we've moved on to the point where most recognize that there could be an existential problem accelerating toward us.

One thing I'm sure of, the class of YC 2035 will have great uber-for-bunker- security apps.

</comment><comment><USER3> Ah, the illusion that one can separate oneself from you human society and survive indefinitely. We had the biosphere, we had the sovjet cold war era bunkers, and under tests- the results where always the same. Insufficiently prepared, longterm psychological effects not calculated in - the buried alive envying the dead on the surface.

[https://www.youtube.com/watch?v=frAEmhqdLFs](https://www.youtube.com/watch?v=frAEmhqdLFs)

<comment><USER4> Some of us do quite well on our own thank you. Human society is over-rated.

<comment><USER5> The man says to his peers on the global communications network.

<comment><USER4> It would be a blessing to be free of this addicting sensory-overloading electronic monkey.

<comment><USER6> Don't feed the troll, everyone.

<comment><USER4> Seriously, I grew up on a farm. I spent many days alone with my own thoughts. That's inconceivable today. But in the event of a societal meltdown there will be a demographic of survivors that won't mind the quiet. They will be over 50.

<comment><USER7> The food and water lines will spread cross the country like wild fire. The rich and prepared can have their bunkiers but unless they have military training and a militia with tight communication there's little to stop what is inevitable. Someone like me, hungry and with no empathy, a 12 gauge will show up and take what ever you have. There will be no salvation. No one will be safe. people like you think you are more prepared. You were just preparing for someone else younger and stronger to take your shit.

<comment><USER8> I'm certain these bunkers take into account people trying to break into them...

What exactly are we talking about here?

<comment><USER7> I think all this is, is the veracity of a hungry mass with nothing to lose.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> You know the wealthy could doomsday prep or they could support social/educational programs and support paying higher taxes. The sooner we realize that we are all in this together, the better.

<comment><USER10> Why give anything up when they can just live in a parallel world and not have to deal with us plebs?

<comment> xkcd-sucks Because us plebs clean the toilets and oil the robots?

</comment></comment></comment><comment><USER11> Yeah, good luck with that! The Grand Tour recently entertained the madness of prepping and survivalists:

[https://www.youtube.com/watch?v=8trdXpQ0HUE](https://www.youtube.com/watch?v=8trdXpQ0HUE)

<comment><USER12> think that might be the wrong youtube link...

<comment><USER11> Nope, that's the right link. The whole segment was about Richard Hammond prepping for the apocalypse. They didn't share the entire segment, but just the last couple of minutes where the 'impenetrable' Hamster was defeated by a single shot.

Of course it's not real, and it's a silly show, but the idea of spending a good deal of time and money beyond reasonable emergency precautions is pretty useless as well.

And that was the point.

</comment></comment></comment><comment><USER9> Domesday prepping is completely irrational.</comment>


Answers for bad questions on Stack Overflow - <AUTHOR> http://stackoverflow.com/a/17643857/1150613

<comment><USER2> [https://webcache.googleusercontent.com/search?hl=en&q=cache%...](https://webcache.googleusercontent.com/search?hl=en&q=cache%3Ahttp%3A%2F%2Fstackoverflow.com%2Fquestions%2F17643802%2Fhow- much-does-it-cost-to-produce-a-factory)

<comment><AUTHOR> Thanks for the webcached version :)

</comment></comment><comment><USER3> This SO post has been removed it seems.</comment>


How I Make A Living Using GameMaker - <AUTHOR> http://gamemakerblog.com/2013/08/27/how-i-make-a-living-using-gamemaker-part-i/ <comment><USER2> So if I can sum up: the author made some games with Game Maker, made a small profit, then started primarily making libraries for Game Maker. Now he buys GameMakerBlog.com and posts an article about how much money you can make with Game Maker and you should really use it.

<comment><USER3> I'll bite because I've seen this sentiment generally on HN. Basically, everyone knows the way to get rich in a gold rush is to sell picks and shovels rather than mine for gold. Start as an application, then become a platform.

The cynical view of how this works is: start doing something, find out you can make a little bit of money doing it, decide you can make _a lot of money_ by essentially selling services around doing that something for other people that do that something already or might be interested in getting into it, and then make that your business.

My question is: is this really all that bad in and of itself? Is someone selling picks and shovels in a gold rush necessarily selling something people shouldn't buy? Are they inherently less trustworthy because they get into the picks and shovels business?

The argument is often made that you can get the same information for free elsewhere. Well, that's what I always say about college and why I think it's a horrible investment, but obviously people disagree with me there. But why is college more legitimate? Because it's been around longer? As far as I can tell, colleges are selling picks and shovels in a gold rush that ended 20 years ago. At least the Game Maker racket is just getting started :-)

The best argument of course is that the vendor has the incentive to hype the prospects of their industry, often an industry in which success is faaaaar from assured (like every industry). But I don't know, how does this rule apply here any more than it applies to any other industry where someone is trying to get people excited about the prospects of a future technology/industry/event/whatever?

And for the record, I have no affiliation with the OP, I just don't think it's particularly fair that just because you are offering information products around some potentially dubious business opportunity that it's a valid criticism to essentially say "oh, he's selling picks and shovels, so he must be a douche" (I'm paraphrasing of course...)

Other side anyone?

<comment><USER2> > _I just don 't think it's particularly fair that just because you are > offering information products around some potentially dubious business > opportunity that it's a valid criticism to essentially say "oh, he's selling > picks and shovels, so he must be a douche" (I'm paraphrasing of course...)_

No, I said nothing like that.

I often skim the top few comments of an article before I read the article itself, to see if the article is worth my time. I appreciate seeing the kinds of comments I made, because it saves me time when others do it. Judging by the number of up votes I received, I'm not alone on this.

I suspect these articles are often up-voted based on the title alone, since they generally have no real content worth discussing (sometimes interesting discussion does arise despite this).

The long and short of it is that as long as there is no down vote button for articles, you will continue to see skeptical comments from HN users.

</comment></comment></comment><comment><USER4> I suggest people make a living with OTHER tools than GameMaker.

GameMaker although was a good tool, has a horrible company handling it, they put some terrible DRM there (there are lots of horror stories on internet if you look around), their support suck, and they are outright hostile to people dare to try to contract them directly to complain about something.

Also I learned this the hard way (I was warned, but decided to try, and got burned very hard...)

<comment><USER5> I don't believe that to be the case, at least not any more. The lead devs are quite active on Twitter, they have a bug reporting system all users can take advantage of, the documentations is growing, and the DRM you speak of is no longer in place and they admitted it was a bad decision (after the skulls incident).

It's becoming a very solid toolset that can produce games for most platforms and does not require a plug-in for web games. The recent roll out of v1.2 has also made it much faster.

Mike Dailly, head of development at YoYo recently did an AMA on Reddit. There's some good information in there on the state of GM and its future.

[http://www.reddit.com/r/gamemaker/comments/1lsz0o/im_mike_da...](http://www.reddit.com/r/gamemaker/comments/1lsz0o/im_mike_dailly_head_of_development_at_yoyo_games/)

<comment><USER6> Heh, we actually broke the 'skull & crossbones' DRM story on Game Maker Blog, and it was picked up by a variety of major sites (ie. Ars Technica: [http://arstechnica.com/gaming/2012/11/drm-error-causes- probl...](http://arstechnica.com/gaming/2012/11/drm-error-causes-problems-for- legitimate-game-maker-users/))

</comment></comment></comment><comment><USER7> So many cross-platform game building tools available these days... hard to know which one would be worth learning! Personally I see Unity as having the most possibilities; I guess I'll add GameMaker to the list of things to check out.

One general thought I have is how hard it would be to use these for business apps... particularly the reporting/dashboard style where there isn't as much need for standard CRUD input controls. It shouldn't be too hard to access REST interfaces with modern game dev tools!

<comment><USER8> Html5 sounds a perfect fit for the use cases you talked about.

<comment><USER9> cough _Construct2_ cough

</comment></comment></comment><comment><USER10> it's unfortunate that the process doesn't result in games that are particularly enjoyable to play.

Spelunky (the original - the newer, paid version is not made with game maker though was made possible through the popularity of the original) and Gunpoint were both made with game maker and have been very successful monetarily - Gunpoint in particular was the first game the author made, and its success means he is now a full time game developer.

Obviously this route requires a lot more risk for a lot more time, but game maker is capable of a lot more interesting things.

[http://spelunkyworld.com/original.html](http://spelunkyworld.com/original.html) [http://www.gunpointgame.com/](http://www.gunpointgame.com/)

<comment><USER11> So Spelunky was made with GameMaker. It was extremely enjoyable to play which led to the development of the XBox version.

It contradicts your statement "it's unfortunate that the process doesn't result in games that are particularly enjoyable to play.", doesn't it?

Also I'm sure the dev tools don't play such a big part in the gameplay's quality of the result as you think.

<comment><USER12> Game Maker is scriptable in a Turing-complete language, so of course you can make anything in it--it's just a matter of blind determination. VBA is also Turing-complete, which means you can write your game in Powerpoint. (It's a lot like Flash, in fact.) But I don't see many people doing that, and for good reason. :)

But I think another, more devious way to phrase "it's unfortunate that the process doesn't result in games that are particularly enjoyable to play", is:

 _" It's unfortunate that the process doesn't_ prevent _more_ bad _games from getting made. "_

This seems needlessly cruel at first, but seen another way, it's immediately sensible: languages with strong typing prevent bad code from getting compiled. We prefer compiler errors to something that runs, but buggily. Maybe we could rely on tools, of sufficiently high level, to point out things like: "this finite-state-machine representing a game mechanic has a very high connectedness; this could indicate that your game mechanic requires the player to make repeated choices with too many options, which will induce choice fatigue, making them quickly bored of playing."

<comment><USER11> I can see your point but I can also see a clash with reality because a lot of successful mobile games are built with lua-based game engines. Maybe the clash is due to the fact bad code has nothing to do with the quality of the gameplay and rather simple game with a top-notch gameplay can be build with duct tape and bubble gum.

From my experience the tools which enable makers to create better gameplay are the tools which enable a very fast iterative development process (think live assets reloading, parameters tweaking without recompilation and ultimately code hotswapping).

Talking about strong typing it does help if you need to scale your simple game into something more complex. It also helps a lot if you are going to build something complex right from the start.

I think this link is absolutely relevant to both of our points: [http://elm- lang.org/blog/Interactive-Programming.elm](http://elm- lang.org/blog/Interactive-Programming.elm)

<comment><USER12> Note that I didn't say anything about the _programming_ quality of the resultant games. Gameplay is a matter of _design_ quality. We can build tools that help us make better games, but they have nothing to do with programming tools (tools that help us make games, better.)

<comment><USER11> My fault. I skipped the "Maybe we could rely on tools..."

Now I can see your real point.

I tried to read a book on game design which abstracted out the game mechanics into formalized simulation but it was too technical that was taking out the fun from the process so I stopped reading it. The name of the book is Game Mechanics: Advanced Game Design.

But yes, maybe there'll be tools advanced enough to help not taking the fun out.

</comment></comment></comment></comment></comment></comment><comment><USER13> Interesting that people are trying to dissuade the OP from using GameMaker. From reading his post it appears he is doing very well for himself and most importantly he is happy. I don't see much incentive for him to learn a completely new tool at this point.

Nice post OP. Keep up the good work.

<comment><USER14> If he's doing this well with GameMaker, a tool like Unity would open up even more possibilities.

It's like someone saying they're successful as a landscaper with merely a shovel. Invest in a backhoe and you'll get a lot more done.

<comment><AUTHOR> As with everything else in life, it depends. If you want to build 3D games, then by all means, use Unity (or equivalent). But if you want to build 2D games, I think that GameMaker does a good job (I know you can do 2D games with Unity, but still).

<comment><USER14> Unity offers a full C# or JavaScript(-esque) development environment, far more flexible than GameMaker. It also supports 2D or 3D depending on your preference, even allowing you to switch between them if you want. Keep in mind a lot of "2D" games are really just 3D ones with no depth because OpenGL and Direct3D are the only way to do real-time graphics.

Unity "free" is superior to GameMaker in virtually every regard, and the Unity Pro version, which costs three times as much, is a significantly more capable platform.

<comment><USER15> > OpenGL and Direct3D are the only way to do real-time graphics.

I'm sorry, what?

<comment><USER14> How else do you get pixels to the screen at reasonable frame rates? You load it into a texture and place it on a 3D polygon that just happens to be sized the same as the screen, making it in effect a 2D canvas with 1:1 texel to pixel mappings. Doing old-school "bitblitting" isn't going to cut it today, the overhead is too huge. GPU texture manipulation and layering is orders of magnitude faster than what you can do in the CPU space.

Windows uses Direct3D for the native UI, and OS X uses OpenGL for the same thing.

<comment><USER16> Your definition of "reasonable" really needs a qualifier here.

If you're doing AAA games in 2D, yeah you will use the GPU. But an indie game? You probably don't need it. Especially if you're writing the game without Unity (i.e. straight C++). The costs of setting up and working with 2D in OpenGL is high. I've done it. It's not fun, it's not pretty. It's a bitch, plain and simple. Texture atlases, font rendering, UV coords, texture uploading, vertex buffers, shaders. That's a ton of crap you have to worry with. Just to render simple 2D sprites to a screen. Many people can and do skip it and go straight to SDL or somesuch. It works, and modern CPUs are more than adequate.

<comment><USER14> Most of the popular 2D engines use OpenGL or Direct3D in the back-end, it allows them to do compositing much more easily, and at near zero cost. You don't have to worry about a thing if you're using the right library, it's no harder than the usual canvas calls.

This isn't just about performance. On a phone it's about not burning the battery down by loading down the CPU with expensive tasks that the GPU can do more easily.

Don't forget you can do your font rendering in the classic environment, then ship that texture image over for placement. It's not all that difficult with the right tools, many of which get packaged up for you transparently. You're not stuck in OpenGL by any means.

Most "2D" games are just 3D games rendered in isometric mode, top-down, with the depth information being used for layering.

<comment><USER16> > This isn't just about performance.

Yes, but let's not forget _you_ made it about performance.

There are plenty of reasons to choose to use OpenGL. Lots of freebies come with it. But you can still do 2D games without the GPU. That's the point. You can't just keep moving the goal posts however you want.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Cached: [http://webcache.googleusercontent.com/search?q=cache:OZjBF1K...](http://webcache.googleusercontent.com/search?q=cache:OZjBF1K7gAIJ:gamemakerblog.com/2013/08/27/how- i-make-a-living-using-gamemaker-part-i/+&cd=1&hl=sv&ct=clnk&gl=se)

<comment><USER18> If it doesn't work, here's another one:

[http://web.archive.org/web/20130828175356/http://gamemakerbl...](http://web.archive.org/web/20130828175356/http://gamemakerblog.com/2013/08/27/how- i-make-a-living-using-gamemaker-part-i/)

</comment></comment><comment><USER6> Hi all; original content creator here. Both of my websites (gamemakerblog.com and truevalhalla.com) seem to have had a large influx of traffic, and have gone down.

I'm working on it! :)

</comment><comment><USER19> No matter how good the story; GameMaker will always be remembered as the Microsoft Frontpage of game development due its drag-and-drop functionality and (mostly) imature userbase. Sure, you can do cool things with and use all sorts of advanced features but some impressions just stick.

</comment><comment><USER17> So how is he actually making money on HTML5 games? By selling the games for a one-time fee to companies that wish to use them on their website?

<comment><USER6> Yes, that makes up the majority of my income. The companies pay for the legal rights to use/distribute the games, or to "sponsor" them as it's known. Sometimes they want some branding or an API integrated, too.

</comment></comment><comment><USER20> I would suggest using Maratis instead, because GameMaker is inferior and Maratis can be coded using Lua instead of that the GameMaker language + you can combine efforts with Blender etc.

Follow the discussion if interested: [https://news.ycombinator.com/item?id=6096808](https://news.ycombinator.com/item?id=6096808)

<comment><AUTHOR> GameMaker is focued on 2D games[0], where Maratis is focused on 3D games (from what I can see). It would be better to compare Maratis to Unity3D.

[0] [http://www.gamasutra.com/view/news/177983/](http://www.gamasutra.com/view/news/177983/)

<comment><USER9> You can make 3d games in GameMaker as well though i've always though it was really probably not the best use of it. I haven't seen any 3d GM games which blew me away in any case ... and i've never made any.

<comment><AUTHOR> I know you can, but as you said, it's not the best way to go. If you need 3D games, there are better tools for that than GameMaker.

</comment></comment></comment></comment><comment><USER21> Interesting stuff!

I'm curious - have you tried other more full-featured tools like Unity, and if so, what makes you stick with GameMaker?

</comment><comment><USER22> I remember using GameMaker 5/6/7 and it was very slow. Is that still the case?

<comment><AUTHOR> I found this [http://www.youtube.com/watch?v=3PeGbMvpz4M](http://www.youtube.com/watch?v=3PeGbMvpz4M) while researching GameMaker. It seems to perform very well.

For the interested, this is how the examples were made [http://www.youtube.com/watch?v=FTWeRh81AXc](http://www.youtube.com/watch?v=FTWeRh81AXc)

Also, they seem to have a compiler which should speed things up [http://www.youtube.com/watch?v=BPJ4hCfTZEM](http://www.youtube.com/watch?v=BPJ4hCfTZEM)

</comment></comment><comment><USER17> Are the games for web only? Are they working on mobile browsers?

<comment><USER6> Both! HTML5 games are not bought on the App Store, they are played directly in your browser. So you can, for example, open up Safari on your iPhone and play a HTML5 game for free, right in your browser.

You can also play that same game on your desktop PC, by visiting the same web address. Though all of my HTML5 games are specifically optimized for mobile.</comment></comment>


Ask HN: How does your company manage knowledge and information - <AUTHOR> I would like to know what tools your company uses to manage knowledge. It doesn't necessarily mean a tool like Confluence but maybe something more general purpose like Google Drive.<p>I am particularly interested in how you use it to create long lived documents (sprint meetings/coding documentation/meeting notes) and what use cases it is best suited for. We currently use Confluence but its design is clunky and slow. It is damn near painful to navigate and I dread when I have to use it to write documentation. It also doesn't seem suited to supporting code in the way that I would like (inline code is not natively supported) so it becomes less useful for creating a best practices guide for instance. <comment><USER2> Confluence seems to be pretty popular for reasons which I can't understand since like you said it's godawful.

<comment><USER3> To be fair, the performance of a Confluence installation depends a lot on what hardware it is on. I've seen Confluence installations that take 20 seconds to load the page to make a new wiki page because they found a really ancient server with hardly any ram to run it on. That happens a lot because a lot of people think it is a low-priority, low-traffic service, then they assume Confluence sux anyway...

</comment></comment><comment><USER4> I think there are a MILLION of different things you can use for this type of information. I don't like Confluence much, but it does work.

Best app is probably an internal Wiki. Works extremely well, easy to setup, searchable, etc.. etc..

I think that was always my favorite. But don't store passwords here. Use a secure PW manager. Sometimes you can even link to it from the Wiki.

My issue has always been the bulletin-board type of things. "Client XYZ expressed concern about this. Let's make sure we're sensitive to this."

I've rarely seen companies even make an attempt at spreading this type of info, and the ones that have have not thought of a good solution. No, sending emails to the entire department is not a solution.

</comment><comment><USER5> Confluence is good. I will say I hated it at first, but it's one of those kinds of software that you need to adapt to instead of the other way around.

It has a lot of good, the-way-it-should-be-done processes that if you force yourself to follow, can be very rewarding.

Some positives:

1\. Great mobile app.

2\. Lots of security. Audit trails, granular access to specific pages, 2FA.

3\. Can sync users with Google Cloud Suite, nice to only have 1 set of users.

4\. Very rich and detailed page design options.

5\. Has other apps that bolt on. So much sensitive data can be stored in a wik, it's nice to be able to securely share it into Jira (like Github) or Stride (like Slack).

6\. Is only $10 for up to 10 users. Can also bring in on-premise (much more expensive though). This is good for HIPAA stuff.

</comment><comment><USER6> I suspect the answer is a function of team size. For smaller companies, less formal solutions may be ok.

At my company we use:

\- Salesforce

\- wiki

\- google groups

\- github

\- Trello

</comment><comment><USER7> We use Confluence, but to get the most out of it, you need two things.

1) proper training for everyone that will use it. 2) processes regarding its use so your information is consistent.

</comment><comment><USER8> Google docs, google pages , wordpress for users faq. It's far from perfect but it works okay.

<comment><AUTHOR> I think this is great for storing things which need to be accessed across the company (contract templates) but really fails to be as effective for discovery as a wiki/confluence</comment></comment>


Former Google employees develop search engine for porn - <AUTHOR> https://boodigo.com/

<comment><USER2> I've seen a few similar search engines, and also people who swear by Bing for porn search... but who _searches_ for porn anyway?!</comment>


TopN for your Postgres database - <AUTHOR> https://www.citusdata.com/blog/2018/03/27/topn-for-your-postgres-database/ <comment><USER2> We've been using this extension for a while now at Algolia, great to see that it's now open sourced!

We heavily rely on this to power our analytics API. We use it precompute tops for billions of daily events. We can then fetch tops across specific time range usually in the order of the milliseconds on the fly. This was a game changer for us :)

</comment><comment><USER3> Is this an advertisement? Because it reads like one.

Postgresql and most mature database systems already have topN/offset/paging solutions.

Also, what's the point of aggregating JSONB data? If you need to calculate topN, why not normalize the data properly and index the data? Then top N will be blazing fast without needing an extension?

If the data set is extremely large then you can maintain an internal "Top N" table that gets calculated when data is added/removed. It all depends on the workload, but inserts/updates/deletions may be slightly slower, but reads of topN will be constant speed.

<comment><USER4> This is an entirely new PostgreSQL extension. Within the post we talk about group by, order by work fine for smaller datasets but for larger datasets the amount of time to compute and roll things up is not feasible. TopN or TopK is a very common algorithm for approximate counts of top items when you have large enough datasets.</comment></comment>


Show HN: N-Weave.com – Share your travel plans with friends - <AUTHOR> http://www.n-weave.com <comment><AUTHOR> I've been working on n-Weave as a side project and been using it with my friends for about a year now. It makes it so much easier to catch up with friends when I'm traveling. It puts all of our overlapping travel dates in one place and also tells me which of my friends live where I'm visiting. Would love some honest feedback from people who aren't my best friends or my mother - always looking for ways to improve!</comment>


Adobe goes 3D - <AUTHOR> http://blog.sketchfab.com/post/73507989270/adobe-partners-with-sketchfab-to-bring-3d-publishing-to-photoshop

<comment><USER2> congrats on the integration Sketchfab. I'm sure there are a lot of 3D designers that are pretty pumped right now!

</comment><comment><USER3> Congratulations on the awesome integration!

</comment><comment><USER4> Big congratulations Sketchfab!

</comment><comment><USER5> Great integration!

</comment><comment><USER6> Awesome, congrats guys! This is really cool news to see. Nice work

</comment><comment><USER7> Sketchfab is nailing it step by step... Nice job

</comment><comment><USER8> Just awesome!

</comment><comment><USER9> congrats guys, you make us proud.</comment>


Nio4r - cross-platform stateful I/O selector API for Ruby - <AUTHOR> https://groups.google.com/forum/#!topic/celluloid-ruby/_q-Jg3C3PXk

<comment><AUTHOR> Message content, for lazy people :

nio4r provides a high performance IO selector API which lets you monitor several IO objects for events simultaneously using a single system call. It's similar to Kernel.select, but keeps its state between calls.

[https://github.com/celluloid/nio4r](https://github.com/celluloid/nio4r)

Selectors thunk to the epoll on Linux and kqueue on BSDs, using libev for Rubies with C extension support (MRI, Rubinius) and Java NIO on JRuby.

We're trying to get all Celluloid dependencies onto 1.x versions this year. nio4r is the first! (unless you count timers, which is already on 2.0.0). That's right, we're freezing APIs and trying to get things solid.

Changes from 0.5.0:

* Have Selector#register obtain the actual IO from a Monitor object because Monitor#initialize might convert it * Drop 1.8 support

Enjoy!

\-- Tony Arcieri

</comment><comment><AUTHOR> Github repo : [https://github.com/celluloid/nio4r](https://github.com/celluloid/nio4r)</comment>


Editors believed their magazines could change lives - <AUTHOR> https://www.laphamsquarterly.org/roundtable/editorial-visions <comment><USER2> That illustration of 1889 should be an error: there is electric oven, toaster, radio and wall clock - isn't it bit too early for those items?

<comment><USER3> That is simply in no way a kitchen from 1889. In fact, though I don't actually think so, it could _plausibly_ be a kitchen from 1989, of someone who likes to have a few retro items around. Rotary phones were still common; the only thing looking out of place for 1989 is that two-knob radio. Someone could easily have had that for 30 years (it's an older person's kitchen), or picked one up at a flea market or garage sale for fun. Stoves not very different from that one are still available today as low-end units. In run-down rental apartment buildings, you can still run into ones that have analog clocks.

<comment><USER4> I toured a condominium for sale in San Francisco ~5 years ago. The entire kitchen was circa 1930s original, including refrigerator, stove, sink, and cabinets. It was all exceptionally well maintained and if I had bought that place I'd probably keep the kitchen exactly as it was.

</comment></comment></comment><comment><USER5> I wish my desktop computer was like a beautiful live magazine with infographics and pages for system administration.

<comment><USER6> I remember Steve Jobs showing the 1st Ipad with his argument to own one: 'Look! there will be interactive books!' and showed one -But there weren't... so I never bought one. Last time i thought about this (old) story was as somebody sold a truckload used one-armed, mobile roboters with a 2 hours battery holding a tablet-pc, for under US$1.000 -but without the tablet ^^

But, btt Storyline (crossreading) was:

'In the 1890s..." Updated (!) In modern times some people may like to behave having tendencies or concrete plans to extend their influence. Some of'em want to offer you a -ideology-(crossed out) _um_ modern times [^^] -I would like to call it 'lifestyle'.

> 'And some are selling them shovels' (-;

</comment></comment><comment><USER7> I assume some HNers of a certain generation had their lives changed for the better by the likes of Byte or Dr. Dobb's Journal.

</comment><comment><USER8> > Editors believed their magazines could change lives

Like TV they have, and also been a force of good.

</comment><comment><USER9> And they were right. Since magazines are just the TVs of the 1940-1970s, they effectively changed our lives by offering us glimpses of the Kardashians, Trump, Miley Cyrus, Neil deGrasse Tyson, Carl Sagan, FoxNews/MSNBC, SlapChop, etc. Media has always said it'd be a force for good (and I'm sure it intended to do so)...

<comment><USER10> > SlapChop

I did indeed love his nuts.</comment></comment>


Edward Snowden's dad: 'This story is far from done' - <AUTHOR> http://www.today.com/news/edward-snowdens-dad-story-far-done-6C10760642 Please see video for full story <comment><AUTHOR> Please see video for full story.</comment>


The Ars Technica System Guide, Winter 2019: The One about the Servers - <AUTHOR> https://arstechnica.com/gadgets/2019/03/the-ars-technica-system-guide-winter-2019-the-one-about-the-servers/ <comment><USER2> This guide reads like a /r/homeserver post without the rack, and lack a introduction to fun stuff on /r/selfhosted</comment>


The Moon made twice, at home - <AUTHOR> https://firstname.lastname@example.com/the-moon-made-twice-at-home-a2cb73b3f1e8 <comment><USER2> I did something similar a few years back with that 22gb displacement map, although much more accurately and easily: it's a piece of cake to directly ray trace a displaced sphere: you basically intersect two spheres (the outer and inner radius), which gives you a ray interval that you can "march" through. At each step while marching, you look at the surface height at the current point, compare it to your point's radius, and if it's greater then you've intersected the surface since the last step (and can perform bisection method to refine the intersection distance to machine precision).

<comment><USER3> That's actually how the displacement of the intersection is done here - marching in the range between spheres. Bisection, however, wont work at shallow angles.

</comment></comment><comment><USER4> What a very nicely done, high quality project. I found it engaging to read the reasoning along the way to a very neat bit art.

There was a time when such data-mangling was way, way off limits, in some A/C'ed computer room somewhere .. and now here I am, setting up anaconda on the trains' own wifi as a landscape scrolls past, rendering the moon while I can see the real one out the window ..

</comment><comment><USER5> On reddit the OP said

>The visualization and video of the Moon were made with python and 3D ray- tracing (it is not a photo!)</comment>


Shoe Lacing Methods - <AUTHOR> http://www.fieggen.com/shoelace/lacingmethods.htm

<comment><USER2> I actually received this guy's book as a gift and it's been quite the cool "life hack" to be able to tie my shoes with superhuman powers basically. And also to understand what someone is doing wrong by looking at their knot. And to browse through a catalog of lacing techniques each time I get new shoes and pick an optimal one.

I use the knot he calls the "Ian Knot" and after about 7 years it's come untied maybe twice.

The easiest thing to learn is, on the "typical knot" most people learn at childhood, if your "loops" stick out up and down instead of at the sides, then you're doing it wrong (tying a granny instead of a square knot) and need to reverse half your technique. Since the first "X" is simpler, the easy path is to just reverse the X you normally do and proceed from there. Suddenly, your shoes will come untied much less.

<comment><USER3> I did that exact thing a few years ago (reversing the X) and muscle memory still makes me start it the "old way" before doing the reversal #mildlyinteresting

And yes, I look at peoples shoes for this too... Unbelievably, there is a Ted talk about this

</comment></comment><comment><USER4> I can recommend the Altra Alternate method (which I don't think is on Ian's site) (although the newer Altra shoes have stupid webbing loops instead of holes which make it impossible to do the bottom gapping.)

[https://www.altrarunning.com/run- better#lacing](https://www.altrarunning.com/run-better#lacing)

</comment><comment><USER5> Thoreau's journals removed a good deal of low-level daily frustration from my life. At one point, he and a friend decided to change the way they began their knots, and found it much better. I decided to try that, and my laces quit untying themselves.

</comment><comment><USER6> If you have foot pain from feet that don't match the standard shoenshape, try gap lacingm</comment>


Perl 5.30 Released - <AUTHOR> https://metacpan.org/pod/release/XSAWYERX/perl-5.30.0/pod/perldelta.pod <comment><USER2> Seeing the improvement, year over year, really makes me wish I could use Perl at $work.</comment>


Show HN: Conway's Game of Life Synthethized into Music - <AUTHOR> http://melodyoflife.pw <comment><USER2> I like this, but can you add a randomizer to create some starting seed blocks ?

<comment><AUTHOR> Will do, along with a pause button too as it's pretty hard if not impossible to draw a glider gun right now ;)

<comment><AUTHOR> Added both.

<comment><USER2> Hours of Fun! Love it :)</comment></comment></comment></comment>


The Villains of Remote Work - <AUTHOR> https://blog.dnsimple.com/2016/10/the-villains-of-remote-work/ <comment><USER2> _I 've had days…sometimes a full week, where I can't seem to focus on anything. During these periods I'm often doing things that others may consider a mini-vacation: maybe I'm reading a book, maybe I'm binging a show on Netflix while laying in bed ordering food and not leaving my house. That series of activities is amazing…in a small dose. A very small dose. When you get past the point of actually wanting to partake in something like that, it becomes an absolute nightmare. You start to feel like you're festering. Trapped, anxious, unproductive, bored, and tired. You feel guilt, you want to be able to contribute, but every time you sit down you just stand up again. In these situations it's not just work I can't focus on, but Netflix, books, and video games too. It's an awful feeling. You might have experienced something similar a few times on long breaks from school as a kid, or as a food service worker when you get multiple days off in a row.

I am Potato. You are Potato. Potato is in all of us, dying to see the light of day. If you feel Potato coming…run.

Really though, that's the solution. Maybe not literally "run" (though in the case of a lot of people, literally run). Change your scenery, bang out an easy win, complete tasks that require zero planning or thought, change how you're sitting, exercise for a little bit, put your shoes on, stand while you work. If none of that helps, leave. Go anywhere, it does not matter where. Find a co-working space to go to, find a beach with wifi, find a rooftop pool, or a coffee shop. If you can't find anything interesting, go to a different continent. Do whatever it takes. It does not matter what it is, but you need to fight Potato from the early spud stages, once it becomes full-grown it can be incredibly difficult to escape. The thing is, once you've fully Potato'd, your mind has been corrupted to the point where all you want to be is Potato, even though you hate every waking second of it._</comment>


Where else can you show new products other than HN and Product Hunt? - <AUTHOR> <comment><USER2> I've seen lists like [https://github.com/mmccaff/PlacesToPostYourStartup](https://github.com/mmccaff/PlacesToPostYourStartup) but I wonder if those pages aren't frequented by other startup founders, thus not necessarily the target audience.

<comment><AUTHOR> oh wow, a long list, thanks!</comment></comment>


OnionDSL – A DSL Connection Directly into the Tor Network - <AUTHOR> https://www.kickstarter.com/projects/brasshorncomms/oniondsl-a-dsl-connection-directly-into-the-tor-ne <comment><USER2> Historically the Tor Project has said that it's not very safe to use a regular browser to connect over Tor, because the regular browser doesn't have all of the privacy-related enhancements that the Tor Browser does.

Tor Browser has been heavily modified in order to try to prevent cross-session tracking (and some other privacy and security threats):

[https://www.torproject.org/projects/torbrowser/design/](https://www.torproject.org/projects/torbrowser/design/)

If you used your regular Firefox or whatever with a Tor transparent proxy, as I think is proposed here, you would probably have cross-session and cross-site tracking using cookies and lots of other mechanisms, because the browser is just not that paranoid. This would reduce the privacy benefits of using Tor quite a bit.

So, the Tor Project has advocated against routers that automatically send everything over Tor, at least if end users are going to rely on that for privacy while using unmodified desktop software.

Edit: I sent the project creator a note about this on Kickstarter.

Edit 2: See also [https://www.torproject.org/download/download.html.en#warning](https://www.torproject.org/download/download.html.en#warning) (advocating using Tor via Tor Browser and not any other browser because "[a]lmost any other web browser configuration is likely to be unsafe to use with Tor").

<comment><USER2> I corresponded with the developer of this project and learned that there are technical precautions to prevent random software from sending data over Tor without expecting to, so I'm convinced that this design doesn't have the problems that I expected.</comment></comment>


Ask HN: How do I stop focusing on competition, and focus on my own improvement? - jj-abram

Recently, I was accepted into attending a hackathon. I have never been to any hackathon before, and I feel a little anxious. I feel that it's all about competition, and instead of me learning and programming new things, I will rather be undermined by others who are smarter than me. I feel that people will criticize my ideas because they see me as a rookie in programming. How can I forget about the competition aspect, and focus on improving my own programming skills? <comment><AUTHOR> Go home after the hackathon, forget about everyone else who was there, and ask yourself, "Okay, what have I learned?" Then do this at a few hackathons.

The goal is to cultivate a mindset where you're comfortable engaging with the outside world and taking feedback from it, but that feedback does not define you.</comment>


Verizon and Google: Joint Policy Proposal for an Open Internet  - <AUTHOR> http://policyblog.verizon.com/BlogPost/742/JointPolicyProposalforanOpenInternet.aspx

<comment><USER2> Has anyone done a fine print analysis of this?</comment>


How to ensure your tech talent pool is poaching proof - <AUTHOR> https://www.hackerearth.com/blog/talent-assessment/tech-talent-poaching/ <comment><USER2> > Developers are not hired to fill a specific job description

how do you handle that during layoffs, where you must cut a percentage of a specific project/role to fall within law?

(ps: I am actually fine with the only answer I can see: you forfeit layoffs legal benefits and call them by what the really are)</comment>