ignore node_modules and simplify ignore rules a bit
diff --git a/.gitignore b/.gitignore
index f924577..eabb198 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,6 @@
 *.o
 *.deps
 *.libs
-gen-*
 *.log
 *.trs
 *.suo
@@ -18,27 +17,24 @@
 *_ReSharper*
 *.opensdf
 *.swp
+*.m4
+*~
+gen-*
+Makefile
+Makefile.in
+autom4te.cache
+node_modules
+
 .project
 .pydevproject
 .sonar
 .DS_Store
 
-/Makefile
-/Makefile.in
 /contrib/.vagrant/
-/aclocal/libtool.m4
-/aclocal/ltoptions.m4
-/aclocal/ltsugar.m4
-/aclocal/ltversion.m4
-/aclocal/lt~obsolete.m4
-/aclocal.m4
-/autom4te.cache
 /autoscan.log
 /autoscan-*.log
 /compiler/cpp/Debug
 /compiler/cpp/libparse.a
-/compiler/cpp/Makefile
-/compiler/cpp/Makefile.in
 /compiler/cpp/src/windows/version.h
 /compiler/cpp/thrift
 /compiler/cpp/thriftl.cc
@@ -50,20 +46,12 @@
 /configure
 /configure.lineno
 /configure.scan
-/contrib/fb303/Makefile
-/contrib/fb303/Makefile.in
-/contrib/fb303/aclocal.m4
-/contrib/fb303/autom4te.cache/
 /contrib/fb303/config.cache
 /contrib/fb303/config.log
 /contrib/fb303/config.status
 /contrib/fb303/configure
-/contrib/fb303/cpp/Makefile
-/contrib/fb303/cpp/Makefile.in
 /contrib/fb303/cpp/libfb303.a
 /contrib/fb303/java/build/
-/contrib/fb303/py/Makefile
-/contrib/fb303/py/Makefile.in
 /contrib/fb303/py/build/
 /contrib/fb303/py/fb303/FacebookService-remote
 /contrib/fb303/py/fb303/FacebookService.py
@@ -71,13 +59,7 @@
 /contrib/fb303/py/fb303/constants.py
 /contrib/fb303/py/fb303/ttypes.py
 /depcomp
-/if/Makefile
-/if/Makefile.in
 /install-sh
-/lib/Makefile
-/lib/Makefile.in
-/lib/cpp/Makefile
-/lib/cpp/Makefile.in
 /lib/cpp/Debug/
 /lib/cpp/Debug-mt/
 /lib/cpp/Release/
@@ -85,8 +67,6 @@
 /lib/cpp/src/thrift/qt/moc_TQTcpServer.cpp
 /lib/cpp/src/thrift/config.h
 /lib/cpp/src/thrift/stamp-h2
-/lib/cpp/test/Makefile
-/lib/cpp/test/Makefile.in
 /lib/cpp/test/Benchmark
 /lib/cpp/test/AllProtocolsTest
 /lib/cpp/test/DebugProtoTest
@@ -112,12 +92,8 @@
 /lib/c_glib/*.gcda
 /lib/c_glib/*.gcno
 /lib/c_glib/*.loT
-/lib/c_glib/Makefile.in
-/lib/c_glib/Makefile
 /lib/c_glib/test/testwrapper.sh
 /lib/c_glib/test/testwrapper-test*
-/lib/c_glib/test/Makefile
-/lib/c_glib/test/Makefile.in
 /lib/c_glib/test/testbinaryprotocol
 /lib/c_glib/test/testbufferedtransport
 /lib/c_glib/test/testdebugproto
@@ -131,15 +107,9 @@
 /lib/c_glib/test/testtransportsocket
 /lib/c_glib/thriftc.pc
 /lib/c_glib/thrift_c_glib.pc
-/lib/csharp/Makefile
-/lib/csharp/Makefile.in
 /lib/csharp/src/bin/
 /lib/csharp/src/obj/
 /lib/d/libthriftd.a
-/lib/d/Makefile
-/lib/d/Makefile.in
-/lib/d/test/Makefile
-/lib/d/test/Makefile.in
 /lib/d/test/serialization_benchmark
 /lib/d/test/transport_test
 /lib/d/unittest/
@@ -178,51 +148,26 @@
 /lib/erl/test/*.hrl
 /lib/erl/test/*.beam
 /lib/hs/dist
-/lib/hs/Makefile
-/lib/hs/Makefile.in
-/lib/go/Makefile
-/lib/go/Makefile.in
-/lib/java/Makefile
-/lib/java/Makefile.in
 /lib/java/build
 /lib/js/test/build
-/lib/js/test/Makefile
-/lib/js/test/Makefile.in
-/lib/nodejs/Makefile
-/lib/nodejs/Makefile.in
 /lib/nodejs/node_modules/
 /lib/perl/MANIFEST
 /lib/perl/MYMETA.yml
-/lib/perl/Makefile
-/lib/perl/Makefile.in
 /lib/perl/Makefile-perl.mk
 /lib/perl/blib
 /lib/perl/pm_to_blib
-/lib/perl/test/Makefile
-/lib/perl/test/Makefile.in
-/lib/py/Makefile
-/lib/py/Makefile.in
 /lib/py/build
 /lib/py/thrift.egg-info/
 /lib/rb/Gemfile.lock
-/lib/rb/Makefile
-/lib/rb/Makefile.in
 /lib/rb/debug_proto_test
 /lib/rb/.config
-/lib/rb/ext/Makefile
 /lib/rb/ext/conftest.dSYM/
 /lib/rb/ext/mkmf.log
 /lib/rb/ext/thrift_native.bundle
 /lib/rb/ext/thrift_native.so
 /lib/rb/test/
 /lib/rb/thrift-*.gem
-/lib/php/Makefile
-/lib/php/Makefile.in
-/lib/php/src/ext/thrift_protocol/Makefile
 /lib/php/src/ext/thrift_protocol/Makefile.*
-/lib/php/src/ext/thrift_protocol/acinclude.m4
-/lib/php/src/ext/thrift_protocol/aclocal.m4
-/lib/php/src/ext/thrift_protocol/autom4te.cache/
 /lib/php/src/ext/thrift_protocol/build/
 /lib/php/src/ext/thrift_protocol/config.*
 /lib/php/src/ext/thrift_protocol/configure
@@ -238,57 +183,25 @@
 /lib/php/src/ext/thrift_protocol/thrift_protocol.la
 /lib/php/src/ext/thrift_protocol/tmp-php.ini
 /lib/php/src/packages/
-/lib/php/test/Makefile
-/lib/php/test/Makefile.in
 /lib/php/test/phpunit.xml
 /lib/php/test/packages/
 /lib/erl/logs/
-/lib/erl/Makefile
-/lib/erl/Makefile.in
-/lib/erl/src/Makefile
-/lib/erl/src/Makefile.in
 /libtool
 /ltmain.sh
 /missing
 /stamp-h1
-/test/Makefile
-/test/Makefile.in
-/test/cpp/Makefile
-/test/cpp/Makefile.in
 /test/cpp/StressTest
 /test/cpp/StressTestNonBlocking
 /test/cpp/TestClient
 /test/cpp/TestServer
-/lib/go/test/Makefile
-/lib/go/test/Makefile.in
 /lib/go/test/gopath/
 /lib/go/test/ThriftTest.thrift
-/test/hs/Makefile
-/test/hs/Makefile.in
 /test/log/
 /test/test.log
-/test/nodejs/Makefile
-/test/nodejs/Makefile.in
-/test/perl/Makefile
-/test/perl/Makefile.in
-/test/php/Makefile
-/test/php/Makefile.in
-/test/py/Makefile
-/test/py/Makefile.in
-/test/py.twisted/Makefile
-/test/py.twisted/Makefile.in
 /test/py.twisted/_trial_temp/
 /test/py.twisted/test_suite.pyc
-/test/py.tornado/Makefile
-/test/py.tornado/Makefile.in
 /test/py.tornado/*.pyc
 /test/rb/Gemfile.lock
-/test/rb/Makefile
-/test/rb/Makefile.in
-/tutorial/Makefile
-/tutorial/Makefile.in
-/tutorial/cpp/Makefile
-/tutorial/cpp/Makefile.in
 /tutorial/cpp/TutorialClient
 /tutorial/cpp/TutorialServer
 /tutorial/delphi/*.dsk
@@ -299,28 +212,12 @@
 /tutorial/delphi/DelphiClient/*.identcache
 /tutorial/delphi/DelphiServer/*.identcache
 /tutorial/delphi/DelphiServer/*.local
-/tutorial/go/Makefile
-/tutorial/go/Makefile.in
 /tutorial/go/go-tutorial
 /tutorial/go/calculator-remote
 /tutorial/go/src/shared
 /tutorial/go/src/tutorial
 /tutorial/go/src/git.apache.org
-/tutorial/java/Makefile
-/tutorial/java/Makefile.in
 /tutorial/java/build/
-/tutorial/js/Makefile
-/tutorial/js/Makefile.in
 /tutorial/js/build/
-/tutorial/nodejs/Makefile
-/tutorial/nodejs/Makefile.in
-/tutorial/py.twisted/Makefile
-/tutorial/py.twisted/Makefile.in
-/tutorial/py.tornado/Makefile
-/tutorial/py.tornado/Makefile.in
-/tutorial/py/Makefile
-/tutorial/py/Makefile.in
-/tutorial/rb/Makefile
-/tutorial/rb/Makefile.in
 /ylwrap