How does the re-encryption work? Does the data get de-crypted then re-encrypted, or is it always double encrypted? Maybe I'm not understanding the "mutating" crypto part. I think it would help me if you explained that part more.
Parts travel from the base server deep into the network no more than a specified number of steps (8 by default). The path is always random, it may include loops and even hoping onto the same server. When it reaches the max length, the part returns back along the same path but in reverse order.
Before getting the base server, the client encrypts it with the data password supplied by the user.
On the forward path, each data part is encrypted (AES) on each server with that server's password, so at the end of the path of N steps it is encrypted N times. When retracting, on each server it gets decrypted, and then re-encrypted again.
When it comes back to the base server, it immediately starts another random path forward, again being encrypted moving away at the base over and over, while being decrypted/re-encrypted on the way back.
When a user retrieves the file, it asks the base servers to retrieve the relevant parts. The parts travel back to the base servers retracting the path, being decrypted on each of the servers. after all needed parts arrive, the client fetches them from the base parts and decrypts them one last time using the data password.
Next up, digital arrows next to headlines is capable of decision-making (removing physicality).
I'm sorry but this sounds more like a way of measurements and calculations than actual decision-making, as that's been decided by the maker or user of the object.
Okay, seriously, who's with me to pitch the first Hackathon Reality show based on MasterChef and The Voice that features 48-hours of drama, suspense, beautiful graphics and working app at the end?
Has been tried for a game jam. Exploded spectacularly, mostly because the production company didn't understand the game dev culture.
This polygon article has an overview and links to individual positions: https://www.polygon.com/2014/3/31/5568362/game-jam-reality-s...
Or the Y(C)-Factor, where they just televise the YC process.
Given the bizarre effect the X Factor had on the entire ecosystem it operates in you could make a very strong case that it would be a massive net benefit to all participants.
I participated in a startup weekend hackathon that was just about that. They recorded the entire weekend, and specifically pulled people off our team for 'interviews' (which was really a blessing because then we could reach a decision and just move on). We won the hackathon with a beautiful working app. I don't think the show go picked up anywhere.
I feel like I follow this template as well. Except, I like to add a small self assessment at the beginning of the interview. Like:
Q: On a scale from 1 to 10 (1 being low) how do you rate yourself on "Programming Language Du Jour"?
Then I can see if their self assessment is inline with mine. Which can help in reviewing the resume.
I also like to ask for them to choose a project in the past to talk about, because then it's easy to see what they are passionate about. Or easily tell if they are choosing to talk about something because they think, you think, it's cool.
I was asked by a hip, happening, popular web-app related startup to rate myself in C++.
I pointed out that Bjarne Stroustrup rated himself 7 out of 10 once. I wasn't as good as him, and I wasn't nearly as good as him, which left me the field of 5 and below.
I can guarantee that some ham-fisted chancer who'd flicked through the "Teach Yourself C++" chapter summaries put himself down as an 8, though.
Agreed - the answer to this question is really the result of how much one thinks one knows. Because a little knowledge can result in false confidence, those that rate highly will fall into two categories: Those that actually know, and those that don't.
If the interviewer can distinguish between these two categories, then what value does the question add? If the interviewer cannot and is relying on the answer to this question (even partially), then it's an example of relying on a false signal.
Whenever I'm asked this question, I always respond with the following questions:
1) What does a "10" mean?
2) What does a "1" mean?
3) What's the difference between 5, 6 and 7?
4) (Optional, this could easily come across as being snarky) What's the range of levels in your team/org/dept for this metric?
I would welcome the challenge in what rating is what. Because I know they are highly subjective. This is not an adversarial question, it's mainly used as an indicator to gauge where to direct the interview.
I like to interview people across a range of subjects (as I have not had the chance to hire a pure specialist). So knowing what they feel confident in answering will help me tailor the questions to what their perceived strengths are.
So I think it gives me a feel of your confidence level in a language. If you flipped through a "Teach yourself C++ in 24 hours" book once, then rate yourself a 10 on a scale from one to 10. Then not answering basic C++ questions will raise red flags.
If they answer a "1" on something. (And I re-assure them that answering 1 is perfectly ok). Then I can feel a lot more comfortable giving them more hints, or a lot more supporting detail in a question that they have indicated they are not very strong in.
> I can guarantee that some ham-fisted chancer who'd flicked through the "Teach Yourself C++" chapter summaries put himself down as an 8, though.
It's very easy to filter out these guys though. I had one such come to my interview - on a scale 1-10 (10=best) the guy put 8s, 9s and 10s for several programming languages (C++, C#, Java, a few others); and that guy was fresh out of college.
Then during the interview it turned out the guy knows exactly nothing, even when I tried to talk with him about the most basic concepts of OOP (like, what is a class or an object), he couldn't provide any meaningful answer to lead the conversation further.
I have no idea how he hoped to pass an interview, perhaps he thought there wouldn't be anything beyond the online form to fill.
But the self-assessment on a scale of 1-10 just seems like a quick way out for the interviewer and can only serve to find fault with the candidate and to me, doesn't seem like it provides much information.
For example, what does 10 mean? Does that mean that they have mastered the language (and all of its minute details, implementation, etc.) and would find it impossible to learn more? Knowing that, the only possible individuals who would think about rating themselves a 10 are:
1) The language designers themselves. (Possibly not even - see the comment below about Bjarne Stroustrup)
2) Those that think they know the language so well that they would rate themselves a 10.
You're probably not interviewing people from group (1). (Or if you were, you wouldn't ask them this question as it would reflect more on yourself than the candidate) So, if someone rates themselves a 10, you can probably assume they are in group (2) or have otherwise misunderstood the question. I don't know for sure, but I feel there are better ways to rate a candidate other than asking them a question, that, if they answer "10" on, means they aren't suitable and are likely overrating themselves.
So where does that leave us? Most people who are comfortable with the language are likely to rate themselves a 6, 7 or 8, being conservative and not wanting to expose themselves to a tricky follow-up question should they self-rate too highly. Again - this seems to be leading toward gotchas, and seems adversarial.
If you're going to ask for the self-rating, at least limit it to something less fine-grained: Beginner, Novice, Expert/experienced/whatever, so you have an idea for the candidate's comfort level with a particular language. A 1-10 rating is way too granular (what's the difference between 3 and 4?).
But really, I think asking the candidate to rate themselves is really just a spin on the "What's your greatest weakness?" question - it's asking the interviewee to do the interviewer's job.
You ask them to rank themselves on a scale from 1 to 10 to see if they know their limitations. I used to answer 10 for some things when I was young and dumb because I had no perspective of what expert-level knowledge really was. Now that I'm older (and still dumb) at least I know how much I don't know.
When they do give themselves a midrange answer N, the appropriate follow-up is "What do you know that a (N-1) doesn't?" and/or "What would does a (N+1) know that you don't?" Either of these will let you calibrate your internal rating system with their self-assessment. It will also let the candidate demonstrate their understanding of the topic in a non-adversarial way. The follow-up questions might convince them that they should change their initial ranking as well, which is also a useful calibration of their knowledge and meta-knowledge.
The solution to this problem is to follow up the question with "oh, so you're an eight, great, what is something that a seven would have difficulty with?" Make them calibrate the scale for you.
Or flip it around, and ask them what they are going to do in order to get to 9. It shows how self aware they are of their own knowledge gaps and also calibrates the scale.
On the off chance they say 10, well, they better know just about everything.
(TL;DR: Multi-purpose languages are pretty large and used in particular ways across different domains. It doesn't even make sense to ask about the difference between a 7 and an 8. An honest interviewee with become bogged down realizing they're not a competent social science researcher who can design useful fine-grained rubrics, and will refuse to give any answer to these questions except a long-winded and hopefully not too ego-bruising "this is stupid/doesn't make sense/it depends/I'm not a 1. Everyone else in the 3-8 range is just bullshitting the +/-1,2 deltas. So in other words, the entire number and reasoning is completely just BSing.)
> what is something that a seven would have difficulty with?"
My honest answer is "this is an ill-posed question and there's no way of stating for certain that feature X or library Y is something every FooLang developer who's not as good/informed as me doesn't know."
But of course that won't get me the job. So I just pick based upon my perception of your personality/background from the 5-8 range. When asked for justification, I choose the most esoteric-but-not-inconsequential thing I know and bullshit for a minute or two while being personable. Whelp, that was a useful signal as long as your goal as to find a professional bullshitter...
Concretely, I've created stand-alone implementations and hacked on compilers for a couple of languages, but would not have a non-BS answer to this question for those languages. Mostly because I'm totally unfamiliar with the most recent set of popular libraries in that language's ecosystem, and also there are certain language features that I know how to implement but don't know the canonical usage patterns/idioms. Your standard FooLang dev could probably hack together certain programs in their sleep that would take a week for me to write. But then for other programs -- or especially if you needed a static analysis or optimization -- I could whip it up in a couple of days where the standard FooLang dev would probably take weeks just getting up to speed on the language spec and some particularly thorny parts of the implementation. Hm. Apples and Oranges. And what if you want a static analysis/optimization that exploits idiomatic use of FooLang's whizz-bang BarLib? Hm. Not sure who has the upper hand.
I know you'll say "but that's the point -- I want to hear exactly that reasoning so I know what you know/how you assess language familiarity." But this is all meta -- performance on this question crucially depends upon 1) ability to bullshit (i.e., come up with plausible-sounding hypotheses and give plausible reasons for them, quickly and on-the-spot -- this is not a particularly crucial skill in software development); and 2) ability to intuit the purpose of the question.
In conclusion, I'm not really sure what the point of this exercise is, except to select for bullshitters or people who read your HN posts.
> Make them calibrate the scale for you.
You're not just asking for a calibration, you're asking for a rubric and a scale. That makes a lot of sense as an interview task if you're hiring a manager who will be doing lots of interviewing or a business processes/HR processes expert/researcher. I'm not sure why this is a relevant skill for a software engineer, though.
I think voice with a screen is interesting, but voice alone can be difficult. What is the last voice controlled IVR (phone system) that was awesome to interact with. I think it takes a combination of voice and something can can be confirmed with another "button", or something you can touch or push to confirm or cancel what you've "asked" it to do.
I think it can augment things well, but not be the prime time star.
How does this even work? Meaning if I live in WY, but I bank at "Small Union Bank of Delaware" Does that mean I'm using anything with in the realm of the Wyoming Division of Banking? Would just using an ATM put me under their jurisdiction? Because if I by something from Amazon, the transaction is basically from my bank in DE to WA if there are no Physical Amazon locations in WY. Correct?
> if I by something from Amazon, the transaction is basically from my bank in DE to WA if there are no Physical Amazon locations in WY. Correct?
Incorrect. What matters is the state (or states) in which the company is "doing business". The exact definition varies from state to state, but in general having customers in WY means that you're doing business there and will (usually) need to register with the state, follow its rules and pay its taxes for your sales in that state.
Your bank is also doing business in DE and will need to follow their laws too, as the other end of the transaction is there.
But based on the content of the CB Press Release, and the fun we had with NY, I'd say it works as such:
You're a WY resident, and therefore the DE bank must follow the WY policies for your money. Of course this is a BTC/Digital Currency-based regulation, so...
Wouldn't a decentralized web interface be webmail (i.e. Gmail)? Then along the Gmail theme, a plug in could make things look much like a static website. Where "conversation view" becomes a "repository view".
https://github.com/artktec/gopkgr