Ask HN: A martial art for a programmer - <AUTHOR> Dear HNers,<p>I fairly recently started kendō and I find it helps with building character (especially regarding dealing with pressure in my case). I'm curious about what aspects of which martial arts that others have found particularly beneficial to life as a programmer/software developer. <comment><USER5> I study Krav Maga. I prefer a practical self defense oriented approach. It is the system developed by and taught to the Israeli military. Moves are generally very simple (important so you can be effective without years of training). The problem with pretty much all other martial arts everyone is mentioning is that they have morphed to work ideally in a competitive environment. Sure, knowing just about any martial art will give you a huge advantage against someone who isn't skilled but there are alot of things people just don't train for with BJJ, Tae Kwon Do, etc.

For example, one of the first things we learned is defending yourself from various holds and chokes. The first move, after securing your throat or loosening their grip is generally to hit them in the balls. This is one example of something most martial arts won't teach you because that's generally "against the rules", however, in a self defense scenario, there are no rules (there are however laws that you may break so keep that in mind).

You really want to avoid going to the ground if at all possible. It just makes you more vulnerable if anyone else decides to jump in and you never know what you're rolling around on. Besides, what are you going to do, put someone in a submission until help arrives? A really effective way to break a hold is to grab their pinky and twist it in a direction it doesn't want to go. If they don't let go just move on to new fingers. Also, feel free to bite them. Hard. You can also pull hair, gouge eyes, fishhook, etc. It's great to know how to defend yourself on the ground, but you want to be on the ground as little as possible as it can be a dangerous place because your opponent is probably not playing under the same rules you are.

If you want more of a philosophy then it's probably not right for you. This is pretty much just about winning fights when it matters the most.

<comment><USER6> I've studied a couple martial arts and had brief introductions to a number of others (Systema and Qi Dao are the two I've done for a while).

Every art I've seen teaches getting out of holds first because it is something a novice can do pretty easily with some understanding of technique.

I've also been hit in the balls during sparing matches a number of times. It's not the decisive hit many imagine. In fact, a strong solar plexis shot was much more effective in my personal experience.

A lot of "real world" martial arts teach about "disabling" shots that their practitioners never get to seriously try because they are, at least intended to be, truly crippling.

Yet that means that in the "real world", when assaulted, you are trying to do something you've never previously done in the same fashion.

For that reason, I think that "competition" based martial arts certainly can be at least as good for "real world" defense. The tactics used in MMA matches would work good in the real world - with the proviso to avoid fights and avoid the ground as much as possible.

If anyone wants to debate these issues in gruesome detail, look at <http://bullshido.net> . There's plenty of attitude there but it's a group of folks who've worked pretty hard sorting out bs from effective martial arts.

<comment><USER7> > when assaulted, you are trying to do something

"Everybody has a plan until they get punched in the face." \--Mike Tyson

<comment><USER6> Actually, that's another problem with a lot of martial arts that teach particular actions for particular situations. One's ability to remember an complex technique or even a simple move in the middle of a conflict somewhat ... hampered.

Of course, any serious martial art is going to teach stance, balance, "flow", and state of mind as well as particular techniques. The applies to all the arts I've had minimal exposure to: BJJ, Muy Thai, Tai Chi, Aikido. I don't know if this applies to Krav Maga or not - I can only know what the KM people talk about. I'm skeptical of any "too deadly except for da streets" rhetoric from anyone.

</comment></comment></comment></comment><comment><USER8> Depends on what kind of programmer you are. If you do a lot of concurrent programming in C++ then chainsaw fencing should be right for you. An advanced Lisp programmer can practice blasting opponents with pure Chi energy.

<comment><USER9> I recommend chainsaw nunchucks over chainsaw fencing. It's a personal preference.

<comment><USER8> Ah, the multithreaded assembly programmers who use self-modifying code for synchronization. Sorry about having forgotten about you guys.

</comment></comment></comment><comment><USER10> I wouldn't have made it through grad school without Shotokan Karate (<http://www.ska.org/>). It helps that they're non-profit, so you know you're learning and not just paying for belts. Plus, they have very intense "Special trainings" around the country at different points in the year. They're a great organization.

While it's easy for some to dismiss "mystical" aspects, look at the real world applications. If you suffer from "pressure" that could be a moderate form of anxiety. A great combat to the parasympathetic response? Breathing.

Watch what happens when you get punched in the gut. Your immediate, initially uncontrollable desire is to blindly fight like hell or turn and run. Keeping a calm head takes practice to overcome the rush of hormones. Breathing slows the heart and tempers the response. It's the same reason elite athletes, especially runners, know the power of proper breathing.

I tend to think many mystical aspects had some physiological root that then got adulterated over time. Breathing as the route to relaxation is first on my list.

</comment><comment><USER11> I prefer training for martial arts over martial arts themselves.

I do dands (Hindu pushups) and bethaks (Hindu squats) almost every day.

Want to build character? Do 500 bethaks. Your quads will be screaming, begging you to stop at 200, 300, even 400. But you keep going. Because you know that as soon as you stop, you gave up too easily. But once you finish, you can do anything. Eerily similar to starting a software business.

<comment><USER12> _But once you finish, you can do anything_

Except walk. Kidding aside, I agree these are great exercises to get the blood going. I need to get back into practice!

</comment></comment><comment><USER13> I would say Brazilian Jiu-Jitsu. You can make good progress very quickly, it's a lot of fun, can be very demanding physically (but doesn't always have to) and is called "chess on the mat" which should appeal to a programmer's analytical minds. Plus, there's a ton of BJJ ressources on the net and the community is very active.

<comment><USER10> I really enjoyed BJJ for the short time I tried it. The problem is I could easily see overpaying for it, with poor teachers, in the current MMA context. My other concern is that it's more grappling than contact, which seems less practical. I had a strong background in wrestling (4 years) and Karate (5 years) by that point. I really liked it, but I'm not sure it's right for a beginner.

<comment><USER14> _My other concern is that it's more grappling than contact_

Grappling isn't contact?

<comment><USER10> Poor choice of words. At that distance, you don't know what happens, and how to respond, when your bell gets rung.

<comment><USER15> Then also do MMA ground-and-pound drills if that concerns you. I find my BJJ base (purple belt) helps immensely when I have someone in my guard trying to punch me in the face.

<comment><USER10> In practical circumstances, I don't know why I'd willingly go to the ground, especially against someone bigger (and usually that's what bullies are). And I say that as a former wrestler.

<comment><USER16> All martial artists know from extensive research on internet forums, that 99% of street fights go to the ground.

<comment><USER17> Very true. Martial arts have different beneficial aspects, but if your only concern is winning street fights, from my understanding all you really have to do is become an accomplished boxer and wrestler.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> I think Aikido is a very good option, not only to programmers, but to all the people. It's a martial art which is meant to preserve the integrity of both players. Both mental and body health are the main concerns of this martial art.

<comment><USER19> god I hate the "peaceful warrior" crap pushed by certain practitioners of aikido. Osensei tells us that the best way to start an aiki is to belt someone in the face. traditional aikido teaches both striking while the opponent is pinned down and completing the movement of joint locks to break bones. most easily understood: would aikido teach the katana if it wasn't about inflicting harm? how many non-lethal cutting techniques do you know?

<comment><USER20> O'Sensei's thought and style evolved throughout his life. In his younger days, pre-WWII, yes, he was rough and tumble. Movements were sharper and more direct. Break bones, crush your enemy. He did this frequently while in the Japanese military while serving in China as a bodyguard.

As he grew older, post-WWII, his philosophy and style became much softer and more spiritual than the styles he studied in his younger days. This was due, in part, to his age (changing perspective and physical decline) and the influence of the Omoto-kyo. In these later days, the purpose of training with weapons were twofold: help students learn body dynamics and learn to defend oneself against an armed attacker. The purpose wasn't to be armed and gut your enemies, the purpose was to understand the mindset of an armed aggressor, know their movements, and meet their movements without being gutted yourself.

<comment><USER21> Softer in the sense of not attacking directly as much, but still dangerous.

I've heard (second-hand) a story about a high-level practitioner who got to spar with O-Sensei and at times he felt like he might not survive.

</comment></comment></comment></comment><comment><USER22> Wing Chun. Shortest attacks from point A to point B. Get the issue over with fast. No fancy kicks or meta moves. You train in what you wear everyday. It also has an amazing history. Unlike Karate which has hard movements, like most forms of Gung Fu, it all revolves around flowing, snapping and potential energy.

Beautiful, but pragmatic.

<comment><USER23> I've been practicing Wing Chun for 5 years now, and I must say it's probably the martial art that would suit a programmer mind the best.

Very logic, geometric.

It's a lot like C. Not so many basic "constructs" (no "batteries included"), but you can combine the basics to do powerful stuff.

</comment></comment><comment><USER17> Growing up we watched tons of martial art related shows because they "looked cool", but while my brothers took some courses I never did (I was teaching myself BASIC). Being older and seeing life a bit differently I see martial arts differently as well. I stumbled across a new show where I was surprised to see childhood action-hero Steven Seagal as a real sheriff. It's a good example to me of the real, rather than tv side, of martial arts, and I'd probably study Aikido if I got into something. Check this out: [http://www.aetv.com/steven-seagal- lawman/video/?bcpid=468810...](http://www.aetv.com/steven-seagal- lawman/video/?bcpid=46881070001&bclid=36527476001&bctid=62686404001)

<comment><USER24> I second Aikido for a software developer martial art. It requires no physical force to apply techniques and control opponents (if you're a big burly guy your learning of Aikido will actually be hampered because the technique will work even if you don't do it properly), which is probably what you want if you're of average programmer build.

If you like attacking, Aikido is not for you though. The movements are strictly defensive.

</comment></comment><comment><USER25> Though not entirely an answer to the question: I've never found any aspect of my martial art of choice (jiu-jitsu) particularly beneficial to my life as a software developer. At most, I think practicing sports helps to keep a healthy body as the counterpart to a healthy mind. In general, I think there are principles of martial arts that can serve as adequate analogies to principles in software engineering (know your tools, be aware of your enemies, use the path of the least resistance, practice makes perfect, it pays to broaden your skills, ...) but knowledge and understanding of those principles is not bound to actually practicing them.

</comment><comment><USER26> I used to do kendo and loved it. I tried taking a kung fu course for a phys. ed. requirement at college and hated it.

Martial arts are not some magical thing you do; this isn't anime, people. They're just highly refined methods of bringing the hurt to someone.

Kendo was very good exercise; the time we did 1,200 suburi for the new year (100 per month) was quite the workout. I regret dropping it due to schedule problems. However much I enjoyed it, though, I don't really think it conferred any special advantages to me as an engineer compared to any other form of exercise.

</comment><comment><USER27> I can only speak for the Chinese Martial Art I have trained and been exposed to - Wing Chun and Choy Li Futt. It is now a way of life for me. Primarily, I am a Wing Chun practitioner.

If you are using the Agile methodology, Wing Chun would be good. It emphasizes 1) adapting to change - This is especially true in the second form "Chum Kil" which transition from one position to another 2) least wastage - punch is a straight line to the target 3) cooperation to achieve a single target - <USER2> punch in Wing Chun is the utilization of the powers of your leg, hips, torso, shoulder, elbow transferred to the fist 4) getting immediate feedback - <USER3> chi sao (sticking hands) exercise trains you to be sensitive and look for places to enter 5) respect of difference of opinions - a tan sao can be used as to defend or attack depending on the person

If your SDLC is a waterfall method, try Choy Li Futt. Things I learned from this are 1) Commitment to a set of combination early - I have combos in Choy Li Futt which I carry through all the way, regardless of what the opponent does. The decision of what to do is made after assessing the situation (aka requirements gathering) and before the first strike

2) Using a different approach to a problem - My favorite strikes from this style is the spinning elbow and using the forearm as a striking weapon

The primary difference to me is that Choy Li Futt is a brute force solution to a problem and Wing Chun depends more on an algorithm to resolve the problem

Good luck!

</comment><comment><USER28> I think any martial arts taken seriously is good for you. You realize that mastery comes w/ only years of practice and don't develop that short sightedness of thinking you will hit a homerun on your first time (competing). My martial arts training has tempered my own patience. If I get impatient as to why I am not getting something already, I go back to what I tell my own students: If you haven't done it a 1000 times yet, it's ok that it's not great yet, don't be frustrated. Practice practice practice.

<comment><USER29> Agreed.

I find martial arts discussions funny. More often than not it's a bunch of people arguing over which one is the "best" in a "real-world fight", which usually degrades into arguments over what "real-world fights" are like, because none of them has ever actually _been_ in one. But it's pretty silly: I know I'd have fun in _any_ martial art right now. If I wanted to know how to fight someone for real, I'd study some form of military combat.

</comment></comment><comment> bjelkeman-again I went back to classic karate after a really long brake, Okinawan Goju-Ryu Karate, and it is really making a big difference to my life. Goju-Ryu is quite physical in the training, which means that most training passes give you a really good workout.

There are a number of things which I find particularly beneficial to my work (I am not programmer as such, but a founder of an internet services startup), some fairly obvious:

\- It is great to be forced to use another part of the brain regularly, my body may be tired but my head is less tired after each training pass, it is like an energy injection

\- I am physically much fitter now, 15 months after I started, this may be obvious, but it makes a big difference to how much work I can do and how well I feel

\- my wife tells me I don't stall or give up so easily anymore when I have more work to do, particularly stuff at home

\- I am forced to leave work on training days (I work from home) and not stay and, ineffectively, trying to get more done. I feel like I am more effective, despite the hours that go to training and commuting back and forth to the dojo

\- I have no back problems or issues with circulation in my legs anymore, I tend to spend a lot of time sitting working, this is great

My club and the particular style I practise doesn't put much emphasis on competition (it is actually discouraged) which means that there is a really helpful, non-macho, atmosphere at the dojo. Everybody is very helpful and the training really becomes about self improvement rather than trying to be better than the others. It helps that we have some really excellent trainers as well. The head of the club is well respected internationally for his work. <http://www.iogkf.se/>

</comment><comment><USER30> I really like this thread for its information content about different styles. I have a few general comments:

\- The school/teacher is much more important than the style. Make sure you find a teacher than is not profit oriented or arrogant. Signs of a bad teacher: has his face on the wall, has his name on the school, won't talk to you when you visit, tolerates bad attitude amongst his students.

\- Martial-arts is essentially applied classical mechanics. Leverage, angle, distance, bone structure, hip turning... make sure people explain this to you instead of talking about tigers, praying mantii or age old traditions.

\- practice horse stance on your own: it's the shit ! <http://images.google.ca/images?q=horse+stance>

\- I highly recommend wing chun kung fu. You learn a few basic moves and then you can combine them like lego pieces. Check out these doods controlling the space in front of them in a RELAXED manner: <http://www.youtube.com/watch?v=OFuqC6CTKV8>

</comment><comment><USER31> Karate(shotokan) made me more disciplined and taught me to endure pain. That comes in handy in dealing with a dumb boss, a nagging client, or any of the overall suck-y conditions we work with everyday.

Also, sparring amazingly taught me to control my thoughts to achieve a certain goal. So it helps when chasing bugs to clear your mind and organize your thoughts.

Sadly, i don't practice anymore.

</comment><comment><USER32> Have a look at Wing Chun Kung Fu. Amazingly complicated and deep. Every move is defence and attack at the same time using minimum energy, quite relevant nowadays.

<comment><USER33> Another vote for Wing Chun for being great. I trained several martial arts in my youth and here are my thoughts on some of them that I have at least some experience with.

\- Taekwondo (and karate styles) - do them if you're in it for sport factor. They are mostly based on "hard style" which means physical training, repetition, power and endurance.

\- Wing Chun - Excellent kung fu MA and probably the easiest to get into (Wushu being the oposite and acrobatic). Great ROI on time invested and no need for hard training.

\- Jiu Jitsu - excellent complementary MA for kung fu styles (like wing chun or wushu) since they are considered "weak" on the floor.

\- Shorinji Kempo - probably the most balanced MA out of them all I've seen (I'll explain later)

\- Kenjutsu - if you'd like to train with the sword :)

What you have to realize though is that you're not in it to be a ninja or whatever, you'll not fight anyone on the streets flying all over and shooting power orbs (right?), so you have to ask yourself what you'd like to train for.

As a fellow that sits around computers for long times I recommend one of these:

a) \- Qigong - this is the base for everything, you will feel health benefits from it and geenrally feel more power flowing through you. If you can pick only one do this. Wing Chun is 99% accompanied with Qigong (also sometimes called Chi gung, kung) practice.

you can accompany Qigong with either Wing Chun (and Jiu Jitsu) if you want to train to be a competent defensive fighter or you can substitute Wing Chun with Tai Chi (Chuan) which is basically a battle version of Qigong so you can train only Tai Chi.

or b)

\- train Shorinji Kempo and accompany it with Qigong

I also hear rather good things about Aikido and Hapkido, but I have no exposure to them.

</comment></comment><comment><USER34> I think any martial art is beneficial as the very nature forces you to stop thinking about programming. I've personally chosen Muay Thai as it puts special emphasis on physical conditioning, and I tend to work best not stressing (or thinking about) how I'm going to get my day's exercise.

<comment><USER35> I agree. The idea that a martial art can help with programming is a bit of a carryover from when they were considered 'mystical' or 'dangerous' in the mid- late 1970s/early 1980s. Having studied a few and wrestled in HS, I would agree that the real benefit they have is taking your mind off of work, getting exercise, and beating people up/getting beat up. It's _fun_ , and that's what exercise should be.

So, do what you want and work hard at it. Don't try to think there's any mystical connection between the body and mind that a martial art can help cultivate.

<comment><USER36> I went looking for the same thing and found it hard to separate the philosophy (and, with certain martial arts like wing chun, the internal politicizing) and history of the art from the practice of it. I found I wanted something deeper to be there, and there wasn't.

I occasionally row, and instead I did boxing for a while, and with both my focus was on form and mechanics over physical conditioning (yes, there's lots of form in boxing). The "exercise" is a natural outgrown of the deliberate practice.

I didn't work up enough physical conditioning that they let me spar, but I intend to go back for it.

</comment></comment></comment><comment><USER37> i have no idea how martial arts would help my programming other than some kind of meditation-centric art (shaolin?). i do arnis/eskrima, which are philipino martial arts. the hand to hand is similar to muay thai but a little more focus on defense like locks. the stick fighting is neat because your reflexes improve and you learn how to move (good for sparring). i imagine most weapons classes would be good to sharpen your hand-eye coordination.

</comment><comment><USER38> Just like it's important to learn multiple languages to be a well-rounded programmer, you should train in multiple styles of martial arts to become a well-rounded fighter.

I recommend kickboxing for learning fundamentals of open-hand stand up fighting, Sambo or BJJ for ground fighting, and Filipino martial arts (Kali/Arnis/Eskrima) for weapons and to tie it all together. Wing Chun fits in nicely as well, and JKD is worth your time too.

I echo the sentiments of the people who say it's less about the style than the teacher. A good teacher will expose you to outside concepts. A good teacher will teach you to be practical and not flashy. I strongly recommend you focus on practicality. Always ask yourself, "how will this actually help me if I have to defend myself?" I've seen practitioners of certain styles get completely taken down because they were not taught to be practical - <USER4> to do with the style per se, but they didn't have good teachers. In particular, I recall a Tae Kwan Do fighter try to use spinning kicks while sparring. As soon as he started to turn his back, his opponent simply stepped forward and kicked him in the balls from behind.

Value practicality over all else.

</comment><comment><USER19> doesn't matter as long as there is sparring. martial arts without sparring is a dance class. martial arts with sparring is an unmissable experience.

<comment><USER10> I agree completely, especially free sparring with few rules. Getting punched (or kicked) is an important experience to have and understand. The parasympathetic response is so powerful, the only way to truly understand it is to go through it.

</comment></comment><comment><USER39> Doesn't really matter. Pick a few that interest you and try them out for a month. Try at least two different schools for each style. Saying Tien Shan Pai sucks and Liu He Ba Fa rocks, makes no sense. It's just whatever works for you. I know a guy that was absolutely in love with Hsing Yi Quan, had studied it for 20 years. I found it intolerably boring. Tang Lang on the other hand was a blast.

A lot of it depends on the vibe of the school as well. That's why I say try a couple.

If you want to ground and pound, and that's what gets you off, try a bit of some grappling styles. BJJ is ok, but depending on where you live there's probably some modern style schools you can give a go at also (usually some combo of Muay Thai and some kind of grappling).

If you want to enjoy something with a long history, and steep yourself in the culture, try some kind of Kung Fu style. I find Chinese styles exercise different parts of the brain I don't use as much for engineering and actually can be very relaxing. Most of it is highly impractical in a modern setting, but it's like studying painting or calligraphy or some such.

If you want to be tightly disciplined, Japanese styles, with their strict emphasis on form, ceremony and procedure can be highly enjoyable. I liked my brief study of Shotokan for just that reason, it allowed me to turn off the self-discipline for a bit and let something else take charge.

If you want something you can maybe take to high levels of sport and competition, Tae Kwon Do is probably the place to go. There are a bajillion TKD places around, so choose wisely. Lots of them will be belt-mills selling personal fitness more than the Olympic sport. Try to find a school with lots of Korean students.

But there are others, off the beaten path you can try and have fun with too like Escrima or Capoeira.

</comment><comment><USER40> If you're not concerned with practicality at all, Capoiera is worth a look. It's a much slower martial art (especially Angola), and tends to focus more on prediction and setting the other player up. How movements flow into each other is a significant consideration as well. I wouldn't ever use it in a fight. But it's more approachable as a casual interest.

</comment><comment><USER41> I studied karate for years. I would recommend finding something with a strong heritage to traditional martial arts - this is more important than style, you should be able to trace the lineage of your teachers back to someone notable. [http://www.amazon.com/Moving-Zen-Journey-Bushido- Warrior/dp/...](http://www.amazon.com/Moving-Zen-Journey-Bushido- Warrior/dp/4770027559/ref=sr_1_1?ie=UTF8&s=books&qid=1267389123&sr=8-1) this is a nice book regarding this topic. I personally would recommend tai chi or karate over kendo. imho, kendo is not exactly practical these days, it tends to be a bit stuffy for me and in most karate schools you will get weapons training after you advance far enough.

</comment><comment><USER42> Taekwondo. Lacks mystical energy crap, and is practical.

<comment><USER10> I don't know. It's always seemed more about point scoring. When we practiced against advanced students, they relied too much on kicks which aren't very practical against anyone who knows to move in. The sparring is too controlled. Plus, in real life you aren't wearing padding.

That's just my take. But then I think _some_ of the mystical "crap" has a physiological basis. How many of us breathe deeply?

<comment><USER43> The reality is that most people don't need or have much use for practical fighting skills, they need practical running skills.

Modern Taekwondo is a _sport_ and it can be great fun. If you can find a good school that isn't just a belt factory, it's well worth doing. Particularly if they teach a little Hapkido on the side.

<comment><USER34> When you're in a confrontation, there's either fight or flight. The practitioners of parkour consider it a martial art in that it represents the "flight" aspect.

</comment></comment></comment></comment><comment><USER44> Not a martial art exactly but I would say fencing without a doubt. It's like physical chess

<comment><USER45> It is a martial art; it's just not an Asian martial art.

<comment><USER46> Swordfighting is a [set of] martial art[s]. Fencing is a sport. Unless you find a teacher who's interested in things like targetting vulnerable spots, putting power behind a strike and maintaining defense after a point is scored.

</comment></comment></comment><comment><USER47> Bujinkan Budo Taijutsu. Practical and Powerful. Great lineage. Check it out.

</comment><comment><USER48> I'd recommend Eskrima/Kali (Philipino martial arts) if you can find a teacher near you. Eskrima builds strong and flexible wrists in a way that most other arts don't.

<http://www.youtube.com/watch?v=rckWVZl_GsA>

Another reason I prefer Philipino martial arts to Japanese arts is that the latter tends to be rigid and emphasize gatekeeping. When I studied Kendo, the attitude was "level up before we let you spar". In contrast, I got my ass whooped one month into Eskrima. (Obviously this is also highly dependent on the teacher.)

</comment><comment><USER49> My vote is for Brazilian Jiu Jitsu (Gi or No Gi), Boxing, or Kickboxing (Muay thai).

I think BJJ will especially appeal to the nerd in you, I'm not sure why, but it does. The awesome thing about BJJ is you don't need to be very athletic to be good. Its also a very practical art and you'll get to spar everyday. In terms of self development, BJJ will crush your soul and teach you what your ego is all about. The BJJ journey is just a rewarding and frustrating as the startup journey, and you'll never stop learning new techniques and things about yourself. Good luck

</comment><comment><USER50> All of you Kung Fu people should come and join <http://kungfupeople.com> Built (Django, Python) by a programmer and a technical project manager.

</comment><comment><USER51> As others have mentioned BJJ because... 1\. A weaker opponent can take down a much stronger/bigger one using leverage and his mind 2\. It's comparable to chess or a mental sport

For a striking example of #1 see this video where Royce Gracie (6'1" 180 lbs) defeats Legendary Sumo Grand Champion Akebono (6'8" 486 lbs) using BJJ. I can't imagine that being possible with any other style of martial arts.

<http://www.youtube.com/watch?v=POJ2T023M4I>

</comment><comment> a-priori I've studied a couple martial arts in various amounts: Judo, Kendo, Tae Kwon Do, and Brazilian Jiu-Jitsu. All are interesting in their own ways, but I recommend Judo and BJJ... or Kendo if you need to vent by beating people with sticks :)

In fact, I would say to try Judo and see what you like about it. If you like the throwing, then stick with Judo. If you like the grappling (which unfortunately, sport Judo mostly lacks these days...) then switch to BJJ.

</comment><comment><USER52> For me personally martial arts helps to build a character which in turn may help you grow as a programmer, but that's an effect of growing as a person. I practice sanda which is similar to muai thai but there are many other arts which focus more on the inner side, and you can gain a lot of concentration and peace by practicing them, which in turns could help you as a programmer when you have to deal with difficult tasks.

</comment><comment><USER53> I've started with searching for a martial art fitting for me 2,5 years ago. I hadn't been training for a quite some time and I really needed to do something about it. I had practiced Judo during my child and early teen years and practiced Tae Kwon Do during college.

I quit both because, in my personal opinion they are too focused on doing one thing fairly well while more or less ignoring other aspects of fighting. For example: I found it very annoying that Judo did not allow any punches or kicks. While Tae Kwon Do didn't allow throws or ground fighting. Basically I was looking for a different look at fighting, be it kicking, punching, locks, throws or fighting with weapons. In my view everything should be possible depending on the context. At that time I found two possible matches (in my neighborhood) for what I was looking for in a martial art: Takeda Ryu and Krav Maga. After having followed three lessons of Takeda Ryu I didn't bother of looking at Krav Maga anymore since Takeda Ryu and the people training at the dojo matched what I was looking for.

So now I have been training Takeda Ryu Kobilza Ha for 2,5 years. I'm still just a beginner and need to learn a lot, but I enjoy training very much and that's what I consider to be the most important. Whatever martial art you like to start make sure you enjoy it and feel safe in the dojo.

I have the impression that it does have an effect on me outside the dojo, although I find it hard to describe what the effect exactly is.

Currently I'm practicing five budo disciplines in Takeda Ryu Kobilza Ha:

\- Aikido (throws, locks ) \- Iaido (swiftly drawing the sword and cutting correctly) \- Jodo (fighting with a stick) \- Jukempo (kicking, punching combined with throws and locks) \- Kendo (fighting with a drawn sword)

If you would like to know more about Takeda Ryu, have a look at <http://istb.info/index.php/home.html> or look at some footage of demonstrations: <http://www.youtube.com/watch?v=INx_CSA_I78> and our main event in Vienna Austria: [http://www.youtube.com/watch?v=4sxtTNjKSsk&](http://www.youtube.com/watch?v=4sxtTNjKSsk&);

ps: This is my own very personal and limited look at martial arts and I do not want to disrespect any Judo, Tae Kwon Do, Krav Maga or any other martial art practitioners.

</comment><comment><USER54> Brazillian Jiu-Jitsu. Fighting is without strikes, instead you have holds, locks and chokes. You win by submitting your opponent, usually on the ground.

It's like chess, but with your body. Combat is very close, but still not aggressive. Many technical and tactical aspects.

Develops strength, endurance, balance, timing and a feeling for moving/rolling. Makes your body slick and flexible.

And it makes you enjoy a better in sex.. seriously ;-)

</comment><comment><USER16> When I was in school I was lucky enough to find a place that offered a mix of wing chun, kali, muay thai, and moves from arts like silat. This was before the MMA/BJJ craze so there was not much "grappling" at the time. I could not find a similar school in the Bay Area so I went to Fairtex. I don't think it developed any skills directly related to programming, but it was a lot of fun.

</comment><comment><USER55> Ignore everything, go with Brazilian Jiujitsu. Saying BJJ doesn´t work in real life is like saying Ruby doesn't scale.

If you want to become a killer machine, learn BJJ, box, wrestling and muay- thai and stop programming. If you want to get fit and exercise your mind and body, train BJJ.

There are plenty of gyms in the US with great black belts. Look for Alliance, Gracie Barra, Paragon, Brotherhood.

</comment><comment><USER56> Definitely Brazilian Jiu Jitsu (BJJ). It's a very effective martial art, and its technical nature makes it a very good fit for an analytical mind. I've only been at it for a few months but so far I love it.

I haven't tried Judo, but I expect that'd be similarly interesting.

</comment><comment><USER15> I do Brazilian Jiu-Jitsu, some boxing and MMA. It's my main hobby and time sink after work. Our gym focuses a lot on conditioning and just good ol' grit. Being mentally broken from conditioning drills makes everything else not as bad.

</comment><comment><USER57> I really like Modern Arnis (10yrs). Repeating patterns everywhere, and soo much variations. The drills have logic, and I assume that programmers can vary their movements much better, as programming values flexibility.

</comment><comment><USER58> Jim Brown in "One Down, Two To Go" (1982):

"I may not know kung fu, but I'm an expert in gun fu."

<http://www.imdb.com/title/tt0086051/quotes>

</comment><comment><USER59> Wow, a fellow Kendo-ka yes i find that martial arts helps overall in all aspects of your life.

<comment><USER59> martial arts is not just about the practicality of techniques, the difference between a '-do' and '-jitsu' is just that e.g. kendo - kenjitsu, judo - jujitsu. jitsu's are primarily focused on techniques and kill, where as do's are focused on the spirituality. there are mutual benefits for both programming and martial arts, with the mind set of a programmer you tend to question and try to understand how your body works as a system. Personally regardless of what martial arts you choose, you will get the same benefits, other than the techniques that you learn, you will find out more about yourself. Whats more important is who is your teacher/master/sensei and the attitude of your peers.

</comment></comment><comment><USER7> No offense, but this is kind of a dumb question. A martial art is not much different from any other sport, programmer or not. Play tennis, box, what's the difference?

My two cents on which martial art to pick is boxing or one of the kickboxing varieties. The "east asian" martial arts schools in your American strip mall practically never emphasize that fighting is 90% physical fitness and strength, and so I regard them as a bit of a joke. Rare is the taekwondo student who'd last three rounds against a golden gloves guy.

I mean, you see fat people coming out of these karate classes. There's very rarely such a thing at a muay thai or boxing gym that actually fields fighters. When I was boxing it wasn't rare for guys to puke.

I suppose nerds want to think fighting is this cerebral thing where all these advanced skills with funny japanese names make the difference. Sorry, it's mostly being able to hit hard and keep doing it a lot for minutes.

<comment><USER60> No offense, but I think your opinion shows why most martial arts are in a state of disgrace right now. Martial arts are very different from one another.

True martial arts are supposed to give you three things: \- Ability for self defense \- Good health (not only physical health) \- Some sense of inner peace, zen, or whatever you may want to call it.

One of the many problems of the current state of things is that most societies are culturally oriented to consume things, the more the better (no offense, but the Americans excel at this). So most people wouldn't want to learn a martial art and start very slowly, nor they would spend 6 months learning the basics. They think that the more you learn, the better.

In martial arts, you learn very little and practice alot. In the past, students would spend 6 months just doing simple movements, one of the reasons was that if you don't get the basics wrong you would not go far. I agree with you that today most people practice martial arts and don't have a clue of how to defend themselves, but in the past if a martial arts master would not know how to fight he would simply end up dead or severely hurt. Nowadays, people want to be able to fight after 2 classes and want to be black belts or masters after one or two years.

A good example of this kind if practice is Muay Thai fighers. They do not show that many techniques, yet they are devastating because they dedicate and practice alot. Another good example of fighting with strategy is BJJ. You see smaller guys with much less strength taking on bigger guys by employing smart strategy.

Either way, there's much more about _martial_ _arts_ than physical strength. My advice is that you first define your aims. What do you want? Be a good fighter? Be in a good shape? Dedicate some time, or just a few hours on the weekend?

Based on your objectives, you will be able to choose wisely.

</comment></comment><comment><USER61> Aikido surely... for when you build something compelling, you can deflect VCs as they come at you and make it look like their fault.

</comment><comment><USER62> Have you considered the Scottish martial art? It's called Fuh Kyou.

(Yes, I deserve every down-mod I get for that)

</comment><comment><USER63> I thought you had typed "Marital Art"…

…my bad. Moving on.

<comment><USER64> Some thoughts should be kept to one's self. I think.

<comment><USER65> Don't miss out on his .94 year long comment history

<http://news.ycombinator.com/threads?id=sambeau>

It sums up to -1 by the way.

<comment><USER63> Seems a bit harsh for what was just a bad pun. But never mind. I certainly wasn't trying to offend anyone.

</comment></comment></comment></comment><comment><USER66> Doesn't matter if you start with python or scheme, but the next one makes you understand more and gets closer to mastery.</comment>


Get off HN and work - <AUTHOR>

Just a friendly nudge from a longtime lurker-<p>The holiday break has given me some extra bandwidth to stay up-to-date on HN, but I've found myself spending too much time consuming and not enough time producing. Get out there and make something cool! (I'm learning Rails :P) <comment><USER2> Checking out Flask to get off Rails.

</comment><comment><USER3> Trying to figure out how to sed script all of the double spaces in gtypist to single space. I know that the sed line would be:

      sed 's/  / /g';

I'm just not sure how run to through all the files and do the switch. I think I might just do it by hand. Theres only 46 of them.

<comment><USER4> This might help: [http://how- to.wikia.com/wiki/Howto_use_find_and_sed_to_make_...](http://how- to.wikia.com/wiki/Howto_use_find_and_sed_to_make_a_replace_in_multiple_files)

</comment></comment><comment><USER5> Wasting and hour a day on hacker news increased my productivity tremendously. I have had cases where I have a problem and the solution is on first page. Or a simple search can find a lot off good info even better than stackoverflow. Pretty nice side effect for non QA site.

<comment><USER6> totally agree. Working too much without knowing what happens around the world is bad. But I am sometimes stuck in one side of these, too much involving social or too much working. Finding my own balance

</comment></comment><comment><USER7> Get off HN and play, there's plenty of time in the new year to work :)

</comment><comment><USER8> I have to take a coding challenge... eventually. It's hard not to procrastinate.

</comment><comment><USER9> And I'm porting the Symfony2 profiler over to Silex :)

<comment><USER10> Working on a twitter bot.

</comment></comment><comment><USER11> n im reading this on HN</comment>


Why Can't Broadband be Free Too? - <AUTHOR> http://www.markevanstech.com/2008/02/25/why-cant-broadband-be-free-too/ <comment><USER2> From the article: Shouldn't the ISPs be paying YouTube a co-marketing fee?

No. Firstly, this undermines the argument because if my ISP pays YouTube then how would my ISP give me a free broadband connection? Secondly, such payment is premature optimisation. This makes it harder for superior alternatives to come to the fore. This is a core argument of network neutrality.

So, I'd vastly prefer a level playing field with flat rate access rather than a free service offered on terms suitable to vested interests.

</comment><comment><USER3> Oh... and a pony! I'd really like ponies to be free too, please.

If that's too much snark for you, google the phrase "Regulatory Capture." Enjoy!</comment>


WideArea – Better Textarea - <AUTHOR> http://usablica.github.io/widearea/ <comment><USER2> It looks like this hasn't been updated in five years, and with a list of open issues it makes me wonder why you'd post it?</comment>


The problem with public universities - <AUTHOR> http://www.las.illinois.edu/students/requirements/gened/#grid

<comment><USER2> I don't understand your point. If you want purely technical training, go to IIT or ITT or MIT. Universities exist to give well rounded education.</comment>


Show HN: We snapshotted some products and tagged them - <AUTHOR> https://uxhunt.browsee.io/ <comment><AUTHOR> We love to explore various user experience flows of top-notch products and thought we would share our learnings with fellow makers. We thought what better way to share than to take snapshots of various UX components. We also tagged them to make it easily searchable by elements like cards, tables, signup forms, etc. You can search for your favorite product to get some inspiration from their flows. We have also curated multiple insights under our story section for onboarding, signup forms, signup buttons, etc. Looking for feedback!</comment>


Mozilla research: Browsing histories are unique enough to identify users - <AUTHOR> https://www.zdnet.com/article/mozilla-research-browsing-histories-are-unique-enough-to-reliably-identify-users/ <comment><USER3> I feel inclined to say "... well yeah, obviously".

Not in the "obvious in retrospect" way, but because browsers have been progressively blocking history-sniffing tactics for _years_ precisely because advertisers were using it to identify visitors.

Did this research... establish better numbers around it or something?

<comment><USER4> > Did this research... establish better numbers around it or something?

>> However, this time around, since the data was collected from Firefox itself and not through a web page performing a time-lengthy CSS test, the data was much more accurate and reliable. Furthermore, the data Mozilla researchers collected is also about the same type of data that today's online analytics companies also collect about users — either through data partnerships, mobile apps, online ads, or other mechanisms.

<comment><USER5> Needs to be specified that this was an opt-in study that you had to agree to.

<comment><USER4> Is no one in this thread going to read this article? Seriously, it isn't that long. RTFM

>> The new experiment got underway between July 16 and August 13, 2019, when Mozilla prompted Firefox users to take part of this experiment.

>> Mozilla researchers said that more than 52,000 users agreed to take part and agreed to provide anonymous browsing data.

<comment><USER6> Clearly not actually anonymous browsing data in actuality though... which is why we should always take claims that telemetry data is anonymized with a grain of salt.

<comment><USER7> Anonymous as in the only thing they're getting is a random identifier and browsing data.

</comment></comment></comment></comment></comment></comment><comment><USER8> Who is able to get access to my browser history? I thought it was just my ISP/VPN, which can obviously track me better in other ways.

<comment><USER9> Consider for example, that many pages use remotely loaded resources.

I would think things like Facebook/Twitter like buttons or Google Fonts might make it to assemble this history. Sites like FB are said to maintain "Shadow Profiles" of people, even when those people aren't using their service directly.

I suppose in theory any sufficiently shared infrastructures such as AWS/Cloudflare could do so as well, but they are disincentivized to do so.

<comment><USER10> Would using Firefox's 'Containers' help prevent this? As far as I understand they quarantine the Facebook pages so they can't get data from other websites you visit.

<comment><USER11> DNS resolve measurement to see if it is cached by the OS can potentially breach that.

<comment><USER12> Can JavaScript measure DNS resolve time?

<comment><USER11> I think only indirectly, but if they control the endpoint they can ping you back, subtract rtt from initial request response time and then the difference from that can tell them whether initial request was cached in dns or not.

<comment><USER12> Just so I understand correctly, does that mean you then need to control the end point of every site you want to use as part of fingerprinting?

If so, wouldn't that drastically reduce the effectiveness of using DNS resolve times as a work around for Firefox containers?

Not trying to be argumentative here, just trying to understand how effective the sandboxing is, or whether I need to design more layers of indirection. :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> That's hardly surprising. I mean browsers hand out willingly plenty of information that could be used for pretty accurate identifications. Just scrolling through my scores on amiunique[1], many of the parameters put me in the 0.01% category.

[1] [https://amiunique.org/fp](https://amiunique.org/fp)

<comment><USER14> If you want to be less unique on amiunique.org/fp

1\. Visit the site 2\. Delete your browser cookies 3\. Refresh 4\. Repeat the steps until you're less unique

<comment><USER15> Or you know, just block JS.

<comment><USER16> Congratulations, you just broke 90% of the modern web. Might as well go directly to Gopher.

<comment><USER17> Congratualations on never actually bothering to block JS and find out - <USER2> know, facts. From actually doing so over many years, and so from actual experience I'd say completely non-functinal sites are about 25%.

<comment><USER18> I'd put the number quite a bit lower than that, probably comfortably under 10% of sites I interact with, though the trend is definitely upwards, drastically so among interactive things (which are probably worse than 50% broken these days).

</comment></comment></comment></comment></comment></comment><comment><USER19> To this me and a friend started sketching on a VPN/HTTP proxy that will have a set of say 100 outgoing IPs, look at the domains being connected to and distribute request destinations over IPs.

So e.g. Google would always see the same IP, which would be different from the one Facebook sees.

While access times cross-references and identification is still theoretically possible, it should be an entirely different game.

Would anyone else reading this be interested in working on this or joining in? I'm not thinking to make it a startup or business per se but 1) reliable IPs are a bit too expensive to make sense for just 1 person 2) anonymity in numbers.

I'm thinking ideal would be something FOSS and easy to self-host and replicate so you can pool together a group of friends for a shared VPN among semi- trusted parties (at least the user should trust the operator to not index requests and sell the data, and the operator should trust users to not run botnets)

<comment><USER20> I think an easier approach is that once you have good IPv6 connectivity you could do something like a unique address per day per host. Every device could have 100M ip addresses and it wouldn't touch the IPv6 address space (10 billion humans * 100 devices = 0.000005% of the IPv6 address space).

Edit: My math is wrong. I thought IPv6 was 2^64, but it's actually 2^128, so that percentage is 10^20 times more miniscule.

<comment><USER19> In that scenario those 100 IPv6 addresses in the subnet would be practically equivalent to an IPv4 address today and would provide no extra benefit.

<comment><USER21> It would if hundreds of different users came through those IPs, wouldn't it?

</comment></comment></comment></comment><comment><USER22> Here in the UK, date of birth and post code is enough to identify something like 95% of people. Anonymised data sets are not really possible once you have more than a few varriables. Most people don't know this.

<comment><USER23> Isn't a postal code about 50-100 houses? It really narrows things down.

That particular variable really reduces things.

<comment><USER4> That's a bit insane. I looked up US numbers to check and got around 8k/zip code[0]

[0] [https://www.zip-codes.com/zip-code-statistics.asp](https://www.zip- codes.com/zip-code-statistics.asp)

<comment><USER24> In Ireland, we use Eircode with one house per postcode. This is very handy because you don't need to type in your full address on a lot of websites, just the Eircode.

The first three digits of an Eircode are more like a traditional postcode in that they indicate your area/town but the next four are randomised for each address.

<comment><USER25> Man, that sounds so convenient. I kind of wish everywhere had that minus the privacy factors

</comment></comment></comment></comment></comment><comment><USER26> Intuitively there are tons of things we do on our computers that uniquely identify. I am sure the adware companies know a ton more and are not public too. The need for strict privacy preserving tech is needed across the whole stack.

</comment><comment><USER27> By looking at all the data available to untrusted sites (as seen in [https://amiunique.org/fp](https://amiunique.org/fp)) you can tell that Web is many many years away from being privacy conscious. List of fonts, canvas fingerprinting, timezone, OS, user agent... the list goes on and on. Those of us who are tech-literate know better than to create tech like this today, but there's just too much momentum (and shady interests) to hot-swap Web for something else.

</comment><comment><USER28> I think this is as stupid as it sounds from the paper - [https://www.usenix.org/conference/soups2020/presentation/bir...](https://www.usenix.org/conference/soups2020/presentation/bird)

Why not "Mozilla research: We asked users for their name and address and the ones telling the truth we could identify"

TOR is fighting identifying users from the screen size of their window when maximised.

Here's the original paper which is more about how you can access the browsers histories - [https://www.petsymposium.org/2012/papers/hotpets12-4-johnny....](https://www.petsymposium.org/2012/papers/hotpets12-4-johnny.pdf)

Can you still access browsers histories? I'd have to guess no way without a zeroday. The original site is down. [http://www.wtikay.com/](http://www.wtikay.com/) Firefox fixed it - [https://bugzilla.mozilla.org/show_bug.cgi?id=147777](https://bugzilla.mozilla.org/show_bug.cgi?id=147777)

</comment><comment><USER29> Wasn't it shown by aol researchers 20 years ago that search histories are uniquely identifying? If so, this seems hardly surprising, as browser history should be a superset of search history.

</comment><comment><USER30> As counterstrategy you can use tools like [http://trackmenot.io/](http://trackmenot.io/)

"TrackMeNot runs as a low-priority background process that periodically issues randomized search-queries to popular search engines, e.g., AOL, Yahoo!, Google, and Bing. It hides users' actual search trails in a cloud of 'ghost' queries, significantly increasing the difficulty of aggregating such data into accurate or identifying user profiles. "

<comment><USER17> I use it as far as I can but it's stopped working in palemoon. The queries it produces aren't very intelligent when you see them and it wouldn't take much NSA/MI5 work to trim much of them out.

I think TMN could be a fair bit smarter.

</comment></comment><comment><USER31> The _Evercookie_ (hard-to-delete cookie-like system in JavaScript) and _Panopticlick_ (browser fingerprinting) projects may also be of interest:

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

[https://panopticlick.eff.org/](https://panopticlick.eff.org/)

</comment><comment><USER32> Interesting. I also think that the browser signature, together with IP address, will probably come very close to uniquely identifying users.

<comment><USER33> I noticed the other day that various chatbots (as in, a single service shared across multiple websites) call me "The University of Texas at Austin", presumably because I have a housemate who works there.

I tried various VPN servers and got called by other company names[0]. It was a good reminder about how we're tracked, and our information may be shared, even with other users.

[0] [https://twitter.com/lkbm/status/1299408670325964802](https://twitter.com/lkbm/status/1299408670325964802)

</comment></comment><comment><USER34> So can DNS queries.

</comment><comment><USER35> I suspect privacy would be better served by taking the approach of the security domain with responsible disclosure to vendors and a concerted effort to attack the problem holistically. Until then we're just giving privacy attackers a heads up and by the time this issue is mitigated their onto the next avenue for bypassing privacy.

</comment><comment><USER36> Time for a browser plugin that will generate random noise - adding junk into history.

<comment><USER37> If it's truly random wouldn't that make you even easier to identify?

<comment><USER38> Not if everyone else uses it too

<comment><USER37> Even if everyone else uses it.

If your random pages are a, b and c but my pages are d, e and f or even a, b and d then it's still easy to fingerprint us.

Extensions like this might work if they visited the same sites all other users visit. Otherwise you're just adding even more unique information for the trackers.

<comment><USER38> But if both our random pages are a, b and c, and the only difference is when or how often I accessed each of those, then making it random for both of us will effectively turn us into the same person.

<comment><USER37> What about all the other pages you visit? How does _adding_ random traffic to your history make you any harder to identify? It just creates more datapoints.

</comment></comment></comment></comment></comment></comment><comment><USER39> If the study establishes that for all practical purposes, online anonymity is impossible to maintain for average users, what are the implications (a) for the average user; (b) for the economy; and (c) for society?

</comment><comment><USER40> Mine certainly i, since I tend to visit the same ten sites over and over again

</comment><comment><USER41> so are amazon/itunes/appstore/googleplay/netflix-views/etc</comment>


Help Employee Rights? - <AUTHOR>

I work for a smallish tech company and regularly do outside tech work. I also have dreams of bootstrapping a startup. Recently we were acquired by a much larger corp.
Now I'm being forced to accept the following company policy:
"All writings, artwork and other creative materials in all media, developments, inventions, techniques, methods, improvements, products, devices, programs, or systems that I shall conceive, develop, or make within the scope of my employment by the Company or that are directly related to such employment, whether or not the same are conceived, developed or made during regular work hours, on the Company's premises or using the Company's systems, shall be divulged to the Company and shall be the sole property of the Company as work made for hire in which the Company shall own all rights whether or not the same are capable of protection under copyright, patent, trademark, trade secret or other intellectual property or proprietary rights laws, and whether or not the Company registers or seeks registration of any copyright, patent or trademark or other proprietary rights in respect therof. In the event that anything I conceive, develop or make with the scope of my employment does not qualify as "work made for hire" under applicable law, I hereby assign to the Company all interest and rights therein. I shall cooperate fully in the establishment and maintenance of all such rights of the Company throughout the world by executing such documents as may reasonably be requested for such purposes such as copyright applications, Letters Patent, And assignments thereof to the Company."
I understand I should probably get legal advice but I'm poor and I'm hoping maybe someone on here has dealt with something similar or has info to share.
Thanks! <comment><USER2> This happened to me about 15 years ago. I looked at it, and crossed off the bits I wasn't comfortable with. In this case, it would be

or that are directly related to such employment, whether or not the same are conceived, developed or made during regular work hours

and

In the event that anything I conceive, develop or make with the scope of my employment does not qualify as "work made for hire" under applicable law, I hereby assign to the Company all interest and rights therein.

and initialed the changes and sent it back. Nobody every said a thing about it.

At every subsequent employer, we negotiated these things satisfactorily prior to hiring.

</comment><comment><AUTHOR> Thanks for the info, appreciate it!</comment>


The Slow, Sad, and Ultimately Predictable Decline of 3-D Printing - <AUTHOR> http://www.inc.com/john-brandon/the-slow-sad-and-ultimately-predictable-decline-of-3d-printing.html <comment><USER2> consumer grade

The Slow, Sad, and Ultimately Predictable Decline of consumer grade 3-D Printing.

Constant advances are made in additive manufacturing as well as subtractive manufacturing (machining). Serious hobbyist probably gets more joy from small CNC milling machine or lathe that works with metal and wood than 3-D printer that squirts out glue.

Buying your own 3-D printer is usually completely unnecessary. There exists many companies that print what you want using high quality equipment if you send them blueprints. Making prototypes and special parts is getting much easier. You can print carbon fiber, titanium etc. or get precision milled parts from the net.</comment>


Ripple 20: Zero-day vulnerabilities in a widely used low-level TCP/IP library - <AUTHOR> https://www.jsof-tech.com/ripple20/ <comment><AUTHOR> From the article:

"The 19 vulnerabilities, given the name Ripple20, affect hundreds of millions of devices (or more) and include multiple remote code execution vulnerabilities. The risks inherent in this situation are high. Just a few examples: data could be stolen off of a printer, an infusion pump behavior changed, or industrial control devices could be made to malfunction. An attacker could hide malicious code within embedded devices for years. One of the vulnerabilities could enable entry from outside into the network boundaries; and this is only a small taste of the potential risks."</comment>


Infograph your Linkedin Resume with a new Toronto Startup. - <AUTHOR> http://www.vizualize.me/

<comment><USER2> The resumé visualizations look beautiful. Certainly adds colour to plain text representation. Glad to see a Toronto startup coming out strong.

I wonder if there's a way to widget-ize the output for a personal site. It would seem that folks with a more sizeable online presence (i.e. an actual personal site) may want to have this show up under their domain as the default representation of their profile in lieu of a text CV.</comment>


NBC Olympics Executive's Email Wasn't "Widely Available" In Google - <AUTHOR> http://searchengineland.com/nbc-olympic-executives-email-wasnt-widely-available-in-google-128973 Danny Sullivan from SearchEngineLand has posted an article regarding the claim by Guy Adams about the NBC official's email being "widely available". Danny says, 'There remains the debate over whether sharing a corporate address is one that's not personal and therefore not a violation of Twitter's rules. I'd say no. Just because someone has a work address doesn't make it not personal. It's their personal work email.' <comment><AUTHOR> Danny Sullivan from SearchEngineLand finds out more regarding the claim by Guy Adams about the NBC official's email being "widely available". Although a google search for his email (at this moment) yields thousands of results, prior to the whole uproar its a very different story.

A very reasonable post about this whole issue. Thanks Danny !</comment>


Typist - Add animated typing text to any block element - <AUTHOR> http://davidcrawford.github.com/typist-jquery/

<comment><USER2> Nifty. Similar to our own Typer: <http://cosmos.layervault.com/typer-js.html>

<comment><AUTHOR> Nice. I like the design of your page! Is the highlight/retype effect in your demo part of the plugin?

<comment><USER2> Yep. And it's all configurable.

</comment></comment></comment><comment><USER3> Very cool, adding to my list of things that I will immediately start trying to use irrespective of actual need or requirement!

Fyi, debug is still on for your chartulo.us site, after watching the animated typing produce a url, that url leads to the django yellow 404 :)

<comment><AUTHOR> Ah, thanks! I turned it on to find an issue and forgot to turn it back off. Will do that now!

</comment></comment><comment><USER4> This is pretty neat! But I have to say, my biggest pet peeve is a library or chunk of code that doesn't have a demo on the same page. It would be nice to see that "terminal" on your plugin site.

<comment><AUTHOR> Thanks for checking it out. You're right, I'll add that demo today.

</comment></comment><comment><USER5> The 'echo' visuals are somewhat odd. Ever since the 90s, I think pretty much any programs' console output has been instant.

Would probably look better if echo was instant with a wait time.

</comment><comment><USER6> I'd love if this library were more generic (aka - not necessarily behaving like a terminal, let the implementer make that decision).

<comment><AUTHOR> I went for the 'do one thing simply' interface. I'd be curious what kind of interface you're looking for. Feel free to open an issue on github with some suggestions.</comment></comment>


Quantum Theory Proves That Consciousness Moves to Another Universe After Death - <AUTHOR> https://www.physics-astronomy.org/2019/07/quantum-theory-proves-that.html <comment><USER2> This almost looks like a quack article but then there are prominent names like Hameroff and Stanza in the article which leaves me very confused. Why would such intelligent people engage this kind of pseudoscientific speculation? Or is there some scientific evidence for this kind of stuff?</comment>


Final Update on the JetBrains Toolbox. Open Letter by JetBrains CEO - <AUTHOR> https://www.jetbrains.com/company/press/pr_180915.html <comment><USER2> And that kids is how it is done - anchor at something unacceptable as a starting point, so you can fallback to the deal you really wanted.</comment>


Announcing Vue.js 2.0 - <AUTHOR> https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9#.t4ssx4l9s <comment><USER3> > Despite being a full rewrite, the API is largely compatible with 1.0 with > the exception of some intentional deprecation.

This guy gets it.

<comment><USER4> Yes, backward-compatibility is the key to keep a framework long-living. I was trying to adopt Angular 1.x, but wait, the code I'm going to write will be deprecated soon?

</comment></comment><comment><USER5> Vue.js is amazing. I've been using it on one of my side projects and I've been so productive with it that I can't see myself ever using anything else. It's like a mix of React, Angular and Knockout all in one package.

<comment><USER6> Anything in particular you like about it? I'm trying to find a reason to learn Vue, but I like React so damn much!

<comment><USER7> I love it since it somehow feels like a lighter and less opinionated version of Angular. I could basically guess myself to how to use it, and there's pretty few pitfalls/gotchas.

Also there's a Chrome Devtool for it and the debug mode is helpful.

</comment></comment></comment><comment><USER8> Congratulations on your launch, but I couldn't tell what Vue was from this announcement post. I wish articles like this could include even just one sentence at the beginning that looks like this:

        Vue.js is a library for building interactive web
        interfaces. It provides data-reactive components
        with a simple and flexible API.

(pulled from their GitHub README, which I was only able to find because of the comment here on HN from cdnsteve fifteen minutes ago: [https://news.ycombinator.com/item?id=11582600](https://news.ycombinator.com/item?id=11582600)).

Edit:

Thanks, Evan, for adding the explanatory bit at the top of the post.

<comment><USER9> The main vue.js web site is here: [http://vuejs.org/](http://vuejs.org/)

<comment><USER10> That's still one click too far. It wouldn't cost anything to add a single line of text on top, while arguably persuading more newcomers to try and learn Vue.

Which is great, BTW, I used it in a couple of projects with LiveScript and it was a pleasure. It doesn't assume much about your code and you can fit it in any kind of architecture you happen to have. Good to see a progress here!

EDIT: wait, it's already there (the mention what Vue.js is) in the article:

> In case you've never heard of Vue.js before: Vue.js is a front-end framework > that consists of a core view layer and accompanying tools & supporting > libraries. You can read a high-level introduction to what makes it different > here.

</comment></comment></comment><comment><USER11> Thanks for all of your work Evan :)

Vue was the first JS framework that made sense to me for projects that needed more than online jQuery and not a full SPA app.

<comment><USER12> I always thought React was a good one step above jQuery. What made you choose Vue?

<comment><USER13> It's really easy to just pull Vue in via a script tag and get going with a data driven application. No build step required. You can take it much much further of course, but the beginner story is really compelling.

<comment><USER14> FYI, you can do that with react as well.

</comment></comment></comment></comment><comment><USER15> I'm not an expert on either, but my understanding was that Vue's advantage over React was that since it had no virtual DOM you were free to manipulate the DOM more freely without running into trouble. Now that Vue has its own virtual DOM it is harder for me to see the difference from React. Many of the positives listed both here and on the Vue site could also be said about Knockout, which I still am currently using at the moment (though I'm likely moving to React soon).

<comment><AUTHOR> Knockout's perf on large re-renders is below average: [http://mathieuancelin.github.io/js-repaint- perfs/knockout/](http://mathieuancelin.github.io/js-repaint-perfs/knockout/) It also doesn't allow you to use programmatic render functions, nor does it have server-side rendering.

Vue 2.0's vdom implementation is mutation resistant - as long as you don't replace the element directly controlled by Vue (same as 1.0), the rendering will not run into problems. If you are really concerned you can always create a custom component that returns an empty element so that you can do arbitrary manipulations inside.

<comment><USER16> That's exactly why I am switching away from Knockout. I loved every minute of it, but there are features I simply can't deliver on because the perf is too low. There are all sorts of hacks I could do to get around it but that is really going to slow me down.

TBH It's not really the rendering that is slow in my experience. It's the fact that every binding attaches an event handler to the DOM. This can take up to 10s for a reasonably sized grid in IE.

</comment></comment></comment><comment><USER17> Amazing work ! I'm looking forward to test the server-side rendering. The render/template possibility seem a bit confusing, can we mix both in one component ?

<comment><USER18> I am impressed that they implemented auto-hydrating _streaming_ server-side rendering. Is there any other package that does this as streams?

</comment></comment><comment><USER19> I am a huge fan of Vue (which at work, we pronounce "Voo" to not confuse views as in "templates" or views as in "look of something"). Really appreciate all the work Evan You has put into it, it's delightful to work with.

It would be awesome if the vue-router, vue-resource, and vuex libs could be baked in somehow, if only to have them officially supported. All the same, it's great as is!

<comment><USER20> Big fan of Vue myself as well. Based on interviews I've heard with Evan, it sounds like his strategy for Vue is to intentionally keep those separate. I think the idea is that Vue's "place in the world" compared to other js frameworks is one that's easy to begin with but offers more complex tools for more advanced requirements as they're needed -- but not complicating the basic/simple/beginner use case with everything all at once.

</comment></comment><comment><USER21> Hard to find in article:

Git source: [https://github.com/vuejs/vue/tree/next/](https://github.com/vuejs/vue/tree/next/)

Examples: [https://github.com/vuejs/vue/tree/next/examples](https://github.com/vuejs/vue/tree/next/examples)

</comment><comment><USER22> Awesome work Evan!

I've been using Vue for a new project and it's a joy to use. It makes a lot more sense to me than any of the alternatives.

</comment><comment><USER23> It's easy to pick up Vue and start hacking at it right away. I'm currently using it for a production app right now (in development) after evaluating other options, it's super productive. I'm excited for 2.0!

</comment><comment><USER24> As far as the API goes, looks like one of the big changes is dropping vm.$dispatch and vm.$broadcast. I see a mention of a global event bus - <USER2> there any examples of that somewhere?

<comment><USER25> [https://github.com/vuejs/vue/wiki/2.0-features#how-to- deal-w...](https://github.com/vuejs/vue/wiki/2.0-features#how-to-deal-with- deprecation-of-dispatch-and-broadcast)

<comment><USER24> That's a lot easier to reason about than broadcast and dispatch; I like the change.

</comment></comment></comment><comment><USER26> Riot is a very similar library, worth a look.

[http://riotjs.com/](http://riotjs.com/)

<comment><USER27> VueJS is very similar to Riot, worth a look.

[http://vuejs.org](http://vuejs.org)

</comment></comment><comment><USER28> does anyone write single-file Vue components in Emacs? If you do - how do you configure it to have language-dependent things like flycheck and syntax highlighting working correctly in different blocks of the component file?

</comment><comment><USER29> What are the advantages of using this over react?

</comment><comment><USER30> Wonderful! Vue is my favorite

</comment><comment><USER31> Thanks for all of your work Evan :)

</comment><comment><USER32> Great job!

</comment><comment><USER33> Awesome work!

</comment><comment><USER33> Awesome work

</comment><comment><USER34> nice

</comment><comment><USER35> damn good!!!

</comment><comment><USER36> Great work! Thanks for all of your work!

</comment><comment><USER37> 原本想用angular2作为项目基础框架,阴差阳错用了vuejs,配合其他插件做spa,现在已经非常喜欢它了,更新到2.0这个里程碑,恭喜。</comment>


Ask HN: Is anyone else on Hacker News using Windows Azure? - <AUTHOR>

I am using SQL Azure, blob storage, 2 web roles and 1 worker role. I have Accelerator for websites set up to allow ease of deployment for multiple websites on the same shared instances :) <comment><USER2> Using it for my blog, and planning to use for my company's site soon. We'll have 2-3 web roles, SQL Azure, and possibly 2 worker roles in the future. Table storage for logging, and blob storage for cached versions of custom minification and bundling process, as well as for thousands of images.

It's very nice that you can define your app and then assign resources to it after the fact. As long as designed properly from the start to support this model things seem to work really well.

My main gripes about it are the limitations of SQL Azure -- no cross db joins, mysterious performance throttling. Federations seems like a KILLER feature, but for it's own limitations (no cross-db again, and no support for something like distributed/partitioned views, because the partitioning basically has to be determined at the application level). I want this scale out feature to take place at the database level if possible, the way partitioned views do in SQL Server Enterprise Edition. DO I really want to manually handle fan-out queries to make sure that no two users get the same user name? No.

I'm hoping they will improve the SQL Azure story in 2013 because it could mean the difference for myself and people I know of moving only some apps to Azure vs. moving everything.

</comment><comment><USER3> I use it for my startup. I use SQL Azure, table and blob storage, worker roles and web roles.

</comment><comment><USER2> What is "Accelerator for websites"?</comment>


Uber employees can work remotely through June 2021 - <AUTHOR> https://www.cnbc.com/2020/08/04/uber-employees-can-work-remotely-through-june-2021.html <comment><USER2> I assume by "Uber empolyees" they mean the developers and managers and not the employees in the field (drivers)? The article is not clear on that.</comment>


Blindly speculating on Twitter's future - <AUTHOR> http://www.marco.org/2012/08/02/twitter-speculation

<comment><USER2> I think Facebook is fine. For all the yammering about how going public is forcing them to change, the reality is that FB is just doing what FB has always done- trying things out and promoting their vision of sharing. Some plans work, some don't, but it's nothing to do with chasing revenue. Lazy common wisdom narrative is lazy.

Twitter, on the other hand, seems like it's destined for a crash. Not yet, they haven't pissed off the users yet, but they're headed in that direction. They're clearly taking control of how tweets are consumed with a plan to make them more annoying via revenue seeking. It's going to be a mistake.

Facebook has tremendously strong user lock-in, which people here tend to dramatically underestimate. It's a true social network of people with mostly real-world ties. Moving people off that will have to take place en masse or it won't happen.

Twitter, though, has very very weak lock-in. Unlike FB, the most use of Twitter comes from a small number of accounts. The entire service is driven by a handful of percent of the users. If they leave, the service is dead. And they'll go whereever they can build an audience.

Google+ stands to gain from Twitter's missteps, and that's where they should be aiming. G+ has zero hope of taking on FB, but they could siphon off Twitter completely once Twitter starts pissing off the few users who matter there.

<comment><USER3> Facebook also has a huge personal history for each user- photos, etc. While Twitter does too, I don't know anyone that cares about their past tweets as much as their past photos.</comment></comment>


Show HN: Credit Card UI with Swift - <AUTHOR> https://github.com/MobileFirstInc/MFCard <comment><USER2> Looks nice.

I will say though when I'm entering credit cards... I don't need it spinning around. To me it is a bit jarring and I want to see the other fields to be sure I entered them right.

Also you have to click CVC to continue with the form? That seems a little disconnected in my head.

Just show me all the fields and I'll enter them.</comment>


Pull Request based development (sucks) - <AUTHOR> http://lisperator.net/blog/pull-request-based-development-sucks/ <comment><USER2> For a small team yes its slow. But for a larger team with different skill sets, pull requests are a great way to spread knowledge and understand the context. Sometimes we don't need as many processes as we think.</comment>


Progress on the Gilectomy - <AUTHOR> https://lwn.net/SubscriberLink/723514/4e850e6870991c76/ <comment><USER2> Multithreading in Python is all uphill. In Python, any thread can store into anything at any time. By name, even, using "setattr". There's no thread-local data. This implies excessive locking activity. That's why this guy is working so hard to do things that ought to be simple.

A few restrictions on the language would make it easier, but when this is suggested, Guido has a cow.

<comment><USER3> Is there a link explaining the suggestions succinctly?

<comment><USER2> \- Multiple interpreters with mostly non-shared data in the same process.[1].

\- VecPy, for number-crunching.[2]

\- Newthreading, which I wrote in 2010.[3]

[1] [https://lwn.net/Articles/650489/](https://lwn.net/Articles/650489/) [2] [https://www.andrew.cmu.edu/user/dfarrow/proposal.html](https://www.andrew.cmu.edu/user/dfarrow/proposal.html) [3] [http://www.animats.com/papers/languages/newthreadingintro.ht...](http://www.animats.com/papers/languages/newthreadingintro.html)

<comment><USER4> To be fair at least towards #1, that's a really difficult one to get right. Perl has had that kind of threading for a long time and it's almost always considered a bad decision to try to use them. I'm sure it could be done better, but perl did it via a complete copy on write setup in order to create the mostly non-shared data. But you end up with a lot of locking and other contention for the shared data because there's no good way to expose the fact that it's shared and changing it requires such restrictions. Instead the method usually used is to take advantage of most OS's built in COW when forking a new process and communicating via sockets, or some other method instead that forces you to deal with the limitations (copying data, or if you used shared memory you have to do explicit sharing and locking/serialization yourself).

</comment></comment></comment></comment><comment><USER5> I don't really understand the problem with the GIL. Sure, people doing exotic high performance stuff probably hate it, but Python probably isn't their go-to language anyways.

For boring old web development and business processing, the GIL seems to be a very efficient way of utilizing a CPU+caches without resorting to the horrible event-driven programming model of Node. Want twice the throughput? Run twice the processes. I kinda wish Java would bring back the option of green threads, it was a perfect programming model for web development.

<comment><USER6> The problem is with CPU intensive tasks. Being as expressive as Python is, it would be nice if CPU intensive algorithms could be written in it, without blocking all other Python threads while the algorithm runs. For example.

<comment><USER7> >it would be nice if CPU intensive algorithms could be written in it

It would be nicer if instead of trying to turn python into something it is not (a language for writing CPU intensive tasks), it was made better at what it is (glue code).

It would be especially nice if there were tighter, more seamless integration between python and rust so that hot paths in python can easily be migrated to rust.

<comment><USER8> I'm not a Rust guy, so take this with a grain of salt, but I was under the impression that Rust did a great job with C interoperability, which is all you need for writing Python extensions. Some hasty googling brings up [https://github.com/PyO3/setuptools-rust](https://github.com/PyO3/setuptools- rust), which appears to be exactly the thing you're asking for. In other words, it's not heavily advertised, but it appears to be entirely feasible to build Python extensions in Rust, and not spectacularly complicated either.

<comment><USER9> The language does do great at the core of it, but there's a lot of stuff that makes it easier that's not the language's job.

compare [https://doc.rust-lang.org/1.2.0/book/rust-inside-other- langu...](https://doc.rust-lang.org/1.2.0/book/rust-inside-other- languages.html#ruby) to [http://usehelix.com/](http://usehelix.com/) for example; the former is only using what the language knows, the latter is a nice library built on top.

There's been some effort for nicer Python integration, but I haven't seen anything super super slick yet.

</comment></comment></comment></comment></comment><comment><USER10> Thanks for posting this summary. The video of the talk was posted in May, but I never got around to watching it, because video always feels like it needs a much larger block of uninterrupted time than reading.

</comment><comment><USER11> Previous thread (5 days ago): [https://news.ycombinator.com/item?id=14432854](https://news.ycombinator.com/item?id=14432854)

</comment><comment><USER12> Getting rid of the GIL is easy - just move everything into the interpreter instance struct and add an interpreter pointer as the first parameter in every C API call except create. This should have been done in Python 3 since they broke the API anyway. Now everyone will have to go through another painful transition when they come to their senses. The current thread local storage hacks and PyThreadState/PyEval_SaveThread/PyEval_RestoreThread/PyThreadState_Swap are ridiculous.</comment>


I hated, hated, hated this CoffeeScript - <AUTHOR> http://raganwald.com/2013/07/29/I-hated-hated-hated-this-coffeescript.html <comment><USER2> I've been making an effort to learn a bit more about it this week. Once you know a little more about it, your work can look very elegant.</comment>