Pinterest Acquires Hackermeter (YC S13) - <AUTHOR> http://techcrunch.com/2013/10/11/pinterest-acquires-hackermeter-right-out-of-the-gate-will-shut-it-down/ <comment><USER2> They don't appear to have much of a product or much business. Let's call it what it is: a signing bonus, not an acquisition.

Perhaps I should use this approach the next time I apply for a job. "You're going to have to acquire my side project in order to get me to start working here."

Maybe I could make techcrunch.

<comment><USER3> What a mean-spirited thing to say, and to upvote. It makes me sad to see this kind of snark as the top comment on HN threads.

<comment><USER4> Is the problem with the comment the tone or the content?

<comment><USER5> I'm guessing it's more the tone, but probably also the content a little. Sometimes it doesn't hurt to leave some things unsaid even if there could be some truth to them.

<comment><USER4> It hurts because it distorts people's perceptions which impairs their judgement: If you never talk about things going sideways then people underestimate how often it happens which may cause them to pursue something that they wouldn't otherwise.

</comment></comment></comment></comment></comment><comment><USER6> Does anyone else feel that buying out Hackermeter this early on is almost somehow _polite_ of Pinterest, relative to the behavior of other bigcorps that practice acquihiring?

Most companies will only acquihire once a startup is pretty mature, and has thousands/millions of people relying on its service--even though it would be equally easy to judge whatever attributes of the startup's product/service signals "good team, do buy out" from much earlier on in its lifecycle. I had never even heard of Hackermeter, but on reading the pitch in the article, and seeing a bit of the product, it's immediately obvious what kind of tech/UX/design/product-sense expertise would be required to produce it, and what I could do if I could put the same talent behind my own venture.

Maybe this _should_ be the start of something. I'm picturing a PR-wire-like service for startups to post their MVPs, which bigcorps can subscribe to, and offer to buy out the talent that catches their eye before the service is even out of closed beta. (In fact, just to go a bit crazy: imagine if the use of this service became commonplace. Acquihiring a startup _with_ traction might be considered "bad business!")

<comment><AUTHOR> I believe Exitround is doing something along those lines.

[http://techcrunch.com/2013/07/09/exitround-first- exit/](http://techcrunch.com/2013/07/09/exitround-first-exit/)

</comment></comment><comment><USER7> Entrepreneurs are the new labor [http://www.forbes.com/sites/venkateshrao/2012/09/03/entrepre...](http://www.forbes.com/sites/venkateshrao/2012/09/03/entrepreneurs- are-the-new-labor-part-i/)

<comment><USER8> Sorry, I could not make it through all that dense verbiage. Quick summary please ?

<comment><USER9> It has been a while since I read that series of articles, but the gist of it was:

-The author predicts that the business side of entrepreneurship will become increasingly commoditized, with programs like YC supplanting business school as the expected qualification for executives. The author parallels the unique skills required by railroad and steel entrepreneurs (access to funding networks, an ability to act on incomplete and indistinct market data and so on) with those of today's tech entrepreneurs and then observes how those skills became less valuable as the railroad and steel markets matured and consolidated to the point where the risk-taking entrepreneurs were no longer necessary and were replaced by dry MBA-types.

-The author predicts that the tech side will evolve into something like the guild system used by artisans prior to the industrial revolution, since engineers are still the gatekeepers to technology.

-Finally, the author predicts that both of these groups will become increasingly beholden to finance-types, albeit with the engineers having quite a lot more leverage if they can manage to establish some kind of collective bargaining platform (i.e. a guild). By nature of being individually indistinct and for the most part interchangeable in terms of skills as tech markets become less risky, business-oriented entrepreneurs are therefore the new labor in the way that manufacturing jobs were the old labor.

By the way, I thought it was a long but pretty fantastic read and would highly recommend it if you can find a few hours of free time.

<comment><USER8> Thanks. Sounds like another long, but more accessible read (Manna): [http://www.marshallbrain.com/manna1.htm](http://www.marshallbrain.com/manna1.htm)

Whole swath of middle management can be replaced with a little bit of automation and ML.

</comment></comment></comment></comment><comment><USER10> Congrats! Pinterest is a great place filled with great people.

</comment><comment><USER11> Congrats guys! Pinterest is a great company you'll be happy there.

</comment><comment><USER12> I seem to recall them raising money on Wefunder. In fact, a number of S13 companies appear to be[1]. Unfortunately, it looks like most of the companies are having trouble raising even small sums of money.

I wonder if some investors might take the $ currently raised as a proxy for interest. Investors already follow a herd mentality. I wonder if this open + crowdfunding model might actually make it even harder to raise money.

[1] [https://ycombinator.wefunder.com/](https://ycombinator.wefunder.com/)

</comment><comment><USER13> why is this here? a couple engineers get hired from a startup they couldn't make money.</comment>


Fake EFF site serving espionage malware was likely active for 3+ weeks - <AUTHOR> http://arstechnica.com/security/2015/08/fake-eff-site-serving-espionage-malware-was-likely-active-for-3-weeks/

<comment><USER2> The EFF blog post was also posted to HN [https://news.ycombinator.com/item?id=10133669](https://news.ycombinator.com/item?id=10133669)</comment>


JQuery.ish - A Simpler jQuery - <AUTHOR> https://github.com/bshack/jQuery.ish

<comment><USER2> I don't get it. The featureset on this project is so small that for anything else than a simple testpage it won't be good enough. And for a case like that, you can simply do vanilla DOM scripting yourself. If you want a library that's like jQuery but smaller simply use Zepto.

<comment><USER3> "In short, Zepto is expected to work in every modern browser and browser-like environment, except for Internet Explorer."

I can write off that idea then.

<comment><USER2> If you want a library that both supports older and newer browsers you need jQuery.

But you could load Zepto if the browser supports it, and otherwise load jQuery because their API is the same.

</comment></comment></comment><comment><USER4> What I want is a jQuery-like library that can dynamically load alternative versions based on the browser in use, so that modern browsers load something close to zepto, while IE6 loads all the fixin's.

<comment><USER2> Put this in the end of your html file in a <script> tag

      (function() {
        var src = (document.querySelector) ? '//zeptojs.com/zepto.min.js' : '//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js';
        document.write('<script src="' + src + '"><\/script>');
      })();

This will load Zepto if the browser supports it, and jQuery otherwise.

</comment></comment><comment><USER5> It seems like only yesterday that jQuery was the simple, lightweight alternative. I wonder how long it will be before things like this and Zepto add enough features to earn accusations of bloat.

</comment><comment><USER6> "This project is NOT to ... create a plugin that is more than 500 bytes minified and gzipped"

It's already at 483 bytes. Where do you go from here?

<comment><USER7> I'd personally be pretty happy with < 2K. The main things I use jQuery for are: 1) selecting nodes (especially children of selected nodes), 2) manipulating node attributes, 3) AJAX, 4) extend(), 5) animating CSS, 6) normalizing some events.

<comment><USER8> That feature set sounds like zepto, which comes in at 8.4K. If it supported IE9, it'd be pretty killer.

</comment></comment></comment><comment><USER9> It'd make everyone's life a lot easier if these selector methods were simply baked into the browser in a standardized way.

</comment><comment><USER10> Can Google Closure Compiler compile an app with jQuery but only include parts of jQuery that the app depends on?

<comment><USER11> Yes, but not directly (jQuery is not written in a compatible way for dead code removal). Instead, use <https://github.com/zgrossbart/jslim>

<comment><USER10> This is great. Thanks for the link! The example in the readme suggests that jslim can reduce simple apps combined with jQuery by up 28%. I wonder if it can achieve more if jQuery was modified to let you specify selectors by function calls instead of selector string. For calls like $("a.button"), the static analyzer may have trouble removing unused code such as the parts that deal with descendant selector, ID selector. If selectors where specified as function calls like $.find($.byTag("a").byClass("button")), static analyzer may identify and remove more dead code. Though it probably isn't worth the effort if the code requires such drastic modifications.

</comment></comment></comment><comment><USER12> Wait... dependency on querySelectorAll ? Weren't the point of javascript libraries to be crossbrowser ?

<comment><USER13> "cross-browser" is a misnomer that seems to have been invented by DOM library authors as a marketing tool.

If we're talking about the _en vogue_ subset of browsers, then QSA has support. If we're talking about a set of browsers where a usable DOM implementation is provided (most dating back to Netscape), then, no, support is not provided.

"Works in all browsers" should be closer to the latter, not the former.</comment></comment>


Will Social Kill Itself? - <AUTHOR> http://spottedsun.com/will-social-kill-itself/ <comment><USER2> Sorry, but 'Social' isn't going anywhere. There will continue to be different iterations of Social applications and technologies, but the core will remain. Humans are a social species. This will not change any time soon. Some have a vision of the future where humans are different and technology changes them. All I have seen is humans adapting technology and the world to what they are. The more you align the technology you create with what humans already are, or want, (including design, functions, and features) the more successful and adopted it will be.

</comment><comment><USER3> Perhaps we can look forward to a future in which the dumb stuff in people's pasts is acceptable.

<comment> k-mcgrady This has to happen I think. As more and more people start to live their lives online our mistakes are more visible. Everyone makes mistakes and eventually when the vast majority or people make them online it will be much harder to 'judge' them as your own mistakes are also available for everyone to see.

</comment></comment><comment><USER4> In a word: no.

Social is here to stay. Socialization is the dominant use of all forms of communication, as it always has been, and we are seeing that being (clumsily, haltingly) applied to the web. Things will change, mutate, evolve, etc. but social isn't going away, though a lot of the norms of social on the internet of today may well fall by the wayside, just as other aspects of social interaction in the physical world have as well over time.

</comment><comment><USER5> "Social" is here to stay, because it's baked into what it means to be human. "Social software" in its current form will hopefully be replaced by stuff that's much better, since FB/G+ etc still do a piss-poor job of capturing the richness of human social relations and activity. But whatever happens, expect technology and social behavior to be more entertwined, not less.

</comment><comment><USER6> This passes for front page analysis on HN?

I have a feeling the moon is going to crash into the earth soon. It's just too big and too far up in the sky.

</comment><comment><USER7> How many billions of people are there on the planet? 'Social' is probably the only application of technology that I see applying to every single one of them. While I think what we've seen so far is rather faddish, 'social' will continue to be a massive application for software.

</comment><comment><USER8> As long as humans are interested in Brad Pitt and Angelina Jolie, no. It will probably make internet about as noisy as a rocket in a closed room but will not die.</comment>


Berkshire Hathaway Official Home Page - <AUTHOR> http://www.berkshirehathaway.com/

<comment><USER2> A center tag, a table for layout... Majestic in its indifference towards the modern web.

And more usable than the majority of web pages I deal with these days.

</comment><comment><USER3> lol - 1997 on the way back machine!

[https://web.archive.org/web/19970530212007/http://www.berksh...](https://web.archive.org/web/19970530212007/http://www.berkshirehathaway.com/)

</comment><comment><AUTHOR> The first link is basically an endorsement for Geico: [http://www.berkshirehathaway.com/message.html](http://www.berkshirehathaway.com/message.html)

</comment><comment><USER4> What can I say? It's responsive.

</comment><comment><USER5> The News Release from yesterday is that Buffett donated 2.8$B of stock to Gates Foundation and others, earmarked for operations, not endowment.

Gates budget is $3.8B per year, I had no idea

[http://www.berkshirehathaway.com/news/JUL0615.pdf](http://www.berkshirehathaway.com/news/JUL0615.pdf)

[http://www.gatesfoundation.org/Who-We-Are/Resources-and- Medi...](http://www.gatesfoundation.org/Who-We-Are/Resources-and-Media/Annual- Reports/Annual-Report-2013)</comment>


What, Me Exercise?: The Hacker Exercise Regime - <AUTHOR> http://www.fourmilab.ch/hackdiet/e4/exercise.html

<comment><USER3> That's too complicated for me. My exercise program is:

Get completely winded at least once a day.

It won't make you Lance Armstrong, and it isn't a weight loss program. However, it'll do subtle things like encourage you to take the stairs- and RUN up them. This kind of attitude gently pushes you towards a healthier overall lifestyle, while keeping your lungs and heart at a basic level of functionality. That's all I'm really looking for.

<comment><USER4> So, I bike to work, and then when I get there, I take my bike up the stairs, usually two steps at a time. Someone asked me once whether it was hard to run up the stairs with a bike. I responded that if it was, I would keep doing it until it wasn't.

The mentality to test your limits when you have the opportunity has served me well over the years.

</comment></comment><comment><USER5> I disagree with a lot of this. I used to hate exercise until I was taught two major misconceptions: 1) cardio helps you lose weight, and 2) high rep/low weight = muscle tone, and low weight/high rep = big muscles. These are patently false.

Cardio is NOT for losing weight. In fact in many cases it actually is very difficult to burn fat while doing lots of cardio because it trains your body to burn the fact more efficiently. This is why you'll see people spend so much time at the gym and get no results. The OP is quite correct that without a serious change in diet coupled with the cardio you will NOT lose weight. Which is exactly why you shouldn't do cardio if you want to lose weight, you may get a small drop in the beginning, but ultimately you will return to a baseline. Pushups etc. are great for warmups, but ultimately these will have very diminishing returns as well (the "100 pushup" style of training is laughable).

If you want to burn fat and lose weight you really need to lift weights, and you need to lift heavy weights. The idea that you can "tone" your muscles with small weights is just ludicrously wrong. You wont turn into a mega-hulk, trust me.

If you want to increase your stamina, your lung capacity and your heart health cardio is absolutely what you should be doing. But also understand that this comes at a cost of diminishing your muscle gains (thus slowing down how quickly you burn your fat).

TLDR: the best way to lose weight is to lift heavy weights in low reps (as heavy as forces you below 10 reps) with moderately short breaks between exercises. Cardio will be an uphill battle to lose weight.

And the best part is you actually get to eat MORE if you are seriously lifting.

Edit: if you want to disagree with me and downvote, at least post a response. I'd love to hear why you think I'm wrong.

<comment><USER6> Couldn't agree more with this. I have been having tremendous results from doing the Bill Star 5x5 program (bench, squat, dead lift, incline, barbell rows) in a shot amount of time.

I would like to incorporate some cardio into to this for heart health though. I was thinking of running on Tuesdays and Thursdays in between my lifting days. Do you think this is a good idea?

<comment><USER7> No. There's no reason to introduce long slow distance running (granted, you didn't specify the type of running, but this is usually what people mean) into your training. It will interfere with your recovery from lifting, and really won't do a lot for your overall health.

Don't you feel your heart pounding after a heavy set of five squats? I'd say that's adequate for "heart health."

If you're worried about staying "fit," you might consider adding in one conditioning day of pushing a sled or running sprints. 5x5 is a lot of volume, though, so I'd be careful with adding in anything extra.

<comment><USER8> I have heard from atleast 2 sports orthos that squatting is bad for you knees. I guess it shouldn't matter when you are doing it the right way with adequate recovery period but nevertheless its easy to screw up your joints . One even said that squatting is a very unnatural moment for human body and is best to avoid it .

<comment><USER9> _One even said that squatting is a very unnatural moment for human body and is best to avoid it_

Then babies need to fire their personal trainers:

[http://personaltrainerbath.com/wp- content/uploads/2009/12/BA...](http://personaltrainerbath.com/wp- content/uploads/2009/12/BABY-SQUAT.jpg)

[http://www.malvernstrength.com/.a/6a00e553cfae8a88340120a4cb...](http://www.malvernstrength.com/.a/6a00e553cfae8a88340120a4cbd7ef970b-320wi)

[http://2.bp.blogspot.com/_X0yQkonFwHQ/SeINrYNoy9I/AAAAAAAAAU...](http://2.bp.blogspot.com/_X0yQkonFwHQ/SeINrYNoy9I/AAAAAAAAAUU/ecS8MQykK5E/s400/squat002.jpg)

</comment></comment></comment></comment></comment><comment><USER10> Cycling the same kcal/hour as walking? That's very slow cycling. A much better measure is kcal/km, as that is at least somewhat more independent of speed.

No citations on life extension.

Recommends situps, which destroy your back. Leg lifts have the potential to do the same.

Doesn't mention how many kcal/g fat is (it's 9 kcal/g), which is a useful figure if you're trying to lose weight.

<comment><USER11> > Recommends situps, which destroy your back.

Citation needed, big time. Everything I've ever heard (from high school and college level athletic trainers and strength coaches) has said that a strong core helps your back. I can back this up anecdotally, as years of heavy squats made it painful to drive far in my car's crappy driver's seat, but some ab work (and other exercise) made the problem go away.

When I googled I got <http://well.blogs.nytimes.com/2009/06/17/core-myths/> which basically said "A couple of experts question the (what has so far been considered) the authoritative study.

Ab work and lower back work (hyper extensions) just seem like the way to strengthen ones back. Is there another solution that I'm not aware of?

<comment><USER10> <http://en.wikipedia.org/wiki/Sit-up_(exercise)>

I didn't do a study myself, I just heard it multiple times and assumed that it was true. I have also experienced lower back pain in school when we did sit ups, but of course that doesn't mean that it will do long-term damage.

> Situps can be dangerous due to high compressive lumbar load[1] and may be > replaced with the crunch in exercise programs[2].

</comment></comment></comment><comment><USER12> Over the last two years I've gone from 220 to 190. The only change I've made was to start riding my bike to work. Granted, I am fortunate enough to live somewhere that makes that possible. Since making the change I now think that I won't move somewhere that I can't do that (at least most of the year), and I won't take a job that won't allow for it.

I have proven conclusively to myself that I am incapable of following a regimented exercise plan. I need to be forced/tricked into it. I don't think of the ride to work as exercise, I think of it as "going to work". In that way, I've managed to trick myself into about an hour and a half of exercise per day that I ride into work.

The downside is having to buy all new clothes, but the upside is I no longer need an inhaler to have sex.

<comment><USER5> Just want to point out that this is 1.5 hours a day of exercise. It's great that you trick yourself into doing that, but its a huge time commitment. Any exercise for 1.5 hours a day for 2 years would have similar effects.

Maximizing time, you'd be much better waking up a bit earlier, lifting, and driving to work (though you'd have to find a new trick :P )

<comment><USER13> Ah, but some of the exercise time is time that would be spent commuting anyway. That's one major advantage of commuting-as-exercise.

</comment></comment></comment><comment><USER14> This is very very simple. Regarding weight loss simply stop drinking anything that is not 100% water and possibly 2% milk. Stop drinking soda. Stop drinking alcohol. Stop drinking sugary juices. Stop drinking coffee. Just cutting those sugar/carbs will trim a lot of weight off of you. Combine that with exercise and a man will lose weight insanely fast 10 pounds in the first month is not even a problem.

As for exercise - do everything that makes you sweat. And I mean fall down, can't breath, can't move sweat. Running, biking, swimming, weight lifting, dancing, rollerblading... whatever. At least 30min - 1hr every day. EVERY DAY. Be consistent. Don't stop.

I just did a 2 mile swim in the Hudson river on Saturday and a sprint triathlon on Sunday. This will be my third season training for triathlons. The tri season is just getting underway for me in earnest and my training (swim, bike, run) will considerably pick up. You don't have to do a tri or compete in a run but for me it makes it more 'real' and I get to put events up on my calendar that I know I won't back out of and that I know I have to be ready for. My first half Ironman will be in September.

In addition, I do P90X with my sister everyday (according to the schedule). P90X alone is a rock solid regimen that if you stick to will definitely improve your physique. It is very taxing but dead simple to do. Just pop the DVD in and do what the man says. If all you want is an above base level of fitness and a nice body - do P90X. It works, it's hard, it's probably too hard for most programmers who sit around all day reading HN, but it is definitely worth doing and it will definitely get you into shape. Do it one full time around with less weight, less reps, more rest and then step it up on the second time around.

<comment><USER5> Cutting juice, alcohol, soda etc. is just about the easiest thing you can do to lose weight (there is ZERO reason for you to have sugar at all in your diet - even fruits [relatively high in sugar] can be cut entirely as well as long as you eat you veggies).

P90X is great, but all the other stuff you are doing (while also great) goes against the OP's goal of targeting hackers who don't have a lot of time. Sounds like exercise is a big part of your life.

<comment><USER14> Ya true, training for anything, including triathlons, takes discipline and time. In deference to the OP, I really believe every person - <USER2> hackers - can devote at least 1 hour a day to their physical well being. If you can not take even a sliver of time out of your day to work on your own health than you really need to ask yourself what are you doing with your life.

P90X is a fantastic option. Almost every class can be completed in an hour. The yoga class is 90 minutes. Every other day is abs, an additional 15 minutes. If you can not handle the 90 minute yoga, just do it for 60. Or simply switch it out with another class like the stretch or core synergistics. If your day is packed, just wake up earlier.

Trust me, you will thank yourself when you are in your 40s, 50s and 60s that you invested an hour a day into yourself in your 20s and 30s.

</comment></comment></comment><comment><USER15> This page is just one small part of "The Hacker's Diet". Looking at this single page removes much of the underlying context of the whole strategy. See:

<http://www.fourmilab.ch/hackdiet/e4/>

or

<http://www.fourmilab.ch/hackdiet/>

The site provides an unconventional approach to losing weight (and exercise). I've found it motivating and useful. I take from it what resonates with me and leave the rest.

</comment><comment><USER16> _Clearly, even an hour a day of exercise doesn't account for much food. And what's the likelihood you'll find the time to spend a full hour, every day, month after month, year after year, doing those exercises?_

What if the post is too conventional in its thinking? I think this is the Real Hacker Exercise Regmine: <http://www.instructables.com/id/Treadmill-Desk/> (courtesy of the founder and CEO of Instructables)

</comment><comment><USER17> Here's what I think about exercise: Find a sport or activity that'll make you move: salsa dancing counts! ;-) (golf doesn't.. unless you're walking the whole damn course :P). When you get bored, find another fun sport or activity! =). You might even end up finding complimentary activities (I like to swim and go sailing - swimming helps when your boat capsizes, hahaha).

As far as eating is concerned, here's what I suggest:

\- Figure out what you usually eat.

\- Now figure out what you need (in terms of proteins, vitamins, minerals etc..), and figure out whether your current diet is providing what you need.

\- If you have been getting everything you need in your current diet but are gaining fat, figure out what you can start cutting back on.

\- If you are deficient in your daily intake nutrients but are also gaining fat, then figure out what you can add to your diet to complete the right nutrient intake, and what you can start cutting back on.

All this diet and exercise shit is a bit evolutionary. Just stick to it, build it up over time. Don't be too hard on yourself but don't give up or go easy either.

</comment><comment><USER18> I just ride my bicycle to work. That is, until yesterday when I ran over (I shit you not) a deer. Now I'm licking my wounds. My bike blog link is in my profile if you even care. I won't clutter this thread with link spam.

From the sounds of it, lots of hackers enjoy biking to work. It beats paying for a gym membership, it gets them the dose of sun-induced vitamin d, and it's a practice in efficiency that hackers often admire. There are very few ways to turn energy into transportation more efficiently than a bicycle.

</comment><comment><USER19> How much arguing do we have to do about the optimal way to lose weight before we maybe come to the conclusion that _different bodies are different?_

</comment><comment><USER20> In my strictly personal experience, exercise for long-time goal is rather hard to do. Some more immediate benefit would certainly advantageous. The menial- task endorphin rush runners get, seeing your weight (or measurements) going down/up or the competition in team sports, martial arts, tennis etc.

Just a row of exercises definitely requires more willpower for me. Of course, YMMV.

<comment><USER5> This was exactly my issue as well (not having results re: motivation). Lifting weights for gains instead of tone (see my post above) gives me two things that keeps me going: 1) the easy and obvious accomplishment of simply being able to lift heavier weights (same as leveling up in a video game :P), and 2) you will see results.

</comment></comment><comment><USER21> I found that neither cardio or weightlifting made any difference in my pattern of weight gain over the last few years.

I switched to a standing desk and lost about six pounds in the first three weeks: just bopping around to rave music while I code. No starving myself, and no hours in the gym that take away from work and family.

</comment><comment><USER22> Somebody needs to write a little app with his ladder program idea, if it hasn't been done already.

</comment><comment><USER23> the trick for me is to not call it exercise. everyone is short on time and noone likes to do 'extra work' even if its good for you.

find something you enjoy that is active and do it. hockey, basketball, skiing, biking, boxing, swing dancing... there is no law that says it has to be some boring uninspiring task.

personal method is road bike to and from work + evening rides time/weather permitting. i'm down 70lbs since 6 years ago.

</comment><comment><USER24> After every "cap deploy", I max out pushups and situps.

Works.

</comment><comment><USER25> find a publicly funded gym. I pay $6 a month for a pool, full weight room, and exercise machines. plus I can run there and back. done.</comment>


Columbus HN meetup #1 (3/24) - <AUTHOR> http://anyvite.com/ybqq6ymkmz

<comment><AUTHOR> Reminder Columbus, OH area hackers, join us for our first meetup tomorrow.

3/24, 6pm @ Brazenhead Irish Pub in Dublin.

Very informal, chat, beer, NCAA hoops.

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

<http://anyvite.com/ybqq6ymkmz></comment>


Show HN: I'm building a game for the Nintendo GameBoy - <AUTHOR> http://bonsaiden.github.io/Tuff.gb/ <comment><USER2> > Tuff including all graphics, characters, _ideas,_ sounds and maps are > Copyright (c) 2014 Ivo Wetzel. All rights reserved.

(emphasis mine) IANAL, but my understanding is that at least in the US, it is the expression of the idea (the software and code, the graphics, and the other things mentioned on that line) that are subject to copyright, not the idea. See [https://en.wikipedia.org/wiki/Idea- expression_divide](https://en.wikipedia.org/wiki/Idea-expression_divide).

<comment><USER3> IANAL, and yes, you can not copyright game mechanics or ideas. This is why so many clones of every game exists. Because no one owns the rights to "a tower defense".

<comment><USER4> IANAL, but The Tetris Company seems to have had legal successes in the area of copyrighting mechanics.

<comment><USER5> There is only one successful Tetris clone lawsuit.[1] Most Tetris clones are removed just because they are fairly aggressive with their claims (not necessarily because their claims are valid).

The successful suit was due to the playing field having the exact same dimensions as well as very similar visual expressions as regular Tetris outside of the just the game mechanic.

[1] [http://www.wired.co.uk/news/archive/2012-06/20/tetris- clone-...](http://www.wired.co.uk/news/archive/2012-06/20/tetris-clone-ruling)

</comment></comment></comment></comment><comment><USER6> I have moved to the negative zone after trying the B button. :)

[http://i.imgur.com/pkZhTCJ.jpg](http://i.imgur.com/pkZhTCJ.jpg)

The screens are positioned correctly next to each other.

\----

Are you writing this in assembly?!

<comment><AUTHOR> Yes, it's all written in z80 assembly, although the GameBoy CPU really uses a mix of i8080 and z80 instructions, the mnemonics are all z80. I've also written my own assembler just recently, to have more control over the output and more easily generate debugging information: [https://github.com/BonsaiDen/gbasm](https://github.com/BonsaiDen/gbasm)

<comment><USER7> "my own assembler" \- now you're just showing off. :)

<comment><AUTHOR> Nah' I would only be showing off if I were to put it onto a real cartrdige and GameBoy, wouldn't I? ;)

\- [https://dl.dropboxusercontent.com/u/2332843/tuff.cartridge.j...](https://dl.dropboxusercontent.com/u/2332843/tuff.cartridge.jpg) \- [https://www.youtube.com/watch?v=yXNEeld8Lq8](https://www.youtube.com/watch?v=yXNEeld8Lq8)

<comment><USER8> If folks want to try it on a real Gameboy without all the wires, the Drag'n'Derp works pretty well. It's a Gameboy cart with a USB port for easy writing: [http://derpcart.com/](http://derpcart.com/)

<comment><AUTHOR> I was looking at these option initially too, but ended up going for the challenge since, both I read some not-so-good reviews and shipping the thing to germany would probably ended up being at least as expensive as buying the soldering equipment :) Building one of those custom GamePaks takes about ~4 hours once you have all the materials prepared (you really need very, very thin wires!) and putting it together for the first time is one of those finger crossing moments which you'll remember for a really long time :)

<comment><USER9> I took a cart, removed the game IC, and soldered in a ZIF socket for eproms. And I'm a klutz so it's easy enough.

[http://www.devrs.com/gb/files/faq.html](http://www.devrs.com/gb/files/faq.html)

<comment><USER10> Am I right in thinking that GameBoy carts are now a precious resource? We'll run out one day?

<comment><USER11> Pretty sure you could make your own with a 3d printer and one of those kitchen PCB-etching setups you see people using. There's no magic in there AFAIK.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> The attention to detail is awesome - I played for a little bit, then started reading, and when I scrolled up the little bunny character was sleeping!

</comment><comment><USER13> If anyone wants to go back more, AtariAge has good tutorials on 2600 game programming. Nothing like counting clock cycles to make sure the CRT beam is far enough over before changing the background buffer :)

[http://atariage.com/2600/programming/](http://atariage.com/2600/programming/)

<comment><USER14> Atari Archives also has quite a good selection of old programming books for the later models.

[http://www.atariarchives.org/](http://www.atariarchives.org/)

</comment></comment><comment><USER15> Reminds me a lot of Knytt and Knytt Stories created by Nicklas "Nifflas" Nygren [1]

[1] - [http://nifflas.ni2.se/](http://nifflas.ni2.se/)

<comment><AUTHOR> You got me! I enjoyed Knytt so much, and it was the game that first inspired me to make the first version of Tuff way back in 2010 :) [https://github.com/BonsaiDen/Tuff/commits/master](https://github.com/BonsaiDen/Tuff/commits/master)

</comment></comment><comment><USER16> So why JavaScript for the assembler? Was it familiarity with the language, did the dynamic nature of the language help out...?

<comment><AUTHOR> I'm a full stack Web Developer at daytime and I'd argue that I probably do speak JavaScript more fluently than I do English. So for me it really was a no brainer. The custom conversion tools needed for the graphics / map / sounds are also written in JS, so it's a bonus to have good interop with those too.

In addition to that, getting the compiler up to speed (takes < 90ms on my old core i5) was a nice exercise in getting more familiar with v8's performance analysis tools :)

<comment><USER17> > probably do speak JavaScript more fluently than I do English

Ah, a feeling many of us know too well.

</comment></comment></comment><comment><USER18> Rad. I'm writing a Z80 emulator in Haskell. I'll be sure to test Tuff on it once I'm to the point where graphics are being drawn.

<comment><USER19> You'll probably need to do a little work to make it work. The Gameboy used a Sharp LR35902, which is kinda 8080-ish and kinda z80-ish and has some of it's own stuff as well.

<comment><USER18> Yeah, I meant I was writing a Gameboy emulator.

<comment><USER19> Either way, it's a really cool project! A working processor emulator, even a slow one, kind of makes you realize how deceptively simple lots of old CPUs are.

<comment><USER20> More like the original CPU/microprocessor. The man behind the Z80 was also the main contributor to Intel's 8080 as well as the 4004, which is arguably the foundation of a general purpose computer (calculator + memory) on an integrated circuit (microprocessor). I wouldn't say so much simple as it is ingenious.

</comment></comment></comment></comment></comment><comment><USER21> If you like this post you might like the titles in development for the Atari 2600+ [https://atariage.com/development_list.html](https://atariage.com/development_list.html)

</comment><comment><USER22> Very cool. Not sure this was meant to happen, but at one point I did a double jump over a wall and then just started to continuously fall and it never stopped.

<comment><AUTHOR> It's a 16x16 screen world which wraps around, if you move to the left or right you should eventually land on a non-empty screen. The "world" is anything but finished, to be honest, it's more of a debug / feature test world than anything else at the moment :)

Here's a picture of the whole world for reference: [https://dl.dropboxusercontent.com/u/2332843/tuff.map.png](https://dl.dropboxusercontent.com/u/2332843/tuff.map.png)

</comment></comment><comment><USER23> Could you go into a little more detail on how the process is for adding sounds and sprites to the game?

I am very interested in this type of work and have been hacking at trying to build a game for the SNES. All I've been able to do so far is to collect all relevant documentation for developing it: [https://github.com/bttf/snes_dev](https://github.com/bttf/snes_dev)

<comment><AUTHOR> Sure!

I'll start with the graphics part, since that's the easier part of the two.

Since the original GameBoy has only 4 shades of gray, all "bitmaps" are 2 bits per pixel so you can squeeze a total of 4 pixels into 1 byte, the graphics are converted from PNG files via some JavaScript routines which can be found in the convert.js file in the repository.

The GameBoy uses 8x8 pixel hardware tiles on a scrollable "background" and supports up to 40 sprites which can be either 8x8 or 8x16 pixels in size.

There are 2 tile buffers in VRAM which partly overlap and only the lower one can be used for sprites, which gives you 128, 8x8 tiles for use with sprites and 256 for use with backgrounds.

Sprites can be mirrored, so this somewhat reduces the amount of graphics needed for the player character.

In order to reduce the map data, each room uses 80 16x16 blocks which are served from a meta table in memory, where each index maps to 4 8x8 tile definitions of the block. When drawing the screen the code resolves the individual 8x8 tiles and sets their value into the current VRAM buffer for the screen (there are two, which are swapped, to minimize draw artefacts).

Since the meta table is limited to 256 16x16 blocks too (due to the fact that the map format only uses 1 byte per block tile) there is some additional pre- computation magic going on when creating the map data. Basically, the block tiles are split into 4 x 8 rows, each screen then maps onto 4 of these "rows". By then packing often uses block tiles together, you can have more details for certain rooms since they don't need to use all of the different rows available and can basically swap some of them out.

Also, all graphics and map data are additionally compressed with a custom LT Type compression routing and are decompressed on the fly. Except for player graphics, which are stored into a RAM buffer at start in order to avoid graphic glichtes when switching out the sprite tile reference indexes and the graphics at the same time.

Overall, the timing is really important since you don't have too much time during the VBlank period (yes, it emulates a vblank!)

Now as for the sound, right now I'm really just setting the sound channel register values pretty much "Per hand", meaning, that I pick some decent values (tested in some GBA sound test ROM for gameboy sound channels I found somehwere - yes the GBA still has the original GameBoys 4 channels, since it's backwards compatible).

The sound data is stored in some kind of JSON format for easier editing, all the bit field stuff is than generated at compile time and baked into the ROM.

I've also gotten a prototype of a music engine running (not yet in the repository) where you'd play pre-defined sound "patterns" on virtual channels and "mix" them down. The sound / music stuff really is a whole story of its own, especially since there are nearly no references to find, except for some old, undocumented ASM sources of some Rare Ware GameBoy ports of Banjo / Jet Force Gemini which apparently got uploaded by one of the Sound Engineers at Rare.

</comment></comment><comment><USER24> Quick question about the music for the game ; I see you have already answered a few questions along those lines.

When the bunny dies , there is a sound for its micro-explosion. I remember "Dangerous Dave" died with the same sound :) Are a lot of these interchangeably used ? Are these just system sounds ? How do these work ?

</comment><comment><USER25> > On the web GameBoy Online is probably the best of the available JavaScript > based emulators out there.

That's true, but I'm really trying to shake it off! And looking for contributors, should you be interested :)

[1] [https://github.com/arcanis/virt.js](https://github.com/arcanis/virt.js)

</comment><comment><USER19> Wow fantastic. I can't wait to see it complete. Great art style and control feel. Lots of nice subtle details.

</comment><comment><USER26> Awesome project! So, are there any hard-way books or something, to begin developing for GB platforms? ASM and C have already learned by me, but I'm really frightened about code environment like IDE, testing and run on real hw? Are this question already answered or I'm really can't google?

<comment><AUTHOR> There are quite a few resources you can find after searching for a bit e.g [http://problemkaputt.de/pandocs.htm](http://problemkaputt.de/pandocs.htm) or [http://students.washington.edu/fidelp/galp/megaguides/GameBo...](http://students.washington.edu/fidelp/galp/megaguides/GameBoyProgrammingManual.pdf) (the latter one being the original manual for licensed developers)

</comment></comment><comment><USER27> Hey Ivo! Remember you from the Nintendocast days. Great to see you're still doing awesome stuff! Rock on!

</comment><comment><USER28> The feel of this game reminds me a lot of Montezuma's Revenge, a classic in my book. Very cool, and nicely done!

I really like your project page as well, very concise, extremely informative, and covers exactly the things that someone wanting to make their own would need. Bookmarked!

</comment><comment><USER29> I would _love_ to write GB/GBC/GBA games using something like Ruby (or JavaScript!). Is this possible? Have any higher-level languages been used to write games for these platforms?

<comment><USER30> You would have to first port the ruby interpreter to the Zilog Z80 which could be a challenge because it is only an 8bit CPU!

The GBA actually has a 32 bit ARM CPU, although a very slow one (16 Mhz) so perhaps it would be possible to build a very minimal Ruby VM for that. I wonder if it would be possible to optimize by building a JIT compiler and JITing on an emulator before installing on the cartridge?

<comment><USER31> libruby, if that is the core of the interpreter, weighs 2MB. That's not gonna fly, even with heavy size optimization it would be unbearably slow, even on just a subset.

</comment></comment></comment><comment><USER32> Nice. You can find RGBASM at OtakuNoZoku.com and the Gameboy Cribsheet too. Along with a bunch of other tools and code. I can send you complete game source if you want to study it.

</comment><comment><USER33> i fell below the water and began infinite falling

\-----

really cool and impressive that you developed an published a game on such a platform, that's still easily playable via a browser

<comment><USER34> So did I.

</comment></comment><comment><USER35> Seriously I am amazed by your project! I wish I had the time to do something like that! Great job and I can't wait to play the final version.

<comment><AUTHOR> It's a bit hard to find, but it's all there :)

\- [http://gameboy.mongenel.com/dmg/gbspec.txt](http://gameboy.mongenel.com/dmg/gbspec.txt) (html version [http://problemkaputt.de/pandocs.htm#soundcontroller](http://problemkaputt.de/pandocs.htm#soundcontroller) ) \- [http://www.otakunozoku.com/nintendo-gameboy- cribsheet/](http://www.otakunozoku.com/nintendo-gameboy-cribsheet/) \- [http://realboyemulator.files.wordpress.com/2013/01/gbcpuman....](http://realboyemulator.files.wordpress.com/2013/01/gbcpuman.pdf) \- [http://students.washington.edu/fidelp/galp/megaguides/GameBo...](http://students.washington.edu/fidelp/galp/megaguides/GameBoyProgrammingManual.pdf) (The original Manual)

There are more, but I can't seem to find the links right now :O

<comment><USER32> Thanks for the shout-out! :)

You can also grab the RGASM project from the OtakuNoZoku website. I think Carsten (Surfsmurf) may have revived it on his github. I think I also pushed my source trees to github too. There is a GBC emulator that is both a COM component, and works inside of Visual Studio (at least, VS from around year 2000). Bunch of docs too kicking around. I have copies of most of them still.

I wrote programmer docs, assembler (before switching to extending RGBASM), linker, patcher, emulators, games, visual studio plugins, debugger, cartridge downloader, serial port driver, bunch of libraries, etc. Ah... the good old days.

</comment></comment></comment><comment><USER36> Cool project!

I got stuck really early on, oops: [http://i.imgur.com/pqAblgU.png](http://i.imgur.com/pqAblgU.png)

<comment><AUTHOR> You can do a wall jump or a double jump, at the moment all powerups are enable from the start since I'm missing out on the animation for collecting them an all other sorts of things. I tend to deviate from the gameplay aspects of programming and spend a lot of time doing optimizations and tooling, just recently I wrote my own assembler to cook the whole thing into the final ROM image [https://github.com/BonsaiDen/gbasm](https://github.com/BonsaiDen/gbasm)

</comment></comment><comment><USER37> Open up spotify on your mac and start playing a song. Visit [http://bonsaiden.github.io/Tuff.gb](http://bonsaiden.github.io/Tuff.gb) is the audio from spotify garbled?

I submit this bug: [https://code.google.com/p/chromium/issues/detail?id=403907&t...](https://code.google.com/p/chromium/issues/detail?id=403907&thanks=403907&ts=1408045980)

<comment><AUTHOR> It's known issue, I've to the exact same issue here on Linux, seems to be related with their Web Audio implementation.

<comment><USER37> If you can add anything to the bug listed above that would be super helpful for the chrome team :)

</comment></comment></comment><comment><USER38> Thats really cool. Don't you find developing for it frustratingly slow though by today's coding standards?

</comment><comment><USER39> I really did get stuck.

[http://imgur.com/syZX03k](http://imgur.com/syZX03k)

<comment><USER40> I ended up falling endlessly through a blank void :-\

<comment><USER41> move left.

</comment></comment></comment><comment><USER42> Very cool. I hope to have spare time again in my life, at some point!

</comment><comment><USER43> How does this site manage to lower the volume of iTunes?

</comment><comment><USER44> Pretty nice, I was even able to go out of bounds :)

</comment><comment><USER45> Reminds me of A Boy and his Blob. Good work.

</comment><comment><USER46> Can I play this game in full screen?

</comment><comment><USER47> The sound I get when I open this page is pretty sharp, noisy and unpleasant. I prefer it when websites have that turned off by default (unless it's obvious that the web-page involves a video that I'm supposed to be watching or something like that).</comment>


The Lack of Historic Knowledge Is Frustrating - vezzy-fnord http://blog.ipspace.net/2015/10/the-lack-of-historic-knowledge-is-so.html <comment><AUTHOR> > I started with B2B credits in FC and told him "Fibre Channel uses exactly > the same approach as hop-by-hop windows we had in X.25, with the same > results…" resulting in confused blank stare. Further down the conversation I > said "FCoE uses lossless Ethernet, which uses PAUSE frames, which are > exactly the same thing as Ctrl-S and Ctrl-Q on an async link." Same result.

Or -- to play contrarian/devil's-advocate -- perhaps you should find more ways to convey these timeless logical concepts that don't _depend_ on ancient war- stories or shared-suffering involving "dead" technologies? I'm not saying you have to turn your baseball cap sideways and start saying "dawg", but effective communication means you need to update your metaphors and analogies at least once in a decade as your audience changes.

If the past contains useful lessons, sometimes the best thing you (i.e. direct contemporaries who were there) can do is to isolate the most important, broadly-useful parts, and _cut them loose_ from the gnarly matrix of specifics. Then you can teach the lesson over and over in a way that doesn't _depend_ on audiences who worked with Tech X from years Y to Z.

<comment><USER2> This can't be overstated. If you dump a pile of acronym diarrhea on someone from a bunch of dead technologies and get upset when you get a blank stare, it is 100% your own fault for lacking the communication skills or abstraction skills to separate useless jargon from important concepts.

<comment><USER3> This is an attitude I see more and more of today, and I think it's unfortunate. The slides in question aren't "a pile of acronym data;" they're made of lingo that would be recognizable to anyone who works in the field of networking - even if they don't understand the specifics of the protocols in question.

At any rate, the author's complaint isn't that "kids these days" haven't heard of all these acronyms, it's that they haven't learned any of the technical details behind those acronyms, and that those details are still relevant.

Finally, I have a bone to pick with the "it's the older generations' responsibility to educate the younger generation" idea that I hear so often. At the end of the day, it's everyone's own responsibility to educate themselves, and we all know there's plenty of materials available for that.

<comment><USER4> "Finally, I have a bone to pick with the "it's the older generations' responsibility to educate the younger generation" idea that I hear so often. At the end of the day, it's everyone's own responsibility to educate themselves, and we all know there's plenty of materials available for that."

I'm on your side of the discussion overall but that's unrealistic. It took me a decade to get so much of this knowledge and wisdom out of papers on programming, OS design, networking, security, etc. I just found some more foundational work in past months that should've been in every classroom for its relevance but nobody's heard of it.

The problem is that the stuff is scattered all over the place and not in pure form at all. There's books, papers, brochures, lectures, etc. These might have good details, fluff, or a varying mixture of each. Many great works can only be found behind paywalls (IEEE, ACM). Others are on academic sites, specific blogs, or places like CiteseerX where you have to know what you're looking for ahead of time.

Our field is anything but a clean, integrated presentation of what really mattered, matters, and might matter. It's a huge, scattered mess that we expect new crowd to just automagically sort through and discover necessary stuff. Prior generations certainly have some responsibility to make that easier rather than harder. I do my part with posts here and elsewhere directing people to specific techs that solved (or nearly so) the problems they are talking about. Need a more thorough solution, though, for the various sub-fields of I.T. before I'll blame the newcomers for prior generation's mess.

<comment><USER3> Hm, I agree that there's a lot scattered out there, but I hope that there's some room for exploration (and maybe specialization) somewhere in the noise.

I actually have an interesting perspective on this, being completely self- taught, before returning to university as an adult to get a computer science degree.

There are pros and cons to both sides of the self-taught vs. teacher-taught thing, though I'll make my bias clear up front: I spent a lot of years reading books and messing around with stuff; now, when I hear college students complain that a teacher "isn't a clear lecturer" or "didn't answer my question well," my tendency is to say "there's a book and an Internet out there, suck it up and get to studying, buddy," though I realize that attitude isn't perfect for everyone.

<comment><USER5> > when I hear college students complain that a teacher "isn't a clear > lecturer" or "didn't answer my question well," my tendency is to say > "there's a book and an Internet out there, suck it up and get to studying, > buddy,"

Which raises the question of what the lecturer is even standing around talking for. Isn't it just a waste of their own and everyone else's time if they aren't good at doing what they attempt to do? If someone is a good researcher and lousy in the classroom, why make them teach classes and waste everyone's time?

<comment><USER4> I agree with you there. I think Brian probably would, too. His point was that many people let their pursuit of knowledge end there rather than use other resources available to learn what they needed to know. The lecturer becomes an excuse rather than an obstacle on the path to understanding.

</comment></comment></comment></comment></comment></comment></comment><comment><USER2> The author of this article is making terrible mistakes in the other direction. He attributes failures of entire technologies to single issues. ATM wasn't killed just because of design failures, it was killed in large part because of being crushed by Cisco. Ethernet fabrics were fucked up by Juniper's poor execution, not because they are a bad design.

This thought process leads to unoriginal and restrictive thinking. Take the following bullet point: "Central Controller = single failure domain". When you see that he wants you to think designs with controllers are crap. However, Google's network uses a central controller to distribute policy and make QoS optimizations. If all of it's members go down (it's also a distributed system) it doesn't take down the network, you just lose some optimizations. This gets them much better utilization >90% than the run-of-the-mill BGP folded clos junk that 'experienced network engineers' churn out today.

Sorry for venting, but I see this guy's attitude very frequently in the network engineering community. "Oh, someone tried something like that once, and it didn't work, so we are going to refuse to do anything that has an overlapping concept." It's no wonder we still use command-lines and have to script SSH sessions to configure things. This industry is stagnant as hell.

<comment><USER5> You know what would be nice? If there were a good place to learn which technologies were dead, dying, or had gone niche instead of becoming mainstream.

Your rant implies ATM is in one of those categories, but it's surprisingly hard to find places which actually _say that_ instead of being all polite (or whatever concept is in play here) and pretending that it's just as mainstream as DOCSIS or Ethernet.

Maybe it's too much to ask for. Maybe there's always going to be too much bias and... I don't know... hurt feelings?... for something like that to exist. It certainly wouldn't be a nice thing to have if you were in the business of selling ATM "Solutions".

<comment><USER6> ADSL is ATM, so not entirely dead yet.

</comment></comment></comment><comment><USER7> For real historic knowledge, here are a few things to understand about networking:

\-- Bell System #5 Crossbar. The best of the electromechanical telephone switches. No Bell System #5 crossbar central office was ever out of service for more than 30 minutes for any reason other than a natural disaster or fire. That level of reliability was not maintained in the computer era. It's useful to know how that was accomplished. Briefly, there was a big, dumb switch fabric and common shared resources. Resources included markers (which set up calls), senders (which sent data to another central office to route a call), trunks (lines to other offices), originating registers (which provided dial tone and listened to dialed digits and tones), and some specialized units such as trouble recorders (which punched cards), automatic line insulation test units (which tested lines and phones remotely), traffic service position system consoles (phone operator), and card translators (a clunky device for looking up routes). All these resources were in resource pools, used in rotation with broken units skipped. If anything failed, the call was retried once using different resources. If the retry failed, the call was rejected with the fast busy tone, on the grounds that if two tries had failed, a third retry probably would not help. Everything had hardware timeouts, so if a relay stuck, after a few seconds the unit would fault, a trouble recorder would be seized, and the trouble recorder would drop a trouble card in front of a technician. Major problems set off alarm bells. The most complex units, the markers, ran in pairs, with one checking the other. Any difference generated a trouble card. In an emergency, a marker could run without its checking other half to keep calls going through.

It's worth understanding #5 Crossbar because it was a system far more reliable than its components. It scaled up to handling entire cities, could be maintained while running, and just did not have outages.

\-- Western Union Plan 55-A. This automatic telegram switching system handled most telegrams in the US in the 1950s. Think Sendmail, built out of paper tape readers and punches and a telephone switch, an email server that filled a large building. The queuing theory for the ARPAnet came from Kleinrock's thesis on Plan 55-A. Only a superficial knowledge of Plan 55-A is useful today.

</comment><comment><USER8> The only ways people learn important lessons from the past is by 1) being taught them by someone willing to teach it 2) overhearing someone else being taught it, or 3) reinventing the wheel and learning it yourself.

If 1 and 2 aren't happening, then you can't blame people for resorting to method 3. Perhaps some blame should go to teachers/curriculum, but bagging on people for what they don't know only creates frustration, not progress.

An example from the music world. I've taught the same "wisdom" about voice leading, what it is and why we like to use it, to both AP music theory students in high school as well as middle school band students learning to improvise. You can bet I change my analogies and vernacular to match their knowledge, but they've both been exposed to the concept and have some core vocabulary to research it further if they like.

<comment><USER9> You left off (0) doing your own research when you run into a problem. These days, with search engines, google scholar, google book search, Wikipedia, IRC channels full of folks trying to prove their knowledge, easy access to professors' email addresses, etc., it's easier than ever before.

<comment><USER10> It's easier to be overloaded by the volume of information too.

<comment><USER11> It is unfortunate, but it compliments cognitive decision making well; ingest information from multiple sources, identify outliers and inconsistencies, the truth will present itself.

<comment><USER4> Not that simple. Usually leads to a local maxima that might not even be the maxima it appears to be. Really digging into all the sources of wisdom in our field takes a _lot_ of time. Most only have a subset of that.

So, expecting those with the wisdom to present it in an approachable and efficient-to-learn way is reasonable. Only then should we critique those that didn't make the effort to learn.

</comment></comment></comment></comment></comment><comment><USER12> Its called a literature search... and for some reason no one does it in computing...

This reminds me that just last month I attended a talk on hp's "the machine" where the presenter talked for about 20 minutes about all the revolutionary new ideas, before someone broke in and asked "how does this differ from an as400". After all the presentation looked like a copy paste job from the wikipedia page on as400 technology. The poor presenter didn't know, and eventually admitted he didn't even know what an as400 was. Much less than the fact that they continue to be sold. In the end someone suggested a literature search.... The presentation went downhill from there.

<comment><USER13> To quote Frank Westheimer: _A month in the lab can save a night in the library._

</comment></comment><comment><USER14> As someone who knows nothing about these technologies, I have to say the use of abbreviations and acronyms in the post adds a huge barrier to even _wanting_ to unpack the information.

It reminds of me Elon Musk's memo to SpaceX: [https://twitter.com/collision/status/602950284864692224](https://twitter.com/collision/status/602950284864692224)

For example...

        SONET/SDH and ATM WAN
        ATM-to-the-desktop and ATM LANE
        MPLS Traffic Engineering
        BGP Brownouts

Or...

        I was trying to explain the principles of SAN and differences between FC and
        FCoE to a networking engineer a while ago. I started with B2B credits in FC and
        told him Fibre Channel uses exactly the same approach as hop-by-hop windows
        we had in X.25, with the same results…

Of course, I understand that I'm not the target audience, and the author didn't decide on the names for the technologies in the first place, and maybe even that these acronyms are common knowledge for the target audience, but it sure isn't helping information sharing if every sentence requires tons of extra parsing for new acronyms.

The comments section gets even worse...

        None of our NOC guys know what ATDT means, even the ones that did come through
        tech support. (PSTN is still more reliable than 3G for OOB, assuming you
        test it often - anybody got a good automated test script?).

        ATDT - priceless ;)) Thanks for bringing this up! Now that I think about that,
        I started with ATDP :D... and I'm positive there's AT command set hidden
        within every 3G modem (in the good old days you could use it to send SMS
        messages).

        ATDT is still alive!. Just setup a simple GSM/SMS based solution and used
        AT commands to control GSM modem. It's really coll that this has not
        changed over the years.

        I remember having a little BBS in 1989 using some BBS SW called pirate or
        black beard or something like that for my Novell and Token-Ring customers
        to dial in and obtain the latest desktop drivers for IPX and IBM NICs etc.
        I love the analogies on the older tech and SDN. Especially IntServ...

At a certain point, I'd blame technologists who enjoy feeling smart due to the barriers put up around the knowledge they've worked hard to earn, and who chastise newcomers for not doing tons of work to slog through poorly communicated concepts, instead of newcomers who would probably love to learn more and don't know where to start.

We should communicate more clearly so that it's easy to share knowledge.

<comment><USER15> > I understand that I'm not the target audience,

Yes, that's it in a nutshell. People who work in the same field/sub-field will use jargon to enhance/shorten communication. This has been the case for at least several thousand years.

If you're out to rid the world of jargon, you've got quite a battle ahead of you.

<comment><USER16> The point, though, is that these technologies aren't in use anymore, and therefore no one new has a good reason to know the acronyms... There are plenty of new acronyms to know, after all!

Ultimately, this is why we write textbooks, to consolidate knowledge for the next generation. It may not matter if you know a particular historical example, so long as you know the ups and downs of a given approach.

<comment><USER17> _is that these technologies aren 't in use anymore_

SONET/SDH - Still in use today (though not as much as in the past)

SAN - Storage area network. Basically any large enough organization is going to have one.

FC - Fibre Channel, still one of the top ways to connect SAN and other storage arrays.

FCoE - Fibre Channel over Ethernet, taking the FC protocols and moving them over copper

B2B credits - Back to Back buffer credits. Knowing this is like knowing about TCP window size adjustments or three way handshake. It's knowing about how the protocol works over the wire.

NOC - Network Operations Center, the place where the network guys keep an eye on the physical layer.

PSTN - Public switched telephone network. Think all of the hardline telephones. It's that entire network. Still in use as my grandmother can attest to.

3G - 3rd generation wireless (or at least the wireless carriers brand it that way).

OOB - Out of band. Not using the normal network of a particular system. ex: using a modem hooked up to the PSTN to dial out and send calls when a server's IP network is down. OOB communication is very common as it provides redundancy when all the "normal" stuff fails.

SMS - Short Message Service. Non-picture text messages.

GSM - Global System for Mobile Communication. One of the two leading wireless protocols/systems. ATT and T-mobile phones use GSM.

AT commands - ATtention commands. A command language for manipulating modems. Still in use in many phone radios today.

Basically every acronym listed is in existing use and generally still widely used. So there is good reason for people who work with them to know them.

And it doesn't take a network technician to know what all of these mean. I'm a lowly classic asp web developer, and everyone of these was familiar to me.

 _therefore no one new has a good reason to know the acronyms_

These acronyms allow me to talk with the network people. In the same way them knowing what HTML, CSS, JS, PNG, JPEG, PS, etc are allows them to work with me. It's not absolutely required, but it greases the wheel.

<comment><USER2> >PSTN - Public switched telephone network. Think all of the hardline telephones. It's that entire network. Still in use as my grandmother can attest to.

It's not that simple anymore. Now it's frequently packetized after the last mile so PSTN is just an illusion provided as a service to your phone jack.

</comment></comment></comment></comment></comment><comment><USER18> As someone with no networking experience, that example slide and the following paragraph could be parody for all I know.

That said, I really enjoyed RFC 1925: [https://tools.ietf.org/html/rfc1925](https://tools.ietf.org/html/rfc1925)

<comment><USER19> Since starting to build a networking software startup a year ago, that RFC has become far less April 1st material and so much more "advice to live by".

</comment></comment><comment><USER20> It isn't their fault for not knowing it; in the ideal world every programmer would start out with complete and perfect knowledge of everything there is to know about their craft. No, it's up to older people with more experience to adequately communicate their experience to others. The responsibility of the younger programmers is to know when to listen.

It reminds me of my father who, close to retirement, had to switch companies led by a bunch of young whipper-snappers in their 40s. They had to solve certain problems that many of the older people had experienced ages ago and were really solved problems. But everyone was more interested in finding creative solutions, rather than just listen.

I hear chemists have a saying that you can save two weeks in the laboratory with an evening in the library.

Of course it's good to know these things. But there's simply going to be some things you know more about because you grew up in a different time than they did. That's not a real problem, that's just the way things are.

<comment><USER21> _> It's up to older people with more experience to adequately communicate their experience to others. The responsibility of the younger programmers is to know when to listen._

The hitch is that the younger programmers are chasing the approval of VCs who actively encourage them to dismiss "older people" as clueless old fusts who can't think at Web Scale.

(The VCs don't actually _believe_ that, of course, especially as many of them are old programmers themselves. But since old programmers know how to read a term sheet and tend to demand things like sane working hours and pay/equity commensurate with their skill, it's in the VCs' interest for their portfolio companies to be cults of youth.)

<comment><USER2> Something doesn't work in your thesis. If old thinking were that valuable in a startup trying to make a new technology, VCs would insist on hiring some seasoned devs.

One of the downsides of working in an industry for so long is that is molds the way you think about problems. Things you deem to be critical might not be anymore, etc. Things you've been burned by that you avoid like the plague might be really useful now in light of new hardware.

When experimenting and building new things, years of experience can actually be a pretty big burden that is hard to shed.

</comment></comment></comment><comment><USER22> Of course the corollary to the claim 'there are no new ideas' (which is probably in line with this article's line of thinking) is that the only way progress is made is when a previously bad idea becomes a good one due to circumstance, and some naive fool comes along and tries it again.

</comment><comment><USER23> A young audio engineer might know every possible fact about how Bluray, DVD, and CD formats work. Probably even cassette tapes and Long Play records (aka LPs). But I'm sure it's completely respectable for you to roll your eyes when an audio engineer gives you a blank stare when you bring up wow and flutter caused by a flattened pinch roller in an 8-track tape.

What would be the software equivalent? Insulting someone who starting developing on PHP 5 not knowing about the short_tags() global function which only existed in PHP 3? Someone proficient in Visual Basic .NET but doesn't know anything about VB 1-6? There is no reason to know how to develop in an ancient version of a language if every job you have had thus far has used exclusively modern versions.

Merely having been alive during the decade in which an obsolete technology was first introduced or was still popular means nothing. It may even have some relevance today when discussing the then-and-now similarities or differences, but frankly someone born decades after its obsolescence just will not care. There is already more knowledge than is possible to absorb about _current_ technology. There is simply not enough time in a single lifetime to care about what came 20-40 years before. Perhaps if we ever push life expectancy to 1000 years, we'll spend the first 100 years of our lives reviewing every relevant detail of the past.

</comment><comment><USER24> I'm somewhat surprised he doesn't just tell them to get the hell off his lawn, too.

Acronym soup is such a 80s/90s thing...I for one am glad technologists finally clued up and stopped that practice for the most part.

<comment><USER25> Yeah, the cute mining and gemstone themed ruby library names, along with the random word javascript framework names, are much easier to understand.

</comment></comment><comment><USER26> Who is to blame for this though?

I have a strong interest in the history of computing, but most of this sort of stuff is squirreled away in places most folks wouldn't know to look. If you want to learn history in any other field you go search for history books, but a lot of this sort of stuff isn't conveniently compiled in books. Whose fault is that?

</comment><comment><USER27> Can anybody familiar with these old war stories point us to a human-readable writeup of them?

<comment><USER28> Both relate to flow control and trying to deliver a lossless network medium.

Regarding B2B credits / Fibre Channel and the hop-by-hop windows in X.25, the idea is that each hop has a counter of how many packets it will send to the next hop without receiving an acknowledgement, which are "credits". Once you're out of credits, that hop stops sending traffic. X.25 was superceded/replaced by TCP/IP (which uses end-to-end acknowledgements, instead of hop-by-hop) due to increased performance. But B2B is used with Fibre Channel (storage) networks, which require lossless performance on each hop.

Regarding PAUSE frames and Ctrl-S/Ctrl-Q, the idea is that as a device's receive buffer fills up (it is receiving data faster than it can remove it from the buffer), it will hit its 'pause threshold', and it will send a PAUSE message to the sender to let it know that it can't handle any more data. This is similar to Ctrl-S/Ctrl-Q, which are XOFF/XON control commands in flow control, to stop and start traffic as you ran out of buffer space.

<comment><USER29> Thank you for being the only person to actually write up what the hell the author was alluding to!

</comment></comment></comment><comment><USER30> Dealing with people and organizations who don't take lessons of history seriously is very easy: take note, and outcompete them without breaking a sweat. Let them fail! This is one of the respects in which capitalism is unequivocally a force for good.

<comment> vezzy-fnord Unfortunately this does not at all apply to the software industry where many advances can be dismissed out of incredulity, or a parochial reaffirmation of the status quo either because of path dependence, or simply because of a perceived achievement in local optimum and incapability of further introspection. There are no scientific principles followed as such.

<comment><USER4> There's also the Worse is Better phenomenon now known as "ship early" or "time to market advantage." They just try to get something going that works without much time to think on it or research the history.

</comment></comment></comment><comment><USER31> You're frustrated and depressed that people aren't well versed in technologies that died out while they were in diapers?

</comment><comment><USER32> MPLS Traffic Engineering is a mistake and dead? Oh Really?

</comment><comment><USER33> In some countries, the children learn from the parents. The children never try to teach the parents.

The TV show, "Modern Family", the daughter of the owner of a closet manufacturing company tries to show she can contribute by offering her new design ideas only to hear from her father that her designs are great cause they did the same thing decades ago.</comment>


Open source html5 roguelike 'Wayward' goes beta - <AUTHOR> http://indierpgs.com/2013/02/wayward-announced-playable/

<comment><USER2> You know, as much as I would like to love this game, I simply don't understand the ridiculous amount of grind and repetition with respect to trying to collect resources. Especially when it's attempting, on some level, to be a reality-analogue.

If I need a branch to make something, I go up to a tree and I _break off a branch_. If I'm sitting in the middle of a forest, acquiring vines, branches, and kindling are easy and straightforward things to do. If I am in rocky terrain, finding round rocks or sharp rocks is also easy.

The interesting gameplay should come from choosing what to combine, not mindlessly thwacking at something until you are lucky enough to get an item from it.

</comment><comment><USER3> Reminds me somewhat of a more fleshed out version of "minicraft", a game created by Notch (of minecraft fame) in 48 hours for ludum dare.

<http://playminicraft.com/mod.php?m=minicraft-official>

Requires Java plugin!

</comment><comment><USER4> Very cool. I'm a little lost as to what to do or what my goals are.

A lot like life, really.

</comment><comment><AUTHOR> I'm not sure how common this is for HTML5 games, but I really do appreciate how I can download this and play it locally.

Being forced to always play it online via a webserver is one of the things that puts me off HTML5 games (or browser based games in general).

</comment><comment><USER5> <nit>Wayward</nit>

Looks awesome. As someone who loved tinkering with WoW's UI in my high school days, I love Unlok's approach to UI customization here. I only wish more big budget titles would do the same.

<comment><AUTHOR> Sorry about that, fixed :)

</comment></comment><comment><USER6> Looks pretty cool.

Stamina seems to replenish only when moving the character. Used up all stamina digging at a rock? Take a jog around the block and come back.

</comment><comment><USER7> It worked pretty well. Going back to the webpage picked up where I left off in the game.

Bad for people who shouldn't be procrastinating :)

</comment><comment><USER8> Obfuscated CC-licensed code is not open source code.

<comment><AUTHOR> I was quoting the video on the linked page, about 1:48: "OPEN SOURCE Make your own modifications and customizations."

</comment></comment><comment><USER8> Wow, this is the game I've always wanted to play.

<comment><USER9> Exactly the same. Minecraft somehow wasn't for me but I love this one! Although I would rather play it locally on my Linux box.

</comment></comment><comment><USER10> What makes you think this is open source?

</comment><comment><USER11> I'm curious how they plan to monetize this. It's hard for me to invest too much into the "open web" for browser games when there's not a very clear way of monetizing browser games that doesn't mean "ads".

I feel like ads would affect the user experience. I'd rather be bringing your attention more to the game, rather than distracting you with things to click on that will take you away from the game.

<comment><USER8> Many people create games as an artistic venture rather than a business one.</comment></comment>


New design points a path to the 'ultimate' battery - <AUTHOR> http://www.cam.ac.uk/research/news/new-design-points-a-path-to-the-ultimate-battery <comment><USER2> hope it pans out, lithium air with 10x energy density of li-ion will be revolutionary

<comment><USER3> Wouldn't that be approaching the energy density of TNT?</comment></comment>


Visual Studio 11 User Interface Updates Coming In RC - <AUTHOR> http://blogs.msdn.com/b/visualstudio/archive/2012/05/08/visual-studio-11-user-interface-updates-coming-in-rc.aspx

<comment><USER2> They are being really transparent about their visual design process. Whether you agree with them or not, its very interesting to read about their reasoning.

I'm mildly excited about Visual Studio 2011, but I see a lot more radical changes coming in newer IDEs like Cloud9, or of course, LightTable.

</comment><comment><USER3> I hope they're not spending much time on all these surface changes. There is a lot of transparency for stuff that most developers don't care about. And why don't they have configurability of the themes? 2010 looked much nicer to my eyes.</comment>


I Code While You Sleep - <AUTHOR> http://icodewhileyousleep.com

<comment><USER2> Simply awesome ... looking forward to buy one if shipping price to italy isn't to high

edit: up to 6 weeks to get one :S ( in italy )</comment>


Where's the GitHub search bar - <AUTHOR> What happened to the github search bar?<p>http://imgur.com/HnVRJLg <comment><USER2> It's no longer visible without signing in. Really annoying. You can add /search to the url in the home page or on the main page of any repository.

</comment><comment><USER3> It shows up when I sign in.

<comment><AUTHOR> I guess my issue is that all of github now sits behind a login page now.

//original comment //You used to just be able to search github with or without a //account though, now you need a account.</comment></comment>


Ask HN: How do you enjoy fiction books? - <AUTHOR> <comment><USER2> Could you maybe elaborate a bit on exactly what it is you're asking? This is so vague as to be basically impossible to answer as it is.

<comment><AUTHOR> Fair point.

As far as non fiction goes, I know how to achieve whatever my goal maybe (learning most of the time). Which translates to taking notes, testing code, proving theorems myself etc... But whenever I pick up a fiction book I'm not really sure if I should be doing anything in particular besides "just reading" the thing. This often times caused a very strong sense of bordedom in me. Is there anything in particular I would want to be doing ? What would make me enjoy fiction more is I primarily read to learn new things ?

<comment><USER2> Oh, gotcha. That's an interesting question. For me, I do usually "just read it" when reading fiction. But in my case, to be completely honest, a lot of the fiction I read is more on the "low brow" end, and is just escapism when I need to let my brain rest a bit. I spend a lot of time reading non-fiction, taking online classes, watching math videos on Youtube, etc., and sometimes I just want to "unplug" and veg out to some generic thriller novel.

 _Is there anything in particular I would want to be doing ? What would make me enjoy fiction more is I primarily read to learn new things ?_

The one obvious thing I can think of would be to make it a point to stop and look up, and internalize, any unknown words you might encounter. Also, if you read literature that includes untranslated phrases in other languages (that you don't already know) you could make it a point to try translating those passages, or at least look up the translations online and think about how they integrate into the work.

Or if you read literature that references historical events, or famous people, or real locations, etc., you could go off and research those (people|places|events). I have actually done a little bit of that when reading novels by Daniel Silva, since he incorporates a lot of interesting references to historical events and places in his books.

</comment></comment></comment><comment><USER3> by reading it</comment>


The 100 Jokes That Shaped Modern Comedy - <AUTHOR> http://www.vulture.com/2016/01/100-jokes-shaped-modern-comedy-c-v-r.html <comment><USER2> Great content. I only made it about half way on mobile before it crashed.

It's kind of bizarre how all the sketches before the 50s are available and all that follow were either not available or only available on Hulu's buggy video player.

</comment><comment><USER3> This was a great read.

Also one of the few articles that aren't broken up over multiple pages. Had trouble getting to the end though, too much content that it crashed multiple times in both safari and chrome on my iPhone.

</comment><comment><USER4> patrice o'neal- "elephant in the room" needs to be on the list.

</comment><comment><USER5> Modern comedy ... in America</comment>


The day when starting a receiver fixed the transmitter - <AUTHOR> https://rachelbythebay.com/w/2019/11/13/sdrlag/ <comment><USER2> > _I recorded about 10 seconds of the ENTIRE FM band to a ramdisk, then turned > around and pushed it back out in the unlicensed band on a continuous loop._

> _Now I had a second problem on my hands: was it the recording itself? To > answer that question, I took the file and washed it through a bunch more SDR > gunk to isolate a single station, demodulate it to audio, and pushed it to > my machine 's speakers. The song sounded fine. Other stations were also > okay._

Rachel, I would pay double-digit dollars per month for a screencast per week of you doing some serious hacker shit like this. (I've used Gnuradio et al and it's always a screaming pain, at least for a novice like me.) Watching someone hack away at it in a while(!functioning) would be pure pleasure, and I'm sure quite educational too.

<comment><USER3> I'm not Rachel and this is not a podcast, but I have wanted to write a similar tutorial for a while. So I finally did it: [https://www.abclinuxu.cz/blog/jenda/2019/11/gnu-radio- first-...](https://www.abclinuxu.cz/blog/jenda/2019/11/gnu-radio-first-steps- a-fm-receiver)

</comment></comment><comment><USER4> I really enjoy reading these posts from Rachel. I think I have read like 10+ of them by now.

Can I be so bold as to suggest something for improved readability? [Edit: turns out I cannot. Immediate downvote!]

Breaking that wall-of-text into 2-3 sections with headlines would probably improve readability greatly. Honestly, it doesn't matter that much what the headlines say - the important thing is breaking up that wall of text into separate pieces.

</comment><comment><USER5> > I recorded about 10 seconds of the ENTIRE FM band to a ramdisk

We live in wonderful age of SDR where this is not only possible but apparently also the way how even entry-level car infotainment's FM receiver works. And it still amazes me.

</comment><comment><USER6> Was there really a time where HDDs were to slow for 40MB/s but we still had 400MB of RAM? Did I miss a factor of 2 because of the I/Q?

<comment><USER7> 20 MHz --> 40M samples per second (Nyquist). 16 bits per channel, and two channels (I, Q).

40000000 x 2 x 2, so... about 160 MB/sec?

It's a lot of data. It wasn't happening with the disk I had on hand, so I went for the ramdisk thing. 1.6 GB of memory? That I _did_ have.

<comment><USER8> Would be nice if you could use flowgraphs to program any fpgas on the radio.

<comment><USER9> You can with RFNoc blocks in GNU Radio, but that's specific to Ettus hardware.</comment></comment></comment></comment>