7 Binary Options – FXPRIMUS

Facebook Connect / Quest 2 - Speculations Megathread

EDIT: MAJOR UPDATE AT BOTTOM
Welcome to the "Speculations" mega thread for the device possibly upcoming in the Oculus Quest line-up. This thread will be a compilation of leaks, speculation & rumors updated as new information comes out.
Let's have some fun and go over some of the leaks, rumors, speculation all upcoming before Facebook Connect, we'll have a full mega thread going during Connect, but this should be a great thread for remembrance afterward.
Facebook Connect is happening September 16th at 10 AM PST, more information can be found here.

Leaks
In March, Facebook’s public Developer Documentation website started displaying a new device called ‘Del Mar’, with a ‘First Access’ program for developers.
In May, we got the speculated specs, based off the May Bloomberg Report (Original Paywall Link)
• “at least 90Hz” refresh rate
• 10% to 15% smaller than the current Quest
• around 20% lighter
• “the removal of the fabric from the sides and replacing it with more plastic”
• “changing the materials used in the straps to be more elastic than the rubber and velcro currently used”
• “a redesigned controller that is more comfortable and fixes a problem with the existing controller”

On top of that, the "Jedi Controller" drivers leaked, which are now assumed to be V3 Touch Controllers for the upcoming device.
The IMUs seem significantly improved & the reference to a 60Hz (vs 30hz) also seems to imply improved tracking.
It's also said to perhaps have improved haptics & analog finger sensing instead of binary/digital.
Now as of more recent months, we had the below leaks.
Render (1), (2)
Walking Cat seems to believe the device is called "Quest 2", unfortunately since then, his twitter has been taken down.
Real-life pre-release model photos
Possible IPD Adjustment
From these photos and details we can discern that:
Further features speculation based on firmware digging (thanks Reggy04 from the VR Discord for quite a few of these), as well as other sources, all linked.

Additional Sources: 1/2/3/4
Headset Codenames
We've seen a few codenames going around at this point, Reggy04 provided this screenshot that shows the following new codenames.
Pricing Rumors
So far, the most prevalent pricing we've seen is 299 for 64gb, and 399 for 256GB
These were shown by a Walmart page for Point Reyes with a release date of September 16 and a Target price leak with a street date of October 13th

Speculation
What is this headset?
Speculation so far is this headset is a Quest S or Quest 2
OR
This is a flat-out cheaper-to-manufacture, small upgrade to the Oculus Quest to keep up with demand and to iterate the design slowly.
Again, This is all speculation, nothing is confirmed or set in stone.
What do you think this is and what we'll see at FB Connect? Let's talk!
Rather chat live? Join us on the VR Discord
EDIT: MAJOR UPDATE - Leaked Videos.
6GB of RAM, XR2 Platform, "almost 4k display" (nearly 2k per eye) Source
I am mirroring all the videos in case they get pulled down.
Mirrors: Oculus Hand Tracking , Oculus Casting, Health and Safety, Quest 2 Instructions, Inside the Upgrade
submitted by charliefrench2oo8 to OculusQuest [link] [comments]

First Time Going Through Coding Interviews?

This post draws on my personal experiences and challenges over the past term at school, which I entered with hardly any knowledge of DSA (data structures and algorithms) and problem-solving strategies. As a self-taught programmer, I was a lot more familiar and comfortable with general programming, such as object-oriented programming, than with the problem-solving skills required in DSA questions.
This post reflects my journey throughout the term and the resources I turned to in order to quickly improve for my coding interview.
Here're some common questions and answers
What's the interview process like at a tech company?
Good question. It's actually pretty different from most other companies.

(What It's Like To Interview For A Coding Job

First time interviewing for a tech job? Not sure what to expect? This article is for you.

Here are the usual steps:

  1. First, you’ll do a non-technical phone screen.
  2. Then, you’ll do one or a few technical phone interviews.
  3. Finally, the last step is an onsite interview.
Some companies also throw in a take-home code test—sometimes before the technical phone interviews, sometimes after.
Let’s walk through each of these steps.

The non-technical phone screen

This first step is a quick call with a recruiter—usually just 10–20 minutes. It's very casual.
Don’t expect technical questions. The recruiter probably won’t be a programmer.
The main goal is to gather info about your job search. Stuff like:

  1. Your timeline. Do you need to sign an offer in the next week? Or are you trying to start your new job in three months?
  2. What’s most important to you in your next job. Great team? Flexible hours? Interesting technical challenges? Room to grow into a more senior role?
  3. What stuff you’re most interested in working on. Front end? Back end? Machine learning?
Be honest about all this stuff—that’ll make it easier for the recruiter to get you what you want.
One exception to that rule: If the recruiter asks you about your salary expectations on this call, best not to answer. Just say you’d rather talk about compensation after figuring out if you and the company are a good fit. This’ll put you in a better negotiating position later on.

The technical phone interview(s)

The next step is usually one or more hour-long technical phone interviews.
Your interviewer will call you on the phone or tell you to join them on Skype or Google Hangouts. Make sure you can take the interview in a quiet place with a great internet connection. Consider grabbing a set of headphones with a good microphone or a bluetooth earpiece. Always test your hardware beforehand!
The interviewer will want to watch you code in real time. Usually that means using a web-based code editor like Coderpad or collabedit. Run some practice problems in these tools ahead of time, to get used to them. Some companies will just ask you to share your screen through Google Hangouts or Skype.
Turn off notifications on your computer before you get started—especially if you’re sharing your screen!
Technical phone interviews usually have three parts:

  1. Beginning chitchat (5–10 minutes)
  2. Technical challenges (30–50 minutes)
  3. Your turn to ask questions (5–10 minutes)
The beginning chitchat is half just to help your relax, and half actually part of the interview. The interviewer might ask some open-ended questions like:

  1. Tell me about yourself.
  2. Tell me about something you’ve built that you’re particularly proud of.
  3. I see this project listed on your resume—tell me more about that.
You should be able to talk at length about the major projects listed on your resume. What went well? What didn’t? How would you do things differently now?
Then come the technical challenges—the real meet of the interview. You’ll spend most of the interview on this. You might get one long question, or several shorter ones.
What kind of questions can you expect? It depends.
Startups tend to ask questions aimed towards building or debugging code. (“Write a function that takes two rectangles and figures out if they overlap.”). They’ll care more about progress than perfection.
Larger companies will want to test your general know-how of data structures and algorithms (“Write a function that checks if a binary tree is ‘balanced’ in O(n)O(n) ↴ time.”). They’ll care more about how you solve and optimize a problem.
With these types of questions, the most important thing is to be communicating with your interviewer throughout. You'll want to "think out loud" as you work through the problem. For more info, check out our more detailed step-by-step tips for coding interviews.
If the role requires specific languages or frameworks, some companies will ask trivia-like questions (“In Python, what’s the ‘global interpreter lock’?”).
After the technical questions, your interviewer will open the floor for you to ask them questions. Take some time before the interview to comb through the company’s website. Think of a few specific questions about the company or the role. This can really make you stand out.
When you’re done, they should give you a timeframe on when you’ll hear about next steps. If all went well, you’ll either get asked to do another phone interview, or you’ll be invited to their offices for an onsite.

The onsite interview

An onsite interview happens in person, at the company’s office. If you’re not local, it’s common for companies to pay for a flight and hotel room for you.
The onsite usually consists of 2–6 individual, one-on-one technical interviews (usually in a small conference room). Each interview will be about an hour and have the same basic form as a phone screen—technical questions, bookended by some chitchat at the beginning and a chance for you to ask questions at the end.
The major difference between onsite technical interviews and phone interviews though: you’ll be coding on a whiteboard.
This is awkward at first. No autocomplete, no debugging tools, no delete button…ugh. The good news is, after some practice you get used to it. Before your onsite, practice writing code on a whiteboard (in a pinch, a pencil and paper are fine). Some tips:

  1. Start in the top-most left corner of the whiteboard. This gives you the most room. You’ll need more space than you think.
  2. Leave a blank line between each line as you write your code. Makes it much easier to add things in later.
  3. Take an extra second to decide on your variable names. Don’t rush this part. It might seem like a waste of time, but using more descriptive variable names ultimately saves you time because it makes you less likely to get confused as you write the rest of your code.
If a technical phone interview is a sprint, an onsite is a marathon. The day can get really long. Best to keep it open—don’t make other plans for the afternoon or evening.
When things go well, you’ wrap-up by chatting with the CEO or some other director. This is half an interview, half the company trying to impress you. They may invite you to get drinks with the team after hours.
All told, a long day of onsite interviews could look something like this:

If they let you go after just a couple interviews, it’s usually a sign that they’re going to pass on you. That’s okay—it happens!
There are are a lot of easy things you can do the day before and morning of your interview to put yourself in the best possible mindset. Check out our piece on what to do in the 24 hours before your onsite coding interview.

The take-home code test

Code tests aren’t ubiquitous, but they seem to be gaining in popularity. They’re far more common at startups, or places where your ability to deliver right away is more important than your ability to grow.
You’ll receive a description of an app or service, a rough time constraint for writing your code, and a deadline for when to turn it in. The deadline is usually negotiable.
Here's an example problem:
Write a basic “To-Do” app. Unit test the core functionality. As a bonus, add a “reminders” feature. Try to spend no more than 8 hours on it, and send in what you have by Friday with a small write-up.
Take a crack at the “bonus” features if they include any. At the very least, write up how you would implement it.
If they’re hiring for people with knowledge of a particular framework, they might tell you what tech to use. Otherwise, it’ll be up to you. Use what you’re most comfortable with. You want this code to show you at your best.
Some places will offer to pay you for your time. It's rare, but some places will even invite you to work with them in their office for a few days, as a "trial.")
Do I need to know this "big O" stuff?
Big O notation is the language we use for talking about the efficiency of data structures and algorithms.
Will it come up in your interviews? Well, it depends. There are different types of interviews.
There’s the classic algorithmic coding interview, sometimes called the “Google-style whiteboard interview.” It’s focused on data structures and algorithms (queues and stacks, binary search, etc).
That’s what our full course prepares you for. It's how the big players interview. Google, Facebook, Amazon, Microsoft, Oracle, LinkedIn, etc.
For startups and smaller shops, it’s a mixed bag. Most will ask at least a few algorithmic questions. But they might also include some role-specific stuff, like Java questions or SQL questions for a backend web engineer. They’ll be especially interested in your ability to ship code without much direction. You might end up doing a code test or pair-programming exercise instead of a whiteboarding session.
To make sure you study for the right stuff, you should ask your recruiter what to expect. Send an email with a question like, “Is this interview going to cover data structures and algorithms? Or will it be more focused around coding in X language.” They’ll be happy to tell you.
If you've never learned about data structures and algorithms, or you're feeling a little rusty, check out our Intuitive Guide to Data Structures and Algorithms.
Which programming language should I use?
Companies usually let you choose, in which case you should use your most comfortable language. If you know a bunch of languages, prefer one that lets you express more with fewer characters and fewer lines of code, like Python or Ruby. It keeps your whiteboard cleaner.
Try to stick with the same language for the whole interview, but sometimes you might want to switch languages for a question. E.g., processing a file line by line will be far easier in Python than in C++.
Sometimes, though, your interviewer will do this thing where they have a pet question that’s, for example, C-specific. If you list C on your resume, they’ll ask it.
So keep that in mind! If you’re not confident with a language, make that clear on your resume. Put your less-strong languages under a header like ‘Working Knowledge.’
What should I wear?
A good rule of thumb is to dress a tiny step above what people normally wear to the office. For most west coast tech companies, the standard digs are just jeans and a t-shirt. Ask your recruiter what the office is like if you’re worried about being too casual.
Should I send a thank-you note?
Thank-you notes are nice, but they aren’t really expected. Be casual if you send one. No need for a hand-calligraphed note on fancy stationery. Opt for a short email to your recruiter or the hiring manager. Thank them for helping you through the process, and ask them to relay your thanks to your interviewers.
1) Coding Interview Tips
How to get better at technical interviews without practicing
Chitchat like a pro.
Before diving into code, most interviewers like to chitchat about your background. They're looking for:

You should have at least one:

Nerd out about stuff. Show you're proud of what you've done, you're amped about what they're doing, and you have opinions about languages and workflows.
Communicate.
Once you get into the coding questions, communication is key. A candidate who needed some help along the way but communicated clearly can be even better than a candidate who breezed through the question.
Understand what kind of problem it is. There are two types of problems:

  1. Coding. The interviewer wants to see you write clean, efficient code for a problem.
  2. Chitchat. The interviewer just wants you to talk about something. These questions are often either (1) high-level system design ("How would you build a Twitter clone?") or (2) trivia ("What is hoisting in Javascript?"). Sometimes the trivia is a lead-in for a "real" question e.g., "How quickly can we sort a list of integers? Good, now suppose instead of integers we had . . ."
If you start writing code and the interviewer just wanted a quick chitchat answer before moving on to the "real" question, they'll get frustrated. Just ask, "Should we write code for this?"
Make it feel like you're on a team. The interviewer wants to know what it feels like to work through a problem with you, so make the interview feel collaborative. Use "we" instead of "I," as in, "If we did a breadth-first search we'd get an answer in O(n)O(n) time." If you get to choose between coding on paper and coding on a whiteboard, always choose the whiteboard. That way you'll be situated next to the interviewer, facing the problem (rather than across from her at a table).
Think out loud. Seriously. Say, "Let's try doing it this way—not sure yet if it'll work." If you're stuck, just say what you're thinking. Say what might work. Say what you thought could work and why it doesn't work. This also goes for trivial chitchat questions. When asked to explain Javascript closures, "It's something to do with scope and putting stuff in a function" will probably get you 90% credit.
Say you don't know. If you're touching on a fact (e.g., language-specific trivia, a hairy bit of runtime analysis), don't try to appear to know something you don't. Instead, say "I'm not sure, but I'd guess $thing, because...". The because can involve ruling out other options by showing they have nonsensical implications, or pulling examples from other languages or other problems.
Slow the eff down. Don't confidently blurt out an answer right away. If it's right you'll still have to explain it, and if it's wrong you'll seem reckless. You don't win anything for speed and you're more likely to annoy your interviewer by cutting her off or appearing to jump to conclusions.
Get unstuck.
Sometimes you'll get stuck. Relax. It doesn't mean you've failed. Keep in mind that the interviewer usually cares more about your ability to cleverly poke the problem from a few different angles than your ability to stumble into the correct answer. When hope seems lost, keep poking.
Draw pictures. Don't waste time trying to think in your head—think on the board. Draw a couple different test inputs. Draw how you would get the desired output by hand. Then think about translating your approach into code.
Solve a simpler version of the problem. Not sure how to find the 4th largest item in the set? Think about how to find the 1st largest item and see if you can adapt that approach.
Write a naive, inefficient solution and optimize it later. Use brute force. Do whatever it takes to get some kind of answer.
Think out loud more. Say what you know. Say what you thought might work and why it won't work. You might realize it actually does work, or a modified version does. Or you might get a hint.
Wait for a hint. Don't stare at your interviewer expectantly, but do take a brief second to "think"—your interviewer might have already decided to give you a hint and is just waiting to avoid interrupting.
Think about the bounds on space and runtime. If you're not sure if you can optimize your solution, think about it out loud. For example:

Get your thoughts down.
It's easy to trip over yourself. Focus on getting your thoughts down first and worry about the details at the end.
Call a helper function and keep moving. If you can't immediately think of how to implement some part of your algorithm, big or small, just skip over it. Write a call to a reasonably-named helper function, say "this will do X" and keep going. If the helper function is trivial, you might even get away with never implementing it.
Don't worry about syntax. Just breeze through it. Revert to English if you have to. Just say you'll get back to it.
Leave yourself plenty of room. You may need to add code or notes in between lines later. Start at the top of the board and leave a blank line between each line.
Save off-by-one checking for the end. Don't worry about whether your for loop should have "<<" or "<=<=." Write a checkmark to remind yourself to check it at the end. Just get the general algorithm down.
Use descriptive variable names. This will take time, but it will prevent you from losing track of what your code is doing. Use names_to_phone_numbers instead of nums. Imply the type in the name. Functions returning booleans should start with "is_*". Vars that hold a list should end with "s." Choose standards that make sense to you and stick with them.
Clean up when you're done.
Walk through your solution by hand, out loud, with an example input. Actually write down what values the variables hold as the program is running—you don't win any brownie points for doing it in your head. This'll help you find bugs and clear up confusion your interviewer might have about what you're doing.
Look for off-by-one errors. Should your for loop use a "<=<=" instead of a "<<"?
Test edge cases. These might include empty sets, single-item sets, or negative numbers. Bonus: mention unit tests!
Don't be boring. Some interviewers won't care about these cleanup steps. If you're unsure, say something like, "Then I'd usually check the code against some edge cases—should we do that next?"
Practice.
In the end, there's no substitute for running practice questions.
Actually write code with pen and paper. Be honest with yourself. It'll probably feel awkward at first. Good. You want to get over that awkwardness now so you're not fumbling when it's time for the real interview.

2) Tricks For Getting Unstuck During a Coding Interview
Getting stuck during a coding interview is rough.
If you weren’t in an interview, you might take a break or ask Google for help. But the clock is ticking, and you don’t have Google.
You just have an empty whiteboard, a smelly marker, and an interviewer who’s looking at you expectantly. And all you can think about is how stuck you are.
You need a lifeline for these moments—like a little box that says “In Case of Emergency, Break Glass.”
Inside that glass box? A list of tricks for getting unstuck. Here’s that list of tricks.
When you’re stuck on getting started
1) Write a sample input on the whiteboard and turn it into the correct output "by hand." Notice the process you use. Look for patterns, and think about how to implement your process in code.
Trying to reverse a string? Write “hello” on the board. Reverse it “by hand”—draw arrows from each character’s current position to its desired position.
Notice the pattern: it looks like we’re swapping pairs of characters, starting from the outside and moving in. Now we’re halfway to an algorithm.
2) Solve a simpler version of the problem. Remove or simplify one of the requirements of the problem. Once you have a solution, see if you can adapt that approach for the original question.
Trying to find the k-largest element in a set? Walk through finding the largest element, then the second largest, then the third largest. Generalizing from there to find the k-largest isn’t so bad.
3) Start with an inefficient solution. Even if it feels stupidly inefficient, it’s often helpful to start with something that’ll return the right answer. From there, you just have to optimize your solution. Explain to your interviewer that this is only your first idea, and that you suspect there are faster solutions.
Suppose you were given two lists of sorted numbers and asked to find the median of both lists combined. It’s messy, but you could simply:

  1. Concatenate the arrays together into a new array.
  2. Sort the new array.
  3. Return the value at the middle index.
Notice that you could’ve also arrived at this algorithm by using trick (2): Solve a simpler version of the problem. “How would I find the median of one sorted list of numbers? Just grab the item at the middle index. Now, can I adapt that approach for getting the median of two sorted lists?”
When you’re stuck on finding optimizations
1) Look for repeat work. If your current solution goes through the same data multiple times, you’re doing unnecessary repeat work. See if you can save time by looking through the data just once.
Say that inside one of your loops, there’s a brute-force operation to find an element in an array. You’re repeatedly looking through items that you don’t have to. Instead, you could convert the array to a lookup table to dramatically improve your runtime.
2) Look for hints in the specifics of the problem. Is the input array sorted? Is the binary tree balanced? Details like this can carry huge hints about the solution. If it didn’t matter, your interviewer wouldn’t have brought it up. It’s a strong sign that the best solution to the problem exploits it.
Suppose you’re asked to find the first occurrence of a number in a sorted array. The fact that the array is sorted is a strong hint—take advantage of that fact by using a binary search.

Sometimes interviewers leave the question deliberately vague because they want you to ask questions to unearth these important tidbits of context. So ask some questions at the beginning of the problem.
3) Throw some data structures at the problem. Can you save time by using the fast lookups of a hash table? Can you express the relationships between data points as a graph? Look at the requirements of the problem and ask yourself if there’s a data structure that has those properties.
4) Establish bounds on space and runtime. Think out loud about the parameters of the problem. Try to get a sense for how fast your algorithm could possibly be:

When All Else Fails
1) Make it clear where you are. State what you know, what you’re trying to do, and highlight the gap between the two. The clearer you are in expressing exactly where you’re stuck, the easier it is for your interviewer to help you.
2) Pay attention to your interviewer. If she asks a question about something you just said, there’s probably a hint buried in there. Don’t worry about losing your train of thought—drop what you’re doing and dig into her question.
Relax. You’re supposed to get stuck.
Interviewers choose hard problems on purpose. They want to see how you poke at a problem you don’t immediately know how to solve.
Seriously. If you don’t get stuck and just breeze through the problem, your interviewer’s evaluation might just say “Didn’t get a good read on candidate’s problem-solving process—maybe she’d already seen this interview question before?”
On the other hand, if you do get stuck, use one of these tricks to get unstuck, and communicate clearly with your interviewer throughout...that’s how you get an evaluation like, “Great problem-solving skills. Hire.”

3) Fixing Impostor Syndrome in Coding Interviews
“It's a fluke that I got this job interview...”
“I studied for weeks, but I’m still not prepared...”
“I’m not actually good at this. They’re going to see right through me...”
If any of these thoughts resonate with you, you're not alone. They are so common they have a name: impostor syndrome.
It’s that feeling like you’re on the verge of being exposed for what you really are—an impostor. A fraud.
Impostor syndrome is like kryptonite to coding interviews. It makes you give up and go silent.
You might stop asking clarifying questions because you’re afraid they’ll sound too basic. Or you might neglect to think out loud at the whiteboard, fearing you’ll say something wrong and sound incompetent.
You know you should speak up, but the fear of looking like an impostor makes that really, really hard.
Here’s the good news: you’re not an impostor. You just feel like an impostor because of some common cognitive biases about learning and knowledge.
Once you understand these cognitive biases—where they come from and how they work—you can slowly fix them. You can quiet your worries about being an impostor and keep those negative thoughts from affecting your interviews.

Everything you could know

Here’s how impostor syndrome works.
Software engineering is a massive field. There’s a huge universe of things you could know. Huge.
In comparison to the vast world of things you could know, the stuff you actually know is just a tiny sliver:
That’s the first problem. It feels like you don’t really know that much, because you only know a tiny sliver of all the stuff there is to know.

The expanding universe

It gets worse: counterintuitively, as you learn more, your sliver of knowledge feels like it's shrinking.
That's because you brush up against more and more things you don’t know yet. Whole disciplines like machine learning, theory of computation, and embedded systems. Things you can't just pick up in an afternoon. Heavy bodies of knowledge that take months to understand.
So the universe of things you could know seems to keep expanding faster and faster—much faster than your tiny sliver of knowledge is growing. It feels like you'll never be able to keep up.

What everyone else knows

Here's another common cognitive bias: we assume that because something is easy for us, it must be easy for everyone else. So when we look at our own skills, we assume they're not unique. But when we look at other people's skills, we notice the skills they have that we don't have.
The result? We think everyone’s knowledge is a superset of our own:
This makes us feel like everyone else is ahead of us. Like we're always a step behind.
But the truth is more like this:
There's a whole area of stuff you know that neither Aysha nor Bruno knows. An area you're probably blind to, because you're so focused on the stuff you don't know.

We’ve all had flashes of realizing this. For me, it was seeing the back end code wizard on my team—the one that always made me feel like an impostor—spend an hour trying to center an image on a webpage.

It's a problem of focus

Focusing on what you don't know causes you to underestimate what you do know. And that's what causes impostor syndrome.
By looking at the vast (and expanding) universe of things you could know, you feel like you hardly know anything.
And by looking at what Aysha and Bruno know that you don't know, you feel like you're a step behind.
And interviews make you really focus on what you don't know. You focus on what could go wrong. The knowledge gaps your interviewers might find. The questions you might not know how to answer.
But remember:
Just because Aysha and Bruno know some things you don't know, doesn't mean you don't also know things Aysha and Bruno don't know.
And more importantly, everyone's body of knowledge is just a teeny-tiny sliver of everything they could learn. We all have gaps in our knowledge. We all have interview questions we won't be able to answer.
You're not a step behind. You just have a lot of stuff you don't know yet. Just like everyone else.

4) The 24 Hours Before Your Interview

Feeling anxious? That’s normal. Your body is telling you you’re about to do something that matters.

The twenty-four hours before your onsite are about finding ways to maximize your performance. Ideally, you wanna be having one of those days, where elegant code flows effortlessly from your fingertips, and bugs dare not speak your name for fear you'll squash them.
You need to get your mind and body in The Zone™ before you interview, and we've got some simple suggestions to help.
5) Why You're Hitting Dead Ends In Whiteboard Interviews

The coding interview is like a maze

Listening vs. holding your train of thought

Finally! After a while of shooting in the dark and frantically fiddling with sample inputs on the whiteboard, you've came up with an algorithm for solving the coding question your interviewer gave you.
Whew. Such a relief to have a clear path forward. To not be flailing anymore.
Now you're cruising, getting ready to code up your solution.
When suddenly, your interviewer throws you a curve ball.
"What if we thought of the problem this way?"
You feel a tension we've all felt during the coding interview:
"Try to listen to what they're saying...but don't lose your train of thought...ugh, I can't do both!"
This is a make-or-break moment in the coding interview. And so many people get it wrong.
Most candidates end up only half understanding what their interviewer is saying. Because they're only half listening. Because they're desperately clinging to their train of thought.
And it's easy to see why. For many of us, completely losing track of what we're doing is one of our biggest coding interview fears. So we devote half of our mental energy to clinging to our train of thought.
To understand why that's so wrong, we need to understand the difference between what we see during the coding interview and what our interviewer sees.

The programming interview maze

Working on a coding interview question is like walking through a giant maze.
You don't know anything about the shape of the maze until you start wandering around it. You might know vaguely where the solution is, but you don't know how to get there.
As you wander through the maze, you might find a promising path (an approach, a way to break down the problem). You might follow that path for a bit.
Suddenly, your interviewer suggests a different path:
But from what you can see so far of the maze, your approach has already gotten you halfway there! Losing your place on your current path would mean a huge step backwards. Or so it seems.
That's why people hold onto their train of thought instead of listening to their interviewer. Because from what they can see, it looks like they're getting somewhere!
But here's the thing: your interviewer knows the whole maze. They've asked this question 100 times.

I'm not exaggerating: if you interview candidates for a year, you can easily end up asking the same question over 100 times.
So if your interviewer is suggesting a certain path, you can bet it leads to an answer.
And your seemingly great path? There's probably a dead end just ahead that you haven't seen yet:
Or it could just be a much longer route to a solution than you think it is. That actually happens pretty often—there's an answer there, but it's more complicated than you think.

Hitting a dead end is okay. Failing to listen is not.

Your interviewer probably won't fault you for going down the wrong path at first. They've seen really smart engineers do the same thing. They understand it's because you only have a partial view of the maze.
They might have let you go down the wrong path for a bit to see if you could keep your thinking organized without help. But now they want to rush you through the part where you discover the dead end and double back. Not because they don't believe you can manage it yourself. But because they want to make sure you have enough time to finish the question.
But here's something they will fault you for: failing to listen to them. Nobody wants to work with an engineer who doesn't listen.
So when you find yourself in that crucial coding interview moment, when you're torn between holding your train of thought and considering the idea your interviewer is suggesting...remember this:
Listening to your interviewer is the most important thing.
Take what they're saying and run with it. Think of the next steps that follow from what they're saying.
Even if it means completely leaving behind the path you were on. Trust the route your interviewer is pointing you down.
Because they can see the whole maze.
6) How To Get The Most Out Of Your Coding Interview Practice Sessions
When you start practicing for coding interviews, there’s a lot to cover. You’ll naturally wanna brush up on technical questions. But how you practice those questions will make a big difference in how well you’re prepared.
Here’re a few tips to make sure you get the most out of your practice sessions.
Track your weak spots
One of the hardest parts of practicing is knowing what to practice. Tracking what you struggle with helps answer that question.
So grab a fresh notebook. After each question, look back and ask yourself, “What did I get wrong about this problem at first?” Take the time to write down one or two things you got stuck on, and what helped you figure them out. Compare these notes to our tips for getting unstuck.
After each full practice session, read through your entire running list. Read it at the beginning of each practice session too. This’ll add a nice layer of rigor to your practice, so you’re really internalizing the lessons you’re learning.
Use an actual whiteboard
Coding on a whiteboard is awkward at first. You have to write out every single character, and you can’t easily insert or delete blocks of code.
Use your practice sessions to iron out that awkwardness. Run a few problems on a piece of paper or, if you can, a real whiteboard. A few helpful tips for handwriting code:

Set a timer
Get a feel for the time pressure of an actual interview. You should be able to finish a problem in 30–45 minutes, including debugging your code at the end.
If you’re just starting out and the timer adds too much stress, put this technique on the shelf. Add it in later as you start to get more comfortable with solving problems.
Think out loud
Like writing code on a whiteboard, this is an acquired skill. It feels awkward at first. But your interviewer will expect you to think out loud during the interview, so you gotta power through that awkwardness.
A good trick to get used to talking out loud: Grab a buddy. Another engineer would be great, but you can also do this with a non-technical friend.
Have your buddy sit in while you talk through a problem. Better yet—try loading up one of our questions on an iPad and giving that to your buddy to use as a script!
Set aside a specific time of day to practice.
Give yourself an hour each day to practice. Commit to practicing around the same time, like after you eat dinner. This helps you form a stickier habit of practicing.
Prefer small, daily doses of practice to doing big cram sessions every once in a while. Distributing your practice sessions helps you learn more with less time and effort in the long run.
part -2 will be upcoming in another post !
submitted by Cyberrockz to u/Cyberrockz [link] [comments]

Hey motherfuckers, what's up ?

sitbomm here with another MASTER PIECE full of good shit Let's get started on this shit ASAP cuz i have no time to waste and i want to make this shit as short and straight to the point as possible this will be the HOLYGRAIL of making BIG fucking money just trading binary options online, ok ?! i want to tell you that i will teach you the strategies with REAL MONEY ACCOUNTS EXAMPLES, not bullshit DEMO ACCOUNTS but REAL MONEY ACCOUNTS exactly like on my VIDEO PROOFS too that i included on these folder where you got this guide where you can see myself making $3950 USD and more within FEW MINUTES on a fucking REAL MONEY ACCOUNTS LIVE in front of you, ok guys ?! so all the EXAMPLE images that will be shown here are all from REAL MONEY ACCOUNTS and REAL WON TRADES and REAL FUCKING MONEY made by myself ! so let's get started ! First of all guys i want to share with you the BEST and my FAVORITE BROKERS starting by my FAVORITE ONE now... their only problem is that they don't accept USA customers but that is not a problem cuz i have a way to teach you guys if you are from USA, to sign up with them and use them even though you NOT on USA
The way you guys will do to sign up with them even if you are in USA is FIRST you will buy a license of this VPN called www.COM on website > www.com it is VERY CHEAP... cuz with this VPN, you can pick up any server from a country that is accepted on their site like BRAZIL for example so you pick up their BRAZIL SERVER and use it this will give you a BRAZIL IP ADDRESS on your machine and what will happen is their site will detect it and think that you are in brazil, instead of USA, you know ?! and for sign up '' details '' you can use this site > www.fakenamegenerator.com and select there BRAZIL country and brazil details they will generate some fake ass brazil fullz details for you and you use this details to sign up... and that is ALL YOU NEED.. cuz WHAT WE WANT FROM THEIR SITE IS THEIR '' DEMO MODE '' cuz on their demo mode they give us '' THEIR CHART '' which is the BEST CHART ON WHOLE INTERNET i can GUARANTEE you that, guys ! i been on this trading thing for LONGER THAN ALL YOU and i know which ones are the best and which ones are not so believe me when i say IQ OPTION IS THE BEST CHART! so by signing up like that, you will have access to their demo mode immediately and this is WHAT WE WANT cuz to put my methods and trading strategies to work you guys will have to PRACTICE IT for 2 weeks MINIMUM ! before you even think about jumping on the REAL MONEY accounts... and then when you go to start on real money accounts you can use the other 2 best brokers like bitplutos and finpari this is exactly what i do too i have accounts on ALL THREE brokers and when i go trade on the other 2 i use IQ OPTION demo mode charts along with the other broker bitplutos for example open on my MOBILE PHONE using their mobile app so this way i can TRADE ON THEIR MOBILE APP while using the IQ OPTION chart open at SAME TIME on demo so i can WATCH THE MARKET and spot the perfect trading opportunities based on my strategies and place the trade on the mobile at the SAME INSTANT that they pop up on the chart on IQ this is EXACTLY what i was doing on that VIDEO PROOF that i have included in this folder here with name '' Undeniable Proof $3950 in few minutes! '' i was using IQ options chart open at same time of bitplutos app on my mobile phone, to make that $3950 USD in few minutes!
submitted by sitbomm to wallstreetbets [link] [comments]

Binary Options Review; Best Binary Options Brokers

Binary Options Review; Best Binary Options Brokers

Binary Options Review; Best Binary Options Brokers
We have compared the best regulated binary options brokers and platforms in May 2020 and created this top list. Every binary options company here has been personally reviewed by us to help you find the best binary options platform for both beginners and experts. The broker comparison list below shows which binary trading sites came out on top based on different criteria.
You can put different trading signals into consideration such as using payout (maximum returns), minimum deposit, bonus offers, or if the operator is regulated or not. You can also read full reviews of each broker, helping you make the best choice. This review is to ensure traders don't lose money in their trading account.
How to Compare Brokers and Platforms
In order to trade binary options, you need to engage the services of a binary options broker that accepts clients from your country e.g. check US trade requirements if you are in the United States. Here at bitcoinbinaryoptionsreview.com, we have provided all the best comparison factors that will help you select which trading broker to open an account with. We have also looked at our most popular or frequently asked questions, and have noted that these are important factors when traders are comparing different brokers:
  1. What is the Minimum Deposit? (These range from $5 or $10 up to $250)
  2. Are they regulated or licensed, and with which regulator?
  3. Can I open a Demo Account?
  4. Is there a signals service, and is it free?
  5. Can I trade on my mobile phone and is there a mobile app?
  6. Is there a Bonus available for new trader accounts? What are the Terms and
  7. conditions?
  8. Who has the best binary trading platform? Do you need high detail charts with technical analysis indicators?
  9. Which broker has the best asset lists? Do they offer forex, cryptocurrency, commodities, indices, and stocks – and how many of each?
  10. Which broker has the largest range of expiry times (30 seconds, 60 seconds, end of the day, long term, etc?)
  11. How much is the minimum trade size or amount?
  12. What types of options are available? (Touch, Ladder, Boundary, Pairs, etc)
  13. Additional Tools – Like Early closure or Metatrader 4 (Mt4) plugin or integration
  14. Do they operate a Robot or offer automated trading software?
  15. What is Customer Service like? Do they offer telephone, email and live chat customer support – and in which countries? Do they list direct contact details?
  16. Who has the best payouts or maximum returns? Check the markets you will trade.
The Regulated Binary Brokers
Regulation and licensing is a key factor when judging the best broker. Unregulated brokers are not always scams, or untrustworthy, but it does mean a trader must do more ‘due diligence’ before trading with them. A regulated broker is the safest option.
Regulators - Leading regulatory bodies include:
  • CySec – The Cyprus Securities and Exchange Commission (Cyprus and the EU)
  • FCA – Financial Conduct Authority (UK)
  • CFTC – Commodity Futures Trading Commission (US)
  • FSB – Financial Services Board (South Africa)
  • ASIC – Australia Securities and Investment Commission
There are other regulators in addition to the above, and in some cases, brokers will be regulated by more than one organization. This is becoming more common in Europe where binary options are coming under increased scrutiny. Reputable, premier brands will have regulation of some sort.
Regulation is there to protect traders, to ensure their money is correctly held and to give them a path to take in the event of a dispute. It should therefore be an important consideration when choosing a trading partner.
Bonuses - Both sign up bonuses and demo accounts are used to attract new clients. Bonuses are often a deposit match, a one-off payment, or risk-free trade. Whatever the form of a bonus, there are terms and conditions that need to be read.
It is worth taking the time to understand those terms before signing up or clicking accept on a bonus offer. If the terms are not to your liking then the bonus loses any attraction and that broker may not be the best choice. Some bonus terms tie in your initial deposit too. It is worth reading T&Cs before agreeing to any bonus, and worth noting that many brokers will give you the option to ‘opt-out’ of taking a bonus.
Using a bonus effectively is harder than it sounds. If considering taking up one of these offers, think about whether, and how, it might affect your trading. One common issue is that turnover requirements within the terms, often cause traders to ‘over-trade’. If the bonus does not suit you, turn it down.
How to Find the Right Broker
But how do you find a good broker? Well, that’s where BitcoinBinaryOptionsReview.com comes in. We assess and evaluate binary options brokers so that traders know exactly what to expect when signing up with them. Our financial experts have more than 20 years of experience in the financial business and have reviewed dozens of brokers.
Being former traders ourselves, we know precisely what you need. That’s why we’ll do our best to provide our readers with the most accurate information. We are one of the leading websites in this area of expertise, with very detailed and thorough analyses of every broker we encounter. You will notice that each aspect of any broker’s offer has a separate article about it, which just goes to show you how seriously we approach each company. This website is your best source of information about binary options brokers and one of your best tools in determining which one of them you want as your link to the binary options market.
Why Use a Binary Options Trading Review?
So, why is all this relevant? As you may already know, it is difficult to fully control things that take place online. There are people who only pose as binary options brokers in order to scam you and disappear with your money. True, most of the brokers we encounter turn out to be legit, but why take unnecessary risks?
Just let us do our job and then check out the results before making any major decisions. All our investigations regarding brokers’ reliability can be seen if you click on our Scam Tab, so give it a go and see how we operate. More detailed scam reports than these are simply impossible to find. However, the most important part of this website can be found if you go to our Brokers Tab.
There you can find extensive analyses of numerous binary options brokers irrespective of your trading strategy. Each company is represented with an all-encompassing review and several other articles dealing with various aspects of their offer. A list containing the very best choices will appear on your screen as you enter our website whose intuitive design will allow you to access all the most important information in real-time.
We will explain minimum deposits, money withdrawals, bonuses, trading platforms, and many more topics down to the smallest detail. Rest assured, this amount of high-quality content dedicated exclusively to trading cannot be found anywhere else. Therefore, visiting us before making any important decisions regarding this type of trading is the best thing to do.
CONCLUSION: Stay ahead of the market, and recover from all kinds of binary options trading loss, including market losses in bitcoin, cryptocurrency, and forex markets too. Send your request via email to - [email protected]
submitted by Babyelijah to u/Babyelijah [link] [comments]

GIC - Use your tablet to control Elite Dangerous!

GIC - Use your tablet to control Elite Dangerous!
Elite Dangerous tablet controls demo
Greetings CMDRs! A long while back I posted in here about a free, open source app I've been working on that I thought might be of use to others. I've recently made some updates that I thought would be of interest to people in here!
What is it?
Gaming Interface Client - GIC - is a fully customizable app for your tablet or phone that lets you send keyboard commands from your device to any game or application on your Windows PC - such as Elite Dangerous. It is also 100% free. Source code and more info is available here - https://github.com/Terence-D/GamingInterfaceClientAndroid/wiki For now it's Android only but.. see below. I've also attached a screenshot as an example - my graphic skills are pretty lacking, but hopefully you get the idea! The buttons on the top right are for controlling media playback.
- Build your own layout. You are definitely NOT stuck with what I've built.
- Use your own Graphics. If you have an icon set, you can use them in here to replace the default buttons, switches, or even just images. Again, you are not stuck with my art skills!
- Share your screens - you can export them to backup or share with others
- Use multiple devices at once
Whats New for CMDRs Specifically?
- The big change for ED is I've included sample screens for people to use - no need to build your own if you don't want, just choose "ED" from the startup wizard and your device size. I'm slowly adding default screens for games that I play, and open to suggestions! Note if you already have an older version of the app, you can rerun the Intro from the Main Menu's menu button.
- Building support for other OS's - such as iOS devices, but possibly even Windows, Linux, Web?? etc.. I've started rebuilding the entire app from the ground up to be cross platform. The good news is I don't have to do it all at once. The intro and main view are "cross platform" already, the rest will be coming in future releases. Once done I'm still not sure how I'll handle iOS due to the signficantly higher costs, but I'll worry about that once I have to.
- To answer the inevitable question.. If you install via Google Play, there is an "In App Purchase" note in the app listing.This is for a 100% optional way to support me via donations. I'm not here asking money - feel free to not pay a dime, you'll get the same experience as everyone else.
What about app xyz?
This isn't the first app by a long shot to do this, but I wanted something I didn't have to spend a lot of money on. Also for a system grabbing input, I wanted it open source to verify it's not hiding a sinister purpose. Plus I enjoyed the challenge!
So how do you use this?
First you'll need an app running on your computer - this is open source too and can be gotten from the link here:
https://github.com/Terence-D/GameInputCommandServewiki
For the Android app, you can download from GitHub (binary and source available), Amazon, or Google Plays app stores. Note that Amazon / Google Play may take a few hours before the latest version is visible - please ensure its 4.1 to have the Elite Dangerous related changes!
https://play.google.com/store/apps/details?id=ca.coffeeshopstudio.gaminginterfaceclient
https://www.amazon.com/gp/product/B07N2LZ5D1
https://github.com/Terence-D/GamingInterfaceClientAndroid/wiki
Any questions or comments, please let me know and I'll answer as best I can, thank you.
submitted by NorthYeg to EliteDangerous [link] [comments]

Comparison Between Zxing and Huawei HMS Scan Kit

Comparison Between Zxing and Huawei HMS Scan Kit
About This Document
Zxing is a common third-party open-source SDK. However, Zxing has the following defect: It only implements basic operations of scanning the QR code and does not support more complex scanning environments such as strong light, bending, and deformation. Currently, the mainstream practice is to optimize the source code based on Zxing. However, the optimization effect is still not ideal, and many people will spend a lot of time on the optimization.
The Huawei Scan Kit service provides convenient bar code and QR code scanning, parsing, and generation capabilities, helping developers quickly build the QR code scanning function in apps. Thanks to Huawei's long-term accumulation in the computer vision field, Huawei's unified barcode scanning service (Scan Kit) can detect and automatically amplify long-distance or small-sized codes, and optimize the identification of common complex barcode scanning scenarios (such as reflection, dark light, smudge, blur, and cylinder). Improves the QR code scanning success rate and user experience.
Comparison Between Zxing and Huawei HMS Scan Kit
Now, let's compare the capabilities of Zxing and Huawei HMS Scan Kit from the following aspects:
Ø Remote code scanning
Ø Scan QR codes in complex scenarios
Ø Scan the barcode at any angle.
Ø multicode recognition
Ø Integration difficulty
Ø SDK Package Size
Ø Cross-platform support
Comparison of long-distance code scanning
The success of long-distance QR code scanning depends on the QR code specifications (the more information is, the more difficult it is to identify) and the distance between the camera and the QR code. Due to the lack of automatic zoom-in optimization for Zxing, it is difficult to recognize the code when the code is less than 1/5 of the screen. The HMS Scan Kit has a pre-detection function, which can automatically amplify the QR code at a long distance even if the QR code cannot be identified by naked eyes.
https://i.redd.it/brkqcwe5b8051.gif
https://i.redd.it/b6n96ze5b8051.gif

Comparison Conclusion: Scan Kit Wins

Comparison by Scanning Codes in Complex Scenarios

https://preview.redd.it/yuiy0ow9b8051.png?width=554&format=png&auto=webp&s=eacfdb6f89c51b799da7b2b80ee3290611be011c
In complex scenarios, code scanning can be classified into reflection, dark light, smudge, blur, and cylinder scanning. In complex scenarios, the recognition effect of Zxing is poor. Complex scenarios are as follows:
These scenarios are common in daily life. For example, outdoor scenarios such as reflection, dark light, and smudge may occur. When a QR code is attached to a product, curved surfaces or even edges and corners may occur. When you walk and scan the QR code, you will also encounter the challenge of motion blur. The following figure shows the test comparison in these scenarios.
https://i.redd.it/ukwt9ndrb8051.gif
https://i.redd.it/xpqctfpbb8051.gif
https://i.redd.it/avdiurpbb8051.gif
https://i.redd.it/pxr9ne7sb8051.gif

Comparison Conclusion: Scan Kit Wins

Scan the QR code at any angle for comparison.

Currently, Zxing supports only forward scanning, that is, Zxing cannot identify the code with a certain angle. Scan Kit can easily achieve this. When the code deflection is within 10 degrees, Zxing can still have high recognition accuracy. However, when the code deflection exceeds 10 degrees, the recognition accuracy of Zxing decreases sharply. However, Scan Kit is not affected by the clip angle, and the recognition accuracy does not decrease.

https://i.redd.it/2r8n3l4vb8051.gif
https://i.redd.it/fpai9j4vb8051.gif

Comparison Conclusion: Scan Kit Wins

Multi-code identification comparison

Multi-code identification helps identify multiple codes at a time in scenarios such as express delivery and supermarket checkout, improving service processing efficiency. In multi-code identification mode, the Scan Kit can identify five types of codes on the screen at the same time and return the corresponding types and values of all codes at a time.

https://i.redd.it/cg4124ixb8051.gif
https://i.redd.it/75c1i1ixb8051.gif

Comparison Conclusion: Scan Kit Wins

SDK Package Size Comparison

The size of the Zxing package is about 500 KB, which is a satisfactory size. Scan Kit has two modes: Lite and Pro. In Lite mode, the package size is 700 KB. In Pro mode, the package size is 3.3 MB. If you use the table, you will have a clearer understanding.
(图12)
https://preview.redd.it/bh0qcdd1c8051.png?width=554&format=png&auto=webp&s=e97d2dc6ca54b1974f3ba7aa0ac0b5ac9d85d96c
These two modes are slightly different on non-Huawei phones. Therefore, if you are not sensitive to the package size on non-Huawei phones, try to select the Pro version. I have also performed tests on non-Huawei Lite versions, but the test results are slightly lower than those of the Pro version.

Conclusion: Zxing has advantages.

Platform Support Comparison

Zxing and Scan Kit support both iOS and Android platforms.

Conclusion: The score is even.

Comparison of Integration Modes

The integration mode of Zxing is relatively simple. It can be quickly integrated with SDK by only a few lines of code. However, in the actual product development process, the development of the product interface and auxiliary functions is also involved. However, Zxing does not provide the corresponding quick integration mode. The integration guide is available on the live network for a long time. Therefore, the development difficulty can be reduced. In summary, the first point in Zxing integration is that no default interface is available. Second, you need to achieve their own automatic amplification, flash and other functions.
Scan Kit provides multiple access modes, including single-code access, multi-code access, and customized access. The differences between the two integration modes are as follows:
The default layout is provided for the single-code access of Scan Kit cameras. In addition, functions such as automatic amplification and flash are preset. Developers do not need to manually configure these functions. The code integration volume is 5 lines, which is especially suitable for scenarios where quick integration and quick replacement of the QR code scanning function are required.
The customized access of Scan Kit allows users to design the layout by themselves. Only the basic functions and blank layout of scanning and decoding are provided. Users can design the layout based on their app style. However, they need to implement functions such as automatic zoom and flash. The corresponding technical documents can be found on the optical network of Huawei developers. However, compared with the single-code access, this access mode is more complicated.
The integration mode is as follows:

Zxing integration process

  1. Create a project and import the Zxing module.
  2. Add rights and dynamically apply for rights.
  3. Copy the onActivity method.
  4. Invoking the Decoding Function
  5. Compile the UI and ensure that the UI is correctly displayed.

Scan Kit integration process

The default view mode provides two functions: camera QR code scanning and image-based QR code scanning. In this mode, developers do not need to develop the UI for QR code scanning.
The process is almost the same as that of Zxing.
  1. Create a project and import the Scan Kit module.
  2. Add permissions and dynamically apply for permissions.
  3. Copy the onActivity method.
  4. Invoke the decoding function.
The following uses the Default View Mode as an example to describe the integration procedure.
  1. Create a project and add online dependency in the app/build.gradle file.
implementation'com.huawei.hms:scan:{version}'
  1. Declare the QR code scanning page in the AndroidManifest.xml file of the calling module.
    Reading the file permission Features
  2. Create QR code scanning options based on the site requirements.
    HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.QRCODE_SCAN_TYPE, HmsScan.DATAMATRIX_SCAN_TYPE).create();
  3. Invoke the static method startScan of ScanUtil to start the Default View QR code scanning page.
    ScanUtil.startScan(this, REQUEST_CODE_SCAN_ONE, options);
The comparison shows that Scan Kit and Zxing have the same dependency and permission application methods. However, Scan Kit can use the UI by default (with built-in flash, automatic focal length, and QR code import). Zxing needs to implement the UI by itself, then, manually complete these functions.

Comparison Conclusion: Scan Kit Wins

Technical Analysis

Why is Scankit better than Zxing? The following describes the technical analysis of Zxing and Scan Kit from the perspective of technical implementation principles.

Zxing Technology Analysis

Zxing uses the traditional recognition algorithm. It can detect codes by analyzing the codes from a certain angle. This algorithm allows only a certain degree of deformation, for example, the square code can be slightly skewed by less than 10 degrees, his pixels still fit the pattern, but if they're deformed too much or angularly too large, they can't detect the position of the code. The detection process of ZXing is classified into two types: one-dimensional code detection and two-dimensional code serial detection.
In one-dimensional code detection, Zxing uses a progressive scanning mechanism for feature recognition. Because one-dimensional code features are black-and-white crossover, when the black-and-white sequence with equal spacing of the class is identified, it is considered as a potential code. The length of the potential code is determined by finding the start bit and the end bit. Then, the sequence is sent to different one-dimensional code decoding modules for serial decoding, which takes a long time. When serial decoding fails, a failure message is displayed, and the failure time is also long. In addition, once the one-dimensional code has a wrinkle, rotation, or deformation, a sequence that meets a specific requirement cannot be found through progressive scanning, that is, the one-dimensional code cannot be detected in a complex condition.

https://preview.redd.it/tkedxu4cc8051.png?width=509&format=png&auto=webp&s=b41023e2b427cab21cc35126939966954c2b9150
In two-dimensional code detection, Zxing uses different detection algorithms for different two-dimensional codes. For example, the most common QR code has three location detection patterns. Therefore, Zxing still uses the interlaced scanning mode to find the features of the location detection pattern. Once the features whose black-and-white ratio is 1:1:3:1:1 are found, that is, a central point of the position detection graph is used as a reference point to perform affine transformation, so that the corrected picture is sent to the QR decoding module. The positioning point of the QR code has a function of correcting rotation, and therefore can be well adapted to a rotation situation. However, Zxing is completely unable to process cases such as partial blocking, deformation, and contaminating and reflecting of the positioning point. As shown in the figure, the detection position detection graph is the most important step for detecting whether the two-dimensional code is successfully detected. Once a location fails to be detected, the two-dimensional code cannot be detected.

https://preview.redd.it/2c2mmpvcc8051.png?width=554&format=png&auto=webp&s=e94dcc14f2b2933eb7a45d711305a9045e01b353

Technical Analysis of Huawei HMS Scan Kit

Scan Kit uses the deep learning algorithm, which is spatially invariant. By training detectors of corresponding code types, Scan Kit can quickly find all required codes.
Actual process:
https://preview.redd.it/6ust5vdec8051.png?width=1280&format=png&auto=webp&s=e8dc53159331b1fbe0cb65ed2a0102f54bc295f4
The bar code detection module and angle prediction module use the deep learning model.
Barcode detection: The serial process of separate detection of two-dimensional codes of one-dimensional codes in Zxing is no longer restricted. A trained detector can be used to directly obtain the code pattern and corresponding position. The bar code can be accurately sent to the corresponding decoding module through one detection, and a separate serial decoding process is no longer required. Because decoding includes a series of operations with high overheads such as skipping scanning, and information of different codes cannot be shared, this operation greatly reduces an end-to-end delay, and avoids a lot of repeated and unnecessary calculation overheads.
Angle prediction: The corresponding three-bit angle of the code is returned for radiographic transformation. In practice, the core of barcode detection is to accurately obtain boundary points. After being converted into binary images, the images are sent to the decoding module, but the decoding effect is still poor. This is also the most important step to solve the bar code identification in complex scenarios.
To sum up, the deep learning changes the serial detection and decoding process of the barcode of Zxing to a parallel process. In addition, the three-digit angle value of the barcode is returned. After the affine change, the aligned standard front barcode is obtained. This greatly improves the barcode detection success rate and greatly reduces the latency.

More information

Demos, sample codes, and development documents are available on the Huawei developer official website.
Demo and sample code:
https://developer.huawei.com/consumeen/doc/development/HMS-Examples/scan-sample-code4
Development guide:
https://developer.huawei.com/consumeen/doc/development/HMS-Guides/scan-introduction-4
API reference:
https://developer.huawei.com/consumeen/doc/development/HMS-References/scan-apioverview

To be supplemented

Based on Huawei machine learning service, we will share a series of practical experience later. You can continue to pay attention to it
submitted by wushuyong to HMSCore [link] [comments]

Changes that could be made to Climbey to get on the Oculus Store

I heard about Climbey being the most popular SideQuest game, and saw a bunch of people shocked about how Oculus could possibly refuse it. Apparently, the only feedback was that it's "not polished enough." Finally gave the game a shot last night, and I noticed more than a few problems, which strike me as red flags for a game that's been in early access for over 3 years:
When the game starts, the Climbey Demo logo overlaps with the game, and the "depth-fighting" is pretty off-putting; there's no smooth transition from loading to playing.
The buttons on the options menu don't work. Part of the problem is that interacting with the menu involves using big hands with thick fingers to press small buttons; it feels like there's actual collision with all 5 fingers on each hand, so trying to use one finger while holding that hand horizontally to press one of the higher buttons on, for example, the Comfort menu, will result in pressing the "Start!" button.
Another issue is that even when you hear the "button clicked" noise, the button press doesn't seem to actually register. You keep trying to hit the button, and sometimes the light comes on, if it's on, it probably stays on, if you were just trying out the option to see what it was like before turning it off. I'm not sure why it uses that system over something simple and intuitive like this.
Still on the menu, the most obvious problem with interacting with it is that when you boot up an Oculus Quest for the first time, you play the Oculus First Steps app, which introduces you to the CapTouch sensors on the controllers. You get a really nice hand presence feeling because the headset knows when you're resting your fingers on each button, and has a matching animation for all of that. Climbey gives you hands, but doesn't use any of that.
Continuing with controller issues, Climbey is effectively a 1-button game. The current "VR meta" is that on Vive wands, because the grip button is a crappy, tough click that you don't wanna rely on too much, the "grab" input is generally gonna be with the trigger, or a toggle with the grip button, depending on the game. If you pick up something with a trigger, then it will pull the trigger (i.e. on a gun). On Oculus Touch and Index controllers, however, because you have a nice grip input in the form of grip sensors or an analog grip trigger, you're expected to use an intuitive 3-finger squeeze to pick things up, and continue holding that squeeze to continue holding the item. To let go, simply ease up on the squeeze. Climbey instead puts arm swinger locomotion on the grip trigger and the grip action on the front trigger: as a binary input! It feels awful. If I squeeze the trigger halfway, I should see a half-grip. Just pick an activation point; I hear 20% works well enough as a threshold.
The haptics are no good. I eventually realized that you can't climb on dark surfaces, even though the tutorial robot says you can climb on "any surface." But the haptics should tell you when your hand is overlapping with a climbable surface, maybe combined with an animation change.
The framerate is wonky. There's a jump right before the end of the tutorial level, and the first time I tried it, the game decided to drop something like half a second of frames while I was in midair, causing me to plummet all the way to the bottom, completely resetting my progress. There wasn't a second time.
Movement is also wonky. I usually like arm swinging locomotion, but it's so stilted in this game. It doesn't feel snappy like H3VR, and I don't feel like I'm in control, even when I set it to controller direction. Also, enabling snap turn seems to rotate the level rather than the player's VR origin, so things like flags will react to the turn action, which makes no sense.
The tutorial robot mentions the Steam workshop. Not sure why that line wasn't edited out of its dialog. As a user, how am I supposed to react to that, knowing that the Steam workshop is inaccessible on Oculus Quest? Does that mean I'm only getting the 20 levels mentioned? Am I missing out on tons of content because I'm getting this on Quest and not Steam? Not to mention, that tutorial robot looks like it was ripped straight out of Portal.
That's all I have for now. There are other issues, like the Forfeit button porting you seemingly to the next level from the tutorial level, but this post is too long as it is. If I worked at Oculus, I'd refuse the game for the reasons laid out above. I saw the dev respond to someone else bringing up some of these issues with a sentiment along the lines of "yeah, well, that's how I like it," which is their prerogative, but it might be useful to adopt a more "user first" mentality to this sort of thing, especially when it comes time to try to get into a walled garden like the Oculus store.
submitted by vgambit to OculusQuest [link] [comments]

[Guide] Android TV De-bloat and Customization

[Guide] Android TV De-bloat and Customization
(English is not my first language, please ask for clarifications if something isn't clear. LONG POST.)
Inspired by this thread made by u/kelrics1910, I decided to share my work customizing my KD-55XF9005 (XF90/X900F - EU version).
I don't like the stock launcher. I wanted to use other launcher and delete all apps I don't use, without losing functionality. With an air mouse I can now side-load and run non-TV apps, like my 'cable provider app' designed to watch TV channels in phones and tablets (somewhat similar to YouView, with 7 day scroll back and other nice features).

This is my TV home screen

  • I'm confident this guide will work with any other models but I'm not forcing anyone to do this, so... PROCEED AT YOUR OWN RISK.
  • Please READ EVERYTHING TOP TO BOTTOM before making any changes to your TV.
  • I did all this work using a Windows PC. If you are using other OS you need to find how to install/use ADB.
  • I will try to make this "noob friendly" but you need to be able to use command lines and edit some .bat files.
  • My TV was updated to v6.6520 and all settings properly configured before making this changes.
EDIT: I'm now on v6.6545 firmware. Update without any issue, no reset necessary and no bloatware reinstalled.
_____________________________________________________________________________________________________________________
I will provide links to the apps, but you can download the batch files with ADB binaries here.

READ ALL MY NOTES BEFORE DELETING ANYTHING FROM YOUR TV!

_____________________________________________________________________________________________________________________

(1st) Enable Developer Mode and USB Debugging.

  1. You can do this by heading into the Settings menu, then scrolling to "About".
  2. At the bottom of the About menu, find "Build" and highlight it, then click on it several times until you see a toast notification telling you have enabled Developer Mode.
  3. Go back to the Settings menu, and a new entry titled "Developer Options" will be available in the "Preferences" section. Scroll down and head in there.
  4. Now, scroll down to "USB Debugging" and enable it. You'll see a warning, just accept that.
OPTIONAL: you can also change the three Animation Scale settings for a snappier experience. Set them to 0.5x or turn them off completely if you prefer.

(2nd) Run ADB on your PC and connect to your TV.

  1. You need to know your TV IP address in your network. Go to the Settings menu, click in "About" and then "Status". Look for something like "192.168.1.44".
  2. Extract the contents from this zip anywhere you want. Your Desktop, for instance.
  3. Now open the folder "Sony_TV_Debloater". Click with the right button on "1_connect_TV.bat" and select "Edit" (or open with notepad).
  4. Replace "XXX.XXX.XXX.XXX" with your TV IP. Save and close.
  5. Double click the file "Open CMD.exe" and you'll get a window with a command prompt.
  6. Execute the file "1_connect_TV.bat" (press 1, then Tab and finally Enter) and look at your TV. In the "Allow USB debugging?" dialog, select "Always allow from this computer" and select OK.
Content of file "1_connect_TV.bat":
@echo off adb kill-server echo. echo. adb connect XXX.XXX.XXX.XXX:5555 echo. echo. echo Check "Allow USB debugging?" prompt on TV 
  • Some antivirus prevent "adb.exe" from running. Just create an exception and allow execution. If you're using a firewall you need to allow outgoing communications from "adb.exe".
  • In this folder you have the portable binaries of "Mini ADB & Fastboot" (July 2019 Update) that I downloaded from xda-developers . Go there for updates and interesting reading about what can we do with ADB.

(3rd) Install an alternative launcher. Or don't. You choose.

If you are happy with the Leanback Launcher that comes by default just move to the next section. But be very careful and DON'T UNINSTALL this packages: com.google.android.leanbacklauncher; com.google.android.tvlauncher; com.sony.dtv.tvlaunchercustomizer.
  • You can delete com.google.android.tvrecommendations to get rid of recommendations row. After reboot there is still a recommendations row that can be disable like any other channel (this was not tested by me).
You can go to Play Store and search for "launcher". Some are free, some are paid. Choose and install what you like, it is important to test if everything works for you before deleting stock launcher. See if you can go to Settings, this is a big issue after deleting some system packages: com.sony.rvu; com.sony.dtv.demomode; com.sony.dtv.b2b.hotelmode.
The launcher I'm using is Square Home 3 - Launcher: Windows style. You can find it in 'regular' Play Store, not Play Store for TV, but it works really well in Android TV environment, supporting both TV and non-TV apps, and the free version is highly customizable. And, very important, it provides two ways to call System Settings: using an air mouse we can press the button Menu, or we can put an icon on screen (see top right corner of my TV screen).

https://reddit.com/link/czuo7q/video/q7h5ogqhlok31/player
Three notes about this launcher:
  • It has a long learning curve to customize. It took me some time to go through all the options and make it look like this.
  • I had to install a file browser from Play Store to be able to browse and choose my wallpaper.
  • You need to download and install the apk file because it won't show in Play Store for TV.
You can use your TV browser to search for com.ss.squarehome2, download and then install, or you can use your PC to download the file into the "Sony_TV_Debloater" folder and use the command (on the same command line from 2nd section):
adb install file_name.apk (replace with actual file name) 
  • To my surprise, the TV allowed me to set Square Launcher as default launcher and survived reboots. But just browsing some options in the System Settings, like "Select Retail Mode", restored the Leanback Launcher and deleted my wallpaper.

  • P.S.: The paid version allows random wallpaper changing everyday picked from custom folder:
https://preview.redd.it/26af1uj177l31.jpg?width=960&format=pjpg&auto=webp&s=198a3f4e42250a49582dc2ea357f68049cd6bc1d

(4th) Get the list of all installed apps names and locations.

This step allows us to know the packages names (and full path) of ALL apps installed in the TV.
  1. If you need to reopen the command prompt window go to the folder "Sony_TV_Debloater" and double click the file "Open CMD.exe". Then execute the file "1_connect_TV.bat" again (press 1, then Tab and finally Enter).
  2. Execute the file "2_list_installed_pkg.bat" (press 2, then Tab and finally Enter). It will create a file named "list_installed_pkg.txt".
Content of file "2_list_installed_pkg.bat":
adb shell pm list packages -f >> list_installed_pkg.txt 

(5th) De-bloating

This is the sensitive part. You need to edit the file "3_delete_apps.bat" and CHECK EVERY SINGLE LINE to see if it does what you want.
Content of file "3_delete_apps.bat":
@REM This are keyboards @REM DON'T DELETE THEM ALL adb shell pm uninstall -k --user 0 com.google.android.inputmethod.latin adb shell pm uninstall -k --user 0 com.google.android.inputmethod.japanese @REM adb shell pm uninstall -k --user 0 com.sony.dtv.ime.chww @REM This are multimedia players and related stuff adb shell pm uninstall -k --user 0 com.google.android.music adb shell pm uninstall -k --user 0 com.google.android.videos adb shell pm uninstall -k --user 0 com.google.android.youtube.tv adb shell pm uninstall -k --user 0 com.sony.dtv.osat.album adb shell pm uninstall -k --user 0 com.sony.dtv.osat.music adb shell pm uninstall -k --user 0 com.sony.dtv.osat.video adb shell pm uninstall -k --user 0 com.sony.dtv.youview adb shell pm uninstall -k --user 0 com.youview.tv.servicehost adb shell pm uninstall -k --user 0 com.amazon.amazonvideo.livingroom adb shell pm uninstall -k --user 0 com.amazon.aiv.eu @REM adb shell pm uninstall -k --user 0 com.netflix.ninja @REM This is Google app for Android TV adb shell pm uninstall -k --user 0 com.google.android.katniss @REM This are web browsers and related stuff adb shell pm uninstall -k --user 0 com.opera.sdk.example adb shell pm uninstall -k --user 0 com.vewd.core.integration.dia adb shell pm uninstall -k --user 0 com.sony.dtv.browser.ceb adb shell pm uninstall -k --user 0 com.sony.dtv.browser.webappruntime adb shell pm uninstall -k --user 0 com.sony.dtv.browser.webappservice adb shell pm uninstall -k --user 0 com.sony.dtv.webapi.core @REM This is TV Control Setup with Amazon Alexa adb shell pm uninstall -k --user 0 com.sony.dtv.smarthomesettings @REM This is Android TV Remote Service adb shell pm uninstall -k --user 0 com.google.android.tv.remote.service @REM This is Google Play Games app adb shell pm uninstall -k --user 0 com.google.android.play.games @REM This is miscellaneous stuff adb shell pm uninstall -k --user 0 android.autoinstalls.config.sony.bravia adb shell pm uninstall -k --user 0 com.android.htmlviewer adb shell pm uninstall -k --user 0 com.android.printspooler adb shell pm uninstall -k --user 0 com.android.providers.calendar adb shell pm uninstall -k --user 0 com.android.providers.contacts adb shell pm uninstall -k --user 0 com.android.providers.userdictionary adb shell pm uninstall -k --user 0 com.google.android.feedback adb shell pm uninstall -k --user 0 com.google.android.marvin.talkback adb shell pm uninstall -k --user 0 com.google.android.partnersetup adb shell pm uninstall -k --user 0 com.google.android.speech.pumpkin adb shell pm uninstall -k --user 0 com.google.android.syncadapters.calendar adb shell pm uninstall -k --user 0 com.google.android.syncadapters.contacts adb shell pm uninstall -k --user 0 com.google.android.tts adb shell pm uninstall -k --user 0 com.google.android.tv.bugreportsender adb shell pm uninstall -k --user 0 com.google.android.tvtutorials adb shell pm uninstall -k --user 0 com.sony.dtv.b2b.hotelmode adb shell pm uninstall -k --user 0 com.sony.dtv.bravialifehack adb shell pm uninstall -k --user 0 com.sony.dtv.customersupport adb shell pm uninstall -k --user 0 com.sony.dtv.demomode adb shell pm uninstall -k --user 0 com.sony.dtv.demosupport adb shell pm uninstall -k --user 0 com.sony.dtv.discovery adb shell pm uninstall -k --user 0 com.sony.dtv.hbbtvlauncher adb shell pm uninstall -k --user 0 com.sony.dtv.imanual adb shell pm uninstall -k --user 0 com.sony.dtv.interactivetvplatform adb shell pm uninstall -k --user 0 com.sony.dtv.interactivetvutil adb shell pm uninstall -k --user 0 com.sony.dtv.interactivetvutil.output adb shell pm uninstall -k --user 0 com.sony.dtv.multiscreendemo adb shell pm uninstall -k --user 0 com.sony.dtv.smarthelp adb shell pm uninstall -k --user 0 com.sony.dtv.sonyselect adb shell pm uninstall -k --user 0 com.sony.dtv.sonyselect.overlay adb shell pm uninstall -k --user 0 tv.samba.ssm @REM This will delete stock TV Launcher @echo . @echo . @echo . @set /P c=Are you sure you want to remove Leanback Launcher [Y/N]? @if /I "%c%" == "Y" goto :leanbacklauncher @goto :endscript :leanbacklauncher adb shell pm uninstall -k --user 0 com.google.android.leanbacklauncher adb shell pm uninstall -k --user 0 com.google.android.tvlauncher adb shell pm uninstall -k --user 0 com.sony.dtv.tvlaunchercustomizer adb shell pm uninstall -k --user 0 com.google.android.tvrecommendations :endscript 
Every line that starts with '@REM ' will be ignored (REM = remark). For example, if you want to keep Google Keyboard you can delete the 3rd line or edit to look like this: @REM adb shell pm uninstall -k --user 0 com.google.android.inputmethod.latin
Then you can uninstall Sony's software keyboard by deleting the '@REM ' from the 5th line to look like this: adb shell pm uninstall -k --user 0 com.sony.dtv.ime.chww
US, EU, UK, etc versions of the same TV model have different apps. That means you may want to uninstall apps not listed here and you'll have to add them. One way to find the app name is going to Settings > Apps, then click on the app you want to remove. For instance, Google Play Games package name is "com.google.android.play.games".

But you can also open the file "list_installed_pkg.txt" and go through every line. If you recognize the app and want to uninstall it, add a line (for example, at the end, after :endscript) looking like: adb shell pm uninstall -k --user 0 replace.package.name.here
If you can't guess what app is by his package name, try to google that name. If you aren't sure what it is, leave it.
If you are going to keep the stock launcher, it's better to delete the last 13 lines of the script:
@REM This will delete stock TV Launcher
@echo .
@echo .
@echo .
@set /P c=Are you sure you want to remove Leanback Launcher [Y/N]?
@if /I "%c%" == "Y" goto :leanbacklauncher
@goto :endscript
:leanbacklauncher
adb shell pm uninstall -k --user 0 com.google.android.leanbacklauncher
adb shell pm uninstall -k --user 0 com.google.android.tvlauncher
adb shell pm uninstall -k --user 0 com.sony.dtv.tvlaunchercustomizer
adb shell pm uninstall -k --user 0 com.google.android.tvrecommendations
:endscript

When you are satisfied, save the file "3_delete_apps.bat" and execute it in Command Prompt window:
  1. If you need to reopen the command prompt window go to the folder "Sony_TV_Debloater" and double click the file "Open CMD.exe". Then execute the file "1_connect_TV.bat" again (press 1, then Tab and finally Enter).
  2. Execute the file "3_delete_apps.bat" (press 3, then Tab and finally Enter).
  3. Pay attention to the final part of the script. ONLY PRESS "Y" IF YOU INSTALLED ANOTHER LAUNCHER.

  • As it is, this script deletes almost all 'visible apps': Amazon Prime, Google Play Movies, Google Play Music, Google Play Games, stock video player, music player, YouView, Album, YouTube; Google search, web browser... all this can easily be reinstalled from Google Play Store. I didn't unistalled Netflix because that's the only I use.
  • As it is, this script also deletes many apps and services, like Japanese keyboard, TV Control with Amazon Alexa, Android TV Remote Service (for using your phone as a remote control), print spoolers, calendar, contacts, Text to Speach, bug reports, Interactive TV, demo mode, hotel mode, manual and tutorials, and more.
  • I'm sure that US versions have other apps (or packages names) that you'll have to add. I will thank anyone willing to share those apps names.
  • All services like watching, chromecast, screen mirroring, Program Guide, DIAL, recording to HDD, Bravia Sync, should work as expected (didn't test the last three).

(6th) Reboot

Give the TV some seconds to finish all background writing there may be happening and then type on the Command Prompt the following command:
adb reboot 
_____________________________________________________________________________________________________________________

How to reinstall a system app

Let say I want "hotelmode" back for whatever reason. Looking into my "list_installed_pkg.txt" I find the line: package:/system/priv-app/HotelMode/HotelMode.apk=com.sony.dtv.b2b.hotelmode
  1. Go to the folder "Sony_TV_Debloater" and double click the file "Open CMD.exe".
  2. Execute the file "1_connect_TV.bat" (press 1, then Tab and finally Enter)
  3. Execute the following commands:

adb shell cmd package install-existing com.sony.dtv.b2b.hotelmode adb reboot 
_____________________________________________________________________________________________________________________

Final notes

  • Instead of uninstalling you can disable any app with the command adb shell pm disable-user --user 0 replace.package.name.here and re-enable it with adb shell pm enable replace.package.name.here
  • I did uninstalled Netflix in my TV. After reinstalling from Play Store a toast error message showed up saying it was not compatible with this device, and another one showed when running the app. Everything played as expected, UHD and Dolby when available. Rebooted and never saw that error again.
  • All apps I deleted are listed in Settings > Apps, but without any information about size or version.
submitted by c-j-o-m to bravia [link] [comments]

Built a control panel over 16 years, free lifetime release

Site Admin demoSource
16 years ago I stumbled into hosting with Ensim WEBppliance, which was a clusterfuck of a control panel necessitating a bunch of bugfixes. Those bugfixes spawned a control panel, apnscp, that I've continued to develop to this day. v3 is the first public release of apnscp and to celebrate I'm giving away 400 free lifetime licenses on webhosting each good for 1 server.
Visit apnscp.com/activate/webhosting-lt to get started customizing the installer. Database + PHP are vendor agnostic. apnscp supports any-version Node/Ruby/Python/Go. I'm interested in feedback, if not bugs then certainly ideas for improvement.
apnscp ships with integrated Route 53/CF DNS support in addition to Linode, DO, and Vultr. Additional providers are easy to create. apnscp includes 1-click install/updates for Wordpress, Drupal, Laravel, Ghost, Discourse, and Magento. Enabling Passenger, provided you have at least 2 GB memory, opens the door to use any-version Ruby, Node, and Python on your server.

Minimum requirements

Features

apnscp won't fix all of your woes; you still need to be smart about whom you host and what you host, but it is a step in the right direction. apnscp is not a replacement for a qualified system administrator. It is however a much better alternative to emerging panels in this market.

Installation

Use apnscp Customizer to configure your server as you'd like. See INSTALL.md for installation + usage.
Monitoring installation
apnscp will provision your server and this takes around 45 minutes to 2 hours to complete the first time. You can monitor installation real-time from the terminal:
tail -f /root/apnscp-bootstrapper.log
Post Install
If you entered an email address while customizing (apnscp_admin_email) and the server isn't in a RBL, then you will receive an email with your login information. If you don't get an email after 2 hours, log into the server and check the status:
tail -n30 /root/apnscp-bootstrapper.log
The last line should be similar to: 2019-01-30 18:39:02,923 p=3534 u=root | localhost : ok=3116 changed=1051 unreachable=0 failed=0
If failed=0, everything is set! You can reset the password and refer back to the login information to access the panel or reset your credentials. Post-install will welcome you with a list of helpful commands to get started as well. You may want to change -n30 to -n50!
If failed=n where n > 0, send me a PM, email ([email protected]), get in touch on the forums, or Discord.
Shoot me a PM if you have a question or hop on Discord chat. Either way feedback makes this process tick. Enjoy!

Installation FAQ

Resources

License information

Licenses are tied to the server but may be transferred to a new server. Once transferred from the server apnscp will become deactivated on the server, which means your sites will continue to operate but apnscp can no longer help you manage your server, as well as deploy automatic updates. A copy of the license can be made either by copying /uslocal/apnscp/config/license.pem or License > Download License in the top-right corner. Likewise to install the license on a new machine just replace config/license.pem with your original copy.
Update: v3.0.17 released. Thank you everyone for your exotic build environments and feedback thus far!
submitted by tsammons to webhosting [link] [comments]

My effort to convert a $20 Xiaomi / WyzeCam v2 into a Synology IP Cam that connects to Home Assistant.

Plan is to update this post as I attempt to implement and improve this setup.
1. First Post 12/13/2018 2. Edited 12/19/2018
Long title, but I am honestly disappointed how hard it is to find info about doing this setup(or more likely, my googlefu is weak), so here I am trying to document what I do in order to make it easier for others.
I bought a WyzeCam V2 off Amazon for the sale. Ended up loving the cam itself, looks sleek. I hate the idea its based off chinese technology considering its video in my house. So I bought a second WyzeCam as to not upset the wife and started tinkering with it.
I found theres a hack which unlocks the firmware and lets you run custom fw which turns the cam into an IP camera.
After that, and a billion settings at your fingertips, I am trying to find a way to make this as good as I can before sending it to the wife to be shot down in disapproval.
Wyze has their app which will:
I need to replicate this and make it easy in order to get her approval and hopefully pull this back into my home system.
I have a Synology DS916+ and HomeAssistant on a RBP3.
Here's what I have done:
Issues
Detailed Steps:
Hacking the Wyzecam
https://github.com/EliasKotlyaXiaomi-Dafang-Hacks/
  1. Download the CFW-Binary for your Camera. I had Wyzecam v2.
  2. I had an 8gb SD card that seemed to have trouble, so I used AOMEI Partition Manager to make it 512mb per the instructions recommendation if you have trouble.
  3. Copy CFM-Binary and rename to "demo.bin". No other files should be on the card or the flash will break.
  4. With camera unpowered, plug in sdcard.
  5. Hold down the Setup button (and keep holding it) while you plug in power.
  6. While holding setup button. The light should turn yellow then blue. This means your SD card worked (I had to do this like 12 times to figure out my SD card didn't work).
  7. While its blue, the Binary is flashing (I guess?) but once it turns yellow again after a couple minutes then that means its done.
  8. Remove SD card and power up. LED should turn blue. My camera was not mechanical so it doesnt rotate.
  9. Now that the Binary flashing is done, you need to put on the firmware to the SD card. This is the software which will operate the camera.
  10. Download the repository from github. The green "Clone or Download" button in the top right of the "code" page. Then click download zip.
  11. Copy everything from "firmware_mod" folder to the root of your SD card. They don't say to delete the CFW-Binary (that you renamed to demo.bin) so I have no clue if you should or not. I left mine... shrug
  12. In the config folder, rename "wpa_supplicant.conf.dist" to "wpa_supplicant.conf" by removing the ".dist" at the end.
  13. Edit the file as follows: update SSID to your 2.4GHz wifi name (5GHz wont work). Update PW to your wifi password. I recommend commenting out pairwise, group and priority to minimize errors.
    # For more configuration option please see: # https://w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf ctrl_interface=/varun/wpa_supplicant ctrl_interface_group=0 ap_scan=1 network={ ssid="SSID" # Uncomment to connect to Hidden SSIDs #scan_ssid=1 key_mgmt=WPA-PSK #pairwise=CCMP TKIP #group=CCMP TKIP WEP104 WEP40 psk="PW" #priority=2 } 
  14. Insert SD card into Camera & power up.
  15. You should be able to see your new camera on your wifi devices. You can go directly to the IP or https://dafang and the default credentials root/ismart12
Next I will add how I got this to work in Synology Surveillance... later tonight.
** Things I am trying **
Update 1
Synology Audio & Video
So I am trying to figure out what the best Audio and Video format are, I found on the Synology page the following information: https://www.synology.com/en-us/knowledgebase/Surveillance/help/SurveillanceStation/ip_camera
User Define supports MJPEG (HTTP, RTSP), H.264 (RTSP), H.265 (RTSP), and MPEG4 (RTSP) video formats, only AAC audio format is supported
In MPEG4/H.264/H.265/MXPEG format, Surveillance Station supports audio streaming in both Live View and video recording. The audio support is only available when the IP camera is equipped with audio function. (MXPEG is a video codec implemented by Mobotix.)
Surveillance Station supports G.711, G.726, AAC, AMR and PCM audio formats. The actual supported audio formats depend on the camera capability.
The frame rate should be set appropriately for the best recording performance.
So according to this, using "User Defined" camera which is what I did only supports those formats listed above. Currently the camera supports H264 RTSP & MJPEG RTSP Streams. Which is how I setup the camera. However, under the video settings it has other video formats:
I am not sure which is best but by default it uses VBR.
Audio is another beast, currently if Synology doesn't have disabled audio then it seems to freeze the stream. I am going to try options, but by default heres the settings:
Camera Settings:
Synology Surveillance Station Settings:
Audio: Disabled Video: Grayed out (shows h.264)
The alternative options for audio format on the camera are:
submitted by deten to homeautomation [link] [comments]

Built a hosting platform over 16 years, giving away free lifetime licenses

Site Admin demoSource
16 years ago I stumbled into hosting with Ensim WEBppliance, which was a clusterfuck of a control panel necessitating a bunch of bugfixes. Those bugfixes spawned a control panel, apnscp, that I've continued to develop to this day. v3 is the first public release of apnscp and to celebrate I'm giving away 200 free lifetime licenses on webdev each good for 1 server.
Visit apnscp.com/activate/webdev-license-lt to get started customizing the installer. Database + PHP are vendor agnostic. apnscp supports any-version Node/Ruby/Python/Go. I'm interested in feedback, if not bugs then certainly ideas for improvement. This has gone through several stages of polish, please do your best to break it!
apnscp ships with integrated Route 53/CF DNS support in addition to Linode, DO, and Vultr. Additional providers are easy to create. apnscp includes 1-click install/updates for Wordpress, Drupal, Laravel, Ghost, Discourse, and Magento. Enabling Passenger, provided you have at least 2 GB memory, opens the door to use any-version Ruby, Node, and Python on your server.

Minimum requirements

Features

apnscp won't fix all of your woes; you still need to be smart about whom you host and what you host, but it is a step in the right direction. apnscp is not a replacement for a qualified system administrator. It is however a much better alternative to emerging panels in this market.

Installation

Use apnscp Customizer to configure your server as you'd like. See INSTALL.md for installation + usage.
Monitoring installation
apnscp will provision your server and this takes around 45 minutes to 2 hours to complete the first time. You can monitor installation real-time from the terminal:
tail -f /root/apnscp-bootstrapper.log
Post Install
If you entered an email address while customizing (apnscp_admin_email) and the server isn't in a RBL, then you will receive an email with your login information. If you don't get an email after 2 hours, log into the server and check the status:
tail -n30 /root/apnscp-bootstrapper.log
The last line should be similar to: 2019-01-30 18:39:02,923 p=3534 u=root | localhost : ok=3116 changed=1051 unreachable=0 failed=0
If failed=0, everything is set! You can reset the password and refer back to the login information to access the panel or reset your credentials. Post-install will welcome you with a list of helpful commands to get started as well. You may want to change -n30 to -n50!
If failed=n where n > 0, send me a PM, email ([email protected]), get in touch on the forums, or Discord.
Shoot me a PM if you have a question or hop on Discord chat. Either way feedback makes this process tick. Enjoy!

Installation FAQ

Resources

License information

Licenses are tied to the server but may be transferred to a new server. Once transferred from the server apnscp will become deactivated on the server, which means your sites will continue to operate but apnscp can no longer help you manage your server, as well as deploy automatic updates. A copy of the license can be made either by copying /uslocal/apnscp/config/license.pem or License > Download License in the top-right corner. Likewise to install the license on a new machine just replace config/license.pem with your original copy.
submitted by tsammons to webdev [link] [comments]

Wine 4.0-rc1 Released

The Wine development release 4.0-rc1 is now available.
 
This is the first release candidate for the upcoming Wine 4.0. It marks the beginning of the code freeze period.
There have been many last minute changes, so please give this release a good testing to help us make 4.0 as good as possible.
 
https://www.winehq.org/announce/4.0-rc1 
 
What's new in this release (see below for details):
 
- Preloader implemented on mac OS. - Mouse cursor support on Android. - Updates to the timezone database. - Vulkan support updated to the latest spec. - Stream I/O support in WebServices. - Better palette support in WindowsCodecs. - Synchronization objects support for kernel drivers. - Various bug fixes. 
 
The source is available from the following locations:
http://dl.winehq.org/wine/source/4.0/wine-4.0-rc1.tar.xz http://mirrors.ibiblio.org/wine/source/4.0/wine-4.0-rc1.tar.xz 
 
Binary packages for various distributions will be available from:
http://www.winehq.org/download 
 
You will find documentation on
http://www.winehq.org/documentation 
 
You can also get the current source directly from the git repository.
Check
http://www.winehq.org/git for details. 
 
Wine is available thanks to the work of many people.
See the file AUTHORS in the distribution for the complete list.
 
 
Bugs fixed in 4.0-rc1 (total 43):
 
5402 Multiple MFC-based apps crash during non-modal child dialog control creation with active window being zero (Canon PhotoStitch 3.1.13, Flexible Renamer v8.4) 16845 Radio buttons not being checked on focus 23750 SpongeBob SquarePants: Diner Dash 2 - mouse has pink background 28810 d3dx9_36/tests/mesh.ok: D3DXLoadMeshTest fails under valgrind 29183 Heavy corruption when rendering edit control with WM_PRINTCLIENT and possibly invalid HDC 33117 Can't load Bach41.ttf with CreateFontIndirect 35367 Multiple applications crash due to Wine ole32 code not taking implicit MTA into account (Cyberlink Powerdirector 8, PDFXChange Editor 5.5) 37863 Halo only works using Nvidia graphics 38228 Wildstar game failed to download : `winhttp:session_set_option 0` and `wine client error:41b: pipe: Too many open files` 40031 Singularity: In Steam the game is still running after quit 40880 Commandos 3: Destination Berlin demo has sound issues 40971 Zombie Army Trilogy crashes before the menu 41404 WPS Office 10.1.0.5775 unhandled exception on installation 41488 ProfitChart RT crashes at startup 42010 ReactOS Calc does not show dots in radio buttons. 42255 Xenia emulator needs ntdll.dll.RtlAddGrowableFunctionTable implementation 42474 Multiple applications crash on unimplemented function api- ms-win-core-path-l1-1-0.dll.PathCchCombineEx (Python 3.6, AutoFlashGUI, RenderDoc) 42582 Murdered: Soul Suspect has messed up rendering 43584 Hitman: Absolution needs dxgi_output_GetGammaControlCapabilities 43745 Graywalkers Purgatory demo has wrong models rendering 43889 Gradient is inverted when using gdiplus 44015 Steam - fails to load UI since Wine 2.20 (due to dwrite commit) 44177 Guitar Pro 5: Long freezes during draw process of dashed lines (P.M. or let ring markers) 44588 Many kernel drivers need support for kernel synchronization objects (event, semaphore, mutex) (BattleEye's 'bedaisy.sys', Franson VSerial service 'bizvserialnt.sys') 44897 Multiple applications using Crashpad/Chromium/CEF in Win7+ mode crash on unimplemented function ntdll.RtlGetUnloadEventTraceEx (Steam client) 44999 Python 3.6.5 crashes due to unimplemented function api-ms- win-core-path-l1-1-0.dll.PathCchCanonicalizeEx. 45431 Multiple D3D11 games deadlock in IDXGISwapChain::ResizeTarget while trying to resize window (Crash Bandicoot N. Sane Trilogy, Dragon Age: Inquisition) 45453 Guild Wars 2: Launcher crashes with assertion "jobThreads && (jobThreads <= hardwareThreads)" 45627 mdac28 fails to install (SetupDefaultQueueCallbackW copy error 32 L"C:\\users\\austin\\Temp\\IXP000.TMP\\msdaorar.dll") 46093 GRLevel3 2.52 fails to start, hangs indefinitely 46099 Star Citizen not loading after implementation of WaitOnAddress() in wine 46140 .NET applications using 'WebRequest' API with MS .NET Framework crash when IPv4/6 is disabled in Linux kernel 46142 Games launched through Windows Steam no longer launch. 46161 Wine: Wrong GnuTLS usage? 46168 dotnet35sp1 installer has an error under wow64 46172 Multiple applications from Windows 7-10 crash on unimplemented function slc.dll.SLGetLicensingStatusInformation 46173 Used e-Sword successfully a few months ago, but when I try now I get a Program Error. 46179 Multiple Windows 10 ARM{32,64} apps need 'kernel32.dll.GetCurrentThreadStackLimits' to get stack start address 46180 wineserver does not release atom on unregistering window classes 46186 LoadImageA searches images in the wrong directory 46210 explorer /desktop leaks atoms from DDE interface 46229 serveptrace: NetBSD debug register storage 46235 Opening ADODB.Connection results in: Method '~' of object '~' failed 
submitted by catulirdit to linux_gaming [link] [comments]

Emergent Coding FAQ

Background reading
  1. https://youtu.be/-MMQUspVduo ELI5 with pictures.
  2. https://youtu.be/ZSkZxOJ5HPA Hello World using Emergent Coding
  3. https://codevalley.com/whitepaper.pdf This document treats Emergent coding from a philosophical perspective. It has a good introduction, description of the tech and is followed by two sections on justifications from the perspective of Fred Brooks No Silver Bullet criteria and an industrialization criteria.
  4. Mark Fabbro's presentation from the Bitcoin Cash City Conference which outlines the motivation, basic mechanics, and usage of Bitcoin Cash in reproducing the industrial revolution in the software industry.
  5. Building the Bitcoin Cash City presentation highlighting how the emergent coding group of companies fit into the adoption roadmap of North Queensland.
  6. Forging Chain Metal by Paul Chandler CEO of Aptissio, one of startups in the emergent coding space and which secured a million in seed funding last year.
  7. Bitcoin Cash App Exploration A series of Apps that are some of the first to be built by emergent coding and presented, and in the case of Cashbar, demonstrated at the conference.
  8. A casual Bitcoin Cash interview that touches on emergent coding, tech park, merchant adoption and much more.
How does Emergent Coding prevent developer capture?
A developer's Agent does not know what project they are contributing to and is thus paid for the specific contribution. The developer is controlling the terms of the payment rather than the alternative, an employer with an employment agreement.
Why does Emergent Coding use Bitcoin BCH?
  1. Both emergent coding and Bitcoin BCH are decentralized: As emergent coding is a decentralized development environment consisting of Agents providing respective design services, each contract received by an agent requires a BCH payment. As Agents are hosted by their developer owners which may be residing in one of 150 countries, Bitcoin Cash - an electronic peer-to-peer electronic cash system - is ideal to include a developer regardless of geographic location.
  2. Emergent coding will increase the value of the Bitcoin BCH blockchain: With EC, there are typically many contracts to build an application (Cashbar was designed with 10000 contracts or so). EC adoption will increase the value of the Bitcoin BCH blockchain in line with this influx of quality economic activity.
  3. Emergent coding is being applied to BCH software first: One of the first market verticals being addressed with emergent coding is Bitcoin Cash infrastructure. We are already seeing quality applications created using emergent coding (such as the HULA, Cashbar, PH2, vending, ATMs etc). More apps and tools supporting Bitcoin cash will attract more merchants and business to BCH.
  4. Emergent coding increases productivity: Emergent coding increases developer productivity and reduces duplication compared to other software development methods. Emergent coding can provide BCH devs with an advantage over other coins. A BCH dev productivity advantage will accelerate Bitcoin BCH becoming the first global currency.
  5. Emergent coding produces higher quality binaries: Higher quality software leads to a more reliable network.

1. Who/what is Code Valley? Aptissio? BCH Tech Park? Mining and Server Complex?
Code Valley Corp Pty Ltd is the company founded to commercialize emergent coding technology. Code Valley is incorporated in North Queensland, Australia. See https://codevalley.com
Aptissio Australia Pty Ltd is a company founded in North Queensland and an early adopter of emergent coding. Aptissio is applying EC to Bitcoin BCH software. See https://www.aptissio.com
Townsville Technology Precincts Pty Ltd (TTP) was founded to bring together partners to answer the tender for the Historic North Rail Yard Redevelopment in Townsville, North Queensland. The partners consist of P+I, Conrad Gargett, HF Consulting, and a self-managed superannuation fund(SMSF) with Code Valley Corp Pty Ltd expected to be signed as an anchor tenant. TTP answered a Townsville City Council (TCC) tender with a proposal for a AUD$53m project (stage 1) to turn the yards into a technology park and subsequently won the tender. The plan calls for the bulk of the money is to be raised in the Australian equity markets with the city contributing $28% for remediation of the site and just under 10% from the SMSF. Construction is scheduled to begin in mid 2020 and be competed two years later.
Townsville Mining Pty Ltd was set up to develop a Server Complex in the Kennedy Energy Park in North Queensland. The site has undergone several studies as part of a due diligence process with encouraging results for its competitiveness in terms of real estate, power, cooling and data.
  1. TM are presently in negotiations with the owners of the site and is presently operating under an NDA.
  2. The business model calls for leasing "sectors" to mining companies that wish to mine allowing companies to control their own direction.
  3. Since Emergent Coding uses the BCH rail, TM is seeking to contribute to BCH security with an element of domestic mining.
  4. TM are working with American partners to lease one of the sectors to meet that domestic objective.
  5. The site will also host Emergent Coding Agents and Code Valley and its development partners are expected to lease several of these sectors.
  6. TM hopes to have the site operational within 2 years.
2. What programming language are the "software agents" written in.
Agents are "built" using emergent coding. You select the features you want your Agent to have and send out the contracts. In a few minutes you are in possession of a binary ELF. You run up your ELF on your own machine and it will peer with the emergent coding and Bitcoin Cash networks. Congratulations, your Agent is now ready to accept its first contract.
3. Who controls these "agents" in a software project
You control your own Agents. It is a decentralized development system.
4. What is the software license of these agents. Full EULA here, now.
A license gives you the right to create your own Agents and participate in the decentralized development system. We will publish the EULA when we release the product.
5. What kind of software architecture do these agents have. Daemons Responding to API calls ? Background daemons that make remote connection to listening applications?
Your Agent is a server that requires you to open a couple of ports so as to peer with both EC and BCH networks. If you run a BCH full node you will be familiar with this process. Your Agent will create a "job" for each contract it receives and is designed to operate thousands of jobs simultaneously in various stages of completion. It is your responsibility to manage your Agent and keep it open for business or risk losing market share to another developer capable of designing the same feature in a more reliable manner (or at better cost, less resource usage, faster design time etc.). For example, there is competition at every classification which is one reason emergent coding is on a fast path for improvement.
It is worth reiterating here that Agents are only used in the software design process and do not perform any role in the returned project binary.
6. What is the communication protocol these agents use.
The protocol is proprietary and is part of your license.
7. Are the agents patented? Who can use these agents?
It is up to you if you want to patent your Agent the underlying innovation behind emergent coding is _feasible_ developer specialization. Emergent coding gives you the ability to contribute to a project without revealing your intellectual property thus creating prospects for repeat business; It renders software patents moot.
Who uses your Agents? Your Agents earn you BCH with each design contribution made. It would be wise to have your Agent open for business at all times and encourage everyone to use your design service.
8. Do I need to cooperate with Code Valley company all of the time in order to deploy Emergent Coding on my software projects, or can I do it myself, using documentation?
It is a decentralized system. There is no single point of failure. Code Valley intends to defend the emergent coding ecosystem from abuse and bad actors but that role is not on your critical path.
9. Let's say Electron Cash is an Emergent Coding project. I have found a critical bug in the binary. How do I report this bug, what does Jonald Fyookball need to do, assuming the buggy component is a "shared component" puled from EC "repositories"?
If you built Electron Cash with emergent coding it will have been created by combining several high level wallet features designed into your project by their respective Agents. Obviously behind the scenes there are many more contracts that these Agents will let and so on. For example the Cashbar combines just 16 high level Point-of-Sale features but ultimately results in more than 10,000 contracts in toto. Should one of these 10,000 make a design error, Jonald only sees the high level Agents he contracted. He can easily pinpoint which of these contractors are in breach. Similarly this contractor can easily pinpoint which of its sub-contractors is in breach and so on. The offender that breached their contract wherever in the project they made their contribution, is easily identified. For example, when my truck has a warranty problem, I do not contact the supplier of the faulty big-end bearing, I simply take it back to Mazda who in turn will locate the fault.
Finally "...assuming the buggy component is a 'shared component' puled from EC 'repositories'?" - There are no repositories or "shared component" in emergent coding.
10. What is your licensing/pricing model? Per project? Per developer? Per machine?
Your Agent charges for each design contribution it makes (ie per contract). The exact fee is up to you. The resulting software produced by EC is unencumbered. Code Valley's pricing model consists of a seat license but while we are still determining the exact policy, we feel the "Valley" (where Agents advertise their wares) should charge a small fee to help prevent gaming the catalogue and a transaction fee to provide an income in proportion to operations.
11. What is the basic set of applications I need in order to deploy full Emergent Coding in my software project? What is the function of each application? Daemons, clients, APIs, Frontends, GUIs, Operating systems, Databases, NoSQLs? A lot of details, please.
There's just one. You buy a license and are issued with our product called Pilot. You run Pilot (node) up on your machine and it will peer with the EC and BCH networks. You connect your browser to Pilot typically via localhost and you're in business. You can build software (including special kinds of software like Agents) by simply combining available features. Pilot allows you to specify the desired features and will manage the contracts and decentralized build process. It also gives you access to the "Valley" which is a decentralized advertising site that contains all the "business cards" of each Agent in the community, classified into categories for easy search.
If we are to make a step change in software design, inventing yet another HLL will not cut it. As Fred Brooks puts it, an essential change is needed.
12. How can I trust a binary when I can not see the source?
The Emergent Coding development model is very different to what you are use to. There are ways of arriving at a binary without Source code.
The Agents in emergent coding design their feature into your project without writing code. We can see the features we select but can not demonstrate the source as the design process doesn't use a HLL.
The trust model is also different. The bulk of the testing happens _before_ the project is designed not _after_. Emergent Coding produces a binary with very high integrity and arguably far more testing is done in emergent coding than in incumbent methods you are used to.
In emergent coding, your reputation is built upon the performance of your Agent.
If your Agent produces substandard features, you are simply creating an opportunity for a competitor to increase their market share at your expense.
Here are some points worth noting regarding bad actor Agents:
  1. An Agent is a specialist and in emergent coding is unaware of the project they are contributing to. If you are a bad actor, do you compromise every contract you receive? Some? None?
  2. Your client is relying on the quality of your contribution to maintain their own reputation. Long before any client will trust your contributions, they will have tested you to ensure the quality is at their required level. You have to be at the top of your game in your classification to even win business. This isn't some shmuck pulling your routine from a library.
  3. Each contract to your agent is provisioned. Ie you advertise in advance what collaborations you require to complete your design. There is no opportunity for a "sign a Bitcoin transaction" Agent to be requesting "send an HTTP request" collaborations.
  4. Your Agent never gets to modify code, it makes a design contribution rather than a code contribution. There is no opportunity to inject anything as the mechanism that causes the code to emerge is a higher order complexity of all Agent involvement.
  5. There is near perfect accountability in emergent coding. You are being contracted and paid to do the design. Every project you compromise has an arrow pointed straight at you should it be detected even years later.
Security is a whole other ball game in emergent coding and current rules do not necessarily apply.
13. Every time someone rebuilds their application, do they have to pay over again for all "design contributions"? (Or is the ability to license components at fixed single price for at least a limited period or even perpetually, supported by the construction (agent) process?)
You are paying for the design. Every time you build (or rebuild) an application, you pay the developers involved. They do not know they are "rebuilding". This sounds dire but its costs far less than you think and there are many advantages. Automation is very high with emergent coding so software design is completed for a fraction of the cost of incumbent design methods. You could perhaps rebuild many time before matching incumbent methods. Adding features is hard with incumbent methods "..very few late-stage additions are required before the code base transforms from the familiar to a veritable monster of missed schedules, blown budgets and flawed products" (Brooks Jr 1987) whereas with emergent coding adding a late stage feature requires a rebuild and hence seamless integration. With Emergent Coding, you can add an unlimited number of features without risking the codebase as there isn't one.
The second part of your question incorrectly assumes software is created from licensed components rather than created by paying Agents to design features into your project without any licenses involved.
14. In this construction process, is the vendor of a particular "design contribution" able to charge differential rates per their own choosing? e.g. if I wanted to charge a super-low rate to someone from a 3rd world country versus charging slightly more when someone a global multinational corporation wants to license my feature?
Yes. Developers set the price and policy of their Agent's service. The Valley (where your Agent is presently advertised) presently only supports a simple price policy. The second part of your question incorrectly assumes features are encumbered with licenses. A developer can provide their feature without revealing their intellectual property. A client has the right to reuse a developer's feature in another project but will find it uneconomical to do so.
15. Is "entirely free" a supported option during the contract negotiation for a feature?
Yes. You set the price of your Agent.
16. "There is no single point of failure." Right now, it seems one needs to register, license the construction tech etc. Is that going to change to a model where your company is not necessarily in that loop? If not, don't you think that's a single point of failure?
It is a decentralized development system. Once you have registered you become part of a peer-to-peer system. Code Valley has thought long and hard about its role and has chosen the reddit model. It will set some rules for your participation and will detect or remove bad actors. If, in your view, Code Valley becomes a bad actor, you have control over your Agent, private keys and IP, you can leave the system at any time.
17. What if I can't obtain a license because of some or other jurisdictional problem? Are you allowed to license the technology to anywhere in the world or just where your government allows it?
We are planning to operate in all 150 countries. As ec is peer-to-peer, Code Valley does not need to register as a digital currency exchange or the like. Only those countries banning BCH will miss out (until such times as BCH becomes the first global electronic cash system).
18.
For example the Cashbar combines just 16 high level Point-of-Sale features but ultimately results in more than 10,000 contracts in toto.
It seems already a reasonably complex application, so well done in having that as a demo.
Thank you.
19. I asked someone else a question about how it would be possible to verify whether an application (let's say one received a binary executable) has been built with your system of emergent consensus. Is this possible?
Yes of course. If you used ec to build an application, you can sign it and claim anything you like. Your client knows it came from you because of your signature. The design contributions making up the application are not signed but surprisingly there is still perfect accountability (see below).
20. I know it is possible to identify for example all source files and other metadata (like build environment) that went into constructing a binary, by storing this data inside an executable.
All metadata emergent coding is now stored offline. When your Agent completes a job, you have a log of the design agreements you made with your peers etc., as part of the log. If you are challenged at a later date for breaching a design contract, you can pull your logs to see what decisions you made, what sub-contracts were let etc. As every Agent has their own logs, the community as a whole has a completely trustless log of each project undertaken.
21. Is this being done with EC build products and would it allow the recipient to validate that what they've been provided has been built only using "design contributions" cryptographically signed by their providers and nothing else (i.e. no code that somehow crept in that isn't covered by the contracting process)?
The emergent coding trust model is very effective and has been proven in other industries. Remember, your Agent creates a feature in my project by actually combining smaller features contracted from other Agents, thus your reputation is linked to that of your suppliers. If Bosch makes a faulty relay in my Ford, I blame Ford for a faulty car not Bosch when my headlights don't work. Similarly, you must choose and vet your sub-contractors to the level of quality that you yourself want to project. Once these relationships are set up, it becomes virtually impossible for a bad actor to participate in the system for long or even from the get go.
22. A look at code generated and a surprising answer to why is every intermediate variable spilled?
Thanks to u/R_Sholes, this snippet from the actual code for: number = number * 10 + digitgenerated as a part of: sub read/integeboolean($, 0, 100) -> guess
; copy global to local temp variable 0x004032f2 movabs r15, global.current_digit 0x004032fc mov r15, qword [r15] 0x004032ff mov rax, qword [r15] 0x00403302 movabs rdi, local.digit 0x0040330c mov qword [rdi], rax ; copy global to local temp variable 0x0040330f movabs r15, global.guess 0x00403319 mov r15, qword [r15] 0x0040331c mov rax, qword [r15] 0x0040331f movabs rdi, local.num 0x00403329 mov qword [rdi], rax ; multiply local variable by constant, uses new temp variable for output 0x0040332c movabs r15, local.num 0x00403336 mov rax, qword [r15] 0x00403339 movabs rbx, 10 0x00403343 mul rbx 0x00403346 movabs rdi, local.num_times_10 0x00403350 mov qword [rdi], rax ; add local variables, uses yet another new temp variable for output 0x00403353 movabs r15, local.num_times_10 0x0040335d mov rax, qword [r15] 0x00403360 movabs r15, local.digit 0x0040336a mov rbx, qword [r15] 0x0040336d add rax, rbx 0x00403370 movabs rdi, local.num_times_10_plus_digit 0x0040337a mov qword [rdi], rax ; copy local temp variable back to global 0x0040337d movabs r15, local.num_times_10_plus_digit 0x00403387 mov rax, qword [r15] 0x0040338a movabs r15, global.guess 0x00403394 mov rdi, qword [r15] 0x00403397 mov qword [rdi], rax For comparison, an equivalent snippet in C compiled by clang without optimizations gives this output: imul rax, qword ptr [guess], 10 add rax, qword ptr [digit] mov qword ptr [guess], rax 
Collaborations at the byte layer of Agents result in designs that spill every intermediate variable.
Firstly, why this is so?
Agents from this early version only support one catch-all variable design when collaborating. Similar to a compiler when all registers contain variables, the compiler must make a decision to spill a register temporarily to main memory. The compiler would still work if it spilled every variable to main memory but would produce code that would be, as above, hopelessly inefficient.
However, by only supporting the catch-all portion of the protocol, the code valley designers were able to design, build and deploy these agents faster because an Agent needs fewer predicates in order to participate in these simpler collaborations.
The protocol involved however, can have many "Policies" besides the catch-all default policy (Agents can collaborate over variables designed to be on the stack, or, as is common for intermediate variables, designed to use a CPU register, and so forth).
This example highlights one of the very exciting aspects of emergent coding. If we now add a handful of additional predicates to a handful of these byte layer agents, henceforth ALL project binaries will be 10x smaller and 10x faster.
Finally, there can be many Agents competing for market share at each of classification. If these "gumby" agents do not improve, you can create a "smarter" competitor (ie with more predicates) and win business away from them. Candy from a baby. Competition means the smartest agents bubble to the top of every classification and puts the entire emergent coding platform on a fast path for improvement. Contrast this with incumbent libraries which does not have a financial incentive to improve. Just wait until you get to see our production system.
23. How hard can an ADD Agent be?
Typically an Agent's feature is created by combining smaller features from other Agents. The smallest features are so devoid of context and complexity they can be rendered by designing a handful of bytes in the project binary. Below is a description of one of these "byte" layer Agents to give you an idea how they work.
An "Addition" Agent creates the feature of "adding two numbers" in your project (This is an actual Agent). That is, it contributes to the project design a feature such that when the project binary is delivered, there will be an addition instruction somewhere in it that was designed by the contract that was let to this Agent.
If you were this Agent, for each contract you received, you would need to collaborate with peers in the project to resolve vital requirements before you can proceed to design your binary "instruction".
Each paid contract your Agent receives will need to participate in at least 4 collaborations within the design project. These are:
  1. Input A collaboration
  2. Input B collaboration
  3. Result collaboration
  4. Construction site collaboration
You can see from the collaborations involved how your Agent can determine the precise details needed to design its instruction. As part of the contract, the Addition Agent will be provisioned with contact details so it can join these collaborations. Your Agent must collaborate with other stakeholders in each collaboration to resolve that requirement. In this case, how a variable will be treated. The stakeholders use a protocol to arrive at an Agreement and share the terms of the agreement. For example, the stakeholders of collaboration “Input A” may agree to treat the variable as an signed 64bit integer, resolve to locate it at location 0x4fff2, or alternatively agree that the RBX register should be used, or agree to use one of the many other ways a variable can be represented. Once each collaboration has reached an agreement and the terms of that agreement distributed, your Agent can begin to design the binary instruction. The construction site collaboration is where you will exactly place your binary bytes.
The construction site protocol is detailed in the whitepaper and is some of the magic that allows the decentralized development system to deliver the project binary. The protocol consists of 3 steps,
  1. You request space in the project binary be reserved.
  2. You are notified of the physical address of your requested space.
  3. You delver the the binary bytes you designed to fill the reserved space.
Once the bytes are returned your Agent can remove the job from its work schedule. Job done, payment received, another happy customer with a shiny ADD instruction designed into their project binary.
Note:
  1. Observe how it is impossible for this ADD Agent to install a backdoor undetected by the client.
  2. Observe how the Agent isn’t linking a module, or using a HLL to express the binary instruction.
  3. Observe how with just a handful of predicates you have a working "Addition" Agent capable of designing the Addition Feature into a project with a wide range of collaboration agreements.
  4. Observe how this Agent could conceivably not even design-in an ADD instruction if one of the design time collaboration agreements was a literal "1" (It would design in an increment instruction). There is even a case where this Agent may not deliver any binary to build its feature into your project!
24. How does EC arrive at a project binary without writing source code?
Devs using EC combine features to create solutions. They don't write code. EC devs contract Agents which design the desired features into their project for a fee. Emergent coding uses a domain specific contracting language (called pilot) to describe the necessary contracts. Pilot is not a general purpose language. As agents create their features by similarly combining smaller features contracted from peer, your desired features may inadvertently result in thousands of contracts. As it is agents all the way down, there is no source code to create the project binary.
Traditional: Software requirements -> write code -> compile -> project binary (ELF).
Emergent coding: Select desired features -> contract agents -> project binary (ELF).
Agents themselves are created the same way - specify the features you want your agent to have, contract the necessary agents for those features and viola - agent project binary (ELF).
25. How does the actual binary code that agents deliver to each other is written?
An agent never touches code. With emergent coding, agents contribute features to a project, and leave the project binary to emerge as the higher-order complexity of their collective effort. Typically, agents “contribute” their feature by causing smaller features to be contributed by peers, who in turn, do likewise. By mapping features to smaller features delivered by these peers, agents ensure their feature is delivered to the project without themselves making a direct code contribution.
Peer connections established by these mappings serve to both incrementally extend a temporary project “scaffold” and defer the need to render a feature as a code contribution. At the periphery of the scaffold, features are so simple they can be rendered as a binary fragment with these binary fragments using the information embodied by the scaffold to guide the concatenation back along the scaffold to emerge as the project binary - hence the term Emergent Coding.
Note the scaffold forms a temporary tree-like structure which allows virtually all the project design contracts to be completed in parallel. The scaffold also automatically limits an agent's scope to precisely the resources and site for their feature. It is why it is virtually impossible for an agent to install a "back door" or other malicious code into the project binary.
submitted by nlovisa to EmergentCoding [link] [comments]

Free Demo Account Binary Options Binary.com uk no loss - binary option demo app auto ... Binary Options Demo Account 2016 (free binary options demo account - no deposit, just for practise) Free Binary Options Demo Account - No Deposit & Lasts ... Binary Options Trading Signals Demo - BOTS Live Trading ... Binary Option Broker Demo/Simulation Trading Script - PHP

binary options za se Three-dimensional computer graphics have superseded two-dimensional ones. These 3D graphics are usually produced with the help of special software. binary option brokers uk Thought Of The Day. ADVERTISEMENT. Binary Options Demo. Binaryoptionsdemo.com started in 2012 and has been allowing people to trade with a free binary options demo account since that time. Our aim is to help you ‘Learn and Earn“ by providing a realistic trading platform with an extensive binary options guide, trading competitions and social trading features. We also created Binary Options Demo in order to counteract the ... A commodity binary option is a trade whereby the expected future value of a commodity is projected on a fixed date. Gold and Crude Oil are the main commodities traded in the market. Let’s assume the price of gold currently stands at $100 dollars an ounce and a trader anticipates a rise in value after 2 weeks. He or she can purchase 4 contracts valued at $20 dollars each since each contract ... Let’s say you have only ever traded one or two asset types in the past (forex, for instance). Binary options demo accounts provide a risk-free environment to explore new areas. From indices through to commodities and individual shares, the demo should ideally provide access to all assets available on the live version, giving you scope to experiment. Demo accounts as part of your education ... binary options unlimited demo account Congrats! Here's Your Free Binary Options E-Book! Learn binary options from Nadex, the first and largest regulated binary options exchange. best binary option autotrader The real deal about Markets World in our full review with comments from binary options traders. Find out if this broker can be trusted. The Best Apps For Binary Option Trading. ExpertOption is an online trading platform that offers over 100 different financial assets to trade including currencies, stocks, commodities, and cryptocurrencies. VISIT BROKER → Table of Contents. 1 The 7 Best Apps For Binary Option Trading; 2 Benefits of Using a Mobile Trading App for Binary Options; 3 What to Look For in a Binary Options App. 3.1 ... binary options simulator free download. FlightGear - Flight Simulator Founded in 1997, FlightGear is developed by a worldwide group of volunteers, brought together by a s Binary option trading on margin involves high risk, and is not suitable for all investors. As a leveraged product losses are able to exceed initial deposits and capital is at risk. Before deciding to trade binary options or any other financial instrument you should carefully consider your investment objectives, level of experience, and risk appetite. The most popular binary options broker is IQ Option. For a $10 minimum deposit and $1 minimum investment, you are good to go with this binary options trading platform. Additionally, it allows you to try out a $10,000 demo account to get a real feel of its features. Ever since the US Securities and Exchange Commission approved binary options in 2008, numerous traders have been interested in ... Binary Options Demo Account In MetaTrader 4. Another major benefit of trading binary options in meta-trader 4, is how easy it is for you to paper trade. You can open a new MT4 demo in the matter of minutes, without ever having to fill out any real information. This makes the process fast, and gives you the opportunity to trade without any risk at all. This is a great way to test and work on ...

[index] [1069] [5104] [9598] [24406] [21686] [23865] [9241] [709] [4401] [23461]

Free Demo Account Binary Options

Sign up here: http://www.MarketsWorldDemo.com March 29, 2014 Update: Markets World is still providing free binary options demo accounts and yes, they still l... binary Option demo Edition of binary Option trading platform serves as a good way for traders to get to be aware of platform much better and use it for exercise to realize extra confidence in ... OptionForex is a premium Responsive Binary Option and Forex Trading PHP Script.This Pro PHP script allows you to quickly and easily integrate any payment method with it's advanced functionality ... Disclaimer: As per CFTC Rules, U.S Traders should not trade Binary Options. Investing in CFD involves a level of risk, which is why potential or total loss can be a result of mismanagement of our ... Binary Options Trading Signals Demo - BOTS Live Trading Room It's Time To Try And Improve Together With The BOTS Community Strategy Development Room For Fore... Binary Options Demo Account 2017 (free binary options demo account - no deposit, just for practise) / Forex - https://goo.gl/dAJPC5 / Binary Trade - https://... Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.

http://arab-binary-option.staradbocor.cf