Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Friday, 25 October 2019

VC Ben Horowitz on WeWork, Uber, and one cultural value his employees can’t break

Ben Horowitz, the co-founder of the venture firm Andreessen Horowitz, has a new book coming out this coming Monday titled “What You Do is Who You Are,” that takes a look at how to create “culture” at a company.

It’s a word that’s thrown around a lot but very hard grasp, let alone implement in a sustainable way. Horowitz learned firsthand as a CEO how elusive it can be when he took stock of his company, only to discover it was made up of “screamers who intimidated their people,” others who “neglected to give any feedback,” and at least one compulsive liar who excelled at sucking up to Horowitz and also making up stories from whole cloth.

Horowitz says creating culture was a missing part of his education, and in this new book — a follow-up to his best-selling “The Hard Thing About Hard Things” — he does his best to fill that gap for other CEOs, using his own experience, as well as lessons gleaned from historical figures Toussaint Louverture and Genghis Khan, along with Shaka Senghor, a contemporary who served time for murder and today is a criminal justice reform advocate.

It’s an instructive and novel combination, and we suggest picking up the book, especially if you love history. In the meantime, we sat down recently with Horowitz to talk about its timing and whether some of the biggest cultural blow-ups in the startup industry — Uber and WeWork — could have been avoided. These excerpts have been edited for length and clarity. Note that we’ll have more of the conversation — including Horowitz’s thoughts about dual-class shares —  for readers of Extra Crunch on Monday.

TC: You’ve just written a book about culture that’s coming out just as a lot of questions are being raised about culture because of WeWork. What happened there?

BH: [Cofounder Adam Neumann] had a certain kind of culture there. He had some holes — some great strengths and great holes. And sometimes that happens. When you’re really good at part of it, you can delude yourself into thinking that you’ve got everything you need, when you have some massive incompleteness.

Adam is so amazing. Like, the way they got all the money and everything. And the vision was so spectacular. And everybody there believed it, and they recruited some phenomenal talent. But when you’re that optimistic, it does help to have something in the culture that says [allows] people to bring you the bad news, like, if the accounting is all over the place or what have you.

TC: As with Uber’s Travis Kalanick, whose culture also came under fire, Neumann operated in very plain sight. He wasn’t hiding who he was or what he was spending. 

BH: Right, everybody knew how Travis was running the company. Everyone in Silicon Valley knew, let alone everyone on the board. The culture was published. You can look up Uber’s values [from that period].

Travis designed, I think, a really compelling culture, and believed in it, and published it. And the consequences of what he was missing were also super well-known. It’s only when board members think people are coming after them that [they take an interest in these things].

TC: What are the biggest lessons in these two cases?

BH: I obviously know more about Uber [as a Lyft investor who follows the space]. In Uber’s case, it’s a very subtle thing. Travis had a really good code. But he had a bug in it.

I think it was reported that, like, Travis encouraged bad behavior. I don’t think he did at all. I just think he didn’t make it clear that legal and ethical [considerations] were more important than competitiveness. As a result, when left to their own devices, in a distributed organization where there was a lot of distributed power, that combination had people doing things that were out of bounds.

And he was making everybody so much money. And the company was growing so fast that, for the board members, I suspect they were like, ‘As long as it’s making money, I’m not going to worry about what happens next.’

To me, the unfair part is, like, they shouldn’t get any credit at the end. Whatever you’re blaming Travis for [you should blame them, too] because they didn’t see it, either. I think that’s a charitable way of putting it.

The reason I wanted to go through [how to create business culture] in the book is so if you’re a new CEO, you can see, look, this thing looks like a small problem, but it’s going to become a big problem. Ethics are a bit like security issues. They’re not a problem at all until they’re a problem. Then they’re existential.

TC: Why was this issue on your mind?

BH: A few things. First, it was the thing that I had the most difficult time with as a CEO. People would say, ‘Ben, pay attention to culture, it really is the key.’ But when you were like, ‘Okay, great, how do i do that?’ it was like, ‘Um, maybe you should have a meeting about it.’ Nobody could convey: what it was, how you dealt with it, how you designed it. So I felt like I was missing a piece of my own education.

Also, when I look at the work I do now, it’s the most important thing. What I say to people at the firm is that nobody 10 or 20 or 30 years from now is going to remember what deals we’ve won or lost or what the returns were on this or that. You’re going to remember what it felt like to work here and to do business with us and what kind of imprint we put on the world. And that’s our culture. That’s our behavior. We can’t have any drift from that. And I think that’s true for every company.

On top of that, the companies in Silicon Valley have grown so fast and become so powerful that they’re getting a lot of criticism about their culture now, which, some of it is fair enough. But the proposed solutions are wacky  . . . so it kind of felt like somebody had to make a positive contribution and not just a critique about, like, okay, here’s what you ought to do.

TC: They’re also distributed, as you noted with Uber, but I don’t think you talk about remote workforces in this book. Do you have thoughts about establishing a culture where individuals are scattered here and there? 

BH: I didn’t talk about remote workforces and that one is interesting because it’s evolving because the tool sets are changing. It used to be nearly impossible for an engineering organization to be distributed and to be effective, because the information flow wasn’t good enough and the build systems weren’t good enough. And so for years, Microsoft would only buy companies that they could move to Redmond.

Lately, due to things like Slack and Tandem, people are getting better results with it. And I think a lot of the cultural techniques intersect with the tools quite a bit. But then you have to set the culture through electronic media more than you would walking around, catching somebody doing thing in a meeting.

We just did a thing on email the other day. We have this cultural value, which is: we don’t like to criticize entrepreneurs. I don’t care if we think your idea is stupid or whatever. You’re trying to create something from nothing. You’re trying to chase your dream. We support that, period. So if you get on Twitter and do what Bill Gurley does and say, ‘That company is a stupid piece of shit. It’ll never made a $1 and blah blah blah,’ like, you get fired for that. [Similarly] on our podcast, we have a news segment and I didn’t want us to do a story on ‘WeWork, the cautionary tale.’ That’s not us. And it’s a cultural statement. There are a million people who are going to write that story; we were like, let them write that story.

So you don’t have to be in person to set the tone, but you do have to be thoughtful about the way you do it, and who all hears it.

TC: Why weave in the cultural figures that you have? There are so many people you could have included, and you focused on these three individuals.

BH: It’s a weird origin story, but Prince years ago put out an album called 3121, and he opened this club in Vegas called the 3121, and he would perform there, like, every weekend. And the show would start at 10 and he would show up at midnight or 1 a.m., but during that time in between, he would show these old films with these really interesting dancers in these elaborate clothes. And you’d just be watching these old guys, and then Prince would start to splice in [his own movies, including] “Under the Cherry Moon” and “Purple Rain,” and you’d go, well those are the dance moves from those guys [in the older films] and that’s a quote from those guys And you realize: that was what he was trying to express. And I thought, you know, I finally really understand him. And I thought, you know, [these three] have really influenced my views on culture [for a variety of reasons] and it would be a good way to tell this story.

More on Monday . . .



from TechCrunch https://ift.tt/32M618E
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support