The right to be a customer of cloudflare (edit: cloudfront typo) is not really a "free internet" either. Personally, I value the right to not do business with nazis over the right to have hate speech backed by a CDN. No one is stopping you from starting your conservative YouTube on your own servers.
I think it's a common argument for people who think biometrics are a bad idea for security.
IE. You can change your password, you can't change your thumb/face/biometric (easily).
At best, a fingerprint establishes identity, therefore it has more in common with a username, drivers license, social security number, etc. than it has in common with a password.
The problem is these people are thinking in terms of absolute security.
Ideally you have a user name, a password, some sort of 2FA and also biometrics.
But the alternative for iPhones was leaving them without even a PIN because entering a 4 digit numeric pin was too much hassle for most people... so Apple lowered the bar and increased security with biometrics.
They are trying to do it again.
If you want ultimate security ,then you can have a very long alphanumeric password, and turn off touchID and faceID
Honestly, a biometric used solely on a device in your possession is not that bad. It is not being transmitted or stored remotely, which would be worse. But it would have been better if it were not a biometric that was being left everywhere.
Nope. At best a fingerprint establishes identity in a unique and authoritative manner. My name is an identity, and anyone can say or write my name. My SSN is an identity, and anyone can say or write my SSN. No one else can speak, type, write, or otherwise express my fingerprint. That is far beyond simple "identity".
That's the point. It's not something I know, it's something I am and only I am that thing.
And unlike a password, if you want my fingerprint you have to be physically near me, and if you want to authenticate as me you need my authentication hardware. A Brazilian hacker isn't going to unlock my iPhone without first flying to the US and then locating me in both space and time to gain access to my fingerprint and my phone simultaneously. But with a password, they could easily go to www.gmail.com and type whatever they want from the comfort of their own home.
There is no identity without authentication. A fingerprint gives a little bit of weak authentication, in the clear, easily observed, easily forged, and irrevocable -- as bad as it gets.
This is a migration problem. A network of only self driving cars is effectively a more complex train without tracks. This does not require an AI, just a very reliable and coordinated state machine. A mixed set of AI and human drivers is much more complex. There is a possible future where towns, countries , certain highways, etc adapt to the needs/demands of humans such that the vehicles and rules of the road combined create the desired environment for autonomous vehicles to thrive. Everyone assumes technology will adapt to us, but history shows that humans do just as much if not more adapting (see: suburbs/highways, industrial revolution, tech addiction, tinder, uber, etc). In many cases this is powerful humans leveraging tech to bend the will and change lives of the masses. Not saying this or good or bad. Just saying... Futurists are generally wrong and overly optimistic (and/or just really good marketers).
Maybe I'm missing something, is this is a platform strictly for developing ML techniques? Or is it intended to actual run in a vehicle... on ubuntu, in a docker container?
I'm no expert, but I would think you'd want a realtime OS for this. Right?
More likely is that the car would have a Linux box running this software that connects to one or more micro controllers. The micro controllers handle any sensors/actuators with real time requirements, and may be running an RTOS or just bare metal.
Hmmm, thanks for the additional info. Still seems like a bad idea. Based on your assertion, what happens when the RTOS/microcontroller does not receive a "decision" before the scheduling deadline? Many things can hang a Linux box... the reason why RTOS exists is because nothing can stop the scheduler. I would be very curious to hear from the Apollo developers. What is the intended platform and developer audience? Is this intended to actually run in a vehicle?
Naming the return value in the function signature will both allocate the named variable, as well as make it the default variable to return.
Returning a new unnamed variable for every return will cause all of the unnamed variables to be allocated.
It's interesting, I don't use this feature of the language... my default way to write this would have been:
func NoNamedReturnParams(i int) (*objectInfo) {
obj := &objectInfo{}
if i == 1 {
// Do one thing
return obj
}
if i == 2 {
// Do another thing
return obj
}
if i == 3 {
// Do one more thing still
return obj
}
// Normal return
return obj
}
I had a bit of a play around with it. It's pretty powerful being able to see <func name> <params type> <return type> in one line ( or possibly multi line )
It really hammers home the concept that a function is a transformation, and of what into what. And I think this syntax would probably encourage pure functions. And it's so useful to allocate the return in the top line. I really like go.
I'm fairly sure that almost every statically typed language has function definitions like that. C, C++, Java, Go, Rust and so on all have that style of function declaration.
Named returns are a Go thing mainly because of defer.
As one would expect. The deferred code runs after the normal code in the function has ended, and before the calling code has resumed. Named return values are in scope and can be read and modified.
I'm thinking of it in the way that the interpreter works in JavaScript with tasks. If you setTimeout(A, 0), inside B, then after B returns, A is called, but any other tasks previously inserted into the queue are called first.
So I think that means I was asking about execution in the same context (as in memory context), unless you mean stack frame by context, in which case, I think i understand that because the caller returns the value of the deferred, they are in the same stack frame, and nothing else could insert in that frame between them. I'm not sure you know what i mean, but do i have it about right?
I don't really understand this, but i think I'm getting somewhere.
It's much simpler than that. It's just a way of defining cleanup functions without having a language-level concept of destructors. Here's an example: https://gobyexample.com/defer.
This simple example should explain everything:
package main
import "fmt"
func function1() {
defer fmt.Println("function1: defer a")
fmt.Println("function1: inside")
defer fmt.Println("function1: defer b")
}
func main() {
fmt.Println("main: before function1")
function1()
fmt.Println("main: after function1")
}
Here is the output:
main: before function1
function1: inside
function1: defer b
function1: defer a
main: after function1
All defers run in LIFO order at the point when a function returns before the function returns execution back to the caller.
Ok now I got they are in scope. About defer, could you think of it like defer makes a function into a function with multiple entry and exit points, possible to be stopped and resumed, like a coroutine?
Ehm, not sure I understood, but I'd say no. Defer is just code that is executed in reverse order upon return from a fuction. It has nothing to do with coroutines. It's a cleaner way to write the usual C syntax of "goto cleanup_x" code.
Go coroutines (goroutines) are functions invoked with the "go" keyword. These cannot be stopped or resumed, but might be (possibly) executed on a different thread. In any case, they are not guaranteed to be executed immediately in the normal flow of the code.
>Ehm, not sure I understood, but I'd say no. Defer is just code that is executed in reverse order upon return from a fuction.
I'd say more like the equivalent of a "finally" clause (or more) for your whole function.
Though not sure about the "executed in reverse order part" -- what's "in reverse order" about Defer? Except if you mean that multiple defers get executed "last seen first"...
defer can refer to and change the return values. This is useful, for example, when the deferred code can trigger an error that one wants to return, https://play.golang.org/p/MBmy9OocAG
Is that actually returning err as the deferred return value of test? In other words, to the caller of test it appears test returns the result of the deferred?
Deferred functions don't return anything. You can modify the values that are returned by the parent function, and those will be returned as the deferred function modified them.
Yep, and one cannot simulate that with local variables. In Go "return v" copies v into the return location before calling the deferred code. If that location is not named, the deferred function has no way to change it, see https://play.golang.org/p/Opg4XI08P7
I got it. That's a neat example. Do you have to define that deferred function inside the caller, in order to reference the name? Or can you factor out deferred functions to be used by various callers and pass in the return names for them to modify?
K&R C had implied type of 'int' for both arguments and return value, and didn't list the types of arguments on the line specifying function name, argument names and return type:
int foo(x,y)
{
return baz(x,y);
}
bar(x,y,z)
short x;
int z;
{
return x+y+z;
}
baz(x,y,z)
{
return 42;
}
I'm running 4.6 kernel "testing" on a MacBook Air 7,2 as my daily driver. It is rock solid. Wifi, Backlight brightness control and FaceTime camera will not work out of the box, however they can be made to work.
Expected to spend a weekend getting it all working. It's not for everyone, but if you want to better understand Linux, running it everyday is a great way to be fully immersed. It's also nice to have a desktop environment (openbox/lxde) that only uses 263MB ram on startup instead of a massive OS full of features I do not need or use. So yea, let's say the machine rarely swaps.
This is by no means exhaustive, but some things that I'm running and work well for me:
Thank you for mentioning adrenaclick. Generics have been completely missing from the public debate. While epipen price gouging is very real, and a problem, there is one short term solution for allergy sufferers: demand an Rx for the generic. They are under $200 (source: checkyourmeds.com). Vote with your wallet!!
Looks like the differences are: extra safety cap and Epipen brand has an auto-retracting needle.
Great business to be in, attach an auto injection mechanism to maybe $5 worth of syringe and epinephrine.
Then undercut your competition by over 60%. I hope they do well. If more generic manufacturers get in on this or the patent expires we might see this go down to a more reasonable <$50 price, but this is definitely a step in the right direction.
Unfortunately there is no generic for Epipen. Unless you have been written a prescription for Adrenaclick specifically, you can't get it, or the generic version.
One of the big advantages of microservices is scaling/migrating the databases behind each service independently. If you need transactions across multiple services then one could argue that either your API endpoint is doing too much, or your services are doing too little. It's not perfect, and certainly not always convenient, but it's a balance. Microservices with a common DB is asking for trouble. The monolith is a better option in that case IMO.
Not that odd if you are trying to represent a chunk of a file with a single url, which would be desirable if you were serving video manifest/playlist files like m3u8 (HLS) or f4m (HDS). IIRC Netflix is using HDS.
Edit: not sure what format they are using, probably several depending on the client... But one url per chunk makes sense for multiple delivery formats as well.
This advice was given to me by a friend when I was dealing with less than ideal employment situations.
1) Change the way you feel about the situation. Is this a me issue?
2) Change the situation externally. Talk to management, etc.
3) Leave
It sounds like you've tried #1 and #2 to some extent. I was in a similar situation. I left the company, and found a much healthier environment where I can actually use #1 and #2.