British Library has released over a million images onto Flickr Commons - <AUTHOR> http://britishlibrary.typepad.co.uk/digital-scholarship/2013/12/a-million-first-steps.html <comment><USER2> This is fantastic, but I do have one small quibble.

        > These images were taken from the pages of 17th, 18th and 19th century books
        > digitised by Microsoft who then generously gifted the scanned images into
        > the Public Domain.

The images were already in the public domain. Merely scanning a public-domain image is not a sufficiently transformative process to create a new work protected by copyright.

However, Microsoft was under no obligation to share the scanned images publicly, and it was generous of them to do so. But this is different to dedicating a work protected by copyright to tbe public domain, e.g. using the CC0 dedication [0]. To gift a work to the public domain, you must first hold the copyright of that work.

The distinction may seem pedantic to some, but it seems important to me.

[0] [https://creativecommons.org/publicdomain/zero/1.0/](https://creativecommons.org/publicdomain/zero/1.0/)

<comment><USER3> You seem to be mistaken in assuming that US copyright law (or more precisely the decision set down in Bridgeman Art Library v. Corel Corp.) somehow applies to the world and not just the US.

<comment><USER4> Are you declaring that there are copyright doctrines more restrictive than the US? I'm very interested in hearing specifics!

<comment><USER5> Lots of copyright doctrines are more restrictive than the US. Most notably, a lot of jurisdictions don't have a concept of fair use nearly as broad as the US concept.

Also, the US uses trade treaties to cajole other countries into adopting very restrictive copyright doctrines. It's more common than you'd think.

<comment><USER6> The lack of fair use is a problem in non-US jurisdictions.

 _However_ , I'm not aware of anywhere where copyright lasts longer than the US (except in special cases like Peter Pan[1], even if that is really just perpetual rights to royalties from performance[2]).

Edit: Just noticed that [2] says copyright in Mexico is actually longer than in the US, but I'm not aware of the specifics of how it works.

[1] [http://www.jmbarrie.co.uk/copyright/](http://www.jmbarrie.co.uk/copyright/)

[2] [http://www.gosh.org/gen/peterpan/copyright/faq/#Copyright](http://www.gosh.org/gen/peterpan/copyright/faq/#Copyright)

<comment><USER7> Honduras has life + 75 years. Also some countries provide circumstantial extensions e.g. France's copyright is life + 70, but if the author is "Mort pour la France" (died for France, which is usually applied to service members but may also apply to civilians) it's life + 80.

<comment><USER8> France also added a few years here and there. For example the period in WW2 when France was occupied by Nazi Germany doesn't count for copyright.

<comment><USER7> A few countries did that, but those extensions were mostly predicated on a 50 years copyright (the "morts pour la france" extension also is, it's 30 years tacked onto the original 50). When copyright got normalised to 70 by EU rules (or separately extended before EU or EU entry), these extensions became moot in EU countries. IIRC Russia is the only country where war copyright extensions still apply, as a 4 years extension was specifically added when they rewrote their copyright laws in 1993.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> For any HN'ers based in London the British Library in St Pancras is a fantastic resource, and their Business and IP Centre ( [http://www.bl.uk/bipc/](http://www.bl.uk/bipc/) ) has an easy signup for a Readers Pass for entrepreneurs.

<comment><USER10> I tried getting some work done there a couple of years ago. All the desks were taken and the internet was a nightmare to get onto and highly restricted. Things may have changed since then. I tried going into the Business centre but lacked the required ID.

<comment><USER11> It's a Library rather than a Starbucks, innit?

<comment><USER12> You're saying that it's okay that the British Library doesn't have adequate infrastructure to support people trying to work and access information?

The equivalent would be if Starbucks, the coffee shop, only served inferior quality coffee at a ridiculously high price … wait a minute …

<comment> grey-area It's not really that kind of library, it's a central store for valuable (or just old) physical objects. They didn't even previously give out membership unless you had a request for a specific title that they hold which wasn't available elsewhere. Accessing all information is not their central purpose, accessing specific information on paper is.

</comment></comment></comment></comment></comment><comment><USER13> Great, but why should the British Library, a non-profit charity and UK taxpayer assisted institution put these images on the servers of a US based for-profit company?

There are a lot of talented Brits in the Bay Area, but there are also many great UK based programmers and companies in the UK who could have developed a home-grown solution. This is embarrassing on many levels.

<comment><USER14> I'm of the mindset that developing a home-grown/in-house solution when there are time-tested & proven solutions out there is generally a mistake unless you're trying to innovate and offer it to the public. I worked at a place where the devs thought apache2, django, rails, etc. were too slow so they made their own web-server re-implementing the whole HTTP 1.1 protocol from scratch....

<comment><USER15> A UK government agency tried to release wartime aerial photos for free on the web and it was a disaster because the site was always overwhelmed with traffic. Now you can only get those photos by paying. This story could easily get picked up by a large news organisation and it needs to be hosted on something with lots of capacity.

</comment></comment></comment><comment><USER16> This is a great initiative but as long as these images aren't reasonably tagged they'll remain undiscovered.

<comment><USER17> Yes but they have a strategy to address that:

> We plan to launch a crowdsourcing application at the beginning of next year, > to help describe what the images portray. Our intention is to use this data > to train automated classifiers that will run against the whole of the > content. The data from this will be as openly licensed as is sensible (given > the nature of crowdsourcing) and the code, as always, will be under an open > licence.

</comment></comment><comment><USER18> Suggestion: 3D scan and release as open source 3d models of everything in the British Museum as well.

</comment><comment><USER19> This is wonderful. 17th/18th/19th century images notwithstanding, some of these are quite beautiful.

It's good that they put it up on the internet, apart from just the exposure (someone sitting half a world away seeing them), but also they could be used by someone now.

</comment><comment><USER20> How do you filter a search in flickr to only search this library?

<comment><USER21> I'm also trying to do a search in this library and had no success. Not even using Google image search. The collection is useless if one can not search for images inside. It's not pratical to browse through millions of images to find one. If there is any way to search for keywords in the collection please tell me.

</comment></comment><comment><USER22> How big is the entire collection?</comment>


I Love Mercurial - <AUTHOR> http://ilovemercurial.com/

<comment><USER2> I never got this. Why do I need a meta-Twitter application to centrally display #hashtagged tweets?</comment>


Questions and Answers on the iPhone jailbreakme vulnerability - <AUTHOR> http://www.f-secure.com/weblog/archives/00002004.html

<comment><USER2> Q: Should I run an antivirus on my iPhone? A: You should, yes. But you can't.

Seriously. It says that.

<comment><USER3> Is anything wrong with the rest? I don't own an iDevice, so I don't know for sure, but the rest seems spot on.

</comment></comment><comment><USER4> This post comes across as cocky and unnecessary. Times have changed at F-secure, it seems.</comment>


Ask HN: Fired from my first job – how do I talk about it during interviews? - <AUTHOR> Basically, I was on a shitty team at a zombie startup. I only stayed there because I wanted a "year of experience" ASAP. Some cliffs:
* 30% of their engineering team quit as I joined (apparently there was a big fight between the lead designer / founders, the designer got canned, the engineers quit in response)
* constant check-ins / viewing of our screen
* pile tech debt on top of tech debt (while not even acknowledging there's tech debt in the first place)
* mandatory meeting at 5pm every friday, where we sit around a powerpoint drinking hard alcohol giving status updates
My manager was a negative person. He would constantly talk about how this is "garbage" or how that is "trash", and I was expected to agree with him. Always talked and about things he hated or how things sucked. Rarely anything positive. He never admitted he was wrong and the rest of the leadership was clearly upset with him, but could not fire him because of politics.
When I joined, I had a lot of suggestions for improving the codebase but my manager shot every single one of them down with, in retrospect, bullshit explanations. For instance, he has said:
* There is no reason to use Objective-C
* Nobody writes C anymore
* Killing an app in iOS via the app switcher is the same as `kill -9`
* It's impossible for anyone to understand our [60KLOC] codebase - BIGGEST RED FLAG EVER
After a while I told him I didn't like the job, and the only reason why I didn't quit was because I wanted a year of experience. I exercised 1 year + 1 month of stock options. I took vacation that would end 2 weeks before my 1y + 1mo. When I got back from my vacation they fired me for "performance".
I don't know what I'm gonna do in next interviews. Do I keep it on my resume or take it off? I don't want to go into my interview, have them ask about my experience at this company, explain I got fired and say "the company was shit" because that will be just me complaining.
Does anyone have any suggestions?
EDIT: More clarification here https://news.ycombinator.com/item?id=20946023 <comment><USER2> Yeah, this is an important career hack: leave your company while the leaving is good. If you stay until things go bad, then your resume will be nothing but a long list of firings and/or bad reviews. Sad but true. Took me a while to figure that out.

So your last work environment was a disaster and you got fired? Here's how to describe it in your next interview: It was a GREAT PLACE to work, I loved it, so many great learning experiences! Unfortunately the objectives of the company shifted away from my core experiences and I wasn't needed, so they had to let me go. But GREAT people there.

Seriously.

<comment><USER3> why can't someone be honest about the bad experience at job?

<comment><USER4> because you won't get hired. because interviewing in our industry is completely stupid.

<comment><USER3> yes, it is stupid.

</comment></comment></comment></comment><comment><USER5> This may not be popular but you should, only to improve yourself, consider any mistakes you made and how you might've handled the job better. This is part of what your next employer will want to hear.

I am not saying it wasn't a bad situation, just that you can still learn from it. Maybe, just maybe, the timing of your vacation could've been a little different? Maybe you could've worded 'I don't like the job I'm only here for a year' a little differently.

Your next employer will have to decide whether the environment was toxic, or you were. Showing growth proves it was them and not you.

</comment><comment><USER6> > _I only stayed there because I wanted a "year of experience" ASAP_

> _I had a lot of suggestions for improving the codebase_

It's important to learn politics and humility.

As a new graduate (or junior in general) on your first job you should be extremely careful about making suggestions to 'improve' things. Heck at any point of your career you should be careful about doing that soon after joining unless you were brought in as an expert to do just that.

From this and the rest of your post, I would suggest that you try to develop a more diplomatic, political, and humble approach in your next job. This is an important skill.

<comment><USER7> This. Don't even make suggestions in the first SIX MONTHS. Just listen and meet expectations for a bit and then take off like a rocket once you have context.

<comment><USER8> If you are on my team and make a possibly stupid suggestion, I would kindly point out that due to the development trajectory the suggestion isn't feasible (an example). If a junior dev (any dev!) is afraid of speaking, he/she will be missing an opportunity to either learn or improve. Of course, the tone of the suggestion (you should do this vs I think we may try this) and context can make or break the interaction. I don't buy into the respect by antiquity thing. Antiquity in a company only brings context and experience, not necessarily intelligence.

<comment><USER9> Asking and querying even hard question is one thing, but having " a lot of suggestions for improving the codebase" is a totally different level.

Even if you are convinced that your suggestions are the best and absolute truth, at a minimum be attentive and humble.

On one occasion a senior engineer came to my team and on the second week brought some major suggestions that were immediately accepted by the front end team, but that's the exception and not the norm

It doesn't matter if you are a newbie or more experienced, give some respect to the rest of the team

</comment></comment></comment></comment><comment><USER10> Put it on your resume. Gloss over the fact you got fired. Don't mention it. To answer the "why did you leave" question just say you felt it was time to move on and get more experience elsewhere. If they actually check references (assuming the company is still around) and ask why you didn't tell them you were fired go into detail then, explaining it was a "challenging company to work for", there were "management issues that lead to 30% of people leaving" before you joined, and in fact your firing may not have even been legal.

You shouldn't lie during an interview, but you're under no obligation to be so openly honest by offering additional details that you do yourself a disservice getting another job. I.e. If they ask you directly "were you fired from your last job?" I'd answer "the job was challenging. Let me elaborate...", etc. and if pressed actually say you were fired. But if they don't ask you that direct question, just don't mention or allude to the fact you were fired. At least that's how I'd play it.

Incidentally the same thing applies with "what were you earning?". _Always_ ignore the question and deflect. Answer the question you wanted to hear which is "how much do you want?" and deflect. E.g. The correct answer is "I'm looking for $xx,000. So what sort of tech are they using?". If they press you for a figure just say you don't feel it's relevant because you took that job for a variety of reasons, but you're looking to make $xx,000. If they won't let it drop walk away unless it's megacorp that you're desperate to work for. "What's the minimum we can pay you?" is the most valuable piece of information a potential employer can find out about you and the last thing you should tell them.

<comment><USER11> I like your advice except for the "you're looking to make $xx,000'. NEVER say the first number IMO. The reason being is that it limits you to X% (prolly 5-10) range around that number. If you say I'm looking to make 80k, and they were going to offer you 120k, what do you think they're going to offer you now? Deflect until they say a number and then think carefully about making your counter.

<comment><USER12> What are your strategies for tactfully deflecting this question?

Personally I try to start a discussion about how important benefits are to me, and the fact that they can make comparing salaries between companies meaningless, so I can't really talk about pay expectations until I have a good understanding of the full compensation package.

But I'd love to hear some other approaches to go to.

<comment><USER11> Yeah usually something along these lines, if they press on first number I'd say something like, "I'm open to considering a variety of offers, but I'd have to see what the whole package looks like, and I'd really be interested in hearing more about the company first."

[https://haseebq.com/my-ten-rules-for-negotiating-a-job- offer...](https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/)

I don't know if this is the specific article addressing that question, but this guys writing on negotiations was very helpful to me.

<comment><USER12> Thank you for this. This was very helpful.

</comment></comment></comment></comment></comment><comment><USER13> Any sign of negativity - complaining about your prior job, or worse, the people there, is a huge red flag in an interview. They don't know you, so they only can assume it's as likely you were the problem.

Interviews are, fundamentally, sales propositions. You shouldn't outright lie, but you don't need to focus on the negative things either. People on the spectrum (as many engineers tend to be...) find this kind of stuff very hard. But for most people, it's fairly normal to sugar coat things to keep the social machinery flowing. It took me a long time to learn this.

</comment><comment><USER14> I think you need the position on your resume since it's a large part of your professional experience. Just put the dates, and if you are asked about why you left, you could tell a short version of your story.

For instance, you didn't like the environment which didn't care about technical debt, thought it was time for a company change, and when you voiced your concerns honestly, they let you go.

People know there are toxic environments out there.

Very important: Try to get the new employers to fall in love with hiring you before you get to that question. You can do this by having a great introductory phone screen (try to focus them on telling you about/selling you on the position before they can focus on you. During that conversation you can explain how your skills are in line with what they need, talk a little shop, show you are qualified).

Another way to achieve this is to have a great github/personal web page. If you do these things, employers will care much less about what happened at your last position and want you because of what you can do for them.

</comment><comment><USER15> Sounds like you were stuck in an awful situation. Echoing the advice that some of the others have provided you, I'd suggest being honest, but without badmouthing the company/people you worked for. _If someone asks_ give a brief explanation on how you did interesting work and learned new things but eventually were let go. Don't dwell on it and don't use it as an opportunity to seek "revenge": you're not going to get anything out of it and it's a huge flag for the company that'll hire you (will they say bad things about us if we fire them, too?)

Also, just as an FYI: while your manager was wrong with most of his statements,

> Killing an app in iOS via the app switcher is the same as `kill -9`

iOS apps are essentially SIGKILLed if they're swiped up on in the app switcher.

<comment><AUTHOR> Thank you for the advice. I will try my best to not badmouth my former manager.

> iOS apps are essentially SIGKILLed if they're swiped up on in the app > switcher.

Sorry, I worded that poorly. To be clear, he use the word literally to describe it. Which I think is pretty misleading. iOS still calls the delegate method (and probably some other stuff) beforehand.

<comment><USER15> Not if the user swipes up on the app from the app switcher: you'll literally be sent a SIGKILL from the OS.

<comment><AUTHOR> Oh. Wow. I feel dumb now.

</comment></comment></comment></comment><comment><USER16> You didn't get fired.

You left a startup that was shutting down, you had 2 weeks notice left and they let you go early. Unless they have documented instances of poor performance they can't really give you a bad reference. Also if there's severance pay that they're not paying because they stand by 'poor performance' they're probably asking illegally.

</comment><comment><USER17> Hey there. I was in your shoes, as well. I was fired from the first organization where I'd been employed in a particular technical role, the one in which I intended to make my career. I was good at it technically but had a number of personality conflicts, partly out of frustration with things that were happening at the company and partly from personal shortcomings of my own in dealing with those frustrations. They fired me for "performance" which - take heart - can basically mean anything and nothing, and is much, much easier to deal with than having been fired "for cause".

It was scary, and I wondered exactly the same things you did. I can offer you this advice FWIW. I found another job within 6 weeks of being let go, and I had two other offers on the table.

* Be honest. If the web form asks you if you left the company voluntarily, say no. If you left on bad terms, they'll generally ask you whether they can contact your last employer for a reference, and you can say no. They'll get the picture.

* That said, you don't exactly have to lead off every interview with it. Honestly, I don't think any of the interviewers I talked with even asked me about it. They're interested in their own impressions of you and the work you've done.

* You should prepare a short explanation that - and this is important - doesn't blame or denigrate your prior employer. I mean it. Swallow whatever feelings you have about the situation and be professional about it. A new employer may not care about the circumstances of your leaving your last gig, but they WILL certainly care about the bitter, angry guy they just interviewed for this position. Something along the lines of "My leadership and I agreed that I was no longer a good fit for the position." It sounds gross, I know, but it's not really meant to be believed, and allows everyone to save a little face.

* If they press you, you might frame it as "personality conflicts" or "communications issues". However you decide to frame it, rehearse the explanation and maybe a quick followup. You don't want to start to ramble when you're on the spot, because that'll make you nervous and you may stumble into saying something you regret.

I know exactly what you're going through. We had just bought a house, we had a nine-month-old baby, and we didn't have much in the way of savings. It was scary as hell. But you square yourself up, set your jaw, and do what you have to do. You'll get through it, and one day you'll laugh about it. I promise you you're not the first person who's been fired. Hang in there.

<comment><USER18> I went through a different situation about 18 months back, the upshot being I voluntarily left as well as being unable to ask for references.

I was devastated at the tine and it took me a year to recover.

Your advice is excellent, full of pragmatic wisdom and, had I encountered similar guidance during my convalescence, I likely would have regained my confidence sooner.

Especially useful is your suggestion to "be professional about it" as a contextualization for words "that are not really meant to be believed, and allows everyone to save a little face".

(My problem was partly that I was so angry about being mistreated that I thought the truth should come out and my manager should be held accountable. If I could have let that go sooner, I'd have recovered faster.)

</comment></comment><comment><USER19> Don't bad-mouth your previous employer, but you can put things diplomatically. For example you can say "it was a very challenging work environment" instead of "my boss sucked."

Also be prepared to talk about everything you learned and what you could have done better yourself. It seems like you have a good idea with hindsight about a lot of things that didn't seem right at the time.

But as noted by others, employers understand that there are toxic work environments out there. Be honest but don't belabor the point.

</comment><comment><USER20> You should only go to work to make money and further your career. Your next interview should know they've only got you in front of them because there is a pay rise on offer.

Don't spend more than a sentence or two discussing your previous role. Describe their business model and leave it at that.

90% of your interview should be finding out what skills and tech your new employer needs and explaining to them why you're perfect for delivering those skills.

</comment><comment><USER21> Don't be too negative of the previous company while interviewing because it comes off bad. But if you can explain things that were good, and things that were bad so it's not all negative the interviewer will understand.

</comment><comment><USER22> Well, you will become the people you surround yourself with. You will not change them but they will change you.

"Always talked and about things he hated or how things sucked. Rarely anything positive."

I don't know if you realize everything you talk about your first job is negative.

I would focus on the positive and minimize exposure if it really was that bad, which I doubt, because your manager told you reasonable things.

I am c programmer myself, with lots of experience programming lots of other languages, and programming raw c is extremely inefficient use of your time, most of the time.

With less than 1 year of experience, your suggestions are of very little value, and if you get experience working with a bad team, you are not improving but learning bad habits.

In an interview, tell the truth, but you had a bad emotional experience and are highly biased against your old job. Look at it as a neutral third person looking from outside. Be grateful for it, and start looking at the good side of it. Write it down.

Forgive them, you decided to work with them so you were as responsible as they were. It is your fault as much as it is theirs. Forgiving them is forgiving you.

[https://www.youtube.com/watch?v=JrdEMERq8MA](https://www.youtube.com/watch?v=JrdEMERq8MA)

On future projects and endeavors start focusing on what you what to do, not on what you don't want to do. Companies love people that is proactive and efficient, not people that blames others, complains and put excuses.

But it should not be about passing an interview. Your attitude should change.

<comment><USER22> PS: As an exercise you can put things in perspective.

70 years ago, if you were to live in Germany, Poland or Russia, you will see your neighbors, friends and family slaughtered by war, your daughters or sisters or mother become raped, your possessions were looted or bombed or fired.

That actually happened in places like Syria or Congo or Central African Republic recently.

And the worst that happened to you? Your ego was hurt.

</comment></comment><comment><AUTHOR> FWIW I do have other experience. I have been programming for fun since 2010. And I started programming "professionally" since 2014, but it's not at in a traditional job setting. I had a couple of products on the App Store but the market changed and the money dried up. Hence the job, and why I wanted a year of experience.

ALSO, there was another team that I think I would have been a much better fit for (tech lead actually gave a shit about programming and gave people autonomy) but unfortunately I did not take the initiative to switch over.

I have references from other people at the company as well, including the CTO, that I actually liked working with, and they liked working with me. Unfortunately they were not on my team.

<comment><USER23> Only volunteer your good references, and consider auditing your ex-employer by having a friend call HR asking about dates of employment, performance and references. Many states restrict what can be said about former employees, double check that what HR says is compliant with your local laws.

<comment><AUTHOR> There was no HR.

<comment><USER14> In a small company, some other position will field the inquiry. Could be CEO themselves, or their assistant, or some other executive/partner.

</comment></comment></comment></comment><comment><USER24> I don't think anyone has addressed references yet, so as a member of many hiring teams, I'll take a stab at it.

A positive way to look at being fired is that your company was having problems and your managers were stressed. You set a goal to stick it out for a year and you achieved that goal. Rather than only giving the usual two weeks notice, you let your managers know in advance that you were planning to seek other opportunities. They decided that you didn't need to work a notice period and released you immediately. We hope things have improved for them. You didn't do anything wrong. They didn't fire you because you stole from the company or were accused of sexual harassment.

I will say that 20 years ago, particularly in large software companies, it was common that you would give your notice and security would escort you to the door. Companies didn't want you to work through a notice period because you were deemed "disloyal." Maybe your manager didn't grow out of this mindset.

In terms of a reference, if they are smart they won't say anything negative. Most companies won't simply because they want to avoid litigation. It sounds like they have much more important things to worry about than damaging your career.

Hopefully you worked with other people who can be references for you... probably worked with you more than your managers. LinkedIn is a good resource for this.

You can still use references outside your employer... from school, from volunteer work, etc. Personal projects you work on can also be excellent examples of how you do things when not influenced by office politics. As best you can, build and document a case that you do/did good work. The company won't be around long to be a reference in the future.

I'm sorry you had a miserable experience, but as a hiring manager it wouldn't detract from my view of you. On the side, I'd think you would appreciate working for me more since you had a bad experience somewhere else. Be thankful that you were there, yet thankful that you aren't there any longer.

I appreciate that you stuck it out and that you are willing to ask for advice when you aren't sure. I think you have good qualities that I look for when hiring.

Best of luck in your career.

</comment><comment><USER25> "After a while I told him I didn't like the job, and the only reason why I didn't quit was because I wanted a year of experience"

OK the company sounds pretty terrible and it's good that you're now able to dedicate time to finding a new job with a more sensible company. But unfortunately telling them this was probably a bit of a mistake, you should keep your cards to your chest in future.

However I really don't think you need to stress too much about the "Why I left" part. You'll be asked about the technical stuff long before that even comes up, and if it does ... "Well I came back from vacation to find out I was fired for 'performance reasons' \- it never came up before, I think they were upset I didn't cancel my holidays to meet the deadline for ${project}. To be honest I'm a little glad as the job was wearing me down - the team was quite unstable (30% of the engineering team quit when I joined), we had little opportunity to tackle technical debt ...". If the interviewers are reasonable they'll sieze the opportunity to ask you about how you would have preferred to handle the technical debt (or whatever the other carefully selected problems you raise here) then you're back talking tech stuff again.

Others have said that you don't want to bring it up or complain as it'll be a red flag. But I don't think they'll automatically assume the employer was right, they'll be trying to figure that out while talking to you. You have the advantage in this situation because you're the one who's able to do the talking, not your previous employer. If you're calm, polite, reasonable and able to talk objectively about the situation then they'll assume it's your previous employer who was at fault :-)

</comment><comment><USER26> First, I wouldn't say anything negative about the company or my experience there. As you observe about your previous manager, people don't like negative people. Your prospective employer won't appreciate hearing you complain. Negative people are also disproportionately likely to be the source of problems themselves, so complaining a lot about your previous experience will be waving a red flag that you are a potential source of problems.

When discussing your previous positions stick to facts (I did X, Y, and Z) and positive notes about what you learned and accomplished.

Second, I wouldn't tell people that I was fired. I would list a year of experience there. If someone asked why I left I'd say that I learned a ton, the work was interesting - whatever true and positive evaluations I had, but ultimately I wasn't sure I could accomplish my career goals at the startup and so, after giving it a year, I've decided to consider other opportunities.

</comment><comment><USER27> Honestly most hiring managers I've encountered don't really probe into it. They will ask why you left. Say the last place was a good learning experience (after all, you did learn a shit ton of things you don't like), and then switch to what you are looking for (ie listing out opposites of what you experienced).

</comment><comment><USER28> IMHO, I think you should avoid saying "the company was shit" and instead focus on what you have learned in a year, how you have improved, what are your achievements. During this year, you have been contaminated by the negativity. Try to clean up your mindset.

</comment><comment><USER29> Welcome to making money as a software developer. Your experience is nothing exceptional in IT, most startups are pretty bad if you ask me. You can be more picky with companies, but that will make it tricky to find a new job in time.

My advice for your next job: don't mention any of the bad things you've experienced, talk about all the good things you've learned, the great team you had etc.. always remain positive in every new interview. And don't expect a great developer experience when you enter a new company, (although it sometimes happens), you work for money in the first place, and coding is your skill.

</comment><comment> d--b I'm not sure I agree with all the comments here.

You can explain this story the same way as you did here, with perhaps a little less bitterness. Something like:

"This was my first job. I thought I needed the experience, even though I knew the company was somewhat toxic. It was not going well, but thought I'd stay because it would look bad if I left. Then I told my boss things weren't going well and he fired me, which to be honest was a relief. So all in all it was a big mistake and a waste of time, but at least now I know that company culture is important and this is also why I want to join your great company blah blah blah"

</comment><comment><USER30> "It was my first job experience, and though in retrospective I think me and the startup didn't really fit well, I learned a lot."

And you go on from there.

</comment><comment><USER31> > I don't know what I'm gonna do in next interviews.

Personal disclosure is a desirable managerial trait.

So, you got booted. They said 'performance'. You say the place was dysfunctional.

Question: What did you learn from this experience?

\- What do you think you would do differently?

\- Will any former colleagues/supervisors serve as a professional reference; vouch for the quality of your work?

<comment><AUTHOR> > What did you learn from this experience?

Spend as much time as possible with my manager BEFORE accepting the job. Keep my yap shut unless I have something useful to say.

There are other "lessons" I already knew, but intentionally went against because I wanted 1 YoE and/or wanted to see what would happen: Quit if I don't like it, don't tell your manager you want to quit unless you're actually quitting, don't be negative.

> What do you think you would do differently?

Switch teams.

> Will any colleagues/supervisors serve as a reference; vouch for the quality > of your work?

Yes. There were two engineering teams, I was on the shit one. There was a better engineering team (led by the CTO). Every time I worked on their codebase / interacted with them it was a positive experience. The CTO and a few people on that team reached out and said "let me know if you need anything" \- so I think I'm good.

<comment><USER31> > The CTO and a few people on that team reached out and said "let me know if > you need anything"

Good. So, be sure incorporate this into your disclosure. That will mitigate potential Red Flags to new employers.

<comment><AUTHOR> Thank you for walking me through this. Sorry to keep pestering you, but as far as my disclosure goes, what do ou mean? I'm not entirely sure I follow. Are you saying I should stick to those 3 bullet points you outlined?

<comment><USER31> It's highly likely during the interview process, someone will ask _why did you leave your last company?_

Be prepared to answer. Networks often overlap in mysterious ways in the business.

ex: _Truthfully, I was let go. My CTO and colleagues will vouch for the quality of my work. But my direct reporting manager was a bit difficult.

That's why I am being very strategic about my job search, really focusing in on the people, culture, and reporting relationships._

<comment><AUTHOR> Got it. Thanks! Random question, what's your favorite book?

</comment></comment></comment></comment></comment></comment><comment><USER32> People get fired, I wouldn't worry too much. Figure out a narrative that sounds good and some positive references.

</comment><comment><USER33> Keep it there. Be honest, tell interviewers what happened.

Sounds like a shitty company; so I wouldn't expect a glowing reference...

</comment><comment><USER34> If the company goes belly up that can be a good point for you. You left "Because it was becoming clear the company could not survive." Don't put all the blame on the managers, put a lot of blame on their competitors and customers. If the company is alive but on the ropes, the same tactic can be used.

</comment><comment><USER35> I think being honest about that can work, here. Anyone will understand that your former boss was not a good boss.

</comment><comment><USER36> Tell the truth, your lie will be detected sooner or later.

</comment><comment><USER37> Fake it until you make it.</comment>


Free [Lockdown] kids colouring and crafting pages - <AUTHOR> https://2dgameartguru.com/colour-cut-glue-craft-sheets-for-kids/ <comment><AUTHOR> I had some fun with Affinity Designer as a means to help in the lockdown. I designed a few [still adding more] sheets to print out and colour in and glue together as small craft projects. I hope it helps, keeping some kids from being bored and the parents from being stressed [at least a little bit]. These are completely free to download for private use. Enjoy!</comment>


Ubuntu Phone Will Be A Big Success, Even If It Never Happens - <AUTHOR> http://www.forbes.com/sites/sharifsakr/2013/08/08/crowdfunded-ubuntu-phone-will-be-a-big-success-even-if-it-never-happens/

<comment><USER2> tl;dr Some reputational gain [for Canonical] is guaranteed. Bloomberg will portray itself as a "forward-thinking company" and is actually better off not getting the 100 phones. "To a significant degree, this episode has already succeeded in being disruptive, in proving that smaller players have new ways of tackling the status quo, and in acting as a very direct and powerful piece of market research for Canonical. "

Didn't enjoy the article. Basically wraps the actual argument in 1000 words to make it seem smarter.

</comment><comment><USER3> I am pissed off. I am a life long linux user and Ubuntu has done great work.

I am really starting to see Ubuntu used for the desktop in various companies.

But nobody gives a shit enough to invest in their technologies. I think edge is a great idea. I will buy (once the phone is available). That is my contribution.

<comment><USER4> In case Ubuntu folks are reading this.

I am from India, working on our startup - our running costs are USD 500 per month, thats what we are running on. If I was in a regular job, I would surely contribute to your campaign, but I cant afford it.

If I want to download Ubuntu Desktop, you are asking for donations, which I would love to give, but are taking payments through Paypal. You need to setup a payment gateway here in India - use the same systems we use to top up our mobile phones, so we can contribute to you, instead of going through Paypal (because I am not credit worthy, and there are govt rules too).

We might not be able to make big donations, but India has 1 billion people, and I am sure, India has quite a few Ubuntu users, and I am definitely a Happy one.

<comment><USER5> yeah,me too! I would gladly donate 0.5K to 1K rupees!(if it was as easy as paying for pizza)

</comment></comment></comment><comment><USER6> Forbes.com: Defining success down since 2013 :-).

</comment><comment><USER7> Sale: Global brand exposure, requires an $80,000 down payment, will be refunded in full minus PayPal fees at the end of the campaign.

Why aren't more big companies seeing this?

</comment><comment><USER8> Can someone explain to me why this has to be a hardware project? Why can't they just make this an OS project and load it on whatever high end phone exists in 2014? Hardware falls outside of Canonical's core competency, and as such seems like an inconvenience.

<comment><USER9> I've been pretty unimpressed with the build quality and general aesthetic of the majority of Android smartphones. (I'm not anticipating Ubuntu on iPhone will ever be a viable option.) The Edge looks good, and (hopefully) will feel good in hand.

The buttonless interface is also significant: every other phone has physical and/or touch buttons below, which would be superfluous. Ubuntu phones are meant to be oriented around edge swipes as virtual "buttons", with the few actual buttons being only on the top and sides.

The project is most certainly a gamble, both for buyers and Canonical. But I think it's a worthwhile one for both parties. Note that their goal is to release a new "concept phone" once per year; they clearly want to turn mobile hardware into a core competency, even if they're bound to have a hard time keeping up with Samsung and Apple.

<comment><USER10> Touch volume buttons are very very useful, the ability to control volume just by feel is something that should not be dismissed for the sake of a misguided minimalism.

A physical "home" button is also useful for when a phone starts to hang/go slow. If pressing the physical button has no effect then you press the physical on/off button, if that has no effect you power cycle the phone.

If those first steps are software interrupts you cannot trust them when software starts to hang, so the only satisfactory option is to powercycle, which is less useful than being able to just get back to a home screen where the phone can better recover from whatever was causing the hanging.

<comment><USER9> The Edge has physical volume buttons on the side. We'll see if the lack of a Home button ends up affecting the UX or not; it depends on the responsiveness and resiliency of the OS.

</comment></comment></comment></comment><comment><USER11> They're going to refund the people who paid a higher price than $695 - isn't that going to lower the funding amount even if it hits the target?

</comment><comment><USER12> Ubuntu is becoming the FOSS Google and trying to outreach its goal. Not saying it's bad; I'm just skeptical on how it will work out.</comment>


Snow Leopard Tweaks - <AUTHOR> http://www.reynoldsftw.com/2009/08/23-snow-leopard-tweaks-you-didnt-know-about/

<comment><USER2> Exposé is quite a bit different. It lines up the windows a bit differently and brings up minimized windows and displays them at the bottom of the screen.

<comment><USER3> And pressing tab with exposé engaged will now highlight the icon of the application whose windows are being shown.

</comment></comment><comment><USER4> Lousy title. These are features, not tweaks. I was hoping that this was a list of utilities or Terminal commands.</comment>


GitHub Has Cool Graphs Now - <AUTHOR> http://github.com/blog/159-one-more-thing <comment><USER2> Of particular interest to some of the hackers here will be the "Impact Graph." This was my first Canvas + JavaScript graph implementation and I must say that it's a pretty nice system to work with. While Canvas is strictly a painting tool, I'm considering writing a library on top of it that will give me some of the interactivity and animation tools that I miss from Flash. Canvas is positioned to seriously compete with Flash, I'd love to see more people using it.

<comment><USER3> I thought Processing.js was just one such framework to work on top of Canvas.

</comment></comment><comment><USER4> Does their blog have rss? I can't seem to find the feed link.

<comment><USER5> Sure, it appears as feed icon in my Firefox 3.0: <http://feeds.feedburner.com/github>

</comment></comment><comment><USER6> It'd be nice if the graphs did more than just master. In particular, rubinius has a lot of activity going on in the 'cpp' branch and none of it is visualized anywhere that I can find.

</comment><comment><USER7> I was half expecting to see a cartoon emo guy before I clicked the link.</comment>


Qantas Airbus A380 'nosedives' after wake turbulence from another A380 - <AUTHOR> http://www.businessinsider.com/airbus-a380-qantas-flight-dive-turbulence-caused-by-another-a380-2018-6 <comment><USER2> There was a story about a Challenger 604 Jet that flew through the wake of an A380. The plane almost crashed and the pilot through a heroic effort managed to regain control and land the jet.

The Jet ended up a write off due to the structural stress it sustained through the ordeal.

[http://www.dailymail.co.uk/news/article-4337974/Jet- caught-w...](http://www.dailymail.co.uk/news/article-4337974/Jet-caught-wake- superjumbo-nearly-crashes.html)

Insane!

<comment><AUTHOR> There was a good thread here about that, too!

[https://news.ycombinator.com/item?id=13890618](https://news.ycombinator.com/item?id=13890618)

</comment></comment><comment><USER3> More informative / less sensationalized link: [http://avherald.com/h?article=4b9da5b2&opt=0](http://avherald.com/h?article=4b9da5b2&opt=0)

</comment><comment><USER4> The pprune pilots blog is in full yawn mode. Upsetting for passengers? Yes. Immediate clear and present danger? No. And the relevant agencies are _not_ formally investigating this as a disaster scenario.

Wake turbulence is one of the reasons people are told to keep seatbelts on.

<comment><USER5> One of the comments pilots often make is that passengers often grossly overestimate the movement of the aircraft in situations like these. I highly, highly doubt that the plane was in "freefall" for 10 seconds.

<comment><USER4> [https://www.news.com.au/travel/travel-updates/qantas- chief-p...](https://www.news.com.au/travel/travel-updates/qantas-chief-pilot- denies-passengers-were-at-risk-during-qf94-wake-turbulence-drama/news- story/4485116a6aff19afb5338ca77a804762)

for a non-professional news write up, its a pretty good hose-down. truly: _nothing to see here, move along_</comment></comment></comment>


Write Down Your Password – Schneier on Security - <AUTHOR> https://www.schneier.com/blog/archives/2005/06/write_down_your.html <comment><USER2> To be clear, this advice is from 2005. I'm pretty sure if you asked Schneier today he'd recommend a password manager instead of pieces of paper.

<comment><USER3> yep, he made his own.

[https://www.schneier.com/academic/passsafe/](https://www.schneier.com/academic/passsafe/)

</comment></comment><comment><USER4> Changing long master passwords/passphrases can be tricky.

Write them down on a small piece of paper and keep it until you'd remember it correctly if you were very tired or very drunk.

Changing once a year is about right, and rotate all other passwords too. Be sure your pwd mgr backs-up old passwords and the pwr mgr file is backed-up to alternate locations and cloud or backup keeps some past versions of files.

<comment><USER5> I thought password rotation wasn't considered a best practice: [https://www.schneier.com/blog/archives/2010/11/changing_pass...](https://www.schneier.com/blog/archives/2010/11/changing_passwo.html)</comment></comment>


Android Is For The Masses, iPhone For The Rich - <AUTHOR> http://www.readwriteweb.com/archives/android_is_for_the_masses.php <comment><USER2> We're starting to get the first user reports from owners of iPhone 3Gs, and they are being particularly harsh on battery life. Considering how draconian Apple has been on trying to oblige apps to be low-consumers of power, I will be very interested to see how Android's more open platform goes. I note that in the article they mention that location aware and social apps (the kind that need notifications) are very popular.

Despite Apple's best efforts, these apps hurt the battery life of the iPhone. What will this do for Android, which has much less control over hardware, and much less control of apps that can be put on the system?

</comment><comment><USER3> I went looking for a phone to replace my current one (I've been rollin' with the deuce, err...Sidekick II...for about five years now) last week. The space is just abysmal.

I expected to find a half dozen phones with similarly priced plans that had a decent browser. But it turns out, the carriers won't sell me a plan as cheap as my current one, and that's the _main_ reason I want to move to something else. I use the damned thing so little, it's just stupid for me to keep paying $65/month for the privilege. I talk about 45 minutes per month, on average, with occasional peaks up to 100 minutes or so, if my folks are feeling chatty. I browse the web about 30 minutes per month, maybe as much as 100 minutes when I'm traveling. I don't use email (because email sucks on the Sidekick, though I do use our own webmail client which has a pretty good mobile interface), and I never use SMS.

To get pretty much anything with the same sized screen or larger, and a data plan (of any kind--even one that bills by the minute), it'll cost me more per month than I'm already paying.

Why won't they sell me a cheap voice plan (100 minutes would do me just fine) and a reasonable data plan? I guess because that'd be less money for them. But, it's ridiculous...they've priced me out of the smart phone market entirely. I don't need the damned thing, but it'd be convenient to have when I want GPS or something...but it's definitely not $80/month worth of convenience to me. So, instead of a smart phone provider getting $40/month from me, one of the pay-as-you-go dumb phone providers will be getting $20 every three months. I'll probably be happier with it anyway. I won't feel the urge to read reddit or HN while I'm waiting for my tea or lunch, and instead might talk to someone or something.</comment>


Base 65536 - <AUTHOR> https://github.com/qntm/base65536 <comment><USER2> Similarly we do a lot of unicode bit packing on Dwitter.net since the code size limit is in characters (140) not bytes.

There are a few compressors allowing an increase of arbitrary ASCII chars, with the most allowing 194 chars including decoder, the compressors are themselves dweets! : [https://www.dwitter.net/d/11852](https://www.dwitter.net/d/11852) This is not the most efficient way to store bits in unicode but there is a balance with dwitter because you need to fit the decoder in the same 140 characters.

There are also some more specialist methods such as packing image or other binary data and decode using string.charCodeAt() e.g [https://www.dwitter.net/d/12808](https://www.dwitter.net/d/12808) this is not limited to exact bit word sizes, for instance I packed this 3 color image efficiently by encoding it numerically in base3, ~1.6 bits per pixel, the decoding just requires division by power's of 3 and mod3 (generalization of bitwise shifting and masking): [https://www.dwitter.net/d/19166](https://www.dwitter.net/d/19166)

[edit] I should explain, that last example combines the general code compressor with the image bit packing technique, the image it encoded as 5 pixels (3 color) per 8bit characters but doesn't use the higher bits of unicode to allow the whole code to be encoded using the above compressor which fits two chars up to 8bit into UTF-16 and wraps it in the decoder.

You can see the source by replacing "eval" with "throw".

<comment><USER3> How about adding standard decompressers to the Dwitter JS environment so they can be executed with less code?

<comment><USER2> Do you mean to add the decompressor wrapper automatically so that more UTF-16 packed code can fit?

That would effectively increase the limit to 280 usable ASCII chars, i.e a double dweet. This has been discussed before but I don't think the authors will implement it.

There are a few other JS golfing sites that have multiple size brackets and I believe they are less active as a result. Although dwitter is not exactly popular I think this clear limitation is what keeps it focused and the community actively engaged. The 194B hack is a slight weakening of that, but it's often reflected by votes as people are less impressed when you've resorted to using that trick unless it was really worth it... it also feels like a fair compromise because you cannot for instance use emojis inside that compression method so it's not entirely free.

</comment></comment></comment><comment><USER4> For those looking for motivation - you can see examples of the related base2048 encoding used in tweets to the bbc micro bot twitter account: [https://www.dompajak.com/bbcmicrobot.html](https://www.dompajak.com/bbcmicrobot.html) ...encoding and decoding (to learn from other's coding tricks) is easy with the editor: [https://editor.8bitkick.cc/?compress=true](https://editor.8bitkick.cc/?compress=true)

without these tools I'd never have managed to fit this in a tweet: [https://twitter.com/bbcmicrobot/status/1248312174054948864](https://twitter.com/bbcmicrobot/status/1248312174054948864)

<comment><USER5> what a thing of beauty

</comment></comment><comment><USER6> Initially designed to pack more data in a tweet. Thanks to this article I learned about:

[https://blog.twitter.com/engineering/en_us/topics/insights/2...](https://blog.twitter.com/engineering/en_us/topics/insights/2017/Our- Discovery-of-Cramming.html)

<comment><USER7> So they have differing tweet length according to the UTF8 pane it's using. But Germans are still cheated compared to English, which is a quite concise language. (of course, the result focuses on Japanese because of the huge difference to latin languages)

</comment></comment><comment><USER8> Discussed in 2017:

[https://news.ycombinator.com/item?id=14468818](https://news.ycombinator.com/item?id=14468818) (122 comments)

In 2015:

[https://news.ycombinator.com/item?id=10683889](https://news.ycombinator.com/item?id=10683889) (50 comments)

</comment><comment><USER9> _Base65536 uses only "safe" Unicode code points - no unassigned code points, no whitespace, no control characters, etc.._

 _The string encodes two bytes per code point._

Is it really 64k then? It is hard to understand how this works without documentation on the format.

I wonder how many others were able to mentally decode the example input string just on sight, from having worked with ASCII extensively.

<comment><USER10> It encodes two bytes per code point; the encoding of that code point may be longer than two bytes. (Indeed it mentions that it's optimized for UTF-32.) It accomplishes having the full 2^16, while only using safe characters, by not restricting to the BMP.

If you read the details of how it was constructed, you can see that the reason the 2^17 version isn't ready yet is because there aren't yet 2^17 safe characters in Unicode! (There are a total of 123,813 characters in Unicode 13 that are judged "safe" by qntm's criteria.)

</comment></comment><comment><USER11> [https://github.com/qntm/base65536#why](https://github.com/qntm/base65536#why)

> Why?

> Erm.

> I wanted people to be able to share HATETRIS replays via Twitter.

My brain is melting.

<comment><USER12> So I went ahead and allowed myself to ask, "why is it called HATETRIS" and tried it out without reading anything first.

This has been a wonderful rollercoaster, thank you for sharing and pointing this out :D I only played the game for 30 seconds before I could already guess exactly why it's called that!

<comment><USER13> HATETRIS is actually a surprisingly engaging challenge, particularly since it has no time constraints. After a few minutes I found I enjoyed it at least as much if not more than regular Tetris. Figuring out how to make all the pieces appear makes quite the juicy little puzzle, as does figuring out how to maximize the number of cleared lines.

<comment><USER12> I was not able to clear more than 2 lines per game. I would like to become good at this game. I'm not sure it's possible. But the prospect of a community that shares hatetris replays is intriguing...

</comment></comment></comment></comment><comment><USER14> I love this! Idea, execution, everything.

This reminds me of the times when I encoded a binary database of several megabytes, with indices and everything, in the 53 integer bits of huge 64-bit floating point number arrays, because that was the only way to use that data in a Lua runtime environment of a computer games' UI that didn't expose direct file system access to UI plugins.

</comment><comment><USER15> I want to marvel at the characters and languages our species has created and we've also found a way to encode and display on computers.

</comment><comment><USER16> > _maximum Tweet length is indeed 280 Unicode code points, except that code > points U+1100 HANGUL CHOSEONG KIYEOK upwards now count double._

Oh, _that 's_ why some carefully composed tweets don't fit — things like General Punctuation and Currency Symbols count double. I think I'm up to the Gillette5 version of Hanlon's Razor where Twitter is concerned.

</comment><comment><USER17> Superseded by Base2048 [1] by now.

[1] [https://github.com/qntm/base2048](https://github.com/qntm/base2048)

<comment><USER18> Assuming the goal is to transmit data via Twitter.

Other environments may treat characters after U+1100 with no penalties.

See: "Rationale" section at: [https://github.com/qntm/base2048#rationale](https://github.com/qntm/base2048#rationale)

> following some experimentation and examination of the new web client code, > we now understand that maximum Tweet length is indeed 280 Unicode code > points, except that code points U+1100 HANGUL CHOSEONG KIYEOK upwards now > count double.

<comment><USER17> You are right that Base2048 is tailor-made for Twitter, but I think so is Base65536.

More specifically, the explicit length limitation is easily one of the weirdest aspects of Twitter. It makes Twitter experience somewhat like that of IRC, faciliating knee-jerk reactions and misunderstandings. And the limit is severe even for casual conversation to the point that it had to be changed once emojis broke its core assumptions. I don't think Base65536 has much use outside of Twitter and likes.

<comment><USER19> Base65536 is useful anywhere people are pasting codes to each other with sizes around 20-1000 bytes. Taking up half as much screen space as base64 is a big feature.

</comment></comment></comment></comment><comment><USER20> I needed something similar for a javascript project and stumbled upon this excellent library by pieroxy that worked flawlessly: [https://pieroxy.net/blog/pages/lz- string/index.html](https://pieroxy.net/blog/pages/lz-string/index.html)

base65536 looks pretty similar to that except that base65536 is not as much focused on compression than it is on "copy-paste-ability".

Shoco is another excellent library that comes to mind for shorter strings: [https://ed-von-schleck.github.io/shoco/](https://ed-von- schleck.github.io/shoco/)

</comment><comment><USER21> Mightn't the raw data be a good candidate for huffman encoding

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

<comment><USER17> Base65536 is not a compression algorithm but rather an encoding scheme that can convey any data compressed or not. Compression algorithms have an implicit input of the list of output symbols, which is commonly but not necessarily an octet (0 through 255). If your output format is the tweet you will eventually end up with something like Base65536 for output symbols.

<comment> GuB-42 The article mentions compression briefly. They are using basic run-length encoding.

There are probably better algorithms. GP suggested Huffman but I don't think it will work. Something like the algorithm used by crinkler [1] (context modeling + arithmetic coding) may work better. It can be made even better if combined with the encoding (the base doesn't have to be a power of two).

Anyways, no need to overdo it, the author's technique works. At least for the newer base2048 version, optimized for long tweets

[1] [https://xoofx.com/blog/2010/12/28/crinkler- secrets-4k-intro-...](https://xoofx.com/blog/2010/12/28/crinkler- secrets-4k-intro-executable/)

</comment></comment></comment><comment><USER22> Make sure to check out the game. Best tetris ever.

[https://qntm.org/files/hatetris/hatetris.html](https://qntm.org/files/hatetris/hatetris.html)

</comment><comment><USER23> On the other end of the scale, we have base-1, e.g. scratching a row of 1's on a surface as a tally.

I guess base-0 can't really exist, since 0⁰ is undefined.

<comment><USER24> Fun fact: As the base goes down, the number gets longer. If you think about the base as the height, you could then find the "area" of the number by multiplying the two. It turns out that the base that minimizes this area is e.

[https://web.williams.edu/Mathematics/sjmiller/public_html/10...](https://web.williams.edu/Mathematics/sjmiller/public_html/105Sp10/addcomments/Hayes_ThirdBase.htm)

</comment></comment><comment><USER25> Javascript really has come a long way.

I can remember when hacks like this were in CPAN, and then in pip. Now npm?!

</comment><comment><USER26> _" To encode one additional bit per code point, we need to double the number of code points we use from 65,536 to 131,072."_

I'd argue that going into fractional bits per code point would not make the project significantly geekier than it already is :-)

<comment><USER17> Well, if you really want to put more data to the tweet you can always abuse t.co [1].

[1] [https://xem.github.io/obfuscatweet- reloaded/](https://xem.github.io/obfuscatweet-reloaded/)

</comment></comment><comment><USER27> Related: An "arbitrary base converter" that treats all strings as numbers: [https://convert.zamicol.com/](https://convert.zamicol.com/)

</comment><comment><USER28> Reminds me of Jira. Jira (at least server and data centre editions) uses base 64 numbers to impose global ordering onto issues.

</comment><comment><USER29> Has anyone tried to tweet compressed data in any of these encodings.

Wondering if there any famous pieces of text that would fit.

</comment><comment><USER30> I like Base1. Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

</comment><comment><USER31> Using a platform to do something it was not designed for could constitute hacking and therefore getting you into a legal trouble.

<comment><USER9> A platform designed to disseminate data is being used for its purpose. This is really no different than switching from English to Chinese to increase information density: [https://pugs.blogs.com/audrey/2009/10/our-paroqial- fermament...](https://pugs.blogs.com/audrey/2009/10/our-paroqial-fermament- one-tide-on-another.html)</comment></comment>


Ask HN: Examples of data structures in real world examples - <AUTHOR> I'm familiar with most of the common data structures and how to implement them, but I still struggle with understanding how they're used in real world situations. Obviously things like hash maps and queues are pretty common in a lot of codebases, but are there any examples of how data structures like linked lists and trees and stacks are used?<p>For what it's worth, I'm mostly familiar with web apps so maybe they're just not as common there. <comment><USER2> Web apps examples: The children of a DOM node form a linked list, see Node.{firstChild, lastChild, nextSibling, previousSibling}:

[https://developer.mozilla.org/en- US/docs/Web/API/Node](https://developer.mozilla.org/en-US/docs/Web/API/Node)

What's more, the DOM form a tree: nodes have parents and children.

Stacks? Your programming language, whatever it is, uses a stack, the call stack, to keep track of what functions are being called.

</comment><comment><USER3> I ran a bigquery for java projects on github - was interesting to see the majority of projects using ArrayList and HashMap. I mean i didnt drill down into the datasets - but you could use a similar approach to see how structures are used

</comment><comment><USER4> Snapchat uses linked-listed to keep track of who you're going to send a snap to.

Internet routers use queues to create a buffer of packets that have yet to be processed.

Postgres uses trees or hashes to create table indices for faster queries.

Medium uses Bloom Filters to check if a user has read an article or not.

</comment><comment><USER5> It's the difference between a programming language and its implementation. All the things we manipulate as programmers these days are mostly high level. Though, they are mostly made out of addresses and pointers in memory.

Example:

Array(API) = Linked List(Implementation) = address + pointers(Memory)</comment>


An iFund Applicant's Response to the December 2008 KPCB iFund Data Breach - <AUTHOR> http://www.huffingtonpost.com/aaron-greenspan/customer-disservice-spotl_b_154001.html

<comment><USER2> Hey thinkcomp, I didn't go searching for what your idea is, and you didn't mention it in the article, and realistically I guess it doesn't matter.

As you well know, implementing your idea is the largest part of the battle, so are you giving up on the idea? I would think that a man of your experience would move forward with the idea anyway, and not let this speedbump turn into a roadblock.

I would also have liked to see (and maybe the community here could help) a suggestion as to how KPCB should handle the situation. You clearly understand that they can't just support every idea that they inadvertently made public, and I completely agree with you that their proposal of you promising not to sue in exchange for the opportunity to pitch again is worthless.

<comment><AUTHOR> I'd love to work on the idea still, but sadly, ideas need funding. If I could have done it anyway, I wouldn't have needed KPCB's help in the first place.

</comment></comment><comment><USER3> How did you get the piece on huffPo? Are you a regular contributor there?

For what it's worth, sue those bastards.

<comment><AUTHOR> I'd say I'm more of an irregular contributor...but I was invited to write for them a while back after I wrote my book.</comment></comment>


Quora Gamifies: Credits And "Ask To Answer" Suggestions Live For Everyone - <AUTHOR> http://techcrunch.com/2011/11/14/quora-gamifies-credits-and-ask-to-answer-suggestions-live-for-everyone/

<comment><USER2> Blech. The reason I was enjoying Quora was its lack of explicit gameified geegaws -- versus StackOverflow (and to a lesser extent the whole StackExchange federation). SO has become less and less useful, if you've got a novel and/or slightly abstract or subjective query, because everyone is playing for points, including moderators. It leads to a Pavlovian house style, favoring novice questions with circumlocutious answers, with terse rebukes and heavy-handed moderation for everything else.

I appreciate SO's focus but only inasmuch as it produces something I can use. I still use it frequently as the majority of "duh, what module?" sort of questions have been answered there already.

Quora wadn't about that, though; I found the process of socially-networked collaborative question-answering to be as valuable as the answer... E.g. Answers that were 80% there would frequently contain clues to new relevant questions; if people are trying to "win" I m afraid that horizontal exploration of Quora's topics won't be as fun or accessible.

In fact I think it will be less fun in general, and the likely inference that less fun leads to less Quora use (and therefore less $)doesn't require rocket- science-grade reasoning.

I am sure enough people love this kind of game enough such that they'll stay afloat even if the Quora game is every bit as unpleasant as I might anticipate -- but in my personal expert opinion, that'd be weak.

</comment><comment><USER3> To me, Quora has been sort of a game since it started. It has a lot of hidden/clever game mechanics underlying the design. I think this is one way that the company can start helping create an economy to pay those that create and donate the content that makes the site go in the first place.

</comment><comment><USER4> This is sort of the old Experts Exchange model, before they went spammy/evil, isn't it?

</comment><comment><USER5> Nope - still not interested.</comment>


Ask HN: Has your HN karma score helped you in any way? - <AUTHOR> I know the main purpose of being on HN is not obtaining karma, but I was wondering whether users with relatively high karma have found it useful/helpful in any way. <comment><USER2> While I no longer post as frequently as I did in the past, I like to think of my karma score as X other people thought that a story I shared or, to a much lesser degree, a comment that I wrote had a tiny unit of value or interest to them.

I lurked for many, many months before I started contributing, and I encourage all of you out there to share what you like and what you know.

I'd also be lying if I said secretly knowing my karma score was high when the topic of HN came up didn't cause me to smile mentally. Even if if the topic revolved around how "HN is toxic, brogrammers" etc because I felt that these people can't see beyond their own biases to see the real community that dang and scbt actively take no small part in taking care of.

Being a tiny part of the HN community is something I am thankful and grateful for. I wrote about it earlier this year: [https://news.ycombinator.com/item?id=18509717](https://news.ycombinator.com/item?id=18509717)

</comment><comment><USER3> I hope not. Not for me for sure.

Every time someone downvotes me it literally makes me feel like shit for like a day.

This includes reddit as well.

I'm not saying I'm looking for upvotes and I'm not on Facebook so it's not about being "liked".

When I'm downvoted I'm so afraid I have offended someone or I said something extremely fallacious.

It has gotten to the point where I have contemplated not ever participating again which is a shame because I'm nervous (assuming I'm not an extreme fringe case) there is some sort of convergent sheep opinion when there should be diversity in thought.

So if someone came to me and said hire me and look I have xyz karma on xyz platform I might even be less inclined to hire given how much I feel it has poisoned my own thought.

<comment><USER4> HN is not fond of humour or dry wit. But sometimes you just have to post it and suffer the slings and arrows of outrageous down votes.

<comment><USER5> So true, humor is essential to (my) life though.

</comment></comment></comment><comment><USER6> No, not in the slightest. Well, aside from fluffing up my ego a little bit I guess, and I'm not sure that _that_ is a good thing.

</comment><comment><USER7> HN karma has helped with one place I worked but that was after I had already been there. They noticed on my private computer and said "cool" and it was a form of social credit.

Other than that, the karma is essentially "interesting" but ultimately irrelevant. HN upvotes seem to be only used by people who align and agree with you. Not whether you've added something substantial to the discussion.

On the flip side, I've found that HN downvotes are used by people disagreeing with you without them needing to explain exactly why. I've even had people say I've broken the rules but upon examination I can't actually see the transgression. (So it was useless feedback on their part).

In some cases I've been accused of various things and had people demand to know where I work or to not use a throwaway account ("man up and use your real account" or similarly useless statements). They clearly intended to dox me and were thwarted in their attempt. Then they got angry.

</comment><comment><USER8> The downvoting power is sort of 'useful'. I reserve it for the worst comments, not just stuff I disagree with. But you don't need super high karma for that.

The good thing about a downvote is a single DV in a busy thread makes the comment a lot less visible. So if it's spammy or offensive it quickly sorts it out. I'll do a downvote + flag.

</comment><comment><USER9> It works for keybase.io :D enables you to identify yourself in the platform. I need karma 2, +1 this comment :D Thanks

</comment><comment><USER10> I've been here for over 7 years and I still can't downvote. I like it this way

</comment><comment><USER11> SO karma would be much more helpful. And Once you reach a certain critical mass they grow by themselves.

</comment><comment><USER12> Black mirror future is here already

</comment><comment><USER13> What do you call "high karma"?

</comment><comment><USER14> I think not

</comment><comment><USER15> nope</comment>


Has asking for a raise ever ruined your relationship with your employer? - <AUTHOR>

Has asking for a raise ever ruined your relationship with an employer?  I have a good job, generous benefits, stock options, lots of PTO.  I have 5 years experience in open source technologies.  I believe in the company I work for, its management team and its product.  That being said, many engineers have been leaving.  I have been at the company for 7 months and am happy, but it's clear that right now they need senior developers and I'm not sure there could be a better time to ask for a raise.  If they denied me a raise I would stay there (dont tell them).  What I'm concerned about is the small???? chance that it ruins my relationship with my employer.  I have a newborn and my partner quit her job to stay at home.  I earn 80k and am Extremely grateful to have such a good job, but at the same time I believe with a small amount of work I could earn more.
I would feel like a complete idiot if I tried to capitalize on lack of ability to retain people at my current position.
Has anyone had negative experiences from asking for a raise?? <comment><USER2> It really depends on your employer. You need to understand a bit about how your boss works and the current position he/she is in.

1\. Find out (loosely) if your employer can afford the raise you're looking for. Nothing worse than putting your boss in a position where he/she can't actually help you.

2\. _ALWAYS_ give your employer a 1 page document detailing why you're looking for a raise. No need to talk about your cancerous dog, but certainly talk about your achievements, your worth and your vision for yourself in a 'more senior' position.

3\. Give a number you're looking for. Don't just ask for a raise or your employer will give you maybe 2K more per year and you'll feel ripped off. And then, if you complain then he/she will feel hurt.

4\. Be positive. Be truthful. Your employer wants to hear that you love your job. Your employer wants to hear that you want to take on more responsibility. They'll respond well to that.

I did this with my last employer and was able to secure a $25k raise. YMMV

<comment><USER3> $25k is a lot. Congrats!

I would add not to compare your salary to your co-workers (if you happen to know their salary) when you talk to your boss. It can back-fire because you steer the discussion to somebody else's salary which you have no idea about past history or what other factors played into that.

</comment></comment><comment><USER4> I read Ashlee Vance's "Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future" a while back. His personal assistant (for 12 years) Mary Beth Brown asks Elon for a raise. He asks her to take a 2 week break so he can assess for himself how difficult her job really was.

She was let go after the break.

<comment><USER5> Generally I tell people if they feel undervalued, take a long vacation (at least a week). People will either miss you terribly or you'll know where you stand.

Just don't tell anyone that's why you're doing it if you don't want to be like Mrs Brown.

</comment></comment><comment><USER6> There are people who can walk in, demand a raise and get what they want. I know I ain't one of them. There are people who can play it close to the vest and go home with someone else's shirt, boots, and wallet. Maybe that's you.

What is your company's policy on employee reviews?

Do they conduct them according to schedule?

Seeing as you've been there about six months, an informal review is the way to gain information for when the formal review happens. Find out how your boss is coping with turnover...maybe it's intentional, maybe not. Find out how he perceives the motivations of the people who left. If it's framed as disloyalty, that's a bad thing. If it's framed as natural progression, then that suggests how much leverage you have in regard to framing compensation to future growth. Negotiations are all about information.

Maybe your boss thinks you're underpaid but can't give you a raise until you ask. Maybe your boss can only give raises at reviews and according to a formula...that formality is actually good so long as the process is reasonably fair (and if it's not reasonably fair then the formality isn't worse).

Even if you are the demand a raise and get it type, more information doesn't hurt. But you can't demand unless you're ready to walk. Don't fool yourself into believing that your boss hasn't already read the tells that you are happy and unlikely to leave even without a raise.

Good luck. Good luck.

</comment><comment><USER7> Yeah, money ruins everything eventually.

My first true dev gig was for a really fun company. I was self taught at my previous engineering job, and the Web was happening so I took a junior position for $X/year.

Then I got better fast. Turns out I wasn't actually all that junior to start with, but soon it was apparent that I was shipping things a lot faster than anybody else on the team. After a good year of this I took a look around the market and figured out where I would probably fit in it. I asked the company to bring me up to $2X to get me closer to where I belonged.

They debated, scraped, and eventually found a way to offer me $1.3X. I was gutted. This was a really fun job, with fun people. But they were not planning to pay market rates, so in the end it was an easy decision.

I sent off a couple emails, and a week later accepted another really fun job, with even more fun people, for a little more than $2X.

So yeah, a nice relationship soured because fun is fun but at the end of the day, it's not worth leaving tens of thousands of dollars on the table for. Especially when there's plenty of fun to be had elsewhere that doesn't ask you to make that tradeoff.

</comment><comment><USER8> I never got burned by asking for a raise. So do it. However, I recommend you read the details of how to do it properly, I wrote about it here: [https://medium.com/@colunchers/how-to-negotiate-a- raise-9166...](https://medium.com/@colunchers/how-to-negotiate-a- raise-9166c977645a)

The key is to honestly measure your market worth, and not threaten at all to quit. If you can convince your boss that other companies would like to pay you more, but you prefer your current company (which is what you say), then it's a solid approach.

</comment><comment><USER9> If it did, you didn't have any relationship to begin with.

</comment><comment><USER10> Your company knows you had a baby and you are grateful. They take advantage of it by paying you a non-competitive wage.

</comment><comment><USER11> you have only been there 7 months. Unless you agreed, when joining, to review salary after X months, I would probably avoid asking for a raise right now. What I WOULD do, is ask for a chat with your boss or bosses and explain to them: 1) you feel you have performed well and exceeded expectations by X, Y and Z; 2) you know lots of people are leaving and you want to take on more responsibility; 3) you know you have only been there 7 months; and 4) you want them to think about giving you a significant raise in 5 months' time.

Then ask them for their thoughts and what you need to do in order to make that happen.

It shows them you are committed, not trying to squeeze every penny just when they are hurting because of departures and makes it VERY hard for them not to give you a raise at the 1 year mark.

At that point if you don't get what you are looking for, you move away.

Good luck!

</comment><comment><AUTHOR> I would feel like a complete idiot if I tried to capitalize on lack of ability to retain people at my current position AND it backfired

<comment><USER12> Go to some interviews. This will give you some idea of what you could get elsewhere. If you get an offer that is more ammo, even if you don't decide to disclose it will boost your confidence to ask for more.

Not sure how experienced you are but no matter how much you love your job it is pretty much dog eat dog.

They wont hesitate to fire you if they need to downsize, even if they are downsizing for the wrong reasons. Your good boss could be replaced with a bad one, or the company as a whole decides to stack rank, or pressurize everyone with too much work etc. Let alone they sell to another company, decide to float, or whatever. This can happen in the future and change how much you love this job.

So don't be scared to change jobs to get what you want, if you have to. The grass may be greener, or less green. You can always change again.

</comment></comment><comment><USER13> I would never ask for a raise unless I had an option I was willing to walk to. Even if you're happy at your current job go talk to other companies and see what's out there. This will better inform you what you're worth as well.</comment>


Adam Langley's Pond: Secure Async Messaging - <AUTHOR> https://pond.imperialviolet.org/

<comment><USER2> > "Pond seeks to prevent leaking traffic information against everyone except a > global passive attacker."

My favorite line in the article. It's a nice nod to the fact that this Achilles heel is an issue that he is aware of / takes seriously.

<comment><USER3> Contrasted with the "forward":

       |Note: recent events have lead to these topics being in the news quite often in recent weeks. However, Pond is not a reaction to those events - it was started nearly a year ago.

Traffic information, of course, isn't the whole conversation, so his wit is appreciated to make light air of the situation, but at the same time he's quite serious about this little project. I'm impressed that it compiles at all on my Arch machine, after his warning to Arch users.

On topic to your comment, unfortunately there's no way to avoid leaking traffic information, or at least the fact that there is traffic at all, to a "global passive attacker" :) gone are the days of radio silence

<comment><USER4> There's a paper from the 1990s ([https://gnunet.org/sites/default/files/10.1.1.43.4892.pdf](https://gnunet.org/sites/default/files/10.1.1.43.4892.pdf) I think, Pfitzmann 1991) on building an ISDN MIX for anonymous real-time voice traffic. ISDN gives you two 56kbps or 64kbps channels in each direction for voice, which you can connect to whoever you want. So you just keep these channels open to somebody all the time and keep them full of data, even if it's nonsense. Using fully isochronous streams in this way, assuming a fully connected directed graph, which is overwhelmingly probable, it's impossible for a global passive attacker to determine anything at all about who is actually talking to whom, or how much; the traffic pattern simply is not affected by the communication graph.

A thing I don't know is whether Pfitzmann et al.'s scheme held up to subsequent analysis. I haven't even read the whole paper, actually.

</comment></comment></comment><comment><USER5> _(Or, how to better organise a discreet relationship with the Director of the CIA.)_ from [https://github.com/agl/pond](https://github.com/agl/pond) (the source) is a good elevator pitch, for people (like me) who are taking their time getting what this is.

also, is code like this [https://github.com/agl/pond/blob/master/server/server.go#L15...](https://github.com/agl/pond/blob/master/server/server.go#L153) just extreme defensive programming? or is there some other reason for the check (eg is not everything locked)?

also, does _2\. A GPA can learn when messages are sent to a non-home server and which server that is._ get weaker if there are many users?

and why is it so quiet here? am i asking dumb questions? i've been deleting the ones i work out answers to!

<comment><USER6> > also, is code like this > [https://github.com/agl/pond/blob/master/server/server.go#L15...](https://github.com/agl/pond/blob/master/server/server.go#L153) > just extreme defensive programming? or is there some other reason for the > check (eg is not everything locked)?

That's checking for integer overflow - an often-overlooked source of many security vulnerabilities.

That's a signed integer though, and I don't know if signed integer overflow has defined behavior in Go. In C that would be undefined behavior, allowing the compiler to do potentially nutty things, so you would want to do the overflow check before the increment. (Edit: considering who the author of this code is, I would assume that Go has sane defined behavior on signed integer overflow ;-)

<comment><USER7> From the Go language spec:

"For signed integers, the operations +, -, *, and << may legally overflow and the resulting value exists and is deterministically defined by the signed integer representation, the operation, and its operands. No exception is raised as a result of overflow. A compiler may not optimize code under the assumption that overflow does not occur. For instance, it may not assume that x < x + 1 is always true."

      func main() {
        var foo int8 = 127
        fmt.Println(foo + 1)
      }

prints -128

<comment><USER6> Cool, thanks for the info!

Looking at the spec, I see that signed integers are elsewhere defined to be represented using 2's complement, so this is completely kosher.

</comment></comment></comment></comment><comment><USER8> > _For secure, synchronous communication we have OTR and, when run over Tor, > this is pretty good. But while we have secure asynchronous messaging in the > form of PGP email, it 's not forward secure and it gratuitously leaks > traffic information._

This is probably a stupid question, but what exactly is the distinction here? Why can't we just think of the "asynchronous messaging" email-equivalent as long, drawn-out synchronous OTR communication?

<comment><USER9> Can you send a message to someone who's currently offline using OTR? It seems to use diffie helman, so I'd expect not.

<comment><USER10> That's an implementation detail. You could pack the handshake into automated email messages handled by a proper client. Obviously this would not work with any old client since you're effectively layering another protocol on top of email.

</comment></comment></comment><comment><USER11> I don't know about you people but I can't access this site in latest firefox:

      Secure Connection Failed

              An error occurred during a connection to pond.imperialviolet.org.

      Peer attempted old style (potentially vulnerable) handshake.

      (Error code: ssl_error_unsafe_negotiation)

      The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
      Please contact the website owners to inform them of this problem. Alternatively, use the command found in the help menu to report this broken site.

<comment><USER6> This is kind of ironic considering it's Adam Langley's website, but it appears his server is not indicating that it supports secure renegotiation, and apparently in the latest Firefox that's grounds to refuse a connection[1]. See:

[https://www.ssllabs.com/ssltest/analyze.html?d=pond.imperial...](https://www.ssllabs.com/ssltest/analyze.html?d=pond.imperialviolet.org)

[https://wiki.mozilla.org/Security:Renegotiation](https://wiki.mozilla.org/Security:Renegotiation)

[https://community.qualys.com/blogs/securitylabs/2010/10/06/d...](https://community.qualys.com/blogs/securitylabs/2010/10/06/disabling- ssl-renegotiation-is-a-crutch-not-a-fix)

If you set security.ssl.require_safe_negotiation to false in about:config you should be able to establish a connection.

[1] Edit: actually it's not; the parent poster had tweaked settings in about:config ;-)

<comment><USER12> Good to know. I knew that I needed to do it, but I'll be sure to add support for this prior to Go 1.2.

(The TLS stack doesn't support renegotiation at all, so it's not vulnerable, but a client can't know that unless it echos the extension in question.)

<comment><USER6> Ah, you're using the Go TLS package? That makes sense ;-).

As it turns out the latest version of Firefox still connects to servers which don't indicate secure renegotiation; the parent poster caused the problem by mucking around with the TLS settings in about:config.

<comment><USER13> Well, it looks like he _wrote_ the Go TLS package.

</comment></comment></comment></comment></comment><comment> mike-cardwell If anyone wants to test this with me, you'll find my contact details in my HN profile and on [https://grepular.com/](https://grepular.com/)

Both of which contain my PGP details. So by sending my your handshake message encrypted with my key, I'll reply with my handshake message encrypted with your key, then we can test.

</comment><comment><USER14> Why the "better relationship" quip? Get some e-mails from the CIA after publishing this?

<comment><USER15> It's probably in reference to David Petraeus's resignation after his affair came to light.

</comment></comment><comment><USER16> I can not forgive Adam he removed the DANE support from Chrome in spite of fact that he was the author of the draft standard [http://datatracker.ietf.org/wg/dane/](http://datatracker.ietf.org/wg/dane/)

<comment><AUTHOR> Why does Langley need your forgiveness for not supporting DANE? DANE is arguably worse than X.509 CAs.

<comment><USER17> Why? Because DNSSEC can be attacked by the DNS root?

It seemed to be our best attempt to get SSL for every website. CA-based certificates just won't cut it.

<comment><AUTHOR> Because replacing a PKI run by companies that the NSA can coerce with a PKI run by the US Government doesn't seem like a good plan? That, along with the litany of reasons why DNSSEC is a terrible design; that it doesn't secure queries from stub resolvers where the need is greatest; that it publishes internal zone names; that it breaks the resolver API and will inevitably create outages; I can go on.

(I doubt this is what's held up DANE; rather, the unreliability of DNS compared to hyper-optimized HTTPS/TLS connections is the issue there; browser vendors care about milliseconds.)

</comment></comment></comment></comment><comment><USER18> I wonder how badly the security of Pond would break if one were to build a pond-email gateway of some sort so that you could use regular imap/smtp clients (and maybe tor).

</comment><comment><USER19> Woah, this is seriously cool stuff. I wonder how far off it is from general readiness?</comment>


Options for clusters of 16+ GB RAM 4+ core hosting? - <AUTHOR>

<comment><USER2> theplanet.com will rent you soemthing like that for USD$1,600 per month, plus bandwidth.

You can also make it yourself and colo it. penguincomputing.com has a line called the Altus 600. It's a 1U machine with two CPU slots and 16 RAM slots. Source the RAM from Crucial or PNY, and you can get a 2 core, 16GB machine for about $3,300 bucks.

[http://www.penguincomputing.com/index.php?option=com_content...](http://www.penguincomputing.com/index.php?option=com_content&id=356&Itemid=526&task=view)

<comment><AUTHOR> Thanks for that -- the Penguin computing 1Us look promising -- 16 slots!

It's cool theplanet has high-end options -- though I recently read an article that gave me the impression they had some serious support problems related to the EV1 merger.

<comment><USER3> In terms of vendors, also check out SiliconMechanics. They're touting the new 2-in-1U chassis from Supermicro that does up to 16 x86 cores in 1U. :-)

If you're in the Bay Area, ASA Computers is very competitive. They're in the south bay and deliver straight to our colo. For hardware support, they even come back to the colo and pull the boxes right off our racks, take them back and fix them, and then return them to our racks.

<comment><AUTHOR> 16 cores in 1U is pretty amazing -- I wonder how long until we look at it like the Altair 8800 ;)

<comment><USER3> :-)

If you're doing Java, Azul Systems does 192 cores in 5U.

<comment><AUTHOR> Very interesting, a specialized processor. 192 cores and 192 GB in 5U and 1000 watts! I wonder how much performance a 5-watt chip gives you.

In 10 years our cell phones will have 192 cores.

</comment></comment></comment></comment></comment></comment><comment><USER3> What do you mean by "clusters"? High-end, low-latency compute clusters (using e.g., Myrinet) or just a rack of machines? Are you doing lots of calculation or lots of data or both? If you have lots of data, what's your storage model? If you're going to have lots of machines, what's your needs for connectivity (NICs, intra-cluster, 'net drops, etc.)?

<comment><AUTHOR> Isn't a Myrinet cluster just a rack of machines with Myrinet cards? I am under the impression that 10gigE with TCP/UDP offload is pretty similar to 10gb Myrinet.

Lots of calculation and data, hence the request for lots of CPU and RAM. Storage is RAM binary-dumped to flat files (snapshots), so standard hard drives are fine. Intra-cluster: preferably 10gigE but multiple 1gigE might work. Net connectivity would probably be okay with 1gigE (total).

I can probably do some lower-end testing on Sun's compute grid, but real-world testing needs real-world hardware. It might seem like overkill at first, but every successful service seems to hit scaling issues sooner than they think!

<comment><USER3> If you need Myrinet for your clusters then you already know why. :-? The main reason for Myrinet, IMHO, is the low latency -- otherwise, it's not worth the money.

8GB RAM seems to be the sweet spot at the moment, price-wise. Similarly, the 500GB SATA drives are a much better deal than the 750+GB drives. Be careful when you spec. the boxes because if you don't specify that you're going to e.g., load them up with additional drives later, the builders will spec them with the smaller/cheapest controller they can.

If all of the data can be handled locally then you definitely don't have a lot of data. :-). To calibrate, we're (krugle.com) pushing around terabytes of data.

If you're pushing a lot of data between nodes, don't underestimate the importance of your network infrastructure and architecture. We're using multiple 1GigE NICs per node into Foundry SuperX's (IIRC, it has a 36Gbps fabric) and 10G crosses. We've got multiple 1Gbps backbone drops into our load balancers / firewalls.

If you're going relatively mainstream on the CPU side, the dual-core Intel Xeons are definitely the choice at the moment. Watch out for the different FSB speeds.

Re: Sun's Grid. They were very aggressively trying to get our business but they aren't really geared for big data and definitely not for big, relatively non-transient data.

Hope this helps, John

<comment><AUTHOR> I've read about Myrinet but never used it; I wasn't sure about the distinction you were making about a compute cluster vs. a rack. As for latency, isn't that only on an empty connection? E.g., if you're sending half the max per-second traffic down the pipe, isn't _any_ new message going to take half a second to arrive? (In which case 5 usec vs. 15 usec on an empty pipe is lost in the noise.)

Sun's grid would just be for automated testing, as a step up from uniprocessor EC2 nodes. I agree on the network infrastructure using multiple 1gig cards or a 10gig. I'm not sure what you mean by "handled locally" -- each node handles _part_ of the data, so collectively it's larger than what any single node can manage.

<comment><USER3> That's why these kinds of discussions are difficult. Not just the usual "it depends" but multiple levels of "it depends". As you say, if you're job mix is keeping a pipe saturated then raw latency is probably not your critical problem. Though, of course, if, for example, you have one pipe for bulk transfer and one for control/meta-data.... :-)

The comment about handling data locally was trying to get to the issue of how much data needs to be going back and for across the cluster rather than just living on the individual nodes. For example, we crawl millions of sites so there's an initial lump of intake data to each of the crawlers. On each crawler, that lump of data will get processed, redacted, expanded, and what not and only the resulting indexes and segments are ever transfered off the crawlers.

<comment><AUTHOR> > Though, of course, if, for example, you have one pipe for bulk transfer and > one for control/meta-data.... :-)

I do, but 15 usec is fast enough for that. :) I generally don't like paying a premium for slightly better performance. Even these rackmount systems are very pricey compared to putting together your own vanilla boxes.

Data bounces from node to node; the main reason to go 10gigE instead of 1gigE is actually for lower latency from the extra room. 100 Mbit of traffic on fast ethernet = 1 sec latency vs 0.1 sec on 1gigE vs. 0.01 sec on 10gigE (not counting overhead of course).</comment></comment></comment></comment></comment></comment>


New version of GHCJS: haskell in the browser - <AUTHOR> http://weblog.luite.com/wordpress/?p=14

<comment><USER2> well you sure know how to give a HN submission the least enticing name possible..</comment>