Saturday, January 25, 2020

An overview of nine leading US presidential candidates' positions on Big Tech, with Warren and Sanders leading the charge to break up big tech companies (Elizabeth Culliford/Reuters)

Elizabeth Culliford / Reuters:
An overview of nine leading US presidential candidates' positions on Big Tech, with Warren and Sanders leading the charge to break up big tech companies  —  Republican President Donald Trump's administration has also stepped up its scrutiny of Big Tech, conducting a wide-ranging probe …



from Techmeme https://ift.tt/36tLs1Y

Geek Trivia: Which Tech Company’s Name Means “Three Oceans”?

  1. Sanyo
  2. Hitachi
  3. Toshiba
  4. Sony

Think You Know the Answer?



from How-To Geek https://ift.tt/2vqo60t

Socially Determined, which offers a data analytics platform focused on measuring the impact of the social determinants of health, closes $11.1M Series A (Michelai Graham/Technical.ly DC)

Michelai Graham / Technical.ly DC:
Socially Determined, which offers a data analytics platform focused on measuring the impact of the social determinants of health, closes $11.1M Series A  —  Wharf-based healthcare analytics startup Socially Determined has closed on its Series A funding round, raising a total of $11.1 million.



from Techmeme https://ift.tt/37t7Vxh

Report: betting companies had access to a UK Department for Education database with records of 28M children, after a third-party gave access without permission (Charlie Osborne/ZDNet)

Charlie Osborne / ZDNet:
Report: betting companies had access to a UK Department for Education database with records of 28M children, after a third-party gave access without permission  —  Reports suggest a government database was misused for age verification purposes.  —  Betting companies were inappropriately provided access …



from Techmeme https://ift.tt/2RTPyuQ

FloQast, a startup that sells accounting software, raises $40M Series C led by Norwest Venture Partners, bringing its total funding to over $90M (Alex Wilhelm/TechCrunch)

Alex Wilhelm / TechCrunch:
FloQast, a startup that sells accounting software, raises $40M Series C led by Norwest Venture Partners, bringing its total funding to over $90M  —  This morning FloQast, an LA-area startup, announced that it closed a $40 million Series C led by Norwest Venture Partners.



from Techmeme https://ift.tt/2RPmaWF

Anchore, which offers automated container security management to clients including US DOD, raises $20M Series A led by SignalFire, bringing total raise to ~$30M (Kyle Wiggers/VentureBeat)

Kyle Wiggers / VentureBeat:
Anchore, which offers automated container security management to clients including US DOD, raises $20M Series A led by SignalFire, bringing total raise to ~$30M  —  Containers — sets of self-contained executables, binary code, libraries, and configuration files — are ubiquitous in cloud computing.



from Techmeme https://ift.tt/3aI9N7w

Fossil Gen 5 review: best Wear OS watch yet with clever notification handling, good battery life, but hardware UX is unpredictable and phone can disconnect (Samuel Gibbs/The Guardian)

Samuel Gibbs / The Guardian:
Fossil Gen 5 review: best Wear OS watch yet with clever notification handling, good battery life, but hardware UX is unpredictable and phone can disconnect  —  A day's battery, solid performance and watch-first design makes Wear OS a much more attractive option



from Techmeme https://ift.tt/38BzlBp

The Ultimate JavaScript Cheat Sheet

Code displayed on a laptop screen

If you want to build dynamic webpages, you’ll have to supplement your HTML and CSS knowledge with an understanding of JavaScript. This scripting language is considered an essential in modern web development.

You can build all kinds of interesting interactive apps and websites with JavaScript, but there’s much to learn on the way. With that in mind, we have created the following JavaScript cheat sheet for you.

The cheat sheet can serve as a quick refresher on JavaScript elements any time you need one. It’s handy for newbies and experts alike.

FREE DOWNLOAD: This cheat sheet is available as a downloadable PDF from our distribution partner, TradePub. You will have to complete a short form to access it for the first time only. Download The Ultimate JavaScript Cheat Sheet.

The Ultimate JavaScript Cheat Sheet

Shortcut Action
JavaScript Arrays
concat() Join several arrays into one
copyWithin() Copy array elements within the array, to and from specified positions
indexOf() Return the primitive value of the specified object
includes() Check if an array contains the specified element
join() Combine elements of an array into a single string and return the string
entries() Return a key/value pair Array Iteration Object
every() Check if every element in an array passes a test
fill() Fill the elements in an array with a static value
filter() Create a new array with every element in an array that pass a test
find() Return the value of the first element in an array that pass a test
forEach() Call a function for each array element
from() Create an array from an object
lastIndexOf() Give the last position at which a given element appears in an array
pop() Remove the last element of an array
push() Add a new element at the end
reverse() Sort elements in descending order
reduce() Reduce the values of an array to a single value (going left-to-right)
reduceRight() Reduce the values of an array to a single value (going right-to-left)
shift() Remove the first element of an array
slice() Pull a copy of a portion of an array into a new array object
sort() Sort elements alphabetically
splice() Add elements in a specified way and position
unshift() Add a new element to the beginning
JavaScript Boolean Methods
toString() Convert a Boolean value to a string, and return the result
valueOf() Return the first position at which a given element appears in an array
toSource() Return a string representing the source code of the object
JavaScript Arithmetic Operators
+ Addition
- Subtraction
* Multiplication
/ Division
(...) Grouping operator (operations within brackets are executed earlier than those outside)
% Modulus (remainder)
++ Increment numbers
-- Decrement numbers
== Equal to
=== Equal value and equal type
!= Not equal
!== Not equal value or not equal type
> Greater than
< Lesser than
>= Greater than or equal to
<= Lesser than or equal to
? Ternary operator
Logical Operators
&& Logical AND
|| Logical OR
! Logical NOT
Bitwise Operators
& AND statement
| OR statement
~ NOT
^ XOR
<< Left shift
>> Right shift
>>> Zero fill right shift
Functions
alert() Output data in an alert box in the browser window
confirm() Open up a yes/no dialog and return true/false depending on user click
console.log() Write information to the browser console (good for debugging purposes)
document.write() Write directly to the HTML document
prompt() Create a dialog for user input
Global Functions
decodeURI() Decode a Uniform Resource Identifier (URI) created by encodeURI or similar
decodeURIComponent() Decode a URI component
encodeURI() Encode a URI into UTF-8
encodeURIComponent() Same but for URI components
eval() Evaluate JavaScript code represented as a string
isFinite() Determine whether a passed value is a finite number
isNaN() Determine whether a value is an illegal number
Number() Convert an object's value to a number
parseFloat() Parse a string and return a floating point number
parseInt() Parse a string and return an integer
JavaScript Loops
for The most common way to create a loop in JavaScript
while Set up conditions under which a loop executes
do while Similar to the while loop, however, it executes at least once and performs a check at the end to see if the condition is met to execute again
break Stop and exit the cycle if certain conditions are mets
continue Skip parts of the cycle if certain conditions are met
Escape Characters
\' Single quote
\" Double quote
\\ Backslash
\b Backspace
\f Form feed
\n New line
\r Carriage return
\t Horizontal tabulator
\v Vertical tabulator
JavaScript String Methods
charAt() Return a character at a specified position inside a string
charCodeAt() Give the unicode of character at that position
concat() Concatenate (join) two or more strings into one
fromCharCode() Return a string created from the specified sequence of UTF-16 code units
indexOf() Provide the position of the first occurrence of specified text within a string
lastIndexOf() Same as indexOf() but with the last occurrence, searching backwards
match() Retrieve the matches of a string against a search pattern
replace() Find and replace specified text in a string
search() Execute a search for a matching text and return its position
slice() Extract a section of a string and return it as a new string
split() Split a string object into an array of strings at a specified position
startsWith() Check whether a string begins with specified characters
substr() Similar to slice() but extracts a substring depended on a specified number of characters
substring() Similar to slice() but can’t accept negative indices
toLowerCase() Convert strings to lower case
toUpperCase() Convert strings to upper case
valueOf() Return the primitive value (that has no properties or methods) of a string object
REGULAR EXPRESSION SYNTAX

Pattern Modifiers
e Evaluate replacement
i Perform case-insensitive matching
g Perform global matching
m Perform multiple line matching
s Treat strings as single line
x Allow comments and whitespace in pattern
U Ungreedy pattern
Brackets
[abc] Find any of the characters in the brackets
[^abc] Find any character not in the brackets
[0-9] Find digit specified in the brackets
[A-z] Find any character from uppercase A to lowercase z
(a|b|c) Find any of the alternatives separated with |
Metacharacters
. Find a single character, except newline or line terminator
\w Word character
\W Non-word character
\d A digit
\D A non-digit character
\s Whitespace character
\S Non-whitespace character
\b Find a match at the beginning/end of a word
\B Find a match not at the beginning/end of a word
\u0000 NUL character
\n A new line character
\f Form feed character
\r Carriage return character
\t Tab character
\v Vertical tab character
\xxx Character specified by an octal number xxx
\xdd Latin character specified by a hexadecimal number dd
\udddd Unicode character specified by a hexadecimal number dddd
Quantifiers
n+ Match any string that contains at least one n
n* Any string that contains zero or more occurrences of n
n? Any string that contains zero or one occurrences of n
n{X} Any string that contains a sequence of X n’s
n{X,Y} Strings that contains a sequence of X to Y n’s
n{X,} Matches any string that contains a sequence of at least X n’s
n$ Any string with n at the end of it
^n String with n at the beginning of it
?=n Any string that is followed by a specific string n
?!n String that is not followed by a specific string n
Number Properties
MAX_VALUE Maximum numeric value representable in JavaScript
MIN_VALUE Smallest positive numeric value representable in JavaScript
NaN The “Not-a-Number” value
NEGATIVE_INFINITY Negative Infinity value
POSITIVE_INFINITY Positive Infinity value
Number Methods
toExponential() Return a string with a rounded number written as exponential notation
toFixed() Return string of a number with a specified number of decimals
toPrecision() Return string of a number written with a specified length
toString() Return a number as a string
valueOf() Return a number as a number
Math Properties
E Euler’s number
LN2 Natural logarithm of 2
LN10 Natural logarithm of 10
LOG2E Base 2 logarithm of E
LOG10E Base 10 logarithm of E
PI The number PI
SQRT1_2 Square root of 1/2
SQRT2 Square root of 2
Math Methods
abs(x) Return the absolute (positive) value of x
acos(x) Arccosine of x, in radians
asin(x) Arcsine of x, in radians
atan(x) Arctangent of x as a numeric value
atan2(y,x) Arctangent of the quotient of its arguments
ceil(x) Value of x rounded up to its nearest integer
cos(x) Cosine of x (x is in radians)
exp(x) Value of Ex
floor(x) Value of x rounded down to its nearest integer
log(x) Natural logarithm (base E) of x
max(x,y,z,...,n) Number with highest value
min(x,y,z,...,n) Number with lowest value
pow(x,y) X to the power of y
random() Random number between 0 and 1
round(x) Value of x rounded to its nearest integer
sin(x) Sine of x (x is in radians)
sqrt(x) Square root of x
tan(x) Tangent of an angle
Dates
Date() Create a new date object with the current date and time
Date(2017, 5, 21, 3, 23, 10, 0) Create a custom date object. The numbers represent year, month, day, hour, minutes, seconds, milliseconds. You can omit anything you want except for year and month.
Date(“2017-06-23”) Date declaration as a string
getDate() Get the day of the month as a number (1-31)
getDay() Get the weekday as a number (0-6)
getFullYear() Get the year as a four digit number (yyyy)
getHours() Get the hour (0-23)
getMilliseconds() Get the millisecond (0-999)
getMinutes() Get the minute (0-59)
getMonth() Get the month as a number (0-11)
getSeconds() Get the second (0-59)
getTime() Get the time (milliseconds since January 1, 1970)
getUTCDate() Day (date) of the month in the specified date according to universal time (also available for day, month, fullyear, hours, minutes etc.)
parse Parse a string representation of a date, and return the number of milliseconds since January 1, 1970
setDate() Set the day as a number (1-31)
setFullYear() Set the year (optionally month and day)
setHours() Set the hour (0-23)
setMilliseconds() Set the milliseconds (0-999)
setMinutes() Set the minutes (0-59)
setMonth() Set the month (0-11)
setSeconds() Set the seconds (0-59)
setTime() Set the time (milliseconds since January 1, 1970)
setUTCDate() Set the day of the month for a specified date according to universal time (also available for day, month, fullyear, hours, minutes etc.)
DOM MODE


Node Properties
attributes Live collection of all attributes registered to an element
baseURI Absolute base URL of an HTML element
childNodes Collection of an element’s child nodes
firstChild First child node of an element
lastChild Last child node of an element
nextSibling Next node at the same node tree level
nodeName Name of a node
nodeType Type of a node
nodeValue Value of a node
ownerDocument Top-level document object for current node
parentNode Parent node of an element
previousSibling Node immediately preceding the current one
textContent Textual content of a node and its descendants
Node Methods
appendChild() Add a new child node to an element as the last child node
cloneNode() Clone HTML element
compareDocumentPosition() Compare the document position of two elements
getFeature() Return an object which implements the APIs of a specified feature
hasAttributes() Return true if an element has any attributes, else return false
hasChildNodes() Return true if an element has any child nodes, else return false
insertBefore() Insert a new child node before a specified, existing child node
isDefaultNamespace() Return true if a specified namespaceURI is the default, else return false
isEqualNode() Check if two elements are equal
isSameNode() Check if two elements are the same node
isSupported() Return true if a specified feature is supported on the element
lookupNamespaceURI() Return the namespaceURI associated with a given node
lookupPrefix() Return a DOMString containing the prefix for a given namespaceURI, if present
normalize() Join adjacent text nodes and remove empty text nodes in an element
removeChild() Remove a child node from an element
replaceChild() Replace a child node in an element
Element Methods
getAttribute() Return the specified attribute value of an element node
getAttributeNS() Return string value of the attribute with the specified namespace and name
getAttributeNode() Get the the specified attribute node
getAttributeNodeNS() Return the attribute node for the attribute with the given namespace and name
getElementsByTagName() Provide a collection of all child elements with the specified tag name
getElementsByTagNameNS() Return a live HTML collection of elements with a certain tag name belonging to the given namespace
hasAttribute() Return true if an element has any attributes, else return false
hasAttributeNS() Provide a true/false value indicating whether the current element in a given namespace has the specified attribute
removeAttribute() Remove a specified attribute from an element
removeAttributeNS() Remove the specified attribute from an element within a certain namespace
removeAttributeNode() Take away a specified attribute node and return the removed node
setAttribute() Set or change the specified attribute to a specified value
setAttributeNS() Add a new attribute or change the value of an attribute with the given namespace and name
setAttributeNode() Set or change the specified attribute node
setAttributeNodeNS() Add a new namespaced attribute node to an element
Browser Window Properties
closed Check whether a window has been closed or not and return true or false
defaultStatus Set or return the default text in the statusbar of a window
document Return the document object for the window
frames Return all iframe elements in the current window
history Provide the History object for the window
innerHeight Inner height of a window’s content area
innerWidth Inner width of the content area
length Return the number of iframe elements in the window
location Return the location object for the window
name Set or return the name of a window
navigator Return the Navigator object for the window
opener Return a reference to the window that created the window
outerHeight Outer height of a window, including toolbars/scrollbars
outerWidth Outer width of a window, including toolbars/scrollbars
pageXOffset Number of pixels by which the document has been scrolled horizontally
pageYOffset Number of pixels by which the document has been scrolled vertically
parent Parent window of the current window
screen Return the Screen object for the window
screenLeft Horizontal coordinate of the window (relative to screen)
screenTop Vertical coordinate of the window
screenX Same as screenLeft but needed for some browsers
screenY Same as screenTop but needed for some browsers
self Return the current window
status Set or return the text in the statusbar of a window
top Return the topmost browser window
Browser Window Methods
alert() Display an alert box with a message and an OK button
blur() Remove focus from the current window
clearInterval() Clear a timer set with setInterval()
clearTimeout() Clear a timer set with setTimeout()
close() Close the current window
confirm() Display a dialog box with a message and OK and Cancel buttons
focus() Set focus to the current window
moveBy() Move a window relative to its current position
moveTo() Move a window to a specified position
open() Open a new browser window
print() Print the content of the current window
prompt() Display a dialog box that prompts the visitor for input
resizeBy() Resize the window by the specified number of pixels
resizeTo() Resize the window to a specified width and height
scrollBy() Scroll the document by a specified number of pixels
scrollTo() Scroll the document to specified coordinates
setInterval() Call a function or evaluate an expression at specified intervals
setTimeout() Call a function or evaluate an expression after a specified interval
stop() Stop the window from loading
Screen Properties
availHeight Return the height of the screen (excluding the Windows Taskbar)
availWidth Return the width of the screen (excluding the Windows Taskbar)
colorDepth Return the bit depth of the color palette for displaying images
height The total height of the screen
pixelDepth The color resolution of the screen in bits per pixel
width The total width of the screen
JAVASCRIPT EVENTS

JavaScript Mouse Events
onclick When user clicks on an element
oncontextmenu When user right-clicks on an element to open a context menu
ondblclick When user double-clicks on an element
onmousedown When user presses a mouse button over an element
onmouseenter When user moves pointer onto an element
onmouseleave When user moves pointer away from an element
onmousemove When user moves pointer while it is over an element
onmouseover When user moves pointer onto an element or one of its children
onmouseout When user moves pointer away from an element or one of its children
onmouseup When user releases a mouse button while over an element
JavaScript Keyboard Events
onkeydown When user is pressing a key down
onkeypress When user starts pressing a key
onkeyup When user releases a key
JavaScript Frame Events
onabort When loading of media is aborted
onbeforeunload Before the document is about to be unloaded
onerror When an error occurs while loading an external file
onhashchange When the anchor part of a URL has changed
onload When an object has loaded
onpagehide When user navigates away from a webpage
onpageshow When user navigates to a webpage
onresize When user resizes document view
onscroll When user is scrolling an element’s scrollbar
onunload When a page has unloaded
JavaScript Form Events
onblur When an element loses focus
onchange When the content of a form element changes (for input, select, and textarea)
onfocus When an element gets focus
onfocusin When an element is about to get focus
onfocusout When an element is about to lose focus
oninput User input on an element
oninvalid When an element is invalid
onreset When a form is reset
onsearch When a user types something in a search field (for input="search")
onselect When user selects some text (for input and textarea)
onsubmit When a form is submitted
JavaScript Drag Events
ondrag When user drags an element
ondragend When user has finished dragging the element
ondragenter When the dragged element enters a drop target
ondragleave When the dragged element leaves the drop target
ondragover When the dragged element is on top of the drop target
ondragstart When user starts to drag an element
ondrop Dragged element is dropped on the drop target
JavaScript Clipboard Events
oncopy When user copies content of an element
oncut When user cuts an element’s content
onpaste When user pastes content in an element
JavaScript Media Events
onabort When media loading is aborted
oncanplay When browser can start playing media (e.g. a file has buffered enough)
oncanplaythrough When browser can play through media without stopping
ondurationchange When duration of media changes
onended When media has reached its end
onerror When an error occurs while loading an external file
onloadeddata When media data is loaded
onloadedmetadata When metadata (like dimensions and duration) is loaded
onloadstart When browser starts looking for specified media
onpause When media is paused either by user or automatically
onplay When media has been started or is no longer paused
onplaying When media is playing after having been paused or stopped for buffering
onprogress When browser is in the process of downloading media
onratechange When playing speed of media changes
onseeked When user has finished moving/skipping to a new position in media
onseeking When user starts moving/skipping
onstalled When browser is trying to load unavailable media
onsuspend When browser is intentionally not loading media
ontimeupdate The playing position has changed (e.g. because of fast forward)
onvolumechange When media volume has changed (including mute)
onwaiting When media has paused but is expected to resume (for example, buffering)
Animation
animationend When CSS animation is complete
animationiteration When CSS animation is repeated
animationstart When CSS animation has started
Miscellaneous
transitionend When CSS transition is complete
onmessage When a message is received through the event source
onoffline When browser starts to work offline
ononline When browser starts to work online
onpopstate When the window’s history changes
onshow When a menu element is shown as a context menu
onstorage When a Web Storage area is updated
ontoggle When user opens or closes the details element
onwheel When mouse wheel rolls up or down over an element
ontouchcancel When screen touch is interrupted
ontouchend When user’s finger goes off touch screen
ontouchmove When user drags a finger across the screen

Explore JavaScript Further

We consider JavaScript one of the top programming languages to master for the future. And we recommend diving into advanced concepts like JavaScript array methods once you have a grasp of the basics of JavaScript.

Image Credit: Oskar Yildiz on Unsplash

Read the full article: The Ultimate JavaScript Cheat Sheet



from MakeUseOf https://ift.tt/38BrWSD

How adding wireless chips, motion and pressure sensors, displays, and machine learning to products like toothbrushes is changing our oral hygiene habits (Lauren Goode/Wired)

Lauren Goode / Wired:
How adding wireless chips, motion and pressure sensors, displays, and machine learning to products like toothbrushes is changing our oral hygiene habits  —  It's easy to bristle at a $200 AI-powered toothbrush, but not for the reasons you might think.  —  In Las Vegas a couple weeks ago …



from Techmeme https://ift.tt/38Cq3oH

India's smartphone market surpassed the US, becoming the second-largest smartphone market globally, reaching 158M shipments in 2019, up 7% YoY (Anshika Jain/Counterpoint Research)

Anshika Jain / Counterpoint Research:
India's smartphone market surpassed the US, becoming the second-largest smartphone market globally, reaching 158M shipments in 2019, up 7% YoY  —  - realme (255%), Vivo (76%), Asus (67%) and OnePlus (29%) were the fastest-growing smartphone brands on an annual basis.



from Techmeme https://ift.tt/2GzNymx

Report: Samsung's upcoming foldable smartphone, possibly called Galaxy Z Flip, to use "Ultra Thin Glass" with a Dynamic AMOLED display underneath (Ben Schoon/9to5Google)

Ben Schoon / 9to5Google:
Report: Samsung's upcoming foldable smartphone, possibly called Galaxy Z Flip, to use “Ultra Thin Glass” with a Dynamic AMOLED display underneath  —  Samsung is preparing to launch its second foldable smartphone next month, and if you can believe it, more leaks are coming out for the device.



from Techmeme https://ift.tt/2RuEohn

Startups Weekly: Tech layoffs spread (a bit)

Are January layoffs just a few post-WeWork jitters?

TechCrunch has found itself writing about layoffs at a few notable tech companies this week — and not just Softbank-backed ones. The focus is very much profits, as Alex Wilhelm summed up on Thursday, especially after the failed WeWork IPO and subsequent valuation and headcount decimation. We’ll be digging into the topic more soon but there does seem to be a certain consumery thread here. And perhaps some fears of negative macro trends bubbling up?

23andMe cut 16% or 100 people, citing slowing sales for DNA tests. Quora reduced an undisclosed number to focus on revenue. 

Plenty of tech investors have criticized Softbank’s approach to writing large check for large valuations, but they can’t avoid the same fears these days. So does Mozilla, which had to cut 70 people this month after struggling to build revenue products.

It still all seems sort of normal given the very high valuations and recent reconsiderations, at least so far. Layoffs may very well continue this year in a way that is necessary and even healthy in the long run.

More on TechCrunch, from Alex:

23andMe  and Mozilla are not alone, however. Playful Studios cut staff just this week, 2019 itself saw more than 300% more tech layoffs than in the preceding year and TechCrunch has covered a litany of layoffs at Vision Fund-backed companies over the past few months, including:

Scooter unicorns Lime and Bird have also reduced staff this year. The for-profit drive is firing on all cylinders in the wake of the failed WeWork IPO attempt. WeWork was an outlier in terms of how bad its financial results were, but the fear it introduced to the market appears pretty damn mainstream by this point. (Forsake hope, alle ye whoe require a Series H.)

Image: Bryce Durbin/TechCrunch

2019 venture data had soft spots, maybe

Fresh data sets are in on last year from Crunchbase, as well as PitchBook and the NVCA. Alex identified a few key takeaways: slightly lower early-stage fundings, a big global year overall, and some of the above WeWork-attributed drops already surfacing in the Q4 data over on TechCrunch.

I have to wonder what we really know right now, though. These are the best publicly-accessible funding databases out there, but many companies have stopped filing Form Ds with the U.S. Securities and Exchange Commission in recent years, as Danny Crichton has been covering in this ongoing series. That was a main data source, especially about early-stage stealth companies.

The Crunchbase report goes over the global trend for the year, and that’s another confounding factor, actually — how trackable are startup funding dollars across borders these days? And how do you account for remote teams in that mix? And how do you account for crypto…?

If you are building a company now at any stage, the financial signs out now are not in my humble opinion ones to have any fear over. Especially relative to the other problems that are almost certainly in front of you.

There is a lot of money in VC now regardless of anything else, as the Pitchbook-NVCA report notes, and there will be for a long time.

How to handle a recession

As if on cue, we had a couple guest columnists provide articles about capital efficiency and recession-proofing your company. Shin Kim has a two-parter on TechCrunch and Extra Crunch, where he breaks down why most tech IPOs are not WeWork (in a good way) and how to pace your own fundraising regardless of anything else going on

Schwark Satyavolu, meanwhile, digs into the best practices for startups in the next recession for Extra Crunch, starting with this brutal real-life intro:

I founded my first startup, Yodlee,  in a strong economy with almost 20 competitors. Ten years and a painful recession later, we were the only game in town. Critical to our success was acquiring our largest competitor, something we never could have done in a strong economy because they never would have been willing to sell. The recession made it untenable for them to fundraise, enabling us not only to buy them, but to do so without cash in an all-equity deal.

A proclamation about board diversity

Board representation is a hot topic for companies of all sizes and none other than Goldman Sachs said this week that it would only take companies public that had at least one underrepresented board member.

CEO David Solomon said that companies that had gone public in the last four years with at least one female board member did significantly better than those without, but Megan Dickey notes for Extra Crunch that’s not quite all the way towards the goal:

But the lack of people of color on boards is perhaps a more urgent issue. Late last year, a Crunchbase study found that 60% of the most funded VC-backed startups don’t have a single woman on their board of directors. But there are even fewer black people, let alone black women, on boards. A 2018 Deloitte study found that of the Fortune 100 companies, white men held 61.4% of board seats, white women held 19.1%, men of color had 13.7% of board seats and women of color had just 5.8% of board seats.

Connie Loizos, meanwhile, writes for TechCrunch that boards themselves are not all of the way towards the goal:

Let’s be real here. Directors of public companies typically meet just four times a year to review quarterly results. It’s important and necessary, sure. But beyond ensuring that strategic objectives are being met and hopefully making useful introductions to the company, these roles are assigned more importance by industry watchers than they should. (They often pay ludicrous amounts given the work involved, too.)

Even pledging that Goldman is only going to take public companies that give back — say 1% of future profits to the NAACP, as one idea — would instantly put the bank in pole position for those founders and investors who truly want to be progressive. Goldman might miss out on a lot of business in the immediate term, we realize, but we’re guessing it’s a gamble that would pay off over time.

Around the horn

Lame LPs, founder referenceability and the future of VC signaling (TC)

Why is everyone making OKR software? (EC)

Should tech giants slam the encryption door on the government? (TC)

Where top VCs are investing in adtech and martech (EC)

US mobile app subscription revenue jumped 21% in 2019 to $4.6B across the top 100 apps (TC)

Relativity Space could change the economics of private space launches (EC)

Can a time machine offer us the meaning of life? (TC)

#EquityPod

Alex and Danny are back on Equity this week, here’s a menu before you listen to the episode here (and if you haven’t subscribed yet, you can do that here).

  • Why Front’s latest investment (a $59 million Series C) is a pretty big deal. Not because of how much money it has raised — the firm has raised more in a single, preceding round — but because of who put the capital to work.

  • On the venture capital front, Danny and Alex also chewed over signaling risk in venture, and why bigger funds are writing earlier and earlier checks.

  • Also on the docket was the latest from Lambda School, which our former co-host and friend Kate Clark wrote. The gist is that regardless of how you feel about the company, your views are probably a bit too negative, or a bit too positive. (More on the company’s ilk from Extra Crunch here, and here.)

  • And three media deals, including The Athletic’s latest investment ($50 million), who might buy the company behind the hit podcast “Serial” and why Spotify might buy The Ringer. Which is about sports, it turns out.

    Want Startups Weekly in your inbox each week? You can sign up for this and TechCrunch’s other newsletters here.



from TechCrunch https://ift.tt/2TXIZKG

Leila Janah, founder and CEO of Samasource, an SF-based machine learning training data company with a large workforce in East Africa, dies at 37 (Danny Crichton/TechCrunch)

Danny Crichton / TechCrunch:
Leila Janah, founder and CEO of Samasource, an SF-based machine learning training data company with a large workforce in East Africa, dies at 37  —  The startup community has lost another moral leader today.  —  Leila Janah, a serial entrepreneur who was the CEO and founder …



from Techmeme https://ift.tt/38FCK25

This Week in Apps: Apple antitrust issues come to Congress, subscription apps boom, Tencent takes on TikTok

Welcome back to ThisWeek in Apps, the Extra Crunch series that recaps the latest OS news, the applications they support and the money that flows through it all.

The app industry is as hot as ever with a record 204 billion downloads in 2019 and $120 billion in consumer spending in 2019, according to App Annie’s recently released “State of Mobile” annual report. People are now spending 3 hours and 40 minutes per day using apps, rivaling TV. Apps aren’t just a way to pass idle hours — they’re a big business. In 2019, mobile-first companies had a combined $544 billion valuation, 6.5x higher than those without a mobile focus.

In this Extra Crunch series, we help you keep up with the latest news from the world of apps, delivered on a weekly basis.

This week, there was a ton of app news. We’re digging into the latest with Apple’s antitrust issues, Tencent’s plan to leverage WeChat to fend off the TikTok threat, AppsFlyer’s massive new round, the booming subscription economy, Disney’s mobile game studio sale, Pokémon GO’s boost to tourism, Match Group’s latest investment and much more. And did you see the app that lets you use your phone from within a paper envelope? Or the new AR social network? It’s Weird App Week, apparently.

Headlines



from TechCrunch https://ift.tt/30Un2NV

A federal jury in California reduces the damages Apple has to pay Canadian IP licensing company WiLan for infringing on two wireless patents from $145M to $85M (Bloomberg)

Bloomberg:
A federal jury in California reduces the damages Apple has to pay Canadian IP licensing company WiLan for infringing on two wireless patents from $145M to $85M  —  - Federal jury trial was limited to damages after 2018 verdict  — Verdict is latest in decade-long saga over royalties



from Techmeme https://ift.tt/2TSZ83T

5 Sites to Find Ethical Alternatives to Tech, Fashion, and Unfair Brands

ethical-alternatives-brands

It’s time to make better choices in what we buy and consume. From using eco-friendly products to buying from companies that treat their workers fairly, here’s how you can find ethical alternatives to anything.

When we talk about making an ethical choice, there are different aspects to look at. For example, how a company behaves with its employees or a firm’s carbon footprint, or even how they treat animals. Importantly, you don’t need to be strict about ethical choices either. The first step is finding out what’s out there.

1. Ethical.net (Web): List of Ethical Tech Alternatives

Ethical.net lists ethical alternatives to technology products, brands, and services

Ethical.net is one of the leading websites to find ethical alternatives to several technological brands, products, and services. It also features articles with different takes on ethical choices, such as a guide to foraging and the ethical and sustainable side of Christmas.

The Resources tab has the long list that you’re looking for. It deals with apps and tech services, such as email and search engines, broadband providers, streaming services, office tools, messaging, etc. But look closely for a few interesting choices.

For instance, it’s no secret that most major companies make smartphones in China where labor is exploited. And there are several privacy implications too.

Ethical.net suggests alternatives for smartphones that adhere to certain ethical standards, like the sustainable and ethical Shiftphone.

Apart from the readymade resources, the website also hosts an active forum where you can discuss such topics with like-minded people. You can learn from each other and find what ethical living is all about, plus get recommendations for things not on the lists.

2. Take Care (Web): Discover Companies Focusing on Sustainability and Ethics

Take Care is a catalogue of companies that focus on sustainability and ethics

Take Care is creating a platform for laypeople to discover companies that focus on sustainable methods and ethical practices. The fields range from food and health to large-scale projects like architecture or biotechnology.

There are so many ethical issues out there, and so many companies are tackling it in their own unique way.

For example, the simple toothpaste you use every day has questionable ingredients and is eventually packaged in non-recyclable plastic. So there’s a company called Bite that’s making zero waste toothpaste tablets, packaged in glass bottles.

It would be difficult to find out about a company like Bite without a platform like Take Care. There are a few featured companies on the main page but dive into the full list to discover innovative solutions to the problems we face today. You might find a simple way to make a difference with a small change.

3. Eticaly, Good On You, and r/EthicalFashion (Web): Fashion Without Ethical Compromises

Eticaly hosts a catalogue of eco-friendly, vegan, handmade, fair trade, and zero waste fashion brands

The fashion, style, and beauty industries are notorious for ethical transgressions such as mistreatment of animals, unfair trade practices, and wasteful productions. But if you thought that looking good requires that compromise, a few websites are here to dispel that notion.

Eticaly and Good On You round up ethical fashion brands, and categorize them based on their values.

Eticaly filters them by eco-friendly, vegan, handmade, fair trade, and zero waste.

Good On You categorizes brands by the type of product, and measures each company’s impact on planet, people, and animals.

Go through the list to find specific issues like organic wear or reusing deadstock fabrics. Both are simple catalogs though, stating what each brand does and linking back to the official store.

r/EthicalFashion is a subreddit to discuss fashion and style choices that take some sort of an ethical stance. The community also maintains a master list of ethical fashion brands to add to what you’ll find at Eticaly or Good On You.

Plus, if you’re unsure about any fashion choice, you could ask others to look into it. It’s a fairly supportive subreddit that tries to help rather than preach.

4. Ethical Consumer (Web): UK-Based Non-Profit Since 1989

Ethical Consumer ranks products and brands, and educates people about the ethical problems across goods

Since 1989, Ethical Consumer magazine has been tracking how companies and products affect different problems such as climate impact, sustainability, fair trade, or human rights violations.

While primarily meant for the UK, the advice on the website is generally applicable anywhere in the world.

The magazine does an excellent job of investigating, scoring, and ranking the ethical and environmental records of several common products. These product guides are largely distributed in categories like energy, fashion and clothing, food and drinks, health and beauty, home and garden, money, retailers, technology, and travel.

In each category, you can also find a cheatsheet for the major issues affecting that industry. Ethical Consumer will explain, in simple terms, the problem and how you can make a difference.

The website also maintains a Boycotts List.

Campaign groups often call for consumers to boycott a certain brand or product due to an ethical violation. Ethical Consumer lists all of them in one page, with a quick explanation of why you should avoid it.

5. Platar (Chrome): Extension to Suggest Alternatives While Shopping

Platar is a Chrome extension that suggests ethical alternatives to products while you're shopping online

You don’t need to remember every single cause you want to support or brand you want to avoid. Google Chrome extension Platar will do that for you, suggesting an ethical alternative while shopping online.

Once you activate Platar, you get to choose from a list of campaigns started by organizations like PETA, Greenpeace, Clean Sugar Campaign, and even Ethical Consumer.

Sign up for those causes you believe in, and Platar will add products from their boycott list. You can even add campaigns yourself, but they’ll have to be approved by the app.

When you’re browsing Amazon or another shopping site and come across one of those products, the Platar icon turns red. Click the icon to find out why the product or brand is recommended for a boycott.

Platar also suggests a few alternatives from brands that aren’t on its no-no list. It’s a convenient way to keep shopping while retaining your conscience.

Download: Platar for Chrome (Free)

For an Eco-Friendly Lifestyle

Being more aware of your purchase decisions is only one step in helping build a better planet. But it’s still an excellent step to take, especially for beginners. If you want to do more and go green, then check out these apps for a more eco-friendly lifestyle.

Image Credit: IgorVetushko/Depositphotos

Read the full article: 5 Sites to Find Ethical Alternatives to Tech, Fashion, and Unfair Brands



from MakeUseOf https://ift.tt/2GmQZg7

UK's science minister Chris Skidmore says the UK won't implement EU's Copyright Directive, which includes Article 13, after the country leaves the EU (Chris Smith/Trusted Reviews)

Chris Smith / Trusted Reviews:
UK's science minister Chris Skidmore says the UK won't implement EU's Copyright Directive, which includes Article 13, after the country leaves the EU  —  One of the most intriguing aspects of Britain's departure from the European Union will be which elements of EU law will be dropped and retained …



from Techmeme https://ift.tt/3aBMQTv

The Best Smart Thermostats for Automating or Controlling Your Home's Temperature


Smart thermostats can totally change how you work with your home. For example, one might totally automate your temperature, while another gives you more control. We’ve compiled a list of our fave smart thermostats, and why they might be right for you.

Read This Article on Review Geek ›



from How-To Geek https://ift.tt/2NWcngc