Whartonite Seeks Code Monkey - <AUTHOR> http://whartoniteseekscodemonkey.tumblr.com/ <comment><USER4> As a coder, I've historically tended to think poorly of non-technical people who have the "next big idea".

The truth is that a really great business person with the right skills can be immensely important! I didn't fully understand that until this last year between meeting some hustlers on the Startup Bus and my coworkers at my last startup.

The real problem is separating the hustlers from the blowhards. In my experience, they land in 2 camps.

1) Hustlers - They will make something happen w/o you. They'll put up a splash page or a wufoo form or something to get things started. They'll be actively working on their idea, even if it's just prototyping things on paper.

2) Blowhards - These guys are just waiting around for you to join to do the work. They usually have an inflated sense of importance (about themselves and their idea). They also tend to think you're lucky to work with them.

It's the latter type this site is making fun of.

The former are the people you want to work with, and are super valuable.

<comment><USER5> > _"The former are the people you want to work with, and are super valuable."_

 _Some_ of the former you want to work with. A technical founder has something obvious they're bringing to the table - i.e., the ability to implement the systems that will enable the idea. What a non-technical guy brings to the table, if anything, is more complex.

Does he have insider knowledge or networks in the field you're breaking into? Does he have some skillset (say, SEO, _real_ marketing prowess, etc) that will concretely help the business launch?

Having an idea is fine. Having the hustle and enthusiasm to carry the idea is fine. The problem here is that, even when you exclude the blowhards, there are a _lot_ of non-technical people who have the motivation and enthusiasm - <USER2> honestly simply don't bring much of value to the table. Not sufficient to warrant co-founder equity anyways.

<comment><USER6> Ok, while we are at it here is my beef:

1\. technical cofounders - they just want to play around. You tell them the users are satisfied with the current search engine,that we need to make it easier for people to enter info in so that app can be more useful. Crickets. Nothing happens. Hey look, we tried out 3 new search engine. Thanks.

I am sick of tech folks that don't want to do what needs to be done because it is not sexy.

2\. non-tech folks. Networking is fine. But you need to hustle that means try out lots of ideas to try to get "top of the mind" awareness from "your ideal customer profile". This means lots of grunt work. Think of ideas and execute them. But noooo. It's all about people you know, some of it is. Sure. Noooo. It' all about perception. Come on, some of it has to be that our product actually does something useful for them. Bottomline: depending on the product are we in "demand harvest" or "demand generation" mode. No we are in "perception" mode so we can be bought out. Our customer is the company buying us. Screw the users. Their stupidity for doing business with us.

And some marketing people - are a waste of space. Everything is outsourced. They are glorified yes men to the CEO. Sales repeatedly asks for collateral. Screwed it I will make my own.

I agree that we need to target strategic customers. They are the hubs that will virally promote our products. Nope. We need customers with big names so the companies that are thinking of buying us will think we own the space.

My background: EE, stats, sales, sys admin, dba, programmer. And I agree the hardest one to learn was graphics and design.

</comment></comment></comment><comment><USER7> You know, there actually is a lot of value in good business people. Problem is, it's really tough to identify someone who can do business and someone who can talk but can't.

I think about this a lot. I'm now thinking the fastest way to figure it out is (tactfully) ask them how much money they've stacked up in various endeavors. The university teaches a lot of things, but those don't necessarily translate into stacking up money. If you're technical and want a business guy, figure out if he can stack up money. A pretty good predictor of that is how much money he's stacked up in the past.

<comment><USER8> you should really read the book "Fooled by Randomness". There's a particular chapter: "If you're so rich, why aren't you smart?" It points out how difficult it is to look at empirical evidence, esp. if you don't know the size of a given cohort. He makes his point with stock markets. Given the huge number of people who trade in a given year, it's basically inevitable that someone will pick nothing but winners. But if you don't see the huge pool of failures, you don't realize that someone's "stock picking skillz" are no better than what you might expect, given the size of the trading population.

E.g., you're looking at a rich MBA. Say 100,000 MBAs graduate a year in the US. You still don't have enough information to know if he was any good.

Worse, say you use a pedigree: You're looking at a rich MBA from Harvard. Say they only graduate 1,000, but, because any damn headhunter will put a harvard MBA into a C-level job, 90% of the harvard MBAs stack up a ton of money. Now, knowing that he's a rich MBA tells you even less. All you really know is that richness & a harvard MBA seem to correlate, which is kind of exactly where you started :) (on the other hand, if you had a poor harvard MBA in front of you, then you'd really have something!)

Anyway, yeah. it's a really hard problem -- just as hard as finding a good programmer, imho

<comment><USER9> What would be really interesting in light of what you say is repeat performance. Also, it is not inconceivable that even random success may _cause_ repeated success as successful people tend to get more opportunities and are more confident.

<comment><USER10> _What would be really interesting in light of what you say is repeat performance_

Well, then you get fooled by randomness in a completely different way: You begin to believe that the ability to succeed from scratch is a much rarer skill than it actually is, because (a) only a subset of the potentially- successful people ever succeed, by whatever measure, and (b) only a smaller subset of those ever bother to try to succeed again; and (c) only an even smaller subset of subset (b) ever succeed a _second_ time.

But you don't really need to find a serial performer. You only need to find someone who can succeed _once_ , and there are more of the latter than there are of the former, by definition. It's no knock on Bill Gates that, having founded one incredibly successful company, he didn't quit and try to start a different one just to "prove" that he had the knack. Zuckerberg should not be ashamed that, having found himself holding one tiger by the tail, he doesn't feel inclined to shop around for a different tiger.

<comment><USER9> Those are all valid points. However, I do believe that there are patterns of success and, by definition, patterns are characterized by some sort of repetition. Looking for patterns in someone can increase the odds of finding the right person. I don't deny at all that doing this probably excludes a lot of very qualified people, most importantly it excludes me from my own startup ;-)

</comment></comment></comment></comment></comment><comment><USER5> To turn this topic in a more positive direction:

How do you tell an "I have the next big thing but just need some help with technical details" people apart from real, talented non-technicals?

Or, as a non-technical founder, how do you differentiate yourself from the 99% of clueless yahoos run around pitching their Great Big Idea?

<comment><USER11> Have money.

Tell them you're building a team to do X, and you're not looking for free labour.

<comment><USER12> I agree. As a non-technical founder my main focus is on that initial capital raise to be adequately funded to build a solid team and pay them what they're worth.

You wouldn't ask a mechanic to rebuild your engine for equity in your car when you eventually sell it, neither should you expect coders to work for free.

<comment><USER13> Your car will definitely be losing value in the future. A better analogy is that you might ask your friend the electrician to help you out with a house you're fixing up and getting ready to flip, with the promise that you would pay his bill after the sale. Plus maybe a bonus.

I think there's a lot of value involved in being able to convince people to contribute some level of effort for equity. If intelligent people see enough in your idea to jump in your boat, that might mean something about the value of your idea. The converse is also true: if you can't convince anyone to contribute anything of value to your effort in exchange for equity, maybe you don't have a compelling idea.

A real entrepreneur doesn't expect coders to work for free. He or she is that pitching a compelling vision that involves a coder adding value to something that the programmer co-owns, not simply giving away free time.

<comment><USER5> I see the word "idea" in your post a lot - and I think that's missing the point by a wide margin. The world is _full_ of good ideas, the real shortage is people capable of making them happen.

Intelligent people avoid non-technical (or even technical, honestly) people who pitch their New Great Idea because 99% of the world has great ideas and _zero ability to pull it off_. What people are judging you on is not the quality of your idea, so much as your ability and skills to _do_ it.

If you're failing to gain traction with the people you're trying to sign on, maybe your idea is sound, but people simply do not see you as bringing something valuable enough to the table to make it a success.

Whenever I get approached by a non-technical founder about their New Big Thing, my immediate question, bluntly, is: What do _you_ bring to the table?

If you don't have a good, concrete, specific answer (instead of hand-wavy things like "I'm good at marketing"), do not be surprised when competent technical people roll their eyes and wander off.

<comment><USER13> There's no disagreement on this point; you've changed the subject.

I was taking issue with your characterization that non-technical entrepreneurs are trying to get people to work for free. I think that's an unhelpful way to look at things.

People are not working for free at a startup, they're building equity and increasing the value of the overall enterprise. Except for the case where the original person is _actually_ sleeping or playing golf all day, I don't see how you can seriously propose that some people are genuinely trying to pitch an opportunity where you are doing all the work (and presumably at some companies they've succeeded in getting the techies to do all the work?)

Considering your last statement, I think you need a better way to evaluate the work of people who don't do technical work for a living. What sort of concrete work would a marketer be doing before there's a product? I wouldn't want to work with someone who said they had already printed all the advertising for a product that hasn't even been designed!

</comment></comment></comment></comment></comment></comment><comment><USER14> > The discovery paved the way for industry-wide recalculations of early > termination fees for smartphones, which were hiked up nationwide from the > standard money-losing $175 to the current break-even $325.

If thats something you brag about, you're a cunt of the highest order.

<comment><USER15> Why? An early termination fee is necessary in a model where carriers subsidize handsets. Why should the termination fee be below breakeven?

<comment><USER16> Who _brags_ about making everyone's lives suck just a little bit more?

<comment><USER17> Getting the termination fees raised to break-even does not make everyone's life suck more. The alternative is to have that $150 increment added to the handset purchase price, which is closer to making everyone's life suck more.

There's no free lunch. Somehow you're going to pay the full price for your iPhone. The higher monthly bill and higher early termination fee you're willing to pay, the lower the upfront cost can be, which some would argue is making people's lives better, not worse.

I would personally prefer to buy an unsubsidized phone (and have correspondingly lower monthly bills, and a tiny or zero early-term fee), but that's not how the US mobile market works, at least not for the device I prefer, and choice of device is more important to me than choice of contract terms.

<comment><USER18> Why would it make people's lives worse to have price transparency both on devices and on mobile phone contracts?

Around here (i.e. Europe), you can get an iPhone 4 (24x25EUR) and the corresponding phone contract (20EUR/month), either together (which would give the well-known 45EUR/month) or separately from each other. You can cancel or change the phone contract later and only pay for the phone, if you want - <USER3> any case, you know which is which, and it makes it a lot easier to compare both contracts and device prices.

No early termination fees necessary. It's just the US mobile market being bogged down from being under the control of an oligopoly of non-competitive companies.

</comment></comment></comment></comment></comment><comment><USER19> I don't understand what this is.

<comment><USER20> A tumblr making fun of job/partner postings by business students. Wharton is the business school of University of Pennsylvania, one of the most prestigious business schools in the country.

<comment><USER12> Wharton is largely populated by entitled douchebags. Not entirely, but largely.

I was invited to a dinner once where a bunch of Whartonites made up the body of the group. They really thought they were the future gods of industry and knew everything about business (mind you they were playing on daddy's money). When the check came they suggested we play "Credit card roulette" to see who covered the bill.

I don't think my hearty "go fuck yourselves" was appreciated.

These are the same assholes whose arrogance helped crash the market.

<comment><USER21> As a former strategy consultant who decided not to go the MBA route because it's bullshit, I want to point out there are plenty of people who end up in these top MBA programs after working a few years in consulting or banking.

The family net worth does not come into the equation at all for most.

One of my former coworkers was an Indian guy who used to be homeless as a kid. Can't get much more NOT coming from money than that.

</comment></comment></comment></comment><comment><USER22> Brilliant satire....reminds me of my pet peeve - "analysts" who are unwilling to pull and QA data.... when I started in analytics 15 years ago that WAS the path ... you either pulled data or got a job in PR.

The irony is that most of these guys have the intellectual horsepower to learn enough coding to crank version 1.0 in about 90% of the likely startup spaces out there. Speaking as a business guy from a similar school who started refreshing his own tech skills a couple years ago to reach "tech ceo" level competency (can personally deliver a simple app or feature, understands dev and support process, has a clue about design and project tradeoffs, can size up technical talent), these guys have the capabilty.....just being lazy weasels...

By the way, anyone at a startup who considers himself a ceo is seriously delusional.... You are a CEO in training at best. Call yourself a founder and move past it. Get cash flow positive and create 50 - 100 jobs and you can reconsider...

</comment><comment><USER23> Anyone know if these are real or satirical?

<comment><USER24> Definitely satirical. At least, that's what the snarky post titles are telling me.

</comment></comment><comment><USER25> <http://sfbay.craigslist.org/sfc/eng/2195882661.html>

</comment><comment><USER26> the satire is apt, in the sense that folks have been known to talk like this.

what intrigues me is why anyone who was lukewarm on technology would hang out in software circles. this shit is hard. really hard and it just gets harder the more you learn. there must be easier money lying around for that crowd.

<comment><USER27> They all think Google and Facebook are the norm.

</comment></comment><comment><USER28> These are biz noobs. There are good ones too who understand talent and startups. We can make fun of the arrogant noobs, but we'd all benefit if they were just enlightened about the shortage of tech talent, and about the best way to sell their idea and build a team.

</comment><comment><USER29> I know the site is a joke but there is a real disconnect. There is this idea of a "business person" in a startup. But I think everyone serious enough about startups to be on HN, if you'll think about it, will realize there is no "business dude" role in a startup.

You're either engineering, design or marketing, and preferably more than one.

My background is in engineering, which means I didn't have much need to pick up design, marketing, or entrepreneurial/business skills while growing up. Once I realized I wanted to work for startups (about a decade before founding my first startup) I started learning about these things. Design, as in graphic design, is probably the hardest to teach. Business is the easiest.

If your background is you got a BS in "Business" or an MBA and you want to be in startups, then you should figure out what role you're going to play. (And it shouldn't be "CEO".) Pick up some engineering, design or marketing.

Show me someone who designed and marketed several extremely popular websites when they were in college, say, along with a technical buddy who made them, and I'll see someone who can greatly benefit a startup (whether their degree is an MBA or a BS in art appreciation.)

Eventually if your startup gets big enough, or for some business models (eg: Groupon) you may need large numbers of sales guys or "Bizdev". Well, "BizDev" is just sales to other businesses where you sell a partnership. Sales guys sink or swim on bringing in business, and I think nothing will kill the "whartonite" sense of entitlement more than working on a commission.

Much respect to sales guys, though. I have done that job because I knew I'd never be able to hire a sales force if I hadn't ever done the job. It is not easy.

So, Engineering, Design, Marketing. Which hat do you wear?

<comment><USER30> I think many people conflate BisDev and Sales too much. Most people in tech have an idea of a Sales guy: the ultimate closer, knows everyone, eats rejection for breakfast. A great sales guy is one of the best assets in a tech startup. That being said, a BizDev person normally is thinking strategically about the company's position as a whole. He is gaining deep knowledge in new verticals and identifying the right companies to target. It's usually a big picture type person. I think the best in this position truly understand the tech involved in the company.

<comment><USER31> Jim handles the day to day stuff (sales) while Michael focuses on the big picture stuff (bizdev). I think I get it now...

</comment></comment></comment><comment><USER29> Also, a suggestion for non-technical cofounders: Do not tell us a list of technologies that you think we need in order to cofound a company with you. (I've seen this happen a lot.)

If you think your technical cofounder needs [java/php/rails/javascript] experience, then you're starting off attempting to dictate technology to the person who you're supposed to go to in order to discover what the right technology is.

<comment><USER12> The wise man (or woman) partners with someone who is skilled at what they do then stays the hell out of the way and lets them do it.

</comment></comment><comment><USER32> Wow, quite beautifully executed... lol, I have been in functional in almost all the three roles from Geekdom to Designer to my current assignments i.e. Strategy and Sales. All of them great experience. But the way these have depicted all this, is really funny. I was thinking about an entrepreneurial/self-employed/self-directed/sales context... funny, I didn't even think about someone who did it on a corporate level.</comment>


Mad Men's Guide to Managing Creative People - <AUTHOR> http://www.halogensoftware.com/blog/mad-mens-guide-to-managing-creative-people/ <comment><USER2> I tried telling my wife that I have to do nothing in order to be creative. She told me to turn off the TV and go find a job.</comment>


HCAR 32 (May 2017) has been published - <AUTHOR> https://wiki.haskell.org/Haskell_Communities_and_Activities_Report <comment><AUTHOR> Next call for contributions at end of September.</comment>


Show HN: A Collection of Higher-Order Components for React - d-_-b https://github.com/deepsweet/hocs/ <comment><AUTHOR> Great selection of helper HOCs!

If you are not familiar with higher order components, maybe this article, a gentle introduction to higher order components [0], helps.

\- [0] [https://www.robinwieruch.de/gentle-introduction-higher- order...](https://www.robinwieruch.de/gentle-introduction-higher-order- components/)</comment>


Brandless Is Shutting Down - <AUTHOR> https://www.businessinsider.com/brandless-shutting-down-no-new-orders-2020-2 <comment><AUTHOR> SoftBank lost 250m$, basically subsidizing purchases of thousands of clients. Matt Levine really hit the nail on the head when he said that the Vision fund is effectively redistributing billions of dollars to the public.

But even for a Vision fund backed start up, the burn rate seems crazy for a retail operation that should have been able to adjust it's prices/inventory much faster than the average retailer? 250m$ is basically the sales revenue from 100m units at 3$ minus shipping. For them to just abruptly shut down is weird, maybe Softbank decided to pull the plug to recover some of the money left.

</comment><comment><USER2> Eh, nothing much to see here. Brandless products were a. anything but brandless and b. not all that great. Neat concept, terrible execution/implementation. And probably not a realistic one.</comment>


Ask HN: Service to hire a temporary pair programmer - <AUTHOR> I need the ability to hire people with specific expertise for an hour or two at a time.
Say I'm stuck on a problem with a specific tool or programming language. It would just be nice to pay $50-100 for 1-2 hours to hire someone who's an expert in a specific tool to help out.
Right now I'm stuck on a React but and have spent 2-3 days working on it.  I think an expert could have resolved it in an hour or so.
Are there any services for this?
I've found code review services but this isn't really what I'm looking for. <comment><USER2> CodeMentor.io has these services and there's also [https://mentorcruise.com](https://mentorcruise.com), which isn't quite on- call, though. There are other code mentoring services around, too.

</comment><comment><USER3> Basically you're under-capitalized if the problem is important or the problem isn't important. $50-100 for one to two hours probably won't get you an expert. A consultant can't make a living on jobs like that. They need better clients to stay in business.

</comment><comment><USER4> pluralsite and upwork comes to mind.

</comment><comment><USER5> what are you stuck on?</comment>


Making a Game Boy game in 2017 - <AUTHOR> https://www.gamasutra.com/blogs/DoctorLudos/20171207/311143/Making_a_Game_Boy_game_in_2017_A_quotSheep_It_Upquot_PostMortem_part_12.php <comment><USER2> My parents never let me have video games growing up because they thought it would be a waste of time. They let me get a gameboy for some reason though, I guess cause they couldn't imagine someone wanting to stare at a 2x2 black and white screen for any length of time. Even when my friends got n64s, we spent most time playing Pokémon or Zelda on game boy, because the games were just so good

I recently downloaded roller coaster tycoon for my gf, as we both used to play it when we were younger. She doesn't really play games, but during our 4th date at an amusement park we found out we both played it as children. That game was written in assembly by one person

Not really a point here, other than that nostalgia and craftsmanship can be far more powerful than the latest hardware or software

<comment><USER3> >craftsmanship can be far more powerful than the latest hardware or software

I was just listening to the original Warcraft soundtrack for nostalgia's sake and the Youtube video had scrolled through some of the old artwork. It brought back memories of playing at my friend's house when we were kids. The game also had such nice craftsmanship--the artwork, character and themes. It reminded me of what those old games on small budgets were able to do. Something about that seems missing in today's big gaming titles.

<comment><USER4> Might be early Xmas for you: [http://www.pcgamer.com/this-is-how-blizzard- plans-to-finally...](http://www.pcgamer.com/this-is-how-blizzard-plans-to- finally-bring-back-vanilla-wow-servers/)

<comment><USER5> I believe s/he was talking about the original Warcraft, not World of Warcraft.

</comment></comment></comment></comment><comment><USER6> If you're into knowing more about the Game Boy I can't recommend "The Ultimate Game Boy Talk" from 33c3 enough. Michael Steil is a wonderful presenter: [https://media.ccc.de/v/33c3-8029-the_ultimate_game_boy_talk](https://media.ccc.de/v/33c3-8029-the_ultimate_game_boy_talk)

</comment><comment><USER7> The hardware may seem very limiting but in fact you can often exploit the limitations to achieve even better effects --- for example, the LCD's relatively slow refresh rate means you can do temporal dithering to go beyond 2 bits of grayscale, and I believe modifying the GPU registers multiple times per frame, while it's drawing, is another relatively common trick.

You can look at some of the GameBoy demos from the demoscene to get an idea of what others have been able to get from the hardware:

[http://www.pouet.net/prodlist.php?platform%5B%5D=Gameboy&pag...](http://www.pouet.net/prodlist.php?platform%5B%5D=Gameboy&page=1)

<comment><USER8> One very common effect is to change the x offset of the background mid-frame to create parallax effects. The introduction to Link's Awakening does that for instance: [https://youtu.be/qoj8F0ymwpI?t=23s](https://youtu.be/qoj8F0ymwpI?t=23s)

It looks like you have multiple layers in the background moving at different speeds but of course on the GB you only have one background layer so it's just the game modifying the offset when it reaches certain lines.

To help with that the console lets you configure an interruption when the GPU reaches a certain line so you don't have to poll the line register or use an external timer.

<comment><USER9> Showing that the design of the GB dates back to the time of the NES and C64. The tight coupling between the CPU and the CRT beam meant that you had similar interrupts there.

And as those systems supported color displays (in a limited fashion), it was used for things like swapping palettes mid draw.

While it takes whole different level of effort to do so, it is quite impressive what can be done on limited hardware when one do not have multiple layers of abstractions on top.

<comment><USER10> Just about every architecture works like this because ultimately to drive a screen you need to send display data down the wire in order.

Modern systems are so capable that using raster interrupts wouldn't add anything but if you change the display without Vsync you can see that it still works by scanning lines.

<comment><USER9> These days i would have thought that a LCD or OLED screen would have been able to handle directly addressing each pixel.

the reason for the CRT requiring the data "serially" was the electron beam that refreshed the phosphor.

<comment><USER8> All the (uncompressed) video protocols still work like in the good old time of CRTs, you have the notion of horizontal and vertical blanking. Image is sent top to bottom, left to right (well, progressive video is, but let's not get into interlacing).

Actually in many protocols you _have_ to keep the blanking periods because people crammed tons of things in them over the years (audio, subtitles, timecode, remote control protocols, various metadata...).

Having random access to the pixels would be beneficial if you only wanted to only update specific portions of the screen but you have to know which parts of the screen have to be updated (either by diffing each frame with the previous or by being tightly coupled with the drawing code and know which parts have been updated). However in very dynamic content like movies or video games you'll often end up having the entire screen changing at once so you'll have to be able to support that anyway and the additional complexity of optimizing for the simpler cases is probably not worth it.

</comment></comment></comment></comment></comment></comment><comment> TD-Linux I really like Game Boy development - one nice thing is that its graphics hardware is more regular in comparison to e.g. the NES, and its sound hw is legendary. Also fun is the DS, which although being far newer still retains the tile-and-sprite graphics hardware. Flash cartridges are also plentiful.

It seems to be the season of homebrew - Tobu Tobu Girl is another Game Boy game on a physical cartridge to come out this month, with full source code (also using GBDK) [http://tangramgames.dk/tobutobugirl/](http://tangramgames.dk/tobutobugirl/)

</comment><comment><USER11> We get new games for old computers often, and in my particular case I'm a huge fan of the Oric-1/Atmos sytems from the 80's. These are similar in many ways to the Gameboy architecture, but were far more user-dependent in that there was never any good software for them. (Well, not enough, anyway.)

But the machines live on and many elite developers are quite fond of them, so lately, every few months or so, we get new stuff for the Oric-1/Atmos systems. The latest game that blows everyones minds (because who knew you could do it on Oric), is Blakes7:

[http://www.defence- force.org/index.php?page=games&game=blake...](http://www.defence- force.org/index.php?page=games&game=blakes7)

Its quite an achievement as a point 'n click adventure and there is much to the 8-bit aesthetic in this game that would appeal to those who came here for the Gameboy look.

Remember kids, old machines never die - their users do!

(More great Oric games here:)

[http://www.defence-force.org/index.php?page=games](http://www.defence- force.org/index.php?page=games)

(.. and here:)

[http://oric.org/software/](http://oric.org/software/)

<comment><USER12> Wow, thanks for Blakes7. I love the series and old computers (I have an Oric somewhere) but did not know this game. Orac on Oric...

Wish someone with a brain would redo the series though; even though the effects are dated, the series drips misery more than what goes for dystopian these days imho.

<comment><USER11> I strongly urge you to dig out your old Oric and get Blakes7 running on it, you won't believe how great it is .. these machines still get a lot of love, so I hope I'll see you out there on oric.org and/or forums.defence-force.org if you get the druthers .. Cheers and happy hacking!

<comment><USER13> I had an Oric Atmos at one point. I got it in the late 80's as I always loved the look of the Oric computers and (ahead of my time) collected retro computers at that point. I sold it sometime in the Noughties, but I keep thinking to get another one.

<comment><USER11> They're delightfully interesting machines, in that they really didn't get the chance to shine back in the day .. but now we have emulators and disk drives, and all kinds of weird and wonderful stuff.

The guys at Defence Force are making a dual-Oric: two Orics' chained together to combine graphics and audio capabilities .. if you get the druthers, follow the progress here:

[http://forum.defence- force.org/viewtopic.php?f=8&t=1771](http://forum.defence- force.org/viewtopic.php?f=8&t=1771)

(tl;dr, two Orics are wired up, they're gonna work in sync to build a hi-res image .. yay!)

</comment></comment></comment></comment></comment><comment><USER14> i have been writing a gameboy emulator for the last year (with short bursts of work where i implement some module), and it's been very challanging and fun, i recommend everyone to try it.

it has a very simple 8-bit (risc) architecture, but obviously tailored for games (for example, it has a dedicated sprite memory sector). i recommend people to try it out because it is has fun quirks compared with "regular" architectures, like arm and x86, for example in the way it handles cartridges, or in that some cartridges actually had non-trivial logic inside them and weren't just a rom.

it always amazes me how active gameboy research and development is still today, for example there's a very recent gameboy emulator / research project done in rust [https://github.com/Gekkio/mooneye- gb](https://github.com/Gekkio/mooneye-gb)

there are even test roms with which you can test your emulator to see if it implements all opcodes, interrupts and whatnot correctly (where correctly not only means "with respect to the effects" but also with respect to how many cycles everything should take). example of these test roms: [http://gbdev.gg8.se/files/roms/blargg-gb- tests/](http://gbdev.gg8.se/files/roms/blargg-gb-tests/)

also for example this disasm of pokemon red: [https://github.com/pret/pokered](https://github.com/pret/pokered)

if you want to write an emulator or a game and you have basic computer organization knowledge, i'd start with the famous pandocs.

<comment><USER15> > it has a very simple 8-bit (risc) architecture

The 8080/Z80 variant that is used in the Game Boy is not a RISC architecture - it is a processor architecture from a time long before the term "RISC" was even used the first time.

While the terms RISC/CISC are defined somewhat vaguely, there are still some common properties of architectures that are considered RISC:

\- Load-store architecture:

Counterexample: ADD A,(HL)

\- Lots of general purpose registers:

The 8080 has rather few:

B,C,D,E,H,L,A as 8 bit registers and BC,DE,HL,SP as 16 bit registers

\- Very orthogonal instruction set:

Counterexample: AND has always destination A

\- Often pipelined architecture (though this is not very specific to RISC)

\- Instructions typically aim to be run in one cycle (when pipelined)

Counterexample: Look at the instruction timing tables

\- very uniform instruction format

Look at the instruction encoding

<comment><USER7> _\- very uniform instruction format

Look at the instruction encoding_

The instruction encoding is quite regular -- it follows the 2-3-3 pattern that came from the 8008 (if not earlier), and thus looks much better in octal than hex:

[http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html](http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html)

[http://www.z80.info/decoding.htm](http://www.z80.info/decoding.htm)

As for everything else, I would agree with you --- it's not RISC.

<comment><USER15> > The instruction encoding is quite regular -- it follows the 2-3-3 pattern > that came from the 8008 (if not earlier)

While it is true (and I am aware of it) that the Z80 instructions follow the 2-3-3 pattern, it is nevertheless not _that_ regular. Best look at the "purest example" for this that is referred in the literature all the time and acted as a model for the criterion that in RISC the instruction format is very regular: the instruction format(s) used by MIPS. Here there only exist 3 different types of instruction (R-type, I-type and J-type) and all have a very regular pattern. One can find very suggestive pictures at

> > [http://homepage.divms.uiowa.edu/~ghosh/1-24-06.pdf](http://homepage.divms.uiowa.edu/~ghosh/1-24-06.pdf)

</comment></comment></comment></comment><comment><USER16> There were programmable cartridges in the 90's but IIRC Nintendo sued them all out of business, even the ones from Hong Kong. Did Nintendo lose interest in them after they stopped releasing new cartridges on those platforms? I didn't keep up after we cancelled the cartridge project I was working on at the time.

<comment><USER17> Nintendo still takes action against DS and 3DS flashcart resellers where they can, so you usually have to import them directly from China.

They don't seem to care about NES/SNES/N64/GB/GBA flashcarts anymore however, those are readily available from NA and EU based stores.

<comment><USER18> Do they actually have a case against flashcarts or are they just bullying them into submission?

<comment><USER17> The courts are on Nintendo's side here in the UK at least:

[http://www.nintendolife.com/news/2010/01/british_r4_card_imp...](http://www.nintendolife.com/news/2010/01/british_r4_card_importer_shipping_off_to_prison)

[http://www.nintendolife.com/news/2010/07/high_court_outlaws_...](http://www.nintendolife.com/news/2010/07/high_court_outlaws_flash_carts_in_uk)

I assume the DMCA anti-circumvention rules let them make a similar argument in the US.

<comment><USER18> That's nuts. I'm sure if the DMCA covered it, there'd be cases on record of it happening (too lazy to search). I have no doubt there's a cases for selling counterfeit games but to outlaw the possession of the cart itself is ridiculous. A 1 year sentence is even more ridiculous.

> the judge argued that "the mere fact that the device can be used for a non- > infringing purpose is not a defence."

That judge is unfit to be a judge.

</comment></comment></comment></comment></comment><comment><USER19> It's always interesting when retro game dev is delivered on actual hardware (disks, cassettes, modules). The recently featured RTS by the "8 bit guy" even comes in a box.

On the other hand, while I appreciate this voluntary hardship (a bit like esoteric languages), I guess you get about 90% of the "engendering art with constraints" with a lot less pain by using something like PICO-8.

</comment><comment><USER20> im currently doing something similar but with the ps2. it really amazes me that there are so few people interested in picking apart the ps2 and its games, and so few people interested in writing demos and games for the ps2. this lack of interest means that finding good documentation has been a little hard, but recently i hit a goldmine with official sony documentation on many of the important processors and coprocessors of the ps2 and it has been fascinating to read them. messing around with old game consoles is definitely a lot of fun.

<comment><USER21> Why would people be interested in it when you can build for modern systems? I get the nostalgia factor, but other than that?

Maybe you should document it, then make it easily accessible so that people have minimal friction getting started.

<comment><USER22> That's a bad argument, as Game Boys are even older and more limited, yet there is still very active development going on.

<comment><USER8> I think there's a sweet spot for these things. Very old consoles are very limited but also pretty simple. You could get an overview of all the basic capabilities of a GameBoy in half an hour. As such they're easier to get started, playing a sound on a GB from scratch would take you a dozen CPU instructions at most, pushing a sprite into the GPU only slightly more.

Doing that on a PlayStation 1 would be already significantly more complicated. Even if you don't bother with 3D you need to figure out how to upload the texture to the (significantly more complex) GPU, configure a bunch of stuff and then you might be lucky enough to draw something on the screen. Take for instance this code for a "virtual terminal" on the PS1 GPU, this is what the GPU init code looks like: [https://github.com/simias/psx-hardware- tests/blob/a72e0ba0c8...](https://github.com/simias/psx-hardware- tests/blob/a72e0ba0c8d577792cf65ae449bc39e461ebc815/libpsx/term.c#L138-L174)

And keep in mind that it's a super simplistic case, for anything more serious you'll want to configure double buffering, DMA, the GTE coprocessor for the 3D transforms and probably a few other things. Even just reading data from the CD-ROM is significantly more complex than accessing the memory mapped ROM of the GB.

I expect the PS2 to be even more complicated, although I don't have a significant experience coding on it. So you end up coding on a machine that's very limited by modern standards but at the same time might be more complicated to develop for than if you used Unity or the Unreal Engine.

<comment><USER23> I feel like this hits the nail. In addition to the complexity, there is also the thing that ps2 is comparatively similar to basic PC development, whereas 8/16 bitters have a very distinct different feeling.

2D pixel graphics arguably have aged better than early 3d graphics, and simple pixel graphics is also far more doable for a solo dev (or a very small team) than complex 3d scenes.

<comment><USER15> > 2D pixel graphics arguably have aged better than early 3d graphics, and > simple pixel graphics is also far more doable for a solo dev (or a very > small team) than complex 3d scenes.

I often ask whether part of the reason for this is also that the (graphics) tooling for 2D pixel graphics is better than for 3D graphics.

<comment><USER23> Of course this comes back to the complexity. Creating a very basic pixel art editor is essentially a weekend project. A 3d editor not so much.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> Does anyone know where one might find modern made buy-able Game Boy games? I have an old working Game Boy Color knocking around and would love to purchase some modern games for it!

</comment><comment><USER25> This game really reminds me of Doodle Jump, very cool that he finished one of his life goals.

</comment><comment><USER26> This is why my one of my hobby coding is using the NDK on Android, although we are carry a supercomputer in our pockets, I get some of that nostalgia feeling back.

I guess a better experience would be to plug an ESP32 to a LCD screen. :)

<comment><USER27> you can even do console on android with aide. was doing recently. paused while I switched to porting some console stuff to jailbroken iPad. running those over ssh. great nostalgia running nurses Dr Mario in a terminal. pointless, but enjoyable.

</comment></comment><comment><USER28> well, this is amazing. I was especially impressed with reusing tiles for the main screen image.

I'm a graphic designer and definitely not a coder for anything fun like this --- but I love seeing how people design low res sprites more than almost any other type of image. I think it speaks to my desire for minimalism, in a sense.

Fantastic work. That game looks pretty fun too.

</comment><comment><USER29> It is interesting to see which systems get thriving home-brew communities. Anecdotally I see a lot of posts about Game Boy hacking, but nothing about Sega Game Gear hacking.

<comment><USER30> The 16-bit generation is the inverse. The Sega Genesis has an AMAZING homebrew community thanks to a C-language dev kit that makes writing games remarkably easy. The SNES has almost nothing, save for a wiki and secondary board on Nesdev.

<comment> T-hawk Could this be that the SNES hackers are modifying existing games instead? There's all sorts of fan hacks and remakes of Super Mario World, Super Metroid, Zelda, Final Fantasy, Mario Kart, Castlevania, and more. But the Genesis doesn't have quite so many memorable franchises beyond Sonic so that's where the homebrewers are making new stuff.

</comment></comment></comment><comment><USER31> Quite the hot new game for the Game Child!

</comment><comment><USER32> >$15 to create homebrew GB

I wonder how much would it be to forge valuable gameboy games.

<comment><USER33> There are tons of counterfeit Pokemon cartridges on eBay and elsewhere.</comment></comment>


Shit Linus Says - <AUTHOR> https://gum.co/prQdM <comment><USER2> >new account only made to sell a book >said book is just a LKML digest >no reflexion no discussion no ideas

Flagged.

<comment><AUTHOR> No problem, do as you wish. By the way, it's free.</comment></comment>


The Palaearctic Realm - <AUTHOR> http://www.sivatherium.narod.ru/library/Dixon_2/04_en.htm

<comment><USER2> Very interesting, never heard of this before. More background at [http://en.wikipedia.org/wiki/The_New_Dinosaurs:_An_Alternati...](http://en.wikipedia.org/wiki/The_New_Dinosaurs:_An_Alternative_Evolution)

I suppose this has something to do with the new Pixar movie? [http://en.wikipedia.org/wiki/The_Good_Dinosaur](http://en.wikipedia.org/wiki/The_Good_Dinosaur)

Also reminds me of Dinotopia, [http://en.wikipedia.org/wiki/Dinotopia](http://en.wikipedia.org/wiki/Dinotopia)

</comment><comment><USER3> I got a copy of the first volume in this series (After Man: A Zoology of the Future) when I was 5 years old, and it was one of my favorite books growing up.

</comment><comment><USER4> Nicely done, some of those animals look almost believable.</comment>


Bitbucket is down - <AUTHOR> https://bitbucket.org/ <comment><USER3> Not according to the status page but we are also experiencing it - <USER2> pull, push and receive a "We ran into a minor glitch." error.

[https://status.bitbucket.org/](https://status.bitbucket.org/)

\-- EDIT --

Website: Major Outage

<comment><USER4> Investigating - Following reports from customers starting at 12:45 UTC, Bitbucket Cloud became unavailable.

Our engineering team is currently investigating this issue. We will provide an update as soon as we have further information. Oct 16, 12:56 UTC

</comment></comment><comment><USER5> Same here, bitbucket not accessible - not on login or repo, both are down.</comment>


'Feminist' Snow-Plowing System Brings Stockholm to a Standstill - <AUTHOR> http://heatst.com/world/feminist-snow-plowing-system-brings-stockholm-to-a-standstill/ <comment><USER2> This article (and many others about this topic) forgets an important detail: it was the snowiest November day in 111 years. Thus, the causation implied is not certain. [http://www.thelocal.se/20161110/stockholm-just-set-a-new- sno...](http://www.thelocal.se/20161110/stockholm-just-set-a-new-snow-record)

Additionally, the label "feminist" snow-ploying system is unnecessary polarizing (however, that might be a branding error by the city). In fact, the point of the whole thing was to not only to prioritize snow clearing for people who drive cars (where the majority is men) but also cyclists and pedestrians. I find this to be a welcome effort, the gender issue aside.

<comment><USER3> The whole effort -- in good or bad faith -- was poisoned with the gender politics, especially with the toxic variation of feminism.

</comment></comment><comment><USER4> This joke article was a waste of my time.

<comment><AUTHOR> 1/ Not a joke at all 2/ Article was "waste of my time", yet you had enough time to comment on it. Fascinating.</comment></comment>


Brain Difference In Psychopaths Identified - onreact-com http://www.sciencedaily.com/releases/2009/08/090804090946.htm

<comment><AUTHOR> The thing that really scares me is that you could easily argue that everyone has a "little bit" of psychopathy in them -- see how car drivers in big cities treat others on the road, see how some people go "too far" during war.

What threshold would/could you pick?

<comment><USER2> I'd figure that you cannot pick a threshold. I am convinced that you can turn EVERYONE into a psychopath by pushing him enough, whereas 'pushing'depends on the person getting pushed.

For myself, well, threaten people I love enough and make me desperate enough and I will probably snap, even though I am the calmest and most balanced person I know.

<comment> barry-cotter Pyschopaths don't love anybody. it's not a synonym for bad/evil person, it's a constellation of correlated traits, but at a very rough approximation-

A psychopath is someone who sees others as means not ends. Their existence is irrelevant except insofar as they serve his wants or needs, or prevents them being satisfied. A borderline psychopath, one of the people who was born that way inclined rather than straight born that way, and who was triggered by environment will probably be no more attached to any human being ever than you would be a to a pet.

</comment></comment></comment><comment><USER3> "You needn't take it any further, sir. You've proved to me that all this ultraviolence and killing is wrong, wrong, and terribly wrong. I've learned me lesson, sir. I've seen now what I've never seen before. I'm cured! Praise Bog! I'm cured!"

\- Alex

</comment><comment><USER4> The phrenologists in the 1800s just lacked the correct instruments.

<http://en.wikipedia.org/wiki/Phrenology>

</comment><comment> onreact-com We're sorry, but we have to arrest you. Your brain shows that you are prone to rape and murder.

<comment><USER5> It won't be outright arrest. Just preemptive and pervasive surveillance and other 'preventative' measures.

For the kids.

<comment> onreact-com Does it make it any better? Reminds me of the Gattaca analysis from yesterday:

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


Would like feedback on my website - <AUTHOR> http://benjamintaylor.me/ <comment><USER2> "I also do software engineer"

Hmm. I was going to say get a proofreader, but you are already doing a good step here by asking for feedback here.

>I spend my days with my hands in few different areas

Seems like this is missing a word.

The color is interesting, but a matter of taste I guess. Nice that the site continues to work without JavaScript enabled.

</comment><comment><USER3> I personally don't like contact forms. Someone looking to hire you would much rather have your email address and phone number.

</comment><comment><USER4> Nice!</comment>


What a Startup Office Really Looks Like - <AUTHOR> http://www.gobignetwork.com/wil/2007/4/10/what-a-startup-office-really-looks-like/10127/view.aspx <comment><USER2> No picture? It didn't happen.</comment>


Twitter's Flight JS Framework: First thoughts and comparison with Backbone - <AUTHOR> http://www.blogeek.com.ar/2013/01/31/twitters-flight-js-framework-first-thoughts-and-comparison-with-backbone/

<comment><AUTHOR> Check it out at <https://github.com/twitter/flight></comment>


World's first Pastafarian wedding takes place in New Zealand - <AUTHOR> http://www.theguardian.com/world/2016/apr/18/worlds-first-pastafarian-wedding-takes-place-in-new-zealand <comment><USER2> Pastafarianism is a great non-violent method of highlighting the privileged position of organised religions worldwide. When a nation decides that church and state should be separate, and no religion is promoted over any other, you usually end up with a handful of religions with privileges (e.g., tax exemption, access to civilian private records, etc.) that no other organisation can attain. When another religion gains popularity, they too claim these privileges (which is only just, as there is no state sanctioned religion).

This creates a neat conundrum for the lawmaker; what _is_ a religion? When is an organisation a church? Can you legally define what a religion is?

Why is the Church of the Flying Spaghetti Monster _obviously_ satire, and Catholicism a _proper_ religion? What about Scientology? Is it about the number of adherents? Something tangible? A short-list of pre-approved religions? Pre-approved by whom? On what legal basis?

If you follow this line of reasoning to the extreme, you must conclude that a satirical organised religion is just as much a _real_ religion as any other. Which is fine, but it implies that have to provide the same (legacy) privileges to all, or accept not being a secular state (and rewrite your constitution as a consequence).

Pastafarianism is all about proving this inherent silliness afforded to established religions.

<comment><USER3> Religions make some kind of honest claim on metaphysical Truth. Satire is at odds with that.

The clever thing is that getting the government to pick winners here is actually worse than letting someone wear a colander in his ID photo. This doesn't undermine organized religion as much as it demonstrates the limitations of liberal government.

I'm not sure that's a win for anyone.

<comment><USER2> If governments are eventually forced to abandon the special privileges afforded by law to religions because of satirical mock-religions, then I think the country as a whole benefits.

The question pastafarianism poses though, is how can you differentiate between satire and 'the real thing'? What if pastafarians claim that, yes, it started out as a joke, but now we really believe in His Noodly Appendage? As a normal citizen it isn't hard to conclude that 'obviously', this is satire, but law must not be based on what we _feel_ is satire or religion, it has to be objective.

<comment><USER4> Apparently some people argue that the absurdity of these religions can itself lead to a spiritual experience:

 _" Several religions that are classified as parody religions have a number of relatively serious followers who embrace the perceived absurdity of these religions as spiritually significant"_

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

</comment></comment></comment></comment><comment><USER5> In other words, Bob is not a Prophet. Bob is the Profit Margin.

Cheers to the Newlyweds. May their pasta bowl never be empty.

</comment><comment><USER6> I was my understanding that ninjas were also involved, or is that a splinter group?

<comment><AUTHOR> There appear to be a number of sects with varying positions on the Ninja question. I pray this does not devolve into sectarian Sunni vs Shia style warfare between the Pirate and Ninja faiths. [http://uncyclopedia.wikia.com/wiki/Pastafarian_Sects](http://uncyclopedia.wikia.com/wiki/Pastafarian_Sects)

<comment><USER7> I fear that it will not stop there. With Pirate and Ninja sects already identified, I must conclude that the Zombie and Robot sects are worshiping in secret.</comment></comment></comment>


Ask HN: What kind of side-project can I build to play with algorithms? - <AUTHOR> I want to work on a webapp as a side-project. But what I want to play with is algorithms, Computer Science things. Input text A, output text B.
So, what real problems could I try to solve with "classic" algorithms and offer as a webapp? Or, which fields could I explore to do so?
I don't know if it makes sense what I'm saying. But what I mean is: problem P which some people have. This problem can be solved through classic, standard algorithms. I create a terminal program that solves it and then I just connect it to a dead simple web frontend.
Basically, as an amateur I'm more or less "good" at solving this kind of problems (the typical ones that you would see in a CS course), and would enjoy trying to apply them at real life.
Thanks a lot, excuse my English. <comment><USER2> Make a copycat of leetcode.com</comment>


Show HN: LevelDB outperforms others on a cheap phone (Microsoft ESE and SQLite) - <AUTHOR> https://github.com/maxpert/LevelDBWinRT/wiki/Performance-And-Comparison <comment><USER2> The SQLite numbers are not going to be realistic here given that "no SQLite transactions" are used and the write-ahead-log is probably not used. Assuming defaults are used, that means "PRAGMA synchronous=FULL" and "PRAGMA journal_mode=DELETE" (so no Write-Ahead-Log). This means every mutating statement is potentially going to result in multiple fsync() operations. See [https://www.sqlite.org/pragma.html](https://www.sqlite.org/pragma.html) for context.

<comment><AUTHOR> I didn't use any of the sophisticated stuff at all. As article states, I did it like what a typical programmer might have done if he wanted to do some basic key-value storage.

<comment><USER3> Please put a note in your article explaining this. SQLite is literally 10x faster using the WAL vs standard mode. And while you're at it, please consider an index on the SQL server and SQLite tables, so the reads are faster as well.

I would love to see the article updated using SQLite's _PRAGMA journal_mode = WAL_ and _PRAGMA synchronous = NORMAL_. Then it would be a much more fair comparison.

Please don't give programmers a license to be lazy and not learn about their tools!!! If this article is trying to inform, or give benchmarks, it should not come to invalid conclusions without explaining the tradeoffs.

<comment><AUTHOR> Yep have tried it with WAL and it still doesn't beat LevelDB. Thanks for the lazy suggestion I added disclaimer on top of the page right away!

</comment></comment></comment></comment><comment><USER4> It would also be interesting to see a LevelDB vs SQLite comparison on Android, but there is some room to improve SQLite on ext4 (Journaling the Journal):

[https://www.usenix.org/conference/atc13/technical- sessions/p...](https://www.usenix.org/conference/atc13/technical- sessions/presentation/jeong)

SQLite 4 is supposed to have a simplified K/V storage engine. That would probably be a more fair comparison.

(Hm, looking at LevelDB I don't see references to Android any more, maybe they dropped support?)

<comment><USER5> SQLite 4 is also designed, in part, to beat LevelDB (i.e. they explicitly benchmark the default storage engine against LevelDB)[1].

SQLite 4 looks pretty darn cool, is it still actively being worked on? Commits seem quite scarce[2].

\--

1\. [https://sqlite.org/src4/doc/trunk/www/design.wiki](https://sqlite.org/src4/doc/trunk/www/design.wiki)

2\. [https://sqlite.org/src4/timeline](https://sqlite.org/src4/timeline)

<comment><AUTHOR> Checkout [https://github.com/maxpert/lsm- windows](https://github.com/maxpert/lsm-windows) for port of the core LSM engine of SQLite4. I might be doing one in one more weekend.

</comment></comment></comment><comment><USER6> Doesn't leveldb , kinda suck? Meaning every ~serious db doesn't use it or has created a fork of it ? or see the symas-lmdb benchmarks for many different usecases of different kv stores [http://symas.com/mdb/#bench](http://symas.com/mdb/#bench)

<comment><AUTHOR> Well LMDB is hands down the fastest of them all. All the benchmarks that I saw with LMDB were mostly on Linux and ext file system. It would be really interesting to see how the memory mapped files perform on a phone though. But doing so requires me to port complete LMDB on phone :P

<comment><USER7> LMDB already runs on iOS and Android. In my experience you will have issues on some Android devices though. For instance, I recently found out that on some Android devices writes to a mmap-ed file through the usual POSIX interfaces are not immediatly reflected on reads through the mmap, which means that on those devices you MUST use MDB_WRITEMAP.

For those who don't know, I/O on Android is a nightmare. On your typical phone, the filesystem you have access to is a FUSE that mirrors to an EXT4 filesystem mounted with crazy device-specific options which include noauto_da_alloc.

I don't know any DB which works fast and consistently across all Android phones on the market. SQLite is probably the safest bet for now.

<comment><USER8> > LMDB already runs on iOS and Android. In my experience you will have issues > on some Android devices though. For instance, I recently found out that on > some Android devices writes to a mmap-ed file through the usual POSIX > interfaces are not immediatly reflected on reads through the mmap, which > means that on those devices you MUST use MDB_WRITEMAP.

How is that possible if they are using Linux and UBC (Unified Buffer Cache). It's unlikely they anybody would go undo that from the VM/FS layer.

The only think I can think off this behavior happening in a Linux app is if you're creating a private mapping... Private mappings are COW and a write to the global would cause a copy of the old data for you app. They'll be no sycing till you msync()

<comment><USER7> To be honest I am not entirely sure of my interpretation of the issue yet. What I know is that on those devices you sometimes can't read your writes with LMDB if it's not using MDB_WRITEMAP.

While trying to debug I ended up on the only question ever asked by Howard Chu (LMDB author) on Stack Overflow: [http://stackoverflow.com/questions/7061910/when-does-an-o- sy...](http://stackoverflow.com/questions/7061910/when-does-an-o-sync-write- become-visible-in-the-pagecache-mmapd-file)

I am still trying to figure out what exactly is happening here but it's not very easy given that I do not even have access to a rooted phone that exhibits the issue.

<comment><USER9> It really depends on where you're storing your DB files. If you're using the /data partition it should Just Work. If you're using external storage, yes, android does a bunch of stupid tricks to implement its secure storage, and that interferes with mmap.

Here's the code that resulted from that Stack Overflow question: [https://github.com/LMDB/lmdb/blob/mdb.master/libraries/liblm...](https://github.com/LMDB/lmdb/blob/mdb.master/libraries/liblmdb/mdb.c#L4091-L4096)

After 36 years of writing code, I have more answers than questions.

</comment></comment></comment></comment></comment></comment><comment><USER10> Nice demo. If one just needs a KV store, it's good that the engine that only does KV outperforms the more general engines ;) On top of all the engineering that goes into making LevelDB fast.

</comment><comment> cat-dev-null LevelDB also made the Bitcoin client super unstable and prone to dataloss. Use sqlite, because it's bullet-resistent and has competent maintainers.

</comment><comment><USER11> 500 inserts is way too small for a database benchmark. At that size point you're stressing the in-memory format of the database and not the actual IO performance. I'm guessing LevelDB just wins because it's considerably simpler and doesn't have to go through a schema layer - it's literally just a LSM tree.

<comment><AUTHOR> I tried it with 5K to 10K entries and it still out performs SQLite or any other engines. For SQLite the default and most probabilistic way a programmer will implement a key value store. You can try the sample on your own machine as well.

<comment><USER11> Well, you're also doing a random insert. That workload will always perform better on an LSM tree when compared to a B/B+ Tree (used by the non-LevelDB engines). Can you post sequential read/write benchmarks in addition?

<comment><AUTHOR> I the article I have already covered that LevelDB is known to have better sequential performance anywayz [http://leveldb.googlecode.com/svn/trunk/doc/benchmark.html](http://leveldb.googlecode.com/svn/trunk/doc/benchmark.html)

</comment></comment></comment></comment><comment><USER12> Realm would also be a great comparison. Albeit the core is not open yet so maybe that's why it was left out? For mobile databases though it really screams for me, when compared to SQLite.

<comment><AUTHOR> Good suggestion will add it to benchmarks

</comment></comment><comment><USER13> That's because leveldb by default writes asynchronously. And probably at the time of reading they were still in RAM/cached.

<comment><AUTHOR> Let me quote LevelDB docs here:

"By default, each write to leveldb is asynchronous: it returns after pushing the write from the process into the operating system. The transfer from operating system memory to the underlying persistent storage happens asynchronously. The sync flag can be turned on for a particular write to make the write operation not return until the data being written has been pushed all the way to persistent storage. (On Posix systems, this is implemented by calling either fsync(...) or fdatasync(...) or msync(..., MS_SYNC) before the write operation returns.)"

and if you see my benchmarks I am flushing each entry to the disk.

<comment><USER13> Something is still missing. It's hard to imagine such drastic performance difference in btree implementation.

btw I've had better experience using kyoto db than levelDB.

</comment></comment></comment><comment><USER14> How many applications are _really_ doing intensive read/writes on mobile?

<comment><USER15> On Android most well-architected applications will persist almost everything to disk before showing it to the user. Network directly to UI is too unstable.

It's not about intensive reads/writes (dozens of MB) it's about making each individual read or write very fast so you don't drop frames. On Android you have 16ms to draw each frame (60fps). If you have a DB request take 5ms then all of a sudden you're very likely to have jank in your app.

<comment><USER16> Don't do I/O on the UI thread. The time it takes to do a write should not affect jank.

<comment><USER17> Yeah, a well architected application doesn't touch disk on the UI thread.

</comment></comment></comment></comment><comment><USER18> The last time I look at LevelDB it didn't support multiprocess access to the same file (so ended up using SQLite). Ha this change?

<comment><USER19> I don't think there are many storage systems that have higher throughout with two concurrent writers than one, so a global write lock is not unreasonable.

</comment></comment><comment><AUTHOR> Updated the documentation with assumptions.</comment>


"Loving Your Enemies" (1957) - <AUTHOR> http://kingencyclopedia.stanford.edu/encyclopedia/documentsentry/doc_loving_your_enemies/index.html <comment><USER3> I'm also reminded of C.S. Lewis here:

 _"Suppose one reads a story of filthy atrocities in the paper. Then suppose that something turns up suggesting that the story might not be quite true, or not quite so bad as it was made out.

Is one's first feeling, 'Thank God, even they aren't quite so bad as that,' or is it a feeling of disappointment, and even a determination to cling to the first story for the sheer pleasure of thinking your enemies are as bad as possible?

If it is the second then it is, I am afraid, the first step in a process which, if followed to the end, will make us into devils. You see, one is beginning to wish that black was a little blacker. If we give that wish its head, later on we shall wish to see grey as black, and then to see white itself as black. Finally we shall insist on seeing everything -- God and our friends and ourselves included -- as bad, and not be able to stop doing it: we shall be fixed for ever in a universe of pure hatred."_

</comment><comment><USER3> _So somehow the "isness" of our present nature is out of harmony with the eternal "oughtness" that forever confronts us. And this simply means this: That within the best of us, there is some evil, and within the worst of us, there is some good.

When we come to see this, we take a different attitude toward individuals. The person who hates you most has some good in him; even the nation that hates you most has some good in it; even the race that hates you most has some good in it._

And conversely, within those people and nations you most love, there's some bad.

The role of the prohpet is to say both these things to their peers, who generally don't want to hear either.

</comment><comment><USER4> "Do unto others 20% better than you would expect them to do unto you, to correct for subjective error." – Linus Pauling

</comment><comment> wu-ikkyu >I think the first reason that we should love our enemies, and I think this was at the very center of Jesus' thinking, is this: that hate for hate only intensifies the existence of hate and evil in the universe. If I hit you and you hit me and I hit you back and you hit me back and go on, you see, that goes on ad infinitum. [tapping on pulpit] It just never ends. Somewhere somebody must have a little sense, and that's the strong person. The strong person is the person who can cut off the chain of hate, the chain of evil. And that is the tragedy of hate, that it doesn't cut it off. It only intensifies the existence of hate and evil in the universe.

Many of the so called and supposedly tolerant "social justice warriors" and the "PC crowd" would do well to understand this principle.

While indeed they may have a valid point about the vile hatred which their enemies are spreading, many of them become overridden by that hatred and echo it back creating a negative feedback loop.

>And this is what Jesus means, I think, in this very passage when he says, "Love your enemy." And it's significant that he does not say, "Like your enemy." Like is a sentimental something, an affectionate something. There are a lot of people that I find it difficult to like. I don't like what they do to me. I don't like what they say about me and other people. I don't like their attitudes. I don't like some of the things they're doing. I don't like them. But Jesus says love them. And love is greater than like. Love is understanding, redemptive goodwill for all men, so that you love everybody, because God loves them. You refuse to do anything that will defeat an individual, because you have agape in your soul. And here you come to the point that you love the individual who does the evil deed, while hating the deed that the person does. This is what Jesus means when he says, "Love your enemy." This is the way to do it. When the opportunity presents itself when you can defeat your enemy, you must not do it.

As he says, you don't have to _like_ your enemy, but you should strive to _understand_ them and where they are coming from as a human being; rather than writing them off as irrevocably stupid and completely irrational, as is done repetitively by either side in the 2 party system.

This is not merely a religious/moral principle, but a strategic/practical one:

"If you know the enemy and know yourself, you need not fear the result of a hundred battles. If you know yourself but not the enemy, for every victory gained you will also suffer a defeat. If you know neither the enemy nor yourself, you will succumb in every battle"

-Sun Tzu, The Art of War

<comment><USER5> Jesus' ideology is one of submission and reward in the "next world". No wonder why it has been embraced by every political power since ancient Rome. I think that using such ideology to protest against oppression is a losing proposition. In fact, if we like it or not, it is violence that really makes the difference when people protest against something. For example, the government loves to say that it was the peaceful protest of Dr. King that made the difference in the civil rights movement. In fact, it was the fear they had of the many violent, armed black movements that were developing around the country that made any difference. Dr. King was then viewed as a public, peaceful voice to control these protestors which lead it to the victory of the civil movement. This is how the government likes people to see the history of what happened. Similarly for the struggles of the Indian people that were presented publicly just as the pacific protests lead by their enlightened leader Gandhi.

<comment> wu-ikkyu Certain parts of the government definitely were glad that MLK was promoting non violence, that is until he extended that call for non violence to the war in Vietnam.

Though I think you underestimate the mass effect on millions of americans from watching people peacefully walking down the street get beaten to a pulp by the police and gored by attack dogs while they ate their TV dinners. It was disgusting and iconoclastic to the ethos that the USA stood for freedom.

Dr. King deliberately strived to create such a violent ruckus in the hopes that it would be televised so the rest of the nation could vividly experience the reality of racism and the hypocrisy of the government. It was information warfare.

<comment><USER6> > Though I think you underestimate the mass effect on millions of americans > from watching people peacefully walking down the street get beaten to a pulp > by the police and gored by attack dogs while they ate their TV dinners. It > was disgusting and iconoclastic to the ethos that the USA stood for freedom.

Half the country looked at that, and all they saw was a mob of _______ getting their just deserts. Why can't they shut up and go to work? What's their problem - it's not like slavery was still around.

Half the country supported the Kent state shootings.

Today, half the country opposes _any_ protest against police violence. Sitting down? Unacceptable. Standing up? Unacceptable? March in the streets? Unacceptable. Speaking? Unacceptable. Staying silent? Also unacceptable. Perhaps a purely functional form of protest, with no observable side effects would be, but I've never heard of a successful one.

You can always find _something_ or _someone_ to condemn in a protest - <USER2> once you do, this justifies using violence to put it down. Collective punishment is still popular, especially when its collective punishment against a group speaking out about an uncomfortable topic.</comment></comment></comment></comment>


Evolution of chess: Popularity of openings over time - <AUTHOR> http://www.randalolson.com/2014/05/26/a-data-driven-exploration-of-the-evolution-of-chess-popularity-of-openings/ <comment><USER2> The Pirc spike in the 1850s looks interesting visually, but keep in mind that your data set back then is incredibly small. Looking at my own database, the spike seems to be entirely due to some guy name Mahescandra playing it 57 times against Cochrane. It certainly doesn't have anything to do with the increasing popularity of 1.d4 40 years later.

I've never heard of Mahescandra, but Cochrane is the guy the famous Cochrane gambit in the Petroff is named after, where White sacrifices a piece on move 4 (1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nxf7).

<comment><AUTHOR> I double-checked my data set to look into this, and you're right. Nearly all of the Pircs in that time period were done by a guy named Moheschunder Bannerjee: [https://en.wikipedia.org/wiki/Moheschunder_Bannerjee](https://en.wikipedia.org/wiki/Moheschunder_Bannerjee)

He contributed to the development of the Indian Defence.

<comment><USER3> Why do you all have your own datasets of historical chess moves? Is this a popular playground for data analysis, or is it something chess learners study?

<comment><USER4> Chess compresses very well. You can fit pretty much every meaningful game ever played into 10gb or so.

</comment></comment></comment></comment><comment><USER5> Chess opening trends are like fashion--some high profile player(s), always on the search for new ideas, finds a resource in an unpopular line and suddenly it's all the rage. Everyone is playing it, working out the complications, finding ways to defend or neutralize the lines, then interest wanes until someone uncovers a fresh new plan somewhere else and the cycle repeats. Other times though, new resources aren't found and a line mostly dies out, like the Kings Gambit.

So what I would be interested to see from your data set is a relation between opening performance and its popularity. Did people stop playing the Pirc due to sub-par results compared to other openings at the time (like I imagine happened with the Vienna) or did it simply fall out of fashion? It would be interesting to know which lines always had good results, but just stopped being popular for whatever reason. They could be due for a revival.

<comment><USER2> Unfortunately, it isn't always obvious from the data which of your interpretations is correct. Take the following two fictional cases:

Case 1: The Limburger Gambit was popular for a few decades, but then grandmasters started playing the Limburger Gambit Deferred instead, so it fell out of fashion, although it is still a perfectly good opening.

Case 2: The Limburger Gambit was popular for a few decades, but then a response was found that refuted the whole line. It was played in one famous game, after which everybody abandoned it.

As far as the data set is concerned, the difference between these two cases is a single game, so it's not going to show up in the stats.

<comment><USER5> This is true, but I think there are many more case 2s where rather than an entire line being refuted in a single blow, gradually one side was able to find antidotes and the line stopped being a good practical choice. The Vienna is an example. So while it isn't always obvious, I'm hoping enough fall between your two Limburgers to be interesting.

<comment><USER2> The two biggest examples I can think of of "opening fell out of fashion but then was brought back at the highest levels" are Kasparov reviving the Scotch in the 1990s and Kramnik reviving the Berlin variation of the Ruy Lopez in his world title match with Kasparov in 2000.

</comment></comment></comment></comment><comment><USER6> As a novice player, it's frustrating to read stories about players beating other players "by the book," i.e. they know more openings than the other player does, so they play some unexpected opening and just destroy the opponent out of the gate. I guess this is possible in just about any game, not just chess, but it seems to reduce the optimal learning process for a novice to "start memorizing things". Bah. Edit: Not that memorization is bad or boring by necessity, but finding a way to make the memorization fun and interesting is in itself frustrating, knowing that you could learn openings really fast just by brute-forcing the various lines into your brain with things like memory palace techniques.

<comment><USER7> This is an argument that is raised a lot in chess circles. While there's some truth behind it, it tends to be applicable much more in an environment where both players are trying really hard to play "in book".

Before you get too deep into openings, you should have a solid understanding of the strengths of individual pieces. This leads to a better understanding of why you'd want to put your pieces in certain places. It kind of explains the broad strokes of openings, without the little traps here and there. This is known as the Russian school of teaching.

Basically, learning from this direction, you can spend much less time studying openings. You might want to know about few common traps in common situations that you tend to use, but that's not the focus. And you'd be surprised at how well this works - barring a tiny number of games where you're caught out, your better understanding of the overall game will win out.

Essentially, overspecialising in opening repertoire at the novice level is a kind of arms race which only really works against other similar players. It's not a good long-run strategy.

</comment></comment><comment><USER8> The analysis is interesting. However I'm not sure it has much practical value due to transpositions. For example, as white I play 1.Nf3 and if black plays d5 I play d4 and we have a d4 opening. If black plays c5 I play c4 and depending on what black does it will transpose into either an English opening (1. c4) or a maroczy sicilian (1. e4) or an indian defence (1. d4).

So basically, my opening move would be classed as 'other' but really it is one of 1.d4, 1.e4, 1.c4 in terms of the classifications of this post.

<comment><AUTHOR> If any of the alternative paths were common enough, they would show up in the charts as well. I didn't limit the analysis to a particular set of moves; I simply counted all of the paths present in the data set and showed the most common ones. This is why two variations of the Indian Defence show up in the "White's second move" chart.

I think it'd be interesting to try to combine all possible paths for an opening into a single count, but that would probably be complicated if multiple openings can be reached through the same path. (e.g., which opening would the shared path be assigned to?)

<comment><USER2> The traditional way to handle this is by classifying a game according to the last cataloged position that occurs in it. This is how ECO classification works; you can see its catalog of positions at [http://www.chessgames.com/chessecohelp.html](http://www.chessgames.com/chessecohelp.html).

For example, just after White plays 1.Nf3, the game is classified as A04, but after 1...d5 2.d4, it's now officially a D02, over in the Queen's Pawn category, just as it would have been if the game had started 1.d4 d5 2.Nf3.

Databases usually keep track of chess openings played by ECO code rather than by specific moves, exactly so that these transpositions are handled smoothly.

<comment><AUTHOR> I wish I knew about this earlier! Thanks for explaining it to me though. :-)

</comment></comment></comment></comment><comment><USER9> I noticed that the queen's pawn opening has grown in popularity considerably.

I don't really play chess anymore, but two decades ago, I played quite a bit. Much of the time, it was against a computer. I couldn't win. I finally found a book that really worked for me, and it taught me the "stonewall" approach, where you (playing white) advance the queen's pawn, lock up the game, and start maneuvering very tactically to restrict the movement of black's king and get a mate.

I found that this was the only way I could beat the computer - largely because it allowed me to think along a very few narrow lines (often involving a sacrifice), while the computer would get bogged down in useless searches. This was all in the late 90s, my guess is that it wouldn't work anymore.

So, I'm wondering if the surge in queen's pawn opening is the result of people being conditioned to play against computers? And it brings up another point - I've _heard_ (man, I wish I could find a link to this theory on the web) that chess masters who lament the rise of computers actually aren't particularly bummed that computers can beat the strongest human chess players. They're bummed that the best human chess players are now playing a style that is heavily influenced by years of practice against a very specific style of opponent - a powerful computer that can't really make a "mistake". Young people have opportunities to train that never existed before, but because they don't train against stronger _human_ players as often, some of the style of the game has been lost. I'm not (and never was) good enough at chess to know if this is true, but if anyone has an angle on it, please chime in!

Oh - by the way, a very satisfying ending here. I knew a very brilliant guy who I couldn't beat at chess in high school. After I read this "stonewall" book, I was all ready for him. I advanced queen's pawn, all read to lock it down and take away his advantage. He simply advanced his king's pawn, basically telling me, go ahead and take it. The wide open game against an inferior opponent was worth far more to him than a pawn.

Good for him, though not so good for me ;) That's the kind of thing you do when you're experienced playing against people rather than computers.

<comment><USER2> Was that book with the Stonewall Attack "How to Think Ahead in Chess"? [http://www.amazon.com/How-Think-Ahead-Chess- Techniques/dp/06...](http://www.amazon.com/How-Think-Ahead-Chess- Techniques/dp/0671211382)

I don't think that the current popularity of 1.d4 is due to playing against computers. The main reason it is currently more popular than 1.e4 at the highest levels is that Black has found a very effective way to counter 1.e4 (the Berlin variation of the Ruy Lopez) that makes it difficult for White to achieve more than a draw. This high-level popularity then trickles down to lower levels.

It is definitely true that the style of play has changed somewhat due to computer engines, but it's not so much the result of playing against computers (top players generally don't find that very rewarding), but of analyzing with computers. You can play through a game or an opening and explore variations, with the computer constantly telling you what it thinks the best moves are and who is winning by how much. As a result, players become trained to evaluate positions closer to the way a computer would. One example is that computers don't mind grabbing material and defending an unpleasant position for a long time if they don't think that the opponent can break through. This has given players confidence to be more materialistic than they were in the past.

<comment><USER9> Yes, that was the book!

This also reminds me of a Martin Amos novel "the information" (based on the publication date, I'd guess I read it around the same time I was learning the stonewall attack). There's a section where one writer is determined to defeat his friend at everything (tennis, chess, a few others), and he hires people to help him.

The chess teacher, I believe, teaches him something that sounds like the stonewall defense, and reflects that it almost feels like he's teaching someone to _cheat_ at chess rather than play it. The writer isn't cheating of course (at all), but I think it feels this way to the chess master/instructor because he's learning the stonewall because he doesn't really want to engage in the actual competition. He wants to sidestep it in order to win.

I'm not trying to knock the queen's pawn defense, more the way I (and this writer) were trying to use it. I'm sure queen's pawn openings can be very creative. But in my case, this is why I considered my buddy's play of the kind's pawn a "satisfying ending." I was (to use the tennis analogy) using a pusher's approach. When you watch two people playing a game, and it's clear that one person is trying to win by shutting down the game rather than really playing it, you tend to root for the person going for creative play.

</comment></comment></comment><comment><USER10> The visualisation I would most like to see with respect to openings is a 'heat map' like diagram, showing how likely a given piece is to occupy each square after _n_ moves.

Are there any squares never used after the first move?

Just what weight is given to the centre of the board after the first few moves?

This sort of information could be communicated really well with a view of the board, and the pieces expected to be in each square.

</comment><comment><USER11> Out of curiosity, is chess solvable yet by computers? Meaning, is it possible to simply brute force every possible legal game up to _n_ moves and determine all the winning and losing move sets? What's this number look like theoretically?

(I'm sure in the general sense games with a very large n aren't as I suppose a game could be played in perpetuity)

<comment><USER12> No, it is not yet possible to brute force all chess games. The largest extant endgame database has full solutions for seven pieces on the board. Once you get to that point, chess is solved. ;-)

<comment><USER13> Just to clarify what you alluded to, it's theoretically possible for chess to be solved, and progress is being made slowly, but surely (it took around 7 years for chess to be solved up to 7 pieces). Of course, with each additional piece comes an exponentially larger set of positions, so progress from 7 to 8 pieces should take much longer assuming there aren't any massive breakthroughs in computing speed.

</comment></comment></comment><comment><USER14> Great blog post. It's interesting to compare my knowledge of opening evolution with the historic data. During the Romantic Era, King Pawn games were clearly the norm. When Reti and Nimzowitch introduced hypermodernism in the 1920s Indian openings became much more popular.

</comment><comment><USER15> i don't know much about opening but i play chess frequent in my younger age and sometimes computer. It's just a pattern.But to win with computer,must follow non pattern/opening to win.. Very long time not playing chessmaster software.

</comment><comment><USER16> I'm under the impression that introducing the Queen too early (say < 6 moves) usually leads to it being taken and that player losing.

I don't know how much this is actually true though. That would also be a good thing to look over

<comment><USER2> Indeed, one possible consequence of developing the queen early is that it can be harried with tempo by the opponent; that is, he gets to make you respond while making developing moves he wanted to make anyway.

However, except in cases of gross incompetence it doesn't lead to your queen being taken, it's just suboptimal. There are also plenty of exceptions to this rule, of course. The most obvious one is the main line of the Scandinavian Defense, 1.e4 d5 2.exd5 Qxd5. This isn't a grade-A opening but it's a solid B+ and occasionally gets used at the highest levels.

</comment></comment><comment><USER17> Where does one download the data? The first post in the series links to the website but there doesn't seem to be any download links anywhere</comment>


Richard Stallman on React.js - <AUTHOR> https://lists.gnu.org/archive/html/directory-discuss/2017-01/msg00003.html <comment><USER2> does not appear to be the right interpretion - according to this - [https://code.facebook.com/pages/850928938376556](https://code.facebook.com/pages/850928938376556)

</comment><comment><USER3> It's great that we have an authority's unsubstantiated opinion on this; now we can all pick a side and move on. /s

</comment><comment><USER4> Pretty interesting, I'd never taken the time to review the React license.

In addition to this restriction, my guess is it will cause other undesirable license compatibility issues.</comment>


Patricia Cornwell Investigates Jack the Ripper - kristin-BCB https://bookclubbabble.com/reviews/patrica-cornwell-investigates-jack-the-ripper/ <comment><AUTHOR> Having studied this myself at great length over the last ten years, Cornwell's book is widely regarded as a joke. I could list off a bunch of reasons here but Casebook covers this all in great detail here - [http://casebook.org/dissertations/dst- pamandsickert.html](http://casebook.org/dissertations/dst-pamandsickert.html)

In my opinion, the Sickert theory holds about as much water as the Royal Conspiracy - entertaining read but almost certainly bollocks.

</comment><comment><USER2> The original book is from 2002; this seems to be a revised edition, if I understand it correctly. Note Patricia Cornwell's research received a lot of criticism, and is far from conclusive. I do not think it's widely accepted that Jack the Ripper is indeed a "case closed", or that he was Walter Sickert. Cornwell has also been accused of buying and damaging Sickert's paintings in an attempt to prove her case, though I don't know if those accusations were fair.</comment>


Outsourcing Turns Inside-Out as Indians Open U.S. Centers. - <AUTHOR> http://www.bloomberg.com/news/2012-10-25/outsourcing-turns-inside-out-as-indians-open-u-s-centers.html <comment><USER2> The title is wrongly placed, its not inside-out reversal, but only a marginal workforce is now being hired in the US itself, with a Indian heart, this model is still better than whole-sum US (put a european country here) owned center as:

\- The TCS still has Indian Top Level Executives, overseeing things from India, who take home a comparatively smaller amount of remuneration compared to US based peers only, backed by the fact that cost of living in US, is still a lot higher compared to cost of living in India.

\- Moreover due to growing nationalistic movement in US over outsourcing, this is the best way, at cost of 1-20 top level jobs, 200-1000 jobs are secured per such center.

ofcourse, lastly the margin is greater for these Indian IT giants based on the appreciation in value of US Dollar in last 1-2 years.

it was 43-45 Rs for 1 dollar in 2007-08, it is now up to 55-58, after coming down from 60-63 level few months back.

India of course have its own set of problems due to it as well, as we have to import a lot of petroleum in US dollars.</comment>