Should I tell the founder his top employees are lazy and liars? - <AUTHOR> Hi, everyone. I know the title is blunt and the post is a little long. Please bear with me.

1. I'm an employee at a small agency (<10 of us).
2. I've been here almost a year. I've already seen a couple of raises and a promotion. I'm killing it and I sense my job is secure despite what I reveal to my employer. But who knows?
3. I discovered the most senior employee was charging a client for work that was never performed.
4. I let it go. I discovered this 6 months into the job and just wanted to play it safe. Nobody likes a snitch.
5. We ended up losing the client. I felt guilty for not speaking.
6. At almost a year in now, I've found that last month alone this individual is billing four clients for work that was also not performed. It makes me sick when I'm around this person.
7. I've recently discovered that the next most-senior employee is also charging three of their clients for work that is also not being completed.
8. In a recent private meeting with the founder, I informed him that I think people aren't doing their work. He said that was "distressing," sighed, and we continued discussing some other matters. He also said he'd like any other concerns brought to his attention whenever I felt I needed to raise them, his "door was always open," etc. I know he could sense I was wary about telling him anything too specific. I'm glad that he didn't push the matter at that time. This was about 3 weeks ago.
I have another meeting with the founder later this week. What should I say? <comment><USER2> Frankly, I'd be surprised if the founder in such a small business wasn't aware this was already going on. If he didn't then he's incompetent, if he does then he's as dodgy as the employees you reference.

Integrity is one of the most valuable traits you can look for in people. Rather than worrying about the company so much, I'd be more concerned with yourself and how it reflects upon you being associated with this type of behaviour.

Just my 2 cents. Good luck!

<comment><AUTHOR> Thank you for your well wishes.

While not incompetent, I do believe he's neglected his responsibility to properly evaluate the performance of his employees more closely.

</comment></comment><comment><USER3> Tell the founder everything you know. Be honest and truthful, don't editorialize.

Unless major changes happen quickly, you need to quit. Your salary is being paid with stolen money, and you cannot accept that.

<comment><AUTHOR> Thank you for your response. (Though amusingly enough I am satisfying clients enough to bring in over 3x my salary. Makes me wonder if I should just freelance, haha...)

<comment><USER4> Yes! Freelancing is scary; but not as scary as being part of a legal proceeding, implicated in their crime.

</comment></comment></comment><comment><USER5> 3 - 5 ... sounds like you've worked out for yourself one reason that keeping quiet was wrong.

What I'd do:

\- Give up any idea of continuing to work for that agency; you might come out of it smelling like roses, but you might get fired as well. Accept that acting ethically might cost you your job, and act on that assumption. Also, remember that being fired for acting ethically is, in the long run, an act of mercy: you don't want to be associated with crooks.

\- Put your complaint in writing, with details. Names, dates, amounts, clients, anything & everything you can remember. Give it to the founder, and explain that you'd like something done about it.

\- Repeat the previous step a few times. If nothing happens, tender your resignation. Again: do you want to work for crooks?

\- If resignation is necessary (or, if you're fired), then go to the clients and present them with the very same written complaint you presented to the founder. Be aware that being sued by the agency is a very real possibility should that happen.

<comment><AUTHOR> Thank you very much for your response. I appreciate it.

<comment><USER6> In writing could bite you in the ass later.

I wouldn't put those type of accusations in writing.

<comment><USER5> In writing will provide a paper trail that may later prove very handy.

E.g. "oh yeah, that guy: I fired him for poor performance." How would you prove otherwise without a paper trail?

</comment></comment></comment></comment><comment><USER7> Either that or you're young, naive and a bad judge of character. The founder, whom you obviously look up to, is likely much older and more experienced than you. Of course he knows what is going on in his own company. The other guys didn't become senior employees by accident. Thinking otherwise is frankly stupid. Leave asap.

</comment><comment><USER8> Assuming the founder is unaware of the situation (if he is, I would advice you to find another company), then he probably cares more that anyone else about the business succeeding. From that perspective, he will be very attentive to what you have to say, and thankful for you bringing it up.

Now there are a few different ways to break the ice. I would start with something positive as most people don't like starting a discussion with conflicts. Maybe tell him about how you're excited about your work, because seeing clients happy and satisfied gives a sense of purpose and achievement, while strengthening the company brand. At the same time, you've noticed (and it pains you) that other projects are not being delivered, and causing clients to be lost, and the company looking bad. Share some evidence (a.k.a facts) that brought you to this conclusion, and if possible a way for his to double check. From there I'd play it by ear depending how the conversation is going. One thing to keep in mind however, is to see whether he knows already or not... if he does approve of such practices, then it's probably not a place you want to work at. Good luck :)

<comment><AUTHOR> Indeed, the fact that the founder can be so unaware is disturbing in itself and does encourage me at many moments to find another company.

I will certainly bring evidence. The type of work not completed can still be audited by the founder. This indeed will be crucial in his realization of the issue.

Thank you very much.

</comment></comment><comment><USER9> The founder is clearly in on the overbilling. Your perception and judge of character is going to be biased and flawed. Bad people look and act just like normal people, probably even more so. I wouldn't say anything, just try to find a new job at a more ethical firm. you've got five new clients already lined up.

<comment><USER10> Taking the clients of your former employer would be unethical as well. Yes, they haven't done the right thing by their clients, but doubling the ethics deficit doesn't make everything right.

<comment><USER9> The two aren't in the same ballpark. Overbilling clients is stealing. Persuading clients to use your firm instead of someone else's is good business. There's agreements to protect trade secrets but those can't last for all eternity.

</comment></comment></comment><comment><USER11> You didn't mention much about the founder. Is he someone with a different background that just doesn't understand what's happening? Is he too busy with other things to see this? Does he actually think everything is going well, or does he just not know how to fix it? Or maybe he knows it's happening, but also knows money is tight?

<comment><AUTHOR> Thank you for the questions! These are great. Unfortunately due to the, understandable, character limit of a post I cut out a handful of text which addressed a couple of these.

The founder is fortunately technically versed enough that he should be capable of an audit of the work conducted by his employees. However, I think he's clueless to what's going on at the moment. He's an awesome guy and his heart is in the right place, but he's much more sales-oriented and concerned with bringing in business than he is with auditing the performance of his employees. Unfortunately. I believe he is indeed too busy with with other things to see this and I think he thinks everything is going well in terms of operations (despite my vague alert). That said, business was booming several months ago and he was not concerned at all about money then. These past couple months have been poor though.

<comment><USER12> It's difficult to predict what the outcome of the situation will be.

It could be that the founder keeps himself officially "unaware" on purpose. This way he can shift the blame to others if it becomes public, and still make a profit from defrauding clients.

If he is truly unaware, you will still be up against two senior employees who will deny the accusations - and you may end up looking like the "crazy disruptive new guy".

I would suggest gathering as much documentation as you can on the excessive billing. Then approaching him without _directly_ accusing the senior employees, and pitching it as a way to improve the business. "I have figured out why the clients left, we made mistakes on their bills!" instead of "Your senior people are defrauding clients".

If the founder seems to be unconcerned about the "mistakes", start looking for a new job.

<comment><AUTHOR> Interesting way of posing the situation to the founder. Thanks for this.

</comment></comment></comment></comment><comment><USER10> It sounds to me as though the founder might know more about it than you think he does. I can't be sure, of course, but in his position wouldn't you react just a bit differently? He could have asked you for more details whilst being sensitive to the fact that you mightn't want to provide them yet.

</comment><comment><USER13> How exactly are you charging clients for work not done? Do they pay? How do you know they pay? How do you know they Re not getting rebates and apologies ? Over-billing hours is a serious crime but hardly unheard of. Claiming to have done deliverables is just foolish. Which is happening?

<comment><AUTHOR> Thank you for your questions.

All of the over-billing is coming from supposed ongoing work (and of course not a retainer situation). It doesn't happen in any initial phase where it would be difficult to fake something.

The agency is small enough that we all have access to each other's client hours, invoice information, etc. and we often correspond directly with clients regarding their invoices, etc.

</comment></comment><comment><USER14> well, you should tell him, but don't just tell him for the sake of telling him.

tell him from a business perspective so he can really understand. explain, how fixing this will save/make more money if not immediately in the future.

<comment><AUTHOR> Thank you for this insight. Bringing up the problem as it relates to business goals is important.

</comment></comment><comment><USER15> Tell the founder. If the culprits aren't immediately fired, then quit.

If you stay it will damage your reputation.

</comment><comment><USER16> If he does not know already he is probably lazy or liar too.

<comment><AUTHOR> I certainly don't think of him as lazy, but I think he's been too busy to realize what is going on, unfortunately. "Unaware" may be a better word, even though he should have been aware to begin with.

</comment></comment><comment><USER17> \- I say that you should SUBLIMINALLY GIVE THE FOUNDER HINTS. DONT NAMEDROP. JUST GIVE HINTS and then mind your business.

</comment><comment><USER18> No, because I might be that employee.</comment>


Jobseekers Invited to "Apply Via API" - <AUTHOR> http://blog.programmableweb.com/2012/02/02/jobseekers-invited-to-apply-via-api/ <comment><USER2> For the lazy:

        javascript:$('div.code.plain').last().html('<form action=#>name:<input name="name">
email:<input name="email">
about:<input name="about">
urls:<input name="urls">

<button>submit</button></form>').find('button').click(function(){var f,o={};for (var k in f=$('form').serializeArray()) {o[f[k].name] = f[k].value};o.urls = o.urls.split(',');$.ajax({url:'/jobs/apply',type:"POST",data:JSON.stringify(o),contentType:"application/json; charset=utf-8",dataType:"json",error: function(d,s){$('#status').text(d.status)}});return false;})

Or is that unsporting somehow? Downvotes suggest yes, but on the other hand it'd be pretty silly for someone to expose an API intending people _not_ to write tools that use it.

<comment><USER3> Yeah, that wasn't very nice of you. Now you've basically ruined their low bar filter and made the bar even lower, completely defeating the purpose.

<comment><USER2> I'm not immune to that concern, but 'ruined' seems like a strong word... it's not like I've injected that code into their page.

Really, I just thought it was a funny little hack worth sharing with the community. I doubt anyone from Parse sees it as hugely threatening to their recruitment strategy.

<comment><USER3> Well, from a personal point of view, when we did the reddit hiring, it really annoyed us when someone posted their solution to one of the problems, because there were clearly people who were copying the solution to get their cover letter to us. So then we had to read those letter to determine that no, this person isn't actually qualified, and now we wasted our time (and theirs).

So that is where I was saying the harm comes from. It's not hugely threatening, it's just annoying.

<comment><USER4> That just means that posting public problem to hire people isn't a good idea.

<comment><USER5> Don't you think that's throwing the baby out with the bath water a little bit?

I agree that it's a problem that people can easily dupe an interview by copying a readymade result, but that doesn't imply that public problems are unilaterally a bad idea.

In fact, I'd liken this to a public announcement of a security exploit. Someone has found an insecurity within the social algorithm of public problem interviews.

<comment><USER4> To me, there is little correlation between a good hire and someone who solved a public challenge. What does it prove?

<comment><USER5> Your original claim was that one bad anecdote at reddit was enough evidence to consider "that posting public problem to hire people isn't a good idea."

Do you think that all public interviewing options are unilaterally unable to defend against people divulging public problems?

A public problem is essentially just a contest. Lots of contests are considered good figures of merit. If you win a nobel prize or a fields medal, that's a sort of public problem solving exercise. Would you hire someone who won a nobel prize over someone else, all other things being equal? I certainly would.

Maybe the real issue here is that these interview problems aren't sufficiently challenging or interesting such that the barrier to entry is keeping answer- copiers out.

Unless you're Gregori Perelman, for example, you're likely not going to be taken seriously or given much credit for solving the Poincaré conjecture.

PS. I don't think it was fair to downvote me just because I disagree with the pov. Is that why I was downvoted?

<comment><USER4> I have extensive recruitment experience and I understand the idea of "let's filter out as much as we can to gain time".

My experience is: it doesn't work, you will have to crawl through resumes, do phone interview and have people come over. You can be clever about what you ask in a resume and how you do your interviews but you will somehow need a list of skills and experience and somehow you will have to talk to the people you want to hire.

Additionally, you don't want people who just "find solutions to problems", you probably want people who build systems. That's a different skill set, which is why you will not filter out the right type with a teaser.

You will also unreliably assess their skills because you cannot tell how much time it took or if they actually did it.

Have people come over. Evaluate their technical and human skill. Nothing fancy, just straightforward stuff.

If in one day of interview you think they're people you'd like to work with, hire them. If you have any doubt, don't.

Let go the idea of the exam. You're a company not an university.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> I've seen job listings embedded in <meta> tags, in HTTP headers, all sorts of odd places. The trick is that some smart person stumbles on it by accident, posts it on their blog, then gets picked up by a major tech site.

It's fantastic publicity.

<comment><USER7> I doubt I could stand the waiting between implementing something awesome like that and someone actually finding and reporting it.

<comment><USER8> Then I'm sure you could think of a strategy to discreetly "leak" information about it to get it discovered more quickly.

</comment></comment></comment><comment><USER9> Literally the worst developers I've ever known are the sort that would eat this kind of thing up.

The worst developers in my opinion are those that appear highly proficient and effective until they're asked to actually produce something, then never produce anything of value whatsoever. They're infinitely worse than those who are clearly ineffective from the beginning. They're talented but immature; unwilling to do anything they don't see as a game; unable to see everyday tasks as games.

</comment><comment><USER10> DELETE <http://parse.com/jobs/apply>

POST <http://parse.com/jobs/apply>

= Job?

<comment><USER11> Probably should be:

PUT <http://parse.com/jobs/chrisacky>

:-)

</comment></comment><comment><USER12> There is a billboard around Utah that has a base64 string on it, if you decode it, it reads "head /hi" and if you HEAD their domain/hi it says POST then some params about yourself to /apply.

<comment><USER13> Perhaps this one? [https://twitter.com/#!/brutes_/status/158025883536461824/pho...](https://twitter.com/#!/brutes_/status/158025883536461824/photo/1)

<comment><USER14>
        $curl -I moneydesktop.com/hi
        HTTP/1.1 301 Moved Permanently
        Server: nginx/1.0.11
        Date: Fri, 03 Feb 2012 00:19:34 GMT
        Content-Type: text/html
        Content-Length: 185
        Connection: keep-alive
        Location: http://moneydesktop.com
        X-Career-API: http://careerapi.moneydesktop.com/docs

<comment><USER15> That is the correct response. You are not sending the appropriate HTTP request.

<comment><USER14> Huh? curl -I is a HEAD request, isn't it?

<comment><USER16> It's right there, go to <http://careerapi.moneydesktop.com/docs>

<comment><USER14> I know, my confusion was at the down vote and correction; clearly that's what they wanted people to see. I'm not sure what mistake people thought I made.

<comment><USER17> They were probably down-voting the use of an "X-" response header.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> neat idea. now if only every employer had the same standard REST api at an agreed upon URI, (like sitemap.xml) so you can mass-apply, mass-update resumes. on their side they can mass-flag, mass filter, prioritize.

<comment><USER13> "Seeking applicants fluent in spamming tech."

</comment></comment><comment><USER19> Make a request to _any_ zappos.com page and look at the response headers. Found this while checking out their site prior to flying out there.

They've got flair.

<comment><USER20> I should do this more often. Look at the wealth of information returned in the headers:

1) They're using nginx (which is powered by Ponies!) 2) The site is fronted by varnish with a ttl of 1 hour, of which there appear to be at least 4 varnish servers. 3) Links to the various CSS files. Do browsers actually use these headers instead of the <link>s in the html? 4) Drupal is somewhere in the mix. 5) Mention one of the company core values, of which there are at least 8. 6) Anyone geeky enough to be reading this should apply for a job.

      $ lwp-request -e -d  www.zappos.com
      200 OK
      Cache-Control: max-age=2452
      Connection: close
      Connection: Transfer-Encoding
      Date: Thu, 02 Feb 2012 23:53:38 GMT
      Server: nginx/1.1.14
      Content-Type: text/html; charset=utf-8
      Client-Date: Thu, 02 Feb 2012 23:53:39 GMT
      Client-Peer: 184.108.40.206:80
      Client-Response-Num: 1
      Client-Transfer-Encoding: chunked
      Link: </favicon.ico>; rel="shortcut icon"; type="image/ico"
      Link: </styles/main.p.20120201135153.css>; media="screen"; rel="stylesheet"; type="text/css"
      Link: </css/print.20120115152845.css>; media="print"; rel="stylesheet"; type="text/css"
      Link: </styles/home.p.20120201135153.css>; media="screen"; rel="stylesheet"; type="text/css"
      Link: </>; rel="canonical"
      Title: Shoes, Clothing, and More | Zappos.com
      X-Cache-Hits: 117
      X-Core-Value: 8. Do More With Less
      X-Meta-Description: Free shipping BOTH ways on shoes, clothing, and more! 365-day return policy, over 1000 brands, 24/7 friendly customer service. 1-800-927-7671
      X-Meta-Keywords: index, zappos, zeta, clothing, shoes
      X-Powered-By: Ponies!
      X-Recruiting: If you're reading this, maybe you should be working at Zappos instead.  Check out jobs.zappos.com
      X-UUID: 970dff52-4df6-11e1-a3ab-001a645b7cf4
      X-Varnish: 1001890813 1001890584
      X-Varnish-Host: varnish04.zappos.net
      X-Varnish-ID: drupal
      X-Varnish-TTL: 60m

<comment><USER21> > X-Core-Value: 8. Do More With Less

That's 1.3K of overhead per request. I call that doing Less with More. Recruiting in HTTP headers may seem like a clever gimmick to some, but I doubt it could possibly warrant the aggregate degradation of performance. If that's what they call doing "More with Less", my reaction is hardly an urge to work with them.

<comment><USER22> Huh? How is this 1.3K? Looks like 34B to me...

<comment><USER23> I believe Mr. Username was talking about the entire header block (1322B).

(I still think he's wrong, however.)

<comment><USER21> Yes, I measured the size of the HTTP headers. It's not a subjective measurement. It's not 1322 bytes; it's 1275 bytes. 1322 looks like you forgot to remove the indentation that was added above for code formatting. 1275 bytes == 1.3K.

<comment><USER22>
      $ lwp-request -e -d  www.zappos.com |wc
         29     128    1299

Where do you get 1275? In any case, you can't consider all of this waste. Some of it is necessary (the connection headers, content-type, some of it is a performance improvement for a subset of clients (the link headers, etc.) and a small percent is waste (X-Recruiting etc.)

<comment><USER21> I measured the headers in ajtaylor's above post. Zappos delivers different headers each time, and currently they're only giving me 599 bytes, including zero Link headers.

I agree of course that you can't consider all of it a waste. My point was just that their HTTP overhead is exceptionally large, and their superfluous headers adversely affect all of their users despite the fact that almost none of their users will ever read them.

The fact that their X-Core-Value in ajtaylor's example was "8. Do More With Less" makes them seem clueless about the real impact of HTTP overhead.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> \- This seems to almost invite abuse.

\- Surely a better challenge would be to publish a brief but involved spec, then say "implement this API that returns your job application details." Then they can retrieve the job application from the applicants. Ideally, applicants also publish the source code somewhere, so they can see how you code.

\- Oh wait, this is #1 on HN and getting tons of views. It has already worked out perfectly for them, and I should stop criticising. :)

<comment><USER25> > Surely a better challenge would be to publish a brief but involved spec, > then say "implement this API that returns your job application details."

I would personally interpret this as intolerably arrogant and lazy. "Dance, code monkey, dance!"

They require _me_ to spend a few hours coding instead of _them_ looking at my resume and projects for a few minutes.

<comment><USER24> That's fair enough. Then again, some companies do similar things, like Dropbox with the Dropbox Challenge: <http://www.dropbox.com/jobs/challenges>

</comment></comment></comment><comment><USER26> I can imagine a time when this practice becomes so common that spambots start mass-applying, and then employers need to use a CAPTCHA to ensure that only humans are using their API.

CAPTCHAs on an API. Never thought I'd see the day...

<comment><USER15> _> CAPTCHAs on an API. Never thought I'd see the day..._

You could argue that this is essentially accomplished through API keys/secrets and rate limiting.

<comment><USER7> Not on public APIs but I doubt we'll 'see the day' in any case.

<comment><USER27> It's already here. Think of Google search as a public API. They put captchas up if they think you're a spammer.

</comment></comment></comment></comment><comment><USER28> We've been doing this at EDITD for a while too:

<http://editd.com/jobs/senior-engineer/>

(for example)

<comment><USER29> Is the purpose mainly just to prevent spam / completely unqualified candidates? Its rather trivial to do the post for anyone with dev experience so I can't imagine its much use to actually gauge their skills

<comment><USER28> That's what we thought too - this was the definite first pass, and we always intended to have a challenge/response type question for extra credit.

But we didn't need it - it turns out the kind of people that are intrigued enough to apply, and have enough ability to install a few libraries are likely great people.

<comment><USER29> awesome, well I plan on searching for companies that advertise jobs this way, seems like a great way then to get their attention

</comment></comment></comment></comment><comment><USER30> They could take it a bit further and provide full recruitment process and the employment itself via api.

</comment><comment><USER31> That's pretty cool; a variation of the FizzBuzz theme

I need to come up with some more of these; FizzBuzz equivalents in various knowledge areas.

</comment><comment><USER32> The first thing which sprang to mind was an ASCII art profile photo in the about string

</comment><comment><USER33> Should have to make a request to get the resources that you can post to.

<comment><USER34> Right, the bar should be much, much higher for a programming job. Since there's no challenge in it, no weeding of applicants is performed.

To me, though, it's self-defeating to simultaneously accept resumes via email -- it shows there's nothing actually at stake. Don't they want only the smartest, most persistent candidates? It doesn't seem so to me.

</comment></comment><comment><USER35> Shouldn't their jobs site return a 204 instead of an empty 200 response?

<comment><USER15> I would argue that 202 is the most appropriate response. They might get to it, they might not.

 _"Don't call us..."_

<comment><USER36> And if you miss one of the lines in your submission: 308 Resume Incomplete.

</comment></comment></comment><comment><USER37> I think it's brilliant!

It shows creativity and maybe they will attract less applicants, but for sure applicants who are a fit to their company, their culture and someone with the right set of skills.

</comment><comment><USER38> There are also a bunch of Chrome and Firefox add-ons which would make this very easy.

</comment><comment><USER39> Is the page down?? Anyone? I am getting a 406 network error!</comment>


People who don't care for privacy - <AUTHOR> http://www.weknowwhatyouredoing.xyz <comment><AUTHOR> Apologies for the repost and may well do it again in the coming days but seriously don't understand why people put up statuses like these! What is the matter with some people?! Nobody gives a damn about privacy these days or what they post?

<comment><USER2> I always thought social media status posts were a boon to home burglars</comment></comment>


Super Mario Brothers GameBoy (and all GameBoy games) ported to HTML5 - <AUTHOR> http://www.grantgalitz.org/SuperMarioBros/

<comment><AUTHOR> The parent link is Super Mario Bros running fullscreen. It runs best in FF4, the audio in Chrome can be a little choppy. It will suck in FF3.6 and everything else, probably. It uses the (very) experiemental Web Audio API in webkit and the Audio Data API in FF4; it has a fallback to standard HTML5 Audio(), which has known performance issues everywhere.

You can view the full emulator here: <http://www.grantgalitz.org/gameboy/>

It's all on github: <https://github.com/grantgalitz/GameBoy-Online>

And a few other ROMS are available for play now:

* <http://www.grantgalitz.org/zelda/>

* <http://www.grantgalitz.org/pokemon/>

<comment><USER2> Nice work! As it stands, you seem to be doing pure interpretation for the CPU; have you considered dynamic recompilation? You can see this in practice for the 6502 here: <https://github.com/daeken/Dyna6502Asm>

In essence, you accumulate instructions in basic blocks and turn them into functions, which are then 'executed' (meaning turned into function objects) and then cached. In your case it becomes a little more complex as you do cycle timing, interrupts, etc, but there's no reason you can't bake this into your basic block functions. This drastically increases the performance of CPU emulation, while maintaining the same high quality.

If you're interested in doing this and/or have any questions, feel free to contact me.

<comment><USER3> You might want to talk to me then (Look at the user name on the github repo. ;) ). The DMG/CGB CPU needs to be emulated with clock-cycle accuracy though, so dynarec would be very difficult.

P.S.: Here's another game - <http://www.grantgalitz.org/SuperMarioLand2/>

<comment><USER2> Ah, my apologies -- thought that the OP was the original creator.

So, in effect what you do is take your code from `GameBoyCore.prototype.executeIteration' and roll that into your dynarec'd function on a per-instruction basis. The simpler you can make it, the better for performance; you have the benefit of knowing how long each instruction will take to execute at dynarec-time, so you can do some fun optimizations there.

Dynarec'ing cycle-accurate code is _hard_ , but it's a lot of fun and damn efficient if you get it right.

</comment></comment></comment></comment><comment><USER4> If you want to read on about how to go about building one of these, check out my friend Imran Nazar's very detailed jsgb article series:

<http://imrannazar.com/GameBoy-Emulation-in-JavaScript>

Also, the source code:

<https://github.com/Two9A/jsGB>

<comment><USER5> I can vouch for the quality of these tutorials. It actually puts emulation within easy reach of novice programmers, as unlikely as that may sound.

Give it a go!

</comment></comment><comment><USER6> Without criticism of this particular project or site intended, I am surprised at the number of these emulation sites running commercial ROMs popping up without action being taken by Nintendo et al. Someone's going to have an example made out of them.

grantg, if you're just trying to show off an emulator but aren't ready to be the example, may I suggest finding a free Gameboy game to show off instead? I know there are actually-free games for many other consoles, I presume there are for the gameboy as well.

<comment><USER7> The game companies generally don't care about the really old stuff. They don't see much (if any) commercial value in them anymore.

Don't try to emulate their latest or one-to-latest console though.

<comment><USER8> Heh, nintendo certainly does. They are actively reselling these games in the wii / 3DS online stores. Expect a takedown notice soon.

<comment><USER9> Maybe, maybe not. Either the jsnes site has been boldly ignoring takedown notices for some time now, or Nintendo doesn't really care that much: <http://benfirshman.com/projects/jsnes/>

</comment></comment></comment></comment><comment><USER10> Input doesn't seem to be working with Firefox 4 beta 12 on Linux...I tried the shortcuts listed under "Instructions" on <http://www.grantgalitz.org/gameboy/> to no avail.

<comment><USER11> Running Iceweasel 4 beta 12 here and it is running fine on my Debian system.

</comment></comment><comment><USER12> There's also JSNES: <http://benfirshman.com/projects/jsnes/> which probably benefits from not stretching to fullscreen.

</comment><comment><USER3> For anyone interested in seeing this run well in a safari build on mac, please see [http://chromium.googlecode.com/svn/trunk/samples/audio/bin/W...](http://chromium.googlecode.com/svn/trunk/samples/audio/bin/WebKit- audio.05Jan2011.zip)

It's a webkit/safari build with web audio in it, so audio is perfect as hell in it. :)

And for firefox, just get firefox 4 (god no, not 3.6!).

</comment><comment><USER13> Impressively, it runs (very slowly) to the point of showing a title screen on an HTC Desire, but then I can't figure out how to send input.

</comment><comment><USER14> I removed these pages because others here were right, in that I shouldn't be providing the ROMs, but the users themselves instead providing them. You can still use the emulator, just go to <http://www.grantgalitz.org/gameboy/> and load in your _own_ ROM files.

</comment><comment><USER15> Sounds cool, tried it on my Droid, but unfortunately it runs at something like 0.25 frames per second.

</comment><comment><USER16> Very nice work.

Too bad webkit browsers don't allow to turn off image smoothing like Firefox does, which makes true pixel art impossible. I'd love to see support for nearest-neighbor resampling included in the future versions of Chrome/Safari.

<comment><USER3> +1 -webkit-crisp-edges or crisp-edges

See -moz-crisp-edges @ <https://developer.mozilla.org/en/css/image-rendering>

</comment></comment><comment><USER17> The audio is messed up for me on SMB using Chrome on a MBR running OSX. Anyone else?

<comment><USER3> Try going to about:flags and enabling web audio (if you have that option.). Doing so will allow you to use native audio instead of data uri generation in real time. Kind of like mozAudio, but for webkit.

<comment><USER17> Hmm, enabling web audio API disabled the sound completely. Oh well. Still, a very cool emulator!

<comment><USER3> If the audio stops playing after enabling web audio, then you just ran into a bad bug in chrome. :P

I've run into this bug before, it seems to be a bug with the GC possibly in V8.

</comment></comment></comment></comment><comment><USER18> I'm currently reading Masters of Doom, and I can't help but chuckle: John Carmack was doing this in 1990 on the PC platform. Back then it was considered too slow to do side-scrolling.

</comment><comment><USER19> wow and it runs just as fast as it did back then too!

</comment><comment><USER20> What the what I'm walking backwards?? What crazy magic is this? Super Mario Bros. should be frozen in time exactly as I remember them, damnit.

<comment><USER20> Oh nevermind, it's just an artifact of the smaller viewport.

I still want you kids off my lawn, though.

</comment></comment><comment><USER21> How do I get past the menu? I'm using epiphany-2.30.6-1.fc14.x86_64 which is powered by WebKit.

</comment><comment><USER22> Anyone else seeing the site down? Or just me? Can't get to link or parent site.

<comment><USER3> See <http://news.ycombinator.com/item?id=2268214>

I took it down because the others posting about potential problems are right, so in order to use the emulator go to <http://www.grantgalitz.org/gameboy/> and load in your OWN ROM files. Before I was providing the for you, but due to legalities, I am forcing you to provide your own. I didn't get a takedown notice, but I definitely don't want to get one, sorry for the inconvenience. :P

<comment><USER22> Thanks for letting me know. Great tool though.</comment></comment></comment>


Steve Jobs Wins Book Price Negotiation with James Murdoch - <AUTHOR> http://mashable.com/2013/05/23/steve-jobs-emails/

<comment><USER2> I read this thread maybe a day ago here. Just FYI</comment>


Scraping Hacker News on a Schedule with TaskPipes - <AUTHOR> http://blog.taskpipes.com/2015/09/22/scraping-hacker-news-on-a-schedule-with-taskpipes/ <comment><USER2> What Open Source projects are similar? It seems like data transformation tasks like this are a universal problem. I'd just do map/reduce, but that's the advantage that comes with being a developer. Great tools for non-developers to do limited programming tasks are incredibly useful.

</comment><comment><USER3> Check out Diffbot @ [http://www.diffbot.com/](http://www.diffbot.com/) \-- you can setup repeat crawls and extract data into .csv/Excel file format or JSON with Crawlbot API, extract data automatically with automatic APIs, or Custom API Toolkit. You can get a free trial account at [https://www.diffbot.com/plans/trial](https://www.diffbot.com/plans/trial) to try it out, and you can get paid plans at [http://www.diffbot.com/pricing/](http://www.diffbot.com/pricing/).

</comment><comment><USER4> This general category of tool seems very useful. Apparently there are many Yahoo Pipes followers. [http://www.makeuseof.com/tag/12-best-yahoo-pipes- alternative...](http://www.makeuseof.com/tag/12-best-yahoo-pipes-alternatives- look/)

Support for email and HTML tables seem to be some distinguishing features of this one.

<comment><USER5> I thought I remember reading that Yahoo was discontinuing the pipes tool?

</comment></comment><comment><USER6> I've seen something similar more than once on HN but my google-fu is failing. What other similar services are out there that'll let you smartly scrape a page into a spreadsheet.

In the past, I've tried Google spreadsheets with "ImportXML" option but got frustrated after a bit and resorted to python.

<comment><USER7> Kimonolabs.com

Allows you to scrape then import that data into a google spreadsheet. But its not the only way to consume the data.

<comment><USER6> Thanks, that's the one I had in mind. Also found : import.io, scrapinghub.com & 80legs.com

</comment></comment></comment><comment><USER8> Looks pretty but I can't find pricing information.

<comment><USER9> I was looking for prices as well, or any other indicator for that matter that the tool will be available for a reasonable time at least.

<comment><USER10> +1

I love these tools but before I invest more of my time leveraging this in my workflow I'd want to know that it'll be around for another few months at least...

</comment></comment></comment><comment><USER11> I tried NewsBlur as an alternative to Yahoo Pipes. Like it because it has an Android app as well.</comment>


Ask HN: Review my Pitch Deck - <AUTHOR>

Hi guys,
I'm a tech founder based in Europe. I've come up with a concept for this really innovative social game and I've been building on this idea for the last few months. I think I have a lot going for me:
-> I've built most of the game server technology, I'm a competent developer and I can do most of the back-end / client work by myself.
-> I've come up with the branding, a snazzy marketing site and started work on the Game UI; paid for entirely out of my own pocket. I think that shows I'm willing to back my idea as is the fact that I've quit my job and work on my consulting company / this idea full time.
-> I've written a comprehensive business plan and slide deck (see my profile) explaining my business model.
-> I've got pro bono marketing support from a bunch of Twitter account with over 4m followers which are very specific to the niche I'm targeting... I launched a small and very poorly designed prediction game and we got almost 1200 users in a couple of weeks.
-> In addition, I can get my game featured in a lot of the casual game portals as I worked for a fairly large casual gaming portal.
-> Did I mention, I have previous experience in this industry? I worked as a programmer on an online soccer title for 2 years.
I'm seeking some seed funding to complete my MVP but I keep hitting brick walls in terms of getting angel investors interested in funding me. I've had a bit of traction and I think the work I've done and my back story (how I got where I am) is pretty interesting. However I'm burning through my personal runway and getting frustrated with my fundraising efforts so I thought I'd reach out to the HN community and see whether you guys can point me in the right direction!
Any feedback is appreciated! <comment><USER3> Lovely design. It takes a long time to figure out what it is. Either lead with the problem and follow up with your solution (which I'm not convinced is a good strategy for games) or lead with the description and follow up with your traction.

Which is the other big problem: there is nothing about traction, whether in terms of users or finances. Forget projections - angels want to see what concrete rates of growth you've had.

OK now that I'm rereading your description above, it sounds like you haven't launched yet. I wouldn't expect an angel to invest in you based on (a) you having quit your job and (b) there being a market to address. Instead, you should expect an angel to invest in you because you've launched AND shown that you're growing massively. Especially in Europe, and especially in games.

I'd look into alternative funding options. In Canada, where there is also nearly no VC or angel money, we have a lot of game dev tax credits.

Finally, I'd close with this note, because I wish I'd had someone tell me it when I went full time on my first startup: focus on product, not fundraising. If you can't live off of your own savings or any other funding you can get together, then (unless you've raised money before and did well) don't bet on someone backing you until it's obvious that they should put money in (e.g. a hundred thousand users).

<comment><AUTHOR> Thanks for your input and I take on board your closing note because I'm coming to the same conclusion myself.

My initial plan was to quit my job and go full time on this in conjunction with my freelancing/contracting but the latter is almost a full-time position in itself and I haven't been able to save enough to invest into the game hence the reason why I started to look into raising finance.

I've been contemplating changing my plan and maybe finding a stable job and using my salary to fund myself to MVP stage.

<comment><USER3> It's good to be flexible, but it's also good to be stubborn and to find a way. I ended up finding government-based funding that let me get off the ground - <USER2> also had to learn how to code, so having a big runway was pretty important. Maybe you can pull off more with less than I did? Although, like you point out - quitting your job to work on something shows grit that investors like. In my case, it was the tipping factor in getting approved for that funding.

Good luck :)

</comment></comment></comment><comment><USER4> Great design. I have been in gaming for a very long time and I can tell you that it is very very hard to raise money for games in Europe. Investors simply do not like game companies. Games are not predictable and often it is only luck that makes the difference between a smash hit and a failure. A few things you should try: \- talk to the guys at London Venture Partners. They are the only VC that solely focusses on games. \- talk to the European Games Group EGG. They are very open minded and can help with publishing and provide modest funding \- talk to the guys at Spil Games. Spil operates the largest European online games sites. You might be able to get prepayment from them if you give them an exclusive.

Also talk to other publishers. When setting up my own game company I managed to get pre payments from publishers. These guys do not take any shares of your company but they will take a large chunk of your future earnings. But publisher prepay coupled with their power to market your game is a good thing.

<comment><AUTHOR> Thanks, really interesting to read bearing in mind your involvement in the industry. I've heard of a few of the players you mentioned - didn't get around to contacting London Venture Partners because I didn't have any connection to them and to be honest I'd never heard of EGG who look very interesting! :)

I'll look into this more in the next few days - would you mind if I reached out to you? Is it your first name @ riddle.com?

<comment><USER4> Hi.. yes.. good guess on the email :). Feel free to reach out.

</comment></comment></comment><comment><USER5> I enjoyed the deck, a few ideas:

1\. I had to skip around a bit to learn what FP was, then I came back and started reading from the beginning again. I think it's be helpful to provide a small amount of background in the very beginning (perhaps even just a tagline would suffice), so that the reader understands the context before they read the market overview.

2\. This probably goes without saying, but the financials aren't filled in yet. For a product that has a beta launched, I'd want to see traction and revenue numbers above all else. If you don't want to share financial/growth numbers publicly that's fine, as long as the investors you're pitching get to see them.

Hope that helps.

<comment><AUTHOR> Hi Malcolm,

Good point, I was looking through a bunch of slide deck templates and they had the product description / game overview after the market sections hence the reason I've laid it out that way. To be honest, I prefer it the way you describe as well, I'll switch them over.

Regarding finances, I had a cash flow forecast for the next 3 years but it was based on modest financing and organic growth. I'm working on a scaled up version - to the investors I sent a business plan with the old forecasts with a small addendum of what the scaled up model looked like.</comment></comment>


Ask HN: First sales call for new startup, any pointers? - <AUTHOR>

I've been working the past few months on a new startup idea called RedemFit (https://redemfit.com).  RedemFit is focused around incentivized corporate wellness.  I did a soft launch yesterday on Reddit to get some feedback, and apparently someone thought it was worthwhile enough to get in contact and set up a call for today.  I've done my due diligence and the company is legit and has been around more than 20 years with lots of corporate customers.
Since I've never done a sales call like this, let alone a sales call for my own startup, do you have any pointers?  Things to not say, things to not promise, and what happens if I get a contract and/or paying customers out of this?  I don't yet have a LLC formed so I imagine that would be first, but thats putting the cart before the horse.
Anyways, any pointers at all would be greatly appreciated. <comment><USER2> Basic Sales Tips are always good to re-itterate

1) Create Urgency: Sale needs to happen now, not later.

2) Have the better product: Know the who/what/when/where/why you are better. If you aren't, or think you aren't, or can't BS your way into being better close up shop.

3) Relax: People can smell fear, even across a phone line.

4) Be persistent, but not pushy.

5) Understand the customer's use case: Most customers think this is great service. You care about them, you want to hear about what they do. You are making them special. But really you just make them show their hand and tell you why they're interested in you. Gives you more ammunition and potential routes to work a sale.

<comment><AUTHOR> Great tips. I have this sneaking suspicion they may end up asking for a "white labeling" service, where they throw their brand on my product. I'm 100% open to this, but its not supported yet. Is selling something that isn't even built yet common?

<comment><USER2> > Is selling something that isn't even built yet common?

When Microsoft "sold" their operating system to IBM to run on the future IBM PC's. They didn't own an operating system, they didn't have a working operating system. At that point they had wrote a few apps for Macs, and a BASIC compiler.

One of their co-founders knew a guy, who might sell them his, maybe, for a good price.

I'm not joking. Stuff that doesn't exist gets sold every day.

<comment><AUTHOR> Good point. I should pay attention to my history a bit more. In this case I could probably whip together the solution in a week or two, so it might as well already be built ;)</comment></comment></comment></comment>


James K Galbraith : In Defense of Deficits - <AUTHOR> http://www.thenation.com/doc/20100322/galbraith/single

<comment><AUTHOR> I submitted this because it's a different viewpoint to those I've seen previously.

The point that countries with debt denominated in their own currencies are in a stronger position than others is valid, but I question the assertion that if inflation becomes the order of the day that there will always be buyers for sovereign debt.</comment>


'The best thing you can do is not buy more stuff,' says 'Secondhand' expert - <AUTHOR> https://www.npr.org/2019/12/04/784702588/the-best-thing-you-can-do-is-not-buy-more-stuff-says-secondhand-expert <comment><USER2> I figured that out years ago. But now I gotta figure out how to get rid of most of my stuff without first getting rid of my wife because most of the shit in our house matters a lot more to her than it does to me.</comment>


Text processing with awk - <AUTHOR> https://medium.com/@alemiralles/intro-f8547c770646 <comment><AUTHOR> A short tutorial on awk and its main features.</comment>