It is time for a vacation, but flying is expensive and have you seen the news lately? Road trips can be extra fun because you are not dependent on an airport, pilot or plane. You can pack as much as you want and there will be tons of room for souvenirs if you have your own car. But when you plan a driving trip you also should plan a way to make it as fun as possible by making your car experience road trip friendly. For tips on how to do so, see this Spousebuzz post.


On May 1st 2010, Boston's main water supply was hit by a burst main, polluting much of the water and making it unsafe to drink. Bottled water in the city became scarce, and so with Day Against DRM fast approaching, risking having all our computers seized and our homes invaded, we leaked another Apple 'product' — the iQuench (with DRM).
iQuench is not like other water. Most bottled water is sold chilled, and with inspiring labeling. iQuench is sold with a label that lists some bad things about the Apple iPad and other DRM products from Apple and others.
Worse still, iQuench isn't even sold in Apple stores! The people of Boston need this product and Apple doesn't even have the gall to start selling it yet!
All photos by Matt Hines, CC-BY-SA 3.0 or later.


text:
Mixergy
How Pascal Finette overcame the $2.5M failure of his first company
+ Add to
Pascal Finette, Oil on Mars, European Founder, Failure, International Founders
Today's guest is incredibly well-known. His name is Pascal Finette.
He was director of Mozilla Labs. He was Head of Platform Solutions Group at eBay. He was even a portfolio manager at Google.
He's here to talk about his really interesting past. I'm especially curious about the company he launched early in his career that he called, "The dumbest company on the planet."
My team and I were tried to find information about it but couldn't. So Pascal is here to tell us what happened.
Pascal Finette
Oil on Mars
Pascal Finette is a serial entrepreneur.
Full Interview Transcript
Andrew: Hey there, freedom fighters. My name is Andrew Warner. I'm the founder of Mixergy.com, home of the ambitious–and also today I'm perplexed. I've got a guest here with me. His name is Pascal Finette.
He is incredibly well-known. He is the Managing Director of Singularity University. He was director of Mozilla Labs. I'm just looking through your LinkedIn profile here, Pascal. You are perplexing me. You were Head of Platform Solutions Group at eBay. You're really well-known–portfolio manager at Google for like, what, 90 days, you said, something like that?
Pascal: All of 90 days. Yeah.
Andrew: All of 90 days. So, you have a really interesting past. Here's the thing that I'm especially curious about, this company called Oil on Mars that you launched early on your career that you called–what did you call it, "The stupidest idea?"
Pascal: Yeah. Probably.
Andrew: Yeah, "The dumbest company on the planet." So my team and I were trying to find information about this. We have lots of great posts by you and about you lots of praise for you. But Oil on Mars I can't find jack about. This idea came to you in 1997. Where were you in your life in 1997?
Pascal: That's correct. So, I was attending college in Germany studying economy and psychology. The internet boom was happening around me. So, I see all these cool companies come up doing really cool stuff and was like, "Hey, I need to be part of that." As every good entrepreneur who has got a drive, I didn't have an idea.
So, what you would do back in the day was you would start reading Wired and the brand new launched Fast Company scouring for ideas. I come across this incredible company which was called American Greetings. So, they did ecards, electronic greeting cards. They just sold themselves for, I believe at the time, $1 billion US dollars to Excite@Home, which was a web access company.
Andrew: I don't think you're thinking of American Greetings. I think you're thinking–sorry for correcting you–but I think you mean Blue Mountain Arts. Am I right?
Pascal: That's correct. So, Blue Mountain Arts was the first and then American Greetings was the second company.
Andrew: They also sold to Excite?
Pascal: No. They didn't. Sorry. You are right. So, Blue Mountain actually sold to Excite. American Greetings sold to, I believe, AOL or something. Anyway, so, I see lots of like really interesting movement in this thing and I'm like, "Whoa, this is a great idea. I totally can do greeting cards." So, we come up with this amazing idea. The company was originally called DIN A6 and there's a whole different story about that.
Andrew: Wait, what's the story about that? This is a company you raised $2.5 million. All 2.5 million of those beautiful dollars are all gone now, right? So, I want to understand if we lost the money, let's at least get the lesson so that we can avoid those mistakes, right? So, what was the company name that you had?
Pascal: So, the original company name was DIN A6. The backstory of that is that a greeting card in Germany, the legal format–so, similar to in the US, you've got the US letter–but the legal format for a greeting card is DIN A6. It's just the format name. We were like, "That's a great name."
The domain was free. Back in the day, that was actually a thing. You could actually still get domains. So, we got the domain, DINA6.de and we started with that domain. We never did any copyright research. And then low and behold, the German Institute for Normalization, which owns the copyrights for all the DIN labels sent us this really nasty letter saying, "You cannot do this, guys." And this was in the middle of us fundraising. So, I had to go to my investors and say, "Hey, this company thing I do here, it now has a different title." So, basically over a lot of beers, we came up with the glorious name Oil on Mars.
Andrew: I see.
Pascal: Which was pretty random.
Andrew: So, I actually, at the time, I was in the online greeting card business. We called them fun pages. American Greetings at one point wanted to buy us and they gave me such a bad deal. I was in such a bad spot that I said to my brother, "All right. Let's take it." And he sat me down and he said, "Do you understand how bad a deal this is for us?" I said, "Yes, but we get to be bought by American Greetings." And he said, "Listen to me." I had to finally get dissuaded.
So I love the space. I thought there was a lot of room in that space for growth. That's why I remember Blue Mountain Arts and the others. So you had this idea. I think you were on to something. What's the first step that you took to see this idea through?
Pascal: So, what we did was basically–it was literally my original, non-original idea, like a single founder. So, I was like a single person, come up with this great idea. I happened to have pretty good contacts to people who could actually code stuff. Back in the day you wrote stuff in PHP version 2. So, those were the days. So, what we did was we built a business plan. Back in the day, you wrote business plans not pitch decks.
I went to a bunch of investors and basically presented them the business plan. Low and behold–and those were the days–as a single founder with a three-page business plan and some kind of good references from friends of mine who had already founded companies, I managed to raise a pretty significant amount of money back in the day, which was $2.5 million. Yeah.
Andrew: How did you connect with these investors? I had friends, not one of them introduced me to–well, you know what? Someone offered to.
Pascal: There you go.
Andrew: But I didn't follow up on it.
Pascal: For me it was the hustle. I also didn't have people who introduced me to investors. The investor scene in Europe still is fairly small. Back in the day, it was very small. So, you can actually run the list of like, "Here are the 25 people you need to talk to. So, you start hustling. You start emailing them and saying, "Can we meet? I've got this amazing business I need to talk to you about. It's a billion-dollar business. Something in my voice is probably persuasive so that they actually took the call and met with me.
As it typically is, out of 25 meetings, 24 say no. So, I had a lot of no's in the beginning, without question. But you get much better at telling your story because every no is kind of an indicator of, "Hey, this particular piece of the story didn't go well," or when I told them this, their eyes glanced over. So, over time, you get better and better and better.
Andrew: Kind of like a standup comic who goes from club to club and sees which of his jokes lands, adjusts them, tosses them and finds new ones.
Pascal: Totally.
Pascal: That's, by the way, you're first learning, which I think is really important, which is, "Do not go to your best investor first." So, we did this by accident, but we ended up talking to the better investors towards the end of the process. So, yeah, definitely like try out your pitch.
Andrew: Who's "we?" You were a single founder. Who did you take in with you?
Pascal: We were a single founder. As I mentioned, I had a couple of people who were willing to do the tech if I found the money as well as a few people who were like on the business side as well as content creation. As you know, greeting cards is a big piece of content creation. So, I rallied all these people around me and they semi-half kind of lied that they were actually working for me. But it's a typical hustle. You walk into a meeting, you're like, "Hey, here's my team, five people. We are like all super awesome and we're working on this. And then if you give us a check then we will actually work on it full time."
Andrew: All right. And then who gave you the check?
Pascal: A German company, a German investor who came out of private equity, which is your next lesson learned. Do not take money from people who do not know anything about venture. We learned this the hard way.
Andrew: Wow. You would think they were stupid. In every other business, they say, "Take the stupid money because you'll be better off. You've got the advantage." In venture, they say, "Don't take the stupid money." Why? What happened to you that you shouldn't have taken the stupid money?
Pascal: So our situation was very particular. But generally the reason why people don't want you to take the stupid money in venture is because if you take good money, if you take money from really engaged investors, they bring so much more than just the money. They bring their network. They help you with your business, etc. All of that we didn't have. On top of that–and this is the more prevalent piece for us–my company went under when the dotcom bust happened. That's a longer story.
But what happened on the investor side is you end up with investors who are not very savvy. In my case, they made about 20 investments and I was one of the two remaining investments still standing. So, they started freaking out. They were very, very nasty in the end. Understand, they lost 18 investments. So, when we were about to switch off the lights, they got very, very antsy and very unpleasant to deal with.
Andrew: What do you mean? Let's be open here. What happened? How are we ever going to learn if we don't talk openly?
Pascal: Yeah. Granted, take this with a grain of salt. I think this was extreme. These were also different times. What happened to me is they called me in the middle of the night. We tried to sell the company. We actually, in the end, sold the company for a very small amount of money.
But they called me in the middle of the night and said like, "Why aren't you working? Aren't you supposed to work? Your company is going under." They put a lot of pressure on me to sell at a specific price, which was actually, given liquidation preferences we had in the company, so that's another learning you can put on the lessons.
Andrew: You told that to our producer. You told Jeremy, "Liquidation preferences are a bitch." I want to talk you about what happened to you. But this waking you up in the middle of the night–that seems reasonable. Well, I guess you need a little bit of sleep. That's what you're saying. It's not that you weren't working 18-hour days.
Pascal: Yeah. No, no. You work like 14 or 16-hour days. And again, to a certain extent, with hindsight, I understand my investors because they were literally freaking out. But the emotional and psychological pressure they put on me and my team too was just like nasty, and it didn't help anyone. Long story.
Andrew: All right. Before we even get to the end, let's continue with the start. You get your money. Do you remember how excited you were when you first got your $2.5 million?
Pascal: Oh my god. Yes.
Andrew: What happened?
Pascal: You have no idea, the feeling you have when you check your bank account. We were one of the first people to have like online bank accounts. So, you like hit the refresh button on your browser like every 30 minutes and then you see this big amount of money, like more money than you've ever seen in your life in a single line item on your bank account. It's great. It's fantastic. We drank champagne and were very happy.
Andrew: I know how I felt when I saw money in my bank account. I felt like, "Yeah, of course, that's me. That's where I belong." Did you feel that too or did you feel like, "Oh, I just put one over on these people?"
Pascal: I don't think it's one over. It's really not a one over. It's somewhat more of a disbelief, this like, "Holy shit. Someone just gave me $2.5 million for like this crazy idea."
Andrew: That's interesting.
Pascal: Yeah, you've got that. Also there's a sense of responsibility around this, right? You're like, "Okay, so, I've got $2.5 million here. What do I do with the money that makes sense?"
Andrew: Yeah. You know what? I probably should have said this earlier but we should get you more centered on camera. Do you want to tilt your camera down a little bit?
Pascal: Oh, absolutely.
Andrew: There you go. Where are you today?
Pascal: Is this better?
Pascal: I'm actually at Singularity University in our bar area.
Andrew: Okay. In your what area?
Pascal: Bar. We actually drink.
Andrew: Oh, I see. You guys have a bar at Singularity University?
Pascal: Oh yeah.
Andrew: I thought all you brainiacs don't drink. You don't have enough time for that.
Pascal: Yeah, right. There are lots of things you don't know.
Andrew: What else don't I know about what happens at Singularity University?
Pascal: There's little sleep.
Andrew: I see. Do you wake up your guys in the middle of the night and you say, "What are you guys doing sleeping?"
Pascal: Yeah. Exactly. And, "Sell your company." Absolutely.
Andrew: All right. So, you get the money. Now you have your team in place, these people who said they'd work for you if you had money to pay them. You have the money to pay them. What's the first thing that you do?
Pascal: That's a good question. So, I think the first thing we did was we paid a bunch of bills, which I had accumulated on the good faith that I eventually will raise money.
Andrew: Okay. What kind of bills?
Pascal: Anything from about $200,000 worth of servers, which we bought from a hosting company and we needed for our infrastructure to the laptops we were using, which I semi-borrowed from a computer company and told them that I'm going to pay them with 30-day due notice type of thing.
Andrew: You really were a hustler.
Pascal: Oh, yeah. Totally. You have to do what you have to do, right? If you have a conviction, you have to do what you have to do.
Andrew: All right. So, you paid all that. The vision was for what kind of online greeting cards? Were we talking about things that looked very similar to American Greetings and Hallmark? Is that dinging going on for you or is it here in my office?
Pascal: Sorry. What is going on?
Andrew: Do you hear that ding?
Pascal: No. I don't hear a ding.
Andrew: Weird. All right. Okay. Sorry.
Pascal: No. Not at all. So you were asking what kind of greeting cards.
Pascal: So, we started very much similar to the Blue Mountains and the American Greetings but very quickly realized that the market in Germany particularly is different. So, one thing I think we didn't do a very good job on is market research. We basically saw what the Americans were doing and we were like, "That's great. Let's do this too."
It turns out that Germans actually don't send that many greeting cards, like physical greeting cards. So, the whole market needed to be developed. So, we did two things, I think, very right. The first is we determined that the classic greeting cards, the, "Happy Birthday," "Happy Father's Day," or something is actually not that interesting for us. What's much more interesting is what you would call a meme today.
So, we created these cards which had like funny memes before it was really a word on them, like funny picture, kind of weird subtitle on it and then you send them out. That worked really well for a particular audience and we had that on a portal. So, we had a fairly youngish audience between like 14 and 25 or so. And it worked really well and we had an advertising model on top of that. The second thing we realized is that greeting cards were kind of a hot thing at the time, which is the reason why we got into the business.
So, we white labeled. We started white labeling our solutions and actually sold and powered the greeting cards from some of the larger web portals, particularly in Germany. And that was a nice revenue generator, actually.
Andrew: How would they pay you, every time a card was sent?
Pascal: Typically you have something like monthly licensing fees back in the day. So, the SaaS model as we know it today wasn't quite established. So, it wasn't like quite software as a service, but it was called white labeled. So, they'd pay you like five figures, low six figures.
Andrew: Amazon on April 1st, 2015 did this thing where their website looked like it was back from 1999 or something like that. I took a screenshot of it which I have somewhere because it reminded me that one of the tabs on Amazon's website was ecards. It was books, CDs, ecards.
Pascal: So true. Yes.
Andrew: That's how powerful ecards were at the time because they're inherently viral. No one looks at a greeting card and just–well, if you're going to use it, you're going to send it to your friend. You might look at it for yourself, but if you're using it at all, you're sending it to your friend. And if you're sending it to your friend, it's so easy to send it to two or three other friends too because the from line is big enough that you could send it to multiple people at once and there's no postage, unlike regular post office cards. But getting to Amazon and getting to those sites was hard. How did you get to the first company. Do you remember? It's pretty way back.
Pascal: Yeah. Totally. So, you mean how did we get on their sites?
Andrew: Yeah. How did you even get into their office?
Pascal: Yeah. Totally. Again, I think it's literally hustle. We did a lot of stuff where you just look up who's the online producer. Back in the day, a lot of that data was like on their website. People were still–Tiscali, which is a large internet provider out of Italy, had a fairly sizable portal in Germany. They had on their website the name of the person who's like responsible for online ads.
So, you send them emails. You start calling them. You call in favors from like friends of friends of friends. It's a hard sell. I definitely learned the B2B sale where you sit in their offices with their first-generation Apple whatever it was, like PowerBook thing showing them your website and telling them how amazing greeting cards are because they are viral. So, yeah.
Andrew: I finally translated. I found your website. It was OilonMars.com, right?
Pascal: Yeah. That's right.
Andrew: It's kind of tricky because the page itself didn't have any content, but there's a hidden popup that had content. If I looked at that hidden popup on the site, it said home, company, products, partner, press, etc.
I had to translate the homepage from German to English and here's what it says, "Finally, effectively advertise online. You're looking for advertising formats beyond the banner advertising. You want young, innovative target groups, communicate directly and effectively and to avoid wastage, thereby promote credible and interesting nonetheless," this is Google Translate, "Then apply your product online targeting in a fun marketing environment. Take advantage of the electronic greeting cards as your new advertising format on the internet and position your advertising thanks to the strategic partners of Oil on Mars."
Pascal: Isn't that amazing?
Andrew: Yeah. That was the homepage.
Pascal: Totally. Here's the underlying deal. So, this is, by the way, the B2B homepage and then there was a portal which we had for consumers. As I mentioned, most of this stuff was white labeled.
Andrew: What was the portal for consumers? While you give this answer I'll go hunt that down.
Pascal: There was a portal called we called Mango Motion, Mango like the fruit and then Motion like motion.
Andrew: Okay. So, what were you saying about this homepage? What am I not seeing here as a passerby?
Pascal: Yeah. So, here's the interesting thing. The thing we wanted to do is–and that kind of never really took off–but the idea was sponsored ecards. Imagine the possibility. You have an ecard which actually shows some content from, let's say, a car manufacturer or a sports company and people freely share this because they're so excited about the content. It didn't really work out, but that was one of the big ideas we had.
Andrew: I see. All right. It does make sense. Frankly, Hallmark eventually did get to do stuff like that. They would do sponsored greeting cards.
Pascal: Absolutely. There's actually a model here in Europe. I've never seen it in the US. But in Europe at bars you have sponsored cards. When you go to the bathroom, there's like a card rack where you can pull out printed greeting cards which are sponsored by companies, basically. So, we tried to emulate that model. It didn't work out very well.
Andrew: I finally found the site. It says here I could win one of ten original "Scream 3" soundtrack CDs. It's pretty interesting. Here are all the Mango Motion theme channel at a glance. It's hard for me to fully get this. Oh, so you've got some for newborns. You've got some for pregnancy, for baptism, for horoscopes, for invitations to have somebody come over to eat, candlelight dinner, etc. Pretty cool.
All right. So then the best revenue came from partnering up with these bigger customers. The advertising on your site, it seems like that didn't do so well.
Pascal: That's correct. Yeah. Advertising is a hard thing. Back in the day, you had banner advertising. That was basically the way to advertise. Google was just getting started, barely getting started with like their search engine, let alone click-based advertising. So, we tried to establish a new ad format, which is always a bitch. It's really hard to do.
Andrew: Yeah. Why is it really hard to establish a new ad format?
Pascal: So, basically you need to convince people to produce new assets to think about, even think about it–you go to an advertising agency and you say, "Hey, there's this new thing." You need to think about it. They don't want to do this. They sit on a budget and they basically say, "No, I just want to reach an audience. Thank you." So, it's really hard. I think to this day it's very, very hard. I think entrepreneurs–I hear this again and again when I talk to entrepreneurs–they find it very hard if you have something which is new, which is different than what is in the market, it's very hard to sell.
Andrew: All right. Here's something that's not that different from what's in the market. My sponsor is HostGator. And if you guys need hosting for your website, go to HostGator.com/Mixergy. They'll give you 30 percent off.
Pascal, before the interview started I told you that I've been asking past interviewees if they had nothing, none of the connections that you have today and you have incredible connections, none of the reputation you have today, you have incredible reputation, none of the money you have today–I don't know how much money you have–but all you had was a hosting package and you said, "I need to rebuild myself from scratch," what idea would you pursue?
Pascal: Totally. So, I think everybody has something to say and everybody has something interesting to teach. So, I believe if you have a hosting package, put some content up there and start charging for it. This is so easy these days.
Andrew: Content on there and charge for content?
Pascal: Oh yeah. Hell yeah.
Andrew: What kind of content could you charge for?
Pascal: Imagine like an eBook, for example. Courses, email courses.
Andrew: What topic would you pick?
Pascal: For me, entrepreneurship would probably be the only thing I know a thing about.
Andrew: I see, because you know it.
Pascal: Yeah.
Pascal: I think everybody knows something which they can turn into money. Give them a hosting package and they've got their platform. The world is their oyster.
Andrew: It's interesting. You didn't even say, "I would put a blog up and then I would also sell." You're saying no, create content because it doesn't cost that much to put together. It does cost a lot of time. Put it on your webpage and sell it. How would you get people to come onto your site and buy from you, if, again, you had none of the connections and rep that you have today?
Pascal: Well, so, you have tons of like ways to promote yourself these days. There's anything from you can put your stuff up on ProductHunt and Hacker News depending on your audience or Designer News as well as you can create original thought pieces. You can publish on something like medium. All these platforms are open to everyone.
So, as long as you have something interesting to say, I believe you will find an audience. Make no mistake, the audience will typically not come overnight, so it's a little bit of a buildup you have to do. But it's totally doable.
Andrew: You know what? It's kind of interesting that I see ProductHunt is meant for products. I think Ryan Hoover was hoping for nothing but software and new software that nobody had ever experienced before and that's what his goal was with ProdcutHunt.com. But the content people have come up with smart ways to get their content on the site.
What they'll do is they'll take ideas about how to create great landing pages, for example, and they'll turn it into an online course. So, you come to their website and it's nothing but, "Sign up for this course," and when you do you'll get an email every other day with information on how to create your landing page, stuff like that. Really smart idea. Now they're not selling content, they're selling this course and that fits within the format of ProductHunt.
All right. That's a really great idea. And if you don't know anything that you feel authoritatively enough–no, if you don't know anything that you're enough of an authority on, do the research and see what other people have said about it, right? And then put it into an eBook and you can start listing it on sites like ProductHunt, etc. I would even suggest writing blog posts related to it as a way of getting traffic to your site and then somewhere on the page link back to your sales page.
A lot of people overthink it. Yes, if you have a HostGator account, you can create a membership site on there. It's not that tough, but you don't even have to make it that tough. You can even make it simpler than that. Put up a shopping cart or even a PayPal button and HostGator will let you put up a shopping cart really easily. You can put up a PayPal button like that if you would rather do that instead.
And when someone pays you, just send it to them via email from your own personal email–personal touch. You don't have to build out the whole membership site. You can if you want to. HostGator will support it. But you can keep it super simple. That's the way my friend Neil Patel started. All he would do is when you paid, he would just send you email with PDFs of his information on how to improve your marketing.
Keep it simple. Go to HostGator.com/Mixergy. You can do everything we've described right here and you'll get 30 percent off. And frankly, you'll be supporting Mixergy because every time you go to HostGator/Mixergy, the team over there knows that my ads do well and they'll keep sponsoring Mixergy and I'm grateful to them for doing it.
Pascal, how did that feel? Did that feel like I pulled you in too much into the ad?
Pascal: No. That's fine. I'm feeling excited about opening up another hosting package now.
Andrew: Good. You know what? Well, I appreciate you doing that. Actually, here's what I was going to say. I was going to say, "Huh, now HostGator has the managing director of Singularity University in their sponsorship message." The thing is though that I don't know if they'll really fully appreciate it. I think they'll be flattered by it, but all they'll probably care about is, "How are the numbers looking," right? Isn't that the way a company like that should be thinking?
Pascal: Yeah. And granted, I believe the good companies these days are actually caring a little bit more and looking beyond just a number. So, I think they care about their customer. They care about making the customer happy. They do care about which customers they have. And I'm sure HostGator is an amazing company.
Andrew: I do remember when Shopify sponsored me, I asked them, "Why are you guys sponsoring Mixergy? You could get a broader reach on other sites." And the founder said to me, "We don't necessarily want your audience to sign up for a Shopify account. What we want is when people ask them about software for creating a shopping site, they are the people that are respect. We want your audience to just start talking about Shopify and that's why we're paying you." So, that makes sense. Look at how well they've done. That Shopify has been killing it.
Pascal: There you go. All done to you.
Andrew: Yes.
Pascal: Simple.
Andrew: "Liquidation preferences are an ugly thing," you said. Talk a little bit about what that meant for you.
Pascal: Yeah. So, just briefly for everyone to understand, liquidation preference is something a VC, a venture capitalist, puts into his contract to basically say that when you sell your company, the venture capitalist will first recoup his initial money and then there are stipulations that say you have two times or three times or even more liquidation preference, so, if you sell for $10 million, like a 2x liquidation preference–sorry, if you raise $10 million, the investor will first get $20 million back and the rest will be shared.
Pascal: So, in my case, back in the day it was fairly typical that you had steep liquidation preferences in your contract. So, typically a 3x, three times liquidation preference. So, I raised $2.5 million, which means if I sell my company for less than $7.5 million, I don't see a penny. Bad luck, right? So, as we were coming to the end of my company–the reason, by the way, we failed was largely a) because we're idiots, but b) because the market crashed around us.
So, the dotcom bust happened and all our white label customers or a lot of our white label customers either went out of business or called us up and said, "We can't pay your bill anymore. We don't want to pay your bill anymore because we need to cut costs. Greeting cards are not that important to us." So, we shopped around the company because the investors really didn't want to have another bankruptcy in their portfolio. I didn't care, right? It's like my company. I'm like, "Whatever. I will not make money on it anyway."
So, they put a lot of pressure on us to sell the company. We found a buyer for the company who bought the company at the price which was significantly below the $7.5 million. So, you can see the joy I had sitting in the meeting selling my company, the thing I built over three years, like sleepless nights, making not a single penny on the company.
Andrew: Even though they are making money on the company because of their liquidation preferences?
Pascal: Correct.
Andrew: Whoa.
Andrew: So, you actually in this horrible environment where they lost a lot of their portfolio companies, you're actually making them money. They're not happy because it's not enough money but you're getting nothing. That's the big thing.
Pascal: Yeah. Harsh. It's really harsh. But you live and learned. So, I definitely learned a lot in that situation.
Andrew: And you did end up selling the company and they ended up accepting it?
Andrew: How did you find a buyer in that market? That was a really tough market.
Pascal: It was a really tough market. I think the piece we had was we had this portal which had actual users. We had a piece of software which wasn't like totally horrible. And most importantly, for that particular buyer who was in the content industry, we had a few thousand of these greeting cards and a lot of them were animated, etc. So, there's content. This brings us back to your sponsor message, but they wanted to have the content. So, they bought the content, effectively.
Andrew: Who was the company that bought you?
Pascal: A media company, a local media company in Germany.
Andrew: Can you say the name?
Pascal: No.
Andrew: Why not?
Pascal: I'm sorry. It's actually part of the contract.
Andrew: They didn't want anyone to know that they bought this business?
Pascal: Yes.
Andrew: Why is that? Why would a company not want people to know that they bought a business?
Pascal: My investors didn't want to have that be known. The media company didn't care, but my investors were–because again, they had this really bad spout of stuff happening to them that they didn't want that to be known.
Andrew: I wonder why. Why wouldn't they want it to be known? What do you think it is that would keep someone from wanting the world to know?
Pascal: If you are an investor and you're making an amazing exit, you want everyone to know. If you're an investor and you're losing money, you don't want anyone to know. If you're an investor and you're making like a very, very marginal return, you don't want anyone to know. It just is not sexy.
Andrew: Wow. You said something that I wanted to come back. You said, "We failed because we're idiots." It's in the transcript now. You don't seem like an idiot to me. Why do you say that? You've said this now multiple times. It seems like a decent business idea. You seem like a good group of people. You seem like you've done pretty well. Liquidation preferences were not something people knew at the time. So, what makes you say, "We were idiots?"
Pascal: So, I think with hindsight there are a lot of things we did wrong or we could have done significantly better. So, we didn't do proper market research. So, I just assumed that the German market is like the US market in terms of how people will use this product, like greeting cards. So, starting point number one. Starting point number two is we walked into this without a real clue about the business model. It was all about, "Let's build this up quick and fast and get eyeballs onto it."
And then we thought we can take an offline business model, which are these sponsored greeting cards, printed, physical greeting cards and transform it into an online product. That was like the big first idea which totally bombed and failed. Again, in the Lean Startup methodology, we would have tested that out. Instead, we spent all the time to build the product and then understood that it doesn't work and then pivoted into this white label solution.
So, all this and then I was a very young, inexperienced, very arrogant founder. So, arrogant in the sense of like I thought I had all the answers. So, I think I caused a lot of grief for my team by just not being a very good manager, understanding how management actually looks like.
Andrew: Do you remember one bad decision that you had as a manager?
Pascal: One bad decision?
Andrew: Yeah. What did you do that was so bad?
Pascal: Yeah, totally. The biggest thing is–I keep tell this to people today–it's like I fundamentally believe that one of the traits you have as an entrepreneur is that you see opportunity everywhere and you see solutions. Like everything is a problem and you find a solution to it, right? So, you stand in line at the bakery and you have like 15 ideas how you can make that better. Now, the challenge is for you, this is all obvious. You can keep all these pieces in your head. It's really hard for other people to understand this.
If you just spool out those ideas–so, I very regularly walked into my company, did like my Monday company meeting thing and told people like the 15 great ideas I just had over the weekend. Now, the people were like, "Oh yeah, so Pascal wants us to do X, Y and Z, right?" And then by the end of the week, they come to me and say, "Hey, we just built X, Y and Z for you." I'm like, "God, it was just an idea. You shouldn't have built that."
Simple stuff like that, but you learn. It is a painful learning experience. You learn to shut up and to learn to make the main thing the main thing, like figure out what is the main thing and then just relentlessly focus on this.
Andrew: That makes a lot of sense. I guess I've done that too in the past. People do think, "All right, this is where we're going. Let's go get this started right now." And then they feel like you're indecisive when you pull back or they think you're pulling back when you never even went there.
So, I think was it immediately after that you went to run a company that was like eBay in Germany?
Pascal: Yes. Hey, can we take a two-second break? I need to get my Mac plugged in. Something is eating up my battery.
Andrew: GO for it. We can keep the interview going, if you don't mind, that way we'll take a look around your bar as you're looking for power.
Pascal: Let me see if I found a power outlet.
Andrew: By the way, I've been looking to see who acquired your company and I still can't find it. Usually I'm good at this stuff. So, you guys did a really good job of hiding it. I thought at the very least if I did a Whois search on OilonMars.com I'd come up with who owns the site right now. All I can see is Katerina Yager owns the site or runs it.
Pascal: Yeah. That, I believe to this day, is the person–at least at the time she worked for the investor. So, she's basically the legal representation of the investor.
Andrew: Yeah. So they really hid the site. Are you good? Whenever you're ready, we're good to go.
Pascal: Yeah. I'm good now.
Andrew: You might want to angle the camera so that you don't have windows behind you. There you go.
Andrew: Yeah. The less light behind you the better.
Pascal: Perfect.
Andrew: That means that you're standing for the rest of this interview, huh?
Pascal: I will stand. That's fine.
Andrew: All right. So then the next thing that I see on your LinkedIn profile is–Oil on Mars was 1999 to 2002, then 2002-2003 you were Senior Category Manager – Computers and Gaming at eBay. But you didn't just start off with eBay, right? Weren't you working at another company and then that led to eBay?
Pascal: No. So, what happened is eBay Germany–the story of eBay Germany is there was a company called Alando which was basically a copycat of eBay. It was a one-on-one clone of them. Even the letters were like written in the same font, like the bouncy font and the colors. That company was founded by friends of mine.
Andrew: Brothers.
Pascal: Exactly, the Samwer brothers and three other guys who built that company within 90 days and sold it to eBay for $50 million, roughly. So, when I was done with my thing–so, when I was done with Oil on Mars–they called me and said–we go back way long–they basically said, "Listen, do you finally want to work for us, now that you've done your own thing?"
Andrew: The Samwer brothers are notorious for having done this lots of times, for being incredibly successful. How did you know them?
Pascal: So, I went to university with a gentleman called Joerg Rheinboldt. Joerg is a really good friend with one of the younger Samwer brothers. So, that was basically the connection.
Pascal: And York was a cofounder of Alando.
Andrew: I see. And were you close friends with them were you guys were having beer together or you just happened to be in their network?
Pascal: So, with the Samwers, we had beers. I wouldn't say close friends, I think that's stretching it.
Andrew: You didn't date each other's girlfriends or anything.
Pascal: Yeah. We weren't quite as close. But Joerg Rheinboldt is one of my best friends.
Andrew: I see. So, when they come up to you and they say this, "Hey, you ready to come and work with us instead of doing your own thing?" Do you feel a little bit hurt because they were so successful, you tried to be successful and they're almost saying, "You're not an entrepreneur. You need a job. Come work for us?"
Pascal: You know, actually not out of a couple of reasons. First of all, the process of building Oil on Mars taught me that execution really is everything. And execution is incredibly hard. So, I have a very deep respect for people who execute well. That's number one. And then number two is the person who asks me to come to eBay is Joerg and Joerg is the most wonderful human being I know. So, it was just like nice.
Andrew: Okay.
Pascal: Plus eBay at the time was probably the hottest property on the internet. It was just incredibly exciting to be on this rocket ship.
Andrew: And now you basically had to turn eBay into a German company. Here you are trying to do what you wanted to do with the greeting card company, right? Take this thing that was a hit in the US and turn it–so, you did learn something about how to adjust this idea for a foreign market or for you a local market, Germany. What did you learn that allowed you to grow eBay so profoundly?
Pascal: That's a good question. I think eBay is different. EBay had what was called product market fit basically perfectly in Germany. So, the German market is perfect for eBay in the sense of you have an online payment infrastructure which allows you to pay anyone within a day–this is pre-PayPal. It was already in place. You have a very good shipping infrastructure. People are incredibly comfortable buying stuff online, even in like 1999 and 2000. So, it's the perfect storm coming together. So, if there's anything I learned by and large, it's that having product market fit is just unbeatable as a property.
Andrew: You told Jeremy, you said, "I have no idea what we did to grow it. We just didn't screw it up." Do you really feel that way?
Pascal: Yeah. Absolutely. So, here's what happened with eBay. So, eBay Germany, perfect storm–it is growing like crazy. You've got like total hockey stick growth on a very high basis. So, to give you a bit of perspective, eBay Germany became half the size of eBay US in a country which is like a fraction of the size of the US. So, it was a total rocket ship.
So, what happens when you have a rocket ship underneath you is very simple. When we did campaigns, for example, like marketing campaigns or we went to tradeshows or we did email outreach or something, when you look at the data, when you look just at the sales data, are people active, all these key indicators, you cannot see where your difference is because there is so much noise in that data. It's impossible. I can't point to anything. So, in a lot of ways, I don't know if we actually did anything which was helpful. The thing we didn't do is we didn't screw it up. That's easier said than done.
Andrew: How could you have screwed it up if you were going to take the easy way and make a mistake?
Pascal: So, I think one of the things we did very, very well is we understood that a marketplace is kind of like the spiral where sellers go to where most buyers are. Buyers go to where most sellers are and so on. Once that spiral works, you actually come to basically a natural monopoly, which is what eBay did very successful. We were really good at the buyer acquisition side, which was online marketing. So, that's not something I did. But we had an amazing online marketing team.
And then on the seller side, which is the side we represented, we spent a lot of time working with the sellers and doing what's right for them. So, coming back to our earlier point, it's not just the numbers. It's the people. We treated the big sellers on our platform as people. So, we looked out for their interest and we grew an incredible loyal and incredibly successful–
Andrew: What did you do? Do you remember one thing you did in the early days at eBay Germany to make the sellers feel important?
Pascal: Totally. The first thing I did–I came and I said, "Okay, show me the top 50 sellers by revenue." So, you look at the list and I called them one by one. Nobody has ever called them from eBay. So, I pick up the phone. I'm like, "Hey, you're our number one seller. You're making like $1 million of revenue on this platform. How can we make it better for you?" So, just creating this human touch–here's the funny thing. A lot of those sellers are still in contact with you today.
Andrew: With you personally?
Pascal: Yeah, with me personally because over time you build up a relationship.
Andrew: How close are you with one? Do you have any example of one you're especially close with?
Pascal: Totally. A person that lives in Hamburg, which is a coastal town in Germany, invited me to his wedding. So, that's probably as close as you can get with a customer.
Andrew: That is really close.
Andrew: Pascal, what do I make of this resume of yours where it feels like everything you've spent two years in essentially? Are you ready to leave Singularity University? You just started there last year. You should be looking for the next thing.
Pascal: Dude, I've got another year here, two years, not one year.
Andrew: What is the plan behind this? Really, I'm looking at this and I feel like there's a plan. You're not bouncing through life, but it feels like it as an outsider. What is this?
Pascal: Yeah. So, I think the plan for me is–there are two pieces to it. So, the first is I get bored very quickly. When I believe I can't learn anymore, I need to find something else. Granted–and this is important to understand–I don't think it's really the moment when I don't learn anything anymore. I don't think that happens, but when I feel I don't learn any more. So, that's number one, which is driving a lot of my changes, where I get bored and I need to do something else.
The second one is for me, it's important to just follow my hunches. So, the interesting thing about my CV is when I tell you my resume backwards, it all makes sense. "I went from this to this and then I had this amazing opportunity and so on."
When I'm in the moment, it never makes sense. I'm always just following a hunch, right? I go to Google. I have some fun there. I don't like it. I quit on a hunch. I start a nonprofit. I meet the Singularity guys. They tell me I should come to Singularity. I got to Singularity. In hindsight, this all makes perfect sense and I can tell you an amazingly beautifully crafted story.
Andrew: When you were 90 days into Google, you didn't say to yourself, "Look, this is Google. If I leave within 90 days, how is anyone going to trust me in the future?"
Pascal: You know, there are numerous reasons why I left Google. I wasn't just a good fit for them. Google is an amazing company. I love the people there. It was just like it was too big for me and I didn't feel at home there. I had lunch probably like nine weeks or so into my job there and with a friend of mine I share, "Hey, listen, I don't feel like this is working out for me and I'm not sure what to do." We were on the Google campus. He said to me, "Look around. Honestly, for you, this is the lowest common denominator. You will always find a job. Why are you here? You will always find a job somewhere."
Andrew: I see. If you don't love it and you'll always find a job somewhere else, what are you risking by leaving here is what they said to you.
Pascal: Correct. Exactly.
Pascal: The next day, I went to my boss and said, "Listen, this doesn't work out. Let's figure out how we dissolve this in the best possible way."
Andrew: I always admire people that have that kind of confidence that things are just going to work out. What gives you that ability?
Pascal: Stupidity.
Andrew: Is that really it? You just feel like, "I'm too dumb to know." No. There's something there. There's more than that. Matt Mullenweg told me, "I'm a developer. There will always be work for developers with my skill." If WordPress or Automattic hadn't worked out, he'd be able to go ahead and get a job somewhere else in Silicon Valley. But you have some kind of intelligence behind your decision. What is that?
Pascal: So, first of all, I spend a lot of time growing my network because I genuinely love people. So, I believe that–and I put a lot of good stuff into the world. I help a lot of people. So, I know that if the worst happens to me, like I can always pull a few favors and like find a place.
The second thing is something very profound a friend of mine said when I was like 21 or so. We were having coffee and we were talking about–this was during my first startup–we were drinking coffee and I was kind of moaning about something and he said, "You know, the thing between you and me and a few other people in this world is even if we were to serve coffee as the person who did this in the coffee shop, we would do it with so much gusto and so much love and so much passion for it that we would be the best barista around."
And that is true. If I commit to something, I give you everything. So, with that being said, worst case, I get to be like a coffee server and I get to be the best one in the world.
Pascal: That's okay.
Andrew: And is there something that you do that makes you the best at everything? Do you have a process for becoming the best at anything you do?
Pascal: No. I think I think it's just generally like really throwing yourself into it. I'm a very optimistic and positive person and I just believe that there's something interesting to learn everywhere. You give your all. I don't know. It's not that hard for me. I don't do stuff I don't want to do and I love the stuff I do.
Andrew: I have to admit something. I don't know what Singularity University is. I mean, I've looked it up. It's founded by two fantastic people, right? Peter Diamandis–I always mispronounce his name. Did I get it right?
Pascal: Diamandis. Yeah.
Andrew: And Ray Kurzweil.
Andrew: I'm looking at the Wikipedia entry. I've known about this forever, but I don't know what it has to do with technical singularity, which is the idea that–tell me if I'm right about this–that in the near future, computers are going to be so smart that they can actually learn to self-improve and be as smart as humans. Is that the way to express singularity?
Pascal: Yeah. That is the technology singularity. Yes.
Andrew: And so I thought what they did was they put together a university where they were going to study this and help bring this force about faster. But no. And it's not even a university.
Pascal: No. It's not. Correct.
Andrew: So, what is it?
Pascal: So, we are neither a university nor are we about the technical singularity. I think that's a pretty weird misnomer. So, Singularity University is a very simple thing. We are a benefit corporation. We have a mission statement which states that we want to inspire, educate and empower leaders to apply exponential technologies to solve humanity's grand challenges.
So, if you take this apart, what we're doing is we teach. So, we run a whole bunch of different educational programs as well as we empower. So, we run like startup accelerators and corporate programs to bring to the world the understanding of what is called exponentially accelerating technologies.
So, there is a set of technologies in the world which are similar to Moore's law on this exponential growth curve. So, Moore's law stipulates that computers get twice as fast every two years. We see this happening in many other industries–so, synthetic biology, nanotechnology, artificial intelligence, robotics, autonomous cars, drones, yada, yada, yada.
So, we teach frameworks around this as well as we go very deep into the individual tracks. We talk about AI. We talk about robotics, etc. We do this not just for the sake of the technology, but we do it because we believe that humanity faces grand challenges, like water, food supply, safety, education, etc. And we believe that technology is a vector to solve those. So, we want to teach people these technologies. We want to inspire them to think big and we want to inspire them to tackle these problems.
Andrew: And you do teach them that in addition to having essentially an incubator where you fund them and help bring this about.
Pascal: That's right.
Andrew: Let's go back to that Wikipedia page. And you also have a think tank where you sit and you think about how this future could come about.
Pascal: You should come. It's an amazing program.
Andrew: I should.
Pascal: It truly is.
Andrew: You know what? Where are you guys located?
Pascal: Mountain View, in the center of Silicon Valley.
Andrew: So, if I came in and visited for the day, can I just pop in and what do I see if I come in there?
Pascal: So, it depends if we have a program running or not. So, about two thirds of the time there's a program running. So, I can take you into the classroom and you can actually see leading experts in the world talk about their special field. So, for example, Brad Templeton, the guy who co-invented the self-driving car at Google talk about autonomous cars. We had an astronaut from NASA talk about space science. So, you see that–
Andrew: Within curriculum? So, it's one class within–
Pascal: And we run classes. Like we run, for example, executive programs which are weeklong programs. We run shorter programs. We run longer programs. And then on the doing side, on the startup accelerator side, you can come into my building where we host startups who are doing anything from robotics to synthetic biology to medical devices to you name it.
Andrew: Right. I might take you up on that and I'll tell you why. Yesterday I was sitting at Stanford University and the reason I did that is because I've been feeling a little bit stuck and blah in the office here. So, I don't book anything on Mondays and Fridays and if by the time Monday or Friday comes around and I actually manage not to book anything, then I take a laptop and I go sit somewhere inspiring. I like to go to go Napa and I set and I work from there.
I said, "Why don't I go to Stanford University?" I went there. It was a great place to sit. I think more creatively when I'm in these more interesting environments. So, it feels like it would be worthwhile to pop in there, especially if you're in Mountain View, which is a lot sunnier than where I live and I get to see smart people work.
Pascal: Yeah. Absolutely. Swing by.
Andrew: All right. Pascal, if people want to connect with you, I don't recommend that they go to SingularityU.org. But I recommend they go check out–where's that Heretic Newsletter that you write? What's the URL on that?
Pascal: The URL is TheHeretic.org. It's a semi-daily newsletter about entrepreneurship which I started, I think now three years ago. It has nearly 800 posts or something. So, a lot of back archive. And it's fun. It's a great community, by the way. The thing I like most about it, it's not like me shouting into the void, but it's a really cool community of people.
Andrew: How do you keep the community going if it's a mailing list, essentially, or you writing posts?
Pascal: Yeah. So, the funny thing, there's a Facebook group around this. But the other piece, I encourage people to just hit reply in their browser or in their email program, actually. So, there's a really cool dialogue going on between the readers of The Heretic and me.
Andrew: All right. TheHeretic.me, right?
Pascal: .Org or .me. Yes. The original one was .me and then I moved it to .org.
Andrew: Oh I see. It redirects to .org. Got it.
Pascal: I got a better hosting package, HostGator.
Andrew: Cool. Thank you so much for doing this. I'm looking forward to seeing you in person. I appreciate you doing this interview.
Pascal: Yeah. Absolutely. Let me know when you want to come. You literally have a standing offer to just swing by.
Andrew: It looks like you check your email. So, I'll shoot you an email and I appreciate that. If you guys like this interview and want more, subscribe to Mixergy. I'm trying something new. All you have to do is click on my nose in whatever app you're using to listen to my podcast. As you scroll you'll see a way to subscribe to the podcast for free, a way to rate it if you like it and a way to read a little bit more about Pascal. We're constantly experimenting with it. So, give us feedback and watch it just as you do.
Thank you all for being a part of Mixergy. Pascal, thank you for being on here.
Pascal: Thank you so much.
Andrew: Bye, everyone.
Expand to view full transcript Collapse to smaller transcript view
This interview's sponsor
HostGator is your one-stop shop for all things web hosting. From design and marketing services to easy-to-use website builders, they are with you every step of the way. Thanks to their 24/7 – 365 days a year live support – which you can get via chat, phone and email – any and all questions you have can be answered in no time at all.
HostGator offers unlimited disk space and bandwidth, an easy to use control panel, one click WordPress installs and more.
Alvaro Oliveira
Master class course
How to build a location independent team
Yoav Kutner
Magento founder Yoav Kutner on open-source products
Alex Fleetwood
Sensible Object
How does a founder driven by creativity build a profitable company?
Jane Smorodnikova
Welltory
How stress affects a founder's performance
Carl Taylor
Automation Agency
How to run a done-for-you service company without going crazy
Bushra Azhar
The Persuasion Revolution
How to persuade potential customers into becoming customers
SaaS (Software as a Service)
Women Founders
Using Tech to Sell Physical Products
Getting Traffic
Getting Paying Customers
Getting Systemized
Brand (Branding)
Selling 1-on-1
Non-Tech
Who should we feature on Mixergy? Let us know who you think would make a great interviewee.
Suggest An Interview
See past sponsors
© Mixergy 2023
Mixergy is a mission.
Thanks for liking this post. If you're a premium member, you can save your likes. Login or become a premium member.
Where should I email this interview?
Please enter your first name to continue Please enter your email address to continue
I hate SPAM and promise to keep your email address safe. --Andrew Warner

redpajama_set_name: RedPajamaCommonCrawl


A new gospel song titled: Uwaoma by Positive Nnamdi, popularly known as Positive Praise just released. The gospel song is produced by Ebenezer Iriemi. AKA Mr Reims.
The title is derived from the combination of two Igbo word, Uwa and Oma which means Fine World.
Download and enjoy Uwaoma by Ambassador, Evangelist Positive Praise. This is an encouraging song, which will keep you motivated and fearless.
The song titled "Mmeri" is produced by Dtonz studio, located at number 58 Oko road Ekwulobia Anambra State. It features Dtonz and fast rising music artistes XRock and Ofemist.
"Mmeri" is an Igbo dialect translated to the English word Victory. Mmeri is an uplifting and encouraging song. It reminds all hustlers to steadfast, for their victory is at hand.
The lyrics of the 2nd verse may interest you most: "...If there is life there is hope..." To remain inspired, just download and enjoy!
DOWNLOAD MMERI by Dtonz ft XRock More hits are coming from Dtonz. Call 07035120551 for bookings and reservations.
Miss Umuchieze 2019, 2nd edition is around the corner. But this time, as the Face of Umuchieze.
Miss-Umuchieze is a beauty pageant designed to bring together the youths of Umuchieze. As a great kingdom, Umuchieze is located in Umunnechi Locall Government of Abia state.
2018 version was sponsored by The CEO U-money Entertainment.2018 version of this beauty pageant was held at Uru Lokpaukwu Community Hall.7 Models were chosen out of 200 who applied.These models received amazing gifts and honoraries. And guess what?The 2019 version will be will be bigger.
Forms will be available any moment from now, just keep an eye, we'll keep you updated. If you would like to know more about the 2018 version of this event, please watch the video bellow.
Miss Ginika Patrick popularly known as Gina Patrick hails from Udenu Local Government Area, Enugu state Nigeria.
Yul Edochie Ebere OkaroRita Edochie And so many so many other actors.She's did an advertisement for Society For Family Happiness in 2010. And later, a comedy skit with Kingzcomedy. Gina Patrick was featured in Return of Anambra Woman, Blind Paul, Death Sentence, Agony of a Wife, Zezani, Adanike, Iwe, Blind Argument, Tell of Four Kingsmen, and several other Nigerian movies.
Apart from being an entertainer, Gina also loves to travel. She believes that travelling isn't just fun, but also a form of education.


We love a quick easy recipe that you can quickly pull together before rushing out the door for the day ahead. Granny Blossom's recipe for Smokey Apple BBQ Sauce Pulled Pork is guaranteed to be a new family favorite. This recipe consists of 3 ingredients. So easy and delicious!
The slow cooker is a great way to cook on those hot summer days when you don't want to turn on the oven or even stand over the grill. The low slow cooking of the pork ensures that you will have mouth watering tender and delicious pork when you come home for dinner. We recommend taking your JK Adams cutting board and laying out the sandwich rolls, putting out a bowl of coleslaw and Vermont sharp cheddar and allowing everyone to build their own pulled pork sandwich. Enjoy!
Recipe Courtesy of Granny Blossom's of Vermont.
Place meat and 1/2 jar of sauce, and 1 cup of water or apple cider in slow cooker.
Remove Pork Shoulder from slow cooker and put on your JK Adams Carving Board.
Take two forks and pull the pork into smaller pieces of meat.
Place meat back into the sauce in the slow cooker. Add additional Smokey Apple BBQ Sauce to thicken sauce if needed.
Serve with buns, coleslaw and cheese.
Let everyone make their own unique pulled pork sandwich.


Offshore drilling contractor Frigstad Offshore has decided to exit from an investment in Frigstad Deepwater's newbuilds to position itself for the industry recovery, the company said on Tuesday.
Frigstad Deepwater Holding Ltd, a subsidiary of Frigstad Offshore Group, has decided to sell all of its shares in Frigstad Deepwater Ltd to a subsidiary of China International Maritime Containers Group (CIMC) with effect from December 6, 2016.
Frigstad Deepwater Ltd, which has been jointly owned by Frigstad Offshore Group and CIMC since 2012, has two 7th generation ultra deepwater drilling units of the Frigstad D90 design under construction at the Yantai CIMC Raffles shipyard in Shandong, China. The units, Frigstad Shekou and Frigstad Kristiansand, are scheduled for delivery in 1Q 2017 and 3Q 2017, respectively.
As a consequence of Frigstad Offshore's exit, Frigstad Deepwater will become a wholly owned subsidiary of CIMC and be renamed "CIMC Bluewhale Rig Ltd". The operational management of the rigs will be taken over by Bluewhale Offshore Pte Ltd, also a subsidiary of CIMC, and the rigs will be renamed Bluewhale I and Bluewhale II. A team from Frigstad Offshore, the current manager of the rigs, will continue to supervise the construction of the two rigs until completion, the company said.
Harald Frigstad, Chairman and founder of the Frigstad Group, says in a comment: "The ultra deepwater market has been extremely challenging for a while and we have agreed with CIMC that it is in the best interests of both parties that our group exit from the investment in Frigstad Deepwater Ltd at this moment. We are doing this on friendly terms and will remain a close partner of CIMC also in the future. Our exit from Frigstad Deepwater Ltd gives us a good foundation to position the Frigstad Group for the industry recovery which we believe will come.
Posted on December 6, 2016 with tags Frigstad Offshore.


text:
Angelo Bertelli
(1921-06-18)June 18, 1921
West Springfield, Massachusetts
June 26, 1999(1999-06-26) (aged 78)
Clifton, New Jersey
Springfield (MA) Cathedral
Notre Dame
NFL Draft:
1944 / Round: 1 / Pick: 1
Los Angeles Dons (1946)
Chicago Rockets (1947–1948)
National champion (1943)
Heisman Trophy (1943)
Sporting News Player of the Year (1943)
Consensus All-American (1943)
Career NFL statistics
TD–INT:
Yards:
Passer rating:
Player stats at NFL.com
College Football Hall of Fame
Angelo Bortolo Bertelli (June 18, 1921 – June 26, 1999) was an American football player. He won the Heisman Trophy in 1943 playing as a quarterback for the Notre Dame Fighting Irish.
2 College career
3 Military service
4 Professional career
5 Death and family
Bertelli was born in West Springfield, Massachusetts, on June 18, 1921, to Italian immigrant parents. At Cathedral High School in Springfield, he won all-state honors in football, baseball, and hockey, and was senior class president.
When Bertelli entered Notre Dame in 1940, he was 6 feet 1 inch and 173 pounds, a skinny but highly regarded tailback in the single-wing formation used by most college teams. When Coach Elmer Layden left to become commissioner of the National Football League, Notre Dame's new coach, Frank Leahy, immediately noticed Bertelli's passing talents.
As a sophomore, Bertelli, still a single-wing tailback, led the nation with a 56.9 percent passing average, completing 70 of 123 attempts. In 1942, Leahy switched to a modified T-formation, in which Bertelli would play under the center and take every snap. As he told his budding star, "Bert, you're the finest passer and the worst runner I've ever coached." That summer, preparing for his new role, Bertelli said he took "a thousand snaps...maybe a million." Bertelli and the T-formation were an immediate success. He passed for 1,039 yards and 10 touchdowns. Celebrated sportswriter Grantland Rice referenced Bertelli as "the T-formation magician."
During his senior year in 1943, the Marine Corps activated Bertelli after six games of Notre Dame's 10-game season. In the six games Bertelli started in, he threw 36 passes, completing 25 with 10 touchdowns. Bertelli's six-game 1943 performance was enough to win the Heisman Trophy earning 648 votes. During Bertelli's three seasons, Notre Dame lost only three games. In 1943, Notre Dame won 43 to 5 on average.
Bertelli's collegiate career earned him multiple awards. He was named to the 1942 and 1943 All-American teams. In the Heisman voting for America's outstanding college football player, Bertelli finished second in 1941 and sixth in 1942 before capturing the trophy in 1943. Though on active duty with the Marine Corps, the Boston Yanks selected Bertelli as their number one draft choice in 1944. Bertelli was later inducted to the College Football Hall of Fame in 1972
While at Notre Dame, Bertelli enlisted in the Marine Corps Reserves in 1942 prior to his activation to active duty in the fall of 1943. In 1944, Bertelli was promoted to the rank of second lieutenant, where he served as an infantry and recreation officer. After stops at Quantico, Camp Lejeune and Camp Pendleton, Bertelli embarked to participate in combat operations in the Pacific. After arriving from Guam in February 1945, Bertelli fought in the Battle of Iwo Jima and was nearly killed when a Japanese mortar shell landed 15 feet away from his position. Bertelli returned to Guam in March and served in Sasebo, Japan, before returning to the states in March 1946. After World War II, Bertelli entered the Marine Corps Reserves where he was promoted to the rank of captain and served until 1957.
In 1946, Bertelli signed with the Los Angeles Dons of the All-America Football Conference. Bertelli played for the Chicago Rockets between 1947 and 1948. After several knee surgeries, he retired prior to the 1949 season. After his retirement from professional football, Bertelli moved to Clifton, New Jersey, and operated several businesses. He was the color analyst for the Princeton University football games broadcast on radio station WVNJ, 620 AM and 100.3 FM in the 1950s and 60s.
Death and family
On June 26, 1999, Angelo Bertelli died at the age of 78 after a losing battle with brain cancer. He was buried in Immaculate Conception Cemetery, Montclair.[1] He is survived by his wife, the former Gilda Passerini and four children. Bertelli is the father of Robert Bertelli, better known as Bob Bert, a musician who played in Sonic Youth and other bands.
^ "Sometimes the Grave Is a Fine and Public Place". The New York Times. March 28, 2004. Some New Jersey cemeteries almost seem to specialize. At Immaculate Conception Cemetery in Upper Montclair are the graves of four star athletes. Angelo Bertelli, the Notre Dame quarterback who won the 1943 Heisman Trophy, is there. So is Mule Haas, who played outfield in three consecutive World Series for the Philadelphia Athletics. Big Ed Reulbach, who pitched in the Chicago Cubs' last World Series victory in 1908, is there, too, as is Bob Hooper, who pitched for three major league teams in the 1950s.
Angelo Bertelli at the College Football Hall of Fame
Angelo Bertelli at the Heisman Trophy official website
Career statistics and player information from NFL.com · Pro-Football-Reference
Angelo Bertelli at Find a Grave
Biography portal
World War II portal
Notre Dame Fighting Irish starting quarterbacks
Cartier (1887)
Cusack (1888)
E. Coady (1888–1889)
P. Coady (1892)
Zeitler (1893)
Dinkel (1894)
Walsh (1895)
Hering (1896)
Waters (1897)
Fleming (1898)
McDonald (1899)
Diebold (1900)
McGlew (1901–1902)
Silver (1903–1905)
Coad (1904)
Bracken (1906)
Ryan (1907)
Hamilton (1908–1909)
Dorais (1910–1913)
Bergman (1914)
Phelan (1915–1917)
Allison (1917)
Mohn (1918)
Bahan (1919)
Brandy (1920)
Thomas (1922)
Stuhldreher (1922–1924)
Edwards (1924–1926)
Cullen (1925)
Riley (1926–1927)
Brady (1927–1928)
Carideo (1928–1930)
Jaskwhich (1931–1932)
Bonar (1933–1934)
Fromhart (1934–1935)
Puplis (1936–1937)
Sitko (1938–1939)
Hargrave (1940)
Wright (1941)
Bertelli (1941–1943)
Lujack (1943, 1946–1947)
Dancewicz (1944–1945)
Tripucka (1948)
B. Williams (1949–1950)
Mazur (1950–1951)
Guglielmi (1951–1954)
Carey (1952, 1954)
Hornung (1955–1956)
R. Williams (1956–1958)
Izo (1958–1959)
Haffner (1960)
Lamonica (1960–1962)
Budka (1961, 1963)
Szot (1962–1963)
Huarte (1963–1964)
Bonvechio (1963)
Zloch (1965)
Schoen (1965)
Hanratty (1966–1968)
O'Brien (1966)
Theismann (1968–1970)
Steenberge (1971)
Etter (1971)
Brown (1971)
Clements (1972–1974)
Slager (1975–1976)
Montana (1975, 1977–1978)
Lisch (1976–1977, 1979)
Koegel (1979, 1981)
Courey (1979–1980)
Kiel (1980–1983)
Karcher (1982)
O'Hara (1982)
Beuerlein (1983–1986)
Grooms (1984)
Andrysiak (1985–1987)
Rice (1987–1989)
Graham (1987)
Mirer (1990–1992)
Failla (1991, 1993)
McDougal (1993)
Powlus (1994–1997)
Krug (1995)
Jackson (1998–1999)
Chappell (1998)
Battle (2000)
Godsey (2000)
LoVecchio (2000–2001)
Holiday (2001–2003)
Dillingham (2002)
Quinn (2003–2006)
Jones (2007)
Clausen (2007–2009)
Sharpley (2007)
Crist (2010–2011)
Rees (2010–2013)
Golson (2012, 2014)
Zaire (2014–2015)
Kizer (2015–2016)
Wimbush (2017–2018)
Book (2017–2019)
Angelo Bertelli—championships, awards, and honors
1943 Notre Dame Fighting Irish football—AP national champions
John Adams
Elmer Angsman
Pete Berezney
Angelo Bertelli
Herb Coleman
Zygmont Czarobski
Frank Dancewicz
Pat Filley
Gerard Ford
Bob Kelly
Ray Kuffel
Vic Kulbitski
Johnny Lujack
Chick Maggioli
Ed Mieszkowski
Creighton Miller
Steve Nemeth
Jules Rykovich
Joe Signaigo
Art Statuto
George Sullivan
Frank Szymanski
George Terlep
Mike Todorovich
Gasper Urban
Jim White
John Yonakor
Jack Zilly
Head coach: Frank Leahy
Assistant coaches: Hugh Devore
Moose Krause
Edward McKeever
Heisman Trophy winners
1935: Berwanger
1936: Kelley
1938: O'Brien
1939: Kinnick
1940: Harmon
1941: B. Smith
1942: Sinkwich
1943: Bertelli
1944: Horvath
1945: Blanchard
1946: G. Davis
1947: Lujack
1948: D. Walker
1949: Hart
1950: Janowicz
1951: Kazmaier
1952: Vessels
1953: Lattner
1954: Ameche
1955: Cassady
1956: Hornung
1957: Crow
1958: Dawkins
1959: Cannon
1960: Bellino
1961: E. Davis
1962: Baker
1963: Staubach
1964: Huarte
1965: Garrett
1966: Spurrier
1967: Beban
1968: Simpson
1969: Owens
1970: Plunkett
1971: Sullivan
1972: Rodgers
1973: Cappelletti
1974: A. Griffin
1976: Dorsett
1977: Campbell
1978: Sims
1979: C. White
1980: Rogers
1981: Allen
1982: H. Walker
1983: Rozier
1984: Flutie
1985: B. Jackson
1986: Testaverde
1987: Brown
1989: Ware
1990: Detmer
1991: Howard
1992: Torretta
1993: Ward
1994: Salaam
1995: George
1996: Wuerffel
1997: Woodson
1999: Dayne
2000: Weinke
2001: Crouch
2002: Palmer
2003: J. White
2004: Leinart
2005: vacated *
2006: T. Smith
2007: Tebow
2009: Ingram
2010: Newton
2011: R. Griffin
2012: Manziel
2013: Winston
2014: Mariota
2015: Henry
2016: L. Jackson
2017: Mayfield
2018: Murray
2019: Burrow
*Note: The 2005 Heisman Trophy was originally awarded to Reggie Bush, but Bush forfeited the award in 2010. The Heisman Trust subsequently decided to leave the 2005 award vacated.
Sporting News College Football Player of the Year winners
1956: McDonald
1961: Ferguson
1964: Butkus
1965: Anderson & Grabowski
1971: Sullivan & Marinaro
1972: B. Jones
1973: Hicks
1980: Green
1989: Hagen
1990: Ismail
1992: M. Jones
1995: Frazier
2004: A. Smith
2005: Bush
2008: Harrell, Bradford & McCoy
2018: Tagovailoa
1943 College Football All-America Team consensus selections
Backfield
QB Angelo Bertelli
HB Bill Daley
HB Creighton Miller
HB Bob Odell
E Ralph Heywood
E John Yonakor
T Jim White
T Don Whitmire
G Alex Agase
G Pat Filley
C Cas Myslinski
1944 NFL draft first-round selections
Pat Harder
Otto Graham
Steve Van Buren
Billy Hillenbrand
Merv Pregulman
Mike Micka
Ray Evans
Johnny Podesto
Tony Butkovich
National Football League Draft number one overall picks
Berwanger
C. Davis
Cafego
Sinkwich
Dancewicz
Bednarik
B. Garrett
Hornung
E. Davis
Bu. Smith
Plunkett
Patulski
Bartkowski
Selmon
Cousineau
B. Sims
K. Sims
Elway
Fryar
Br. Smith
Testaverde
Emtman
P. Manning
E. Manning
A. Smith
M. Garrett


What is space? It isn't a question that most of us normally ask. Space is the venue of physics; it's where things exist, where they move and take shape. Yet over the past few decades, physicists have discovered a phenomenon that operates outside the confines of space and time: nonlocality-the ability of two particles to act in harmony no matter how far apart they may be. It appears to be almost magical. Einstein grappled with this oddity and couldn't come to terms with it, describing it as "spooky action at a distance." More recently, the mystery has deepened as other forms of nonlocality have been uncovered. This strange occurrence, which has direct connections to black holes, particle collisions, and even the workings of gravity, holds the potential to undermine our most basic understandings of physical reality. If space isn't what we thought it was, then what is it?
In Spooky Action at a Distance, George Musser sets out to answer that question, offering a provocative exploration of nonlocality and a celebration of the scientists who are trying to explain it. Musser guides us on an epic journey into the lives of experimental physicists observing particles acting in tandem, astronomers finding galaxies that look statistically identical, and cosmologists hoping to unravel the paradoxes surrounding the big bang. He traces the often contentious debates over nonlocality through major discoveries and disruptions of the twentieth century and shows how scientists faced with the same undisputed experimental evidence develop wildly different explanations for that evidence. Their conclusions challenge our understanding of not only space and time but also the origins of the universe-and they suggest a new grand unified theory of physics. Delightfully readable, Spooky Action at a Distance is a mind-bending voyage to the frontiers of modern physics that will change the way we think about reality.
In this accessible and imaginative book, science journalist Musser (The Complete Idiot's Guide to String Theory) introduces readers to the "mother of all physics riddles": nonlocality the weird entanglement between particles in different places, which could help scientists better understand black holes, unified field theories, and other phenomena. Experimental evidence has long suggested that distant particles could indeed be connected, but in the early 20th century, many theoretical physicists thought that accepting nonlocality was like using magic to explain physics. Einstein held that it violates his theory of relativity, calling it "spooky action at a distance." Nearly a century later, there's still no good explanation for how nonlocality works. Musser explores nonlocality's possible role in black holes and wormholes, quantum teleportation, cosmic background radiation left over from the Big Bang, and even the existence of free will. Along the way, he introduces some of the scientists who have worked on nonlocality, including black hole expert Charles Misner, cosmologist Steve Giddings, and physicist John Stewart Bell, whose groundbreaking eponymous theorem makes nonlocality an "unavoidable" aspect of the universe. Clarity and humor illuminate Musser's writing, and he adroitly captures the excitement and frustration involved in investigating the mysteries of our universe. Illus. Agency: Susan Rabiner Literary Agency.


text:
package com.facebook.buck.apple.project_generator;

import com.facebook.buck.apple.SchemeActionType;
import com.facebook.buck.apple.xcode.XCScheme;
import com.facebook.buck.apple.xcode.xcodeproj.PBXTarget;
import com.facebook.buck.io.MorePaths;
import com.facebook.buck.io.ProjectFilesystem;
import com.facebook.buck.log.Logger;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Charsets;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;

import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Path;
import java.util.EnumSet;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

/**
 * Collects target references and generates an xcscheme.
 *
 * To register entries in the scheme, clients must add:
 *

 *
associations between buck targets and Xcode targets

 *
associations between Xcode targets and the projects that contain them

 *

 *

 * Both of these values can be pulled out of {@link ProjectGenerator}.
 */
class SchemeGenerator {
  private static final Logger LOG = Logger.get(SchemeGenerator.class);

  private final ProjectFilesystem projectFilesystem;
  private final Optional<PBXTarget> primaryTarget;
  private final ImmutableSet<PBXTarget> orderedBuildTargets;
  private final ImmutableSet<PBXTarget> orderedBuildTestTargets;
  private final ImmutableSet<PBXTarget> orderedRunTestTargets;
  private final String schemeName;
  private final Path outputDirectory;
  private final boolean primaryTargetIsBuildWithBuck;
  private final boolean parallelizeBuild;
  private final Optional<String> runnablePath;
  private final Optional<String> remoteRunnablePath;
  private final ImmutableMap<SchemeActionType, String> actionConfigNames;
  private final ImmutableMap<PBXTarget, Path> targetToProjectPathMap;
  private Optional<XCScheme> outputScheme = Optional.absent();
  private final XCScheme.LaunchAction.LaunchStyle launchStyle;

  public SchemeGenerator(
      ProjectFilesystem projectFilesystem,
      Optional<PBXTarget> primaryTarget,
      Iterable<PBXTarget> orderedBuildTargets,
      Iterable<PBXTarget> orderedBuildTestTargets,
      Iterable<PBXTarget> orderedRunTestTargets,
      String schemeName,
      Path outputDirectory,
      boolean primaryTargetIsBuildWithBuck,
      boolean parallelizeBuild,
      Optional<String> runnablePath,
      Optional<String> remoteRunnablePath,
      Map<SchemeActionType, String> actionConfigNames,
      Map<PBXTarget, Path> targetToProjectPathMap,
      XCScheme.LaunchAction.LaunchStyle launchStyle) {
    this.projectFilesystem = projectFilesystem;
    this.primaryTarget = primaryTarget;
    this.launchStyle = launchStyle;
    this.orderedBuildTargets = ImmutableSet.copyOf(orderedBuildTargets);
    this.orderedBuildTestTargets = ImmutableSet.copyOf(orderedBuildTestTargets);
    this.orderedRunTestTargets = ImmutableSet.copyOf(orderedRunTestTargets);
    this.schemeName = schemeName;
    this.outputDirectory = outputDirectory;
    this.primaryTargetIsBuildWithBuck = primaryTargetIsBuildWithBuck;
    this.parallelizeBuild = parallelizeBuild;
    this.runnablePath = runnablePath;
    this.remoteRunnablePath = remoteRunnablePath;
    this.actionConfigNames = ImmutableMap.copyOf(actionConfigNames);
    this.targetToProjectPathMap = ImmutableMap.copyOf(targetToProjectPathMap);

    LOG.debug(
        "Generating scheme with build targets %s, test build targets %s, test bundle targets %s",
        orderedBuildTargets,
        orderedBuildTestTargets,
        orderedRunTestTargets);
  }

  @VisibleForTesting
  Optional<XCScheme> getOutputScheme() {
    return outputScheme;
  }

  public Path writeScheme() throws IOException {
    Map<PBXTarget, XCScheme.BuildableReference>
        buildTargetToBuildableReferenceMap = Maps.newHashMap();

    for (PBXTarget target : Iterables.concat(orderedBuildTargets, orderedBuildTestTargets)) {
      String blueprintName = target.getProductName();
      if (blueprintName == null) {
        blueprintName = target.getName();
      }
      Path outputPath = outputDirectory.getParent();
      String buildableReferencePath;
      Path projectPath = Preconditions.checkNotNull(targetToProjectPathMap.get(target));
      if (outputPath == null) {
        //Root directory project
        buildableReferencePath = projectPath.toString();
      } else {
        buildableReferencePath = outputPath.relativize(projectPath).toString();
      }

      XCScheme.BuildableReference buildableReference = new XCScheme.BuildableReference(
          buildableReferencePath,
          Preconditions.checkNotNull(target.getGlobalID()),
          target.getProductReference() != null
              ? target.getProductReference().getName()
              : Preconditions.checkNotNull(target.getProductName()),
          blueprintName);
      buildTargetToBuildableReferenceMap.put(target , buildableReference);
    }

    XCScheme.BuildAction buildAction = new XCScheme.BuildAction(parallelizeBuild);

    // For aesthetic reasons put all non-test build actions before all test build actions.
    for (PBXTarget target : orderedBuildTargets) {
      addBuildActionForBuildTarget(
          buildTargetToBuildableReferenceMap.get(target),
          !primaryTargetIsBuildWithBuck ||
              !primaryTarget.isPresent() ||
              target.equals(primaryTarget.get())
              ? XCScheme.BuildActionEntry.BuildFor.DEFAULT
              : XCScheme.BuildActionEntry.BuildFor.INDEXING,
          buildAction);
    }

    for (PBXTarget target : orderedBuildTestTargets) {
      addBuildActionForBuildTarget(
          buildTargetToBuildableReferenceMap.get(target),
          XCScheme.BuildActionEntry.BuildFor.TEST_ONLY,
          buildAction);
    }

    XCScheme.TestAction testAction = new XCScheme.TestAction(
        Preconditions.checkNotNull(actionConfigNames.get(SchemeActionType.TEST)));
    for (PBXTarget target : orderedRunTestTargets) {
      XCScheme.BuildableReference buildableReference =
          buildTargetToBuildableReferenceMap.get(target);
      XCScheme.TestableReference testableReference =
          new XCScheme.TestableReference(buildableReference);
      testAction.addTestableReference(testableReference);
    }

    Optional<XCScheme.LaunchAction> launchAction = Optional.absent();
    Optional<XCScheme.ProfileAction> profileAction = Optional.absent();

    if (primaryTarget.isPresent()) {
      XCScheme.BuildableReference primaryBuildableReference =
          buildTargetToBuildableReferenceMap.get(primaryTarget.get());
      if (primaryBuildableReference != null) {
        launchAction = Optional.of(
            new XCScheme.LaunchAction(
                primaryBuildableReference,
                Preconditions.checkNotNull(actionConfigNames.get(SchemeActionType.LAUNCH)),
                runnablePath,
                remoteRunnablePath,
                launchStyle));
        profileAction = Optional.of(
            new XCScheme.ProfileAction(
                primaryBuildableReference,
                Preconditions.checkNotNull(actionConfigNames.get(SchemeActionType.PROFILE))));
      }
    }
    XCScheme.AnalyzeAction analyzeAction = new XCScheme.AnalyzeAction(
        Preconditions.checkNotNull(actionConfigNames.get(SchemeActionType.ANALYZE)));
    XCScheme.ArchiveAction archiveAction = new XCScheme.ArchiveAction(
        Preconditions.checkNotNull(actionConfigNames.get(SchemeActionType.ARCHIVE)));

    XCScheme scheme = new XCScheme(
        schemeName,
        Optional.of(buildAction),
        Optional.of(testAction),
        launchAction,
        profileAction,
        Optional.of(analyzeAction),
        Optional.of(archiveAction));
    outputScheme = Optional.of(scheme);

    Path schemeDirectory = outputDirectory.resolve("xcshareddata/xcschemes");
    projectFilesystem.mkdirs(schemeDirectory);
    Path schemePath = schemeDirectory.resolve(schemeName + ".xcscheme");
    try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
      serializeScheme(scheme, outputStream);
      String contentsToWrite = outputStream.toString();
      if (MorePaths.fileContentsDiffer(
          new ByteArrayInputStream(contentsToWrite.getBytes(Charsets.UTF_8)),
          schemePath,
          projectFilesystem)) {
        projectFilesystem.writeContentsToPath(outputStream.toString(), schemePath);
      }
    }
    return schemePath;
  }

  private static void addBuildActionForBuildTarget(
      XCScheme.BuildableReference buildableReference,
      EnumSet<XCScheme.BuildActionEntry.BuildFor> buildFor,
      XCScheme.BuildAction buildAction) {
    XCScheme.BuildActionEntry entry = new XCScheme.BuildActionEntry(
        buildableReference,
        buildFor);
    buildAction.addBuildAction(entry);
  }

  public static Element serializeBuildableReference(
      Document doc,
      XCScheme.BuildableReference buildableReference) {
    Element refElem = doc.createElement("BuildableReference");
    refElem.setAttribute("BuildableIdentifier", "primary");
    refElem.setAttribute("BlueprintIdentifier", buildableReference.getBlueprintIdentifier());
    refElem.setAttribute("BuildableName", buildableReference.getBuildableName());
    refElem.setAttribute("BlueprintName", buildableReference.getBlueprintName());
    String referencedContainer = "container:" + buildableReference.getContainerRelativePath();
    refElem.setAttribute("ReferencedContainer", referencedContainer);
    return refElem;
  }

  public static Element serializeBuildAction(Document doc, XCScheme.BuildAction buildAction) {
    Element buildActionElem = doc.createElement("BuildAction");
    buildActionElem.setAttribute(
        "parallelizeBuildables",
        buildAction.getParallelizeBuild() ? "YES" : "NO");
    buildActionElem.setAttribute(
        "buildImplicitDependencies",
        buildAction.getParallelizeBuild() ? "YES" : "NO");

    Element buildActionEntriesElem = doc.createElement("BuildActionEntries");
    buildActionElem.appendChild(buildActionEntriesElem);

    for (XCScheme.BuildActionEntry entry : buildAction.getBuildActionEntries()) {
      Element entryElem = doc.createElement("BuildActionEntry");
      buildActionEntriesElem.appendChild(entryElem);

      EnumSet<XCScheme.BuildActionEntry.BuildFor> buildFor = entry.getBuildFor();
      boolean buildForRunning = buildFor.contains(XCScheme.BuildActionEntry.BuildFor.RUNNING);
      entryElem.setAttribute("buildForRunning", buildForRunning ? "YES" : "NO");
      boolean buildForTesting = buildFor.contains(XCScheme.BuildActionEntry.BuildFor.TESTING);
      entryElem.setAttribute("buildForTesting", buildForTesting ? "YES" : "NO");
      boolean buildForProfiling = buildFor.contains(XCScheme.BuildActionEntry.BuildFor.PROFILING);
      entryElem.setAttribute("buildForProfiling", buildForProfiling ? "YES" : "NO");
      boolean buildForArchiving = buildFor.contains(XCScheme.BuildActionEntry.BuildFor.ARCHIVING);
      entryElem.setAttribute("buildForArchiving", buildForArchiving ? "YES" : "NO");
      boolean buildForAnalyzing = buildFor.contains(XCScheme.BuildActionEntry.BuildFor.ANALYZING);
      entryElem.setAttribute("buildForAnalyzing", buildForAnalyzing ? "YES" : "NO");

      Element refElem = serializeBuildableReference(doc, entry.getBuildableReference());
      entryElem.appendChild(refElem);
    }

    return buildActionElem;
  }

  public static Element serializeTestAction(Document doc, XCScheme.TestAction testAction) {
    Element testActionElem = doc.createElement("TestAction");
    testActionElem.setAttribute("shouldUseLaunchSchemeArgsEnv", "YES");

    Element testablesElem = doc.createElement("Testables");
    testActionElem.appendChild(testablesElem);

    for (XCScheme.TestableReference testable : testAction.getTestables()) {
      Element testableElem = doc.createElement("TestableReference");
      testablesElem.appendChild(testableElem);
      testableElem.setAttribute("skipped", "NO");

      Element refElem = serializeBuildableReference(doc, testable.getBuildableReference());
      testableElem.appendChild(refElem);
    }

    return testActionElem;
  }

  public static Element serializeLaunchAction(Document doc, XCScheme.LaunchAction launchAction) {
    Element launchActionElem = doc.createElement("LaunchAction");

    Optional<String> runnablePath = launchAction.getRunnablePath();
    Optional<String> remoteRunnablePath = launchAction.getRemoteRunnablePath();
    if (remoteRunnablePath.isPresent()) {
      Element remoteRunnableElem = doc.createElement("RemoteRunnable");
      remoteRunnableElem.setAttribute("runnableDebuggingMode", "2");
      remoteRunnableElem.setAttribute("BundleIdentifier", "com.apple.springboard");
      remoteRunnableElem.setAttribute("RemotePath", remoteRunnablePath.get());
      launchActionElem.appendChild(remoteRunnableElem);
      Element refElem = serializeBuildableReference(doc, launchAction.getBuildableReference());
      remoteRunnableElem.appendChild(refElem);

      // Yes, this appears to be duplicated in Xcode as well..
      Element refElem2 = serializeBuildableReference(doc, launchAction.getBuildableReference());
      launchActionElem.appendChild(refElem2);
    } else if (runnablePath.isPresent()) {
      Element pathRunnableElem = doc.createElement("PathRunnable");
      launchActionElem.appendChild(pathRunnableElem);
      pathRunnableElem.setAttribute("FilePath", runnablePath.get());
    } else {
      Element productRunnableElem = doc.createElement("BuildableProductRunnable");
      launchActionElem.appendChild(productRunnableElem);
      Element refElem = serializeBuildableReference(doc, launchAction.getBuildableReference());
      productRunnableElem.appendChild(refElem);
    }

    XCScheme.LaunchAction.LaunchStyle launchStyle = launchAction.getLaunchStyle();
    launchActionElem.setAttribute(
        "launchStyle",
        launchStyle == XCScheme.LaunchAction.LaunchStyle.AUTO ? "0" : "1");

    return launchActionElem;
  }

  public static Element serializeProfileAction(Document doc, XCScheme.ProfileAction profileAction) {
    Element profileActionElem = doc.createElement("ProfileAction");

    Element productRunnableElem = doc.createElement("BuildableProductRunnable");
    profileActionElem.appendChild(productRunnableElem);

    Element refElem = serializeBuildableReference(doc, profileAction.getBuildableReference());
    productRunnableElem.appendChild(refElem);

    return profileActionElem;
  }

  private static void serializeScheme(XCScheme scheme, OutputStream stream) {
    DocumentBuilder docBuilder;
    Transformer transformer;
    try {
      docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
      transformer = TransformerFactory.newInstance().newTransformer();
    } catch (ParserConfigurationException | TransformerConfigurationException e) {
      throw new RuntimeException(e);
    }

    DOMImplementation domImplementation = docBuilder.getDOMImplementation();
    Document doc = domImplementation.createDocument(null, "Scheme", null);
    doc.setXmlVersion("1.0");

    Element rootElem = doc.getDocumentElement();
    rootElem.setAttribute("LastUpgradeVersion", "9999");
    rootElem.setAttribute("version", "1.7");

    Optional<XCScheme.BuildAction> buildAction = scheme.getBuildAction();
    if (buildAction.isPresent()) {
      Element buildActionElem = serializeBuildAction(doc, buildAction.get());
      rootElem.appendChild(buildActionElem);
    }

    Optional<XCScheme.TestAction> testAction = scheme.getTestAction();
    if (testAction.isPresent()) {
      Element testActionElem = serializeTestAction(doc, testAction.get());
      testActionElem.setAttribute(
          "buildConfiguration", scheme.getTestAction().get().getBuildConfiguration());
      rootElem.appendChild(testActionElem);
    }

    Optional<XCScheme.LaunchAction> launchAction = scheme.getLaunchAction();
    if (launchAction.isPresent()) {
      Element launchActionElem = serializeLaunchAction(doc, launchAction.get());
      launchActionElem.setAttribute(
          "buildConfiguration", launchAction.get().getBuildConfiguration());
      rootElem.appendChild(launchActionElem);
    } else {
      Element launchActionElem = doc.createElement("LaunchAction");
      launchActionElem.setAttribute(
          "buildConfiguration",
          "Debug");
      rootElem.appendChild(launchActionElem);
    }

    Optional<XCScheme.ProfileAction> profileAction = scheme.getProfileAction();
    if (profileAction.isPresent()) {
      Element profileActionElem = serializeProfileAction(doc, profileAction.get());
      profileActionElem.setAttribute(
          "buildConfiguration", profileAction.get().getBuildConfiguration());
      rootElem.appendChild(profileActionElem);
    } else {
      Element profileActionElem = doc.createElement("ProfileAction");
      profileActionElem.setAttribute(
          "buildConfiguration",
          "Release");
      rootElem.appendChild(profileActionElem);
    }

    Optional<XCScheme.AnalyzeAction> analyzeAction = scheme.getAnalyzeAction();
    if (analyzeAction.isPresent()) {
      Element analyzeActionElem = doc.createElement("AnalyzeAction");
      analyzeActionElem.setAttribute(
          "buildConfiguration", analyzeAction.get().getBuildConfiguration());
      rootElem.appendChild(analyzeActionElem);
    } else {
      Element analyzeActionElem = doc.createElement("AnalyzeAction");
      analyzeActionElem.setAttribute(
          "buildConfiguration",
          "Debug");
      rootElem.appendChild(analyzeActionElem);
    }

    Optional<XCScheme.ArchiveAction> archiveAction = scheme.getArchiveAction();
    if (archiveAction.isPresent()) {
      Element archiveActionElem = doc.createElement("ArchiveAction");
      archiveActionElem.setAttribute(
          "buildConfiguration", archiveAction.get().getBuildConfiguration());
      archiveActionElem.setAttribute("revealArchiveInOrganizer", "YES");
      rootElem.appendChild(archiveActionElem);
    } else {
      Element archiveActionElem = doc.createElement("ArchiveAction");
      archiveActionElem.setAttribute(
          "buildConfiguration",
          "Release");
      rootElem.appendChild(archiveActionElem);
    }

    // write out

    DOMSource source = new DOMSource(doc);
    StreamResult result = new StreamResult(stream);

    try {
      transformer.transform(source, result);
    } catch (TransformerException e) {
      throw new RuntimeException(e);
    }
  }
}

redpajama_set_name: RedPajamaGithub